equinix.networkedge.Device
Explore with Pulumi AI
Resource equinix.networkedge.Device allows creation and management of Equinix Network Edge virtual network devices.
Network Edge virtual network devices can be created in two modes:
- managed - (default) Where Equinix manages connectivity and services in the device and customer gets limited access to the device.
 - self-configured - Where customer provisions and manages own services in the device with less restricted access. Some device types are offered only in this mode.
 
In addition to management modes, there are two software license modes available:
- subscription - Where Equinix provides software license, including end-to-end support, and bills for the service respectively.
 - BYOL - [bring your own license] Where customer brings his own, already procured device software license. There are no charges associated with such license. It is the only licensing mode for 
self-configureddevices. 
Example Usage
example 1
using System.Collections.Generic;
using System.Linq;
using Pulumi;
using Equinix = Pulumi.Equinix;
return await Deployment.RunAsync(() => 
{
    var dc = Equinix.NetworkEdge.GetAccount.Invoke(new()
    {
        MetroCode = "DC",
    });
    var sv = Equinix.NetworkEdge.GetAccount.Invoke(new()
    {
        MetroCode = "SV",
    });
    var csr1000VHa = new Equinix.NetworkEdge.Device("csr1000vHa", new()
    {
        Name = "tf-csr1000v-p",
        Throughput = 500,
        ThroughputUnit = Equinix.NetworkEdge.ThroughputUnit.Mbps,
        MetroCode = dc.Apply(getAccountResult => getAccountResult.MetroCode),
        TypeCode = "CSR1000V",
        SelfManaged = false,
        Connectivity = "INTERNET-ACCESS",
        Byol = false,
        PackageCode = "SEC",
        Notifications = new[]
        {
            "john@equinix.com",
            "marry@equinix.com",
            "fred@equinix.com",
        },
        Hostname = "csr1000v-p",
        TermLength = 12,
        AccountNumber = dc.Apply(getAccountResult => getAccountResult.Number),
        Version = "16.09.05",
        CoreCount = 2,
        SecondaryDevice = new Equinix.NetworkEdge.Inputs.DeviceSecondaryDeviceArgs
        {
            Name = "tf-csr1000v-s",
            MetroCode = sv.Apply(getAccountResult => getAccountResult.MetroCode),
            Hostname = "csr1000v-s",
            Notifications = new[]
            {
                "john@equinix.com",
                "marry@equinix.com",
            },
            AccountNumber = sv.Apply(getAccountResult => getAccountResult.Number),
        },
    });
});
package main
import (
	"github.com/equinix/pulumi-equinix/sdk/go/equinix/networkedge"
	"github.com/pulumi/pulumi/sdk/v3/go/pulumi"
)
func main() {
	pulumi.Run(func(ctx *pulumi.Context) error {
		dc := networkedge.GetAccountOutput(ctx, networkedge.GetAccountOutputArgs{
			MetroCode: pulumi.String("DC"),
		}, nil)
		sv := networkedge.GetAccountOutput(ctx, networkedge.GetAccountOutputArgs{
			MetroCode: pulumi.String("SV"),
		}, nil)
		_, err := networkedge.NewDevice(ctx, "csr1000vHa", &networkedge.DeviceArgs{
			Name:           pulumi.String("tf-csr1000v-p"),
			Throughput:     pulumi.Int(500),
			ThroughputUnit: pulumi.String(networkedge.ThroughputUnitMbps),
			MetroCode: pulumi.String(dc.ApplyT(func(dc networkedge.GetAccountResult) (*string, error) {
				return &dc.MetroCode, nil
			}).(pulumi.StringPtrOutput)),
			TypeCode:     pulumi.String("CSR1000V"),
			SelfManaged:  pulumi.Bool(false),
			Connectivity: pulumi.String("INTERNET-ACCESS"),
			Byol:         pulumi.Bool(false),
			PackageCode:  pulumi.String("SEC"),
			Notifications: pulumi.StringArray{
				pulumi.String("john@equinix.com"),
				pulumi.String("marry@equinix.com"),
				pulumi.String("fred@equinix.com"),
			},
			Hostname:   pulumi.String("csr1000v-p"),
			TermLength: pulumi.Int(12),
			AccountNumber: pulumi.String(dc.ApplyT(func(dc networkedge.GetAccountResult) (*string, error) {
				return &dc.Number, nil
			}).(pulumi.StringPtrOutput)),
			Version:   pulumi.String("16.09.05"),
			CoreCount: pulumi.Int(2),
			SecondaryDevice: &networkedge.DeviceSecondaryDeviceArgs{
				Name: pulumi.String("tf-csr1000v-s"),
				MetroCode: sv.ApplyT(func(sv networkedge.GetAccountResult) (*string, error) {
					return &sv.MetroCode, nil
				}).(pulumi.StringPtrOutput),
				Hostname: pulumi.String("csr1000v-s"),
				Notifications: pulumi.StringArray{
					pulumi.String("john@equinix.com"),
					pulumi.String("marry@equinix.com"),
				},
				AccountNumber: sv.ApplyT(func(sv networkedge.GetAccountResult) (*string, error) {
					return &sv.Number, nil
				}).(pulumi.StringPtrOutput),
			},
		})
		if err != nil {
			return err
		}
		return nil
	})
}
package generated_program;
import com.pulumi.Context;
import com.pulumi.Pulumi;
import com.pulumi.core.Output;
import com.pulumi.equinix.networkedge.NetworkedgeFunctions;
import com.pulumi.equinix.networkedge.inputs.GetAccountArgs;
import com.pulumi.equinix.networkedge.Device;
import com.pulumi.equinix.networkedge.DeviceArgs;
import com.pulumi.equinix.networkedge.inputs.DeviceSecondaryDeviceArgs;
import java.util.List;
import java.util.ArrayList;
import java.util.Map;
import java.io.File;
import java.nio.file.Files;
import java.nio.file.Paths;
public class App {
    public static void main(String[] args) {
        Pulumi.run(App::stack);
    }
    public static void stack(Context ctx) {
        final var dc = NetworkedgeFunctions.getAccount(GetAccountArgs.builder()
            .metroCode("DC")
            .build());
        final var sv = NetworkedgeFunctions.getAccount(GetAccountArgs.builder()
            .metroCode("SV")
            .build());
        var csr1000VHa = new Device("csr1000VHa", DeviceArgs.builder()
            .name("tf-csr1000v-p")
            .throughput(500)
            .throughputUnit("Mbps")
            .metroCode(dc.applyValue(_dc -> _dc.metroCode()))
            .typeCode("CSR1000V")
            .selfManaged(false)
            .connectivity("INTERNET-ACCESS")
            .byol(false)
            .packageCode("SEC")
            .notifications(            
                "john@equinix.com",
                "marry@equinix.com",
                "fred@equinix.com")
            .hostname("csr1000v-p")
            .termLength(12)
            .accountNumber(dc.applyValue(_dc -> _dc.number()))
            .version("16.09.05")
            .coreCount(2)
            .secondaryDevice(DeviceSecondaryDeviceArgs.builder()
                .name("tf-csr1000v-s")
                .metroCode(sv.applyValue(_sv -> _sv.metroCode()))
                .hostname("csr1000v-s")
                .notifications(                
                    "john@equinix.com",
                    "marry@equinix.com")
                .accountNumber(sv.applyValue(_sv -> _sv.number()))
                .build())
            .build());
    }
}
import * as pulumi from "@pulumi/pulumi";
import * as equinix from "@equinix-labs/pulumi-equinix";
import * as equinix from "@pulumi/equinix";
const dc = equinix.networkedge.getAccountOutput({
    metroCode: "DC",
});
const sv = equinix.networkedge.getAccountOutput({
    metroCode: "SV",
});
const csr1000VHa = new equinix.networkedge.Device("csr1000vHa", {
    name: "tf-csr1000v-p",
    throughput: 500,
    throughputUnit: equinix.networkedge.ThroughputUnit.Mbps,
    metroCode: dc.apply(dc => dc.metroCode),
    typeCode: "CSR1000V",
    selfManaged: false,
    connectivity: "INTERNET-ACCESS",
    byol: false,
    packageCode: "SEC",
    notifications: [
        "john@equinix.com",
        "marry@equinix.com",
        "fred@equinix.com",
    ],
    hostname: "csr1000v-p",
    termLength: 12,
    accountNumber: dc.apply(dc => dc.number),
    version: "16.09.05",
    coreCount: 2,
    secondaryDevice: {
        name: "tf-csr1000v-s",
        metroCode: sv.apply(sv => sv.metroCode),
        hostname: "csr1000v-s",
        notifications: [
            "john@equinix.com",
            "marry@equinix.com",
        ],
        accountNumber: sv.apply(sv => sv.number),
    },
});
import pulumi
import pulumi_equinix as equinix
dc = equinix.networkedge.get_account_output(metro_code="DC")
sv = equinix.networkedge.get_account_output(metro_code="SV")
csr1000_v_ha = equinix.networkedge.Device("csr1000vHa",
    name="tf-csr1000v-p",
    throughput=500,
    throughput_unit=equinix.networkedge.ThroughputUnit.MBPS,
    metro_code=dc.metro_code,
    type_code="CSR1000V",
    self_managed=False,
    connectivity="INTERNET-ACCESS",
    byol=False,
    package_code="SEC",
    notifications=[
        "john@equinix.com",
        "marry@equinix.com",
        "fred@equinix.com",
    ],
    hostname="csr1000v-p",
    term_length=12,
    account_number=dc.number,
    version="16.09.05",
    core_count=2,
    secondary_device={
        "name": "tf-csr1000v-s",
        "metro_code": sv.metro_code,
        "hostname": "csr1000v-s",
        "notifications": [
            "john@equinix.com",
            "marry@equinix.com",
        ],
        "account_number": sv.number,
    })
resources:
  csr1000vHa:
    type: equinix:networkedge:Device
    name: csr1000v_ha
    properties:
      name: tf-csr1000v-p
      throughput: 500
      throughputUnit: Mbps
      metroCode: ${dc.metroCode}
      typeCode: CSR1000V
      selfManaged: false
      connectivity: INTERNET-ACCESS
      byol: false
      packageCode: SEC
      notifications:
        - john@equinix.com
        - marry@equinix.com
        - fred@equinix.com
      hostname: csr1000v-p
      termLength: 12
      accountNumber: ${dc.number}
      version: 16.09.05
      coreCount: 2
      secondaryDevice:
        name: tf-csr1000v-s
        metroCode: ${sv.metroCode}
        hostname: csr1000v-s
        notifications:
          - john@equinix.com
          - marry@equinix.com
        accountNumber: ${sv.number}
variables:
  # Create pair of redundant, managed CSR1000V routers with license subscription
  # in two different metro locations
  dc:
    fn::invoke:
      function: equinix:networkedge:getAccount
      arguments:
        metroCode: DC
  sv:
    fn::invoke:
      function: equinix:networkedge:getAccount
      arguments:
        metroCode: SV
example 2
using System.Collections.Generic;
using System.Linq;
using Pulumi;
using Equinix = Pulumi.Equinix;
return await Deployment.RunAsync(() => 
{
    var sv = Equinix.NetworkEdge.GetAccount.Invoke(new()
    {
        MetroCode = "SV",
    });
    var panwCluster = new Equinix.NetworkEdge.Device("panwCluster", new()
    {
        Name = "tf-panw",
        MetroCode = sv.Apply(getAccountResult => getAccountResult.MetroCode),
        TypeCode = "PA-VM",
        SelfManaged = true,
        Byol = true,
        PackageCode = "VM100",
        Notifications = new[]
        {
            "john@equinix.com",
            "marry@equinix.com",
            "fred@equinix.com",
        },
        TermLength = 12,
        AccountNumber = sv.Apply(getAccountResult => getAccountResult.Number),
        Version = "10.1.3",
        InterfaceCount = 10,
        CoreCount = 2,
        SshKey = new Equinix.NetworkEdge.Inputs.DeviceSshKeyArgs
        {
            Username = "test",
            KeyName = "test-key",
        },
        AclTemplateId = "0bff6e05-f0e7-44cd-804a-25b92b835f8b",
        ClusterDetails = new Equinix.NetworkEdge.Inputs.DeviceClusterDetailsArgs
        {
            ClusterName = "tf-panw-cluster",
            Node0 = new Equinix.NetworkEdge.Inputs.DeviceClusterDetailsNode0Args
            {
                VendorConfiguration = new Equinix.NetworkEdge.Inputs.DeviceClusterDetailsNode0VendorConfigurationArgs
                {
                    Hostname = "panw-node0",
                },
                LicenseToken = "licenseToken",
            },
            Node1 = new Equinix.NetworkEdge.Inputs.DeviceClusterDetailsNode1Args
            {
                VendorConfiguration = new Equinix.NetworkEdge.Inputs.DeviceClusterDetailsNode1VendorConfigurationArgs
                {
                    Hostname = "panw-node1",
                },
                LicenseToken = "licenseToken",
            },
        },
    });
});
package main
import (
	"github.com/equinix/pulumi-equinix/sdk/go/equinix/networkedge"
	"github.com/pulumi/pulumi/sdk/v3/go/pulumi"
)
func main() {
	pulumi.Run(func(ctx *pulumi.Context) error {
		sv := networkedge.GetAccountOutput(ctx, networkedge.GetAccountOutputArgs{
			MetroCode: pulumi.String("SV"),
		}, nil)
		_, err := networkedge.NewDevice(ctx, "panwCluster", &networkedge.DeviceArgs{
			Name: pulumi.String("tf-panw"),
			MetroCode: pulumi.String(sv.ApplyT(func(sv networkedge.GetAccountResult) (*string, error) {
				return &sv.MetroCode, nil
			}).(pulumi.StringPtrOutput)),
			TypeCode:    pulumi.String("PA-VM"),
			SelfManaged: pulumi.Bool(true),
			Byol:        pulumi.Bool(true),
			PackageCode: pulumi.String("VM100"),
			Notifications: pulumi.StringArray{
				pulumi.String("john@equinix.com"),
				pulumi.String("marry@equinix.com"),
				pulumi.String("fred@equinix.com"),
			},
			TermLength: pulumi.Int(12),
			AccountNumber: pulumi.String(sv.ApplyT(func(sv networkedge.GetAccountResult) (*string, error) {
				return &sv.Number, nil
			}).(pulumi.StringPtrOutput)),
			Version:        pulumi.String("10.1.3"),
			InterfaceCount: pulumi.Int(10),
			CoreCount:      pulumi.Int(2),
			SshKey: &networkedge.DeviceSshKeyArgs{
				Username: pulumi.String("test"),
				KeyName:  pulumi.String("test-key"),
			},
			AclTemplateId: pulumi.String("0bff6e05-f0e7-44cd-804a-25b92b835f8b"),
			ClusterDetails: &networkedge.DeviceClusterDetailsArgs{
				ClusterName: pulumi.String("tf-panw-cluster"),
				Node0: &networkedge.DeviceClusterDetailsNode0Args{
					VendorConfiguration: &networkedge.DeviceClusterDetailsNode0VendorConfigurationArgs{
						Hostname: pulumi.String("panw-node0"),
					},
					LicenseToken: pulumi.String("licenseToken"),
				},
				Node1: &networkedge.DeviceClusterDetailsNode1Args{
					VendorConfiguration: &networkedge.DeviceClusterDetailsNode1VendorConfigurationArgs{
						Hostname: pulumi.String("panw-node1"),
					},
					LicenseToken: pulumi.String("licenseToken"),
				},
			},
		})
		if err != nil {
			return err
		}
		return nil
	})
}
package generated_program;
import com.pulumi.Context;
import com.pulumi.Pulumi;
import com.pulumi.core.Output;
import com.pulumi.equinix.networkedge.NetworkedgeFunctions;
import com.pulumi.equinix.networkedge.inputs.GetAccountArgs;
import com.pulumi.equinix.networkedge.Device;
import com.pulumi.equinix.networkedge.DeviceArgs;
import com.pulumi.equinix.networkedge.inputs.DeviceSshKeyArgs;
import com.pulumi.equinix.networkedge.inputs.DeviceClusterDetailsArgs;
import com.pulumi.equinix.networkedge.inputs.DeviceClusterDetailsNode0Args;
import com.pulumi.equinix.networkedge.inputs.DeviceClusterDetailsNode0VendorConfigurationArgs;
import com.pulumi.equinix.networkedge.inputs.DeviceClusterDetailsNode1Args;
import com.pulumi.equinix.networkedge.inputs.DeviceClusterDetailsNode1VendorConfigurationArgs;
import java.util.List;
import java.util.ArrayList;
import java.util.Map;
import java.io.File;
import java.nio.file.Files;
import java.nio.file.Paths;
public class App {
    public static void main(String[] args) {
        Pulumi.run(App::stack);
    }
    public static void stack(Context ctx) {
        final var sv = NetworkedgeFunctions.getAccount(GetAccountArgs.builder()
            .metroCode("SV")
            .build());
        var panwCluster = new Device("panwCluster", DeviceArgs.builder()
            .name("tf-panw")
            .metroCode(sv.applyValue(_sv -> _sv.metroCode()))
            .typeCode("PA-VM")
            .selfManaged(true)
            .byol(true)
            .packageCode("VM100")
            .notifications(            
                "john@equinix.com",
                "marry@equinix.com",
                "fred@equinix.com")
            .termLength(12)
            .accountNumber(sv.applyValue(_sv -> _sv.number()))
            .version("10.1.3")
            .interfaceCount(10)
            .coreCount(2)
            .sshKey(DeviceSshKeyArgs.builder()
                .username("test")
                .keyName("test-key")
                .build())
            .aclTemplateId("0bff6e05-f0e7-44cd-804a-25b92b835f8b")
            .clusterDetails(DeviceClusterDetailsArgs.builder()
                .clusterName("tf-panw-cluster")
                .node0(DeviceClusterDetailsNode0Args.builder()
                    .vendorConfiguration(DeviceClusterDetailsNode0VendorConfigurationArgs.builder()
                        .hostname("panw-node0")
                        .build())
                    .licenseToken("licenseToken")
                    .build())
                .node1(DeviceClusterDetailsNode1Args.builder()
                    .vendorConfiguration(DeviceClusterDetailsNode1VendorConfigurationArgs.builder()
                        .hostname("panw-node1")
                        .build())
                    .licenseToken("licenseToken")
                    .build())
                .build())
            .build());
    }
}
import * as pulumi from "@pulumi/pulumi";
import * as equinix from "@equinix-labs/pulumi-equinix";
import * as equinix from "@pulumi/equinix";
const sv = equinix.networkedge.getAccountOutput({
    metroCode: "SV",
});
const panwCluster = new equinix.networkedge.Device("panwCluster", {
    name: "tf-panw",
    metroCode: sv.apply(sv => sv.metroCode),
    typeCode: "PA-VM",
    selfManaged: true,
    byol: true,
    packageCode: "VM100",
    notifications: [
        "john@equinix.com",
        "marry@equinix.com",
        "fred@equinix.com",
    ],
    termLength: 12,
    accountNumber: sv.apply(sv => sv.number),
    version: "10.1.3",
    interfaceCount: 10,
    coreCount: 2,
    sshKey: {
        username: "test",
        keyName: "test-key",
    },
    aclTemplateId: "0bff6e05-f0e7-44cd-804a-25b92b835f8b",
    clusterDetails: {
        clusterName: "tf-panw-cluster",
        node0: {
            vendorConfiguration: {
                hostname: "panw-node0",
            },
            licenseToken: "licenseToken",
        },
        node1: {
            vendorConfiguration: {
                hostname: "panw-node1",
            },
            licenseToken: "licenseToken",
        },
    },
});
import pulumi
import pulumi_equinix as equinix
sv = equinix.networkedge.get_account_output(metro_code="SV")
panw_cluster = equinix.networkedge.Device("panwCluster",
    name="tf-panw",
    metro_code=sv.metro_code,
    type_code="PA-VM",
    self_managed=True,
    byol=True,
    package_code="VM100",
    notifications=[
        "john@equinix.com",
        "marry@equinix.com",
        "fred@equinix.com",
    ],
    term_length=12,
    account_number=sv.number,
    version="10.1.3",
    interface_count=10,
    core_count=2,
    ssh_key={
        "username": "test",
        "key_name": "test-key",
    },
    acl_template_id="0bff6e05-f0e7-44cd-804a-25b92b835f8b",
    cluster_details={
        "cluster_name": "tf-panw-cluster",
        "node0": {
            "vendor_configuration": {
                "hostname": "panw-node0",
            },
            "license_token": "licenseToken",
        },
        "node1": {
            "vendor_configuration": {
                "hostname": "panw-node1",
            },
            "license_token": "licenseToken",
        },
    })
resources:
  panwCluster:
    type: equinix:networkedge:Device
    name: panw_cluster
    properties:
      name: tf-panw
      metroCode: ${sv.metroCode}
      typeCode: PA-VM
      selfManaged: true
      byol: true
      packageCode: VM100
      notifications:
        - john@equinix.com
        - marry@equinix.com
        - fred@equinix.com
      termLength: 12
      accountNumber: ${sv.number}
      version: 10.1.3
      interfaceCount: 10
      coreCount: 2
      sshKey:
        username: test
        keyName: test-key
      aclTemplateId: 0bff6e05-f0e7-44cd-804a-25b92b835f8b
      clusterDetails:
        clusterName: tf-panw-cluster
        node0:
          vendorConfiguration:
            hostname: panw-node0
          licenseToken: licenseToken
        node1:
          vendorConfiguration:
            hostname: panw-node1
          licenseToken: licenseToken
variables:
  # Create self configured PANW cluster with BYOL license
  sv:
    fn::invoke:
      function: equinix:networkedge:getAccount
      arguments:
        metroCode: SV
example 3
using System.Collections.Generic;
using System.Linq;
using Pulumi;
using Equinix = Pulumi.Equinix;
using Std = Pulumi.Std;
return await Deployment.RunAsync(() => 
{
    var config = new Config();
    var filepath = config.Get("filepath") ?? "cloudInitFileFolder/TF-AVX-cloud-init-file.txt";
    var sv = Equinix.NetworkEdge.GetAccount.Invoke(new()
    {
        MetroCode = "SV",
    });
    var aviatrixCloudinitFile = new Equinix.NetworkEdge.NetworkFile("aviatrixCloudinitFile", new()
    {
        FileName = "TF-AVX-cloud-init-file.txt",
        Content = Std.File.Invoke(new()
        {
            Input = filepath,
        }).Apply(invoke => invoke.Result),
        MetroCode = sv.Apply(getAccountResult => getAccountResult.MetroCode).Apply(System.Enum.Parse<Equinix.Metro>),
        DeviceTypeCode = "AVIATRIX_EDGE",
        ProcessType = Equinix.NetworkEdge.FileType.CloudInit,
        SelfManaged = true,
        Byol = true,
    });
    var aviatrixSingle = new Equinix.NetworkEdge.Device("aviatrixSingle", new()
    {
        Name = "tf-aviatrix",
        MetroCode = sv.Apply(getAccountResult => getAccountResult.MetroCode),
        TypeCode = "AVIATRIX_EDGE",
        SelfManaged = true,
        Byol = true,
        PackageCode = "STD",
        Notifications = new[]
        {
            "john@equinix.com",
        },
        TermLength = 12,
        AccountNumber = sv.Apply(getAccountResult => getAccountResult.Number),
        Version = "6.9",
        CoreCount = 2,
        CloudInitFileId = aviatrixCloudinitFile.Uuid,
        AclTemplateId = "c06150ea-b604-4ad1-832a-d63936e9b938",
    });
});
package main
import (
	"github.com/equinix/pulumi-equinix/sdk/go/equinix"
	"github.com/equinix/pulumi-equinix/sdk/go/equinix/networkedge"
	"github.com/pulumi/pulumi-std/sdk/go/std"
	"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, "")
		filepath := "cloudInitFileFolder/TF-AVX-cloud-init-file.txt"
		if param := cfg.Get("filepath"); param != "" {
			filepath = param
		}
		sv := networkedge.GetAccountOutput(ctx, networkedge.GetAccountOutputArgs{
			MetroCode: pulumi.String("SV"),
		}, nil)
		aviatrixCloudinitFile, err := networkedge.NewNetworkFile(ctx, "aviatrixCloudinitFile", &networkedge.NetworkFileArgs{
			FileName: pulumi.String("TF-AVX-cloud-init-file.txt"),
			Content: pulumi.String(std.FileOutput(ctx, std.FileOutputArgs{
				Input: pulumi.String(filepath),
			}, nil).ApplyT(func(invoke std.FileResult) (*string, error) {
				return invoke.Result, nil
			}).(pulumi.StringPtrOutput)),
			MetroCode: sv.ApplyT(func(sv networkedge.GetAccountResult) (*string, error) {
				return &sv.MetroCode, nil
			}).(pulumi.StringPtrOutput).ApplyT(func(x *string) equinix.Metro { return equinix.Metro(*x) }).(equinix.MetroOutput),
			DeviceTypeCode: pulumi.String("AVIATRIX_EDGE"),
			ProcessType:    pulumi.String(networkedge.FileTypeCloudInit),
			SelfManaged:    pulumi.Bool(true),
			Byol:           pulumi.Bool(true),
		})
		if err != nil {
			return err
		}
		_, err = networkedge.NewDevice(ctx, "aviatrixSingle", &networkedge.DeviceArgs{
			Name: pulumi.String("tf-aviatrix"),
			MetroCode: pulumi.String(sv.ApplyT(func(sv networkedge.GetAccountResult) (*string, error) {
				return &sv.MetroCode, nil
			}).(pulumi.StringPtrOutput)),
			TypeCode:    pulumi.String("AVIATRIX_EDGE"),
			SelfManaged: pulumi.Bool(true),
			Byol:        pulumi.Bool(true),
			PackageCode: pulumi.String("STD"),
			Notifications: pulumi.StringArray{
				pulumi.String("john@equinix.com"),
			},
			TermLength: pulumi.Int(12),
			AccountNumber: pulumi.String(sv.ApplyT(func(sv networkedge.GetAccountResult) (*string, error) {
				return &sv.Number, nil
			}).(pulumi.StringPtrOutput)),
			Version:         pulumi.String("6.9"),
			CoreCount:       pulumi.Int(2),
			CloudInitFileId: aviatrixCloudinitFile.Uuid,
			AclTemplateId:   pulumi.String("c06150ea-b604-4ad1-832a-d63936e9b938"),
		})
		if err != nil {
			return err
		}
		return nil
	})
}
package generated_program;
import com.pulumi.Context;
import com.pulumi.Pulumi;
import com.pulumi.core.Output;
import com.pulumi.equinix.networkedge.NetworkedgeFunctions;
import com.pulumi.equinix.networkedge.inputs.GetAccountArgs;
import com.pulumi.equinix.networkedge.NetworkFile;
import com.pulumi.equinix.networkedge.NetworkFileArgs;
import com.pulumi.std.StdFunctions;
import com.pulumi.std.inputs.FileArgs;
import com.pulumi.equinix.networkedge.Device;
import com.pulumi.equinix.networkedge.DeviceArgs;
import java.util.List;
import java.util.ArrayList;
import java.util.Map;
import java.io.File;
import java.nio.file.Files;
import java.nio.file.Paths;
public class App {
    public static void main(String[] args) {
        Pulumi.run(App::stack);
    }
    public static void stack(Context ctx) {
        final var config = ctx.config();
        final var filepath = config.get("filepath").orElse("cloudInitFileFolder/TF-AVX-cloud-init-file.txt");
        final var sv = NetworkedgeFunctions.getAccount(GetAccountArgs.builder()
            .metroCode("SV")
            .build());
        var aviatrixCloudinitFile = new NetworkFile("aviatrixCloudinitFile", NetworkFileArgs.builder()
            .fileName("TF-AVX-cloud-init-file.txt")
            .content(StdFunctions.file(FileArgs.builder()
                .input(filepath)
                .build()).applyValue(_invoke -> _invoke.result()))
            .metroCode(sv.applyValue(_sv -> _sv.metroCode()))
            .deviceTypeCode("AVIATRIX_EDGE")
            .processType("CLOUD_INIT")
            .selfManaged(true)
            .byol(true)
            .build());
        var aviatrixSingle = new Device("aviatrixSingle", DeviceArgs.builder()
            .name("tf-aviatrix")
            .metroCode(sv.applyValue(_sv -> _sv.metroCode()))
            .typeCode("AVIATRIX_EDGE")
            .selfManaged(true)
            .byol(true)
            .packageCode("STD")
            .notifications("john@equinix.com")
            .termLength(12)
            .accountNumber(sv.applyValue(_sv -> _sv.number()))
            .version("6.9")
            .coreCount(2)
            .cloudInitFileId(aviatrixCloudinitFile.uuid())
            .aclTemplateId("c06150ea-b604-4ad1-832a-d63936e9b938")
            .build());
    }
}
import * as pulumi from "@pulumi/pulumi";
import * as equinix from "@equinix-labs/pulumi-equinix";
import * as equinix from "@pulumi/equinix";
import * as std from "@pulumi/std";
const config = new pulumi.Config();
const filepath = config.get("filepath") || "cloudInitFileFolder/TF-AVX-cloud-init-file.txt";
const sv = equinix.networkedge.getAccountOutput({
    metroCode: "SV",
});
const aviatrixCloudinitFile = new equinix.networkedge.NetworkFile("aviatrixCloudinitFile", {
    fileName: "TF-AVX-cloud-init-file.txt",
    content: std.fileOutput({
        input: filepath,
    }).apply(invoke => invoke.result),
    metroCode: sv.apply(sv => sv.metroCode).apply((x) => equinix.index.Metro[x]),
    deviceTypeCode: "AVIATRIX_EDGE",
    processType: equinix.networkedge.FileType.CloudInit,
    selfManaged: true,
    byol: true,
});
const aviatrixSingle = new equinix.networkedge.Device("aviatrixSingle", {
    name: "tf-aviatrix",
    metroCode: sv.apply(sv => sv.metroCode),
    typeCode: "AVIATRIX_EDGE",
    selfManaged: true,
    byol: true,
    packageCode: "STD",
    notifications: ["john@equinix.com"],
    termLength: 12,
    accountNumber: sv.apply(sv => sv.number),
    version: "6.9",
    coreCount: 2,
    cloudInitFileId: aviatrixCloudinitFile.uuid,
    aclTemplateId: "c06150ea-b604-4ad1-832a-d63936e9b938",
});
import pulumi
import pulumi_equinix as equinix
import pulumi_std as std
config = pulumi.Config()
filepath = config.get("filepath")
if filepath is None:
    filepath = "cloudInitFileFolder/TF-AVX-cloud-init-file.txt"
sv = equinix.networkedge.get_account_output(metro_code="SV")
aviatrix_cloudinit_file = equinix.networkedge.NetworkFile("aviatrixCloudinitFile",
    file_name="TF-AVX-cloud-init-file.txt",
    content=std.file_output(input=filepath).apply(lambda invoke: invoke.result),
    metro_code=sv.metro_code.apply(lambda x: equinix.Metro(x)),
    device_type_code="AVIATRIX_EDGE",
    process_type=equinix.networkedge.FileType.CLOUD_INIT,
    self_managed=True,
    byol=True)
aviatrix_single = equinix.networkedge.Device("aviatrixSingle",
    name="tf-aviatrix",
    metro_code=sv.metro_code,
    type_code="AVIATRIX_EDGE",
    self_managed=True,
    byol=True,
    package_code="STD",
    notifications=["john@equinix.com"],
    term_length=12,
    account_number=sv.number,
    version="6.9",
    core_count=2,
    cloud_init_file_id=aviatrix_cloudinit_file.uuid,
    acl_template_id="c06150ea-b604-4ad1-832a-d63936e9b938")
configuration:
  filepath:
    type: string
    default: cloudInitFileFolder/TF-AVX-cloud-init-file.txt
resources:
  aviatrixCloudinitFile:
    type: equinix:networkedge:NetworkFile
    name: aviatrix_cloudinit_file
    properties:
      fileName: TF-AVX-cloud-init-file.txt
      content:
        fn::invoke:
          function: std:file
          arguments:
            input: ${filepath}
          return: result
      metroCode: ${sv.metroCode}
      deviceTypeCode: AVIATRIX_EDGE
      processType: CLOUD_INIT
      selfManaged: true
      byol: true
  aviatrixSingle:
    type: equinix:networkedge:Device
    name: aviatrix_single
    properties:
      name: tf-aviatrix
      metroCode: ${sv.metroCode}
      typeCode: AVIATRIX_EDGE
      selfManaged: true
      byol: true
      packageCode: STD
      notifications:
        - john@equinix.com
      termLength: 12
      accountNumber: ${sv.number}
      version: '6.9'
      coreCount: 2
      cloudInitFileId: ${aviatrixCloudinitFile.uuid}
      aclTemplateId: c06150ea-b604-4ad1-832a-d63936e9b938
variables:
  # Create self configured single Aviatrix device with cloud init file
  sv:
    fn::invoke:
      function: equinix:networkedge:getAccount
      arguments:
        metroCode: SV
example 4
using System.Collections.Generic;
using System.Linq;
using Pulumi;
using Equinix = Pulumi.Equinix;
return await Deployment.RunAsync(() => 
{
    var sv = Equinix.NetworkEdge.GetAccount.Invoke(new()
    {
        Name = "account-name",
        MetroCode = "SV",
    });
    var c8KvSingle = new Equinix.NetworkEdge.Device("c8kvSingle", new()
    {
        Name = "tf-c8kv",
        MetroCode = sv.Apply(getAccountResult => getAccountResult.MetroCode),
        TypeCode = "C8000V",
        SelfManaged = true,
        Byol = true,
        PackageCode = "network-essentials",
        Notifications = new[]
        {
            "test@equinix.com",
        },
        Hostname = "C8KV",
        AccountNumber = sv.Apply(getAccountResult => getAccountResult.Number),
        Version = "17.06.01a",
        CoreCount = 2,
        TermLength = 12,
        LicenseToken = "valid-license-token",
        AdditionalBandwidth = 5,
        SshKey = new Equinix.NetworkEdge.Inputs.DeviceSshKeyArgs
        {
            Username = "test-username",
            KeyName = "valid-key-name",
        },
        AclTemplateId = "3e548c02-9164-4197-aa23-05b1f644883c",
    });
});
package main
import (
	"github.com/equinix/pulumi-equinix/sdk/go/equinix/networkedge"
	"github.com/pulumi/pulumi/sdk/v3/go/pulumi"
)
func main() {
	pulumi.Run(func(ctx *pulumi.Context) error {
		sv := networkedge.GetAccountOutput(ctx, networkedge.GetAccountOutputArgs{
			Name:      pulumi.String("account-name"),
			MetroCode: pulumi.String("SV"),
		}, nil)
		_, err := networkedge.NewDevice(ctx, "c8kvSingle", &networkedge.DeviceArgs{
			Name: pulumi.String("tf-c8kv"),
			MetroCode: pulumi.String(sv.ApplyT(func(sv networkedge.GetAccountResult) (*string, error) {
				return &sv.MetroCode, nil
			}).(pulumi.StringPtrOutput)),
			TypeCode:    pulumi.String("C8000V"),
			SelfManaged: pulumi.Bool(true),
			Byol:        pulumi.Bool(true),
			PackageCode: pulumi.String("network-essentials"),
			Notifications: pulumi.StringArray{
				pulumi.String("test@equinix.com"),
			},
			Hostname: pulumi.String("C8KV"),
			AccountNumber: pulumi.String(sv.ApplyT(func(sv networkedge.GetAccountResult) (*string, error) {
				return &sv.Number, nil
			}).(pulumi.StringPtrOutput)),
			Version:             pulumi.String("17.06.01a"),
			CoreCount:           pulumi.Int(2),
			TermLength:          pulumi.Int(12),
			LicenseToken:        pulumi.String("valid-license-token"),
			AdditionalBandwidth: pulumi.Int(5),
			SshKey: &networkedge.DeviceSshKeyArgs{
				Username: pulumi.String("test-username"),
				KeyName:  pulumi.String("valid-key-name"),
			},
			AclTemplateId: pulumi.String("3e548c02-9164-4197-aa23-05b1f644883c"),
		})
		if err != nil {
			return err
		}
		return nil
	})
}
package generated_program;
import com.pulumi.Context;
import com.pulumi.Pulumi;
import com.pulumi.core.Output;
import com.pulumi.equinix.networkedge.NetworkedgeFunctions;
import com.pulumi.equinix.networkedge.inputs.GetAccountArgs;
import com.pulumi.equinix.networkedge.Device;
import com.pulumi.equinix.networkedge.DeviceArgs;
import com.pulumi.equinix.networkedge.inputs.DeviceSshKeyArgs;
import java.util.List;
import java.util.ArrayList;
import java.util.Map;
import java.io.File;
import java.nio.file.Files;
import java.nio.file.Paths;
public class App {
    public static void main(String[] args) {
        Pulumi.run(App::stack);
    }
    public static void stack(Context ctx) {
        final var sv = NetworkedgeFunctions.getAccount(GetAccountArgs.builder()
            .name("account-name")
            .metroCode("SV")
            .build());
        var c8KvSingle = new Device("c8KvSingle", DeviceArgs.builder()
            .name("tf-c8kv")
            .metroCode(sv.applyValue(_sv -> _sv.metroCode()))
            .typeCode("C8000V")
            .selfManaged(true)
            .byol(true)
            .packageCode("network-essentials")
            .notifications("test@equinix.com")
            .hostname("C8KV")
            .accountNumber(sv.applyValue(_sv -> _sv.number()))
            .version("17.06.01a")
            .coreCount(2)
            .termLength(12)
            .licenseToken("valid-license-token")
            .additionalBandwidth(5)
            .sshKey(DeviceSshKeyArgs.builder()
                .username("test-username")
                .keyName("valid-key-name")
                .build())
            .aclTemplateId("3e548c02-9164-4197-aa23-05b1f644883c")
            .build());
    }
}
import * as pulumi from "@pulumi/pulumi";
import * as equinix from "@equinix-labs/pulumi-equinix";
import * as equinix from "@pulumi/equinix";
const sv = equinix.networkedge.getAccountOutput({
    name: "account-name",
    metroCode: "SV",
});
const c8KvSingle = new equinix.networkedge.Device("c8kvSingle", {
    name: "tf-c8kv",
    metroCode: sv.apply(sv => sv.metroCode),
    typeCode: "C8000V",
    selfManaged: true,
    byol: true,
    packageCode: "network-essentials",
    notifications: ["test@equinix.com"],
    hostname: "C8KV",
    accountNumber: sv.apply(sv => sv.number),
    version: "17.06.01a",
    coreCount: 2,
    termLength: 12,
    licenseToken: "valid-license-token",
    additionalBandwidth: 5,
    sshKey: {
        username: "test-username",
        keyName: "valid-key-name",
    },
    aclTemplateId: "3e548c02-9164-4197-aa23-05b1f644883c",
});
import pulumi
import pulumi_equinix as equinix
sv = equinix.networkedge.get_account_output(name="account-name",
    metro_code="SV")
