equinix

package
v1.4.0 Latest Latest
Warning

This package is not in the latest version of its module.

Go to latest
Published: Apr 12, 2021 License: Apache-2.0 Imports: 10 Imported by: 0

Documentation

Overview

A Pulumi package for creating and managing equinix-metal cloud resources.

Index

Constants

View Source
const (
	BillingCycleHourly  = BillingCycle("hourly")
	BillingCycleMonthly = BillingCycle("monthly")
)
View Source
const (
	FacilityEWR1 = Facility("ewr1")
	FacilitySJC1 = Facility("sjc1")
	FacilityDFW1 = Facility("dfw1")
	FacilityDFW2 = Facility("dfw2")
	FacilityAMS1 = Facility("ams1")
	FacilityNRT1 = Facility("nrt1")
	FacilitySEA1 = Facility("sea1")
	FacilityLAX1 = Facility("lax1")
	FacilityORD1 = Facility("ord1")
	FacilityATL1 = Facility("atl1")
	FacilityIAD1 = Facility("iad1")
	FacilitySIN1 = Facility("sin1")
	FacilityHKG1 = Facility("hkg1")
	FacilitySYD1 = Facility("syd1")
	FacilityMRS1 = Facility("mrs1")
	FacilityYYZ1 = Facility("yyz1")
	FacilityFRA2 = Facility("fra2")
	FacilityAM6  = Facility("am6")
	FacilityDC13 = Facility("dc13")
	FacilityCH3  = Facility("ch3")
	FacilityDA3  = Facility("da3")
	FacilityDA11 = Facility("da11")
	FacilityLA4  = Facility("la4")
	FacilityNY5  = Facility("ny5")
	FacilitySG1  = Facility("sg1")
	FacilitySV15 = Facility("sv15")
)
View Source
const (
	IpBlockTypeGlobalIPv4 = IpBlockType("global_ipv4")
	IpBlockTypePublicIPv4 = IpBlockType("public_ipv4")
)
View Source
const (
	NetworkTypeLayer3           = NetworkType("layer3")
	NetworkTypeLayer2Individual = NetworkType("layer2-individual")
	NetworkTypeLayer2Bonded     = NetworkType("layer2-bonded")
	NetworkTypeHybrid           = NetworkType("hybrid")
)
View Source
const (
	OperatingSystemAlpine3          = OperatingSystem("alpine_3")
	OperatingSystemCentOS6          = OperatingSystem("centos_6")
	OperatingSystemCentOS7          = OperatingSystem("centos_7")
	OperatingSystemCentOS8          = OperatingSystem("centos_8")
	OperatingSystemCoreOSAlpha      = OperatingSystem("coreos_alpha")
	OperatingSystemCoreOSBeta       = OperatingSystem("coreos_beta")
	OperatingSystemCoreOSStable     = OperatingSystem("coreos_stable")
	OperatingSystemCustomIPXE       = OperatingSystem("custom_ipxe")
	OperatingSystemDebian8          = OperatingSystem("debian_8")
	OperatingSystemDebian9          = OperatingSystem("debian_9")
	OperatingSystemDebian10         = OperatingSystem("debian_10")
	OperatingSystemFlatcarAlpha     = OperatingSystem("flatcar_alpha")
	OperatingSystemFlatcarBeta      = OperatingSystem("flatcar_beta")
	OperatingSystemFlatcarEdge      = OperatingSystem("flatcar_edge")
	OperatingSystemFlatcarStable    = OperatingSystem("flatcar_stable")
	OperatingSystem_FreeBSD10_4     = OperatingSystem("freebsd_10_4")
	OperatingSystem_FreeBSD11_1     = OperatingSystem("freebsd_11_1")
	OperatingSystem_FreeBSD11_2     = OperatingSystem("freebsd_11_2")
	OperatingSystemFreeBSD12Testing = OperatingSystem("freebsd_12_testing")
	OperatingSystem_NixOS18_03      = OperatingSystem("nixos_18_03")
	OperatingSystem_NixOS19_03      = OperatingSystem("nixos_19_03")
	OperatingSystem_OpenSUSE42_3    = OperatingSystem("opensuse_42_3")
	OperatingSystemRancherOS        = OperatingSystem("rancher")
	OperatingSystemRHEL7            = OperatingSystem("rhel_7")
	OperatingSystemRHEL8            = OperatingSystem("rhel_8")
	OperatingSystemScientificLinux6 = OperatingSystem("scientific_6")
	OperatingSystemSLES12SP3        = OperatingSystem("suse_sles12_sp3")
	OperatingSystemUbuntu1404       = OperatingSystem("ubuntu_14_04")
	OperatingSystemUbuntu1604       = OperatingSystem("ubuntu_16_04")
	OperatingSystemUbuntu1710       = OperatingSystem("ubuntu_17_10")
	OperatingSystemUbuntu1804       = OperatingSystem("ubuntu_18_04")
	OperatingSystemUbuntu2004       = OperatingSystem("ubuntu_20_04")
	OperatingSystemUbuntu2010       = OperatingSystem("ubuntu_20_10")
	OperatingSystem_VMWareEsxi6_5   = OperatingSystem("vmware_esxi_6_5")
	OperatingSystem_VMWareEsxi6_7   = OperatingSystem("vmware_esxi_6_7")
	OperatingSystem_VMWareEsxi7_0   = OperatingSystem("vmware_esxi_7_0")
	OperatingSystemWindows2012R2    = OperatingSystem("windows_2012_r2")
	OperatingSystemWindows2016      = OperatingSystem("windows_2016")
	OperatingSystemWindows2019      = OperatingSystem("windows_2019")
)
View Source
const (
	PlanC2LargeARM  = Plan("c2.large.arm")
	PlanC2MediumX86 = Plan("c2.medium.x86")
	PlanC1SmallX86  = Plan("baremetal_1")
	PlanC1LargeARM  = Plan("baremetal_2a")
	PlanC1XLargeX86 = Plan("baremetal_3")
	PlanX2XLargeX86 = Plan("x2.xlarge.x86")
	PlanX1SmallX86  = Plan("baremetal_1e")
	PlanG2LargeX86  = Plan("g2.large.x86")
	PlanM2XLargeX86 = Plan("m2.xlarge.x86")
	PlanM1XLargeX86 = Plan("baremetal_2")
	PlanT1SmallX86  = Plan("baremetal_0")
	PlanS1LargeX86  = Plan("baremetal_s")
	PlanC3SmallX86  = Plan("c3.small.x86")
	PlanC3MediumX86 = Plan("c3.medium.x86")
	PlanF3MediumX86 = Plan("f3.medium.x86")
	PlanF3LargeX86  = Plan("f3.large.x86")
	PlanM3LargeX86  = Plan("m3.large.x86")
	PlanS3XLargeX86 = Plan("s3.xlarge.x86")
	PlanN2XLargeX86 = Plan("n2.xlarge.x86")
)

Variables

This section is empty.

Functions

func PkgVersion added in v1.1.0

func PkgVersion() (semver.Version, error)

PkgVersion uses reflection to determine the version of the current package.

Types

type BgpSession

type BgpSession struct {
	pulumi.CustomResourceState

	// `ipv4` or `ipv6`
	AddressFamily pulumi.StringOutput `pulumi:"addressFamily"`
	// Boolean flag to set the default route policy. False by default.
	DefaultRoute pulumi.BoolPtrOutput `pulumi:"defaultRoute"`
	// ID of device
	DeviceId pulumi.StringOutput `pulumi:"deviceId"`
	Status   pulumi.StringOutput `pulumi:"status"`
}

