metal

package
v0.0.0-...-c115ad8 Latest Latest
Warning

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

Go to latest
Published: Apr 2, 2024 License: Apache-2.0 Imports: 7 Imported by: 0

Documentation

Index

Constants

View Source
const (
	BillingCycleHourly  = BillingCycle("hourly")
	BillingCycleMonthly = BillingCycle("monthly")
)
View Source
const (
	// Amsterdam 2
	FacilityAM2 = Facility("am2")
	// Amsterdam 6
	FacilityAM6 = Facility("am6")
	// Manchester 5
	FacilityMA5 = Facility("ma5")
	// Tokio 1
	FacilityNRT1 = Facility("nrt1")
	// Paris 4
	FacilityPA4 = Facility("pa4")
	// Stockholm 2
	FacilitySK2 = Facility("sk2")
	// Melbourne 2
	FacilityME2 = Facility("me2")
	// Hong Kong 2
	FacilityHK2 = Facility("hk2")
	// Tokyo 11
	FacilityTY11 = Facility("ty11")
	// Los Angeles 4
	FacilityLA4 = Facility("la4")
	// Dallas 6
	FacilityDA6 = Facility("da6")
	// Dallas 11
	FacilityDA11 = Facility("da11")
	// Dallas 3
	FacilityDA3 = Facility("da3")
	// Sao Paulo 4
	FacilitySP4 = Facility("sp4")
	// Montreal 1
	FacilityMT1 = Facility("mt1")
	// Silicon Valley 16
	FacilitySV16 = Facility("sv16")
	// Sunnyvale, CA 1
	FacilitySJC1 = Facility("sjc1")
	// Frankfurt 2
	FacilityFRA2 = Facility("fra2")
	// Frankfurt 8
	FacilityFRA8 = Facility("fr8")
	// New York 5
	FacilityNY5 = Facility("ny5")
	// New York 6
	FacilityNY6 = Facility("ny6")
	// New York 7
	FacilityNY7 = Facility("ny7")
	// Chicago 3
	FacilityCH3 = Facility("ch3")
	// Seoul 1
	FacilitySL1 = Facility("sl1")
	// Sydney 5
	FacilitySY5 = Facility("sy5")
	// Osaka 3
	FacilityOS3 = Facility("os3")
	// London 7
	FacilityLD7 = Facility("ld7")
	// Washington DC 10
	FacilityDC10 = Facility("dc10")
	// Amsterdam 1
	FacilityAMS1 = Facility("ams1")
	// Singapore 4
	FacilitySG4 = Facility("sg4")
	// Seattle 4
	FacilitySE4 = Facility("se4")
	// Sydney 4
	FacilitySY4 = Facility("sy4")
	// Atlanta 4
	FacilityAT4 = Facility("at4")
	// Dallas 2
	FacilityDFW2 = Facility("dfw2")
	// Toronto
	FacilityTR2 = Facility("tr2")
	// Washington DC
	FacilityDC13 = Facility("dc13")
	// Helsinki
	FacilityHE7 = Facility("he7")
	// Parsippany, NJ 1
	FacilityEWR1 = Facility("ewr1")
	// Singapore 5
	FacilitySG5 = Facility("sg5")
	// Singapore 1
	FacilitySG1 = Facility("sg1")
	// Madrid 2
	FacilityMD2 = Facility("md2")
	// Silicon Valley 15
	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 (
	OperatingSystemAlma8               = OperatingSystem("alma_8")
	OperatingSystemAlma9               = OperatingSystem("alma_9")
	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")
	OperatingSystemDebian10            = OperatingSystem("debian_10")
	OperatingSystemDebian11            = OperatingSystem("debian_11")
	OperatingSystemDebian7             = OperatingSystem("debian_7")
	OperatingSystemDebian8             = OperatingSystem("debian_8")
	OperatingSystemDebian9             = OperatingSystem("debian_9")
	OperatingSystemFedora31            = OperatingSystem("fedora_31")
	OperatingSystemFedora34            = OperatingSystem("fedora_34")
	OperatingSystemFlatcarAlpha        = OperatingSystem("flatcar_alpha")
	OperatingSystemFlatcarBeta         = OperatingSystem("flatcar_beta")
	OperatingSystemFlatcarEdge         = OperatingSystem("flatcar_edge")
	OperatingSystemFlatcarLTS          = OperatingSystem("flatcar_lts")
	OperatingSystemFlatcarStable       = OperatingSystem("flatcar_stable")
	OperatingSystem_FreeBSD10_3        = OperatingSystem("freebsd_10_3")
	OperatingSystem_FreeBSD10_4        = OperatingSystem("freebsd_10_4")
	OperatingSystem_FreeBSD11_0        = OperatingSystem("freebsd_11_0")
	OperatingSystem_FreeBSD11_1        = OperatingSystem("freebsd_11_1")
	OperatingSystem_FreeBSD11_2        = OperatingSystem("freebsd_11_2")
	OperatingSystem_FreeBSD11_3        = OperatingSystem("freebsd_11_3")
	OperatingSystem_FreeBSD11_4        = OperatingSystem("freebsd_11_4")
	OperatingSystemFreeBSD12Testing    = OperatingSystem("freebsd_12_testing")
	OperatingSystem_FreeBSD12_1        = OperatingSystem("freebsd_12_1")
	OperatingSystem_FreeBSD13_0        = OperatingSystem("freebsd_13_0")
	OperatingSystem_FreeBSD13_1        = OperatingSystem("freebsd_13_1")
	OperatingSystem_FreeBSD13_testing  = OperatingSystem("freebsd_13_testing")
	OperatingSystemHookEsxi7           = OperatingSystem("hook_esxi7")
	OperatingSystem_NixOS17_03         = OperatingSystem("nixos_17_03")
	OperatingSystem_NixOS18_03         = OperatingSystem("nixos_18_03")
	OperatingSystem_NixOS19_03         = OperatingSystem("nixos_19_03")
	OperatingSystem_NixOS20_09         = OperatingSystem("nixos_20_09")
	OperatingSystem_NixOS21_11         = OperatingSystem("nixos_21_11")
	OperatingSystem_NixOS22_05         = OperatingSystem("nixos_22_05")
	OperatingSystem_NixOS22_11         = OperatingSystem("nixos_22_11")
	OperatingSystem_Nixos21_05         = OperatingSystem("nixos_21_05")
	OperatingSystemNutanixCentos       = OperatingSystem("nutanix_centos")
	OperatingSystem_NutanixLTS5_19_1   = OperatingSystem("nutanix_lts_5_19_1")
	OperatingSystem_NutanixLTS5_20     = OperatingSystem("nutanix_lts_5_20")
	OperatingSystem_OpenSUSE42_3       = OperatingSystem("opensuse_42_3")
	OperatingSystemRHEL7               = OperatingSystem("rhel_7")
	OperatingSystemRHEL8               = OperatingSystem("rhel_8")
	OperatingSystemRHEL9               = OperatingSystem("rhel_9")
	OperatingSystemRancherOS           = OperatingSystem("rancher")
	OperatingSystemRocky8              = OperatingSystem("rocky_8")
	OperatingSystemRocky9              = OperatingSystem("rocky_9")
	OperatingSystemSLES12SP3           = OperatingSystem("suse_sles12_sp3")
	OperatingSystemScientificLinux6    = OperatingSystem("scientific_6")
	OperatingSystemTalosV1             = OperatingSystem("talos_v1")
	OperatingSystemUbuntu1710          = OperatingSystem("ubuntu_17_10")
	OperatingSystem_Ubuntu18_04        = OperatingSystem("ubuntu_18_04")
	OperatingSystemUbuntu1904          = OperatingSystem("ubuntu_19_04")
	OperatingSystem_Ubuntu19_10        = OperatingSystem("ubuntu_19_10")
	OperatingSystem_Ubuntu20_04        = OperatingSystem("ubuntu_20_04")
	OperatingSystem_Ubuntu20_04_legacy = OperatingSystem("ubuntu_20_04_legacy")
	OperatingSystem_Ubuntu20_10        = OperatingSystem("ubuntu_20_10")
	OperatingSystemUbuntu2204          = OperatingSystem("ubuntu_22_04")
	OperatingSystemVMWareAlloyVcf      = OperatingSystem("vmware_alloy_vcf")
	OperatingSystem_VMWareEsxi5_5      = OperatingSystem("vmware_esxi_5_5")
	OperatingSystem_VMWareEsxi6_0      = OperatingSystem("vmware_esxi_6_0")
	OperatingSystem_VMWareEsxi6_5      = OperatingSystem("vmware_esxi_6_5")
	OperatingSystem_VMWareEsxi6_7      = OperatingSystem("vmware_esxi_6_7")
	OperatingSystem_VMWareEsxi6_7_vcf  = OperatingSystem("vmware_esxi_6_7_vcf")
	OperatingSystem_VMWareEsxi7_0      = OperatingSystem("vmware_esxi_7_0")
	OperatingSystem_VMWareEsxi7_0U2a   = OperatingSystem("vmware_esxi_7_0U2a")
	OperatingSystem_VMWareEsxi7_0_vcf  = OperatingSystem("vmware_esxi_7_0_vcf")
	OperatingSystem_VMWareNsx2_5_0     = OperatingSystem("vmware_nsx_2_5_0")
	OperatingSystem_VMWareNsx3_0_0     = OperatingSystem("vmware_nsx_3_0_0")
	OperatingSystemVirtuozzo7          = OperatingSystem("virtuozzo_7")
	OperatingSystemWindows2012R2       = OperatingSystem("windows_2012_r2")
	OperatingSystemWindows2016         = OperatingSystem("windows_2016")
	OperatingSystemWindows2019         = OperatingSystem("windows_2019")
	OperatingSystemWindows2022         = OperatingSystem("windows_2022")
)
View Source
const (
	PlanA3LargeX86  = Plan("a3.large.x86")
	PlanC2LargeARM  = Plan("c2.large.arm")
	PlanC2MediumX86 = Plan("c2.medium.x86")
	PlanC3LargeARM  = Plan("c3.large.arm64")
	PlanC3MediumX86 = Plan("c3.medium.x86")
	PlanC3SmallX86  = Plan("c3.small.x86")
	PlanF3LargeX86  = Plan("f3.large.x86")
	PlanF3MediumX86 = Plan("f3.medium.x86")
	PlanG2LargeX86  = Plan("g2.large.x86")
	PlanM2XLargeX86 = Plan("m2.xlarge.x86")
	PlanM3LargeX86  = Plan("m3.large.x86")
	PlanM3SmallX86  = Plan("m3.small.x86")
	PlanN2XLargeX86 = Plan("n2.xlarge.x86")
	PlanN3XLargeX86 = Plan("n3.xlarge.x86")
	PlanS3XLargeX86 = Plan("s3.xlarge.x86")
	PlanT3SmallX86  = Plan("t3.small.x86")
	PlanX2XLargeX86 = Plan("x2.xlarge.x86")
	PlanX3XLargeX86 = Plan("x3.xlarge.x86")
)

Variables

This section is empty.

Functions

This section is empty.

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 of the session - `up` or `down`
	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.

## Example Usage ```go package main

import (

"github.com/equinix/pulumi-equinix/sdk/go/equinix/metal"
"github.com/pulumi/pulumi/sdk/v3/go/pulumi"
"github.com/pulumi/pulumi/sdk/v3/go/pulumi/config"

)

func main() {
	pulumi.Run(func(ctx *pulumi.Context) error {
		cfg := config.New(ctx, "")
		deviceId := cfg.Require("deviceId")
		bgp, err := metal.NewBgpSession(ctx, "bgp", &metal.BgpSessionArgs{
			DeviceId:      pulumi.String(deviceId),
			AddressFamily: pulumi.String("ipv4"),
		})
		if err != nil {
			return err
		}
		ctx.Export("bgpSessionStatus", bgp.Status)
		return nil
	})
}

```

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

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

type BgpSessionArray []BgpSessionInput

func (BgpSessionArray) ElementType

func (BgpSessionArray) ElementType() reflect.Type

func (BgpSessionArray) ToBgpSessionArrayOutput

func (i BgpSessionArray) ToBgpSessionArrayOutput() BgpSessionArrayOutput

func (BgpSessionArray) ToBgpSessionArrayOutputWithContext

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

type BgpSessionArrayInput

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

type BgpSessionArrayOutput struct{ *pulumi.OutputState }

func (BgpSessionArrayOutput) ElementType

func (BgpSessionArrayOutput) ElementType() reflect.Type

func (BgpSessionArrayOutput) Index

func (BgpSessionArrayOutput) ToBgpSessionArrayOutput

func (o BgpSessionArrayOutput) ToBgpSessionArrayOutput() BgpSessionArrayOutput

func (BgpSessionArrayOutput) ToBgpSessionArrayOutputWithContext

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

type BgpSessionInput

type BgpSessionInput interface {
	pulumi.Input

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

type BgpSessionMap

type BgpSessionMap map[string]BgpSessionInput

func (BgpSessionMap) ElementType

func (BgpSessionMap) ElementType() reflect.Type

func (BgpSessionMap) ToBgpSessionMapOutput

func (i BgpSessionMap) ToBgpSessionMapOutput() BgpSessionMapOutput

func (BgpSessionMap) ToBgpSessionMapOutputWithContext

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

type BgpSessionMapInput

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

type BgpSessionMapOutput struct{ *pulumi.OutputState }

func (BgpSessionMapOutput) ElementType

func (BgpSessionMapOutput) ElementType() reflect.Type

func (BgpSessionMapOutput) MapIndex

func (BgpSessionMapOutput) ToBgpSessionMapOutput

func (o BgpSessionMapOutput) ToBgpSessionMapOutput() BgpSessionMapOutput

func (BgpSessionMapOutput) ToBgpSessionMapOutputWithContext

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

type BgpSessionOutput

type BgpSessionOutput struct{ *pulumi.OutputState }

func (BgpSessionOutput) AddressFamily

func (o BgpSessionOutput) AddressFamily() pulumi.StringOutput

`ipv4` or `ipv6`.

func (BgpSessionOutput) DefaultRoute

func (o BgpSessionOutput) DefaultRoute() pulumi.BoolPtrOutput

Boolean flag to set the default route policy. False by default.

func (BgpSessionOutput) DeviceId

func (o BgpSessionOutput) DeviceId() pulumi.StringOutput

ID of device.

func (BgpSessionOutput) ElementType

func (BgpSessionOutput) ElementType() reflect.Type

func (BgpSessionOutput) Status

Status of the session - `up` or `down`

func (BgpSessionOutput) ToBgpSessionOutput

func (o BgpSessionOutput) ToBgpSessionOutput() BgpSessionOutput

func (BgpSessionOutput) ToBgpSessionOutputWithContext

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

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 of the session - `up` or `down`
	Status pulumi.StringPtrInput
}

func (BgpSessionState) ElementType

func (BgpSessionState) ElementType() reflect.Type

type BillingCycle

type BillingCycle string

func (BillingCycle) ElementType

func (BillingCycle) ElementType() reflect.Type

func (BillingCycle) ToBillingCycleOutput

func (e BillingCycle) ToBillingCycleOutput() BillingCycleOutput

func (BillingCycle) ToBillingCycleOutputWithContext

func (e BillingCycle) ToBillingCycleOutputWithContext(ctx context.Context) BillingCycleOutput

func (BillingCycle) ToBillingCyclePtrOutput

func (e BillingCycle) ToBillingCyclePtrOutput() BillingCyclePtrOutput

func (BillingCycle) ToBillingCyclePtrOutputWithContext

func (e BillingCycle) ToBillingCyclePtrOutputWithContext(ctx context.Context) BillingCyclePtrOutput

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 BillingCycleInput

type BillingCycleInput interface {
	pulumi.Input

	ToBillingCycleOutput() BillingCycleOutput
	ToBillingCycleOutputWithContext(context.Context) BillingCycleOutput
}

BillingCycleInput is an input type that accepts values of the BillingCycle enum A concrete instance of `BillingCycleInput` can be one of the following:

BillingCycleHourly
BillingCycleMonthly

type BillingCycleOutput

type BillingCycleOutput struct{ *pulumi.OutputState }

func (BillingCycleOutput) ElementType

func (BillingCycleOutput) ElementType() reflect.Type

func (BillingCycleOutput) ToBillingCycleOutput

func (o BillingCycleOutput) ToBillingCycleOutput() BillingCycleOutput

func (BillingCycleOutput) ToBillingCycleOutputWithContext

func (o BillingCycleOutput) ToBillingCycleOutputWithContext(ctx context.Context) BillingCycleOutput

func (BillingCycleOutput) ToBillingCyclePtrOutput

func (o BillingCycleOutput) ToBillingCyclePtrOutput() BillingCyclePtrOutput

func (BillingCycleOutput) ToBillingCyclePtrOutputWithContext

func (o BillingCycleOutput) ToBillingCyclePtrOutputWithContext(ctx context.Context) BillingCyclePtrOutput

func (BillingCycleOutput) ToStringOutput

func (o BillingCycleOutput) ToStringOutput() pulumi.StringOutput

func (BillingCycleOutput) ToStringOutputWithContext

func (o BillingCycleOutput) ToStringOutputWithContext(ctx context.Context) pulumi.StringOutput

func (BillingCycleOutput) ToStringPtrOutput

func (o BillingCycleOutput) ToStringPtrOutput() pulumi.StringPtrOutput

func (BillingCycleOutput) ToStringPtrOutputWithContext

func (o BillingCycleOutput) ToStringPtrOutputWithContext(ctx context.Context) pulumi.StringPtrOutput

type BillingCyclePtrInput

type BillingCyclePtrInput interface {
	pulumi.Input

	ToBillingCyclePtrOutput() BillingCyclePtrOutput
	ToBillingCyclePtrOutputWithContext(context.Context) BillingCyclePtrOutput
}

func BillingCyclePtr

func BillingCyclePtr(v string) BillingCyclePtrInput

type BillingCyclePtrOutput

type BillingCyclePtrOutput struct{ *pulumi.OutputState }

func (BillingCyclePtrOutput) Elem

func (BillingCyclePtrOutput) ElementType

func (BillingCyclePtrOutput) ElementType() reflect.Type

func (BillingCyclePtrOutput) ToBillingCyclePtrOutput

func (o BillingCyclePtrOutput) ToBillingCyclePtrOutput() BillingCyclePtrOutput

func (BillingCyclePtrOutput) ToBillingCyclePtrOutputWithContext

func (o BillingCyclePtrOutput) ToBillingCyclePtrOutputWithContext(ctx context.Context) BillingCyclePtrOutput

func (BillingCyclePtrOutput) ToStringPtrOutput

func (o BillingCyclePtrOutput) ToStringPtrOutput() pulumi.StringPtrOutput

func (BillingCyclePtrOutput) ToStringPtrOutputWithContext

func (o BillingCyclePtrOutput) 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"`
	// Behavioral overrides that change how the resource handles certain attribute updates. See Behavior below for more details.
	Behavior DeviceBehaviorPtrOutput `pulumi:"behavior"`
	// 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.  By default, changing this attribute will cause the provider to destroy and recreate your device.  If `reinstall` is specified or `behavior.allow_changes` includes `"customData"`, the device will be updated in-place instead of recreated.
	CustomData pulumi.StringPtrOutput `pulumi:"customData"`
	// (**Deprecated**) The facility where the device is deployed. Use metro instead; read the facility to metro migration guide
	//
	// Deprecated: Use metro instead of facility.  For more information, read the migration guide: https://registry.terraform.io/providers/equinix/equinix/latest/docs/guides/migration_guide_facilities_to_metros_devices
	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"`
	// The device description.
	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. Conflicts with `metro`.  Use metro instead; read the facility to metro migration guide
	//
	// Deprecated: Use metro instead of facilities.  For more information, read the migration guide: https://registry.terraform.io/providers/equinix/equinix/latest/docs/guides/migration_guide_facilities_to_metros_devices
	Facilities pulumi.StringArrayOutput `pulumi:"facilities"`
	// Delete device even if it has volumes attached. Only applies
	// for destroy action.
	ForceDetachVolumes pulumi.BoolPtrOutput `pulumi:"forceDetachVolumes"`
	// The UUID of the hardware reservation where you want this
	// device deployed, or `next-available` if you want to pick your next available reservation
	// automatically. Changing this from a reservation UUID to `next-available` will re-create the device
	// in another reservation. Please be careful when using hardware reservation UUID and `next-available`
	// together for the same pool of reservations. It might happen that the reservation which Equinix
	// Metal API will pick as `next-available` is the reservation which you refer with UUID in another
	// metal.Device resource. If that happens, and the metal.Device with the UUID is
	// created later, resource creation will fail because the reservation is already in use (by the
	// resource created with `next-available`). To workaround this, have the `next-available` resource
	// explicitly dependOn
	// the resource with hardware reservation UUID, so that the latter is created first. For more details,
	// see issue #176.
	HardwareReservationId pulumi.StringPtrOutput `pulumi:"hardwareReservationId"`
	// The device hostname used in deployments taking advantage of Layer3 DHCP
	// or metadata service configuration.
	Hostname pulumi.StringOutput `pulumi:"hostname"`
	// A list of IP address types for the device. See
	// IP address below for more details.
	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 or unlocked. Locking a device prevents you from deleting or reinstalling the device or performing a firmware update on the device, and it prevents an instance with a termination time set from being reclaimed, even if the termination time was reached
	Locked pulumi.BoolOutput `pulumi:"locked"`
	// Metro area for the new device. Conflicts with `facilities`.
	Metro pulumi.StringPtrOutput `pulumi:"metro"`
	// The device's private and public IP (v4 and v6) network details. See
	// Network Attribute below for more details.
	Network DeviceNetworkArrayOutput `pulumi:"network"`
	// (Deprecated) Network type of a device, used in
	// [Layer 2 networking](https://metal.equinix.com/developers/docs/networking/layer2/). Since this
	// attribute is deprecated you should handle Network Type with one of
	// equinix_metal_port,
	// metal.DeviceNetworkType resources or
	// metal.Port datasource.
	// See networkTypes guide for more info.
	//
	// Deprecated: You should handle Network Type with one of 'equinix_metal_port' or 'equinix_metal_device_network_type' resources. See section 'Guides' for more info
	NetworkType pulumi.StringOutput `pulumi:"networkType"`
	// 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"`
	// List of ports assigned to the device. See Ports Attribute below for
	// more details.
	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 specify this array, only the listed project SSH keys (and any SSH keys for the users specified in user_ssh_key_ids) will be added. If no SSH keys are specified (both userSshKeysIds and projectSshKeyIds are empty lists or omitted), all parent project keys, parent project members keys and organization members keys will be included.  Project SSH keys can be created with the metal.ProjectSshKey resource.
	ProjectSshKeyIds pulumi.StringArrayOutput `pulumi:"projectSshKeyIds"`
	// Whether the device should be reinstalled instead of destroyed when
	// modifying user_data, custom_data, or operating system. See Reinstall below for more
	// details.
	Reinstall DeviceReinstallPtrOutput `pulumi:"reinstall"`
	// Root password to the server (disabled after 24 hours).
	RootPassword pulumi.StringOutput `pulumi:"rootPassword"`
	// The hostname to use for [Serial over SSH](https://deploy.equinix.com/developers/docs/metal/resilience-recovery/serial-over-ssh/) access to the device
	SosHostname pulumi.StringOutput `pulumi:"sosHostname"`
	// 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"`
	// Timestamp for device termination. For example `2021-09-03T16:32:00+03:00`.
	// If you don't supply timezone info, timestamp is assumed to be in UTC.
	TerminationTime pulumi.StringPtrOutput `pulumi:"terminationTime"`
	// 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.  By default, changing this attribute will cause the provider to destroy and recreate your device.  If `reinstall` is specified or `behavior.allow_changes` includes `"userData"`, the device will be updated in-place instead of recreated.
	UserData pulumi.StringPtrOutput `pulumi:"userData"`
	// Array of IDs of the users whose SSH keys should be added to the device. If you specify this array, only the listed users' SSH keys (and any project SSH keys specified in project_ssh_key_ids) will be added. If no SSH keys are specified (both userSshKeysIds and projectSshKeyIds are empty lists or omitted), all parent project keys, parent project members keys and organization members keys will be included. User SSH keys can be created with the metal.SshKey resource.
	UserSshKeyIds pulumi.StringArrayOutput `pulumi:"userSshKeyIds"`
	// 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.

## Example Usage ```go package main

import (

"fmt"

"github.com/equinix/pulumi-equinix/sdk/go/equinix/metal"
"github.com/pulumi/pulumi/sdk/v3/go/pulumi"
"github.com/pulumi/pulumi/sdk/v3/go/pulumi/config"

)

func main() {
	pulumi.Run(func(ctx *pulumi.Context) error {
		cfg := config.New(ctx, "")
		projectId := cfg.Require("projectId")
		web, err := metal.NewDevice(ctx, "web", &metal.DeviceArgs{
			Hostname:        pulumi.String("webserver1"),
			Plan:            pulumi.String("c3.small.x86"),
			OperatingSystem: pulumi.String("ubuntu_20_04"),
			Metro:           pulumi.String("sv"),
			BillingCycle:    pulumi.String("hourly"),
			ProjectId:       pulumi.String(projectId),
		})
		if err != nil {
			return err
		}
		ctx.Export("webPublicIp", web.AccessPublicIpv4.ApplyT(func(accessPublicIpv4 string) (string, error) {
			return fmt.Sprintf("http://%v", accessPublicIpv4), nil
		}).(pulumi.StringOutput))
		return nil
	})
}

```

## Import

This resource can be imported using an existing device ID:

```sh $ pulumi import equinix:metal/device:Device equinix_metal_device {existing_device_id} ```

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

type DeviceArgs

type DeviceArgs struct {
	// If true, a device with OS `customIpxe` will continue to boot via iPXE
	// on reboots.
	AlwaysPxe pulumi.BoolPtrInput
	// Behavioral overrides that change how the resource handles certain attribute updates. See Behavior below for more details.
	Behavior DeviceBehaviorPtrInput
	// monthly or hourly
	BillingCycle pulumi.StringPtrInput
	// A string of the desired Custom Data for the device.  By default, changing this attribute will cause the provider to destroy and recreate your device.  If `reinstall` is specified or `behavior.allow_changes` includes `"customData"`, the device will be updated in-place instead of recreated.
	CustomData pulumi.StringPtrInput
	// The device description.
	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. Conflicts with `metro`.  Use metro instead; read the facility to metro migration guide
	//
	// Deprecated: Use metro instead of facilities.  For more information, read the migration guide: https://registry.terraform.io/providers/equinix/equinix/latest/docs/guides/migration_guide_facilities_to_metros_devices
	Facilities pulumi.StringArrayInput
	// Delete device even if it has volumes attached. Only applies
	// for destroy action.
	ForceDetachVolumes pulumi.BoolPtrInput
	// The UUID of the hardware reservation where you want this
	// device deployed, or `next-available` if you want to pick your next available reservation
	// automatically. Changing this from a reservation UUID to `next-available` will re-create the device
	// in another reservation. Please be careful when using hardware reservation UUID and `next-available`
	// together for the same pool of reservations. It might happen that the reservation which Equinix
	// Metal API will pick as `next-available` is the reservation which you refer with UUID in another
	// metal.Device resource. If that happens, and the metal.Device with the UUID is
	// created later, resource creation will fail because the reservation is already in use (by the
	// resource created with `next-available`). To workaround this, have the `next-available` resource
	// explicitly dependOn
	// the resource with hardware reservation UUID, so that the latter is created first. For more details,
	// see issue #176.
	HardwareReservationId pulumi.StringPtrInput
	// The device hostname used in deployments taking advantage of Layer3 DHCP
	// or metadata service configuration.
	Hostname pulumi.StringPtrInput
	// A list of IP address types for the device. See
	// IP address below for more details.
	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 or unlocked. Locking a device prevents you from deleting or reinstalling the device or performing a firmware update on the device, and it prevents an instance with a termination time set from being reclaimed, even if the termination time was reached
	Locked pulumi.BoolPtrInput
	// Metro area for the new device. Conflicts with `facilities`.
	Metro 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 specify this array, only the listed project SSH keys (and any SSH keys for the users specified in user_ssh_key_ids) will be added. If no SSH keys are specified (both userSshKeysIds and projectSshKeyIds are empty lists or omitted), all parent project keys, parent project members keys and organization members keys will be included.  Project SSH keys can be created with the metal.ProjectSshKey resource.
	ProjectSshKeyIds pulumi.StringArrayInput
	// Whether the device should be reinstalled instead of destroyed when
	// modifying user_data, custom_data, or operating system. See Reinstall below for more
	// details.
	Reinstall DeviceReinstallPtrInput
	// 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
	// Timestamp for device termination. For example `2021-09-03T16:32:00+03:00`.
	// If you don't supply timezone info, timestamp is assumed to be in UTC.
	TerminationTime pulumi.StringPtrInput
	// A string of the desired User Data for the device.  By default, changing this attribute will cause the provider to destroy and recreate your device.  If `reinstall` is specified or `behavior.allow_changes` includes `"userData"`, the device will be updated in-place instead of recreated.
	UserData pulumi.StringPtrInput
	// Array of IDs of the users whose SSH keys should be added to the device. If you specify this array, only the listed users' SSH keys (and any project SSH keys specified in project_ssh_key_ids) will be added. If no SSH keys are specified (both userSshKeysIds and projectSshKeyIds are empty lists or omitted), all parent project keys, parent project members keys and organization members keys will be included. User SSH keys can be created with the metal.SshKey resource.
	UserSshKeyIds pulumi.StringArrayInput
	// 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

type DeviceArray []DeviceInput

func (DeviceArray) ElementType

func (DeviceArray) ElementType() reflect.Type

func (DeviceArray) ToDeviceArrayOutput

func (i DeviceArray) ToDeviceArrayOutput() DeviceArrayOutput

func (DeviceArray) ToDeviceArrayOutputWithContext

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

type DeviceArrayInput

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

type DeviceArrayOutput struct{ *pulumi.OutputState }

func (DeviceArrayOutput) ElementType

func (DeviceArrayOutput) ElementType() reflect.Type

func (DeviceArrayOutput) Index

func (DeviceArrayOutput) ToDeviceArrayOutput

func (o DeviceArrayOutput) ToDeviceArrayOutput() DeviceArrayOutput

func (DeviceArrayOutput) ToDeviceArrayOutputWithContext

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

type DeviceBehavior

type DeviceBehavior struct {
	// List of attributes that are allowed to change without recreating the instance. Supported attributes: `customData`, `userData`"
	AllowChanges []string `pulumi:"allowChanges"`
}

type DeviceBehaviorArgs

type DeviceBehaviorArgs struct {
	// List of attributes that are allowed to change without recreating the instance. Supported attributes: `customData`, `userData`"
	AllowChanges pulumi.StringArrayInput `pulumi:"allowChanges"`
}

func (DeviceBehaviorArgs) ElementType

func (DeviceBehaviorArgs) ElementType() reflect.Type

func (DeviceBehaviorArgs) ToDeviceBehaviorOutput

func (i DeviceBehaviorArgs) ToDeviceBehaviorOutput() DeviceBehaviorOutput

func (DeviceBehaviorArgs) ToDeviceBehaviorOutputWithContext

func (i DeviceBehaviorArgs) ToDeviceBehaviorOutputWithContext(ctx context.Context) DeviceBehaviorOutput

func (DeviceBehaviorArgs) ToDeviceBehaviorPtrOutput

func (i DeviceBehaviorArgs) ToDeviceBehaviorPtrOutput() DeviceBehaviorPtrOutput

func (DeviceBehaviorArgs) ToDeviceBehaviorPtrOutputWithContext

func (i DeviceBehaviorArgs) ToDeviceBehaviorPtrOutputWithContext(ctx context.Context) DeviceBehaviorPtrOutput

type DeviceBehaviorInput

type DeviceBehaviorInput interface {
	pulumi.Input

	ToDeviceBehaviorOutput() DeviceBehaviorOutput
	ToDeviceBehaviorOutputWithContext(context.Context) DeviceBehaviorOutput
}

DeviceBehaviorInput is an input type that accepts DeviceBehaviorArgs and DeviceBehaviorOutput values. You can construct a concrete instance of `DeviceBehaviorInput` via:

DeviceBehaviorArgs{...}

type DeviceBehaviorOutput

type DeviceBehaviorOutput struct{ *pulumi.OutputState }

func (DeviceBehaviorOutput) AllowChanges

List of attributes that are allowed to change without recreating the instance. Supported attributes: `customData`, `userData`"

func (DeviceBehaviorOutput) ElementType

func (DeviceBehaviorOutput) ElementType() reflect.Type

func (DeviceBehaviorOutput) ToDeviceBehaviorOutput

func (o DeviceBehaviorOutput) ToDeviceBehaviorOutput() DeviceBehaviorOutput

func (DeviceBehaviorOutput) ToDeviceBehaviorOutputWithContext

func (o DeviceBehaviorOutput) ToDeviceBehaviorOutputWithContext(ctx context.Context) DeviceBehaviorOutput

func (DeviceBehaviorOutput) ToDeviceBehaviorPtrOutput

func (o DeviceBehaviorOutput) ToDeviceBehaviorPtrOutput() DeviceBehaviorPtrOutput

func (DeviceBehaviorOutput) ToDeviceBehaviorPtrOutputWithContext

func (o DeviceBehaviorOutput) ToDeviceBehaviorPtrOutputWithContext(ctx context.Context) DeviceBehaviorPtrOutput

type DeviceBehaviorPtrInput

type DeviceBehaviorPtrInput interface {
	pulumi.Input

	ToDeviceBehaviorPtrOutput() DeviceBehaviorPtrOutput
	ToDeviceBehaviorPtrOutputWithContext(context.Context) DeviceBehaviorPtrOutput
}

DeviceBehaviorPtrInput is an input type that accepts DeviceBehaviorArgs, DeviceBehaviorPtr and DeviceBehaviorPtrOutput values. You can construct a concrete instance of `DeviceBehaviorPtrInput` via:

        DeviceBehaviorArgs{...}

or:

        nil

type DeviceBehaviorPtrOutput

type DeviceBehaviorPtrOutput struct{ *pulumi.OutputState }

func (DeviceBehaviorPtrOutput) AllowChanges

List of attributes that are allowed to change without recreating the instance. Supported attributes: `customData`, `userData`"

func (DeviceBehaviorPtrOutput) Elem

func (DeviceBehaviorPtrOutput) ElementType

func (DeviceBehaviorPtrOutput) ElementType() reflect.Type

func (DeviceBehaviorPtrOutput) ToDeviceBehaviorPtrOutput

func (o DeviceBehaviorPtrOutput) ToDeviceBehaviorPtrOutput() DeviceBehaviorPtrOutput

func (DeviceBehaviorPtrOutput) ToDeviceBehaviorPtrOutputWithContext

func (o DeviceBehaviorPtrOutput) ToDeviceBehaviorPtrOutputWithContext(ctx context.Context) DeviceBehaviorPtrOutput

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"`
	// List of UUIDs of IP block reservations
	// from which the public IPv4 address should be taken.
	//
	// You can supply one `ipAddress` block per IP address type. If you use the `ipAddress` you must
	// always pass a block for `privateIpv4`.
	//
	// To learn more about using the reserved IP addresses for new devices, see the examples in the
	// metal.ReservedIpBlock documentation.
	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"`
	// List of UUIDs of IP block reservations
	// from which the public IPv4 address should be taken.
	//
	// You can supply one `ipAddress` block per IP address type. If you use the `ipAddress` you must
	// always pass a block for `privateIpv4`.
	//
	// To learn more about using the reserved IP addresses for new devices, see the examples in the
	// metal.ReservedIpBlock documentation.
	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

List of UUIDs of IP block reservations from which the public IPv4 address should be taken.

You can supply one `ipAddress` block per IP address type. If you use the `ipAddress` you must always pass a block for `privateIpv4`.

To learn more about using the reserved IP addresses for new devices, see the examples in the metal.ReservedIpBlock documentation.

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

type DeviceMap map[string]DeviceInput

func (DeviceMap) ElementType

func (DeviceMap) ElementType() reflect.Type

func (DeviceMap) ToDeviceMapOutput

func (i DeviceMap) ToDeviceMapOutput() DeviceMapOutput

func (DeviceMap) ToDeviceMapOutputWithContext

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

type DeviceMapInput

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

type DeviceMapOutput struct{ *pulumi.OutputState }

func (DeviceMapOutput) ElementType

func (DeviceMapOutput) ElementType() reflect.Type

func (DeviceMapOutput) MapIndex

func (DeviceMapOutput) ToDeviceMapOutput

func (o DeviceMapOutput) ToDeviceMapOutput() DeviceMapOutput

func (DeviceMapOutput) ToDeviceMapOutputWithContext

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. One of `4`, `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 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. One of `4`, `6`.
	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. One of `4`, `6`.

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`, `hybrid-bonded`, `layer2-individual`
	// and `layer2-bonded`.
	Type pulumi.StringOutput `pulumi:"type"`
}

## Example Usage ```go package main

import (

"github.com/equinix/pulumi-equinix/sdk/go/equinix/metal"
"github.com/pulumi/pulumi/sdk/v3/go/pulumi"
"github.com/pulumi/pulumi/sdk/v3/go/pulumi/config"

)

func main() {
	pulumi.Run(func(ctx *pulumi.Context) error {
		cfg := config.New(ctx, "")
		deviceId := cfg.Require("deviceId")
		networkType := "hybrid"
		if param := cfg.Get("networkType"); param != "" {
			networkType = param
		}
		deviceNetwork, err := metal.NewDeviceNetworkType(ctx, "deviceNetwork", &metal.DeviceNetworkTypeArgs{
			DeviceId: pulumi.String(deviceId),
			Type:     pulumi.String(networkType),
		})
		if err != nil {
			return err
		}
		ctx.Export("deviceNetworkId", deviceNetwork.ID())
		return nil
	})
}

```

## Import

This resource can also be imported using existing device ID:

```sh $ pulumi import equinix:metal/deviceNetworkType:DeviceNetworkType equinix_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

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`, `hybrid-bonded`, `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

type DeviceNetworkTypeArray []DeviceNetworkTypeInput

func (DeviceNetworkTypeArray) ElementType

func (DeviceNetworkTypeArray) ElementType() reflect.Type

func (DeviceNetworkTypeArray) ToDeviceNetworkTypeArrayOutput

func (i DeviceNetworkTypeArray) ToDeviceNetworkTypeArrayOutput() DeviceNetworkTypeArrayOutput

func (DeviceNetworkTypeArray) ToDeviceNetworkTypeArrayOutputWithContext

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

type DeviceNetworkTypeArrayInput

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

type DeviceNetworkTypeArrayOutput struct{ *pulumi.OutputState }

func (DeviceNetworkTypeArrayOutput) ElementType

func (DeviceNetworkTypeArrayOutput) Index

func (DeviceNetworkTypeArrayOutput) ToDeviceNetworkTypeArrayOutput

func (o DeviceNetworkTypeArrayOutput) ToDeviceNetworkTypeArrayOutput() DeviceNetworkTypeArrayOutput

func (DeviceNetworkTypeArrayOutput) ToDeviceNetworkTypeArrayOutputWithContext

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

type DeviceNetworkTypeInput

type DeviceNetworkTypeInput interface {
	pulumi.Input

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

type DeviceNetworkTypeMap

type DeviceNetworkTypeMap map[string]DeviceNetworkTypeInput

func (DeviceNetworkTypeMap) ElementType

func (DeviceNetworkTypeMap) ElementType() reflect.Type

func (DeviceNetworkTypeMap) ToDeviceNetworkTypeMapOutput

func (i DeviceNetworkTypeMap) ToDeviceNetworkTypeMapOutput() DeviceNetworkTypeMapOutput

func (DeviceNetworkTypeMap) ToDeviceNetworkTypeMapOutputWithContext

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

type DeviceNetworkTypeMapInput

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

type DeviceNetworkTypeMapOutput struct{ *pulumi.OutputState }

func (DeviceNetworkTypeMapOutput) ElementType

func (DeviceNetworkTypeMapOutput) ElementType() reflect.Type

func (DeviceNetworkTypeMapOutput) MapIndex

func (DeviceNetworkTypeMapOutput) ToDeviceNetworkTypeMapOutput

func (o DeviceNetworkTypeMapOutput) ToDeviceNetworkTypeMapOutput() DeviceNetworkTypeMapOutput

func (DeviceNetworkTypeMapOutput) ToDeviceNetworkTypeMapOutputWithContext

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

type DeviceNetworkTypeOutput

type DeviceNetworkTypeOutput struct{ *pulumi.OutputState }

func (DeviceNetworkTypeOutput) DeviceId

The ID of the device on which the network type should be set.

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

Network type to set. Must be one of `layer3`, `hybrid`, `hybrid-bonded`, `layer2-individual` and `layer2-bonded`.

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`, `hybrid-bonded`, `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) AccessPrivateIpv4

func (o DeviceOutput) AccessPrivateIpv4() pulumi.StringOutput

The ipv4 private IP assigned to the device.

func (DeviceOutput) AccessPublicIpv4

func (o DeviceOutput) AccessPublicIpv4() pulumi.StringOutput

The ipv4 maintenance IP assigned to the device.

func (DeviceOutput) AccessPublicIpv6

func (o DeviceOutput) AccessPublicIpv6() pulumi.StringOutput

The ipv6 maintenance IP assigned to the device.

func (DeviceOutput) AlwaysPxe

func (o DeviceOutput) AlwaysPxe() pulumi.BoolPtrOutput

If true, a device with OS `customIpxe` will continue to boot via iPXE on reboots.

func (DeviceOutput) Behavior

Behavioral overrides that change how the resource handles certain attribute updates. See Behavior below for more details.

func (DeviceOutput) BillingCycle

func (o DeviceOutput) BillingCycle() pulumi.StringOutput

monthly or hourly

func (DeviceOutput) Created

func (o DeviceOutput) Created() pulumi.StringOutput

The timestamp for when the device was created.

func (DeviceOutput) CustomData

func (o DeviceOutput) CustomData() pulumi.StringPtrOutput

A string of the desired Custom Data for the device. By default, changing this attribute will cause the provider to destroy and recreate your device. If `reinstall` is specified or `behavior.allow_changes` includes `"customData"`, the device will be updated in-place instead of recreated.

func (DeviceOutput) DeployedFacility deprecated

func (o DeviceOutput) DeployedFacility() pulumi.StringOutput

(**Deprecated**) The facility where the device is deployed. Use metro instead; read the facility to metro migration guide

Deprecated: Use metro instead of facility. For more information, read the migration guide: https://registry.terraform.io/providers/equinix/equinix/latest/docs/guides/migration_guide_facilities_to_metros_devices

func (DeviceOutput) DeployedHardwareReservationId

func (o DeviceOutput) DeployedHardwareReservationId() pulumi.StringOutput

ID of hardware reservation where this device was deployed. It is useful when using the `next-available` hardware reservation.

func (DeviceOutput) Description

func (o DeviceOutput) Description() pulumi.StringPtrOutput

The device description.

func (DeviceOutput) ElementType

func (DeviceOutput) ElementType() reflect.Type

func (DeviceOutput) Facilities deprecated

func (o DeviceOutput) Facilities() pulumi.StringArrayOutput

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. Conflicts with `metro`. Use metro instead; read the facility to metro migration guide

Deprecated: Use metro instead of facilities. For more information, read the migration guide: https://registry.terraform.io/providers/equinix/equinix/latest/docs/guides/migration_guide_facilities_to_metros_devices

func (DeviceOutput) ForceDetachVolumes

func (o DeviceOutput) ForceDetachVolumes() pulumi.BoolPtrOutput

Delete device even if it has volumes attached. Only applies for destroy action.

func (DeviceOutput) HardwareReservationId

func (o DeviceOutput) HardwareReservationId() pulumi.StringPtrOutput

The UUID of the hardware reservation where you want this device deployed, or `next-available` if you want to pick your next available reservation automatically. Changing this from a reservation UUID to `next-available` will re-create the device in another reservation. Please be careful when using hardware reservation UUID and `next-available` together for the same pool of reservations. It might happen that the reservation which Equinix Metal API will pick as `next-available` is the reservation which you refer with UUID in another metal.Device resource. If that happens, and the metal.Device with the UUID is created later, resource creation will fail because the reservation is already in use (by the resource created with `next-available`). To workaround this, have the `next-available` resource explicitly dependOn the resource with hardware reservation UUID, so that the latter is created first. For more details, see issue #176.

func (DeviceOutput) Hostname

func (o DeviceOutput) Hostname() pulumi.StringOutput

The device hostname used in deployments taking advantage of Layer3 DHCP or metadata service configuration.

func (DeviceOutput) IpAddresses

func (o DeviceOutput) IpAddresses() DeviceIpAddressArrayOutput

A list of IP address types for the device. See IP address below for more details.

func (DeviceOutput) IpxeScriptUrl

func (o DeviceOutput) IpxeScriptUrl() pulumi.StringPtrOutput

URL pointing to a hosted iPXE script. More information is in the [Custom iPXE](https://metal.equinix.com/developers/docs/servers/custom-ipxe/) doc.

func (DeviceOutput) Locked

func (o DeviceOutput) Locked() pulumi.BoolOutput

Whether the device is locked or unlocked. Locking a device prevents you from deleting or reinstalling the device or performing a firmware update on the device, and it prevents an instance with a termination time set from being reclaimed, even if the termination time was reached

func (DeviceOutput) Metro

Metro area for the new device. Conflicts with `facilities`.

func (DeviceOutput) Network

The device's private and public IP (v4 and v6) network details. See Network Attribute below for more details.

func (DeviceOutput) NetworkType deprecated

func (o DeviceOutput) NetworkType() pulumi.StringOutput

(Deprecated) Network type of a device, used in [Layer 2 networking](https://metal.equinix.com/developers/docs/networking/layer2/). Since this attribute is deprecated you should handle Network Type with one of equinix_metal_port, metal.DeviceNetworkType resources or metal.Port datasource. See networkTypes guide for more info.

Deprecated: You should handle Network Type with one of 'equinix_metal_port' or 'equinix_metal_device_network_type' resources. See section 'Guides' for more info

func (DeviceOutput) OperatingSystem

func (o DeviceOutput) OperatingSystem() pulumi.StringOutput

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.

func (DeviceOutput) Plan

func (o DeviceOutput) Plan() pulumi.StringOutput

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.

func (DeviceOutput) Ports

List of ports assigned to the device. See Ports Attribute below for more details.

func (DeviceOutput) ProjectId

func (o DeviceOutput) ProjectId() pulumi.StringOutput

The ID of the project in which to create the device

func (DeviceOutput) ProjectSshKeyIds

func (o DeviceOutput) ProjectSshKeyIds() pulumi.StringArrayOutput

Array of IDs of the project SSH keys which should be added to the device. If you specify this array, only the listed project SSH keys (and any SSH keys for the users specified in user_ssh_key_ids) will be added. If no SSH keys are specified (both userSshKeysIds and projectSshKeyIds are empty lists or omitted), all parent project keys, parent project members keys and organization members keys will be included. Project SSH keys can be created with the metal.ProjectSshKey resource.

func (DeviceOutput) Reinstall

func (o DeviceOutput) Reinstall() DeviceReinstallPtrOutput

Whether the device should be reinstalled instead of destroyed when modifying user_data, custom_data, or operating system. See Reinstall below for more details.

func (DeviceOutput) RootPassword

func (o DeviceOutput) RootPassword() pulumi.StringOutput

Root password to the server (disabled after 24 hours).

func (DeviceOutput) SosHostname

func (o DeviceOutput) SosHostname() pulumi.StringOutput

The hostname to use for [Serial over SSH](https://deploy.equinix.com/developers/docs/metal/resilience-recovery/serial-over-ssh/) access to the device

func (DeviceOutput) SshKeyIds

func (o DeviceOutput) SshKeyIds() pulumi.StringArrayOutput

List of IDs of SSH keys deployed in the device, can be both user and project SSH keys.

func (DeviceOutput) State

func (o DeviceOutput) State() pulumi.StringOutput

The status of the device.

func (DeviceOutput) Storage

func (o DeviceOutput) Storage() pulumi.StringPtrOutput

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

func (DeviceOutput) Tags

Tags attached to the device.

func (DeviceOutput) TerminationTime

func (o DeviceOutput) TerminationTime() pulumi.StringPtrOutput

Timestamp for device termination. For example `2021-09-03T16:32:00+03:00`. If you don't supply timezone info, timestamp is assumed to be in UTC.

func (DeviceOutput) ToDeviceOutput

func (o DeviceOutput) ToDeviceOutput() DeviceOutput

func (DeviceOutput) ToDeviceOutputWithContext

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

func (DeviceOutput) Updated

func (o DeviceOutput) Updated() pulumi.StringOutput

The timestamp for the last time the device was updated.

func (DeviceOutput) UserData

func (o DeviceOutput) UserData() pulumi.StringPtrOutput

A string of the desired User Data for the device. By default, changing this attribute will cause the provider to destroy and recreate your device. If `reinstall` is specified or `behavior.allow_changes` includes `"userData"`, the device will be updated in-place instead of recreated.

func (DeviceOutput) UserSshKeyIds

func (o DeviceOutput) UserSshKeyIds() pulumi.StringArrayOutput

Array of IDs of the users whose SSH keys should be added to the device. If you specify this array, only the listed users' SSH keys (and any project SSH keys specified in project_ssh_key_ids) will be added. If no SSH keys are specified (both userSshKeysIds and projectSshKeyIds are empty lists or omitted), all parent project keys, parent project members keys and organization members keys will be included. User SSH keys can be created with the metal.SshKey resource.

func (DeviceOutput) WaitForReservationDeprovision

func (o DeviceOutput) WaitForReservationDeprovision() pulumi.BoolPtrOutput

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

type DevicePort

type DevicePort 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"`
	// 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.
	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.

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 DeviceReinstall

type DeviceReinstall struct {
	// Whether the OS disk should be filled with `00h` bytes before reinstall.
	// Defaults to `false`.
	DeprovisionFast *bool `pulumi:"deprovisionFast"`
	// Whether the provider should favour reinstall over destroy and create. Defaults to
	// `false`.
	Enabled *bool `pulumi:"enabled"`
	// Whether the non-OS disks should be kept or wiped during reinstall.
	// Defaults to `false`.
	PreserveData *bool `pulumi:"preserveData"`
}

type DeviceReinstallArgs

type DeviceReinstallArgs struct {
	// Whether the OS disk should be filled with `00h` bytes before reinstall.
	// Defaults to `false`.
	DeprovisionFast pulumi.BoolPtrInput `pulumi:"deprovisionFast"`
	// Whether the provider should favour reinstall over destroy and create. Defaults to
	// `false`.
	Enabled pulumi.BoolPtrInput `pulumi:"enabled"`
	// Whether the non-OS disks should be kept or wiped during reinstall.
	// Defaults to `false`.
	PreserveData pulumi.BoolPtrInput `pulumi:"preserveData"`
}

func (DeviceReinstallArgs) ElementType

func (DeviceReinstallArgs) ElementType() reflect.Type

func (DeviceReinstallArgs) ToDeviceReinstallOutput

func (i DeviceReinstallArgs) ToDeviceReinstallOutput() DeviceReinstallOutput

func (DeviceReinstallArgs) ToDeviceReinstallOutputWithContext

func (i DeviceReinstallArgs) ToDeviceReinstallOutputWithContext(ctx context.Context) DeviceReinstallOutput

func (DeviceReinstallArgs) ToDeviceReinstallPtrOutput

func (i DeviceReinstallArgs) ToDeviceReinstallPtrOutput() DeviceReinstallPtrOutput

func (DeviceReinstallArgs) ToDeviceReinstallPtrOutputWithContext

func (i DeviceReinstallArgs) ToDeviceReinstallPtrOutputWithContext(ctx context.Context) DeviceReinstallPtrOutput

type DeviceReinstallInput

type DeviceReinstallInput interface {
	pulumi.Input

	ToDeviceReinstallOutput() DeviceReinstallOutput
	ToDeviceReinstallOutputWithContext(context.Context) DeviceReinstallOutput
}

DeviceReinstallInput is an input type that accepts DeviceReinstallArgs and DeviceReinstallOutput values. You can construct a concrete instance of `DeviceReinstallInput` via:

DeviceReinstallArgs{...}

type DeviceReinstallOutput

type DeviceReinstallOutput struct{ *pulumi.OutputState }

func (DeviceReinstallOutput) DeprovisionFast

func (o DeviceReinstallOutput) DeprovisionFast() pulumi.BoolPtrOutput

Whether the OS disk should be filled with `00h` bytes before reinstall. Defaults to `false`.

func (DeviceReinstallOutput) ElementType

func (DeviceReinstallOutput) ElementType() reflect.Type

func (DeviceReinstallOutput) Enabled

Whether the provider should favour reinstall over destroy and create. Defaults to `false`.

func (DeviceReinstallOutput) PreserveData

func (o DeviceReinstallOutput) PreserveData() pulumi.BoolPtrOutput

Whether the non-OS disks should be kept or wiped during reinstall. Defaults to `false`.

func (DeviceReinstallOutput) ToDeviceReinstallOutput

func (o DeviceReinstallOutput) ToDeviceReinstallOutput() DeviceReinstallOutput

func (DeviceReinstallOutput) ToDeviceReinstallOutputWithContext

func (o DeviceReinstallOutput) ToDeviceReinstallOutputWithContext(ctx context.Context) DeviceReinstallOutput

func (DeviceReinstallOutput) ToDeviceReinstallPtrOutput

func (o DeviceReinstallOutput) ToDeviceReinstallPtrOutput() DeviceReinstallPtrOutput

func (DeviceReinstallOutput) ToDeviceReinstallPtrOutputWithContext

func (o DeviceReinstallOutput) ToDeviceReinstallPtrOutputWithContext(ctx context.Context) DeviceReinstallPtrOutput

type DeviceReinstallPtrInput

type DeviceReinstallPtrInput interface {
	pulumi.Input

	ToDeviceReinstallPtrOutput() DeviceReinstallPtrOutput
	ToDeviceReinstallPtrOutputWithContext(context.Context) DeviceReinstallPtrOutput
}

DeviceReinstallPtrInput is an input type that accepts DeviceReinstallArgs, DeviceReinstallPtr and DeviceReinstallPtrOutput values. You can construct a concrete instance of `DeviceReinstallPtrInput` via:

        DeviceReinstallArgs{...}

or:

        nil

type DeviceReinstallPtrOutput

type DeviceReinstallPtrOutput struct{ *pulumi.OutputState }

func (DeviceReinstallPtrOutput) DeprovisionFast

func (o DeviceReinstallPtrOutput) DeprovisionFast() pulumi.BoolPtrOutput

Whether the OS disk should be filled with `00h` bytes before reinstall. Defaults to `false`.

func (DeviceReinstallPtrOutput) Elem

func (DeviceReinstallPtrOutput) ElementType

func (DeviceReinstallPtrOutput) ElementType() reflect.Type

func (DeviceReinstallPtrOutput) Enabled

Whether the provider should favour reinstall over destroy and create. Defaults to `false`.

func (DeviceReinstallPtrOutput) PreserveData

Whether the non-OS disks should be kept or wiped during reinstall. Defaults to `false`.

func (DeviceReinstallPtrOutput) ToDeviceReinstallPtrOutput

func (o DeviceReinstallPtrOutput) ToDeviceReinstallPtrOutput() DeviceReinstallPtrOutput

func (DeviceReinstallPtrOutput) ToDeviceReinstallPtrOutputWithContext

func (o DeviceReinstallPtrOutput) ToDeviceReinstallPtrOutputWithContext(ctx context.Context) DeviceReinstallPtrOutput

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
	// Behavioral overrides that change how the resource handles certain attribute updates. See Behavior below for more details.
	Behavior DeviceBehaviorPtrInput
	// 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.  By default, changing this attribute will cause the provider to destroy and recreate your device.  If `reinstall` is specified or `behavior.allow_changes` includes `"customData"`, the device will be updated in-place instead of recreated.
	CustomData pulumi.StringPtrInput
	// (**Deprecated**) The facility where the device is deployed. Use metro instead; read the facility to metro migration guide
	//
	// Deprecated: Use metro instead of facility.  For more information, read the migration guide: https://registry.terraform.io/providers/equinix/equinix/latest/docs/guides/migration_guide_facilities_to_metros_devices
	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
	// The device description.
	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. Conflicts with `metro`.  Use metro instead; read the facility to metro migration guide
	//
	// Deprecated: Use metro instead of facilities.  For more information, read the migration guide: https://registry.terraform.io/providers/equinix/equinix/latest/docs/guides/migration_guide_facilities_to_metros_devices
	Facilities pulumi.StringArrayInput
	// Delete device even if it has volumes attached. Only applies
	// for destroy action.
	ForceDetachVolumes pulumi.BoolPtrInput
	// The UUID of the hardware reservation where you want this
	// device deployed, or `next-available` if you want to pick your next available reservation
	// automatically. Changing this from a reservation UUID to `next-available` will re-create the device
	// in another reservation. Please be careful when using hardware reservation UUID and `next-available`
	// together for the same pool of reservations. It might happen that the reservation which Equinix
	// Metal API will pick as `next-available` is the reservation which you refer with UUID in another
	// metal.Device resource. If that happens, and the metal.Device with the UUID is
	// created later, resource creation will fail because the reservation is already in use (by the
	// resource created with `next-available`). To workaround this, have the `next-available` resource
	// explicitly dependOn
	// the resource with hardware reservation UUID, so that the latter is created first. For more details,
	// see issue #176.
	HardwareReservationId pulumi.StringPtrInput
	// The device hostname used in deployments taking advantage of Layer3 DHCP
	// or metadata service configuration.
	Hostname pulumi.StringPtrInput
	// A list of IP address types for the device. See
	// IP address below for more details.
	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 or unlocked. Locking a device prevents you from deleting or reinstalling the device or performing a firmware update on the device, and it prevents an instance with a termination time set from being reclaimed, even if the termination time was reached
	Locked pulumi.BoolPtrInput
	// Metro area for the new device. Conflicts with `facilities`.
	Metro pulumi.StringPtrInput
	// The device's private and public IP (v4 and v6) network details. See
	// Network Attribute below for more details.
	Network DeviceNetworkArrayInput
	// (Deprecated) Network type of a device, used in
	// [Layer 2 networking](https://metal.equinix.com/developers/docs/networking/layer2/). Since this
	// attribute is deprecated you should handle Network Type with one of
	// equinix_metal_port,
	// metal.DeviceNetworkType resources or
	// metal.Port datasource.
	// See networkTypes guide for more info.
	//
	// Deprecated: You should handle Network Type with one of 'equinix_metal_port' or 'equinix_metal_device_network_type' resources. See section 'Guides' for more info
	NetworkType 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.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
	// List of ports assigned to the device. See Ports Attribute below for
	// more details.
	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 specify this array, only the listed project SSH keys (and any SSH keys for the users specified in user_ssh_key_ids) will be added. If no SSH keys are specified (both userSshKeysIds and projectSshKeyIds are empty lists or omitted), all parent project keys, parent project members keys and organization members keys will be included.  Project SSH keys can be created with the metal.ProjectSshKey resource.
	ProjectSshKeyIds pulumi.StringArrayInput
	// Whether the device should be reinstalled instead of destroyed when
	// modifying user_data, custom_data, or operating system. See Reinstall below for more
	// details.
	Reinstall DeviceReinstallPtrInput
	// Root password to the server (disabled after 24 hours).
	RootPassword pulumi.StringPtrInput
	// The hostname to use for [Serial over SSH](https://deploy.equinix.com/developers/docs/metal/resilience-recovery/serial-over-ssh/) access to the device
	SosHostname 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
	// Timestamp for device termination. For example `2021-09-03T16:32:00+03:00`.
	// If you don't supply timezone info, timestamp is assumed to be in UTC.
	TerminationTime pulumi.StringPtrInput
	// The timestamp for the last time the device was updated.
	Updated pulumi.StringPtrInput
	// A string of the desired User Data for the device.  By default, changing this attribute will cause the provider to destroy and recreate your device.  If `reinstall` is specified or `behavior.allow_changes` includes `"userData"`, the device will be updated in-place instead of recreated.
	UserData pulumi.StringPtrInput
	// Array of IDs of the users whose SSH keys should be added to the device. If you specify this array, only the listed users' SSH keys (and any project SSH keys specified in project_ssh_key_ids) will be added. If no SSH keys are specified (both userSshKeysIds and projectSshKeyIds are empty lists or omitted), all parent project keys, parent project members keys and organization members keys will be included. User SSH keys can be created with the metal.SshKey resource.
	UserSshKeyIds pulumi.StringArrayInput
	// 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 string

See https://deploy.equinix.com/developers/api/metal/#tag/Facilities/operation/findFacilities

func (Facility) ElementType

func (Facility) ElementType() reflect.Type

func (Facility) ToFacilityOutput

func (e Facility) ToFacilityOutput() FacilityOutput

func (Facility) ToFacilityOutputWithContext

func (e Facility) ToFacilityOutputWithContext(ctx context.Context) FacilityOutput

func (Facility) ToFacilityPtrOutput

func (e Facility) ToFacilityPtrOutput() FacilityPtrOutput

func (Facility) ToFacilityPtrOutputWithContext

func (e Facility) ToFacilityPtrOutputWithContext(ctx context.Context) FacilityPtrOutput

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 FacilityInput

type FacilityInput interface {
	pulumi.Input

	ToFacilityOutput() FacilityOutput
	ToFacilityOutputWithContext(context.Context) FacilityOutput
}

FacilityInput is an input type that accepts values of the Facility enum A concrete instance of `FacilityInput` can be one of the following:

FacilityAM2
FacilityAM6
FacilityMA5
FacilityNRT1
FacilityPA4
FacilitySK2
FacilityME2
FacilityHK2
FacilityTY11
FacilityLA4
FacilityDA6
FacilityDA11
FacilityDA3
FacilitySP4
FacilityMT1
FacilitySV16
FacilitySJC1
FacilityFRA2
FacilityFRA8
FacilityNY5
FacilityNY6
FacilityNY7
FacilityCH3
FacilitySL1
FacilitySY5
FacilityOS3
FacilityLD7
FacilityDC10
FacilityAMS1
FacilitySG4
FacilitySE4
FacilitySY4
FacilityAT4
FacilityDFW2
FacilityTR2
FacilityDC13
FacilityHE7
FacilityEWR1
FacilitySG5
FacilitySG1
FacilityMD2
FacilitySV15

type FacilityOutput

type FacilityOutput struct{ *pulumi.OutputState }

func (FacilityOutput) ElementType

func (FacilityOutput) ElementType() reflect.Type

func (FacilityOutput) ToFacilityOutput

func (o FacilityOutput) ToFacilityOutput() FacilityOutput

func (FacilityOutput) ToFacilityOutputWithContext

func (o FacilityOutput) ToFacilityOutputWithContext(ctx context.Context) FacilityOutput

func (FacilityOutput) ToFacilityPtrOutput

func (o FacilityOutput) ToFacilityPtrOutput() FacilityPtrOutput

func (FacilityOutput) ToFacilityPtrOutputWithContext

func (o FacilityOutput) ToFacilityPtrOutputWithContext(ctx context.Context) FacilityPtrOutput

func (FacilityOutput) ToStringOutput

func (o FacilityOutput) ToStringOutput() pulumi.StringOutput

func (FacilityOutput) ToStringOutputWithContext

func (o FacilityOutput) ToStringOutputWithContext(ctx context.Context) pulumi.StringOutput

func (FacilityOutput) ToStringPtrOutput

func (o FacilityOutput) ToStringPtrOutput() pulumi.StringPtrOutput

func (FacilityOutput) ToStringPtrOutputWithContext

func (o FacilityOutput) ToStringPtrOutputWithContext(ctx context.Context) pulumi.StringPtrOutput

type FacilityPtrInput

type FacilityPtrInput interface {
	pulumi.Input

	ToFacilityPtrOutput() FacilityPtrOutput
	ToFacilityPtrOutputWithContext(context.Context) FacilityPtrOutput
}

func FacilityPtr

func FacilityPtr(v string) FacilityPtrInput

type FacilityPtrOutput

type FacilityPtrOutput struct{ *pulumi.OutputState }

func (FacilityPtrOutput) Elem

func (FacilityPtrOutput) ElementType

func (FacilityPtrOutput) ElementType() reflect.Type

func (FacilityPtrOutput) ToFacilityPtrOutput

func (o FacilityPtrOutput) ToFacilityPtrOutput() FacilityPtrOutput

func (FacilityPtrOutput) ToFacilityPtrOutputWithContext

func (o FacilityPtrOutput) ToFacilityPtrOutputWithContext(ctx context.Context) FacilityPtrOutput

func (FacilityPtrOutput) ToStringPtrOutput

func (o FacilityPtrOutput) ToStringPtrOutput() pulumi.StringPtrOutput

func (FacilityPtrOutput) ToStringPtrOutputWithContext

func (o FacilityPtrOutput) ToStringPtrOutputWithContext(ctx context.Context) pulumi.StringPtrOutput

type Gateway

type Gateway struct {
	pulumi.CustomResourceState

	// UUID of Public or VRF IP Reservation to associate with the gateway, the
	// reservation must be in the same metro as the VLAN, conflicts with `privateIpv4SubnetSize`.
	IpReservationId pulumi.StringOutput `pulumi:"ipReservationId"`
	// Size of the private IPv4 subnet to create for this metal
	// gateway, must be one of `8`, `16`, `32`, `64`, `128`. Conflicts with `ipReservationId`.
	PrivateIpv4SubnetSize pulumi.IntOutput `pulumi:"privateIpv4SubnetSize"`
	// UUID of the project where the gateway is scoped to.
	ProjectId pulumi.StringOutput `pulumi:"projectId"`
	// Status of the gateway resource.
	State    pulumi.StringOutput      `pulumi:"state"`
	Timeouts GatewayTimeoutsPtrOutput `pulumi:"timeouts"`
	// UUID of the VLAN where the gateway is scoped to.
	VlanId pulumi.StringOutput `pulumi:"vlanId"`
	// UUID of the VRF associated with the IP Reservation
	VrfId pulumi.StringOutput `pulumi:"vrfId"`
}

Use this resource to create Metal Gateway resources in Equinix Metal.

> VRF features are not generally available. The interfaces related to VRF resources may change ahead of general availability.

## Example Usage ```go package main

import (

"github.com/equinix/pulumi-equinix/sdk/go/equinix/metal"
"github.com/pulumi/pulumi/sdk/v3/go/pulumi"
"github.com/pulumi/pulumi/sdk/v3/go/pulumi/config"

)

func main() {
	pulumi.Run(func(ctx *pulumi.Context) error {
		cfg := config.New(ctx, "")
		projectId := cfg.Require("projectId")
		vlanId := cfg.Require("vlanId")
		gateway, err := metal.NewGateway(ctx, "gateway", &metal.GatewayArgs{
			ProjectId:             pulumi.String(projectId),
			VlanId:                pulumi.String(vlanId),
			PrivateIpv4SubnetSize: pulumi.Int(8),
		})
		if err != nil {
			return err
		}
		ctx.Export("gatewayState", gateway.State)
		return nil
	})
}

```

func GetGateway

func GetGateway(ctx *pulumi.Context,
	name string, id pulumi.IDInput, state *GatewayState, opts ...pulumi.ResourceOption) (*Gateway, error)

GetGateway gets an existing Gateway 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 NewGateway

func NewGateway(ctx *pulumi.Context,
	name string, args *GatewayArgs, opts ...pulumi.ResourceOption) (*Gateway, error)

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

func (*Gateway) ElementType

func (*Gateway) ElementType() reflect.Type

func (*Gateway) ToGatewayOutput

func (i *Gateway) ToGatewayOutput() GatewayOutput

func (*Gateway) ToGatewayOutputWithContext

func (i *Gateway) ToGatewayOutputWithContext(ctx context.Context) GatewayOutput

type GatewayArgs

type GatewayArgs struct {
	// UUID of Public or VRF IP Reservation to associate with the gateway, the
	// reservation must be in the same metro as the VLAN, conflicts with `privateIpv4SubnetSize`.
	IpReservationId pulumi.StringPtrInput
	// Size of the private IPv4 subnet to create for this metal
	// gateway, must be one of `8`, `16`, `32`, `64`, `128`. Conflicts with `ipReservationId`.
	PrivateIpv4SubnetSize pulumi.IntPtrInput
	// UUID of the project where the gateway is scoped to.
	ProjectId pulumi.StringInput
	Timeouts  GatewayTimeoutsPtrInput
	// UUID of the VLAN where the gateway is scoped to.
	VlanId pulumi.StringInput
}

The set of arguments for constructing a Gateway resource.

func (GatewayArgs) ElementType

func (GatewayArgs) ElementType() reflect.Type

type GatewayArray

type GatewayArray []GatewayInput

func (GatewayArray) ElementType

func (GatewayArray) ElementType() reflect.Type

func (GatewayArray) ToGatewayArrayOutput

func (i GatewayArray) ToGatewayArrayOutput() GatewayArrayOutput

func (GatewayArray) ToGatewayArrayOutputWithContext

func (i GatewayArray) ToGatewayArrayOutputWithContext(ctx context.Context) GatewayArrayOutput

type GatewayArrayInput

type GatewayArrayInput interface {
	pulumi.Input

	ToGatewayArrayOutput() GatewayArrayOutput
	ToGatewayArrayOutputWithContext(context.Context) GatewayArrayOutput
}

GatewayArrayInput is an input type that accepts GatewayArray and GatewayArrayOutput values. You can construct a concrete instance of `GatewayArrayInput` via:

GatewayArray{ GatewayArgs{...} }

type GatewayArrayOutput

type GatewayArrayOutput struct{ *pulumi.OutputState }

func (GatewayArrayOutput) ElementType

func (GatewayArrayOutput) ElementType() reflect.Type

func (GatewayArrayOutput) Index

func (GatewayArrayOutput) ToGatewayArrayOutput

func (o GatewayArrayOutput) ToGatewayArrayOutput() GatewayArrayOutput

func (GatewayArrayOutput) ToGatewayArrayOutputWithContext

func (o GatewayArrayOutput) ToGatewayArrayOutputWithContext(ctx context.Context) GatewayArrayOutput

type GatewayInput

type GatewayInput interface {
	pulumi.Input

	ToGatewayOutput() GatewayOutput
	ToGatewayOutputWithContext(ctx context.Context) GatewayOutput
}

type GatewayMap

type GatewayMap map[string]GatewayInput

func (GatewayMap) ElementType

func (GatewayMap) ElementType() reflect.Type

func (GatewayMap) ToGatewayMapOutput

func (i GatewayMap) ToGatewayMapOutput() GatewayMapOutput

func (GatewayMap) ToGatewayMapOutputWithContext

func (i GatewayMap) ToGatewayMapOutputWithContext(ctx context.Context) GatewayMapOutput

type GatewayMapInput

type GatewayMapInput interface {
	pulumi.Input

	ToGatewayMapOutput() GatewayMapOutput
	ToGatewayMapOutputWithContext(context.Context) GatewayMapOutput
}

GatewayMapInput is an input type that accepts GatewayMap and GatewayMapOutput values. You can construct a concrete instance of `GatewayMapInput` via:

GatewayMap{ "key": GatewayArgs{...} }

type GatewayMapOutput

type GatewayMapOutput struct{ *pulumi.OutputState }

func (GatewayMapOutput) ElementType

func (GatewayMapOutput) ElementType() reflect.Type

func (GatewayMapOutput) MapIndex

func (GatewayMapOutput) ToGatewayMapOutput

func (o GatewayMapOutput) ToGatewayMapOutput() GatewayMapOutput

func (GatewayMapOutput) ToGatewayMapOutputWithContext

func (o GatewayMapOutput) ToGatewayMapOutputWithContext(ctx context.Context) GatewayMapOutput

type GatewayOutput

type GatewayOutput struct{ *pulumi.OutputState }

func (GatewayOutput) ElementType

func (GatewayOutput) ElementType() reflect.Type

func (GatewayOutput) IpReservationId

func (o GatewayOutput) IpReservationId() pulumi.StringOutput

UUID of Public or VRF IP Reservation to associate with the gateway, the reservation must be in the same metro as the VLAN, conflicts with `privateIpv4SubnetSize`.

func (GatewayOutput) PrivateIpv4SubnetSize

func (o GatewayOutput) PrivateIpv4SubnetSize() pulumi.IntOutput

Size of the private IPv4 subnet to create for this metal gateway, must be one of `8`, `16`, `32`, `64`, `128`. Conflicts with `ipReservationId`.

func (GatewayOutput) ProjectId

func (o GatewayOutput) ProjectId() pulumi.StringOutput

UUID of the project where the gateway is scoped to.

func (GatewayOutput) State

func (o GatewayOutput) State() pulumi.StringOutput

Status of the gateway resource.

func (GatewayOutput) Timeouts

func (GatewayOutput) ToGatewayOutput

func (o GatewayOutput) ToGatewayOutput() GatewayOutput

func (GatewayOutput) ToGatewayOutputWithContext

func (o GatewayOutput) ToGatewayOutputWithContext(ctx context.Context) GatewayOutput

func (GatewayOutput) VlanId

func (o GatewayOutput) VlanId() pulumi.StringOutput

UUID of the VLAN where the gateway is scoped to.

func (GatewayOutput) VrfId

func (o GatewayOutput) VrfId() pulumi.StringOutput

UUID of the VRF associated with the IP Reservation

type GatewayState

type GatewayState struct {
	// UUID of Public or VRF IP Reservation to associate with the gateway, the
	// reservation must be in the same metro as the VLAN, conflicts with `privateIpv4SubnetSize`.
	IpReservationId pulumi.StringPtrInput
	// Size of the private IPv4 subnet to create for this metal
	// gateway, must be one of `8`, `16`, `32`, `64`, `128`. Conflicts with `ipReservationId`.
	PrivateIpv4SubnetSize pulumi.IntPtrInput
	// UUID of the project where the gateway is scoped to.
	ProjectId pulumi.StringPtrInput
	// Status of the gateway resource.
	State    pulumi.StringPtrInput
	Timeouts GatewayTimeoutsPtrInput
	// UUID of the VLAN where the gateway is scoped to.
	VlanId pulumi.StringPtrInput
	// UUID of the VRF associated with the IP Reservation
	VrfId pulumi.StringPtrInput
}

func (GatewayState) ElementType

func (GatewayState) ElementType() reflect.Type

type GatewayTimeouts

type GatewayTimeouts struct {
	// A string that can be [parsed as a duration](https://pkg.go.dev/time#ParseDuration) consisting of numbers and unit suffixes, such as "30s" or "2h45m". Valid time units are "s" (seconds), "m" (minutes), "h" (hours). Setting a timeout for a Delete operation is only applicable if changes are saved into state before the destroy operation occurs.
	Delete *string `pulumi:"delete"`
}

type GatewayTimeoutsArgs

type GatewayTimeoutsArgs struct {
	// A string that can be [parsed as a duration](https://pkg.go.dev/time#ParseDuration) consisting of numbers and unit suffixes, such as "30s" or "2h45m". Valid time units are "s" (seconds), "m" (minutes), "h" (hours). Setting a timeout for a Delete operation is only applicable if changes are saved into state before the destroy operation occurs.
	Delete pulumi.StringPtrInput `pulumi:"delete"`
}

func (GatewayTimeoutsArgs) ElementType

func (GatewayTimeoutsArgs) ElementType() reflect.Type

func (GatewayTimeoutsArgs) ToGatewayTimeoutsOutput

func (i GatewayTimeoutsArgs) ToGatewayTimeoutsOutput() GatewayTimeoutsOutput

func (GatewayTimeoutsArgs) ToGatewayTimeoutsOutputWithContext

func (i GatewayTimeoutsArgs) ToGatewayTimeoutsOutputWithContext(ctx context.Context) GatewayTimeoutsOutput

func (GatewayTimeoutsArgs) ToGatewayTimeoutsPtrOutput

func (i GatewayTimeoutsArgs) ToGatewayTimeoutsPtrOutput() GatewayTimeoutsPtrOutput

func (GatewayTimeoutsArgs) ToGatewayTimeoutsPtrOutputWithContext

func (i GatewayTimeoutsArgs) ToGatewayTimeoutsPtrOutputWithContext(ctx context.Context) GatewayTimeoutsPtrOutput

type GatewayTimeoutsInput

type GatewayTimeoutsInput interface {
	pulumi.Input

	ToGatewayTimeoutsOutput() GatewayTimeoutsOutput
	ToGatewayTimeoutsOutputWithContext(context.Context) GatewayTimeoutsOutput
}

GatewayTimeoutsInput is an input type that accepts GatewayTimeoutsArgs and GatewayTimeoutsOutput values. You can construct a concrete instance of `GatewayTimeoutsInput` via:

GatewayTimeoutsArgs{...}

type GatewayTimeoutsOutput

type GatewayTimeoutsOutput struct{ *pulumi.OutputState }

func (GatewayTimeoutsOutput) Delete

A string that can be [parsed as a duration](https://pkg.go.dev/time#ParseDuration) consisting of numbers and unit suffixes, such as "30s" or "2h45m". Valid time units are "s" (seconds), "m" (minutes), "h" (hours). Setting a timeout for a Delete operation is only applicable if changes are saved into state before the destroy operation occurs.

func (GatewayTimeoutsOutput) ElementType

func (GatewayTimeoutsOutput) ElementType() reflect.Type

func (GatewayTimeoutsOutput) ToGatewayTimeoutsOutput

func (o GatewayTimeoutsOutput) ToGatewayTimeoutsOutput() GatewayTimeoutsOutput

func (GatewayTimeoutsOutput) ToGatewayTimeoutsOutputWithContext

func (o GatewayTimeoutsOutput) ToGatewayTimeoutsOutputWithContext(ctx context.Context) GatewayTimeoutsOutput

func (GatewayTimeoutsOutput) ToGatewayTimeoutsPtrOutput

func (o GatewayTimeoutsOutput) ToGatewayTimeoutsPtrOutput() GatewayTimeoutsPtrOutput

func (GatewayTimeoutsOutput) ToGatewayTimeoutsPtrOutputWithContext

func (o GatewayTimeoutsOutput) ToGatewayTimeoutsPtrOutputWithContext(ctx context.Context) GatewayTimeoutsPtrOutput

type GatewayTimeoutsPtrInput

type GatewayTimeoutsPtrInput interface {
	pulumi.Input

	ToGatewayTimeoutsPtrOutput() GatewayTimeoutsPtrOutput
	ToGatewayTimeoutsPtrOutputWithContext(context.Context) GatewayTimeoutsPtrOutput
}

GatewayTimeoutsPtrInput is an input type that accepts GatewayTimeoutsArgs, GatewayTimeoutsPtr and GatewayTimeoutsPtrOutput values. You can construct a concrete instance of `GatewayTimeoutsPtrInput` via:

        GatewayTimeoutsArgs{...}

or:

        nil

type GatewayTimeoutsPtrOutput

type GatewayTimeoutsPtrOutput struct{ *pulumi.OutputState }

func (GatewayTimeoutsPtrOutput) Delete

A string that can be [parsed as a duration](https://pkg.go.dev/time#ParseDuration) consisting of numbers and unit suffixes, such as "30s" or "2h45m". Valid time units are "s" (seconds), "m" (minutes), "h" (hours). Setting a timeout for a Delete operation is only applicable if changes are saved into state before the destroy operation occurs.

func (GatewayTimeoutsPtrOutput) Elem

func (GatewayTimeoutsPtrOutput) ElementType

func (GatewayTimeoutsPtrOutput) ElementType() reflect.Type

func (GatewayTimeoutsPtrOutput) ToGatewayTimeoutsPtrOutput

func (o GatewayTimeoutsPtrOutput) ToGatewayTimeoutsPtrOutput() GatewayTimeoutsPtrOutput

func (GatewayTimeoutsPtrOutput) ToGatewayTimeoutsPtrOutputWithContext

func (o GatewayTimeoutsPtrOutput) ToGatewayTimeoutsPtrOutputWithContext(ctx context.Context) GatewayTimeoutsPtrOutput

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

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 GetDeviceBgpNeighborsOutputArgs

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

A collection of arguments for invoking getDeviceBgpNeighbors.

func (GetDeviceBgpNeighborsOutputArgs) ElementType

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 metal.BgpSession resource documentation.

## Example Usage

<!--Start PulumiCodeChooser --> ```go package main

import (

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

)

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

``` <!--End PulumiCodeChooser -->

type GetDeviceBgpNeighborsResultOutput

type GetDeviceBgpNeighborsResultOutput struct{ *pulumi.OutputState }

A collection of values returned by getDeviceBgpNeighbors.

func (GetDeviceBgpNeighborsResultOutput) BgpNeighbors

array of BGP neighbor records with attributes:

func (GetDeviceBgpNeighborsResultOutput) DeviceId

func (GetDeviceBgpNeighborsResultOutput) ElementType

func (GetDeviceBgpNeighborsResultOutput) Id

The provider-assigned unique ID for this managed resource.

func (GetDeviceBgpNeighborsResultOutput) ToGetDeviceBgpNeighborsResultOutput

func (o GetDeviceBgpNeighborsResultOutput) ToGetDeviceBgpNeighborsResultOutput() GetDeviceBgpNeighborsResultOutput

func (GetDeviceBgpNeighborsResultOutput) ToGetDeviceBgpNeighborsResultOutputWithContext

func (o GetDeviceBgpNeighborsResultOutput) ToGetDeviceBgpNeighborsResultOutputWithContext(ctx context.Context) GetDeviceBgpNeighborsResultOutput

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. One of `4`, `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. One of `4`, `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. One of `4`, `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 GetDevicesArgs

type GetDevicesArgs struct {
	// One or more attribute/values pairs to filter. List of atributes to filter can be found in the attribute reference of the `metal.Device` datasource.
	Filters []GetDevicesFilter `pulumi:"filters"`
	// ID of organization containing the devices.
	OrganizationId *string `pulumi:"organizationId"`
	// ID of project containing the devices. Exactly one of `projectId` and `organizationId` must be set.
	ProjectId *string `pulumi:"projectId"`
	// Search string to filter devices by hostname, description, short_id, reservation short_id, tags, plan name, plan slug, facility code, facility name, operating system name, operating system slug, IP addresses.
	Search *string          `pulumi:"search"`
	Sorts  []GetDevicesSort `pulumi:"sorts"`
}

A collection of arguments for invoking getDevices.

type GetDevicesDevice

type GetDevicesDevice 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"`
	// Device ID
	DeviceId string `pulumi:"deviceId"`
	// The facility where the device is deployed
	//
	// Deprecated: Use metro instead of facility.  For more information, read the migration guide: https://registry.terraform.io/providers/equinix/equinix/latest/docs/guides/migration_guide_facilities_to_metros_devices
	Facility string `pulumi:"facility"`
	// The id of hardware reservation which this device occupies
	HardwareReservationId string `pulumi:"hardwareReservationId"`
	// The device name
	Hostname      string `pulumi:"hostname"`
	IpxeScriptUrl string `pulumi:"ipxeScriptUrl"`
	// The metro where the device is deployed
	Metro string `pulumi:"metro"`
	// L2 network type of the device, one oflayer3, hybrid, layer2-individual, layer2-bonded
	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: ublic IPv4 at equinix_metal_device.name.network.0, IPv6 at equinix_metal_device.name.network.1 and private IPv4 at equinix_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).
	Networks []GetDevicesDeviceNetwork `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 []GetDevicesDevicePort `pulumi:"ports"`
	// ID of project containing the devices. Exactly one of `projectId` and `organizationId` must be set.
	ProjectId string `pulumi:"projectId"`
	// Root password to the server (if still available)
	RootPassword string `pulumi:"rootPassword"`
	// The hostname to use for [Serial over SSH](https://deploy.equinix.com/developers/docs/metal/resilience-recovery/serial-over-ssh/) access to the device
	SosHostname string `pulumi:"sosHostname"`
	// 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"`
}

type GetDevicesDeviceArgs

type GetDevicesDeviceArgs struct {
	// The ipv4 private IP assigned to the device
	AccessPrivateIpv4 pulumi.StringInput `pulumi:"accessPrivateIpv4"`
	// The ipv4 management IP assigned to the device
	AccessPublicIpv4 pulumi.StringInput `pulumi:"accessPublicIpv4"`
	// The ipv6 management IP assigned to the device
	AccessPublicIpv6 pulumi.StringInput `pulumi:"accessPublicIpv6"`
	AlwaysPxe        pulumi.BoolInput   `pulumi:"alwaysPxe"`
	// The billing cycle of the device (monthly or hourly)
	BillingCycle pulumi.StringInput `pulumi:"billingCycle"`
	// Description string for the device
	Description pulumi.StringInput `pulumi:"description"`
	// Device ID
	DeviceId pulumi.StringInput `pulumi:"deviceId"`
	// The facility where the device is deployed
	//
	// Deprecated: Use metro instead of facility.  For more information, read the migration guide: https://registry.terraform.io/providers/equinix/equinix/latest/docs/guides/migration_guide_facilities_to_metros_devices
	Facility pulumi.StringInput `pulumi:"facility"`
	// The id of hardware reservation which this device occupies
	HardwareReservationId pulumi.StringInput `pulumi:"hardwareReservationId"`
	// The device name
	Hostname      pulumi.StringInput `pulumi:"hostname"`
	IpxeScriptUrl pulumi.StringInput `pulumi:"ipxeScriptUrl"`
	// The metro where the device is deployed
	Metro pulumi.StringInput `pulumi:"metro"`
	// L2 network type of the device, one oflayer3, hybrid, layer2-individual, layer2-bonded
	NetworkType pulumi.StringInput `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: ublic IPv4 at equinix_metal_device.name.network.0, IPv6 at equinix_metal_device.name.network.1 and private IPv4 at equinix_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).
	Networks GetDevicesDeviceNetworkArrayInput `pulumi:"networks"`
	// The operating system running on the device
	OperatingSystem pulumi.StringInput `pulumi:"operatingSystem"`
	// The hardware config of the device
	Plan pulumi.StringInput `pulumi:"plan"`
	// Ports assigned to the device
	Ports GetDevicesDevicePortArrayInput `pulumi:"ports"`
	// ID of project containing the devices. Exactly one of `projectId` and `organizationId` must be set.
	ProjectId pulumi.StringInput `pulumi:"projectId"`
	// Root password to the server (if still available)
	RootPassword pulumi.StringInput `pulumi:"rootPassword"`
	// The hostname to use for [Serial over SSH](https://deploy.equinix.com/developers/docs/metal/resilience-recovery/serial-over-ssh/) access to the device
	SosHostname pulumi.StringInput `pulumi:"sosHostname"`
	// List of IDs of SSH keys deployed in the device, can be both user or project SSH keys
	SshKeyIds pulumi.StringArrayInput `pulumi:"sshKeyIds"`
	// The state of the device
	State   pulumi.StringInput `pulumi:"state"`
	Storage pulumi.StringInput `pulumi:"storage"`
	// Tags attached to the device
	Tags pulumi.StringArrayInput `pulumi:"tags"`
}

func (GetDevicesDeviceArgs) ElementType

func (GetDevicesDeviceArgs) ElementType() reflect.Type

func (GetDevicesDeviceArgs) ToGetDevicesDeviceOutput

func (i GetDevicesDeviceArgs) ToGetDevicesDeviceOutput() GetDevicesDeviceOutput

func (GetDevicesDeviceArgs) ToGetDevicesDeviceOutputWithContext

func (i GetDevicesDeviceArgs) ToGetDevicesDeviceOutputWithContext(ctx context.Context) GetDevicesDeviceOutput

type GetDevicesDeviceArray

type GetDevicesDeviceArray []GetDevicesDeviceInput

func (GetDevicesDeviceArray) ElementType

func (GetDevicesDeviceArray) ElementType() reflect.Type

func (GetDevicesDeviceArray) ToGetDevicesDeviceArrayOutput

func (i GetDevicesDeviceArray) ToGetDevicesDeviceArrayOutput() GetDevicesDeviceArrayOutput

func (GetDevicesDeviceArray) ToGetDevicesDeviceArrayOutputWithContext

func (i GetDevicesDeviceArray) ToGetDevicesDeviceArrayOutputWithContext(ctx context.Context) GetDevicesDeviceArrayOutput

type GetDevicesDeviceArrayInput

type GetDevicesDeviceArrayInput interface {
	pulumi.Input

	ToGetDevicesDeviceArrayOutput() GetDevicesDeviceArrayOutput
	ToGetDevicesDeviceArrayOutputWithContext(context.Context) GetDevicesDeviceArrayOutput
}

GetDevicesDeviceArrayInput is an input type that accepts GetDevicesDeviceArray and GetDevicesDeviceArrayOutput values. You can construct a concrete instance of `GetDevicesDeviceArrayInput` via:

GetDevicesDeviceArray{ GetDevicesDeviceArgs{...} }

type GetDevicesDeviceArrayOutput

type GetDevicesDeviceArrayOutput struct{ *pulumi.OutputState }

func (GetDevicesDeviceArrayOutput) ElementType

func (GetDevicesDeviceArrayOutput) Index

func (GetDevicesDeviceArrayOutput) ToGetDevicesDeviceArrayOutput

func (o GetDevicesDeviceArrayOutput) ToGetDevicesDeviceArrayOutput() GetDevicesDeviceArrayOutput

func (GetDevicesDeviceArrayOutput) ToGetDevicesDeviceArrayOutputWithContext

func (o GetDevicesDeviceArrayOutput) ToGetDevicesDeviceArrayOutputWithContext(ctx context.Context) GetDevicesDeviceArrayOutput

type GetDevicesDeviceInput

type GetDevicesDeviceInput interface {
	pulumi.Input

	ToGetDevicesDeviceOutput() GetDevicesDeviceOutput
	ToGetDevicesDeviceOutputWithContext(context.Context) GetDevicesDeviceOutput
}

GetDevicesDeviceInput is an input type that accepts GetDevicesDeviceArgs and GetDevicesDeviceOutput values. You can construct a concrete instance of `GetDevicesDeviceInput` via:

GetDevicesDeviceArgs{...}

type GetDevicesDeviceNetwork

type GetDevicesDeviceNetwork 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 GetDevicesDeviceNetworkArgs

type GetDevicesDeviceNetworkArgs 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 (GetDevicesDeviceNetworkArgs) ElementType

func (GetDevicesDeviceNetworkArgs) ToGetDevicesDeviceNetworkOutput

func (i GetDevicesDeviceNetworkArgs) ToGetDevicesDeviceNetworkOutput() GetDevicesDeviceNetworkOutput

func (GetDevicesDeviceNetworkArgs) ToGetDevicesDeviceNetworkOutputWithContext

func (i GetDevicesDeviceNetworkArgs) ToGetDevicesDeviceNetworkOutputWithContext(ctx context.Context) GetDevicesDeviceNetworkOutput

type GetDevicesDeviceNetworkArray

type GetDevicesDeviceNetworkArray []GetDevicesDeviceNetworkInput

func (GetDevicesDeviceNetworkArray) ElementType

func (GetDevicesDeviceNetworkArray) ToGetDevicesDeviceNetworkArrayOutput

func (i GetDevicesDeviceNetworkArray) ToGetDevicesDeviceNetworkArrayOutput() GetDevicesDeviceNetworkArrayOutput

func (GetDevicesDeviceNetworkArray) ToGetDevicesDeviceNetworkArrayOutputWithContext

func (i GetDevicesDeviceNetworkArray) ToGetDevicesDeviceNetworkArrayOutputWithContext(ctx context.Context) GetDevicesDeviceNetworkArrayOutput

type GetDevicesDeviceNetworkArrayInput

type GetDevicesDeviceNetworkArrayInput interface {
	pulumi.Input

	ToGetDevicesDeviceNetworkArrayOutput() GetDevicesDeviceNetworkArrayOutput
	ToGetDevicesDeviceNetworkArrayOutputWithContext(context.Context) GetDevicesDeviceNetworkArrayOutput
}

GetDevicesDeviceNetworkArrayInput is an input type that accepts GetDevicesDeviceNetworkArray and GetDevicesDeviceNetworkArrayOutput values. You can construct a concrete instance of `GetDevicesDeviceNetworkArrayInput` via:

GetDevicesDeviceNetworkArray{ GetDevicesDeviceNetworkArgs{...} }

type GetDevicesDeviceNetworkArrayOutput

type GetDevicesDeviceNetworkArrayOutput struct{ *pulumi.OutputState }

func (GetDevicesDeviceNetworkArrayOutput) ElementType

func (GetDevicesDeviceNetworkArrayOutput) Index

func (GetDevicesDeviceNetworkArrayOutput) ToGetDevicesDeviceNetworkArrayOutput

func (o GetDevicesDeviceNetworkArrayOutput) ToGetDevicesDeviceNetworkArrayOutput() GetDevicesDeviceNetworkArrayOutput

func (GetDevicesDeviceNetworkArrayOutput) ToGetDevicesDeviceNetworkArrayOutputWithContext

func (o GetDevicesDeviceNetworkArrayOutput) ToGetDevicesDeviceNetworkArrayOutputWithContext(ctx context.Context) GetDevicesDeviceNetworkArrayOutput

type GetDevicesDeviceNetworkInput

type GetDevicesDeviceNetworkInput interface {
	pulumi.Input

	ToGetDevicesDeviceNetworkOutput() GetDevicesDeviceNetworkOutput
	ToGetDevicesDeviceNetworkOutputWithContext(context.Context) GetDevicesDeviceNetworkOutput
}

GetDevicesDeviceNetworkInput is an input type that accepts GetDevicesDeviceNetworkArgs and GetDevicesDeviceNetworkOutput values. You can construct a concrete instance of `GetDevicesDeviceNetworkInput` via:

GetDevicesDeviceNetworkArgs{...}

type GetDevicesDeviceNetworkOutput

type GetDevicesDeviceNetworkOutput struct{ *pulumi.OutputState }

func (GetDevicesDeviceNetworkOutput) Address

IPv4 or IPv6 address string

func (GetDevicesDeviceNetworkOutput) Cidr

Bit length of the network mask of the address

func (GetDevicesDeviceNetworkOutput) ElementType

func (GetDevicesDeviceNetworkOutput) Family

IP version - "4" or "6"

func (GetDevicesDeviceNetworkOutput) Gateway

Address of router

func (GetDevicesDeviceNetworkOutput) Public

Whether the address is routable from the Internet

func (GetDevicesDeviceNetworkOutput) ToGetDevicesDeviceNetworkOutput

func (o GetDevicesDeviceNetworkOutput) ToGetDevicesDeviceNetworkOutput() GetDevicesDeviceNetworkOutput

func (GetDevicesDeviceNetworkOutput) ToGetDevicesDeviceNetworkOutputWithContext

func (o GetDevicesDeviceNetworkOutput) ToGetDevicesDeviceNetworkOutputWithContext(ctx context.Context) GetDevicesDeviceNetworkOutput

type GetDevicesDeviceOutput

type GetDevicesDeviceOutput struct{ *pulumi.OutputState }

func (GetDevicesDeviceOutput) AccessPrivateIpv4

func (o GetDevicesDeviceOutput) AccessPrivateIpv4() pulumi.StringOutput

The ipv4 private IP assigned to the device

func (GetDevicesDeviceOutput) AccessPublicIpv4

func (o GetDevicesDeviceOutput) AccessPublicIpv4() pulumi.StringOutput

The ipv4 management IP assigned to the device

func (GetDevicesDeviceOutput) AccessPublicIpv6

func (o GetDevicesDeviceOutput) AccessPublicIpv6() pulumi.StringOutput

The ipv6 management IP assigned to the device

func (GetDevicesDeviceOutput) AlwaysPxe

func (GetDevicesDeviceOutput) BillingCycle

func (o GetDevicesDeviceOutput) BillingCycle() pulumi.StringOutput

The billing cycle of the device (monthly or hourly)

func (GetDevicesDeviceOutput) Description

func (o GetDevicesDeviceOutput) Description() pulumi.StringOutput

Description string for the device

func (GetDevicesDeviceOutput) DeviceId

Device ID

func (GetDevicesDeviceOutput) ElementType

func (GetDevicesDeviceOutput) ElementType() reflect.Type

func (GetDevicesDeviceOutput) Facility deprecated

The facility where the device is deployed

Deprecated: Use metro instead of facility. For more information, read the migration guide: https://registry.terraform.io/providers/equinix/equinix/latest/docs/guides/migration_guide_facilities_to_metros_devices

func (GetDevicesDeviceOutput) HardwareReservationId

func (o GetDevicesDeviceOutput) HardwareReservationId() pulumi.StringOutput

The id of hardware reservation which this device occupies

func (GetDevicesDeviceOutput) Hostname

The device name

func (GetDevicesDeviceOutput) IpxeScriptUrl

func (o GetDevicesDeviceOutput) IpxeScriptUrl() pulumi.StringOutput

func (GetDevicesDeviceOutput) Metro

The metro where the device is deployed

func (GetDevicesDeviceOutput) NetworkType

func (o GetDevicesDeviceOutput) NetworkType() pulumi.StringOutput

L2 network type of the device, one oflayer3, hybrid, layer2-individual, layer2-bonded

func (GetDevicesDeviceOutput) Networks

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: ublic IPv4 at equinix_metal_device.name.network.0, IPv6 at equinix_metal_device.name.network.1 and private IPv4 at equinix_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).

func (GetDevicesDeviceOutput) OperatingSystem

func (o GetDevicesDeviceOutput) OperatingSystem() pulumi.StringOutput

The operating system running on the device

func (GetDevicesDeviceOutput) Plan

The hardware config of the device

func (GetDevicesDeviceOutput) Ports

Ports assigned to the device

func (GetDevicesDeviceOutput) ProjectId

ID of project containing the devices. Exactly one of `projectId` and `organizationId` must be set.

func (GetDevicesDeviceOutput) RootPassword

func (o GetDevicesDeviceOutput) RootPassword() pulumi.StringOutput

Root password to the server (if still available)

func (GetDevicesDeviceOutput) SosHostname

func (o GetDevicesDeviceOutput) SosHostname() pulumi.StringOutput

The hostname to use for [Serial over SSH](https://deploy.equinix.com/developers/docs/metal/resilience-recovery/serial-over-ssh/) access to the device

func (GetDevicesDeviceOutput) SshKeyIds

List of IDs of SSH keys deployed in the device, can be both user or project SSH keys

func (GetDevicesDeviceOutput) State

The state of the device

func (GetDevicesDeviceOutput) Storage

func (GetDevicesDeviceOutput) Tags

Tags attached to the device

func (GetDevicesDeviceOutput) ToGetDevicesDeviceOutput

func (o GetDevicesDeviceOutput) ToGetDevicesDeviceOutput() GetDevicesDeviceOutput

func (GetDevicesDeviceOutput) ToGetDevicesDeviceOutputWithContext

func (o GetDevicesDeviceOutput) ToGetDevicesDeviceOutputWithContext(ctx context.Context) GetDevicesDeviceOutput

type GetDevicesDevicePort

type GetDevicesDevicePort struct {
	// Whether this port is part of a bond in bonded network setup
	Bonded bool `pulumi:"bonded"`
	// The ID of the device
	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 GetDevicesDevicePortArgs

type GetDevicesDevicePortArgs struct {
	// Whether this port is part of a bond in bonded network setup
	Bonded pulumi.BoolInput `pulumi:"bonded"`
	// The ID of the device
	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 (GetDevicesDevicePortArgs) ElementType

func (GetDevicesDevicePortArgs) ElementType() reflect.Type

func (GetDevicesDevicePortArgs) ToGetDevicesDevicePortOutput

func (i GetDevicesDevicePortArgs) ToGetDevicesDevicePortOutput() GetDevicesDevicePortOutput

func (GetDevicesDevicePortArgs) ToGetDevicesDevicePortOutputWithContext

func (i GetDevicesDevicePortArgs) ToGetDevicesDevicePortOutputWithContext(ctx context.Context) GetDevicesDevicePortOutput

type GetDevicesDevicePortArray

type GetDevicesDevicePortArray []GetDevicesDevicePortInput

func (GetDevicesDevicePortArray) ElementType

func (GetDevicesDevicePortArray) ElementType() reflect.Type

func (GetDevicesDevicePortArray) ToGetDevicesDevicePortArrayOutput

func (i GetDevicesDevicePortArray) ToGetDevicesDevicePortArrayOutput() GetDevicesDevicePortArrayOutput

func (GetDevicesDevicePortArray) ToGetDevicesDevicePortArrayOutputWithContext

func (i GetDevicesDevicePortArray) ToGetDevicesDevicePortArrayOutputWithContext(ctx context.Context) GetDevicesDevicePortArrayOutput

type GetDevicesDevicePortArrayInput

type GetDevicesDevicePortArrayInput interface {
	pulumi.Input

	ToGetDevicesDevicePortArrayOutput() GetDevicesDevicePortArrayOutput
	ToGetDevicesDevicePortArrayOutputWithContext(context.Context) GetDevicesDevicePortArrayOutput
}

GetDevicesDevicePortArrayInput is an input type that accepts GetDevicesDevicePortArray and GetDevicesDevicePortArrayOutput values. You can construct a concrete instance of `GetDevicesDevicePortArrayInput` via:

GetDevicesDevicePortArray{ GetDevicesDevicePortArgs{...} }

type GetDevicesDevicePortArrayOutput

type GetDevicesDevicePortArrayOutput struct{ *pulumi.OutputState }

func (GetDevicesDevicePortArrayOutput) ElementType

func (GetDevicesDevicePortArrayOutput) Index

func (GetDevicesDevicePortArrayOutput) ToGetDevicesDevicePortArrayOutput

func (o GetDevicesDevicePortArrayOutput) ToGetDevicesDevicePortArrayOutput() GetDevicesDevicePortArrayOutput

func (GetDevicesDevicePortArrayOutput) ToGetDevicesDevicePortArrayOutputWithContext

func (o GetDevicesDevicePortArrayOutput) ToGetDevicesDevicePortArrayOutputWithContext(ctx context.Context) GetDevicesDevicePortArrayOutput

type GetDevicesDevicePortInput

type GetDevicesDevicePortInput interface {
	pulumi.Input

	ToGetDevicesDevicePortOutput() GetDevicesDevicePortOutput
	ToGetDevicesDevicePortOutputWithContext(context.Context) GetDevicesDevicePortOutput
}

GetDevicesDevicePortInput is an input type that accepts GetDevicesDevicePortArgs and GetDevicesDevicePortOutput values. You can construct a concrete instance of `GetDevicesDevicePortInput` via:

GetDevicesDevicePortArgs{...}

type GetDevicesDevicePortOutput

type GetDevicesDevicePortOutput struct{ *pulumi.OutputState }

func (GetDevicesDevicePortOutput) Bonded

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

func (GetDevicesDevicePortOutput) ElementType

func (GetDevicesDevicePortOutput) ElementType() reflect.Type

func (GetDevicesDevicePortOutput) Id

The ID of the device

func (GetDevicesDevicePortOutput) Mac

MAC address assigned to the port

func (GetDevicesDevicePortOutput) Name

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

func (GetDevicesDevicePortOutput) ToGetDevicesDevicePortOutput

func (o GetDevicesDevicePortOutput) ToGetDevicesDevicePortOutput() GetDevicesDevicePortOutput

func (GetDevicesDevicePortOutput) ToGetDevicesDevicePortOutputWithContext

func (o GetDevicesDevicePortOutput) ToGetDevicesDevicePortOutputWithContext(ctx context.Context) GetDevicesDevicePortOutput

func (GetDevicesDevicePortOutput) Type

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

type GetDevicesFilter

type GetDevicesFilter struct {
	// If is set to true, the values are joined with an AND, and the requests returns only the results that match all specified values. Default is `false`.
	//
	// All fields in the `devices` block defined below can be used as attribute for both `sort` and `filter` blocks.
	All *bool `pulumi:"all"`
	// The attribute used to filter. Filter attributes are case-sensitive
	Attribute string `pulumi:"attribute"`
	// The type of comparison to apply. One of: `in` , `re`, `substring`, `lessThan`, `lessThanOrEqual`, `greaterThan`, `greaterThanOrEqual`. Default is `in`.
	MatchBy *string `pulumi:"matchBy"`
	// The filter values. Filter values are case-sensitive. If you specify multiple values for a filter, the values are joined with an OR by default, and the request returns all results that match any of the specified values
	Values []string `pulumi:"values"`
}

type GetDevicesFilterArgs

type GetDevicesFilterArgs struct {
	// If is set to true, the values are joined with an AND, and the requests returns only the results that match all specified values. Default is `false`.
	//
	// All fields in the `devices` block defined below can be used as attribute for both `sort` and `filter` blocks.
	All pulumi.BoolPtrInput `pulumi:"all"`
	// The attribute used to filter. Filter attributes are case-sensitive
	Attribute pulumi.StringInput `pulumi:"attribute"`
	// The type of comparison to apply. One of: `in` , `re`, `substring`, `lessThan`, `lessThanOrEqual`, `greaterThan`, `greaterThanOrEqual`. Default is `in`.
	MatchBy pulumi.StringPtrInput `pulumi:"matchBy"`
	// The filter values. Filter values are case-sensitive. If you specify multiple values for a filter, the values are joined with an OR by default, and the request returns all results that match any of the specified values
	Values pulumi.StringArrayInput `pulumi:"values"`
}

func (GetDevicesFilterArgs) ElementType

func (GetDevicesFilterArgs) ElementType() reflect.Type

func (GetDevicesFilterArgs) ToGetDevicesFilterOutput

func (i GetDevicesFilterArgs) ToGetDevicesFilterOutput() GetDevicesFilterOutput

func (GetDevicesFilterArgs) ToGetDevicesFilterOutputWithContext

func (i GetDevicesFilterArgs) ToGetDevicesFilterOutputWithContext(ctx context.Context) GetDevicesFilterOutput

type GetDevicesFilterArray

type GetDevicesFilterArray []GetDevicesFilterInput

func (GetDevicesFilterArray) ElementType

func (GetDevicesFilterArray) ElementType() reflect.Type

func (GetDevicesFilterArray) ToGetDevicesFilterArrayOutput

func (i GetDevicesFilterArray) ToGetDevicesFilterArrayOutput() GetDevicesFilterArrayOutput

func (GetDevicesFilterArray) ToGetDevicesFilterArrayOutputWithContext

func (i GetDevicesFilterArray) ToGetDevicesFilterArrayOutputWithContext(ctx context.Context) GetDevicesFilterArrayOutput

type GetDevicesFilterArrayInput

type GetDevicesFilterArrayInput interface {
	pulumi.Input

	ToGetDevicesFilterArrayOutput() GetDevicesFilterArrayOutput
	ToGetDevicesFilterArrayOutputWithContext(context.Context) GetDevicesFilterArrayOutput
}

GetDevicesFilterArrayInput is an input type that accepts GetDevicesFilterArray and GetDevicesFilterArrayOutput values. You can construct a concrete instance of `GetDevicesFilterArrayInput` via:

GetDevicesFilterArray{ GetDevicesFilterArgs{...} }

type GetDevicesFilterArrayOutput

type GetDevicesFilterArrayOutput struct{ *pulumi.OutputState }

func (GetDevicesFilterArrayOutput) ElementType

func (GetDevicesFilterArrayOutput) Index

func (GetDevicesFilterArrayOutput) ToGetDevicesFilterArrayOutput

func (o GetDevicesFilterArrayOutput) ToGetDevicesFilterArrayOutput() GetDevicesFilterArrayOutput

func (GetDevicesFilterArrayOutput) ToGetDevicesFilterArrayOutputWithContext

func (o GetDevicesFilterArrayOutput) ToGetDevicesFilterArrayOutputWithContext(ctx context.Context) GetDevicesFilterArrayOutput

type GetDevicesFilterInput

type GetDevicesFilterInput interface {
	pulumi.Input

	ToGetDevicesFilterOutput() GetDevicesFilterOutput
	ToGetDevicesFilterOutputWithContext(context.Context) GetDevicesFilterOutput
}

GetDevicesFilterInput is an input type that accepts GetDevicesFilterArgs and GetDevicesFilterOutput values. You can construct a concrete instance of `GetDevicesFilterInput` via:

GetDevicesFilterArgs{...}

type GetDevicesFilterOutput

type GetDevicesFilterOutput struct{ *pulumi.OutputState }

func (GetDevicesFilterOutput) All

If is set to true, the values are joined with an AND, and the requests returns only the results that match all specified values. Default is `false`.

All fields in the `devices` block defined below can be used as attribute for both `sort` and `filter` blocks.

func (GetDevicesFilterOutput) Attribute

The attribute used to filter. Filter attributes are case-sensitive

func (GetDevicesFilterOutput) ElementType

func (GetDevicesFilterOutput) ElementType() reflect.Type

func (GetDevicesFilterOutput) MatchBy

The type of comparison to apply. One of: `in` , `re`, `substring`, `lessThan`, `lessThanOrEqual`, `greaterThan`, `greaterThanOrEqual`. Default is `in`.

func (GetDevicesFilterOutput) ToGetDevicesFilterOutput

func (o GetDevicesFilterOutput) ToGetDevicesFilterOutput() GetDevicesFilterOutput

func (GetDevicesFilterOutput) ToGetDevicesFilterOutputWithContext

func (o GetDevicesFilterOutput) ToGetDevicesFilterOutputWithContext(ctx context.Context) GetDevicesFilterOutput

func (GetDevicesFilterOutput) Values

The filter values. Filter values are case-sensitive. If you specify multiple values for a filter, the values are joined with an OR by default, and the request returns all results that match any of the specified values

type GetDevicesOutputArgs

type GetDevicesOutputArgs struct {
	// One or more attribute/values pairs to filter. List of atributes to filter can be found in the attribute reference of the `metal.Device` datasource.
	Filters GetDevicesFilterArrayInput `pulumi:"filters"`
	// ID of organization containing the devices.
	OrganizationId pulumi.StringPtrInput `pulumi:"organizationId"`
	// ID of project containing the devices. Exactly one of `projectId` and `organizationId` must be set.
	ProjectId pulumi.StringPtrInput `pulumi:"projectId"`
	// Search string to filter devices by hostname, description, short_id, reservation short_id, tags, plan name, plan slug, facility code, facility name, operating system name, operating system slug, IP addresses.
	Search pulumi.StringPtrInput    `pulumi:"search"`
	Sorts  GetDevicesSortArrayInput `pulumi:"sorts"`
}

A collection of arguments for invoking getDevices.

func (GetDevicesOutputArgs) ElementType

func (GetDevicesOutputArgs) ElementType() reflect.Type

type GetDevicesResult

type GetDevicesResult struct {
	// list of resources with attributes like in the equninixMetalDevice datasources.
	Devices []GetDevicesDevice `pulumi:"devices"`
	Filters []GetDevicesFilter `pulumi:"filters"`
	// The provider-assigned unique ID for this managed resource.
	Id             string           `pulumi:"id"`
	OrganizationId *string          `pulumi:"organizationId"`
	ProjectId      *string          `pulumi:"projectId"`
	Search         *string          `pulumi:"search"`
	Sorts          []GetDevicesSort `pulumi:"sorts"`
}

A collection of values returned by getDevices.

func GetDevices

func GetDevices(ctx *pulumi.Context, args *GetDevicesArgs, opts ...pulumi.InvokeOption) (*GetDevicesResult, error)

The datasource can be used to find a list of devices which meet filter criteria.

If you need to fetch a single device by ID or by project ID and hostname, use the metal.Device datasource.

## Example Usage

<!--Start PulumiCodeChooser --> ```go package main

import (

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

)

func main() {
	pulumi.Run(func(ctx *pulumi.Context) error {
		example, err := metal.GetDevices(ctx, &metal.GetDevicesArgs{
			ProjectId: pulumi.StringRef(local.Project_id),
			Filters: []metal.GetDevicesFilter{
				{
					Attribute: "plan",
					Values: []string{
						"c3.small.x86",
					},
				},
				{
					Attribute: "metro",
					Values: []string{
						"da",
						"sv",
					},
				},
			},
		}, nil)
		if err != nil {
			return err
		}
		ctx.Export("devices", example.Devices)
		return nil
	})
}

``` <!--End PulumiCodeChooser -->

<!--Start PulumiCodeChooser --> ```go package main

import (

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

)

func main() {
	pulumi.Run(func(ctx *pulumi.Context) error {
		example, err := metal.GetDevices(ctx, &metal.GetDevicesArgs{
			Search: pulumi.StringRef("database"),
		}, nil)
		if err != nil {
			return err
		}
		ctx.Export("devices", example.Devices)
		return nil
	})
}

``` <!--End PulumiCodeChooser -->

## search vs filter

The difference between `search` and `filter` is that `search` is an API parameter, interpreted by the Equinix Metal service. The "filter" arguments will reduce the API list (or search) results by applying client-side filtering, within this provider.

type GetDevicesResultOutput

type GetDevicesResultOutput struct{ *pulumi.OutputState }

A collection of values returned by getDevices.

func (GetDevicesResultOutput) Devices

list of resources with attributes like in the equninixMetalDevice datasources.

func (GetDevicesResultOutput) ElementType

func (GetDevicesResultOutput) ElementType() reflect.Type

func (GetDevicesResultOutput) Filters

func (GetDevicesResultOutput) Id

The provider-assigned unique ID for this managed resource.

func (GetDevicesResultOutput) OrganizationId

func (o GetDevicesResultOutput) OrganizationId() pulumi.StringPtrOutput

func (GetDevicesResultOutput) ProjectId

func (GetDevicesResultOutput) Search

func (GetDevicesResultOutput) Sorts

func (GetDevicesResultOutput) ToGetDevicesResultOutput

func (o GetDevicesResultOutput) ToGetDevicesResultOutput() GetDevicesResultOutput

func (GetDevicesResultOutput) ToGetDevicesResultOutputWithContext

func (o GetDevicesResultOutput) ToGetDevicesResultOutputWithContext(ctx context.Context) GetDevicesResultOutput

type GetDevicesSort

type GetDevicesSort struct {
	// The attribute used to filter. Filter attributes are case-sensitive
	Attribute string `pulumi:"attribute"`
	// Sort results in ascending or descending order. Strings are sorted in alphabetical order. One of: asc, desc
	Direction *string `pulumi:"direction"`
}

type GetDevicesSortArgs

type GetDevicesSortArgs struct {
	// The attribute used to filter. Filter attributes are case-sensitive
	Attribute pulumi.StringInput `pulumi:"attribute"`
	// Sort results in ascending or descending order. Strings are sorted in alphabetical order. One of: asc, desc
	Direction pulumi.StringPtrInput `pulumi:"direction"`
}

func (GetDevicesSortArgs) ElementType

func (GetDevicesSortArgs) ElementType() reflect.Type

func (GetDevicesSortArgs) ToGetDevicesSortOutput

func (i GetDevicesSortArgs) ToGetDevicesSortOutput() GetDevicesSortOutput

func (GetDevicesSortArgs) ToGetDevicesSortOutputWithContext

func (i GetDevicesSortArgs) ToGetDevicesSortOutputWithContext(ctx context.Context) GetDevicesSortOutput

type GetDevicesSortArray

type GetDevicesSortArray []GetDevicesSortInput

func (GetDevicesSortArray) ElementType

func (GetDevicesSortArray) ElementType() reflect.Type

func (GetDevicesSortArray) ToGetDevicesSortArrayOutput

func (i GetDevicesSortArray) ToGetDevicesSortArrayOutput() GetDevicesSortArrayOutput

func (GetDevicesSortArray) ToGetDevicesSortArrayOutputWithContext

func (i GetDevicesSortArray) ToGetDevicesSortArrayOutputWithContext(ctx context.Context) GetDevicesSortArrayOutput

type GetDevicesSortArrayInput

type GetDevicesSortArrayInput interface {
	pulumi.Input

	ToGetDevicesSortArrayOutput() GetDevicesSortArrayOutput
	ToGetDevicesSortArrayOutputWithContext(context.Context) GetDevicesSortArrayOutput
}

GetDevicesSortArrayInput is an input type that accepts GetDevicesSortArray and GetDevicesSortArrayOutput values. You can construct a concrete instance of `GetDevicesSortArrayInput` via:

GetDevicesSortArray{ GetDevicesSortArgs{...} }

type GetDevicesSortArrayOutput

type GetDevicesSortArrayOutput struct{ *pulumi.OutputState }

func (GetDevicesSortArrayOutput) ElementType

func (GetDevicesSortArrayOutput) ElementType() reflect.Type

func (GetDevicesSortArrayOutput) Index

func (GetDevicesSortArrayOutput) ToGetDevicesSortArrayOutput

func (o GetDevicesSortArrayOutput) ToGetDevicesSortArrayOutput() GetDevicesSortArrayOutput

func (GetDevicesSortArrayOutput) ToGetDevicesSortArrayOutputWithContext

func (o GetDevicesSortArrayOutput) ToGetDevicesSortArrayOutputWithContext(ctx context.Context) GetDevicesSortArrayOutput

type GetDevicesSortInput

type GetDevicesSortInput interface {
	pulumi.Input

	ToGetDevicesSortOutput() GetDevicesSortOutput
	ToGetDevicesSortOutputWithContext(context.Context) GetDevicesSortOutput
}

GetDevicesSortInput is an input type that accepts GetDevicesSortArgs and GetDevicesSortOutput values. You can construct a concrete instance of `GetDevicesSortInput` via:

GetDevicesSortArgs{...}

type GetDevicesSortOutput

type GetDevicesSortOutput struct{ *pulumi.OutputState }

func (GetDevicesSortOutput) Attribute

The attribute used to filter. Filter attributes are case-sensitive

func (GetDevicesSortOutput) Direction

Sort results in ascending or descending order. Strings are sorted in alphabetical order. One of: asc, desc

func (GetDevicesSortOutput) ElementType

func (GetDevicesSortOutput) ElementType() reflect.Type

func (GetDevicesSortOutput) ToGetDevicesSortOutput

func (o GetDevicesSortOutput) ToGetDevicesSortOutput() GetDevicesSortOutput

func (GetDevicesSortOutput) ToGetDevicesSortOutputWithContext

func (o GetDevicesSortOutput) ToGetDevicesSortOutputWithContext(ctx context.Context) GetDevicesSortOutput

type GetFacilityArgs

type GetFacilityArgs struct {
	// One or more device plans for which the facility must have capacity.
	Capacities []GetFacilityCapacity `pulumi:"capacities"`
	// The facility code to search for facilities.
	Code string `pulumi:"code"`
	// Set of feature strings that the facility must have. Some
	// possible values are `baremetal`, `ibx`, `storage`, `globalIpv4`, `backendTransfer`, `layer2`.
	FeaturesRequireds []string `pulumi:"featuresRequireds"`
}

A collection of arguments for invoking getFacility.

type GetFacilityCapacity

type GetFacilityCapacity struct {
	// Device plan that must be available in selected location.
	Plan string `pulumi:"plan"`
	// Minimun number of devices that must be available in selected location.
	// Default is `1`.
	Quantity *int `pulumi:"quantity"`
}

type GetFacilityCapacityArgs

type GetFacilityCapacityArgs struct {
	// Device plan that must be available in selected location.
	Plan pulumi.StringInput `pulumi:"plan"`
	// Minimun number of devices that must be available in selected location.
	// Default is `1`.
	Quantity pulumi.IntPtrInput `pulumi:"quantity"`
}

func (GetFacilityCapacityArgs) ElementType

func (GetFacilityCapacityArgs) ElementType() reflect.Type

func (GetFacilityCapacityArgs) ToGetFacilityCapacityOutput

func (i GetFacilityCapacityArgs) ToGetFacilityCapacityOutput() GetFacilityCapacityOutput

func (GetFacilityCapacityArgs) ToGetFacilityCapacityOutputWithContext

func (i GetFacilityCapacityArgs) ToGetFacilityCapacityOutputWithContext(ctx context.Context) GetFacilityCapacityOutput

type GetFacilityCapacityArray

type GetFacilityCapacityArray []GetFacilityCapacityInput

func (GetFacilityCapacityArray) ElementType

func (GetFacilityCapacityArray) ElementType() reflect.Type

func (GetFacilityCapacityArray) ToGetFacilityCapacityArrayOutput

func (i GetFacilityCapacityArray) ToGetFacilityCapacityArrayOutput() GetFacilityCapacityArrayOutput

func (GetFacilityCapacityArray) ToGetFacilityCapacityArrayOutputWithContext

func (i GetFacilityCapacityArray) ToGetFacilityCapacityArrayOutputWithContext(ctx context.Context) GetFacilityCapacityArrayOutput

type GetFacilityCapacityArrayInput

type GetFacilityCapacityArrayInput interface {
	pulumi.Input

	ToGetFacilityCapacityArrayOutput() GetFacilityCapacityArrayOutput
	ToGetFacilityCapacityArrayOutputWithContext(context.Context) GetFacilityCapacityArrayOutput
}

GetFacilityCapacityArrayInput is an input type that accepts GetFacilityCapacityArray and GetFacilityCapacityArrayOutput values. You can construct a concrete instance of `GetFacilityCapacityArrayInput` via:

GetFacilityCapacityArray{ GetFacilityCapacityArgs{...} }

type GetFacilityCapacityArrayOutput

type GetFacilityCapacityArrayOutput struct{ *pulumi.OutputState }

func (GetFacilityCapacityArrayOutput) ElementType

func (GetFacilityCapacityArrayOutput) Index

func (GetFacilityCapacityArrayOutput) ToGetFacilityCapacityArrayOutput

func (o GetFacilityCapacityArrayOutput) ToGetFacilityCapacityArrayOutput() GetFacilityCapacityArrayOutput

func (GetFacilityCapacityArrayOutput) ToGetFacilityCapacityArrayOutputWithContext

func (o GetFacilityCapacityArrayOutput) ToGetFacilityCapacityArrayOutputWithContext(ctx context.Context) GetFacilityCapacityArrayOutput

type GetFacilityCapacityInput

type GetFacilityCapacityInput interface {
	pulumi.Input

	ToGetFacilityCapacityOutput() GetFacilityCapacityOutput
	ToGetFacilityCapacityOutputWithContext(context.Context) GetFacilityCapacityOutput
}

GetFacilityCapacityInput is an input type that accepts GetFacilityCapacityArgs and GetFacilityCapacityOutput values. You can construct a concrete instance of `GetFacilityCapacityInput` via:

GetFacilityCapacityArgs{...}

type GetFacilityCapacityOutput

type GetFacilityCapacityOutput struct{ *pulumi.OutputState }

func (GetFacilityCapacityOutput) ElementType

func (GetFacilityCapacityOutput) ElementType() reflect.Type

func (GetFacilityCapacityOutput) Plan

Device plan that must be available in selected location.

func (GetFacilityCapacityOutput) Quantity

Minimun number of devices that must be available in selected location. Default is `1`.

func (GetFacilityCapacityOutput) ToGetFacilityCapacityOutput

func (o GetFacilityCapacityOutput) ToGetFacilityCapacityOutput() GetFacilityCapacityOutput

func (GetFacilityCapacityOutput) ToGetFacilityCapacityOutputWithContext

func (o GetFacilityCapacityOutput) ToGetFacilityCapacityOutputWithContext(ctx context.Context) GetFacilityCapacityOutput

type GetFacilityOutputArgs

type GetFacilityOutputArgs struct {
	// One or more device plans for which the facility must have capacity.
	Capacities GetFacilityCapacityArrayInput `pulumi:"capacities"`
	// The facility code to search for facilities.
	Code pulumi.StringInput `pulumi:"code"`
	// Set of feature strings that the facility must have. Some
	// possible values are `baremetal`, `ibx`, `storage`, `globalIpv4`, `backendTransfer`, `layer2`.
	FeaturesRequireds pulumi.StringArrayInput `pulumi:"featuresRequireds"`
}

A collection of arguments for invoking getFacility.

func (GetFacilityOutputArgs) ElementType

func (GetFacilityOutputArgs) ElementType() reflect.Type

type GetFacilityResult

type GetFacilityResult struct {
	Capacities []GetFacilityCapacity `pulumi:"capacities"`
	Code       string                `pulumi:"code"`
	// The features of the facility.
	Features          []string `pulumi:"features"`
	FeaturesRequireds []string `pulumi:"featuresRequireds"`
	// The provider-assigned unique ID for this managed resource.
	Id string `pulumi:"id"`
	// The metro code the facility is part of.
	Metro string `pulumi:"metro"`
	// The name of the facility.
	Name string `pulumi:"name"`
}

A collection of values returned by getFacility.

func GetFacility

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

> **Deprecated** Use `metal.getMetro` instead. For more information, refer to the facility to metro migration guide.

Provides an Equinix Metal facility datasource.

## Example Usage

<!--Start PulumiCodeChooser --> ```go package main

import (

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

)

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

``` <!--End PulumiCodeChooser -->

type GetFacilityResultOutput

type GetFacilityResultOutput struct{ *pulumi.OutputState }

A collection of values returned by getFacility.

func (GetFacilityResultOutput) Capacities

func (GetFacilityResultOutput) Code

func (GetFacilityResultOutput) ElementType

func (GetFacilityResultOutput) ElementType() reflect.Type

func (GetFacilityResultOutput) Features

The features of the facility.

func (GetFacilityResultOutput) FeaturesRequireds

func (o GetFacilityResultOutput) FeaturesRequireds() pulumi.StringArrayOutput

func (GetFacilityResultOutput) Id

The provider-assigned unique ID for this managed resource.

func (GetFacilityResultOutput) Metro

The metro code the facility is part of.

func (GetFacilityResultOutput) Name

The name of the facility.

func (GetFacilityResultOutput) ToGetFacilityResultOutput

func (o GetFacilityResultOutput) ToGetFacilityResultOutput() GetFacilityResultOutput

func (GetFacilityResultOutput) ToGetFacilityResultOutputWithContext

func (o GetFacilityResultOutput) ToGetFacilityResultOutputWithContext(ctx context.Context) GetFacilityResultOutput

type GetHardwareReservationArgs

type GetHardwareReservationArgs struct {
	// UUID of device occupying the reservation.
	DeviceId *string `pulumi:"deviceId"`
	// ID of the hardware reservation.
	Id *string `pulumi:"id"`
}

A collection of arguments for invoking getHardwareReservation.

type GetHardwareReservationOutputArgs

type GetHardwareReservationOutputArgs struct {
	// UUID of device occupying the reservation.
	DeviceId pulumi.StringPtrInput `pulumi:"deviceId"`
	// ID of the hardware reservation.
	Id pulumi.StringPtrInput `pulumi:"id"`
}

A collection of arguments for invoking getHardwareReservation.

func (GetHardwareReservationOutputArgs) ElementType

type GetHardwareReservationResult

type GetHardwareReservationResult struct {
	// UUID of device occupying the reservation.
	DeviceId string `pulumi:"deviceId"`
	// (**Deprecated**) Facility for the reservation. Use metro instead; read the facility to metro migration guide
	//
	// Deprecated: Use metro instead of facility.  For more information, read the migration guide: https://registry.terraform.io/providers/equinix/equinix/latest/docs/guides/migration_guide_facilities_to_metros_devices
	Facility string `pulumi:"facility"`
	// ID of the hardware reservation to look up.
	Id string `pulumi:"id"`
	// Plan type for the reservation.
	Plan string `pulumi:"plan"`
	// UUID of project this reservation is scoped to.
	ProjectId string `pulumi:"projectId"`
	// Flag indicating whether the reserved server is provisionable or not. Spare
	// devices can't be provisioned unless they are activated first.
	Provisionable bool `pulumi:"provisionable"`
	// Reservation short ID.
	ShortId string `pulumi:"shortId"`
	// Flag indicating whether the Hardware Reservation is a spare. Spare Hardware
	// Reservations are used when a Hardware Reservations requires service from Metal Equinix.
	Spare bool `pulumi:"spare"`
	// Switch short ID, can be used to determine if two devices are connected to the
	// same switch.
	SwitchUuid string `pulumi:"switchUuid"`
}

A collection of values returned by getHardwareReservation.

func GetHardwareReservation

func GetHardwareReservation(ctx *pulumi.Context, args *GetHardwareReservationArgs, opts ...pulumi.InvokeOption) (*GetHardwareReservationResult, error)

Use this data source to retrieve a [hardware reservation resource from Equinix Metal](https://metal.equinix.com/developers/docs/deploy/reserved/).

You can look up hardware reservation by its ID or by ID of device which occupies it.

## Example Usage

<!--Start PulumiCodeChooser --> ```go package main

import (

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

)

func main() {
	pulumi.Run(func(ctx *pulumi.Context) error {
		_, err := metal.GetHardwareReservation(ctx, &metal.GetHardwareReservationArgs{
			Id: pulumi.StringRef("4347e805-eb46-4699-9eb9-5c116e6a0172"),
		}, nil)
		if err != nil {
			return err
		}
		_, err = metal.GetHardwareReservation(ctx, &metal.GetHardwareReservationArgs{
			DeviceId: pulumi.StringRef("ff85aa58-c106-4624-8f1c-7c64554047ea"),
		}, nil)
		if err != nil {
			return err
		}
		return nil
	})
}

``` <!--End PulumiCodeChooser -->

type GetHardwareReservationResultOutput

type GetHardwareReservationResultOutput struct{ *pulumi.OutputState }

A collection of values returned by getHardwareReservation.

func (GetHardwareReservationResultOutput) DeviceId

UUID of device occupying the reservation.

func (GetHardwareReservationResultOutput) ElementType

func (GetHardwareReservationResultOutput) Facility deprecated

(**Deprecated**) Facility for the reservation. Use metro instead; read the facility to metro migration guide

Deprecated: Use metro instead of facility. For more information, read the migration guide: https://registry.terraform.io/providers/equinix/equinix/latest/docs/guides/migration_guide_facilities_to_metros_devices

func (GetHardwareReservationResultOutput) Id

ID of the hardware reservation to look up.

func (GetHardwareReservationResultOutput) Plan

Plan type for the reservation.

func (GetHardwareReservationResultOutput) ProjectId

UUID of project this reservation is scoped to.

func (GetHardwareReservationResultOutput) Provisionable

Flag indicating whether the reserved server is provisionable or not. Spare devices can't be provisioned unless they are activated first.

func (GetHardwareReservationResultOutput) ShortId

Reservation short ID.

func (GetHardwareReservationResultOutput) Spare

Flag indicating whether the Hardware Reservation is a spare. Spare Hardware Reservations are used when a Hardware Reservations requires service from Metal Equinix.

func (GetHardwareReservationResultOutput) SwitchUuid

Switch short ID, can be used to determine if two devices are connected to the same switch.

func (GetHardwareReservationResultOutput) ToGetHardwareReservationResultOutput

func (o GetHardwareReservationResultOutput) ToGetHardwareReservationResultOutput() GetHardwareReservationResultOutput

func (GetHardwareReservationResultOutput) ToGetHardwareReservationResultOutputWithContext

func (o GetHardwareReservationResultOutput) ToGetHardwareReservationResultOutputWithContext(ctx context.Context) GetHardwareReservationResultOutput

type GetInterconnectionPort

type GetInterconnectionPort struct {
	// Port UUID.
	Id string `pulumi:"id"`
	// Port link status.
	LinkStatus string `pulumi:"linkStatus"`
	// Port name.
	Name string `pulumi:"name"`
	// Port role - primary or secondary.
	Role string `pulumi:"role"`
	// Port speed in bits per second.
	Speed int `pulumi:"speed"`
	// Port status.
	Status string `pulumi:"status"`
	// List of IDs of virtual cicruits attached to this port.
	VirtualCircuitIds []interface{} `pulumi:"virtualCircuitIds"`
}

type GetInterconnectionPortArgs

type GetInterconnectionPortArgs struct {
	// Port UUID.
	Id pulumi.StringInput `pulumi:"id"`
	// Port link status.
	LinkStatus pulumi.StringInput `pulumi:"linkStatus"`
	// Port name.
	Name pulumi.StringInput `pulumi:"name"`
	// Port role - primary or secondary.
	Role pulumi.StringInput `pulumi:"role"`
	// Port speed in bits per second.
	Speed pulumi.IntInput `pulumi:"speed"`
	// Port status.
	Status pulumi.StringInput `pulumi:"status"`
	// List of IDs of virtual cicruits attached to this port.
	VirtualCircuitIds pulumi.ArrayInput `pulumi:"virtualCircuitIds"`
}

func (GetInterconnectionPortArgs) ElementType

func (GetInterconnectionPortArgs) ElementType() reflect.Type

func (GetInterconnectionPortArgs) ToGetInterconnectionPortOutput

func (i GetInterconnectionPortArgs) ToGetInterconnectionPortOutput() GetInterconnectionPortOutput

func (GetInterconnectionPortArgs) ToGetInterconnectionPortOutputWithContext

func (i GetInterconnectionPortArgs) ToGetInterconnectionPortOutputWithContext(ctx context.Context) GetInterconnectionPortOutput

type GetInterconnectionPortArray

type GetInterconnectionPortArray []GetInterconnectionPortInput

func (GetInterconnectionPortArray) ElementType

func (GetInterconnectionPortArray) ToGetInterconnectionPortArrayOutput

func (i GetInterconnectionPortArray) ToGetInterconnectionPortArrayOutput() GetInterconnectionPortArrayOutput

func (GetInterconnectionPortArray) ToGetInterconnectionPortArrayOutputWithContext

func (i GetInterconnectionPortArray) ToGetInterconnectionPortArrayOutputWithContext(ctx context.Context) GetInterconnectionPortArrayOutput

type GetInterconnectionPortArrayInput

type GetInterconnectionPortArrayInput interface {
	pulumi.Input

	ToGetInterconnectionPortArrayOutput() GetInterconnectionPortArrayOutput
	ToGetInterconnectionPortArrayOutputWithContext(context.Context) GetInterconnectionPortArrayOutput
}

GetInterconnectionPortArrayInput is an input type that accepts GetInterconnectionPortArray and GetInterconnectionPortArrayOutput values. You can construct a concrete instance of `GetInterconnectionPortArrayInput` via:

GetInterconnectionPortArray{ GetInterconnectionPortArgs{...} }

type GetInterconnectionPortArrayOutput

type GetInterconnectionPortArrayOutput struct{ *pulumi.OutputState }

func (GetInterconnectionPortArrayOutput) ElementType

func (GetInterconnectionPortArrayOutput) Index

func (GetInterconnectionPortArrayOutput) ToGetInterconnectionPortArrayOutput

func (o GetInterconnectionPortArrayOutput) ToGetInterconnectionPortArrayOutput() GetInterconnectionPortArrayOutput

func (GetInterconnectionPortArrayOutput) ToGetInterconnectionPortArrayOutputWithContext

func (o GetInterconnectionPortArrayOutput) ToGetInterconnectionPortArrayOutputWithContext(ctx context.Context) GetInterconnectionPortArrayOutput

type GetInterconnectionPortInput

type GetInterconnectionPortInput interface {
	pulumi.Input

	ToGetInterconnectionPortOutput() GetInterconnectionPortOutput
	ToGetInterconnectionPortOutputWithContext(context.Context) GetInterconnectionPortOutput
}

GetInterconnectionPortInput is an input type that accepts GetInterconnectionPortArgs and GetInterconnectionPortOutput values. You can construct a concrete instance of `GetInterconnectionPortInput` via:

GetInterconnectionPortArgs{...}

type GetInterconnectionPortOutput

type GetInterconnectionPortOutput struct{ *pulumi.OutputState }

func (GetInterconnectionPortOutput) ElementType

func (GetInterconnectionPortOutput) Id

Port UUID.

func (GetInterconnectionPortOutput) LinkStatus

Port link status.

func (GetInterconnectionPortOutput) Name

Port name.

func (GetInterconnectionPortOutput) Role

Port role - primary or secondary.

func (GetInterconnectionPortOutput) Speed

Port speed in bits per second.

func (GetInterconnectionPortOutput) Status

Port status.

func (GetInterconnectionPortOutput) ToGetInterconnectionPortOutput

func (o GetInterconnectionPortOutput) ToGetInterconnectionPortOutput() GetInterconnectionPortOutput

func (GetInterconnectionPortOutput) ToGetInterconnectionPortOutputWithContext

func (o GetInterconnectionPortOutput) ToGetInterconnectionPortOutputWithContext(ctx context.Context) GetInterconnectionPortOutput

func (GetInterconnectionPortOutput) VirtualCircuitIds

func (o GetInterconnectionPortOutput) VirtualCircuitIds() pulumi.ArrayOutput

List of IDs of virtual cicruits attached to this port.

type GetInterconnectionServiceToken

type GetInterconnectionServiceToken struct {
	// Expiration date of the service token.
	ExpiresAt string `pulumi:"expiresAt"`
	// Port UUID.
	Id string `pulumi:"id"`
	// Maximum allowed speed for the service token, string like in the `speed` attribute.
	MaxAllowedSpeed string `pulumi:"maxAllowedSpeed"`
	// Port role - primary or secondary.
	Role  string `pulumi:"role"`
	State string `pulumi:"state"`
	// Token type, `aSide` or `zSide`.
	Type string `pulumi:"type"`
}

type GetInterconnectionServiceTokenArgs

type GetInterconnectionServiceTokenArgs struct {
	// Expiration date of the service token.
	ExpiresAt pulumi.StringInput `pulumi:"expiresAt"`
	// Port UUID.
	Id pulumi.StringInput `pulumi:"id"`
	// Maximum allowed speed for the service token, string like in the `speed` attribute.
	MaxAllowedSpeed pulumi.StringInput `pulumi:"maxAllowedSpeed"`
	// Port role - primary or secondary.
	Role  pulumi.StringInput `pulumi:"role"`
	State pulumi.StringInput `pulumi:"state"`
	// Token type, `aSide` or `zSide`.
	Type pulumi.StringInput `pulumi:"type"`
}

func (GetInterconnectionServiceTokenArgs) ElementType

func (GetInterconnectionServiceTokenArgs) ToGetInterconnectionServiceTokenOutput

func (i GetInterconnectionServiceTokenArgs) ToGetInterconnectionServiceTokenOutput() GetInterconnectionServiceTokenOutput

func (GetInterconnectionServiceTokenArgs) ToGetInterconnectionServiceTokenOutputWithContext

func (i GetInterconnectionServiceTokenArgs) ToGetInterconnectionServiceTokenOutputWithContext(ctx context.Context) GetInterconnectionServiceTokenOutput

type GetInterconnectionServiceTokenArray

type GetInterconnectionServiceTokenArray []GetInterconnectionServiceTokenInput

func (GetInterconnectionServiceTokenArray) ElementType

func (GetInterconnectionServiceTokenArray) ToGetInterconnectionServiceTokenArrayOutput

func (i GetInterconnectionServiceTokenArray) ToGetInterconnectionServiceTokenArrayOutput() GetInterconnectionServiceTokenArrayOutput

func (GetInterconnectionServiceTokenArray) ToGetInterconnectionServiceTokenArrayOutputWithContext

func (i GetInterconnectionServiceTokenArray) ToGetInterconnectionServiceTokenArrayOutputWithContext(ctx context.Context) GetInterconnectionServiceTokenArrayOutput

type GetInterconnectionServiceTokenArrayInput

type GetInterconnectionServiceTokenArrayInput interface {
	pulumi.Input

	ToGetInterconnectionServiceTokenArrayOutput() GetInterconnectionServiceTokenArrayOutput
	ToGetInterconnectionServiceTokenArrayOutputWithContext(context.Context) GetInterconnectionServiceTokenArrayOutput
}

GetInterconnectionServiceTokenArrayInput is an input type that accepts GetInterconnectionServiceTokenArray and GetInterconnectionServiceTokenArrayOutput values. You can construct a concrete instance of `GetInterconnectionServiceTokenArrayInput` via:

GetInterconnectionServiceTokenArray{ GetInterconnectionServiceTokenArgs{...} }

type GetInterconnectionServiceTokenArrayOutput

type GetInterconnectionServiceTokenArrayOutput struct{ *pulumi.OutputState }

func (GetInterconnectionServiceTokenArrayOutput) ElementType

func (GetInterconnectionServiceTokenArrayOutput) Index

func (GetInterconnectionServiceTokenArrayOutput) ToGetInterconnectionServiceTokenArrayOutput

func (o GetInterconnectionServiceTokenArrayOutput) ToGetInterconnectionServiceTokenArrayOutput() GetInterconnectionServiceTokenArrayOutput

func (GetInterconnectionServiceTokenArrayOutput) ToGetInterconnectionServiceTokenArrayOutputWithContext

func (o GetInterconnectionServiceTokenArrayOutput) ToGetInterconnectionServiceTokenArrayOutputWithContext(ctx context.Context) GetInterconnectionServiceTokenArrayOutput

type GetInterconnectionServiceTokenInput

type GetInterconnectionServiceTokenInput interface {
	pulumi.Input

	ToGetInterconnectionServiceTokenOutput() GetInterconnectionServiceTokenOutput
	ToGetInterconnectionServiceTokenOutputWithContext(context.Context) GetInterconnectionServiceTokenOutput
}

GetInterconnectionServiceTokenInput is an input type that accepts GetInterconnectionServiceTokenArgs and GetInterconnectionServiceTokenOutput values. You can construct a concrete instance of `GetInterconnectionServiceTokenInput` via:

GetInterconnectionServiceTokenArgs{...}

type GetInterconnectionServiceTokenOutput

type GetInterconnectionServiceTokenOutput struct{ *pulumi.OutputState }

func (GetInterconnectionServiceTokenOutput) ElementType

func (GetInterconnectionServiceTokenOutput) ExpiresAt

Expiration date of the service token.

func (GetInterconnectionServiceTokenOutput) Id

Port UUID.

func (GetInterconnectionServiceTokenOutput) MaxAllowedSpeed

Maximum allowed speed for the service token, string like in the `speed` attribute.

func (GetInterconnectionServiceTokenOutput) Role

Port role - primary or secondary.

func (GetInterconnectionServiceTokenOutput) State

func (GetInterconnectionServiceTokenOutput) ToGetInterconnectionServiceTokenOutput

func (o GetInterconnectionServiceTokenOutput) ToGetInterconnectionServiceTokenOutput() GetInterconnectionServiceTokenOutput

func (GetInterconnectionServiceTokenOutput) ToGetInterconnectionServiceTokenOutputWithContext

func (o GetInterconnectionServiceTokenOutput) ToGetInterconnectionServiceTokenOutputWithContext(ctx context.Context) GetInterconnectionServiceTokenOutput

func (GetInterconnectionServiceTokenOutput) Type

Token type, `aSide` or `zSide`.

type GetIpBlockRangesArgs

type GetIpBlockRangesArgs struct {
	// Facility code filtering the IP blocks. Global IPv4 blocks will be listed
	// anyway. If you omit this and metro, all the block from the project will be listed.   Use metro instead; read the facility to metro migration guide
	//
	// Deprecated: Use metro instead of facility.  For more information, read the migration guide: https://registry.terraform.io/providers/equinix/equinix/latest/docs/guides/migration_guide_facilities_to_metros_devices
	Facility *string `pulumi:"facility"`
	// Metro code filtering the IP blocks. Global IPv4 blocks will be listed
	// anyway. If you omit this and facility, all the block from the project will be listed.
	Metro *string `pulumi:"metro"`
	// ID of the project from which to list the blocks.
	ProjectId string `pulumi:"projectId"`
}

A collection of arguments for invoking getIpBlockRanges.

type GetIpBlockRangesOutputArgs

type GetIpBlockRangesOutputArgs struct {
	// Facility code filtering the IP blocks. Global IPv4 blocks will be listed
	// anyway. If you omit this and metro, all the block from the project will be listed.   Use metro instead; read the facility to metro migration guide
	//
	// Deprecated: Use metro instead of facility.  For more information, read the migration guide: https://registry.terraform.io/providers/equinix/equinix/latest/docs/guides/migration_guide_facilities_to_metros_devices
	Facility pulumi.StringPtrInput `pulumi:"facility"`
	// Metro code filtering the IP blocks. Global IPv4 blocks will be listed
	// anyway. If you omit this and facility, all the block from the project will be listed.
	Metro pulumi.StringPtrInput `pulumi:"metro"`
	// ID of the project from which to list the blocks.
	ProjectId pulumi.StringInput `pulumi:"projectId"`
}

A collection of arguments for invoking getIpBlockRanges.

func (GetIpBlockRangesOutputArgs) ElementType

func (GetIpBlockRangesOutputArgs) ElementType() reflect.Type

type GetIpBlockRangesResult

type GetIpBlockRangesResult struct {
	// Deprecated: Use metro instead of facility.  For more information, read the migration guide: https://registry.terraform.io/providers/equinix/equinix/latest/docs/guides/migration_guide_facilities_to_metros_devices
	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"`
	Metro *string  `pulumi:"metro"`
	// 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 or metro.

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

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

<!--Start PulumiCodeChooser --> ```go package main

import (

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

)

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

``` <!--End PulumiCodeChooser -->

type GetIpBlockRangesResultOutput

type GetIpBlockRangesResultOutput struct{ *pulumi.OutputState }

A collection of values returned by getIpBlockRanges.

func (GetIpBlockRangesResultOutput) ElementType

func (GetIpBlockRangesResultOutput) Facility deprecated

Deprecated: Use metro instead of facility. For more information, read the migration guide: https://registry.terraform.io/providers/equinix/equinix/latest/docs/guides/migration_guide_facilities_to_metros_devices

func (GetIpBlockRangesResultOutput) GlobalIpv4s

list of CIDR expressions for Global IPv4 blocks in the project.

func (GetIpBlockRangesResultOutput) Id

The provider-assigned unique ID for this managed resource.

func (GetIpBlockRangesResultOutput) Ipv6s

list of CIDR expressions for IPv6 blocks in the project.

func (GetIpBlockRangesResultOutput) Metro

func (GetIpBlockRangesResultOutput) PrivateIpv4s

list of CIDR expressions for Private IPv4 blocks in the project.

func (GetIpBlockRangesResultOutput) ProjectId

func (GetIpBlockRangesResultOutput) PublicIpv4s

list of CIDR expressions for Public IPv4 blocks in the project.

func (GetIpBlockRangesResultOutput) ToGetIpBlockRangesResultOutput

func (o GetIpBlockRangesResultOutput) ToGetIpBlockRangesResultOutput() GetIpBlockRangesResultOutput

func (GetIpBlockRangesResultOutput) ToGetIpBlockRangesResultOutputWithContext

func (o GetIpBlockRangesResultOutput) ToGetIpBlockRangesResultOutputWithContext(ctx context.Context) GetIpBlockRangesResultOutput

type GetMetroArgs

type GetMetroArgs struct {
	// One or more device plans for which the metro must have capacity.
	Capacities []GetMetroCapacity `pulumi:"capacities"`
	// The metro code to search for.
	Code string `pulumi:"code"`
}

A collection of arguments for invoking getMetro.

type GetMetroCapacity

type GetMetroCapacity struct {
	// Device plan that must be available in selected location.
	Plan string `pulumi:"plan"`
	// Minimum number of devices that must be available in selected location.
	// Default is `1`.
	Quantity *int `pulumi:"quantity"`
}

type GetMetroCapacityArgs

type GetMetroCapacityArgs struct {
	// Device plan that must be available in selected location.
	Plan pulumi.StringInput `pulumi:"plan"`
	// Minimum number of devices that must be available in selected location.
	// Default is `1`.
	Quantity pulumi.IntPtrInput `pulumi:"quantity"`
}

func (GetMetroCapacityArgs) ElementType

func (GetMetroCapacityArgs) ElementType() reflect.Type

func (GetMetroCapacityArgs) ToGetMetroCapacityOutput

func (i GetMetroCapacityArgs) ToGetMetroCapacityOutput() GetMetroCapacityOutput

func (GetMetroCapacityArgs) ToGetMetroCapacityOutputWithContext

func (i GetMetroCapacityArgs) ToGetMetroCapacityOutputWithContext(ctx context.Context) GetMetroCapacityOutput

type GetMetroCapacityArray

type GetMetroCapacityArray []GetMetroCapacityInput

func (GetMetroCapacityArray) ElementType

func (GetMetroCapacityArray) ElementType() reflect.Type

func (GetMetroCapacityArray) ToGetMetroCapacityArrayOutput

func (i GetMetroCapacityArray) ToGetMetroCapacityArrayOutput() GetMetroCapacityArrayOutput

func (GetMetroCapacityArray) ToGetMetroCapacityArrayOutputWithContext

func (i GetMetroCapacityArray) ToGetMetroCapacityArrayOutputWithContext(ctx context.Context) GetMetroCapacityArrayOutput

type GetMetroCapacityArrayInput

type GetMetroCapacityArrayInput interface {
	pulumi.Input

	ToGetMetroCapacityArrayOutput() GetMetroCapacityArrayOutput
	ToGetMetroCapacityArrayOutputWithContext(context.Context) GetMetroCapacityArrayOutput
}

GetMetroCapacityArrayInput is an input type that accepts GetMetroCapacityArray and GetMetroCapacityArrayOutput values. You can construct a concrete instance of `GetMetroCapacityArrayInput` via:

GetMetroCapacityArray{ GetMetroCapacityArgs{...} }

type GetMetroCapacityArrayOutput

type GetMetroCapacityArrayOutput struct{ *pulumi.OutputState }

func (GetMetroCapacityArrayOutput) ElementType

func (GetMetroCapacityArrayOutput) Index

func (GetMetroCapacityArrayOutput) ToGetMetroCapacityArrayOutput

func (o GetMetroCapacityArrayOutput) ToGetMetroCapacityArrayOutput() GetMetroCapacityArrayOutput

func (GetMetroCapacityArrayOutput) ToGetMetroCapacityArrayOutputWithContext

func (o GetMetroCapacityArrayOutput) ToGetMetroCapacityArrayOutputWithContext(ctx context.Context) GetMetroCapacityArrayOutput

type GetMetroCapacityInput

type GetMetroCapacityInput interface {
	pulumi.Input

	ToGetMetroCapacityOutput() GetMetroCapacityOutput
	ToGetMetroCapacityOutputWithContext(context.Context) GetMetroCapacityOutput
}

GetMetroCapacityInput is an input type that accepts GetMetroCapacityArgs and GetMetroCapacityOutput values. You can construct a concrete instance of `GetMetroCapacityInput` via:

GetMetroCapacityArgs{...}

type GetMetroCapacityOutput

type GetMetroCapacityOutput struct{ *pulumi.OutputState }

func (GetMetroCapacityOutput) ElementType

func (GetMetroCapacityOutput) ElementType() reflect.Type

func (GetMetroCapacityOutput) Plan

Device plan that must be available in selected location.

func (GetMetroCapacityOutput) Quantity

Minimum number of devices that must be available in selected location. Default is `1`.

func (GetMetroCapacityOutput) ToGetMetroCapacityOutput

func (o GetMetroCapacityOutput) ToGetMetroCapacityOutput() GetMetroCapacityOutput

func (GetMetroCapacityOutput) ToGetMetroCapacityOutputWithContext

func (o GetMetroCapacityOutput) ToGetMetroCapacityOutputWithContext(ctx context.Context) GetMetroCapacityOutput

type GetMetroOutputArgs

type GetMetroOutputArgs struct {
	// One or more device plans for which the metro must have capacity.
	Capacities GetMetroCapacityArrayInput `pulumi:"capacities"`
	// The metro code to search for.
	Code pulumi.StringInput `pulumi:"code"`
}

A collection of arguments for invoking getMetro.

func (GetMetroOutputArgs) ElementType

func (GetMetroOutputArgs) ElementType() reflect.Type

type GetMetroResult

type GetMetroResult struct {
	Capacities []GetMetroCapacity `pulumi:"capacities"`
	Code       string             `pulumi:"code"`
	// The country of the metro.
	Country string `pulumi:"country"`
	// The ID of the metro.
	Id string `pulumi:"id"`
	// The name of the metro.
	Name string `pulumi:"name"`
}

A collection of values returned by getMetro.

func GetMetro

func GetMetro(ctx *pulumi.Context, args *GetMetroArgs, opts ...pulumi.InvokeOption) (*GetMetroResult, error)

Provides an Equinix Metal metro datasource.

## Example Usage

<!--Start PulumiCodeChooser --> ```go package main

import (

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

)

func main() {
	pulumi.Run(func(ctx *pulumi.Context) error {
		sv, err := metal.GetMetro(ctx, &metal.GetMetroArgs{
			Code: "sv",
		}, nil)
		if err != nil {
			return err
		}
		ctx.Export("id", sv.Id)
		return nil
	})
}

``` <!--End PulumiCodeChooser -->

type GetMetroResultOutput

type GetMetroResultOutput struct{ *pulumi.OutputState }

A collection of values returned by getMetro.

func (GetMetroResultOutput) Capacities

func (GetMetroResultOutput) Code

func (GetMetroResultOutput) Country

The country of the metro.

func (GetMetroResultOutput) ElementType

func (GetMetroResultOutput) ElementType() reflect.Type

func (GetMetroResultOutput) Id

The ID of the metro.

func (GetMetroResultOutput) Name

The name of the metro.

func (GetMetroResultOutput) ToGetMetroResultOutput

func (o GetMetroResultOutput) ToGetMetroResultOutput() GetMetroResultOutput

func (GetMetroResultOutput) ToGetMetroResultOutputWithContext

func (o GetMetroResultOutput) ToGetMetroResultOutputWithContext(ctx context.Context) GetMetroResultOutput

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 GetOperatingSystemOutputArgs

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

A collection of arguments for invoking getOperatingSystem.

func (GetOperatingSystemOutputArgs) ElementType

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

<!--Start PulumiCodeChooser --> ```go package main

import (

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

)

func main() {
	pulumi.Run(func(ctx *pulumi.Context) error {
		example, err := metal.GetOperatingSystem(ctx, &metal.GetOperatingSystemArgs{
			Distro:          pulumi.StringRef("ubuntu"),
			Version:         pulumi.StringRef("20.04"),
			ProvisionableOn: pulumi.StringRef("c3.medium.x86"),
		}, nil)
		if err != nil {
			return err
		}
		_, err = metal.NewDevice(ctx, "server", &metal.DeviceArgs{
			Hostname:        pulumi.String("tf.ubuntu"),
			Plan:            pulumi.String(metal.PlanC3MediumX86),
			Metro:           pulumi.String("ny"),
			OperatingSystem: example.Id.ApplyT(func(x *string) metal.OperatingSystem { return metal.OperatingSystem(*x) }).(metal.OperatingSystemOutput),
			BillingCycle:    pulumi.String(metal.BillingCycleHourly),
			ProjectId:       pulumi.Any(local.Project_id),
		})
		if err != nil {
			return err
		}
		return nil
	})
}

``` <!--End PulumiCodeChooser -->

type GetOperatingSystemResultOutput

type GetOperatingSystemResultOutput struct{ *pulumi.OutputState }

A collection of values returned by getOperatingSystem.

func (GetOperatingSystemResultOutput) Distro

func (GetOperatingSystemResultOutput) ElementType

func (GetOperatingSystemResultOutput) Id

The provider-assigned unique ID for this managed resource.

func (GetOperatingSystemResultOutput) Name

func (GetOperatingSystemResultOutput) ProvisionableOn

func (GetOperatingSystemResultOutput) Slug

Operating system slug (same as `id`).

func (GetOperatingSystemResultOutput) ToGetOperatingSystemResultOutput

func (o GetOperatingSystemResultOutput) ToGetOperatingSystemResultOutput() GetOperatingSystemResultOutput

func (GetOperatingSystemResultOutput) ToGetOperatingSystemResultOutputWithContext

func (o GetOperatingSystemResultOutput) ToGetOperatingSystemResultOutputWithContext(ctx context.Context) GetOperatingSystemResultOutput

func (GetOperatingSystemResultOutput) Version

type GetOrganizationAddress

type GetOrganizationAddress struct {
	// Postal address.
	Address string `pulumi:"address"`
	// City name.
	City string `pulumi:"city"`
	// Two letter country code (ISO 3166-1 alpha-2), e.g. US.
	Country string `pulumi:"country"`
	// State name.
	State string `pulumi:"state"`
	// Zip Code.
	ZipCode string `pulumi:"zipCode"`
}

type GetOrganizationAddressArgs

type GetOrganizationAddressArgs struct {
	// Postal address.
	Address pulumi.StringInput `pulumi:"address"`
	// City name.
	City pulumi.StringInput `pulumi:"city"`
	// Two letter country code (ISO 3166-1 alpha-2), e.g. US.
	Country pulumi.StringInput `pulumi:"country"`
	// State name.
	State pulumi.StringInput `pulumi:"state"`
	// Zip Code.
	ZipCode pulumi.StringInput `pulumi:"zipCode"`
}

func (GetOrganizationAddressArgs) ElementType

func (GetOrganizationAddressArgs) ElementType() reflect.Type

func (GetOrganizationAddressArgs) ToGetOrganizationAddressOutput

func (i GetOrganizationAddressArgs) ToGetOrganizationAddressOutput() GetOrganizationAddressOutput

func (GetOrganizationAddressArgs) ToGetOrganizationAddressOutputWithContext

func (i GetOrganizationAddressArgs) ToGetOrganizationAddressOutputWithContext(ctx context.Context) GetOrganizationAddressOutput

type GetOrganizationAddressInput

type GetOrganizationAddressInput interface {
	pulumi.Input

	ToGetOrganizationAddressOutput() GetOrganizationAddressOutput
	ToGetOrganizationAddressOutputWithContext(context.Context) GetOrganizationAddressOutput
}

GetOrganizationAddressInput is an input type that accepts GetOrganizationAddressArgs and GetOrganizationAddressOutput values. You can construct a concrete instance of `GetOrganizationAddressInput` via:

GetOrganizationAddressArgs{...}

type GetOrganizationAddressOutput

type GetOrganizationAddressOutput struct{ *pulumi.OutputState }

func (GetOrganizationAddressOutput) Address

Postal address.

func (GetOrganizationAddressOutput) City

City name.

func (GetOrganizationAddressOutput) Country

Two letter country code (ISO 3166-1 alpha-2), e.g. US.

func (GetOrganizationAddressOutput) ElementType

func (GetOrganizationAddressOutput) State

State name.

func (GetOrganizationAddressOutput) ToGetOrganizationAddressOutput

func (o GetOrganizationAddressOutput) ToGetOrganizationAddressOutput() GetOrganizationAddressOutput

func (GetOrganizationAddressOutput) ToGetOrganizationAddressOutputWithContext

func (o GetOrganizationAddressOutput) ToGetOrganizationAddressOutputWithContext(ctx context.Context) GetOrganizationAddressOutput

func (GetOrganizationAddressOutput) ZipCode

Zip Code.

type GetPlansArgs

type GetPlansArgs struct {
	// One or more attribute/values pairs to filter off of
	Filters []GetPlansFilter `pulumi:"filters"`
	// One or more attribute/direction pairs on which to sort results. If multiple
	// sorts are provided, they will be applied in order
	Sorts []GetPlansSort `pulumi:"sorts"`
}

A collection of arguments for invoking getPlans.

type GetPlansFilter

type GetPlansFilter struct {
	// If is set to true, the values are joined with an AND, and the requests returns only the results that match all specified values. Default is `false`.
	//
	// All fields in the `plans` block defined below can be used as attribute for both `sort` and `filter` blocks.
	All *bool `pulumi:"all"`
	// The attribute used to filter. Filter attributes are case-sensitive
	Attribute string `pulumi:"attribute"`
	// The type of comparison to apply. One of: `in` , `re`, `substring`, `lessThan`, `lessThanOrEqual`, `greaterThan`, `greaterThanOrEqual`. Default is `in`.
	MatchBy *string `pulumi:"matchBy"`
	// The filter values. Filter values are case-sensitive. If you specify multiple values for a filter, the values are joined with an OR by default, and the request returns all results that match any of the specified values
	Values []string `pulumi:"values"`
}

type GetPlansFilterArgs

type GetPlansFilterArgs struct {
	// If is set to true, the values are joined with an AND, and the requests returns only the results that match all specified values. Default is `false`.
	//
	// All fields in the `plans` block defined below can be used as attribute for both `sort` and `filter` blocks.
	All pulumi.BoolPtrInput `pulumi:"all"`
	// The attribute used to filter. Filter attributes are case-sensitive
	Attribute pulumi.StringInput `pulumi:"attribute"`
	// The type of comparison to apply. One of: `in` , `re`, `substring`, `lessThan`, `lessThanOrEqual`, `greaterThan`, `greaterThanOrEqual`. Default is `in`.
	MatchBy pulumi.StringPtrInput `pulumi:"matchBy"`
	// The filter values. Filter values are case-sensitive. If you specify multiple values for a filter, the values are joined with an OR by default, and the request returns all results that match any of the specified values
	Values pulumi.StringArrayInput `pulumi:"values"`
}

func (GetPlansFilterArgs) ElementType

func (GetPlansFilterArgs) ElementType() reflect.Type

func (GetPlansFilterArgs) ToGetPlansFilterOutput

func (i GetPlansFilterArgs) ToGetPlansFilterOutput() GetPlansFilterOutput

func (GetPlansFilterArgs) ToGetPlansFilterOutputWithContext

func (i GetPlansFilterArgs) ToGetPlansFilterOutputWithContext(ctx context.Context) GetPlansFilterOutput

type GetPlansFilterArray

type GetPlansFilterArray []GetPlansFilterInput

func (GetPlansFilterArray) ElementType

func (GetPlansFilterArray) ElementType() reflect.Type

func (GetPlansFilterArray) ToGetPlansFilterArrayOutput

func (i GetPlansFilterArray) ToGetPlansFilterArrayOutput() GetPlansFilterArrayOutput

func (GetPlansFilterArray) ToGetPlansFilterArrayOutputWithContext

func (i GetPlansFilterArray) ToGetPlansFilterArrayOutputWithContext(ctx context.Context) GetPlansFilterArrayOutput

type GetPlansFilterArrayInput

type GetPlansFilterArrayInput interface {
	pulumi.Input

	ToGetPlansFilterArrayOutput() GetPlansFilterArrayOutput
	ToGetPlansFilterArrayOutputWithContext(context.Context) GetPlansFilterArrayOutput
}

GetPlansFilterArrayInput is an input type that accepts GetPlansFilterArray and GetPlansFilterArrayOutput values. You can construct a concrete instance of `GetPlansFilterArrayInput` via:

GetPlansFilterArray{ GetPlansFilterArgs{...} }

type GetPlansFilterArrayOutput

type GetPlansFilterArrayOutput struct{ *pulumi.OutputState }

func (GetPlansFilterArrayOutput) ElementType

func (GetPlansFilterArrayOutput) ElementType() reflect.Type

func (GetPlansFilterArrayOutput) Index

func (GetPlansFilterArrayOutput) ToGetPlansFilterArrayOutput

func (o GetPlansFilterArrayOutput) ToGetPlansFilterArrayOutput() GetPlansFilterArrayOutput

func (GetPlansFilterArrayOutput) ToGetPlansFilterArrayOutputWithContext

func (o GetPlansFilterArrayOutput) ToGetPlansFilterArrayOutputWithContext(ctx context.Context) GetPlansFilterArrayOutput

type GetPlansFilterInput

type GetPlansFilterInput interface {
	pulumi.Input

	ToGetPlansFilterOutput() GetPlansFilterOutput
	ToGetPlansFilterOutputWithContext(context.Context) GetPlansFilterOutput
}

GetPlansFilterInput is an input type that accepts GetPlansFilterArgs and GetPlansFilterOutput values. You can construct a concrete instance of `GetPlansFilterInput` via:

GetPlansFilterArgs{...}

type GetPlansFilterOutput

type GetPlansFilterOutput struct{ *pulumi.OutputState }

func (GetPlansFilterOutput) All

If is set to true, the values are joined with an AND, and the requests returns only the results that match all specified values. Default is `false`.

All fields in the `plans` block defined below can be used as attribute for both `sort` and `filter` blocks.

func (GetPlansFilterOutput) Attribute

The attribute used to filter. Filter attributes are case-sensitive

func (GetPlansFilterOutput) ElementType

func (GetPlansFilterOutput) ElementType() reflect.Type

func (GetPlansFilterOutput) MatchBy

The type of comparison to apply. One of: `in` , `re`, `substring`, `lessThan`, `lessThanOrEqual`, `greaterThan`, `greaterThanOrEqual`. Default is `in`.

func (GetPlansFilterOutput) ToGetPlansFilterOutput

func (o GetPlansFilterOutput) ToGetPlansFilterOutput() GetPlansFilterOutput

func (GetPlansFilterOutput) ToGetPlansFilterOutputWithContext

func (o GetPlansFilterOutput) ToGetPlansFilterOutputWithContext(ctx context.Context) GetPlansFilterOutput

func (GetPlansFilterOutput) Values

The filter values. Filter values are case-sensitive. If you specify multiple values for a filter, the values are joined with an OR by default, and the request returns all results that match any of the specified values

type GetPlansOutputArgs

type GetPlansOutputArgs struct {
	// One or more attribute/values pairs to filter off of
	Filters GetPlansFilterArrayInput `pulumi:"filters"`
	// One or more attribute/direction pairs on which to sort results. If multiple
	// sorts are provided, they will be applied in order
	Sorts GetPlansSortArrayInput `pulumi:"sorts"`
}

A collection of arguments for invoking getPlans.

func (GetPlansOutputArgs) ElementType

func (GetPlansOutputArgs) ElementType() reflect.Type

type GetPlansPlan

type GetPlansPlan struct {
	// list of metros where the plan is available
	AvailableInMetros []string `pulumi:"availableInMetros"`
	// (**Deprecated**) list of facilities where the plan is available
	//
	// Deprecated: Use availableInMetros instead.  For more information, read the migration guide: https://registry.terraform.io/providers/equinix/equinix/latest/docs/guides/migration_guide_facilities_to_metros_devices
	AvailableIns []string `pulumi:"availableIns"`
	// plan class
	Class string `pulumi:"class"`
	// list of deployment types, e.g. on_demand, spot_market
	DeploymentTypes []string `pulumi:"deploymentTypes"`
	// description of the plan
	Description string `pulumi:"description"`
	// id of the plan
	Id string `pulumi:"id"`
	// flag showing if it's a legacy plan
	Legacy bool `pulumi:"legacy"`
	// plan line, e.g. baremetal
	Line string `pulumi:"line"`
	// name of the plan
	Name string `pulumi:"name"`
	// plan hourly price
	PricingHour float64 `pulumi:"pricingHour"`
	// plan monthly price
	PricingMonth float64 `pulumi:"pricingMonth"`
	// plan slug
	Slug string `pulumi:"slug"`
}

type GetPlansPlanArgs

type GetPlansPlanArgs struct {
	// list of metros where the plan is available
	AvailableInMetros pulumi.StringArrayInput `pulumi:"availableInMetros"`
	// (**Deprecated**) list of facilities where the plan is available
	//
	// Deprecated: Use availableInMetros instead.  For more information, read the migration guide: https://registry.terraform.io/providers/equinix/equinix/latest/docs/guides/migration_guide_facilities_to_metros_devices
	AvailableIns pulumi.StringArrayInput `pulumi:"availableIns"`
	// plan class
	Class pulumi.StringInput `pulumi:"class"`
	// list of deployment types, e.g. on_demand, spot_market
	DeploymentTypes pulumi.StringArrayInput `pulumi:"deploymentTypes"`
	// description of the plan
	Description pulumi.StringInput `pulumi:"description"`
	// id of the plan
	Id pulumi.StringInput `pulumi:"id"`
	// flag showing if it's a legacy plan
	Legacy pulumi.BoolInput `pulumi:"legacy"`
	// plan line, e.g. baremetal
	Line pulumi.StringInput `pulumi:"line"`
	// name of the plan
	Name pulumi.StringInput `pulumi:"name"`
	// plan hourly price
	PricingHour pulumi.Float64Input `pulumi:"pricingHour"`
	// plan monthly price
	PricingMonth pulumi.Float64Input `pulumi:"pricingMonth"`
	// plan slug
	Slug pulumi.StringInput `pulumi:"slug"`
}

func (GetPlansPlanArgs) ElementType

func (GetPlansPlanArgs) ElementType() reflect.Type

func (GetPlansPlanArgs) ToGetPlansPlanOutput

func (i GetPlansPlanArgs) ToGetPlansPlanOutput() GetPlansPlanOutput

func (GetPlansPlanArgs) ToGetPlansPlanOutputWithContext

func (i GetPlansPlanArgs) ToGetPlansPlanOutputWithContext(ctx context.Context) GetPlansPlanOutput

type GetPlansPlanArray

type GetPlansPlanArray []GetPlansPlanInput

func (GetPlansPlanArray) ElementType

func (GetPlansPlanArray) ElementType() reflect.Type

func (GetPlansPlanArray) ToGetPlansPlanArrayOutput

func (i GetPlansPlanArray) ToGetPlansPlanArrayOutput() GetPlansPlanArrayOutput

func (GetPlansPlanArray) ToGetPlansPlanArrayOutputWithContext

func (i GetPlansPlanArray) ToGetPlansPlanArrayOutputWithContext(ctx context.Context) GetPlansPlanArrayOutput

type GetPlansPlanArrayInput

type GetPlansPlanArrayInput interface {
	pulumi.Input

	ToGetPlansPlanArrayOutput() GetPlansPlanArrayOutput
	ToGetPlansPlanArrayOutputWithContext(context.Context) GetPlansPlanArrayOutput
}

GetPlansPlanArrayInput is an input type that accepts GetPlansPlanArray and GetPlansPlanArrayOutput values. You can construct a concrete instance of `GetPlansPlanArrayInput` via:

GetPlansPlanArray{ GetPlansPlanArgs{...} }

type GetPlansPlanArrayOutput

type GetPlansPlanArrayOutput struct{ *pulumi.OutputState }

func (GetPlansPlanArrayOutput) ElementType

func (GetPlansPlanArrayOutput) ElementType() reflect.Type

func (GetPlansPlanArrayOutput) Index

func (GetPlansPlanArrayOutput) ToGetPlansPlanArrayOutput

func (o GetPlansPlanArrayOutput) ToGetPlansPlanArrayOutput() GetPlansPlanArrayOutput

func (GetPlansPlanArrayOutput) ToGetPlansPlanArrayOutputWithContext

func (o GetPlansPlanArrayOutput) ToGetPlansPlanArrayOutputWithContext(ctx context.Context) GetPlansPlanArrayOutput

type GetPlansPlanInput

type GetPlansPlanInput interface {
	pulumi.Input

	ToGetPlansPlanOutput() GetPlansPlanOutput
	ToGetPlansPlanOutputWithContext(context.Context) GetPlansPlanOutput
}

GetPlansPlanInput is an input type that accepts GetPlansPlanArgs and GetPlansPlanOutput values. You can construct a concrete instance of `GetPlansPlanInput` via:

GetPlansPlanArgs{...}

type GetPlansPlanOutput

type GetPlansPlanOutput struct{ *pulumi.OutputState }

func (GetPlansPlanOutput) AvailableInMetros

func (o GetPlansPlanOutput) AvailableInMetros() pulumi.StringArrayOutput

list of metros where the plan is available

func (GetPlansPlanOutput) AvailableIns deprecated

func (o GetPlansPlanOutput) AvailableIns() pulumi.StringArrayOutput

(**Deprecated**) list of facilities where the plan is available

Deprecated: Use availableInMetros instead. For more information, read the migration guide: https://registry.terraform.io/providers/equinix/equinix/latest/docs/guides/migration_guide_facilities_to_metros_devices

func (GetPlansPlanOutput) Class

plan class

func (GetPlansPlanOutput) DeploymentTypes

func (o GetPlansPlanOutput) DeploymentTypes() pulumi.StringArrayOutput

list of deployment types, e.g. on_demand, spot_market

func (GetPlansPlanOutput) Description

func (o GetPlansPlanOutput) Description() pulumi.StringOutput

description of the plan

func (GetPlansPlanOutput) ElementType

func (GetPlansPlanOutput) ElementType() reflect.Type

func (GetPlansPlanOutput) Id

id of the plan

func (GetPlansPlanOutput) Legacy

flag showing if it's a legacy plan

func (GetPlansPlanOutput) Line

plan line, e.g. baremetal

func (GetPlansPlanOutput) Name

name of the plan

func (GetPlansPlanOutput) PricingHour

func (o GetPlansPlanOutput) PricingHour() pulumi.Float64Output

plan hourly price

func (GetPlansPlanOutput) PricingMonth

func (o GetPlansPlanOutput) PricingMonth() pulumi.Float64Output

plan monthly price

func (GetPlansPlanOutput) Slug

plan slug

func (GetPlansPlanOutput) ToGetPlansPlanOutput

func (o GetPlansPlanOutput) ToGetPlansPlanOutput() GetPlansPlanOutput

func (GetPlansPlanOutput) ToGetPlansPlanOutputWithContext

func (o GetPlansPlanOutput) ToGetPlansPlanOutputWithContext(ctx context.Context) GetPlansPlanOutput

type GetPlansResult

type GetPlansResult struct {
	Filters []GetPlansFilter `pulumi:"filters"`
	// The provider-assigned unique ID for this managed resource.
	Id    string         `pulumi:"id"`
	Plans []GetPlansPlan `pulumi:"plans"`
	Sorts []GetPlansSort `pulumi:"sorts"`
}

A collection of values returned by getPlans.

func GetPlans

func GetPlans(ctx *pulumi.Context, args *GetPlansArgs, opts ...pulumi.InvokeOption) (*GetPlansResult, error)

Provides an Equinix Metal plans datasource. This can be used to find plans that meet a filter criteria.

## Example Usage

<!--Start PulumiCodeChooser --> ```go package main

import (

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

)

func main() {
	pulumi.Run(func(ctx *pulumi.Context) error {
		example, err := metal.GetPlans(ctx, &metal.GetPlansArgs{
			Sorts: []metal.GetPlansSort{
				{
					Attribute: "pricing_hour",
					Direction: pulumi.StringRef("asc"),
				},
			},
			Filters: []metal.GetPlansFilter{
				{
					Attribute: "pricing_hour",
					Values: []string{
						"2.5",
					},
					MatchBy: pulumi.StringRef("less_than"),
				},
				{
					Attribute: "available_in_metros",
					Values: []string{
						"da",
						"sv",
					},
				},
			},
		}, nil)
		if err != nil {
			return err
		}
		ctx.Export("plans", example.Plans)
		return nil
	})
}

``` <!--End PulumiCodeChooser -->

<!--Start PulumiCodeChooser --> ```go package main

import (

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

)

func main() {
	pulumi.Run(func(ctx *pulumi.Context) error {
		example, err := metal.GetPlans(ctx, &metal.GetPlansArgs{
			Filters: pulumi.Array{
				metal.GetPlansFilter{
					Attribute: "class",
					Values: []string{
						"large",
					},
					MatchBy: pulumi.StringRef("substring"),
				},
				metal.GetPlansFilter{
					Attribute: "deployment_types",
					Values: []string{
						"spot_market",
					},
				},
				metal.GetPlansFilter{
					Attribute: "available_in_metros",
					Values: []string{
						"da",
						"sv",
					},
					All: pulumi.BoolRef(true),
				},
			},
		}, nil)
		if err != nil {
			return err
		}
		ctx.Export("plans", example.Plans)
		return nil
	})
}

``` <!--End PulumiCodeChooser -->

### Ignoring Changes to Plans/Metro

Preserve deployed device plan, facility and metro when creating a new execution plan.

As described in the `data-resource-behavior` feature as shown in the example below.

<!--Start PulumiCodeChooser --> ```go package main

import (

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

)

func main() {
	pulumi.Run(func(ctx *pulumi.Context) error {
		examplePlans, err := metal.GetPlans(ctx, &metal.GetPlansArgs{
			Sorts: []metal.GetPlansSort{
				{
					Attribute: "pricing_hour",
					Direction: pulumi.StringRef("asc"),
				},
			},
			Filters: []metal.GetPlansFilter{
				{
					Attribute: "name",
					Values: []string{
						"c3.small.x86",
						"c3.medium.x86",
						"m3.large.x86",
					},
				},
				{
					Attribute: "available_in_metros",
					Values: []string{
						"sv",
					},
				},
			},
		}, nil)
		if err != nil {
			return err
		}
		// This equinix_metal_device will use the first returned plan and the first metro in which that plan is available
		// It will ignore future changes on plan and metro
		_, err = metal.NewDevice(ctx, "exampleDevice", &metal.DeviceArgs{
			Hostname:        pulumi.String("example"),
			Plan:            examplePlans.Plans[0].Name.ApplyT(func(x *string) metal.Plan { return metal.Plan(*x) }).(metal.PlanOutput),
			Metro:           pulumi.String(examplePlans.Plans[0].AvailableInMetros[0]),
			OperatingSystem: pulumi.String(metal.OperatingSystem_Ubuntu20_04),
			BillingCycle:    pulumi.String(metal.BillingCycleHourly),
			ProjectId:       pulumi.Any(_var.Project_id),
		})
		if err != nil {
			return err
		}
		return nil
	})
}

``` <!--End PulumiCodeChooser -->

If your use case requires dynamic changes of a device plan or metro you can define the lifecycle with a condition.

<!--Start PulumiCodeChooser --> ```go package main

import (

"github.com/equinix/pulumi-equinix/sdk/go/equinix/metal"
"github.com/pulumi/pulumi/sdk/v3/go/pulumi"
"github.com/pulumi/pulumi/sdk/v3/go/pulumi/config"

)

func main() {
	pulumi.Run(func(ctx *pulumi.Context) error {
		cfg := config.New(ctx, "")
		ignorePlansMetrosChanges := false
		if param := cfg.GetBool("ignorePlansMetrosChanges"); param {
			ignorePlansMetrosChanges = param
		}
		_, err := metal.GetPlans(ctx, nil, nil)
		if err != nil {
			return err
		}
		// required device arguments
		_, err = metal.NewDevice(ctx, "exampleDevice", nil)
		if err != nil {
			return err
		}
		return nil
	})
}

``` <!--End PulumiCodeChooser -->

type GetPlansResultOutput

type GetPlansResultOutput struct{ *pulumi.OutputState }

A collection of values returned by getPlans.

func (GetPlansResultOutput) ElementType

func (GetPlansResultOutput) ElementType() reflect.Type

func (GetPlansResultOutput) Filters

func (GetPlansResultOutput) Id

The provider-assigned unique ID for this managed resource.

func (GetPlansResultOutput) Plans

func (GetPlansResultOutput) Sorts

func (GetPlansResultOutput) ToGetPlansResultOutput

func (o GetPlansResultOutput) ToGetPlansResultOutput() GetPlansResultOutput

func (GetPlansResultOutput) ToGetPlansResultOutputWithContext

func (o GetPlansResultOutput) ToGetPlansResultOutputWithContext(ctx context.Context) GetPlansResultOutput

type GetPlansSort

type GetPlansSort struct {
	// The attribute used to filter. Filter attributes are case-sensitive
	Attribute string `pulumi:"attribute"`
	// Sort results in ascending or descending order. Strings are sorted in alphabetical order. One of: asc, desc
	Direction *string `pulumi:"direction"`
}

type GetPlansSortArgs

type GetPlansSortArgs struct {
	// The attribute used to filter. Filter attributes are case-sensitive
	Attribute pulumi.StringInput `pulumi:"attribute"`
	// Sort results in ascending or descending order. Strings are sorted in alphabetical order. One of: asc, desc
	Direction pulumi.StringPtrInput `pulumi:"direction"`
}

func (GetPlansSortArgs) ElementType

func (GetPlansSortArgs) ElementType() reflect.Type

func (GetPlansSortArgs) ToGetPlansSortOutput

func (i GetPlansSortArgs) ToGetPlansSortOutput() GetPlansSortOutput

func (GetPlansSortArgs) ToGetPlansSortOutputWithContext

func (i GetPlansSortArgs) ToGetPlansSortOutputWithContext(ctx context.Context) GetPlansSortOutput

type GetPlansSortArray

type GetPlansSortArray []GetPlansSortInput

func (GetPlansSortArray) ElementType

func (GetPlansSortArray) ElementType() reflect.Type

func (GetPlansSortArray) ToGetPlansSortArrayOutput

func (i GetPlansSortArray) ToGetPlansSortArrayOutput() GetPlansSortArrayOutput

func (GetPlansSortArray) ToGetPlansSortArrayOutputWithContext

func (i GetPlansSortArray) ToGetPlansSortArrayOutputWithContext(ctx context.Context) GetPlansSortArrayOutput

type GetPlansSortArrayInput

type GetPlansSortArrayInput interface {
	pulumi.Input

	ToGetPlansSortArrayOutput() GetPlansSortArrayOutput
	ToGetPlansSortArrayOutputWithContext(context.Context) GetPlansSortArrayOutput
}

GetPlansSortArrayInput is an input type that accepts GetPlansSortArray and GetPlansSortArrayOutput values. You can construct a concrete instance of `GetPlansSortArrayInput` via:

GetPlansSortArray{ GetPlansSortArgs{...} }

type GetPlansSortArrayOutput

type GetPlansSortArrayOutput struct{ *pulumi.OutputState }

func (GetPlansSortArrayOutput) ElementType

func (GetPlansSortArrayOutput) ElementType() reflect.Type

func (GetPlansSortArrayOutput) Index

func (GetPlansSortArrayOutput) ToGetPlansSortArrayOutput

func (o GetPlansSortArrayOutput) ToGetPlansSortArrayOutput() GetPlansSortArrayOutput

func (GetPlansSortArrayOutput) ToGetPlansSortArrayOutputWithContext

func (o GetPlansSortArrayOutput) ToGetPlansSortArrayOutputWithContext(ctx context.Context) GetPlansSortArrayOutput

type GetPlansSortInput

type GetPlansSortInput interface {
	pulumi.Input

	ToGetPlansSortOutput() GetPlansSortOutput
	ToGetPlansSortOutputWithContext(context.Context) GetPlansSortOutput
}

GetPlansSortInput is an input type that accepts GetPlansSortArgs and GetPlansSortOutput values. You can construct a concrete instance of `GetPlansSortInput` via:

GetPlansSortArgs{...}

type GetPlansSortOutput

type GetPlansSortOutput struct{ *pulumi.OutputState }

func (GetPlansSortOutput) Attribute

func (o GetPlansSortOutput) Attribute() pulumi.StringOutput

The attribute used to filter. Filter attributes are case-sensitive

func (GetPlansSortOutput) Direction

Sort results in ascending or descending order. Strings are sorted in alphabetical order. One of: asc, desc

func (GetPlansSortOutput) ElementType

func (GetPlansSortOutput) ElementType() reflect.Type

func (GetPlansSortOutput) ToGetPlansSortOutput

func (o GetPlansSortOutput) ToGetPlansSortOutput() GetPlansSortOutput

func (GetPlansSortOutput) ToGetPlansSortOutputWithContext

func (o GetPlansSortOutput) ToGetPlansSortOutputWithContext(ctx context.Context) GetPlansSortOutput

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. (for non-global blocks). Use metro instead; read the facility to metro migration guide
	Facility *string `pulumi:"facility"`
	// Whether to look for global block. Default is false for backward compatibility.
	Global *bool `pulumi:"global"`
	// Metro of the searched block (for non-global blocks).
	Metro *string `pulumi:"metro"`
	// 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 GetPrecreatedIpBlockOutputArgs

type GetPrecreatedIpBlockOutputArgs struct {
	// 4 or 6, depending on which block you are looking for.
	AddressFamily pulumi.IntInput `pulumi:"addressFamily"`
	// Facility of the searched block. (for non-global blocks). Use metro instead; read the facility to metro migration guide
	Facility pulumi.StringPtrInput `pulumi:"facility"`
	// Whether to look for global block. Default is false for backward compatibility.
	Global pulumi.BoolPtrInput `pulumi:"global"`
	// Metro of the searched block (for non-global blocks).
	Metro pulumi.StringPtrInput `pulumi:"metro"`
	// ID of the project where the searched block should be.
	ProjectId pulumi.StringInput `pulumi:"projectId"`
	// Whether to look for public or private block.
	Public pulumi.BoolInput `pulumi:"public"`
}

A collection of arguments for invoking getPrecreatedIpBlock.

func (GetPrecreatedIpBlockOutputArgs) ElementType

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"`
	Metro      *string `pulumi:"metro"`
	Netmask    string  `pulumi:"netmask"`
	Network    string  `pulumi:"network"`
	ProjectId  string  `pulumi:"projectId"`
	Public     bool    `pulumi:"public"`
	Quantity   int     `pulumi:"quantity"`
	Type       string  `pulumi:"type"`
	VrfId      string  `pulumi:"vrfId"`
}

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 (management) IPv6 and IPv4 blocks in Equinix Metal. You can then use the cidrsubnet TF builtin function to derive subnets.

> For backward compatibility, this data source will also return reserved (elastic) IP blocks.

> Precreated (management) IP blocks for a metro will not be available until first device is created in that metro.

> Public IPv4 blocks auto-assigned (management) to a device cannot be retrieved. If you need that information, consider using the metal.Device data source instead.

type GetPrecreatedIpBlockResultOutput

type GetPrecreatedIpBlockResultOutput struct{ *pulumi.OutputState }

A collection of values returned by getPrecreatedIpBlock.

func (GetPrecreatedIpBlockResultOutput) Address

func (GetPrecreatedIpBlockResultOutput) AddressFamily

func (GetPrecreatedIpBlockResultOutput) Cidr

func (GetPrecreatedIpBlockResultOutput) CidrNotation

CIDR notation of the looked up block.

func (GetPrecreatedIpBlockResultOutput) ElementType

func (GetPrecreatedIpBlockResultOutput) Facility

func (GetPrecreatedIpBlockResultOutput) Gateway

func (GetPrecreatedIpBlockResultOutput) Global

func (GetPrecreatedIpBlockResultOutput) Id

The provider-assigned unique ID for this managed resource.

func (GetPrecreatedIpBlockResultOutput) Manageable

func (GetPrecreatedIpBlockResultOutput) Management

func (GetPrecreatedIpBlockResultOutput) Metro

func (GetPrecreatedIpBlockResultOutput) Netmask

func (GetPrecreatedIpBlockResultOutput) Network

func (GetPrecreatedIpBlockResultOutput) ProjectId

func (GetPrecreatedIpBlockResultOutput) Public

func (GetPrecreatedIpBlockResultOutput) Quantity

func (GetPrecreatedIpBlockResultOutput) ToGetPrecreatedIpBlockResultOutput

func (o GetPrecreatedIpBlockResultOutput) ToGetPrecreatedIpBlockResultOutput() GetPrecreatedIpBlockResultOutput

func (GetPrecreatedIpBlockResultOutput) ToGetPrecreatedIpBlockResultOutputWithContext

func (o GetPrecreatedIpBlockResultOutput) ToGetPrecreatedIpBlockResultOutputWithContext(ctx context.Context) GetPrecreatedIpBlockResultOutput

func (GetPrecreatedIpBlockResultOutput) Type

func (GetPrecreatedIpBlockResultOutput) VrfId

type GetProjectBgpConfig

type GetProjectBgpConfig struct {
	// Autonomous System Number for local BGP deployment.
	Asn int `pulumi:"asn"`
	// One of `private`, `public`.
	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"`
	// One of `private`, `public`.
	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.StringInput `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

One of `private`, `public`.

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. Use metro instead; read the facility to metro migration guide
	//
	// Deprecated: Use metro instead of facility.  For more information, read the migration guide: https://registry.terraform.io/providers/equinix/equinix/latest/docs/guides/migration_guide_facilities_to_metros_devices
	Facility *string `pulumi:"facility"`
	// Name of the metro.
	Metro *string `pulumi:"metro"`
	// Name of the plan.
	Plan string `pulumi:"plan"`
}

A collection of arguments for invoking getSpotMarketPrice.

type GetSpotMarketPriceOutputArgs

type GetSpotMarketPriceOutputArgs struct {
	// Name of the facility. Use metro instead; read the facility to metro migration guide
	//
	// Deprecated: Use metro instead of facility.  For more information, read the migration guide: https://registry.terraform.io/providers/equinix/equinix/latest/docs/guides/migration_guide_facilities_to_metros_devices
	Facility pulumi.StringPtrInput `pulumi:"facility"`
	// Name of the metro.
	Metro pulumi.StringPtrInput `pulumi:"metro"`
	// Name of the plan.
	Plan pulumi.StringInput `pulumi:"plan"`
}

A collection of arguments for invoking getSpotMarketPrice.

func (GetSpotMarketPriceOutputArgs) ElementType

type GetSpotMarketPriceResult

type GetSpotMarketPriceResult struct {
	// Deprecated: Use metro instead of facility.  For more information, read the migration guide: https://registry.terraform.io/providers/equinix/equinix/latest/docs/guides/migration_guide_facilities_to_metros_devices
	Facility *string `pulumi:"facility"`
	// The provider-assigned unique ID for this managed resource.
	Id    string  `pulumi:"id"`
	Metro *string `pulumi:"metro"`
	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 for a plan.

## Example Usage

Lookup by metro:

<!--Start PulumiCodeChooser --> ```go package main

import (

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

)

func main() {
	pulumi.Run(func(ctx *pulumi.Context) error {
		_, err := metal.GetSpotMarketPrice(ctx, &metal.GetSpotMarketPriceArgs{
			Metro: pulumi.StringRef("sv"),
			Plan:  "c3.small.x86",
		}, nil)
		if err != nil {
			return err
		}
		return nil
	})
}

``` <!--End PulumiCodeChooser -->

type GetSpotMarketPriceResultOutput

type GetSpotMarketPriceResultOutput struct{ *pulumi.OutputState }

A collection of values returned by getSpotMarketPrice.

func (GetSpotMarketPriceResultOutput) ElementType

func (GetSpotMarketPriceResultOutput) Facility deprecated

Deprecated: Use metro instead of facility. For more information, read the migration guide: https://registry.terraform.io/providers/equinix/equinix/latest/docs/guides/migration_guide_facilities_to_metros_devices

func (GetSpotMarketPriceResultOutput) Id

The provider-assigned unique ID for this managed resource.

func (GetSpotMarketPriceResultOutput) Metro

func (GetSpotMarketPriceResultOutput) Plan

func (GetSpotMarketPriceResultOutput) Price

Current spot market price for given plan in given facility.

func (GetSpotMarketPriceResultOutput) ToGetSpotMarketPriceResultOutput

func (o GetSpotMarketPriceResultOutput) ToGetSpotMarketPriceResultOutput() GetSpotMarketPriceResultOutput

func (GetSpotMarketPriceResultOutput) ToGetSpotMarketPriceResultOutputWithContext

func (o GetSpotMarketPriceResultOutput) ToGetSpotMarketPriceResultOutputWithContext(ctx context.Context) GetSpotMarketPriceResultOutput

type Interconnection

type Interconnection struct {
	pulumi.CustomResourceState

	// Only used with Fabric Shared connection. Fabric uses this token to be able to give more detailed information about the
	// Metal end of the network, when viewing resources from within Fabric.
	AuthorizationCode pulumi.StringOutput `pulumi:"authorizationCode"`
	// The preferred email used for communication and notifications about the Equinix Fabric interconnection. Required when using a Project API key. Optional and defaults to the primary user email address when using a User API key.
	ContactEmail pulumi.StringOutput `pulumi:"contactEmail"`
	// Description for the connection resource.
	Description pulumi.StringOutput `pulumi:"description"`
	// Facility where the connection will be created.   Use metro instead; read the facility to metro migration guide
	//
	// Deprecated: Use metro instead of facility. For more information, read the migration guide.
	Facility pulumi.StringOutput `pulumi:"facility"`
	// Metro where the connection will be created.
	Metro pulumi.StringOutput `pulumi:"metro"`
	// Mode for connections in IBX facilities with the dedicated type - standard or tunnel. Default is standard.
	Mode pulumi.StringOutput `pulumi:"mode"`
	// Name of the connection resource
	Name pulumi.StringOutput `pulumi:"name"`
	// ID of the organization where the connection is scoped to.
	OrganizationId pulumi.StringOutput `pulumi:"organizationId"`
	// List of connection ports - primary (`ports[0]`) and secondary (`ports[1]`). Schema of
	// port is described in documentation of the
	// metal.Interconnection datasource.
	Ports InterconnectionPortArrayOutput `pulumi:"ports"`
	// ID of the project where the connection is scoped to, must be set for.
	ProjectId pulumi.StringPtrOutput `pulumi:"projectId"`
	// Connection redundancy - redundant or primary.
	Redundancy pulumi.StringOutput `pulumi:"redundancy"`
	// Only used with shared connection. Type of service token to use for the connection, a_side or z_side
	ServiceTokenType pulumi.StringPtrOutput `pulumi:"serviceTokenType"`
	// List of connection service tokens with attributes required to configure the connection in Equinix Fabric with the equinixEcxL2Connection resource or from the [Equinix Fabric Portal](https://ecxfabric.equinix.com/dashboard). Scehma of serviceToken is described in documentation of the metal.Interconnection datasource.
	ServiceTokens InterconnectionServiceTokenArrayOutput `pulumi:"serviceTokens"`
	// Connection speed -  Values must be in the format '<number>Mbps' or '<number>Gpbs', for example '100Mbps' or '50Gbps'.  Actual supported values will depend on the connection type and whether the connection uses VLANs or VRF.
	Speed pulumi.StringOutput `pulumi:"speed"`
	// Status of the connection resource.
	Status pulumi.StringOutput `pulumi:"status"`
	// String list of tags.
	Tags pulumi.StringArrayOutput `pulumi:"tags"`
	// (Deprecated) Fabric Token required to configure the connection in Equinix Fabric with the equinixEcxL2Connection resource or from the [Equinix Fabric Portal](https://ecxfabric.equinix.com/dashboard). If your organization already has connection service tokens enabled, use `serviceTokens` instead.
	//
	// Deprecated: If your organization already has connection service tokens enabled, use `serviceTokens` instead
	Token pulumi.StringOutput `pulumi:"token"`
	// Connection type - dedicated or shared.
	Type pulumi.StringOutput `pulumi:"type"`
	// Only used with shared connection. Vlans to attach. Pass one vlan for Primary/Single connection and two vlans for Redundant connection.
	Vlans pulumi.IntArrayOutput `pulumi:"vlans"`
	// Only used with shared connection. VRFs to attach. Pass one VRF for Primary/Single connection and two VRFs for Redundant
	// connection
	Vrfs pulumi.StringArrayOutput `pulumi:"vrfs"`
}

Use this resource to request the creation an Interconnection asset to connect with other parties using [Equinix Fabric - software-defined interconnections](https://metal.equinix.com/developers/docs/networking/fabric/).

> Equinix Metal connection with with Service Token A-side / Z-side (service_token_type) is not generally available and may not be enabled yet for your organization.

## Example Usage ```go package main

import (

"fmt"

"github.com/equinix/pulumi-equinix/sdk/go/equinix/metal"
"github.com/pulumi/pulumi/sdk/v3/go/pulumi"
"github.com/pulumi/pulumi/sdk/v3/go/pulumi/config"

)

func main() {
	pulumi.Run(func(ctx *pulumi.Context) error {
		cfg := config.New(ctx, "")
		projectId := cfg.Require("projectId")
		metro := "SV"
		if param := cfg.Get("metro"); param != "" {
			metro = param
		}
		speedInMbps := 200
		if param := cfg.GetInt("speedInMbps"); param != 0 {
			speedInMbps = param
		}
		connection, err := metal.NewInterconnection(ctx, "connection", &metal.InterconnectionArgs{
			Name:             pulumi.String("fabric-port-to-metal"),
			ProjectId:        pulumi.String(projectId),
			Type:             pulumi.String("shared"),
			Redundancy:       pulumi.String("primary"),
			Metro:            pulumi.String(metro),
			Speed:            pulumi.String(fmt.Sprintf("%vMbps", speedInMbps)),
			ServiceTokenType: pulumi.String("z_side"),
		})
		if err != nil {
			return err
		}
		ctx.Export("connectionStatus", connection.Status)
		ctx.Export("connectionTokens", connection.ServiceTokens)
		return nil
	})
}

```

func GetInterconnection

func GetInterconnection(ctx *pulumi.Context,
	name string, id pulumi.IDInput, state *InterconnectionState, opts ...pulumi.ResourceOption) (*Interconnection, error)

GetInterconnection gets an existing Interconnection 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 NewInterconnection

func NewInterconnection(ctx *pulumi.Context,
	name string, args *InterconnectionArgs, opts ...pulumi.ResourceOption) (*Interconnection, error)

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

func (*Interconnection) ElementType

func (*Interconnection) ElementType() reflect.Type

func (*Interconnection) ToInterconnectionOutput

func (i *Interconnection) ToInterconnectionOutput() InterconnectionOutput

func (*Interconnection) ToInterconnectionOutputWithContext

func (i *Interconnection) ToInterconnectionOutputWithContext(ctx context.Context) InterconnectionOutput

type InterconnectionArgs

type InterconnectionArgs struct {
	// The preferred email used for communication and notifications about the Equinix Fabric interconnection. Required when using a Project API key. Optional and defaults to the primary user email address when using a User API key.
	ContactEmail pulumi.StringPtrInput
	// Description for the connection resource.
	Description pulumi.StringPtrInput
	// Facility where the connection will be created.   Use metro instead; read the facility to metro migration guide
	//
	// Deprecated: Use metro instead of facility. For more information, read the migration guide.
	Facility pulumi.StringPtrInput
	// Metro where the connection will be created.
	Metro pulumi.StringPtrInput
	// Mode for connections in IBX facilities with the dedicated type - standard or tunnel. Default is standard.
	Mode pulumi.StringPtrInput
	// Name of the connection resource
	Name pulumi.StringPtrInput
	// ID of the organization where the connection is scoped to.
	OrganizationId pulumi.StringPtrInput
	// ID of the project where the connection is scoped to, must be set for.
	ProjectId pulumi.StringPtrInput
	// Connection redundancy - redundant or primary.
	Redundancy pulumi.StringInput
	// Only used with shared connection. Type of service token to use for the connection, a_side or z_side
	ServiceTokenType pulumi.StringPtrInput
	// Connection speed -  Values must be in the format '<number>Mbps' or '<number>Gpbs', for example '100Mbps' or '50Gbps'.  Actual supported values will depend on the connection type and whether the connection uses VLANs or VRF.
	Speed pulumi.StringPtrInput
	// String list of tags.
	Tags pulumi.StringArrayInput
	// Connection type - dedicated or shared.
	Type pulumi.StringInput
	// Only used with shared connection. Vlans to attach. Pass one vlan for Primary/Single connection and two vlans for Redundant connection.
	Vlans pulumi.IntArrayInput
	// Only used with shared connection. VRFs to attach. Pass one VRF for Primary/Single connection and two VRFs for Redundant
	// connection
	Vrfs pulumi.StringArrayInput
}

The set of arguments for constructing a Interconnection resource.

func (InterconnectionArgs) ElementType

func (InterconnectionArgs) ElementType() reflect.Type

type InterconnectionArray

type InterconnectionArray []InterconnectionInput

func (InterconnectionArray) ElementType

func (InterconnectionArray) ElementType() reflect.Type

func (InterconnectionArray) ToInterconnectionArrayOutput

func (i InterconnectionArray) ToInterconnectionArrayOutput() InterconnectionArrayOutput

func (InterconnectionArray) ToInterconnectionArrayOutputWithContext

func (i InterconnectionArray) ToInterconnectionArrayOutputWithContext(ctx context.Context) InterconnectionArrayOutput

type InterconnectionArrayInput

type InterconnectionArrayInput interface {
	pulumi.Input

	ToInterconnectionArrayOutput() InterconnectionArrayOutput
	ToInterconnectionArrayOutputWithContext(context.Context) InterconnectionArrayOutput
}

InterconnectionArrayInput is an input type that accepts InterconnectionArray and InterconnectionArrayOutput values. You can construct a concrete instance of `InterconnectionArrayInput` via:

InterconnectionArray{ InterconnectionArgs{...} }

type InterconnectionArrayOutput

type InterconnectionArrayOutput struct{ *pulumi.OutputState }

func (InterconnectionArrayOutput) ElementType

func (InterconnectionArrayOutput) ElementType() reflect.Type

func (InterconnectionArrayOutput) Index

func (InterconnectionArrayOutput) ToInterconnectionArrayOutput

func (o InterconnectionArrayOutput) ToInterconnectionArrayOutput() InterconnectionArrayOutput

func (InterconnectionArrayOutput) ToInterconnectionArrayOutputWithContext

func (o InterconnectionArrayOutput) ToInterconnectionArrayOutputWithContext(ctx context.Context) InterconnectionArrayOutput

type InterconnectionInput

type InterconnectionInput interface {
	pulumi.Input

	ToInterconnectionOutput() InterconnectionOutput
	ToInterconnectionOutputWithContext(ctx context.Context) InterconnectionOutput
}

type InterconnectionMap

type InterconnectionMap map[string]InterconnectionInput

func (InterconnectionMap) ElementType

func (InterconnectionMap) ElementType() reflect.Type

func (InterconnectionMap) ToInterconnectionMapOutput

func (i InterconnectionMap) ToInterconnectionMapOutput() InterconnectionMapOutput

func (InterconnectionMap) ToInterconnectionMapOutputWithContext

func (i InterconnectionMap) ToInterconnectionMapOutputWithContext(ctx context.Context) InterconnectionMapOutput

type InterconnectionMapInput

type InterconnectionMapInput interface {
	pulumi.Input

	ToInterconnectionMapOutput() InterconnectionMapOutput
	ToInterconnectionMapOutputWithContext(context.Context) InterconnectionMapOutput
}

InterconnectionMapInput is an input type that accepts InterconnectionMap and InterconnectionMapOutput values. You can construct a concrete instance of `InterconnectionMapInput` via:

InterconnectionMap{ "key": InterconnectionArgs{...} }

type InterconnectionMapOutput

type InterconnectionMapOutput struct{ *pulumi.OutputState }

func (InterconnectionMapOutput) ElementType

func (InterconnectionMapOutput) ElementType() reflect.Type

func (InterconnectionMapOutput) MapIndex

func (InterconnectionMapOutput) ToInterconnectionMapOutput

func (o InterconnectionMapOutput) ToInterconnectionMapOutput() InterconnectionMapOutput

func (InterconnectionMapOutput) ToInterconnectionMapOutputWithContext

func (o InterconnectionMapOutput) ToInterconnectionMapOutputWithContext(ctx context.Context) InterconnectionMapOutput

type InterconnectionOutput

type InterconnectionOutput struct{ *pulumi.OutputState }

func (InterconnectionOutput) AuthorizationCode

func (o InterconnectionOutput) AuthorizationCode() pulumi.StringOutput

Only used with Fabric Shared connection. Fabric uses this token to be able to give more detailed information about the Metal end of the network, when viewing resources from within Fabric.

func (InterconnectionOutput) ContactEmail

func (o InterconnectionOutput) ContactEmail() pulumi.StringOutput

The preferred email used for communication and notifications about the Equinix Fabric interconnection. Required when using a Project API key. Optional and defaults to the primary user email address when using a User API key.

func (InterconnectionOutput) Description

func (o InterconnectionOutput) Description() pulumi.StringOutput

Description for the connection resource.

func (InterconnectionOutput) ElementType

func (InterconnectionOutput) ElementType() reflect.Type

func (InterconnectionOutput) Facility deprecated

Facility where the connection will be created. Use metro instead; read the facility to metro migration guide

Deprecated: Use metro instead of facility. For more information, read the migration guide.

func (InterconnectionOutput) Metro

Metro where the connection will be created.

func (InterconnectionOutput) Mode

Mode for connections in IBX facilities with the dedicated type - standard or tunnel. Default is standard.

func (InterconnectionOutput) Name

Name of the connection resource

func (InterconnectionOutput) OrganizationId

func (o InterconnectionOutput) OrganizationId() pulumi.StringOutput

ID of the organization where the connection is scoped to.

func (InterconnectionOutput) Ports

List of connection ports - primary (`ports[0]`) and secondary (`ports[1]`). Schema of port is described in documentation of the metal.Interconnection datasource.

func (InterconnectionOutput) ProjectId

ID of the project where the connection is scoped to, must be set for.

func (InterconnectionOutput) Redundancy

func (o InterconnectionOutput) Redundancy() pulumi.StringOutput

Connection redundancy - redundant or primary.

func (InterconnectionOutput) ServiceTokenType

func (o InterconnectionOutput) ServiceTokenType() pulumi.StringPtrOutput

Only used with shared connection. Type of service token to use for the connection, a_side or z_side

func (InterconnectionOutput) ServiceTokens

List of connection service tokens with attributes required to configure the connection in Equinix Fabric with the equinixEcxL2Connection resource or from the [Equinix Fabric Portal](https://ecxfabric.equinix.com/dashboard). Scehma of serviceToken is described in documentation of the metal.Interconnection datasource.

func (InterconnectionOutput) Speed

Connection speed - Values must be in the format '<number>Mbps' or '<number>Gpbs', for example '100Mbps' or '50Gbps'. Actual supported values will depend on the connection type and whether the connection uses VLANs or VRF.

func (InterconnectionOutput) Status

Status of the connection resource.

func (InterconnectionOutput) Tags

String list of tags.

func (InterconnectionOutput) ToInterconnectionOutput

func (o InterconnectionOutput) ToInterconnectionOutput() InterconnectionOutput

func (InterconnectionOutput) ToInterconnectionOutputWithContext

func (o InterconnectionOutput) ToInterconnectionOutputWithContext(ctx context.Context) InterconnectionOutput

func (InterconnectionOutput) Token deprecated

(Deprecated) Fabric Token required to configure the connection in Equinix Fabric with the equinixEcxL2Connection resource or from the [Equinix Fabric Portal](https://ecxfabric.equinix.com/dashboard). If your organization already has connection service tokens enabled, use `serviceTokens` instead.

Deprecated: If your organization already has connection service tokens enabled, use `serviceTokens` instead

func (InterconnectionOutput) Type

Connection type - dedicated or shared.

func (InterconnectionOutput) Vlans

Only used with shared connection. Vlans to attach. Pass one vlan for Primary/Single connection and two vlans for Redundant connection.

func (InterconnectionOutput) Vrfs

Only used with shared connection. VRFs to attach. Pass one VRF for Primary/Single connection and two VRFs for Redundant connection

type InterconnectionPort

type InterconnectionPort struct {
	Id         string `pulumi:"id"`
	LinkStatus string `pulumi:"linkStatus"`
	// Name of the connection resource
	Name string `pulumi:"name"`
	Role string `pulumi:"role"`
	// Connection speed -  Values must be in the format '<number>Mbps' or '<number>Gpbs', for example '100Mbps' or '50Gbps'.  Actual supported values will depend on the connection type and whether the connection uses VLANs or VRF.
	Speed int `pulumi:"speed"`
	// Status of the connection resource.
	Status            string        `pulumi:"status"`
	VirtualCircuitIds []interface{} `pulumi:"virtualCircuitIds"`
}

type InterconnectionPortArgs

type InterconnectionPortArgs struct {
	Id         pulumi.StringInput `pulumi:"id"`
	LinkStatus pulumi.StringInput `pulumi:"linkStatus"`
	// Name of the connection resource
	Name pulumi.StringInput `pulumi:"name"`
	Role pulumi.StringInput `pulumi:"role"`
	// Connection speed -  Values must be in the format '<number>Mbps' or '<number>Gpbs', for example '100Mbps' or '50Gbps'.  Actual supported values will depend on the connection type and whether the connection uses VLANs or VRF.
	Speed pulumi.IntInput `pulumi:"speed"`
	// Status of the connection resource.
	Status            pulumi.StringInput `pulumi:"status"`
	VirtualCircuitIds pulumi.ArrayInput  `pulumi:"virtualCircuitIds"`
}

func (InterconnectionPortArgs) ElementType

func (InterconnectionPortArgs) ElementType() reflect.Type

func (InterconnectionPortArgs) ToInterconnectionPortOutput

func (i InterconnectionPortArgs) ToInterconnectionPortOutput() InterconnectionPortOutput

func (InterconnectionPortArgs) ToInterconnectionPortOutputWithContext

func (i InterconnectionPortArgs) ToInterconnectionPortOutputWithContext(ctx context.Context) InterconnectionPortOutput

type InterconnectionPortArray

type InterconnectionPortArray []InterconnectionPortInput

func (InterconnectionPortArray) ElementType

func (InterconnectionPortArray) ElementType() reflect.Type

func (InterconnectionPortArray) ToInterconnectionPortArrayOutput

func (i InterconnectionPortArray) ToInterconnectionPortArrayOutput() InterconnectionPortArrayOutput

func (InterconnectionPortArray) ToInterconnectionPortArrayOutputWithContext

func (i InterconnectionPortArray) ToInterconnectionPortArrayOutputWithContext(ctx context.Context) InterconnectionPortArrayOutput

type InterconnectionPortArrayInput

type InterconnectionPortArrayInput interface {
	pulumi.Input

	ToInterconnectionPortArrayOutput() InterconnectionPortArrayOutput
	ToInterconnectionPortArrayOutputWithContext(context.Context) InterconnectionPortArrayOutput
}

InterconnectionPortArrayInput is an input type that accepts InterconnectionPortArray and InterconnectionPortArrayOutput values. You can construct a concrete instance of `InterconnectionPortArrayInput` via:

InterconnectionPortArray{ InterconnectionPortArgs{...} }

type InterconnectionPortArrayOutput

type InterconnectionPortArrayOutput struct{ *pulumi.OutputState }

func (InterconnectionPortArrayOutput) ElementType

func (InterconnectionPortArrayOutput) Index

func (InterconnectionPortArrayOutput) ToInterconnectionPortArrayOutput

func (o InterconnectionPortArrayOutput) ToInterconnectionPortArrayOutput() InterconnectionPortArrayOutput

func (InterconnectionPortArrayOutput) ToInterconnectionPortArrayOutputWithContext

func (o InterconnectionPortArrayOutput) ToInterconnectionPortArrayOutputWithContext(ctx context.Context) InterconnectionPortArrayOutput

type InterconnectionPortInput

type InterconnectionPortInput interface {
	pulumi.Input

	ToInterconnectionPortOutput() InterconnectionPortOutput
	ToInterconnectionPortOutputWithContext(context.Context) InterconnectionPortOutput
}

InterconnectionPortInput is an input type that accepts InterconnectionPortArgs and InterconnectionPortOutput values. You can construct a concrete instance of `InterconnectionPortInput` via:

InterconnectionPortArgs{...}

type InterconnectionPortOutput

type InterconnectionPortOutput struct{ *pulumi.OutputState }

func (InterconnectionPortOutput) ElementType

func (InterconnectionPortOutput) ElementType() reflect.Type

func (InterconnectionPortOutput) Id

func (InterconnectionPortOutput) LinkStatus

func (InterconnectionPortOutput) Name

Name of the connection resource

func (InterconnectionPortOutput) Role

func (InterconnectionPortOutput) Speed

Connection speed - Values must be in the format '<number>Mbps' or '<number>Gpbs', for example '100Mbps' or '50Gbps'. Actual supported values will depend on the connection type and whether the connection uses VLANs or VRF.

func (InterconnectionPortOutput) Status

Status of the connection resource.

func (InterconnectionPortOutput) ToInterconnectionPortOutput

func (o InterconnectionPortOutput) ToInterconnectionPortOutput() InterconnectionPortOutput

func (InterconnectionPortOutput) ToInterconnectionPortOutputWithContext

func (o InterconnectionPortOutput) ToInterconnectionPortOutputWithContext(ctx context.Context) InterconnectionPortOutput

func (InterconnectionPortOutput) VirtualCircuitIds

func (o InterconnectionPortOutput) VirtualCircuitIds() pulumi.ArrayOutput

type InterconnectionServiceToken

type InterconnectionServiceToken struct {
	ExpiresAt       string `pulumi:"expiresAt"`
	Id              string `pulumi:"id"`
	MaxAllowedSpeed string `pulumi:"maxAllowedSpeed"`
	Role            string `pulumi:"role"`
	State           string `pulumi:"state"`
	// Connection type - dedicated or shared.
	Type string `pulumi:"type"`
}

type InterconnectionServiceTokenArgs

type InterconnectionServiceTokenArgs struct {
	ExpiresAt       pulumi.StringInput `pulumi:"expiresAt"`
	Id              pulumi.StringInput `pulumi:"id"`
	MaxAllowedSpeed pulumi.StringInput `pulumi:"maxAllowedSpeed"`
	Role            pulumi.StringInput `pulumi:"role"`
	State           pulumi.StringInput `pulumi:"state"`
	// Connection type - dedicated or shared.
	Type pulumi.StringInput `pulumi:"type"`
}

func (InterconnectionServiceTokenArgs) ElementType

func (InterconnectionServiceTokenArgs) ToInterconnectionServiceTokenOutput

func (i InterconnectionServiceTokenArgs) ToInterconnectionServiceTokenOutput() InterconnectionServiceTokenOutput

func (InterconnectionServiceTokenArgs) ToInterconnectionServiceTokenOutputWithContext

func (i InterconnectionServiceTokenArgs) ToInterconnectionServiceTokenOutputWithContext(ctx context.Context) InterconnectionServiceTokenOutput

type InterconnectionServiceTokenArray

type InterconnectionServiceTokenArray []InterconnectionServiceTokenInput

func (InterconnectionServiceTokenArray) ElementType

func (InterconnectionServiceTokenArray) ToInterconnectionServiceTokenArrayOutput

func (i InterconnectionServiceTokenArray) ToInterconnectionServiceTokenArrayOutput() InterconnectionServiceTokenArrayOutput

func (InterconnectionServiceTokenArray) ToInterconnectionServiceTokenArrayOutputWithContext

func (i InterconnectionServiceTokenArray) ToInterconnectionServiceTokenArrayOutputWithContext(ctx context.Context) InterconnectionServiceTokenArrayOutput

type InterconnectionServiceTokenArrayInput

type InterconnectionServiceTokenArrayInput interface {
	pulumi.Input

	ToInterconnectionServiceTokenArrayOutput() InterconnectionServiceTokenArrayOutput
	ToInterconnectionServiceTokenArrayOutputWithContext(context.Context) InterconnectionServiceTokenArrayOutput
}

InterconnectionServiceTokenArrayInput is an input type that accepts InterconnectionServiceTokenArray and InterconnectionServiceTokenArrayOutput values. You can construct a concrete instance of `InterconnectionServiceTokenArrayInput` via:

InterconnectionServiceTokenArray{ InterconnectionServiceTokenArgs{...} }

type InterconnectionServiceTokenArrayOutput

type InterconnectionServiceTokenArrayOutput struct{ *pulumi.OutputState }

func (InterconnectionServiceTokenArrayOutput) ElementType

func (InterconnectionServiceTokenArrayOutput) Index

func (InterconnectionServiceTokenArrayOutput) ToInterconnectionServiceTokenArrayOutput

func (o InterconnectionServiceTokenArrayOutput) ToInterconnectionServiceTokenArrayOutput() InterconnectionServiceTokenArrayOutput

func (InterconnectionServiceTokenArrayOutput) ToInterconnectionServiceTokenArrayOutputWithContext

func (o InterconnectionServiceTokenArrayOutput) ToInterconnectionServiceTokenArrayOutputWithContext(ctx context.Context) InterconnectionServiceTokenArrayOutput

type InterconnectionServiceTokenInput

type InterconnectionServiceTokenInput interface {
	pulumi.Input

	ToInterconnectionServiceTokenOutput() InterconnectionServiceTokenOutput
	ToInterconnectionServiceTokenOutputWithContext(context.Context) InterconnectionServiceTokenOutput
}

InterconnectionServiceTokenInput is an input type that accepts InterconnectionServiceTokenArgs and InterconnectionServiceTokenOutput values. You can construct a concrete instance of `InterconnectionServiceTokenInput` via:

InterconnectionServiceTokenArgs{...}

type InterconnectionServiceTokenOutput

type InterconnectionServiceTokenOutput struct{ *pulumi.OutputState }

func (InterconnectionServiceTokenOutput) ElementType

func (InterconnectionServiceTokenOutput) ExpiresAt

func (InterconnectionServiceTokenOutput) Id

func (InterconnectionServiceTokenOutput) MaxAllowedSpeed

func (InterconnectionServiceTokenOutput) Role

func (InterconnectionServiceTokenOutput) State

func (InterconnectionServiceTokenOutput) ToInterconnectionServiceTokenOutput

func (o InterconnectionServiceTokenOutput) ToInterconnectionServiceTokenOutput() InterconnectionServiceTokenOutput

func (InterconnectionServiceTokenOutput) ToInterconnectionServiceTokenOutputWithContext

func (o InterconnectionServiceTokenOutput) ToInterconnectionServiceTokenOutputWithContext(ctx context.Context) InterconnectionServiceTokenOutput

func (InterconnectionServiceTokenOutput) Type

Connection type - dedicated or shared.

type InterconnectionState

type InterconnectionState struct {
	// Only used with Fabric Shared connection. Fabric uses this token to be able to give more detailed information about the
	// Metal end of the network, when viewing resources from within Fabric.
	AuthorizationCode pulumi.StringPtrInput
	// The preferred email used for communication and notifications about the Equinix Fabric interconnection. Required when using a Project API key. Optional and defaults to the primary user email address when using a User API key.
	ContactEmail pulumi.StringPtrInput
	// Description for the connection resource.
	Description pulumi.StringPtrInput
	// Facility where the connection will be created.   Use metro instead; read the facility to metro migration guide
	//
	// Deprecated: Use metro instead of facility. For more information, read the migration guide.
	Facility pulumi.StringPtrInput
	// Metro where the connection will be created.
	Metro pulumi.StringPtrInput
	// Mode for connections in IBX facilities with the dedicated type - standard or tunnel. Default is standard.
	Mode pulumi.StringPtrInput
	// Name of the connection resource
	Name pulumi.StringPtrInput
	// ID of the organization where the connection is scoped to.
	OrganizationId pulumi.StringPtrInput
	// List of connection ports - primary (`ports[0]`) and secondary (`ports[1]`). Schema of
	// port is described in documentation of the
	// metal.Interconnection datasource.
	Ports InterconnectionPortArrayInput
	// ID of the project where the connection is scoped to, must be set for.
	ProjectId pulumi.StringPtrInput
	// Connection redundancy - redundant or primary.
	Redundancy pulumi.StringPtrInput
	// Only used with shared connection. Type of service token to use for the connection, a_side or z_side
	ServiceTokenType pulumi.StringPtrInput
	// List of connection service tokens with attributes required to configure the connection in Equinix Fabric with the equinixEcxL2Connection resource or from the [Equinix Fabric Portal](https://ecxfabric.equinix.com/dashboard). Scehma of serviceToken is described in documentation of the metal.Interconnection datasource.
	ServiceTokens InterconnectionServiceTokenArrayInput
	// Connection speed -  Values must be in the format '<number>Mbps' or '<number>Gpbs', for example '100Mbps' or '50Gbps'.  Actual supported values will depend on the connection type and whether the connection uses VLANs or VRF.
	Speed pulumi.StringPtrInput
	// Status of the connection resource.
	Status pulumi.StringPtrInput
	// String list of tags.
	Tags pulumi.StringArrayInput
	// (Deprecated) Fabric Token required to configure the connection in Equinix Fabric with the equinixEcxL2Connection resource or from the [Equinix Fabric Portal](https://ecxfabric.equinix.com/dashboard). If your organization already has connection service tokens enabled, use `serviceTokens` instead.
	//
	// Deprecated: If your organization already has connection service tokens enabled, use `serviceTokens` instead
	Token pulumi.StringPtrInput
	// Connection type - dedicated or shared.
	Type pulumi.StringPtrInput
	// Only used with shared connection. Vlans to attach. Pass one vlan for Primary/Single connection and two vlans for Redundant connection.
	Vlans pulumi.IntArrayInput
	// Only used with shared connection. VRFs to attach. Pass one VRF for Primary/Single connection and two VRFs for Redundant
	// connection
	Vrfs pulumi.StringArrayInput
}

func (InterconnectionState) ElementType

func (InterconnectionState) ElementType() reflect.Type

type IpAttachment

type IpAttachment struct {
	pulumi.CustomResourceState

	Address pulumi.StringOutput `pulumi:"address"`
	// Address family as integer. One of `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 metro 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"`
	// Flag indicating whether IP block is global, i.e. assignable in any location
	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"`
	VrfId  pulumi.StringOutput `pulumi:"vrfId"`
}

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

## Example Usage ```go package main

import (

"github.com/equinix/pulumi-equinix/sdk/go/equinix/metal"
"github.com/pulumi/pulumi/sdk/v3/go/pulumi"
"github.com/pulumi/pulumi/sdk/v3/go/pulumi/config"

)

func main() {
	pulumi.Run(func(ctx *pulumi.Context) error {
		cfg := config.New(ctx, "")
		deviceId := cfg.Require("deviceId")
		subnetCidr := "147.229.10.152/31"
		if param := cfg.Get("subnetCidr"); param != "" {
			subnetCidr = param
		}
		ipAttachResource, err := metal.NewIpAttachment(ctx, "ipAttach", &metal.IpAttachmentArgs{
			DeviceId:     pulumi.String(deviceId),
			CidrNotation: pulumi.String(subnetCidr),
		})
		if err != nil {
			return err
		}
		ctx.Export("ipAttach", ipAttachResource.ID())
		ctx.Export("ipNetmask", ipAttachResource.Netmask)
		return nil
	})
}

```

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

type IpAttachmentArgs

type IpAttachmentArgs struct {
	// CIDR notation of subnet from block reserved in the same project
	// and metro 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

type IpAttachmentArray []IpAttachmentInput

func (IpAttachmentArray) ElementType

func (IpAttachmentArray) ElementType() reflect.Type

func (IpAttachmentArray) ToIpAttachmentArrayOutput

func (i IpAttachmentArray) ToIpAttachmentArrayOutput() IpAttachmentArrayOutput

func (IpAttachmentArray) ToIpAttachmentArrayOutputWithContext

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

type IpAttachmentArrayInput

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

type IpAttachmentArrayOutput struct{ *pulumi.OutputState }

func (IpAttachmentArrayOutput) ElementType

func (IpAttachmentArrayOutput) ElementType() reflect.Type

func (IpAttachmentArrayOutput) Index

func (IpAttachmentArrayOutput) ToIpAttachmentArrayOutput

func (o IpAttachmentArrayOutput) ToIpAttachmentArrayOutput() IpAttachmentArrayOutput

func (IpAttachmentArrayOutput) ToIpAttachmentArrayOutputWithContext

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

type IpAttachmentInput

type IpAttachmentInput interface {
	pulumi.Input

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

type IpAttachmentMap

type IpAttachmentMap map[string]IpAttachmentInput

func (IpAttachmentMap) ElementType

func (IpAttachmentMap) ElementType() reflect.Type

func (IpAttachmentMap) ToIpAttachmentMapOutput

func (i IpAttachmentMap) ToIpAttachmentMapOutput() IpAttachmentMapOutput

func (IpAttachmentMap) ToIpAttachmentMapOutputWithContext

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

type IpAttachmentMapInput

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

type IpAttachmentMapOutput struct{ *pulumi.OutputState }

func (IpAttachmentMapOutput) ElementType

func (IpAttachmentMapOutput) ElementType() reflect.Type

func (IpAttachmentMapOutput) MapIndex

func (IpAttachmentMapOutput) ToIpAttachmentMapOutput

func (o IpAttachmentMapOutput) ToIpAttachmentMapOutput() IpAttachmentMapOutput

func (IpAttachmentMapOutput) ToIpAttachmentMapOutputWithContext

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

type IpAttachmentOutput

type IpAttachmentOutput struct{ *pulumi.OutputState }

func (IpAttachmentOutput) Address

func (IpAttachmentOutput) AddressFamily

func (o IpAttachmentOutput) AddressFamily() pulumi.IntOutput

Address family as integer. One of `4` or `6`.

func (IpAttachmentOutput) Cidr

Length of CIDR prefix of the subnet as integer.

func (IpAttachmentOutput) CidrNotation

func (o IpAttachmentOutput) CidrNotation() pulumi.StringOutput

CIDR notation of subnet from block reserved in the same project and metro as the device.

func (IpAttachmentOutput) DeviceId

func (o IpAttachmentOutput) DeviceId() pulumi.StringOutput

ID of device to which to assign the subnet.

func (IpAttachmentOutput) ElementType

func (IpAttachmentOutput) ElementType() reflect.Type

func (IpAttachmentOutput) Gateway

IP address of gateway for the subnet.

func (IpAttachmentOutput) Global

Flag indicating whether IP block is global, i.e. assignable in any location

func (IpAttachmentOutput) Manageable

func (o IpAttachmentOutput) Manageable() pulumi.BoolOutput

func (IpAttachmentOutput) Management

func (o IpAttachmentOutput) Management() pulumi.BoolOutput

func (IpAttachmentOutput) Netmask

Subnet mask in decimal notation, e.g., `255.255.255.0`.

func (IpAttachmentOutput) Network

Subnet network address.

func (IpAttachmentOutput) Public

Boolean flag whether subnet is reachable from the Internet.

func (IpAttachmentOutput) ToIpAttachmentOutput

func (o IpAttachmentOutput) ToIpAttachmentOutput() IpAttachmentOutput

func (IpAttachmentOutput) ToIpAttachmentOutputWithContext

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

func (IpAttachmentOutput) VrfId

type IpAttachmentState

type IpAttachmentState struct {
	Address pulumi.StringPtrInput
	// Address family as integer. One of `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 metro 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
	// Flag indicating whether IP block is global, i.e. assignable in any location
	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
	VrfId  pulumi.StringPtrInput
}

func (IpAttachmentState) ElementType

func (IpAttachmentState) ElementType() reflect.Type

type IpBlockType

type IpBlockType string

func (IpBlockType) ElementType

func (IpBlockType) ElementType() reflect.Type

func (IpBlockType) ToIpBlockTypeOutput

func (e IpBlockType) ToIpBlockTypeOutput() IpBlockTypeOutput

func (IpBlockType) ToIpBlockTypeOutputWithContext

func (e IpBlockType) ToIpBlockTypeOutputWithContext(ctx context.Context) IpBlockTypeOutput

func (IpBlockType) ToIpBlockTypePtrOutput

func (e IpBlockType) ToIpBlockTypePtrOutput() IpBlockTypePtrOutput

func (IpBlockType) ToIpBlockTypePtrOutputWithContext

func (e IpBlockType) ToIpBlockTypePtrOutputWithContext(ctx context.Context) IpBlockTypePtrOutput

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 IpBlockTypeInput

type IpBlockTypeInput interface {
	pulumi.Input

	ToIpBlockTypeOutput() IpBlockTypeOutput
	ToIpBlockTypeOutputWithContext(context.Context) IpBlockTypeOutput
}

IpBlockTypeInput is an input type that accepts values of the IpBlockType enum A concrete instance of `IpBlockTypeInput` can be one of the following:

IpBlockTypeGlobalIPv4
IpBlockTypePublicIPv4

type IpBlockTypeOutput

type IpBlockTypeOutput struct{ *pulumi.OutputState }

func (IpBlockTypeOutput) ElementType

func (IpBlockTypeOutput) ElementType() reflect.Type

func (IpBlockTypeOutput) ToIpBlockTypeOutput

func (o IpBlockTypeOutput) ToIpBlockTypeOutput() IpBlockTypeOutput

func (IpBlockTypeOutput) ToIpBlockTypeOutputWithContext

func (o IpBlockTypeOutput) ToIpBlockTypeOutputWithContext(ctx context.Context) IpBlockTypeOutput

func (IpBlockTypeOutput) ToIpBlockTypePtrOutput

func (o IpBlockTypeOutput) ToIpBlockTypePtrOutput() IpBlockTypePtrOutput

func (IpBlockTypeOutput) ToIpBlockTypePtrOutputWithContext

func (o IpBlockTypeOutput) ToIpBlockTypePtrOutputWithContext(ctx context.Context) IpBlockTypePtrOutput

func (IpBlockTypeOutput) ToStringOutput

func (o IpBlockTypeOutput) ToStringOutput() pulumi.StringOutput

func (IpBlockTypeOutput) ToStringOutputWithContext

func (o IpBlockTypeOutput) ToStringOutputWithContext(ctx context.Context) pulumi.StringOutput

func (IpBlockTypeOutput) ToStringPtrOutput

func (o IpBlockTypeOutput) ToStringPtrOutput() pulumi.StringPtrOutput

func (IpBlockTypeOutput) ToStringPtrOutputWithContext

func (o IpBlockTypeOutput) ToStringPtrOutputWithContext(ctx context.Context) pulumi.StringPtrOutput

type IpBlockTypePtrInput

type IpBlockTypePtrInput interface {
	pulumi.Input

	ToIpBlockTypePtrOutput() IpBlockTypePtrOutput
	ToIpBlockTypePtrOutputWithContext(context.Context) IpBlockTypePtrOutput
}

func IpBlockTypePtr

func IpBlockTypePtr(v string) IpBlockTypePtrInput

type IpBlockTypePtrOutput

type IpBlockTypePtrOutput struct{ *pulumi.OutputState }

func (IpBlockTypePtrOutput) Elem

func (IpBlockTypePtrOutput) ElementType

func (IpBlockTypePtrOutput) ElementType() reflect.Type

func (IpBlockTypePtrOutput) ToIpBlockTypePtrOutput

func (o IpBlockTypePtrOutput) ToIpBlockTypePtrOutput() IpBlockTypePtrOutput

func (IpBlockTypePtrOutput) ToIpBlockTypePtrOutputWithContext

func (o IpBlockTypePtrOutput) ToIpBlockTypePtrOutputWithContext(ctx context.Context) IpBlockTypePtrOutput

func (IpBlockTypePtrOutput) ToStringPtrOutput

func (o IpBlockTypePtrOutput) ToStringPtrOutput() pulumi.StringPtrOutput

func (IpBlockTypePtrOutput) ToStringPtrOutputWithContext

func (o IpBlockTypePtrOutput) ToStringPtrOutputWithContext(ctx context.Context) pulumi.StringPtrOutput

type LookupDeviceArgs

type LookupDeviceArgs struct {
	// Device ID.
	//
	// > **NOTE:** You should pass either `deviceId`, or both `projectId` and `hostname`.
	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 LookupDeviceOutputArgs

type LookupDeviceOutputArgs struct {
	// Device ID.
	//
	// > **NOTE:** You should pass either `deviceId`, or both `projectId` and `hostname`.
	DeviceId pulumi.StringPtrInput `pulumi:"deviceId"`
	// The device name.
	Hostname pulumi.StringPtrInput `pulumi:"hostname"`
	// The id of the project in which the devices exists.
	ProjectId pulumi.StringPtrInput `pulumi:"projectId"`
}

A collection of arguments for invoking getDevice.

func (LookupDeviceOutputArgs) ElementType

func (LookupDeviceOutputArgs) ElementType() reflect.Type

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"`
	// (**Deprecated**) The facility where the device is deployed. Use metro instead; read the facility to metro migration guide
	//
	// Deprecated: Use metro instead of facility.  For more information, read the migration guide: https://registry.terraform.io/providers/equinix/equinix/latest/docs/guides/migration_guide_facilities_to_metros_devices
	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"`
	// The metro where the device is deployed
	Metro string `pulumi:"metro"`
	// 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. See
	// Network Attribute below for more details.
	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"`
	// List of ports assigned to the device. See Ports Attribute below for
	// more details.
	Ports     []GetDevicePort `pulumi:"ports"`
	ProjectId string          `pulumi:"projectId"`
	// Root password to the server (if still available).
	RootPassword string `pulumi:"rootPassword"`
	// The hostname to use for [Serial over SSH](https://deploy.equinix.com/developers/docs/metal/resilience-recovery/serial-over-ssh/) access to the device
	SosHostname string `pulumi:"sosHostname"`
	// 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)

The datasource can be used to fetch a single device.

If you need to fetch a list of devices which meet filter criteria, you can use the metal.getDevices 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.

## Example Usage

<!--Start PulumiCodeChooser --> ```go package main

import (

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

)

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

``` <!--End PulumiCodeChooser -->

<!--Start PulumiCodeChooser --> ```go package main

import (

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

)

func main() {
	pulumi.Run(func(ctx *pulumi.Context) error {
		test, err := metal.LookupDevice(ctx, &metal.LookupDeviceArgs{
			DeviceId: pulumi.StringRef("4c641195-25e5-4c3c-b2b7-4cd7a42c7b40"),
		}, nil)
		if err != nil {
			return err
		}
		ctx.Export("ipv4", test.AccessPublicIpv4)
		return nil
	})
}

``` <!--End PulumiCodeChooser -->

type LookupDeviceResultOutput

type LookupDeviceResultOutput struct{ *pulumi.OutputState }

A collection of values returned by getDevice.

func (LookupDeviceResultOutput) AccessPrivateIpv4

func (o LookupDeviceResultOutput) AccessPrivateIpv4() pulumi.StringOutput

The ipv4 private IP assigned to the device.

func (LookupDeviceResultOutput) AccessPublicIpv4

func (o LookupDeviceResultOutput) AccessPublicIpv4() pulumi.StringOutput

The ipv4 management IP assigned to the device.

func (LookupDeviceResultOutput) AccessPublicIpv6

func (o LookupDeviceResultOutput) AccessPublicIpv6() pulumi.StringOutput

The ipv6 management IP assigned to the device.

func (LookupDeviceResultOutput) AlwaysPxe

func (LookupDeviceResultOutput) BillingCycle

func (o LookupDeviceResultOutput) BillingCycle() pulumi.StringOutput

The billing cycle of the device (monthly or hourly).

func (LookupDeviceResultOutput) Description

Description string for the device.

func (LookupDeviceResultOutput) DeviceId

func (LookupDeviceResultOutput) ElementType

func (LookupDeviceResultOutput) ElementType() reflect.Type

func (LookupDeviceResultOutput) Facility deprecated

(**Deprecated**) The facility where the device is deployed. Use metro instead; read the facility to metro migration guide

Deprecated: Use metro instead of facility. For more information, read the migration guide: https://registry.terraform.io/providers/equinix/equinix/latest/docs/guides/migration_guide_facilities_to_metros_devices

func (LookupDeviceResultOutput) HardwareReservationId

func (o LookupDeviceResultOutput) HardwareReservationId() pulumi.StringOutput

The id of hardware reservation which this device occupies.

func (LookupDeviceResultOutput) Hostname

func (LookupDeviceResultOutput) Id

The provider-assigned unique ID for this managed resource.

func (LookupDeviceResultOutput) IpxeScriptUrl

func (o LookupDeviceResultOutput) IpxeScriptUrl() pulumi.StringOutput

func (LookupDeviceResultOutput) Metro

The metro where the device is deployed

func (LookupDeviceResultOutput) NetworkType

L2 network type of the device, one of `layer3`, `layer2-bonded`, `layer2-individual`, `hybrid`.

func (LookupDeviceResultOutput) Networks

The device's private and public IP (v4 and v6) network details. See Network Attribute below for more details.

func (LookupDeviceResultOutput) OperatingSystem

func (o LookupDeviceResultOutput) OperatingSystem() pulumi.StringOutput

The operating system running on the device.

func (LookupDeviceResultOutput) Plan

The hardware config of the device.

func (LookupDeviceResultOutput) Ports

List of ports assigned to the device. See Ports Attribute below for more details.

func (LookupDeviceResultOutput) ProjectId

func (LookupDeviceResultOutput) RootPassword

func (o LookupDeviceResultOutput) RootPassword() pulumi.StringOutput

Root password to the server (if still available).

func (LookupDeviceResultOutput) SosHostname

The hostname to use for [Serial over SSH](https://deploy.equinix.com/developers/docs/metal/resilience-recovery/serial-over-ssh/) access to the device

func (LookupDeviceResultOutput) SshKeyIds

List of IDs of SSH keys deployed in the device, can be both user or project SSH keys.

func (LookupDeviceResultOutput) State

The state of the device.

func (LookupDeviceResultOutput) Storage

func (LookupDeviceResultOutput) Tags

Tags attached to the device.

func (LookupDeviceResultOutput) ToLookupDeviceResultOutput

func (o LookupDeviceResultOutput) ToLookupDeviceResultOutput() LookupDeviceResultOutput

func (LookupDeviceResultOutput) ToLookupDeviceResultOutputWithContext

func (o LookupDeviceResultOutput) ToLookupDeviceResultOutputWithContext(ctx context.Context) LookupDeviceResultOutput

type LookupGatewayArgs

type LookupGatewayArgs struct {
	// UUID of the metal gateway resource to retrieve.
	GatewayId string `pulumi:"gatewayId"`
}

A collection of arguments for invoking getGateway.

type LookupGatewayOutputArgs

type LookupGatewayOutputArgs struct {
	// UUID of the metal gateway resource to retrieve.
	GatewayId pulumi.StringInput `pulumi:"gatewayId"`
}

A collection of arguments for invoking getGateway.

func (LookupGatewayOutputArgs) ElementType

func (LookupGatewayOutputArgs) ElementType() reflect.Type

type LookupGatewayResult

type LookupGatewayResult struct {
	GatewayId string `pulumi:"gatewayId"`
	Id        string `pulumi:"id"`
	// UUID of IP reservation block bound to the gateway.
	IpReservationId string `pulumi:"ipReservationId"`
	// Size of the private IPv4 subnet bound to this metal gateway. One of
	// `8`, `16`, `32`, `64`, `128`.
	PrivateIpv4SubnetSize int `pulumi:"privateIpv4SubnetSize"`
	// UUID of the project where the gateway is scoped to.
	ProjectId string `pulumi:"projectId"`
	// Status of the gateway resource.
	State string `pulumi:"state"`
	// UUID of the VLAN where the gateway is scoped to.
	VlanId string `pulumi:"vlanId"`
	// UUID of the VRF associated with the IP Reservation.
	VrfId string `pulumi:"vrfId"`
}

A collection of values returned by getGateway.

func LookupGateway

func LookupGateway(ctx *pulumi.Context, args *LookupGatewayArgs, opts ...pulumi.InvokeOption) (*LookupGatewayResult, error)

Use this datasource to retrieve Metal Gateway resources in Equinix Metal.

> VRF features are not generally available. The interfaces related to VRF resources may change ahead of general availability.

## Example Usage

<!--Start PulumiCodeChooser --> ```go package main

import (

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

)

func main() {
	pulumi.Run(func(ctx *pulumi.Context) error {
		// Create Metal Gateway for a VLAN with a private IPv4 block with 8 IP addresses
		_, err := metal.NewVlan(ctx, "testVlan", &metal.VlanArgs{
			Description: pulumi.String("test VLAN in SV"),
			Metro:       pulumi.String("sv"),
			ProjectId:   pulumi.Any(local.Project_id),
		})
		if err != nil {
			return err
		}
		_, err = metal.LookupGateway(ctx, &metal.LookupGatewayArgs{
			GatewayId: local.Gateway_id,
		}, nil)
		if err != nil {
			return err
		}
		return nil
	})
}

``` <!--End PulumiCodeChooser -->

type LookupGatewayResultOutput

type LookupGatewayResultOutput struct{ *pulumi.OutputState }

A collection of values returned by getGateway.

func (LookupGatewayResultOutput) ElementType

func (LookupGatewayResultOutput) ElementType() reflect.Type

func (LookupGatewayResultOutput) GatewayId

func (LookupGatewayResultOutput) Id

func (LookupGatewayResultOutput) IpReservationId

func (o LookupGatewayResultOutput) IpReservationId() pulumi.StringOutput

UUID of IP reservation block bound to the gateway.

func (LookupGatewayResultOutput) PrivateIpv4SubnetSize

func (o LookupGatewayResultOutput) PrivateIpv4SubnetSize() pulumi.IntOutput

Size of the private IPv4 subnet bound to this metal gateway. One of `8`, `16`, `32`, `64`, `128`.

func (LookupGatewayResultOutput) ProjectId

UUID of the project where the gateway is scoped to.

func (LookupGatewayResultOutput) State

Status of the gateway resource.

func (LookupGatewayResultOutput) ToLookupGatewayResultOutput

func (o LookupGatewayResultOutput) ToLookupGatewayResultOutput() LookupGatewayResultOutput

func (LookupGatewayResultOutput) ToLookupGatewayResultOutputWithContext

func (o LookupGatewayResultOutput) ToLookupGatewayResultOutputWithContext(ctx context.Context) LookupGatewayResultOutput

func (LookupGatewayResultOutput) VlanId

UUID of the VLAN where the gateway is scoped to.

func (LookupGatewayResultOutput) VrfId

UUID of the VRF associated with the IP Reservation.

type LookupInterconnectionArgs

type LookupInterconnectionArgs struct {
	// ID of the connection resource.
	ConnectionId string `pulumi:"connectionId"`
}

A collection of arguments for invoking getInterconnection.

type LookupInterconnectionOutputArgs

type LookupInterconnectionOutputArgs struct {
	// ID of the connection resource.
	ConnectionId pulumi.StringInput `pulumi:"connectionId"`
}

A collection of arguments for invoking getInterconnection.

func (LookupInterconnectionOutputArgs) ElementType

type LookupInterconnectionResult

type LookupInterconnectionResult struct {
	AuthorizationCode string `pulumi:"authorizationCode"`
	ConnectionId      string `pulumi:"connectionId"`
	// The preferred email used for communication and notifications about the Equinix Fabric interconnection.
	ContactEmail string `pulumi:"contactEmail"`
	// Description of the connection resource.
	Description string `pulumi:"description"`
	// (**Deprecated**) Slug of a facility to which the connection belongs. Use metro instead; read the facility to metro migration guide
	//
	// Deprecated: Use metro instead of facility. For more information, read the migration guide.
	Facility string `pulumi:"facility"`
	// Port UUID.
	Id string `pulumi:"id"`
	// Slug of a metro to which the connection belongs.
	Metro string `pulumi:"metro"`
	// Mode for connections in IBX facilities with the dedicated type - standard or tunnel.
	Mode string `pulumi:"mode"`
	// Port name.
	Name string `pulumi:"name"`
	// ID of the organization where the connection is scoped to.
	OrganizationId string `pulumi:"organizationId"`
	// List of connection ports - primary (`ports[0]`) and secondary (`ports[1]`)
	Ports []GetInterconnectionPort `pulumi:"ports"`
	// ID of project to which the connection belongs.
	ProjectId string `pulumi:"projectId"`
	// Connection redundancy, reduntant or primary.
	Redundancy string `pulumi:"redundancy"`
	// Type of service token, aSide or z_side. One available in shared connection.
	ServiceTokenType string `pulumi:"serviceTokenType"`
	// List of connection service tokens with attributes
	ServiceTokens []GetInterconnectionServiceToken `pulumi:"serviceTokens"`
	// Port speed in bits per second.
	Speed string `pulumi:"speed"`
	// Port status.
	Status string `pulumi:"status"`
	// String list of tags.
	Tags []string `pulumi:"tags"`
	// (Deprecated) Fabric Token required to configure the connection in Equinix Fabric with the equinixEcxL2Connection resource or from the [Equinix Fabric Portal](https://ecxfabric.equinix.com/dashboard). If your organization already has connection service tokens enabled, use `serviceTokens` instead.
	//
	// Deprecated: If your organization already has connection service tokens enabled, use `serviceTokens` instead
	Token string `pulumi:"token"`
	// Token type, `aSide` or `zSide`.
	Type string `pulumi:"type"`
	// Attached VLANs. Only available in shared connection. One vlan for Primary/Single connection and two vlans for Redundant connection.
	Vlans []int    `pulumi:"vlans"`
	Vrfs  []string `pulumi:"vrfs"`
}

A collection of values returned by getInterconnection.

func LookupInterconnection

func LookupInterconnection(ctx *pulumi.Context, args *LookupInterconnectionArgs, opts ...pulumi.InvokeOption) (*LookupInterconnectionResult, error)

Use this data source to retrieve a [connection resource](https://metal.equinix.com/developers/docs/networking/fabric/)

> Equinix Metal connection with with Service Token A-side / Z-side (service_token_type) is not generally available and may not be enabled yet for your organization.

## Example Usage

<!--Start PulumiCodeChooser --> ```go package main

import (

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

)

func main() {
	pulumi.Run(func(ctx *pulumi.Context) error {
		_, err := metal.LookupInterconnection(ctx, &metal.LookupInterconnectionArgs{
			ConnectionId: "4347e805-eb46-4699-9eb9-5c116e6a017d",
		}, nil)
		if err != nil {
			return err
		}
		return nil
	})
}

``` <!--End PulumiCodeChooser -->

type LookupInterconnectionResultOutput

type LookupInterconnectionResultOutput struct{ *pulumi.OutputState }

A collection of values returned by getInterconnection.

func (LookupInterconnectionResultOutput) AuthorizationCode

func (LookupInterconnectionResultOutput) ConnectionId

func (LookupInterconnectionResultOutput) ContactEmail

The preferred email used for communication and notifications about the Equinix Fabric interconnection.

func (LookupInterconnectionResultOutput) Description

Description of the connection resource.

func (LookupInterconnectionResultOutput) ElementType

func (LookupInterconnectionResultOutput) Facility deprecated

(**Deprecated**) Slug of a facility to which the connection belongs. Use metro instead; read the facility to metro migration guide

Deprecated: Use metro instead of facility. For more information, read the migration guide.

func (LookupInterconnectionResultOutput) Id

Port UUID.

func (LookupInterconnectionResultOutput) Metro

Slug of a metro to which the connection belongs.

func (LookupInterconnectionResultOutput) Mode

Mode for connections in IBX facilities with the dedicated type - standard or tunnel.

func (LookupInterconnectionResultOutput) Name

Port name.

func (LookupInterconnectionResultOutput) OrganizationId

ID of the organization where the connection is scoped to.

func (LookupInterconnectionResultOutput) Ports

List of connection ports - primary (`ports[0]`) and secondary (`ports[1]`)

func (LookupInterconnectionResultOutput) ProjectId

ID of project to which the connection belongs.

func (LookupInterconnectionResultOutput) Redundancy

Connection redundancy, reduntant or primary.

func (LookupInterconnectionResultOutput) ServiceTokenType

Type of service token, aSide or z_side. One available in shared connection.

func (LookupInterconnectionResultOutput) ServiceTokens

List of connection service tokens with attributes

func (LookupInterconnectionResultOutput) Speed

Port speed in bits per second.

func (LookupInterconnectionResultOutput) Status

Port status.

func (LookupInterconnectionResultOutput) Tags

String list of tags.

func (LookupInterconnectionResultOutput) ToLookupInterconnectionResultOutput

func (o LookupInterconnectionResultOutput) ToLookupInterconnectionResultOutput() LookupInterconnectionResultOutput

func (LookupInterconnectionResultOutput) ToLookupInterconnectionResultOutputWithContext

func (o LookupInterconnectionResultOutput) ToLookupInterconnectionResultOutputWithContext(ctx context.Context) LookupInterconnectionResultOutput

func (LookupInterconnectionResultOutput) Token deprecated

(Deprecated) Fabric Token required to configure the connection in Equinix Fabric with the equinixEcxL2Connection resource or from the [Equinix Fabric Portal](https://ecxfabric.equinix.com/dashboard). If your organization already has connection service tokens enabled, use `serviceTokens` instead.

Deprecated: If your organization already has connection service tokens enabled, use `serviceTokens` instead

func (LookupInterconnectionResultOutput) Type

Token type, `aSide` or `zSide`.

func (LookupInterconnectionResultOutput) Vlans

Attached VLANs. Only available in shared connection. One vlan for Primary/Single connection and two vlans for Redundant connection.

func (LookupInterconnectionResultOutput) Vrfs

type LookupOrganizationArgs

type LookupOrganizationArgs struct {
	// Description string.
	Description *string `pulumi:"description"`
	// The organization name.
	Name *string `pulumi:"name"`
	// The UUID of the organization resource.
	//
	// Exactly one of `name` or `organizationId` must be given.
	OrganizationId *string `pulumi:"organizationId"`
}

A collection of arguments for invoking getOrganization.

type LookupOrganizationOutputArgs

type LookupOrganizationOutputArgs struct {
	// Description string.
	Description pulumi.StringPtrInput `pulumi:"description"`
	// The organization name.
	Name pulumi.StringPtrInput `pulumi:"name"`
	// The UUID of the organization resource.
	//
	// Exactly one of `name` or `organizationId` must be given.
	OrganizationId pulumi.StringPtrInput `pulumi:"organizationId"`
}

A collection of arguments for invoking getOrganization.

func (LookupOrganizationOutputArgs) ElementType

type LookupOrganizationResult

type LookupOrganizationResult struct {
	// Postal address.
	Address GetOrganizationAddress `pulumi:"address"`
	// Description string.
	Description *string `pulumi:"description"`
	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

<!--Start PulumiCodeChooser --> ```go package main

import (

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

)

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

``` <!--End PulumiCodeChooser -->

type LookupOrganizationResultOutput

type LookupOrganizationResultOutput struct{ *pulumi.OutputState }

A collection of values returned by getOrganization.

func (LookupOrganizationResultOutput) Address

Postal address.

func (LookupOrganizationResultOutput) Description

Description string.

func (LookupOrganizationResultOutput) ElementType

func (LookupOrganizationResultOutput) Id

Logo URL.

func (LookupOrganizationResultOutput) Name

func (LookupOrganizationResultOutput) OrganizationId

func (LookupOrganizationResultOutput) ProjectIds

UUIDs of project resources which belong to this organization.

func (LookupOrganizationResultOutput) ToLookupOrganizationResultOutput

func (o LookupOrganizationResultOutput) ToLookupOrganizationResultOutput() LookupOrganizationResultOutput

func (LookupOrganizationResultOutput) ToLookupOrganizationResultOutputWithContext

func (o LookupOrganizationResultOutput) ToLookupOrganizationResultOutputWithContext(ctx context.Context) LookupOrganizationResultOutput

func (LookupOrganizationResultOutput) Twitter

Twitter handle.

func (LookupOrganizationResultOutput) Website

Website link.

type LookupPortArgs

type LookupPortArgs struct {
	// Device UUID where to lookup the port.
	DeviceId *string `pulumi:"deviceId"`
	// Name of the port to look up, i.e. `bond0`, `eth1`.
	Name *string `pulumi:"name"`
	// ID of the port to read, conflicts with `deviceId`.
	PortId *string `pulumi:"portId"`
}

A collection of arguments for invoking getPort.

type LookupPortOutputArgs

type LookupPortOutputArgs struct {
	// Device UUID where to lookup the port.
	DeviceId pulumi.StringPtrInput `pulumi:"deviceId"`
	// Name of the port to look up, i.e. `bond0`, `eth1`.
	Name pulumi.StringPtrInput `pulumi:"name"`
	// ID of the port to read, conflicts with `deviceId`.
	PortId pulumi.StringPtrInput `pulumi:"portId"`
}

A collection of arguments for invoking getPort.

func (LookupPortOutputArgs) ElementType

func (LookupPortOutputArgs) ElementType() reflect.Type

type LookupPortResult

type LookupPortResult struct {
	// UUID of the bond port.
	BondId string `pulumi:"bondId"`
	// Name of the bond port.
	BondName string `pulumi:"bondName"`
	// Flag indicating whether the port is bonded.
	Bonded   bool    `pulumi:"bonded"`
	DeviceId *string `pulumi:"deviceId"`
	// Flag indicating whether the port can be removed from a bond.
	DisbondSupported bool `pulumi:"disbondSupported"`
	// The provider-assigned unique ID for this managed resource.
	Id     string `pulumi:"id"`
	Layer2 bool   `pulumi:"layer2"`
	// MAC address of the port.
	Mac  string `pulumi:"mac"`
	Name string `pulumi:"name"`
	// UUID of native VLAN of the port.
	NativeVlanId string `pulumi:"nativeVlanId"`
	// One of `layer2-bonded`, `layer2-individual`, `layer3`, `hybrid`, `hybrid-bonded`.
	NetworkType string  `pulumi:"networkType"`
	PortId      *string `pulumi:"portId"`
	// Type is either `NetworkBondPort` for bond ports or `NetworkPort` for bondable ethernet ports.
	Type string `pulumi:"type"`
	// UUIDs of attached VLANs.
	VlanIds []string `pulumi:"vlanIds"`
	// VXLAN ids of attached VLANs.
	VxlanIds []int `pulumi:"vxlanIds"`
}

A collection of values returned by getPort.

func LookupPort

func LookupPort(ctx *pulumi.Context, args *LookupPortArgs, opts ...pulumi.InvokeOption) (*LookupPortResult, error)

Use this data source to read ports of existing devices. You can read port by either its UUID, or by a device UUID and port name.

## Example Usage

Create a device and read it's eth0 port to the datasource.

<!--Start PulumiCodeChooser --> ```go package main

import (

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

)

func main() {
	pulumi.Run(func(ctx *pulumi.Context) error {
		projectId := "<UUID_of_your_project>"
		testDevice, err := metal.NewDevice(ctx, "testDevice", &metal.DeviceArgs{
			Hostname:        pulumi.String("tfacc-test-device-port"),
			Plan:            pulumi.String(metal.PlanC3MediumX86),
			Metro:           pulumi.String("sv"),
			OperatingSystem: pulumi.String(metal.OperatingSystem_Ubuntu20_04),
			BillingCycle:    pulumi.String(metal.BillingCycleHourly),
			ProjectId:       pulumi.String(projectId),
		})
		if err != nil {
			return err
		}
		_ = metal.LookupPortOutput(ctx, metal.GetPortOutputArgs{
			DeviceId: testDevice.ID(),
			Name:     pulumi.String("eth0"),
		}, nil)
		return nil
	})
}

``` <!--End PulumiCodeChooser -->

type LookupPortResultOutput

type LookupPortResultOutput struct{ *pulumi.OutputState }

A collection of values returned by getPort.

func (LookupPortResultOutput) BondId

UUID of the bond port.

func (LookupPortResultOutput) BondName

Name of the bond port.

func (LookupPortResultOutput) Bonded

Flag indicating whether the port is bonded.

func (LookupPortResultOutput) DeviceId

func (LookupPortResultOutput) DisbondSupported

func (o LookupPortResultOutput) DisbondSupported() pulumi.BoolOutput

Flag indicating whether the port can be removed from a bond.

func (LookupPortResultOutput) ElementType

func (LookupPortResultOutput) ElementType() reflect.Type

func (LookupPortResultOutput) Id

The provider-assigned unique ID for this managed resource.

func (LookupPortResultOutput) Layer2

func (LookupPortResultOutput) Mac

MAC address of the port.

func (LookupPortResultOutput) Name

func (LookupPortResultOutput) NativeVlanId

func (o LookupPortResultOutput) NativeVlanId() pulumi.StringOutput

UUID of native VLAN of the port.

func (LookupPortResultOutput) NetworkType

func (o LookupPortResultOutput) NetworkType() pulumi.StringOutput

One of `layer2-bonded`, `layer2-individual`, `layer3`, `hybrid`, `hybrid-bonded`.

func (LookupPortResultOutput) PortId

func (LookupPortResultOutput) ToLookupPortResultOutput

func (o LookupPortResultOutput) ToLookupPortResultOutput() LookupPortResultOutput

func (LookupPortResultOutput) ToLookupPortResultOutputWithContext

func (o LookupPortResultOutput) ToLookupPortResultOutputWithContext(ctx context.Context) LookupPortResultOutput

func (LookupPortResultOutput) Type

Type is either `NetworkBondPort` for bond ports or `NetworkPort` for bondable ethernet ports.

func (LookupPortResultOutput) VlanIds

UUIDs of attached VLANs.

func (LookupPortResultOutput) VxlanIds

VXLAN ids of attached VLANs.

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 LookupProjectOutputArgs

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

A collection of arguments for invoking getProject.

func (LookupProjectOutputArgs) ElementType

func (LookupProjectOutputArgs) ElementType() reflect.Type

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

<!--Start PulumiCodeChooser --> ```go package main

import (

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

)

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

``` <!--End PulumiCodeChooser -->

type LookupProjectResultOutput

type LookupProjectResultOutput struct{ *pulumi.OutputState }

A collection of values returned by getProject.

func (LookupProjectResultOutput) BackendTransfer

func (o LookupProjectResultOutput) BackendTransfer() pulumi.BoolOutput

Whether Backend Transfer is enabled for this project.

func (LookupProjectResultOutput) BgpConfig

Optional BGP settings. Refer to [Equinix Metal guide for BGP](https://metal.equinix.com/developers/docs/networking/local-global-bgp/).

func (LookupProjectResultOutput) Created

The timestamp for when the project was created.

func (LookupProjectResultOutput) ElementType

func (LookupProjectResultOutput) ElementType() reflect.Type

func (LookupProjectResultOutput) Id

func (LookupProjectResultOutput) Name

func (LookupProjectResultOutput) OrganizationId

func (o LookupProjectResultOutput) OrganizationId() pulumi.StringOutput

The UUID of this project's parent organization.

func (LookupProjectResultOutput) PaymentMethodId

func (o LookupProjectResultOutput) PaymentMethodId() pulumi.StringOutput

The UUID of payment method for this project.

func (LookupProjectResultOutput) ProjectId

func (LookupProjectResultOutput) ToLookupProjectResultOutput

func (o LookupProjectResultOutput) ToLookupProjectResultOutput() LookupProjectResultOutput

func (LookupProjectResultOutput) ToLookupProjectResultOutputWithContext

func (o LookupProjectResultOutput) ToLookupProjectResultOutputWithContext(ctx context.Context) LookupProjectResultOutput

func (LookupProjectResultOutput) Updated

The timestamp for the last time the project was updated.

func (LookupProjectResultOutput) UserIds

List of UUIDs of user accounts which belong to this project.

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.
	//
	// > **NOTE:** One of either `search` or `id` must be provided along with `projectId`.
	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 LookupProjectSshKeyOutputArgs

type LookupProjectSshKeyOutputArgs struct {
	// The id of the SSH Key to search for in the Equinix Metal project.
	Id pulumi.StringPtrInput `pulumi:"id"`
	// The Equinix Metal project id of the Equinix Metal SSH Key.
	//
	// > **NOTE:** One of either `search` or `id` must be provided along with `projectId`.
	ProjectId pulumi.StringInput `pulumi:"projectId"`
	// The name, fingerprint, or publicKey of the SSH Key to search for
	// in the Equinix Metal project.
	Search pulumi.StringPtrInput `pulumi:"search"`
}

A collection of arguments for invoking getProjectSshKey.

func (LookupProjectSshKeyOutputArgs) ElementType

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

<!--Start PulumiCodeChooser --> ```go package main

import (

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

)

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

``` <!--End PulumiCodeChooser -->

type LookupProjectSshKeyResultOutput

type LookupProjectSshKeyResultOutput struct{ *pulumi.OutputState }

A collection of values returned by getProjectSshKey.

func (LookupProjectSshKeyResultOutput) Created

The timestamp for when the SSH key was created.

func (LookupProjectSshKeyResultOutput) ElementType

func (LookupProjectSshKeyResultOutput) Fingerprint

The fingerprint of the SSH key.

func (LookupProjectSshKeyResultOutput) Id

The unique ID of the key.

func (LookupProjectSshKeyResultOutput) Name

The name of the SSH key.

func (LookupProjectSshKeyResultOutput) OwnerId

The ID of parent project (same as project_id).

func (LookupProjectSshKeyResultOutput) ProjectId

The ID of parent project.

func (LookupProjectSshKeyResultOutput) PublicKey

The text of the public key.

func (LookupProjectSshKeyResultOutput) Search

func (LookupProjectSshKeyResultOutput) ToLookupProjectSshKeyResultOutput

func (o LookupProjectSshKeyResultOutput) ToLookupProjectSshKeyResultOutput() LookupProjectSshKeyResultOutput

func (LookupProjectSshKeyResultOutput) ToLookupProjectSshKeyResultOutputWithContext

func (o LookupProjectSshKeyResultOutput) ToLookupProjectSshKeyResultOutputWithContext(ctx context.Context) LookupProjectSshKeyResultOutput

func (LookupProjectSshKeyResultOutput) Updated

The timestamp for the last time the SSH key was updated.

type LookupReservedIpBlockArgs

type LookupReservedIpBlockArgs struct {
	// UUID of the IP address block to look up.
	Id *string `pulumi:"id"`
	// Block containing this IP address will be returned.
	//
	// > **NOTE:** You should pass either `id`, or both `projectId` and `ipAddress`.
	IpAddress *string `pulumi:"ipAddress"`
	// UUID of the project where the searched block should be.
	ProjectId *string `pulumi:"projectId"`
}

A collection of arguments for invoking getReservedIpBlock.

type LookupReservedIpBlockOutputArgs

type LookupReservedIpBlockOutputArgs struct {
	// UUID of the IP address block to look up.
	Id pulumi.StringPtrInput `pulumi:"id"`
	// Block containing this IP address will be returned.
	//
	// > **NOTE:** You should pass either `id`, or both `projectId` and `ipAddress`.
	IpAddress pulumi.StringPtrInput `pulumi:"ipAddress"`
	// UUID of the project where the searched block should be.
	ProjectId pulumi.StringPtrInput `pulumi:"projectId"`
}

A collection of arguments for invoking getReservedIpBlock.

func (LookupReservedIpBlockOutputArgs) ElementType

type LookupReservedIpBlockResult

type LookupReservedIpBlockResult struct {
	Address       string `pulumi:"address"`
	AddressFamily int    `pulumi:"addressFamily"`
	Cidr          int    `pulumi:"cidr"`
	CidrNotation  string `pulumi:"cidrNotation"`
	// Deprecated: Use metro instead of facility.  For more information, read the migration guide: https://registry.terraform.io/providers/equinix/equinix/latest/docs/guides/migration_guide_facilities_to_metros_devices
	Facility   string  `pulumi:"facility"`
	Gateway    string  `pulumi:"gateway"`
	Global     bool    `pulumi:"global"`
	Id         string  `pulumi:"id"`
	IpAddress  *string `pulumi:"ipAddress"`
	Manageable bool    `pulumi:"manageable"`
	Management bool    `pulumi:"management"`
	Metro      string  `pulumi:"metro"`
	Netmask    string  `pulumi:"netmask"`
	Network    string  `pulumi:"network"`
	ProjectId  string  `pulumi:"projectId"`
	Public     bool    `pulumi:"public"`
	Quantity   int     `pulumi:"quantity"`
	// One of `globalIpv4`, `publicIpv4`, `privateIpv4`, `publicIpv6`,or `vrf`
	Type  string `pulumi:"type"`
	VrfId int    `pulumi:"vrfId"`
}

A collection of values returned by getReservedIpBlock.

func LookupReservedIpBlock

func LookupReservedIpBlock(ctx *pulumi.Context, args *LookupReservedIpBlockArgs, opts ...pulumi.InvokeOption) (*LookupReservedIpBlockResult, error)

Use this data source to find IP address blocks in Equinix Metal. You can use IP address or a block ID for lookup.

> For backward compatibility, this data source can be also used for precreated (management) IP blocks.

> VRF features are not generally available. The interfaces related to VRF resources may change ahead of general availability.

type LookupReservedIpBlockResultOutput

type LookupReservedIpBlockResultOutput struct{ *pulumi.OutputState }

A collection of values returned by getReservedIpBlock.

func (LookupReservedIpBlockResultOutput) Address

func (LookupReservedIpBlockResultOutput) AddressFamily

func (LookupReservedIpBlockResultOutput) Cidr

func (LookupReservedIpBlockResultOutput) CidrNotation

func (LookupReservedIpBlockResultOutput) ElementType

func (LookupReservedIpBlockResultOutput) Facility deprecated

Deprecated: Use metro instead of facility. For more information, read the migration guide: https://registry.terraform.io/providers/equinix/equinix/latest/docs/guides/migration_guide_facilities_to_metros_devices

func (LookupReservedIpBlockResultOutput) Gateway

func (LookupReservedIpBlockResultOutput) Global

func (LookupReservedIpBlockResultOutput) Id

func (LookupReservedIpBlockResultOutput) IpAddress

func (LookupReservedIpBlockResultOutput) Manageable

func (LookupReservedIpBlockResultOutput) Management

func (LookupReservedIpBlockResultOutput) Metro

func (LookupReservedIpBlockResultOutput) Netmask

func (LookupReservedIpBlockResultOutput) Network

func (LookupReservedIpBlockResultOutput) ProjectId

func (LookupReservedIpBlockResultOutput) Public

func (LookupReservedIpBlockResultOutput) Quantity

func (LookupReservedIpBlockResultOutput) ToLookupReservedIpBlockResultOutput

func (o LookupReservedIpBlockResultOutput) ToLookupReservedIpBlockResultOutput() LookupReservedIpBlockResultOutput

func (LookupReservedIpBlockResultOutput) ToLookupReservedIpBlockResultOutputWithContext

func (o LookupReservedIpBlockResultOutput) ToLookupReservedIpBlockResultOutputWithContext(ctx context.Context) LookupReservedIpBlockResultOutput

func (LookupReservedIpBlockResultOutput) Type

One of `globalIpv4`, `publicIpv4`, `privateIpv4`, `publicIpv6`,or `vrf`

func (LookupReservedIpBlockResultOutput) VrfId

type LookupSpotMarketRequestArgs

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

A collection of arguments for invoking getSpotMarketRequest.

type LookupSpotMarketRequestOutputArgs

type LookupSpotMarketRequestOutputArgs struct {
	// The id of the Spot Market Request.
	RequestId pulumi.StringInput `pulumi:"requestId"`
}

A collection of arguments for invoking getSpotMarketRequest.

func (LookupSpotMarketRequestOutputArgs) ElementType

type LookupSpotMarketRequestResult

type LookupSpotMarketRequestResult struct {
	// List of IDs of devices spawned by the referenced Spot Market Request.
	DeviceIds []string `pulumi:"deviceIds"`
	// Maximum number devices to be created.
	DevicesMax int `pulumi:"devicesMax"`
	// Miniumum number devices to be created.
	DevicesMin int `pulumi:"devicesMin"`
	// Date and time When the spot market request will be ended.
	EndAt string `pulumi:"endAt"`
	// (**Deprecated**) Facility IDs where devices should be created. Use metro instead; read the facility to metro migration guide
	//
	// Deprecated: Use metro instead of facility.  For more information, read the migration guide: https://registry.terraform.io/providers/equinix/equinix/latest/docs/guides/migration_guide_facilities_to_metros_devices
	Facilities []string `pulumi:"facilities"`
	// The provider-assigned unique ID for this managed resource.
	Id string `pulumi:"id"`
	// Maximum price user is willing to pay per hour per device.
	MaxBidPrice float64 `pulumi:"maxBidPrice"`
	// Metro where devices should be created.
	Metro string `pulumi:"metro"`
	// The device plan slug.
	Plan string `pulumi:"plan"`
	// Project ID.
	ProjectId string `pulumi:"projectId"`
	RequestId string `pulumi:"requestId"`
}

A collection of values returned by getSpotMarketRequest.

type LookupSpotMarketRequestResultOutput

type LookupSpotMarketRequestResultOutput struct{ *pulumi.OutputState }

A collection of values returned by getSpotMarketRequest.

func (LookupSpotMarketRequestResultOutput) DeviceIds

List of IDs of devices spawned by the referenced Spot Market Request.

func (LookupSpotMarketRequestResultOutput) DevicesMax

Maximum number devices to be created.

func (LookupSpotMarketRequestResultOutput) DevicesMin

Miniumum number devices to be created.

func (LookupSpotMarketRequestResultOutput) ElementType

func (LookupSpotMarketRequestResultOutput) EndAt

Date and time When the spot market request will be ended.

func (LookupSpotMarketRequestResultOutput) Facilities deprecated

(**Deprecated**) Facility IDs where devices should be created. Use metro instead; read the facility to metro migration guide

Deprecated: Use metro instead of facility. For more information, read the migration guide: https://registry.terraform.io/providers/equinix/equinix/latest/docs/guides/migration_guide_facilities_to_metros_devices

func (LookupSpotMarketRequestResultOutput) Id

The provider-assigned unique ID for this managed resource.

func (LookupSpotMarketRequestResultOutput) MaxBidPrice

Maximum price user is willing to pay per hour per device.

func (LookupSpotMarketRequestResultOutput) Metro

Metro where devices should be created.

func (LookupSpotMarketRequestResultOutput) Plan

The device plan slug.

func (LookupSpotMarketRequestResultOutput) ProjectId

Project ID.

func (LookupSpotMarketRequestResultOutput) RequestId

func (LookupSpotMarketRequestResultOutput) ToLookupSpotMarketRequestResultOutput

func (o LookupSpotMarketRequestResultOutput) ToLookupSpotMarketRequestResultOutput() LookupSpotMarketRequestResultOutput

func (LookupSpotMarketRequestResultOutput) ToLookupSpotMarketRequestResultOutputWithContext

func (o LookupSpotMarketRequestResultOutput) ToLookupSpotMarketRequestResultOutputWithContext(ctx context.Context) LookupSpotMarketRequestResultOutput

type LookupVirtualCircuitArgs

type LookupVirtualCircuitArgs struct {
	// ID of the virtual circuit resource
	VirtualCircuitId string `pulumi:"virtualCircuitId"`
}

A collection of arguments for invoking getVirtualCircuit.

type LookupVirtualCircuitOutputArgs

type LookupVirtualCircuitOutputArgs struct {
	// ID of the virtual circuit resource
	VirtualCircuitId pulumi.StringInput `pulumi:"virtualCircuitId"`
}

A collection of arguments for invoking getVirtualCircuit.

func (LookupVirtualCircuitOutputArgs) ElementType

type LookupVirtualCircuitResult

type LookupVirtualCircuitResult struct {
	// UUID of Connection where the VC is scoped to.
	ConnectionId string `pulumi:"connectionId"`
	// The Customer IP address which the CSR switch will peer with. Will default to the other usable IP in the subnet.
	CustomerIp string `pulumi:"customerIp"`
	// Description for the Virtual Circuit resource.
	Description string `pulumi:"description"`
	// The provider-assigned unique ID for this managed resource.
	Id string `pulumi:"id"`
	// The password that can be set for the VRF BGP peer
	Md5 string `pulumi:"md5"`
	// The Metal IP address for the SVI (Switch Virtual Interface) of the VirtualCircuit. Will default to the first usable IP in the subnet.
	MetalIp string `pulumi:"metalIp"`
	// Name of the virtual circuit resource.
	Name    string `pulumi:"name"`
	NniVlan int    `pulumi:"nniVlan"`
	NniVnid int    `pulumi:"nniVnid"`
	// The BGP ASN of the peer. The same ASN may be the used across several VCs, but it cannot be the same as the localAsn of the VRF.
	PeerAsn int `pulumi:"peerAsn"`
	// UUID of the Connection Port where the VC is scoped to.
	PortId string `pulumi:"portId"`
	// ID of project to which the VC belongs.
	ProjectId string `pulumi:"projectId"`
	// Speed of the Virtual Circuit resource.
	Speed string `pulumi:"speed"`
	// Status of the virtal circuit.
	Status string `pulumi:"status"`
	// A subnet from one of the IP
	// blocks associated with the VRF that we will help create an IP reservation for. Can only be either a /30 or /31.
	// * For a /31 block, it will only have two IP addresses, which will be used for
	//   the metalIp and customer_ip.
	// * For a /30 block, it will have four IP addresses, but the first and last IP addresses are not usable. We will default to the first usable IP address for the metal_ip.
	Subnet string `pulumi:"subnet"`
	// Tags for the Virtual Circuit resource.
	Tags             []string `pulumi:"tags"`
	VirtualCircuitId string   `pulumi:"virtualCircuitId"`
	VlanId           string   `pulumi:"vlanId"`
	// , `nniVlan`, `nniNvid` - VLAN parameters, see the
	// [documentation for Equinix Fabric](https://metal.equinix.com/developers/docs/networking/fabric/).
	Vnid int `pulumi:"vnid"`
	// UUID of the VLAN to associate.
	VrfId string `pulumi:"vrfId"`
}

A collection of values returned by getVirtualCircuit.

func LookupVirtualCircuit

func LookupVirtualCircuit(ctx *pulumi.Context, args *LookupVirtualCircuitArgs, opts ...pulumi.InvokeOption) (*LookupVirtualCircuitResult, error)

Use this data source to retrieve a virtual circuit resource from [Equinix Fabric - software-defined interconnections](https://metal.equinix.com/developers/docs/networking/fabric/)

> VRF features are not generally available. The interfaces related to VRF resources may change ahead of general availability.

type LookupVirtualCircuitResultOutput

type LookupVirtualCircuitResultOutput struct{ *pulumi.OutputState }

A collection of values returned by getVirtualCircuit.

func (LookupVirtualCircuitResultOutput) ConnectionId

UUID of Connection where the VC is scoped to.

func (LookupVirtualCircuitResultOutput) CustomerIp

The Customer IP address which the CSR switch will peer with. Will default to the other usable IP in the subnet.

func (LookupVirtualCircuitResultOutput) Description

Description for the Virtual Circuit resource.

func (LookupVirtualCircuitResultOutput) ElementType

func (LookupVirtualCircuitResultOutput) Id

The provider-assigned unique ID for this managed resource.

func (LookupVirtualCircuitResultOutput) Md5

The password that can be set for the VRF BGP peer

func (LookupVirtualCircuitResultOutput) MetalIp

The Metal IP address for the SVI (Switch Virtual Interface) of the VirtualCircuit. Will default to the first usable IP in the subnet.

func (LookupVirtualCircuitResultOutput) Name

Name of the virtual circuit resource.

func (LookupVirtualCircuitResultOutput) NniVlan

func (LookupVirtualCircuitResultOutput) NniVnid

func (LookupVirtualCircuitResultOutput) PeerAsn

The BGP ASN of the peer. The same ASN may be the used across several VCs, but it cannot be the same as the localAsn of the VRF.

func (LookupVirtualCircuitResultOutput) PortId

UUID of the Connection Port where the VC is scoped to.

func (LookupVirtualCircuitResultOutput) ProjectId

ID of project to which the VC belongs.

func (LookupVirtualCircuitResultOutput) Speed

Speed of the Virtual Circuit resource.

func (LookupVirtualCircuitResultOutput) Status

Status of the virtal circuit.

func (LookupVirtualCircuitResultOutput) Subnet

A subnet from one of the IP blocks associated with the VRF that we will help create an IP reservation for. Can only be either a /30 or /31.

  • For a /31 block, it will only have two IP addresses, which will be used for the metalIp and customer_ip.
  • For a /30 block, it will have four IP addresses, but the first and last IP addresses are not usable. We will default to the first usable IP address for the metal_ip.

func (LookupVirtualCircuitResultOutput) Tags

Tags for the Virtual Circuit resource.

func (LookupVirtualCircuitResultOutput) ToLookupVirtualCircuitResultOutput

func (o LookupVirtualCircuitResultOutput) ToLookupVirtualCircuitResultOutput() LookupVirtualCircuitResultOutput

func (LookupVirtualCircuitResultOutput) ToLookupVirtualCircuitResultOutputWithContext

func (o LookupVirtualCircuitResultOutput) ToLookupVirtualCircuitResultOutputWithContext(ctx context.Context) LookupVirtualCircuitResultOutput

func (LookupVirtualCircuitResultOutput) VirtualCircuitId

func (LookupVirtualCircuitResultOutput) VlanId

func (LookupVirtualCircuitResultOutput) Vnid

, `nniVlan`, `nniNvid` - VLAN parameters, see the [documentation for Equinix Fabric](https://metal.equinix.com/developers/docs/networking/fabric/).

func (LookupVirtualCircuitResultOutput) VrfId

UUID of the VLAN to associate.

type LookupVlanArgs

type LookupVlanArgs struct {
	// Facility where the VLAN is deployed. Deprecated, see https://feedback.equinixmetal.com/changelog/bye-facilities-hello-again-metros
	//
	// Deprecated: Use metro instead of facility.  For more information, read the migration guide: https://registry.terraform.io/providers/equinix/equinix/latest/docs/guides/migration_guide_facilities_to_metros_devices
	Facility *string `pulumi:"facility"`
	// Metro where the VLAN is deployed.
	//
	// > **NOTE:** You must set either `vlanId` or a combination of `vxlan`, `projectId`, and, `metro` or `facility`.
	Metro *string `pulumi:"metro"`
	// UUID of parent project of the VLAN. Use together with the vxlan number and metro or facility.
	ProjectId *string `pulumi:"projectId"`
	// Metal UUID of the VLAN resource to look up.
	VlanId *string `pulumi:"vlanId"`
	// vxlan number of the VLAN to look up. Use together with the projectId and metro or facility.
	Vxlan *int `pulumi:"vxlan"`
}

A collection of arguments for invoking getVlan.

type LookupVlanOutputArgs

type LookupVlanOutputArgs struct {
	// Facility where the VLAN is deployed. Deprecated, see https://feedback.equinixmetal.com/changelog/bye-facilities-hello-again-metros
	//
	// Deprecated: Use metro instead of facility.  For more information, read the migration guide: https://registry.terraform.io/providers/equinix/equinix/latest/docs/guides/migration_guide_facilities_to_metros_devices
	Facility pulumi.StringPtrInput `pulumi:"facility"`
	// Metro where the VLAN is deployed.
	//
	// > **NOTE:** You must set either `vlanId` or a combination of `vxlan`, `projectId`, and, `metro` or `facility`.
	Metro pulumi.StringPtrInput `pulumi:"metro"`
	// UUID of parent project of the VLAN. Use together with the vxlan number and metro or facility.
	ProjectId pulumi.StringPtrInput `pulumi:"projectId"`
	// Metal UUID of the VLAN resource to look up.
	VlanId pulumi.StringPtrInput `pulumi:"vlanId"`
	// vxlan number of the VLAN to look up. Use together with the projectId and metro or facility.
	Vxlan pulumi.IntPtrInput `pulumi:"vxlan"`
}

A collection of arguments for invoking getVlan.

func (LookupVlanOutputArgs) ElementType

func (LookupVlanOutputArgs) ElementType() reflect.Type

type LookupVlanResult

type LookupVlanResult struct {
	// List of device ID to which this VLAN is assigned.
	AssignedDevicesIds []string `pulumi:"assignedDevicesIds"`
	// Description text of the VLAN resource.
	Description string `pulumi:"description"`
	// Deprecated: Use metro instead of facility.  For more information, read the migration guide: https://registry.terraform.io/providers/equinix/equinix/latest/docs/guides/migration_guide_facilities_to_metros_devices
	Facility  string `pulumi:"facility"`
	Id        string `pulumi:"id"`
	Metro     string `pulumi:"metro"`
	ProjectId string `pulumi:"projectId"`
	VlanId    string `pulumi:"vlanId"`
	Vxlan     int    `pulumi:"vxlan"`
}

A collection of values returned by getVlan.

func LookupVlan

func LookupVlan(ctx *pulumi.Context, args *LookupVlanArgs, opts ...pulumi.InvokeOption) (*LookupVlanResult, error)

Provides an Equinix Metal Virtual Network datasource. VLANs data sources can be searched by VLAN UUID, or project UUID and vxlan number.

## Example Usage

Fetch a vlan by ID:

<!--Start PulumiCodeChooser --> ```go package main

import (

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

)

func main() {
	pulumi.Run(func(ctx *pulumi.Context) error {
		foovlan, err := metal.NewVlan(ctx, "foovlan", &metal.VlanArgs{
			ProjectId: pulumi.Any(local.Project_id),
			Metro:     pulumi.String("sv"),
			Vxlan:     pulumi.Int(5),
		})
		if err != nil {
			return err
		}
		_ = metal.LookupVlanOutput(ctx, metal.GetVlanOutputArgs{
			VlanId: foovlan.ID(),
		}, nil)
		return nil
	})
}

``` <!--End PulumiCodeChooser -->

Fetch a vlan by project ID, vxlan and metro

<!--Start PulumiCodeChooser --> ```go package main

import (

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

)

func main() {
	pulumi.Run(func(ctx *pulumi.Context) error {
		_, err := metal.LookupVlan(ctx, &metal.LookupVlanArgs{
			ProjectId: pulumi.StringRef(local.Project_id),
			Vxlan:     pulumi.IntRef(5),
			Metro:     pulumi.StringRef("sv"),
		}, nil)
		if err != nil {
			return err
		}
		return nil
	})
}

``` <!--End PulumiCodeChooser -->

type LookupVlanResultOutput

type LookupVlanResultOutput struct{ *pulumi.OutputState }

A collection of values returned by getVlan.

func (LookupVlanResultOutput) AssignedDevicesIds

func (o LookupVlanResultOutput) AssignedDevicesIds() pulumi.StringArrayOutput

List of device ID to which this VLAN is assigned.

func (LookupVlanResultOutput) Description

func (o LookupVlanResultOutput) Description() pulumi.StringOutput

Description text of the VLAN resource.

func (LookupVlanResultOutput) ElementType

func (LookupVlanResultOutput) ElementType() reflect.Type

func (LookupVlanResultOutput) Facility deprecated

Deprecated: Use metro instead of facility. For more information, read the migration guide: https://registry.terraform.io/providers/equinix/equinix/latest/docs/guides/migration_guide_facilities_to_metros_devices

func (LookupVlanResultOutput) Id

func (LookupVlanResultOutput) Metro

func (LookupVlanResultOutput) ProjectId

func (LookupVlanResultOutput) ToLookupVlanResultOutput

func (o LookupVlanResultOutput) ToLookupVlanResultOutput() LookupVlanResultOutput

func (LookupVlanResultOutput) ToLookupVlanResultOutputWithContext

func (o LookupVlanResultOutput) ToLookupVlanResultOutputWithContext(ctx context.Context) LookupVlanResultOutput

func (LookupVlanResultOutput) VlanId

func (LookupVlanResultOutput) Vxlan

type LookupVrfArgs

type LookupVrfArgs struct {
	// ID of the VRF resource
	VrfId string `pulumi:"vrfId"`
}

A collection of arguments for invoking getVrf.

type LookupVrfOutputArgs

type LookupVrfOutputArgs struct {
	// ID of the VRF resource
	VrfId pulumi.StringInput `pulumi:"vrfId"`
}

A collection of arguments for invoking getVrf.

func (LookupVrfOutputArgs) ElementType

func (LookupVrfOutputArgs) ElementType() reflect.Type

type LookupVrfResult

type LookupVrfResult struct {
	// Description of the VRF.
	Description string `pulumi:"description"`
	// The provider-assigned unique ID for this managed resource.
	Id string `pulumi:"id"`
	// All IPv4 and IPv6 Ranges that will be available to BGP Peers. IPv4 addresses must be /8 or smaller with a minimum size of /29. IPv6 must be /56 or smaller with a minimum size of /64. Ranges must not overlap other ranges within the VRF.
	IpRanges []string `pulumi:"ipRanges"`
	// The 4-byte ASN set on the VRF.
	LocalAsn int `pulumi:"localAsn"`
	// Metro ID or Code where the VRF will be deployed.
	Metro string `pulumi:"metro"`
	// User-supplied name of the VRF, unique to the project
	Name string `pulumi:"name"`
	// Project ID where the VRF will be deployed.
	ProjectId string `pulumi:"projectId"`
	VrfId     string `pulumi:"vrfId"`
}

A collection of values returned by getVrf.

func LookupVrf

func LookupVrf(ctx *pulumi.Context, args *LookupVrfArgs, opts ...pulumi.InvokeOption) (*LookupVrfResult, error)

Use this data source to retrieve a VRF resource.

> VRF features are not generally available. The interfaces related to VRF resources may change ahead of general availability.

## Example Usage

<!--Start PulumiCodeChooser --> ```go package main

import (

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

)

func main() {
	pulumi.Run(func(ctx *pulumi.Context) error {
		_, err := metal.LookupVrf(ctx, &metal.LookupVrfArgs{
			VrfId: "48630899-9ff2-4ce6-a93f-50ff4ebcdf6e",
		}, nil)
		if err != nil {
			return err
		}
		return nil
	})
}

``` <!--End PulumiCodeChooser -->

type LookupVrfResultOutput

type LookupVrfResultOutput struct{ *pulumi.OutputState }

A collection of values returned by getVrf.

func (LookupVrfResultOutput) Description

func (o LookupVrfResultOutput) Description() pulumi.StringOutput

Description of the VRF.

func (LookupVrfResultOutput) ElementType

func (LookupVrfResultOutput) ElementType() reflect.Type

func (LookupVrfResultOutput) Id

The provider-assigned unique ID for this managed resource.

func (LookupVrfResultOutput) IpRanges

All IPv4 and IPv6 Ranges that will be available to BGP Peers. IPv4 addresses must be /8 or smaller with a minimum size of /29. IPv6 must be /56 or smaller with a minimum size of /64. Ranges must not overlap other ranges within the VRF.

func (LookupVrfResultOutput) LocalAsn

func (o LookupVrfResultOutput) LocalAsn() pulumi.IntOutput

The 4-byte ASN set on the VRF.

func (LookupVrfResultOutput) Metro

Metro ID or Code where the VRF will be deployed.

func (LookupVrfResultOutput) Name

User-supplied name of the VRF, unique to the project

func (LookupVrfResultOutput) ProjectId

Project ID where the VRF will be deployed.

func (LookupVrfResultOutput) ToLookupVrfResultOutput

func (o LookupVrfResultOutput) ToLookupVrfResultOutput() LookupVrfResultOutput

func (LookupVrfResultOutput) ToLookupVrfResultOutputWithContext

func (o LookupVrfResultOutput) ToLookupVrfResultOutputWithContext(ctx context.Context) LookupVrfResultOutput

func (LookupVrfResultOutput) VrfId

type NetworkType

type NetworkType string

func (NetworkType) ElementType

func (NetworkType) ElementType() reflect.Type

func (NetworkType) ToNetworkTypeOutput

func (e NetworkType) ToNetworkTypeOutput() NetworkTypeOutput

func (NetworkType) ToNetworkTypeOutputWithContext

func (e NetworkType) ToNetworkTypeOutputWithContext(ctx context.Context) NetworkTypeOutput

func (NetworkType) ToNetworkTypePtrOutput

func (e NetworkType) ToNetworkTypePtrOutput() NetworkTypePtrOutput

func (NetworkType) ToNetworkTypePtrOutputWithContext

func (e NetworkType) ToNetworkTypePtrOutputWithContext(ctx context.Context) NetworkTypePtrOutput

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 NetworkTypeInput

type NetworkTypeInput interface {
	pulumi.Input

	ToNetworkTypeOutput() NetworkTypeOutput
	ToNetworkTypeOutputWithContext(context.Context) NetworkTypeOutput
}

NetworkTypeInput is an input type that accepts values of the NetworkType enum A concrete instance of `NetworkTypeInput` can be one of the following:

NetworkTypeLayer3
NetworkTypeLayer2Individual
NetworkTypeLayer2Bonded
NetworkTypeHybrid

type NetworkTypeOutput

type NetworkTypeOutput struct{ *pulumi.OutputState }

func (NetworkTypeOutput) ElementType

func (NetworkTypeOutput) ElementType() reflect.Type

func (NetworkTypeOutput) ToNetworkTypeOutput

func (o NetworkTypeOutput) ToNetworkTypeOutput() NetworkTypeOutput

func (NetworkTypeOutput) ToNetworkTypeOutputWithContext

func (o NetworkTypeOutput) ToNetworkTypeOutputWithContext(ctx context.Context) NetworkTypeOutput

func (NetworkTypeOutput) ToNetworkTypePtrOutput

func (o NetworkTypeOutput) ToNetworkTypePtrOutput() NetworkTypePtrOutput

func (NetworkTypeOutput) ToNetworkTypePtrOutputWithContext

func (o NetworkTypeOutput) ToNetworkTypePtrOutputWithContext(ctx context.Context) NetworkTypePtrOutput

func (NetworkTypeOutput) ToStringOutput

func (o NetworkTypeOutput) ToStringOutput() pulumi.StringOutput

func (NetworkTypeOutput) ToStringOutputWithContext

func (o NetworkTypeOutput) ToStringOutputWithContext(ctx context.Context) pulumi.StringOutput

func (NetworkTypeOutput) ToStringPtrOutput

func (o NetworkTypeOutput) ToStringPtrOutput() pulumi.StringPtrOutput

func (NetworkTypeOutput) ToStringPtrOutputWithContext

func (o NetworkTypeOutput) ToStringPtrOutputWithContext(ctx context.Context) pulumi.StringPtrOutput

type NetworkTypePtrInput

type NetworkTypePtrInput interface {
	pulumi.Input

	ToNetworkTypePtrOutput() NetworkTypePtrOutput
	ToNetworkTypePtrOutputWithContext(context.Context) NetworkTypePtrOutput
}

func NetworkTypePtr

func NetworkTypePtr(v string) NetworkTypePtrInput

type NetworkTypePtrOutput

type NetworkTypePtrOutput struct{ *pulumi.OutputState }

func (NetworkTypePtrOutput) Elem

func (NetworkTypePtrOutput) ElementType

func (NetworkTypePtrOutput) ElementType() reflect.Type

func (NetworkTypePtrOutput) ToNetworkTypePtrOutput

func (o NetworkTypePtrOutput) ToNetworkTypePtrOutput() NetworkTypePtrOutput

func (NetworkTypePtrOutput) ToNetworkTypePtrOutputWithContext

func (o NetworkTypePtrOutput) ToNetworkTypePtrOutputWithContext(ctx context.Context) NetworkTypePtrOutput

func (NetworkTypePtrOutput) ToStringPtrOutput

func (o NetworkTypePtrOutput) ToStringPtrOutput() pulumi.StringPtrOutput

func (NetworkTypePtrOutput) ToStringPtrOutputWithContext

func (o NetworkTypePtrOutput) ToStringPtrOutputWithContext(ctx context.Context) pulumi.StringPtrOutput

type OperatingSystem

type OperatingSystem string

See https://deploy.equinix.com/developers/api/metal/#tag/OperatingSystems/operation/findOperatingSystems

func (OperatingSystem) ElementType

func (OperatingSystem) ElementType() reflect.Type

func (OperatingSystem) ToOperatingSystemOutput

func (e OperatingSystem) ToOperatingSystemOutput() OperatingSystemOutput

func (OperatingSystem) ToOperatingSystemOutputWithContext

func (e OperatingSystem) ToOperatingSystemOutputWithContext(ctx context.Context) OperatingSystemOutput

func (OperatingSystem) ToOperatingSystemPtrOutput

func (e OperatingSystem) ToOperatingSystemPtrOutput() OperatingSystemPtrOutput

func (OperatingSystem) ToOperatingSystemPtrOutputWithContext

func (e OperatingSystem) ToOperatingSystemPtrOutputWithContext(ctx context.Context) OperatingSystemPtrOutput

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 OperatingSystemInput

type OperatingSystemInput interface {
	pulumi.Input

	ToOperatingSystemOutput() OperatingSystemOutput
	ToOperatingSystemOutputWithContext(context.Context) OperatingSystemOutput
}

OperatingSystemInput is an input type that accepts values of the OperatingSystem enum A concrete instance of `OperatingSystemInput` can be one of the following:

OperatingSystemAlma8
OperatingSystemAlma9
OperatingSystemAlpine3
OperatingSystemCentOS6
OperatingSystemCentOS7
OperatingSystemCentOS8
OperatingSystemCoreOSAlpha
OperatingSystemCoreOSBeta
OperatingSystemCoreOSStable
OperatingSystemCustomIPXE
OperatingSystemDebian10
OperatingSystemDebian11
OperatingSystemDebian7
OperatingSystemDebian8
OperatingSystemDebian9
OperatingSystemFedora31
OperatingSystemFedora34
OperatingSystemFlatcarAlpha
OperatingSystemFlatcarBeta
OperatingSystemFlatcarEdge
OperatingSystemFlatcarLTS
OperatingSystemFlatcarStable
OperatingSystem_FreeBSD10_3
OperatingSystem_FreeBSD10_4
OperatingSystem_FreeBSD11_0
OperatingSystem_FreeBSD11_1
OperatingSystem_FreeBSD11_2
OperatingSystem_FreeBSD11_3
OperatingSystem_FreeBSD11_4
OperatingSystemFreeBSD12Testing
OperatingSystem_FreeBSD12_1
OperatingSystem_FreeBSD13_0
OperatingSystem_FreeBSD13_1
OperatingSystem_FreeBSD13_testing
OperatingSystemHookEsxi7
OperatingSystem_NixOS17_03
OperatingSystem_NixOS18_03
OperatingSystem_NixOS19_03
OperatingSystem_NixOS20_09
OperatingSystem_NixOS21_11
OperatingSystem_NixOS22_05
OperatingSystem_NixOS22_11
OperatingSystem_Nixos21_05
OperatingSystemNutanixCentos
OperatingSystem_NutanixLTS5_19_1
OperatingSystem_NutanixLTS5_20
OperatingSystem_OpenSUSE42_3
OperatingSystemRHEL7
OperatingSystemRHEL8
OperatingSystemRHEL9
OperatingSystemRancherOS
OperatingSystemRocky8
OperatingSystemRocky9
OperatingSystemSLES12SP3
OperatingSystemScientificLinux6
OperatingSystemTalosV1
OperatingSystemUbuntu1710
OperatingSystem_Ubuntu18_04
OperatingSystemUbuntu1904
OperatingSystem_Ubuntu19_10
OperatingSystem_Ubuntu20_04
OperatingSystem_Ubuntu20_04_legacy
OperatingSystem_Ubuntu20_10
OperatingSystemUbuntu2204
OperatingSystemVMWareAlloyVcf
OperatingSystem_VMWareEsxi5_5
OperatingSystem_VMWareEsxi6_0
OperatingSystem_VMWareEsxi6_5
OperatingSystem_VMWareEsxi6_7
OperatingSystem_VMWareEsxi6_7_vcf
OperatingSystem_VMWareEsxi7_0
OperatingSystem_VMWareEsxi7_0U2a
OperatingSystem_VMWareEsxi7_0_vcf
OperatingSystem_VMWareNsx2_5_0
OperatingSystem_VMWareNsx3_0_0
OperatingSystemVirtuozzo7
OperatingSystemWindows2012R2
OperatingSystemWindows2016
OperatingSystemWindows2019
OperatingSystemWindows2022

type OperatingSystemOutput

type OperatingSystemOutput struct{ *pulumi.OutputState }

func (OperatingSystemOutput) ElementType

func (OperatingSystemOutput) ElementType() reflect.Type

func (OperatingSystemOutput) ToOperatingSystemOutput

func (o OperatingSystemOutput) ToOperatingSystemOutput() OperatingSystemOutput

func (OperatingSystemOutput) ToOperatingSystemOutputWithContext

func (o OperatingSystemOutput) ToOperatingSystemOutputWithContext(ctx context.Context) OperatingSystemOutput

func (OperatingSystemOutput) ToOperatingSystemPtrOutput

func (o OperatingSystemOutput) ToOperatingSystemPtrOutput() OperatingSystemPtrOutput

func (OperatingSystemOutput) ToOperatingSystemPtrOutputWithContext

func (o OperatingSystemOutput) ToOperatingSystemPtrOutputWithContext(ctx context.Context) OperatingSystemPtrOutput

func (OperatingSystemOutput) ToStringOutput

func (o OperatingSystemOutput) ToStringOutput() pulumi.StringOutput

func (OperatingSystemOutput) ToStringOutputWithContext

func (o OperatingSystemOutput) ToStringOutputWithContext(ctx context.Context) pulumi.StringOutput

func (OperatingSystemOutput) ToStringPtrOutput

func (o OperatingSystemOutput) ToStringPtrOutput() pulumi.StringPtrOutput

func (OperatingSystemOutput) ToStringPtrOutputWithContext

func (o OperatingSystemOutput) ToStringPtrOutputWithContext(ctx context.Context) pulumi.StringPtrOutput

type OperatingSystemPtrInput

type OperatingSystemPtrInput interface {
	pulumi.Input

	ToOperatingSystemPtrOutput() OperatingSystemPtrOutput
	ToOperatingSystemPtrOutputWithContext(context.Context) OperatingSystemPtrOutput
}

func OperatingSystemPtr

func OperatingSystemPtr(v string) OperatingSystemPtrInput

type OperatingSystemPtrOutput

type OperatingSystemPtrOutput struct{ *pulumi.OutputState }

func (OperatingSystemPtrOutput) Elem

func (OperatingSystemPtrOutput) ElementType

func (OperatingSystemPtrOutput) ElementType() reflect.Type

func (OperatingSystemPtrOutput) ToOperatingSystemPtrOutput

func (o OperatingSystemPtrOutput) ToOperatingSystemPtrOutput() OperatingSystemPtrOutput

func (OperatingSystemPtrOutput) ToOperatingSystemPtrOutputWithContext

func (o OperatingSystemPtrOutput) ToOperatingSystemPtrOutputWithContext(ctx context.Context) OperatingSystemPtrOutput

func (OperatingSystemPtrOutput) ToStringPtrOutput

func (o OperatingSystemPtrOutput) ToStringPtrOutput() pulumi.StringPtrOutput

func (OperatingSystemPtrOutput) ToStringPtrOutputWithContext

func (o OperatingSystemPtrOutput) ToStringPtrOutputWithContext(ctx context.Context) pulumi.StringPtrOutput

type Organization

type Organization struct {
	pulumi.CustomResourceState

	// An object that has the address information. See Address
	// below for more details.
	Address OrganizationAddressPtrOutput `pulumi:"address"`
	// The timestamp for when the organization was created.
	Created pulumi.StringOutput `pulumi:"created"`
	// Description string.
	Description pulumi.StringOutput `pulumi:"description"`
	Logo pulumi.StringOutput `pulumi:"logo"`
	// The name of the Organization.
	Name pulumi.StringOutput `pulumi:"name"`
	// Twitter handle.
	Twitter pulumi.StringOutput `pulumi:"twitter"`
	// The timestamp for the last time the organization was updated.
	Updated pulumi.StringOutput `pulumi:"updated"`
	// Website link.
	Website pulumi.StringOutput `pulumi:"website"`
}

Provides a resource to manage organization resource in Equinix Metal.

## Example Usage ```go package main

import (

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

)

func main() {
	pulumi.Run(func(ctx *pulumi.Context) error {
		orgResource, err := metal.NewOrganization(ctx, "org", &metal.OrganizationArgs{
			Name: pulumi.String("Foo Organization"),
			Address: &metal.OrganizationAddressArgs{
				Address: pulumi.String("org street"),
				City:    pulumi.String("london"),
				Country: pulumi.String("GB"),
				ZipCode: pulumi.String("12345"),
			},
			Description: pulumi.String("An organization"),
		})
		if err != nil {
			return err
		}
		ctx.Export("org", orgResource.ID())
		return nil
	})
}

```

## Import

This resource can be imported using an existing organization ID:

```sh $ pulumi import equinix:metal/organization:Organization equinix_metal_organization {existing_organization_id} ```

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

type OrganizationAddress

type OrganizationAddress struct {
	// Postal address.
	Address string `pulumi:"address"`
	// City name.
	City string `pulumi:"city"`
	// Two letter country code (ISO 3166-1 alpha-2), e.g. US.
	Country string `pulumi:"country"`
	// State name.
	State *string `pulumi:"state"`
	// Zip Code.
	ZipCode string `pulumi:"zipCode"`
}

type OrganizationAddressArgs

type OrganizationAddressArgs struct {
	// Postal address.
	Address pulumi.StringInput `pulumi:"address"`
	// City name.
	City pulumi.StringInput `pulumi:"city"`
	// Two letter country code (ISO 3166-1 alpha-2), e.g. US.
	Country pulumi.StringInput `pulumi:"country"`
	// State name.
	State pulumi.StringPtrInput `pulumi:"state"`
	// Zip Code.
	ZipCode pulumi.StringInput `pulumi:"zipCode"`
}

func (OrganizationAddressArgs) ElementType

func (OrganizationAddressArgs) ElementType() reflect.Type

func (OrganizationAddressArgs) ToOrganizationAddressOutput

func (i OrganizationAddressArgs) ToOrganizationAddressOutput() OrganizationAddressOutput

func (OrganizationAddressArgs) ToOrganizationAddressOutputWithContext

func (i OrganizationAddressArgs) ToOrganizationAddressOutputWithContext(ctx context.Context) OrganizationAddressOutput

func (OrganizationAddressArgs) ToOrganizationAddressPtrOutput

func (i OrganizationAddressArgs) ToOrganizationAddressPtrOutput() OrganizationAddressPtrOutput

func (OrganizationAddressArgs) ToOrganizationAddressPtrOutputWithContext

func (i OrganizationAddressArgs) ToOrganizationAddressPtrOutputWithContext(ctx context.Context) OrganizationAddressPtrOutput

type OrganizationAddressInput

type OrganizationAddressInput interface {
	pulumi.Input

	ToOrganizationAddressOutput() OrganizationAddressOutput
	ToOrganizationAddressOutputWithContext(context.Context) OrganizationAddressOutput
}

OrganizationAddressInput is an input type that accepts OrganizationAddressArgs and OrganizationAddressOutput values. You can construct a concrete instance of `OrganizationAddressInput` via:

OrganizationAddressArgs{...}

type OrganizationAddressOutput

type OrganizationAddressOutput struct{ *pulumi.OutputState }

func (OrganizationAddressOutput) Address

Postal address.

func (OrganizationAddressOutput) City

City name.

func (OrganizationAddressOutput) Country

Two letter country code (ISO 3166-1 alpha-2), e.g. US.

func (OrganizationAddressOutput) ElementType

func (OrganizationAddressOutput) ElementType() reflect.Type

func (OrganizationAddressOutput) State

State name.

func (OrganizationAddressOutput) ToOrganizationAddressOutput

func (o OrganizationAddressOutput) ToOrganizationAddressOutput() OrganizationAddressOutput

func (OrganizationAddressOutput) ToOrganizationAddressOutputWithContext

func (o OrganizationAddressOutput) ToOrganizationAddressOutputWithContext(ctx context.Context) OrganizationAddressOutput

func (OrganizationAddressOutput) ToOrganizationAddressPtrOutput

func (o OrganizationAddressOutput) ToOrganizationAddressPtrOutput() OrganizationAddressPtrOutput

func (OrganizationAddressOutput) ToOrganizationAddressPtrOutputWithContext

func (o OrganizationAddressOutput) ToOrganizationAddressPtrOutputWithContext(ctx context.Context) OrganizationAddressPtrOutput

func (OrganizationAddressOutput) ZipCode

Zip Code.

type OrganizationAddressPtrInput

type OrganizationAddressPtrInput interface {
	pulumi.Input

	ToOrganizationAddressPtrOutput() OrganizationAddressPtrOutput
	ToOrganizationAddressPtrOutputWithContext(context.Context) OrganizationAddressPtrOutput
}

OrganizationAddressPtrInput is an input type that accepts OrganizationAddressArgs, OrganizationAddressPtr and OrganizationAddressPtrOutput values. You can construct a concrete instance of `OrganizationAddressPtrInput` via:

        OrganizationAddressArgs{...}

or:

        nil

type OrganizationAddressPtrOutput

type OrganizationAddressPtrOutput struct{ *pulumi.OutputState }

func (OrganizationAddressPtrOutput) Address

Postal address.

func (OrganizationAddressPtrOutput) City

City name.

func (OrganizationAddressPtrOutput) Country

Two letter country code (ISO 3166-1 alpha-2), e.g. US.

func (OrganizationAddressPtrOutput) Elem

func (OrganizationAddressPtrOutput) ElementType

func (OrganizationAddressPtrOutput) State

State name.

func (OrganizationAddressPtrOutput) ToOrganizationAddressPtrOutput

func (o OrganizationAddressPtrOutput) ToOrganizationAddressPtrOutput() OrganizationAddressPtrOutput

func (OrganizationAddressPtrOutput) ToOrganizationAddressPtrOutputWithContext

func (o OrganizationAddressPtrOutput) ToOrganizationAddressPtrOutputWithContext(ctx context.Context) OrganizationAddressPtrOutput

func (OrganizationAddressPtrOutput) ZipCode

Zip Code.

type OrganizationArgs

type OrganizationArgs struct {
	// An object that has the address information. See Address
	// below for more details.
	Address OrganizationAddressPtrInput
	// 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

type OrganizationArray []OrganizationInput

func (OrganizationArray) ElementType

func (OrganizationArray) ElementType() reflect.Type

func (OrganizationArray) ToOrganizationArrayOutput

func (i OrganizationArray) ToOrganizationArrayOutput() OrganizationArrayOutput

func (OrganizationArray) ToOrganizationArrayOutputWithContext

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

type OrganizationArrayInput

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

type OrganizationArrayOutput struct{ *pulumi.OutputState }

func (OrganizationArrayOutput) ElementType

func (OrganizationArrayOutput) ElementType() reflect.Type

func (OrganizationArrayOutput) Index

func (OrganizationArrayOutput) ToOrganizationArrayOutput

func (o OrganizationArrayOutput) ToOrganizationArrayOutput() OrganizationArrayOutput

func (OrganizationArrayOutput) ToOrganizationArrayOutputWithContext

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

type OrganizationInput

type OrganizationInput interface {
	pulumi.Input

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

type OrganizationMap

type OrganizationMap map[string]OrganizationInput

func (OrganizationMap) ElementType

func (OrganizationMap) ElementType() reflect.Type

func (OrganizationMap) ToOrganizationMapOutput

func (i OrganizationMap) ToOrganizationMapOutput() OrganizationMapOutput

func (OrganizationMap) ToOrganizationMapOutputWithContext

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

type OrganizationMapInput

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

type OrganizationMapOutput struct{ *pulumi.OutputState }

func (OrganizationMapOutput) ElementType

func (OrganizationMapOutput) ElementType() reflect.Type

func (OrganizationMapOutput) MapIndex

func (OrganizationMapOutput) ToOrganizationMapOutput

func (o OrganizationMapOutput) ToOrganizationMapOutput() OrganizationMapOutput

func (OrganizationMapOutput) ToOrganizationMapOutputWithContext

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

type OrganizationMember

type OrganizationMember struct {
	pulumi.CustomResourceState

	// When the invitation was created (only known in the invitation stage)
	Created pulumi.StringOutput `pulumi:"created"`
	// The userId of the user that sent the invitation (only known in the invitation stage)
	InvitedBy pulumi.StringOutput `pulumi:"invitedBy"`
	// The email address of the user to invite
	Invitee pulumi.StringOutput `pulumi:"invitee"`
	// A message to include in the emailed invitation.
	Message pulumi.StringPtrOutput `pulumi:"message"`
	// The nonce for the invitation (only known in the invitation stage)
	Nonce pulumi.StringOutput `pulumi:"nonce"`
	// The organization to invite the user to
	OrganizationId pulumi.StringOutput `pulumi:"organizationId"`
	// Project IDs the member has access to within the organization. If the member is an 'admin', the projects list should be empty.
	ProjectsIds pulumi.StringArrayOutput `pulumi:"projectsIds"`
	// Organization roles (admin, collaborator, limited_collaborator, billing)
	Roles pulumi.StringArrayOutput `pulumi:"roles"`
	// The state of the membership ('invited' when an invitation is open, 'active' when the user is an organization member)
	State pulumi.StringOutput `pulumi:"state"`
	// When the invitation was updated (only known in the invitation stage)
	Updated pulumi.StringOutput `pulumi:"updated"`
}

Manage the membership of existing and new invitees within an Equinix Metal organization and its projects.

## Example Usage ```go package main

import (

"github.com/equinix/pulumi-equinix/sdk/go/equinix/metal"
"github.com/pulumi/pulumi/sdk/v3/go/pulumi"
"github.com/pulumi/pulumi/sdk/v3/go/pulumi/config"

)

func main() {
	pulumi.Run(func(ctx *pulumi.Context) error {
		cfg := config.New(ctx, "")
		organizationId := cfg.Require("organizationId")
		projectId := cfg.Require("projectId")
		userEmailAddress := cfg.Require("userEmailAddress")
		member, err := metal.NewOrganizationMember(ctx, "member", &metal.OrganizationMemberArgs{
			Invitee: pulumi.String(userEmailAddress),
			Roles: pulumi.StringArray{
				pulumi.String("limited_collaborator"),
			},
			ProjectsIds: pulumi.StringArray{
				pulumi.String(projectId),
			},
			OrganizationId: pulumi.String(organizationId),
		})
		if err != nil {
			return err
		}
		ctx.Export("memberId", member.ID())
		ctx.Export("memberState", member.State)
		return nil
	})
}

```

## Import

This resource can be imported using the `invitee` and `organization_id` as colon separated arguments:

```sh $ pulumi import equinix:metal/organizationMember:OrganizationMember resource_name {invitee}:{organization_id} ```

func GetOrganizationMember

func GetOrganizationMember(ctx *pulumi.Context,
	name string, id pulumi.IDInput, state *OrganizationMemberState, opts ...pulumi.ResourceOption) (*OrganizationMember, error)

GetOrganizationMember gets an existing OrganizationMember 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 NewOrganizationMember

func NewOrganizationMember(ctx *pulumi.Context,
	name string, args *OrganizationMemberArgs, opts ...pulumi.ResourceOption) (*OrganizationMember, error)

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

func (*OrganizationMember) ElementType

func (*OrganizationMember) ElementType() reflect.Type

func (*OrganizationMember) ToOrganizationMemberOutput

func (i *OrganizationMember) ToOrganizationMemberOutput() OrganizationMemberOutput

func (*OrganizationMember) ToOrganizationMemberOutputWithContext

func (i *OrganizationMember) ToOrganizationMemberOutputWithContext(ctx context.Context) OrganizationMemberOutput

type OrganizationMemberArgs

type OrganizationMemberArgs struct {
	// The email address of the user to invite
	Invitee pulumi.StringInput
	// A message to include in the emailed invitation.
	Message pulumi.StringPtrInput
	// The organization to invite the user to
	OrganizationId pulumi.StringInput
	// Project IDs the member has access to within the organization. If the member is an 'admin', the projects list should be empty.
	ProjectsIds pulumi.StringArrayInput
	// Organization roles (admin, collaborator, limited_collaborator, billing)
	Roles pulumi.StringArrayInput
}

The set of arguments for constructing a OrganizationMember resource.

func (OrganizationMemberArgs) ElementType

func (OrganizationMemberArgs) ElementType() reflect.Type

type OrganizationMemberArray

type OrganizationMemberArray []OrganizationMemberInput

func (OrganizationMemberArray) ElementType

func (OrganizationMemberArray) ElementType() reflect.Type

func (OrganizationMemberArray) ToOrganizationMemberArrayOutput

func (i OrganizationMemberArray) ToOrganizationMemberArrayOutput() OrganizationMemberArrayOutput

func (OrganizationMemberArray) ToOrganizationMemberArrayOutputWithContext

func (i OrganizationMemberArray) ToOrganizationMemberArrayOutputWithContext(ctx context.Context) OrganizationMemberArrayOutput

type OrganizationMemberArrayInput

type OrganizationMemberArrayInput interface {
	pulumi.Input

	ToOrganizationMemberArrayOutput() OrganizationMemberArrayOutput
	ToOrganizationMemberArrayOutputWithContext(context.Context) OrganizationMemberArrayOutput
}

OrganizationMemberArrayInput is an input type that accepts OrganizationMemberArray and OrganizationMemberArrayOutput values. You can construct a concrete instance of `OrganizationMemberArrayInput` via:

OrganizationMemberArray{ OrganizationMemberArgs{...} }

type OrganizationMemberArrayOutput

type OrganizationMemberArrayOutput struct{ *pulumi.OutputState }

func (OrganizationMemberArrayOutput) ElementType

func (OrganizationMemberArrayOutput) Index

func (OrganizationMemberArrayOutput) ToOrganizationMemberArrayOutput

func (o OrganizationMemberArrayOutput) ToOrganizationMemberArrayOutput() OrganizationMemberArrayOutput

func (OrganizationMemberArrayOutput) ToOrganizationMemberArrayOutputWithContext

func (o OrganizationMemberArrayOutput) ToOrganizationMemberArrayOutputWithContext(ctx context.Context) OrganizationMemberArrayOutput

type OrganizationMemberInput

type OrganizationMemberInput interface {
	pulumi.Input

	ToOrganizationMemberOutput() OrganizationMemberOutput
	ToOrganizationMemberOutputWithContext(ctx context.Context) OrganizationMemberOutput
}

type OrganizationMemberMap

type OrganizationMemberMap map[string]OrganizationMemberInput

func (OrganizationMemberMap) ElementType

func (OrganizationMemberMap) ElementType() reflect.Type

func (OrganizationMemberMap) ToOrganizationMemberMapOutput

func (i OrganizationMemberMap) ToOrganizationMemberMapOutput() OrganizationMemberMapOutput

func (OrganizationMemberMap) ToOrganizationMemberMapOutputWithContext

func (i OrganizationMemberMap) ToOrganizationMemberMapOutputWithContext(ctx context.Context) OrganizationMemberMapOutput

type OrganizationMemberMapInput

type OrganizationMemberMapInput interface {
	pulumi.Input

	ToOrganizationMemberMapOutput() OrganizationMemberMapOutput
	ToOrganizationMemberMapOutputWithContext(context.Context) OrganizationMemberMapOutput
}

OrganizationMemberMapInput is an input type that accepts OrganizationMemberMap and OrganizationMemberMapOutput values. You can construct a concrete instance of `OrganizationMemberMapInput` via:

OrganizationMemberMap{ "key": OrganizationMemberArgs{...} }

type OrganizationMemberMapOutput

type OrganizationMemberMapOutput struct{ *pulumi.OutputState }

func (OrganizationMemberMapOutput) ElementType

func (OrganizationMemberMapOutput) MapIndex

func (OrganizationMemberMapOutput) ToOrganizationMemberMapOutput

func (o OrganizationMemberMapOutput) ToOrganizationMemberMapOutput() OrganizationMemberMapOutput

func (OrganizationMemberMapOutput) ToOrganizationMemberMapOutputWithContext

func (o OrganizationMemberMapOutput) ToOrganizationMemberMapOutputWithContext(ctx context.Context) OrganizationMemberMapOutput

type OrganizationMemberOutput

type OrganizationMemberOutput struct{ *pulumi.OutputState }

func (OrganizationMemberOutput) Created

When the invitation was created (only known in the invitation stage)

func (OrganizationMemberOutput) ElementType

func (OrganizationMemberOutput) ElementType() reflect.Type

func (OrganizationMemberOutput) InvitedBy

The userId of the user that sent the invitation (only known in the invitation stage)

func (OrganizationMemberOutput) Invitee

The email address of the user to invite

func (OrganizationMemberOutput) Message

A message to include in the emailed invitation.

func (OrganizationMemberOutput) Nonce

The nonce for the invitation (only known in the invitation stage)

func (OrganizationMemberOutput) OrganizationId

func (o OrganizationMemberOutput) OrganizationId() pulumi.StringOutput

The organization to invite the user to

func (OrganizationMemberOutput) ProjectsIds

Project IDs the member has access to within the organization. If the member is an 'admin', the projects list should be empty.

func (OrganizationMemberOutput) Roles

Organization roles (admin, collaborator, limited_collaborator, billing)

func (OrganizationMemberOutput) State

The state of the membership ('invited' when an invitation is open, 'active' when the user is an organization member)

func (OrganizationMemberOutput) ToOrganizationMemberOutput

func (o OrganizationMemberOutput) ToOrganizationMemberOutput() OrganizationMemberOutput

func (OrganizationMemberOutput) ToOrganizationMemberOutputWithContext

func (o OrganizationMemberOutput) ToOrganizationMemberOutputWithContext(ctx context.Context) OrganizationMemberOutput

func (OrganizationMemberOutput) Updated

When the invitation was updated (only known in the invitation stage)

type OrganizationMemberState

type OrganizationMemberState struct {
	// When the invitation was created (only known in the invitation stage)
	Created pulumi.StringPtrInput
	// The userId of the user that sent the invitation (only known in the invitation stage)
	InvitedBy pulumi.StringPtrInput
	// The email address of the user to invite
	Invitee pulumi.StringPtrInput
	// A message to include in the emailed invitation.
	Message pulumi.StringPtrInput
	// The nonce for the invitation (only known in the invitation stage)
	Nonce pulumi.StringPtrInput
	// The organization to invite the user to
	OrganizationId pulumi.StringPtrInput
	// Project IDs the member has access to within the organization. If the member is an 'admin', the projects list should be empty.
	ProjectsIds pulumi.StringArrayInput
	// Organization roles (admin, collaborator, limited_collaborator, billing)
	Roles pulumi.StringArrayInput
	// The state of the membership ('invited' when an invitation is open, 'active' when the user is an organization member)
	State pulumi.StringPtrInput
	// When the invitation was updated (only known in the invitation stage)
	Updated pulumi.StringPtrInput
}

func (OrganizationMemberState) ElementType

func (OrganizationMemberState) ElementType() reflect.Type

type OrganizationOutput

type OrganizationOutput struct{ *pulumi.OutputState }

func (OrganizationOutput) Address

An object that has the address information. See Address below for more details.

func (OrganizationOutput) Created

The timestamp for when the organization was created.

func (OrganizationOutput) Description

func (o OrganizationOutput) Description() pulumi.StringOutput

Description string.

func (OrganizationOutput) ElementType

func (OrganizationOutput) ElementType() reflect.Type

Logo URL.

func (OrganizationOutput) Name

The name of the Organization.

func (OrganizationOutput) ToOrganizationOutput

func (o OrganizationOutput) ToOrganizationOutput() OrganizationOutput

func (OrganizationOutput) ToOrganizationOutputWithContext

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

func (OrganizationOutput) Twitter

Twitter handle.

func (OrganizationOutput) Updated

The timestamp for the last time the organization was updated.

func (OrganizationOutput) Website

Website link.

type OrganizationState

type OrganizationState struct {
	// An object that has the address information. See Address
	// below for more details.
	Address OrganizationAddressPtrInput
	// The timestamp for when the organization was created.
	Created pulumi.StringPtrInput
	// Description string.
	Description pulumi.StringPtrInput
	Logo pulumi.StringPtrInput
	// The name of the Organization.
	Name pulumi.StringPtrInput
	// Twitter handle.
	Twitter pulumi.StringPtrInput
	// The timestamp for the last time the organization was updated.
	Updated pulumi.StringPtrInput
	// Website link.
	Website pulumi.StringPtrInput
}

func (OrganizationState) ElementType

func (OrganizationState) ElementType() reflect.Type

type Plan

type Plan string

See https://deploy.equinix.com/developers/api/metal/#tag/Plans/operation/findPlans

func (Plan) ElementType

func (Plan) ElementType() reflect.Type

func (Plan) ToPlanOutput

func (e Plan) ToPlanOutput() PlanOutput

func (Plan) ToPlanOutputWithContext

func (e Plan) ToPlanOutputWithContext(ctx context.Context) PlanOutput

func (Plan) ToPlanPtrOutput

func (e Plan) ToPlanPtrOutput() PlanPtrOutput

func (Plan) ToPlanPtrOutputWithContext

func (e Plan) ToPlanPtrOutputWithContext(ctx context.Context) PlanPtrOutput

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 PlanInput

type PlanInput interface {
	pulumi.Input

	ToPlanOutput() PlanOutput
	ToPlanOutputWithContext(context.Context) PlanOutput
}

PlanInput is an input type that accepts values of the Plan enum A concrete instance of `PlanInput` can be one of the following:

PlanA3LargeX86
PlanC2LargeARM
PlanC2MediumX86
PlanC3LargeARM
PlanC3MediumX86
PlanC3SmallX86
PlanF3LargeX86
PlanF3MediumX86
PlanG2LargeX86
PlanM2XLargeX86
PlanM3LargeX86
PlanM3SmallX86
PlanN2XLargeX86
PlanN3XLargeX86
PlanS3XLargeX86
PlanT3SmallX86
PlanX2XLargeX86
PlanX3XLargeX86

type PlanOutput

type PlanOutput struct{ *pulumi.OutputState }

func (PlanOutput) ElementType

func (PlanOutput) ElementType() reflect.Type

func (PlanOutput) ToPlanOutput

func (o PlanOutput) ToPlanOutput() PlanOutput

func (PlanOutput) ToPlanOutputWithContext

func (o PlanOutput) ToPlanOutputWithContext(ctx context.Context) PlanOutput

func (PlanOutput) ToPlanPtrOutput

func (o PlanOutput) ToPlanPtrOutput() PlanPtrOutput

func (PlanOutput) ToPlanPtrOutputWithContext

func (o PlanOutput) ToPlanPtrOutputWithContext(ctx context.Context) PlanPtrOutput

func (PlanOutput) ToStringOutput

func (o PlanOutput) ToStringOutput() pulumi.StringOutput

func (PlanOutput) ToStringOutputWithContext

func (o PlanOutput) ToStringOutputWithContext(ctx context.Context) pulumi.StringOutput

func (PlanOutput) ToStringPtrOutput

func (o PlanOutput) ToStringPtrOutput() pulumi.StringPtrOutput

func (PlanOutput) ToStringPtrOutputWithContext

func (o PlanOutput) ToStringPtrOutputWithContext(ctx context.Context) pulumi.StringPtrOutput

type PlanPtrInput

type PlanPtrInput interface {
	pulumi.Input

	ToPlanPtrOutput() PlanPtrOutput
	ToPlanPtrOutputWithContext(context.Context) PlanPtrOutput
}

func PlanPtr

func PlanPtr(v string) PlanPtrInput

type PlanPtrOutput

type PlanPtrOutput struct{ *pulumi.OutputState }

func (PlanPtrOutput) Elem

func (o PlanPtrOutput) Elem() PlanOutput

func (PlanPtrOutput) ElementType

func (PlanPtrOutput) ElementType() reflect.Type

func (PlanPtrOutput) ToPlanPtrOutput

func (o PlanPtrOutput) ToPlanPtrOutput() PlanPtrOutput

func (PlanPtrOutput) ToPlanPtrOutputWithContext

func (o PlanPtrOutput) ToPlanPtrOutputWithContext(ctx context.Context) PlanPtrOutput

func (PlanPtrOutput) ToStringPtrOutput

func (o PlanPtrOutput) ToStringPtrOutput() pulumi.StringPtrOutput

func (PlanPtrOutput) ToStringPtrOutputWithContext

func (o PlanPtrOutput) ToStringPtrOutputWithContext(ctx context.Context) pulumi.StringPtrOutput

type Port

type Port struct {
	pulumi.CustomResourceState

	// UUID of the bond port.
	BondId pulumi.StringOutput `pulumi:"bondId"`
	// Name of the bond port.
	BondName pulumi.StringOutput `pulumi:"bondName"`
	// Whether the port should be bonded.
	Bonded pulumi.BoolOutput `pulumi:"bonded"`
	// Flag indicating whether the port can be removed from a bond.
	DisbondSupported pulumi.BoolOutput `pulumi:"disbondSupported"`
	// Whether to put the port to Layer 2 mode, valid only for bond ports.
	Layer2 pulumi.BoolPtrOutput `pulumi:"layer2"`
	// MAC address of the port.
	Mac pulumi.StringOutput `pulumi:"mac"`
	// Name of the port, e.g. `bond0` or `eth0`.
	Name pulumi.StringOutput `pulumi:"name"`
	// UUID of a VLAN to assign as a native VLAN. It must be one of
	// attached VLANs (from `vlanIds` parameter).
	NativeVlanId pulumi.StringPtrOutput `pulumi:"nativeVlanId"`
	// One of layer2-bonded, layer2-individual, layer3, hybrid and hybrid-bonded. This
	// attribute is only set on bond ports.
	NetworkType pulumi.StringOutput `pulumi:"networkType"`
	// ID of the port to read.
	PortId pulumi.StringOutput `pulumi:"portId"`
	// Behavioral setting to reset the port to default settings (layer3 bonded mode without any vlan attached) before delete/destroy.
	ResetOnDelete pulumi.BoolPtrOutput `pulumi:"resetOnDelete"`
	// Type is either "NetworkBondPort" for bond ports or "NetworkPort" for bondable ethernet ports.
	Type pulumi.StringOutput `pulumi:"type"`
	// List of VLAN UUIDs to attach to the port, valid only for L2 and Hybrid
	// ports.
	VlanIds pulumi.StringArrayOutput `pulumi:"vlanIds"`
	// List of VXLAN IDs to attach to the port, valid only for L2 and Hybrid
	// ports.
	VxlanIds pulumi.IntArrayOutput `pulumi:"vxlanIds"`
}

## Example Usage ```go package main

import (

"github.com/equinix/pulumi-equinix/sdk/go/equinix/metal"
"github.com/pulumi/pulumi/sdk/v3/go/pulumi"
"github.com/pulumi/pulumi/sdk/v3/go/pulumi/config"

)

func main() {
	pulumi.Run(func(ctx *pulumi.Context) error {
		cfg := config.New(ctx, "")
		portId := cfg.Require("portId")
		_, err := metal.NewPort(ctx, "org", &metal.PortArgs{
			PortId: pulumi.String(portId),
			Bonded: pulumi.Bool(true),
			Layer2: pulumi.Bool(true),
		})
		if err != nil {
			return err
		}
		ctx.Export("portType", port.Type)
		ctx.Export("portBondedNetworkType", port.NetworkType)
		return nil
	})
}

```

func GetPort

func GetPort(ctx *pulumi.Context,
	name string, id pulumi.IDInput, state *PortState, opts ...pulumi.ResourceOption) (*Port, error)

GetPort gets an existing Port 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 NewPort

func NewPort(ctx *pulumi.Context,
	name string, args *PortArgs, opts ...pulumi.ResourceOption) (*Port, error)

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

func (*Port) ElementType

func (*Port) ElementType() reflect.Type

func (*Port) ToPortOutput

func (i *Port) ToPortOutput() PortOutput

func (*Port) ToPortOutputWithContext

func (i *Port) ToPortOutputWithContext(ctx context.Context) PortOutput

type PortArgs

type PortArgs struct {
	// Whether the port should be bonded.
	Bonded pulumi.BoolInput
	// Whether to put the port to Layer 2 mode, valid only for bond ports.
	Layer2 pulumi.BoolPtrInput
	// UUID of a VLAN to assign as a native VLAN. It must be one of
	// attached VLANs (from `vlanIds` parameter).
	NativeVlanId pulumi.StringPtrInput
	// ID of the port to read.
	PortId pulumi.StringInput
	// Behavioral setting to reset the port to default settings (layer3 bonded mode without any vlan attached) before delete/destroy.
	ResetOnDelete pulumi.BoolPtrInput
	// List of VLAN UUIDs to attach to the port, valid only for L2 and Hybrid
	// ports.
	VlanIds pulumi.StringArrayInput
	// List of VXLAN IDs to attach to the port, valid only for L2 and Hybrid
	// ports.
	VxlanIds pulumi.IntArrayInput
}

The set of arguments for constructing a Port resource.

func (PortArgs) ElementType

func (PortArgs) ElementType() reflect.Type

type PortArray

type PortArray []PortInput

func (PortArray) ElementType

func (PortArray) ElementType() reflect.Type

func (PortArray) ToPortArrayOutput

func (i PortArray) ToPortArrayOutput() PortArrayOutput

func (PortArray) ToPortArrayOutputWithContext

func (i PortArray) ToPortArrayOutputWithContext(ctx context.Context) PortArrayOutput

type PortArrayInput

type PortArrayInput interface {
	pulumi.Input

	ToPortArrayOutput() PortArrayOutput
	ToPortArrayOutputWithContext(context.Context) PortArrayOutput
}

PortArrayInput is an input type that accepts PortArray and PortArrayOutput values. You can construct a concrete instance of `PortArrayInput` via:

PortArray{ PortArgs{...} }

type PortArrayOutput

type PortArrayOutput struct{ *pulumi.OutputState }

func (PortArrayOutput) ElementType

func (PortArrayOutput) ElementType() reflect.Type

func (PortArrayOutput) Index

func (PortArrayOutput) ToPortArrayOutput

func (o PortArrayOutput) ToPortArrayOutput() PortArrayOutput

func (PortArrayOutput) ToPortArrayOutputWithContext

func (o PortArrayOutput) ToPortArrayOutputWithContext(ctx context.Context) PortArrayOutput

type PortInput

type PortInput interface {
	pulumi.Input

	ToPortOutput() PortOutput
	ToPortOutputWithContext(ctx context.Context) PortOutput
}

type PortMap

type PortMap map[string]PortInput

func (PortMap) ElementType

func (PortMap) ElementType() reflect.Type

func (PortMap) ToPortMapOutput

func (i PortMap) ToPortMapOutput() PortMapOutput

func (PortMap) ToPortMapOutputWithContext

func (i PortMap) ToPortMapOutputWithContext(ctx context.Context) PortMapOutput

type PortMapInput

type PortMapInput interface {
	pulumi.Input

	ToPortMapOutput() PortMapOutput
	ToPortMapOutputWithContext(context.Context) PortMapOutput
}

PortMapInput is an input type that accepts PortMap and PortMapOutput values. You can construct a concrete instance of `PortMapInput` via:

PortMap{ "key": PortArgs{...} }

type PortMapOutput

type PortMapOutput struct{ *pulumi.OutputState }

func (PortMapOutput) ElementType

func (PortMapOutput) ElementType() reflect.Type

func (PortMapOutput) MapIndex

func (PortMapOutput) ToPortMapOutput

func (o PortMapOutput) ToPortMapOutput() PortMapOutput

func (PortMapOutput) ToPortMapOutputWithContext

func (o PortMapOutput) ToPortMapOutputWithContext(ctx context.Context) PortMapOutput

type PortOutput

type PortOutput struct{ *pulumi.OutputState }

func (PortOutput) BondId

func (o PortOutput) BondId() pulumi.StringOutput

UUID of the bond port.

func (PortOutput) BondName

func (o PortOutput) BondName() pulumi.StringOutput

Name of the bond port.

func (PortOutput) Bonded

func (o PortOutput) Bonded() pulumi.BoolOutput

Whether the port should be bonded.

func (PortOutput) DisbondSupported

func (o PortOutput) DisbondSupported() pulumi.BoolOutput

Flag indicating whether the port can be removed from a bond.

func (PortOutput) ElementType

func (PortOutput) ElementType() reflect.Type

func (PortOutput) Layer2

func (o PortOutput) Layer2() pulumi.BoolPtrOutput

Whether to put the port to Layer 2 mode, valid only for bond ports.

func (PortOutput) Mac

func (o PortOutput) Mac() pulumi.StringOutput

MAC address of the port.

func (PortOutput) Name

func (o PortOutput) Name() pulumi.StringOutput

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

func (PortOutput) NativeVlanId

func (o PortOutput) NativeVlanId() pulumi.StringPtrOutput

UUID of a VLAN to assign as a native VLAN. It must be one of attached VLANs (from `vlanIds` parameter).

func (PortOutput) NetworkType

func (o PortOutput) NetworkType() pulumi.StringOutput

One of layer2-bonded, layer2-individual, layer3, hybrid and hybrid-bonded. This attribute is only set on bond ports.

func (PortOutput) PortId

func (o PortOutput) PortId() pulumi.StringOutput

ID of the port to read.

func (PortOutput) ResetOnDelete

func (o PortOutput) ResetOnDelete() pulumi.BoolPtrOutput

Behavioral setting to reset the port to default settings (layer3 bonded mode without any vlan attached) before delete/destroy.

func (PortOutput) ToPortOutput

func (o PortOutput) ToPortOutput() PortOutput

func (PortOutput) ToPortOutputWithContext

func (o PortOutput) ToPortOutputWithContext(ctx context.Context) PortOutput

func (PortOutput) Type

func (o PortOutput) Type() pulumi.StringOutput

Type is either "NetworkBondPort" for bond ports or "NetworkPort" for bondable ethernet ports.

func (PortOutput) VlanIds

func (o PortOutput) VlanIds() pulumi.StringArrayOutput

List of VLAN UUIDs to attach to the port, valid only for L2 and Hybrid ports.

func (PortOutput) VxlanIds

func (o PortOutput) VxlanIds() pulumi.IntArrayOutput

List of VXLAN IDs to attach to the port, valid only for L2 and Hybrid ports.

type PortState

type PortState struct {
	// UUID of the bond port.
	BondId pulumi.StringPtrInput
	// Name of the bond port.
	BondName pulumi.StringPtrInput
	// Whether the port should be bonded.
	Bonded pulumi.BoolPtrInput
	// Flag indicating whether the port can be removed from a bond.
	DisbondSupported pulumi.BoolPtrInput
	// Whether to put the port to Layer 2 mode, valid only for bond ports.
	Layer2 pulumi.BoolPtrInput
	// MAC address of the port.
	Mac pulumi.StringPtrInput
	// Name of the port, e.g. `bond0` or `eth0`.
	Name pulumi.StringPtrInput
	// UUID of a VLAN to assign as a native VLAN. It must be one of
	// attached VLANs (from `vlanIds` parameter).
	NativeVlanId pulumi.StringPtrInput
	// One of layer2-bonded, layer2-individual, layer3, hybrid and hybrid-bonded. This
	// attribute is only set on bond ports.
	NetworkType pulumi.StringPtrInput
	// ID of the port to read.
	PortId pulumi.StringPtrInput
	// Behavioral setting to reset the port to default settings (layer3 bonded mode without any vlan attached) before delete/destroy.
	ResetOnDelete pulumi.BoolPtrInput
	// Type is either "NetworkBondPort" for bond ports or "NetworkPort" for bondable ethernet ports.
	Type pulumi.StringPtrInput
	// List of VLAN UUIDs to attach to the port, valid only for L2 and Hybrid
	// ports.
	VlanIds pulumi.StringArrayInput
	// List of VXLAN IDs to attach to the port, valid only for L2 and Hybrid
	// ports.
	VxlanIds pulumi.IntArrayInput
}

func (PortState) ElementType

func (PortState) ElementType() reflect.Type

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.PortVlanAttachment`, just
	// like in the layer2-individual example above.
	Native pulumi.BoolPtrOutput `pulumi:"native"`
	// UUID of device port
	PortId pulumi.StringOutput `pulumi:"portId"`
	// Name of network port to be assigned to the VLAN.
	PortName pulumi.StringOutput `pulumi:"portName"`
	// UUID of VLAN API resource
	VlanId pulumi.StringOutput `pulumi:"vlanId"`
	// VXLAN Network Identifier.
	VlanVnid pulumi.IntOutput `pulumi:"vlanVnid"`
}

Provides a resource to attach device ports to VLANs.

Device and VLAN must be in the same metro.

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

## Attribute Referece

In addition to all arguments above, the following attributes are exported:

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

## Example Usage ```go package main

import (

"github.com/equinix/pulumi-equinix/sdk/go/equinix/metal"
"github.com/pulumi/pulumi/sdk/v3/go/pulumi"
"github.com/pulumi/pulumi/sdk/v3/go/pulumi/config"

)

func main() {
	pulumi.Run(func(ctx *pulumi.Context) error {
		cfg := config.New(ctx, "")
		deviceId := cfg.Require("deviceId")
		portName := "eth1"
		if param := cfg.Get("portName"); param != "" {
			portName = param
		}
		vxlanId := 1004
		if param := cfg.GetInt("vxlanId"); param != 0 {
			vxlanId = param
		}
		attach, err := metal.NewPortVlanAttachment(ctx, "attach", &metal.PortVlanAttachmentArgs{
			DeviceId: pulumi.String(deviceId),
			PortName: pulumi.String(portName),
			VlanVnid: pulumi.Int(vxlanId),
		})
		if err != nil {
			return err
		}
		ctx.Export("attachId", attach.ID())
		ctx.Export("portId", attach.PortId)
		return nil
	})
}

```

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

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.PortVlanAttachment`, 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.
	VlanVnid pulumi.IntInput
}

The set of arguments for constructing a PortVlanAttachment resource.

func (PortVlanAttachmentArgs) ElementType

func (PortVlanAttachmentArgs) ElementType() reflect.Type

type PortVlanAttachmentArray

type PortVlanAttachmentArray []PortVlanAttachmentInput

func (PortVlanAttachmentArray) ElementType

func (PortVlanAttachmentArray) ElementType() reflect.Type

func (PortVlanAttachmentArray) ToPortVlanAttachmentArrayOutput

func (i PortVlanAttachmentArray) ToPortVlanAttachmentArrayOutput() PortVlanAttachmentArrayOutput

func (PortVlanAttachmentArray) ToPortVlanAttachmentArrayOutputWithContext

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

type PortVlanAttachmentArrayInput

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

type PortVlanAttachmentArrayOutput struct{ *pulumi.OutputState }

func (PortVlanAttachmentArrayOutput) ElementType

func (PortVlanAttachmentArrayOutput) Index

func (PortVlanAttachmentArrayOutput) ToPortVlanAttachmentArrayOutput

func (o PortVlanAttachmentArrayOutput) ToPortVlanAttachmentArrayOutput() PortVlanAttachmentArrayOutput

func (PortVlanAttachmentArrayOutput) ToPortVlanAttachmentArrayOutputWithContext

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

type PortVlanAttachmentInput

type PortVlanAttachmentInput interface {
	pulumi.Input

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

type PortVlanAttachmentMap

type PortVlanAttachmentMap map[string]PortVlanAttachmentInput

func (PortVlanAttachmentMap) ElementType

func (PortVlanAttachmentMap) ElementType() reflect.Type

func (PortVlanAttachmentMap) ToPortVlanAttachmentMapOutput

func (i PortVlanAttachmentMap) ToPortVlanAttachmentMapOutput() PortVlanAttachmentMapOutput

func (PortVlanAttachmentMap) ToPortVlanAttachmentMapOutputWithContext

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

type PortVlanAttachmentMapInput

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

type PortVlanAttachmentMapOutput struct{ *pulumi.OutputState }

func (PortVlanAttachmentMapOutput) ElementType

func (PortVlanAttachmentMapOutput) MapIndex

func (PortVlanAttachmentMapOutput) ToPortVlanAttachmentMapOutput

func (o PortVlanAttachmentMapOutput) ToPortVlanAttachmentMapOutput() PortVlanAttachmentMapOutput

func (PortVlanAttachmentMapOutput) ToPortVlanAttachmentMapOutputWithContext

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

type PortVlanAttachmentOutput

type PortVlanAttachmentOutput struct{ *pulumi.OutputState }

func (PortVlanAttachmentOutput) DeviceId

ID of device to be assigned to the VLAN.

func (PortVlanAttachmentOutput) ElementType

func (PortVlanAttachmentOutput) ElementType() reflect.Type

func (PortVlanAttachmentOutput) ForceBond

Add port back to the bond when this resource is removed. Default is `false`.

func (PortVlanAttachmentOutput) Native

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.PortVlanAttachment`, just like in the layer2-individual example above.

func (PortVlanAttachmentOutput) PortId

UUID of device port

func (PortVlanAttachmentOutput) PortName

Name of network port to be assigned to the VLAN.

func (PortVlanAttachmentOutput) ToPortVlanAttachmentOutput

func (o PortVlanAttachmentOutput) ToPortVlanAttachmentOutput() PortVlanAttachmentOutput

func (PortVlanAttachmentOutput) ToPortVlanAttachmentOutputWithContext

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

func (PortVlanAttachmentOutput) VlanId

UUID of VLAN API resource

func (PortVlanAttachmentOutput) VlanVnid

VXLAN Network Identifier.

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.PortVlanAttachment`, just
	// like in the layer2-individual example above.
	Native pulumi.BoolPtrInput
	// UUID of device port
	PortId pulumi.StringPtrInput
	// Name of network port to be assigned to the VLAN.
	PortName pulumi.StringPtrInput
	// UUID of VLAN API resource
	VlanId pulumi.StringPtrInput
	// VXLAN Network Identifier.
	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.BoolOutput `pulumi:"backendTransfer"`
	// Optional BGP settings. Refer to [Equinix Metal guide for BGP](https://metal.equinix.com/developers/docs/networking/local-global-bgp/).
	//
	// > **NOTE:** Once you set the BGP config in a project, it can't be removed (due to a limitation in
	// the Equinix Metal API). It can be updated.
	BgpConfig ProjectBgpConfigPtrOutput `pulumi:"bgpConfig"`
	// The timestamp for when the project was created.
	Created pulumi.StringOutput `pulumi:"created"`
	// The name of the project.  The maximum length is 80 characters
	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 created 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"`
}

Provides an Equinix Metal project resource to allow you manage devices in your projects.

> **NOTE:** Keep in mind that Equinix Metal invoicing is per project, so creating many `metal.Project` resources will affect the rendered invoice. If you want to keep your Equinix Metal bill simple and easy to review, please re-use your existing projects.

## Example Usage ```go package main

import (

"github.com/equinix/pulumi-equinix/sdk/go/equinix/metal"
"github.com/pulumi/pulumi/sdk/v3/go/pulumi"
"github.com/pulumi/pulumi/sdk/v3/go/pulumi/config"

)

func main() {
	pulumi.Run(func(ctx *pulumi.Context) error {
		cfg := config.New(ctx, "")
		organizationId := cfg.Require("organizationId")
		name := "Default Project"
		if param := cfg.Get("name"); param != "" {
			name = param
		}
		projectResource, err := metal.NewProject(ctx, "project", &metal.ProjectArgs{
			Name:           pulumi.String(name),
			OrganizationId: pulumi.String(organizationId),
		})
		if err != nil {
			return err
		}
		ctx.Export("projectId", projectResource.ID())
		return nil
	})
}

```

## Import

This resource can be imported using an existing project ID:

```sh $ pulumi import equinix:metal/project:Project equinix_metal_project {existing_project_id} ```

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

type ProjectApiKey

type ProjectApiKey struct {
	pulumi.CustomResourceState

	// Description string for the Project API Key resource.
	// * `read-only` - (Optional) Flag indicating whether the API key shoud be read-only.
	Description pulumi.StringOutput `pulumi:"description"`
	// UUID of the project where the API key is scoped to.
	ProjectId pulumi.StringOutput `pulumi:"projectId"`
	// Flag indicating whether the API key shoud be read-only
	ReadOnly pulumi.BoolOutput `pulumi:"readOnly"`
	// API token which can be used in Equinix Metal API clients
	Token pulumi.StringOutput `pulumi:"token"`
}

Use this resource to create Metal Project API Key resources in Equinix Metal. Project API keys can be used to create and read resources in a single project. Each API key contains a token which can be used for authentication in Equinix Metal HTTP API (in HTTP request header `X-Auth-Token`).

Read-only keys only allow to list and view existing resources, read-write keys can also be used to create resources.

## Example Usage ```go package main

import (

"github.com/equinix/pulumi-equinix/sdk/go/equinix/metal"
"github.com/pulumi/pulumi/sdk/v3/go/pulumi"
"github.com/pulumi/pulumi/sdk/v3/go/pulumi/config"

)

func main() {
	pulumi.Run(func(ctx *pulumi.Context) error {
		cfg := config.New(ctx, "")
		projectId := cfg.Require("projectId")
		readOnly := false
		if param := cfg.GetBool("readOnly"); param {
			readOnly = param
		}
		apiKey, err := metal.NewProjectApiKey(ctx, "apiKey", &metal.ProjectApiKeyArgs{
			ProjectId:   pulumi.String(projectId),
			Description: pulumi.String("A project level API Key"),
			ReadOnly:    pulumi.Bool(readOnly),
		})
		if err != nil {
			return err
		}
		ctx.Export("apiKeyToken", apiKey.Token)
		return nil
	})
}

```

func GetProjectApiKey

func GetProjectApiKey(ctx *pulumi.Context,
	name string, id pulumi.IDInput, state *ProjectApiKeyState, opts ...pulumi.ResourceOption) (*ProjectApiKey, error)

GetProjectApiKey gets an existing ProjectApiKey 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 NewProjectApiKey

func NewProjectApiKey(ctx *pulumi.Context,
	name string, args *ProjectApiKeyArgs, opts ...pulumi.ResourceOption) (*ProjectApiKey, error)

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

func (*ProjectApiKey) ElementType

func (*ProjectApiKey) ElementType() reflect.Type

func (*ProjectApiKey) ToProjectApiKeyOutput

func (i *ProjectApiKey) ToProjectApiKeyOutput() ProjectApiKeyOutput

func (*ProjectApiKey) ToProjectApiKeyOutputWithContext

func (i *ProjectApiKey) ToProjectApiKeyOutputWithContext(ctx context.Context) ProjectApiKeyOutput

type ProjectApiKeyArgs

type ProjectApiKeyArgs struct {
	// Description string for the Project API Key resource.
	// * `read-only` - (Optional) Flag indicating whether the API key shoud be read-only.
	Description pulumi.StringInput
	// UUID of the project where the API key is scoped to.
	ProjectId pulumi.StringInput
	// Flag indicating whether the API key shoud be read-only
	ReadOnly pulumi.BoolInput
}

The set of arguments for constructing a ProjectApiKey resource.

func (ProjectApiKeyArgs) ElementType

func (ProjectApiKeyArgs) ElementType() reflect.Type

type ProjectApiKeyArray

type ProjectApiKeyArray []ProjectApiKeyInput

func (ProjectApiKeyArray) ElementType

func (ProjectApiKeyArray) ElementType() reflect.Type

func (ProjectApiKeyArray) ToProjectApiKeyArrayOutput

func (i ProjectApiKeyArray) ToProjectApiKeyArrayOutput() ProjectApiKeyArrayOutput

func (ProjectApiKeyArray) ToProjectApiKeyArrayOutputWithContext

func (i ProjectApiKeyArray) ToProjectApiKeyArrayOutputWithContext(ctx context.Context) ProjectApiKeyArrayOutput

type ProjectApiKeyArrayInput

type ProjectApiKeyArrayInput interface {
	pulumi.Input

	ToProjectApiKeyArrayOutput() ProjectApiKeyArrayOutput
	ToProjectApiKeyArrayOutputWithContext(context.Context) ProjectApiKeyArrayOutput
}

ProjectApiKeyArrayInput is an input type that accepts ProjectApiKeyArray and ProjectApiKeyArrayOutput values. You can construct a concrete instance of `ProjectApiKeyArrayInput` via:

ProjectApiKeyArray{ ProjectApiKeyArgs{...} }

type ProjectApiKeyArrayOutput

type ProjectApiKeyArrayOutput struct{ *pulumi.OutputState }

func (ProjectApiKeyArrayOutput) ElementType

func (ProjectApiKeyArrayOutput) ElementType() reflect.Type

func (ProjectApiKeyArrayOutput) Index

func (ProjectApiKeyArrayOutput) ToProjectApiKeyArrayOutput

func (o ProjectApiKeyArrayOutput) ToProjectApiKeyArrayOutput() ProjectApiKeyArrayOutput

func (ProjectApiKeyArrayOutput) ToProjectApiKeyArrayOutputWithContext

func (o ProjectApiKeyArrayOutput) ToProjectApiKeyArrayOutputWithContext(ctx context.Context) ProjectApiKeyArrayOutput

type ProjectApiKeyInput

type ProjectApiKeyInput interface {
	pulumi.Input

	ToProjectApiKeyOutput() ProjectApiKeyOutput
	ToProjectApiKeyOutputWithContext(ctx context.Context) ProjectApiKeyOutput
}

type ProjectApiKeyMap

type ProjectApiKeyMap map[string]ProjectApiKeyInput

func (ProjectApiKeyMap) ElementType

func (ProjectApiKeyMap) ElementType() reflect.Type

func (ProjectApiKeyMap) ToProjectApiKeyMapOutput

func (i ProjectApiKeyMap) ToProjectApiKeyMapOutput() ProjectApiKeyMapOutput

func (ProjectApiKeyMap) ToProjectApiKeyMapOutputWithContext

func (i ProjectApiKeyMap) ToProjectApiKeyMapOutputWithContext(ctx context.Context) ProjectApiKeyMapOutput

type ProjectApiKeyMapInput

type ProjectApiKeyMapInput interface {
	pulumi.Input

	ToProjectApiKeyMapOutput() ProjectApiKeyMapOutput
	ToProjectApiKeyMapOutputWithContext(context.Context) ProjectApiKeyMapOutput
}

ProjectApiKeyMapInput is an input type that accepts ProjectApiKeyMap and ProjectApiKeyMapOutput values. You can construct a concrete instance of `ProjectApiKeyMapInput` via:

ProjectApiKeyMap{ "key": ProjectApiKeyArgs{...} }

type ProjectApiKeyMapOutput

type ProjectApiKeyMapOutput struct{ *pulumi.OutputState }

func (ProjectApiKeyMapOutput) ElementType

func (ProjectApiKeyMapOutput) ElementType() reflect.Type

func (ProjectApiKeyMapOutput) MapIndex

func (ProjectApiKeyMapOutput) ToProjectApiKeyMapOutput

func (o ProjectApiKeyMapOutput) ToProjectApiKeyMapOutput() ProjectApiKeyMapOutput

func (ProjectApiKeyMapOutput) ToProjectApiKeyMapOutputWithContext

func (o ProjectApiKeyMapOutput) ToProjectApiKeyMapOutputWithContext(ctx context.Context) ProjectApiKeyMapOutput

type ProjectApiKeyOutput

type ProjectApiKeyOutput struct{ *pulumi.OutputState }

func (ProjectApiKeyOutput) Description

func (o ProjectApiKeyOutput) Description() pulumi.StringOutput

Description string for the Project API Key resource. * `read-only` - (Optional) Flag indicating whether the API key shoud be read-only.

func (ProjectApiKeyOutput) ElementType

func (ProjectApiKeyOutput) ElementType() reflect.Type

func (ProjectApiKeyOutput) ProjectId

func (o ProjectApiKeyOutput) ProjectId() pulumi.StringOutput

UUID of the project where the API key is scoped to.

func (ProjectApiKeyOutput) ReadOnly

func (o ProjectApiKeyOutput) ReadOnly() pulumi.BoolOutput

Flag indicating whether the API key shoud be read-only

func (ProjectApiKeyOutput) ToProjectApiKeyOutput

func (o ProjectApiKeyOutput) ToProjectApiKeyOutput() ProjectApiKeyOutput

func (ProjectApiKeyOutput) ToProjectApiKeyOutputWithContext

func (o ProjectApiKeyOutput) ToProjectApiKeyOutputWithContext(ctx context.Context) ProjectApiKeyOutput

func (ProjectApiKeyOutput) Token

API token which can be used in Equinix Metal API clients

type ProjectApiKeyState

type ProjectApiKeyState struct {
	// Description string for the Project API Key resource.
	// * `read-only` - (Optional) Flag indicating whether the API key shoud be read-only.
	Description pulumi.StringPtrInput
	// UUID of the project where the API key is scoped to.
	ProjectId pulumi.StringPtrInput
	// Flag indicating whether the API key shoud be read-only
	ReadOnly pulumi.BoolPtrInput
	// API token which can be used in Equinix Metal API clients
	Token pulumi.StringPtrInput
}

func (ProjectApiKeyState) ElementType

func (ProjectApiKeyState) ElementType() reflect.Type

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/).
	//
	// > **NOTE:** Once you set the BGP config in a project, it can't be removed (due to a limitation in
	// the Equinix Metal API). It can be updated.
	BgpConfig ProjectBgpConfigPtrInput
	// The name of the project.  The maximum length is 80 characters
	Name pulumi.StringPtrInput
	// The UUID of organization under which you want to create the project. If you
	// leave it out, the project will be created 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

type ProjectArray []ProjectInput

func (ProjectArray) ElementType

func (ProjectArray) ElementType() reflect.Type

func (ProjectArray) ToProjectArrayOutput

func (i ProjectArray) ToProjectArrayOutput() ProjectArrayOutput

func (ProjectArray) ToProjectArrayOutputWithContext

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

type ProjectArrayInput

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

type ProjectArrayOutput struct{ *pulumi.OutputState }

func (ProjectArrayOutput) ElementType

func (ProjectArrayOutput) ElementType() reflect.Type

func (ProjectArrayOutput) Index

func (ProjectArrayOutput) ToProjectArrayOutput

func (o ProjectArrayOutput) ToProjectArrayOutput() ProjectArrayOutput

func (ProjectArrayOutput) ToProjectArrayOutputWithContext

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

type ProjectBgpConfig

type ProjectBgpConfig struct {
	// Autonomous System Number for local BGP deployment.
	Asn int `pulumi:"asn"`
	// `local` or `global`, the `local` is likely to be usable immediately, the
	// `global` will need to be reviewed 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"`
	// `local` or `global`, the `local` is likely to be usable immediately, the
	// `global` will need to be reviewed 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

`local` or `global`, the `local` is likely to be usable immediately, the `global` will need to be reviewed 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

`local` or `global`, the `local` is likely to be usable immediately, the `global` will need to be reviewed 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

type ProjectMap map[string]ProjectInput

func (ProjectMap) ElementType

func (ProjectMap) ElementType() reflect.Type

func (ProjectMap) ToProjectMapOutput

func (i ProjectMap) ToProjectMapOutput() ProjectMapOutput

func (ProjectMap) ToProjectMapOutputWithContext

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

type ProjectMapInput

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

type ProjectMapOutput struct{ *pulumi.OutputState }

func (ProjectMapOutput) ElementType

func (ProjectMapOutput) ElementType() reflect.Type

func (ProjectMapOutput) MapIndex

func (ProjectMapOutput) ToProjectMapOutput

func (o ProjectMapOutput) ToProjectMapOutput() ProjectMapOutput

func (ProjectMapOutput) ToProjectMapOutputWithContext

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

type ProjectOutput

type ProjectOutput struct{ *pulumi.OutputState }

func (ProjectOutput) BackendTransfer

func (o ProjectOutput) BackendTransfer() pulumi.BoolOutput

Enable or disable [Backend Transfer](https://metal.equinix.com/developers/docs/networking/backend-transfer/), default is `false`.

func (ProjectOutput) BgpConfig

Optional BGP settings. Refer to [Equinix Metal guide for BGP](https://metal.equinix.com/developers/docs/networking/local-global-bgp/).

> **NOTE:** Once you set the BGP config in a project, it can't be removed (due to a limitation in the Equinix Metal API). It can be updated.

func (ProjectOutput) Created

func (o ProjectOutput) Created() pulumi.StringOutput

The timestamp for when the project was created.

func (ProjectOutput) ElementType

func (ProjectOutput) ElementType() reflect.Type

func (ProjectOutput) Name

The name of the project. The maximum length is 80 characters

func (ProjectOutput) OrganizationId

func (o ProjectOutput) OrganizationId() pulumi.StringOutput

The UUID of organization under which you want to create the project. If you leave it out, the project will be created under your the default organization of your account.

func (ProjectOutput) PaymentMethodId

func (o ProjectOutput) PaymentMethodId() pulumi.StringOutput

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

func (ProjectOutput) ToProjectOutput

func (o ProjectOutput) ToProjectOutput() ProjectOutput

func (ProjectOutput) ToProjectOutputWithContext

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

func (ProjectOutput) Updated

func (o ProjectOutput) Updated() pulumi.StringOutput

The timestamp for the last time the project was updated.

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 (

"os"

"github.com/equinix/pulumi-equinix/sdk/go/equinix/metal"
"github.com/pulumi/pulumi/sdk/v3/go/pulumi"
"github.com/pulumi/pulumi/sdk/v3/go/pulumi/config"

)

func readFileOrPanic(path string) pulumi.StringPtrInput {
	data, err := os.ReadFile(path)
	if err != nil {
		panic(err.Error())
	}
	return pulumi.String(string(data))
}

func main() {
	pulumi.Run(func(ctx *pulumi.Context) error {
		cfg := config.New(ctx, "")
		projectId := cfg.Require("projectId")
		sshKey, err := metal.NewProjectSshKey(ctx, "sshKey", &metal.ProjectSshKeyArgs{
			ProjectId: pulumi.String(projectId),
			Name:      pulumi.String("johnKent"),
			PublicKey: readFileOrPanic("/Users/John/.ssh/metal_rsa.pub"),
		})
		if err != nil {
			return err
		}
		ctx.Export("sshKeyId", sshKey.ID())
		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

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

type ProjectSshKeyArray []ProjectSshKeyInput

func (ProjectSshKeyArray) ElementType

func (ProjectSshKeyArray) ElementType() reflect.Type

func (ProjectSshKeyArray) ToProjectSshKeyArrayOutput

func (i ProjectSshKeyArray) ToProjectSshKeyArrayOutput() ProjectSshKeyArrayOutput

func (ProjectSshKeyArray) ToProjectSshKeyArrayOutputWithContext

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

type ProjectSshKeyArrayInput

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

type ProjectSshKeyArrayOutput struct{ *pulumi.OutputState }

func (ProjectSshKeyArrayOutput) ElementType

func (ProjectSshKeyArrayOutput) ElementType() reflect.Type

func (ProjectSshKeyArrayOutput) Index

func (ProjectSshKeyArrayOutput) ToProjectSshKeyArrayOutput

func (o ProjectSshKeyArrayOutput) ToProjectSshKeyArrayOutput() ProjectSshKeyArrayOutput

func (ProjectSshKeyArrayOutput) ToProjectSshKeyArrayOutputWithContext

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

type ProjectSshKeyInput

type ProjectSshKeyInput interface {
	pulumi.Input

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

type ProjectSshKeyMap

type ProjectSshKeyMap map[string]ProjectSshKeyInput

func (ProjectSshKeyMap) ElementType

func (ProjectSshKeyMap) ElementType() reflect.Type

func (ProjectSshKeyMap) ToProjectSshKeyMapOutput

func (i ProjectSshKeyMap) ToProjectSshKeyMapOutput() ProjectSshKeyMapOutput

func (ProjectSshKeyMap) ToProjectSshKeyMapOutputWithContext

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

type ProjectSshKeyMapInput

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

type ProjectSshKeyMapOutput struct{ *pulumi.OutputState }

func (ProjectSshKeyMapOutput) ElementType

func (ProjectSshKeyMapOutput) ElementType() reflect.Type

func (ProjectSshKeyMapOutput) MapIndex

func (ProjectSshKeyMapOutput) ToProjectSshKeyMapOutput

func (o ProjectSshKeyMapOutput) ToProjectSshKeyMapOutput() ProjectSshKeyMapOutput

func (ProjectSshKeyMapOutput) ToProjectSshKeyMapOutputWithContext

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

type ProjectSshKeyOutput

type ProjectSshKeyOutput struct{ *pulumi.OutputState }

func (ProjectSshKeyOutput) Created

The timestamp for when the SSH key was created.

func (ProjectSshKeyOutput) ElementType

func (ProjectSshKeyOutput) ElementType() reflect.Type

func (ProjectSshKeyOutput) Fingerprint

func (o ProjectSshKeyOutput) Fingerprint() pulumi.StringOutput

The fingerprint of the SSH key.

func (ProjectSshKeyOutput) Name

The name of the SSH key for identification.

func (ProjectSshKeyOutput) OwnerId

The ID of parent project (same as project_id).

func (ProjectSshKeyOutput) ProjectId

func (o ProjectSshKeyOutput) ProjectId() pulumi.StringOutput

The ID of parent project.

func (ProjectSshKeyOutput) PublicKey

func (o ProjectSshKeyOutput) PublicKey() pulumi.StringOutput

The public key. If this is a file, it can be read using the file interpolation function.

func (ProjectSshKeyOutput) ToProjectSshKeyOutput

func (o ProjectSshKeyOutput) ToProjectSshKeyOutput() ProjectSshKeyOutput

func (ProjectSshKeyOutput) ToProjectSshKeyOutputWithContext

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

func (ProjectSshKeyOutput) Updated

The timestamp for the last time the SSH key was updated.

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/).
	//
	// > **NOTE:** Once you set the BGP config in a project, it can't be removed (due to a limitation in
	// the Equinix Metal API). It can be updated.
	BgpConfig ProjectBgpConfigPtrInput
	// The timestamp for when the project was created.
	Created pulumi.StringPtrInput
	// The name of the project.  The maximum length is 80 characters
	Name pulumi.StringPtrInput
	// The UUID of organization under which you want to create the project. If you
	// leave it out, the project will be created 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 ReservedIpBlock

type ReservedIpBlock struct {
	pulumi.CustomResourceState

	Address pulumi.StringOutput `pulumi:"address"`
	// Address family as integer. One of `4` or `6`.
	AddressFamily pulumi.IntOutput `pulumi:"addressFamily"`
	// Only valid as an argument and required when `type` is `vrf`. The size of the network to reserve from an existing VRF ip_range. `cidr` can only be specified with `vrfId`. Range is 22-31. Virtual Circuits require 30-31. Other VRF resources must use a CIDR in the 22-29 range.
	Cidr pulumi.IntOutput `pulumi:"cidr"`
	// Address and mask in CIDR notation, e.g. `147.229.15.30/31`.
	CidrNotation pulumi.StringOutput `pulumi:"cidrNotation"`
	// Custom Data is an arbitrary object (submitted in Terraform as serialized JSON) to assign to the IP Reservation. This may
	// be helpful for self-managed IPAM. The object must be valid JSON.
	CustomData pulumi.StringPtrOutput `pulumi:"customData"`
	// Arbitrary description.
	Description pulumi.StringPtrOutput `pulumi:"description"`
	// Facility where to allocate the public IP address block, makes sense only
	// if type is `publicIpv4` and must be empty if type is `globalIpv4`. Conflicts with `metro`. Use metro instead; read the facility to metro migration guide
	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
	// metro).
	Global     pulumi.BoolOutput `pulumi:"global"`
	Manageable pulumi.BoolOutput `pulumi:"manageable"`
	Management pulumi.BoolOutput `pulumi:"management"`
	// Metro where to allocate the public IP address block, makes sense only
	// if type is `publicIpv4` and must be empty if type is `globalIpv4`. Conflicts with `facility`.
	Metro pulumi.StringPtrOutput `pulumi:"metro"`
	// Mask in decimal notation, e.g. `255.255.255.0`.
	Netmask pulumi.StringOutput `pulumi:"netmask"`
	// Only valid as an argument and required when `type` is `vrf`. An unreserved network address from an existing `ipRange` in the specified VRF.
	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. Required when `type` is not `vrf`.
	Quantity pulumi.IntOutput `pulumi:"quantity"`
	// String list of tags.
	Tags pulumi.StringArrayOutput `pulumi:"tags"`
	// One of `globalIpv4`, `publicIpv4`, or `vrf`. Defaults to `publicIpv4` for backward
	// compatibility.
	Type pulumi.StringPtrOutput `pulumi:"type"`
	// Only valid and required when `type` is `vrf`. VRF ID for type=vrf reservations.
	VrfId pulumi.StringPtrOutput `pulumi:"vrfId"`
	// Wait for the IP reservation block to reach a desired state on resource creation. One of: `pending`, `created`. The `created` state is default and recommended if the addresses are needed within the configuration. An error will be returned if a timeout or the `denied` state is encountered.
	WaitForState pulumi.StringPtrOutput `pulumi:"waitForState"`
}

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

When a user provisions first device in a metro, 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 metro 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 metro. Addresses from public blocks can only be assigned to devices in the metro. 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 metro argument.

Addresses from global blocks can be assigned in any metro. 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 metro argument.

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

> VRF features are not generally available. The interfaces related to VRF resources may change ahead of general availability.

## Example Usage ```go package main

import (

"github.com/equinix/pulumi-equinix/sdk/go/equinix/metal"
"github.com/pulumi/pulumi/sdk/v3/go/pulumi"
"github.com/pulumi/pulumi/sdk/v3/go/pulumi/config"

)

func main() {
	pulumi.Run(func(ctx *pulumi.Context) error {
		cfg := config.New(ctx, "")
		projectId := cfg.Require("projectId")
		metro := "FR"
		if param := cfg.Get("metro"); param != "" {
			metro = param
		}
		_type := "public_ipv4"
		if param := cfg.Get("type"); param != "" {
			_type = param
		}
		quantity := 1
		if param := cfg.GetInt("quantity"); param != 0 {
			quantity = param
		}
		ipBlock, err := metal.NewReservedIpBlock(ctx, "ipBlock", &metal.ReservedIpBlockArgs{
			ProjectId: pulumi.String(projectId),
			Type:      pulumi.String("public_ipv4"),
			Quantity:  pulumi.Int(quantity),
			Metro:     pulumi.String(metro),
		})
		if err != nil {
			return err
		}
		ctx.Export("ipBlockId", ipBlock.ID())
		ctx.Export("ipBlockSubent", ipBlock.CidrNotation)
		return nil
	})
}

```

## Import

This resource can be imported using an existing IP reservation ID:

```sh $ pulumi import equinix:metal/reservedIpBlock:ReservedIpBlock equinix_metal_reserved_ip_block {existing_ip_reservation_id} ```

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

type ReservedIpBlockArgs

type ReservedIpBlockArgs struct {
	// Only valid as an argument and required when `type` is `vrf`. The size of the network to reserve from an existing VRF ip_range. `cidr` can only be specified with `vrfId`. Range is 22-31. Virtual Circuits require 30-31. Other VRF resources must use a CIDR in the 22-29 range.
	Cidr pulumi.IntPtrInput
	// Custom Data is an arbitrary object (submitted in Terraform as serialized JSON) to assign to the IP Reservation. This may
	// be helpful for self-managed IPAM. The object must be valid JSON.
	CustomData pulumi.StringPtrInput
	// Arbitrary description.
	Description pulumi.StringPtrInput
	// Facility where to allocate the public IP address block, makes sense only
	// if type is `publicIpv4` and must be empty if type is `globalIpv4`. Conflicts with `metro`. Use metro instead; read the facility to metro migration guide
	Facility pulumi.StringPtrInput
	// Metro where to allocate the public IP address block, makes sense only
	// if type is `publicIpv4` and must be empty if type is `globalIpv4`. Conflicts with `facility`.
	Metro pulumi.StringPtrInput
	// Only valid as an argument and required when `type` is `vrf`. An unreserved network address from an existing `ipRange` in the specified VRF.
	Network 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. Required when `type` is not `vrf`.
	Quantity pulumi.IntPtrInput
	// String list of tags.
	Tags pulumi.StringArrayInput
	// One of `globalIpv4`, `publicIpv4`, or `vrf`. Defaults to `publicIpv4` for backward
	// compatibility.
	Type pulumi.StringPtrInput
	// Only valid and required when `type` is `vrf`. VRF ID for type=vrf reservations.
	VrfId pulumi.StringPtrInput
	// Wait for the IP reservation block to reach a desired state on resource creation. One of: `pending`, `created`. The `created` state is default and recommended if the addresses are needed within the configuration. An error will be returned if a timeout or the `denied` state is encountered.
	WaitForState pulumi.StringPtrInput
}

The set of arguments for constructing a ReservedIpBlock resource.

func (ReservedIpBlockArgs) ElementType

func (ReservedIpBlockArgs) ElementType() reflect.Type

type ReservedIpBlockArray

type ReservedIpBlockArray []ReservedIpBlockInput

func (ReservedIpBlockArray) ElementType

func (ReservedIpBlockArray) ElementType() reflect.Type

func (ReservedIpBlockArray) ToReservedIpBlockArrayOutput

func (i ReservedIpBlockArray) ToReservedIpBlockArrayOutput() ReservedIpBlockArrayOutput

func (ReservedIpBlockArray) ToReservedIpBlockArrayOutputWithContext

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

type ReservedIpBlockArrayInput

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

type ReservedIpBlockArrayOutput struct{ *pulumi.OutputState }

func (ReservedIpBlockArrayOutput) ElementType

func (ReservedIpBlockArrayOutput) ElementType() reflect.Type

func (ReservedIpBlockArrayOutput) Index

func (ReservedIpBlockArrayOutput) ToReservedIpBlockArrayOutput

func (o ReservedIpBlockArrayOutput) ToReservedIpBlockArrayOutput() ReservedIpBlockArrayOutput

func (ReservedIpBlockArrayOutput) ToReservedIpBlockArrayOutputWithContext

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

type ReservedIpBlockInput

type ReservedIpBlockInput interface {
	pulumi.Input

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

type ReservedIpBlockMap

type ReservedIpBlockMap map[string]ReservedIpBlockInput

func (ReservedIpBlockMap) ElementType

func (ReservedIpBlockMap) ElementType() reflect.Type

func (ReservedIpBlockMap) ToReservedIpBlockMapOutput

func (i ReservedIpBlockMap) ToReservedIpBlockMapOutput() ReservedIpBlockMapOutput

func (ReservedIpBlockMap) ToReservedIpBlockMapOutputWithContext

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

type ReservedIpBlockMapInput

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

type ReservedIpBlockMapOutput struct{ *pulumi.OutputState }

func (ReservedIpBlockMapOutput) ElementType

func (ReservedIpBlockMapOutput) ElementType() reflect.Type

func (ReservedIpBlockMapOutput) MapIndex

func (ReservedIpBlockMapOutput) ToReservedIpBlockMapOutput

func (o ReservedIpBlockMapOutput) ToReservedIpBlockMapOutput() ReservedIpBlockMapOutput

func (ReservedIpBlockMapOutput) ToReservedIpBlockMapOutputWithContext

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

type ReservedIpBlockOutput

type ReservedIpBlockOutput struct{ *pulumi.OutputState }

func (ReservedIpBlockOutput) Address

func (ReservedIpBlockOutput) AddressFamily

func (o ReservedIpBlockOutput) AddressFamily() pulumi.IntOutput

Address family as integer. One of `4` or `6`.

func (ReservedIpBlockOutput) Cidr

Only valid as an argument and required when `type` is `vrf`. The size of the network to reserve from an existing VRF ip_range. `cidr` can only be specified with `vrfId`. Range is 22-31. Virtual Circuits require 30-31. Other VRF resources must use a CIDR in the 22-29 range.

func (ReservedIpBlockOutput) CidrNotation

func (o ReservedIpBlockOutput) CidrNotation() pulumi.StringOutput

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

func (ReservedIpBlockOutput) CustomData

Custom Data is an arbitrary object (submitted in Terraform as serialized JSON) to assign to the IP Reservation. This may be helpful for self-managed IPAM. The object must be valid JSON.

func (ReservedIpBlockOutput) Description

Arbitrary description.

func (ReservedIpBlockOutput) ElementType

func (ReservedIpBlockOutput) ElementType() reflect.Type

func (ReservedIpBlockOutput) Facility

Facility where to allocate the public IP address block, makes sense only if type is `publicIpv4` and must be empty if type is `globalIpv4`. Conflicts with `metro`. Use metro instead; read the facility to metro migration guide

func (ReservedIpBlockOutput) Gateway

func (ReservedIpBlockOutput) Global

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

func (ReservedIpBlockOutput) Manageable

func (o ReservedIpBlockOutput) Manageable() pulumi.BoolOutput

func (ReservedIpBlockOutput) Management

func (o ReservedIpBlockOutput) Management() pulumi.BoolOutput

func (ReservedIpBlockOutput) Metro

Metro where to allocate the public IP address block, makes sense only if type is `publicIpv4` and must be empty if type is `globalIpv4`. Conflicts with `facility`.

func (ReservedIpBlockOutput) Netmask

Mask in decimal notation, e.g. `255.255.255.0`.

func (ReservedIpBlockOutput) Network

Only valid as an argument and required when `type` is `vrf`. An unreserved network address from an existing `ipRange` in the specified VRF.

func (ReservedIpBlockOutput) ProjectId

The metal project ID where to allocate the address block.

func (ReservedIpBlockOutput) Public

Boolean flag whether addresses from a block are public.

func (ReservedIpBlockOutput) Quantity

func (o ReservedIpBlockOutput) Quantity() pulumi.IntOutput

The number of allocated `/32` addresses, a power of 2. Required when `type` is not `vrf`.

func (ReservedIpBlockOutput) Tags

String list of tags.

func (ReservedIpBlockOutput) ToReservedIpBlockOutput

func (o ReservedIpBlockOutput) ToReservedIpBlockOutput() ReservedIpBlockOutput

func (ReservedIpBlockOutput) ToReservedIpBlockOutputWithContext

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

func (ReservedIpBlockOutput) Type

One of `globalIpv4`, `publicIpv4`, or `vrf`. Defaults to `publicIpv4` for backward compatibility.

func (ReservedIpBlockOutput) VrfId

Only valid and required when `type` is `vrf`. VRF ID for type=vrf reservations.

func (ReservedIpBlockOutput) WaitForState

func (o ReservedIpBlockOutput) WaitForState() pulumi.StringPtrOutput

Wait for the IP reservation block to reach a desired state on resource creation. One of: `pending`, `created`. The `created` state is default and recommended if the addresses are needed within the configuration. An error will be returned if a timeout or the `denied` state is encountered.

type ReservedIpBlockState

type ReservedIpBlockState struct {
	Address pulumi.StringPtrInput
	// Address family as integer. One of `4` or `6`.
	AddressFamily pulumi.IntPtrInput
	// Only valid as an argument and required when `type` is `vrf`. The size of the network to reserve from an existing VRF ip_range. `cidr` can only be specified with `vrfId`. Range is 22-31. Virtual Circuits require 30-31. Other VRF resources must use a CIDR in the 22-29 range.
	Cidr pulumi.IntPtrInput
	// Address and mask in CIDR notation, e.g. `147.229.15.30/31`.
	CidrNotation pulumi.StringPtrInput
	// Custom Data is an arbitrary object (submitted in Terraform as serialized JSON) to assign to the IP Reservation. This may
	// be helpful for self-managed IPAM. The object must be valid JSON.
	CustomData pulumi.StringPtrInput
	// Arbitrary description.
	Description pulumi.StringPtrInput
	// Facility where to allocate the public IP address block, makes sense only
	// if type is `publicIpv4` and must be empty if type is `globalIpv4`. Conflicts with `metro`. Use metro instead; read the facility to metro migration guide
	Facility pulumi.StringPtrInput
	Gateway  pulumi.StringPtrInput
	// Boolean flag whether addresses from a block are global (i.e. can be assigned in any
	// metro).
	Global     pulumi.BoolPtrInput
	Manageable pulumi.BoolPtrInput
	Management pulumi.BoolPtrInput
	// Metro where to allocate the public IP address block, makes sense only
	// if type is `publicIpv4` and must be empty if type is `globalIpv4`. Conflicts with `facility`.
	Metro pulumi.StringPtrInput
	// Mask in decimal notation, e.g. `255.255.255.0`.
	Netmask pulumi.StringPtrInput
	// Only valid as an argument and required when `type` is `vrf`. An unreserved network address from an existing `ipRange` in the specified VRF.
	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. Required when `type` is not `vrf`.
	Quantity pulumi.IntPtrInput
	// String list of tags.
	Tags pulumi.StringArrayInput
	// One of `globalIpv4`, `publicIpv4`, or `vrf`. Defaults to `publicIpv4` for backward
	// compatibility.
	Type pulumi.StringPtrInput
	// Only valid and required when `type` is `vrf`. VRF ID for type=vrf reservations.
	VrfId pulumi.StringPtrInput
	// Wait for the IP reservation block to reach a desired state on resource creation. One of: `pending`, `created`. The `created` state is default and recommended if the addresses are needed within the configuration. An error will be returned if a timeout or the `denied` state is encountered.
	WaitForState 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. Use metro instead; read the facility to metro migration guide
	//
	// Deprecated: Use metro instead of facility.  For more information, read the migration guide: https://registry.terraform.io/providers/equinix/equinix/latest/docs/guides/migration_guide_facilities_to_metros_devices
	Facilities pulumi.StringArrayOutput `pulumi:"facilities"`
	// Key/Value pairs of parameters for devices provisioned from
	// this request. Valid keys are: `billingCycle`, `plan`, `operatingSystem`, `hostname`,
	// `terminationTime`, `alwaysPxe`, `description`, `features`, `locked`, `projectSshKeys`,
	// `userSshKeys`, `userdata`, `customdata`, `ipxeScriptUrl`, `tags`. You can find each parameter
	// description in metal.Device docs.
	InstanceParameters SpotMarketRequestInstanceParametersOutput `pulumi:"instanceParameters"`
	// Maximum price user is willing to pay per hour per device.
	MaxBidPrice pulumi.Float64Output `pulumi:"maxBidPrice"`
	// Metro where devices should be created.
	Metro pulumi.StringPtrOutput `pulumi:"metro"`
	// 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/equinix/pulumi-equinix/sdk/go/equinix/metal"
"github.com/pulumi/pulumi/sdk/v3/go/pulumi"
"github.com/pulumi/pulumi/sdk/v3/go/pulumi/config"

)

func main() {
	pulumi.Run(func(ctx *pulumi.Context) error {
		cfg := config.New(ctx, "")
		projectId := cfg.Require("projectId")
		metro := "FR"
		if param := cfg.Get("metro"); param != "" {
			metro = param
		}
		request, err := metal.NewSpotMarketRequest(ctx, "request", &metal.SpotMarketRequestArgs{
			ProjectId:   pulumi.String(projectId),
			Metro:       pulumi.String(metro),
			MaxBidPrice: pulumi.Float64(0.75),
			DevicesMin:  pulumi.Int(1),
			DevicesMax:  pulumi.Int(1),
			InstanceParameters: &metal.SpotMarketRequestInstanceParametersArgs{
				Hostname:        pulumi.String("testspot"),
				BillingCycle:    pulumi.String("hourly"),
				OperatingSystem: pulumi.String("ubuntu_20_04"),
				Plan:            pulumi.String("c3.small.x86"),
			},
		})
		if err != nil {
			return err
		}
		ctx.Export("requestId", request.ID())
		return nil
	})
}

```

## Import

This resource can be imported using an existing spot market request ID:

```sh $ pulumi import equinix:metal/spotMarketRequest:SpotMarketRequest equinix_metal_spot_market_request {existing_spot_market_request_id} ```

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

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. Use metro instead; read the facility to metro migration guide
	//
	// Deprecated: Use metro instead of facility.  For more information, read the migration guide: https://registry.terraform.io/providers/equinix/equinix/latest/docs/guides/migration_guide_facilities_to_metros_devices
	Facilities pulumi.StringArrayInput
	// Key/Value pairs of parameters for devices provisioned from
	// this request. Valid keys are: `billingCycle`, `plan`, `operatingSystem`, `hostname`,
	// `terminationTime`, `alwaysPxe`, `description`, `features`, `locked`, `projectSshKeys`,
	// `userSshKeys`, `userdata`, `customdata`, `ipxeScriptUrl`, `tags`. You can find each parameter
	// description in metal.Device docs.
	InstanceParameters SpotMarketRequestInstanceParametersInput
	// Maximum price user is willing to pay per hour per device.
	MaxBidPrice pulumi.Float64Input
	// Metro where devices should be created.
	Metro pulumi.StringPtrInput
	// 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

type SpotMarketRequestArray []SpotMarketRequestInput

func (SpotMarketRequestArray) ElementType

func (SpotMarketRequestArray) ElementType() reflect.Type

func (SpotMarketRequestArray) ToSpotMarketRequestArrayOutput

func (i SpotMarketRequestArray) ToSpotMarketRequestArrayOutput() SpotMarketRequestArrayOutput

func (SpotMarketRequestArray) ToSpotMarketRequestArrayOutputWithContext

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

type SpotMarketRequestArrayInput

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

type SpotMarketRequestArrayOutput struct{ *pulumi.OutputState }

func (SpotMarketRequestArrayOutput) ElementType

func (SpotMarketRequestArrayOutput) Index

func (SpotMarketRequestArrayOutput) ToSpotMarketRequestArrayOutput

func (o SpotMarketRequestArrayOutput) ToSpotMarketRequestArrayOutput() SpotMarketRequestArrayOutput

func (SpotMarketRequestArrayOutput) ToSpotMarketRequestArrayOutputWithContext

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"`
	// Blocks deletion of the SpotMarketRequest device until the lock is disabled.
	Locked          *bool    `pulumi:"locked"`
	OperatingSystem string   `pulumi:"operatingSystem"`
	Plan            string   `pulumi:"plan"`
	ProjectSshKeys  []string `pulumi:"projectSshKeys"`
	Tags            []string `pulumi:"tags"`
	TerminationTime *string  `pulumi:"terminationTime"`
	// Deprecated: Use instance_parameters.termination_time instead
	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"`
	// Blocks deletion of the SpotMarketRequest device until the lock is disabled.
	Locked          pulumi.BoolPtrInput     `pulumi:"locked"`
	OperatingSystem pulumi.StringInput      `pulumi:"operatingSystem"`
	Plan            pulumi.StringInput      `pulumi:"plan"`
	ProjectSshKeys  pulumi.StringArrayInput `pulumi:"projectSshKeys"`
	Tags            pulumi.StringArrayInput `pulumi:"tags"`
	TerminationTime pulumi.StringPtrInput   `pulumi:"terminationTime"`
	// Deprecated: Use instance_parameters.termination_time instead
	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

Blocks deletion of the SpotMarketRequest device until the lock is disabled.

func (SpotMarketRequestInstanceParametersOutput) OperatingSystem

func (SpotMarketRequestInstanceParametersOutput) Plan

func (SpotMarketRequestInstanceParametersOutput) ProjectSshKeys

func (SpotMarketRequestInstanceParametersOutput) Tags

func (SpotMarketRequestInstanceParametersOutput) TerminationTime

func (SpotMarketRequestInstanceParametersOutput) TermintationTime deprecated

Deprecated: Use instance_parameters.termination_time instead

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

Blocks deletion of the SpotMarketRequest device until the lock is disabled.

func (SpotMarketRequestInstanceParametersPtrOutput) OperatingSystem

func (SpotMarketRequestInstanceParametersPtrOutput) Plan

func (SpotMarketRequestInstanceParametersPtrOutput) ProjectSshKeys

func (SpotMarketRequestInstanceParametersPtrOutput) Tags

func (SpotMarketRequestInstanceParametersPtrOutput) TerminationTime

func (SpotMarketRequestInstanceParametersPtrOutput) TermintationTime deprecated

Deprecated: Use instance_parameters.termination_time instead

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

type SpotMarketRequestMap map[string]SpotMarketRequestInput

func (SpotMarketRequestMap) ElementType

func (SpotMarketRequestMap) ElementType() reflect.Type

func (SpotMarketRequestMap) ToSpotMarketRequestMapOutput

func (i SpotMarketRequestMap) ToSpotMarketRequestMapOutput() SpotMarketRequestMapOutput

func (SpotMarketRequestMap) ToSpotMarketRequestMapOutputWithContext

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

type SpotMarketRequestMapInput

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

type SpotMarketRequestMapOutput struct{ *pulumi.OutputState }

func (SpotMarketRequestMapOutput) ElementType

func (SpotMarketRequestMapOutput) ElementType() reflect.Type

func (SpotMarketRequestMapOutput) MapIndex

func (SpotMarketRequestMapOutput) ToSpotMarketRequestMapOutput

func (o SpotMarketRequestMapOutput) ToSpotMarketRequestMapOutput() SpotMarketRequestMapOutput

func (SpotMarketRequestMapOutput) ToSpotMarketRequestMapOutputWithContext

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

type SpotMarketRequestOutput

type SpotMarketRequestOutput struct{ *pulumi.OutputState }

func (SpotMarketRequestOutput) DevicesMax

func (o SpotMarketRequestOutput) DevicesMax() pulumi.IntOutput

Maximum number devices to be created.

func (SpotMarketRequestOutput) DevicesMin

func (o SpotMarketRequestOutput) DevicesMin() pulumi.IntOutput

Miniumum number devices to be created.

func (SpotMarketRequestOutput) ElementType

func (SpotMarketRequestOutput) ElementType() reflect.Type

func (SpotMarketRequestOutput) Facilities deprecated

Facility IDs where devices should be created. Use metro instead; read the facility to metro migration guide

Deprecated: Use metro instead of facility. For more information, read the migration guide: https://registry.terraform.io/providers/equinix/equinix/latest/docs/guides/migration_guide_facilities_to_metros_devices

func (SpotMarketRequestOutput) InstanceParameters

Key/Value pairs of parameters for devices provisioned from this request. Valid keys are: `billingCycle`, `plan`, `operatingSystem`, `hostname`, `terminationTime`, `alwaysPxe`, `description`, `features`, `locked`, `projectSshKeys`, `userSshKeys`, `userdata`, `customdata`, `ipxeScriptUrl`, `tags`. You can find each parameter description in metal.Device docs.

func (SpotMarketRequestOutput) MaxBidPrice

Maximum price user is willing to pay per hour per device.

func (SpotMarketRequestOutput) Metro

Metro where devices should be created.

func (SpotMarketRequestOutput) ProjectId

Project ID.

func (SpotMarketRequestOutput) ToSpotMarketRequestOutput

func (o SpotMarketRequestOutput) ToSpotMarketRequestOutput() SpotMarketRequestOutput

func (SpotMarketRequestOutput) ToSpotMarketRequestOutputWithContext

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

func (SpotMarketRequestOutput) WaitForDevices

func (o SpotMarketRequestOutput) WaitForDevices() pulumi.BoolPtrOutput

On resource creation wait until all desired devices are active. On resource destruction wait until devices are removed.

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. Use metro instead; read the facility to metro migration guide
	//
	// Deprecated: Use metro instead of facility.  For more information, read the migration guide: https://registry.terraform.io/providers/equinix/equinix/latest/docs/guides/migration_guide_facilities_to_metros_devices
	Facilities pulumi.StringArrayInput
	// Key/Value pairs of parameters for devices provisioned from
	// this request. Valid keys are: `billingCycle`, `plan`, `operatingSystem`, `hostname`,
	// `terminationTime`, `alwaysPxe`, `description`, `features`, `locked`, `projectSshKeys`,
	// `userSshKeys`, `userdata`, `customdata`, `ipxeScriptUrl`, `tags`. You can find each parameter
	// description in metal.Device docs.
	InstanceParameters SpotMarketRequestInstanceParametersPtrInput
	// Maximum price user is willing to pay per hour per device.
	MaxBidPrice pulumi.Float64PtrInput
	// Metro where devices should be created.
	Metro pulumi.StringPtrInput
	// 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.

## Example Usage ```go package main

import (

"os"

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

)

func readFileOrPanic(path string) pulumi.StringPtrInput {
	data, err := os.ReadFile(path)
	if err != nil {
		panic(err.Error())
	}
	return pulumi.String(string(data))
}

func main() {
	pulumi.Run(func(ctx *pulumi.Context) error {
		sshKey, err := metal.NewSshKey(ctx, "sshKey", &metal.SshKeyArgs{
			Name:      pulumi.String("johnKent"),
			PublicKey: readFileOrPanic("/Users/John/.ssh/metal_rsa.pub"),
		})
		if err != nil {
			return err
		}
		ctx.Export("sshKeyId", sshKey.ID())
		return nil
	})
}

```

## Import

This resource can be imported using an existing SSH Key ID:

```sh $ pulumi import equinix:metal/sshKey:SshKey equinix_metal_ssh_key {existing_sshkey_id} ```

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

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

type SshKeyArray []SshKeyInput

func (SshKeyArray) ElementType

func (SshKeyArray) ElementType() reflect.Type

func (SshKeyArray) ToSshKeyArrayOutput

func (i SshKeyArray) ToSshKeyArrayOutput() SshKeyArrayOutput

func (SshKeyArray) ToSshKeyArrayOutputWithContext

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

type SshKeyArrayInput

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

type SshKeyArrayOutput struct{ *pulumi.OutputState }

func (SshKeyArrayOutput) ElementType

func (SshKeyArrayOutput) ElementType() reflect.Type

func (SshKeyArrayOutput) Index

func (SshKeyArrayOutput) ToSshKeyArrayOutput

func (o SshKeyArrayOutput) ToSshKeyArrayOutput() SshKeyArrayOutput

func (SshKeyArrayOutput) ToSshKeyArrayOutputWithContext

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

type SshKeyInput

type SshKeyInput interface {
	pulumi.Input

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

type SshKeyMap

type SshKeyMap map[string]SshKeyInput

func (SshKeyMap) ElementType

func (SshKeyMap) ElementType() reflect.Type

func (SshKeyMap) ToSshKeyMapOutput

func (i SshKeyMap) ToSshKeyMapOutput() SshKeyMapOutput

func (SshKeyMap) ToSshKeyMapOutputWithContext

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

type SshKeyMapInput

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

type SshKeyMapOutput struct{ *pulumi.OutputState }

func (SshKeyMapOutput) ElementType

func (SshKeyMapOutput) ElementType() reflect.Type

func (SshKeyMapOutput) MapIndex

func (SshKeyMapOutput) ToSshKeyMapOutput

func (o SshKeyMapOutput) ToSshKeyMapOutput() SshKeyMapOutput

func (SshKeyMapOutput) ToSshKeyMapOutputWithContext

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

type SshKeyOutput

type SshKeyOutput struct{ *pulumi.OutputState }

func (SshKeyOutput) Created

func (o SshKeyOutput) Created() pulumi.StringOutput

The timestamp for when the SSH key was created.

func (SshKeyOutput) ElementType

func (SshKeyOutput) ElementType() reflect.Type

func (SshKeyOutput) Fingerprint

func (o SshKeyOutput) Fingerprint() pulumi.StringOutput

The fingerprint of the SSH key.

func (SshKeyOutput) Name

func (o SshKeyOutput) Name() pulumi.StringOutput

The name of the SSH key for identification

func (SshKeyOutput) OwnerId

func (o SshKeyOutput) OwnerId() pulumi.StringOutput

The UUID of the Equinix Metal API User who owns this key.

func (SshKeyOutput) PublicKey

func (o SshKeyOutput) PublicKey() pulumi.StringOutput

The public key. If this is a file, it can be read using the file interpolation function

func (SshKeyOutput) ToSshKeyOutput

func (o SshKeyOutput) ToSshKeyOutput() SshKeyOutput

func (SshKeyOutput) ToSshKeyOutputWithContext

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

func (SshKeyOutput) Updated

func (o SshKeyOutput) Updated() pulumi.StringOutput

The timestamp for the last time the SSH key was updated.

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 UserApiKey

type UserApiKey struct {
	pulumi.CustomResourceState

	// Description string for the User API Key resource.
	// * `read-only` - (Required) Flag indicating whether the API key shoud be read-only.
	Description pulumi.StringOutput `pulumi:"description"`
	// Flag indicating whether the API key shoud be read-only
	ReadOnly pulumi.BoolOutput `pulumi:"readOnly"`
	// API token which can be used in Equinix Metal API clients.
	Token pulumi.StringOutput `pulumi:"token"`
	// UUID of the owner of the API key.
	UserId pulumi.StringOutput `pulumi:"userId"`
}

Use this resource to create Metal User API Key resources in Equinix Metal. Each API key contains a token which can be used for authentication in Equinix Metal HTTP API (in HTTP request header `X-Auth-Token`).

Read-only keys only allow to list and view existing resources, read-write keys can also be used to create resources.

## Example Usage ```go package main

import (

"github.com/equinix/pulumi-equinix/sdk/go/equinix/metal"
"github.com/pulumi/pulumi/sdk/v3/go/pulumi"
"github.com/pulumi/pulumi/sdk/v3/go/pulumi/config"

)

func main() {
	pulumi.Run(func(ctx *pulumi.Context) error {
		cfg := config.New(ctx, "")
		description := "An user level API Key"
		if param := cfg.Get("description"); param != "" {
			description = param
		}
		readOnly := false
		if param := cfg.GetBool("readOnly"); param {
			readOnly = param
		}
		apiKey, err := metal.NewUserApiKey(ctx, "apiKey", &metal.UserApiKeyArgs{
			Description: pulumi.String(description),
			ReadOnly:    pulumi.Bool(readOnly),
		})
		if err != nil {
			return err
		}
		ctx.Export("apiKeyToken", apiKey.Token)
		return nil
	})
}

```

func GetUserApiKey

func GetUserApiKey(ctx *pulumi.Context,
	name string, id pulumi.IDInput, state *UserApiKeyState, opts ...pulumi.ResourceOption) (*UserApiKey, error)

GetUserApiKey gets an existing UserApiKey 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 NewUserApiKey

func NewUserApiKey(ctx *pulumi.Context,
	name string, args *UserApiKeyArgs, opts ...pulumi.ResourceOption) (*UserApiKey, error)

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

func (*UserApiKey) ElementType

func (*UserApiKey) ElementType() reflect.Type

func (*UserApiKey) ToUserApiKeyOutput

func (i *UserApiKey) ToUserApiKeyOutput() UserApiKeyOutput

func (*UserApiKey) ToUserApiKeyOutputWithContext

func (i *UserApiKey) ToUserApiKeyOutputWithContext(ctx context.Context) UserApiKeyOutput

type UserApiKeyArgs

type UserApiKeyArgs struct {
	// Description string for the User API Key resource.
	// * `read-only` - (Required) Flag indicating whether the API key shoud be read-only.
	Description pulumi.StringInput
	// Flag indicating whether the API key shoud be read-only
	ReadOnly pulumi.BoolInput
}

The set of arguments for constructing a UserApiKey resource.

func (UserApiKeyArgs) ElementType

func (UserApiKeyArgs) ElementType() reflect.Type

type UserApiKeyArray

type UserApiKeyArray []UserApiKeyInput

func (UserApiKeyArray) ElementType

func (UserApiKeyArray) ElementType() reflect.Type

func (UserApiKeyArray) ToUserApiKeyArrayOutput

func (i UserApiKeyArray) ToUserApiKeyArrayOutput() UserApiKeyArrayOutput

func (UserApiKeyArray) ToUserApiKeyArrayOutputWithContext

func (i UserApiKeyArray) ToUserApiKeyArrayOutputWithContext(ctx context.Context) UserApiKeyArrayOutput

type UserApiKeyArrayInput

type UserApiKeyArrayInput interface {
	pulumi.Input

	ToUserApiKeyArrayOutput() UserApiKeyArrayOutput
	ToUserApiKeyArrayOutputWithContext(context.Context) UserApiKeyArrayOutput
}

UserApiKeyArrayInput is an input type that accepts UserApiKeyArray and UserApiKeyArrayOutput values. You can construct a concrete instance of `UserApiKeyArrayInput` via:

UserApiKeyArray{ UserApiKeyArgs{...} }

type UserApiKeyArrayOutput

type UserApiKeyArrayOutput struct{ *pulumi.OutputState }

func (UserApiKeyArrayOutput) ElementType

func (UserApiKeyArrayOutput) ElementType() reflect.Type

func (UserApiKeyArrayOutput) Index

func (UserApiKeyArrayOutput) ToUserApiKeyArrayOutput

func (o UserApiKeyArrayOutput) ToUserApiKeyArrayOutput() UserApiKeyArrayOutput

func (UserApiKeyArrayOutput) ToUserApiKeyArrayOutputWithContext

func (o UserApiKeyArrayOutput) ToUserApiKeyArrayOutputWithContext(ctx context.Context) UserApiKeyArrayOutput

type UserApiKeyInput

type UserApiKeyInput interface {
	pulumi.Input

	ToUserApiKeyOutput() UserApiKeyOutput
	ToUserApiKeyOutputWithContext(ctx context.Context) UserApiKeyOutput
}

type UserApiKeyMap

type UserApiKeyMap map[string]UserApiKeyInput

func (UserApiKeyMap) ElementType

func (UserApiKeyMap) ElementType() reflect.Type

func (UserApiKeyMap) ToUserApiKeyMapOutput

func (i UserApiKeyMap) ToUserApiKeyMapOutput() UserApiKeyMapOutput

func (UserApiKeyMap) ToUserApiKeyMapOutputWithContext

func (i UserApiKeyMap) ToUserApiKeyMapOutputWithContext(ctx context.Context) UserApiKeyMapOutput

type UserApiKeyMapInput

type UserApiKeyMapInput interface {
	pulumi.Input

	ToUserApiKeyMapOutput() UserApiKeyMapOutput
	ToUserApiKeyMapOutputWithContext(context.Context) UserApiKeyMapOutput
}

UserApiKeyMapInput is an input type that accepts UserApiKeyMap and UserApiKeyMapOutput values. You can construct a concrete instance of `UserApiKeyMapInput` via:

UserApiKeyMap{ "key": UserApiKeyArgs{...} }

type UserApiKeyMapOutput

type UserApiKeyMapOutput struct{ *pulumi.OutputState }

func (UserApiKeyMapOutput) ElementType

func (UserApiKeyMapOutput) ElementType() reflect.Type

func (UserApiKeyMapOutput) MapIndex

func (UserApiKeyMapOutput) ToUserApiKeyMapOutput

func (o UserApiKeyMapOutput) ToUserApiKeyMapOutput() UserApiKeyMapOutput

func (UserApiKeyMapOutput) ToUserApiKeyMapOutputWithContext

func (o UserApiKeyMapOutput) ToUserApiKeyMapOutputWithContext(ctx context.Context) UserApiKeyMapOutput

type UserApiKeyOutput

type UserApiKeyOutput struct{ *pulumi.OutputState }

func (UserApiKeyOutput) Description

func (o UserApiKeyOutput) Description() pulumi.StringOutput

Description string for the User API Key resource. * `read-only` - (Required) Flag indicating whether the API key shoud be read-only.

func (UserApiKeyOutput) ElementType

func (UserApiKeyOutput) ElementType() reflect.Type

func (UserApiKeyOutput) ReadOnly

func (o UserApiKeyOutput) ReadOnly() pulumi.BoolOutput

Flag indicating whether the API key shoud be read-only

func (UserApiKeyOutput) ToUserApiKeyOutput

func (o UserApiKeyOutput) ToUserApiKeyOutput() UserApiKeyOutput

func (UserApiKeyOutput) ToUserApiKeyOutputWithContext

func (o UserApiKeyOutput) ToUserApiKeyOutputWithContext(ctx context.Context) UserApiKeyOutput

func (UserApiKeyOutput) Token

API token which can be used in Equinix Metal API clients.

func (UserApiKeyOutput) UserId

UUID of the owner of the API key.

type UserApiKeyState

type UserApiKeyState struct {
	// Description string for the User API Key resource.
	// * `read-only` - (Required) Flag indicating whether the API key shoud be read-only.
	Description pulumi.StringPtrInput
	// Flag indicating whether the API key shoud be read-only
	ReadOnly pulumi.BoolPtrInput
	// API token which can be used in Equinix Metal API clients.
	Token pulumi.StringPtrInput
	// UUID of the owner of the API key.
	UserId pulumi.StringPtrInput
}

func (UserApiKeyState) ElementType

func (UserApiKeyState) ElementType() reflect.Type

type VirtualCircuit

type VirtualCircuit struct {
	pulumi.CustomResourceState

	// UUID of Connection where the VC is scoped to.
	ConnectionId pulumi.StringOutput `pulumi:"connectionId"`
	// The Customer IP address which the CSR switch will peer with. Will default to the other usable IP in the subnet.
	CustomerIp pulumi.StringPtrOutput `pulumi:"customerIp"`
	// Description for the Virtual Circuit resource.
	Description pulumi.StringPtrOutput `pulumi:"description"`
	// The password that can be set for the VRF BGP peer
	Md5 pulumi.StringPtrOutput `pulumi:"md5"`
	// The Metal IP address for the SVI (Switch Virtual Interface) of the VirtualCircuit. Will default to the first usable IP in the subnet.
	MetalIp pulumi.StringPtrOutput `pulumi:"metalIp"`
	// Name of the Virtual Circuit resource.
	Name pulumi.StringOutput `pulumi:"name"`
	// Equinix Metal network-to-network VLAN ID.
	NniVlan pulumi.IntPtrOutput `pulumi:"nniVlan"`
	// NNI VLAN parameters, see the [documentation for Equinix Fabric](https://metal.equinix.com/developers/docs/networking/fabric/).
	NniVnid pulumi.IntOutput `pulumi:"nniVnid"`
	// The BGP ASN of the peer. The same ASN may be the used across several VCs, but it cannot be the same as the localAsn of the VRF.
	PeerAsn pulumi.IntPtrOutput `pulumi:"peerAsn"`
	// UUID of the Connection Port where the VC is scoped to.
	PortId pulumi.StringOutput `pulumi:"portId"`
	// UUID of the Project where the VC is scoped to.
	ProjectId pulumi.StringOutput `pulumi:"projectId"`
	// Speed of the Virtual Circuit resource.
	Speed pulumi.StringOutput `pulumi:"speed"`
	// Status of the virtal circuit.
	Status pulumi.StringOutput `pulumi:"status"`
	// A subnet from one of the IP
	// blocks associated with the VRF that we will help create an IP reservation for. Can only be either a /30 or /31.
	// * For a /31 block, it will only have two IP addresses, which will be used for
	//   the metalIp and customer_ip.
	// * For a /30 block, it will have four IP addresses, but the first and last IP addresses are not usable. We will default to the first usable IP address for the metal_ip.
	Subnet pulumi.StringPtrOutput `pulumi:"subnet"`
	// Tags for the Virtual Circuit resource.
	Tags pulumi.StringArrayOutput `pulumi:"tags"`
	// UUID of the VLAN to associate.
	VlanId pulumi.StringPtrOutput `pulumi:"vlanId"`
	// VNID VLAN parameter, see the [documentation for Equinix Fabric](https://metal.equinix.com/developers/docs/networking/fabric/).
	Vnid pulumi.IntOutput `pulumi:"vnid"`
	// UUID of the VRF to associate.
	VrfId pulumi.StringPtrOutput `pulumi:"vrfId"`
}

Use this resource to associate VLAN with a Dedicated Port from [Equinix Fabric - software-defined interconnections](https://metal.equinix.com/developers/docs/networking/fabric/#associating-a-vlan-with-a-dedicated-port).

> VRF features are not generally available. The interfaces related to VRF resources may change ahead of general availability.

## Example Usage ```go package main

import (

"github.com/equinix/pulumi-equinix/sdk/go/equinix/metal"
"github.com/pulumi/pulumi/sdk/v3/go/pulumi"
"github.com/pulumi/pulumi/sdk/v3/go/pulumi/config"

)

func main() {
	pulumi.Run(func(ctx *pulumi.Context) error {
		cfg := config.New(ctx, "")
		projectId := cfg.Require("projectId")
		connectionId := cfg.Require("connectionId")
		vlanId := cfg.Require("vlanId")
		portId := metal.LookupInterconnection(ctx, &metal.LookupInterconnectionArgs{
			ConnectionId: connectionId,
		}, nil).Ports[0].Id
		vc, err := metal.NewVirtualCircuit(ctx, "vc", &metal.VirtualCircuitArgs{
			ConnectionId: pulumi.String(connectionId),
			ProjectId:    pulumi.String(projectId),
			PortId:       *pulumi.String(portId),
			VlanId:       pulumi.String(vlanId),
			NniVlan:      pulumi.Int(1056),
		})
		if err != nil {
			return err
		}
		ctx.Export("vcStatus", vc.Status)
		ctx.Export("vcVnid", vc.Vnid)
		return nil
	})
}

```

## Import

This resource can be imported using an existing Virtual Circuit ID:

```sh $ pulumi import equinix:metal/virtualCircuit:VirtualCircuit equinix_metal_virtual_circuit {existing_id} ```

func GetVirtualCircuit

func GetVirtualCircuit(ctx *pulumi.Context,
	name string, id pulumi.IDInput, state *VirtualCircuitState, opts ...pulumi.ResourceOption) (*VirtualCircuit, error)

GetVirtualCircuit gets an existing VirtualCircuit 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 NewVirtualCircuit

func NewVirtualCircuit(ctx *pulumi.Context,
	name string, args *VirtualCircuitArgs, opts ...pulumi.ResourceOption) (*VirtualCircuit, error)

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

func (*VirtualCircuit) ElementType

func (*VirtualCircuit) ElementType() reflect.Type

func (*VirtualCircuit) ToVirtualCircuitOutput

func (i *VirtualCircuit) ToVirtualCircuitOutput() VirtualCircuitOutput

func (*VirtualCircuit) ToVirtualCircuitOutputWithContext

func (i *VirtualCircuit) ToVirtualCircuitOutputWithContext(ctx context.Context) VirtualCircuitOutput

type VirtualCircuitArgs

type VirtualCircuitArgs struct {
	// UUID of Connection where the VC is scoped to.
	ConnectionId pulumi.StringInput
	// The Customer IP address which the CSR switch will peer with. Will default to the other usable IP in the subnet.
	CustomerIp pulumi.StringPtrInput
	// Description for the Virtual Circuit resource.
	Description pulumi.StringPtrInput
	// The password that can be set for the VRF BGP peer
	Md5 pulumi.StringPtrInput
	// The Metal IP address for the SVI (Switch Virtual Interface) of the VirtualCircuit. Will default to the first usable IP in the subnet.
	MetalIp pulumi.StringPtrInput
	// Name of the Virtual Circuit resource.
	Name pulumi.StringPtrInput
	// Equinix Metal network-to-network VLAN ID.
	NniVlan pulumi.IntPtrInput
	// The BGP ASN of the peer. The same ASN may be the used across several VCs, but it cannot be the same as the localAsn of the VRF.
	PeerAsn pulumi.IntPtrInput
	// UUID of the Connection Port where the VC is scoped to.
	PortId pulumi.StringInput
	// UUID of the Project where the VC is scoped to.
	ProjectId pulumi.StringInput
	// Speed of the Virtual Circuit resource.
	Speed pulumi.StringPtrInput
	// A subnet from one of the IP
	// blocks associated with the VRF that we will help create an IP reservation for. Can only be either a /30 or /31.
	// * For a /31 block, it will only have two IP addresses, which will be used for
	//   the metalIp and customer_ip.
	// * For a /30 block, it will have four IP addresses, but the first and last IP addresses are not usable. We will default to the first usable IP address for the metal_ip.
	Subnet pulumi.StringPtrInput
	// Tags for the Virtual Circuit resource.
	Tags pulumi.StringArrayInput
	// UUID of the VLAN to associate.
	VlanId pulumi.StringPtrInput
	// UUID of the VRF to associate.
	VrfId pulumi.StringPtrInput
}

The set of arguments for constructing a VirtualCircuit resource.

func (VirtualCircuitArgs) ElementType

func (VirtualCircuitArgs) ElementType() reflect.Type

type VirtualCircuitArray

type VirtualCircuitArray []VirtualCircuitInput

func (VirtualCircuitArray) ElementType

func (VirtualCircuitArray) ElementType() reflect.Type

func (VirtualCircuitArray) ToVirtualCircuitArrayOutput

func (i VirtualCircuitArray) ToVirtualCircuitArrayOutput() VirtualCircuitArrayOutput

func (VirtualCircuitArray) ToVirtualCircuitArrayOutputWithContext

func (i VirtualCircuitArray) ToVirtualCircuitArrayOutputWithContext(ctx context.Context) VirtualCircuitArrayOutput

type VirtualCircuitArrayInput

type VirtualCircuitArrayInput interface {
	pulumi.Input

	ToVirtualCircuitArrayOutput() VirtualCircuitArrayOutput
	ToVirtualCircuitArrayOutputWithContext(context.Context) VirtualCircuitArrayOutput
}

VirtualCircuitArrayInput is an input type that accepts VirtualCircuitArray and VirtualCircuitArrayOutput values. You can construct a concrete instance of `VirtualCircuitArrayInput` via:

VirtualCircuitArray{ VirtualCircuitArgs{...} }

type VirtualCircuitArrayOutput

type VirtualCircuitArrayOutput struct{ *pulumi.OutputState }

func (VirtualCircuitArrayOutput) ElementType

func (VirtualCircuitArrayOutput) ElementType() reflect.Type

func (VirtualCircuitArrayOutput) Index

func (VirtualCircuitArrayOutput) ToVirtualCircuitArrayOutput

func (o VirtualCircuitArrayOutput) ToVirtualCircuitArrayOutput() VirtualCircuitArrayOutput

func (VirtualCircuitArrayOutput) ToVirtualCircuitArrayOutputWithContext

func (o VirtualCircuitArrayOutput) ToVirtualCircuitArrayOutputWithContext(ctx context.Context) VirtualCircuitArrayOutput

type VirtualCircuitInput

type VirtualCircuitInput interface {
	pulumi.Input

	ToVirtualCircuitOutput() VirtualCircuitOutput
	ToVirtualCircuitOutputWithContext(ctx context.Context) VirtualCircuitOutput
}

type VirtualCircuitMap

type VirtualCircuitMap map[string]VirtualCircuitInput

func (VirtualCircuitMap) ElementType

func (VirtualCircuitMap) ElementType() reflect.Type

func (VirtualCircuitMap) ToVirtualCircuitMapOutput

func (i VirtualCircuitMap) ToVirtualCircuitMapOutput() VirtualCircuitMapOutput

func (VirtualCircuitMap) ToVirtualCircuitMapOutputWithContext

func (i VirtualCircuitMap) ToVirtualCircuitMapOutputWithContext(ctx context.Context) VirtualCircuitMapOutput

type VirtualCircuitMapInput

type VirtualCircuitMapInput interface {
	pulumi.Input

	ToVirtualCircuitMapOutput() VirtualCircuitMapOutput
	ToVirtualCircuitMapOutputWithContext(context.Context) VirtualCircuitMapOutput
}

VirtualCircuitMapInput is an input type that accepts VirtualCircuitMap and VirtualCircuitMapOutput values. You can construct a concrete instance of `VirtualCircuitMapInput` via:

VirtualCircuitMap{ "key": VirtualCircuitArgs{...} }

type VirtualCircuitMapOutput

type VirtualCircuitMapOutput struct{ *pulumi.OutputState }

func (VirtualCircuitMapOutput) ElementType

func (VirtualCircuitMapOutput) ElementType() reflect.Type

func (VirtualCircuitMapOutput) MapIndex

func (VirtualCircuitMapOutput) ToVirtualCircuitMapOutput

func (o VirtualCircuitMapOutput) ToVirtualCircuitMapOutput() VirtualCircuitMapOutput

func (VirtualCircuitMapOutput) ToVirtualCircuitMapOutputWithContext

func (o VirtualCircuitMapOutput) ToVirtualCircuitMapOutputWithContext(ctx context.Context) VirtualCircuitMapOutput

type VirtualCircuitOutput

type VirtualCircuitOutput struct{ *pulumi.OutputState }

func (VirtualCircuitOutput) ConnectionId

func (o VirtualCircuitOutput) ConnectionId() pulumi.StringOutput

UUID of Connection where the VC is scoped to.

func (VirtualCircuitOutput) CustomerIp

The Customer IP address which the CSR switch will peer with. Will default to the other usable IP in the subnet.

func (VirtualCircuitOutput) Description

Description for the Virtual Circuit resource.

func (VirtualCircuitOutput) ElementType

func (VirtualCircuitOutput) ElementType() reflect.Type

func (VirtualCircuitOutput) Md5

The password that can be set for the VRF BGP peer

func (VirtualCircuitOutput) MetalIp

The Metal IP address for the SVI (Switch Virtual Interface) of the VirtualCircuit. Will default to the first usable IP in the subnet.

func (VirtualCircuitOutput) Name

Name of the Virtual Circuit resource.

func (VirtualCircuitOutput) NniVlan

Equinix Metal network-to-network VLAN ID.

func (VirtualCircuitOutput) NniVnid

NNI VLAN parameters, see the [documentation for Equinix Fabric](https://metal.equinix.com/developers/docs/networking/fabric/).

func (VirtualCircuitOutput) PeerAsn

The BGP ASN of the peer. The same ASN may be the used across several VCs, but it cannot be the same as the localAsn of the VRF.

func (VirtualCircuitOutput) PortId

UUID of the Connection Port where the VC is scoped to.

func (VirtualCircuitOutput) ProjectId

UUID of the Project where the VC is scoped to.

func (VirtualCircuitOutput) Speed

Speed of the Virtual Circuit resource.

func (VirtualCircuitOutput) Status

Status of the virtal circuit.

func (VirtualCircuitOutput) Subnet

A subnet from one of the IP blocks associated with the VRF that we will help create an IP reservation for. Can only be either a /30 or /31.

  • For a /31 block, it will only have two IP addresses, which will be used for the metalIp and customer_ip.
  • For a /30 block, it will have four IP addresses, but the first and last IP addresses are not usable. We will default to the first usable IP address for the metal_ip.

func (VirtualCircuitOutput) Tags

Tags for the Virtual Circuit resource.

func (VirtualCircuitOutput) ToVirtualCircuitOutput

func (o VirtualCircuitOutput) ToVirtualCircuitOutput() VirtualCircuitOutput

func (VirtualCircuitOutput) ToVirtualCircuitOutputWithContext

func (o VirtualCircuitOutput) ToVirtualCircuitOutputWithContext(ctx context.Context) VirtualCircuitOutput

func (VirtualCircuitOutput) VlanId

UUID of the VLAN to associate.

func (VirtualCircuitOutput) Vnid

VNID VLAN parameter, see the [documentation for Equinix Fabric](https://metal.equinix.com/developers/docs/networking/fabric/).

func (VirtualCircuitOutput) VrfId

UUID of the VRF to associate.

type VirtualCircuitState

type VirtualCircuitState struct {
	// UUID of Connection where the VC is scoped to.
	ConnectionId pulumi.StringPtrInput
	// The Customer IP address which the CSR switch will peer with. Will default to the other usable IP in the subnet.
	CustomerIp pulumi.StringPtrInput
	// Description for the Virtual Circuit resource.
	Description pulumi.StringPtrInput
	// The password that can be set for the VRF BGP peer
	Md5 pulumi.StringPtrInput
	// The Metal IP address for the SVI (Switch Virtual Interface) of the VirtualCircuit. Will default to the first usable IP in the subnet.
	MetalIp pulumi.StringPtrInput
	// Name of the Virtual Circuit resource.
	Name pulumi.StringPtrInput
	// Equinix Metal network-to-network VLAN ID.
	NniVlan pulumi.IntPtrInput
	// NNI VLAN parameters, see the [documentation for Equinix Fabric](https://metal.equinix.com/developers/docs/networking/fabric/).
	NniVnid pulumi.IntPtrInput
	// The BGP ASN of the peer. The same ASN may be the used across several VCs, but it cannot be the same as the localAsn of the VRF.
	PeerAsn pulumi.IntPtrInput
	// UUID of the Connection Port where the VC is scoped to.
	PortId pulumi.StringPtrInput
	// UUID of the Project where the VC is scoped to.
	ProjectId pulumi.StringPtrInput
	// Speed of the Virtual Circuit resource.
	Speed pulumi.StringPtrInput
	// Status of the virtal circuit.
	Status pulumi.StringPtrInput
	// A subnet from one of the IP
	// blocks associated with the VRF that we will help create an IP reservation for. Can only be either a /30 or /31.
	// * For a /31 block, it will only have two IP addresses, which will be used for
	//   the metalIp and customer_ip.
	// * For a /30 block, it will have four IP addresses, but the first and last IP addresses are not usable. We will default to the first usable IP address for the metal_ip.
	Subnet pulumi.StringPtrInput
	// Tags for the Virtual Circuit resource.
	Tags pulumi.StringArrayInput
	// UUID of the VLAN to associate.
	VlanId pulumi.StringPtrInput
	// VNID VLAN parameter, see the [documentation for Equinix Fabric](https://metal.equinix.com/developers/docs/networking/fabric/).
	Vnid pulumi.IntPtrInput
	// UUID of the VRF to associate.
	VrfId pulumi.StringPtrInput
}

func (VirtualCircuitState) ElementType

func (VirtualCircuitState) ElementType() reflect.Type

type Vlan

type Vlan struct {
	pulumi.CustomResourceState

	// Description string.
	Description pulumi.StringPtrOutput `pulumi:"description"`
	// Facility where to create the VLAN. Use metro instead; read the facility to metro migration guide
	//
	// Deprecated: Use metro instead of facility.  For more information, read the migration guide: https://registry.terraform.io/providers/equinix/equinix/latest/docs/guides/migration_guide_facilities_to_metros_devices
	Facility pulumi.StringOutput `pulumi:"facility"`
	// Metro in which to create the VLAN
	Metro pulumi.StringOutput `pulumi:"metro"`
	// ID of parent project.
	ProjectId pulumi.StringOutput `pulumi:"projectId"`
	// VLAN ID, must be unique in metro.
	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/equinix/pulumi-equinix/sdk/go/equinix/metal"
"github.com/pulumi/pulumi/sdk/v3/go/pulumi"
"github.com/pulumi/pulumi/sdk/v3/go/pulumi/config"

)

func main() {
	pulumi.Run(func(ctx *pulumi.Context) error {
		cfg := config.New(ctx, "")
		projectId := cfg.Require("projectId")
		metro := "DA"
		if param := cfg.Get("metro"); param != "" {
			metro = param
		}
		vxlan := cfg.RequireInt("vxlan")
		vlan, err := metal.NewVlan(ctx, "vlan", &metal.VlanArgs{
			Description: pulumi.String("VLAN in Dallas"),
			ProjectId:   pulumi.String(projectId),
			Metro:       pulumi.String(metro),
			Vxlan:       pulumi.Int(vxlan),
		})
		if err != nil {
			return err
		}
		ctx.Export("vlanId", vlan.ID())
		return nil
	})
}

```

## Import

This resource can be imported using an existing VLAN ID (UUID):

```sh $ pulumi import equinix:metal/vlan:Vlan equinix_metal_vlan {existing_vlan_id} ```

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

type VlanArgs

type VlanArgs struct {
	// Description string.
	Description pulumi.StringPtrInput
	// Facility where to create the VLAN. Use metro instead; read the facility to metro migration guide
	//
	// Deprecated: Use metro instead of facility.  For more information, read the migration guide: https://registry.terraform.io/providers/equinix/equinix/latest/docs/guides/migration_guide_facilities_to_metros_devices
	Facility pulumi.StringPtrInput
	// Metro in which to create the VLAN
	Metro pulumi.StringPtrInput
	// ID of parent project.
	ProjectId pulumi.StringInput
	// VLAN ID, must be unique in metro.
	Vxlan pulumi.IntPtrInput
}

The set of arguments for constructing a Vlan resource.

func (VlanArgs) ElementType

func (VlanArgs) ElementType() reflect.Type

type VlanArray

type VlanArray []VlanInput

func (VlanArray) ElementType

func (VlanArray) ElementType() reflect.Type

func (VlanArray) ToVlanArrayOutput

func (i VlanArray) ToVlanArrayOutput() VlanArrayOutput

func (VlanArray) ToVlanArrayOutputWithContext

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

type VlanArrayInput

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

type VlanArrayOutput struct{ *pulumi.OutputState }

func (VlanArrayOutput) ElementType

func (VlanArrayOutput) ElementType() reflect.Type

func (VlanArrayOutput) Index

func (VlanArrayOutput) ToVlanArrayOutput

func (o VlanArrayOutput) ToVlanArrayOutput() VlanArrayOutput

func (VlanArrayOutput) ToVlanArrayOutputWithContext

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

type VlanInput

type VlanInput interface {
	pulumi.Input

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

type VlanMap

type VlanMap map[string]VlanInput

func (VlanMap) ElementType

func (VlanMap) ElementType() reflect.Type

func (VlanMap) ToVlanMapOutput

func (i VlanMap) ToVlanMapOutput() VlanMapOutput

func (VlanMap) ToVlanMapOutputWithContext

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

type VlanMapInput

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

type VlanMapOutput struct{ *pulumi.OutputState }

func (VlanMapOutput) ElementType

func (VlanMapOutput) ElementType() reflect.Type

func (VlanMapOutput) MapIndex

func (VlanMapOutput) ToVlanMapOutput

func (o VlanMapOutput) ToVlanMapOutput() VlanMapOutput

func (VlanMapOutput) ToVlanMapOutputWithContext

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

type VlanOutput

type VlanOutput struct{ *pulumi.OutputState }

func (VlanOutput) Description

func (o VlanOutput) Description() pulumi.StringPtrOutput

Description string.

func (VlanOutput) ElementType

func (VlanOutput) ElementType() reflect.Type

func (VlanOutput) Facility deprecated

func (o VlanOutput) Facility() pulumi.StringOutput

Facility where to create the VLAN. Use metro instead; read the facility to metro migration guide

Deprecated: Use metro instead of facility. For more information, read the migration guide: https://registry.terraform.io/providers/equinix/equinix/latest/docs/guides/migration_guide_facilities_to_metros_devices

func (VlanOutput) Metro

func (o VlanOutput) Metro() pulumi.StringOutput

Metro in which to create the VLAN

func (VlanOutput) ProjectId

func (o VlanOutput) ProjectId() pulumi.StringOutput

ID of parent project.

func (VlanOutput) ToVlanOutput

func (o VlanOutput) ToVlanOutput() VlanOutput

func (VlanOutput) ToVlanOutputWithContext

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

func (VlanOutput) Vxlan

func (o VlanOutput) Vxlan() pulumi.IntOutput

VLAN ID, must be unique in metro.

type VlanState

type VlanState struct {
	// Description string.
	Description pulumi.StringPtrInput
	// Facility where to create the VLAN. Use metro instead; read the facility to metro migration guide
	//
	// Deprecated: Use metro instead of facility.  For more information, read the migration guide: https://registry.terraform.io/providers/equinix/equinix/latest/docs/guides/migration_guide_facilities_to_metros_devices
	Facility pulumi.StringPtrInput
	// Metro in which to create the VLAN
	Metro pulumi.StringPtrInput
	// ID of parent project.
	ProjectId pulumi.StringPtrInput
	// VLAN ID, must be unique in metro.
	Vxlan pulumi.IntPtrInput
}

func (VlanState) ElementType

func (VlanState) ElementType() reflect.Type

type Vrf

type Vrf struct {
	pulumi.CustomResourceState

	// Description of the VRF.
	Description pulumi.StringPtrOutput `pulumi:"description"`
	// All IPv4 and IPv6 Ranges that will be available to BGP Peers. IPv4 addresses must be /8 or smaller with a minimum size of /29. IPv6 must be /56 or smaller with a minimum size of /64. Ranges must not overlap other ranges within the VRF.
	IpRanges pulumi.StringArrayOutput `pulumi:"ipRanges"`
	// The 4-byte ASN set on the VRF.
	LocalAsn pulumi.IntOutput `pulumi:"localAsn"`
	// Metro ID or Code where the VRF will be deployed.
	Metro pulumi.StringOutput `pulumi:"metro"`
	// User-supplied name of the VRF, unique to the project
	Name pulumi.StringOutput `pulumi:"name"`
	// Project ID where the VRF will be deployed.
	ProjectId pulumi.StringOutput `pulumi:"projectId"`
}

Use this resource to manage a VRF.

> VRF features are not generally available. The interfaces related to VRF resources may change ahead of general availability.

## Example Usage ```go package main

import (

"github.com/equinix/pulumi-equinix/sdk/go/equinix/metal"
"github.com/pulumi/pulumi/sdk/v3/go/pulumi"
"github.com/pulumi/pulumi/sdk/v3/go/pulumi/config"

)

func main() {
	pulumi.Run(func(ctx *pulumi.Context) error {
		cfg := config.New(ctx, "")
		projectId := cfg.Require("projectId")
		metro := "DA"
		if param := cfg.Get("metro"); param != "" {
			metro = param
		}
		vrf, err := metal.NewVrf(ctx, "vrf", &metal.VrfArgs{
			Description: pulumi.String("VRF with ASN 65000 and a pool of address space"),
			Name:        pulumi.String("example-vrf"),
			Metro:       pulumi.String(metro),
			LocalAsn:    pulumi.Int(65000),
			IpRanges: pulumi.StringArray{
				pulumi.String("192.168.100.0/25"),
				pulumi.String("192.168.200.0/25"),
			},
			ProjectId: pulumi.String(projectId),
		})
		if err != nil {
			return err
		}
		ctx.Export("vrfId", vrf.ID())
		return nil
	})
}

```

## Import

This resource can be imported using an existing VRF ID:

```sh $ pulumi import equinix:metal/vrf:Vrf equinix_metal_vrf {existing_id} ```

func GetVrf

func GetVrf(ctx *pulumi.Context,
	name string, id pulumi.IDInput, state *VrfState, opts ...pulumi.ResourceOption) (*Vrf, error)

GetVrf gets an existing Vrf 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 NewVrf

func NewVrf(ctx *pulumi.Context,
	name string, args *VrfArgs, opts ...pulumi.ResourceOption) (*Vrf, error)

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

func (*Vrf) ElementType

func (*Vrf) ElementType() reflect.Type

func (*Vrf) ToVrfOutput

func (i *Vrf) ToVrfOutput() VrfOutput

func (*Vrf) ToVrfOutputWithContext

func (i *Vrf) ToVrfOutputWithContext(ctx context.Context) VrfOutput

type VrfArgs

type VrfArgs struct {
	// Description of the VRF.
	Description pulumi.StringPtrInput
	// All IPv4 and IPv6 Ranges that will be available to BGP Peers. IPv4 addresses must be /8 or smaller with a minimum size of /29. IPv6 must be /56 or smaller with a minimum size of /64. Ranges must not overlap other ranges within the VRF.
	IpRanges pulumi.StringArrayInput
	// The 4-byte ASN set on the VRF.
	LocalAsn pulumi.IntPtrInput
	// Metro ID or Code where the VRF will be deployed.
	Metro pulumi.StringInput
	// User-supplied name of the VRF, unique to the project
	Name pulumi.StringPtrInput
	// Project ID where the VRF will be deployed.
	ProjectId pulumi.StringInput
}

The set of arguments for constructing a Vrf resource.

func (VrfArgs) ElementType

func (VrfArgs) ElementType() reflect.Type

type VrfArray

type VrfArray []VrfInput

func (VrfArray) ElementType

func (VrfArray) ElementType() reflect.Type

func (VrfArray) ToVrfArrayOutput

func (i VrfArray) ToVrfArrayOutput() VrfArrayOutput

func (VrfArray) ToVrfArrayOutputWithContext

func (i VrfArray) ToVrfArrayOutputWithContext(ctx context.Context) VrfArrayOutput

type VrfArrayInput

type VrfArrayInput interface {
	pulumi.Input

	ToVrfArrayOutput() VrfArrayOutput
	ToVrfArrayOutputWithContext(context.Context) VrfArrayOutput
}

VrfArrayInput is an input type that accepts VrfArray and VrfArrayOutput values. You can construct a concrete instance of `VrfArrayInput` via:

VrfArray{ VrfArgs{...} }

type VrfArrayOutput

type VrfArrayOutput struct{ *pulumi.OutputState }

func (VrfArrayOutput) ElementType

func (VrfArrayOutput) ElementType() reflect.Type

func (VrfArrayOutput) Index

func (VrfArrayOutput) ToVrfArrayOutput

func (o VrfArrayOutput) ToVrfArrayOutput() VrfArrayOutput

func (VrfArrayOutput) ToVrfArrayOutputWithContext

func (o VrfArrayOutput) ToVrfArrayOutputWithContext(ctx context.Context) VrfArrayOutput

type VrfInput

type VrfInput interface {
	pulumi.Input

	ToVrfOutput() VrfOutput
	ToVrfOutputWithContext(ctx context.Context) VrfOutput
}

type VrfMap

type VrfMap map[string]VrfInput

func (VrfMap) ElementType

func (VrfMap) ElementType() reflect.Type

func (VrfMap) ToVrfMapOutput

func (i VrfMap) ToVrfMapOutput() VrfMapOutput

func (VrfMap) ToVrfMapOutputWithContext

func (i VrfMap) ToVrfMapOutputWithContext(ctx context.Context) VrfMapOutput

type VrfMapInput

type VrfMapInput interface {
	pulumi.Input

	ToVrfMapOutput() VrfMapOutput
	ToVrfMapOutputWithContext(context.Context) VrfMapOutput
}

VrfMapInput is an input type that accepts VrfMap and VrfMapOutput values. You can construct a concrete instance of `VrfMapInput` via:

VrfMap{ "key": VrfArgs{...} }

type VrfMapOutput

type VrfMapOutput struct{ *pulumi.OutputState }

func (VrfMapOutput) ElementType

func (VrfMapOutput) ElementType() reflect.Type

func (VrfMapOutput) MapIndex

func (o VrfMapOutput) MapIndex(k pulumi.StringInput) VrfOutput

func (VrfMapOutput) ToVrfMapOutput

func (o VrfMapOutput) ToVrfMapOutput() VrfMapOutput

func (VrfMapOutput) ToVrfMapOutputWithContext

func (o VrfMapOutput) ToVrfMapOutputWithContext(ctx context.Context) VrfMapOutput

type VrfOutput

type VrfOutput struct{ *pulumi.OutputState }

func (VrfOutput) Description

func (o VrfOutput) Description() pulumi.StringPtrOutput

Description of the VRF.

func (VrfOutput) ElementType

func (VrfOutput) ElementType() reflect.Type

func (VrfOutput) IpRanges

func (o VrfOutput) IpRanges() pulumi.StringArrayOutput

All IPv4 and IPv6 Ranges that will be available to BGP Peers. IPv4 addresses must be /8 or smaller with a minimum size of /29. IPv6 must be /56 or smaller with a minimum size of /64. Ranges must not overlap other ranges within the VRF.

func (VrfOutput) LocalAsn

func (o VrfOutput) LocalAsn() pulumi.IntOutput

The 4-byte ASN set on the VRF.

func (VrfOutput) Metro

func (o VrfOutput) Metro() pulumi.StringOutput

Metro ID or Code where the VRF will be deployed.

func (VrfOutput) Name

func (o VrfOutput) Name() pulumi.StringOutput

User-supplied name of the VRF, unique to the project

func (VrfOutput) ProjectId

func (o VrfOutput) ProjectId() pulumi.StringOutput

Project ID where the VRF will be deployed.

func (VrfOutput) ToVrfOutput

func (o VrfOutput) ToVrfOutput() VrfOutput

func (VrfOutput) ToVrfOutputWithContext

func (o VrfOutput) ToVrfOutputWithContext(ctx context.Context) VrfOutput

type VrfState

type VrfState struct {
	// Description of the VRF.
	Description pulumi.StringPtrInput
	// All IPv4 and IPv6 Ranges that will be available to BGP Peers. IPv4 addresses must be /8 or smaller with a minimum size of /29. IPv6 must be /56 or smaller with a minimum size of /64. Ranges must not overlap other ranges within the VRF.
	IpRanges pulumi.StringArrayInput
	// The 4-byte ASN set on the VRF.
	LocalAsn pulumi.IntPtrInput
	// Metro ID or Code where the VRF will be deployed.
	Metro pulumi.StringPtrInput
	// User-supplied name of the VRF, unique to the project
	Name pulumi.StringPtrInput
	// Project ID where the VRF will be deployed.
	ProjectId pulumi.StringPtrInput
}

func (VrfState) ElementType

func (VrfState) ElementType() reflect.Type

Jump to

Keyboard shortcuts

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