c8_kv_single = equinix.networkedge.Device("c8kvSingle",
    name="tf-c8kv",
    metro_code=sv.metro_code,
    type_code="C8000V",
    self_managed=True,
    byol=True,
    package_code="network-essentials",
    notifications=["test@equinix.com"],
    hostname="C8KV",
    account_number=sv.number,
    version="17.06.01a",
    core_count=2,
    term_length=12,
    license_token="valid-license-token",
    additional_bandwidth=5,
    ssh_key={
        "username": "test-username",
        "key_name": "valid-key-name",
    },
    acl_template_id="3e548c02-9164-4197-aa23-05b1f644883c")
resources:
  c8kvSingle:
    type: equinix:networkedge:Device
    name: c8kv_single
    properties:
      name: tf-c8kv
      metroCode: ${sv.metroCode}
      typeCode: C8000V
      selfManaged: true
      byol: true
      packageCode: network-essentials
      notifications:
        - test@equinix.com
      hostname: C8KV
      accountNumber: ${sv.number}
      version: 17.06.01a
      coreCount: 2
      termLength: 12
      licenseToken: valid-license-token
      additionalBandwidth: 5
      sshKey:
        username: test-username
        keyName: valid-key-name
      aclTemplateId: 3e548c02-9164-4197-aa23-05b1f644883c
variables:
  # Create self configured single Catalyst 8000V (Autonomous Mode) router with license token
  sv:
    fn::invoke:
      function: equinix:networkedge:getAccount
      arguments:
        name: account-name
        metroCode: SV
example 5
using System.Collections.Generic;
using System.Linq;
using Pulumi;
using Equinix = Pulumi.Equinix;
return await Deployment.RunAsync(() => 
{
    var sv = Equinix.NetworkEdge.GetAccount.Invoke(new()
    {
        Name = "account-name",
        MetroCode = "SV",
    });
    var vsrxSingle = new Equinix.NetworkEdge.Device("vsrxSingle", new()
    {
        Name = "tf-c8kv-sdwan",
        MetroCode = sv.Apply(getAccountResult => getAccountResult.MetroCode),
        TypeCode = "VSRX",
        SelfManaged = true,
        Byol = true,
        PackageCode = "STD",
        Notifications = new[]
        {
            "test@equinix.com",
        },
        Hostname = "VSRX",
        AccountNumber = sv.Apply(getAccountResult => getAccountResult.Number),
        Version = "23.2R1.13",
        CoreCount = 2,
        TermLength = 12,
        AdditionalBandwidth = 5,
        ProjectId = "a86d7112-d740-4758-9c9c-31e66373746b",
        DiverseDeviceId = "ed7891bd-15b4-4f72-ac56-d96cfdacddcc",
        SshKey = new Equinix.NetworkEdge.Inputs.DeviceSshKeyArgs
        {
            Username = "test-username",
            KeyName = "valid-key-name",
        },
        AclTemplateId = "3e548c02-9164-4197-aa23-05b1f644883c",
    });
});
package main
import (
	"github.com/equinix/pulumi-equinix/sdk/go/equinix/networkedge"
	"github.com/pulumi/pulumi/sdk/v3/go/pulumi"
)
func main() {
	pulumi.Run(func(ctx *pulumi.Context) error {
		sv := networkedge.GetAccountOutput(ctx, networkedge.GetAccountOutputArgs{
			Name:      pulumi.String("account-name"),
			MetroCode: pulumi.String("SV"),
		}, nil)
		_, err := networkedge.NewDevice(ctx, "vsrxSingle", &networkedge.DeviceArgs{
			Name: pulumi.String("tf-c8kv-sdwan"),
			MetroCode: pulumi.String(sv.ApplyT(func(sv networkedge.GetAccountResult) (*string, error) {
				return &sv.MetroCode, nil
			}).(pulumi.StringPtrOutput)),
			TypeCode:    pulumi.String("VSRX"),
			SelfManaged: pulumi.Bool(true),
			Byol:        pulumi.Bool(true),
			PackageCode: pulumi.String("STD"),
			Notifications: pulumi.StringArray{
				pulumi.String("test@equinix.com"),
			},
			Hostname: pulumi.String("VSRX"),
			AccountNumber: pulumi.String(sv.ApplyT(func(sv networkedge.GetAccountResult) (*string, error) {
				return &sv.Number, nil
			}).(pulumi.StringPtrOutput)),
			Version:             pulumi.String("23.2R1.13"),
			CoreCount:           pulumi.Int(2),
			TermLength:          pulumi.Int(12),
			AdditionalBandwidth: pulumi.Int(5),
			ProjectId:           pulumi.String("a86d7112-d740-4758-9c9c-31e66373746b"),
			DiverseDeviceId:     pulumi.String("ed7891bd-15b4-4f72-ac56-d96cfdacddcc"),
			SshKey: &networkedge.DeviceSshKeyArgs{
				Username: pulumi.String("test-username"),
				KeyName:  pulumi.String("valid-key-name"),
			},
			AclTemplateId: pulumi.String("3e548c02-9164-4197-aa23-05b1f644883c"),
		})
		if err != nil {
			return err
		}
		return nil
	})
}
package generated_program;
import com.pulumi.Context;
import com.pulumi.Pulumi;
import com.pulumi.core.Output;
import com.pulumi.equinix.networkedge.NetworkedgeFunctions;
import com.pulumi.equinix.networkedge.inputs.GetAccountArgs;
import com.pulumi.equinix.networkedge.Device;
import com.pulumi.equinix.networkedge.DeviceArgs;
import com.pulumi.equinix.networkedge.inputs.DeviceSshKeyArgs;
import java.util.List;
import java.util.ArrayList;
import java.util.Map;
import java.io.File;
import java.nio.file.Files;
import java.nio.file.Paths;
public class App {
    public static void main(String[] args) {
        Pulumi.run(App::stack);
    }
    public static void stack(Context ctx) {
        final var sv = NetworkedgeFunctions.getAccount(GetAccountArgs.builder()
            .name("account-name")
            .metroCode("SV")
            .build());
        var vsrxSingle = new Device("vsrxSingle", DeviceArgs.builder()
            .name("tf-c8kv-sdwan")
            .metroCode(sv.applyValue(_sv -> _sv.metroCode()))
            .typeCode("VSRX")
            .selfManaged(true)
            .byol(true)
            .packageCode("STD")
            .notifications("test@equinix.com")
            .hostname("VSRX")
            .accountNumber(sv.applyValue(_sv -> _sv.number()))
            .version("23.2R1.13")
            .coreCount(2)
            .termLength(12)
            .additionalBandwidth(5)
            .projectId("a86d7112-d740-4758-9c9c-31e66373746b")
            .diverseDeviceId("ed7891bd-15b4-4f72-ac56-d96cfdacddcc")
            .sshKey(DeviceSshKeyArgs.builder()
                .username("test-username")
                .keyName("valid-key-name")
                .build())
            .aclTemplateId("3e548c02-9164-4197-aa23-05b1f644883c")
            .build());
    }
}
import * as pulumi from "@pulumi/pulumi";
import * as equinix from "@equinix-labs/pulumi-equinix";
import * as equinix from "@pulumi/equinix";
const sv = equinix.networkedge.getAccountOutput({
    name: "account-name",
    metroCode: "SV",
});
const vsrxSingle = new equinix.networkedge.Device("vsrxSingle", {
    name: "tf-c8kv-sdwan",
    metroCode: sv.apply(sv => sv.metroCode),
    typeCode: "VSRX",
    selfManaged: true,
    byol: true,
    packageCode: "STD",
    notifications: ["test@equinix.com"],
    hostname: "VSRX",
    accountNumber: sv.apply(sv => sv.number),
    version: "23.2R1.13",
    coreCount: 2,
    termLength: 12,
    additionalBandwidth: 5,
    projectId: "a86d7112-d740-4758-9c9c-31e66373746b",
    diverseDeviceId: "ed7891bd-15b4-4f72-ac56-d96cfdacddcc",
    sshKey: {
        username: "test-username",
        keyName: "valid-key-name",
    },
    aclTemplateId: "3e548c02-9164-4197-aa23-05b1f644883c",
});
import pulumi
import pulumi_equinix as equinix
sv = equinix.networkedge.get_account_output(name="account-name",
    metro_code="SV")
vsrx_single = equinix.networkedge.Device("vsrxSingle",
    name="tf-c8kv-sdwan",
    metro_code=sv.metro_code,
    type_code="VSRX",
    self_managed=True,
    byol=True,
    package_code="STD",
    notifications=["test@equinix.com"],
    hostname="VSRX",
    account_number=sv.number,
    version="23.2R1.13",
    core_count=2,
    term_length=12,
    additional_bandwidth=5,
    project_id="a86d7112-d740-4758-9c9c-31e66373746b",
    diverse_device_id="ed7891bd-15b4-4f72-ac56-d96cfdacddcc",
    ssh_key={
        "username": "test-username",
        "key_name": "valid-key-name",
    },
    acl_template_id="3e548c02-9164-4197-aa23-05b1f644883c")
resources:
  vsrxSingle:
    type: equinix:networkedge:Device
    name: vsrx_single
    properties:
      name: tf-c8kv-sdwan
      metroCode: ${sv.metroCode}
      typeCode: VSRX
      selfManaged: true
      byol: true
      packageCode: STD
      notifications:
        - test@equinix.com
      hostname: VSRX
      accountNumber: ${sv.number}
      version: 23.2R1.13
      coreCount: 2
      termLength: 12
      additionalBandwidth: 5
      projectId: a86d7112-d740-4758-9c9c-31e66373746b
      diverseDeviceId: ed7891bd-15b4-4f72-ac56-d96cfdacddcc
      sshKey:
        username: test-username
        keyName: valid-key-name
      aclTemplateId: 3e548c02-9164-4197-aa23-05b1f644883c
variables:
  # Create self configured single VSRX device with BYOL License
  sv:
    fn::invoke:
      function: equinix:networkedge:getAccount
      arguments:
        name: account-name
        metroCode: SV
example 6
using System.Collections.Generic;
using System.Linq;
using Pulumi;
using Equinix = Pulumi.Equinix;
return await Deployment.RunAsync(() => 
{
    var sv = Equinix.NetworkEdge.GetAccount.Invoke(new()
    {
        Name = "account-name",
        MetroCode = "SV",
    });
    var testPublicKey = new Equinix.NetworkEdge.SshKey("testPublicKey", new()
    {
        Name = "key-name",
        PublicKey = "ssh-dss key-value",
        Type = "DSA",
    });
    var aristaHa = new Equinix.NetworkEdge.Device("aristaHa", new()
    {
        Name = "tf-arista-p",
        MetroCode = sv.Apply(getAccountResult => getAccountResult.MetroCode),
        TypeCode = "ARISTA-ROUTER",
        SelfManaged = true,
        Connectivity = "PRIVATE",
        Byol = true,
        PackageCode = "CloudEOS",
        Notifications = new[]
        {
            "test@equinix.com",
        },
        Hostname = "arista-p",
        AccountNumber = sv.Apply(getAccountResult => getAccountResult.Number),
        Version = "4.29.0",
        CoreCount = 4,
        TermLength = 12,
        AdditionalBandwidth = 5,
        SshKey = new Equinix.NetworkEdge.Inputs.DeviceSshKeyArgs
        {
            Username = "test-username",
            KeyName = testPublicKey.Name,
        },
        AclTemplateId = "c637a17b-7a6a-4486-924b-30e6c36904b0",
        SecondaryDevice = new Equinix.NetworkEdge.Inputs.DeviceSecondaryDeviceArgs
        {
            Name = "tf-arista-s",
            MetroCode = sv.Apply(getAccountResult => getAccountResult.MetroCode),
            Hostname = "arista-s",
            Notifications = new[]
            {
                "test@eq.com",
            },
            AccountNumber = sv.Apply(getAccountResult => getAccountResult.Number),
            AclTemplateId = "fee5e2c0-6198-4ce6-9cbd-bbe6c1dbe138",
        },
    });
});
package main
import (
	"github.com/equinix/pulumi-equinix/sdk/go/equinix/networkedge"
	"github.com/pulumi/pulumi/sdk/v3/go/pulumi"
)
func main() {
	pulumi.Run(func(ctx *pulumi.Context) error {
		sv := networkedge.GetAccountOutput(ctx, networkedge.GetAccountOutputArgs{
			Name:      pulumi.String("account-name"),
			MetroCode: pulumi.String("SV"),
		}, nil)
		testPublicKey, err := networkedge.NewSshKey(ctx, "testPublicKey", &networkedge.SshKeyArgs{
			Name:      pulumi.String("key-name"),
			PublicKey: pulumi.String("ssh-dss key-value"),
			Type:      pulumi.String("DSA"),
		})
		if err != nil {
			return err
		}
		_, err = networkedge.NewDevice(ctx, "aristaHa", &networkedge.DeviceArgs{
			Name: pulumi.String("tf-arista-p"),
			MetroCode: pulumi.String(sv.ApplyT(func(sv networkedge.GetAccountResult) (*string, error) {
				return &sv.MetroCode, nil
			}).(pulumi.StringPtrOutput)),
			TypeCode:     pulumi.String("ARISTA-ROUTER"),
			SelfManaged:  pulumi.Bool(true),
			Connectivity: pulumi.String("PRIVATE"),
			Byol:         pulumi.Bool(true),
			PackageCode:  pulumi.String("CloudEOS"),
			Notifications: pulumi.StringArray{
				pulumi.String("test@equinix.com"),
			},
			Hostname: pulumi.String("arista-p"),
			AccountNumber: pulumi.String(sv.ApplyT(func(sv networkedge.GetAccountResult) (*string, error) {
				return &sv.Number, nil
			}).(pulumi.StringPtrOutput)),
			Version:             pulumi.String("4.29.0"),
			CoreCount:           pulumi.Int(4),
			TermLength:          pulumi.Int(12),
			AdditionalBandwidth: pulumi.Int(5),
			SshKey: &networkedge.DeviceSshKeyArgs{
				Username: pulumi.String("test-username"),
				KeyName:  testPublicKey.Name,
			},
			AclTemplateId: pulumi.String("c637a17b-7a6a-4486-924b-30e6c36904b0"),
			SecondaryDevice: &networkedge.DeviceSecondaryDeviceArgs{
				Name: pulumi.String("tf-arista-s"),
				MetroCode: sv.ApplyT(func(sv networkedge.GetAccountResult) (*string, error) {
					return &sv.MetroCode, nil
				}).(pulumi.StringPtrOutput),
				Hostname: pulumi.String("arista-s"),
				Notifications: pulumi.StringArray{
					pulumi.String("test@eq.com"),
				},
				AccountNumber: sv.ApplyT(func(sv networkedge.GetAccountResult) (*string, error) {
					return &sv.Number, nil
				}).(pulumi.StringPtrOutput),
				AclTemplateId: pulumi.String("fee5e2c0-6198-4ce6-9cbd-bbe6c1dbe138"),
			},
		})
		if err != nil {
			return err
		}
		return nil
	})
}
package generated_program;
import com.pulumi.Context;
import com.pulumi.Pulumi;
import com.pulumi.core.Output;
import com.pulumi.equinix.networkedge.NetworkedgeFunctions;
import com.pulumi.equinix.networkedge.inputs.GetAccountArgs;
import com.pulumi.equinix.networkedge.SshKey;
import com.pulumi.equinix.networkedge.SshKeyArgs;
import com.pulumi.equinix.networkedge.Device;
import com.pulumi.equinix.networkedge.DeviceArgs;
import com.pulumi.equinix.networkedge.inputs.DeviceSshKeyArgs;
import com.pulumi.equinix.networkedge.inputs.DeviceSecondaryDeviceArgs;
import java.util.List;
import java.util.ArrayList;
import java.util.Map;
import java.io.File;
import java.nio.file.Files;
import java.nio.file.Paths;
public class App {
    public static void main(String[] args) {
        Pulumi.run(App::stack);
    }
    public static void stack(Context ctx) {
        final var sv = NetworkedgeFunctions.getAccount(GetAccountArgs.builder()
            .name("account-name")
            .metroCode("SV")
            .build());
        var testPublicKey = new SshKey("testPublicKey", SshKeyArgs.builder()
            .name("key-name")
            .publicKey("ssh-dss key-value")
            .type("DSA")
            .build());
        var aristaHa = new Device("aristaHa", DeviceArgs.builder()
            .name("tf-arista-p")
            .metroCode(sv.applyValue(_sv -> _sv.metroCode()))
            .typeCode("ARISTA-ROUTER")
            .selfManaged(true)
            .connectivity("PRIVATE")
            .byol(true)
            .packageCode("CloudEOS")
            .notifications("test@equinix.com")
            .hostname("arista-p")
            .accountNumber(sv.applyValue(_sv -> _sv.number()))
            .version("4.29.0")
            .coreCount(4)
            .termLength(12)
            .additionalBandwidth(5)
            .sshKey(DeviceSshKeyArgs.builder()
                .username("test-username")
                .keyName(testPublicKey.name())
                .build())
            .aclTemplateId("c637a17b-7a6a-4486-924b-30e6c36904b0")
            .secondaryDevice(DeviceSecondaryDeviceArgs.builder()
                .name("tf-arista-s")
                .metroCode(sv.applyValue(_sv -> _sv.metroCode()))
                .hostname("arista-s")
                .notifications("test@eq.com")
                .accountNumber(sv.applyValue(_sv -> _sv.number()))
                .aclTemplateId("fee5e2c0-6198-4ce6-9cbd-bbe6c1dbe138")
                .build())
            .build());
    }
}
import * as pulumi from "@pulumi/pulumi";
import * as equinix from "@equinix-labs/pulumi-equinix";
import * as equinix from "@pulumi/equinix";
const sv = equinix.networkedge.getAccountOutput({
    name: "account-name",
    metroCode: "SV",
});
const testPublicKey = new equinix.networkedge.SshKey("testPublicKey", {
    name: "key-name",
    publicKey: "ssh-dss key-value",
    type: "DSA",
});
const aristaHa = new equinix.networkedge.Device("aristaHa", {
    name: "tf-arista-p",
    metroCode: sv.apply(sv => sv.metroCode),
    typeCode: "ARISTA-ROUTER",
    selfManaged: true,
    connectivity: "PRIVATE",
    byol: true,
    packageCode: "CloudEOS",
    notifications: ["test@equinix.com"],
    hostname: "arista-p",
    accountNumber: sv.apply(sv => sv.number),
    version: "4.29.0",
    coreCount: 4,
    termLength: 12,
    additionalBandwidth: 5,
    sshKey: {
        username: "test-username",
        keyName: testPublicKey.name,
    },
    aclTemplateId: "c637a17b-7a6a-4486-924b-30e6c36904b0",
    secondaryDevice: {
        name: "tf-arista-s",
        metroCode: sv.apply(sv => sv.metroCode),
        hostname: "arista-s",
        notifications: ["test@eq.com"],
        accountNumber: sv.apply(sv => sv.number),
        aclTemplateId: "fee5e2c0-6198-4ce6-9cbd-bbe6c1dbe138",
    },
});
import pulumi
import pulumi_equinix as equinix
sv = equinix.networkedge.get_account_output(name="account-name",
    metro_code="SV")
test_public_key = equinix.networkedge.SshKey("testPublicKey",
    name="key-name",
    public_key="ssh-dss key-value",
    type="DSA")
arista_ha = equinix.networkedge.Device("aristaHa",
    name="tf-arista-p",
    metro_code=sv.metro_code,
    type_code="ARISTA-ROUTER",
    self_managed=True,
    connectivity="PRIVATE",
    byol=True,
    package_code="CloudEOS",
    notifications=["test@equinix.com"],
    hostname="arista-p",
    account_number=sv.number,
    version="4.29.0",
    core_count=4,
    term_length=12,
    additional_bandwidth=5,
    ssh_key={
        "username": "test-username",
        "key_name": test_public_key.name,
    },
    acl_template_id="c637a17b-7a6a-4486-924b-30e6c36904b0",
    secondary_device={
        "name": "tf-arista-s",
        "metro_code": sv.metro_code,
        "hostname": "arista-s",
        "notifications": ["test@eq.com"],
        "account_number": sv.number,
        "acl_template_id": "fee5e2c0-6198-4ce6-9cbd-bbe6c1dbe138",
    })
resources:
  testPublicKey:
    type: equinix:networkedge:SshKey
    name: test_public_key
    properties:
      name: key-name
      publicKey: ssh-dss key-value
      type: DSA
  aristaHa:
    type: equinix:networkedge:Device
    name: arista_ha
    properties:
      name: tf-arista-p
      metroCode: ${sv.metroCode}
      typeCode: ARISTA-ROUTER
      selfManaged: true
      connectivity: PRIVATE
      byol: true
      packageCode: CloudEOS
      notifications:
        - test@equinix.com
      hostname: arista-p
      accountNumber: ${sv.number}
      version: 4.29.0
      coreCount: 4
      termLength: 12
      additionalBandwidth: 5
      sshKey:
        username: test-username
        keyName: ${testPublicKey.name}
      aclTemplateId: c637a17b-7a6a-4486-924b-30e6c36904b0
      secondaryDevice:
        name: tf-arista-s
        metroCode: ${sv.metroCode}
        hostname: arista-s
        notifications:
          - test@eq.com
        accountNumber: ${sv.number}
        aclTemplateId: fee5e2c0-6198-4ce6-9cbd-bbe6c1dbe138
variables:
  # Create self configured redundant Arista router with DSA key
  sv:
    fn::invoke:
      function: equinix:networkedge:getAccount
      arguments:
        name: account-name
        metroCode: SV
example 7
using System.Collections.Generic;
using System.Linq;
using Pulumi;
using Equinix = Pulumi.Equinix;
return await Deployment.RunAsync(() => 
{
    var sv = Equinix.NetworkEdge.GetAccount.Invoke(new()
    {
        Name = "account-name",
        MetroCode = "SV",
    });
    var testPublicKey = new Equinix.NetworkEdge.SshKey("testPublicKey", new()
    {
        Name = "key-name",
        PublicKey = "ssh-dss key-value",
        Type = "DSA",
    });
    var bluecatBddsHa = new Equinix.NetworkEdge.Device("bluecatBddsHa", new()
    {
        Name = "tf-bluecat-bdds-p",
        MetroCode = sv.Apply(getAccountResult => getAccountResult.MetroCode),
        TypeCode = "BLUECAT",
        SelfManaged = true,
        Connectivity = "PRIVATE",
        Byol = true,
        PackageCode = "STD",
        Notifications = new[]
        {
            "test@equinix.com",
        },
        AccountNumber = sv.Apply(getAccountResult => getAccountResult.Number),
        Version = "9.6.0",
        CoreCount = 2,
        TermLength = 12,
        VendorConfiguration = 
        {
            { "hostname", "test" },
            { "privateAddress", "x.x.x.x" },
            { "privateCidrMask", "24" },
            { "privateGateway", "x.x.x.x" },
            { "licenseKey", "xxxxx-xxxxx-xxxxx-xxxxx-xxxxx" },
            { "licenseId", "xxxxxxxxxxxxxxx" },
        },
        SshKey = new Equinix.NetworkEdge.Inputs.DeviceSshKeyArgs
        {
            Username = "test-username",
            KeyName = testPublicKey.Name,
        },
        SecondaryDevice = new Equinix.NetworkEdge.Inputs.DeviceSecondaryDeviceArgs
        {
            Name = "tf-bluecat-bdds-s",
            MetroCode = sv.Apply(getAccountResult => getAccountResult.MetroCode),
            Notifications = new[]
            {
                "test@eq.com",
            },
            AccountNumber = sv.Apply(getAccountResult => getAccountResult.Number),
            VendorConfiguration = 
            {
                { "hostname", "test" },
                { "privateAddress", "x.x.x.x" },
                { "privateCidrMask", "24" },
                { "privateGateway", "x.x.x.x" },
                { "licenseKey", "xxxxx-xxxxx-xxxxx-xxxxx-xxxxx" },
                { "licenseId", "xxxxxxxxxxxxxxx" },
            },
        },
    });
});
package main
import (
	"github.com/equinix/pulumi-equinix/sdk/go/equinix/networkedge"
	"github.com/pulumi/pulumi/sdk/v3/go/pulumi"
)
func main() {
	pulumi.Run(func(ctx *pulumi.Context) error {
		sv := networkedge.GetAccountOutput(ctx, networkedge.GetAccountOutputArgs{
			Name:      pulumi.String("account-name"),
			MetroCode: pulumi.String("SV"),
		}, nil)
		testPublicKey, err := networkedge.NewSshKey(ctx, "testPublicKey", &networkedge.SshKeyArgs{
			Name:      pulumi.String("key-name"),
			PublicKey: pulumi.String("ssh-dss key-value"),
			Type:      pulumi.String("DSA"),
		})
		if err != nil {
			return err
		}
		_, err = networkedge.NewDevice(ctx, "bluecatBddsHa", &networkedge.DeviceArgs{
			Name: pulumi.String("tf-bluecat-bdds-p"),
			MetroCode: pulumi.String(sv.ApplyT(func(sv networkedge.GetAccountResult) (*string, error) {
				return &sv.MetroCode, nil
			}).(pulumi.StringPtrOutput)),
			TypeCode:     pulumi.String("BLUECAT"),
			SelfManaged:  pulumi.Bool(true),
			Connectivity: pulumi.String("PRIVATE"),
			Byol:         pulumi.Bool(true),
			PackageCode:  pulumi.String("STD"),
			Notifications: pulumi.StringArray{
				pulumi.String("test@equinix.com"),
			},
			AccountNumber: pulumi.String(sv.ApplyT(func(sv networkedge.GetAccountResult) (*string, error) {
				return &sv.Number, nil
			}).(pulumi.StringPtrOutput)),
			Version:    pulumi.String("9.6.0"),
			CoreCount:  pulumi.Int(2),
			TermLength: pulumi.Int(12),
			VendorConfiguration: pulumi.StringMap{
				"hostname":        pulumi.String("test"),
				"privateAddress":  pulumi.String("x.x.x.x"),
				"privateCidrMask": pulumi.String("24"),
				"privateGateway":  pulumi.String("x.x.x.x"),
				"licenseKey":      pulumi.String("xxxxx-xxxxx-xxxxx-xxxxx-xxxxx"),
				"licenseId":       pulumi.String("xxxxxxxxxxxxxxx"),
			},
			SshKey: &networkedge.DeviceSshKeyArgs{
				Username: pulumi.String("test-username"),
				KeyName:  testPublicKey.Name,
			},
			SecondaryDevice: &networkedge.DeviceSecondaryDeviceArgs{
				Name: pulumi.String("tf-bluecat-bdds-s"),
				MetroCode: sv.ApplyT(func(sv networkedge.GetAccountResult) (*string, error) {
					return &sv.MetroCode, nil
				}).(pulumi.StringPtrOutput),
				Notifications: pulumi.StringArray{
					pulumi.String("test@eq.com"),
				},
				AccountNumber: sv.ApplyT(func(sv networkedge.GetAccountResult) (*string, error) {
					return &sv.Number, nil
				}).(pulumi.StringPtrOutput),
				VendorConfiguration: pulumi.StringMap{
					"hostname":        pulumi.String("test"),
					"privateAddress":  pulumi.String("x.x.x.x"),
					"privateCidrMask": pulumi.String("24"),
					"privateGateway":  pulumi.String("x.x.x.x"),
					"licenseKey":      pulumi.String("xxxxx-xxxxx-xxxxx-xxxxx-xxxxx"),
					"licenseId":       pulumi.String("xxxxxxxxxxxxxxx"),
				},
			},
		})
		if err != nil {
			return err
		}
		return nil
	})
}
package generated_program;
import com.pulumi.Context;
import com.pulumi.Pulumi;
import com.pulumi.core.Output;
import com.pulumi.equinix.networkedge.NetworkedgeFunctions;
import com.pulumi.equinix.networkedge.inputs.GetAccountArgs;
import com.pulumi.equinix.networkedge.SshKey;
import com.pulumi.equinix.networkedge.SshKeyArgs;
import com.pulumi.equinix.networkedge.Device;
import com.pulumi.equinix.networkedge.DeviceArgs;
import com.pulumi.equinix.networkedge.inputs.DeviceSshKeyArgs;
import com.pulumi.equinix.networkedge.inputs.DeviceSecondaryDeviceArgs;
import java.util.List;
import java.util.ArrayList;
import java.util.Map;
import java.io.File;
import java.nio.file.Files;
import java.nio.file.Paths;
public class App {
    public static void main(String[] args) {
        Pulumi.run(App::stack);
    }
    public static void stack(Context ctx) {
        final var sv = NetworkedgeFunctions.getAccount(GetAccountArgs.builder()
            .name("account-name")
            .metroCode("SV")
            .build());
        var testPublicKey = new SshKey("testPublicKey", SshKeyArgs.builder()
            .name("key-name")
            .publicKey("ssh-dss key-value")
            .type("DSA")
            .build());
        var bluecatBddsHa = new Device("bluecatBddsHa", DeviceArgs.builder()
            .name("tf-bluecat-bdds-p")
            .metroCode(sv.applyValue(_sv -> _sv.metroCode()))
            .typeCode("BLUECAT")
            .selfManaged(true)
            .connectivity("PRIVATE")
            .byol(true)
            .packageCode("STD")
            .notifications("test@equinix.com")
            .accountNumber(sv.applyValue(_sv -> _sv.number()))
            .version("9.6.0")
            .coreCount(2)
            .termLength(12)
            .vendorConfiguration(Map.ofEntries(
                Map.entry("hostname", "test"),
                Map.entry("privateAddress", "x.x.x.x"),
                Map.entry("privateCidrMask", "24"),
                Map.entry("privateGateway", "x.x.x.x"),
                Map.entry("licenseKey", "xxxxx-xxxxx-xxxxx-xxxxx-xxxxx"),
                Map.entry("licenseId", "xxxxxxxxxxxxxxx")
            ))
            .sshKey(DeviceSshKeyArgs.builder()
                .username("test-username")
                .keyName(testPublicKey.name())
                .build())
            .secondaryDevice(DeviceSecondaryDeviceArgs.builder()
                .name("tf-bluecat-bdds-s")
                .metroCode(sv.applyValue(_sv -> _sv.metroCode()))
                .notifications("test@eq.com")
                .accountNumber(sv.applyValue(_sv -> _sv.number()))
                .vendorConfiguration(Map.ofEntries(
                    Map.entry("hostname", "test"),
                    Map.entry("privateAddress", "x.x.x.x"),
                    Map.entry("privateCidrMask", "24"),
                    Map.entry("privateGateway", "x.x.x.x"),
                    Map.entry("licenseKey", "xxxxx-xxxxx-xxxxx-xxxxx-xxxxx"),
                    Map.entry("licenseId", "xxxxxxxxxxxxxxx")
                ))
                .build())
            .build());
    }
}
import * as pulumi from "@pulumi/pulumi";
import * as equinix from "@equinix-labs/pulumi-equinix";
import * as equinix from "@pulumi/equinix";
const sv = equinix.networkedge.getAccountOutput({
    name: "account-name",
    metroCode: "SV",
});
const testPublicKey = new equinix.networkedge.SshKey("testPublicKey", {
    name: "key-name",
    publicKey: "ssh-dss key-value",
    type: "DSA",
});
const bluecatBddsHa = new equinix.networkedge.Device("bluecatBddsHa", {
    name: "tf-bluecat-bdds-p",
    metroCode: sv.apply(sv => sv.metroCode),
    typeCode: "BLUECAT",
    selfManaged: true,
    connectivity: "PRIVATE",
    byol: true,
    packageCode: "STD",
    notifications: ["test@equinix.com"],
    accountNumber: sv.apply(sv => sv.number),
    version: "9.6.0",
    coreCount: 2,
    termLength: 12,
    vendorConfiguration: {
        hostname: "test",
        privateAddress: "x.x.x.x",
        privateCidrMask: "24",
        privateGateway: "x.x.x.x",
        licenseKey: "xxxxx-xxxxx-xxxxx-xxxxx-xxxxx",
        licenseId: "xxxxxxxxxxxxxxx",
    },
    sshKey: {
        username: "test-username",
        keyName: testPublicKey.name,
    },
    secondaryDevice: {
        name: "tf-bluecat-bdds-s",
        metroCode: sv.apply(sv => sv.metroCode),
        notifications: ["test@eq.com"],
        accountNumber: sv.apply(sv => sv.number),
        vendorConfiguration: {
            hostname: "test",
            privateAddress: "x.x.x.x",
            privateCidrMask: "24",
            privateGateway: "x.x.x.x",
            licenseKey: "xxxxx-xxxxx-xxxxx-xxxxx-xxxxx",
            licenseId: "xxxxxxxxxxxxxxx",
        },
    },
});
import pulumi
import pulumi_equinix as equinix
sv = equinix.networkedge.get_account_output(name="account-name",
    metro_code="SV")
test_public_key = equinix.networkedge.SshKey("testPublicKey",
    name="key-name",
    public_key="ssh-dss key-value",
    type="DSA")
bluecat_bdds_ha = equinix.networkedge.Device("bluecatBddsHa",
    name="tf-bluecat-bdds-p",
    metro_code=sv.metro_code,
    type_code="BLUECAT",
    self_managed=True,
    connectivity="PRIVATE",
    byol=True,
    package_code="STD",
    notifications=["test@equinix.com"],
    account_number=sv.number,
    version="9.6.0",
    core_count=2,
    term_length=12,
    vendor_configuration={
        "hostname": "test",
        "privateAddress": "x.x.x.x",
        "privateCidrMask": "24",
        "privateGateway": "x.x.x.x",
        "licenseKey": "xxxxx-xxxxx-xxxxx-xxxxx-xxxxx",
        "licenseId": "xxxxxxxxxxxxxxx",
    },
    ssh_key={
        "username": "test-username",
        "key_name": test_public_key.name,
    },
    secondary_device={
        "name": "tf-bluecat-bdds-s",
        "metro_code": sv.metro_code,
        "notifications": ["test@eq.com"],
        "account_number": sv.number,
        "vendor_configuration": {
            "hostname": "test",
            "privateAddress": "x.x.x.x",
            "privateCidrMask": "24",
            "privateGateway": "x.x.x.x",
            "licenseKey": "xxxxx-xxxxx-xxxxx-xxxxx-xxxxx",
            "licenseId": "xxxxxxxxxxxxxxx",
        },
    })