Provides a resource to manage BGP sessions in Equinix Metal Host. Refer to [Equinix Metal BGP documentation](https://metal.equinix.com/developers/docs/networking/local-global-bgp/) for more details.

You need to have BGP config enabled in your project.

BGP session must be linked to a device running [BIRD](https://bird.network.cz) or other BGP routing daemon which will control route advertisements via the session to Equinix Metal's upstream routers.

func GetBgpSession

func GetBgpSession(ctx *pulumi.Context,
	name string, id pulumi.IDInput, state *BgpSessionState, opts ...pulumi.ResourceOption) (*BgpSession, error)

GetBgpSession gets an existing BgpSession resource's state with the given name, ID, and optional state properties that are used to uniquely qualify the lookup (nil if not required).

func NewBgpSession

func NewBgpSession(ctx *pulumi.Context,
	name string, args *BgpSessionArgs, opts ...pulumi.ResourceOption) (*BgpSession, error)

NewBgpSession registers a new resource with the given unique name, arguments, and options.

func (*BgpSession) ElementType

func (*BgpSession) ElementType() reflect.Type

func (*BgpSession) ToBgpSessionOutput

func (i *BgpSession) ToBgpSessionOutput() BgpSessionOutput

func (*BgpSession) ToBgpSessionOutputWithContext

func (i *BgpSession) ToBgpSessionOutputWithContext(ctx context.Context) BgpSessionOutput

func (*BgpSession) ToBgpSessionPtrOutput added in v1.1.2

func (i *BgpSession) ToBgpSessionPtrOutput() BgpSessionPtrOutput

func (*BgpSession) ToBgpSessionPtrOutputWithContext added in v1.1.2

func (i *BgpSession) ToBgpSessionPtrOutputWithContext(ctx context.Context) BgpSessionPtrOutput

type BgpSessionArgs

type BgpSessionArgs struct {
	// `ipv4` or `ipv6`
	AddressFamily pulumi.StringInput
	// Boolean flag to set the default route policy. False by default.
	DefaultRoute pulumi.BoolPtrInput
	// ID of device
	DeviceId pulumi.StringInput
}

The set of arguments for constructing a BgpSession resource.

func (BgpSessionArgs) ElementType

func (BgpSessionArgs) ElementType() reflect.Type

type BgpSessionArray added in v1.1.2

type BgpSessionArray []BgpSessionInput

func (BgpSessionArray) ElementType added in v1.1.2

func (BgpSessionArray) ElementType() reflect.Type

func (BgpSessionArray) ToBgpSessionArrayOutput added in v1.1.2

func (i BgpSessionArray) ToBgpSessionArrayOutput() BgpSessionArrayOutput

func (BgpSessionArray) ToBgpSessionArrayOutputWithContext added in v1.1.2

func (i BgpSessionArray) ToBgpSessionArrayOutputWithContext(ctx context.Context) BgpSessionArrayOutput

type BgpSessionArrayInput added in v1.1.2

type BgpSessionArrayInput interface {
	pulumi.Input

	ToBgpSessionArrayOutput() BgpSessionArrayOutput
	ToBgpSessionArrayOutputWithContext(context.Context) BgpSessionArrayOutput
}

BgpSessionArrayInput is an input type that accepts BgpSessionArray and BgpSessionArrayOutput values. You can construct a concrete instance of `BgpSessionArrayInput` via:

BgpSessionArray{ BgpSessionArgs{...} }

type BgpSessionArrayOutput added in v1.1.2

type BgpSessionArrayOutput struct{ *pulumi.OutputState }

func (BgpSessionArrayOutput) ElementType added in v1.1.2

func (BgpSessionArrayOutput) ElementType() reflect.Type

func (BgpSessionArrayOutput) Index added in v1.1.2

func (BgpSessionArrayOutput) ToBgpSessionArrayOutput added in v1.1.2

func (o BgpSessionArrayOutput) ToBgpSessionArrayOutput() BgpSessionArrayOutput

func (BgpSessionArrayOutput) ToBgpSessionArrayOutputWithContext added in v1.1.2

func (o BgpSessionArrayOutput) ToBgpSessionArrayOutputWithContext(ctx context.Context) BgpSessionArrayOutput

type BgpSessionInput

type BgpSessionInput interface {
	pulumi.Input

	ToBgpSessionOutput() BgpSessionOutput
	ToBgpSessionOutputWithContext(ctx context.Context) BgpSessionOutput
}

type BgpSessionMap added in v1.1.2

type BgpSessionMap map[string]BgpSessionInput

func (BgpSessionMap) ElementType added in v1.1.2

func (BgpSessionMap) ElementType() reflect.Type

func (BgpSessionMap) ToBgpSessionMapOutput added in v1.1.2

func (i BgpSessionMap) ToBgpSessionMapOutput() BgpSessionMapOutput

func (BgpSessionMap) ToBgpSessionMapOutputWithContext added in v1.1.2

func (i BgpSessionMap) ToBgpSessionMapOutputWithContext(ctx context.Context) BgpSessionMapOutput

type BgpSessionMapInput added in v1.1.2

type BgpSessionMapInput interface {
	pulumi.Input

	ToBgpSessionMapOutput() BgpSessionMapOutput
	ToBgpSessionMapOutputWithContext(context.Context) BgpSessionMapOutput
}

BgpSessionMapInput is an input type that accepts BgpSessionMap and BgpSessionMapOutput values. You can construct a concrete instance of `BgpSessionMapInput` via:

BgpSessionMap{ "key": BgpSessionArgs{...} }

type BgpSessionMapOutput added in v1.1.2

type BgpSessionMapOutput struct{ *pulumi.OutputState }

func (BgpSessionMapOutput) ElementType added in v1.1.2

func (BgpSessionMapOutput) ElementType() reflect.Type

func (BgpSessionMapOutput) MapIndex added in v1.1.2

func (BgpSessionMapOutput) ToBgpSessionMapOutput added in v1.1.2

func (o BgpSessionMapOutput) ToBgpSessionMapOutput() BgpSessionMapOutput

func (BgpSessionMapOutput) ToBgpSessionMapOutputWithContext added in v1.1.2

func (o BgpSessionMapOutput) ToBgpSessionMapOutputWithContext(ctx context.Context) BgpSessionMapOutput

type BgpSessionOutput

type BgpSessionOutput struct {
	*pulumi.OutputState
}

func (BgpSessionOutput) ElementType

func (BgpSessionOutput) ElementType() reflect.Type

func (BgpSessionOutput) ToBgpSessionOutput

func (o BgpSessionOutput) ToBgpSessionOutput() BgpSessionOutput

func (BgpSessionOutput) ToBgpSessionOutputWithContext

func (o BgpSessionOutput) ToBgpSessionOutputWithContext(ctx context.Context) BgpSessionOutput

func (BgpSessionOutput) ToBgpSessionPtrOutput added in v1.1.2

func (o BgpSessionOutput) ToBgpSessionPtrOutput() BgpSessionPtrOutput

func (BgpSessionOutput) ToBgpSessionPtrOutputWithContext added in v1.1.2

func (o BgpSessionOutput) ToBgpSessionPtrOutputWithContext(ctx context.Context) BgpSessionPtrOutput

type BgpSessionPtrInput added in v1.1.2

type BgpSessionPtrInput interface {
	pulumi.Input

	ToBgpSessionPtrOutput() BgpSessionPtrOutput
	ToBgpSessionPtrOutputWithContext(ctx context.Context) BgpSessionPtrOutput
}

type BgpSessionPtrOutput added in v1.1.2

type BgpSessionPtrOutput struct {
	*pulumi.OutputState
}

func (BgpSessionPtrOutput) ElementType added in v1.1.2

func (BgpSessionPtrOutput) ElementType() reflect.Type

func (BgpSessionPtrOutput) ToBgpSessionPtrOutput added in v1.1.2

func (o BgpSessionPtrOutput) ToBgpSessionPtrOutput() BgpSessionPtrOutput

func (BgpSessionPtrOutput) ToBgpSessionPtrOutputWithContext added in v1.1.2

func (o BgpSessionPtrOutput) ToBgpSessionPtrOutputWithContext(ctx context.Context) BgpSessionPtrOutput

type BgpSessionState

type BgpSessionState struct {
	// `ipv4` or `ipv6`
	AddressFamily pulumi.StringPtrInput
	// Boolean flag to set the default route policy. False by default.
	DefaultRoute pulumi.BoolPtrInput
	// ID of device
	DeviceId pulumi.StringPtrInput
	Status   pulumi.StringPtrInput
}

func (BgpSessionState) ElementType

func (BgpSessionState) ElementType() reflect.Type

type BillingCycle

type BillingCycle pulumi.String

func (BillingCycle) ElementType

func (BillingCycle) ElementType() reflect.Type

func (BillingCycle) ToStringOutput

func (e BillingCycle) ToStringOutput() pulumi.StringOutput

func (BillingCycle) ToStringOutputWithContext

func (e BillingCycle) ToStringOutputWithContext(ctx context.Context) pulumi.StringOutput

func (BillingCycle) ToStringPtrOutput

func (e BillingCycle) ToStringPtrOutput() pulumi.StringPtrOutput

func (BillingCycle) ToStringPtrOutputWithContext

func (e BillingCycle) ToStringPtrOutputWithContext(ctx context.Context) pulumi.StringPtrOutput

type Device

type Device struct {
	pulumi.CustomResourceState

	// The ipv4 private IP assigned to the device
	AccessPrivateIpv4 pulumi.StringOutput `pulumi:"accessPrivateIpv4"`
	// The ipv4 maintenance IP assigned to the device
	AccessPublicIpv4 pulumi.StringOutput `pulumi:"accessPublicIpv4"`
	// The ipv6 maintenance IP assigned to the device
	AccessPublicIpv6 pulumi.StringOutput `pulumi:"accessPublicIpv6"`
	// If true, a device with OS `customIpxe` will
	// continue to boot via iPXE on reboots.
	AlwaysPxe pulumi.BoolPtrOutput `pulumi:"alwaysPxe"`
	// monthly or hourly
	BillingCycle pulumi.StringOutput `pulumi:"billingCycle"`
	// The timestamp for when the device was created
	Created pulumi.StringOutput `pulumi:"created"`
	// A string of the desired Custom Data for the device.
	CustomData pulumi.StringPtrOutput `pulumi:"customData"`
	// The facility where the device is deployed.
	DeployedFacility pulumi.StringOutput `pulumi:"deployedFacility"`
	// ID of hardware reservation where this device was deployed. It is useful when using the `next-available` hardware reservation.
	DeployedHardwareReservationId pulumi.StringOutput `pulumi:"deployedHardwareReservationId"`
	// Description string for the device
	Description pulumi.StringPtrOutput `pulumi:"description"`
	// List of facility codes with deployment preferences. Equinix Metal API will go through the list and will deploy your device to first facility with free capacity. List items must be facility codes or `any` (a wildcard). To find the facility code, visit [Facilities API docs](https://metal.equinix.com/developers/api/facilities/), set your API auth token in the top of the page and see JSON from the API response.
	Facilities pulumi.StringArrayOutput `pulumi:"facilities"`
	// Delete device even if it has volumes attached. Only applies for destroy action.
	ForceDetachVolumes    pulumi.BoolPtrOutput   `pulumi:"forceDetachVolumes"`
	HardwareReservationId pulumi.StringPtrOutput `pulumi:"hardwareReservationId"`
	// The device name
	Hostname pulumi.StringOutput `pulumi:"hostname"`
	// A list of IP address types for the device (structure is documented below).
	IpAddresses DeviceIpAddressArrayOutput `pulumi:"ipAddresses"`
	// URL pointing to a hosted iPXE script. More
	// information is in the
	// [Custom iPXE](https://metal.equinix.com/developers/docs/servers/custom-ipxe/)
	// doc.
	IpxeScriptUrl pulumi.StringPtrOutput `pulumi:"ipxeScriptUrl"`
	// Whether the device is locked
	Locked pulumi.BoolOutput `pulumi:"locked"`
	// Deprecated: You should handle Network Type with the new metal_device_network_type resource.
	NetworkType pulumi.StringOutput `pulumi:"networkType"`
	// The device's private and public IP (v4 and v6) network details. When a device is run without any special network configuration, it will have 3 networks:
	// * Public IPv4 at `metal_device.name.network.0`
	// * IPv6 at `metal_device.name.network.1`
	// * Private IPv4 at `metal_device.name.network.2`
	//   Elastic addresses then stack by type - an assigned public IPv4 will go after the management public IPv4 (to index 1), and will then shift the indices of the IPv6 and private IPv4. Assigned private IPv4 will go after the management private IPv4 (to the end of the network list).
	//   The fields of the network attributes are:
	Networks DeviceNetworkArrayOutput `pulumi:"networks"`
	// The operating system slug. To find the slug, or visit [Operating Systems API docs](https://metal.equinix.com/developers/api/operatingsystems), set your API auth token in the top of the page and see JSON from the API response.
	OperatingSystem pulumi.StringOutput `pulumi:"operatingSystem"`
	// The device plan slug. To find the plan slug, visit [Device plans API docs](https://metal.equinix.com/developers/api/plans), set your auth token in the top of the page and see JSON from the API response.
	Plan pulumi.StringOutput `pulumi:"plan"`
	// Ports assigned to the device
	Ports DevicePortArrayOutput `pulumi:"ports"`
	// The ID of the project in which to create the device
	ProjectId pulumi.StringOutput `pulumi:"projectId"`
	// Array of IDs of the project SSH keys which should be added to the device. If you omit this, SSH keys of all the members of the parent project will be added to the device. If you specify this array, only the listed project SSH keys will be added. Project SSH keys can be created with the ProjectSshKey resource.
	ProjectSshKeyIds pulumi.StringArrayOutput `pulumi:"projectSshKeyIds"`
	// Root password to the server (disabled after 24 hours)
	RootPassword pulumi.StringOutput `pulumi:"rootPassword"`
	// List of IDs of SSH keys deployed in the device, can be both user and project SSH keys
	SshKeyIds pulumi.StringArrayOutput `pulumi:"sshKeyIds"`
	// The status of the device
	State pulumi.StringOutput `pulumi:"state"`
	// JSON for custom partitioning. Only usable on reserved hardware. More information in in the [Custom Partitioning and RAID](https://metal.equinix.com/developers/docs/servers/custom-partitioning-raid/) doc.
	// * Please note that the disks.partitions.size attribute must be a string, not an integer. It can be a number string, or size notation string, e.g. "4G" or "8M" (for gigabytes and megabytes).
	Storage pulumi.StringPtrOutput `pulumi:"storage"`
	// Tags attached to the device
	Tags pulumi.StringArrayOutput `pulumi:"tags"`
	// The timestamp for the last time the device was updated
	Updated pulumi.StringOutput `pulumi:"updated"`
	// A string of the desired User Data for the device.
	UserData pulumi.StringPtrOutput `pulumi:"userData"`
	// Only used for devices in reserved hardware. If set, the deletion of this device will block until the hardware reservation is marked provisionable (about 4 minutes in August 2019).
	WaitForReservationDeprovision pulumi.BoolPtrOutput `pulumi:"waitForReservationDeprovision"`
}

Provides an Equinix Metal device resource. This can be used to create, modify, and delete devices.

> **Note:** All arguments including the `rootPassword` and `userData` will be stored in

the raw state as plain-text.

[Read more about sensitive data in state](https://www.terraform.io/docs/state/sensitive-data.html).

## Example Usage

Create a device and add it to coolProject

```go package main

import (

"github.com/pulumi/pulumi-equinix-metal/sdk/go/equinix-metal"
"github.com/pulumi/pulumi/sdk/v2/go/pulumi"

)

func main() {
	pulumi.Run(func(ctx *pulumi.Context) error {
		_, err := equinix - metal.NewDevice(ctx, "web1", &equinix-metal.DeviceArgs{
			Hostname: pulumi.String("tf.coreos2"),
			Plan:     pulumi.String("t1.small.x86"),
			Facilities: pulumi.StringArray{
				pulumi.String("ewr1"),
			},
			OperatingSystem: pulumi.String("coreos_stable"),
			BillingCycle:    pulumi.String("hourly"),
			ProjectId:       pulumi.Any(local.Project_id),
		})
		if err != nil {
			return err
		}
		return nil
	})
}

```

Same as above, but boot via iPXE initially, using the Ignition Provider for provisioning

```go package main

import (

"github.com/pulumi/pulumi-equinix-metal/sdk/go/equinix-metal"
"github.com/pulumi/pulumi/sdk/v2/go/pulumi"

)

func main() {
	pulumi.Run(func(ctx *pulumi.Context) error {
		_, err := equinix - metal.NewDevice(ctx, "pxe1", &equinix-metal.DeviceArgs{
			Hostname: pulumi.String("tf.coreos2-pxe"),
			Plan:     pulumi.String("t1.small.x86"),
			Facilities: pulumi.StringArray{
				pulumi.String("ewr1"),
			},
			OperatingSystem: pulumi.String("custom_ipxe"),
			BillingCycle:    pulumi.String("hourly"),
			ProjectId:       pulumi.Any(local.Project_id),
			IpxeScriptUrl:   pulumi.String("https://rawgit.com/cloudnativelabs/pxe/master/metal/coreos-stable-metal.ipxe"),
			AlwaysPxe:       pulumi.Bool(false),
			UserData:        pulumi.Any(data.Ignition_config.Example.Rendered),
		})
		if err != nil {
			return err
		}
		return nil
	})
}

```

Create a device without a public IP address, with only a /30 private IPv4 subnet (4 IP addresses)

```go package main

import (

"github.com/pulumi/pulumi-equinix-metal/sdk/go/equinix-metal"
"github.com/pulumi/pulumi/sdk/v2/go/pulumi"

)

func main() {
	pulumi.Run(func(ctx *pulumi.Context) error {
		_, err := equinix - metal.NewDevice(ctx, "web1", &equinix-metal.DeviceArgs{
			Hostname: pulumi.String("tf.coreos2"),
			Plan:     pulumi.String("t1.small.x86"),
			Facilities: pulumi.StringArray{
				pulumi.String("ewr1"),
			},
			OperatingSystem: pulumi.String("coreos_stable"),
			BillingCycle:    pulumi.String("hourly"),
			ProjectId:       pulumi.Any(local.Project_id),
			IpAddresses: equinix - metal.DeviceIpAddressArray{
				&equinix - metal.DeviceIpAddressArgs{
					Type: pulumi.String("private_ipv4"),
					Cidr: pulumi.Int(30),
				},
			},
		})
		if err != nil {
			return err
		}
		return nil
	})
}

```

Deploy device on next-available reserved hardware and do custom partitioning.

```go package main

import (

"fmt"

"github.com/pulumi/pulumi-equinix-metal/sdk/go/equinix-metal"
"github.com/pulumi/pulumi/sdk/v2/go/pulumi"

)

func main() {
	pulumi.Run(func(ctx *pulumi.Context) error {
		_, err := equinix - metal.NewDevice(ctx, "web1", &equinix-metal.DeviceArgs{
			Hostname: pulumi.String("tftest"),
			Plan:     pulumi.String("t1.small.x86"),
			Facilities: pulumi.StringArray{
				pulumi.String("sjc1"),
			},
			OperatingSystem:       pulumi.String("ubuntu_16_04"),
			BillingCycle:          pulumi.String("hourly"),
			ProjectId:             pulumi.Any(local.Project_id),
			HardwareReservationId: pulumi.String("next-available"),
			Storage:               pulumi.String(fmt.Sprintf("%v%v%v%v%v%v%v%v%v%v%v%v%v%v%v%v%v%v%v%v%v%v%v%v%v%v%v%v%v%v%v%v%v%v%v%v%v%v%v%v%v%v%v%v%v%v%v%v%v%v%v%v%v", "{\n", "  \"disks\": [\n", "    {\n", "      \"device\": \"/dev/sda\",\n", "      \"wipeTable\": true,\n", "      \"partitions\": [\n", "        {\n", "          \"label\": \"BIOS\",\n", "          \"number\": 1,\n", "          \"size\": \"4096\"\n", "        },\n", "        {\n", "          \"label\": \"SWAP\",\n", "          \"number\": 2,\n", "          \"size\": \"3993600\"\n", "        },\n", "        {\n", "          \"label\": \"ROOT\",\n", "          \"number\": 3,\n", "          \"size\": \"0\"\n", "        }\n", "      ]\n", "    }\n", "  ],\n", "  \"filesystems\": [\n", "    {\n", "      \"mount\": {\n", "        \"device\": \"/dev/sda3\",\n", "        \"format\": \"ext4\",\n", "        \"point\": \"/\",\n", "        \"create\": {\n", "          \"options\": [\n", "            \"-L\",\n", "            \"ROOT\"\n", "          ]\n", "        }\n", "      }\n", "    },\n", "    {\n", "      \"mount\": {\n", "        \"device\": \"/dev/sda2\",\n", "        \"format\": \"swap\",\n", "        \"point\": \"none\",\n", "        \"create\": {\n", "          \"options\": [\n", "            \"-L\",\n", "            \"SWAP\"\n", "          ]\n", "        }\n", "      }\n", "    }\n", "  ]\n", "}\n")),
		})
		if err != nil {
			return err
		}
		return nil
	})
}

```

func GetDevice

func GetDevice(ctx *pulumi.Context,
	name string, id pulumi.IDInput, state *DeviceState, opts ...pulumi.ResourceOption) (*Device, error)

GetDevice gets an existing Device resource's state with the given name, ID, and optional state properties that are used to uniquely qualify the lookup (nil if not required).

func NewDevice

func NewDevice(ctx *pulumi.Context,
	name string, args *DeviceArgs, opts ...pulumi.ResourceOption) (*Device, error)

NewDevice registers a new resource with the given unique name, arguments, and options.

func (*Device) ElementType

func (*Device) ElementType() reflect.Type

func (*Device) ToDeviceOutput

func (i *Device) ToDeviceOutput() DeviceOutput

func (*Device) ToDeviceOutputWithContext

func (i *Device) ToDeviceOutputWithContext(ctx context.Context) DeviceOutput

func (*Device) ToDevicePtrOutput added in v1.1.2

func (i *Device) ToDevicePtrOutput() DevicePtrOutput

func (*Device) ToDevicePtrOutputWithContext added in v1.1.2

func (i *Device) ToDevicePtrOutputWithContext(ctx context.Context) DevicePtrOutput

type DeviceArgs

type DeviceArgs struct {
	// If true, a device with OS `customIpxe` will
	// continue to boot via iPXE on reboots.
	AlwaysPxe pulumi.BoolPtrInput
	// monthly or hourly
	BillingCycle pulumi.StringInput
	// A string of the desired Custom Data for the device.
	CustomData pulumi.StringPtrInput
	// Description string for the device
	Description pulumi.StringPtrInput
	// List of facility codes with deployment preferences. Equinix Metal API will go through the list and will deploy your device to first facility with free capacity. List items must be facility codes or `any` (a wildcard). To find the facility code, visit [Facilities API docs](https://metal.equinix.com/developers/api/facilities/), set your API auth token in the top of the page and see JSON from the API response.
	Facilities pulumi.StringArrayInput
	// Delete device even if it has volumes attached. Only applies for destroy action.
	ForceDetachVolumes    pulumi.BoolPtrInput
	HardwareReservationId pulumi.StringPtrInput
	// The device name
	Hostname pulumi.StringInput
	// A list of IP address types for the device (structure is documented below).
	IpAddresses DeviceIpAddressArrayInput
	// URL pointing to a hosted iPXE script. More
	// information is in the
	// [Custom iPXE](https://metal.equinix.com/developers/docs/servers/custom-ipxe/)
	// doc.
	IpxeScriptUrl pulumi.StringPtrInput
	// The operating system slug. To find the slug, or visit [Operating Systems API docs](https://metal.equinix.com/developers/api/operatingsystems), set your API auth token in the top of the page and see JSON from the API response.
	OperatingSystem pulumi.StringInput
	// The device plan slug. To find the plan slug, visit [Device plans API docs](https://metal.equinix.com/developers/api/plans), set your auth token in the top of the page and see JSON from the API response.
	Plan pulumi.StringInput
	// The ID of the project in which to create the device
	ProjectId pulumi.StringInput
	// Array of IDs of the project SSH keys which should be added to the device. If you omit this, SSH keys of all the members of the parent project will be added to the device. If you specify this array, only the listed project SSH keys will be added. Project SSH keys can be created with the ProjectSshKey resource.
	ProjectSshKeyIds pulumi.StringArrayInput
	// JSON for custom partitioning. Only usable on reserved hardware. More information in in the [Custom Partitioning and RAID](https://metal.equinix.com/developers/docs/servers/custom-partitioning-raid/) doc.
	// * Please note that the disks.partitions.size attribute must be a string, not an integer. It can be a number string, or size notation string, e.g. "4G" or "8M" (for gigabytes and megabytes).
	Storage pulumi.StringPtrInput
	// Tags attached to the device
	Tags pulumi.StringArrayInput
	// A string of the desired User Data for the device.
	UserData pulumi.StringPtrInput
	// Only used for devices in reserved hardware. If set, the deletion of this device will block until the hardware reservation is marked provisionable (about 4 minutes in August 2019).
	WaitForReservationDeprovision pulumi.BoolPtrInput
}

The set of arguments for constructing a Device resource.

func (DeviceArgs) ElementType

func (DeviceArgs) ElementType() reflect.Type

type DeviceArray added in v1.1.2

type DeviceArray []DeviceInput

func (DeviceArray) ElementType added in v1.1.2

func (DeviceArray) ElementType() reflect.Type

func (DeviceArray) ToDeviceArrayOutput added in v1.1.2

func (i DeviceArray) ToDeviceArrayOutput() DeviceArrayOutput

func (DeviceArray) ToDeviceArrayOutputWithContext added in v1.1.2

func (i DeviceArray) ToDeviceArrayOutputWithContext(ctx context.Context) DeviceArrayOutput

type DeviceArrayInput added in v1.1.2

type DeviceArrayInput interface {
	pulumi.Input

	ToDeviceArrayOutput() DeviceArrayOutput
	ToDeviceArrayOutputWithContext(context.Context) DeviceArrayOutput
}

DeviceArrayInput is an input type that accepts DeviceArray and DeviceArrayOutput values. You can construct a concrete instance of `DeviceArrayInput` via:

DeviceArray{ DeviceArgs{...} }

type DeviceArrayOutput added in v1.1.2

type DeviceArrayOutput struct{ *pulumi.OutputState }

func (DeviceArrayOutput) ElementType added in v1.1.2

func (DeviceArrayOutput) ElementType() reflect.Type

func (DeviceArrayOutput) Index added in v1.1.2

func (DeviceArrayOutput) ToDeviceArrayOutput added in v1.1.2

func (o DeviceArrayOutput) ToDeviceArrayOutput() DeviceArrayOutput

func (DeviceArrayOutput) ToDeviceArrayOutputWithContext added in v1.1.2

func (o DeviceArrayOutput) ToDeviceArrayOutputWithContext(ctx context.Context) DeviceArrayOutput

type DeviceInput

type DeviceInput interface {
	pulumi.Input

	ToDeviceOutput() DeviceOutput
	ToDeviceOutputWithContext(ctx context.Context) DeviceOutput
}

type DeviceIpAddress

type DeviceIpAddress struct {
	// CIDR suffix for IP address block to be assigned, i.e. amount of addresses.
	Cidr *int `pulumi:"cidr"`
	// String of UUID of IP block reservations from which the public IPv4 address should be taken.
	ReservationIds []string `pulumi:"reservationIds"`
	// One of [`privateIpv4`, `publicIpv4`, `publicIpv6`]
	Type string `pulumi:"type"`
}

type DeviceIpAddressArgs

type DeviceIpAddressArgs struct {
	// CIDR suffix for IP address block to be assigned, i.e. amount of addresses.
	Cidr pulumi.IntPtrInput `pulumi:"cidr"`
	// String of UUID of IP block reservations from which the public IPv4 address should be taken.
	ReservationIds pulumi.StringArrayInput `pulumi:"reservationIds"`
	// One of [`privateIpv4`, `publicIpv4`, `publicIpv6`]
	Type pulumi.StringInput `pulumi:"type"`
}

func (DeviceIpAddressArgs) ElementType

func (DeviceIpAddressArgs) ElementType() reflect.Type

func (DeviceIpAddressArgs) ToDeviceIpAddressOutput

func (i DeviceIpAddressArgs) ToDeviceIpAddressOutput() DeviceIpAddressOutput

func (DeviceIpAddressArgs) ToDeviceIpAddressOutputWithContext

func (i DeviceIpAddressArgs) ToDeviceIpAddressOutputWithContext(ctx context.Context) DeviceIpAddressOutput

type DeviceIpAddressArray

type DeviceIpAddressArray []DeviceIpAddressInput

func (DeviceIpAddressArray) ElementType

func (DeviceIpAddressArray) ElementType() reflect.Type

func (DeviceIpAddressArray) ToDeviceIpAddressArrayOutput

func (i DeviceIpAddressArray) ToDeviceIpAddressArrayOutput() DeviceIpAddressArrayOutput

func (DeviceIpAddressArray) ToDeviceIpAddressArrayOutputWithContext

func (i DeviceIpAddressArray) ToDeviceIpAddressArrayOutputWithContext(ctx context.Context) DeviceIpAddressArrayOutput

type DeviceIpAddressArrayInput

type DeviceIpAddressArrayInput interface {
	pulumi.Input

	ToDeviceIpAddressArrayOutput() DeviceIpAddressArrayOutput
	ToDeviceIpAddressArrayOutputWithContext(context.Context) DeviceIpAddressArrayOutput
}

DeviceIpAddressArrayInput is an input type that accepts DeviceIpAddressArray and DeviceIpAddressArrayOutput values. You can construct a concrete instance of `DeviceIpAddressArrayInput` via:

DeviceIpAddressArray{ DeviceIpAddressArgs{...} }

type DeviceIpAddressArrayOutput

type DeviceIpAddressArrayOutput struct{ *pulumi.OutputState }

func (DeviceIpAddressArrayOutput) ElementType

func (DeviceIpAddressArrayOutput) ElementType() reflect.Type

func (DeviceIpAddressArrayOutput) Index

func (DeviceIpAddressArrayOutput) ToDeviceIpAddressArrayOutput

func (o DeviceIpAddressArrayOutput) ToDeviceIpAddressArrayOutput() DeviceIpAddressArrayOutput

func (DeviceIpAddressArrayOutput) ToDeviceIpAddressArrayOutputWithContext

func (o DeviceIpAddressArrayOutput) ToDeviceIpAddressArrayOutputWithContext(ctx context.Context) DeviceIpAddressArrayOutput

type DeviceIpAddressInput

type DeviceIpAddressInput interface {
	pulumi.Input

	ToDeviceIpAddressOutput() DeviceIpAddressOutput
	ToDeviceIpAddressOutputWithContext(context.Context) DeviceIpAddressOutput
}

DeviceIpAddressInput is an input type that accepts DeviceIpAddressArgs and DeviceIpAddressOutput values. You can construct a concrete instance of `DeviceIpAddressInput` via:

DeviceIpAddressArgs{...}

type DeviceIpAddressOutput

type DeviceIpAddressOutput struct{ *pulumi.OutputState }

func (DeviceIpAddressOutput) Cidr

CIDR suffix for IP address block to be assigned, i.e. amount of addresses.

func (DeviceIpAddressOutput) ElementType

func (DeviceIpAddressOutput) ElementType() reflect.Type

func (DeviceIpAddressOutput) ReservationIds

func (o DeviceIpAddressOutput) ReservationIds() pulumi.StringArrayOutput

String of UUID of IP block reservations from which the public IPv4 address should be taken.

func (DeviceIpAddressOutput) ToDeviceIpAddressOutput

func (o DeviceIpAddressOutput) ToDeviceIpAddressOutput() DeviceIpAddressOutput

func (DeviceIpAddressOutput) ToDeviceIpAddressOutputWithContext

func (o DeviceIpAddressOutput) ToDeviceIpAddressOutputWithContext(ctx context.Context) DeviceIpAddressOutput

func (DeviceIpAddressOutput) Type

One of [`privateIpv4`, `publicIpv4`, `publicIpv6`]

type DeviceMap added in v1.1.2

type DeviceMap map[string]DeviceInput

func (DeviceMap) ElementType added in v1.1.2

func (DeviceMap) ElementType() reflect.Type

func (DeviceMap) ToDeviceMapOutput added in v1.1.2

func (i DeviceMap) ToDeviceMapOutput() DeviceMapOutput

func (DeviceMap) ToDeviceMapOutputWithContext added in v1.1.2

func (i DeviceMap) ToDeviceMapOutputWithContext(ctx context.Context) DeviceMapOutput

type DeviceMapInput added in v1.1.2

type DeviceMapInput interface {
	pulumi.Input

	ToDeviceMapOutput() DeviceMapOutput
	ToDeviceMapOutputWithContext(context.Context) DeviceMapOutput
}

DeviceMapInput is an input type that accepts DeviceMap and DeviceMapOutput values. You can construct a concrete instance of `DeviceMapInput` via:

DeviceMap{ "key": DeviceArgs{...} }

type DeviceMapOutput added in v1.1.2

type DeviceMapOutput struct{ *pulumi.OutputState }

func (DeviceMapOutput) ElementType added in v1.1.2

func (DeviceMapOutput) ElementType() reflect.Type

func (DeviceMapOutput) MapIndex added in v1.1.2

func (DeviceMapOutput) ToDeviceMapOutput added in v1.1.2

func (o DeviceMapOutput) ToDeviceMapOutput() DeviceMapOutput

func (DeviceMapOutput) ToDeviceMapOutputWithContext added in v1.1.2

func (o DeviceMapOutput) ToDeviceMapOutputWithContext(ctx context.Context) DeviceMapOutput

type DeviceNetwork

type DeviceNetwork struct {
	// IPv4 or IPv6 address string
	Address *string `pulumi:"address"`
	// CIDR suffix for IP address block to be assigned, i.e. amount of addresses.
	Cidr *int `pulumi:"cidr"`
	// IP version - "4" or "6"
	// * `networkType` Network type of a device, used in [Layer 2 networking](https://metal.equinix.com/developers/docs/networking/layer2/). Will be one of `layer3`, `hybrid`, `layer2-individual` and `layer2-bonded`.
	Family *int `pulumi:"family"`
	// address of router
	Gateway *string `pulumi:"gateway"`
	// whether the address is routable from the Internet
	Public *bool `pulumi:"public"`
}

type DeviceNetworkArgs

type DeviceNetworkArgs struct {
	// IPv4 or IPv6 address string
	Address pulumi.StringPtrInput `pulumi:"address"`
	// CIDR suffix for IP address block to be assigned, i.e. amount of addresses.
	Cidr pulumi.IntPtrInput `pulumi:"cidr"`
	// IP version - "4" or "6"
	// * `networkType` Network type of a device, used in [Layer 2 networking](https://metal.equinix.com/developers/docs/networking/layer2/). Will be one of `layer3`, `hybrid`, `layer2-individual` and `layer2-bonded`.
	Family pulumi.IntPtrInput `pulumi:"family"`
	// address of router
	Gateway pulumi.StringPtrInput `pulumi:"gateway"`
	// whether the address is routable from the Internet
	Public pulumi.BoolPtrInput `pulumi:"public"`
}

func (DeviceNetworkArgs) ElementType

func (DeviceNetworkArgs) ElementType() reflect.Type

func (DeviceNetworkArgs) ToDeviceNetworkOutput

func (i DeviceNetworkArgs) ToDeviceNetworkOutput() DeviceNetworkOutput

func (DeviceNetworkArgs) ToDeviceNetworkOutputWithContext

func (i DeviceNetworkArgs) ToDeviceNetworkOutputWithContext(ctx context.Context) DeviceNetworkOutput

type DeviceNetworkArray

type DeviceNetworkArray []DeviceNetworkInput

func (DeviceNetworkArray) ElementType

func (DeviceNetworkArray) ElementType() reflect.Type

func (DeviceNetworkArray) ToDeviceNetworkArrayOutput

func (i DeviceNetworkArray) ToDeviceNetworkArrayOutput() DeviceNetworkArrayOutput

func (DeviceNetworkArray) ToDeviceNetworkArrayOutputWithContext

func (i DeviceNetworkArray) ToDeviceNetworkArrayOutputWithContext(ctx context.Context) DeviceNetworkArrayOutput

type DeviceNetworkArrayInput

type DeviceNetworkArrayInput interface {
	pulumi.Input

	ToDeviceNetworkArrayOutput() DeviceNetworkArrayOutput
	ToDeviceNetworkArrayOutputWithContext(context.Context) DeviceNetworkArrayOutput
}

DeviceNetworkArrayInput is an input type that accepts DeviceNetworkArray and DeviceNetworkArrayOutput values. You can construct a concrete instance of `DeviceNetworkArrayInput` via:

DeviceNetworkArray{ DeviceNetworkArgs{...} }

type DeviceNetworkArrayOutput

type DeviceNetworkArrayOutput struct{ *pulumi.OutputState }

func (DeviceNetworkArrayOutput) ElementType

func (DeviceNetworkArrayOutput) ElementType() reflect.Type

func (DeviceNetworkArrayOutput) Index

func (DeviceNetworkArrayOutput) ToDeviceNetworkArrayOutput

func (o DeviceNetworkArrayOutput) ToDeviceNetworkArrayOutput() DeviceNetworkArrayOutput

func (DeviceNetworkArrayOutput) ToDeviceNetworkArrayOutputWithContext

func (o DeviceNetworkArrayOutput) ToDeviceNetworkArrayOutputWithContext(ctx context.Context) DeviceNetworkArrayOutput

type DeviceNetworkInput

type DeviceNetworkInput interface {
	pulumi.Input

	ToDeviceNetworkOutput() DeviceNetworkOutput
	ToDeviceNetworkOutputWithContext(context.Context) DeviceNetworkOutput
}

DeviceNetworkInput is an input type that accepts DeviceNetworkArgs and DeviceNetworkOutput values. You can construct a concrete instance of `DeviceNetworkInput` via:

DeviceNetworkArgs{...}

type DeviceNetworkOutput

type DeviceNetworkOutput struct{ *pulumi.OutputState }

func (DeviceNetworkOutput) Address

IPv4 or IPv6 address string

func (DeviceNetworkOutput) Cidr

CIDR suffix for IP address block to be assigned, i.e. amount of addresses.

func (DeviceNetworkOutput) ElementType

func (DeviceNetworkOutput) ElementType() reflect.Type

func (DeviceNetworkOutput) Family

IP version - "4" or "6" * `networkType` Network type of a device, used in [Layer 2 networking](https://metal.equinix.com/developers/docs/networking/layer2/). Will be one of `layer3`, `hybrid`, `layer2-individual` and `layer2-bonded`.

func (DeviceNetworkOutput) Gateway

address of router

func (DeviceNetworkOutput) Public

whether the address is routable from the Internet

func (DeviceNetworkOutput) ToDeviceNetworkOutput

func (o DeviceNetworkOutput) ToDeviceNetworkOutput() DeviceNetworkOutput

func (DeviceNetworkOutput) ToDeviceNetworkOutputWithContext

func (o DeviceNetworkOutput) ToDeviceNetworkOutputWithContext(ctx context.Context) DeviceNetworkOutput

type DeviceNetworkType

type DeviceNetworkType struct {
	pulumi.CustomResourceState

	// The ID of the device on which the network type should be set.
	DeviceId pulumi.StringOutput `pulumi:"deviceId"`
	// Network type to set. Must be one of `layer3`, `hybrid`, `layer2-individual` and `layer2-bonded`.
	Type pulumi.StringOutput `pulumi:"type"`
}

## Import

This resource can also be imported using existing device ID

```sh

$ pulumi import equinix-metal:index/deviceNetworkType:DeviceNetworkType metal_device_network_type {existing device_id}

```

func GetDeviceNetworkType

func GetDeviceNetworkType(ctx *pulumi.Context,
	name string, id pulumi.IDInput, state *DeviceNetworkTypeState, opts ...pulumi.ResourceOption) (*DeviceNetworkType, error)

GetDeviceNetworkType gets an existing DeviceNetworkType resource's state with the given name, ID, and optional state properties that are used to uniquely qualify the lookup (nil if not required).

func NewDeviceNetworkType

func NewDeviceNetworkType(ctx *pulumi.Context,
	name string, args *DeviceNetworkTypeArgs, opts ...pulumi.ResourceOption) (*DeviceNetworkType, error)

NewDeviceNetworkType registers a new resource with the given unique name, arguments, and options.

func (*DeviceNetworkType) ElementType

func (*DeviceNetworkType) ElementType() reflect.Type

func (*DeviceNetworkType) ToDeviceNetworkTypeOutput

func (i *DeviceNetworkType) ToDeviceNetworkTypeOutput() DeviceNetworkTypeOutput

func (*DeviceNetworkType) ToDeviceNetworkTypeOutputWithContext

func (i *DeviceNetworkType) ToDeviceNetworkTypeOutputWithContext(ctx context.Context) DeviceNetworkTypeOutput

func (*DeviceNetworkType) ToDeviceNetworkTypePtrOutput added in v1.1.2

func (i *DeviceNetworkType) ToDeviceNetworkTypePtrOutput() DeviceNetworkTypePtrOutput

func (*DeviceNetworkType) ToDeviceNetworkTypePtrOutputWithContext added in v1.1.2

func (i *DeviceNetworkType) ToDeviceNetworkTypePtrOutputWithContext(ctx context.Context) DeviceNetworkTypePtrOutput

type DeviceNetworkTypeArgs

type DeviceNetworkTypeArgs struct {
	// The ID of the device on which the network type should be set.
	DeviceId pulumi.StringInput
	// Network type to set. Must be one of `layer3`, `hybrid`, `layer2-individual` and `layer2-bonded`.
	Type pulumi.StringInput
}

The set of arguments for constructing a DeviceNetworkType resource.

func (DeviceNetworkTypeArgs) ElementType

func (DeviceNetworkTypeArgs) ElementType() reflect.Type

type DeviceNetworkTypeArray added in v1.1.2

type DeviceNetworkTypeArray []DeviceNetworkTypeInput

func (DeviceNetworkTypeArray) ElementType added in v1.1.2

func (DeviceNetworkTypeArray) ElementType() reflect.Type

func (DeviceNetworkTypeArray) ToDeviceNetworkTypeArrayOutput added in v1.1.2

func (i DeviceNetworkTypeArray) ToDeviceNetworkTypeArrayOutput() DeviceNetworkTypeArrayOutput

func (DeviceNetworkTypeArray) ToDeviceNetworkTypeArrayOutputWithContext added in v1.1.2

func (i DeviceNetworkTypeArray) ToDeviceNetworkTypeArrayOutputWithContext(ctx context.Context) DeviceNetworkTypeArrayOutput

type DeviceNetworkTypeArrayInput added in v1.1.2

type DeviceNetworkTypeArrayInput interface {
	pulumi.Input

	ToDeviceNetworkTypeArrayOutput() DeviceNetworkTypeArrayOutput
	ToDeviceNetworkTypeArrayOutputWithContext(context.Context) DeviceNetworkTypeArrayOutput
}

DeviceNetworkTypeArrayInput is an input type that accepts DeviceNetworkTypeArray and DeviceNetworkTypeArrayOutput values. You can construct a concrete instance of `DeviceNetworkTypeArrayInput` via:

DeviceNetworkTypeArray{ DeviceNetworkTypeArgs{...} }

type DeviceNetworkTypeArrayOutput added in v1.1.2

type DeviceNetworkTypeArrayOutput struct{ *pulumi.OutputState }

func (DeviceNetworkTypeArrayOutput) ElementType added in v1.1.2

func (DeviceNetworkTypeArrayOutput) Index added in v1.1.2

func (DeviceNetworkTypeArrayOutput) ToDeviceNetworkTypeArrayOutput added in v1.1.2

func (o DeviceNetworkTypeArrayOutput) ToDeviceNetworkTypeArrayOutput() DeviceNetworkTypeArrayOutput

func (DeviceNetworkTypeArrayOutput) ToDeviceNetworkTypeArrayOutputWithContext added in v1.1.2

func (o DeviceNetworkTypeArrayOutput) ToDeviceNetworkTypeArrayOutputWithContext(ctx context.Context) DeviceNetworkTypeArrayOutput

type DeviceNetworkTypeInput

type DeviceNetworkTypeInput interface {
	pulumi.Input

	ToDeviceNetworkTypeOutput() DeviceNetworkTypeOutput
	ToDeviceNetworkTypeOutputWithContext(ctx context.Context) DeviceNetworkTypeOutput
}

type DeviceNetworkTypeMap added in v1.1.2

type DeviceNetworkTypeMap map[string]DeviceNetworkTypeInput

func (DeviceNetworkTypeMap) ElementType added in v1.1.2

func (DeviceNetworkTypeMap) ElementType() reflect.Type

func (DeviceNetworkTypeMap) ToDeviceNetworkTypeMapOutput added in v1.1.2

func (i DeviceNetworkTypeMap) ToDeviceNetworkTypeMapOutput() DeviceNetworkTypeMapOutput

func (DeviceNetworkTypeMap) ToDeviceNetworkTypeMapOutputWithContext added in v1.1.2

func (i DeviceNetworkTypeMap) ToDeviceNetworkTypeMapOutputWithContext(ctx context.Context) DeviceNetworkTypeMapOutput

type DeviceNetworkTypeMapInput added in v1.1.2

type DeviceNetworkTypeMapInput interface {
	pulumi.Input

	ToDeviceNetworkTypeMapOutput() DeviceNetworkTypeMapOutput
	ToDeviceNetworkTypeMapOutputWithContext(context.Context) DeviceNetworkTypeMapOutput
}

DeviceNetworkTypeMapInput is an input type that accepts DeviceNetworkTypeMap and DeviceNetworkTypeMapOutput values. You can construct a concrete instance of `DeviceNetworkTypeMapInput` via:

DeviceNetworkTypeMap{ "key": DeviceNetworkTypeArgs{...} }

type DeviceNetworkTypeMapOutput added in v1.1.2

type DeviceNetworkTypeMapOutput struct{ *pulumi.OutputState }

func (DeviceNetworkTypeMapOutput) ElementType added in v1.1.2

func (DeviceNetworkTypeMapOutput) ElementType() reflect.Type

func (DeviceNetworkTypeMapOutput) MapIndex added in v1.1.2

func (DeviceNetworkTypeMapOutput) ToDeviceNetworkTypeMapOutput added in v1.1.2

func (o DeviceNetworkTypeMapOutput) ToDeviceNetworkTypeMapOutput() DeviceNetworkTypeMapOutput

func (DeviceNetworkTypeMapOutput) ToDeviceNetworkTypeMapOutputWithContext added in v1.1.2

func (o DeviceNetworkTypeMapOutput) ToDeviceNetworkTypeMapOutputWithContext(ctx context.Context) DeviceNetworkTypeMapOutput

type DeviceNetworkTypeOutput

type DeviceNetworkTypeOutput struct {
	*pulumi.OutputState
}

func (DeviceNetworkTypeOutput) ElementType

func (DeviceNetworkTypeOutput) ElementType() reflect.Type

func (DeviceNetworkTypeOutput) ToDeviceNetworkTypeOutput

func (o DeviceNetworkTypeOutput) ToDeviceNetworkTypeOutput() DeviceNetworkTypeOutput

func (DeviceNetworkTypeOutput) ToDeviceNetworkTypeOutputWithContext

func (o DeviceNetworkTypeOutput) ToDeviceNetworkTypeOutputWithContext(ctx context.Context) DeviceNetworkTypeOutput

func (DeviceNetworkTypeOutput) ToDeviceNetworkTypePtrOutput added in v1.1.2

func (o DeviceNetworkTypeOutput) ToDeviceNetworkTypePtrOutput() DeviceNetworkTypePtrOutput

func (DeviceNetworkTypeOutput) ToDeviceNetworkTypePtrOutputWithContext added in v1.1.2

func (o DeviceNetworkTypeOutput) ToDeviceNetworkTypePtrOutputWithContext(ctx context.Context) DeviceNetworkTypePtrOutput

type DeviceNetworkTypePtrInput added in v1.1.2

type DeviceNetworkTypePtrInput interface {
	pulumi.Input

	ToDeviceNetworkTypePtrOutput() DeviceNetworkTypePtrOutput
	ToDeviceNetworkTypePtrOutputWithContext(ctx context.Context) DeviceNetworkTypePtrOutput
}

type DeviceNetworkTypePtrOutput added in v1.1.2

type DeviceNetworkTypePtrOutput struct {
	*pulumi.OutputState
}

func (DeviceNetworkTypePtrOutput) ElementType added in v1.1.2

func (DeviceNetworkTypePtrOutput) ElementType() reflect.Type

func (DeviceNetworkTypePtrOutput) ToDeviceNetworkTypePtrOutput added in v1.1.2

func (o DeviceNetworkTypePtrOutput) ToDeviceNetworkTypePtrOutput() DeviceNetworkTypePtrOutput

func (DeviceNetworkTypePtrOutput) ToDeviceNetworkTypePtrOutputWithContext added in v1.1.2

func (o DeviceNetworkTypePtrOutput) ToDeviceNetworkTypePtrOutputWithContext(ctx context.Context) DeviceNetworkTypePtrOutput

type DeviceNetworkTypeState

type DeviceNetworkTypeState struct {
	// The ID of the device on which the network type should be set.
	DeviceId pulumi.StringPtrInput
	// Network type to set. Must be one of `layer3`, `hybrid`, `layer2-individual` and `layer2-bonded`.
	Type pulumi.StringPtrInput
}

func (DeviceNetworkTypeState) ElementType

func (DeviceNetworkTypeState) ElementType() reflect.Type

type DeviceOutput

type DeviceOutput struct {
	*pulumi.OutputState
}

func (DeviceOutput) ElementType

func (DeviceOutput) ElementType() reflect.Type

func (DeviceOutput) ToDeviceOutput

func (o DeviceOutput) ToDeviceOutput() DeviceOutput

func (DeviceOutput) ToDeviceOutputWithContext

func (o DeviceOutput) ToDeviceOutputWithContext(ctx context.Context) DeviceOutput

func (DeviceOutput) ToDevicePtrOutput added in v1.1.2

func (o DeviceOutput) ToDevicePtrOutput() DevicePtrOutput

func (DeviceOutput) ToDevicePtrOutputWithContext added in v1.1.2

func (o DeviceOutput) ToDevicePtrOutputWithContext(ctx context.Context) DevicePtrOutput

type DevicePort

type DevicePort struct {
	// Whether this port is part of a bond in bonded network setup
	// * `projectId`- The ID of the project the device belongs to
	Bonded *bool `pulumi:"bonded"`
	// ID of the port
	Id *string `pulumi:"id"`
	// MAC address assigned to the port
	Mac *string `pulumi:"mac"`
	// Name of the port (e.g. `eth0`, or `bond0`)
	Name *string `pulumi:"name"`
	// One of [`privateIpv4`, `publicIpv4`, `publicIpv6`]
	Type *string `pulumi:"type"`
}

type DevicePortArgs

type DevicePortArgs struct {
	// Whether this port is part of a bond in bonded network setup
	// * `projectId`- The ID of the project the device belongs to
	Bonded pulumi.BoolPtrInput `pulumi:"bonded"`
	// ID of the port
	Id pulumi.StringPtrInput `pulumi:"id"`
	// MAC address assigned to the port
	Mac pulumi.StringPtrInput `pulumi:"mac"`
	// Name of the port (e.g. `eth0`, or `bond0`)
	Name pulumi.StringPtrInput `pulumi:"name"`
	// One of [`privateIpv4`, `publicIpv4`, `publicIpv6`]
	Type pulumi.StringPtrInput `pulumi:"type"`
}

func (DevicePortArgs) ElementType

func (DevicePortArgs) ElementType() reflect.Type

func (DevicePortArgs) ToDevicePortOutput

func (i DevicePortArgs) ToDevicePortOutput() DevicePortOutput

func (DevicePortArgs) ToDevicePortOutputWithContext

func (i DevicePortArgs) ToDevicePortOutputWithContext(ctx context.Context) DevicePortOutput

type DevicePortArray

type DevicePortArray []DevicePortInput

func (DevicePortArray) ElementType

func (DevicePortArray) ElementType() reflect.Type

func (DevicePortArray) ToDevicePortArrayOutput

func (i DevicePortArray) ToDevicePortArrayOutput() DevicePortArrayOutput

func (DevicePortArray) ToDevicePortArrayOutputWithContext

func (i DevicePortArray) ToDevicePortArrayOutputWithContext(ctx context.Context) DevicePortArrayOutput

type DevicePortArrayInput

type DevicePortArrayInput interface {
	pulumi.Input

	ToDevicePortArrayOutput() DevicePortArrayOutput
	ToDevicePortArrayOutputWithContext(context.Context) DevicePortArrayOutput
}

DevicePortArrayInput is an input type that accepts DevicePortArray and DevicePortArrayOutput values. You can construct a concrete instance of `DevicePortArrayInput` via:

DevicePortArray{ DevicePortArgs{...} }

type DevicePortArrayOutput

type DevicePortArrayOutput struct{ *pulumi.OutputState }

func (DevicePortArrayOutput) ElementType

func (DevicePortArrayOutput) ElementType() reflect.Type

func (DevicePortArrayOutput) Index

func (DevicePortArrayOutput) ToDevicePortArrayOutput

func (o DevicePortArrayOutput) ToDevicePortArrayOutput() DevicePortArrayOutput

func (DevicePortArrayOutput) ToDevicePortArrayOutputWithContext

func (o DevicePortArrayOutput) ToDevicePortArrayOutputWithContext(ctx context.Context) DevicePortArrayOutput

type DevicePortInput

type DevicePortInput interface {
	pulumi.Input

	ToDevicePortOutput() DevicePortOutput
	ToDevicePortOutputWithContext(context.Context) DevicePortOutput
}

DevicePortInput is an input type that accepts DevicePortArgs and DevicePortOutput values. You can construct a concrete instance of `DevicePortInput` via:

DevicePortArgs{...}

type DevicePortOutput

type DevicePortOutput struct{ *pulumi.OutputState }

func (DevicePortOutput) Bonded

Whether this port is part of a bond in bonded network setup * `projectId`- The ID of the project the device belongs to

func (DevicePortOutput) ElementType

func (DevicePortOutput) ElementType() reflect.Type

func (DevicePortOutput) Id

ID of the port

func (DevicePortOutput) Mac

MAC address assigned to the port

func (DevicePortOutput) Name

Name of the port (e.g. `eth0`, or `bond0`)

func (DevicePortOutput) ToDevicePortOutput

func (o DevicePortOutput) ToDevicePortOutput() DevicePortOutput

func (DevicePortOutput) ToDevicePortOutputWithContext

func (o DevicePortOutput) ToDevicePortOutputWithContext(ctx context.Context) DevicePortOutput

func (DevicePortOutput) Type

One of [`privateIpv4`, `publicIpv4`, `publicIpv6`]

type DevicePtrInput added in v1.1.2

type DevicePtrInput interface {
	pulumi.Input

	ToDevicePtrOutput() DevicePtrOutput
	ToDevicePtrOutputWithContext(ctx context.Context) DevicePtrOutput
}

type DevicePtrOutput added in v1.1.2

type DevicePtrOutput struct {
	*pulumi.OutputState
}

func (DevicePtrOutput) ElementType added in v1.1.2

func (DevicePtrOutput) ElementType() reflect.Type

func (DevicePtrOutput) ToDevicePtrOutput added in v1.1.2

func (o DevicePtrOutput) ToDevicePtrOutput() DevicePtrOutput

func (DevicePtrOutput) ToDevicePtrOutputWithContext added in v1.1.2

func (o DevicePtrOutput) ToDevicePtrOutputWithContext(ctx context.Context) DevicePtrOutput

type DeviceState

type DeviceState struct {
	// The ipv4 private IP assigned to the device
	AccessPrivateIpv4 pulumi.StringPtrInput
	// The ipv4 maintenance IP assigned to the device
	AccessPublicIpv4 pulumi.StringPtrInput
	// The ipv6 maintenance IP assigned to the device
	AccessPublicIpv6 pulumi.StringPtrInput
	// If true, a device with OS `customIpxe` will
	// continue to boot via iPXE on reboots.
	AlwaysPxe pulumi.BoolPtrInput
	// monthly or hourly
	BillingCycle pulumi.StringPtrInput
	// The timestamp for when the device was created
	Created pulumi.StringPtrInput
	// A string of the desired Custom Data for the device.
	CustomData pulumi.StringPtrInput
	// The facility where the device is deployed.
	DeployedFacility pulumi.StringPtrInput
	// ID of hardware reservation where this device was deployed. It is useful when using the `next-available` hardware reservation.
	DeployedHardwareReservationId pulumi.StringPtrInput
	// Description string for the device
	Description pulumi.StringPtrInput
	// List of facility codes with deployment preferences. Equinix Metal API will go through the list and will deploy your device to first facility with free capacity. List items must be facility codes or `any` (a wildcard). To find the facility code, visit [Facilities API docs](https://metal.equinix.com/developers/api/facilities/), set your API auth token in the top of the page and see JSON from the API response.
	Facilities pulumi.StringArrayInput
	// Delete device even if it has volumes attached. Only applies for destroy action.
	ForceDetachVolumes    pulumi.BoolPtrInput
	HardwareReservationId pulumi.StringPtrInput
	// The device name
	Hostname pulumi.StringPtrInput
	// A list of IP address types for the device (structure is documented below).
	IpAddresses DeviceIpAddressArrayInput
	// URL pointing to a hosted iPXE script. More
	// information is in the
	// [Custom iPXE](https://metal.equinix.com/developers/docs/servers/custom-ipxe/)
	// doc.
	IpxeScriptUrl pulumi.StringPtrInput
	// Whether the device is locked
	Locked pulumi.BoolPtrInput
	// Deprecated: You should handle Network Type with the new metal_device_network_type resource.
	NetworkType pulumi.StringPtrInput
	// The device's private and public IP (v4 and v6) network details. When a device is run without any special network configuration, it will have 3 networks:
	// * Public IPv4 at `metal_device.name.network.0`
	// * IPv6 at `metal_device.name.network.1`
	// * Private IPv4 at `metal_device.name.network.2`
	//   Elastic addresses then stack by type - an assigned public IPv4 will go after the management public IPv4 (to index 1), and will then shift the indices of the IPv6 and private IPv4. Assigned private IPv4 will go after the management private IPv4 (to the end of the network list).
	//   The fields of the network attributes are:
	Networks DeviceNetworkArrayInput
	// The operating system slug. To find the slug, or visit [Operating Systems API docs](https://metal.equinix.com/developers/api/operatingsystems), set your API auth token in the top of the page and see JSON from the API response.
	OperatingSystem pulumi.StringPtrInput
	// The device plan slug. To find the plan slug, visit [Device plans API docs](https://metal.equinix.com/developers/api/plans), set your auth token in the top of the page and see JSON from the API response.
	Plan pulumi.StringPtrInput
	// Ports assigned to the device
	Ports DevicePortArrayInput
	// The ID of the project in which to create the device
	ProjectId pulumi.StringPtrInput
	// Array of IDs of the project SSH keys which should be added to the device. If you omit this, SSH keys of all the members of the parent project will be added to the device. If you specify this array, only the listed project SSH keys will be added. Project SSH keys can be created with the ProjectSshKey resource.
	ProjectSshKeyIds pulumi.StringArrayInput
	// Root password to the server (disabled after 24 hours)
	RootPassword pulumi.StringPtrInput
	// List of IDs of SSH keys deployed in the device, can be both user and project SSH keys
	SshKeyIds pulumi.StringArrayInput
	// The status of the device
	State pulumi.StringPtrInput
	// JSON for custom partitioning. Only usable on reserved hardware. More information in in the [Custom Partitioning and RAID](https://metal.equinix.com/developers/docs/servers/custom-partitioning-raid/) doc.
	// * Please note that the disks.partitions.size attribute must be a string, not an integer. It can be a number string, or size notation string, e.g. "4G" or "8M" (for gigabytes and megabytes).
	Storage pulumi.StringPtrInput
	// Tags attached to the device
	Tags pulumi.StringArrayInput
	// The timestamp for the last time the device was updated
	Updated pulumi.StringPtrInput
	// A string of the desired User Data for the device.
	UserData pulumi.StringPtrInput
	// Only used for devices in reserved hardware. If set, the deletion of this device will block until the hardware reservation is marked provisionable (about 4 minutes in August 2019).
	WaitForReservationDeprovision pulumi.BoolPtrInput
}

func (DeviceState) ElementType

func (DeviceState) ElementType() reflect.Type

type Facility

type Facility pulumi.String

func (Facility) ElementType

func (Facility) ElementType() reflect.Type

func (Facility) ToStringOutput

func (e Facility) ToStringOutput() pulumi.StringOutput

func (Facility) ToStringOutputWithContext

func (e Facility) ToStringOutputWithContext(ctx context.Context) pulumi.StringOutput

func (Facility) ToStringPtrOutput

func (e Facility) ToStringPtrOutput() pulumi.StringPtrOutput

func (Facility) ToStringPtrOutputWithContext

func (e Facility) ToStringPtrOutputWithContext(ctx context.Context) pulumi.StringPtrOutput

type GetDeviceBgpNeighborsArgs

type GetDeviceBgpNeighborsArgs struct {
	// UUID of BGP-enabled device whose neighbors to list
	DeviceId string `pulumi:"deviceId"`
}

A collection of arguments for invoking getDeviceBgpNeighbors.

type GetDeviceBgpNeighborsBgpNeighbor

type GetDeviceBgpNeighborsBgpNeighbor struct {
	// IP address version, 4 or 6
	AddressFamily int `pulumi:"addressFamily"`
	// Local autonomous system number
	CustomerAs int `pulumi:"customerAs"`
	// Local used peer IP address
	CustomerIp string `pulumi:"customerIp"`
	// Whether BGP session is password enabled
	Md5Enabled bool `pulumi:"md5Enabled"`
	// BGP session password in plaintext (not a checksum)
	Md5Password string `pulumi:"md5Password"`
	// Whether the neighbor is in EBGP multihop session
	Multihop bool `pulumi:"multihop"`
	// Peer AS number (different than customerAs for EBGP)
	PeerAs int `pulumi:"peerAs"`
	// Array of IP addresses of this neighbor's peers
	PeerIps []string `pulumi:"peerIps"`
	// Array of incoming routes. Each route has attributes:
	RoutesIns []GetDeviceBgpNeighborsBgpNeighborRoutesIn `pulumi:"routesIns"`
	// Array of outgoing routes in the same format
	RoutesOuts []GetDeviceBgpNeighborsBgpNeighborRoutesOut `pulumi:"routesOuts"`
}

type GetDeviceBgpNeighborsBgpNeighborArgs

type GetDeviceBgpNeighborsBgpNeighborArgs struct {
	// IP address version, 4 or 6
	AddressFamily pulumi.IntInput `pulumi:"addressFamily"`
	// Local autonomous system number
	CustomerAs pulumi.IntInput `pulumi:"customerAs"`
	// Local used peer IP address
	CustomerIp pulumi.StringInput `pulumi:"customerIp"`
	// Whether BGP session is password enabled
	Md5Enabled pulumi.BoolInput `pulumi:"md5Enabled"`
	// BGP session password in plaintext (not a checksum)
	Md5Password pulumi.StringInput `pulumi:"md5Password"`
	// Whether the neighbor is in EBGP multihop session
	Multihop pulumi.BoolInput `pulumi:"multihop"`
	// Peer AS number (different than customerAs for EBGP)
	PeerAs pulumi.IntInput `pulumi:"peerAs"`
	// Array of IP addresses of this neighbor's peers
	PeerIps pulumi.StringArrayInput `pulumi:"peerIps"`
	// Array of incoming routes. Each route has attributes:
	RoutesIns GetDeviceBgpNeighborsBgpNeighborRoutesInArrayInput `pulumi:"routesIns"`
	// Array of outgoing routes in the same format
	RoutesOuts GetDeviceBgpNeighborsBgpNeighborRoutesOutArrayInput `pulumi:"routesOuts"`
}

func (GetDeviceBgpNeighborsBgpNeighborArgs) ElementType

func (GetDeviceBgpNeighborsBgpNeighborArgs) ToGetDeviceBgpNeighborsBgpNeighborOutput

func (i GetDeviceBgpNeighborsBgpNeighborArgs) ToGetDeviceBgpNeighborsBgpNeighborOutput() GetDeviceBgpNeighborsBgpNeighborOutput

func (GetDeviceBgpNeighborsBgpNeighborArgs) ToGetDeviceBgpNeighborsBgpNeighborOutputWithContext

func (i GetDeviceBgpNeighborsBgpNeighborArgs) ToGetDeviceBgpNeighborsBgpNeighborOutputWithContext(ctx context.Context) GetDeviceBgpNeighborsBgpNeighborOutput

type GetDeviceBgpNeighborsBgpNeighborArray

type GetDeviceBgpNeighborsBgpNeighborArray []GetDeviceBgpNeighborsBgpNeighborInput

func (GetDeviceBgpNeighborsBgpNeighborArray) ElementType

func (GetDeviceBgpNeighborsBgpNeighborArray) ToGetDeviceBgpNeighborsBgpNeighborArrayOutput

func (i GetDeviceBgpNeighborsBgpNeighborArray) ToGetDeviceBgpNeighborsBgpNeighborArrayOutput() GetDeviceBgpNeighborsBgpNeighborArrayOutput

func (GetDeviceBgpNeighborsBgpNeighborArray) ToGetDeviceBgpNeighborsBgpNeighborArrayOutputWithContext

func (i GetDeviceBgpNeighborsBgpNeighborArray) ToGetDeviceBgpNeighborsBgpNeighborArrayOutputWithContext(ctx context.Context) GetDeviceBgpNeighborsBgpNeighborArrayOutput

type GetDeviceBgpNeighborsBgpNeighborArrayInput

type GetDeviceBgpNeighborsBgpNeighborArrayInput interface {
	pulumi.Input

	ToGetDeviceBgpNeighborsBgpNeighborArrayOutput() GetDeviceBgpNeighborsBgpNeighborArrayOutput
	ToGetDeviceBgpNeighborsBgpNeighborArrayOutputWithContext(context.Context) GetDeviceBgpNeighborsBgpNeighborArrayOutput
}

GetDeviceBgpNeighborsBgpNeighborArrayInput is an input type that accepts GetDeviceBgpNeighborsBgpNeighborArray and GetDeviceBgpNeighborsBgpNeighborArrayOutput values. You can construct a concrete instance of `GetDeviceBgpNeighborsBgpNeighborArrayInput` via:

GetDeviceBgpNeighborsBgpNeighborArray{ GetDeviceBgpNeighborsBgpNeighborArgs{...} }

type GetDeviceBgpNeighborsBgpNeighborArrayOutput

type GetDeviceBgpNeighborsBgpNeighborArrayOutput struct{ *pulumi.OutputState }

func (GetDeviceBgpNeighborsBgpNeighborArrayOutput) ElementType

func (GetDeviceBgpNeighborsBgpNeighborArrayOutput) Index

func (GetDeviceBgpNeighborsBgpNeighborArrayOutput) ToGetDeviceBgpNeighborsBgpNeighborArrayOutput

func (o GetDeviceBgpNeighborsBgpNeighborArrayOutput) ToGetDeviceBgpNeighborsBgpNeighborArrayOutput() GetDeviceBgpNeighborsBgpNeighborArrayOutput

func (GetDeviceBgpNeighborsBgpNeighborArrayOutput) ToGetDeviceBgpNeighborsBgpNeighborArrayOutputWithContext

func (o GetDeviceBgpNeighborsBgpNeighborArrayOutput) ToGetDeviceBgpNeighborsBgpNeighborArrayOutputWithContext(ctx context.Context) GetDeviceBgpNeighborsBgpNeighborArrayOutput

type GetDeviceBgpNeighborsBgpNeighborInput

type GetDeviceBgpNeighborsBgpNeighborInput interface {
	pulumi.Input

	ToGetDeviceBgpNeighborsBgpNeighborOutput() GetDeviceBgpNeighborsBgpNeighborOutput
	ToGetDeviceBgpNeighborsBgpNeighborOutputWithContext(context.Context) GetDeviceBgpNeighborsBgpNeighborOutput
}

GetDeviceBgpNeighborsBgpNeighborInput is an input type that accepts GetDeviceBgpNeighborsBgpNeighborArgs and GetDeviceBgpNeighborsBgpNeighborOutput values. You can construct a concrete instance of `GetDeviceBgpNeighborsBgpNeighborInput` via:

GetDeviceBgpNeighborsBgpNeighborArgs{...}

type GetDeviceBgpNeighborsBgpNeighborOutput

type GetDeviceBgpNeighborsBgpNeighborOutput struct{ *pulumi.OutputState }

func (GetDeviceBgpNeighborsBgpNeighborOutput) AddressFamily

IP address version, 4 or 6

func (GetDeviceBgpNeighborsBgpNeighborOutput) CustomerAs

Local autonomous system number

func (GetDeviceBgpNeighborsBgpNeighborOutput) CustomerIp

Local used peer IP address

func (GetDeviceBgpNeighborsBgpNeighborOutput) ElementType

func (GetDeviceBgpNeighborsBgpNeighborOutput) Md5Enabled

Whether BGP session is password enabled

func (GetDeviceBgpNeighborsBgpNeighborOutput) Md5Password

BGP session password in plaintext (not a checksum)

func (GetDeviceBgpNeighborsBgpNeighborOutput) Multihop

Whether the neighbor is in EBGP multihop session

func (GetDeviceBgpNeighborsBgpNeighborOutput) PeerAs

Peer AS number (different than customerAs for EBGP)

func (GetDeviceBgpNeighborsBgpNeighborOutput) PeerIps

Array of IP addresses of this neighbor's peers

func (GetDeviceBgpNeighborsBgpNeighborOutput) RoutesIns

Array of incoming routes. Each route has attributes:

func (GetDeviceBgpNeighborsBgpNeighborOutput) RoutesOuts

Array of outgoing routes in the same format

func (GetDeviceBgpNeighborsBgpNeighborOutput) ToGetDeviceBgpNeighborsBgpNeighborOutput

func (o GetDeviceBgpNeighborsBgpNeighborOutput) ToGetDeviceBgpNeighborsBgpNeighborOutput() GetDeviceBgpNeighborsBgpNeighborOutput

func (GetDeviceBgpNeighborsBgpNeighborOutput) ToGetDeviceBgpNeighborsBgpNeighborOutputWithContext

func (o GetDeviceBgpNeighborsBgpNeighborOutput) ToGetDeviceBgpNeighborsBgpNeighborOutputWithContext(ctx context.Context) GetDeviceBgpNeighborsBgpNeighborOutput

type GetDeviceBgpNeighborsBgpNeighborRoutesIn

type GetDeviceBgpNeighborsBgpNeighborRoutesIn struct {
	// (bool) Whether the route is exact
	Exact bool `pulumi:"exact"`
	// CIDR expression of route (IP/mask)
	Route string `pulumi:"route"`
}

type GetDeviceBgpNeighborsBgpNeighborRoutesInArgs

type GetDeviceBgpNeighborsBgpNeighborRoutesInArgs struct {
	// (bool) Whether the route is exact
	Exact pulumi.BoolInput `pulumi:"exact"`
	// CIDR expression of route (IP/mask)
	Route pulumi.StringInput `pulumi:"route"`
}

func (GetDeviceBgpNeighborsBgpNeighborRoutesInArgs) ElementType

func (GetDeviceBgpNeighborsBgpNeighborRoutesInArgs) ToGetDeviceBgpNeighborsBgpNeighborRoutesInOutput

func (i GetDeviceBgpNeighborsBgpNeighborRoutesInArgs) ToGetDeviceBgpNeighborsBgpNeighborRoutesInOutput() GetDeviceBgpNeighborsBgpNeighborRoutesInOutput

func (GetDeviceBgpNeighborsBgpNeighborRoutesInArgs) ToGetDeviceBgpNeighborsBgpNeighborRoutesInOutputWithContext

func (i GetDeviceBgpNeighborsBgpNeighborRoutesInArgs) ToGetDeviceBgpNeighborsBgpNeighborRoutesInOutputWithContext(ctx context.Context) GetDeviceBgpNeighborsBgpNeighborRoutesInOutput

type GetDeviceBgpNeighborsBgpNeighborRoutesInArray

type GetDeviceBgpNeighborsBgpNeighborRoutesInArray []GetDeviceBgpNeighborsBgpNeighborRoutesInInput

func (GetDeviceBgpNeighborsBgpNeighborRoutesInArray) ElementType

func (GetDeviceBgpNeighborsBgpNeighborRoutesInArray) ToGetDeviceBgpNeighborsBgpNeighborRoutesInArrayOutput

func (i GetDeviceBgpNeighborsBgpNeighborRoutesInArray) ToGetDeviceBgpNeighborsBgpNeighborRoutesInArrayOutput() GetDeviceBgpNeighborsBgpNeighborRoutesInArrayOutput

func (GetDeviceBgpNeighborsBgpNeighborRoutesInArray) ToGetDeviceBgpNeighborsBgpNeighborRoutesInArrayOutputWithContext

func (i GetDeviceBgpNeighborsBgpNeighborRoutesInArray) ToGetDeviceBgpNeighborsBgpNeighborRoutesInArrayOutputWithContext(ctx context.Context) GetDeviceBgpNeighborsBgpNeighborRoutesInArrayOutput

type GetDeviceBgpNeighborsBgpNeighborRoutesInArrayInput

type GetDeviceBgpNeighborsBgpNeighborRoutesInArrayInput interface {
	pulumi.Input

	ToGetDeviceBgpNeighborsBgpNeighborRoutesInArrayOutput() GetDeviceBgpNeighborsBgpNeighborRoutesInArrayOutput
	ToGetDeviceBgpNeighborsBgpNeighborRoutesInArrayOutputWithContext(context.Context) GetDeviceBgpNeighborsBgpNeighborRoutesInArrayOutput
}

GetDeviceBgpNeighborsBgpNeighborRoutesInArrayInput is an input type that accepts GetDeviceBgpNeighborsBgpNeighborRoutesInArray and GetDeviceBgpNeighborsBgpNeighborRoutesInArrayOutput values. You can construct a concrete instance of `GetDeviceBgpNeighborsBgpNeighborRoutesInArrayInput` via:

GetDeviceBgpNeighborsBgpNeighborRoutesInArray{ GetDeviceBgpNeighborsBgpNeighborRoutesInArgs{...} }

type GetDeviceBgpNeighborsBgpNeighborRoutesInArrayOutput

type GetDeviceBgpNeighborsBgpNeighborRoutesInArrayOutput struct{ *pulumi.OutputState }

func (GetDeviceBgpNeighborsBgpNeighborRoutesInArrayOutput) ElementType

func (GetDeviceBgpNeighborsBgpNeighborRoutesInArrayOutput) Index

func (GetDeviceBgpNeighborsBgpNeighborRoutesInArrayOutput) ToGetDeviceBgpNeighborsBgpNeighborRoutesInArrayOutput

func (o GetDeviceBgpNeighborsBgpNeighborRoutesInArrayOutput) ToGetDeviceBgpNeighborsBgpNeighborRoutesInArrayOutput() GetDeviceBgpNeighborsBgpNeighborRoutesInArrayOutput

func (GetDeviceBgpNeighborsBgpNeighborRoutesInArrayOutput) ToGetDeviceBgpNeighborsBgpNeighborRoutesInArrayOutputWithContext

func (o GetDeviceBgpNeighborsBgpNeighborRoutesInArrayOutput) ToGetDeviceBgpNeighborsBgpNeighborRoutesInArrayOutputWithContext(ctx context.Context) GetDeviceBgpNeighborsBgpNeighborRoutesInArrayOutput

type GetDeviceBgpNeighborsBgpNeighborRoutesInInput

type GetDeviceBgpNeighborsBgpNeighborRoutesInInput interface {
	pulumi.Input

	ToGetDeviceBgpNeighborsBgpNeighborRoutesInOutput() GetDeviceBgpNeighborsBgpNeighborRoutesInOutput
	ToGetDeviceBgpNeighborsBgpNeighborRoutesInOutputWithContext(context.Context) GetDeviceBgpNeighborsBgpNeighborRoutesInOutput
}

GetDeviceBgpNeighborsBgpNeighborRoutesInInput is an input type that accepts GetDeviceBgpNeighborsBgpNeighborRoutesInArgs and GetDeviceBgpNeighborsBgpNeighborRoutesInOutput values. You can construct a concrete instance of `GetDeviceBgpNeighborsBgpNeighborRoutesInInput` via:

GetDeviceBgpNeighborsBgpNeighborRoutesInArgs{...}

type GetDeviceBgpNeighborsBgpNeighborRoutesInOutput

type GetDeviceBgpNeighborsBgpNeighborRoutesInOutput struct{ *pulumi.OutputState }

func (GetDeviceBgpNeighborsBgpNeighborRoutesInOutput) ElementType

func (GetDeviceBgpNeighborsBgpNeighborRoutesInOutput) Exact

(bool) Whether the route is exact

func (GetDeviceBgpNeighborsBgpNeighborRoutesInOutput) Route

CIDR expression of route (IP/mask)

func (GetDeviceBgpNeighborsBgpNeighborRoutesInOutput) ToGetDeviceBgpNeighborsBgpNeighborRoutesInOutput

func (o GetDeviceBgpNeighborsBgpNeighborRoutesInOutput) ToGetDeviceBgpNeighborsBgpNeighborRoutesInOutput() GetDeviceBgpNeighborsBgpNeighborRoutesInOutput

func (GetDeviceBgpNeighborsBgpNeighborRoutesInOutput) ToGetDeviceBgpNeighborsBgpNeighborRoutesInOutputWithContext

func (o GetDeviceBgpNeighborsBgpNeighborRoutesInOutput) ToGetDeviceBgpNeighborsBgpNeighborRoutesInOutputWithContext(ctx context.Context) GetDeviceBgpNeighborsBgpNeighborRoutesInOutput

type GetDeviceBgpNeighborsBgpNeighborRoutesOut

type GetDeviceBgpNeighborsBgpNeighborRoutesOut struct {
	// (bool) Whether the route is exact
	Exact bool `pulumi:"exact"`
	// CIDR expression of route (IP/mask)
	Route string `pulumi:"route"`
}

type GetDeviceBgpNeighborsBgpNeighborRoutesOutArgs

type GetDeviceBgpNeighborsBgpNeighborRoutesOutArgs struct {
	// (bool) Whether the route is exact
	Exact pulumi.BoolInput `pulumi:"exact"`
	// CIDR expression of route (IP/mask)
	Route pulumi.StringInput `pulumi:"route"`
}

func (GetDeviceBgpNeighborsBgpNeighborRoutesOutArgs) ElementType

func (GetDeviceBgpNeighborsBgpNeighborRoutesOutArgs) ToGetDeviceBgpNeighborsBgpNeighborRoutesOutOutput

func (i GetDeviceBgpNeighborsBgpNeighborRoutesOutArgs) ToGetDeviceBgpNeighborsBgpNeighborRoutesOutOutput() GetDeviceBgpNeighborsBgpNeighborRoutesOutOutput

func (GetDeviceBgpNeighborsBgpNeighborRoutesOutArgs) ToGetDeviceBgpNeighborsBgpNeighborRoutesOutOutputWithContext

func (i GetDeviceBgpNeighborsBgpNeighborRoutesOutArgs) ToGetDeviceBgpNeighborsBgpNeighborRoutesOutOutputWithContext(ctx context.Context) GetDeviceBgpNeighborsBgpNeighborRoutesOutOutput

type GetDeviceBgpNeighborsBgpNeighborRoutesOutArray

type GetDeviceBgpNeighborsBgpNeighborRoutesOutArray []GetDeviceBgpNeighborsBgpNeighborRoutesOutInput

func (GetDeviceBgpNeighborsBgpNeighborRoutesOutArray) ElementType

func (GetDeviceBgpNeighborsBgpNeighborRoutesOutArray) ToGetDeviceBgpNeighborsBgpNeighborRoutesOutArrayOutput

func (i GetDeviceBgpNeighborsBgpNeighborRoutesOutArray) ToGetDeviceBgpNeighborsBgpNeighborRoutesOutArrayOutput() GetDeviceBgpNeighborsBgpNeighborRoutesOutArrayOutput

func (GetDeviceBgpNeighborsBgpNeighborRoutesOutArray) ToGetDeviceBgpNeighborsBgpNeighborRoutesOutArrayOutputWithContext

func (i GetDeviceBgpNeighborsBgpNeighborRoutesOutArray) ToGetDeviceBgpNeighborsBgpNeighborRoutesOutArrayOutputWithContext(ctx context.Context) GetDeviceBgpNeighborsBgpNeighborRoutesOutArrayOutput

type GetDeviceBgpNeighborsBgpNeighborRoutesOutArrayInput

type GetDeviceBgpNeighborsBgpNeighborRoutesOutArrayInput interface {
	pulumi.Input

	ToGetDeviceBgpNeighborsBgpNeighborRoutesOutArrayOutput() GetDeviceBgpNeighborsBgpNeighborRoutesOutArrayOutput
	ToGetDeviceBgpNeighborsBgpNeighborRoutesOutArrayOutputWithContext(context.Context) GetDeviceBgpNeighborsBgpNeighborRoutesOutArrayOutput
}

GetDeviceBgpNeighborsBgpNeighborRoutesOutArrayInput is an input type that accepts GetDeviceBgpNeighborsBgpNeighborRoutesOutArray and GetDeviceBgpNeighborsBgpNeighborRoutesOutArrayOutput values. You can construct a concrete instance of `GetDeviceBgpNeighborsBgpNeighborRoutesOutArrayInput` via:

GetDeviceBgpNeighborsBgpNeighborRoutesOutArray{ GetDeviceBgpNeighborsBgpNeighborRoutesOutArgs{...} }

type GetDeviceBgpNeighborsBgpNeighborRoutesOutArrayOutput

type GetDeviceBgpNeighborsBgpNeighborRoutesOutArrayOutput struct{ *pulumi.OutputState }

func (GetDeviceBgpNeighborsBgpNeighborRoutesOutArrayOutput) ElementType

func (GetDeviceBgpNeighborsBgpNeighborRoutesOutArrayOutput) Index

func (GetDeviceBgpNeighborsBgpNeighborRoutesOutArrayOutput) ToGetDeviceBgpNeighborsBgpNeighborRoutesOutArrayOutput

func (GetDeviceBgpNeighborsBgpNeighborRoutesOutArrayOutput) ToGetDeviceBgpNeighborsBgpNeighborRoutesOutArrayOutputWithContext

func (o GetDeviceBgpNeighborsBgpNeighborRoutesOutArrayOutput) ToGetDeviceBgpNeighborsBgpNeighborRoutesOutArrayOutputWithContext(ctx context.Context) GetDeviceBgpNeighborsBgpNeighborRoutesOutArrayOutput

type GetDeviceBgpNeighborsBgpNeighborRoutesOutInput

type GetDeviceBgpNeighborsBgpNeighborRoutesOutInput interface {
	pulumi.Input

	ToGetDeviceBgpNeighborsBgpNeighborRoutesOutOutput() GetDeviceBgpNeighborsBgpNeighborRoutesOutOutput
	ToGetDeviceBgpNeighborsBgpNeighborRoutesOutOutputWithContext(context.Context) GetDeviceBgpNeighborsBgpNeighborRoutesOutOutput
}

GetDeviceBgpNeighborsBgpNeighborRoutesOutInput is an input type that accepts GetDeviceBgpNeighborsBgpNeighborRoutesOutArgs and GetDeviceBgpNeighborsBgpNeighborRoutesOutOutput values. You can construct a concrete instance of `GetDeviceBgpNeighborsBgpNeighborRoutesOutInput` via:

GetDeviceBgpNeighborsBgpNeighborRoutesOutArgs{...}

type GetDeviceBgpNeighborsBgpNeighborRoutesOutOutput

type GetDeviceBgpNeighborsBgpNeighborRoutesOutOutput struct{ *pulumi.OutputState }

func (GetDeviceBgpNeighborsBgpNeighborRoutesOutOutput) ElementType

func (GetDeviceBgpNeighborsBgpNeighborRoutesOutOutput) Exact

(bool) Whether the route is exact

func (GetDeviceBgpNeighborsBgpNeighborRoutesOutOutput) Route

CIDR expression of route (IP/mask)

func (GetDeviceBgpNeighborsBgpNeighborRoutesOutOutput) ToGetDeviceBgpNeighborsBgpNeighborRoutesOutOutput

func (o GetDeviceBgpNeighborsBgpNeighborRoutesOutOutput) ToGetDeviceBgpNeighborsBgpNeighborRoutesOutOutput() GetDeviceBgpNeighborsBgpNeighborRoutesOutOutput

func (GetDeviceBgpNeighborsBgpNeighborRoutesOutOutput) ToGetDeviceBgpNeighborsBgpNeighborRoutesOutOutputWithContext

func (o GetDeviceBgpNeighborsBgpNeighborRoutesOutOutput) ToGetDeviceBgpNeighborsBgpNeighborRoutesOutOutputWithContext(ctx context.Context) GetDeviceBgpNeighborsBgpNeighborRoutesOutOutput

type GetDeviceBgpNeighborsResult

type GetDeviceBgpNeighborsResult struct {
	// array of BGP neighbor records with attributes:
	BgpNeighbors []GetDeviceBgpNeighborsBgpNeighbor `pulumi:"bgpNeighbors"`
	DeviceId     string                             `pulumi:"deviceId"`
	// The provider-assigned unique ID for this managed resource.
	Id string `pulumi:"id"`
}

A collection of values returned by getDeviceBgpNeighbors.

func GetDeviceBgpNeighbors

func GetDeviceBgpNeighbors(ctx *pulumi.Context, args *GetDeviceBgpNeighborsArgs, opts ...pulumi.InvokeOption) (*GetDeviceBgpNeighborsResult, error)

Use this datasource to retrieve list of BGP neighbors of a device in the Equinix Metal host.

To have any BGP neighbors listed, the device must be in BGP-enabled project and have a BGP session assigned.

To learn more about using BGP in Equinix Metal, see the BgpSession resource documentation.

## Example Usage

```go package main

import (

"github.com/pulumi/pulumi-equinix-metal/sdk/go/equinix-metal"
"github.com/pulumi/pulumi/sdk/v2/go/pulumi"

)

func main() {
	pulumi.Run(func(ctx *pulumi.Context) error {
		test, err := equinix - metal.GetDeviceBgpNeighbors(ctx, &equinix-metal.GetDeviceBgpNeighborsArgs{
			DeviceId: "4c641195-25e5-4c3c-b2b7-4cd7a42c7b40",
		}, nil)
		if err != nil {
			return err
		}
		ctx.Export("bgpNeighborsListing", test.BgpNeighbors)
		return nil
	})
}

```

type GetDeviceNetwork

type GetDeviceNetwork struct {
	// IPv4 or IPv6 address string
	Address string `pulumi:"address"`
	// Bit length of the network mask of the address
	Cidr int `pulumi:"cidr"`
	// IP version - "4" or "6"
	Family int `pulumi:"family"`
	// Address of router
	Gateway string `pulumi:"gateway"`
	// Whether the address is routable from the Internet
	Public bool `pulumi:"public"`
}

type GetDeviceNetworkArgs

type GetDeviceNetworkArgs struct {
	// IPv4 or IPv6 address string
	Address pulumi.StringInput `pulumi:"address"`
	// Bit length of the network mask of the address
	Cidr pulumi.IntInput `pulumi:"cidr"`
	// IP version - "4" or "6"
	Family pulumi.IntInput `pulumi:"family"`
	// Address of router
	Gateway pulumi.StringInput `pulumi:"gateway"`
	// Whether the address is routable from the Internet
	Public pulumi.BoolInput `pulumi:"public"`
}

func (GetDeviceNetworkArgs) ElementType

func (GetDeviceNetworkArgs) ElementType() reflect.Type

func (GetDeviceNetworkArgs) ToGetDeviceNetworkOutput

func (i GetDeviceNetworkArgs) ToGetDeviceNetworkOutput() GetDeviceNetworkOutput

func (GetDeviceNetworkArgs) ToGetDeviceNetworkOutputWithContext

func (i GetDeviceNetworkArgs) ToGetDeviceNetworkOutputWithContext(ctx context.Context) GetDeviceNetworkOutput

type GetDeviceNetworkArray

type GetDeviceNetworkArray []GetDeviceNetworkInput

func (GetDeviceNetworkArray) ElementType

func (GetDeviceNetworkArray) ElementType() reflect.Type

func (GetDeviceNetworkArray) ToGetDeviceNetworkArrayOutput

func (i GetDeviceNetworkArray) ToGetDeviceNetworkArrayOutput() GetDeviceNetworkArrayOutput

func (GetDeviceNetworkArray) ToGetDeviceNetworkArrayOutputWithContext

func (i GetDeviceNetworkArray) ToGetDeviceNetworkArrayOutputWithContext(ctx context.Context) GetDeviceNetworkArrayOutput

type GetDeviceNetworkArrayInput

type GetDeviceNetworkArrayInput interface {
	pulumi.Input

	ToGetDeviceNetworkArrayOutput() GetDeviceNetworkArrayOutput
	ToGetDeviceNetworkArrayOutputWithContext(context.Context) GetDeviceNetworkArrayOutput
}

GetDeviceNetworkArrayInput is an input type that accepts GetDeviceNetworkArray and GetDeviceNetworkArrayOutput values. You can construct a concrete instance of `GetDeviceNetworkArrayInput` via:

GetDeviceNetworkArray{ GetDeviceNetworkArgs{...} }

type GetDeviceNetworkArrayOutput

type GetDeviceNetworkArrayOutput struct{ *pulumi.OutputState }

func (GetDeviceNetworkArrayOutput) ElementType

func (GetDeviceNetworkArrayOutput) Index

func (GetDeviceNetworkArrayOutput) ToGetDeviceNetworkArrayOutput

func (o GetDeviceNetworkArrayOutput) ToGetDeviceNetworkArrayOutput() GetDeviceNetworkArrayOutput

func (GetDeviceNetworkArrayOutput) ToGetDeviceNetworkArrayOutputWithContext

func (o GetDeviceNetworkArrayOutput) ToGetDeviceNetworkArrayOutputWithContext(ctx context.Context) GetDeviceNetworkArrayOutput

type GetDeviceNetworkInput

type GetDeviceNetworkInput interface {
	pulumi.Input

	ToGetDeviceNetworkOutput() GetDeviceNetworkOutput
	ToGetDeviceNetworkOutputWithContext(context.Context) GetDeviceNetworkOutput
}

GetDeviceNetworkInput is an input type that accepts GetDeviceNetworkArgs and GetDeviceNetworkOutput values. You can construct a concrete instance of `GetDeviceNetworkInput` via:

GetDeviceNetworkArgs{...}

type GetDeviceNetworkOutput

type GetDeviceNetworkOutput struct{ *pulumi.OutputState }

func (GetDeviceNetworkOutput) Address

IPv4 or IPv6 address string

func (GetDeviceNetworkOutput) Cidr

Bit length of the network mask of the address

func (GetDeviceNetworkOutput) ElementType

func (GetDeviceNetworkOutput) ElementType() reflect.Type

func (GetDeviceNetworkOutput) Family

IP version - "4" or "6"

func (GetDeviceNetworkOutput) Gateway

Address of router

func (GetDeviceNetworkOutput) Public

Whether the address is routable from the Internet

func (GetDeviceNetworkOutput) ToGetDeviceNetworkOutput

func (o GetDeviceNetworkOutput) ToGetDeviceNetworkOutput() GetDeviceNetworkOutput

func (GetDeviceNetworkOutput) ToGetDeviceNetworkOutputWithContext

func (o GetDeviceNetworkOutput) ToGetDeviceNetworkOutputWithContext(ctx context.Context) GetDeviceNetworkOutput

type GetDevicePort

type GetDevicePort struct {
	// Whether this port is part of a bond in bonded network setup
	Bonded bool `pulumi:"bonded"`
	// ID of the port
	Id string `pulumi:"id"`
	// MAC address assigned to the port
	Mac string `pulumi:"mac"`
	// Name of the port (e.g. `eth0`, or `bond0`)
	Name string `pulumi:"name"`
	// Type of the port (e.g. `NetworkPort` or `NetworkBondPort`)
	Type string `pulumi:"type"`
}

type GetDevicePortArgs

type GetDevicePortArgs struct {
	// Whether this port is part of a bond in bonded network setup
	Bonded pulumi.BoolInput `pulumi:"bonded"`
	// ID of the port
	Id pulumi.StringInput `pulumi:"id"`
	// MAC address assigned to the port
	Mac pulumi.StringInput `pulumi:"mac"`
	// Name of the port (e.g. `eth0`, or `bond0`)
	Name pulumi.StringInput `pulumi:"name"`
	// Type of the port (e.g. `NetworkPort` or `NetworkBondPort`)
	Type pulumi.StringInput `pulumi:"type"`
}

func (GetDevicePortArgs) ElementType

func (GetDevicePortArgs) ElementType() reflect.Type

func (GetDevicePortArgs) ToGetDevicePortOutput

func (i GetDevicePortArgs) ToGetDevicePortOutput() GetDevicePortOutput

func (GetDevicePortArgs) ToGetDevicePortOutputWithContext

func (i GetDevicePortArgs) ToGetDevicePortOutputWithContext(ctx context.Context) GetDevicePortOutput

type GetDevicePortArray

type GetDevicePortArray []GetDevicePortInput

func (GetDevicePortArray) ElementType

func (GetDevicePortArray) ElementType() reflect.Type

func (GetDevicePortArray) ToGetDevicePortArrayOutput

func (i GetDevicePortArray) ToGetDevicePortArrayOutput() GetDevicePortArrayOutput

func (GetDevicePortArray) ToGetDevicePortArrayOutputWithContext

func (i GetDevicePortArray) ToGetDevicePortArrayOutputWithContext(ctx context.Context) GetDevicePortArrayOutput

type GetDevicePortArrayInput

type GetDevicePortArrayInput interface {
	pulumi.Input

	ToGetDevicePortArrayOutput() GetDevicePortArrayOutput
	ToGetDevicePortArrayOutputWithContext(context.Context) GetDevicePortArrayOutput
}

GetDevicePortArrayInput is an input type that accepts GetDevicePortArray and GetDevicePortArrayOutput values. You can construct a concrete instance of `GetDevicePortArrayInput` via:

GetDevicePortArray{ GetDevicePortArgs{...} }

type GetDevicePortArrayOutput

type GetDevicePortArrayOutput struct{ *pulumi.OutputState }

func (GetDevicePortArrayOutput) ElementType

func (GetDevicePortArrayOutput) ElementType() reflect.Type

func (GetDevicePortArrayOutput) Index

func (GetDevicePortArrayOutput) ToGetDevicePortArrayOutput

func (o GetDevicePortArrayOutput) ToGetDevicePortArrayOutput() GetDevicePortArrayOutput

func (GetDevicePortArrayOutput) ToGetDevicePortArrayOutputWithContext

func (o GetDevicePortArrayOutput) ToGetDevicePortArrayOutputWithContext(ctx context.Context) GetDevicePortArrayOutput

type GetDevicePortInput

type GetDevicePortInput interface {
	pulumi.Input

	ToGetDevicePortOutput() GetDevicePortOutput
	ToGetDevicePortOutputWithContext(context.Context) GetDevicePortOutput
}

GetDevicePortInput is an input type that accepts GetDevicePortArgs and GetDevicePortOutput values. You can construct a concrete instance of `GetDevicePortInput` via:

GetDevicePortArgs{...}

type GetDevicePortOutput

type GetDevicePortOutput struct{ *pulumi.OutputState }

func (GetDevicePortOutput) Bonded

Whether this port is part of a bond in bonded network setup

func (GetDevicePortOutput) ElementType

func (GetDevicePortOutput) ElementType() reflect.Type

func (GetDevicePortOutput) Id

ID of the port

func (GetDevicePortOutput) Mac

MAC address assigned to the port

func (GetDevicePortOutput) Name

Name of the port (e.g. `eth0`, or `bond0`)

func (GetDevicePortOutput) ToGetDevicePortOutput

func (o GetDevicePortOutput) ToGetDevicePortOutput() GetDevicePortOutput

func (GetDevicePortOutput) ToGetDevicePortOutputWithContext

func (o GetDevicePortOutput) ToGetDevicePortOutputWithContext(ctx context.Context) GetDevicePortOutput

func (GetDevicePortOutput) Type

Type of the port (e.g. `NetworkPort` or `NetworkBondPort`)

type GetFacilityArgs added in v1.3.0

type GetFacilityArgs struct {
	// The facility code
	Code string `pulumi:"code"`
	// The features of the facility
	Features []string `pulumi:"features"`
	// The name of the facilityg system running on the device
	Name *string `pulumi:"name"`
}

A collection of arguments for invoking getFacility.

type GetFacilityResult added in v1.3.0

type GetFacilityResult struct {
	Code string `pulumi:"code"`
	// The features of the facility
	Features []string `pulumi:"features"`
	// The provider-assigned unique ID for this managed resource.
	Id string `pulumi:"id"`
	// The name of the facilityg system running on the device
	Name string `pulumi:"name"`
}

A collection of values returned by getFacility.

func GetFacility added in v1.3.0

func GetFacility(ctx *pulumi.Context, args *GetFacilityArgs, opts ...pulumi.InvokeOption) (*GetFacilityResult, error)

Provides an Equinix Metal facility datasource.

## Example Usage

```go package main

import (

"github.com/pulumi/pulumi-equinix-metal/sdk/go/equinix-metal"
"github.com/pulumi/pulumi/sdk/v2/go/pulumi"

)

func main() {
	pulumi.Run(func(ctx *pulumi.Context) error {
		ewr1, err := equinix - metal.GetFacility(ctx, &equinix-metal.GetFacilityArgs{
			Code: "ewr1",
		}, nil)
		if err != nil {
			return err
		}
		ctx.Export("id", ewr1.Id)
		return nil
	})
}

```

type GetIpBlockRangesArgs

type GetIpBlockRangesArgs struct {
	// Facility code filtering the IP blocks. Global IPv4 blcoks will be listed anyway. If you omit this, all the block from the project will be listed.
	Facility *string `pulumi:"facility"`
	// ID of the project from which to list the blocks.
	ProjectId string `pulumi:"projectId"`
}

A collection of arguments for invoking getIpBlockRanges.

type GetIpBlockRangesResult

type GetIpBlockRangesResult struct {
	Facility *string `pulumi:"facility"`
	// list of CIDR expressions for Global IPv4 blocks in the project
	GlobalIpv4s []string `pulumi:"globalIpv4s"`
	// The provider-assigned unique ID for this managed resource.
	Id string `pulumi:"id"`
	// list of CIDR expressions for IPv6 blocks in the project
	Ipv6s []string `pulumi:"ipv6s"`
	// list of CIDR expressions for Private IPv4 blocks in the project
	PrivateIpv4s []string `pulumi:"privateIpv4s"`
	ProjectId    string   `pulumi:"projectId"`
	// list of CIDR expressions for Public IPv4 blocks in the project
	PublicIpv4s []string `pulumi:"publicIpv4s"`
}

A collection of values returned by getIpBlockRanges.

func GetIpBlockRanges

func GetIpBlockRanges(ctx *pulumi.Context, args *GetIpBlockRangesArgs, opts ...pulumi.InvokeOption) (*GetIpBlockRangesResult, error)

Use this datasource to get CIDR expressions for allocated IP blocks of all the types in a project, optionally filtered by facility.

There are four types of IP blocks in Equinix Metal: global IPv4, public IPv4, private IPv4 and IPv6. Both global and public IPv4 are routable from the Internet. Public IPv4 block is allocated in a facility, and addresses from it can only be assigned to devices in that facility. Addresses from Global IPv4 block can be assigned to a device in any facility.

The datasource has 4 list attributes: `globalIpv4`, `publicIpv4`, `privateIpv4` and `ipv6`, each listing CIDR notation (`<network>/<mask>`) of respective blocks from the project.

## Example Usage

```go package main

import (

"github.com/pulumi/pulumi-equinix-metal/sdk/go/equinix-metal"
"github.com/pulumi/pulumi/sdk/v2/go/pulumi"

)

func main() {
	pulumi.Run(func(ctx *pulumi.Context) error {
		projectId := "<UUID_of_your_project>"
		test, err := equinix - metal.GetIpBlockRanges(ctx, &equinix-metal.GetIpBlockRangesArgs{
			ProjectId: projectId,
		}, nil)
		if err != nil {
			return err
		}
		ctx.Export("out", test)
		return nil
	})
}

```

type GetOperatingSystemArgs

type GetOperatingSystemArgs struct {
	// Name of the OS distribution.
	Distro *string `pulumi:"distro"`
	// Name or part of the name of the distribution. Case insensitive.
	Name *string `pulumi:"name"`
	// Plan name.
	ProvisionableOn *string `pulumi:"provisionableOn"`
	// Version of the distribution
	Version *string `pulumi:"version"`
}

A collection of arguments for invoking getOperatingSystem.

type GetOperatingSystemResult

type GetOperatingSystemResult struct {
	Distro *string `pulumi:"distro"`
	// The provider-assigned unique ID for this managed resource.
	Id              string  `pulumi:"id"`
	Name            *string `pulumi:"name"`
	ProvisionableOn *string `pulumi:"provisionableOn"`
	// Operating system slug (same as `id`)
	Slug    string  `pulumi:"slug"`
	Version *string `pulumi:"version"`
}

A collection of values returned by getOperatingSystem.

func GetOperatingSystem

func GetOperatingSystem(ctx *pulumi.Context, args *GetOperatingSystemArgs, opts ...pulumi.InvokeOption) (*GetOperatingSystemResult, error)

Use this data source to get Equinix Metal Operating System image.

## Example Usage

```go package main

import (

"github.com/pulumi/pulumi-equinix-metal/sdk/go/equinix-metal"
"github.com/pulumi/pulumi/sdk/v2/go/pulumi"

)

func main() {
	pulumi.Run(func(ctx *pulumi.Context) error {
		opt0 := "Container Linux"
		opt1 := "coreos"
		opt2 := "alpha"
		opt3 := "c1.small.x86"
		example, err := equinix - metal.GetOperatingSystem(ctx, &equinix-metal.GetOperatingSystemArgs{
			Name:            &opt0,
			Distro:          &opt1,
			Version:         &opt2,
			ProvisionableOn: &opt3,
		}, nil)
		if err != nil {
			return err
		}
		_, err = equinix - metal.NewDevice(ctx, "server", &equinix-metal.DeviceArgs{
			Hostname: pulumi.String("tf.coreos2"),
			Plan:     pulumi.String("c1.small.x86"),
			Facilities: pulumi.StringArray{
				pulumi.String("ewr1"),
			},
			OperatingSystem: pulumi.String(example.Id),
			BillingCycle:    pulumi.String("hourly"),
			ProjectId:       pulumi.Any(local.Project_id),
		})
		if err != nil {
			return err
		}
		return nil
	})
}

```

type GetPrecreatedIpBlockArgs

type GetPrecreatedIpBlockArgs struct {
	// 4 or 6, depending on which block you are looking for.
	AddressFamily int `pulumi:"addressFamily"`
	// Facility of the searched block. (Optional) Only allowed for non-global blocks.
	Facility *string `pulumi:"facility"`
	// Whether to look for global block. Default is false for backward compatibility.
	Global *bool `pulumi:"global"`
	// ID of the project where the searched block should be.
	ProjectId string `pulumi:"projectId"`
	// Whether to look for public or private block.
	Public bool `pulumi:"public"`
}

A collection of arguments for invoking getPrecreatedIpBlock.

type GetPrecreatedIpBlockResult

type GetPrecreatedIpBlockResult struct {
	Address       string `pulumi:"address"`
	AddressFamily int    `pulumi:"addressFamily"`
	Cidr          int    `pulumi:"cidr"`
	// CIDR notation of the looked up block.
	CidrNotation string  `pulumi:"cidrNotation"`
	Facility     *string `pulumi:"facility"`
	Gateway      string  `pulumi:"gateway"`
	Global       *bool   `pulumi:"global"`
	// The provider-assigned unique ID for this managed resource.
	Id         string `pulumi:"id"`
	Manageable bool   `pulumi:"manageable"`
	Management bool   `pulumi:"management"`
	Netmask    string `pulumi:"netmask"`
	Network    string `pulumi:"network"`
	ProjectId  string `pulumi:"projectId"`
	Public     bool   `pulumi:"public"`
	Quantity   int    `pulumi:"quantity"`
	Type       string `pulumi:"type"`
}

A collection of values returned by getPrecreatedIpBlock.

func GetPrecreatedIpBlock

func GetPrecreatedIpBlock(ctx *pulumi.Context, args *GetPrecreatedIpBlockArgs, opts ...pulumi.InvokeOption) (*GetPrecreatedIpBlockResult, error)

Use this data source to get CIDR expression for precreated IPv6 and IPv4 blocks in Equinix Metal. You can then use the cidrsubnet TF builtin function to derive subnets.

type GetProjectBgpConfig

type GetProjectBgpConfig struct {
	// Autonomous System Number for local BGP deployment
	Asn int `pulumi:"asn"`
	// `private` or `public`, the `private` is likely to be usable immediately, the `public` will need to be review by Equinix Metal engineers
	DeploymentType string `pulumi:"deploymentType"`
	// The maximum number of route filters allowed per server
	MaxPrefix int `pulumi:"maxPrefix"`
	// Password for BGP session in plaintext (not a checksum)
	Md5 *string `pulumi:"md5"`
	// status of BGP configuration in the project
	Status string `pulumi:"status"`
}

type GetProjectBgpConfigArgs

type GetProjectBgpConfigArgs struct {
	// Autonomous System Number for local BGP deployment
	Asn pulumi.IntInput `pulumi:"asn"`
	// `private` or `public`, the `private` is likely to be usable immediately, the `public` will need to be review by Equinix Metal engineers
	DeploymentType pulumi.StringInput `pulumi:"deploymentType"`
	// The maximum number of route filters allowed per server
	MaxPrefix pulumi.IntInput `pulumi:"maxPrefix"`
	// Password for BGP session in plaintext (not a checksum)
	Md5 pulumi.StringPtrInput `pulumi:"md5"`
	// status of BGP configuration in the project
	Status pulumi.StringInput `pulumi:"status"`
}

func (GetProjectBgpConfigArgs) ElementType

func (GetProjectBgpConfigArgs) ElementType() reflect.Type

func (GetProjectBgpConfigArgs) ToGetProjectBgpConfigOutput

func (i GetProjectBgpConfigArgs) ToGetProjectBgpConfigOutput() GetProjectBgpConfigOutput

func (GetProjectBgpConfigArgs) ToGetProjectBgpConfigOutputWithContext

func (i GetProjectBgpConfigArgs) ToGetProjectBgpConfigOutputWithContext(ctx context.Context) GetProjectBgpConfigOutput

type GetProjectBgpConfigInput

type GetProjectBgpConfigInput interface {
	pulumi.Input

	ToGetProjectBgpConfigOutput() GetProjectBgpConfigOutput
	ToGetProjectBgpConfigOutputWithContext(context.Context) GetProjectBgpConfigOutput
}

GetProjectBgpConfigInput is an input type that accepts GetProjectBgpConfigArgs and GetProjectBgpConfigOutput values. You can construct a concrete instance of `GetProjectBgpConfigInput` via:

GetProjectBgpConfigArgs{...}

type GetProjectBgpConfigOutput

type GetProjectBgpConfigOutput struct{ *pulumi.OutputState }

func (GetProjectBgpConfigOutput) Asn

Autonomous System Number for local BGP deployment

func (GetProjectBgpConfigOutput) DeploymentType

func (o GetProjectBgpConfigOutput) DeploymentType() pulumi.StringOutput

`private` or `public`, the `private` is likely to be usable immediately, the `public` will need to be review by Equinix Metal engineers

func (GetProjectBgpConfigOutput) ElementType

func (GetProjectBgpConfigOutput) ElementType() reflect.Type

func (GetProjectBgpConfigOutput) MaxPrefix

The maximum number of route filters allowed per server

func (GetProjectBgpConfigOutput) Md5

Password for BGP session in plaintext (not a checksum)

func (GetProjectBgpConfigOutput) Status

status of BGP configuration in the project

func (GetProjectBgpConfigOutput) ToGetProjectBgpConfigOutput

func (o GetProjectBgpConfigOutput) ToGetProjectBgpConfigOutput() GetProjectBgpConfigOutput

func (GetProjectBgpConfigOutput) ToGetProjectBgpConfigOutputWithContext

func (o GetProjectBgpConfigOutput) ToGetProjectBgpConfigOutputWithContext(ctx context.Context) GetProjectBgpConfigOutput

type GetSpotMarketPriceArgs

type GetSpotMarketPriceArgs struct {
	// Name of the facility.
	Facility string `pulumi:"facility"`
	// Name of the plan.
	Plan string `pulumi:"plan"`
}

A collection of arguments for invoking getSpotMarketPrice.

type GetSpotMarketPriceResult

type GetSpotMarketPriceResult struct {
	Facility string `pulumi:"facility"`
	// The provider-assigned unique ID for this managed resource.
	Id   string `pulumi:"id"`
	Plan string `pulumi:"plan"`
	// Current spot market price for given plan in given facility.
	Price float64 `pulumi:"price"`
}

A collection of values returned by getSpotMarketPrice.

func GetSpotMarketPrice

func GetSpotMarketPrice(ctx *pulumi.Context, args *GetSpotMarketPriceArgs, opts ...pulumi.InvokeOption) (*GetSpotMarketPriceResult, error)

Use this data source to get Equinix Metal Spot Market Price.

## Example Usage

```go package main

import (

"github.com/pulumi/pulumi-equinix-metal/sdk/go/equinix-metal"
"github.com/pulumi/pulumi/sdk/v2/go/pulumi"

)

func main() {
	pulumi.Run(func(ctx *pulumi.Context) error {
		_, err := equinix - metal.GetSpotMarketPrice(ctx, &equinix-metal.GetSpotMarketPriceArgs{
			Facility: "ewr1",
			Plan:     "c1.small.x86",
		}, nil)
		if err != nil {
			return err
		}
		return nil
	})
}

```

type GetVolumeSnapshotPolicy

type GetVolumeSnapshotPolicy struct {
	SnapshotCount     int    `pulumi:"snapshotCount"`
	SnapshotFrequency string `pulumi:"snapshotFrequency"`
}

type GetVolumeSnapshotPolicyArgs

type GetVolumeSnapshotPolicyArgs struct {
	SnapshotCount     pulumi.IntInput    `pulumi:"snapshotCount"`
	SnapshotFrequency pulumi.StringInput `pulumi:"snapshotFrequency"`
}

func (GetVolumeSnapshotPolicyArgs) ElementType

func (GetVolumeSnapshotPolicyArgs) ToGetVolumeSnapshotPolicyOutput

func (i GetVolumeSnapshotPolicyArgs) ToGetVolumeSnapshotPolicyOutput() GetVolumeSnapshotPolicyOutput

func (GetVolumeSnapshotPolicyArgs) ToGetVolumeSnapshotPolicyOutputWithContext

func (i GetVolumeSnapshotPolicyArgs) ToGetVolumeSnapshotPolicyOutputWithContext(ctx context.Context) GetVolumeSnapshotPolicyOutput

type GetVolumeSnapshotPolicyArray

type GetVolumeSnapshotPolicyArray []GetVolumeSnapshotPolicyInput

func (GetVolumeSnapshotPolicyArray) ElementType

func (GetVolumeSnapshotPolicyArray) ToGetVolumeSnapshotPolicyArrayOutput

func (i GetVolumeSnapshotPolicyArray) ToGetVolumeSnapshotPolicyArrayOutput() GetVolumeSnapshotPolicyArrayOutput

func (GetVolumeSnapshotPolicyArray) ToGetVolumeSnapshotPolicyArrayOutputWithContext

func (i GetVolumeSnapshotPolicyArray) ToGetVolumeSnapshotPolicyArrayOutputWithContext(ctx context.Context) GetVolumeSnapshotPolicyArrayOutput

type GetVolumeSnapshotPolicyArrayInput

type GetVolumeSnapshotPolicyArrayInput interface {
	pulumi.Input

	ToGetVolumeSnapshotPolicyArrayOutput() GetVolumeSnapshotPolicyArrayOutput
	ToGetVolumeSnapshotPolicyArrayOutputWithContext(context.Context) GetVolumeSnapshotPolicyArrayOutput
}

GetVolumeSnapshotPolicyArrayInput is an input type that accepts GetVolumeSnapshotPolicyArray and GetVolumeSnapshotPolicyArrayOutput values. You can construct a concrete instance of `GetVolumeSnapshotPolicyArrayInput` via:

GetVolumeSnapshotPolicyArray{ GetVolumeSnapshotPolicyArgs{...} }

type GetVolumeSnapshotPolicyArrayOutput

type GetVolumeSnapshotPolicyArrayOutput struct{ *pulumi.OutputState }

func (GetVolumeSnapshotPolicyArrayOutput) ElementType

func (GetVolumeSnapshotPolicyArrayOutput) Index

func (GetVolumeSnapshotPolicyArrayOutput) ToGetVolumeSnapshotPolicyArrayOutput

func (o GetVolumeSnapshotPolicyArrayOutput) ToGetVolumeSnapshotPolicyArrayOutput() GetVolumeSnapshotPolicyArrayOutput

func (GetVolumeSnapshotPolicyArrayOutput) ToGetVolumeSnapshotPolicyArrayOutputWithContext

func (o GetVolumeSnapshotPolicyArrayOutput) ToGetVolumeSnapshotPolicyArrayOutputWithContext(ctx context.Context) GetVolumeSnapshotPolicyArrayOutput

type GetVolumeSnapshotPolicyInput

type GetVolumeSnapshotPolicyInput interface {
	pulumi.Input

	ToGetVolumeSnapshotPolicyOutput() GetVolumeSnapshotPolicyOutput
	ToGetVolumeSnapshotPolicyOutputWithContext(context.Context) GetVolumeSnapshotPolicyOutput
}

GetVolumeSnapshotPolicyInput is an input type that accepts GetVolumeSnapshotPolicyArgs and GetVolumeSnapshotPolicyOutput values. You can construct a concrete instance of `GetVolumeSnapshotPolicyInput` via:

GetVolumeSnapshotPolicyArgs{...}

type GetVolumeSnapshotPolicyOutput

type GetVolumeSnapshotPolicyOutput struct{ *pulumi.OutputState }

func (GetVolumeSnapshotPolicyOutput) ElementType

func (GetVolumeSnapshotPolicyOutput) SnapshotCount

func (GetVolumeSnapshotPolicyOutput) SnapshotFrequency

func (o GetVolumeSnapshotPolicyOutput) SnapshotFrequency() pulumi.StringOutput

func (GetVolumeSnapshotPolicyOutput) ToGetVolumeSnapshotPolicyOutput

func (o GetVolumeSnapshotPolicyOutput) ToGetVolumeSnapshotPolicyOutput() GetVolumeSnapshotPolicyOutput

func (GetVolumeSnapshotPolicyOutput) ToGetVolumeSnapshotPolicyOutputWithContext

func (o GetVolumeSnapshotPolicyOutput) ToGetVolumeSnapshotPolicyOutputWithContext(ctx context.Context) GetVolumeSnapshotPolicyOutput

type IpAttachment

type IpAttachment struct {
	pulumi.CustomResourceState

	Address pulumi.StringOutput `pulumi:"address"`
	// Address family as integer (4 or 6)
	AddressFamily pulumi.IntOutput `pulumi:"addressFamily"`
	// length of CIDR prefix of the subnet as integer
	Cidr pulumi.IntOutput `pulumi:"cidr"`
	// CIDR notation of subnet from block reserved in the same
	// project and facility as the device
	CidrNotation pulumi.StringOutput `pulumi:"cidrNotation"`
	// ID of device to which to assign the subnet
	DeviceId pulumi.StringOutput `pulumi:"deviceId"`
	// IP address of gateway for the subnet
	Gateway    pulumi.StringOutput `pulumi:"gateway"`
	Global     pulumi.BoolOutput   `pulumi:"global"`
	Manageable pulumi.BoolOutput   `pulumi:"manageable"`
	Management pulumi.BoolOutput   `pulumi:"management"`
	// Subnet mask in decimal notation, e.g. "255.255.255.0"
	Netmask pulumi.StringOutput `pulumi:"netmask"`
	// Subnet network address
	Network pulumi.StringOutput `pulumi:"network"`
	// boolean flag whether subnet is reachable from the Internet
	Public pulumi.BoolOutput `pulumi:"public"`
}

Provides a resource to attach elastic IP subnets to devices.

To attach an IP subnet from a reserved block to a provisioned device, you must derive a subnet CIDR belonging to one of your reserved blocks in the same project and facility as the target device.

For example, you have reserved IPv4 address block 147.229.10.152/30, you can choose to assign either the whole block as one subnet to a device; or 2 subnets with CIDRs 147.229.10.152/31' and 147.229.10.154/31; or 4 subnets with mask prefix length 32. More about the elastic IP subnets is [here](https://metal.equinix.com/developers/docs/networking/elastic-ips/).

Device and reserved block must be in the same facility.

func GetIpAttachment

func GetIpAttachment(ctx *pulumi.Context,
	name string, id pulumi.IDInput, state *IpAttachmentState, opts ...pulumi.ResourceOption) (*IpAttachment, error)

GetIpAttachment gets an existing IpAttachment resource's state with the given name, ID, and optional state properties that are used to uniquely qualify the lookup (nil if not required).

func NewIpAttachment

func NewIpAttachment(ctx *pulumi.Context,
	name string, args *IpAttachmentArgs, opts ...pulumi.ResourceOption) (*IpAttachment, error)

NewIpAttachment registers a new resource with the given unique name, arguments, and options.

func (*IpAttachment) ElementType

func (*IpAttachment) ElementType() reflect.Type

func (*IpAttachment) ToIpAttachmentOutput

func (i *IpAttachment) ToIpAttachmentOutput() IpAttachmentOutput

func (*IpAttachment) ToIpAttachmentOutputWithContext

func (i *IpAttachment) ToIpAttachmentOutputWithContext(ctx context.Context) IpAttachmentOutput

func (*IpAttachment) ToIpAttachmentPtrOutput added in v1.1.2

func (i *IpAttachment) ToIpAttachmentPtrOutput() IpAttachmentPtrOutput

func (*IpAttachment) ToIpAttachmentPtrOutputWithContext added in v1.1.2

func (i *IpAttachment) ToIpAttachmentPtrOutputWithContext(ctx context.Context) IpAttachmentPtrOutput

type IpAttachmentArgs

type IpAttachmentArgs struct {
	// CIDR notation of subnet from block reserved in the same
	// project and facility as the device
	CidrNotation pulumi.StringInput
	// ID of device to which to assign the subnet
	DeviceId pulumi.StringInput
}

The set of arguments for constructing a IpAttachment resource.

func (IpAttachmentArgs) ElementType

func (IpAttachmentArgs) ElementType() reflect.Type

type IpAttachmentArray added in v1.1.2

type IpAttachmentArray []IpAttachmentInput

func (IpAttachmentArray) ElementType added in v1.1.2

func (IpAttachmentArray) ElementType() reflect.Type

func (IpAttachmentArray) ToIpAttachmentArrayOutput added in v1.1.2

func (i IpAttachmentArray) ToIpAttachmentArrayOutput() IpAttachmentArrayOutput

func (IpAttachmentArray) ToIpAttachmentArrayOutputWithContext added in v1.1.2

func (i IpAttachmentArray) ToIpAttachmentArrayOutputWithContext(ctx context.Context) IpAttachmentArrayOutput

type IpAttachmentArrayInput added in v1.1.2

type IpAttachmentArrayInput interface {
	pulumi.Input

	ToIpAttachmentArrayOutput() IpAttachmentArrayOutput
	ToIpAttachmentArrayOutputWithContext(context.Context) IpAttachmentArrayOutput
}

IpAttachmentArrayInput is an input type that accepts IpAttachmentArray and IpAttachmentArrayOutput values. You can construct a concrete instance of `IpAttachmentArrayInput` via:

IpAttachmentArray{ IpAttachmentArgs{...} }

type IpAttachmentArrayOutput added in v1.1.2

type IpAttachmentArrayOutput struct{ *pulumi.OutputState }

func (IpAttachmentArrayOutput) ElementType added in v1.1.2

func (IpAttachmentArrayOutput) ElementType() reflect.Type

func (IpAttachmentArrayOutput) Index added in v1.1.2

func (IpAttachmentArrayOutput) ToIpAttachmentArrayOutput added in v1.1.2

func (o IpAttachmentArrayOutput) ToIpAttachmentArrayOutput() IpAttachmentArrayOutput

func (IpAttachmentArrayOutput) ToIpAttachmentArrayOutputWithContext added in v1.1.2

func (o IpAttachmentArrayOutput) ToIpAttachmentArrayOutputWithContext(ctx context.Context) IpAttachmentArrayOutput

type IpAttachmentInput

type IpAttachmentInput interface {
	pulumi.Input

	ToIpAttachmentOutput() IpAttachmentOutput
	ToIpAttachmentOutputWithContext(ctx context.Context) IpAttachmentOutput
}

type IpAttachmentMap added in v1.1.2

type IpAttachmentMap map[string]IpAttachmentInput

func (IpAttachmentMap) ElementType added in v1.1.2

func (IpAttachmentMap) ElementType() reflect.Type

func (IpAttachmentMap) ToIpAttachmentMapOutput added in v1.1.2

func (i IpAttachmentMap) ToIpAttachmentMapOutput() IpAttachmentMapOutput

func (IpAttachmentMap) ToIpAttachmentMapOutputWithContext added in v1.1.2

func (i IpAttachmentMap) ToIpAttachmentMapOutputWithContext(ctx context.Context) IpAttachmentMapOutput

type IpAttachmentMapInput added in v1.1.2

type IpAttachmentMapInput interface {
	pulumi.Input

	ToIpAttachmentMapOutput() IpAttachmentMapOutput
	ToIpAttachmentMapOutputWithContext(context.Context) IpAttachmentMapOutput
}

IpAttachmentMapInput is an input type that accepts IpAttachmentMap and IpAttachmentMapOutput values. You can construct a concrete instance of `IpAttachmentMapInput` via:

IpAttachmentMap{ "key": IpAttachmentArgs{...} }

type IpAttachmentMapOutput added in v1.1.2

type IpAttachmentMapOutput struct{ *pulumi.OutputState }

func (IpAttachmentMapOutput) ElementType added in v1.1.2

func (IpAttachmentMapOutput) ElementType() reflect.Type

func (IpAttachmentMapOutput) MapIndex added in v1.1.2

func (IpAttachmentMapOutput) ToIpAttachmentMapOutput added in v1.1.2

func (o IpAttachmentMapOutput) ToIpAttachmentMapOutput() IpAttachmentMapOutput

func (IpAttachmentMapOutput) ToIpAttachmentMapOutputWithContext added in v1.1.2

func (o IpAttachmentMapOutput) ToIpAttachmentMapOutputWithContext(ctx context.Context) IpAttachmentMapOutput

type IpAttachmentOutput

type IpAttachmentOutput struct {
	*pulumi.OutputState
}

func (IpAttachmentOutput) ElementType

func (IpAttachmentOutput) ElementType() reflect.Type

func (IpAttachmentOutput) ToIpAttachmentOutput

func (o IpAttachmentOutput) ToIpAttachmentOutput() IpAttachmentOutput

func (IpAttachmentOutput) ToIpAttachmentOutputWithContext

func (o IpAttachmentOutput) ToIpAttachmentOutputWithContext(ctx context.Context) IpAttachmentOutput

func (IpAttachmentOutput) ToIpAttachmentPtrOutput added in v1.1.2

func (o IpAttachmentOutput) ToIpAttachmentPtrOutput() IpAttachmentPtrOutput

func (IpAttachmentOutput) ToIpAttachmentPtrOutputWithContext added in v1.1.2

func (o IpAttachmentOutput) ToIpAttachmentPtrOutputWithContext(ctx context.Context) IpAttachmentPtrOutput

type IpAttachmentPtrInput added in v1.1.2

type IpAttachmentPtrInput interface {
	pulumi.Input

	ToIpAttachmentPtrOutput() IpAttachmentPtrOutput
	ToIpAttachmentPtrOutputWithContext(ctx context.Context) IpAttachmentPtrOutput
}

type IpAttachmentPtrOutput added in v1.1.2

type IpAttachmentPtrOutput struct {
	*pulumi.OutputState
}

func (IpAttachmentPtrOutput) ElementType added in v1.1.2

func (IpAttachmentPtrOutput) ElementType() reflect.Type

func (IpAttachmentPtrOutput) ToIpAttachmentPtrOutput added in v1.1.2

func (o IpAttachmentPtrOutput) ToIpAttachmentPtrOutput() IpAttachmentPtrOutput

func (IpAttachmentPtrOutput) ToIpAttachmentPtrOutputWithContext added in v1.1.2

func (o IpAttachmentPtrOutput) ToIpAttachmentPtrOutputWithContext(ctx context.Context) IpAttachmentPtrOutput

type IpAttachmentState

type IpAttachmentState struct {
	Address pulumi.StringPtrInput
	// Address family as integer (4 or 6)
	AddressFamily pulumi.IntPtrInput
	// length of CIDR prefix of the subnet as integer
	Cidr pulumi.IntPtrInput
	// CIDR notation of subnet from block reserved in the same
	// project and facility as the device
	CidrNotation pulumi.StringPtrInput
	// ID of device to which to assign the subnet
	DeviceId pulumi.StringPtrInput
	// IP address of gateway for the subnet
	Gateway    pulumi.StringPtrInput
	Global     pulumi.BoolPtrInput
	Manageable pulumi.BoolPtrInput
	Management pulumi.BoolPtrInput
	// Subnet mask in decimal notation, e.g. "255.255.255.0"
	Netmask pulumi.StringPtrInput
	// Subnet network address
	Network pulumi.StringPtrInput
	// boolean flag whether subnet is reachable from the Internet
	Public pulumi.BoolPtrInput
}

func (IpAttachmentState) ElementType

func (IpAttachmentState) ElementType() reflect.Type

type IpBlockType

type IpBlockType pulumi.String

func (IpBlockType) ElementType

func (IpBlockType) ElementType() reflect.Type

func (IpBlockType) ToStringOutput

func (e IpBlockType) ToStringOutput() pulumi.StringOutput

func (IpBlockType) ToStringOutputWithContext

func (e IpBlockType) ToStringOutputWithContext(ctx context.Context) pulumi.StringOutput

func (IpBlockType) ToStringPtrOutput

func (e IpBlockType) ToStringPtrOutput() pulumi.StringPtrOutput

func (IpBlockType) ToStringPtrOutputWithContext

func (e IpBlockType) ToStringPtrOutputWithContext(ctx context.Context) pulumi.StringPtrOutput

type LookupDeviceArgs

type LookupDeviceArgs struct {
	// Device ID
	DeviceId *string `pulumi:"deviceId"`
	// The device name
	Hostname *string `pulumi:"hostname"`
	// The id of the project in which the devices exists
	ProjectId *string `pulumi:"projectId"`
}

A collection of arguments for invoking getDevice.

type LookupDeviceResult

type LookupDeviceResult struct {
	// The ipv4 private IP assigned to the device
	AccessPrivateIpv4 string `pulumi:"accessPrivateIpv4"`
	// The ipv4 management IP assigned to the device
	AccessPublicIpv4 string `pulumi:"accessPublicIpv4"`
	// The ipv6 management IP assigned to the device
	AccessPublicIpv6 string `pulumi:"accessPublicIpv6"`
	AlwaysPxe        bool   `pulumi:"alwaysPxe"`
	// The billing cycle of the device (monthly or hourly)
	BillingCycle string `pulumi:"billingCycle"`
	// Description string for the device
	Description string `pulumi:"description"`
	DeviceId    string `pulumi:"deviceId"`
	// The facility where the device is deployed.
	Facility string `pulumi:"facility"`
	// The id of hardware reservation which this device occupies
	HardwareReservationId string `pulumi:"hardwareReservationId"`
	Hostname              string `pulumi:"hostname"`
	// The provider-assigned unique ID for this managed resource.
	Id            string `pulumi:"id"`
	IpxeScriptUrl string `pulumi:"ipxeScriptUrl"`
	// L2 network type of the device, one of "layer3", "layer2-bonded", "layer2-individual", "hybrid"
	NetworkType string `pulumi:"networkType"`
	// The device's private and public IP (v4 and v6) network details. When a device is run without any special network configuration, it will have 3 networks:
	// * Public IPv4 at `metal_device.name.network.0`
	// * IPv6 at `metal_device.name.network.1`
	// * Private IPv4 at `metal_device.name.network.2`
	//   Elastic addresses then stack by type - an assigned public IPv4 will go after the management public IPv4 (to index 1), and will then shift the indices of the IPv6 and private IPv4. Assigned private IPv4 will go after the management private IPv4 (to the end of the network list).
	//   The fields of the network attributes are:
	Networks []GetDeviceNetwork `pulumi:"networks"`
	// The operating system running on the device
	OperatingSystem string `pulumi:"operatingSystem"`
	// The hardware config of the device
	Plan string `pulumi:"plan"`
	// Ports assigned to the device
	Ports     []GetDevicePort `pulumi:"ports"`
	ProjectId string          `pulumi:"projectId"`
	// Root password to the server (if still available)
	RootPassword string `pulumi:"rootPassword"`
	// List of IDs of SSH keys deployed in the device, can be both user or project SSH keys
	SshKeyIds []string `pulumi:"sshKeyIds"`
	// The state of the device
	State   string `pulumi:"state"`
	Storage string `pulumi:"storage"`
	// Tags attached to the device
	Tags []string `pulumi:"tags"`
}

A collection of values returned by getDevice.

func LookupDevice

func LookupDevice(ctx *pulumi.Context, args *LookupDeviceArgs, opts ...pulumi.InvokeOption) (*LookupDeviceResult, error)

Provides an Equinix Metal device datasource.

> **Note:** All arguments including the `rootPassword` and `userData` will be stored in

the raw state as plain-text.

[Read more about sensitive data in state](https://www.terraform.io/docs/state/sensitive-data.html).

## Example Usage

```go package main

import (

"github.com/pulumi/pulumi-equinix-metal/sdk/go/equinix-metal"
"github.com/pulumi/pulumi/sdk/v2/go/pulumi"

)

func main() {
	pulumi.Run(func(ctx *pulumi.Context) error {
		opt0 := local.Project_id
		opt1 := "mydevice"
		test, err := equinix - metal.LookupDevice(ctx, &equinix-metal.LookupDeviceArgs{
			ProjectId: &opt0,
			Hostname:  &opt1,
		}, nil)
		if err != nil {
			return err
		}
		ctx.Export("id", test.Id)
		return nil
	})
}

```

```go package main

import (

"github.com/pulumi/pulumi-equinix-metal/sdk/go/equinix-metal"
"github.com/pulumi/pulumi/sdk/v2/go/pulumi"

)

func main() {
	pulumi.Run(func(ctx *pulumi.Context) error {
		test, err := equinix - metal.LookupDevice(ctx, nil, nil)
		if err != nil {
			return err
		}
		ctx.Export("ipv4", test.AccessPublicIpv4)
		return nil
	})
}

```

type LookupOrganizationArgs

type LookupOrganizationArgs struct {
	// The organization name
	Name *string `pulumi:"name"`
	// The UUID of the organization resource
	OrganizationId *string `pulumi:"organizationId"`
}

A collection of arguments for invoking getOrganization.

type LookupOrganizationResult

type LookupOrganizationResult struct {
	// Description string
	Description string `pulumi:"description"`
	// The provider-assigned unique ID for this managed resource.
	Id string `pulumi:"id"`
	// Logo URL
	Name           string `pulumi:"name"`
	OrganizationId string `pulumi:"organizationId"`
	// UUIDs of project resources which belong to this organization
	ProjectIds []string `pulumi:"projectIds"`
	// Twitter handle
	Twitter string `pulumi:"twitter"`
	// Website link
	Website string `pulumi:"website"`
}

A collection of values returned by getOrganization.

func LookupOrganization

func LookupOrganization(ctx *pulumi.Context, args *LookupOrganizationArgs, opts ...pulumi.InvokeOption) (*LookupOrganizationResult, error)

Provides an Equinix Metal organization datasource.

## Example Usage

```go package main

import (

"github.com/pulumi/pulumi-equinix-metal/sdk/go/equinix-metal"
"github.com/pulumi/pulumi/sdk/v2/go/pulumi"

)

func main() {
	pulumi.Run(func(ctx *pulumi.Context) error {
		opt0 := local.Org_id
		test, err := equinix - metal.LookupOrganization(ctx, &equinix-metal.LookupOrganizationArgs{
			OrganizationId: &opt0,
		}, nil)
		if err != nil {
			return err
		}
		ctx.Export("projectsInTheOrg", test.ProjectIds)
		return nil
	})
}

```

type LookupProjectArgs

type LookupProjectArgs struct {
	// The name which is used to look up the project
	Name *string `pulumi:"name"`
	// The UUID by which to look up the project
	ProjectId *string `pulumi:"projectId"`
}

A collection of arguments for invoking getProject.

type LookupProjectResult

type LookupProjectResult struct {
	// Whether Backend Transfer is enabled for this project
	BackendTransfer bool `pulumi:"backendTransfer"`
	// Optional BGP settings. Refer to [Equinix Metal guide for BGP](https://metal.equinix.com/developers/docs/networking/local-global-bgp/).
	BgpConfig GetProjectBgpConfig `pulumi:"bgpConfig"`
	// The timestamp for when the project was created
	Created string `pulumi:"created"`
	// The provider-assigned unique ID for this managed resource.
	Id   string `pulumi:"id"`
	Name string `pulumi:"name"`
	// The UUID of this project's parent organization
	OrganizationId string `pulumi:"organizationId"`
	// The UUID of payment method for this project
	PaymentMethodId string `pulumi:"paymentMethodId"`
	ProjectId       string `pulumi:"projectId"`
	// The timestamp for the last time the project was updated
	Updated string `pulumi:"updated"`
	// List of UUIDs of user accounts which belong to this project
	UserIds []string `pulumi:"userIds"`
}

A collection of values returned by getProject.

func LookupProject

func LookupProject(ctx *pulumi.Context, args *LookupProjectArgs, opts ...pulumi.InvokeOption) (*LookupProjectResult, error)

Use this datasource to retrieve attributes of the Project API resource.

## Example Usage

```go package main

import (

"github.com/pulumi/pulumi-equinix-metal/sdk/go/equinix-metal"
"github.com/pulumi/pulumi/sdk/v2/go/pulumi"

)

func main() {
	pulumi.Run(func(ctx *pulumi.Context) error {
		opt0 := "Terraform Fun"
		tfProject1, err := equinix - metal.LookupProject(ctx, &equinix-metal.LookupProjectArgs{
			Name: &opt0,
		}, nil)
		if err != nil {
			return err
		}
		ctx.Export("usersOfTerraformFun", tfProject1.UserIds)
		return nil
	})
}

```

type LookupProjectSshKeyArgs

type LookupProjectSshKeyArgs struct {
	// The id of the SSH Key to search for in the Equinix Metal project
	Id *string `pulumi:"id"`
	// The Equinix Metal project id of the Equinix Metal SSH Key
	ProjectId string `pulumi:"projectId"`
	// The name, fingerprint, or publicKey of the SSH Key to search for
	// in the Equinix Metal project
	Search *string `pulumi:"search"`
}

A collection of arguments for invoking getProjectSshKey.

type LookupProjectSshKeyResult

type LookupProjectSshKeyResult struct {
	// The timestamp for when the SSH key was created
	Created string `pulumi:"created"`
	// The fingerprint of the SSH key
	Fingerprint string `pulumi:"fingerprint"`
	// The unique ID of the key
	Id string `pulumi:"id"`
	// The name of the SSH key
	Name string `pulumi:"name"`
	// The ID of parent project (same as project_id)
	OwnerId string `pulumi:"ownerId"`
	// The ID of parent project
	ProjectId string `pulumi:"projectId"`
	// The text of the public key
	PublicKey string  `pulumi:"publicKey"`
	Search    *string `pulumi:"search"`
	// The timestamp for the last time the SSH key was updated
	Updated string `pulumi:"updated"`
}

A collection of values returned by getProjectSshKey.

func LookupProjectSshKey

func LookupProjectSshKey(ctx *pulumi.Context, args *LookupProjectSshKeyArgs, opts ...pulumi.InvokeOption) (*LookupProjectSshKeyResult, error)

Use this datasource to retrieve attributes of a Project SSH Key API resource.

## Example Usage

```go package main

import (

"github.com/pulumi/pulumi-equinix-metal/sdk/go/equinix-metal"
"github.com/pulumi/pulumi/sdk/v2/go/pulumi"

)

func main() {
	pulumi.Run(func(ctx *pulumi.Context) error {
		opt0 := "username@hostname"
		_, err := equinix - metal.LookupProjectSshKey(ctx, &equinix-metal.LookupProjectSshKeyArgs{
			Search:    &opt0,
			ProjectId: local.Project_id,
		}, nil)
		if err != nil {
			return err
		}
		return nil
	})
}

```

type LookupSpotMarketRequestArgs

type LookupSpotMarketRequestArgs struct {
	// The id of the Spot Market Request
	RequestId string `pulumi:"requestId"`
}

A collection of arguments for invoking getSpotMarketRequest.

type LookupSpotMarketRequestResult

type LookupSpotMarketRequestResult struct {
	// List of IDs of devices spawned by the referenced Spot Market Request
	DeviceIds []string `pulumi:"deviceIds"`
	// The provider-assigned unique ID for this managed resource.
	Id        string `pulumi:"id"`
	RequestId string `pulumi:"requestId"`
}

A collection of values returned by getSpotMarketRequest.

type LookupVolumeArgs

type LookupVolumeArgs struct {
	// Name of volume for lookup
	Name *string `pulumi:"name"`
	// The ID the parent Equinix Metal project (for lookup by name)
	ProjectId *string `pulumi:"projectId"`
	// ID of volume for lookup
	VolumeId *string `pulumi:"volumeId"`
}

A collection of arguments for invoking getVolume.

type LookupVolumeResult

type LookupVolumeResult struct {
	// The billing cycle, defaults to hourly
	BillingCycle string `pulumi:"billingCycle"`
	Created      string `pulumi:"created"`
	Description  string `pulumi:"description"`
	// UUIDs of devices to which this volume is attached
	DeviceIds []string `pulumi:"deviceIds"`
	// The facility slug the volume resides in
	Facility string `pulumi:"facility"`
	// The provider-assigned unique ID for this managed resource.
	Id string `pulumi:"id"`
	// Whether the volume is locked or not
	Locked bool `pulumi:"locked"`
	// The name of the volume
	Name string `pulumi:"name"`
	// Performance plan the volume is on
	Plan string `pulumi:"plan"`
	// The project id the volume is in
	ProjectId string `pulumi:"projectId"`
	// The size in GB of the volume
	Size             int                       `pulumi:"size"`
	SnapshotPolicies []GetVolumeSnapshotPolicy `pulumi:"snapshotPolicies"`
	// The state of the volume
	State    string `pulumi:"state"`
	Updated  string `pulumi:"updated"`
	VolumeId string `pulumi:"volumeId"`
}

A collection of values returned by getVolume.

func LookupVolume

func LookupVolume(ctx *pulumi.Context, args *LookupVolumeArgs, opts ...pulumi.InvokeOption) (*LookupVolumeResult, error)

Provides an Equinix Metal Block Storage Volume datasource to allow you to read existing volumes.

## Example Usage

```go package main

import (

"github.com/pulumi/pulumi-equinix-metal/sdk/go/equinix-metal"
"github.com/pulumi/pulumi/sdk/v2/go/pulumi"

)

func main() {
	pulumi.Run(func(ctx *pulumi.Context) error {
		opt0 := "terraform-volume-1"
		opt1 := local.Project_id
		volume1, err := equinix - metal.LookupVolume(ctx, &equinix-metal.LookupVolumeArgs{
			Name:      &opt0,
			ProjectId: &opt1,
		}, nil)
		if err != nil {
			return err
		}
		ctx.Export("volumeSize", volume1.Size)
		return nil
	})
}

```

type NetworkType

type NetworkType pulumi.String

func (NetworkType) ElementType

func (NetworkType) ElementType() reflect.Type

func (NetworkType) ToStringOutput

func (e NetworkType) ToStringOutput() pulumi.StringOutput

func (NetworkType) ToStringOutputWithContext

func (e NetworkType) ToStringOutputWithContext(ctx context.Context) pulumi.StringOutput

func (NetworkType) ToStringPtrOutput

func (e NetworkType) ToStringPtrOutput() pulumi.StringPtrOutput

func (NetworkType) ToStringPtrOutputWithContext

func (e NetworkType) ToStringPtrOutputWithContext(ctx context.Context) pulumi.StringPtrOutput

type OperatingSystem

type OperatingSystem pulumi.String

func (OperatingSystem) ElementType

func (OperatingSystem) ElementType() reflect.Type

func (OperatingSystem) ToStringOutput

func (e OperatingSystem) ToStringOutput() pulumi.StringOutput

func (OperatingSystem) ToStringOutputWithContext

func (e OperatingSystem) ToStringOutputWithContext(ctx context.Context) pulumi.StringOutput

func (OperatingSystem) ToStringPtrOutput

func (e OperatingSystem) ToStringPtrOutput() pulumi.StringPtrOutput

func (OperatingSystem) ToStringPtrOutputWithContext

func (e OperatingSystem) ToStringPtrOutputWithContext(ctx context.Context) pulumi.StringPtrOutput

type Organization

type Organization struct {
	pulumi.CustomResourceState

	Created pulumi.StringOutput `pulumi:"created"`
	// Description string
	Description pulumi.StringPtrOutput `pulumi:"description"`
	Logo pulumi.StringPtrOutput `pulumi:"logo"`
	// The name of the Organization
	Name pulumi.StringOutput `pulumi:"name"`
	// Twitter handle
	Twitter pulumi.StringPtrOutput `pulumi:"twitter"`
	Updated pulumi.StringOutput    `pulumi:"updated"`
	// Website link
	Website pulumi.StringPtrOutput `pulumi:"website"`
}

Provides a resource to manage organization resource in Equinix Metal.

## Example Usage

```go package main

import (

"github.com/pulumi/pulumi-equinix-metal/sdk/go/equinix-metal"
"github.com/pulumi/pulumi/sdk/v2/go/pulumi"

)

func main() {
	pulumi.Run(func(ctx *pulumi.Context) error {
		_, err := equinix - metal.NewOrganization(ctx, "tfOrganization1", &equinix-metal.OrganizationArgs{
			Description: pulumi.String("quux"),
		})
		if err != nil {
			return err
		}
		return nil
	})
}

```

func GetOrganization

func GetOrganization(ctx *pulumi.Context,
	name string, id pulumi.IDInput, state *OrganizationState, opts ...pulumi.ResourceOption) (*Organization, error)

GetOrganization gets an existing Organization resource's state with the given name, ID, and optional state properties that are used to uniquely qualify the lookup (nil if not required).

func NewOrganization

func NewOrganization(ctx *pulumi.Context,
	name string, args *OrganizationArgs, opts ...pulumi.ResourceOption) (*Organization, error)

NewOrganization registers a new resource with the given unique name, arguments, and options.

func (*Organization) ElementType

func (*Organization) ElementType() reflect.Type

func (*Organization) ToOrganizationOutput

func (i *Organization) ToOrganizationOutput() OrganizationOutput

func (*Organization) ToOrganizationOutputWithContext

func (i *Organization) ToOrganizationOutputWithContext(ctx context.Context) OrganizationOutput

func (*Organization) ToOrganizationPtrOutput added in v1.1.2

func (i *Organization) ToOrganizationPtrOutput() OrganizationPtrOutput

func (*Organization) ToOrganizationPtrOutputWithContext added in v1.1.2

func (i *Organization) ToOrganizationPtrOutputWithContext(ctx context.Context) OrganizationPtrOutput

type OrganizationArgs

type OrganizationArgs struct {
	// Description string
	Description pulumi.StringPtrInput
	Logo pulumi.StringPtrInput
	// The name of the Organization
	Name pulumi.StringPtrInput
	// Twitter handle
	Twitter pulumi.StringPtrInput
	// Website link
	Website pulumi.StringPtrInput
}

The set of arguments for constructing a Organization resource.

func (OrganizationArgs) ElementType

func (OrganizationArgs) ElementType() reflect.Type

type OrganizationArray added in v1.1.2

type OrganizationArray []OrganizationInput

func (OrganizationArray) ElementType added in v1.1.2

func (OrganizationArray) ElementType() reflect.Type

func (OrganizationArray) ToOrganizationArrayOutput added in v1.1.2

func (i OrganizationArray) ToOrganizationArrayOutput() OrganizationArrayOutput

func (OrganizationArray) ToOrganizationArrayOutputWithContext added in v1.1.2

func (i OrganizationArray) ToOrganizationArrayOutputWithContext(ctx context.Context) OrganizationArrayOutput

type OrganizationArrayInput added in v1.1.2

type OrganizationArrayInput interface {
	pulumi.Input

	ToOrganizationArrayOutput() OrganizationArrayOutput
	ToOrganizationArrayOutputWithContext(context.Context) OrganizationArrayOutput
}

OrganizationArrayInput is an input type that accepts OrganizationArray and OrganizationArrayOutput values. You can construct a concrete instance of `OrganizationArrayInput` via:

OrganizationArray{ OrganizationArgs{...} }

type OrganizationArrayOutput added in v1.1.2

type OrganizationArrayOutput struct{ *pulumi.OutputState }

func (OrganizationArrayOutput) ElementType added in v1.1.2

func (OrganizationArrayOutput) ElementType() reflect.Type

func (OrganizationArrayOutput) Index added in v1.1.2

func (OrganizationArrayOutput) ToOrganizationArrayOutput added in v1.1.2

func (o OrganizationArrayOutput) ToOrganizationArrayOutput() OrganizationArrayOutput

func (OrganizationArrayOutput) ToOrganizationArrayOutputWithContext added in v1.1.2

func (o OrganizationArrayOutput) ToOrganizationArrayOutputWithContext(ctx context.Context) OrganizationArrayOutput

type OrganizationInput

type OrganizationInput interface {
	pulumi.Input

	ToOrganizationOutput() OrganizationOutput
	ToOrganizationOutputWithContext(ctx context.Context) OrganizationOutput
}

type OrganizationMap added in v1.1.2

type OrganizationMap map[string]OrganizationInput

func (OrganizationMap) ElementType added in v1.1.2

func (OrganizationMap) ElementType() reflect.Type

func (OrganizationMap) ToOrganizationMapOutput added in v1.1.2

func (i OrganizationMap) ToOrganizationMapOutput() OrganizationMapOutput

func (OrganizationMap) ToOrganizationMapOutputWithContext added in v1.1.2

func (i OrganizationMap) ToOrganizationMapOutputWithContext(ctx context.Context) OrganizationMapOutput

type OrganizationMapInput added in v1.1.2

type OrganizationMapInput interface {
	pulumi.Input

	ToOrganizationMapOutput() OrganizationMapOutput
	ToOrganizationMapOutputWithContext(context.Context) OrganizationMapOutput
}

OrganizationMapInput is an input type that accepts OrganizationMap and OrganizationMapOutput values. You can construct a concrete instance of `OrganizationMapInput` via:

OrganizationMap{ "key": OrganizationArgs{...} }

type OrganizationMapOutput added in v1.1.2

type OrganizationMapOutput struct{ *pulumi.OutputState }

func (OrganizationMapOutput) ElementType added in v1.1.2

func (OrganizationMapOutput) ElementType() reflect.Type

func (OrganizationMapOutput) MapIndex added in v1.1.2

func (OrganizationMapOutput) ToOrganizationMapOutput added in v1.1.2

func (o OrganizationMapOutput) ToOrganizationMapOutput() OrganizationMapOutput

func (OrganizationMapOutput) ToOrganizationMapOutputWithContext added in v1.1.2

func (o OrganizationMapOutput) ToOrganizationMapOutputWithContext(ctx context.Context) OrganizationMapOutput

type OrganizationOutput

type OrganizationOutput struct {
	*pulumi.OutputState
}

func (OrganizationOutput) ElementType

func (OrganizationOutput) ElementType() reflect.Type

func (OrganizationOutput) ToOrganizationOutput

func (o OrganizationOutput) ToOrganizationOutput() OrganizationOutput

func (OrganizationOutput) ToOrganizationOutputWithContext

func (o OrganizationOutput) ToOrganizationOutputWithContext(ctx context.Context) OrganizationOutput

func (OrganizationOutput) ToOrganizationPtrOutput added in v1.1.2

func (o OrganizationOutput) ToOrganizationPtrOutput() OrganizationPtrOutput

func (OrganizationOutput) ToOrganizationPtrOutputWithContext added in v1.1.2

func (o OrganizationOutput) ToOrganizationPtrOutputWithContext(ctx context.Context) OrganizationPtrOutput

type OrganizationPtrInput added in v1.1.2

type OrganizationPtrInput interface {
	pulumi.Input

	ToOrganizationPtrOutput() OrganizationPtrOutput
	ToOrganizationPtrOutputWithContext(ctx context.Context) OrganizationPtrOutput
}

type OrganizationPtrOutput added in v1.1.2

type OrganizationPtrOutput struct {
	*pulumi.OutputState
}

func (OrganizationPtrOutput) ElementType added in v1.1.2

func (OrganizationPtrOutput) ElementType() reflect.Type

func (OrganizationPtrOutput) ToOrganizationPtrOutput added in v1.1.2

func (o OrganizationPtrOutput) ToOrganizationPtrOutput() OrganizationPtrOutput

func (OrganizationPtrOutput) ToOrganizationPtrOutputWithContext added in v1.1.2

func (o OrganizationPtrOutput) ToOrganizationPtrOutputWithContext(ctx context.Context) OrganizationPtrOutput

type OrganizationState

type OrganizationState struct {
	Created pulumi.StringPtrInput
	// Description string
	Description pulumi.StringPtrInput
	Logo pulumi.StringPtrInput
	// The name of the Organization
	Name pulumi.StringPtrInput
	// Twitter handle
	Twitter pulumi.StringPtrInput
	Updated pulumi.StringPtrInput
	// Website link
	Website pulumi.StringPtrInput
}

func (OrganizationState) ElementType

func (OrganizationState) ElementType() reflect.Type

type Plan

type Plan pulumi.String

func (Plan) ElementType

func (Plan) ElementType() reflect.Type

func (Plan) ToStringOutput

func (e Plan) ToStringOutput() pulumi.StringOutput

func (Plan) ToStringOutputWithContext

func (e Plan) ToStringOutputWithContext(ctx context.Context) pulumi.StringOutput

func (Plan) ToStringPtrOutput

func (e Plan) ToStringPtrOutput() pulumi.StringPtrOutput

func (Plan) ToStringPtrOutputWithContext

func (e Plan) ToStringPtrOutputWithContext(ctx context.Context) pulumi.StringPtrOutput

type PortVlanAttachment

type PortVlanAttachment struct {
	pulumi.CustomResourceState

	// ID of device to be assigned to the VLAN
	DeviceId pulumi.StringOutput `pulumi:"deviceId"`
	// Add port back to the bond when this resource is removed. Default is false.
	ForceBond pulumi.BoolPtrOutput `pulumi:"forceBond"`
	// Mark this VLAN a native VLAN on the port. This can be used only if this assignment assigns second or further VLAN to the port. To ensure that this attachment is not first on a port, you can use `dependsOn` pointing to another metal_port_vlan_attachment, just like in the layer2-individual example above.
	Native pulumi.BoolPtrOutput `pulumi:"native"`
	PortId pulumi.StringOutput  `pulumi:"portId"`
	// Name of network port to be assigned to the VLAN
	PortName pulumi.StringOutput `pulumi:"portName"`
	VlanId   pulumi.StringOutput `pulumi:"vlanId"`
	// VXLAN Network Identifier, integer
	VlanVnid pulumi.IntOutput `pulumi:"vlanVnid"`
}

Provides a resource to attach device ports to VLANs.

Device and VLAN must be in the same facility.

If you need this resource to add the port back to bond on removal, set `forceBond = true`.

To learn more about Layer 2 networking in Equinix Metal, refer to

* <https://metal.equinix.com/developers/docs/networking/layer2/> * <https://metal.equinix.com/developers/docs/networking/layer2-configs/>

## Example Usage ### Hybrid network type

```go package main

import (

"github.com/pulumi/pulumi-equinix-metal/sdk/go/equinix-metal"
"github.com/pulumi/pulumi/sdk/v2/go/pulumi"

)

func main() {
	pulumi.Run(func(ctx *pulumi.Context) error {
		testVlan, err := equinix - metal.NewVlan(ctx, "testVlan", &equinix-metal.VlanArgs{
			Description: pulumi.String("VLAN in New Jersey"),
			Facility:    pulumi.String("ewr1"),
			ProjectId:   pulumi.Any(local.Project_id),
		})
		if err != nil {
			return err
		}
		testDevice, err := equinix - metal.NewDevice(ctx, "testDevice", &equinix-metal.DeviceArgs{
			Hostname: pulumi.String("test"),
			Plan:     pulumi.String("m1.xlarge.x86"),
			Facilities: pulumi.StringArray{
				pulumi.String("ewr1"),
			},
			OperatingSystem: pulumi.String("ubuntu_16_04"),
			BillingCycle:    pulumi.String("hourly"),
			ProjectId:       pulumi.Any(local.Project_id),
		})
		if err != nil {
			return err
		}
		testDeviceNetworkType, err := equinix - metal.NewDeviceNetworkType(ctx, "testDeviceNetworkType", &equinix-metal.DeviceNetworkTypeArgs{
			DeviceId: testDevice.ID(),
			Type:     pulumi.String("hybrid"),
		})
		if err != nil {
			return err
		}
		_, err = equinix - metal.NewPortVlanAttachment(ctx, "testPortVlanAttachment", &equinix-metal.PortVlanAttachmentArgs{
			DeviceId: testDeviceNetworkType.ID(),
			PortName: pulumi.String("eth1"),
			VlanVnid: testVlan.Vxlan,
		})
		if err != nil {
			return err
		}
		return nil
	})
}

``` ### Layer 2 network

```go package main

import (

"github.com/pulumi/pulumi-equinix-metal/sdk/go/equinix-metal"
"github.com/pulumi/pulumi/sdk/v2/go/pulumi"

)

func main() {
	pulumi.Run(func(ctx *pulumi.Context) error {
		testDevice, err := equinix - metal.NewDevice(ctx, "testDevice", &equinix-metal.DeviceArgs{
			Hostname: pulumi.String("test"),
			Plan:     pulumi.String("m1.xlarge.x86"),
			Facilities: pulumi.StringArray{
				pulumi.String("ewr1"),
			},
			OperatingSystem: pulumi.String("ubuntu_16_04"),
			BillingCycle:    pulumi.String("hourly"),
			ProjectId:       pulumi.Any(local.Project_id),
		})
		if err != nil {
			return err
		}
		testDeviceNetworkType, err := equinix - metal.NewDeviceNetworkType(ctx, "testDeviceNetworkType", &equinix-metal.DeviceNetworkTypeArgs{
			DeviceId: testDevice.ID(),
			Type:     pulumi.String("layer2-individual"),
		})
		if err != nil {
			return err
		}
		test1Vlan, err := equinix - metal.NewVlan(ctx, "test1Vlan", &equinix-metal.VlanArgs{
			Description: pulumi.String("VLAN in New Jersey"),
			Facility:    pulumi.String("ewr1"),
			ProjectId:   pulumi.Any(local.Project_id),
		})
		if err != nil {
			return err
		}
		test2Vlan, err := equinix - metal.NewVlan(ctx, "test2Vlan", &equinix-metal.VlanArgs{
			Description: pulumi.String("VLAN in New Jersey"),
			Facility:    pulumi.String("ewr1"),
			ProjectId:   pulumi.Any(local.Project_id),
		})
		if err != nil {
			return err
		}
		_, err = equinix - metal.NewPortVlanAttachment(ctx, "test1PortVlanAttachment", &equinix-metal.PortVlanAttachmentArgs{
			DeviceId: testDeviceNetworkType.ID(),
			VlanVnid: test1Vlan.Vxlan,
			PortName: pulumi.String("eth1"),
		})
		if err != nil {
			return err
		}
		_, err = equinix - metal.NewPortVlanAttachment(ctx, "test2PortVlanAttachment", &equinix-metal.PortVlanAttachmentArgs{
			DeviceId: testDeviceNetworkType.ID(),
			VlanVnid: test2Vlan.Vxlan,
			PortName: pulumi.String("eth1"),
			Native:   pulumi.Bool(true),
		}, pulumi.DependsOn([]pulumi.Resource{
			"metal_port_vlan_attachment.test1",
		}))
		if err != nil {
			return err
		}
		return nil
	})
}

``` ## Attribute Referece

* `id` - UUID of device port used in the assignment * `vlanId` - UUID of VLAN API resource * `portId` - UUID of device port

func GetPortVlanAttachment

func GetPortVlanAttachment(ctx *pulumi.Context,
	name string, id pulumi.IDInput, state *PortVlanAttachmentState, opts ...pulumi.ResourceOption) (*PortVlanAttachment, error)

GetPortVlanAttachment gets an existing PortVlanAttachment resource's state with the given name, ID, and optional state properties that are used to uniquely qualify the lookup (nil if not required).

func NewPortVlanAttachment

func NewPortVlanAttachment(ctx *pulumi.Context,
	name string, args *PortVlanAttachmentArgs, opts ...pulumi.ResourceOption) (*PortVlanAttachment, error)

NewPortVlanAttachment registers a new resource with the given unique name, arguments, and options.

func (*PortVlanAttachment) ElementType

func (*PortVlanAttachment) ElementType() reflect.Type

func (*PortVlanAttachment) ToPortVlanAttachmentOutput

func (i *PortVlanAttachment) ToPortVlanAttachmentOutput() PortVlanAttachmentOutput

func (*PortVlanAttachment) ToPortVlanAttachmentOutputWithContext

func (i *PortVlanAttachment) ToPortVlanAttachmentOutputWithContext(ctx context.Context) PortVlanAttachmentOutput

func (*PortVlanAttachment) ToPortVlanAttachmentPtrOutput added in v1.1.2

func (i *PortVlanAttachment) ToPortVlanAttachmentPtrOutput() PortVlanAttachmentPtrOutput

func (*PortVlanAttachment) ToPortVlanAttachmentPtrOutputWithContext added in v1.1.2

func (i *PortVlanAttachment) ToPortVlanAttachmentPtrOutputWithContext(ctx context.Context) PortVlanAttachmentPtrOutput

type PortVlanAttachmentArgs

type PortVlanAttachmentArgs struct {
	// ID of device to be assigned to the VLAN
	DeviceId pulumi.StringInput
	// Add port back to the bond when this resource is removed. Default is false.
	ForceBond pulumi.BoolPtrInput
	// Mark this VLAN a native VLAN on the port. This can be used only if this assignment assigns second or further VLAN to the port. To ensure that this attachment is not first on a port, you can use `dependsOn` pointing to another metal_port_vlan_attachment, just like in the layer2-individual example above.
	Native pulumi.BoolPtrInput
	// Name of network port to be assigned to the VLAN
	PortName pulumi.StringInput
	// VXLAN Network Identifier, integer
	VlanVnid pulumi.IntInput
}

The set of arguments for constructing a PortVlanAttachment resource.

func (PortVlanAttachmentArgs) ElementType

func (PortVlanAttachmentArgs) ElementType() reflect.Type

type PortVlanAttachmentArray added in v1.1.2

type PortVlanAttachmentArray []PortVlanAttachmentInput

func (PortVlanAttachmentArray) ElementType added in v1.1.2

func (PortVlanAttachmentArray) ElementType() reflect.Type

func (PortVlanAttachmentArray) ToPortVlanAttachmentArrayOutput added in v1.1.2

func (i PortVlanAttachmentArray) ToPortVlanAttachmentArrayOutput() PortVlanAttachmentArrayOutput

func (PortVlanAttachmentArray) ToPortVlanAttachmentArrayOutputWithContext added in v1.1.2

func (i PortVlanAttachmentArray) ToPortVlanAttachmentArrayOutputWithContext(ctx context.Context) PortVlanAttachmentArrayOutput

type PortVlanAttachmentArrayInput added in v1.1.2

type PortVlanAttachmentArrayInput interface {
	pulumi.Input

	ToPortVlanAttachmentArrayOutput() PortVlanAttachmentArrayOutput
	ToPortVlanAttachmentArrayOutputWithContext(context.Context) PortVlanAttachmentArrayOutput
}

PortVlanAttachmentArrayInput is an input type that accepts PortVlanAttachmentArray and PortVlanAttachmentArrayOutput values. You can construct a concrete instance of `PortVlanAttachmentArrayInput` via:

PortVlanAttachmentArray{ PortVlanAttachmentArgs{...} }

type PortVlanAttachmentArrayOutput added in v1.1.2

type PortVlanAttachmentArrayOutput struct{ *pulumi.OutputState }

func (PortVlanAttachmentArrayOutput) ElementType added in v1.1.2

func (PortVlanAttachmentArrayOutput) Index added in v1.1.2

func (PortVlanAttachmentArrayOutput) ToPortVlanAttachmentArrayOutput added in v1.1.2

func (o PortVlanAttachmentArrayOutput) ToPortVlanAttachmentArrayOutput() PortVlanAttachmentArrayOutput

func (PortVlanAttachmentArrayOutput) ToPortVlanAttachmentArrayOutputWithContext added in v1.1.2

func (o PortVlanAttachmentArrayOutput) ToPortVlanAttachmentArrayOutputWithContext(ctx context.Context) PortVlanAttachmentArrayOutput

type PortVlanAttachmentInput

type PortVlanAttachmentInput interface {
	pulumi.Input

	ToPortVlanAttachmentOutput() PortVlanAttachmentOutput
	ToPortVlanAttachmentOutputWithContext(ctx context.Context) PortVlanAttachmentOutput
}

type PortVlanAttachmentMap added in v1.1.2

type PortVlanAttachmentMap map[string]PortVlanAttachmentInput

func (PortVlanAttachmentMap) ElementType added in v1.1.2

func (PortVlanAttachmentMap) ElementType() reflect.Type

func (PortVlanAttachmentMap) ToPortVlanAttachmentMapOutput added in v1.1.2

func (i PortVlanAttachmentMap) ToPortVlanAttachmentMapOutput() PortVlanAttachmentMapOutput

func (PortVlanAttachmentMap) ToPortVlanAttachmentMapOutputWithContext added in v1.1.2

func (i PortVlanAttachmentMap) ToPortVlanAttachmentMapOutputWithContext(ctx context.Context) PortVlanAttachmentMapOutput

type PortVlanAttachmentMapInput added in v1.1.2

type PortVlanAttachmentMapInput interface {
	pulumi.Input

	ToPortVlanAttachmentMapOutput() PortVlanAttachmentMapOutput
	ToPortVlanAttachmentMapOutputWithContext(context.Context) PortVlanAttachmentMapOutput
}

PortVlanAttachmentMapInput is an input type that accepts PortVlanAttachmentMap and PortVlanAttachmentMapOutput values. You can construct a concrete instance of `PortVlanAttachmentMapInput` via:

PortVlanAttachmentMap{ "key": PortVlanAttachmentArgs{...} }

type PortVlanAttachmentMapOutput added in v1.1.2

type PortVlanAttachmentMapOutput struct{ *pulumi.OutputState }

func (PortVlanAttachmentMapOutput) ElementType added in v1.1.2

func (PortVlanAttachmentMapOutput) MapIndex added in v1.1.2

func (PortVlanAttachmentMapOutput) ToPortVlanAttachmentMapOutput added in v1.1.2

func (o PortVlanAttachmentMapOutput) ToPortVlanAttachmentMapOutput() PortVlanAttachmentMapOutput

func (PortVlanAttachmentMapOutput) ToPortVlanAttachmentMapOutputWithContext added in v1.1.2

func (o PortVlanAttachmentMapOutput) ToPortVlanAttachmentMapOutputWithContext(ctx context.Context) PortVlanAttachmentMapOutput

type PortVlanAttachmentOutput

type PortVlanAttachmentOutput struct {
	*pulumi.OutputState
}

func (PortVlanAttachmentOutput) ElementType

func (PortVlanAttachmentOutput) ElementType() reflect.Type

func (PortVlanAttachmentOutput) ToPortVlanAttachmentOutput

func (o PortVlanAttachmentOutput) ToPortVlanAttachmentOutput() PortVlanAttachmentOutput

func (PortVlanAttachmentOutput) ToPortVlanAttachmentOutputWithContext

func (o PortVlanAttachmentOutput) ToPortVlanAttachmentOutputWithContext(ctx context.Context) PortVlanAttachmentOutput

func (PortVlanAttachmentOutput) ToPortVlanAttachmentPtrOutput added in v1.1.2

func (o PortVlanAttachmentOutput) ToPortVlanAttachmentPtrOutput() PortVlanAttachmentPtrOutput

func (PortVlanAttachmentOutput) ToPortVlanAttachmentPtrOutputWithContext added in v1.1.2

func (o PortVlanAttachmentOutput) ToPortVlanAttachmentPtrOutputWithContext(ctx context.Context) PortVlanAttachmentPtrOutput

type PortVlanAttachmentPtrInput added in v1.1.2

type PortVlanAttachmentPtrInput interface {
	pulumi.Input

	ToPortVlanAttachmentPtrOutput() PortVlanAttachmentPtrOutput
	ToPortVlanAttachmentPtrOutputWithContext(ctx context.Context) PortVlanAttachmentPtrOutput
}

type PortVlanAttachmentPtrOutput added in v1.1.2

type PortVlanAttachmentPtrOutput struct {
	*pulumi.OutputState
}

func (PortVlanAttachmentPtrOutput) ElementType added in v1.1.2

func (PortVlanAttachmentPtrOutput) ToPortVlanAttachmentPtrOutput added in v1.1.2

func (o PortVlanAttachmentPtrOutput) ToPortVlanAttachmentPtrOutput() PortVlanAttachmentPtrOutput

func (PortVlanAttachmentPtrOutput) ToPortVlanAttachmentPtrOutputWithContext added in v1.1.2

func (o PortVlanAttachmentPtrOutput) ToPortVlanAttachmentPtrOutputWithContext(ctx context.Context) PortVlanAttachmentPtrOutput

type PortVlanAttachmentState

type PortVlanAttachmentState struct {
	// ID of device to be assigned to the VLAN
	DeviceId pulumi.StringPtrInput
	// Add port back to the bond when this resource is removed. Default is false.
	ForceBond pulumi.BoolPtrInput
	// Mark this VLAN a native VLAN on the port. This can be used only if this assignment assigns second or further VLAN to the port. To ensure that this attachment is not first on a port, you can use `dependsOn` pointing to another metal_port_vlan_attachment, just like in the layer2-individual example above.
	Native pulumi.BoolPtrInput
	PortId pulumi.StringPtrInput
	// Name of network port to be assigned to the VLAN
	PortName pulumi.StringPtrInput
	VlanId   pulumi.StringPtrInput
	// VXLAN Network Identifier, integer
	VlanVnid pulumi.IntPtrInput
}

func (PortVlanAttachmentState) ElementType

func (PortVlanAttachmentState) ElementType() reflect.Type

type Project

type Project struct {
	pulumi.CustomResourceState

	// Enable or disable [Backend Transfer](https://metal.equinix.com/developers/docs/networking/backend-transfer/), default is false
	BackendTransfer pulumi.BoolPtrOutput `pulumi:"backendTransfer"`
	// Optional BGP settings. Refer to [Equinix Metal guide for BGP](https://metal.equinix.com/developers/docs/networking/local-global-bgp/).
	BgpConfig ProjectBgpConfigPtrOutput `pulumi:"bgpConfig"`
	// The timestamp for when the project was created
	Created pulumi.StringOutput `pulumi:"created"`
	// The name of the project
	Name pulumi.StringOutput `pulumi:"name"`
	// The UUID of organization under which you want to create the project. If you leave it out, the project will be create under your the default organization of your account.
	OrganizationId pulumi.StringOutput `pulumi:"organizationId"`
	// The UUID of payment method for this project. The payment method and the project need to belong to the same organization (passed with `organizationId`, or default).
	PaymentMethodId pulumi.StringOutput `pulumi:"paymentMethodId"`
	// The timestamp for the last time the project was updated
	Updated pulumi.StringOutput `pulumi:"updated"`
}

func GetProject

func GetProject(ctx *pulumi.Context,
	name string, id pulumi.IDInput, state *ProjectState, opts ...pulumi.ResourceOption) (*Project, error)

GetProject gets an existing Project resource's state with the given name, ID, and optional state properties that are used to uniquely qualify the lookup (nil if not required).

func NewProject

func NewProject(ctx *pulumi.Context,
	name string, args *ProjectArgs, opts ...pulumi.ResourceOption) (*Project, error)

NewProject registers a new resource with the given unique name, arguments, and options.

func (*Project) ElementType

func (*Project) ElementType() reflect.Type

func (*Project) ToProjectOutput

func (i *Project) ToProjectOutput() ProjectOutput

func (*Project) ToProjectOutputWithContext

func (i *Project) ToProjectOutputWithContext(ctx context.Context) ProjectOutput

func (*Project) ToProjectPtrOutput added in v1.1.2

func (i *Project) ToProjectPtrOutput() ProjectPtrOutput

func (*Project) ToProjectPtrOutputWithContext added in v1.1.2

func (i *Project) ToProjectPtrOutputWithContext(ctx context.Context) ProjectPtrOutput

type ProjectArgs

type ProjectArgs struct {
	// Enable or disable [Backend Transfer](https://metal.equinix.com/developers/docs/networking/backend-transfer/), default is false
	BackendTransfer pulumi.BoolPtrInput
	// Optional BGP settings. Refer to [Equinix Metal guide for BGP](https://metal.equinix.com/developers/docs/networking/local-global-bgp/).
	BgpConfig ProjectBgpConfigPtrInput
	// The name of the project
	Name pulumi.StringPtrInput
	// The UUID of organization under which you want to create the project. If you leave it out, the project will be create under your the default organization of your account.
	OrganizationId pulumi.StringPtrInput
	// The UUID of payment method for this project. The payment method and the project need to belong to the same organization (passed with `organizationId`, or default).
	PaymentMethodId pulumi.StringPtrInput
}

The set of arguments for constructing a Project resource.

func (ProjectArgs) ElementType

func (ProjectArgs) ElementType() reflect.Type

type ProjectArray added in v1.1.2

type ProjectArray []ProjectInput

func (ProjectArray) ElementType added in v1.1.2

func (ProjectArray) ElementType() reflect.Type

func (ProjectArray) ToProjectArrayOutput added in v1.1.2

func (i ProjectArray) ToProjectArrayOutput() ProjectArrayOutput

func (ProjectArray) ToProjectArrayOutputWithContext added in v1.1.2

func (i ProjectArray) ToProjectArrayOutputWithContext(ctx context.Context) ProjectArrayOutput

type ProjectArrayInput added in v1.1.2

type ProjectArrayInput interface {
	pulumi.Input

	ToProjectArrayOutput() ProjectArrayOutput
	ToProjectArrayOutputWithContext(context.Context) ProjectArrayOutput
}

ProjectArrayInput is an input type that accepts ProjectArray and ProjectArrayOutput values. You can construct a concrete instance of `ProjectArrayInput` via:

ProjectArray{ ProjectArgs{...} }

type ProjectArrayOutput added in v1.1.2

type ProjectArrayOutput struct{ *pulumi.OutputState }

func (ProjectArrayOutput) ElementType added in v1.1.2

func (ProjectArrayOutput) ElementType() reflect.Type

func (ProjectArrayOutput) Index added in v1.1.2

func (ProjectArrayOutput) ToProjectArrayOutput added in v1.1.2

func (o ProjectArrayOutput) ToProjectArrayOutput() ProjectArrayOutput

func (ProjectArrayOutput) ToProjectArrayOutputWithContext added in v1.1.2

func (o ProjectArrayOutput) ToProjectArrayOutputWithContext(ctx context.Context) ProjectArrayOutput

type ProjectBgpConfig

type ProjectBgpConfig struct {
	// Autonomous System Number for local BGP deployment
	Asn int `pulumi:"asn"`
	// `private` or `public`, the `private` is likely to be usable immediately, the `public` will need to be review by Equinix Metal engineers
	DeploymentType string `pulumi:"deploymentType"`
	// The maximum number of route filters allowed per server
	MaxPrefix *int `pulumi:"maxPrefix"`
	// Password for BGP session in plaintext (not a checksum)
	Md5 *string `pulumi:"md5"`
	// status of BGP configuration in the project
	Status *string `pulumi:"status"`
}

type ProjectBgpConfigArgs

type ProjectBgpConfigArgs struct {
	// Autonomous System Number for local BGP deployment
	Asn pulumi.IntInput `pulumi:"asn"`
	// `private` or `public`, the `private` is likely to be usable immediately, the `public` will need to be review by Equinix Metal engineers
	DeploymentType pulumi.StringInput `pulumi:"deploymentType"`
	// The maximum number of route filters allowed per server
	MaxPrefix pulumi.IntPtrInput `pulumi:"maxPrefix"`
	// Password for BGP session in plaintext (not a checksum)
	Md5 pulumi.StringPtrInput `pulumi:"md5"`
	// status of BGP configuration in the project
	Status pulumi.StringPtrInput `pulumi:"status"`
}

func (ProjectBgpConfigArgs) ElementType

func (ProjectBgpConfigArgs) ElementType() reflect.Type

func (ProjectBgpConfigArgs) ToProjectBgpConfigOutput

func (i ProjectBgpConfigArgs) ToProjectBgpConfigOutput() ProjectBgpConfigOutput

func (ProjectBgpConfigArgs) ToProjectBgpConfigOutputWithContext

func (i ProjectBgpConfigArgs) ToProjectBgpConfigOutputWithContext(ctx context.Context) ProjectBgpConfigOutput

func (ProjectBgpConfigArgs) ToProjectBgpConfigPtrOutput

func (i ProjectBgpConfigArgs) ToProjectBgpConfigPtrOutput() ProjectBgpConfigPtrOutput

func (ProjectBgpConfigArgs) ToProjectBgpConfigPtrOutputWithContext

func (i ProjectBgpConfigArgs) ToProjectBgpConfigPtrOutputWithContext(ctx context.Context) ProjectBgpConfigPtrOutput

type ProjectBgpConfigInput

type ProjectBgpConfigInput interface {
	pulumi.Input

	ToProjectBgpConfigOutput() ProjectBgpConfigOutput
	ToProjectBgpConfigOutputWithContext(context.Context) ProjectBgpConfigOutput
}

ProjectBgpConfigInput is an input type that accepts ProjectBgpConfigArgs and ProjectBgpConfigOutput values. You can construct a concrete instance of `ProjectBgpConfigInput` via:

ProjectBgpConfigArgs{...}

type ProjectBgpConfigOutput

type ProjectBgpConfigOutput struct{ *pulumi.OutputState }

func (ProjectBgpConfigOutput) Asn

Autonomous System Number for local BGP deployment

func (ProjectBgpConfigOutput) DeploymentType

func (o ProjectBgpConfigOutput) DeploymentType() pulumi.StringOutput

`private` or `public`, the `private` is likely to be usable immediately, the `public` will need to be review by Equinix Metal engineers

func (ProjectBgpConfigOutput) ElementType

func (ProjectBgpConfigOutput) ElementType() reflect.Type

func (ProjectBgpConfigOutput) MaxPrefix

The maximum number of route filters allowed per server

func (ProjectBgpConfigOutput) Md5

Password for BGP session in plaintext (not a checksum)

func (ProjectBgpConfigOutput) Status

status of BGP configuration in the project

func (ProjectBgpConfigOutput) ToProjectBgpConfigOutput

func (o ProjectBgpConfigOutput) ToProjectBgpConfigOutput() ProjectBgpConfigOutput

func (ProjectBgpConfigOutput) ToProjectBgpConfigOutputWithContext

func (o ProjectBgpConfigOutput) ToProjectBgpConfigOutputWithContext(ctx context.Context) ProjectBgpConfigOutput

func (ProjectBgpConfigOutput) ToProjectBgpConfigPtrOutput

func (o ProjectBgpConfigOutput) ToProjectBgpConfigPtrOutput() ProjectBgpConfigPtrOutput

func (ProjectBgpConfigOutput) ToProjectBgpConfigPtrOutputWithContext

func (o ProjectBgpConfigOutput) ToProjectBgpConfigPtrOutputWithContext(ctx context.Context) ProjectBgpConfigPtrOutput

type ProjectBgpConfigPtrInput

type ProjectBgpConfigPtrInput interface {
	pulumi.Input

	ToProjectBgpConfigPtrOutput() ProjectBgpConfigPtrOutput
	ToProjectBgpConfigPtrOutputWithContext(context.Context) ProjectBgpConfigPtrOutput
}

ProjectBgpConfigPtrInput is an input type that accepts ProjectBgpConfigArgs, ProjectBgpConfigPtr and ProjectBgpConfigPtrOutput values. You can construct a concrete instance of `ProjectBgpConfigPtrInput` via:

        ProjectBgpConfigArgs{...}

or:

        nil

type ProjectBgpConfigPtrOutput

type ProjectBgpConfigPtrOutput struct{ *pulumi.OutputState }

func (ProjectBgpConfigPtrOutput) Asn

Autonomous System Number for local BGP deployment

func (ProjectBgpConfigPtrOutput) DeploymentType

`private` or `public`, the `private` is likely to be usable immediately, the `public` will need to be review by Equinix Metal engineers

func (ProjectBgpConfigPtrOutput) Elem

func (ProjectBgpConfigPtrOutput) ElementType

func (ProjectBgpConfigPtrOutput) ElementType() reflect.Type

func (ProjectBgpConfigPtrOutput) MaxPrefix

The maximum number of route filters allowed per server

func (ProjectBgpConfigPtrOutput) Md5

Password for BGP session in plaintext (not a checksum)

func (ProjectBgpConfigPtrOutput) Status

status of BGP configuration in the project

func (ProjectBgpConfigPtrOutput) ToProjectBgpConfigPtrOutput

func (o ProjectBgpConfigPtrOutput) ToProjectBgpConfigPtrOutput() ProjectBgpConfigPtrOutput

func (ProjectBgpConfigPtrOutput) ToProjectBgpConfigPtrOutputWithContext

func (o ProjectBgpConfigPtrOutput) ToProjectBgpConfigPtrOutputWithContext(ctx context.Context) ProjectBgpConfigPtrOutput

type ProjectInput

type ProjectInput interface {
	pulumi.Input

	ToProjectOutput() ProjectOutput
	ToProjectOutputWithContext(ctx context.Context) ProjectOutput
}

type ProjectMap added in v1.1.2

type ProjectMap map[string]ProjectInput

func (ProjectMap) ElementType added in v1.1.2

func (ProjectMap) ElementType() reflect.Type

func (ProjectMap) ToProjectMapOutput added in v1.1.2

func (i ProjectMap) ToProjectMapOutput() ProjectMapOutput

func (ProjectMap) ToProjectMapOutputWithContext added in v1.1.2

func (i ProjectMap) ToProjectMapOutputWithContext(ctx context.Context) ProjectMapOutput

type ProjectMapInput added in v1.1.2

type ProjectMapInput interface {
	pulumi.Input

	ToProjectMapOutput() ProjectMapOutput
	ToProjectMapOutputWithContext(context.Context) ProjectMapOutput
}

ProjectMapInput is an input type that accepts ProjectMap and ProjectMapOutput values. You can construct a concrete instance of `ProjectMapInput` via:

ProjectMap{ "key": ProjectArgs{...} }

type ProjectMapOutput added in v1.1.2

type ProjectMapOutput struct{ *pulumi.OutputState }

func (ProjectMapOutput) ElementType added in v1.1.2

func (ProjectMapOutput) ElementType() reflect.Type

func (ProjectMapOutput) MapIndex added in v1.1.2

func (ProjectMapOutput) ToProjectMapOutput added in v1.1.2

func (o ProjectMapOutput) ToProjectMapOutput() ProjectMapOutput

func (ProjectMapOutput) ToProjectMapOutputWithContext added in v1.1.2

func (o ProjectMapOutput) ToProjectMapOutputWithContext(ctx context.Context) ProjectMapOutput

type ProjectOutput

type ProjectOutput struct {
	*pulumi.OutputState
}

func (ProjectOutput) ElementType

func (ProjectOutput) ElementType() reflect.Type

func (ProjectOutput) ToProjectOutput

func (o ProjectOutput) ToProjectOutput() ProjectOutput

func (ProjectOutput) ToProjectOutputWithContext

func (o ProjectOutput) ToProjectOutputWithContext(ctx context.Context) ProjectOutput

func (ProjectOutput) ToProjectPtrOutput added in v1.1.2

func (o ProjectOutput) ToProjectPtrOutput() ProjectPtrOutput

func (ProjectOutput) ToProjectPtrOutputWithContext added in v1.1.2

func (o ProjectOutput) ToProjectPtrOutputWithContext(ctx context.Context) ProjectPtrOutput

type ProjectPtrInput added in v1.1.2

type ProjectPtrInput interface {
	pulumi.Input

	ToProjectPtrOutput() ProjectPtrOutput
	ToProjectPtrOutputWithContext(ctx context.Context) ProjectPtrOutput
}

type ProjectPtrOutput added in v1.1.2

type ProjectPtrOutput struct {
	*pulumi.OutputState
}

func (ProjectPtrOutput) ElementType added in v1.1.2

func (ProjectPtrOutput) ElementType() reflect.Type

func (ProjectPtrOutput) ToProjectPtrOutput added in v1.1.2

func (o ProjectPtrOutput) ToProjectPtrOutput() ProjectPtrOutput

func (ProjectPtrOutput) ToProjectPtrOutputWithContext added in v1.1.2

func (o ProjectPtrOutput) ToProjectPtrOutputWithContext(ctx context.Context) ProjectPtrOutput

type ProjectSshKey

type ProjectSshKey struct {
	pulumi.CustomResourceState

	// The timestamp for when the SSH key was created
	Created pulumi.StringOutput `pulumi:"created"`
	// The fingerprint of the SSH key
	Fingerprint pulumi.StringOutput `pulumi:"fingerprint"`
	// The name of the SSH key for identification
	Name pulumi.StringOutput `pulumi:"name"`
	// The ID of parent project (same as project_id)
	OwnerId pulumi.StringOutput `pulumi:"ownerId"`
	// The ID of parent project
	ProjectId pulumi.StringOutput `pulumi:"projectId"`
	// The public key. If this is a file, it can be read using the file interpolation function
	PublicKey pulumi.StringOutput `pulumi:"publicKey"`
	// The timestamp for the last time the SSH key was updated
	Updated pulumi.StringOutput `pulumi:"updated"`
}

Provides an Equinix Metal project SSH key resource to manage project-specific SSH keys. Project SSH keys will only be populated onto servers that belong to that project, in contrast to User SSH Keys.

## Example Usage

```go package main

import (

"github.com/pulumi/pulumi-equinix-metal/sdk/go/equinix-metal"
"github.com/pulumi/pulumi/sdk/v2/go/pulumi"

)

func main() {
	pulumi.Run(func(ctx *pulumi.Context) error {
		projectId := "<UUID_of_your_project>"
		testProjectSshKey, err := equinix - metal.NewProjectSshKey(ctx, "testProjectSshKey", &equinix-metal.ProjectSshKeyArgs{
			PublicKey: pulumi.String("ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAACAQDM/unxJeFqxsTJcu6mhqsMHSaVlpu+Jj/P+44zrm6X/MAoHSX3X9oLgujEjjZ74yLfdfe0bJrbL2YgJzNaEkIQQ1VPMHB5EhTKUBGnzlPP0hHTnxsjAm9qDHgUPgvgFDQSAMzdJRJ0Cexo16Ph9VxCoLh3dxiE7s2gaM2FdVg7P8aSxKypsxAhYV3D0AwqzoOyT6WWhBoQ0xZ85XevOTnJCpImSemEGs6nVGEsWcEc1d1YvdxFjAK4SdsKUMkj4Dsy/leKsdi/DEAf356vbMT1UHsXXvy5TlHu/Pa6qF53v32Enz+nhKy7/8W2Yt2yWx8HnQcT2rug9lvCXagJO6oauqRTO77C4QZn13ZLMZgLT66S/tNh2EX0gi6vmIs5dth8uF+K6nxIyKJXbcA4ASg7F1OJrHKFZdTc5v1cPeq6PcbqGgc+8SrPYQmzvQqLoMBuxyos2hUkYOmw3aeWJj9nFa8Wu5WaN89mUeOqSkU4S5cgUzWUOmKey56B/j/s1sVys9rMhZapVs0wL4L9GBBM48N5jAQZnnpo85A8KsZq5ME22bTLqnxsDXqDYZvS7PSI6Dxi7eleOFE/NYYDkrgDLHTQri8ucDMVeVWHgoMY2bPXdn7KKy5jW5jKsf8EPARXg77A4gRYmgKrcwIKqJEUPqyxJBe0CPoGTqgXPRsUiQ== tomk@hp2"),
			ProjectId: pulumi.String(projectId),
		})
		if err != nil {
			return err
		}
		_, err = equinix - metal.NewDevice(ctx, "testDevice", &equinix-metal.DeviceArgs{
			Hostname: pulumi.String("test"),
			Plan:     pulumi.String("baremetal_0"),
			Facilities: pulumi.StringArray{
				pulumi.String("ewr1"),
			},
			OperatingSystem: pulumi.String("ubuntu_16_04"),
			BillingCycle:    pulumi.String("hourly"),
			ProjectSshKeyIds: pulumi.StringArray{
				testProjectSshKey.ID(),
			},
			ProjectId: pulumi.String(projectId),
		})
		if err != nil {
			return err
		}
		return nil
	})
}

```

func GetProjectSshKey

func GetProjectSshKey(ctx *pulumi.Context,
	name string, id pulumi.IDInput, state *ProjectSshKeyState, opts ...pulumi.ResourceOption) (*ProjectSshKey, error)

GetProjectSshKey gets an existing ProjectSshKey resource's state with the given name, ID, and optional state properties that are used to uniquely qualify the lookup (nil if not required).

func NewProjectSshKey

func NewProjectSshKey(ctx *pulumi.Context,
	name string, args *ProjectSshKeyArgs, opts ...pulumi.ResourceOption) (*ProjectSshKey, error)

NewProjectSshKey registers a new resource with the given unique name, arguments, and options.

func (*ProjectSshKey) ElementType

func (*ProjectSshKey) ElementType() reflect.Type

func (*ProjectSshKey) ToProjectSshKeyOutput

func (i *ProjectSshKey) ToProjectSshKeyOutput() ProjectSshKeyOutput

func (*ProjectSshKey) ToProjectSshKeyOutputWithContext

func (i *ProjectSshKey) ToProjectSshKeyOutputWithContext(ctx context.Context) ProjectSshKeyOutput

func (*ProjectSshKey) ToProjectSshKeyPtrOutput added in v1.1.2

func (i *ProjectSshKey) ToProjectSshKeyPtrOutput() ProjectSshKeyPtrOutput

func (*ProjectSshKey) ToProjectSshKeyPtrOutputWithContext added in v1.1.2

func (i *ProjectSshKey) ToProjectSshKeyPtrOutputWithContext(ctx context.Context) ProjectSshKeyPtrOutput

type ProjectSshKeyArgs

type ProjectSshKeyArgs struct {
	// The name of the SSH key for identification
	Name pulumi.StringPtrInput
	// The ID of parent project
	ProjectId pulumi.StringInput
	// The public key. If this is a file, it can be read using the file interpolation function
	PublicKey pulumi.StringInput
}

The set of arguments for constructing a ProjectSshKey resource.

func (ProjectSshKeyArgs) ElementType

func (ProjectSshKeyArgs) ElementType() reflect.Type

type ProjectSshKeyArray added in v1.1.2

type ProjectSshKeyArray []ProjectSshKeyInput

func (ProjectSshKeyArray) ElementType added in v1.1.2

func (ProjectSshKeyArray) ElementType() reflect.Type

func (ProjectSshKeyArray) ToProjectSshKeyArrayOutput added in v1.1.2

func (i ProjectSshKeyArray) ToProjectSshKeyArrayOutput() ProjectSshKeyArrayOutput

func (ProjectSshKeyArray) ToProjectSshKeyArrayOutputWithContext added in v1.1.2

func (i ProjectSshKeyArray) ToProjectSshKeyArrayOutputWithContext(ctx context.Context) ProjectSshKeyArrayOutput

type ProjectSshKeyArrayInput added in v1.1.2

type ProjectSshKeyArrayInput interface {
	pulumi.Input

	ToProjectSshKeyArrayOutput() ProjectSshKeyArrayOutput
	ToProjectSshKeyArrayOutputWithContext(context.Context) ProjectSshKeyArrayOutput
}

ProjectSshKeyArrayInput is an input type that accepts ProjectSshKeyArray and ProjectSshKeyArrayOutput values. You can construct a concrete instance of `ProjectSshKeyArrayInput` via:

ProjectSshKeyArray{ ProjectSshKeyArgs{...} }

type ProjectSshKeyArrayOutput added in v1.1.2

type ProjectSshKeyArrayOutput struct{ *pulumi.OutputState }

func (ProjectSshKeyArrayOutput) ElementType added in v1.1.2

func (ProjectSshKeyArrayOutput) ElementType() reflect.Type

func (ProjectSshKeyArrayOutput) Index added in v1.1.2

func (ProjectSshKeyArrayOutput) ToProjectSshKeyArrayOutput added in v1.1.2

func (o ProjectSshKeyArrayOutput) ToProjectSshKeyArrayOutput() ProjectSshKeyArrayOutput

func (ProjectSshKeyArrayOutput) ToProjectSshKeyArrayOutputWithContext added in v1.1.2

func (o ProjectSshKeyArrayOutput) ToProjectSshKeyArrayOutputWithContext(ctx context.Context) ProjectSshKeyArrayOutput

type ProjectSshKeyInput

type ProjectSshKeyInput interface {
	pulumi.Input

	ToProjectSshKeyOutput() ProjectSshKeyOutput
	ToProjectSshKeyOutputWithContext(ctx context.Context) ProjectSshKeyOutput
}

type ProjectSshKeyMap added in v1.1.2

type ProjectSshKeyMap map[string]ProjectSshKeyInput

func (ProjectSshKeyMap) ElementType added in v1.1.2

func (ProjectSshKeyMap) ElementType() reflect.Type

func (ProjectSshKeyMap) ToProjectSshKeyMapOutput added in v1.1.2

func (i ProjectSshKeyMap) ToProjectSshKeyMapOutput() ProjectSshKeyMapOutput

func (ProjectSshKeyMap) ToProjectSshKeyMapOutputWithContext added in v1.1.2

func (i ProjectSshKeyMap) ToProjectSshKeyMapOutputWithContext(ctx context.Context) ProjectSshKeyMapOutput

type ProjectSshKeyMapInput added in v1.1.2

type ProjectSshKeyMapInput interface {
	pulumi.Input

	ToProjectSshKeyMapOutput() ProjectSshKeyMapOutput
	ToProjectSshKeyMapOutputWithContext(context.Context) ProjectSshKeyMapOutput
}

ProjectSshKeyMapInput is an input type that accepts ProjectSshKeyMap and ProjectSshKeyMapOutput values. You can construct a concrete instance of `ProjectSshKeyMapInput` via:

ProjectSshKeyMap{ "key": ProjectSshKeyArgs{...} }

type ProjectSshKeyMapOutput added in v1.1.2

type ProjectSshKeyMapOutput struct{ *pulumi.OutputState }

func (ProjectSshKeyMapOutput) ElementType added in v1.1.2

func (ProjectSshKeyMapOutput) ElementType() reflect.Type

func (ProjectSshKeyMapOutput) MapIndex added in v1.1.2

func (ProjectSshKeyMapOutput) ToProjectSshKeyMapOutput added in v1.1.2

func (o ProjectSshKeyMapOutput) ToProjectSshKeyMapOutput() ProjectSshKeyMapOutput

func (ProjectSshKeyMapOutput) ToProjectSshKeyMapOutputWithContext added in v1.1.2

func (o ProjectSshKeyMapOutput) ToProjectSshKeyMapOutputWithContext(ctx context.Context) ProjectSshKeyMapOutput

type ProjectSshKeyOutput

type ProjectSshKeyOutput struct {
	*pulumi.OutputState
}

func (ProjectSshKeyOutput) ElementType

func (ProjectSshKeyOutput) ElementType() reflect.Type

func (ProjectSshKeyOutput) ToProjectSshKeyOutput

func (o ProjectSshKeyOutput) ToProjectSshKeyOutput() ProjectSshKeyOutput

func (ProjectSshKeyOutput) ToProjectSshKeyOutputWithContext

func (o ProjectSshKeyOutput) ToProjectSshKeyOutputWithContext(ctx context.Context) ProjectSshKeyOutput

func (ProjectSshKeyOutput) ToProjectSshKeyPtrOutput added in v1.1.2

func (o ProjectSshKeyOutput) ToProjectSshKeyPtrOutput() ProjectSshKeyPtrOutput

func (ProjectSshKeyOutput) ToProjectSshKeyPtrOutputWithContext added in v1.1.2

func (o ProjectSshKeyOutput) ToProjectSshKeyPtrOutputWithContext(ctx context.Context) ProjectSshKeyPtrOutput

type ProjectSshKeyPtrInput added in v1.1.2

type ProjectSshKeyPtrInput interface {
	pulumi.Input

	ToProjectSshKeyPtrOutput() ProjectSshKeyPtrOutput
	ToProjectSshKeyPtrOutputWithContext(ctx context.Context) ProjectSshKeyPtrOutput
}

type ProjectSshKeyPtrOutput added in v1.1.2

type ProjectSshKeyPtrOutput struct {
	*pulumi.OutputState
}

func (ProjectSshKeyPtrOutput) ElementType added in v1.1.2

func (ProjectSshKeyPtrOutput) ElementType() reflect.Type

func (ProjectSshKeyPtrOutput) ToProjectSshKeyPtrOutput added in v1.1.2

func (o ProjectSshKeyPtrOutput) ToProjectSshKeyPtrOutput() ProjectSshKeyPtrOutput

func (ProjectSshKeyPtrOutput) ToProjectSshKeyPtrOutputWithContext added in v1.1.2

func (o ProjectSshKeyPtrOutput) ToProjectSshKeyPtrOutputWithContext(ctx context.Context) ProjectSshKeyPtrOutput

type ProjectSshKeyState

type ProjectSshKeyState struct {
	// The timestamp for when the SSH key was created
	Created pulumi.StringPtrInput
	// The fingerprint of the SSH key
	Fingerprint pulumi.StringPtrInput
	// The name of the SSH key for identification
	Name pulumi.StringPtrInput
	// The ID of parent project (same as project_id)
	OwnerId pulumi.StringPtrInput
	// The ID of parent project
	ProjectId pulumi.StringPtrInput
	// The public key. If this is a file, it can be read using the file interpolation function
	PublicKey pulumi.StringPtrInput
	// The timestamp for the last time the SSH key was updated
	Updated pulumi.StringPtrInput
}

func (ProjectSshKeyState) ElementType

func (ProjectSshKeyState) ElementType() reflect.Type

type ProjectState

type ProjectState struct {
	// Enable or disable [Backend Transfer](https://metal.equinix.com/developers/docs/networking/backend-transfer/), default is false
	BackendTransfer pulumi.BoolPtrInput
	// Optional BGP settings. Refer to [Equinix Metal guide for BGP](https://metal.equinix.com/developers/docs/networking/local-global-bgp/).
	BgpConfig ProjectBgpConfigPtrInput
	// The timestamp for when the project was created
	Created pulumi.StringPtrInput
	// The name of the project
	Name pulumi.StringPtrInput
	// The UUID of organization under which you want to create the project. If you leave it out, the project will be create under your the default organization of your account.
	OrganizationId pulumi.StringPtrInput
	// The UUID of payment method for this project. The payment method and the project need to belong to the same organization (passed with `organizationId`, or default).
	PaymentMethodId pulumi.StringPtrInput
	// The timestamp for the last time the project was updated
	Updated pulumi.StringPtrInput
}

func (ProjectState) ElementType

func (ProjectState) ElementType() reflect.Type

type Provider

type Provider struct {
	pulumi.ProviderResourceState
}

The provider type for the metal package. By default, resources use package-wide configuration settings, however an explicit `Provider` instance may be created and passed during resource construction to achieve fine-grained programmatic control over provider settings. See the [documentation](https://www.pulumi.com/docs/reference/programming-model/#providers) for more information.

func NewProvider

func NewProvider(ctx *pulumi.Context,
	name string, args *ProviderArgs, opts ...pulumi.ResourceOption) (*Provider, error)

NewProvider registers a new resource with the given unique name, arguments, and options.

func (*Provider) ElementType

func (*Provider) ElementType() reflect.Type

func (*Provider) ToProviderOutput

func (i *Provider) ToProviderOutput() ProviderOutput

func (*Provider) ToProviderOutputWithContext

func (i *Provider) ToProviderOutputWithContext(ctx context.Context) ProviderOutput

func (*Provider) ToProviderPtrOutput added in v1.1.2

func (i *Provider) ToProviderPtrOutput() ProviderPtrOutput

func (*Provider) ToProviderPtrOutputWithContext added in v1.1.2

func (i *Provider) ToProviderPtrOutputWithContext(ctx context.Context) ProviderPtrOutput

type ProviderArgs

type ProviderArgs struct {
	// The API auth key for API operations.
	AuthToken           pulumi.StringInput
	MaxRetries          pulumi.IntPtrInput
	MaxRetryWaitSeconds pulumi.IntPtrInput
}

The set of arguments for constructing a Provider resource.

func (ProviderArgs) ElementType

func (ProviderArgs) ElementType() reflect.Type

type ProviderInput

type ProviderInput interface {
	pulumi.Input

	ToProviderOutput() ProviderOutput
	ToProviderOutputWithContext(ctx context.Context) ProviderOutput
}

type ProviderOutput

type ProviderOutput struct {
	*pulumi.OutputState
}

func (ProviderOutput) ElementType

func (ProviderOutput) ElementType() reflect.Type

func (ProviderOutput) ToProviderOutput

func (o ProviderOutput) ToProviderOutput() ProviderOutput

func (ProviderOutput) ToProviderOutputWithContext

func (o ProviderOutput) ToProviderOutputWithContext(ctx context.Context) ProviderOutput

func (ProviderOutput) ToProviderPtrOutput added in v1.1.2

func (o ProviderOutput) ToProviderPtrOutput() ProviderPtrOutput

func (ProviderOutput) ToProviderPtrOutputWithContext added in v1.1.2

func (o ProviderOutput) ToProviderPtrOutputWithContext(ctx context.Context) ProviderPtrOutput

type ProviderPtrInput added in v1.1.2

type ProviderPtrInput interface {
	pulumi.Input

	ToProviderPtrOutput() ProviderPtrOutput
	ToProviderPtrOutputWithContext(ctx context.Context) ProviderPtrOutput
}

type ProviderPtrOutput added in v1.1.2

type ProviderPtrOutput struct {
	*pulumi.OutputState
}

func (ProviderPtrOutput) ElementType added in v1.1.2

func (ProviderPtrOutput) ElementType() reflect.Type

func (ProviderPtrOutput) ToProviderPtrOutput added in v1.1.2

func (o ProviderPtrOutput) ToProviderPtrOutput() ProviderPtrOutput

func (ProviderPtrOutput) ToProviderPtrOutputWithContext added in v1.1.2

func (o ProviderPtrOutput) ToProviderPtrOutputWithContext(ctx context.Context) ProviderPtrOutput

type ReservedIpBlock

type ReservedIpBlock struct {
	pulumi.CustomResourceState

	Address pulumi.StringOutput `pulumi:"address"`
	// Address family as integer (4 or 6)
	AddressFamily pulumi.IntOutput `pulumi:"addressFamily"`
	// length of CIDR prefix of the block as integer
	Cidr pulumi.IntOutput `pulumi:"cidr"`
	// Address and mask in CIDR notation, e.g. "147.229.15.30/31"
	CidrNotation pulumi.StringOutput `pulumi:"cidrNotation"`
	// Arbitrary description
	Description pulumi.StringPtrOutput `pulumi:"description"`
	// Facility where to allocate the public IP address block, makes sense only for type==public_ipv4, must be empty for type==global_ipv4
	Facility pulumi.StringPtrOutput `pulumi:"facility"`
	Gateway  pulumi.StringOutput    `pulumi:"gateway"`
	// boolean flag whether addresses from a block are global (i.e. can be assigned in any facility)
	Global     pulumi.BoolOutput `pulumi:"global"`
	Manageable pulumi.BoolOutput `pulumi:"manageable"`
	Management pulumi.BoolOutput `pulumi:"management"`
	// Mask in decimal notation, e.g. "255.255.255.0"
	Netmask pulumi.StringOutput `pulumi:"netmask"`
	// Network IP address portion of the block specification
	Network pulumi.StringOutput `pulumi:"network"`
	// The metal project ID where to allocate the address block
	ProjectId pulumi.StringOutput `pulumi:"projectId"`
	// boolean flag whether addresses from a block are public
	Public pulumi.BoolOutput `pulumi:"public"`
	// The number of allocated /32 addresses, a power of 2
	Quantity pulumi.IntOutput `pulumi:"quantity"`
	// Either "globalIpv4" or "publicIpv4", defaults to "publicIpv4" for backward compatibility
	Type pulumi.StringPtrOutput `pulumi:"type"`
}

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 = "globalIpv4" 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 `IpAttachment` resource.

## Example Usage

Allocate reserved IP blocks:

```go package main

import (

"github.com/pulumi/pulumi-equinix-metal/sdk/go/equinix-metal"
"github.com/pulumi/pulumi/sdk/v2/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("ewr1"),
			Quantity:  pulumi.Int(2),
		})
		if err != nil {
			return err
		}
		_, err = equinix - metal.NewReservedIpBlock(ctx, "test", &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
	})
}

```

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

```go package main

import (

"github.com/pulumi/pulumi-equinix-metal/sdk/go/equinix-metal"
"github.com/pulumi/pulumi/sdk/v2/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("ewr1"),
			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("ewr1"),
			},
			Plan:            pulumi.String("t1.small.x86"),
			OperatingSystem: pulumi.String("ubuntu_16_04"),
			Hostname:        pulumi.String("test"),
			BillingCycle:    pulumi.String("hourly"),
			IpAddresses: equinix - metal.DeviceIpAddressArray{
				&equinix - metal.DeviceIpAddressArgs{
					Type: pulumi.String("public_ipv4"),
					Cidr: pulumi.Int(31),
					ReservationIds: pulumi.StringArray{
						example.ID(),
					},
				},
				&equinix - metal.DeviceIpAddressArgs{
					Type: pulumi.String("private_ipv4"),
				},
			},
		})
		if err != nil {
			return err
		}
		return nil
	})
}

```

func GetReservedIpBlock

func GetReservedIpBlock(ctx *pulumi.Context,
	name string, id pulumi.IDInput, state *ReservedIpBlockState, opts ...pulumi.ResourceOption) (*ReservedIpBlock, error)

GetReservedIpBlock gets an existing ReservedIpBlock resource's state with the given name, ID, and optional state properties that are used to uniquely qualify the lookup (nil if not required).

func NewReservedIpBlock

func NewReservedIpBlock(ctx *pulumi.Context,
	name string, args *ReservedIpBlockArgs, opts ...pulumi.ResourceOption) (*ReservedIpBlock, error)

NewReservedIpBlock registers a new resource with the given unique name, arguments, and options.

func (*ReservedIpBlock) ElementType

func (*ReservedIpBlock) ElementType() reflect.Type

func (*ReservedIpBlock) ToReservedIpBlockOutput

func (i *ReservedIpBlock) ToReservedIpBlockOutput() ReservedIpBlockOutput

func (*ReservedIpBlock) ToReservedIpBlockOutputWithContext

func (i *ReservedIpBlock) ToReservedIpBlockOutputWithContext(ctx context.Context) ReservedIpBlockOutput

func (*ReservedIpBlock) ToReservedIpBlockPtrOutput added in v1.1.2

func (i *ReservedIpBlock) ToReservedIpBlockPtrOutput() ReservedIpBlockPtrOutput

func (*ReservedIpBlock) ToReservedIpBlockPtrOutputWithContext added in v1.1.2

func (i *ReservedIpBlock) ToReservedIpBlockPtrOutputWithContext(ctx context.Context) ReservedIpBlockPtrOutput

type ReservedIpBlockArgs

type ReservedIpBlockArgs struct {
	// Arbitrary description
	Description pulumi.StringPtrInput
	// Facility where to allocate the public IP address block, makes sense only for type==public_ipv4, must be empty for type==global_ipv4
	Facility pulumi.StringPtrInput
	// The metal project ID where to allocate the address block
	ProjectId pulumi.StringInput
	// The number of allocated /32 addresses, a power of 2
	Quantity pulumi.IntInput
	// Either "globalIpv4" or "publicIpv4", defaults to "publicIpv4" for backward compatibility
	Type pulumi.StringPtrInput
}

The set of arguments for constructing a ReservedIpBlock resource.

func (ReservedIpBlockArgs) ElementType

func (ReservedIpBlockArgs) ElementType() reflect.Type

type ReservedIpBlockArray added in v1.1.2

type ReservedIpBlockArray []ReservedIpBlockInput

func (ReservedIpBlockArray) ElementType added in v1.1.2

func (ReservedIpBlockArray) ElementType() reflect.Type

func (ReservedIpBlockArray) ToReservedIpBlockArrayOutput added in v1.1.2

func (i ReservedIpBlockArray) ToReservedIpBlockArrayOutput() ReservedIpBlockArrayOutput

func (ReservedIpBlockArray) ToReservedIpBlockArrayOutputWithContext added in v1.1.2

func (i ReservedIpBlockArray) ToReservedIpBlockArrayOutputWithContext(ctx context.Context) ReservedIpBlockArrayOutput

type ReservedIpBlockArrayInput added in v1.1.2

type ReservedIpBlockArrayInput interface {
	pulumi.Input

	ToReservedIpBlockArrayOutput() ReservedIpBlockArrayOutput
	ToReservedIpBlockArrayOutputWithContext(context.Context) ReservedIpBlockArrayOutput
}

ReservedIpBlockArrayInput is an input type that accepts ReservedIpBlockArray and ReservedIpBlockArrayOutput values. You can construct a concrete instance of `ReservedIpBlockArrayInput` via:

ReservedIpBlockArray{ ReservedIpBlockArgs{...} }

type ReservedIpBlockArrayOutput added in v1.1.2

type ReservedIpBlockArrayOutput struct{ *pulumi.OutputState }

func (ReservedIpBlockArrayOutput) ElementType added in v1.1.2

func (ReservedIpBlockArrayOutput) ElementType() reflect.Type

func (ReservedIpBlockArrayOutput) Index added in v1.1.2

func (ReservedIpBlockArrayOutput) ToReservedIpBlockArrayOutput added in v1.1.2

func (o ReservedIpBlockArrayOutput) ToReservedIpBlockArrayOutput() ReservedIpBlockArrayOutput

func (ReservedIpBlockArrayOutput) ToReservedIpBlockArrayOutputWithContext added in v1.1.2

func (o ReservedIpBlockArrayOutput) ToReservedIpBlockArrayOutputWithContext(ctx context.Context) ReservedIpBlockArrayOutput

type ReservedIpBlockInput

type ReservedIpBlockInput interface {
	pulumi.Input

	ToReservedIpBlockOutput() ReservedIpBlockOutput
	ToReservedIpBlockOutputWithContext(ctx context.Context) ReservedIpBlockOutput
}

type ReservedIpBlockMap added in v1.1.2

type ReservedIpBlockMap map[string]ReservedIpBlockInput

func (ReservedIpBlockMap) ElementType added in v1.1.2

func (ReservedIpBlockMap) ElementType() reflect.Type

func (ReservedIpBlockMap) ToReservedIpBlockMapOutput added in v1.1.2

func (i ReservedIpBlockMap) ToReservedIpBlockMapOutput() ReservedIpBlockMapOutput

func (ReservedIpBlockMap) ToReservedIpBlockMapOutputWithContext added in v1.1.2

func (i ReservedIpBlockMap) ToReservedIpBlockMapOutputWithContext(ctx context.Context) ReservedIpBlockMapOutput

type ReservedIpBlockMapInput added in v1.1.2

type ReservedIpBlockMapInput interface {
	pulumi.Input

	ToReservedIpBlockMapOutput() ReservedIpBlockMapOutput
	ToReservedIpBlockMapOutputWithContext(context.Context) ReservedIpBlockMapOutput
}

ReservedIpBlockMapInput is an input type that accepts ReservedIpBlockMap and ReservedIpBlockMapOutput values. You can construct a concrete instance of `ReservedIpBlockMapInput` via:

ReservedIpBlockMap{ "key": ReservedIpBlockArgs{...} }

type ReservedIpBlockMapOutput added in v1.1.2

type ReservedIpBlockMapOutput struct{ *pulumi.OutputState }

func (ReservedIpBlockMapOutput) ElementType added in v1.1.2

func (ReservedIpBlockMapOutput) ElementType() reflect.Type

func (ReservedIpBlockMapOutput) MapIndex added in v1.1.2

func (ReservedIpBlockMapOutput) ToReservedIpBlockMapOutput added in v1.1.2

func (o ReservedIpBlockMapOutput) ToReservedIpBlockMapOutput() ReservedIpBlockMapOutput

func (ReservedIpBlockMapOutput) ToReservedIpBlockMapOutputWithContext added in v1.1.2

func (o ReservedIpBlockMapOutput) ToReservedIpBlockMapOutputWithContext(ctx context.Context) ReservedIpBlockMapOutput

type ReservedIpBlockOutput

type ReservedIpBlockOutput struct {
	*pulumi.OutputState
}

func (ReservedIpBlockOutput) ElementType

func (ReservedIpBlockOutput) ElementType() reflect.Type

func (ReservedIpBlockOutput) ToReservedIpBlockOutput

func (o ReservedIpBlockOutput) ToReservedIpBlockOutput() ReservedIpBlockOutput

func (ReservedIpBlockOutput) ToReservedIpBlockOutputWithContext

func (o ReservedIpBlockOutput) ToReservedIpBlockOutputWithContext(ctx context.Context) ReservedIpBlockOutput

func (ReservedIpBlockOutput) ToReservedIpBlockPtrOutput added in v1.1.2

func (o ReservedIpBlockOutput) ToReservedIpBlockPtrOutput() ReservedIpBlockPtrOutput

func (ReservedIpBlockOutput) ToReservedIpBlockPtrOutputWithContext added in v1.1.2

func (o ReservedIpBlockOutput) ToReservedIpBlockPtrOutputWithContext(ctx context.Context) ReservedIpBlockPtrOutput

type ReservedIpBlockPtrInput added in v1.1.2

type ReservedIpBlockPtrInput interface {
	pulumi.Input

	ToReservedIpBlockPtrOutput() ReservedIpBlockPtrOutput
	ToReservedIpBlockPtrOutputWithContext(ctx context.Context) ReservedIpBlockPtrOutput
}

type ReservedIpBlockPtrOutput added in v1.1.2

type ReservedIpBlockPtrOutput struct {
	*pulumi.OutputState
}

func (ReservedIpBlockPtrOutput) ElementType added in v1.1.2

func (ReservedIpBlockPtrOutput) ElementType() reflect.Type

func (ReservedIpBlockPtrOutput) ToReservedIpBlockPtrOutput added in v1.1.2

func (o ReservedIpBlockPtrOutput) ToReservedIpBlockPtrOutput() ReservedIpBlockPtrOutput

func (ReservedIpBlockPtrOutput) ToReservedIpBlockPtrOutputWithContext added in v1.1.2

func (o ReservedIpBlockPtrOutput) ToReservedIpBlockPtrOutputWithContext(ctx context.Context) ReservedIpBlockPtrOutput

type ReservedIpBlockState

type ReservedIpBlockState struct {
	Address pulumi.StringPtrInput
	// Address family as integer (4 or 6)
	AddressFamily pulumi.IntPtrInput
	// length of CIDR prefix of the block as integer
	Cidr pulumi.IntPtrInput
	// Address and mask in CIDR notation, e.g. "147.229.15.30/31"
	CidrNotation pulumi.StringPtrInput
	// Arbitrary description
	Description pulumi.StringPtrInput
	// Facility where to allocate the public IP address block, makes sense only for type==public_ipv4, must be empty for type==global_ipv4
	Facility pulumi.StringPtrInput
	Gateway  pulumi.StringPtrInput
	// boolean flag whether addresses from a block are global (i.e. can be assigned in any facility)
	Global     pulumi.BoolPtrInput
	Manageable pulumi.BoolPtrInput
	Management pulumi.BoolPtrInput
	// Mask in decimal notation, e.g. "255.255.255.0"
	Netmask pulumi.StringPtrInput
	// Network IP address portion of the block specification
	Network pulumi.StringPtrInput
	// The metal project ID where to allocate the address block
	ProjectId pulumi.StringPtrInput
	// boolean flag whether addresses from a block are public
	Public pulumi.BoolPtrInput
	// The number of allocated /32 addresses, a power of 2
	Quantity pulumi.IntPtrInput
	// Either "globalIpv4" or "publicIpv4", defaults to "publicIpv4" for backward compatibility
	Type pulumi.StringPtrInput
}

func (ReservedIpBlockState) ElementType

func (ReservedIpBlockState) ElementType() reflect.Type

type SpotMarketRequest

type SpotMarketRequest struct {
	pulumi.CustomResourceState

	// Maximum number devices to be created
	DevicesMax pulumi.IntOutput `pulumi:"devicesMax"`
	// Miniumum number devices to be created
	DevicesMin pulumi.IntOutput `pulumi:"devicesMin"`
	// Facility IDs where devices should be created
	Facilities pulumi.StringArrayOutput `pulumi:"facilities"`
	// Device parameters. See device resource for details
	InstanceParameters SpotMarketRequestInstanceParametersOutput `pulumi:"instanceParameters"`
	// Maximum price user is willing to pay per hour per device
	MaxBidPrice pulumi.Float64Output `pulumi:"maxBidPrice"`
	// Project ID
	ProjectId pulumi.StringOutput `pulumi:"projectId"`
	// On resource creation - wait until all desired devices are active, on resource destruction - wait until devices are removed
	WaitForDevices pulumi.BoolPtrOutput `pulumi:"waitForDevices"`
}

Provides an Equinix Metal Spot Market Request resource to allow you to manage spot market requests on your account. For more detail on Spot Market, see [this article in Equinix Metal documentation](https://metal.equinix.com/developers/docs/deploy/spot-market/).

## Example Usage

```go package main

import (

"github.com/pulumi/pulumi-equinix-metal/sdk/go/equinix-metal"
"github.com/pulumi/pulumi/sdk/v2/go/pulumi"

)

func main() {
	pulumi.Run(func(ctx *pulumi.Context) error {
		_, err := equinix - metal.NewSpotMarketRequest(ctx, "req", &equinix-metal.SpotMarketRequestArgs{
			ProjectId:   pulumi.Any(local.Project_id),
			MaxBidPrice: pulumi.Float64(0.03),
			Facilities: pulumi.StringArray{
				pulumi.String("ewr1"),
			},
			DevicesMin: pulumi.Int(1),
			DevicesMax: pulumi.Int(1),
			InstanceParameters: &equinix - metal.SpotMarketRequestInstanceParametersArgs{
				Hostname:        pulumi.String("testspot"),
				BillingCycle:    pulumi.String("hourly"),
				OperatingSystem: pulumi.String("coreos_stable"),
				Plan:            pulumi.String("t1.small.x86"),
			},
		})
		if err != nil {
			return err
		}
		return nil
	})
}

```

func GetSpotMarketRequest

func GetSpotMarketRequest(ctx *pulumi.Context,
	name string, id pulumi.IDInput, state *SpotMarketRequestState, opts ...pulumi.ResourceOption) (*SpotMarketRequest, error)

GetSpotMarketRequest gets an existing SpotMarketRequest resource's state with the given name, ID, and optional state properties that are used to uniquely qualify the lookup (nil if not required).

func NewSpotMarketRequest

func NewSpotMarketRequest(ctx *pulumi.Context,
	name string, args *SpotMarketRequestArgs, opts ...pulumi.ResourceOption) (*SpotMarketRequest, error)

NewSpotMarketRequest registers a new resource with the given unique name, arguments, and options.

func (*SpotMarketRequest) ElementType

func (*SpotMarketRequest) ElementType() reflect.Type

func (*SpotMarketRequest) ToSpotMarketRequestOutput

func (i *SpotMarketRequest) ToSpotMarketRequestOutput() SpotMarketRequestOutput

func (*SpotMarketRequest) ToSpotMarketRequestOutputWithContext

func (i *SpotMarketRequest) ToSpotMarketRequestOutputWithContext(ctx context.Context) SpotMarketRequestOutput

func (*SpotMarketRequest) ToSpotMarketRequestPtrOutput added in v1.1.2

func (i *SpotMarketRequest) ToSpotMarketRequestPtrOutput() SpotMarketRequestPtrOutput

func (*SpotMarketRequest) ToSpotMarketRequestPtrOutputWithContext added in v1.1.2

func (i *SpotMarketRequest) ToSpotMarketRequestPtrOutputWithContext(ctx context.Context) SpotMarketRequestPtrOutput

type SpotMarketRequestArgs

type SpotMarketRequestArgs struct {
	// Maximum number devices to be created
	DevicesMax pulumi.IntInput
	// Miniumum number devices to be created
	DevicesMin pulumi.IntInput
	// Facility IDs where devices should be created
	Facilities pulumi.StringArrayInput
	// Device parameters. See device resource for details
	InstanceParameters SpotMarketRequestInstanceParametersInput
	// Maximum price user is willing to pay per hour per device
	MaxBidPrice pulumi.Float64Input
	// Project ID
	ProjectId pulumi.StringInput
	// On resource creation - wait until all desired devices are active, on resource destruction - wait until devices are removed
	WaitForDevices pulumi.BoolPtrInput
}

The set of arguments for constructing a SpotMarketRequest resource.

func (SpotMarketRequestArgs) ElementType

func (SpotMarketRequestArgs) ElementType() reflect.Type

type SpotMarketRequestArray added in v1.1.2

type SpotMarketRequestArray []SpotMarketRequestInput

func (SpotMarketRequestArray) ElementType added in v1.1.2

func (SpotMarketRequestArray) ElementType() reflect.Type

func (SpotMarketRequestArray) ToSpotMarketRequestArrayOutput added in v1.1.2

func (i SpotMarketRequestArray) ToSpotMarketRequestArrayOutput() SpotMarketRequestArrayOutput

func (SpotMarketRequestArray) ToSpotMarketRequestArrayOutputWithContext added in v1.1.2

func (i SpotMarketRequestArray) ToSpotMarketRequestArrayOutputWithContext(ctx context.Context) SpotMarketRequestArrayOutput

type SpotMarketRequestArrayInput added in v1.1.2

type SpotMarketRequestArrayInput interface {
	pulumi.Input

	ToSpotMarketRequestArrayOutput() SpotMarketRequestArrayOutput
	ToSpotMarketRequestArrayOutputWithContext(context.Context) SpotMarketRequestArrayOutput
}

SpotMarketRequestArrayInput is an input type that accepts SpotMarketRequestArray and SpotMarketRequestArrayOutput values. You can construct a concrete instance of `SpotMarketRequestArrayInput` via:

SpotMarketRequestArray{ SpotMarketRequestArgs{...} }

type SpotMarketRequestArrayOutput added in v1.1.2

type SpotMarketRequestArrayOutput struct{ *pulumi.OutputState }

func (SpotMarketRequestArrayOutput) ElementType added in v1.1.2

func (SpotMarketRequestArrayOutput) Index added in v1.1.2

func (SpotMarketRequestArrayOutput) ToSpotMarketRequestArrayOutput added in v1.1.2

func (o SpotMarketRequestArrayOutput) ToSpotMarketRequestArrayOutput() SpotMarketRequestArrayOutput

func (SpotMarketRequestArrayOutput) ToSpotMarketRequestArrayOutputWithContext added in v1.1.2

func (o SpotMarketRequestArrayOutput) ToSpotMarketRequestArrayOutputWithContext(ctx context.Context) SpotMarketRequestArrayOutput

type SpotMarketRequestInput

type SpotMarketRequestInput interface {
	pulumi.Input

	ToSpotMarketRequestOutput() SpotMarketRequestOutput
	ToSpotMarketRequestOutputWithContext(ctx context.Context) SpotMarketRequestOutput
}

type SpotMarketRequestInstanceParameters

type SpotMarketRequestInstanceParameters struct {
	AlwaysPxe        *bool    `pulumi:"alwaysPxe"`
	BillingCycle     string   `pulumi:"billingCycle"`
	Customdata       *string  `pulumi:"customdata"`
	Description      *string  `pulumi:"description"`
	Features         []string `pulumi:"features"`
	Hostname         string   `pulumi:"hostname"`
	IpxeScriptUrl    *string  `pulumi:"ipxeScriptUrl"`
	Locked           *string  `pulumi:"locked"`
	OperatingSystem  string   `pulumi:"operatingSystem"`
	Plan             string   `pulumi:"plan"`
	ProjectSshKeys   []string `pulumi:"projectSshKeys"`
	Tags             []string `pulumi:"tags"`
	TermintationTime *string  `pulumi:"termintationTime"`
	UserSshKeys      []string `pulumi:"userSshKeys"`
	Userdata         *string  `pulumi:"userdata"`
}

type SpotMarketRequestInstanceParametersArgs

type SpotMarketRequestInstanceParametersArgs struct {
	AlwaysPxe        pulumi.BoolPtrInput     `pulumi:"alwaysPxe"`
	BillingCycle     pulumi.StringInput      `pulumi:"billingCycle"`
	Customdata       pulumi.StringPtrInput   `pulumi:"customdata"`
	Description      pulumi.StringPtrInput   `pulumi:"description"`
	Features         pulumi.StringArrayInput `pulumi:"features"`
	Hostname         pulumi.StringInput      `pulumi:"hostname"`
	IpxeScriptUrl    pulumi.StringPtrInput   `pulumi:"ipxeScriptUrl"`
	Locked           pulumi.StringPtrInput   `pulumi:"locked"`
	OperatingSystem  pulumi.StringInput      `pulumi:"operatingSystem"`
	Plan             pulumi.StringInput      `pulumi:"plan"`
	ProjectSshKeys   pulumi.StringArrayInput `pulumi:"projectSshKeys"`
	Tags             pulumi.StringArrayInput `pulumi:"tags"`
	TermintationTime pulumi.StringPtrInput   `pulumi:"termintationTime"`
	UserSshKeys      pulumi.StringArrayInput `pulumi:"userSshKeys"`
	Userdata         pulumi.StringPtrInput   `pulumi:"userdata"`
}

func (SpotMarketRequestInstanceParametersArgs) ElementType

func (SpotMarketRequestInstanceParametersArgs) ToSpotMarketRequestInstanceParametersOutput

func (i SpotMarketRequestInstanceParametersArgs) ToSpotMarketRequestInstanceParametersOutput() SpotMarketRequestInstanceParametersOutput

func (SpotMarketRequestInstanceParametersArgs) ToSpotMarketRequestInstanceParametersOutputWithContext

func (i SpotMarketRequestInstanceParametersArgs) ToSpotMarketRequestInstanceParametersOutputWithContext(ctx context.Context) SpotMarketRequestInstanceParametersOutput

func (SpotMarketRequestInstanceParametersArgs) ToSpotMarketRequestInstanceParametersPtrOutput

func (i SpotMarketRequestInstanceParametersArgs) ToSpotMarketRequestInstanceParametersPtrOutput() SpotMarketRequestInstanceParametersPtrOutput

func (SpotMarketRequestInstanceParametersArgs) ToSpotMarketRequestInstanceParametersPtrOutputWithContext

func (i SpotMarketRequestInstanceParametersArgs) ToSpotMarketRequestInstanceParametersPtrOutputWithContext(ctx context.Context) SpotMarketRequestInstanceParametersPtrOutput

type SpotMarketRequestInstanceParametersInput

type SpotMarketRequestInstanceParametersInput interface {
	pulumi.Input

	ToSpotMarketRequestInstanceParametersOutput() SpotMarketRequestInstanceParametersOutput
	ToSpotMarketRequestInstanceParametersOutputWithContext(context.Context) SpotMarketRequestInstanceParametersOutput
}

SpotMarketRequestInstanceParametersInput is an input type that accepts SpotMarketRequestInstanceParametersArgs and SpotMarketRequestInstanceParametersOutput values. You can construct a concrete instance of `SpotMarketRequestInstanceParametersInput` via:

SpotMarketRequestInstanceParametersArgs{...}

type SpotMarketRequestInstanceParametersOutput

type SpotMarketRequestInstanceParametersOutput struct{ *pulumi.OutputState }

func (SpotMarketRequestInstanceParametersOutput) AlwaysPxe

func (SpotMarketRequestInstanceParametersOutput) BillingCycle

func (SpotMarketRequestInstanceParametersOutput) Customdata

func (SpotMarketRequestInstanceParametersOutput) Description

func (SpotMarketRequestInstanceParametersOutput) ElementType

func (SpotMarketRequestInstanceParametersOutput) Features

func (SpotMarketRequestInstanceParametersOutput) Hostname

func (SpotMarketRequestInstanceParametersOutput) IpxeScriptUrl

func (SpotMarketRequestInstanceParametersOutput) Locked

func (SpotMarketRequestInstanceParametersOutput) OperatingSystem

func (SpotMarketRequestInstanceParametersOutput) Plan

func (SpotMarketRequestInstanceParametersOutput) ProjectSshKeys

func (SpotMarketRequestInstanceParametersOutput) Tags

func (SpotMarketRequestInstanceParametersOutput) TermintationTime

func (SpotMarketRequestInstanceParametersOutput) ToSpotMarketRequestInstanceParametersOutput

func (o SpotMarketRequestInstanceParametersOutput) ToSpotMarketRequestInstanceParametersOutput() SpotMarketRequestInstanceParametersOutput

func (SpotMarketRequestInstanceParametersOutput) ToSpotMarketRequestInstanceParametersOutputWithContext

func (o SpotMarketRequestInstanceParametersOutput) ToSpotMarketRequestInstanceParametersOutputWithContext(ctx context.Context) SpotMarketRequestInstanceParametersOutput

func (SpotMarketRequestInstanceParametersOutput) ToSpotMarketRequestInstanceParametersPtrOutput

func (o SpotMarketRequestInstanceParametersOutput) ToSpotMarketRequestInstanceParametersPtrOutput() SpotMarketRequestInstanceParametersPtrOutput

func (SpotMarketRequestInstanceParametersOutput) ToSpotMarketRequestInstanceParametersPtrOutputWithContext

func (o SpotMarketRequestInstanceParametersOutput) ToSpotMarketRequestInstanceParametersPtrOutputWithContext(ctx context.Context) SpotMarketRequestInstanceParametersPtrOutput

func (SpotMarketRequestInstanceParametersOutput) UserSshKeys

func (SpotMarketRequestInstanceParametersOutput) Userdata

type SpotMarketRequestInstanceParametersPtrInput

type SpotMarketRequestInstanceParametersPtrInput interface {
	pulumi.Input

	ToSpotMarketRequestInstanceParametersPtrOutput() SpotMarketRequestInstanceParametersPtrOutput
	ToSpotMarketRequestInstanceParametersPtrOutputWithContext(context.Context) SpotMarketRequestInstanceParametersPtrOutput
}

SpotMarketRequestInstanceParametersPtrInput is an input type that accepts SpotMarketRequestInstanceParametersArgs, SpotMarketRequestInstanceParametersPtr and SpotMarketRequestInstanceParametersPtrOutput values. You can construct a concrete instance of `SpotMarketRequestInstanceParametersPtrInput` via:

        SpotMarketRequestInstanceParametersArgs{...}

or:

        nil

type SpotMarketRequestInstanceParametersPtrOutput

type SpotMarketRequestInstanceParametersPtrOutput struct{ *pulumi.OutputState }

func (SpotMarketRequestInstanceParametersPtrOutput) AlwaysPxe

func (SpotMarketRequestInstanceParametersPtrOutput) BillingCycle

func (SpotMarketRequestInstanceParametersPtrOutput) Customdata

func (SpotMarketRequestInstanceParametersPtrOutput) Description

func (SpotMarketRequestInstanceParametersPtrOutput) Elem

func (SpotMarketRequestInstanceParametersPtrOutput) ElementType

func (SpotMarketRequestInstanceParametersPtrOutput) Features

func (SpotMarketRequestInstanceParametersPtrOutput) Hostname

func (SpotMarketRequestInstanceParametersPtrOutput) IpxeScriptUrl

func (SpotMarketRequestInstanceParametersPtrOutput) Locked

func (SpotMarketRequestInstanceParametersPtrOutput) OperatingSystem

func (SpotMarketRequestInstanceParametersPtrOutput) Plan

func (SpotMarketRequestInstanceParametersPtrOutput) ProjectSshKeys

func (SpotMarketRequestInstanceParametersPtrOutput) Tags

func (SpotMarketRequestInstanceParametersPtrOutput) TermintationTime

func (SpotMarketRequestInstanceParametersPtrOutput) ToSpotMarketRequestInstanceParametersPtrOutput

func (o SpotMarketRequestInstanceParametersPtrOutput) ToSpotMarketRequestInstanceParametersPtrOutput() SpotMarketRequestInstanceParametersPtrOutput

func (SpotMarketRequestInstanceParametersPtrOutput) ToSpotMarketRequestInstanceParametersPtrOutputWithContext

func (o SpotMarketRequestInstanceParametersPtrOutput) ToSpotMarketRequestInstanceParametersPtrOutputWithContext(ctx context.Context) SpotMarketRequestInstanceParametersPtrOutput

func (SpotMarketRequestInstanceParametersPtrOutput) UserSshKeys

func (SpotMarketRequestInstanceParametersPtrOutput) Userdata

type SpotMarketRequestMap added in v1.1.2

type SpotMarketRequestMap map[string]SpotMarketRequestInput

func (SpotMarketRequestMap) ElementType added in v1.1.2

func (SpotMarketRequestMap) ElementType() reflect.Type

func (SpotMarketRequestMap) ToSpotMarketRequestMapOutput added in v1.1.2

func (i SpotMarketRequestMap) ToSpotMarketRequestMapOutput() SpotMarketRequestMapOutput

func (SpotMarketRequestMap) ToSpotMarketRequestMapOutputWithContext added in v1.1.2

func (i SpotMarketRequestMap) ToSpotMarketRequestMapOutputWithContext(ctx context.Context) SpotMarketRequestMapOutput

type SpotMarketRequestMapInput added in v1.1.2

type SpotMarketRequestMapInput interface {
	pulumi.Input

	ToSpotMarketRequestMapOutput() SpotMarketRequestMapOutput
	ToSpotMarketRequestMapOutputWithContext(context.Context) SpotMarketRequestMapOutput
}

SpotMarketRequestMapInput is an input type that accepts SpotMarketRequestMap and SpotMarketRequestMapOutput values. You can construct a concrete instance of `SpotMarketRequestMapInput` via:

SpotMarketRequestMap{ "key": SpotMarketRequestArgs{...} }

type SpotMarketRequestMapOutput added in v1.1.2

type SpotMarketRequestMapOutput struct{ *pulumi.OutputState }

func (SpotMarketRequestMapOutput) ElementType added in v1.1.2

func (SpotMarketRequestMapOutput) ElementType() reflect.Type

func (SpotMarketRequestMapOutput) MapIndex added in v1.1.2

func (SpotMarketRequestMapOutput) ToSpotMarketRequestMapOutput added in v1.1.2

func (o SpotMarketRequestMapOutput) ToSpotMarketRequestMapOutput() SpotMarketRequestMapOutput

func (SpotMarketRequestMapOutput) ToSpotMarketRequestMapOutputWithContext added in v1.1.2

func (o SpotMarketRequestMapOutput) ToSpotMarketRequestMapOutputWithContext(ctx context.Context) SpotMarketRequestMapOutput

type SpotMarketRequestOutput

type SpotMarketRequestOutput struct {
	*pulumi.OutputState
}

func (SpotMarketRequestOutput) ElementType

func (SpotMarketRequestOutput) ElementType() reflect.Type

func (SpotMarketRequestOutput) ToSpotMarketRequestOutput

func (o SpotMarketRequestOutput) ToSpotMarketRequestOutput() SpotMarketRequestOutput

func (SpotMarketRequestOutput) ToSpotMarketRequestOutputWithContext

func (o SpotMarketRequestOutput) ToSpotMarketRequestOutputWithContext(ctx context.Context) SpotMarketRequestOutput

func (SpotMarketRequestOutput) ToSpotMarketRequestPtrOutput added in v1.1.2

func (o SpotMarketRequestOutput) ToSpotMarketRequestPtrOutput() SpotMarketRequestPtrOutput

func (SpotMarketRequestOutput) ToSpotMarketRequestPtrOutputWithContext added in v1.1.2

func (o SpotMarketRequestOutput) ToSpotMarketRequestPtrOutputWithContext(ctx context.Context) SpotMarketRequestPtrOutput

type SpotMarketRequestPtrInput added in v1.1.2

type SpotMarketRequestPtrInput interface {
	pulumi.Input

	ToSpotMarketRequestPtrOutput() SpotMarketRequestPtrOutput
	ToSpotMarketRequestPtrOutputWithContext(ctx context.Context) SpotMarketRequestPtrOutput
}

type SpotMarketRequestPtrOutput added in v1.1.2

type SpotMarketRequestPtrOutput struct {
	*pulumi.OutputState
}

func (SpotMarketRequestPtrOutput) ElementType added in v1.1.2

func (SpotMarketRequestPtrOutput) ElementType() reflect.Type

func (SpotMarketRequestPtrOutput) ToSpotMarketRequestPtrOutput added in v1.1.2

func (o SpotMarketRequestPtrOutput) ToSpotMarketRequestPtrOutput() SpotMarketRequestPtrOutput

func (SpotMarketRequestPtrOutput) ToSpotMarketRequestPtrOutputWithContext added in v1.1.2

func (o SpotMarketRequestPtrOutput) ToSpotMarketRequestPtrOutputWithContext(ctx context.Context) SpotMarketRequestPtrOutput

type SpotMarketRequestState

type SpotMarketRequestState struct {
	// Maximum number devices to be created
	DevicesMax pulumi.IntPtrInput
	// Miniumum number devices to be created
	DevicesMin pulumi.IntPtrInput
	// Facility IDs where devices should be created
	Facilities pulumi.StringArrayInput
	// Device parameters. See device resource for details
	InstanceParameters SpotMarketRequestInstanceParametersPtrInput
	// Maximum price user is willing to pay per hour per device
	MaxBidPrice pulumi.Float64PtrInput
	// Project ID
	ProjectId pulumi.StringPtrInput
	// On resource creation - wait until all desired devices are active, on resource destruction - wait until devices are removed
	WaitForDevices pulumi.BoolPtrInput
}

func (SpotMarketRequestState) ElementType

func (SpotMarketRequestState) ElementType() reflect.Type

type SshKey

type SshKey struct {
	pulumi.CustomResourceState

	// The timestamp for when the SSH key was created
	Created pulumi.StringOutput `pulumi:"created"`
	// The fingerprint of the SSH key
	Fingerprint pulumi.StringOutput `pulumi:"fingerprint"`
	// The name of the SSH key for identification
	Name pulumi.StringOutput `pulumi:"name"`
	// The UUID of the Equinix Metal API User who owns this key
	OwnerId pulumi.StringOutput `pulumi:"ownerId"`
	// The public key. If this is a file, it
	// can be read using the file interpolation function
	PublicKey pulumi.StringOutput `pulumi:"publicKey"`
	// The timestamp for the last time the SSH key was updated
	Updated pulumi.StringOutput `pulumi:"updated"`
}

Provides a resource to manage User SSH keys on your Equinix Metal user account. If you create a new device in a project, all the keys of the project's collaborators will be injected to the device.

The link between User SSH key and device is implicit. If you want to make sure that a key will be copied to a device, you must ensure that the device resource `dependsOn` the key resource.

func GetSshKey

func GetSshKey(ctx *pulumi.Context,
	name string, id pulumi.IDInput, state *SshKeyState, opts ...pulumi.ResourceOption) (*SshKey, error)

GetSshKey gets an existing SshKey resource's state with the given name, ID, and optional state properties that are used to uniquely qualify the lookup (nil if not required).

func NewSshKey

func NewSshKey(ctx *pulumi.Context,
	name string, args *SshKeyArgs, opts ...pulumi.ResourceOption) (*SshKey, error)

NewSshKey registers a new resource with the given unique name, arguments, and options.

func (*SshKey) ElementType

func (*SshKey) ElementType() reflect.Type

func (*SshKey) ToSshKeyOutput

func (i *SshKey) ToSshKeyOutput() SshKeyOutput

func (*SshKey) ToSshKeyOutputWithContext

func (i *SshKey) ToSshKeyOutputWithContext(ctx context.Context) SshKeyOutput

func (*SshKey) ToSshKeyPtrOutput added in v1.1.2

func (i *SshKey) ToSshKeyPtrOutput() SshKeyPtrOutput

func (*SshKey) ToSshKeyPtrOutputWithContext added in v1.1.2

func (i *SshKey) ToSshKeyPtrOutputWithContext(ctx context.Context) SshKeyPtrOutput

type SshKeyArgs

type SshKeyArgs struct {
	// The name of the SSH key for identification
	Name pulumi.StringPtrInput
	// The public key. If this is a file, it
	// can be read using the file interpolation function
	PublicKey pulumi.StringInput
}

The set of arguments for constructing a SshKey resource.

func (SshKeyArgs) ElementType

func (SshKeyArgs) ElementType() reflect.Type

type SshKeyArray added in v1.1.2

type SshKeyArray []SshKeyInput

func (SshKeyArray) ElementType added in v1.1.2

func (SshKeyArray) ElementType() reflect.Type

func (SshKeyArray) ToSshKeyArrayOutput added in v1.1.2

func (i SshKeyArray) ToSshKeyArrayOutput() SshKeyArrayOutput

func (SshKeyArray) ToSshKeyArrayOutputWithContext added in v1.1.2

func (i SshKeyArray) ToSshKeyArrayOutputWithContext(ctx context.Context) SshKeyArrayOutput

type SshKeyArrayInput added in v1.1.2

type SshKeyArrayInput interface {
	pulumi.Input

	ToSshKeyArrayOutput() SshKeyArrayOutput
	ToSshKeyArrayOutputWithContext(context.Context) SshKeyArrayOutput
}

SshKeyArrayInput is an input type that accepts SshKeyArray and SshKeyArrayOutput values. You can construct a concrete instance of `SshKeyArrayInput` via:

SshKeyArray{ SshKeyArgs{...} }

type SshKeyArrayOutput added in v1.1.2

type SshKeyArrayOutput struct{ *pulumi.OutputState }

func (SshKeyArrayOutput) ElementType added in v1.1.2

func (SshKeyArrayOutput) ElementType() reflect.Type

func (SshKeyArrayOutput) Index added in v1.1.2

func (SshKeyArrayOutput) ToSshKeyArrayOutput added in v1.1.2

func (o SshKeyArrayOutput) ToSshKeyArrayOutput() SshKeyArrayOutput

func (SshKeyArrayOutput) ToSshKeyArrayOutputWithContext added in v1.1.2

func (o SshKeyArrayOutput) ToSshKeyArrayOutputWithContext(ctx context.Context) SshKeyArrayOutput

type SshKeyInput

type SshKeyInput interface {
	pulumi.Input

	ToSshKeyOutput() SshKeyOutput
	ToSshKeyOutputWithContext(ctx context.Context) SshKeyOutput
}

type SshKeyMap added in v1.1.2

type SshKeyMap map[string]SshKeyInput

func (SshKeyMap) ElementType added in v1.1.2

func (SshKeyMap) ElementType() reflect.Type

func (SshKeyMap) ToSshKeyMapOutput added in v1.1.2

func (i SshKeyMap) ToSshKeyMapOutput() SshKeyMapOutput

func (SshKeyMap) ToSshKeyMapOutputWithContext added in v1.1.2

func (i SshKeyMap) ToSshKeyMapOutputWithContext(ctx context.Context) SshKeyMapOutput

type SshKeyMapInput added in v1.1.2

type SshKeyMapInput interface {
	pulumi.Input

	ToSshKeyMapOutput() SshKeyMapOutput
	ToSshKeyMapOutputWithContext(context.Context) SshKeyMapOutput
}

SshKeyMapInput is an input type that accepts SshKeyMap and SshKeyMapOutput values. You can construct a concrete instance of `SshKeyMapInput` via:

SshKeyMap{ "key": SshKeyArgs{...} }

type SshKeyMapOutput added in v1.1.2

type SshKeyMapOutput struct{ *pulumi.OutputState }

func (SshKeyMapOutput) ElementType added in v1.1.2

func (SshKeyMapOutput) ElementType() reflect.Type

func (SshKeyMapOutput) MapIndex added in v1.1.2

func (SshKeyMapOutput) ToSshKeyMapOutput added in v1.1.2

func (o SshKeyMapOutput) ToSshKeyMapOutput() SshKeyMapOutput

func (SshKeyMapOutput) ToSshKeyMapOutputWithContext added in v1.1.2

func (o SshKeyMapOutput) ToSshKeyMapOutputWithContext(ctx context.Context) SshKeyMapOutput

type SshKeyOutput

type SshKeyOutput struct {
	*pulumi.OutputState
}

func (SshKeyOutput) ElementType

func (SshKeyOutput) ElementType() reflect.Type

func (SshKeyOutput) ToSshKeyOutput

func (o SshKeyOutput) ToSshKeyOutput() SshKeyOutput

func (SshKeyOutput) ToSshKeyOutputWithContext

func (o SshKeyOutput) ToSshKeyOutputWithContext(ctx context.Context) SshKeyOutput

func (SshKeyOutput) ToSshKeyPtrOutput added in v1.1.2

func (o SshKeyOutput) ToSshKeyPtrOutput() SshKeyPtrOutput

func (SshKeyOutput) ToSshKeyPtrOutputWithContext added in v1.1.2

func (o SshKeyOutput) ToSshKeyPtrOutputWithContext(ctx context.Context) SshKeyPtrOutput

type SshKeyPtrInput added in v1.1.2

type SshKeyPtrInput interface {
	pulumi.Input

	ToSshKeyPtrOutput() SshKeyPtrOutput
	ToSshKeyPtrOutputWithContext(ctx context.Context) SshKeyPtrOutput
}

type SshKeyPtrOutput added in v1.1.2

type SshKeyPtrOutput struct {
	*pulumi.OutputState
}

func (SshKeyPtrOutput) ElementType added in v1.1.2

func (SshKeyPtrOutput) ElementType() reflect.Type

func (SshKeyPtrOutput) ToSshKeyPtrOutput added in v1.1.2

func (o SshKeyPtrOutput) ToSshKeyPtrOutput() SshKeyPtrOutput

func (SshKeyPtrOutput) ToSshKeyPtrOutputWithContext added in v1.1.2

func (o SshKeyPtrOutput) ToSshKeyPtrOutputWithContext(ctx context.Context) SshKeyPtrOutput

type SshKeyState

type SshKeyState struct {
	// The timestamp for when the SSH key was created
	Created pulumi.StringPtrInput
	// The fingerprint of the SSH key
	Fingerprint pulumi.StringPtrInput
	// The name of the SSH key for identification
	Name pulumi.StringPtrInput
	// The UUID of the Equinix Metal API User who owns this key
	OwnerId pulumi.StringPtrInput
	// The public key. If this is a file, it
	// can be read using the file interpolation function
	PublicKey pulumi.StringPtrInput
	// The timestamp for the last time the SSH key was updated
	Updated pulumi.StringPtrInput
}

func (SshKeyState) ElementType

func (SshKeyState) ElementType() reflect.Type

type Vlan

type Vlan struct {
	pulumi.CustomResourceState

	// Description string
	Description pulumi.StringPtrOutput `pulumi:"description"`
	// Facility where to create the VLAN
	Facility pulumi.StringOutput `pulumi:"facility"`
	// ID of parent project
	ProjectId pulumi.StringOutput `pulumi:"projectId"`
	// VXLAN segment ID
	Vxlan pulumi.IntOutput `pulumi:"vxlan"`
}

Provides a resource to allow users to manage Virtual Networks in their projects.

To learn more about Layer 2 networking in Equinix Metal, refer to

* <https://metal.equinix.com/developers/docs/networking/layer2/> * <https://metal.equinix.com/developers/docs/networking/layer2-configs/>

## Example Usage

```go package main

import (

"github.com/pulumi/pulumi-equinix-metal/sdk/go/equinix-metal"
"github.com/pulumi/pulumi/sdk/v2/go/pulumi"

)

func main() {
	pulumi.Run(func(ctx *pulumi.Context) error {
		_, err := equinix - metal.NewVlan(ctx, "vlan1", &equinix-metal.VlanArgs{
			Description: pulumi.String("VLAN in New Jersey"),
			Facility:    pulumi.String("ewr1"),
			ProjectId:   pulumi.Any(local.Project_id),
		})
		if err != nil {
			return err
		}
		return nil
	})
}

```

func GetVlan

func GetVlan(ctx *pulumi.Context,
	name string, id pulumi.IDInput, state *VlanState, opts ...pulumi.ResourceOption) (*Vlan, error)

GetVlan gets an existing Vlan resource's state with the given name, ID, and optional state properties that are used to uniquely qualify the lookup (nil if not required).

func NewVlan

func NewVlan(ctx *pulumi.Context,
	name string, args *VlanArgs, opts ...pulumi.ResourceOption) (*Vlan, error)

NewVlan registers a new resource with the given unique name, arguments, and options.

func (*Vlan) ElementType

func (*Vlan) ElementType() reflect.Type

func (*Vlan) ToVlanOutput

func (i *Vlan) ToVlanOutput() VlanOutput

func (*Vlan) ToVlanOutputWithContext

func (i *Vlan) ToVlanOutputWithContext(ctx context.Context) VlanOutput

func (*Vlan) ToVlanPtrOutput added in v1.1.2

func (i *Vlan) ToVlanPtrOutput() VlanPtrOutput

func (*Vlan) ToVlanPtrOutputWithContext added in v1.1.2

func (i *Vlan) ToVlanPtrOutputWithContext(ctx context.Context) VlanPtrOutput

type VlanArgs

type VlanArgs struct {
	// Description string
	Description pulumi.StringPtrInput
	// Facility where to create the VLAN
	Facility pulumi.StringInput
	// ID of parent project
	ProjectId pulumi.StringInput
}

The set of arguments for constructing a Vlan resource.

func (VlanArgs) ElementType

func (VlanArgs) ElementType() reflect.Type

type VlanArray added in v1.1.2

type VlanArray []VlanInput

func (VlanArray) ElementType added in v1.1.2

func (VlanArray) ElementType() reflect.Type

func (VlanArray) ToVlanArrayOutput added in v1.1.2

func (i VlanArray) ToVlanArrayOutput() VlanArrayOutput

func (VlanArray) ToVlanArrayOutputWithContext added in v1.1.2

func (i VlanArray) ToVlanArrayOutputWithContext(ctx context.Context) VlanArrayOutput

type VlanArrayInput added in v1.1.2

type VlanArrayInput interface {
	pulumi.Input

	ToVlanArrayOutput() VlanArrayOutput
	ToVlanArrayOutputWithContext(context.Context) VlanArrayOutput
}

VlanArrayInput is an input type that accepts VlanArray and VlanArrayOutput values. You can construct a concrete instance of `VlanArrayInput` via:

VlanArray{ VlanArgs{...} }

type VlanArrayOutput added in v1.1.2

type VlanArrayOutput struct{ *pulumi.OutputState }

func (VlanArrayOutput) ElementType added in v1.1.2

func (VlanArrayOutput) ElementType() reflect.Type

func (VlanArrayOutput) Index added in v1.1.2

func (VlanArrayOutput) ToVlanArrayOutput added in v1.1.2

func (o VlanArrayOutput) ToVlanArrayOutput() VlanArrayOutput

func (VlanArrayOutput) ToVlanArrayOutputWithContext added in v1.1.2

func (o VlanArrayOutput) ToVlanArrayOutputWithContext(ctx context.Context) VlanArrayOutput

type VlanInput

type VlanInput interface {
	pulumi.Input

	ToVlanOutput() VlanOutput
	ToVlanOutputWithContext(ctx context.Context) VlanOutput
}

type VlanMap added in v1.1.2

type VlanMap map[string]VlanInput

func (VlanMap) ElementType added in v1.1.2

func (VlanMap) ElementType() reflect.Type

func (VlanMap) ToVlanMapOutput added in v1.1.2

func (i VlanMap) ToVlanMapOutput() VlanMapOutput

func (VlanMap) ToVlanMapOutputWithContext added in v1.1.2

func (i VlanMap) ToVlanMapOutputWithContext(ctx context.Context) VlanMapOutput

type VlanMapInput added in v1.1.2

type VlanMapInput interface {
	pulumi.Input

	ToVlanMapOutput() VlanMapOutput
	ToVlanMapOutputWithContext(context.Context) VlanMapOutput
}

VlanMapInput is an input type that accepts VlanMap and VlanMapOutput values. You can construct a concrete instance of `VlanMapInput` via:

VlanMap{ "key": VlanArgs{...} }

type VlanMapOutput added in v1.1.2

type VlanMapOutput struct{ *pulumi.OutputState }

func (VlanMapOutput) ElementType added in v1.1.2

func (VlanMapOutput) ElementType() reflect.Type

func (VlanMapOutput) MapIndex added in v1.1.2

func (VlanMapOutput) ToVlanMapOutput added in v1.1.2

func (o VlanMapOutput) ToVlanMapOutput() VlanMapOutput

func (VlanMapOutput) ToVlanMapOutputWithContext added in v1.1.2

func (o VlanMapOutput) ToVlanMapOutputWithContext(ctx context.Context) VlanMapOutput

type VlanOutput

type VlanOutput struct {
	*pulumi.OutputState
}

func (VlanOutput) ElementType

func (VlanOutput) ElementType() reflect.Type

func (VlanOutput) ToVlanOutput

func (o VlanOutput) ToVlanOutput() VlanOutput

func (VlanOutput) ToVlanOutputWithContext

func (o VlanOutput) ToVlanOutputWithContext(ctx context.Context) VlanOutput

func (VlanOutput) ToVlanPtrOutput added in v1.1.2

func (o VlanOutput) ToVlanPtrOutput() VlanPtrOutput

func (VlanOutput) ToVlanPtrOutputWithContext added in v1.1.2

func (o VlanOutput) ToVlanPtrOutputWithContext(ctx context.Context) VlanPtrOutput

type VlanPtrInput added in v1.1.2

type VlanPtrInput interface {
	pulumi.Input

	ToVlanPtrOutput() VlanPtrOutput
	ToVlanPtrOutputWithContext(ctx context.Context) VlanPtrOutput
}

type VlanPtrOutput added in v1.1.2

type VlanPtrOutput struct {
	*pulumi.OutputState
}

func (VlanPtrOutput) ElementType added in v1.1.2

func (VlanPtrOutput) ElementType() reflect.Type

func (VlanPtrOutput) ToVlanPtrOutput added in v1.1.2

func (o VlanPtrOutput) ToVlanPtrOutput() VlanPtrOutput

func (VlanPtrOutput) ToVlanPtrOutputWithContext added in v1.1.2

func (o VlanPtrOutput) ToVlanPtrOutputWithContext(ctx context.Context) VlanPtrOutput

type VlanState

type VlanState struct {
	// Description string
	Description pulumi.StringPtrInput
	// Facility where to create the VLAN
	Facility pulumi.StringPtrInput
	// ID of parent project
	ProjectId pulumi.StringPtrInput
	// VXLAN segment ID
	Vxlan pulumi.IntPtrInput
}

func (VlanState) ElementType

func (VlanState) ElementType() reflect.Type

type Volume

type Volume struct {
	pulumi.CustomResourceState

	// A list of attachments, each with it's own `href` attribute
	Attachments VolumeAttachmentTypeArrayOutput `pulumi:"attachments"`
	// The billing cycle, defaults to "hourly"
	BillingCycle pulumi.StringOutput `pulumi:"billingCycle"`
	// The timestamp for when the volume was created
	Created pulumi.StringOutput `pulumi:"created"`
	// Optional description for the volume
	Description pulumi.StringPtrOutput `pulumi:"description"`
	// The facility to create the volume in
	Facility pulumi.StringOutput `pulumi:"facility"`
	// Lock or unlock the volume
	Locked pulumi.BoolPtrOutput `pulumi:"locked"`
	// The name of the volume
	Name pulumi.StringOutput `pulumi:"name"`
	// The service plan slug of the volume
	Plan pulumi.StringOutput `pulumi:"plan"`
	// The metal project ID to deploy the volume in
	ProjectId pulumi.StringOutput `pulumi:"projectId"`
	// The size in GB to make the volume
	Size pulumi.IntOutput `pulumi:"size"`
	// Optional list of snapshot policies
	SnapshotPolicies VolumeSnapshotPolicyArrayOutput `pulumi:"snapshotPolicies"`
	// The state of the volume
	State pulumi.StringOutput `pulumi:"state"`
	// The timestamp for the last time the volume was updated
	Updated pulumi.StringOutput `pulumi:"updated"`
}

func GetVolume

func GetVolume(ctx *pulumi.Context,
	name string, id pulumi.IDInput, state *VolumeState, opts ...pulumi.ResourceOption) (*Volume, error)

GetVolume gets an existing Volume resource's state with the given name, ID, and optional state properties that are used to uniquely qualify the lookup (nil if not required).

func NewVolume

func NewVolume(ctx *pulumi.Context,
	name string, args *VolumeArgs, opts ...pulumi.ResourceOption) (*Volume, error)

NewVolume registers a new resource with the given unique name, arguments, and options.

func (*Volume) ElementType

func (*Volume) ElementType() reflect.Type

func (*Volume) ToVolumeOutput

func (i *Volume) ToVolumeOutput() VolumeOutput

func (*Volume) ToVolumeOutputWithContext

func (i *Volume) ToVolumeOutputWithContext(ctx context.Context) VolumeOutput

func (*Volume) ToVolumePtrOutput added in v1.1.2

func (i *Volume) ToVolumePtrOutput() VolumePtrOutput

func (*Volume) ToVolumePtrOutputWithContext added in v1.1.2

func (i *Volume) ToVolumePtrOutputWithContext(ctx context.Context) VolumePtrOutput

type VolumeArgs

type VolumeArgs struct {
	// The billing cycle, defaults to "hourly"
	BillingCycle pulumi.StringPtrInput
	// Optional description for the volume
	Description pulumi.StringPtrInput
	// The facility to create the volume in
	Facility pulumi.StringInput
	// Lock or unlock the volume
	Locked pulumi.BoolPtrInput
	// The service plan slug of the volume
	Plan pulumi.StringInput
	// The metal project ID to deploy the volume in
	ProjectId pulumi.StringInput
	// The size in GB to make the volume
	Size pulumi.IntInput
	// Optional list of snapshot policies
	SnapshotPolicies VolumeSnapshotPolicyArrayInput
}

The set of arguments for constructing a Volume resource.

func (VolumeArgs) ElementType

func (VolumeArgs) ElementType() reflect.Type

type VolumeArray added in v1.1.2

type VolumeArray []VolumeInput

func (VolumeArray) ElementType added in v1.1.2

func (VolumeArray) ElementType() reflect.Type

func (VolumeArray) ToVolumeArrayOutput added in v1.1.2

func (i VolumeArray) ToVolumeArrayOutput() VolumeArrayOutput

func (VolumeArray) ToVolumeArrayOutputWithContext added in v1.1.2

func (i VolumeArray) ToVolumeArrayOutputWithContext(ctx context.Context) VolumeArrayOutput

type VolumeArrayInput added in v1.1.2

type VolumeArrayInput interface {
	pulumi.Input

	ToVolumeArrayOutput() VolumeArrayOutput
	ToVolumeArrayOutputWithContext(context.Context) VolumeArrayOutput
}

VolumeArrayInput is an input type that accepts VolumeArray and VolumeArrayOutput values. You can construct a concrete instance of `VolumeArrayInput` via:

VolumeArray{ VolumeArgs{...} }

type VolumeArrayOutput added in v1.1.2

type VolumeArrayOutput struct{ *pulumi.OutputState }

func (VolumeArrayOutput) ElementType added in v1.1.2

func (VolumeArrayOutput) ElementType() reflect.Type

func (VolumeArrayOutput) Index added in v1.1.2

func (VolumeArrayOutput) ToVolumeArrayOutput added in v1.1.2

func (o VolumeArrayOutput) ToVolumeArrayOutput() VolumeArrayOutput

func (VolumeArrayOutput) ToVolumeArrayOutputWithContext added in v1.1.2

func (o VolumeArrayOutput) ToVolumeArrayOutputWithContext(ctx context.Context) VolumeArrayOutput

type VolumeAttachment

type VolumeAttachment struct {
	pulumi.CustomResourceState

	// The ID of the device to which the volume should be attached
	DeviceId pulumi.StringOutput `pulumi:"deviceId"`
	// The ID of the volume to attach
	VolumeId pulumi.StringOutput `pulumi:"volumeId"`
}

func GetVolumeAttachment

func GetVolumeAttachment(ctx *pulumi.Context,
	name string, id pulumi.IDInput, state *VolumeAttachmentState, opts ...pulumi.ResourceOption) (*VolumeAttachment, error)

GetVolumeAttachment gets an existing VolumeAttachment resource's state with the given name, ID, and optional state properties that are used to uniquely qualify the lookup (nil if not required).

func NewVolumeAttachment

func NewVolumeAttachment(ctx *pulumi.Context,
	name string, args *VolumeAttachmentArgs, opts ...pulumi.ResourceOption) (*VolumeAttachment, error)

NewVolumeAttachment registers a new resource with the given unique name, arguments, and options.

func (*VolumeAttachment) ElementType

func (*VolumeAttachment) ElementType() reflect.Type

func (*VolumeAttachment) ToVolumeAttachmentOutput

func (i *VolumeAttachment) ToVolumeAttachmentOutput() VolumeAttachmentOutput

func (*VolumeAttachment) ToVolumeAttachmentOutputWithContext

func (i *VolumeAttachment) ToVolumeAttachmentOutputWithContext(ctx context.Context) VolumeAttachmentOutput

func (*VolumeAttachment) ToVolumeAttachmentPtrOutput added in v1.1.2

func (i *VolumeAttachment) ToVolumeAttachmentPtrOutput() VolumeAttachmentPtrOutput

func (*VolumeAttachment) ToVolumeAttachmentPtrOutputWithContext added in v1.1.2

func (i *VolumeAttachment) ToVolumeAttachmentPtrOutputWithContext(ctx context.Context) VolumeAttachmentPtrOutput

type VolumeAttachmentArgs

type VolumeAttachmentArgs struct {
	// The ID of the device to which the volume should be attached
	DeviceId pulumi.StringInput
	// The ID of the volume to attach
	VolumeId pulumi.StringInput
}

The set of arguments for constructing a VolumeAttachment resource.

func (VolumeAttachmentArgs) ElementType

func (VolumeAttachmentArgs) ElementType() reflect.Type

type VolumeAttachmentArray added in v1.1.2

type VolumeAttachmentArray []VolumeAttachmentInput

func (VolumeAttachmentArray) ElementType added in v1.1.2

func (VolumeAttachmentArray) ElementType() reflect.Type

func (VolumeAttachmentArray) ToVolumeAttachmentArrayOutput added in v1.1.2

func (i VolumeAttachmentArray) ToVolumeAttachmentArrayOutput() VolumeAttachmentArrayOutput

func (VolumeAttachmentArray) ToVolumeAttachmentArrayOutputWithContext added in v1.1.2

func (i VolumeAttachmentArray) ToVolumeAttachmentArrayOutputWithContext(ctx context.Context) VolumeAttachmentArrayOutput

type VolumeAttachmentArrayInput added in v1.1.2

type VolumeAttachmentArrayInput interface {
	pulumi.Input

	ToVolumeAttachmentArrayOutput() VolumeAttachmentArrayOutput
	ToVolumeAttachmentArrayOutputWithContext(context.Context) VolumeAttachmentArrayOutput
}

VolumeAttachmentArrayInput is an input type that accepts VolumeAttachmentArray and VolumeAttachmentArrayOutput values. You can construct a concrete instance of `VolumeAttachmentArrayInput` via:

VolumeAttachmentArray{ VolumeAttachmentArgs{...} }

type VolumeAttachmentArrayOutput added in v1.1.2

type VolumeAttachmentArrayOutput struct{ *pulumi.OutputState }

func (VolumeAttachmentArrayOutput) ElementType added in v1.1.2

func (VolumeAttachmentArrayOutput) Index added in v1.1.2

func (VolumeAttachmentArrayOutput) ToVolumeAttachmentArrayOutput added in v1.1.2

func (o VolumeAttachmentArrayOutput) ToVolumeAttachmentArrayOutput() VolumeAttachmentArrayOutput

func (VolumeAttachmentArrayOutput) ToVolumeAttachmentArrayOutputWithContext added in v1.1.2

func (o VolumeAttachmentArrayOutput) ToVolumeAttachmentArrayOutputWithContext(ctx context.Context) VolumeAttachmentArrayOutput

type VolumeAttachmentInput

type VolumeAttachmentInput interface {
	pulumi.Input

	ToVolumeAttachmentOutput() VolumeAttachmentOutput
	ToVolumeAttachmentOutputWithContext(ctx context.Context) VolumeAttachmentOutput
}

type VolumeAttachmentMap added in v1.1.2

type VolumeAttachmentMap map[string]VolumeAttachmentInput

func (VolumeAttachmentMap) ElementType added in v1.1.2

func (VolumeAttachmentMap) ElementType() reflect.Type

func (VolumeAttachmentMap) ToVolumeAttachmentMapOutput added in v1.1.2

func (i VolumeAttachmentMap) ToVolumeAttachmentMapOutput() VolumeAttachmentMapOutput

func (VolumeAttachmentMap) ToVolumeAttachmentMapOutputWithContext added in v1.1.2

func (i VolumeAttachmentMap) ToVolumeAttachmentMapOutputWithContext(ctx context.Context) VolumeAttachmentMapOutput

type VolumeAttachmentMapInput added in v1.1.2

type VolumeAttachmentMapInput interface {
	pulumi.Input

	ToVolumeAttachmentMapOutput() VolumeAttachmentMapOutput
	ToVolumeAttachmentMapOutputWithContext(context.Context) VolumeAttachmentMapOutput
}

VolumeAttachmentMapInput is an input type that accepts VolumeAttachmentMap and VolumeAttachmentMapOutput values. You can construct a concrete instance of `VolumeAttachmentMapInput` via:

VolumeAttachmentMap{ "key": VolumeAttachmentArgs{...} }

type VolumeAttachmentMapOutput added in v1.1.2

type VolumeAttachmentMapOutput struct{ *pulumi.OutputState }

func (VolumeAttachmentMapOutput) ElementType added in v1.1.2

func (VolumeAttachmentMapOutput) ElementType() reflect.Type

func (VolumeAttachmentMapOutput) MapIndex added in v1.1.2

func (VolumeAttachmentMapOutput) ToVolumeAttachmentMapOutput added in v1.1.2

func (o VolumeAttachmentMapOutput) ToVolumeAttachmentMapOutput() VolumeAttachmentMapOutput

func (VolumeAttachmentMapOutput) ToVolumeAttachmentMapOutputWithContext added in v1.1.2

func (o VolumeAttachmentMapOutput) ToVolumeAttachmentMapOutputWithContext(ctx context.Context) VolumeAttachmentMapOutput

type VolumeAttachmentOutput

type VolumeAttachmentOutput struct {
	*pulumi.OutputState
}

func (VolumeAttachmentOutput) ElementType

func (VolumeAttachmentOutput) ElementType() reflect.Type

func (VolumeAttachmentOutput) ToVolumeAttachmentOutput

func (o VolumeAttachmentOutput) ToVolumeAttachmentOutput() VolumeAttachmentOutput

func (VolumeAttachmentOutput) ToVolumeAttachmentOutputWithContext

func (o VolumeAttachmentOutput) ToVolumeAttachmentOutputWithContext(ctx context.Context) VolumeAttachmentOutput

func (VolumeAttachmentOutput) ToVolumeAttachmentPtrOutput added in v1.1.2

func (o VolumeAttachmentOutput) ToVolumeAttachmentPtrOutput() VolumeAttachmentPtrOutput

func (VolumeAttachmentOutput) ToVolumeAttachmentPtrOutputWithContext added in v1.1.2

func (o VolumeAttachmentOutput) ToVolumeAttachmentPtrOutputWithContext(ctx context.Context) VolumeAttachmentPtrOutput

type VolumeAttachmentPtrInput added in v1.1.2

type VolumeAttachmentPtrInput interface {
	pulumi.Input

	ToVolumeAttachmentPtrOutput() VolumeAttachmentPtrOutput
	ToVolumeAttachmentPtrOutputWithContext(ctx context.Context) VolumeAttachmentPtrOutput
}

type VolumeAttachmentPtrOutput added in v1.1.2

type VolumeAttachmentPtrOutput struct {
	*pulumi.OutputState
}

func (VolumeAttachmentPtrOutput) ElementType added in v1.1.2

func (VolumeAttachmentPtrOutput) ElementType() reflect.Type

func (VolumeAttachmentPtrOutput) ToVolumeAttachmentPtrOutput added in v1.1.2

func (o VolumeAttachmentPtrOutput) ToVolumeAttachmentPtrOutput() VolumeAttachmentPtrOutput

func (VolumeAttachmentPtrOutput) ToVolumeAttachmentPtrOutputWithContext added in v1.1.2

func (o VolumeAttachmentPtrOutput) ToVolumeAttachmentPtrOutputWithContext(ctx context.Context) VolumeAttachmentPtrOutput

type VolumeAttachmentState

type VolumeAttachmentState struct {
	// The ID of the device to which the volume should be attached
	DeviceId pulumi.StringPtrInput
	// The ID of the volume to attach
	VolumeId pulumi.StringPtrInput
}

func (VolumeAttachmentState) ElementType

func (VolumeAttachmentState) ElementType() reflect.Type

type VolumeAttachmentType

type VolumeAttachmentType struct {
	Href *string `pulumi:"href"`
}

type VolumeAttachmentTypeArgs

type VolumeAttachmentTypeArgs struct {
	Href pulumi.StringPtrInput `pulumi:"href"`
}

func (VolumeAttachmentTypeArgs) ElementType

func (VolumeAttachmentTypeArgs) ElementType() reflect.Type

func (VolumeAttachmentTypeArgs) ToVolumeAttachmentTypeOutput

func (i VolumeAttachmentTypeArgs) ToVolumeAttachmentTypeOutput() VolumeAttachmentTypeOutput

func (VolumeAttachmentTypeArgs) ToVolumeAttachmentTypeOutputWithContext

func (i VolumeAttachmentTypeArgs) ToVolumeAttachmentTypeOutputWithContext(ctx context.Context) VolumeAttachmentTypeOutput

type VolumeAttachmentTypeArray

type VolumeAttachmentTypeArray []VolumeAttachmentTypeInput

func (VolumeAttachmentTypeArray) ElementType

func (VolumeAttachmentTypeArray) ElementType() reflect.Type

func (VolumeAttachmentTypeArray) ToVolumeAttachmentTypeArrayOutput

func (i VolumeAttachmentTypeArray) ToVolumeAttachmentTypeArrayOutput() VolumeAttachmentTypeArrayOutput

func (VolumeAttachmentTypeArray) ToVolumeAttachmentTypeArrayOutputWithContext

func (i VolumeAttachmentTypeArray) ToVolumeAttachmentTypeArrayOutputWithContext(ctx context.Context) VolumeAttachmentTypeArrayOutput

type VolumeAttachmentTypeArrayInput

type VolumeAttachmentTypeArrayInput interface {
	pulumi.Input

	ToVolumeAttachmentTypeArrayOutput() VolumeAttachmentTypeArrayOutput
	ToVolumeAttachmentTypeArrayOutputWithContext(context.Context) VolumeAttachmentTypeArrayOutput
}

VolumeAttachmentTypeArrayInput is an input type that accepts VolumeAttachmentTypeArray and VolumeAttachmentTypeArrayOutput values. You can construct a concrete instance of `VolumeAttachmentTypeArrayInput` via:

VolumeAttachmentTypeArray{ VolumeAttachmentTypeArgs{...} }

type VolumeAttachmentTypeArrayOutput

type VolumeAttachmentTypeArrayOutput struct{ *pulumi.OutputState }

func (VolumeAttachmentTypeArrayOutput) ElementType

func (VolumeAttachmentTypeArrayOutput) Index

func (VolumeAttachmentTypeArrayOutput) ToVolumeAttachmentTypeArrayOutput

func (o VolumeAttachmentTypeArrayOutput) ToVolumeAttachmentTypeArrayOutput() VolumeAttachmentTypeArrayOutput

func (VolumeAttachmentTypeArrayOutput) ToVolumeAttachmentTypeArrayOutputWithContext

func (o VolumeAttachmentTypeArrayOutput) ToVolumeAttachmentTypeArrayOutputWithContext(ctx context.Context) VolumeAttachmentTypeArrayOutput

type VolumeAttachmentTypeInput

type VolumeAttachmentTypeInput interface {
	pulumi.Input

	ToVolumeAttachmentTypeOutput() VolumeAttachmentTypeOutput
	ToVolumeAttachmentTypeOutputWithContext(context.Context) VolumeAttachmentTypeOutput
}

VolumeAttachmentTypeInput is an input type that accepts VolumeAttachmentTypeArgs and VolumeAttachmentTypeOutput values. You can construct a concrete instance of `VolumeAttachmentTypeInput` via:

VolumeAttachmentTypeArgs{...}

type VolumeAttachmentTypeOutput

type VolumeAttachmentTypeOutput struct{ *pulumi.OutputState }

func (VolumeAttachmentTypeOutput) ElementType

func (VolumeAttachmentTypeOutput) ElementType() reflect.Type

func (VolumeAttachmentTypeOutput) Href

func (VolumeAttachmentTypeOutput) ToVolumeAttachmentTypeOutput

func (o VolumeAttachmentTypeOutput) ToVolumeAttachmentTypeOutput() VolumeAttachmentTypeOutput

func (VolumeAttachmentTypeOutput) ToVolumeAttachmentTypeOutputWithContext

func (o VolumeAttachmentTypeOutput) ToVolumeAttachmentTypeOutputWithContext(ctx context.Context) VolumeAttachmentTypeOutput

type VolumeInput

type VolumeInput interface {
	pulumi.Input

	ToVolumeOutput() VolumeOutput
	ToVolumeOutputWithContext(ctx context.Context) VolumeOutput
}

type VolumeMap added in v1.1.2

type VolumeMap map[string]VolumeInput

func (VolumeMap) ElementType added in v1.1.2

func (VolumeMap) ElementType() reflect.Type

func (VolumeMap) ToVolumeMapOutput added in v1.1.2

func (i VolumeMap) ToVolumeMapOutput() VolumeMapOutput

func (VolumeMap) ToVolumeMapOutputWithContext added in v1.1.2

func (i VolumeMap) ToVolumeMapOutputWithContext(ctx context.Context) VolumeMapOutput

type VolumeMapInput added in v1.1.2

type VolumeMapInput interface {
	pulumi.Input

	ToVolumeMapOutput() VolumeMapOutput
	ToVolumeMapOutputWithContext(context.Context) VolumeMapOutput
}

VolumeMapInput is an input type that accepts VolumeMap and VolumeMapOutput values. You can construct a concrete instance of `VolumeMapInput` via:

VolumeMap{ "key": VolumeArgs{...} }

type VolumeMapOutput added in v1.1.2

type VolumeMapOutput struct{ *pulumi.OutputState }

func (VolumeMapOutput) ElementType added in v1.1.2

func (VolumeMapOutput) ElementType() reflect.Type

func (VolumeMapOutput) MapIndex added in v1.1.2

func (VolumeMapOutput) ToVolumeMapOutput added in v1.1.2

func (o VolumeMapOutput) ToVolumeMapOutput() VolumeMapOutput

func (VolumeMapOutput) ToVolumeMapOutputWithContext added in v1.1.2

func (o VolumeMapOutput) ToVolumeMapOutputWithContext(ctx context.Context) VolumeMapOutput

type VolumeOutput

type VolumeOutput struct {
	*pulumi.OutputState
}

func (VolumeOutput) ElementType

func (VolumeOutput) ElementType() reflect.Type

func (VolumeOutput) ToVolumeOutput

func (o VolumeOutput) ToVolumeOutput() VolumeOutput

func (VolumeOutput) ToVolumeOutputWithContext

func (o VolumeOutput) ToVolumeOutputWithContext(ctx context.Context) VolumeOutput

func (VolumeOutput) ToVolumePtrOutput added in v1.1.2

func (o VolumeOutput) ToVolumePtrOutput() VolumePtrOutput

func (VolumeOutput) ToVolumePtrOutputWithContext added in v1.1.2

func (o VolumeOutput) ToVolumePtrOutputWithContext(ctx context.Context) VolumePtrOutput

type VolumePtrInput added in v1.1.2

type VolumePtrInput interface {
	pulumi.Input

	ToVolumePtrOutput() VolumePtrOutput
	ToVolumePtrOutputWithContext(ctx context.Context) VolumePtrOutput
}

type VolumePtrOutput added in v1.1.2

type VolumePtrOutput struct {
	*pulumi.OutputState
}

func (VolumePtrOutput) ElementType added in v1.1.2

func (VolumePtrOutput) ElementType() reflect.Type

func (VolumePtrOutput) ToVolumePtrOutput added in v1.1.2

func (o VolumePtrOutput) ToVolumePtrOutput() VolumePtrOutput

func (VolumePtrOutput) ToVolumePtrOutputWithContext added in v1.1.2

func (o VolumePtrOutput) ToVolumePtrOutputWithContext(ctx context.Context) VolumePtrOutput

type VolumeSnapshotPolicy

type VolumeSnapshotPolicy struct {
	SnapshotCount     int    `pulumi:"snapshotCount"`
	SnapshotFrequency string `pulumi:"snapshotFrequency"`
}

type VolumeSnapshotPolicyArgs

type VolumeSnapshotPolicyArgs struct {
	SnapshotCount     pulumi.IntInput    `pulumi:"snapshotCount"`
	SnapshotFrequency pulumi.StringInput `pulumi:"snapshotFrequency"`
}

func (VolumeSnapshotPolicyArgs) ElementType

func (VolumeSnapshotPolicyArgs) ElementType() reflect.Type

func (VolumeSnapshotPolicyArgs) ToVolumeSnapshotPolicyOutput

func (i VolumeSnapshotPolicyArgs) ToVolumeSnapshotPolicyOutput() VolumeSnapshotPolicyOutput

func (VolumeSnapshotPolicyArgs) ToVolumeSnapshotPolicyOutputWithContext

func (i VolumeSnapshotPolicyArgs) ToVolumeSnapshotPolicyOutputWithContext(ctx context.Context) VolumeSnapshotPolicyOutput

type VolumeSnapshotPolicyArray

type VolumeSnapshotPolicyArray []VolumeSnapshotPolicyInput

func (VolumeSnapshotPolicyArray) ElementType

func (VolumeSnapshotPolicyArray) ElementType() reflect.Type

func (VolumeSnapshotPolicyArray) ToVolumeSnapshotPolicyArrayOutput

func (i VolumeSnapshotPolicyArray) ToVolumeSnapshotPolicyArrayOutput() VolumeSnapshotPolicyArrayOutput

func (VolumeSnapshotPolicyArray) ToVolumeSnapshotPolicyArrayOutputWithContext

func (i VolumeSnapshotPolicyArray) ToVolumeSnapshotPolicyArrayOutputWithContext(ctx context.Context) VolumeSnapshotPolicyArrayOutput

type VolumeSnapshotPolicyArrayInput

type VolumeSnapshotPolicyArrayInput interface {
	pulumi.Input

	ToVolumeSnapshotPolicyArrayOutput() VolumeSnapshotPolicyArrayOutput
	ToVolumeSnapshotPolicyArrayOutputWithContext(context.Context) VolumeSnapshotPolicyArrayOutput
}

VolumeSnapshotPolicyArrayInput is an input type that accepts VolumeSnapshotPolicyArray and VolumeSnapshotPolicyArrayOutput values. You can construct a concrete instance of `VolumeSnapshotPolicyArrayInput` via:

VolumeSnapshotPolicyArray{ VolumeSnapshotPolicyArgs{...} }

type VolumeSnapshotPolicyArrayOutput

type VolumeSnapshotPolicyArrayOutput struct{ *pulumi.OutputState }

func (VolumeSnapshotPolicyArrayOutput) ElementType

func (VolumeSnapshotPolicyArrayOutput) Index

func (VolumeSnapshotPolicyArrayOutput) ToVolumeSnapshotPolicyArrayOutput

func (o VolumeSnapshotPolicyArrayOutput) ToVolumeSnapshotPolicyArrayOutput() VolumeSnapshotPolicyArrayOutput

func (VolumeSnapshotPolicyArrayOutput) ToVolumeSnapshotPolicyArrayOutputWithContext

func (o VolumeSnapshotPolicyArrayOutput) ToVolumeSnapshotPolicyArrayOutputWithContext(ctx context.Context) VolumeSnapshotPolicyArrayOutput

type VolumeSnapshotPolicyInput

type VolumeSnapshotPolicyInput interface {
	pulumi.Input

	ToVolumeSnapshotPolicyOutput() VolumeSnapshotPolicyOutput
	ToVolumeSnapshotPolicyOutputWithContext(context.Context) VolumeSnapshotPolicyOutput
}

VolumeSnapshotPolicyInput is an input type that accepts VolumeSnapshotPolicyArgs and VolumeSnapshotPolicyOutput values. You can construct a concrete instance of `VolumeSnapshotPolicyInput` via:

VolumeSnapshotPolicyArgs{...}

type VolumeSnapshotPolicyOutput

type VolumeSnapshotPolicyOutput struct{ *pulumi.OutputState }

func (VolumeSnapshotPolicyOutput) ElementType

func (VolumeSnapshotPolicyOutput) ElementType() reflect.Type

func (VolumeSnapshotPolicyOutput) SnapshotCount

func (o VolumeSnapshotPolicyOutput) SnapshotCount() pulumi.IntOutput

func (VolumeSnapshotPolicyOutput) SnapshotFrequency

func (o VolumeSnapshotPolicyOutput) SnapshotFrequency() pulumi.StringOutput

func (VolumeSnapshotPolicyOutput) ToVolumeSnapshotPolicyOutput

func (o VolumeSnapshotPolicyOutput) ToVolumeSnapshotPolicyOutput() VolumeSnapshotPolicyOutput

func (VolumeSnapshotPolicyOutput) ToVolumeSnapshotPolicyOutputWithContext

func (o VolumeSnapshotPolicyOutput) ToVolumeSnapshotPolicyOutputWithContext(ctx context.Context) VolumeSnapshotPolicyOutput

type VolumeState

type VolumeState struct {
	// A list of attachments, each with it's own `href` attribute
	Attachments VolumeAttachmentTypeArrayInput
	// The billing cycle, defaults to "hourly"
	BillingCycle pulumi.StringPtrInput
	// The timestamp for when the volume was created
	Created pulumi.StringPtrInput
	// Optional description for the volume
	Description pulumi.StringPtrInput
	// The facility to create the volume in
	Facility pulumi.StringPtrInput
	// Lock or unlock the volume
	Locked pulumi.BoolPtrInput
	// The name of the volume
	Name pulumi.StringPtrInput
	// The service plan slug of the volume
	Plan pulumi.StringPtrInput
	// The metal project ID to deploy the volume in
	ProjectId pulumi.StringPtrInput
	// The size in GB to make the volume
	Size pulumi.IntPtrInput
	// Optional list of snapshot policies
	SnapshotPolicies VolumeSnapshotPolicyArrayInput
	// The state of the volume
	State pulumi.StringPtrInput
	// The timestamp for the last time the volume was updated
	Updated pulumi.StringPtrInput
}

func (VolumeState) ElementType

func (VolumeState) ElementType() reflect.Type

Directories

Path Synopsis

Jump to

Keyboard shortcuts

? : This menu
/ : Search site
f or F : Jump to
y or Y : Canonical URL