resources:
  testPublicKey:
    type: equinix:networkedge:SshKey
    name: test_public_key
    properties:
      name: key-name
      publicKey: ssh-dss key-value
      type: DSA
  bluecatBddsHa:
    type: equinix:networkedge:Device
    name: bluecat_bdds_ha
    properties:
      name: tf-bluecat-bdds-p
      metroCode: ${sv.metroCode}
      typeCode: BLUECAT
      selfManaged: true
      connectivity: PRIVATE
      byol: true
      packageCode: STD
      notifications:
        - test@equinix.com
      accountNumber: ${sv.number}
      version: 9.6.0
      coreCount: 2
      termLength: 12
      vendorConfiguration:
        hostname: test
        privateAddress: x.x.x.x
        privateCidrMask: '24'
        privateGateway: x.x.x.x
        licenseKey: xxxxx-xxxxx-xxxxx-xxxxx-xxxxx
        licenseId: xxxxxxxxxxxxxxx
      sshKey:
        username: test-username
        keyName: ${testPublicKey.name}
      secondaryDevice:
        name: tf-bluecat-bdds-s
        metroCode: ${sv.metroCode}
        notifications:
          - test@eq.com
        accountNumber: ${sv.number}
        vendorConfiguration:
          hostname: test
          privateAddress: x.x.x.x
          privateCidrMask: '24'
          privateGateway: x.x.x.x
          licenseKey: xxxxx-xxxxx-xxxxx-xxxxx-xxxxx
          licenseId: xxxxxxxxxxxxxxx
variables:
  # Create self configured redundant BlueCat DNS and DHCP Server
  sv:
    fn::invoke:
      function: equinix:networkedge:getAccount
      arguments:
        name: account-name
        metroCode: SV
example 8
using System.Collections.Generic;
using System.Linq;
using Pulumi;
using Equinix = Pulumi.Equinix;
using Std = Pulumi.Std;
return await Deployment.RunAsync(() => 
{
    var sv = Equinix.NetworkEdge.GetAccount.Invoke(new()
    {
        Name = "account-name",
        MetroCode = "SV",
    });
    var bluecatEdgeServicePointCloudinitPrimaryFile = new Equinix.NetworkEdge.NetworkFile("bluecatEdgeServicePointCloudinitPrimaryFile", new()
    {
        FileName = "TF-BLUECAT-ESP-cloud-init-file.txt",
        Content = Std.File.Invoke(new()
        {
            Input = filepath,
        }).Apply(invoke => invoke.Result),
        MetroCode = sv.Apply(getAccountResult => getAccountResult.MetroCode).Apply(System.Enum.Parse<Equinix.Metro>),
        DeviceTypeCode = "BLUECAT-EDGE-SERVICE-POINT",
        ProcessType = Equinix.NetworkEdge.FileType.CloudInit,
        SelfManaged = true,
        Byol = true,
    });
    var bluecatEdgeServicePointCloudinitSecondaryFile = new Equinix.NetworkEdge.NetworkFile("bluecatEdgeServicePointCloudinitSecondaryFile", new()
    {
        FileName = "TF-BLUECAT-ESP-cloud-init-file.txt",
        Content = Std.File.Invoke(new()
        {
            Input = filepath,
        }).Apply(invoke => invoke.Result),
        MetroCode = sv.Apply(getAccountResult => getAccountResult.MetroCode).Apply(System.Enum.Parse<Equinix.Metro>),
        DeviceTypeCode = "BLUECAT-EDGE-SERVICE-POINT",
        ProcessType = Equinix.NetworkEdge.FileType.CloudInit,
        SelfManaged = true,
        Byol = true,
    });
    var bluecatEdgeServicePointHa = new Equinix.NetworkEdge.Device("bluecatEdgeServicePointHa", new()
    {
        Name = "tf-bluecat-edge-service-point-p",
        MetroCode = sv.Apply(getAccountResult => getAccountResult.MetroCode),
        TypeCode = "BLUECAT-EDGE-SERVICE-POINT",
        SelfManaged = true,
        Connectivity = "PRIVATE",
        Byol = true,
        PackageCode = "STD",
        Notifications = new[]
        {
            "test@equinix.com",
        },
        AccountNumber = sv.Apply(getAccountResult => getAccountResult.Number),
        CloudInitFileId = bluecatEdgeServicePointCloudinitPrimaryFile.Uuid,
        Version = "4.6.3",
        CoreCount = 4,
        TermLength = 12,
        SecondaryDevice = new Equinix.NetworkEdge.Inputs.DeviceSecondaryDeviceArgs
        {
            Name = "tf-bluecat-edge-service-point-s",
            MetroCode = sv.Apply(getAccountResult => getAccountResult.MetroCode),
            Notifications = new[]
            {
                "test@eq.com",
            },
            AccountNumber = sv.Apply(getAccountResult => getAccountResult.Number),
            CloudInitFileId = bluecatEdgeServicePointCloudinitSecondaryFile.Uuid,
        },
    });
});
package main
import (
	"github.com/equinix/pulumi-equinix/sdk/go/equinix"
	"github.com/equinix/pulumi-equinix/sdk/go/equinix/networkedge"
	"github.com/pulumi/pulumi-std/sdk/go/std"
	"github.com/pulumi/pulumi/sdk/v3/go/pulumi"
)
func main() {
	pulumi.Run(func(ctx *pulumi.Context) error {
		sv := networkedge.GetAccountOutput(ctx, networkedge.GetAccountOutputArgs{
			Name:      pulumi.String("account-name"),
			MetroCode: pulumi.String("SV"),
		}, nil)
		bluecatEdgeServicePointCloudinitPrimaryFile, err := networkedge.NewNetworkFile(ctx, "bluecatEdgeServicePointCloudinitPrimaryFile", &networkedge.NetworkFileArgs{
			FileName: pulumi.String("TF-BLUECAT-ESP-cloud-init-file.txt"),
			Content: pulumi.String(std.FileOutput(ctx, std.FileOutputArgs{
				Input: pulumi.Any(filepath),
			}, nil).ApplyT(func(invoke std.FileResult) (*string, error) {
				return invoke.Result, nil
			}).(pulumi.StringPtrOutput)),
			MetroCode: sv.ApplyT(func(sv networkedge.GetAccountResult) (*string, error) {
				return &sv.MetroCode, nil
			}).(pulumi.StringPtrOutput).ApplyT(func(x *string) equinix.Metro { return equinix.Metro(*x) }).(equinix.MetroOutput),
			DeviceTypeCode: pulumi.String("BLUECAT-EDGE-SERVICE-POINT"),
			ProcessType:    pulumi.String(networkedge.FileTypeCloudInit),
			SelfManaged:    pulumi.Bool(true),
			Byol:           pulumi.Bool(true),
		})
		if err != nil {
			return err
		}
		bluecatEdgeServicePointCloudinitSecondaryFile, err := networkedge.NewNetworkFile(ctx, "bluecatEdgeServicePointCloudinitSecondaryFile", &networkedge.NetworkFileArgs{
			FileName: pulumi.String("TF-BLUECAT-ESP-cloud-init-file.txt"),
			Content: pulumi.String(std.FileOutput(ctx, std.FileOutputArgs{
				Input: pulumi.Any(filepath),
			}, nil).ApplyT(func(invoke std.FileResult) (*string, error) {
				return invoke.Result, nil
			}).(pulumi.StringPtrOutput)),
			MetroCode: sv.ApplyT(func(sv networkedge.GetAccountResult) (*string, error) {
				return &sv.MetroCode, nil
			}).(pulumi.StringPtrOutput).ApplyT(func(x *string) equinix.Metro { return equinix.Metro(*x) }).(equinix.MetroOutput),
			DeviceTypeCode: pulumi.String("BLUECAT-EDGE-SERVICE-POINT"),
			ProcessType:    pulumi.String(networkedge.FileTypeCloudInit),
			SelfManaged:    pulumi.Bool(true),
			Byol:           pulumi.Bool(true),
		})
		if err != nil {
			return err
		}
		_, err = networkedge.NewDevice(ctx, "bluecatEdgeServicePointHa", &networkedge.DeviceArgs{
			Name: pulumi.String("tf-bluecat-edge-service-point-p"),
			MetroCode: pulumi.String(sv.ApplyT(func(sv networkedge.GetAccountResult) (*string, error) {
				return &sv.MetroCode, nil
			}).(pulumi.StringPtrOutput)),
			TypeCode:     pulumi.String("BLUECAT-EDGE-SERVICE-POINT"),
			SelfManaged:  pulumi.Bool(true),
			Connectivity: pulumi.String("PRIVATE"),
			Byol:         pulumi.Bool(true),
			PackageCode:  pulumi.String("STD"),
			Notifications: pulumi.StringArray{
				pulumi.String("test@equinix.com"),
			},
			AccountNumber: pulumi.String(sv.ApplyT(func(sv networkedge.GetAccountResult) (*string, error) {
				return &sv.Number, nil
			}).(pulumi.StringPtrOutput)),
			CloudInitFileId: bluecatEdgeServicePointCloudinitPrimaryFile.Uuid,
			Version:         pulumi.String("4.6.3"),
			CoreCount:       pulumi.Int(4),
			TermLength:      pulumi.Int(12),
			SecondaryDevice: &networkedge.DeviceSecondaryDeviceArgs{
				Name: pulumi.String("tf-bluecat-edge-service-point-s"),
				MetroCode: sv.ApplyT(func(sv networkedge.GetAccountResult) (*string, error) {
					return &sv.MetroCode, nil
				}).(pulumi.StringPtrOutput),
				Notifications: pulumi.StringArray{
					pulumi.String("test@eq.com"),
				},
				AccountNumber: sv.ApplyT(func(sv networkedge.GetAccountResult) (*string, error) {
					return &sv.Number, nil
				}).(pulumi.StringPtrOutput),
				CloudInitFileId: bluecatEdgeServicePointCloudinitSecondaryFile.Uuid,
			},
		})
		if err != nil {
			return err
		}
		return nil
	})
}
package generated_program;
import com.pulumi.Context;
import com.pulumi.Pulumi;
import com.pulumi.core.Output;
import com.pulumi.equinix.networkedge.NetworkedgeFunctions;
import com.pulumi.equinix.networkedge.inputs.GetAccountArgs;
import com.pulumi.equinix.networkedge.NetworkFile;
import com.pulumi.equinix.networkedge.NetworkFileArgs;
import com.pulumi.std.StdFunctions;
import com.pulumi.std.inputs.FileArgs;
import com.pulumi.equinix.networkedge.Device;
import com.pulumi.equinix.networkedge.DeviceArgs;
import com.pulumi.equinix.networkedge.inputs.DeviceSecondaryDeviceArgs;
import java.util.List;
import java.util.ArrayList;
import java.util.Map;
import java.io.File;
import java.nio.file.Files;
import java.nio.file.Paths;
public class App {
    public static void main(String[] args) {
        Pulumi.run(App::stack);
    }
    public static void stack(Context ctx) {
        final var sv = NetworkedgeFunctions.getAccount(GetAccountArgs.builder()
            .name("account-name")
            .metroCode("SV")
            .build());
        var bluecatEdgeServicePointCloudinitPrimaryFile = new NetworkFile("bluecatEdgeServicePointCloudinitPrimaryFile", NetworkFileArgs.builder()
            .fileName("TF-BLUECAT-ESP-cloud-init-file.txt")
            .content(StdFunctions.file(FileArgs.builder()
                .input(filepath)
                .build()).applyValue(_invoke -> _invoke.result()))
            .metroCode(sv.applyValue(_sv -> _sv.metroCode()))
            .deviceTypeCode("BLUECAT-EDGE-SERVICE-POINT")
            .processType("CLOUD_INIT")
            .selfManaged(true)
            .byol(true)
            .build());
        var bluecatEdgeServicePointCloudinitSecondaryFile = new NetworkFile("bluecatEdgeServicePointCloudinitSecondaryFile", NetworkFileArgs.builder()
            .fileName("TF-BLUECAT-ESP-cloud-init-file.txt")
            .content(StdFunctions.file(FileArgs.builder()
                .input(filepath)
                .build()).applyValue(_invoke -> _invoke.result()))
            .metroCode(sv.applyValue(_sv -> _sv.metroCode()))
            .deviceTypeCode("BLUECAT-EDGE-SERVICE-POINT")
            .processType("CLOUD_INIT")
            .selfManaged(true)
            .byol(true)
            .build());
        var bluecatEdgeServicePointHa = new Device("bluecatEdgeServicePointHa", DeviceArgs.builder()
            .name("tf-bluecat-edge-service-point-p")
            .metroCode(sv.applyValue(_sv -> _sv.metroCode()))
            .typeCode("BLUECAT-EDGE-SERVICE-POINT")
            .selfManaged(true)
            .connectivity("PRIVATE")
            .byol(true)
            .packageCode("STD")
            .notifications("test@equinix.com")
            .accountNumber(sv.applyValue(_sv -> _sv.number()))
            .cloudInitFileId(bluecatEdgeServicePointCloudinitPrimaryFile.uuid())
            .version("4.6.3")
            .coreCount(4)
            .termLength(12)
            .secondaryDevice(DeviceSecondaryDeviceArgs.builder()
                .name("tf-bluecat-edge-service-point-s")
                .metroCode(sv.applyValue(_sv -> _sv.metroCode()))
                .notifications("test@eq.com")
                .accountNumber(sv.applyValue(_sv -> _sv.number()))
                .cloudInitFileId(bluecatEdgeServicePointCloudinitSecondaryFile.uuid())
                .build())
            .build());
    }
}
import * as pulumi from "@pulumi/pulumi";
import * as equinix from "@equinix-labs/pulumi-equinix";
import * as equinix from "@pulumi/equinix";
import * as std from "@pulumi/std";
const sv = equinix.networkedge.getAccountOutput({
    name: "account-name",
    metroCode: "SV",
});
const bluecatEdgeServicePointCloudinitPrimaryFile = new equinix.networkedge.NetworkFile("bluecatEdgeServicePointCloudinitPrimaryFile", {
    fileName: "TF-BLUECAT-ESP-cloud-init-file.txt",
    content: std.fileOutput({
        input: filepath,
    }).apply(invoke => invoke.result),
    metroCode: sv.apply(sv => sv.metroCode).apply((x) => equinix.index.Metro[x]),
    deviceTypeCode: "BLUECAT-EDGE-SERVICE-POINT",
    processType: equinix.networkedge.FileType.CloudInit,
    selfManaged: true,
    byol: true,
});
const bluecatEdgeServicePointCloudinitSecondaryFile = new equinix.networkedge.NetworkFile("bluecatEdgeServicePointCloudinitSecondaryFile", {
    fileName: "TF-BLUECAT-ESP-cloud-init-file.txt",
    content: std.fileOutput({
        input: filepath,
    }).apply(invoke => invoke.result),
    metroCode: sv.apply(sv => sv.metroCode).apply((x) => equinix.index.Metro[x]),
    deviceTypeCode: "BLUECAT-EDGE-SERVICE-POINT",
    processType: equinix.networkedge.FileType.CloudInit,
    selfManaged: true,
    byol: true,
});
const bluecatEdgeServicePointHa = new equinix.networkedge.Device("bluecatEdgeServicePointHa", {
    name: "tf-bluecat-edge-service-point-p",
    metroCode: sv.apply(sv => sv.metroCode),
    typeCode: "BLUECAT-EDGE-SERVICE-POINT",
    selfManaged: true,
    connectivity: "PRIVATE",
    byol: true,
    packageCode: "STD",
    notifications: ["test@equinix.com"],
    accountNumber: sv.apply(sv => sv.number),
    cloudInitFileId: bluecatEdgeServicePointCloudinitPrimaryFile.uuid,
    version: "4.6.3",
    coreCount: 4,
    termLength: 12,
    secondaryDevice: {
        name: "tf-bluecat-edge-service-point-s",
        metroCode: sv.apply(sv => sv.metroCode),
        notifications: ["test@eq.com"],
        accountNumber: sv.apply(sv => sv.number),
        cloudInitFileId: bluecatEdgeServicePointCloudinitSecondaryFile.uuid,
    },
});
import pulumi
import pulumi_equinix as equinix
import pulumi_std as std
sv = equinix.networkedge.get_account_output(name="account-name",
    metro_code="SV")
bluecat_edge_service_point_cloudinit_primary_file = equinix.networkedge.NetworkFile("bluecatEdgeServicePointCloudinitPrimaryFile",
    file_name="TF-BLUECAT-ESP-cloud-init-file.txt",
    content=std.file_output(input=filepath).apply(lambda invoke: invoke.result),
    metro_code=sv.metro_code.apply(lambda x: equinix.Metro(x)),
    device_type_code="BLUECAT-EDGE-SERVICE-POINT",
    process_type=equinix.networkedge.FileType.CLOUD_INIT,
    self_managed=True,
    byol=True)
bluecat_edge_service_point_cloudinit_secondary_file = equinix.networkedge.NetworkFile("bluecatEdgeServicePointCloudinitSecondaryFile",
    file_name="TF-BLUECAT-ESP-cloud-init-file.txt",
    content=std.file_output(input=filepath).apply(lambda invoke: invoke.result),
    metro_code=sv.metro_code.apply(lambda x: equinix.Metro(x)),
    device_type_code="BLUECAT-EDGE-SERVICE-POINT",
    process_type=equinix.networkedge.FileType.CLOUD_INIT,
    self_managed=True,
    byol=True)
bluecat_edge_service_point_ha = equinix.networkedge.Device("bluecatEdgeServicePointHa",
    name="tf-bluecat-edge-service-point-p",
    metro_code=sv.metro_code,
    type_code="BLUECAT-EDGE-SERVICE-POINT",
    self_managed=True,
    connectivity="PRIVATE",
    byol=True,
    package_code="STD",
    notifications=["test@equinix.com"],
    account_number=sv.number,
    cloud_init_file_id=bluecat_edge_service_point_cloudinit_primary_file.uuid,
    version="4.6.3",
    core_count=4,
    term_length=12,
    secondary_device={
        "name": "tf-bluecat-edge-service-point-s",
        "metro_code": sv.metro_code,
        "notifications": ["test@eq.com"],
        "account_number": sv.number,
        "cloud_init_file_id": bluecat_edge_service_point_cloudinit_secondary_file.uuid,
    })
resources:
  bluecatEdgeServicePointCloudinitPrimaryFile:
    type: equinix:networkedge:NetworkFile
    name: bluecat_edge_service_point_cloudinit_primary_file
    properties:
      fileName: TF-BLUECAT-ESP-cloud-init-file.txt
      content:
        fn::invoke:
          function: std:file
          arguments:
            input: ${filepath}
          return: result
      metroCode: ${sv.metroCode}
      deviceTypeCode: BLUECAT-EDGE-SERVICE-POINT
      processType: CLOUD_INIT
      selfManaged: true
      byol: true
  bluecatEdgeServicePointCloudinitSecondaryFile:
    type: equinix:networkedge:NetworkFile
    name: bluecat_edge_service_point_cloudinit_secondary_file
    properties:
      fileName: TF-BLUECAT-ESP-cloud-init-file.txt
      content:
        fn::invoke:
          function: std:file
          arguments:
            input: ${filepath}
          return: result
      metroCode: ${sv.metroCode}
      deviceTypeCode: BLUECAT-EDGE-SERVICE-POINT
      processType: CLOUD_INIT
      selfManaged: true
      byol: true
  bluecatEdgeServicePointHa:
    type: equinix:networkedge:Device
    name: bluecat_edge_service_point_ha
    properties:
      name: tf-bluecat-edge-service-point-p
      metroCode: ${sv.metroCode}
      typeCode: BLUECAT-EDGE-SERVICE-POINT
      selfManaged: true
      connectivity: PRIVATE
      byol: true
      packageCode: STD
      notifications:
        - test@equinix.com
      accountNumber: ${sv.number}
      cloudInitFileId: ${bluecatEdgeServicePointCloudinitPrimaryFile.uuid}
      version: 4.6.3
      coreCount: 4
      termLength: 12
      secondaryDevice:
        name: tf-bluecat-edge-service-point-s
        metroCode: ${sv.metroCode}
        notifications:
          - test@eq.com
        accountNumber: ${sv.number}
        cloudInitFileId: ${bluecatEdgeServicePointCloudinitSecondaryFile.uuid}
variables:
  # Create self configured redundant BlueCat Edge Service Point
  sv:
    fn::invoke:
      function: equinix:networkedge:getAccount
      arguments:
        name: account-name
        metroCode: SV
example 9
using System.Collections.Generic;
using System.Linq;
using Pulumi;
using Equinix = Pulumi.Equinix;
return await Deployment.RunAsync(() => 
{
    var sv = Equinix.NetworkEdge.GetAccount.Invoke(new()
    {
        MetroCode = "SV",
    });
    var panwCluster = new Equinix.NetworkEdge.Device("panwCluster", new()
    {
        Name = "tf-panw",
        MetroCode = sv.Apply(getAccountResult => getAccountResult.MetroCode),
        TypeCode = "PA-VM",
        SelfManaged = true,
        Byol = true,
        PackageCode = "VM100",
        Notifications = new[]
        {
            "john@equinix.com",
            "marry@equinix.com",
            "fred@equinix.com",
        },
        TermLength = 12,
        AccountNumber = sv.Apply(getAccountResult => getAccountResult.Number),
        Version = "11.1.3",
        InterfaceCount = 10,
        CoreCount = 2,
        SshKey = new Equinix.NetworkEdge.Inputs.DeviceSshKeyArgs
        {
            Username = "test",
            KeyName = "test-key",
        },
        AclTemplateId = "0bff6e05-f0e7-44cd-804a-25b92b835f8b",
        ClusterDetails = new Equinix.NetworkEdge.Inputs.DeviceClusterDetailsArgs
        {
            ClusterName = "tf-panw-cluster",
            Node0 = new Equinix.NetworkEdge.Inputs.DeviceClusterDetailsNode0Args
            {
                VendorConfiguration = new Equinix.NetworkEdge.Inputs.DeviceClusterDetailsNode0VendorConfigurationArgs
                {
                    Hostname = "panw-node0",
                    PanoramaIpAddress = "x.x.x.x",
                    PanoramaAuthKey = "xxxxxxxxxxx",
                },
                LicenseToken = "licenseToken",
            },
            Node1 = new Equinix.NetworkEdge.Inputs.DeviceClusterDetailsNode1Args
            {
                VendorConfiguration = new Equinix.NetworkEdge.Inputs.DeviceClusterDetailsNode1VendorConfigurationArgs
                {
                    Hostname = "panw-node1",
                    PanoramaIpAddress = "x.x.x.x",
                    PanoramaAuthKey = "xxxxxxxxxxx",
                },
                LicenseToken = "licenseToken",
            },
        },
    });
});
package main
import (
	"github.com/equinix/pulumi-equinix/sdk/go/equinix/networkedge"
	"github.com/pulumi/pulumi/sdk/v3/go/pulumi"
)
func main() {
	pulumi.Run(func(ctx *pulumi.Context) error {
		sv := networkedge.GetAccountOutput(ctx, networkedge.GetAccountOutputArgs{
			MetroCode: pulumi.String("SV"),
		}, nil)
		_, err := networkedge.NewDevice(ctx, "panwCluster", &networkedge.DeviceArgs{
			Name: pulumi.String("tf-panw"),
			MetroCode: pulumi.String(sv.ApplyT(func(sv networkedge.GetAccountResult) (*string, error) {
				return &sv.MetroCode, nil
			}).(pulumi.StringPtrOutput)),
			TypeCode:    pulumi.String("PA-VM"),
			SelfManaged: pulumi.Bool(true),
			Byol:        pulumi.Bool(true),
			PackageCode: pulumi.String("VM100"),
			Notifications: pulumi.StringArray{
				pulumi.String("john@equinix.com"),
				pulumi.String("marry@equinix.com"),
				pulumi.String("fred@equinix.com"),
			},
			TermLength: pulumi.Int(12),
			AccountNumber: pulumi.String(sv.ApplyT(func(sv networkedge.GetAccountResult) (*string, error) {
				return &sv.Number, nil
			}).(pulumi.StringPtrOutput)),
			Version:        pulumi.String("11.1.3"),
			InterfaceCount: pulumi.Int(10),
			CoreCount:      pulumi.Int(2),
			SshKey: &networkedge.DeviceSshKeyArgs{
				Username: pulumi.String("test"),
				KeyName:  pulumi.String("test-key"),
			},
			AclTemplateId: pulumi.String("0bff6e05-f0e7-44cd-804a-25b92b835f8b"),
			ClusterDetails: &networkedge.DeviceClusterDetailsArgs{
				ClusterName: pulumi.String("tf-panw-cluster"),
				Node0: &networkedge.DeviceClusterDetailsNode0Args{
					VendorConfiguration: &networkedge.DeviceClusterDetailsNode0VendorConfigurationArgs{
						Hostname:          pulumi.String("panw-node0"),
						PanoramaIpAddress: pulumi.String("x.x.x.x"),
						PanoramaAuthKey:   pulumi.String("xxxxxxxxxxx"),
					},
					LicenseToken: pulumi.String("licenseToken"),
				},
				Node1: &networkedge.DeviceClusterDetailsNode1Args{
					VendorConfiguration: &networkedge.DeviceClusterDetailsNode1VendorConfigurationArgs{
						Hostname:          pulumi.String("panw-node1"),
						PanoramaIpAddress: pulumi.String("x.x.x.x"),
						PanoramaAuthKey:   pulumi.String("xxxxxxxxxxx"),
					},
					LicenseToken: pulumi.String("licenseToken"),
				},
			},
		})
		if err != nil {
			return err
		}
		return nil
	})
}
package generated_program;
import com.pulumi.Context;
import com.pulumi.Pulumi;
import com.pulumi.core.Output;
import com.pulumi.equinix.networkedge.NetworkedgeFunctions;
import com.pulumi.equinix.networkedge.inputs.GetAccountArgs;
import com.pulumi.equinix.networkedge.Device;
import com.pulumi.equinix.networkedge.DeviceArgs;
import com.pulumi.equinix.networkedge.inputs.DeviceSshKeyArgs;
import com.pulumi.equinix.networkedge.inputs.DeviceClusterDetailsArgs;
import com.pulumi.equinix.networkedge.inputs.DeviceClusterDetailsNode0Args;
import com.pulumi.equinix.networkedge.inputs.DeviceClusterDetailsNode0VendorConfigurationArgs;
import com.pulumi.equinix.networkedge.inputs.DeviceClusterDetailsNode1Args;
import com.pulumi.equinix.networkedge.inputs.DeviceClusterDetailsNode1VendorConfigurationArgs;
import java.util.List;
import java.util.ArrayList;
import java.util.Map;
import java.io.File;
import java.nio.file.Files;
import java.nio.file.Paths;
public class App {
    public static void main(String[] args) {
        Pulumi.run(App::stack);
    }
    public static void stack(Context ctx) {
        final var sv = NetworkedgeFunctions.getAccount(GetAccountArgs.builder()
            .metroCode("SV")
            .build());
        var panwCluster = new Device("panwCluster", DeviceArgs.builder()
            .name("tf-panw")
            .metroCode(sv.applyValue(_sv -> _sv.metroCode()))
            .typeCode("PA-VM")
            .selfManaged(true)
            .byol(true)
            .packageCode("VM100")
            .notifications(            
                "john@equinix.com",
                "marry@equinix.com",
                "fred@equinix.com")
            .termLength(12)
            .accountNumber(sv.applyValue(_sv -> _sv.number()))
            .version("11.1.3")
            .interfaceCount(10)
            .coreCount(2)
            .sshKey(DeviceSshKeyArgs.builder()
                .username("test")
                .keyName("test-key")
                .build())
            .aclTemplateId("0bff6e05-f0e7-44cd-804a-25b92b835f8b")
            .clusterDetails(DeviceClusterDetailsArgs.builder()
                .clusterName("tf-panw-cluster")
                .node0(DeviceClusterDetailsNode0Args.builder()
                    .vendorConfiguration(DeviceClusterDetailsNode0VendorConfigurationArgs.builder()
                        .hostname("panw-node0")
                        .panoramaIpAddress("x.x.x.x")
                        .panoramaAuthKey("xxxxxxxxxxx")
                        .build())
                    .licenseToken("licenseToken")
                    .build())
                .node1(DeviceClusterDetailsNode1Args.builder()
                    .vendorConfiguration(DeviceClusterDetailsNode1VendorConfigurationArgs.builder()
                        .hostname("panw-node1")
                        .panoramaIpAddress("x.x.x.x")
                        .panoramaAuthKey("xxxxxxxxxxx")
                        .build())
                    .licenseToken("licenseToken")
                    .build())
                .build())
            .build());
    }
}
import * as pulumi from "@pulumi/pulumi";
import * as equinix from "@equinix-labs/pulumi-equinix";
import * as equinix from "@pulumi/equinix";
const sv = equinix.networkedge.getAccountOutput({
    metroCode: "SV",
});
const panwCluster = new equinix.networkedge.Device("panwCluster", {
    name: "tf-panw",
    metroCode: sv.apply(sv => sv.metroCode),
    typeCode: "PA-VM",
    selfManaged: true,
    byol: true,
    packageCode: "VM100",
    notifications: [
        "john@equinix.com",
        "marry@equinix.com",
        "fred@equinix.com",
    ],
    termLength: 12,
    accountNumber: sv.apply(sv => sv.number),
    version: "11.1.3",
    interfaceCount: 10,
    coreCount: 2,
    sshKey: {
        username: "test",
        keyName: "test-key",
    },
    aclTemplateId: "0bff6e05-f0e7-44cd-804a-25b92b835f8b",
    clusterDetails: {
        clusterName: "tf-panw-cluster",
        node0: {
            vendorConfiguration: {
                hostname: "panw-node0",
                panoramaIpAddress: "x.x.x.x",
                panoramaAuthKey: "xxxxxxxxxxx",
            },
            licenseToken: "licenseToken",
        },
        node1: {
            vendorConfiguration: {
                hostname: "panw-node1",
                panoramaIpAddress: "x.x.x.x",
                panoramaAuthKey: "xxxxxxxxxxx",
            },
            licenseToken: "licenseToken",
        },
    },
});
import pulumi
import pulumi_equinix as equinix
sv = equinix.networkedge.get_account_output(metro_code="SV")
panw_cluster = equinix.networkedge.Device("panwCluster",
    name="tf-panw",
    metro_code=sv.metro_code,
    type_code="PA-VM",
    self_managed=True,
    byol=True,
    package_code="VM100",
    notifications=[
        "john@equinix.com",
        "marry@equinix.com",
        "fred@equinix.com",
    ],
    term_length=12,
    account_number=sv.number,
    version="11.1.3",
    interface_count=10,
    core_count=2,
    ssh_key={
        "username": "test",
        "key_name": "test-key",
    },
    acl_template_id="0bff6e05-f0e7-44cd-804a-25b92b835f8b",
    cluster_details={
        "cluster_name": "tf-panw-cluster",
        "node0": {
            "vendor_configuration": {
                "hostname": "panw-node0",
                "panorama_ip_address": "x.x.x.x",
                "panorama_auth_key": "xxxxxxxxxxx",
            },
            "license_token": "licenseToken",
        },
        "node1": {
            "vendor_configuration": {
                "hostname": "panw-node1",
                "panorama_ip_address": "x.x.x.x",
                "panorama_auth_key": "xxxxxxxxxxx",
            },
            "license_token": "licenseToken",
        },
    })
resources:
  panwCluster:
    type: equinix:networkedge:Device
    name: panw_cluster
    properties:
      name: tf-panw
      metroCode: ${sv.metroCode}
      typeCode: PA-VM
      selfManaged: true
      byol: true
      packageCode: VM100
      notifications:
        - john@equinix.com
        - marry@equinix.com
        - fred@equinix.com
      termLength: 12
      accountNumber: ${sv.number}
      version: 11.1.3
      interfaceCount: 10
      coreCount: 2
      sshKey:
        username: test
        keyName: test-key
      aclTemplateId: 0bff6e05-f0e7-44cd-804a-25b92b835f8b
      clusterDetails:
        clusterName: tf-panw-cluster
        node0:
          vendorConfiguration:
            hostname: panw-node0
            panoramaIpAddress: x.x.x.x
            panoramaAuthKey: xxxxxxxxxxx
          licenseToken: licenseToken
        node1:
          vendorConfiguration:
            hostname: panw-node1
            panoramaIpAddress: x.x.x.x
            panoramaAuthKey: xxxxxxxxxxx
          licenseToken: licenseToken
variables:
  # Create PA-VM firewall cluster with Panorama Server Integration
  # with Panorama Server IP and Panorama Auth Key in vendor Configuration
  sv:
    fn::invoke:
      function: equinix:networkedge:getAccount
      arguments:
        metroCode: SV
example Aviatrix Transit Edge
using System.Collections.Generic;
using System.Linq;
using Pulumi;
using Equinix = Pulumi.Equinix;
using Std = Pulumi.Std;
return await Deployment.RunAsync(() => 
{
    var config = new Config();
    var filepath = config.Get("filepath") ?? "cloudInitFileFolder/TF-AVX-cloud-init-file.txt";
    var sv = Equinix.NetworkEdge.GetAccount.Invoke(new()
    {
        MetroCode = "SV",
    });
    var aviatrixCloudinitFile = new Equinix.NetworkEdge.NetworkFile("aviatrixCloudinitFile", new()
    {
        FileName = "TF-AVX-cloud-init-file.txt",
        Content = Std.File.Invoke(new()
        {
            Input = filepath,
        }).Apply(invoke => invoke.Result),
        MetroCode = sv.Apply(getAccountResult => getAccountResult.MetroCode).Apply(System.Enum.Parse<Equinix.Metro>),
        DeviceTypeCode = "AVIATRIX_TRANSIT_EDGE",
        ProcessType = Equinix.NetworkEdge.FileType.CloudInit,
        SelfManaged = true,
        Byol = true,
    });
    var aviatrixTransitEdgeSingle = new Equinix.NetworkEdge.Device("aviatrix-transit-edge-single", new()
    {
        Name = "tf-aviatrix",
        MetroCode = sv.Apply(getAccountResult => getAccountResult.MetroCode),
        TypeCode = "AVIATRIX_TRANSIT_EDGE",
        SelfManaged = true,
        Byol = true,
        PackageCode = "STD",
        Notifications = new[]
        {
            "john@equinix.com",
        },
        TermLength = 12,
        AccountNumber = sv.Apply(getAccountResult => getAccountResult.Number),
        Version = "7.2.a",
        CoreCount = 2,
        CloudInitFileId = aviatrixCloudinitFile.Uuid,
        AclTemplateId = "c06150ea-b604-4ad1-832a-d63936e9b938",
    });
});
package main
import (
	"github.com/equinix/pulumi-equinix/sdk/go/equinix"
	"github.com/equinix/pulumi-equinix/sdk/go/equinix/networkedge"
	"github.com/pulumi/pulumi-std/sdk/go/std"
	"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, "")
		filepath := "cloudInitFileFolder/TF-AVX-cloud-init-file.txt"
		if param := cfg.Get("filepath"); param != "" {
			filepath = param
		}
		sv := networkedge.GetAccountOutput(ctx, networkedge.GetAccountOutputArgs{
			MetroCode: pulumi.String("SV"),
		}, nil)
		aviatrixCloudinitFile, err := networkedge.NewNetworkFile(ctx, "aviatrixCloudinitFile", &networkedge.NetworkFileArgs{
			FileName: pulumi.String("TF-AVX-cloud-init-file.txt"),
			Content: pulumi.String(std.FileOutput(ctx, std.FileOutputArgs{
				Input: pulumi.String(filepath),
			}, nil).ApplyT(func(invoke std.FileResult) (*string, error) {
				return invoke.Result, nil
			}).(pulumi.StringPtrOutput)),
			MetroCode: sv.ApplyT(func(sv networkedge.GetAccountResult) (*string, error) {
				return &sv.MetroCode, nil
			}).(pulumi.StringPtrOutput).ApplyT(func(x *string) equinix.Metro { return equinix.Metro(*x) }).(equinix.MetroOutput),
			DeviceTypeCode: pulumi.String("AVIATRIX_TRANSIT_EDGE"),
			ProcessType:    pulumi.String(networkedge.FileTypeCloudInit),
			SelfManaged:    pulumi.Bool(true),
			Byol:           pulumi.Bool(true),
		})
		if err != nil {
			return err
		}
		_, err = networkedge.NewDevice(ctx, "aviatrix-transit-edge-single", &networkedge.DeviceArgs{
			Name: pulumi.String("tf-aviatrix"),
			MetroCode: pulumi.String(sv.ApplyT(func(sv networkedge.GetAccountResult) (*string, error) {
				return &sv.MetroCode, nil
			}).(pulumi.StringPtrOutput)),
			TypeCode:    pulumi.String("AVIATRIX_TRANSIT_EDGE"),
			SelfManaged: pulumi.Bool(true),
			Byol:        pulumi.Bool(true),
			PackageCode: pulumi.String("STD"),
			Notifications: pulumi.StringArray{
				pulumi.String("john@equinix.com"),
			},
			TermLength: pulumi.Int(12),
			AccountNumber: pulumi.String(sv.ApplyT(func(sv networkedge.GetAccountResult) (*string, error) {
				return &sv.Number, nil
			}).(pulumi.StringPtrOutput)),
			Version:         pulumi.String("7.2.a"),
			CoreCount:       pulumi.Int(2),
			CloudInitFileId: aviatrixCloudinitFile.Uuid,
			AclTemplateId:   pulumi.String("c06150ea-b604-4ad1-832a-d63936e9b938"),
		})
		if err != nil {
			return err
		}
		return nil
	})
}
package generated_program;
import com.pulumi.Context;
import com.pulumi.Pulumi;
import com.pulumi.core.Output;
import com.pulumi.equinix.networkedge.NetworkedgeFunctions;
import com.pulumi.equinix.networkedge.inputs.GetAccountArgs;
import com.pulumi.equinix.networkedge.NetworkFile;
import com.pulumi.equinix.networkedge.NetworkFileArgs;
import com.pulumi.std.StdFunctions;
import com.pulumi.std.inputs.FileArgs;
import com.pulumi.equinix.networkedge.Device;
import com.pulumi.equinix.networkedge.DeviceArgs;
import java.util.List;
import java.util.ArrayList;
import java.util.Map;
import java.io.File;
import java.nio.file.Files;
import java.nio.file.Paths;
public class App {
    public static void main(String[] args) {
        Pulumi.run(App::stack);
    }
    public static void stack(Context ctx) {
        final var config = ctx.config();
        final var filepath = config.get("filepath").orElse("cloudInitFileFolder/TF-AVX-cloud-init-file.txt");
        final var sv = NetworkedgeFunctions.getAccount(GetAccountArgs.builder()
            .metroCode("SV")
            .build());
        var aviatrixCloudinitFile = new NetworkFile("aviatrixCloudinitFile", NetworkFileArgs.builder()
            .fileName("TF-AVX-cloud-init-file.txt")
            .content(StdFunctions.file(FileArgs.builder()
                .input(filepath)
                .build()).applyValue(_invoke -> _invoke.result()))
            .metroCode(sv.applyValue(_sv -> _sv.metroCode()))
            .deviceTypeCode("AVIATRIX_TRANSIT_EDGE")
            .processType("CLOUD_INIT")
            .selfManaged(true)
            .byol(true)
            .build());
        var aviatrixTransitEdgeSingle = new Device("aviatrixTransitEdgeSingle", DeviceArgs.builder()
            .name("tf-aviatrix")
            .metroCode(sv.applyValue(_sv -> _sv.metroCode()))
            .typeCode("AVIATRIX_TRANSIT_EDGE")
            .selfManaged(true)
            .byol(true)
            .packageCode("STD")
            .notifications("john@equinix.com")
            .termLength(12)
            .accountNumber(sv.applyValue(_sv -> _sv.number()))
            .version("7.2.a")
            .coreCount(2)
            .cloudInitFileId(aviatrixCloudinitFile.uuid())
            .aclTemplateId("c06150ea-b604-4ad1-832a-d63936e9b938")
            .build());
    }
}
import * as pulumi from "@pulumi/pulumi";
import * as equinix from "@equinix-labs/pulumi-equinix";
import * as equinix from "@pulumi/equinix";
import * as std from "@pulumi/std";
const config = new pulumi.Config();
const filepath = config.get("filepath") || "cloudInitFileFolder/TF-AVX-cloud-init-file.txt";
const sv = equinix.networkedge.getAccountOutput({
    metroCode: "SV",
});
const aviatrixCloudinitFile = new equinix.networkedge.NetworkFile("aviatrixCloudinitFile", {
    fileName: "TF-AVX-cloud-init-file.txt",
    content: std.fileOutput({
        input: filepath,
    }).apply(invoke => invoke.result),
    metroCode: sv.apply(sv => sv.metroCode).apply((x) => equinix.index.Metro[x]),
    deviceTypeCode: "AVIATRIX_TRANSIT_EDGE",
    processType: equinix.networkedge.FileType.CloudInit,
    selfManaged: true,
    byol: true,
});
const aviatrixTransitEdgeSingle = new equinix.networkedge.Device("aviatrix-transit-edge-single", {
    name: "tf-aviatrix",
    metroCode: sv.apply(sv => sv.metroCode),
    typeCode: "AVIATRIX_TRANSIT_EDGE",
    selfManaged: true,
    byol: true,
    packageCode: "STD",
    notifications: ["john@equinix.com"],
    termLength: 12,
    accountNumber: sv.apply(sv => sv.number),
    version: "7.2.a",
    coreCount: 2,
    cloudInitFileId: aviatrixCloudinitFile.uuid,
    aclTemplateId: "c06150ea-b604-4ad1-832a-d63936e9b938",
});
import pulumi
import pulumi_equinix as equinix
import pulumi_std as std
config = pulumi.Config()
filepath = config.get("filepath")
if filepath is None:
    filepath = "cloudInitFileFolder/TF-AVX-cloud-init-file.txt"
sv = equinix.networkedge.get_account_output(metro_code="SV")
aviatrix_cloudinit_file = equinix.networkedge.NetworkFile("aviatrixCloudinitFile",
    file_name="TF-AVX-cloud-init-file.txt",
    content=std.file_output(input=filepath).apply(lambda invoke: invoke.result),
    metro_code=sv.metro_code.apply(lambda x: equinix.Metro(x)),
    device_type_code="AVIATRIX_TRANSIT_EDGE",
    process_type=equinix.networkedge.FileType.CLOUD_INIT,
    self_managed=True,
    byol=True)
aviatrix_transit_edge_single = equinix.networkedge.Device("aviatrix-transit-edge-single",
    name="tf-aviatrix",
    metro_code=sv.metro_code,
    type_code="AVIATRIX_TRANSIT_EDGE",
    self_managed=True,
    byol=True,
    package_code="STD",
    notifications=["john@equinix.com"],
    term_length=12,
    account_number=sv.number,
    version="7.2.a",
    core_count=2,
    cloud_init_file_id=aviatrix_cloudinit_file.uuid,
    acl_template_id="c06150ea-b604-4ad1-832a-d63936e9b938")
configuration:
  filepath:
    type: string
    default: cloudInitFileFolder/TF-AVX-cloud-init-file.txt
resources:
  aviatrixCloudinitFile:
    type: equinix:networkedge:NetworkFile
    name: aviatrix_cloudinit_file
    properties:
      fileName: TF-AVX-cloud-init-file.txt
      content:
        fn::invoke:
          function: std:file
          arguments:
            input: ${filepath}
          return: result
      metroCode: ${sv.metroCode}
      deviceTypeCode: AVIATRIX_TRANSIT_EDGE
      processType: CLOUD_INIT
      selfManaged: true
      byol: true
  aviatrix-transit-edge-single:
    type: equinix:networkedge:Device
    properties:
      name: tf-aviatrix
      metroCode: ${sv.metroCode}
      typeCode: AVIATRIX_TRANSIT_EDGE
      selfManaged: true
      byol: true
      packageCode: STD
      notifications:
        - john@equinix.com
      termLength: 12
      accountNumber: ${sv.number}
      version: 7.2.a
      coreCount: 2
      cloudInitFileId: ${aviatrixCloudinitFile.uuid}
      aclTemplateId: c06150ea-b604-4ad1-832a-d63936e9b938
variables:
  # Create self configured single Aviatrix Transit Edge device with cloud init file
  sv:
    fn::invoke:
      function: equinix:networkedge:getAccount
      arguments:
        metroCode: SV
example c8000v byol without default password
using System.Collections.Generic;
using System.Linq;
using Pulumi;
using Equinix = Pulumi.Equinix;
return await Deployment.RunAsync(() => 
{
    var sv = Equinix.NetworkEdge.GetAccount.Invoke(new()
    {
        MetroCode = "SV",
    });
    var c8000VByolWithtoutDefaultPassword = new Equinix.NetworkEdge.Device("c8000v-byol-withtout-default-password", new()
    {
        Name = "tf-c8000v-byol",
        MetroCode = sv.Apply(getAccountResult => getAccountResult.MetroCode),
        TypeCode = "C8000V",
        SelfManaged = true,
        Byol = true,
        GenerateDefaultPassword = false,
        PackageCode = "VM100",
        Notifications = new[]
        {
            "john@equinix.com",
            "marry@equinix.com",
            "fred@equinix.com",
        },
        TermLength = 12,
        AccountNumber = sv.Apply(getAccountResult => getAccountResult.Number),
        Version = "17.11.01a",
        InterfaceCount = 10,
        CoreCount = 2,
        Tier = 1,
        SshKey = new Equinix.NetworkEdge.Inputs.DeviceSshKeyArgs
        {
            Username = "test",
            KeyName = "test-key",
        },
        AclTemplateId = "0bff6e05-f0e7-44cd-804a-25b92b835f8b",
    });
});
package main
import (
	"github.com/equinix/pulumi-equinix/sdk/go/equinix/networkedge"
	"github.com/pulumi/pulumi/sdk/v3/go/pulumi"
)
func main() {
	pulumi.Run(func(ctx *pulumi.Context) error {
		sv := networkedge.GetAccountOutput(ctx, networkedge.GetAccountOutputArgs{
			MetroCode: pulumi.String("SV"),
		}, nil)
		_, err := networkedge.NewDevice(ctx, "c8000v-byol-withtout-default-password", &networkedge.DeviceArgs{
			Name: pulumi.String("tf-c8000v-byol"),
			MetroCode: pulumi.String(sv.ApplyT(func(sv networkedge.GetAccountResult) (*string, error) {
				return &sv.MetroCode, nil
			}).(pulumi.StringPtrOutput)),
			TypeCode:                pulumi.String("C8000V"),
			SelfManaged:             pulumi.Bool(true),
			Byol:                    pulumi.Bool(true),
			GenerateDefaultPassword: pulumi.Bool(false),
			PackageCode:             pulumi.String("VM100"),
			Notifications: pulumi.StringArray{
				pulumi.String("john@equinix.com"),
				pulumi.String("marry@equinix.com"),
				pulumi.String("fred@equinix.com"),
			},
			TermLength: pulumi.Int(12),
			AccountNumber: pulumi.String(sv.ApplyT(func(sv networkedge.GetAccountResult) (*string, error) {
				return &sv.Number, nil
			}).(pulumi.StringPtrOutput)),
			Version:        pulumi.String("17.11.01a"),
			InterfaceCount: pulumi.Int(10),
			CoreCount:      pulumi.Int(2),
			Tier:           pulumi.Int(1),
			SshKey: &networkedge.DeviceSshKeyArgs{
				Username: pulumi.String("test"),
				KeyName:  pulumi.String("test-key"),
			},
			AclTemplateId: pulumi.String("0bff6e05-f0e7-44cd-804a-25b92b835f8b"),
		})
		if err != nil {
			return err
		}
		return nil
	})
}
package generated_program;
import com.pulumi.Context;
import com.pulumi.Pulumi;
import com.pulumi.core.Output;
import com.pulumi.equinix.networkedge.NetworkedgeFunctions;
import com.pulumi.equinix.networkedge.inputs.GetAccountArgs;
import com.pulumi.equinix.networkedge.Device;
import com.pulumi.equinix.networkedge.DeviceArgs;
import com.pulumi.equinix.networkedge.inputs.DeviceSshKeyArgs;
import java.util.List;
import java.util.ArrayList;
import java.util.Map;
import java.io.File;
import java.nio.file.Files;
import java.nio.file.Paths;
public class App {
    public static void main(String[] args) {
        Pulumi.run(App::stack);
    }
    public static void stack(Context ctx) {
        final var sv = NetworkedgeFunctions.getAccount(GetAccountArgs.builder()
            .metroCode("SV")
            .build());
        var c8000VByolWithtoutDefaultPassword = new Device("c8000VByolWithtoutDefaultPassword", DeviceArgs.builder()
            .name("tf-c8000v-byol")
            .metroCode(sv.applyValue(_sv -> _sv.metroCode()))
            .typeCode("C8000V")
            .selfManaged(true)
            .byol(true)
            .generateDefaultPassword(false)
            .packageCode("VM100")
            .notifications(            
                "john@equinix.com",
                "marry@equinix.com",
                "fred@equinix.com")
            .termLength(12)
            .accountNumber(sv.applyValue(_sv -> _sv.number()))
            .version("17.11.01a")
            .interfaceCount(10)
            .coreCount(2)
            .tier(1)
            .sshKey(DeviceSshKeyArgs.builder()
                .username("test")
                .keyName("test-key")
                .build())
            .aclTemplateId("0bff6e05-f0e7-44cd-804a-25b92b835f8b")
            .build());
    }
}
import * as pulumi from "@pulumi/pulumi";
import * as equinix from "@equinix-labs/pulumi-equinix";
import * as equinix from "@pulumi/equinix";
const sv = equinix.networkedge.getAccountOutput({
    metroCode: "SV",
});
const c8000VByolWithtoutDefaultPassword = new equinix.networkedge.Device("c8000v-byol-withtout-default-password", {
    name: "tf-c8000v-byol",
    metroCode: sv.apply(sv => sv.metroCode),
    typeCode: "C8000V",
    selfManaged: true,
    byol: true,
    generateDefaultPassword: false,
    packageCode: "VM100",
    notifications: [
        "john@equinix.com",
        "marry@equinix.com",
        "fred@equinix.com",
    ],
    termLength: 12,
    accountNumber: sv.apply(sv => sv.number),
    version: "17.11.01a",
    interfaceCount: 10,
    coreCount: 2,
    tier: 1,
    sshKey: {
        username: "test",
        keyName: "test-key",
    },
    aclTemplateId: "0bff6e05-f0e7-44cd-804a-25b92b835f8b",
});
import pulumi
import pulumi_equinix as equinix
sv = equinix.networkedge.get_account_output(metro_code="SV")
c8000_v_byol_withtout_default_password = equinix.networkedge.Device("c8000v-byol-withtout-default-password",
    name="tf-c8000v-byol",
    metro_code=sv.metro_code,
    type_code="C8000V",
    self_managed=True,
    byol=True,
    generate_default_password=False,
    package_code="VM100",
    notifications=[
        "john@equinix.com",
        "marry@equinix.com",
        "fred@equinix.com",
    ],
    term_length=12,
    account_number=sv.number,
    version="17.11.01a",
    interface_count=10,
    core_count=2,
    tier=1,
    ssh_key={
        "username": "test",
        "key_name": "test-key",
    },
    acl_template_id="0bff6e05-f0e7-44cd-804a-25b92b835f8b")
resources:
  c8000v-byol-withtout-default-password:
    type: equinix:networkedge:Device
    properties:
      name: tf-c8000v-byol
      metroCode: ${sv.metroCode}
      typeCode: C8000V
      selfManaged: true
      byol: true
      generateDefaultPassword: false
      packageCode: VM100
      notifications:
        - john@equinix.com
        - marry@equinix.com
        - fred@equinix.com
      termLength: 12
      accountNumber: ${sv.number}
      version: 17.11.01a
      interfaceCount: 10
      coreCount: 2
      tier: 1
      sshKey:
        username: test
        keyName: test-key
      aclTemplateId: 0bff6e05-f0e7-44cd-804a-25b92b835f8b
variables:
  # Create C8000V BYOL device with bandwidth tier information
  sv:
    fn::invoke:
      function: equinix:networkedge:getAccount
      arguments:
        metroCode: SV
example c8000v byol with bandwidth throughput
using System.Collections.Generic;
using System.Linq;
using Pulumi;
using Equinix = Pulumi.Equinix;
return await Deployment.RunAsync(() => 
{
    var sv = Equinix.NetworkEdge.GetAccount.Invoke(new()
    {
        MetroCode = "SV",
    });
    var c8000VByolThroughput = new Equinix.NetworkEdge.Device("c8000v-byol-throughput", new()
    {
        Name = "tf-c8000v-byol",
        MetroCode = sv.Apply(getAccountResult => getAccountResult.MetroCode),
        TypeCode = "C8000V",
        SelfManaged = true,
        Byol = true,
        PackageCode = "VM100",
        Notifications = new[]
        {
            "john@equinix.com",
            "marry@equinix.com",
            "fred@equinix.com",
        },
        TermLength = 12,
        AccountNumber = sv.Apply(getAccountResult => getAccountResult.Number),
        Version = "17.11.01a",
        InterfaceCount = 10,
        CoreCount = 2,
        Throughput = 100,
        ThroughputUnit = Equinix.NetworkEdge.ThroughputUnit.Mbps,
        SshKey = new Equinix.NetworkEdge.Inputs.DeviceSshKeyArgs
        {
            Username = "test",
            KeyName = "test-key",
        },
        AclTemplateId = "0bff6e05-f0e7-44cd-804a-25b92b835f8b",
    });
});
package main
import (
	"github.com/equinix/pulumi-equinix/sdk/go/equinix/networkedge"
	"github.com/pulumi/pulumi/sdk/v3/go/pulumi"
)
func main() {
	pulumi.Run(func(ctx *pulumi.Context) error {
		sv := networkedge.GetAccountOutput(ctx, networkedge.GetAccountOutputArgs{
			MetroCode: pulumi.String("SV"),
		}, nil)
		_, err := networkedge.NewDevice(ctx, "c8000v-byol-throughput", &networkedge.DeviceArgs{
			Name: pulumi.String("tf-c8000v-byol"),
			MetroCode: pulumi.String(sv.ApplyT(func(sv networkedge.GetAccountResult) (*string, error) {
				return &sv.MetroCode, nil
			}).(pulumi.StringPtrOutput)),
			TypeCode:    pulumi.String("C8000V"),
			SelfManaged: pulumi.Bool(true),
			Byol:        pulumi.Bool(true),
			PackageCode: pulumi.String("VM100"),
			Notifications: pulumi.StringArray{
				pulumi.String("john@equinix.com"),
				pulumi.String("marry@equinix.com"),
				pulumi.String("fred@equinix.com"),
			},
			TermLength: pulumi.Int(12),
			AccountNumber: pulumi.String(sv.ApplyT(func(sv networkedge.GetAccountResult) (*string, error) {
				return &sv.Number, nil
			}).(pulumi.StringPtrOutput)),
			Version:        pulumi.String("17.11.01a"),
			InterfaceCount: pulumi.Int(10),
			CoreCount:      pulumi.Int(2),
			Throughput:     pulumi.Int(100),
			ThroughputUnit: pulumi.String(networkedge.ThroughputUnitMbps),
			SshKey: &networkedge.DeviceSshKeyArgs{
				Username: pulumi.String("test"),
				KeyName:  pulumi.String("test-key"),
			},
			AclTemplateId: pulumi.String("0bff6e05-f0e7-44cd-804a-25b92b835f8b"),
		})
		if err != nil {
			return err
		}
		return nil
	})
}
package generated_program;
import com.pulumi.Context;
import com.pulumi.Pulumi;
import com.pulumi.core.Output;
import com.pulumi.equinix.networkedge.NetworkedgeFunctions;
import com.pulumi.equinix.networkedge.inputs.GetAccountArgs;
import com.pulumi.equinix.networkedge.Device;
import com.pulumi.equinix.networkedge.DeviceArgs;
import com.pulumi.equinix.networkedge.inputs.DeviceSshKeyArgs;
import java.util.List;
import java.util.ArrayList;
import java.util.Map;
import java.io.File;
import java.nio.file.Files;
import java.nio.file.Paths;
public class App {
    public static void main(String[] args) {
        Pulumi.run(App::stack);
    }
    public static void stack(Context ctx) {
        final var sv = NetworkedgeFunctions.getAccount(GetAccountArgs.builder()
            .metroCode("SV")
            .build());
        var c8000VByolThroughput = new Device("c8000VByolThroughput", DeviceArgs.builder()
            .name("tf-c8000v-byol")
            .metroCode(sv.applyValue(_sv -> _sv.metroCode()))
            .typeCode("C8000V")
            .selfManaged(true)
            .byol(true)
            .packageCode("VM100")
            .notifications(            
                "john@equinix.com",
                "marry@equinix.com",
                "fred@equinix.com")
            .termLength(12)
            .accountNumber(sv.applyValue(_sv -> _sv.number()))
            .version("17.11.01a")
            .interfaceCount(10)
            .coreCount(2)
            .throughput(100)
            .throughputUnit("Mbps")
            .sshKey(DeviceSshKeyArgs.builder()
                .username("test")
                .keyName("test-key")
                .build())
            .aclTemplateId("0bff6e05-f0e7-44cd-804a-25b92b835f8b")
            .build());
    }
}
import * as pulumi from "@pulumi/pulumi";
import * as equinix from "@equinix-labs/pulumi-equinix";
import * as equinix from "@pulumi/equinix";
const sv = equinix.networkedge.getAccountOutput({
    metroCode: "SV",
});
const c8000VByolThroughput = new equinix.networkedge.Device("c8000v-byol-throughput", {
    name: "tf-c8000v-byol",
    metroCode: sv.apply(sv => sv.metroCode),
    typeCode: "C8000V",
    selfManaged: true,
    byol: true,
    packageCode: "VM100",
    notifications: [
        "john@equinix.com",
        "marry@equinix.com",
        "fred@equinix.com",
    ],
    termLength: 12,
    accountNumber: sv.apply(sv => sv.number),
    version: "17.11.01a",
    interfaceCount: 10,
    coreCount: 2,
    throughput: 100,
    throughputUnit: equinix.networkedge.ThroughputUnit.Mbps,
    sshKey: {
        username: "test",
        keyName: "test-key",
    },
    aclTemplateId: "0bff6e05-f0e7-44cd-804a-25b92b835f8b",
});
import pulumi
import pulumi_equinix as equinix
sv = equinix.networkedge.get_account_output(metro_code="SV")
c8000_v_byol_throughput = equinix.networkedge.Device("c8000v-byol-throughput",
    name="tf-c8000v-byol",
    metro_code=sv.metro_code,
    type_code="C8000V",
    self_managed=True,
    byol=True,
    package_code="VM100",
    notifications=[
        "john@equinix.com",
        "marry@equinix.com",
        "fred@equinix.com",
    ],
    term_length=12,
    account_number=sv.number,
    version="17.11.01a",
    interface_count=10,
    core_count=2,
    throughput=100,
    throughput_unit=equinix.networkedge.ThroughputUnit.MBPS,
    ssh_key={
        "username": "test",
        "key_name": "test-key",
    },
    acl_template_id="0bff6e05-f0e7-44cd-804a-25b92b835f8b")
resources:
  c8000v-byol-throughput:
    type: equinix:networkedge:Device
    properties:
      name: tf-c8000v-byol
      metroCode: ${sv.metroCode}
      typeCode: C8000V
      selfManaged: true
      byol: true
      packageCode: VM100
      notifications:
        - john@equinix.com
        - marry@equinix.com
        - fred@equinix.com
      termLength: 12
      accountNumber: ${sv.number}
      version: 17.11.01a
      interfaceCount: 10
      coreCount: 2
      throughput: '100'
      throughputUnit: Mbps
      sshKey:
        username: test
        keyName: test-key
      aclTemplateId: 0bff6e05-f0e7-44cd-804a-25b92b835f8b
variables:
  # Create C8000V BYOL device with numeric bandwidth throughput information
  sv:
    fn::invoke:
      function: equinix:networkedge:getAccount
      arguments:
        metroCode: SV
example c8000v byol with bandwidth tier
using System.Collections.Generic;
using System.Linq;
using Pulumi;
using Equinix = Pulumi.Equinix;
return await Deployment.RunAsync(() => 
{
    var sv = Equinix.NetworkEdge.GetAccount.Invoke(new()
    {
        MetroCode = "SV",
    });
    var c8000VByolTier = new Equinix.NetworkEdge.Device("c8000v-byol-tier", new()
    {
        Name = "tf-c8000v-byol",
        MetroCode = sv.Apply(getAccountResult => getAccountResult.MetroCode),
        TypeCode = "C8000V",
        SelfManaged = true,
        Byol = true,
        PackageCode = "VM100",
        Notifications = new[]
        {
            "john@equinix.com",
            "marry@equinix.com",
            "fred@equinix.com",
        },
        TermLength = 12,
        AccountNumber = sv.Apply(getAccountResult => getAccountResult.Number),
        Version = "17.11.01a",
        InterfaceCount = 10,
        CoreCount = 2,
        Tier = 1,
        SshKey = new Equinix.NetworkEdge.Inputs.DeviceSshKeyArgs
        {
            Username = "test",
            KeyName = "test-key",
        },
        AclTemplateId = "0bff6e05-f0e7-44cd-804a-25b92b835f8b",
    });
});
package main
import (
	"github.com/equinix/pulumi-equinix/sdk/go/equinix/networkedge"
	"github.com/pulumi/pulumi/sdk/v3/go/pulumi"
)
func main() {
	pulumi.Run(func(ctx *pulumi.Context) error {
		sv := networkedge.GetAccountOutput(ctx, networkedge.GetAccountOutputArgs{
			MetroCode: pulumi.String("SV"),
		}, nil)
		_, err := networkedge.NewDevice(ctx, "c8000v-byol-tier", &networkedge.DeviceArgs{
			Name: pulumi.String("tf-c8000v-byol"),
			MetroCode: pulumi.String(sv.ApplyT(func(sv networkedge.GetAccountResult) (*string, error) {
				return &sv.MetroCode, nil
			}).(pulumi.StringPtrOutput)),
			TypeCode:    pulumi.String("C8000V"),
			SelfManaged: pulumi.Bool(true),
			Byol:        pulumi.Bool(true),
			PackageCode: pulumi.String("VM100"),
			Notifications: pulumi.StringArray{
				pulumi.String("john@equinix.com"),
				pulumi.String("marry@equinix.com"),
				pulumi.String("fred@equinix.com"),
			},
			TermLength: pulumi.Int(12),
			AccountNumber: pulumi.String(sv.ApplyT(func(sv networkedge.GetAccountResult) (*string, error) {
				return &sv.Number, nil
			}).(pulumi.StringPtrOutput)),
			Version:        pulumi.String("17.11.01a"),
			InterfaceCount: pulumi.Int(10),
			CoreCount:      pulumi.Int(2),
			Tier:           pulumi.Int(1),
			SshKey: &networkedge.DeviceSshKeyArgs{
				Username: pulumi.String("test"),
				KeyName:  pulumi.String("test-key"),
			},
			AclTemplateId: pulumi.String("0bff6e05-f0e7-44cd-804a-25b92b835f8b"),
		})
		if err != nil {
			return err
		}
		return nil
	})
}
package generated_program;
import com.pulumi.Context;
import com.pulumi.Pulumi;
import com.pulumi.core.Output;
import com.pulumi.equinix.networkedge.NetworkedgeFunctions;
import com.pulumi.equinix.networkedge.inputs.GetAccountArgs;
import com.pulumi.equinix.networkedge.Device;
import com.pulumi.equinix.networkedge.DeviceArgs;
import com.pulumi.equinix.networkedge.inputs.DeviceSshKeyArgs;
import java.util.List;
import java.util.ArrayList;
import java.util.Map;
import java.io.File;
import java.nio.file.Files;
import java.nio.file.Paths;
public class App {
    public static void main(String[] args) {
        Pulumi.run(App::stack);
    }
    public static void stack(Context ctx) {
        final var sv = NetworkedgeFunctions.getAccount(GetAccountArgs.builder()
            .metroCode("SV")
            .build());
        var c8000VByolTier = new Device("c8000VByolTier", DeviceArgs.builder()
            .name("tf-c8000v-byol")
            .metroCode(sv.applyValue(_sv -> _sv.metroCode()))
            .typeCode("C8000V")
            .selfManaged(true)
            .byol(true)
            .packageCode("VM100")
            .notifications(            
                "john@equinix.com",
                "marry@equinix.com",
                "fred@equinix.com")
            .termLength(12)
            .accountNumber(sv.applyValue(_sv -> _sv.number()))
            .version("17.11.01a")
            .interfaceCount(10)
            .coreCount(2)
            .tier(1)
            .sshKey(DeviceSshKeyArgs.builder()
                .username("test")
                .keyName("test-key")
                .build())
            .aclTemplateId("0bff6e05-f0e7-44cd-804a-25b92b835f8b")
            .build());
    }
}
import * as pulumi from "@pulumi/pulumi";
import * as equinix from "@equinix-labs/pulumi-equinix";
import * as equinix from "@pulumi/equinix";
const sv = equinix.networkedge.getAccountOutput({
    metroCode: "SV",
});
const c8000VByolTier = new equinix.networkedge.Device("c8000v-byol-tier", {
    name: "tf-c8000v-byol",
    metroCode: sv.apply(sv => sv.metroCode),
    typeCode: "C8000V",
    selfManaged: true,
    byol: true,
    packageCode: "VM100",
    notifications: [
        "john@equinix.com",
        "marry@equinix.com",
        "fred@equinix.com",
    ],
    termLength: 12,
    accountNumber: sv.apply(sv => sv.number),
    version: "17.11.01a",
    interfaceCount: 10,
    coreCount: 2,
    tier: 1,
    sshKey: {
        username: "test",
        keyName: "test-key",
    },
    aclTemplateId: "0bff6e05-f0e7-44cd-804a-25b92b835f8b",
});
import pulumi
import pulumi_equinix as equinix
sv = equinix.networkedge.get_account_output(metro_code="SV")
c8000_v_byol_tier = equinix.networkedge.Device("c8000v-byol-tier",
    name="tf-c8000v-byol",
    metro_code=sv.metro_code,
    type_code="C8000V",
    self_managed=True,
    byol=True,
    package_code="VM100",
    notifications=[
        "john@equinix.com",
        "marry@equinix.com",
        "fred@equinix.com",
    ],
    term_length=12,
    account_number=sv.number,
    version="17.11.01a",
    interface_count=10,
    core_count=2,
    tier=1,
    ssh_key={
        "username": "test",
        "key_name": "test-key",
    },
    acl_template_id="0bff6e05-f0e7-44cd-804a-25b92b835f8b")
resources:
  c8000v-byol-tier:
    type: equinix:networkedge:Device
    properties:
      name: tf-c8000v-byol
      metroCode: ${sv.metroCode}
      typeCode: C8000V
      selfManaged: true
      byol: true
      packageCode: VM100
      notifications:
        - john@equinix.com
        - marry@equinix.com
        - fred@equinix.com
      termLength: 12
      accountNumber: ${sv.number}
      version: 17.11.01a
      interfaceCount: 10
      coreCount: 2
      tier: 1
      sshKey:
        username: test
        keyName: test-key
      aclTemplateId: 0bff6e05-f0e7-44cd-804a-25b92b835f8b
variables:
  # Create C8000V BYOL device with bandwidth tier information
  sv:
    fn::invoke:
      function: equinix:networkedge:getAccount
      arguments:
        metroCode: SV
example zscaler appc
using System.Collections.Generic;
using System.Linq;
using Pulumi;
using Equinix = Pulumi.Equinix;
return await Deployment.RunAsync(() => 
{
    var sv = Equinix.NetworkEdge.GetAccount.Invoke(new()
    {
        MetroCode = "SV",
    });
    var zscalerAppcSingle = new Equinix.NetworkEdge.Device("zscaler-appc-single", new()
    {
        Name = "tf-zscaler-appc",
        ProjectId = "XXXXXX",
        MetroCode = sv.Apply(getAccountResult => getAccountResult.MetroCode),
        TypeCode = "ZSCALER-APPC",
        SelfManaged = true,
        Byol = true,
        Connectivity = "PRIVATE",
        PackageCode = "STD",
        Notifications = new[]
        {
            "john@equinix.com",
            "marry@equinix.com",
            "fred@equinix.com",
        },
        TermLength = 12,
        AccountNumber = sv.Apply(getAccountResult => getAccountResult.Number),
        Version = "23.395.1",
        InterfaceCount = 1,
        CoreCount = 4,
        VendorConfiguration = 
        {
            { "provisioningKey", "XXXXXXXXXX" },
            { "hostname", "XXXX" },
        },
        SshKey = new Equinix.NetworkEdge.Inputs.DeviceSshKeyArgs
        {
            Username = "test",
            KeyName = "test-key",
        },
    });
});
package main
import (
	"github.com/equinix/pulumi-equinix/sdk/go/equinix/networkedge"
	"github.com/pulumi/pulumi/sdk/v3/go/pulumi"
)
func main() {
	pulumi.Run(func(ctx *pulumi.Context) error {
		sv := networkedge.GetAccountOutput(ctx, networkedge.GetAccountOutputArgs{
			MetroCode: pulumi.String("SV"),
		}, nil)
		_, err := networkedge.NewDevice(ctx, "zscaler-appc-single", &networkedge.DeviceArgs{
			Name:      pulumi.String("tf-zscaler-appc"),
			ProjectId: pulumi.String("XXXXXX"),
			MetroCode: pulumi.String(sv.ApplyT(func(sv networkedge.GetAccountResult) (*string, error) {
				return &sv.MetroCode, nil
			}).(pulumi.StringPtrOutput)),
			TypeCode:     pulumi.String("ZSCALER-APPC"),
			SelfManaged:  pulumi.Bool(true),
			Byol:         pulumi.Bool(true),
			Connectivity: pulumi.String("PRIVATE"),
			PackageCode:  pulumi.String("STD"),
			Notifications: pulumi.StringArray{
				pulumi.String("john@equinix.com"),
				pulumi.String("marry@equinix.com"),
				pulumi.String("fred@equinix.com"),
			},
			TermLength: pulumi.Int(12),
			AccountNumber: pulumi.String(sv.ApplyT(func(sv networkedge.GetAccountResult) (*string, error) {
				return &sv.Number, nil
			}).(pulumi.StringPtrOutput)),
			Version:        pulumi.String("23.395.1"),
			InterfaceCount: pulumi.Int(1),
			CoreCount:      pulumi.Int(4),
			VendorConfiguration: pulumi.StringMap{
				"provisioningKey": pulumi.String("XXXXXXXXXX"),
				"hostname":        pulumi.String("XXXX"),
			},
			SshKey: &networkedge.DeviceSshKeyArgs{
				Username: pulumi.String("test"),
				KeyName:  pulumi.String("test-key"),
			},
		})
		if err != nil {
			return err
		}
		return nil
	})
}
package generated_program;
import com.pulumi.Context;
import com.pulumi.Pulumi;
import com.pulumi.core.Output;
import com.pulumi.equinix.networkedge.NetworkedgeFunctions;
import com.pulumi.equinix.networkedge.inputs.GetAccountArgs;
import com.pulumi.equinix.networkedge.Device;
import com.pulumi.equinix.networkedge.DeviceArgs;
import com.pulumi.equinix.networkedge.inputs.DeviceSshKeyArgs;
import java.util.List;
import java.util.ArrayList;
import java.util.Map;
import java.io.File;
import java.nio.file.Files;
import java.nio.file.Paths;
public class App {
    public static void main(String[] args) {
        Pulumi.run(App::stack);
    }
    public static void stack(Context ctx) {
        final var sv = NetworkedgeFunctions.getAccount(GetAccountArgs.builder()
            .metroCode("SV")
            .build());
        var zscalerAppcSingle = new Device("zscalerAppcSingle", DeviceArgs.builder()
            .name("tf-zscaler-appc")
            .projectId("XXXXXX")
            .metroCode(sv.applyValue(_sv -> _sv.metroCode()))
            .typeCode("ZSCALER-APPC")
            .selfManaged(true)
            .byol(true)
            .connectivity("PRIVATE")
            .packageCode("STD")
            .notifications(            
                "john@equinix.com",
                "marry@equinix.com",
                "fred@equinix.com")
            .termLength(12)
            .accountNumber(sv.applyValue(_sv -> _sv.number()))
            .version("23.395.1")
            .interfaceCount(1)
            .coreCount(4)
            .vendorConfiguration(Map.ofEntries(
                Map.entry("provisioningKey", "XXXXXXXXXX"),
                Map.entry("hostname", "XXXX")
            ))
            .sshKey(DeviceSshKeyArgs.builder()
                .username("test")
                .keyName("test-key")
                .build())
            .build());
    }
}
import * as pulumi from "@pulumi/pulumi";
import * as equinix from "@equinix-labs/pulumi-equinix";
import * as equinix from "@pulumi/equinix";
const sv = equinix.networkedge.getAccountOutput({
    metroCode: "SV",
});
const zscalerAppcSingle = new equinix.networkedge.Device("zscaler-appc-single", {
    name: "tf-zscaler-appc",
    projectId: "XXXXXX",
    metroCode: sv.apply(sv => sv.metroCode),
    typeCode: "ZSCALER-APPC",
    selfManaged: true,
    byol: true,
    connectivity: "PRIVATE",
    packageCode: "STD",
    notifications: [
        "john@equinix.com",
        "marry@equinix.com",
        "fred@equinix.com",
    ],
    termLength: 12,
    accountNumber: sv.apply(sv => sv.number),
    version: "23.395.1",
    interfaceCount: 1,
    coreCount: 4,
    vendorConfiguration: {
        provisioningKey: "XXXXXXXXXX",
        hostname: "XXXX",
    },
    sshKey: {
        username: "test",
        keyName: "test-key",
    },
});
import pulumi
import pulumi_equinix as equinix
sv = equinix.networkedge.get_account_output(metro_code="SV")
zscaler_appc_single = equinix.networkedge.Device("zscaler-appc-single",
    name="tf-zscaler-appc",
    project_id="XXXXXX",
    metro_code=sv.metro_code,
    type_code="ZSCALER-APPC",
    self_managed=True,
    byol=True,
    connectivity="PRIVATE",
    package_code="STD",
    notifications=[
        "john@equinix.com",
        "marry@equinix.com",
        "fred@equinix.com",
    ],
    term_length=12,
    account_number=sv.number,
    version="23.395.1",
    interface_count=1,
    core_count=4,
    vendor_configuration={
        "provisioningKey": "XXXXXXXXXX",
        "hostname": "XXXX",
    },
    ssh_key={
        "username": "test",
        "key_name": "test-key",
    })
resources:
  zscaler-appc-single:
    type: equinix:networkedge:Device
    properties:
      name: tf-zscaler-appc
      projectId: XXXXXX
      metroCode: ${sv.metroCode}
      typeCode: ZSCALER-APPC
      selfManaged: true
      byol: true
      connectivity: PRIVATE
      packageCode: STD
      notifications:
        - john@equinix.com
        - marry@equinix.com
        - fred@equinix.com
      termLength: 12
      accountNumber: ${sv.number}
      version: 23.395.1
      interfaceCount: 1
      coreCount: 4
      vendorConfiguration:
        provisioningKey: XXXXXXXXXX
        hostname: XXXX
      sshKey:
        username: test
        keyName: test-key
variables:
  # Create ZSCALER APPC device
  sv:
    fn::invoke:
      function: equinix:networkedge:getAccount
      arguments:
        metroCode: SV
example zscaler pse
using System.Collections.Generic;
using System.Linq;
using Pulumi;
using Equinix = Pulumi.Equinix;
return await Deployment.RunAsync(() => 
{
    var sv = Equinix.NetworkEdge.GetAccount.Invoke(new()
    {
        MetroCode = "SV",
    });
    var zscalerPseSingle = new Equinix.NetworkEdge.Device("zscaler-pse-single", new()
    {
        Name = "tf-zscaler-pse",
        ProjectId = "XXXXXX",
        MetroCode = sv.Apply(getAccountResult => getAccountResult.MetroCode),
        TypeCode = "ZSCALER-PSE",
        SelfManaged = true,
        Byol = true,
        Connectivity = "PRIVATE",
        PackageCode = "STD",
        Notifications = new[]
        {
            "john@equinix.com",
            "marry@equinix.com",
            "fred@equinix.com",
        },
        TermLength = 12,
        AccountNumber = sv.Apply(getAccountResult => getAccountResult.Number),
        Version = "23.395.1",
        InterfaceCount = 1,
        CoreCount = 4,
        VendorConfiguration = 
        {
            { "provisioningKey", "XXXXXXXXXX" },
            { "hostname", "XXXX" },
        },
        SshKey = new Equinix.NetworkEdge.Inputs.DeviceSshKeyArgs
        {
            Username = "test",
            KeyName = "test-key",
        },
    });
});
package main
import (
	"github.com/equinix/pulumi-equinix/sdk/go/equinix/networkedge"
	"github.com/pulumi/pulumi/sdk/v3/go/pulumi"
)
func main() {
	pulumi.Run(func(ctx *pulumi.Context) error {
		sv := networkedge.GetAccountOutput(ctx, networkedge.GetAccountOutputArgs{
			MetroCode: pulumi.String("SV"),
		}, nil)
		_, err := networkedge.NewDevice(ctx, "zscaler-pse-single", &networkedge.DeviceArgs{
			Name:      pulumi.String("tf-zscaler-pse"),
			ProjectId: pulumi.String("XXXXXX"),
			MetroCode: pulumi.String(sv.ApplyT(func(sv networkedge.GetAccountResult) (*string, error) {
				return &sv.MetroCode, nil
			}).(pulumi.StringPtrOutput)),
			TypeCode:     pulumi.String("ZSCALER-PSE"),
			SelfManaged:  pulumi.Bool(true),
			Byol:         pulumi.Bool(true),
			Connectivity: pulumi.String("PRIVATE"),
			PackageCode:  pulumi.String("STD"),
			Notifications: pulumi.StringArray{
				pulumi.String("john@equinix.com"),
				pulumi.String("marry@equinix.com"),
				pulumi.String("fred@equinix.com"),
			},
			TermLength: pulumi.Int(12),
			AccountNumber: pulumi.String(sv.ApplyT(func(sv networkedge.GetAccountResult) (*string, error) {
				return &sv.Number, nil
			}).(pulumi.StringPtrOutput)),
			Version:        pulumi.String("23.395.1"),
			InterfaceCount: pulumi.Int(1),
			CoreCount:      pulumi.Int(4),
			VendorConfiguration: pulumi.StringMap{
				"provisioningKey": pulumi.String("XXXXXXXXXX"),
				"hostname":        pulumi.String("XXXX"),
			},
			SshKey: &networkedge.DeviceSshKeyArgs{
				Username: pulumi.String("test"),
				KeyName:  pulumi.String("test-key"),
			},
		})
		if err != nil {
			return err
		}
		return nil
	})
}
package generated_program;
import com.pulumi.Context;
import com.pulumi.Pulumi;
import com.pulumi.core.Output;
import com.pulumi.equinix.networkedge.NetworkedgeFunctions;
import com.pulumi.equinix.networkedge.inputs.GetAccountArgs;
import com.pulumi.equinix.networkedge.Device;
import com.pulumi.equinix.networkedge.DeviceArgs;
import com.pulumi.equinix.networkedge.inputs.DeviceSshKeyArgs;
import java.util.List;
import java.util.ArrayList;
import java.util.Map;
import java.io.File;
import java.nio.file.Files;
import java.nio.file.Paths;
public class App {
    public static void main(String[] args) {
        Pulumi.run(App::stack);
    }
    public static void stack(Context ctx) {
        final var sv = NetworkedgeFunctions.getAccount(GetAccountArgs.builder()
            .metroCode("SV")
            .build());
        var zscalerPseSingle = new Device("zscalerPseSingle", DeviceArgs.builder()
            .name("tf-zscaler-pse")
            .projectId("XXXXXX")
            .metroCode(sv.applyValue(_sv -> _sv.metroCode()))
            .typeCode("ZSCALER-PSE")
            .selfManaged(true)
            .byol(true)
            .connectivity("PRIVATE")
            .packageCode("STD")
            .notifications(            
                "john@equinix.com",
                "marry@equinix.com",
                "fred@equinix.com")
            .termLength(12)
            .accountNumber(sv.applyValue(_sv -> _sv.number()))
            .version("23.395.1")
            .interfaceCount(1)
            .coreCount(4)
            .vendorConfiguration(Map.ofEntries(
                Map.entry("provisioningKey", "XXXXXXXXXX"),
                Map.entry("hostname", "XXXX")
            ))
            .sshKey(DeviceSshKeyArgs.builder()
                .username("test")
                .keyName("test-key")
                .build())
            .build());
    }
}
import * as pulumi from "@pulumi/pulumi";
import * as equinix from "@equinix-labs/pulumi-equinix";
import * as equinix from "@pulumi/equinix";
const sv = equinix.networkedge.getAccountOutput({
    metroCode: "SV",
});
const zscalerPseSingle = new equinix.networkedge.Device("zscaler-pse-single", {
    name: "tf-zscaler-pse",
    projectId: "XXXXXX",
    metroCode: sv.apply(sv => sv.metroCode),
    typeCode: "ZSCALER-PSE",
    selfManaged: true,
    byol: true,
    connectivity: "PRIVATE",
    packageCode: "STD",
    notifications: [
        "john@equinix.com",
        "marry@equinix.com",
        "fred@equinix.com",
    ],
    termLength: 12,
    accountNumber: sv.apply(sv => sv.number),
    version: "23.395.1",
    interfaceCount: 1,
    coreCount: 4,
    vendorConfiguration: {
        provisioningKey: "XXXXXXXXXX",
        hostname: "XXXX",
    },
    sshKey: {
        username: "test",
        keyName: "test-key",
    },
});
import pulumi
import pulumi_equinix as equinix
sv = equinix.networkedge.get_account_output(metro_code="SV")
zscaler_pse_single = equinix.networkedge.Device("zscaler-pse-single",
    name="tf-zscaler-pse",
    project_id="XXXXXX",
    metro_code=sv.metro_code,
    type_code="ZSCALER-PSE",
    self_managed=True,
    byol=True,
    connectivity="PRIVATE",
    package_code="STD",
    notifications=[
        "john@equinix.com",
        "marry@equinix.com",
        "fred@equinix.com",
    ],
    term_length=12,
    account_number=sv.number,
    version="23.395.1",
    interface_count=1,
    core_count=4,
    vendor_configuration={
        "provisioningKey": "XXXXXXXXXX",
        "hostname": "XXXX",
    },
    ssh_key={
        "username": "test",
        "key_name": "test-key",
    })
resources:
  zscaler-pse-single:
    type: equinix:networkedge:Device
    properties:
      name: tf-zscaler-pse
      projectId: XXXXXX
      metroCode: ${sv.metroCode}
      typeCode: ZSCALER-PSE
      selfManaged: true
      byol: true
      connectivity: PRIVATE
      packageCode: STD
      notifications:
        - john@equinix.com
        - marry@equinix.com
        - fred@equinix.com
      termLength: 12
      accountNumber: ${sv.number}
      version: 23.395.1
      interfaceCount: 1
      coreCount: 4
      vendorConfiguration:
        provisioningKey: XXXXXXXXXX
        hostname: XXXX
      sshKey:
        username: test
        keyName: test-key
variables:
  # Create ZSCALER APPC device
  sv:
    fn::invoke:
      function: equinix:networkedge:getAccount
      arguments:
        metroCode: SV
Create Device Resource
Resources are created with functions called constructors. To learn more about declaring and configuring resources, see Resources.
Constructor syntax
new Device(name: string, args: DeviceArgs, opts?: CustomResourceOptions);@overload
def Device(resource_name: str,
           args: DeviceArgs,
           opts: Optional[ResourceOptions] = None)
@overload
def Device(resource_name: str,
           opts: Optional[ResourceOptions] = None,
           metro_code: Optional[str] = None,
           version: Optional[str] = None,
           type_code: Optional[str] = None,
           term_length: Optional[int] = None,
           package_code: Optional[str] = None,
           notifications: Optional[Sequence[str]] = None,
           account_number: Optional[str] = None,
           core_count: Optional[int] = None,
           mgmt_acl_template_uuid: Optional[str] = None,
           project_id: Optional[str] = None,
           hostname: Optional[str] = None,
           interface_count: Optional[int] = None,
           license_file: Optional[str] = None,
           license_file_id: Optional[str] = None,
           license_token: Optional[str] = None,
           diverse_device_id: Optional[str] = None,
           connectivity: Optional[str] = None,
           name: Optional[str] = None,
           cluster_details: Optional[DeviceClusterDetailsArgs] = None,
           order_reference: Optional[str] = None,
           cloud_init_file_id: Optional[str] = None,
           generate_default_password: Optional[bool] = None,
           purchase_order_number: Optional[str] = None,
           secondary_device: Optional[DeviceSecondaryDeviceArgs] = None,
           self_managed: Optional[bool] = None,
           ssh_key: Optional[DeviceSshKeyArgs] = None,
           byol: Optional[bool] = None,
           throughput: Optional[int] = None,
           throughput_unit: Optional[Union[str, ThroughputUnit]] = None,
           tier: Optional[int] = None,
           additional_bandwidth: Optional[int] = None,
           vendor_configuration: Optional[Mapping[str, str]] = None,
           acl_template_id: Optional[str] = None,
           wan_interface_id: Optional[str] = None)func NewDevice(ctx *Context, name string, args DeviceArgs, opts ...ResourceOption) (*Device, error)public Device(string name, DeviceArgs args, CustomResourceOptions? opts = null)
public Device(String name, DeviceArgs args)
public Device(String name, DeviceArgs args, CustomResourceOptions options)
type: equinix:networkedge:Device
properties: # The arguments to resource properties.
options: # Bag of options to control resource's behavior.
Parameters
- name string
 - The unique name of the resource.
 - args DeviceArgs
 - The arguments to resource properties.
 - opts CustomResourceOptions
 - Bag of options to control resource's behavior.
 
- resource_name str
 - The unique name of the resource.
 - args DeviceArgs
 - The arguments to resource properties.
 - opts ResourceOptions
 - Bag of options to control resource's behavior.
 
- ctx Context
 - Context object for the current deployment.
 - name string
 - The unique name of the resource.
 - args DeviceArgs
 - The arguments to resource properties.
 - opts ResourceOption
 - Bag of options to control resource's behavior.
 
- name string
 - The unique name of the resource.
 - args DeviceArgs
 - The arguments to resource properties.
 - opts CustomResourceOptions
 - Bag of options to control resource's behavior.
 
- name String
 - The unique name of the resource.
 - args DeviceArgs
 - The arguments to resource properties.
 - options CustomResourceOptions
 - Bag of options to control resource's behavior.
 
Constructor example
The following reference example uses placeholder values for all input properties.
var equinixDeviceResource = new Equinix.NetworkEdge.Device("equinixDeviceResource", new()
{
    MetroCode = "string",
    Version = "string",
    TypeCode = "string",
    TermLength = 0,
    PackageCode = "string",
    Notifications = new[]
    {
        "string",
    },
    AccountNumber = "string",
    CoreCount = 0,
    MgmtAclTemplateUuid = "string",
    ProjectId = "string",
    Hostname = "string",
    InterfaceCount = 0,
    LicenseFile = "string",
    LicenseFileId = "string",
    LicenseToken = "string",
    DiverseDeviceId = "string",
    Connectivity = "string",
    Name = "string",
    ClusterDetails = new Equinix.NetworkEdge.Inputs.DeviceClusterDetailsArgs
    {
        ClusterName = "string",
        Node0 = new Equinix.NetworkEdge.Inputs.DeviceClusterDetailsNode0Args
        {
            LicenseFileId = "string",
            LicenseToken = "string",
            Name = "string",
            Uuid = "string",
            VendorConfiguration = new Equinix.NetworkEdge.Inputs.DeviceClusterDetailsNode0VendorConfigurationArgs
            {
                ActivationKey = "string",
                AdminPassword = "string",
                Controller1 = "string",
                ControllerFqdn = "string",
                Hostname = "string",
                LicenseId = "string",
                LicenseKey = "string",
                PanoramaAuthKey = "string",
                PanoramaIpAddress = "string",
                PrivateAddress = "string",
                PrivateCidrMask = "string",
                PrivateGateway = "string",
                RootPassword = "string",
            },
        },
        Node1 = new Equinix.NetworkEdge.Inputs.DeviceClusterDetailsNode1Args
        {
            LicenseFileId = "string",
            LicenseToken = "string",
            Name = "string",
            Uuid = "string",
            VendorConfiguration = new Equinix.NetworkEdge.Inputs.DeviceClusterDetailsNode1VendorConfigurationArgs
            {
                ActivationKey = "string",
                AdminPassword = "string",
                Controller1 = "string",
                ControllerFqdn = "string",
                Hostname = "string",
                LicenseId = "string",
                LicenseKey = "string",
                PanoramaAuthKey = "string",
                PanoramaIpAddress = "string",
                PrivateAddress = "string",
                PrivateCidrMask = "string",
                PrivateGateway = "string",
                RootPassword = "string",
            },
        },
        ClusterId = "string",
        NumOfNodes = 0,
    },
    OrderReference = "string",
    CloudInitFileId = "string",
    GenerateDefaultPassword = false,
    PurchaseOrderNumber = "string",
    SecondaryDevice = new Equinix.NetworkEdge.Inputs.DeviceSecondaryDeviceArgs
    {
        AccountNumber = "string",
        Notifications = new[]
        {
            "string",
        },
        Name = "string",
        MetroCode = "string",
        Interfaces = new[]
        {
            new Equinix.NetworkEdge.Inputs.DeviceSecondaryDeviceInterfaceArgs
            {
                AssignedType = "string",
                Id = 0,
                IpAddress = "string",
                MacAddress = "string",
                Name = "string",
                OperationalStatus = "string",
                Status = "string",
                Type = "string",
            },
        },
        AclTemplateId = "string",
        Ibx = "string",
        CloudInitFileId = "string",
        LicenseFile = "string",
        LicenseFileId = "string",
        LicenseStatus = "string",
        LicenseToken = "string",
        Asn = 0,
        MgmtAclTemplateUuid = "string",
        AdditionalBandwidth = 0,
        Hostname = "string",
        ProjectId = "string",
        RedundancyType = "string",
        RedundantId = "string",
        Region = "string",
        SshIpAddress = "string",
        SshIpFqdn = "string",
        SshKey = new Equinix.NetworkEdge.Inputs.DeviceSecondaryDeviceSshKeyArgs
        {
            Username = "string",
            KeyName = "string",
        },
        Status = "string",
        Uuid = "string",
        VendorConfiguration = 
        {
            { "string", "string" },
        },
        WanInterfaceId = "string",
        ZoneCode = "string",
    },
    SelfManaged = false,
    SshKey = new Equinix.NetworkEdge.Inputs.DeviceSshKeyArgs
    {
        Username = "string",
        KeyName = "string",
    },
    Byol = false,
    Throughput = 0,
    ThroughputUnit = "string",
    Tier = 0,
    AdditionalBandwidth = 0,
    VendorConfiguration = 
    {
        { "string", "string" },
    },
    AclTemplateId = "string",
    WanInterfaceId = "string",
});
example, err := networkedge.NewDevice(ctx, "equinixDeviceResource", &networkedge.DeviceArgs{
	MetroCode:   pulumi.String("string"),
	Version:     pulumi.String("string"),
	TypeCode:    pulumi.String("string"),
	TermLength:  pulumi.Int(0),
	PackageCode: pulumi.String("string"),
	Notifications: pulumi.StringArray{
		pulumi.String("string"),
	},
	AccountNumber:       pulumi.String("string"),
	CoreCount:           pulumi.Int(0),
	MgmtAclTemplateUuid: pulumi.String("string"),
	ProjectId:           pulumi.String("string"),
	Hostname:            pulumi.String("string"),
	InterfaceCount:      pulumi.Int(0),
	LicenseFile:         pulumi.String("string"),
	LicenseFileId:       pulumi.String("string"),
	LicenseToken:        pulumi.String("string"),
	DiverseDeviceId:     pulumi.String("string"),
	Connectivity:        pulumi.String("string"),
	Name:                pulumi.String("string"),
	ClusterDetails: &networkedge.DeviceClusterDetailsArgs{
		ClusterName: pulumi.String("string"),
		Node0: &networkedge.DeviceClusterDetailsNode0Args{
			LicenseFileId: pulumi.String("string"),
			LicenseToken:  pulumi.String("string"),
			Name:          pulumi.String("string"),
			Uuid:          pulumi.String("string"),
			VendorConfiguration: &networkedge.DeviceClusterDetailsNode0VendorConfigurationArgs{
				ActivationKey:     pulumi.String("string"),
				AdminPassword:     pulumi.String("string"),
				Controller1:       pulumi.String("string"),
				ControllerFqdn:    pulumi.String("string"),
				Hostname:          pulumi.String("string"),
				LicenseId:         pulumi.String("string"),
				LicenseKey:        pulumi.String("string"),
				PanoramaAuthKey:   pulumi.String("string"),
				PanoramaIpAddress: pulumi.String("string"),
				PrivateAddress:    pulumi.String("string"),
				PrivateCidrMask:   pulumi.String("string"),
				PrivateGateway:    pulumi.String("string"),
				RootPassword:      pulumi.String("string"),
			},
		},
		Node1: &networkedge.DeviceClusterDetailsNode1Args{
			LicenseFileId: pulumi.String("string"),
			LicenseToken:  pulumi.String("string"),
			Name:          pulumi.String("string"),
			Uuid:          pulumi.String("string"),
			VendorConfiguration: &networkedge.DeviceClusterDetailsNode1VendorConfigurationArgs{
				ActivationKey:     pulumi.String("string"),
				AdminPassword:     pulumi.String("string"),
				Controller1:       pulumi.String("string"),
				ControllerFqdn:    pulumi.String("string"),
				Hostname:          pulumi.String("string"),
				LicenseId:         pulumi.String("string"),
				LicenseKey:        pulumi.String("string"),
				PanoramaAuthKey:   pulumi.String("string"),
				PanoramaIpAddress: pulumi.String("string"),
				PrivateAddress:    pulumi.String("string"),
				PrivateCidrMask:   pulumi.String("string"),
				PrivateGateway:    pulumi.String("string"),
				RootPassword:      pulumi.String("string"),
			},
		},
		ClusterId:  pulumi.String("string"),
		NumOfNodes: pulumi.Int(0),
	},
	OrderReference:          pulumi.String("string"),
	CloudInitFileId:         pulumi.String("string"),
	GenerateDefaultPassword: pulumi.Bool(false),
	PurchaseOrderNumber:     pulumi.String("string"),
	SecondaryDevice: &networkedge.DeviceSecondaryDeviceArgs{
		AccountNumber: pulumi.String("string"),
		Notifications: pulumi.StringArray{
			pulumi.String("string"),
		},
		Name:      pulumi.String("string"),
		MetroCode: pulumi.String("string"),
		Interfaces: networkedge.DeviceSecondaryDeviceInterfaceArray{
			&networkedge.DeviceSecondaryDeviceInterfaceArgs{
				AssignedType:      pulumi.String("string"),
				Id:                pulumi.Int(0),
				IpAddress:         pulumi.String("string"),
				MacAddress:        pulumi.String("string"),
				Name:              pulumi.String("string"),
				OperationalStatus: pulumi.String("string"),
				Status:            pulumi.String("string"),
				Type:              pulumi.String("string"),
			},
		},
		AclTemplateId:       pulumi.String("string"),
		Ibx:                 pulumi.String("string"),
		CloudInitFileId:     pulumi.String("string"),
		LicenseFile:         pulumi.String("string"),
		LicenseFileId:       pulumi.String("string"),
		LicenseStatus:       pulumi.String("string"),
		LicenseToken:        pulumi.String("string"),
		Asn:                 pulumi.Int(0),
		MgmtAclTemplateUuid: pulumi.String("string"),
		AdditionalBandwidth: pulumi.Int(0),
		Hostname:            pulumi.String("string"),
		ProjectId:           pulumi.String("string"),
		RedundancyType:      pulumi.String("string"),
		RedundantId:         pulumi.String("string"),
		Region:              pulumi.String("string"),
		SshIpAddress:        pulumi.String("string"),
		SshIpFqdn:           pulumi.String("string"),
		SshKey: &networkedge.DeviceSecondaryDeviceSshKeyArgs{
			Username: pulumi.String("string"),
			KeyName:  pulumi.String("string"),
		},
		Status: pulumi.String("string"),
		Uuid:   pulumi.String("string"),
		VendorConfiguration: pulumi.StringMap{
			"string": pulumi.String("string"),
		},
		WanInterfaceId: pulumi.String("string"),
		ZoneCode:       pulumi.String("string"),
	},
	SelfManaged: pulumi.Bool(false),
	SshKey: &networkedge.DeviceSshKeyArgs{
		Username: pulumi.String("string"),
		KeyName:  pulumi.String("string"),
	},
	Byol:                pulumi.Bool(false),
	Throughput:          pulumi.Int(0),
	ThroughputUnit:      pulumi.String("string"),
	Tier:                pulumi.Int(0),
	AdditionalBandwidth: pulumi.Int(0),
	VendorConfiguration: pulumi.StringMap{
		"string": pulumi.String("string"),
	},
	AclTemplateId:  pulumi.String("string"),
	WanInterfaceId: pulumi.String("string"),
})
var equinixDeviceResource = new Device("equinixDeviceResource", DeviceArgs.builder()
    .metroCode("string")
    .version("string")
    .typeCode("string")
    .termLength(0)
    .packageCode("string")
    .notifications("string")
    .accountNumber("string")
    .coreCount(0)
    .mgmtAclTemplateUuid("string")
    .projectId("string")
    .hostname("string")
    .interfaceCount(0)
    .licenseFile("string")
    .licenseFileId("string")
    .licenseToken("string")
    .diverseDeviceId("string")
    .connectivity("string")
    .name("string")
    .clusterDetails(DeviceClusterDetailsArgs.builder()
        .clusterName("string")
        .node0(DeviceClusterDetailsNode0Args.builder()
            .licenseFileId("string")
            .licenseToken("string")
            .name("string")
            .uuid("string")
            .vendorConfiguration(DeviceClusterDetailsNode0VendorConfigurationArgs.builder()
                .activationKey("string")
                .adminPassword("string")
                .controller1("string")
                .controllerFqdn("string")
                .hostname("string")
                .licenseId("string")
                .licenseKey("string")
                .panoramaAuthKey("string")
                .panoramaIpAddress("string")
                .privateAddress("string")
                .privateCidrMask("string")
                .privateGateway("string")
                .rootPassword("string")
                .build())
            .build())
        .node1(DeviceClusterDetailsNode1Args.builder()
            .licenseFileId("string")
            .licenseToken("string")
            .name("string")
            .uuid("string")
            .vendorConfiguration(DeviceClusterDetailsNode1VendorConfigurationArgs.builder()
                .activationKey("string")
                .adminPassword("string")
                .controller1("string")
                .controllerFqdn("string")
                .hostname("string")
                .licenseId("string")
                .licenseKey("string")
                .panoramaAuthKey("string")
                .panoramaIpAddress("string")
                .privateAddress("string")
                .privateCidrMask("string")
                .privateGateway("string")
                .rootPassword("string")
                .build())
            .build())
        .clusterId("string")
        .numOfNodes(0)
        .build())
    .orderReference("string")
    .cloudInitFileId("string")
    .generateDefaultPassword(false)
    .purchaseOrderNumber("string")
    .secondaryDevice(DeviceSecondaryDeviceArgs.builder()
        .accountNumber("string")
        .notifications("string")
        .name("string")
        .metroCode("string")
        .interfaces(DeviceSecondaryDeviceInterfaceArgs.builder()
            .assignedType("string")
            .id(0)
            .ipAddress("string")
            .macAddress("string")
            .name("string")
            .operationalStatus("string")
            .status("string")
            .type("string")
            .build())
        .aclTemplateId("string")
        .ibx("string")
        .cloudInitFileId("string")
        .licenseFile("string")
        .licenseFileId("string")
        .licenseStatus("string")
        .licenseToken("string")
        .asn(0)
        .mgmtAclTemplateUuid("string")
        .additionalBandwidth(0)
        .hostname("string")
        .projectId("string")
        .redundancyType("string")
        .redundantId("string")
        .region("string")
        .sshIpAddress("string")
        .sshIpFqdn("string")
        .sshKey(DeviceSecondaryDeviceSshKeyArgs.builder()
            .username("string")
            .keyName("string")
            .build())
        .status("string")
        .uuid("string")
        .vendorConfiguration(Map.of("string", "string"))
        .wanInterfaceId("string")
        .zoneCode("string")
        .build())
    .selfManaged(false)
    .sshKey(DeviceSshKeyArgs.builder()
        .username("string")
        .keyName("string")
        .build())
    .byol(false)
    .throughput(0)
    .throughputUnit("string")
    .tier(0)
    .additionalBandwidth(0)
    .vendorConfiguration(Map.of("string", "string"))
    .aclTemplateId("string")
    .wanInterfaceId("string")
    .build());
equinix_device_resource = equinix.networkedge.Device("equinixDeviceResource",
    metro_code="string",
    version="string",
    type_code="string",
    term_length=0,
    package_code="string",
    notifications=["string"],
    account_number="string",
    core_count=0,
    mgmt_acl_template_uuid="string",
    project_id="string",
    hostname="string",
    interface_count=0,
    license_file="string",
    license_file_id="string",
    license_token="string",
    diverse_device_id="string",
    connectivity="string",
    name="string",
    cluster_details={
        "cluster_name": "string",
        "node0": {
            "license_file_id": "string",
            "license_token": "string",
            "name": "string",
            "uuid": "string",
            "vendor_configuration": {
                "activation_key": "string",
                "admin_password": "string",
                "controller1": "string",
                "controller_fqdn": "string",
                "hostname": "string",
                "license_id": "string",
                "license_key": "string",
                "panorama_auth_key": "string",
                "panorama_ip_address": "string",
                "private_address": "string",
                "private_cidr_mask": "string",
                "private_gateway": "string",
                "root_password": "string",
            },
        },
        "node1": {
            "license_file_id": "string",
            "license_token": "string",
            "name": "string",
            "uuid": "string",
            "vendor_configuration": {
                "activation_key": "string",
                "admin_password": "string",
                "controller1": "string",
                "controller_fqdn": "string",
                "hostname": "string",
                "license_id": "string",
                "license_key": "string",
                "panorama_auth_key": "string",
                "panorama_ip_address": "string",
                "private_address": "string",
                "private_cidr_mask": "string",
                "private_gateway": "string",
                "root_password": "string",
            },
        },
        "cluster_id": "string",
        "num_of_nodes": 0,
    },
    order_reference="string",
    cloud_init_file_id="string",
    generate_default_password=False,
    purchase_order_number="string",
    secondary_device={
        "account_number": "string",
        "notifications": ["string"],
        "name": "string",
        "metro_code": "string",
        "interfaces": [{
            "assigned_type": "string",
            "id": 0,
            "ip_address": "string",
            "mac_address": "string",
            "name": "string",
            "operational_status": "string",
            "status": "string",
            "type": "string",
        }],
        "acl_template_id": "string",
        "ibx": "string",
        "cloud_init_file_id": "string",
        "license_file": "string",
        "license_file_id": "string",
        "license_status": "string",
        "license_token": "string",
        "asn": 0,
        "mgmt_acl_template_uuid": "string",
        "additional_bandwidth": 0,
        "hostname": "string",
        "project_id": "string",
        "redundancy_type": "string",
        "redundant_id": "string",
        "region": "string",
        "ssh_ip_address": "string",
        "ssh_ip_fqdn": "string",
        "ssh_key": {
            "username": "string",
            "key_name": "string",
        },
        "status": "string",
        "uuid": "string",
        "vendor_configuration": {
            "string": "string",
        },
        "wan_interface_id": "string",
        "zone_code": "string",
    },
    self_managed=False,
    ssh_key={
        "username": "string",
        "key_name": "string",
    },
    byol=False,
    throughput=0,
    throughput_unit="string",
    tier=0,
    additional_bandwidth=0,
    vendor_configuration={
        "string": "string",
    },
    acl_template_id="string",
    wan_interface_id="string")
const equinixDeviceResource = new equinix.networkedge.Device("equinixDeviceResource", {
    metroCode: "string",
    version: "string",
    typeCode: "string",
    termLength: 0,
    packageCode: "string",
    notifications: ["string"],
    accountNumber: "string",
    coreCount: 0,
    mgmtAclTemplateUuid: "string",
    projectId: "string",
    hostname: "string",
    interfaceCount: 0,
    licenseFile: "string",
    licenseFileId: "string",
    licenseToken: "string",
    diverseDeviceId: "string",
    connectivity: "string",
    name: "string",
    clusterDetails: {
        clusterName: "string",
        node0: {
            licenseFileId: "string",
            licenseToken: "string",
            name: "string",
            uuid: "string",
            vendorConfiguration: {
                activationKey: "string",
                adminPassword: "string",
                controller1: "string",
                controllerFqdn: "string",
                hostname: "string",
                licenseId: "string",
                licenseKey: "string",
                panoramaAuthKey: "string",
                panoramaIpAddress: "string",
                privateAddress: "string",
                privateCidrMask: "string",
                privateGateway: "string",
                rootPassword: "string",
            },
        },
        node1: {
            licenseFileId: "string",
            licenseToken: "string",
            name: "string",
            uuid: "string",
            vendorConfiguration: {
                activationKey: "string",
                adminPassword: "string",
                controller1: "string",
                controllerFqdn: "string",
                hostname: "string",
                licenseId: "string",
                licenseKey: "string",
                panoramaAuthKey: "string",
                panoramaIpAddress: "string",
                privateAddress: "string",
                privateCidrMask: "string",
                privateGateway: "string",
                rootPassword: "string",
            },
        },
        clusterId: "string",
        numOfNodes: 0,
    },
    orderReference: "string",
    cloudInitFileId: "string",
    generateDefaultPassword: false,
    purchaseOrderNumber: "string",
    secondaryDevice: {
        accountNumber: "string",
        notifications: ["string"],
        name: "string",
        metroCode: "string",
        interfaces: [{
            assignedType: "string",
            id: 0,
            ipAddress: "string",
            macAddress: "string",
            name: "string",
            operationalStatus: "string",
            status: "string",
            type: "string",
        }],
        aclTemplateId: "string",
        ibx: "string",
        cloudInitFileId: "string",
        licenseFile: "string",
        licenseFileId: "string",
        licenseStatus: "string",
        licenseToken: "string",
        asn: 0,
        mgmtAclTemplateUuid: "string",
        additionalBandwidth: 0,
        hostname: "string",
        projectId: "string",
        redundancyType: "string",
        redundantId: "string",
        region: "string",
        sshIpAddress: "string",
        sshIpFqdn: "string",
        sshKey: {
            username: "string",
            keyName: "string",
        },
        status: "string",
        uuid: "string",
        vendorConfiguration: {
            string: "string",
        },
        wanInterfaceId: "string",
        zoneCode: "string",
    },
    selfManaged: false,
    sshKey: {
        username: "string",
        keyName: "string",
    },
    byol: false,
    throughput: 0,
    throughputUnit: "string",
    tier: 0,
    additionalBandwidth: 0,
    vendorConfiguration: {
        string: "string",
    },
    aclTemplateId: "string",
    wanInterfaceId: "string",
});
type: equinix:networkedge:Device
properties:
    accountNumber: string
    aclTemplateId: string
    additionalBandwidth: 0
    byol: false
    cloudInitFileId: string
    clusterDetails:
        clusterId: string
        clusterName: string
        node0:
            licenseFileId: string
            licenseToken: string
            name: string
            uuid: string
            vendorConfiguration:
                activationKey: string
                adminPassword: string
                controller1: string
                controllerFqdn: string
                hostname: string
                licenseId: string
                licenseKey: string
                panoramaAuthKey: string
                panoramaIpAddress: string
                privateAddress: string
                privateCidrMask: string
                privateGateway: string
                rootPassword: string
        node1:
            licenseFileId: string
            licenseToken: string
            name: string
            uuid: string
            vendorConfiguration:
                activationKey: string
                adminPassword: string
                controller1: string
                controllerFqdn: string
                hostname: string
                licenseId: string
                licenseKey: string
                panoramaAuthKey: string
                panoramaIpAddress: string
                privateAddress: string
                privateCidrMask: string
                privateGateway: string
                rootPassword: string
        numOfNodes: 0
    connectivity: string
    coreCount: 0
    diverseDeviceId: string
    generateDefaultPassword: false
    hostname: string
    interfaceCount: 0
    licenseFile: string
    licenseFileId: string
    licenseToken: string
    metroCode: string
    mgmtAclTemplateUuid: string
    name: string
    notifications:
        - string
    orderReference: string
    packageCode: string
    projectId: string
    purchaseOrderNumber: string
    secondaryDevice:
        accountNumber: string
        aclTemplateId: string
        additionalBandwidth: 0
        asn: 0
        cloudInitFileId: string
        hostname: string
        ibx: string
        interfaces:
            - assignedType: string
              id: 0
              ipAddress: string
              macAddress: string
              name: string
              operationalStatus: string
              status: string
              type: string
        licenseFile: string
        licenseFileId: string
        licenseStatus: string
        licenseToken: string
        metroCode: string
        mgmtAclTemplateUuid: string
        name: string
        notifications:
            - string
        projectId: string
        redundancyType: string
        redundantId: string
        region: string
        sshIpAddress: string
        sshIpFqdn: string
        sshKey:
            keyName: string
            username: string
        status: string
        uuid: string
        vendorConfiguration:
            string: string
        wanInterfaceId: string
        zoneCode: string
    selfManaged: false
    sshKey:
        keyName: string
        username: string
    termLength: 0
    throughput: 0
    throughputUnit: string
    tier: 0
    typeCode: string
    vendorConfiguration:
        string: string
    version: string
    wanInterfaceId: string
Device Resource Properties
To learn more about resource properties and how to use them, see Inputs and Outputs in the Architecture and Concepts docs.
Inputs
In Python, inputs that are objects can be passed either as argument classes or as dictionary literals.
The Device resource accepts the following input properties:
- Account
Number string - Billing account number for a device.
 - Core
Count int - Number of CPU cores used by device. (NOTE: Use this field to resize your device. When resizing your HA devices, primary device will be upgraded first. If the upgrade failed, device will be automatically rolled back to the previous state with original core number.)
 - Metro
Code string - Device location metro code.
 - Notifications List<string>
 - List of email addresses that will receive device status notifications.
 - Package
Code string - Device software package code.
 - Term
Length int - Device term length.
 - Type
Code string - Device type code.
 - Version string
 - Device software software version.
 - Acl
Template stringId  - Identifier of a WAN interface ACL template that will be applied on the device.
 - Additional
Bandwidth int - Additional Internet bandwidth, in Mbps, that will be allocated to the device (in addition to default 15Mbps).
 - Byol bool
 - Boolean value that determines device licensing mode, i.e., 
bring your own licenseorsubscription(default). - Cloud
Init stringFile Id  - Identifier of a cloud init file that will be applied on the device.
 - Cluster
Details DeviceCluster Details  - An object that has the cluster details. See Cluster Details below for more details.
 - Connectivity string
 - Device accessibility (INTERNET-ACCESS or PRIVATE or INTERNET-ACCESS-WITH-PRVT-MGMT). If not specified, default will be INTERNET-ACCESS
 - Diverse
Device stringId  - Unique ID of an existing device. Use this field to let Equinix know if you want your new device to be in a different location from any existing virtual device. This field is only meaningful for single devices.
 - Generate
Default boolPassword  - Boolean value that determines to create device with or without default password. Use this field to let Equinix know if you want your new device to be create with default admin password. This field is only meaningful for C8000V Autonomous(single/ha) and Fortinet Firewall devices(single/ha/cluster). If not specified, by default device is created with admin password.
 - Hostname string
 - Device hostname prefix.
 - Interface
Count int - Number of network interfaces on a device. If not specified, default number for a given device type will be used.
 - License
File string - Path to the license file that will be uploaded and applied on a device. Applicable for some device types in BYOL licensing mode.
 - License
File stringId  - Identifier of a license file that will be applied on the device.
 - License
Token string - License Token applicable for some device types in BYOL licensing mode.
 - Mgmt
Acl stringTemplate Uuid  - Identifier of an MGMT interface ACL template that will be applied on the device.
 - Name string
 - Device name.
 - Order
Reference string - Name/number used to identify device order on the invoice.
 - Project
Id string - Unique Identifier for the project resource where the device is scoped to.If you leave it out, the device will be created under the default project id of your organization.
 - Purchase
Order stringNumber  - Purchase order number associated with a device order.
 - Secondary
Device DeviceSecondary Device  - Definition of secondary device for redundant device configurations. See Secondary Device below for more details.
 - Self
Managed bool - Boolean value that determines device management mode, i.e., 
self-managedorEquinix-managed(default). - Ssh
Key DeviceSsh Key  - Definition of SSH key that will be provisioned on a device
 - Throughput int
 - Device license throughput.
 - Throughput
Unit string | Pulumi.Equinix. Network Edge. Throughput Unit  - License throughput unit. One of 
MbpsorGbps. - Tier int
 - Select bandwidth tier for your own license, i.e., 
0or1or2or3. Tiers applicable only for C8000V Autonomous or C8000V SDWAN (controller) device types. If not provided, tier is defaulted to '2'. - Vendor
Configuration Dictionary<string, string> - Map of vendor specific configuration parameters for a device (controller1, activationKey, managementType, siteId, systemIpAddress, privateAddress, privateCidrMask, privateGateway, licenseKey, licenseId, panoramaAuthKey, panoramaIpAddress, provisioningKey)
ssh-key- (Optional) Definition of SSH key that will be provisioned on a device (max one key). See SSH Key below for more details.
 - Wan
Interface stringId  - device interface id picked for WAN
 
- Account
Number string - Billing account number for a device.
 - Core
Count int - Number of CPU cores used by device. (NOTE: Use this field to resize your device. When resizing your HA devices, primary device will be upgraded first. If the upgrade failed, device will be automatically rolled back to the previous state with original core number.)
 - Metro
Code string - Device location metro code.
 - Notifications []string
 - List of email addresses that will receive device status notifications.
 - Package
Code string - Device software package code.
 - Term
Length int - Device term length.
 - Type
Code string - Device type code.
 - Version string
 - Device software software version.
 - Acl
Template stringId  - Identifier of a WAN interface ACL template that will be applied on the device.
 - Additional
Bandwidth int - Additional Internet bandwidth, in Mbps, that will be allocated to the device (in addition to default 15Mbps).
 - Byol bool
 - Boolean value that determines device licensing mode, i.e., 
bring your own licenseorsubscription(default). - Cloud
Init stringFile Id  - Identifier of a cloud init file that will be applied on the device.
 - Cluster
Details DeviceCluster Details Args  - An object that has the cluster details. See Cluster Details below for more details.
 - Connectivity string
 - Device accessibility (INTERNET-ACCESS or PRIVATE or INTERNET-ACCESS-WITH-PRVT-MGMT). If not specified, default will be INTERNET-ACCESS
 - Diverse
Device stringId  - Unique ID of an existing device. Use this field to let Equinix know if you want your new device to be in a different location from any existing virtual device. This field is only meaningful for single devices.
 - Generate
Default boolPassword  - Boolean value that determines to create device with or without default password. Use this field to let Equinix know if you want your new device to be create with default admin password. This field is only meaningful for C8000V Autonomous(single/ha) and Fortinet Firewall devices(single/ha/cluster). If not specified, by default device is created with admin password.
 - Hostname string
 - Device hostname prefix.
 - Interface
Count int - Number of network interfaces on a device. If not specified, default number for a given device type will be used.
 - License
File string - Path to the license file that will be uploaded and applied on a device. Applicable for some device types in BYOL licensing mode.
 - License
File stringId  - Identifier of a license file that will be applied on the device.
 - License
Token string - License Token applicable for some device types in BYOL licensing mode.
 - Mgmt
Acl stringTemplate Uuid  - Identifier of an MGMT interface ACL template that will be applied on the device.
 - Name string
 - Device name.
 - Order
Reference string - Name/number used to identify device order on the invoice.
 - Project
Id string - Unique Identifier for the project resource where the device is scoped to.If you leave it out, the device will be created under the default project id of your organization.
 - Purchase
Order stringNumber  - Purchase order number associated with a device order.
 - Secondary
Device DeviceSecondary Device Args  - Definition of secondary device for redundant device configurations. See Secondary Device below for more details.
 - Self
Managed bool - Boolean value that determines device management mode, i.e., 
self-managedorEquinix-managed(default). - Ssh
Key DeviceSsh Key Args  - Definition of SSH key that will be provisioned on a device
 - Throughput int
 - Device license throughput.
 - Throughput
Unit string | ThroughputUnit  - License throughput unit. One of 
MbpsorGbps. - Tier int
 - Select bandwidth tier for your own license, i.e., 
0or1or2or3. Tiers applicable only for C8000V Autonomous or C8000V SDWAN (controller) device types. If not provided, tier is defaulted to '2'. - Vendor
Configuration map[string]string - Map of vendor specific configuration parameters for a device (controller1, activationKey, managementType, siteId, systemIpAddress, privateAddress, privateCidrMask, privateGateway, licenseKey, licenseId, panoramaAuthKey, panoramaIpAddress, provisioningKey)
ssh-key- (Optional) Definition of SSH key that will be provisioned on a device (max one key). See SSH Key below for more details.
 - Wan
Interface stringId  - device interface id picked for WAN
 
- account
Number String - Billing account number for a device.
 - core
Count Integer - Number of CPU cores used by device. (NOTE: Use this field to resize your device. When resizing your HA devices, primary device will be upgraded first. If the upgrade failed, device will be automatically rolled back to the previous state with original core number.)
 - metro
Code String - Device location metro code.
 - notifications List<String>
 - List of email addresses that will receive device status notifications.
 - package
Code String - Device software package code.
 - term
Length Integer - Device term length.
 - type
Code String - Device type code.
 - version String
 - Device software software version.
 - acl
Template StringId  - Identifier of a WAN interface ACL template that will be applied on the device.
 - additional
Bandwidth Integer - Additional Internet bandwidth, in Mbps, that will be allocated to the device (in addition to default 15Mbps).
 - byol Boolean
 - Boolean value that determines device licensing mode, i.e., 
bring your own licenseorsubscription(default). - cloud
Init StringFile Id  - Identifier of a cloud init file that will be applied on the device.
 - cluster
Details DeviceCluster Details  - An object that has the cluster details. See Cluster Details below for more details.
 - connectivity String
 - Device accessibility (INTERNET-ACCESS or PRIVATE or INTERNET-ACCESS-WITH-PRVT-MGMT). If not specified, default will be INTERNET-ACCESS
 - diverse
Device StringId  - Unique ID of an existing device. Use this field to let Equinix know if you want your new device to be in a different location from any existing virtual device. This field is only meaningful for single devices.
 - generate
Default BooleanPassword  - Boolean value that determines to create device with or without default password. Use this field to let Equinix know if you want your new device to be create with default admin password. This field is only meaningful for C8000V Autonomous(single/ha) and Fortinet Firewall devices(single/ha/cluster). If not specified, by default device is created with admin password.
 - hostname String
 - Device hostname prefix.
 - interface
Count Integer - Number of network interfaces on a device. If not specified, default number for a given device type will be used.
 - license
File String - Path to the license file that will be uploaded and applied on a device. Applicable for some device types in BYOL licensing mode.
 - license
File StringId  - Identifier of a license file that will be applied on the device.
 - license
Token String - License Token applicable for some device types in BYOL licensing mode.
 - mgmt
Acl StringTemplate Uuid  - Identifier of an MGMT interface ACL template that will be applied on the device.
 - name String
 - Device name.
 - order
Reference String - Name/number used to identify device order on the invoice.
 - project
Id String - Unique Identifier for the project resource where the device is scoped to.If you leave it out, the device will be created under the default project id of your organization.
 - purchase
Order StringNumber  - Purchase order number associated with a device order.
 - secondary
Device DeviceSecondary Device  - Definition of secondary device for redundant device configurations. See Secondary Device below for more details.
 - self
Managed Boolean - Boolean value that determines device management mode, i.e., 
self-managedorEquinix-managed(default). - ssh
Key DeviceSsh Key  - Definition of SSH key that will be provisioned on a device
 - throughput Integer
 - Device license throughput.
 - throughput
Unit String | ThroughputUnit  - License throughput unit. One of 
MbpsorGbps. - tier Integer
 - Select bandwidth tier for your own license, i.e., 
0or1or2or3. Tiers applicable only for C8000V Autonomous or C8000V SDWAN (controller) device types. If not provided, tier is defaulted to '2'. - vendor
Configuration Map<String,String> - Map of vendor specific configuration parameters for a device (controller1, activationKey, managementType, siteId, systemIpAddress, privateAddress, privateCidrMask, privateGateway, licenseKey, licenseId, panoramaAuthKey, panoramaIpAddress, provisioningKey)
ssh-key- (Optional) Definition of SSH key that will be provisioned on a device (max one key). See SSH Key below for more details.
 - wan
Interface StringId  - device interface id picked for WAN
 
- account
Number string - Billing account number for a device.
 - core
Count number - Number of CPU cores used by device. (NOTE: Use this field to resize your device. When resizing your HA devices, primary device will be upgraded first. If the upgrade failed, device will be automatically rolled back to the previous state with original core number.)
 - metro
Code string - Device location metro code.
 - notifications string[]
 - List of email addresses that will receive device status notifications.
 - package
Code string - Device software package code.
 - term
Length number - Device term length.
 - type
Code string - Device type code.
 - version string
 - Device software software version.
 - acl
Template stringId  - Identifier of a WAN interface ACL template that will be applied on the device.
 - additional
Bandwidth number - Additional Internet bandwidth, in Mbps, that will be allocated to the device (in addition to default 15Mbps).
 - byol boolean
 - Boolean value that determines device licensing mode, i.e., 
bring your own licenseorsubscription(default). - cloud
Init stringFile Id  - Identifier of a cloud init file that will be applied on the device.
 - cluster
Details DeviceCluster Details  - An object that has the cluster details. See Cluster Details below for more details.
 - connectivity string
 - Device accessibility (INTERNET-ACCESS or PRIVATE or INTERNET-ACCESS-WITH-PRVT-MGMT). If not specified, default will be INTERNET-ACCESS
 - diverse
Device stringId  - Unique ID of an existing device. Use this field to let Equinix know if you want your new device to be in a different location from any existing virtual device. This field is only meaningful for single devices.
 - generate
Default booleanPassword  - Boolean value that determines to create device with or without default password. Use this field to let Equinix know if you want your new device to be create with default admin password. This field is only meaningful for C8000V Autonomous(single/ha) and Fortinet Firewall devices(single/ha/cluster). If not specified, by default device is created with admin password.
 - hostname string
 - Device hostname prefix.
 - interface
Count number - Number of network interfaces on a device. If not specified, default number for a given device type will be used.
 - license
File string - Path to the license file that will be uploaded and applied on a device. Applicable for some device types in BYOL licensing mode.
 - license
File stringId  - Identifier of a license file that will be applied on the device.
 - license
Token string - License Token applicable for some device types in BYOL licensing mode.
 - mgmt
Acl stringTemplate Uuid  - Identifier of an MGMT interface ACL template that will be applied on the device.
 - name string
 - Device name.
 - order
Reference string - Name/number used to identify device order on the invoice.
 - project
Id string - Unique Identifier for the project resource where the device is scoped to.If you leave it out, the device will be created under the default project id of your organization.
 - purchase
Order stringNumber  - Purchase order number associated with a device order.
 - secondary
Device DeviceSecondary Device  - Definition of secondary device for redundant device configurations. See Secondary Device below for more details.
 - self
Managed boolean - Boolean value that determines device management mode, i.e., 
self-managedorEquinix-managed(default). - ssh
Key DeviceSsh Key  - Definition of SSH key that will be provisioned on a device
 - throughput number
 - Device license throughput.
 - throughput
Unit string | ThroughputUnit  - License throughput unit. One of 
MbpsorGbps. - tier number
 - Select bandwidth tier for your own license, i.e., 
0or1or2or3. Tiers applicable only for C8000V Autonomous or C8000V SDWAN (controller) device types. If not provided, tier is defaulted to '2'. - vendor
Configuration {[key: string]: string} - Map of vendor specific configuration parameters for a device (controller1, activationKey, managementType, siteId, systemIpAddress, privateAddress, privateCidrMask, privateGateway, licenseKey, licenseId, panoramaAuthKey, panoramaIpAddress, provisioningKey)
ssh-key- (Optional) Definition of SSH key that will be provisioned on a device (max one key). See SSH Key below for more details.
 - wan
Interface stringId  - device interface id picked for WAN
 
- account_
number str - Billing account number for a device.
 - core_
count int - Number of CPU cores used by device. (NOTE: Use this field to resize your device. When resizing your HA devices, primary device will be upgraded first. If the upgrade failed, device will be automatically rolled back to the previous state with original core number.)
 - metro_
code str - Device location metro code.
 - notifications Sequence[str]
 - List of email addresses that will receive device status notifications.
 - package_
code str - Device software package code.
 - term_
length int - Device term length.
 - type_
code str - Device type code.
 - version str
 - Device software software version.
 - acl_
template_ strid  - Identifier of a WAN interface ACL template that will be applied on the device.
 - additional_
bandwidth int - Additional Internet bandwidth, in Mbps, that will be allocated to the device (in addition to default 15Mbps).
 - byol bool
 - Boolean value that determines device licensing mode, i.e., 
bring your own licenseorsubscription(default). - cloud_
init_ strfile_ id  - Identifier of a cloud init file that will be applied on the device.
 - cluster_
details DeviceCluster Details Args  - An object that has the cluster details. See Cluster Details below for more details.
 - connectivity str
 - Device accessibility (INTERNET-ACCESS or PRIVATE or INTERNET-ACCESS-WITH-PRVT-MGMT). If not specified, default will be INTERNET-ACCESS
 - diverse_
device_ strid  - Unique ID of an existing device. Use this field to let Equinix know if you want your new device to be in a different location from any existing virtual device. This field is only meaningful for single devices.
 - generate_
default_ boolpassword  - Boolean value that determines to create device with or without default password. Use this field to let Equinix know if you want your new device to be create with default admin password. This field is only meaningful for C8000V Autonomous(single/ha) and Fortinet Firewall devices(single/ha/cluster). If not specified, by default device is created with admin password.
 - hostname str
 - Device hostname prefix.
 - interface_
count int - Number of network interfaces on a device. If not specified, default number for a given device type will be used.
 - license_
file str - Path to the license file that will be uploaded and applied on a device. Applicable for some device types in BYOL licensing mode.
 - license_
file_ strid  - Identifier of a license file that will be applied on the device.
 - license_
token str - License Token applicable for some device types in BYOL licensing mode.
 - mgmt_
acl_ strtemplate_ uuid  - Identifier of an MGMT interface ACL template that will be applied on the device.
 - name str
 - Device name.
 - order_
reference str - Name/number used to identify device order on the invoice.
 - project_
id str - Unique Identifier for the project resource where the device is scoped to.If you leave it out, the device will be created under the default project id of your organization.
 - purchase_
order_ strnumber  - Purchase order number associated with a device order.
 - secondary_
device DeviceSecondary Device Args  - Definition of secondary device for redundant device configurations. See Secondary Device below for more details.
 - self_
managed bool - Boolean value that determines device management mode, i.e., 
self-managedorEquinix-managed(default). - ssh_
key DeviceSsh Key Args  - Definition of SSH key that will be provisioned on a device
 - throughput int
 - Device license throughput.
 - throughput_
unit str | ThroughputUnit  - License throughput unit. One of 
MbpsorGbps. - tier int
 - Select bandwidth tier for your own license, i.e., 
0or1or2or3. Tiers applicable only for C8000V Autonomous or C8000V SDWAN (controller) device types. If not provided, tier is defaulted to '2'. - vendor_
configuration Mapping[str, str] - Map of vendor specific configuration parameters for a device (controller1, activationKey, managementType, siteId, systemIpAddress, privateAddress, privateCidrMask, privateGateway, licenseKey, licenseId, panoramaAuthKey, panoramaIpAddress, provisioningKey)
ssh-key- (Optional) Definition of SSH key that will be provisioned on a device (max one key). See SSH Key below for more details.
 - wan_
interface_ strid  - device interface id picked for WAN
 
- account
Number String - Billing account number for a device.
 - core
Count Number - Number of CPU cores used by device. (NOTE: Use this field to resize your device. When resizing your HA devices, primary device will be upgraded first. If the upgrade failed, device will be automatically rolled back to the previous state with original core number.)
 - metro
Code String - Device location metro code.
 - notifications List<String>
 - List of email addresses that will receive device status notifications.
 - package
Code String - Device software package code.
 - term
Length Number - Device term length.
 - type
Code String - Device type code.
 - version String
 - Device software software version.
 - acl
Template StringId  - Identifier of a WAN interface ACL template that will be applied on the device.
 - additional
Bandwidth Number - Additional Internet bandwidth, in Mbps, that will be allocated to the device (in addition to default 15Mbps).
 - byol Boolean
 - Boolean value that determines device licensing mode, i.e., 
bring your own licenseorsubscription(default). - cloud
Init StringFile Id  - Identifier of a cloud init file that will be applied on the device.
 - cluster
Details Property Map - An object that has the cluster details. See Cluster Details below for more details.
 - connectivity String
 - Device accessibility (INTERNET-ACCESS or PRIVATE or INTERNET-ACCESS-WITH-PRVT-MGMT). If not specified, default will be INTERNET-ACCESS
 - diverse
Device StringId  - Unique ID of an existing device. Use this field to let Equinix know if you want your new device to be in a different location from any existing virtual device. This field is only meaningful for single devices.
 - generate
Default BooleanPassword  - Boolean value that determines to create device with or without default password. Use this field to let Equinix know if you want your new device to be create with default admin password. This field is only meaningful for C8000V Autonomous(single/ha) and Fortinet Firewall devices(single/ha/cluster). If not specified, by default device is created with admin password.
 - hostname String
 - Device hostname prefix.
 - interface
Count Number - Number of network interfaces on a device. If not specified, default number for a given device type will be used.
 - license
File String - Path to the license file that will be uploaded and applied on a device. Applicable for some device types in BYOL licensing mode.
 - license
File StringId  - Identifier of a license file that will be applied on the device.
 - license
Token String - License Token applicable for some device types in BYOL licensing mode.
 - mgmt
Acl StringTemplate Uuid  - Identifier of an MGMT interface ACL template that will be applied on the device.
 - name String
 - Device name.
 - order
Reference String - Name/number used to identify device order on the invoice.
 - project
Id String - Unique Identifier for the project resource where the device is scoped to.If you leave it out, the device will be created under the default project id of your organization.
 - purchase
Order StringNumber  - Purchase order number associated with a device order.
 - secondary
Device Property Map - Definition of secondary device for redundant device configurations. See Secondary Device below for more details.
 - self
Managed Boolean - Boolean value that determines device management mode, i.e., 
self-managedorEquinix-managed(default). - ssh
Key Property Map - Definition of SSH key that will be provisioned on a device
 - throughput Number
 - Device license throughput.
 - throughput
Unit String | "Mbps" | "Gbps" - License throughput unit. One of 
MbpsorGbps. - tier Number
 - Select bandwidth tier for your own license, i.e., 
0or1or2or3. Tiers applicable only for C8000V Autonomous or C8000V SDWAN (controller) device types. If not provided, tier is defaulted to '2'. - vendor
Configuration Map<String> - Map of vendor specific configuration parameters for a device (controller1, activationKey, managementType, siteId, systemIpAddress, privateAddress, privateCidrMask, privateGateway, licenseKey, licenseId, panoramaAuthKey, panoramaIpAddress, provisioningKey)
ssh-key- (Optional) Definition of SSH key that will be provisioned on a device (max one key). See SSH Key below for more details.
 - wan
Interface StringId  - device interface id picked for WAN
 
Outputs
All input properties are implicitly available as output properties. Additionally, the Device resource produces the following output properties:
- Asn int
 - (Autonomous System Number) Unique identifier for a network on the internet.
 - Diverse
Device stringName  - Name of the device with diverse device UUID. This field is returned in device details if the device is created by passing diverse_device_id.
 - Ibx string
 - Device location Equinix Business Exchange name.
 - Id string
 - The provider-assigned unique ID for this managed resource.
 - Interfaces
List<Device
Interface>  - List of device interfaces. See Interface Attribute below for more details.
 - License
Status string - Device license registration status. Possible values are 
APPLYING_LICENSE,REGISTERED,APPLIED,WAITING_FOR_CLUSTER_SETUP,REGISTRATION_FAILED. - Redundancy
Type string - Device redundancy type applicable for HA devices, either primary or secondary.
 - Redundant
Id string - Unique identifier for a redundant device applicable for HA devices.
 - Region string
 - Device location region.
 - Ssh
Ip stringAddress  - IP address of SSH enabled interface on the device.
 - Ssh
Ip stringFqdn  - FQDN of SSH enabled interface on the device.
 - Status string
 - interface status. One of 
AVAILABLE,RESERVED,ASSIGNED. - Uuid string
 - Device unique identifier.
 - Zone
Code string - Device location zone code.
 
- Asn int
 - (Autonomous System Number) Unique identifier for a network on the internet.
 - Diverse
Device stringName  - Name of the device with diverse device UUID. This field is returned in device details if the device is created by passing diverse_device_id.
 - Ibx string
 - Device location Equinix Business Exchange name.
 - Id string
 - The provider-assigned unique ID for this managed resource.
 - Interfaces
[]Device
Interface  - List of device interfaces. See Interface Attribute below for more details.
 - License
Status string - Device license registration status. Possible values are 
APPLYING_LICENSE,REGISTERED,APPLIED,WAITING_FOR_CLUSTER_SETUP,REGISTRATION_FAILED. - Redundancy
Type string - Device redundancy type applicable for HA devices, either primary or secondary.
 - Redundant
Id string - Unique identifier for a redundant device applicable for HA devices.
 - Region string
 - Device location region.
 - Ssh
Ip stringAddress  - IP address of SSH enabled interface on the device.
 - Ssh
Ip stringFqdn  - FQDN of SSH enabled interface on the device.
 - Status string
 - interface status. One of 
AVAILABLE,RESERVED,ASSIGNED. - Uuid string
 - Device unique identifier.
 - Zone
Code string - Device location zone code.
 
- asn Integer
 - (Autonomous System Number) Unique identifier for a network on the internet.
 - diverse
Device StringName  - Name of the device with diverse device UUID. This field is returned in device details if the device is created by passing diverse_device_id.
 - ibx String
 - Device location Equinix Business Exchange name.
 - id String
 - The provider-assigned unique ID for this managed resource.
 - interfaces
List<Device
Interface>  - List of device interfaces. See Interface Attribute below for more details.
 - license
Status String - Device license registration status. Possible values are 
APPLYING_LICENSE,REGISTERED,APPLIED,WAITING_FOR_CLUSTER_SETUP,REGISTRATION_FAILED. - redundancy
Type String - Device redundancy type applicable for HA devices, either primary or secondary.
 - redundant
Id String - Unique identifier for a redundant device applicable for HA devices.
 - region String
 - Device location region.
 - ssh
Ip StringAddress  - IP address of SSH enabled interface on the device.
 - ssh
Ip StringFqdn  - FQDN of SSH enabled interface on the device.
 - status String
 - interface status. One of 
AVAILABLE,RESERVED,ASSIGNED. - uuid String
 - Device unique identifier.
 - zone
Code String - Device location zone code.
 
- asn number
 - (Autonomous System Number) Unique identifier for a network on the internet.
 - diverse
Device stringName  - Name of the device with diverse device UUID. This field is returned in device details if the device is created by passing diverse_device_id.
 - ibx string
 - Device location Equinix Business Exchange name.
 - id string
 - The provider-assigned unique ID for this managed resource.
 - interfaces
Device
Interface[]  - List of device interfaces. See Interface Attribute below for more details.
 - license
Status string - Device license registration status. Possible values are 
APPLYING_LICENSE,REGISTERED,APPLIED,WAITING_FOR_CLUSTER_SETUP,REGISTRATION_FAILED. - redundancy
Type string - Device redundancy type applicable for HA devices, either primary or secondary.
 - redundant
Id string - Unique identifier for a redundant device applicable for HA devices.
 - region string
 - Device location region.
 - ssh
Ip stringAddress  - IP address of SSH enabled interface on the device.
 - ssh
Ip stringFqdn  - FQDN of SSH enabled interface on the device.
 - status string
 - interface status. One of 
AVAILABLE,RESERVED,ASSIGNED. - uuid string
 - Device unique identifier.
 - zone
Code string - Device location zone code.
 
- asn int
 - (Autonomous System Number) Unique identifier for a network on the internet.
 - diverse_
device_ strname  - Name of the device with diverse device UUID. This field is returned in device details if the device is created by passing diverse_device_id.
 - ibx str
 - Device location Equinix Business Exchange name.
 - id str
 - The provider-assigned unique ID for this managed resource.
 - interfaces
Sequence[Device
Interface]  - List of device interfaces. See Interface Attribute below for more details.
 - license_
status str - Device license registration status. Possible values are 
APPLYING_LICENSE,REGISTERED,APPLIED,WAITING_FOR_CLUSTER_SETUP,REGISTRATION_FAILED. - redundancy_
type str - Device redundancy type applicable for HA devices, either primary or secondary.
 - redundant_
id str - Unique identifier for a redundant device applicable for HA devices.
 - region str
 - Device location region.
 - ssh_
ip_ straddress  - IP address of SSH enabled interface on the device.
 - ssh_
ip_ strfqdn  - FQDN of SSH enabled interface on the device.
 - status str
 - interface status. One of 
AVAILABLE,RESERVED,ASSIGNED. - uuid str
 - Device unique identifier.
 - zone_
code str - Device location zone code.
 
- asn Number
 - (Autonomous System Number) Unique identifier for a network on the internet.
 - diverse
Device StringName  - Name of the device with diverse device UUID. This field is returned in device details if the device is created by passing diverse_device_id.
 - ibx String
 - Device location Equinix Business Exchange name.
 - id String
 - The provider-assigned unique ID for this managed resource.
 - interfaces List<Property Map>
 - List of device interfaces. See Interface Attribute below for more details.
 - license
Status String - Device license registration status. Possible values are 
APPLYING_LICENSE,REGISTERED,APPLIED,WAITING_FOR_CLUSTER_SETUP,REGISTRATION_FAILED. - redundancy
Type String - Device redundancy type applicable for HA devices, either primary or secondary.
 - redundant
Id String - Unique identifier for a redundant device applicable for HA devices.
 - region String
 - Device location region.
 - ssh
Ip StringAddress  - IP address of SSH enabled interface on the device.
 - ssh
Ip StringFqdn  - FQDN of SSH enabled interface on the device.
 - status String
 - interface status. One of 
AVAILABLE,RESERVED,ASSIGNED. - uuid String
 - Device unique identifier.
 - zone
Code String - Device location zone code.
 
Look up Existing Device Resource
Get an existing Device resource’s state with the given name, ID, and optional extra properties used to qualify the lookup.
public static get(name: string, id: Input<ID>, state?: DeviceState, opts?: CustomResourceOptions): Device@staticmethod
def get(resource_name: str,
        id: str,
        opts: Optional[ResourceOptions] = None,
        account_number: Optional[str] = None,
        acl_template_id: Optional[str] = None,
        additional_bandwidth: Optional[int] = None,
        asn: Optional[int] = None,
        byol: Optional[bool] = None,
        cloud_init_file_id: Optional[str] = None,
        cluster_details: Optional[DeviceClusterDetailsArgs] = None,
        connectivity: Optional[str] = None,
        core_count: Optional[int] = None,
        diverse_device_id: Optional[str] = None,
        diverse_device_name: Optional[str] = None,
        generate_default_password: Optional[bool] = None,
        hostname: Optional[str] = None,
        ibx: Optional[str] = None,
        interface_count: Optional[int] = None,
        interfaces: Optional[Sequence[DeviceInterfaceArgs]] = None,
        license_file: Optional[str] = None,
        license_file_id: Optional[str] = None,
        license_status: Optional[str] = None,
        license_token: Optional[str] = None,
        metro_code: Optional[str] = None,
        mgmt_acl_template_uuid: Optional[str] = None,
        name: Optional[str] = None,
        notifications: Optional[Sequence[str]] = None,
        order_reference: Optional[str] = None,
        package_code: Optional[str] = None,
        project_id: Optional[str] = None,
        purchase_order_number: Optional[str] = None,
        redundancy_type: Optional[str] = None,
        redundant_id: Optional[str] = None,
        region: Optional[str] = None,
        secondary_device: Optional[DeviceSecondaryDeviceArgs] = None,
        self_managed: Optional[bool] = None,
        ssh_ip_address: Optional[str] = None,
        ssh_ip_fqdn: Optional[str] = None,
        ssh_key: Optional[DeviceSshKeyArgs] = None,
        status: Optional[str] = None,
        term_length: Optional[int] = None,
        throughput: Optional[int] = None,
        throughput_unit: Optional[Union[str, ThroughputUnit]] = None,
        tier: Optional[int] = None,
        type_code: Optional[str] = None,
        uuid: Optional[str] = None,
        vendor_configuration: Optional[Mapping[str, str]] = None,
        version: Optional[str] = None,
        wan_interface_id: Optional[str] = None,
        zone_code: Optional[str] = None) -> Devicefunc GetDevice(ctx *Context, name string, id IDInput, state *DeviceState, opts ...ResourceOption) (*Device, error)public static Device Get(string name, Input<string> id, DeviceState? state, CustomResourceOptions? opts = null)public static Device get(String name, Output<String> id, DeviceState state, CustomResourceOptions options)resources:  _:    type: equinix:networkedge:Device    get:      id: ${id}- name
 - The unique name of the resulting resource.
 - id
 - The unique provider ID of the resource to lookup.
 - state
 - Any extra arguments used during the lookup.
 - opts
 - A bag of options that control this resource's behavior.
 
- resource_name
 - The unique name of the resulting resource.
 - id
 - The unique provider ID of the resource to lookup.
 
- name
 - The unique name of the resulting resource.
 - id
 - The unique provider ID of the resource to lookup.
 - state
 - Any extra arguments used during the lookup.
 - opts
 - A bag of options that control this resource's behavior.
 
- name
 - The unique name of the resulting resource.
 - id
 - The unique provider ID of the resource to lookup.
 - state
 - Any extra arguments used during the lookup.
 - opts
 - A bag of options that control this resource's behavior.
 
- name
 - The unique name of the resulting resource.
 - id
 - The unique provider ID of the resource to lookup.
 - state
 - Any extra arguments used during the lookup.
 - opts
 - A bag of options that control this resource's behavior.
 
- Account
Number string - Billing account number for a device.
 - Acl
Template stringId  - Identifier of a WAN interface ACL template that will be applied on the device.
 - Additional
Bandwidth int - Additional Internet bandwidth, in Mbps, that will be allocated to the device (in addition to default 15Mbps).
 - Asn int
 - (Autonomous System Number) Unique identifier for a network on the internet.
 - Byol bool
 - Boolean value that determines device licensing mode, i.e., 
bring your own licenseorsubscription(default). - Cloud
Init stringFile Id  - Identifier of a cloud init file that will be applied on the device.
 - Cluster
Details DeviceCluster Details  - An object that has the cluster details. See Cluster Details below for more details.
 - Connectivity string
 - Device accessibility (INTERNET-ACCESS or PRIVATE or INTERNET-ACCESS-WITH-PRVT-MGMT). If not specified, default will be INTERNET-ACCESS
 - Core
Count int - Number of CPU cores used by device. (NOTE: Use this field to resize your device. When resizing your HA devices, primary device will be upgraded first. If the upgrade failed, device will be automatically rolled back to the previous state with original core number.)
 - Diverse
Device stringId  - Unique ID of an existing device. Use this field to let Equinix know if you want your new device to be in a different location from any existing virtual device. This field is only meaningful for single devices.
 - Diverse
Device stringName  - Name of the device with diverse device UUID. This field is returned in device details if the device is created by passing diverse_device_id.
 - Generate
Default boolPassword  - Boolean value that determines to create device with or without default password. Use this field to let Equinix know if you want your new device to be create with default admin password. This field is only meaningful for C8000V Autonomous(single/ha) and Fortinet Firewall devices(single/ha/cluster). If not specified, by default device is created with admin password.
 - Hostname string
 - Device hostname prefix.
 - Ibx string
 - Device location Equinix Business Exchange name.
 - Interface
Count int - Number of network interfaces on a device. If not specified, default number for a given device type will be used.
 - Interfaces
List<Device
Interface>  - List of device interfaces. See Interface Attribute below for more details.
 - License
File string - Path to the license file that will be uploaded and applied on a device. Applicable for some device types in BYOL licensing mode.
 - License
File stringId  - Identifier of a license file that will be applied on the device.
 - License
Status string - Device license registration status. Possible values are 
APPLYING_LICENSE,REGISTERED,APPLIED,WAITING_FOR_CLUSTER_SETUP,REGISTRATION_FAILED. - License
Token string - License Token applicable for some device types in BYOL licensing mode.
 - Metro
Code string - Device location metro code.
 - Mgmt
Acl stringTemplate Uuid  - Identifier of an MGMT interface ACL template that will be applied on the device.
 - Name string
 - Device name.
 - Notifications List<string>
 - List of email addresses that will receive device status notifications.
 - Order
Reference string - Name/number used to identify device order on the invoice.
 - Package
Code string - Device software package code.
 - Project
Id string - Unique Identifier for the project resource where the device is scoped to.If you leave it out, the device will be created under the default project id of your organization.
 - Purchase
Order stringNumber  - Purchase order number associated with a device order.
 - Redundancy
Type string - Device redundancy type applicable for HA devices, either primary or secondary.
 - Redundant
Id string - Unique identifier for a redundant device applicable for HA devices.
 - Region string
 - Device location region.
 - Secondary
Device DeviceSecondary Device  - Definition of secondary device for redundant device configurations. See Secondary Device below for more details.
 - Self
Managed bool - Boolean value that determines device management mode, i.e., 
self-managedorEquinix-managed(default). - Ssh
Ip stringAddress  - IP address of SSH enabled interface on the device.
 - Ssh
Ip stringFqdn  - FQDN of SSH enabled interface on the device.
 - Ssh
Key DeviceSsh Key  - Definition of SSH key that will be provisioned on a device
 - Status string
 - interface status. One of 
AVAILABLE,RESERVED,ASSIGNED. - Term
Length int - Device term length.
 - Throughput int
 - Device license throughput.
 - Throughput
Unit string | Pulumi.Equinix. Network Edge. Throughput Unit  - License throughput unit. One of 
MbpsorGbps. - Tier int
 - Select bandwidth tier for your own license, i.e., 
0or1or2or3. Tiers applicable only for C8000V Autonomous or C8000V SDWAN (controller) device types. If not provided, tier is defaulted to '2'. - Type
Code string - Device type code.
 - Uuid string
 - Device unique identifier.
 - Vendor
Configuration Dictionary<string, string> - Map of vendor specific configuration parameters for a device (controller1, activationKey, managementType, siteId, systemIpAddress, privateAddress, privateCidrMask, privateGateway, licenseKey, licenseId, panoramaAuthKey, panoramaIpAddress, provisioningKey)
ssh-key- (Optional) Definition of SSH key that will be provisioned on a device (max one key). See SSH Key below for more details.
 - Version string
 - Device software software version.
 - Wan
Interface stringId  - device interface id picked for WAN
 - Zone
Code string - Device location zone code.
 
- Account
Number string - Billing account number for a device.
 - Acl
Template stringId  - Identifier of a WAN interface ACL template that will be applied on the device.
 - Additional
Bandwidth int - Additional Internet bandwidth, in Mbps, that will be allocated to the device (in addition to default 15Mbps).
 - Asn int
 - (Autonomous System Number) Unique identifier for a network on the internet.
 - Byol bool
 - Boolean value that determines device licensing mode, i.e., 
bring your own licenseorsubscription(default). - Cloud
Init stringFile Id  - Identifier of a cloud init file that will be applied on the device.
 - Cluster
Details DeviceCluster Details Args  - An object that has the cluster details. See Cluster Details below for more details.
 - Connectivity string
 - Device accessibility (INTERNET-ACCESS or PRIVATE or INTERNET-ACCESS-WITH-PRVT-MGMT). If not specified, default will be INTERNET-ACCESS
 - Core
Count int - Number of CPU cores used by device. (NOTE: Use this field to resize your device. When resizing your HA devices, primary device will be upgraded first. If the upgrade failed, device will be automatically rolled back to the previous state with original core number.)
 - Diverse
Device stringId  - Unique ID of an existing device. Use this field to let Equinix know if you want your new device to be in a different location from any existing virtual device. This field is only meaningful for single devices.
 - Diverse
Device stringName  - Name of the device with diverse device UUID. This field is returned in device details if the device is created by passing diverse_device_id.
 - Generate
Default boolPassword  - Boolean value that determines to create device with or without default password. Use this field to let Equinix know if you want your new device to be create with default admin password. This field is only meaningful for C8000V Autonomous(single/ha) and Fortinet Firewall devices(single/ha/cluster). If not specified, by default device is created with admin password.
 - Hostname string
 - Device hostname prefix.
 - Ibx string
 - Device location Equinix Business Exchange name.
 - Interface
Count int - Number of network interfaces on a device. If not specified, default number for a given device type will be used.
 - Interfaces
[]Device
Interface Args  - List of device interfaces. See Interface Attribute below for more details.
 - License
File string - Path to the license file that will be uploaded and applied on a device. Applicable for some device types in BYOL licensing mode.
 - License
File stringId  - Identifier of a license file that will be applied on the device.
 - License
Status string - Device license registration status. Possible values are 
APPLYING_LICENSE,REGISTERED,APPLIED,WAITING_FOR_CLUSTER_SETUP,REGISTRATION_FAILED. - License
Token string - License Token applicable for some device types in BYOL licensing mode.
 - Metro
Code string - Device location metro code.
 - Mgmt
Acl stringTemplate Uuid  - Identifier of an MGMT interface ACL template that will be applied on the device.
 - Name string
 - Device name.
 - Notifications []string
 - List of email addresses that will receive device status notifications.
 - Order
Reference string - Name/number used to identify device order on the invoice.
 - Package
Code string - Device software package code.
 - Project
Id string - Unique Identifier for the project resource where the device is scoped to.If you leave it out, the device will be created under the default project id of your organization.
 - Purchase
Order stringNumber  - Purchase order number associated with a device order.
 - Redundancy
Type string - Device redundancy type applicable for HA devices, either primary or secondary.
 - Redundant
Id string - Unique identifier for a redundant device applicable for HA devices.
 - Region string
 - Device location region.
 - Secondary
Device DeviceSecondary Device Args  - Definition of secondary device for redundant device configurations. See Secondary Device below for more details.
 - Self
Managed bool - Boolean value that determines device management mode, i.e., 
self-managedorEquinix-managed(default). - Ssh
Ip stringAddress  - IP address of SSH enabled interface on the device.
 - Ssh
Ip stringFqdn  - FQDN of SSH enabled interface on the device.
 - Ssh
Key DeviceSsh Key Args  - Definition of SSH key that will be provisioned on a device
 - Status string
 - interface status. One of 
AVAILABLE,RESERVED,ASSIGNED. - Term
Length int - Device term length.
 - Throughput int
 - Device license throughput.
 - Throughput
Unit string | ThroughputUnit  - License throughput unit. One of 
MbpsorGbps. - Tier int
 - Select bandwidth tier for your own license, i.e., 
0or1or2or3. Tiers applicable only for C8000V Autonomous or C8000V SDWAN (controller) device types. If not provided, tier is defaulted to '2'. - Type
Code string - Device type code.
 - Uuid string
 - Device unique identifier.
 - Vendor
Configuration map[string]string - Map of vendor specific configuration parameters for a device (controller1, activationKey, managementType, siteId, systemIpAddress, privateAddress, privateCidrMask, privateGateway, licenseKey, licenseId, panoramaAuthKey, panoramaIpAddress, provisioningKey)
ssh-key- (Optional) Definition of SSH key that will be provisioned on a device (max one key). See SSH Key below for more details.
 - Version string
 - Device software software version.
 - Wan
Interface stringId  - device interface id picked for WAN
 - Zone
Code string - Device location zone code.
 
- account
Number String - Billing account number for a device.
 - acl
Template StringId  - Identifier of a WAN interface ACL template that will be applied on the device.
 - additional
Bandwidth Integer - Additional Internet bandwidth, in Mbps, that will be allocated to the device (in addition to default 15Mbps).
 - asn Integer
 - (Autonomous System Number) Unique identifier for a network on the internet.
 - byol Boolean
 - Boolean value that determines device licensing mode, i.e., 
bring your own licenseorsubscription(default). - cloud
Init StringFile Id  - Identifier of a cloud init file that will be applied on the device.
 - cluster
Details DeviceCluster Details  - An object that has the cluster details. See Cluster Details below for more details.
 - connectivity String
 - Device accessibility (INTERNET-ACCESS or PRIVATE or INTERNET-ACCESS-WITH-PRVT-MGMT). If not specified, default will be INTERNET-ACCESS
 - core
Count Integer - Number of CPU cores used by device. (NOTE: Use this field to resize your device. When resizing your HA devices, primary device will be upgraded first. If the upgrade failed, device will be automatically rolled back to the previous state with original core number.)
 - diverse
Device StringId  - Unique ID of an existing device. Use this field to let Equinix know if you want your new device to be in a different location from any existing virtual device. This field is only meaningful for single devices.
 - diverse
Device StringName  - Name of the device with diverse device UUID. This field is returned in device details if the device is created by passing diverse_device_id.
 - generate
Default BooleanPassword  - Boolean value that determines to create device with or without default password. Use this field to let Equinix know if you want your new device to be create with default admin password. This field is only meaningful for C8000V Autonomous(single/ha) and Fortinet Firewall devices(single/ha/cluster). If not specified, by default device is created with admin password.
 - hostname String
 - Device hostname prefix.
 - ibx String
 - Device location Equinix Business Exchange name.
 - interface
Count Integer - Number of network interfaces on a device. If not specified, default number for a given device type will be used.
 - interfaces
List<Device
Interface>  - List of device interfaces. See Interface Attribute below for more details.
 - license
File String - Path to the license file that will be uploaded and applied on a device. Applicable for some device types in BYOL licensing mode.
 - license
File StringId  - Identifier of a license file that will be applied on the device.
 - license
Status String - Device license registration status. Possible values are 
APPLYING_LICENSE,REGISTERED,APPLIED,WAITING_FOR_CLUSTER_SETUP,REGISTRATION_FAILED. - license
Token String - License Token applicable for some device types in BYOL licensing mode.
 - metro
Code String - Device location metro code.
 - mgmt
Acl StringTemplate Uuid  - Identifier of an MGMT interface ACL template that will be applied on the device.
 - name String
 - Device name.
 - notifications List<String>
 - List of email addresses that will receive device status notifications.
 - order
Reference String - Name/number used to identify device order on the invoice.
 - package
Code String - Device software package code.
 - project
Id String - Unique Identifier for the project resource where the device is scoped to.If you leave it out, the device will be created under the default project id of your organization.
 - purchase
Order StringNumber  - Purchase order number associated with a device order.
 - redundancy
Type String - Device redundancy type applicable for HA devices, either primary or secondary.
 - redundant
Id String - Unique identifier for a redundant device applicable for HA devices.
 - region String
 - Device location region.
 - secondary
Device DeviceSecondary Device  - Definition of secondary device for redundant device configurations. See Secondary Device below for more details.
 - self
Managed Boolean - Boolean value that determines device management mode, i.e., 
self-managedorEquinix-managed(default). - ssh
Ip StringAddress  - IP address of SSH enabled interface on the device.
 - ssh
Ip StringFqdn  - FQDN of SSH enabled interface on the device.
 - ssh
Key DeviceSsh Key  - Definition of SSH key that will be provisioned on a device
 - status String
 - interface status. One of 
AVAILABLE,RESERVED,ASSIGNED. - term
Length Integer - Device term length.
 - throughput Integer
 - Device license throughput.
 - throughput
Unit String | ThroughputUnit  - License throughput unit. One of 
MbpsorGbps. - tier Integer
 - Select bandwidth tier for your own license, i.e., 
0or1or2or3. Tiers applicable only for C8000V Autonomous or C8000V SDWAN (controller) device types. If not provided, tier is defaulted to '2'. - type
Code String - Device type code.
 - uuid String
 - Device unique identifier.
 - vendor
Configuration Map<String,String> - Map of vendor specific configuration parameters for a device (controller1, activationKey, managementType, siteId, systemIpAddress, privateAddress, privateCidrMask, privateGateway, licenseKey, licenseId, panoramaAuthKey, panoramaIpAddress, provisioningKey)
ssh-key- (Optional) Definition of SSH key that will be provisioned on a device (max one key). See SSH Key below for more details.
 - version String
 - Device software software version.
 - wan
Interface StringId  - device interface id picked for WAN
 - zone
Code String - Device location zone code.
 
- account
Number string - Billing account number for a device.
 - acl
Template stringId  - Identifier of a WAN interface ACL template that will be applied on the device.
 - additional
Bandwidth number - Additional Internet bandwidth, in Mbps, that will be allocated to the device (in addition to default 15Mbps).
 - asn number
 - (Autonomous System Number) Unique identifier for a network on the internet.
 - byol boolean
 - Boolean value that determines device licensing mode, i.e., 
bring your own licenseorsubscription(default). - cloud
Init stringFile Id  - Identifier of a cloud init file that will be applied on the device.
 - cluster
Details DeviceCluster Details  - An object that has the cluster details. See Cluster Details below for more details.
 - connectivity string
 - Device accessibility (INTERNET-ACCESS or PRIVATE or INTERNET-ACCESS-WITH-PRVT-MGMT). If not specified, default will be INTERNET-ACCESS
 - core
Count number - Number of CPU cores used by device. (NOTE: Use this field to resize your device. When resizing your HA devices, primary device will be upgraded first. If the upgrade failed, device will be automatically rolled back to the previous state with original core number.)
 - diverse
Device stringId  - Unique ID of an existing device. Use this field to let Equinix know if you want your new device to be in a different location from any existing virtual device. This field is only meaningful for single devices.
 - diverse
Device stringName  - Name of the device with diverse device UUID. This field is returned in device details if the device is created by passing diverse_device_id.
 - generate
Default booleanPassword  - Boolean value that determines to create device with or without default password. Use this field to let Equinix know if you want your new device to be create with default admin password. This field is only meaningful for C8000V Autonomous(single/ha) and Fortinet Firewall devices(single/ha/cluster). If not specified, by default device is created with admin password.
 - hostname string
 - Device hostname prefix.
 - ibx string
 - Device location Equinix Business Exchange name.
 - interface
Count number - Number of network interfaces on a device. If not specified, default number for a given device type will be used.
 - interfaces
Device
Interface[]  - List of device interfaces. See Interface Attribute below for more details.
 - license
File string - Path to the license file that will be uploaded and applied on a device. Applicable for some device types in BYOL licensing mode.
 - license
File stringId  - Identifier of a license file that will be applied on the device.
 - license
Status string - Device license registration status. Possible values are 
APPLYING_LICENSE,REGISTERED,APPLIED,WAITING_FOR_CLUSTER_SETUP,REGISTRATION_FAILED. - license
Token string - License Token applicable for some device types in BYOL licensing mode.
 - metro
Code string - Device location metro code.
 - mgmt
Acl stringTemplate Uuid  - Identifier of an MGMT interface ACL template that will be applied on the device.
 - name string
 - Device name.
 - notifications string[]
 - List of email addresses that will receive device status notifications.
 - order
Reference string - Name/number used to identify device order on the invoice.
 - package
Code string - Device software package code.
 - project
Id string - Unique Identifier for the project resource where the device is scoped to.If you leave it out, the device will be created under the default project id of your organization.
 - purchase
Order stringNumber  - Purchase order number associated with a device order.
 - redundancy
Type string - Device redundancy type applicable for HA devices, either primary or secondary.
 - redundant
Id string - Unique identifier for a redundant device applicable for HA devices.
 - region string
 - Device location region.
 - secondary
Device DeviceSecondary Device  - Definition of secondary device for redundant device configurations. See Secondary Device below for more details.
 - self
Managed boolean - Boolean value that determines device management mode, i.e., 
self-managedorEquinix-managed(default). - ssh
Ip stringAddress  - IP address of SSH enabled interface on the device.
 - ssh
Ip stringFqdn  - FQDN of SSH enabled interface on the device.
 - ssh
Key DeviceSsh Key  - Definition of SSH key that will be provisioned on a device
 - status string
 - interface status. One of 
AVAILABLE,RESERVED,ASSIGNED. - term
Length number - Device term length.
 - throughput number
 - Device license throughput.
 - throughput
Unit string | ThroughputUnit  - License throughput unit. One of 
MbpsorGbps. - tier number
 - Select bandwidth tier for your own license, i.e., 
0or1or2or3. Tiers applicable only for C8000V Autonomous or C8000V SDWAN (controller) device types. If not provided, tier is defaulted to '2'. - type
Code string - Device type code.
 - uuid string
 - Device unique identifier.
 - vendor
Configuration {[key: string]: string} - Map of vendor specific configuration parameters for a device (controller1, activationKey, managementType, siteId, systemIpAddress, privateAddress, privateCidrMask, privateGateway, licenseKey, licenseId, panoramaAuthKey, panoramaIpAddress, provisioningKey)
ssh-key- (Optional) Definition of SSH key that will be provisioned on a device (max one key). See SSH Key below for more details.
 - version string
 - Device software software version.
 - wan
Interface stringId  - device interface id picked for WAN
 - zone
Code string - Device location zone code.
 
- account_
number str - Billing account number for a device.
 - acl_
template_ strid  - Identifier of a WAN interface ACL template that will be applied on the device.
 - additional_
bandwidth int - Additional Internet bandwidth, in Mbps, that will be allocated to the device (in addition to default 15Mbps).
 - asn int
 - (Autonomous System Number) Unique identifier for a network on the internet.
 - byol bool
 - Boolean value that determines device licensing mode, i.e., 
bring your own licenseorsubscription(default). - cloud_
init_ strfile_ id  - Identifier of a cloud init file that will be applied on the device.
 - cluster_
details DeviceCluster Details Args  - An object that has the cluster details. See Cluster Details below for more details.
 - connectivity str
 - Device accessibility (INTERNET-ACCESS or PRIVATE or INTERNET-ACCESS-WITH-PRVT-MGMT). If not specified, default will be INTERNET-ACCESS
 - core_
count int - Number of CPU cores used by device. (NOTE: Use this field to resize your device. When resizing your HA devices, primary device will be upgraded first. If the upgrade failed, device will be automatically rolled back to the previous state with original core number.)
 - diverse_
device_ strid  - Unique ID of an existing device. Use this field to let Equinix know if you want your new device to be in a different location from any existing virtual device. This field is only meaningful for single devices.
 - diverse_
device_ strname  - Name of the device with diverse device UUID. This field is returned in device details if the device is created by passing diverse_device_id.
 - generate_
default_ boolpassword  - Boolean value that determines to create device with or without default password. Use this field to let Equinix know if you want your new device to be create with default admin password. This field is only meaningful for C8000V Autonomous(single/ha) and Fortinet Firewall devices(single/ha/cluster). If not specified, by default device is created with admin password.
 - hostname str
 - Device hostname prefix.
 - ibx str
 - Device location Equinix Business Exchange name.
 - interface_
count int - Number of network interfaces on a device. If not specified, default number for a given device type will be used.
 - interfaces
Sequence[Device
Interface Args]  - List of device interfaces. See Interface Attribute below for more details.
 - license_
file str - Path to the license file that will be uploaded and applied on a device. Applicable for some device types in BYOL licensing mode.
 - license_
file_ strid  - Identifier of a license file that will be applied on the device.
 - license_
status str - Device license registration status. Possible values are 
APPLYING_LICENSE,REGISTERED,APPLIED,WAITING_FOR_CLUSTER_SETUP,REGISTRATION_FAILED. - license_
token str - License Token applicable for some device types in BYOL licensing mode.
 - metro_
code str - Device location metro code.
 - mgmt_
acl_ strtemplate_ uuid  - Identifier of an MGMT interface ACL template that will be applied on the device.
 - name str
 - Device name.
 - notifications Sequence[str]
 - List of email addresses that will receive device status notifications.
 - order_
reference str - Name/number used to identify device order on the invoice.
 - package_
code str - Device software package code.
 - project_
id str - Unique Identifier for the project resource where the device is scoped to.If you leave it out, the device will be created under the default project id of your organization.
 - purchase_
order_ strnumber  - Purchase order number associated with a device order.
 - redundancy_
type str - Device redundancy type applicable for HA devices, either primary or secondary.
 - redundant_
id str - Unique identifier for a redundant device applicable for HA devices.
 - region str
 - Device location region.
 - secondary_
device DeviceSecondary Device Args  - Definition of secondary device for redundant device configurations. See Secondary Device below for more details.
 - self_
managed bool - Boolean value that determines device management mode, i.e., 
self-managedorEquinix-managed(default). - ssh_
ip_ straddress  - IP address of SSH enabled interface on the device.
 - ssh_
ip_ strfqdn  - FQDN of SSH enabled interface on the device.
 - ssh_
key DeviceSsh Key Args  - Definition of SSH key that will be provisioned on a device
 - status str
 - interface status. One of 
AVAILABLE,RESERVED,ASSIGNED. - term_
length int - Device term length.
 - throughput int
 - Device license throughput.
 - throughput_
unit str | ThroughputUnit  - License throughput unit. One of 
MbpsorGbps. - tier int
 - Select bandwidth tier for your own license, i.e., 
0or1or2or3. Tiers applicable only for C8000V Autonomous or C8000V SDWAN (controller) device types. If not provided, tier is defaulted to '2'. - type_
code str - Device type code.
 - uuid str
 - Device unique identifier.
 - vendor_
configuration Mapping[str, str] - Map of vendor specific configuration parameters for a device (controller1, activationKey, managementType, siteId, systemIpAddress, privateAddress, privateCidrMask, privateGateway, licenseKey, licenseId, panoramaAuthKey, panoramaIpAddress, provisioningKey)
ssh-key- (Optional) Definition of SSH key that will be provisioned on a device (max one key). See SSH Key below for more details.
 - version str
 - Device software software version.
 - wan_
interface_ strid  - device interface id picked for WAN
 - zone_
code str - Device location zone code.
 
- account
Number String - Billing account number for a device.
 - acl
Template StringId  - Identifier of a WAN interface ACL template that will be applied on the device.
 - additional
Bandwidth Number - Additional Internet bandwidth, in Mbps, that will be allocated to the device (in addition to default 15Mbps).
 - asn Number
 - (Autonomous System Number) Unique identifier for a network on the internet.
 - byol Boolean
 - Boolean value that determines device licensing mode, i.e., 
bring your own licenseorsubscription(default). - cloud
Init StringFile Id  - Identifier of a cloud init file that will be applied on the device.
 - cluster
Details Property Map - An object that has the cluster details. See Cluster Details below for more details.
 - connectivity String
 - Device accessibility (INTERNET-ACCESS or PRIVATE or INTERNET-ACCESS-WITH-PRVT-MGMT). If not specified, default will be INTERNET-ACCESS
 - core
Count Number - Number of CPU cores used by device. (NOTE: Use this field to resize your device. When resizing your HA devices, primary device will be upgraded first. If the upgrade failed, device will be automatically rolled back to the previous state with original core number.)
 - diverse
Device StringId  - Unique ID of an existing device. Use this field to let Equinix know if you want your new device to be in a different location from any existing virtual device. This field is only meaningful for single devices.
 - diverse
Device StringName  - Name of the device with diverse device UUID. This field is returned in device details if the device is created by passing diverse_device_id.
 - generate
Default BooleanPassword  - Boolean value that determines to create device with or without default password. Use this field to let Equinix know if you want your new device to be create with default admin password. This field is only meaningful for C8000V Autonomous(single/ha) and Fortinet Firewall devices(single/ha/cluster). If not specified, by default device is created with admin password.
 - hostname String
 - Device hostname prefix.
 - ibx String
 - Device location Equinix Business Exchange name.
 - interface
Count Number - Number of network interfaces on a device. If not specified, default number for a given device type will be used.
 - interfaces List<Property Map>
 - List of device interfaces. See Interface Attribute below for more details.
 - license
File String - Path to the license file that will be uploaded and applied on a device. Applicable for some device types in BYOL licensing mode.
 - license
File StringId  - Identifier of a license file that will be applied on the device.
 - license
Status String - Device license registration status. Possible values are 
APPLYING_LICENSE,REGISTERED,APPLIED,WAITING_FOR_CLUSTER_SETUP,REGISTRATION_FAILED. - license
Token String - License Token applicable for some device types in BYOL licensing mode.
 - metro
Code String - Device location metro code.
 - mgmt
Acl StringTemplate Uuid  - Identifier of an MGMT interface ACL template that will be applied on the device.
 - name String
 - Device name.
 - notifications List<String>
 - List of email addresses that will receive device status notifications.
 - order
Reference String - Name/number used to identify device order on the invoice.
 - package
Code String - Device software package code.
 - project
Id String - Unique Identifier for the project resource where the device is scoped to.If you leave it out, the device will be created under the default project id of your organization.
 - purchase
Order StringNumber  - Purchase order number associated with a device order.
 - redundancy
Type String - Device redundancy type applicable for HA devices, either primary or secondary.
 - redundant
Id String - Unique identifier for a redundant device applicable for HA devices.
 - region String
 - Device location region.
 - secondary
Device Property Map - Definition of secondary device for redundant device configurations. See Secondary Device below for more details.
 - self
Managed Boolean - Boolean value that determines device management mode, i.e., 
self-managedorEquinix-managed(default). - ssh
Ip StringAddress  - IP address of SSH enabled interface on the device.
 - ssh
Ip StringFqdn  - FQDN of SSH enabled interface on the device.
 - ssh
Key Property Map - Definition of SSH key that will be provisioned on a device
 - status String
 - interface status. One of 
AVAILABLE,RESERVED,ASSIGNED. - term
Length Number - Device term length.
 - throughput Number
 - Device license throughput.
 - throughput
Unit String | "Mbps" | "Gbps" - License throughput unit. One of 
MbpsorGbps. - tier Number
 - Select bandwidth tier for your own license, i.e., 
0or1or2or3. Tiers applicable only for C8000V Autonomous or C8000V SDWAN (controller) device types. If not provided, tier is defaulted to '2'. - type
Code String - Device type code.
 - uuid String
 - Device unique identifier.
 - vendor
Configuration Map<String> - Map of vendor specific configuration parameters for a device (controller1, activationKey, managementType, siteId, systemIpAddress, privateAddress, privateCidrMask, privateGateway, licenseKey, licenseId, panoramaAuthKey, panoramaIpAddress, provisioningKey)
ssh-key- (Optional) Definition of SSH key that will be provisioned on a device (max one key). See SSH Key below for more details.
 - version String
 - Device software software version.
 - wan
Interface StringId  - device interface id picked for WAN
 - zone
Code String - Device location zone code.
 
Supporting Types
DeviceClusterDetails, DeviceClusterDetailsArgs      
- Cluster
Name string - The name of the cluster device
 - Node0
Device
Cluster Details Node0  - An object that has 
node0configuration. See Cluster Details - Nodes below for more details. - Node1
Device
Cluster Details Node1  - An object that has 
node1configuration. See Cluster Details - Nodes below for more details. - Cluster
Id string - The ID of the cluster.
 - Num
Of intNodes  - The number of nodes in the cluster.
 
- Cluster
Name string - The name of the cluster device
 - Node0
Device
Cluster Details Node0  - An object that has 
node0configuration. See Cluster Details - Nodes below for more details. - Node1
Device
Cluster Details Node1  - An object that has 
node1configuration. See Cluster Details - Nodes below for more details. - Cluster
Id string - The ID of the cluster.
 - Num
Of intNodes  - The number of nodes in the cluster.
 
- cluster
Name String - The name of the cluster device
 - node0
Device
Cluster Details Node0  - An object that has 
node0configuration. See Cluster Details - Nodes below for more details. - node1
Device
Cluster Details Node1  - An object that has 
node1configuration. See Cluster Details - Nodes below for more details. - cluster
Id String - The ID of the cluster.
 - num
Of IntegerNodes  - The number of nodes in the cluster.
 
- cluster
Name string - The name of the cluster device
 - node0
Device
Cluster Details Node0  - An object that has 
node0configuration. See Cluster Details - Nodes below for more details. - node1
Device
Cluster Details Node1  - An object that has 
node1configuration. See Cluster Details - Nodes below for more details. - cluster
Id string - The ID of the cluster.
 - num
Of numberNodes  - The number of nodes in the cluster.
 
- cluster_
name str - The name of the cluster device
 - node0
Device
Cluster Details Node0  - An object that has 
node0configuration. See Cluster Details - Nodes below for more details. - node1
Device
Cluster Details Node1  - An object that has 
node1configuration. See Cluster Details - Nodes below for more details. - cluster_
id str - The ID of the cluster.
 - num_
of_ intnodes  - The number of nodes in the cluster.
 
- cluster
Name String - The name of the cluster device
 - node0 Property Map
 - An object that has 
node0configuration. See Cluster Details - Nodes below for more details. - node1 Property Map
 - An object that has 
node1configuration. See Cluster Details - Nodes below for more details. - cluster
Id String - The ID of the cluster.
 - num
Of NumberNodes  - The number of nodes in the cluster.
 
DeviceClusterDetailsNode0, DeviceClusterDetailsNode0Args        
- License
File stringId  - License file id. This is necessary for Fortinet and Juniper clusters.
 - License
Token string - License token. This is necessary for Palo Alto clusters.
 - Name string
 - Device name.
 - Uuid string
 - Device unique identifier.
 - Vendor
Configuration DeviceCluster Details Node0Vendor Configuration  - An object that has fields relevant to the vendor of the cluster device. See Cluster Details - Nodes - Vendor Configuration below for more details.
 
- License
File stringId  - License file id. This is necessary for Fortinet and Juniper clusters.
 - License
Token string - License token. This is necessary for Palo Alto clusters.
 - Name string
 - Device name.
 - Uuid string
 - Device unique identifier.
 - Vendor
Configuration DeviceCluster Details Node0Vendor Configuration  - An object that has fields relevant to the vendor of the cluster device. See Cluster Details - Nodes - Vendor Configuration below for more details.
 
- license
File StringId  - License file id. This is necessary for Fortinet and Juniper clusters.
 - license
Token String - License token. This is necessary for Palo Alto clusters.
 - name String
 - Device name.
 - uuid String
 - Device unique identifier.
 - vendor
Configuration DeviceCluster Details Node0Vendor Configuration  - An object that has fields relevant to the vendor of the cluster device. See Cluster Details - Nodes - Vendor Configuration below for more details.
 
- license
File stringId  - License file id. This is necessary for Fortinet and Juniper clusters.
 - license
Token string - License token. This is necessary for Palo Alto clusters.
 - name string
 - Device name.
 - uuid string
 - Device unique identifier.
 - vendor
Configuration DeviceCluster Details Node0Vendor Configuration  - An object that has fields relevant to the vendor of the cluster device. See Cluster Details - Nodes - Vendor Configuration below for more details.
 
- license_
file_ strid  - License file id. This is necessary for Fortinet and Juniper clusters.
 - license_
token str - License token. This is necessary for Palo Alto clusters.
 - name str
 - Device name.
 - uuid str
 - Device unique identifier.
 - vendor_
configuration DeviceCluster Details Node0Vendor Configuration  - An object that has fields relevant to the vendor of the cluster device. See Cluster Details - Nodes - Vendor Configuration below for more details.
 
- license
File StringId  - License file id. This is necessary for Fortinet and Juniper clusters.
 - license
Token String - License token. This is necessary for Palo Alto clusters.
 - name String
 - Device name.
 - uuid String
 - Device unique identifier.
 - vendor
Configuration Property Map - An object that has fields relevant to the vendor of the cluster device. See Cluster Details - Nodes - Vendor Configuration below for more details.
 
DeviceClusterDetailsNode0VendorConfiguration, DeviceClusterDetailsNode0VendorConfigurationArgs          
- Activation
Key string - Activation key. This is required for Velocloud clusters.
 - Admin
Password string - The administrative password of the device. You can use it to log in to the console. This field is not available for all device types.
 - Controller1 string
 - System IP Address. Mandatory for the Fortinet SDWAN cluster device.
 - Controller
Fqdn string - Controller fqdn. This is required for Velocloud clusters.
 - Hostname string
 - Hostname. This is necessary for Palo Alto, Juniper, and Fortinet clusters.
 - License
Id string - License id. This field is relevant only for the BlueCat DNS and DHCP Server
 - License
Key string - License key. This field is relevant only for the BlueCat DNS and DHCP Server
 - Panorama
Auth stringKey  - Panorama Server Auth Key. This field is relevant only for the PA-VM firewall devices to have integration with Panorama Server.
 - Panorama
Ip stringAddress  - Panorama Server IP Address. This field is relevant only for the PA-VM firewall devices to have integration with Panorama Server.
 - Private
Address string - Private address. This field is relevant only for the BlueCat DNS and DHCP Server
 - Private
Cidr stringMask  - Private CIDR Mask. This field is relevant only for the BlueCat DNS and DHCP Server
 - Private
Gateway string - Private gateway. This field is relevant only for the BlueCat DNS and DHCP Server
 - Root
Password string - The CLI password of the device. This field is relevant only for the Velocloud SDWAN cluster.
 
- Activation
Key string - Activation key. This is required for Velocloud clusters.
 - Admin
Password string - The administrative password of the device. You can use it to log in to the console. This field is not available for all device types.
 - Controller1 string
 - System IP Address. Mandatory for the Fortinet SDWAN cluster device.
 - Controller
Fqdn string - Controller fqdn. This is required for Velocloud clusters.
 - Hostname string
 - Hostname. This is necessary for Palo Alto, Juniper, and Fortinet clusters.
 - License
Id string - License id. This field is relevant only for the BlueCat DNS and DHCP Server
 - License
Key string - License key. This field is relevant only for the BlueCat DNS and DHCP Server
 - Panorama
Auth stringKey  - Panorama Server Auth Key. This field is relevant only for the PA-VM firewall devices to have integration with Panorama Server.
 - Panorama
Ip stringAddress  - Panorama Server IP Address. This field is relevant only for the PA-VM firewall devices to have integration with Panorama Server.
 - Private
Address string - Private address. This field is relevant only for the BlueCat DNS and DHCP Server
 - Private
Cidr stringMask  - Private CIDR Mask. This field is relevant only for the BlueCat DNS and DHCP Server
 - Private
Gateway string - Private gateway. This field is relevant only for the BlueCat DNS and DHCP Server
 - Root
Password string - The CLI password of the device. This field is relevant only for the Velocloud SDWAN cluster.
 
- activation
Key String - Activation key. This is required for Velocloud clusters.
 - admin
Password String - The administrative password of the device. You can use it to log in to the console. This field is not available for all device types.
 - controller1 String
 - System IP Address. Mandatory for the Fortinet SDWAN cluster device.
 - controller
Fqdn String - Controller fqdn. This is required for Velocloud clusters.
 - hostname String
 - Hostname. This is necessary for Palo Alto, Juniper, and Fortinet clusters.
 - license
Id String - License id. This field is relevant only for the BlueCat DNS and DHCP Server
 - license
Key String - License key. This field is relevant only for the BlueCat DNS and DHCP Server
 - panorama
Auth StringKey  - Panorama Server Auth Key. This field is relevant only for the PA-VM firewall devices to have integration with Panorama Server.
 - panorama
Ip StringAddress  - Panorama Server IP Address. This field is relevant only for the PA-VM firewall devices to have integration with Panorama Server.
 - private
Address String - Private address. This field is relevant only for the BlueCat DNS and DHCP Server
 - private
Cidr StringMask  - Private CIDR Mask. This field is relevant only for the BlueCat DNS and DHCP Server
 - private
Gateway String - Private gateway. This field is relevant only for the BlueCat DNS and DHCP Server
 - root
Password String - The CLI password of the device. This field is relevant only for the Velocloud SDWAN cluster.
 
- activation
Key string - Activation key. This is required for Velocloud clusters.
 - admin
Password string - The administrative password of the device. You can use it to log in to the console. This field is not available for all device types.
 - controller1 string
 - System IP Address. Mandatory for the Fortinet SDWAN cluster device.
 - controller
Fqdn string - Controller fqdn. This is required for Velocloud clusters.
 - hostname string
 - Hostname. This is necessary for Palo Alto, Juniper, and Fortinet clusters.
 - license
Id string - License id. This field is relevant only for the BlueCat DNS and DHCP Server
 - license
Key string - License key. This field is relevant only for the BlueCat DNS and DHCP Server
 - panorama
Auth stringKey  - Panorama Server Auth Key. This field is relevant only for the PA-VM firewall devices to have integration with Panorama Server.
 - panorama
Ip stringAddress  - Panorama Server IP Address. This field is relevant only for the PA-VM firewall devices to have integration with Panorama Server.
 - private
Address string - Private address. This field is relevant only for the BlueCat DNS and DHCP Server
 - private
Cidr stringMask  - Private CIDR Mask. This field is relevant only for the BlueCat DNS and DHCP Server
 - private
Gateway string - Private gateway. This field is relevant only for the BlueCat DNS and DHCP Server
 - root
Password string - The CLI password of the device. This field is relevant only for the Velocloud SDWAN cluster.
 
- activation_
key str - Activation key. This is required for Velocloud clusters.
 - admin_
password str - The administrative password of the device. You can use it to log in to the console. This field is not available for all device types.
 - controller1 str
 - System IP Address. Mandatory for the Fortinet SDWAN cluster device.
 - controller_
fqdn str - Controller fqdn. This is required for Velocloud clusters.
 - hostname str
 - Hostname. This is necessary for Palo Alto, Juniper, and Fortinet clusters.
 - license_
id str - License id. This field is relevant only for the BlueCat DNS and DHCP Server
 - license_
key str - License key. This field is relevant only for the BlueCat DNS and DHCP Server
 - panorama_
auth_ strkey  - Panorama Server Auth Key. This field is relevant only for the PA-VM firewall devices to have integration with Panorama Server.
 - panorama_
ip_ straddress  - Panorama Server IP Address. This field is relevant only for the PA-VM firewall devices to have integration with Panorama Server.
 - private_
address str - Private address. This field is relevant only for the BlueCat DNS and DHCP Server
 - private_
cidr_ strmask  - Private CIDR Mask. This field is relevant only for the BlueCat DNS and DHCP Server
 - private_
gateway str - Private gateway. This field is relevant only for the BlueCat DNS and DHCP Server
 - root_
password str - The CLI password of the device. This field is relevant only for the Velocloud SDWAN cluster.
 
- activation
Key String - Activation key. This is required for Velocloud clusters.
 - admin
Password String - The administrative password of the device. You can use it to log in to the console. This field is not available for all device types.
 - controller1 String
 - System IP Address. Mandatory for the Fortinet SDWAN cluster device.
 - controller
Fqdn String - Controller fqdn. This is required for Velocloud clusters.
 - hostname String
 - Hostname. This is necessary for Palo Alto, Juniper, and Fortinet clusters.
 - license
Id String - License id. This field is relevant only for the BlueCat DNS and DHCP Server
 - license
Key String - License key. This field is relevant only for the BlueCat DNS and DHCP Server
 - panorama
Auth StringKey  - Panorama Server Auth Key. This field is relevant only for the PA-VM firewall devices to have integration with Panorama Server.
 - panorama
Ip StringAddress  - Panorama Server IP Address. This field is relevant only for the PA-VM firewall devices to have integration with Panorama Server.
 - private
Address String - Private address. This field is relevant only for the BlueCat DNS and DHCP Server
 - private
Cidr StringMask  - Private CIDR Mask. This field is relevant only for the BlueCat DNS and DHCP Server
 - private
Gateway String - Private gateway. This field is relevant only for the BlueCat DNS and DHCP Server
 - root
Password String - The CLI password of the device. This field is relevant only for the Velocloud SDWAN cluster.
 
DeviceClusterDetailsNode1, DeviceClusterDetailsNode1Args        
- License
File stringId  - License file id. This is necessary for Fortinet and Juniper clusters.
 - License
Token string - License token. This is necessary for Palo Alto clusters.
 - Name string
 - Device name.
 - Uuid string
 - Device unique identifier.
 - Vendor
Configuration DeviceCluster Details Node1Vendor Configuration  - An object that has fields relevant to the vendor of the cluster device. See Cluster Details - Nodes - Vendor Configuration below for more details.
 
- License
File stringId  - License file id. This is necessary for Fortinet and Juniper clusters.
 - License
Token string - License token. This is necessary for Palo Alto clusters.
 - Name string
 - Device name.
 - Uuid string
 - Device unique identifier.
 - Vendor
Configuration DeviceCluster Details Node1Vendor Configuration  - An object that has fields relevant to the vendor of the cluster device. See Cluster Details - Nodes - Vendor Configuration below for more details.
 
- license
File StringId  - License file id. This is necessary for Fortinet and Juniper clusters.
 - license
Token String - License token. This is necessary for Palo Alto clusters.
 - name String
 - Device name.
 - uuid String
 - Device unique identifier.
 - vendor
Configuration DeviceCluster Details Node1Vendor Configuration  - An object that has fields relevant to the vendor of the cluster device. See Cluster Details - Nodes - Vendor Configuration below for more details.
 
- license
File stringId  - License file id. This is necessary for Fortinet and Juniper clusters.
 - license
Token string - License token. This is necessary for Palo Alto clusters.
 - name string
 - Device name.
 - uuid string
 - Device unique identifier.
 - vendor
Configuration DeviceCluster Details Node1Vendor Configuration  - An object that has fields relevant to the vendor of the cluster device. See Cluster Details - Nodes - Vendor Configuration below for more details.
 
- license_
file_ strid  - License file id. This is necessary for Fortinet and Juniper clusters.
 - license_
token str - License token. This is necessary for Palo Alto clusters.
 - name str
 - Device name.
 - uuid str
 - Device unique identifier.
 - vendor_
configuration DeviceCluster Details Node1Vendor Configuration  - An object that has fields relevant to the vendor of the cluster device. See Cluster Details - Nodes - Vendor Configuration below for more details.
 
- license
File StringId  - License file id. This is necessary for Fortinet and Juniper clusters.
 - license
Token String - License token. This is necessary for Palo Alto clusters.
 - name String
 - Device name.
 - uuid String
 - Device unique identifier.
 - vendor
Configuration Property Map - An object that has fields relevant to the vendor of the cluster device. See Cluster Details - Nodes - Vendor Configuration below for more details.
 
DeviceClusterDetailsNode1VendorConfiguration, DeviceClusterDetailsNode1VendorConfigurationArgs          
- Activation
Key string - Activation key. This is required for Velocloud clusters.
 - Admin
Password string - The administrative password of the device. You can use it to log in to the console. This field is not available for all device types.
 - Controller1 string
 - System IP Address. Mandatory for the Fortinet SDWAN cluster device.
 - Controller
Fqdn string - Controller fqdn. This is required for Velocloud clusters.
 - Hostname string
 - Hostname. This is necessary for Palo Alto, Juniper, and Fortinet clusters.
 - License
Id string - License id. This field is relevant only for the BlueCat DNS and DHCP Server
 - License
Key string - License key. This field is relevant only for the BlueCat DNS and DHCP Server
 - Panorama
Auth stringKey  - Panorama Server Auth Key. This field is relevant only for the PA-VM firewall devices to have integration with Panorama Server.
 - Panorama
Ip stringAddress  - Panorama Server IP Address. This field is relevant only for the PA-VM firewall devices to have integration with Panorama Server.
 - Private
Address string - Private address. This field is relevant only for the BlueCat DNS and DHCP Server
 - Private
Cidr stringMask  - Private CIDR Mask. This field is relevant only for the BlueCat DNS and DHCP Server
 - Private
Gateway string - Private gateway. This field is relevant only for the BlueCat DNS and DHCP Server
 - Root
Password string - The CLI password of the device. This field is relevant only for the Velocloud SDWAN cluster.
 
- Activation
Key string - Activation key. This is required for Velocloud clusters.
 - Admin
Password string - The administrative password of the device. You can use it to log in to the console. This field is not available for all device types.
 - Controller1 string
 - System IP Address. Mandatory for the Fortinet SDWAN cluster device.
 - Controller
Fqdn string - Controller fqdn. This is required for Velocloud clusters.
 - Hostname string
 - Hostname. This is necessary for Palo Alto, Juniper, and Fortinet clusters.
 - License
Id string - License id. This field is relevant only for the BlueCat DNS and DHCP Server
 - License
Key string - License key. This field is relevant only for the BlueCat DNS and DHCP Server
 - Panorama
Auth stringKey  - Panorama Server Auth Key. This field is relevant only for the PA-VM firewall devices to have integration with Panorama Server.
 - Panorama
Ip stringAddress  - Panorama Server IP Address. This field is relevant only for the PA-VM firewall devices to have integration with Panorama Server.
 - Private
Address string - Private address. This field is relevant only for the BlueCat DNS and DHCP Server
 - Private
Cidr stringMask  - Private CIDR Mask. This field is relevant only for the BlueCat DNS and DHCP Server
 - Private
Gateway string - Private gateway. This field is relevant only for the BlueCat DNS and DHCP Server
 - Root
Password string - The CLI password of the device. This field is relevant only for the Velocloud SDWAN cluster.
 
- activation
Key String - Activation key. This is required for Velocloud clusters.
 - admin
Password String - The administrative password of the device. You can use it to log in to the console. This field is not available for all device types.
 - controller1 String
 - System IP Address. Mandatory for the Fortinet SDWAN cluster device.
 - controller
Fqdn String - Controller fqdn. This is required for Velocloud clusters.
 - hostname String
 - Hostname. This is necessary for Palo Alto, Juniper, and Fortinet clusters.
 - license
Id String - License id. This field is relevant only for the BlueCat DNS and DHCP Server
 - license
Key String - License key. This field is relevant only for the BlueCat DNS and DHCP Server
 - panorama
Auth StringKey  - Panorama Server Auth Key. This field is relevant only for the PA-VM firewall devices to have integration with Panorama Server.
 - panorama
Ip StringAddress  - Panorama Server IP Address. This field is relevant only for the PA-VM firewall devices to have integration with Panorama Server.
 - private
Address String - Private address. This field is relevant only for the BlueCat DNS and DHCP Server
 - private
Cidr StringMask  - Private CIDR Mask. This field is relevant only for the BlueCat DNS and DHCP Server
 - private
Gateway String - Private gateway. This field is relevant only for the BlueCat DNS and DHCP Server
 - root
Password String - The CLI password of the device. This field is relevant only for the Velocloud SDWAN cluster.
 
- activation
Key string - Activation key. This is required for Velocloud clusters.
 - admin
Password string - The administrative password of the device. You can use it to log in to the console. This field is not available for all device types.
 - controller1 string
 - System IP Address. Mandatory for the Fortinet SDWAN cluster device.
 - controller
Fqdn string - Controller fqdn. This is required for Velocloud clusters.
 - hostname string
 - Hostname. This is necessary for Palo Alto, Juniper, and Fortinet clusters.
 - license
Id string - License id. This field is relevant only for the BlueCat DNS and DHCP Server
 - license
Key string - License key. This field is relevant only for the BlueCat DNS and DHCP Server
 - panorama
Auth stringKey  - Panorama Server Auth Key. This field is relevant only for the PA-VM firewall devices to have integration with Panorama Server.
 - panorama
Ip stringAddress  - Panorama Server IP Address. This field is relevant only for the PA-VM firewall devices to have integration with Panorama Server.
 - private
Address string - Private address. This field is relevant only for the BlueCat DNS and DHCP Server
 - private
Cidr stringMask  - Private CIDR Mask. This field is relevant only for the BlueCat DNS and DHCP Server
 - private
Gateway string - Private gateway. This field is relevant only for the BlueCat DNS and DHCP Server
 - root
Password string - The CLI password of the device. This field is relevant only for the Velocloud SDWAN cluster.
 
- activation_
key str - Activation key. This is required for Velocloud clusters.
 - admin_
password str - The administrative password of the device. You can use it to log in to the console. This field is not available for all device types.
 - controller1 str
 - System IP Address. Mandatory for the Fortinet SDWAN cluster device.
 - controller_
fqdn str - Controller fqdn. This is required for Velocloud clusters.
 - hostname str
 - Hostname. This is necessary for Palo Alto, Juniper, and Fortinet clusters.
 - license_
id str - License id. This field is relevant only for the BlueCat DNS and DHCP Server
 - license_
key str - License key. This field is relevant only for the BlueCat DNS and DHCP Server
 - panorama_
auth_ strkey  - Panorama Server Auth Key. This field is relevant only for the PA-VM firewall devices to have integration with Panorama Server.
 - panorama_
ip_ straddress  - Panorama Server IP Address. This field is relevant only for the PA-VM firewall devices to have integration with Panorama Server.
 - private_
address str - Private address. This field is relevant only for the BlueCat DNS and DHCP Server
 - private_
cidr_ strmask  - Private CIDR Mask. This field is relevant only for the BlueCat DNS and DHCP Server
 - private_
gateway str - Private gateway. This field is relevant only for the BlueCat DNS and DHCP Server
 - root_
password str - The CLI password of the device. This field is relevant only for the Velocloud SDWAN cluster.
 
- activation
Key String - Activation key. This is required for Velocloud clusters.
 - admin
Password String - The administrative password of the device. You can use it to log in to the console. This field is not available for all device types.
 - controller1 String
 - System IP Address. Mandatory for the Fortinet SDWAN cluster device.
 - controller
Fqdn String - Controller fqdn. This is required for Velocloud clusters.
 - hostname String
 - Hostname. This is necessary for Palo Alto, Juniper, and Fortinet clusters.
 - license
Id String - License id. This field is relevant only for the BlueCat DNS and DHCP Server
 - license
Key String - License key. This field is relevant only for the BlueCat DNS and DHCP Server
 - panorama
Auth StringKey  - Panorama Server Auth Key. This field is relevant only for the PA-VM firewall devices to have integration with Panorama Server.
 - panorama
Ip StringAddress  - Panorama Server IP Address. This field is relevant only for the PA-VM firewall devices to have integration with Panorama Server.
 - private
Address String - Private address. This field is relevant only for the BlueCat DNS and DHCP Server
 - private
Cidr StringMask  - Private CIDR Mask. This field is relevant only for the BlueCat DNS and DHCP Server
 - private
Gateway String - Private gateway. This field is relevant only for the BlueCat DNS and DHCP Server
 - root
Password String - The CLI password of the device. This field is relevant only for the Velocloud SDWAN cluster.
 
DeviceInterface, DeviceInterfaceArgs    
- Assigned
Type string - interface management type (Equinix Managed or empty).
 - Id int
 - interface identifier.
 - Ip
Address string - interface IP address.
 - Mac
Address string - interface MAC address.
 - Name string
 - Device name.
 - Operational
Status string - interface operational status. One of 
up,down. - Status string
 - interface status. One of 
AVAILABLE,RESERVED,ASSIGNED. - Type string
 - interface type.
 
- Assigned
Type string - interface management type (Equinix Managed or empty).
 - Id int
 - interface identifier.
 - Ip
Address string - interface IP address.
 - Mac
Address string - interface MAC address.
 - Name string
 - Device name.
 - Operational
Status string - interface operational status. One of 
up,down. - Status string
 - interface status. One of 
AVAILABLE,RESERVED,ASSIGNED. - Type string
 - interface type.
 
- assigned
Type String - interface management type (Equinix Managed or empty).
 - id Integer
 - interface identifier.
 - ip
Address String - interface IP address.
 - mac
Address String - interface MAC address.
 - name String
 - Device name.
 - operational
Status String - interface operational status. One of 
up,down. - status String
 - interface status. One of 
AVAILABLE,RESERVED,ASSIGNED. - type String
 - interface type.
 
- assigned
Type string - interface management type (Equinix Managed or empty).
 - id number
 - interface identifier.
 - ip
Address string - interface IP address.
 - mac
Address string - interface MAC address.
 - name string
 - Device name.
 - operational
Status string - interface operational status. One of 
up,down. - status string
 - interface status. One of 
AVAILABLE,RESERVED,ASSIGNED. - type string
 - interface type.
 
- assigned_
type str - interface management type (Equinix Managed or empty).
 - id int
 - interface identifier.
 - ip_
address str - interface IP address.
 - mac_
address str - interface MAC address.
 - name str
 - Device name.
 - operational_
status str - interface operational status. One of 
up,down. - status str
 - interface status. One of 
AVAILABLE,RESERVED,ASSIGNED. - type str
 - interface type.
 
- assigned
Type String - interface management type (Equinix Managed or empty).
 - id Number
 - interface identifier.
 - ip
Address String - interface IP address.
 - mac
Address String - interface MAC address.
 - name String
 - Device name.
 - operational
Status String - interface operational status. One of 
up,down. - status String
 - interface status. One of 
AVAILABLE,RESERVED,ASSIGNED. - type String
 - interface type.
 
DeviceSecondaryDevice, DeviceSecondaryDeviceArgs      
- Account
Number string - Billing account number for secondary device.
 - Metro
Code string - Metro location of a secondary device.
 - Name string
 - Secondary device name.
 - Notifications List<string>
 - List of email addresses that will receive notifications about secondary device.
 - Acl
Template stringId  - Identifier of a WAN interface ACL template that will be applied on a secondary device.
 - Additional
Bandwidth int - Additional Internet bandwidth, in Mbps, for a secondary device.
 - Asn int
 - (Autonomous System Number) Unique identifier for a network on the internet.
 - Cloud
Init stringFile Id  - Identifier of a cloud init file that will be applied on a secondary device.
 - Hostname string
 - Secondary device hostname.
 - Ibx string
 - Device location Equinix Business Exchange name.
 - Interfaces
List<Device
Secondary Device Interface>  - List of device interfaces. See Interface Attribute below for more details.
 - License
File string - Path to the license file that will be uploaded and applied on a secondary device. Applicable for some device types in BYOL licensing mode.
 - License
File stringId  - Identifier of a license file that will be applied on a secondary device.
 - License
Status string - Device license registration status. Possible values are 
APPLYING_LICENSE,REGISTERED,APPLIED,WAITING_FOR_CLUSTER_SETUP,REGISTRATION_FAILED. - License
Token string - License Token can be provided for some device types o the device.
 - Mgmt
Acl stringTemplate Uuid  - Identifier of an MGMT interface ACL template that will be applied on a secondary device.
ssh-key- (Optional) Up to one definition of SSH key that will be provisioned on a secondary device.
 - Project
Id string - Unique Identifier for the project resource where the device is scoped to.If you leave it out, the device will be created under the default project id of your organization.
 - Redundancy
Type string - Device redundancy type applicable for HA devices, either primary or secondary.
 - Redundant
Id string - Unique identifier for a redundant device applicable for HA devices.
 - Region string
 - Device location region.
 - Ssh
Ip stringAddress  - IP address of SSH enabled interface on the device.
 - Ssh
Ip stringFqdn  - FQDN of SSH enabled interface on the device.
 - Ssh
Key DeviceSecondary Device Ssh Key  - Definition of SSH key that will be provisioned on a device
 - Status string
 - interface status. One of 
AVAILABLE,RESERVED,ASSIGNED. - Uuid string
 - Device unique identifier.
 - Vendor
Configuration Dictionary<string, string> - Key/Value pairs of vendor specific configuration parameters for a secondary device. Key values are 
controller1,activationKey,managementType,siteId,systemIpAddress,privateAddress,privateCidrMask,privateGateway,licenseKey,licenseId,panoramaAuthKey,panoramaIpAddress. - Wan
Interface stringId  - device interface id picked for WAN
 - Zone
Code string - Device location zone code.
 
- Account
Number string - Billing account number for secondary device.
 - Metro
Code string - Metro location of a secondary device.
 - Name string
 - Secondary device name.
 - Notifications []string
 - List of email addresses that will receive notifications about secondary device.
 - Acl
Template stringId  - Identifier of a WAN interface ACL template that will be applied on a secondary device.
 - Additional
Bandwidth int - Additional Internet bandwidth, in Mbps, for a secondary device.
 - Asn int
 - (Autonomous System Number) Unique identifier for a network on the internet.
 - Cloud
Init stringFile Id  - Identifier of a cloud init file that will be applied on a secondary device.
 - Hostname string
 - Secondary device hostname.
 - Ibx string
 - Device location Equinix Business Exchange name.
 - Interfaces
[]Device
Secondary Device Interface  - List of device interfaces. See Interface Attribute below for more details.
 - License
File string - Path to the license file that will be uploaded and applied on a secondary device. Applicable for some device types in BYOL licensing mode.
 - License
File stringId  - Identifier of a license file that will be applied on a secondary device.
 - License
Status string - Device license registration status. Possible values are 
APPLYING_LICENSE,REGISTERED,APPLIED,WAITING_FOR_CLUSTER_SETUP,REGISTRATION_FAILED. - License
Token string - License Token can be provided for some device types o the device.
 - Mgmt
Acl stringTemplate Uuid  - Identifier of an MGMT interface ACL template that will be applied on a secondary device.
ssh-key- (Optional) Up to one definition of SSH key that will be provisioned on a secondary device.
 - Project
Id string - Unique Identifier for the project resource where the device is scoped to.If you leave it out, the device will be created under the default project id of your organization.
 - Redundancy
Type string - Device redundancy type applicable for HA devices, either primary or secondary.
 - Redundant
Id string - Unique identifier for a redundant device applicable for HA devices.
 - Region string
 - Device location region.
 - Ssh
Ip stringAddress  - IP address of SSH enabled interface on the device.
 - Ssh
Ip stringFqdn  - FQDN of SSH enabled interface on the device.
 - Ssh
Key DeviceSecondary Device Ssh Key  - Definition of SSH key that will be provisioned on a device
 - Status string
 - interface status. One of 
AVAILABLE,RESERVED,ASSIGNED. - Uuid string
 - Device unique identifier.
 - Vendor
Configuration map[string]string - Key/Value pairs of vendor specific configuration parameters for a secondary device. Key values are 
controller1,activationKey,managementType,siteId,systemIpAddress,privateAddress,privateCidrMask,privateGateway,licenseKey,licenseId,panoramaAuthKey,panoramaIpAddress. - Wan
Interface stringId  - device interface id picked for WAN
 - Zone
Code string - Device location zone code.
 
- account
Number String - Billing account number for secondary device.
 - metro
Code String - Metro location of a secondary device.
 - name String
 - Secondary device name.
 - notifications List<String>
 - List of email addresses that will receive notifications about secondary device.
 - acl
Template StringId  - Identifier of a WAN interface ACL template that will be applied on a secondary device.
 - additional
Bandwidth Integer - Additional Internet bandwidth, in Mbps, for a secondary device.
 - asn Integer
 - (Autonomous System Number) Unique identifier for a network on the internet.
 - cloud
Init StringFile Id  - Identifier of a cloud init file that will be applied on a secondary device.
 - hostname String
 - Secondary device hostname.
 - ibx String
 - Device location Equinix Business Exchange name.
 - interfaces
List<Device
Secondary Device Interface>  - List of device interfaces. See Interface Attribute below for more details.
 - license
File String - Path to the license file that will be uploaded and applied on a secondary device. Applicable for some device types in BYOL licensing mode.
 - license
File StringId  - Identifier of a license file that will be applied on a secondary device.
 - license
Status String - Device license registration status. Possible values are 
APPLYING_LICENSE,REGISTERED,APPLIED,WAITING_FOR_CLUSTER_SETUP,REGISTRATION_FAILED. - license
Token String - License Token can be provided for some device types o the device.
 - mgmt
Acl StringTemplate Uuid  - Identifier of an MGMT interface ACL template that will be applied on a secondary device.
ssh-key- (Optional) Up to one definition of SSH key that will be provisioned on a secondary device.
 - project
Id String - Unique Identifier for the project resource where the device is scoped to.If you leave it out, the device will be created under the default project id of your organization.
 - redundancy
Type String - Device redundancy type applicable for HA devices, either primary or secondary.
 - redundant
Id String - Unique identifier for a redundant device applicable for HA devices.
 - region String
 - Device location region.
 - ssh
Ip StringAddress  - IP address of SSH enabled interface on the device.
 - ssh
Ip StringFqdn  - FQDN of SSH enabled interface on the device.
 - ssh
Key DeviceSecondary Device Ssh Key  - Definition of SSH key that will be provisioned on a device
 - status String
 - interface status. One of 
AVAILABLE,RESERVED,ASSIGNED. - uuid String
 - Device unique identifier.
 - vendor
Configuration Map<String,String> - Key/Value pairs of vendor specific configuration parameters for a secondary device. Key values are 
controller1,activationKey,managementType,siteId,systemIpAddress,privateAddress,privateCidrMask,privateGateway,licenseKey,licenseId,panoramaAuthKey,panoramaIpAddress. - wan
Interface StringId  - device interface id picked for WAN
 - zone
Code String - Device location zone code.
 
- account
Number string - Billing account number for secondary device.
 - metro
Code string - Metro location of a secondary device.
 - name string
 - Secondary device name.
 - notifications string[]
 - List of email addresses that will receive notifications about secondary device.
 - acl
Template stringId  - Identifier of a WAN interface ACL template that will be applied on a secondary device.
 - additional
Bandwidth number - Additional Internet bandwidth, in Mbps, for a secondary device.
 - asn number
 - (Autonomous System Number) Unique identifier for a network on the internet.
 - cloud
Init stringFile Id  - Identifier of a cloud init file that will be applied on a secondary device.
 - hostname string
 - Secondary device hostname.
 - ibx string
 - Device location Equinix Business Exchange name.
 - interfaces
Device
Secondary Device Interface[]  - List of device interfaces. See Interface Attribute below for more details.
 - license
File string - Path to the license file that will be uploaded and applied on a secondary device. Applicable for some device types in BYOL licensing mode.
 - license
File stringId  - Identifier of a license file that will be applied on a secondary device.
 - license
Status string - Device license registration status. Possible values are 
APPLYING_LICENSE,REGISTERED,APPLIED,WAITING_FOR_CLUSTER_SETUP,REGISTRATION_FAILED. - license
Token string - License Token can be provided for some device types o the device.
 - mgmt
Acl stringTemplate Uuid  - Identifier of an MGMT interface ACL template that will be applied on a secondary device.
ssh-key- (Optional) Up to one definition of SSH key that will be provisioned on a secondary device.
 - project
Id string - Unique Identifier for the project resource where the device is scoped to.If you leave it out, the device will be created under the default project id of your organization.
 - redundancy
Type string - Device redundancy type applicable for HA devices, either primary or secondary.
 - redundant
Id string - Unique identifier for a redundant device applicable for HA devices.
 - region string
 - Device location region.
 - ssh
Ip stringAddress  - IP address of SSH enabled interface on the device.
 - ssh
Ip stringFqdn  - FQDN of SSH enabled interface on the device.
 - ssh
Key DeviceSecondary Device Ssh Key  - Definition of SSH key that will be provisioned on a device
 - status string
 - interface status. One of 
AVAILABLE,RESERVED,ASSIGNED. - uuid string
 - Device unique identifier.
 - vendor
Configuration {[key: string]: string} - Key/Value pairs of vendor specific configuration parameters for a secondary device. Key values are 
controller1,activationKey,managementType,siteId,systemIpAddress,privateAddress,privateCidrMask,privateGateway,licenseKey,licenseId,panoramaAuthKey,panoramaIpAddress. - wan
Interface stringId  - device interface id picked for WAN
 - zone
Code string - Device location zone code.
 
- account_
number str - Billing account number for secondary device.
 - metro_
code str - Metro location of a secondary device.
 - name str
 - Secondary device name.
 - notifications Sequence[str]
 - List of email addresses that will receive notifications about secondary device.
 - acl_
template_ strid  - Identifier of a WAN interface ACL template that will be applied on a secondary device.
 - additional_
bandwidth int - Additional Internet bandwidth, in Mbps, for a secondary device.
 - asn int
 - (Autonomous System Number) Unique identifier for a network on the internet.
 - cloud_
init_ strfile_ id  - Identifier of a cloud init file that will be applied on a secondary device.
 - hostname str
 - Secondary device hostname.
 - ibx str
 - Device location Equinix Business Exchange name.
 - interfaces
Sequence[Device
Secondary Device Interface]  - List of device interfaces. See Interface Attribute below for more details.
 - license_
file str - Path to the license file that will be uploaded and applied on a secondary device. Applicable for some device types in BYOL licensing mode.
 - license_
file_ strid  - Identifier of a license file that will be applied on a secondary device.
 - license_
status str - Device license registration status. Possible values are 
APPLYING_LICENSE,REGISTERED,APPLIED,WAITING_FOR_CLUSTER_SETUP,REGISTRATION_FAILED. - license_
token str - License Token can be provided for some device types o the device.
 - mgmt_
acl_ strtemplate_ uuid  - Identifier of an MGMT interface ACL template that will be applied on a secondary device.
ssh-key- (Optional) Up to one definition of SSH key that will be provisioned on a secondary device.
 - project_
id str - Unique Identifier for the project resource where the device is scoped to.If you leave it out, the device will be created under the default project id of your organization.
 - redundancy_
type str - Device redundancy type applicable for HA devices, either primary or secondary.
 - redundant_
id str - Unique identifier for a redundant device applicable for HA devices.
 - region str
 - Device location region.
 - ssh_
ip_ straddress  - IP address of SSH enabled interface on the device.
 - ssh_
ip_ strfqdn  - FQDN of SSH enabled interface on the device.
 - ssh_
key DeviceSecondary Device Ssh Key  - Definition of SSH key that will be provisioned on a device
 - status str
 - interface status. One of 
AVAILABLE,RESERVED,ASSIGNED. - uuid str
 - Device unique identifier.
 - vendor_
configuration Mapping[str, str] - Key/Value pairs of vendor specific configuration parameters for a secondary device. Key values are 
controller1,activationKey,managementType,siteId,systemIpAddress,privateAddress,privateCidrMask,privateGateway,licenseKey,licenseId,panoramaAuthKey,panoramaIpAddress. - wan_
interface_ strid  - device interface id picked for WAN
 - zone_
code str - Device location zone code.
 
- account
Number String - Billing account number for secondary device.
 - metro
Code String - Metro location of a secondary device.
 - name String
 - Secondary device name.
 - notifications List<String>
 - List of email addresses that will receive notifications about secondary device.
 - acl
Template StringId  - Identifier of a WAN interface ACL template that will be applied on a secondary device.
 - additional
Bandwidth Number - Additional Internet bandwidth, in Mbps, for a secondary device.
 - asn Number
 - (Autonomous System Number) Unique identifier for a network on the internet.
 - cloud
Init StringFile Id  - Identifier of a cloud init file that will be applied on a secondary device.
 - hostname String
 - Secondary device hostname.
 - ibx String
 - Device location Equinix Business Exchange name.
 - interfaces List<Property Map>
 - List of device interfaces. See Interface Attribute below for more details.
 - license
File String - Path to the license file that will be uploaded and applied on a secondary device. Applicable for some device types in BYOL licensing mode.
 - license
File StringId  - Identifier of a license file that will be applied on a secondary device.
 - license
Status String - Device license registration status. Possible values are 
APPLYING_LICENSE,REGISTERED,APPLIED,WAITING_FOR_CLUSTER_SETUP,REGISTRATION_FAILED. - license
Token String - License Token can be provided for some device types o the device.
 - mgmt
Acl StringTemplate Uuid  - Identifier of an MGMT interface ACL template that will be applied on a secondary device.
ssh-key- (Optional) Up to one definition of SSH key that will be provisioned on a secondary device.
 - project
Id String - Unique Identifier for the project resource where the device is scoped to.If you leave it out, the device will be created under the default project id of your organization.
 - redundancy
Type String - Device redundancy type applicable for HA devices, either primary or secondary.
 - redundant
Id String - Unique identifier for a redundant device applicable for HA devices.
 - region String
 - Device location region.
 - ssh
Ip StringAddress  - IP address of SSH enabled interface on the device.
 - ssh
Ip StringFqdn  - FQDN of SSH enabled interface on the device.
 - ssh
Key Property Map - Definition of SSH key that will be provisioned on a device
 - status String
 - interface status. One of 
AVAILABLE,RESERVED,ASSIGNED. - uuid String
 - Device unique identifier.
 - vendor
Configuration Map<String> - Key/Value pairs of vendor specific configuration parameters for a secondary device. Key values are 
controller1,activationKey,managementType,siteId,systemIpAddress,privateAddress,privateCidrMask,privateGateway,licenseKey,licenseId,panoramaAuthKey,panoramaIpAddress. - wan
Interface StringId  - device interface id picked for WAN
 - zone
Code String - Device location zone code.
 
DeviceSecondaryDeviceInterface, DeviceSecondaryDeviceInterfaceArgs        
- Assigned
Type string - interface management type (Equinix Managed or empty).
 - Id int
 - interface identifier.
 - Ip
Address string - interface IP address.
 - Mac
Address string - interface MAC address.
 - Name string
 - Device name.
 - Operational
Status string - interface operational status. One of 
up,down. - Status string
 - interface status. One of 
AVAILABLE,RESERVED,ASSIGNED. - Type string
 - interface type.
 
- Assigned
Type string - interface management type (Equinix Managed or empty).
 - Id int
 - interface identifier.
 - Ip
Address string - interface IP address.
 - Mac
Address string - interface MAC address.
 - Name string
 - Device name.
 - Operational
Status string - interface operational status. One of 
up,down. - Status string
 - interface status. One of 
AVAILABLE,RESERVED,ASSIGNED. - Type string
 - interface type.
 
- assigned
Type String - interface management type (Equinix Managed or empty).
 - id Integer
 - interface identifier.
 - ip
Address String - interface IP address.
 - mac
Address String - interface MAC address.
 - name String
 - Device name.
 - operational
Status String - interface operational status. One of 
up,down. - status String
 - interface status. One of 
AVAILABLE,RESERVED,ASSIGNED. - type String
 - interface type.
 
- assigned
Type string - interface management type (Equinix Managed or empty).
 - id number
 - interface identifier.
 - ip
Address string - interface IP address.
 - mac
Address string - interface MAC address.
 - name string
 - Device name.
 - operational
Status string - interface operational status. One of 
up,down. - status string
 - interface status. One of 
AVAILABLE,RESERVED,ASSIGNED. - type string
 - interface type.
 
- assigned_
type str - interface management type (Equinix Managed or empty).
 - id int
 - interface identifier.
 - ip_
address str - interface IP address.
 - mac_
address str - interface MAC address.
 - name str
 - Device name.
 - operational_
status str - interface operational status. One of 
up,down. - status str
 - interface status. One of 
AVAILABLE,RESERVED,ASSIGNED. - type str
 - interface type.
 
- assigned
Type String - interface management type (Equinix Managed or empty).
 - id Number
 - interface identifier.
 - ip
Address String - interface IP address.
 - mac
Address String - interface MAC address.
 - name String
 - Device name.
 - operational
Status String - interface operational status. One of 
up,down. - status String
 - interface status. One of 
AVAILABLE,RESERVED,ASSIGNED. - type String
 - interface type.
 
DeviceSecondaryDeviceSshKey, DeviceSecondaryDeviceSshKeyArgs          
DeviceSshKey, DeviceSshKeyArgs      
ThroughputUnit, ThroughputUnitArgs    
- Mbps
 - Mbps
 - Gbps
 - Gbps
 
- Throughput
Unit Mbps  - Mbps
 - Throughput
Unit Gbps  - Gbps
 
- Mbps
 - Mbps
 - Gbps
 - Gbps
 
- Mbps
 - Mbps
 - Gbps
 - Gbps
 
- MBPS
 - Mbps
 - GBPS
 - Gbps
 
- "Mbps"
 - Mbps
 - "Gbps"
 - Gbps
 
Package Details
- Repository
 - equinix equinix/pulumi-equinix
 - License
 - Apache-2.0
 - Notes
 - This Pulumi package is based on the 
equinixTerraform Provider.