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:
- AccountNumber string
- Billing account number for a device.
- CoreCount 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.)
- MetroCode string
- Device location metro code.
- Notifications List<string>
- List of email addresses that will receive device status notifications.
- PackageCode string
- Device software package code.
- TermLength int
- Device term length.
- TypeCode string
- Device type code.
- Version string
- Device software software version.
- AclTemplate stringId 
- Identifier of a WAN interface ACL template that will be applied on the device.
- AdditionalBandwidth 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).
- CloudInit stringFile Id 
- Identifier of a cloud init file that will be applied on the device.
- ClusterDetails 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
- DiverseDevice 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.
- GenerateDefault 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.
- InterfaceCount int
- Number of network interfaces on a device. If not specified, default number for a given device type will be used.
- LicenseFile string
- Path to the license file that will be uploaded and applied on a device. Applicable for some device types in BYOL licensing mode.
- LicenseFile stringId 
- Identifier of a license file that will be applied on the device.
- LicenseToken string
- License Token applicable for some device types in BYOL licensing mode.
- MgmtAcl stringTemplate Uuid 
- Identifier of an MGMT interface ACL template that will be applied on the device.
- Name string
- Device name.
- OrderReference string
- Name/number used to identify device order on the invoice.
- ProjectId 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.
- PurchaseOrder stringNumber 
- Purchase order number associated with a device order.
- SecondaryDevice DeviceSecondary Device 
- Definition of secondary device for redundant device configurations. See Secondary Device below for more details.
- SelfManaged bool
- Boolean value that determines device management mode, i.e., self-managedorEquinix-managed(default).
- SshKey DeviceSsh Key 
- Definition of SSH key that will be provisioned on a device
- Throughput int
- Device license throughput.
- ThroughputUnit 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'.
- VendorConfiguration 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.
 
- WanInterface stringId 
- device interface id picked for WAN
- AccountNumber string
- Billing account number for a device.
- CoreCount 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.)
- MetroCode string
- Device location metro code.
- Notifications []string
- List of email addresses that will receive device status notifications.
- PackageCode string
- Device software package code.
- TermLength int
- Device term length.
- TypeCode string
- Device type code.
- Version string
- Device software software version.
- AclTemplate stringId 
- Identifier of a WAN interface ACL template that will be applied on the device.
- AdditionalBandwidth 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).
- CloudInit stringFile Id 
- Identifier of a cloud init file that will be applied on the device.
- ClusterDetails 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
- DiverseDevice 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.
- GenerateDefault 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.
- InterfaceCount int
- Number of network interfaces on a device. If not specified, default number for a given device type will be used.
- LicenseFile string
- Path to the license file that will be uploaded and applied on a device. Applicable for some device types in BYOL licensing mode.
- LicenseFile stringId 
- Identifier of a license file that will be applied on the device.
- LicenseToken string
- License Token applicable for some device types in BYOL licensing mode.
- MgmtAcl stringTemplate Uuid 
- Identifier of an MGMT interface ACL template that will be applied on the device.
- Name string
- Device name.
- OrderReference string
- Name/number used to identify device order on the invoice.
- ProjectId 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.
- PurchaseOrder stringNumber 
- Purchase order number associated with a device order.
- SecondaryDevice DeviceSecondary Device Args 
- Definition of secondary device for redundant device configurations. See Secondary Device below for more details.
- SelfManaged bool
- Boolean value that determines device management mode, i.e., self-managedorEquinix-managed(default).
- SshKey DeviceSsh Key Args 
- Definition of SSH key that will be provisioned on a device
- Throughput int
- Device license throughput.
- ThroughputUnit 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'.
- VendorConfiguration 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.
 
- WanInterface stringId 
- device interface id picked for WAN
- accountNumber String
- Billing account number for a device.
- coreCount 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.)
- metroCode String
- Device location metro code.
- notifications List<String>
- List of email addresses that will receive device status notifications.
- packageCode String
- Device software package code.
- termLength Integer
- Device term length.
- typeCode String
- Device type code.
- version String
- Device software software version.
- aclTemplate StringId 
- Identifier of a WAN interface ACL template that will be applied on the device.
- additionalBandwidth 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).
- cloudInit StringFile Id 
- Identifier of a cloud init file that will be applied on the device.
- clusterDetails 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
- diverseDevice 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.
- generateDefault 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.
- interfaceCount Integer
- Number of network interfaces on a device. If not specified, default number for a given device type will be used.
- licenseFile String
- Path to the license file that will be uploaded and applied on a device. Applicable for some device types in BYOL licensing mode.
- licenseFile StringId 
- Identifier of a license file that will be applied on the device.
- licenseToken String
- License Token applicable for some device types in BYOL licensing mode.
- mgmtAcl StringTemplate Uuid 
- Identifier of an MGMT interface ACL template that will be applied on the device.
- name String
- Device name.
- orderReference String
- Name/number used to identify device order on the invoice.
- projectId 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.
- purchaseOrder StringNumber 
- Purchase order number associated with a device order.
- secondaryDevice DeviceSecondary Device 
- Definition of secondary device for redundant device configurations. See Secondary Device below for more details.
- selfManaged Boolean
- Boolean value that determines device management mode, i.e., self-managedorEquinix-managed(default).
- sshKey DeviceSsh Key 
- Definition of SSH key that will be provisioned on a device
- throughput Integer
- Device license throughput.
- throughputUnit 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'.
- vendorConfiguration 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.
 
- wanInterface StringId 
- device interface id picked for WAN
- accountNumber string
- Billing account number for a device.
- coreCount 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.)
- metroCode string
- Device location metro code.
- notifications string[]
- List of email addresses that will receive device status notifications.
- packageCode string
- Device software package code.
- termLength number
- Device term length.
- typeCode string
- Device type code.
- version string
- Device software software version.
- aclTemplate stringId 
- Identifier of a WAN interface ACL template that will be applied on the device.
- additionalBandwidth 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).
- cloudInit stringFile Id 
- Identifier of a cloud init file that will be applied on the device.
- clusterDetails 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
- diverseDevice 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.
- generateDefault 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.
- interfaceCount number
- Number of network interfaces on a device. If not specified, default number for a given device type will be used.
- licenseFile string
- Path to the license file that will be uploaded and applied on a device. Applicable for some device types in BYOL licensing mode.
- licenseFile stringId 
- Identifier of a license file that will be applied on the device.
- licenseToken string
- License Token applicable for some device types in BYOL licensing mode.
- mgmtAcl stringTemplate Uuid 
- Identifier of an MGMT interface ACL template that will be applied on the device.
- name string
- Device name.
- orderReference string
- Name/number used to identify device order on the invoice.
- projectId 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.
- purchaseOrder stringNumber 
- Purchase order number associated with a device order.
- secondaryDevice DeviceSecondary Device 
- Definition of secondary device for redundant device configurations. See Secondary Device below for more details.
- selfManaged boolean
- Boolean value that determines device management mode, i.e., self-managedorEquinix-managed(default).
- sshKey DeviceSsh Key 
- Definition of SSH key that will be provisioned on a device
- throughput number
- Device license throughput.
- throughputUnit 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'.
- vendorConfiguration {[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.
 
- wanInterface 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
- accountNumber String
- Billing account number for a device.
- coreCount 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.)
- metroCode String
- Device location metro code.
- notifications List<String>
- List of email addresses that will receive device status notifications.
- packageCode String
- Device software package code.
- termLength Number
- Device term length.
- typeCode String
- Device type code.
- version String
- Device software software version.
- aclTemplate StringId 
- Identifier of a WAN interface ACL template that will be applied on the device.
- additionalBandwidth 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).
- cloudInit StringFile Id 
- Identifier of a cloud init file that will be applied on the device.
- clusterDetails 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
- diverseDevice 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.
- generateDefault 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.
- interfaceCount Number
- Number of network interfaces on a device. If not specified, default number for a given device type will be used.
- licenseFile String
- Path to the license file that will be uploaded and applied on a device. Applicable for some device types in BYOL licensing mode.
- licenseFile StringId 
- Identifier of a license file that will be applied on the device.
- licenseToken String
- License Token applicable for some device types in BYOL licensing mode.
- mgmtAcl StringTemplate Uuid 
- Identifier of an MGMT interface ACL template that will be applied on the device.
- name String
- Device name.
- orderReference String
- Name/number used to identify device order on the invoice.
- projectId 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.
- purchaseOrder StringNumber 
- Purchase order number associated with a device order.
- secondaryDevice Property Map
- Definition of secondary device for redundant device configurations. See Secondary Device below for more details.
- selfManaged Boolean
- Boolean value that determines device management mode, i.e., self-managedorEquinix-managed(default).
- sshKey Property Map
- Definition of SSH key that will be provisioned on a device
- throughput Number
- Device license throughput.
- throughputUnit 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'.
- vendorConfiguration 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.
 
- wanInterface 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.
- DiverseDevice 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<DeviceInterface> 
- List of device interfaces. See Interface Attribute below for more details.
- LicenseStatus string
- Device license registration status. Possible values are APPLYING_LICENSE,REGISTERED,APPLIED,WAITING_FOR_CLUSTER_SETUP,REGISTRATION_FAILED.
- RedundancyType string
- Device redundancy type applicable for HA devices, either primary or secondary.
- RedundantId string
- Unique identifier for a redundant device applicable for HA devices.
- Region string
- Device location region.
- SshIp stringAddress 
- IP address of SSH enabled interface on the device.
- SshIp stringFqdn 
- FQDN of SSH enabled interface on the device.
- Status string
- interface status. One of AVAILABLE,RESERVED,ASSIGNED.
- Uuid string
- Device unique identifier.
- ZoneCode string
- Device location zone code.
- Asn int
- (Autonomous System Number) Unique identifier for a network on the internet.
- DiverseDevice 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
[]DeviceInterface 
- List of device interfaces. See Interface Attribute below for more details.
- LicenseStatus string
- Device license registration status. Possible values are APPLYING_LICENSE,REGISTERED,APPLIED,WAITING_FOR_CLUSTER_SETUP,REGISTRATION_FAILED.
- RedundancyType string
- Device redundancy type applicable for HA devices, either primary or secondary.
- RedundantId string
- Unique identifier for a redundant device applicable for HA devices.
- Region string
- Device location region.
- SshIp stringAddress 
- IP address of SSH enabled interface on the device.
- SshIp stringFqdn 
- FQDN of SSH enabled interface on the device.
- Status string
- interface status. One of AVAILABLE,RESERVED,ASSIGNED.
- Uuid string
- Device unique identifier.
- ZoneCode string
- Device location zone code.
- asn Integer
- (Autonomous System Number) Unique identifier for a network on the internet.
- diverseDevice 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<DeviceInterface> 
- List of device interfaces. See Interface Attribute below for more details.
- licenseStatus String
- Device license registration status. Possible values are APPLYING_LICENSE,REGISTERED,APPLIED,WAITING_FOR_CLUSTER_SETUP,REGISTRATION_FAILED.
- redundancyType String
- Device redundancy type applicable for HA devices, either primary or secondary.
- redundantId String
- Unique identifier for a redundant device applicable for HA devices.
- region String
- Device location region.
- sshIp StringAddress 
- IP address of SSH enabled interface on the device.
- sshIp StringFqdn 
- FQDN of SSH enabled interface on the device.
- status String
- interface status. One of AVAILABLE,RESERVED,ASSIGNED.
- uuid String
- Device unique identifier.
- zoneCode String
- Device location zone code.
- asn number
- (Autonomous System Number) Unique identifier for a network on the internet.
- diverseDevice 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
DeviceInterface[] 
- List of device interfaces. See Interface Attribute below for more details.
- licenseStatus string
- Device license registration status. Possible values are APPLYING_LICENSE,REGISTERED,APPLIED,WAITING_FOR_CLUSTER_SETUP,REGISTRATION_FAILED.
- redundancyType string
- Device redundancy type applicable for HA devices, either primary or secondary.
- redundantId string
- Unique identifier for a redundant device applicable for HA devices.
- region string
- Device location region.
- sshIp stringAddress 
- IP address of SSH enabled interface on the device.
- sshIp stringFqdn 
- FQDN of SSH enabled interface on the device.
- status string
- interface status. One of AVAILABLE,RESERVED,ASSIGNED.
- uuid string
- Device unique identifier.
- zoneCode 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[DeviceInterface] 
- 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.
- diverseDevice 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.
- licenseStatus String
- Device license registration status. Possible values are APPLYING_LICENSE,REGISTERED,APPLIED,WAITING_FOR_CLUSTER_SETUP,REGISTRATION_FAILED.
- redundancyType String
- Device redundancy type applicable for HA devices, either primary or secondary.
- redundantId String
- Unique identifier for a redundant device applicable for HA devices.
- region String
- Device location region.
- sshIp StringAddress 
- IP address of SSH enabled interface on the device.
- sshIp StringFqdn 
- FQDN of SSH enabled interface on the device.
- status String
- interface status. One of AVAILABLE,RESERVED,ASSIGNED.
- uuid String
- Device unique identifier.
- zoneCode 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.
- AccountNumber string
- Billing account number for a device.
- AclTemplate stringId 
- Identifier of a WAN interface ACL template that will be applied on the device.
- AdditionalBandwidth 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).
- CloudInit stringFile Id 
- Identifier of a cloud init file that will be applied on the device.
- ClusterDetails 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
- CoreCount 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.)
- DiverseDevice 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.
- DiverseDevice 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.
- GenerateDefault 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.
- InterfaceCount int
- Number of network interfaces on a device. If not specified, default number for a given device type will be used.
- Interfaces
List<DeviceInterface> 
- List of device interfaces. See Interface Attribute below for more details.
- LicenseFile string
- Path to the license file that will be uploaded and applied on a device. Applicable for some device types in BYOL licensing mode.
- LicenseFile stringId 
- Identifier of a license file that will be applied on the device.
- LicenseStatus string
- Device license registration status. Possible values are APPLYING_LICENSE,REGISTERED,APPLIED,WAITING_FOR_CLUSTER_SETUP,REGISTRATION_FAILED.
- LicenseToken string
- License Token applicable for some device types in BYOL licensing mode.
- MetroCode string
- Device location metro code.
- MgmtAcl 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.
- OrderReference string
- Name/number used to identify device order on the invoice.
- PackageCode string
- Device software package code.
- ProjectId 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.
- PurchaseOrder stringNumber 
- Purchase order number associated with a device order.
- RedundancyType string
- Device redundancy type applicable for HA devices, either primary or secondary.
- RedundantId string
- Unique identifier for a redundant device applicable for HA devices.
- Region string
- Device location region.
- SecondaryDevice DeviceSecondary Device 
- Definition of secondary device for redundant device configurations. See Secondary Device below for more details.
- SelfManaged bool
- Boolean value that determines device management mode, i.e., self-managedorEquinix-managed(default).
- SshIp stringAddress 
- IP address of SSH enabled interface on the device.
- SshIp stringFqdn 
- FQDN of SSH enabled interface on the device.
- SshKey DeviceSsh Key 
- Definition of SSH key that will be provisioned on a device
- Status string
- interface status. One of AVAILABLE,RESERVED,ASSIGNED.
- TermLength int
- Device term length.
- Throughput int
- Device license throughput.
- ThroughputUnit 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'.
- TypeCode string
- Device type code.
- Uuid string
- Device unique identifier.
- VendorConfiguration 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.
- WanInterface stringId 
- device interface id picked for WAN
- ZoneCode string
- Device location zone code.
- AccountNumber string
- Billing account number for a device.
- AclTemplate stringId 
- Identifier of a WAN interface ACL template that will be applied on the device.
- AdditionalBandwidth 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).
- CloudInit stringFile Id 
- Identifier of a cloud init file that will be applied on the device.
- ClusterDetails 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
- CoreCount 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.)
- DiverseDevice 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.
- DiverseDevice 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.
- GenerateDefault 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.
- InterfaceCount int
- Number of network interfaces on a device. If not specified, default number for a given device type will be used.
- Interfaces
[]DeviceInterface Args 
- List of device interfaces. See Interface Attribute below for more details.
- LicenseFile string
- Path to the license file that will be uploaded and applied on a device. Applicable for some device types in BYOL licensing mode.
- LicenseFile stringId 
- Identifier of a license file that will be applied on the device.
- LicenseStatus string
- Device license registration status. Possible values are APPLYING_LICENSE,REGISTERED,APPLIED,WAITING_FOR_CLUSTER_SETUP,REGISTRATION_FAILED.
- LicenseToken string
- License Token applicable for some device types in BYOL licensing mode.
- MetroCode string
- Device location metro code.
- MgmtAcl 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.
- OrderReference string
- Name/number used to identify device order on the invoice.
- PackageCode string
- Device software package code.
- ProjectId 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.
- PurchaseOrder stringNumber 
- Purchase order number associated with a device order.
- RedundancyType string
- Device redundancy type applicable for HA devices, either primary or secondary.
- RedundantId string
- Unique identifier for a redundant device applicable for HA devices.
- Region string
- Device location region.
- SecondaryDevice DeviceSecondary Device Args 
- Definition of secondary device for redundant device configurations. See Secondary Device below for more details.
- SelfManaged bool
- Boolean value that determines device management mode, i.e., self-managedorEquinix-managed(default).
- SshIp stringAddress 
- IP address of SSH enabled interface on the device.
- SshIp stringFqdn 
- FQDN of SSH enabled interface on the device.
- SshKey DeviceSsh Key Args 
- Definition of SSH key that will be provisioned on a device
- Status string
- interface status. One of AVAILABLE,RESERVED,ASSIGNED.
- TermLength int
- Device term length.
- Throughput int
- Device license throughput.
- ThroughputUnit 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'.
- TypeCode string
- Device type code.
- Uuid string
- Device unique identifier.
- VendorConfiguration 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.
- WanInterface stringId 
- device interface id picked for WAN
- ZoneCode string
- Device location zone code.
- accountNumber String
- Billing account number for a device.
- aclTemplate StringId 
- Identifier of a WAN interface ACL template that will be applied on the device.
- additionalBandwidth 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).
- cloudInit StringFile Id 
- Identifier of a cloud init file that will be applied on the device.
- clusterDetails 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
- coreCount 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.)
- diverseDevice 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.
- diverseDevice 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.
- generateDefault 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.
- interfaceCount Integer
- Number of network interfaces on a device. If not specified, default number for a given device type will be used.
- interfaces
List<DeviceInterface> 
- List of device interfaces. See Interface Attribute below for more details.
- licenseFile String
- Path to the license file that will be uploaded and applied on a device. Applicable for some device types in BYOL licensing mode.
- licenseFile StringId 
- Identifier of a license file that will be applied on the device.
- licenseStatus String
- Device license registration status. Possible values are APPLYING_LICENSE,REGISTERED,APPLIED,WAITING_FOR_CLUSTER_SETUP,REGISTRATION_FAILED.
- licenseToken String
- License Token applicable for some device types in BYOL licensing mode.
- metroCode String
- Device location metro code.
- mgmtAcl 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.
- orderReference String
- Name/number used to identify device order on the invoice.
- packageCode String
- Device software package code.
- projectId 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.
- purchaseOrder StringNumber 
- Purchase order number associated with a device order.
- redundancyType String
- Device redundancy type applicable for HA devices, either primary or secondary.
- redundantId String
- Unique identifier for a redundant device applicable for HA devices.
- region String
- Device location region.
- secondaryDevice DeviceSecondary Device 
- Definition of secondary device for redundant device configurations. See Secondary Device below for more details.
- selfManaged Boolean
- Boolean value that determines device management mode, i.e., self-managedorEquinix-managed(default).
- sshIp StringAddress 
- IP address of SSH enabled interface on the device.
- sshIp StringFqdn 
- FQDN of SSH enabled interface on the device.
- sshKey DeviceSsh Key 
- Definition of SSH key that will be provisioned on a device
- status String
- interface status. One of AVAILABLE,RESERVED,ASSIGNED.
- termLength Integer
- Device term length.
- throughput Integer
- Device license throughput.
- throughputUnit 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'.
- typeCode String
- Device type code.
- uuid String
- Device unique identifier.
- vendorConfiguration 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.
- wanInterface StringId 
- device interface id picked for WAN
- zoneCode String
- Device location zone code.
- accountNumber string
- Billing account number for a device.
- aclTemplate stringId 
- Identifier of a WAN interface ACL template that will be applied on the device.
- additionalBandwidth 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).
- cloudInit stringFile Id 
- Identifier of a cloud init file that will be applied on the device.
- clusterDetails 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
- coreCount 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.)
- diverseDevice 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.
- diverseDevice 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.
- generateDefault 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.
- interfaceCount number
- Number of network interfaces on a device. If not specified, default number for a given device type will be used.
- interfaces
DeviceInterface[] 
- List of device interfaces. See Interface Attribute below for more details.
- licenseFile string
- Path to the license file that will be uploaded and applied on a device. Applicable for some device types in BYOL licensing mode.
- licenseFile stringId 
- Identifier of a license file that will be applied on the device.
- licenseStatus string
- Device license registration status. Possible values are APPLYING_LICENSE,REGISTERED,APPLIED,WAITING_FOR_CLUSTER_SETUP,REGISTRATION_FAILED.
- licenseToken string
- License Token applicable for some device types in BYOL licensing mode.
- metroCode string
- Device location metro code.
- mgmtAcl 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.
- orderReference string
- Name/number used to identify device order on the invoice.
- packageCode string
- Device software package code.
- projectId 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.
- purchaseOrder stringNumber 
- Purchase order number associated with a device order.
- redundancyType string
- Device redundancy type applicable for HA devices, either primary or secondary.
- redundantId string
- Unique identifier for a redundant device applicable for HA devices.
- region string
- Device location region.
- secondaryDevice DeviceSecondary Device 
- Definition of secondary device for redundant device configurations. See Secondary Device below for more details.
- selfManaged boolean
- Boolean value that determines device management mode, i.e., self-managedorEquinix-managed(default).
- sshIp stringAddress 
- IP address of SSH enabled interface on the device.
- sshIp stringFqdn 
- FQDN of SSH enabled interface on the device.
- sshKey DeviceSsh Key 
- Definition of SSH key that will be provisioned on a device
- status string
- interface status. One of AVAILABLE,RESERVED,ASSIGNED.
- termLength number
- Device term length.
- throughput number
- Device license throughput.
- throughputUnit 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'.
- typeCode string
- Device type code.
- uuid string
- Device unique identifier.
- vendorConfiguration {[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.
- wanInterface stringId 
- device interface id picked for WAN
- zoneCode 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[DeviceInterface 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.
- accountNumber String
- Billing account number for a device.
- aclTemplate StringId 
- Identifier of a WAN interface ACL template that will be applied on the device.
- additionalBandwidth 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).
- cloudInit StringFile Id 
- Identifier of a cloud init file that will be applied on the device.
- clusterDetails 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
- coreCount 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.)
- diverseDevice 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.
- diverseDevice 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.
- generateDefault 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.
- interfaceCount 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.
- licenseFile String
- Path to the license file that will be uploaded and applied on a device. Applicable for some device types in BYOL licensing mode.
- licenseFile StringId 
- Identifier of a license file that will be applied on the device.
- licenseStatus String
- Device license registration status. Possible values are APPLYING_LICENSE,REGISTERED,APPLIED,WAITING_FOR_CLUSTER_SETUP,REGISTRATION_FAILED.
- licenseToken String
- License Token applicable for some device types in BYOL licensing mode.
- metroCode String
- Device location metro code.
- mgmtAcl 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.
- orderReference String
- Name/number used to identify device order on the invoice.
- packageCode String
- Device software package code.
- projectId 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.
- purchaseOrder StringNumber 
- Purchase order number associated with a device order.
- redundancyType String
- Device redundancy type applicable for HA devices, either primary or secondary.
- redundantId String
- Unique identifier for a redundant device applicable for HA devices.
- region String
- Device location region.
- secondaryDevice Property Map
- Definition of secondary device for redundant device configurations. See Secondary Device below for more details.
- selfManaged Boolean
- Boolean value that determines device management mode, i.e., self-managedorEquinix-managed(default).
- sshIp StringAddress 
- IP address of SSH enabled interface on the device.
- sshIp StringFqdn 
- FQDN of SSH enabled interface on the device.
- sshKey Property Map
- Definition of SSH key that will be provisioned on a device
- status String
- interface status. One of AVAILABLE,RESERVED,ASSIGNED.
- termLength Number
- Device term length.
- throughput Number
- Device license throughput.
- throughputUnit 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'.
- typeCode String
- Device type code.
- uuid String
- Device unique identifier.
- vendorConfiguration 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.
- wanInterface StringId 
- device interface id picked for WAN
- zoneCode String
- Device location zone code.
Supporting Types
DeviceClusterDetails, DeviceClusterDetailsArgs      
- ClusterName string
- The name of the cluster device
- Node0
DeviceCluster Details Node0 
- An object that has node0configuration. See Cluster Details - Nodes below for more details.
- Node1
DeviceCluster Details Node1 
- An object that has node1configuration. See Cluster Details - Nodes below for more details.
- ClusterId string
- The ID of the cluster.
- NumOf intNodes 
- The number of nodes in the cluster.
- ClusterName string
- The name of the cluster device
- Node0
DeviceCluster Details Node0 
- An object that has node0configuration. See Cluster Details - Nodes below for more details.
- Node1
DeviceCluster Details Node1 
- An object that has node1configuration. See Cluster Details - Nodes below for more details.
- ClusterId string
- The ID of the cluster.
- NumOf intNodes 
- The number of nodes in the cluster.
- clusterName String
- The name of the cluster device
- node0
DeviceCluster Details Node0 
- An object that has node0configuration. See Cluster Details - Nodes below for more details.
- node1
DeviceCluster Details Node1 
- An object that has node1configuration. See Cluster Details - Nodes below for more details.
- clusterId String
- The ID of the cluster.
- numOf IntegerNodes 
- The number of nodes in the cluster.
- clusterName string
- The name of the cluster device
- node0
DeviceCluster Details Node0 
- An object that has node0configuration. See Cluster Details - Nodes below for more details.
- node1
DeviceCluster Details Node1 
- An object that has node1configuration. See Cluster Details - Nodes below for more details.
- clusterId string
- The ID of the cluster.
- numOf numberNodes 
- The number of nodes in the cluster.
- cluster_name str
- The name of the cluster device
- node0
DeviceCluster Details Node0 
- An object that has node0configuration. See Cluster Details - Nodes below for more details.
- node1
DeviceCluster 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.
- clusterName 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.
- clusterId String
- The ID of the cluster.
- numOf NumberNodes 
- The number of nodes in the cluster.
DeviceClusterDetailsNode0, DeviceClusterDetailsNode0Args        
- LicenseFile stringId 
- License file id. This is necessary for Fortinet and Juniper clusters.
- LicenseToken string
- License token. This is necessary for Palo Alto clusters.
- Name string
- Device name.
- Uuid string
- Device unique identifier.
- VendorConfiguration 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.
- LicenseFile stringId 
- License file id. This is necessary for Fortinet and Juniper clusters.
- LicenseToken string
- License token. This is necessary for Palo Alto clusters.
- Name string
- Device name.
- Uuid string
- Device unique identifier.
- VendorConfiguration 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.
- licenseFile StringId 
- License file id. This is necessary for Fortinet and Juniper clusters.
- licenseToken String
- License token. This is necessary for Palo Alto clusters.
- name String
- Device name.
- uuid String
- Device unique identifier.
- vendorConfiguration 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.
- licenseFile stringId 
- License file id. This is necessary for Fortinet and Juniper clusters.
- licenseToken string
- License token. This is necessary for Palo Alto clusters.
- name string
- Device name.
- uuid string
- Device unique identifier.
- vendorConfiguration 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.
- licenseFile StringId 
- License file id. This is necessary for Fortinet and Juniper clusters.
- licenseToken String
- License token. This is necessary for Palo Alto clusters.
- name String
- Device name.
- uuid String
- Device unique identifier.
- vendorConfiguration 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          
- ActivationKey string
- Activation key. This is required for Velocloud clusters.
- AdminPassword 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.
- ControllerFqdn string
- Controller fqdn. This is required for Velocloud clusters.
- Hostname string
- Hostname. This is necessary for Palo Alto, Juniper, and Fortinet clusters.
- LicenseId string
- License id. This field is relevant only for the BlueCat DNS and DHCP Server
- LicenseKey string
- License key. This field is relevant only for the BlueCat DNS and DHCP Server
- PanoramaAuth stringKey 
- Panorama Server Auth Key. This field is relevant only for the PA-VM firewall devices to have integration with Panorama Server.
- PanoramaIp stringAddress 
- Panorama Server IP Address. This field is relevant only for the PA-VM firewall devices to have integration with Panorama Server.
- PrivateAddress string
- Private address. This field is relevant only for the BlueCat DNS and DHCP Server
- PrivateCidr stringMask 
- Private CIDR Mask. This field is relevant only for the BlueCat DNS and DHCP Server
- PrivateGateway string
- Private gateway. This field is relevant only for the BlueCat DNS and DHCP Server
- RootPassword string
- The CLI password of the device. This field is relevant only for the Velocloud SDWAN cluster.
- ActivationKey string
- Activation key. This is required for Velocloud clusters.
- AdminPassword 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.
- ControllerFqdn string
- Controller fqdn. This is required for Velocloud clusters.
- Hostname string
- Hostname. This is necessary for Palo Alto, Juniper, and Fortinet clusters.
- LicenseId string
- License id. This field is relevant only for the BlueCat DNS and DHCP Server
- LicenseKey string
- License key. This field is relevant only for the BlueCat DNS and DHCP Server
- PanoramaAuth stringKey 
- Panorama Server Auth Key. This field is relevant only for the PA-VM firewall devices to have integration with Panorama Server.
- PanoramaIp stringAddress 
- Panorama Server IP Address. This field is relevant only for the PA-VM firewall devices to have integration with Panorama Server.
- PrivateAddress string
- Private address. This field is relevant only for the BlueCat DNS and DHCP Server
- PrivateCidr stringMask 
- Private CIDR Mask. This field is relevant only for the BlueCat DNS and DHCP Server
- PrivateGateway string
- Private gateway. This field is relevant only for the BlueCat DNS and DHCP Server
- RootPassword string
- The CLI password of the device. This field is relevant only for the Velocloud SDWAN cluster.
- activationKey String
- Activation key. This is required for Velocloud clusters.
- adminPassword 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.
- controllerFqdn String
- Controller fqdn. This is required for Velocloud clusters.
- hostname String
- Hostname. This is necessary for Palo Alto, Juniper, and Fortinet clusters.
- licenseId String
- License id. This field is relevant only for the BlueCat DNS and DHCP Server
- licenseKey String
- License key. This field is relevant only for the BlueCat DNS and DHCP Server
- panoramaAuth StringKey 
- Panorama Server Auth Key. This field is relevant only for the PA-VM firewall devices to have integration with Panorama Server.
- panoramaIp StringAddress 
- Panorama Server IP Address. This field is relevant only for the PA-VM firewall devices to have integration with Panorama Server.
- privateAddress String
- Private address. This field is relevant only for the BlueCat DNS and DHCP Server
- privateCidr StringMask 
- Private CIDR Mask. This field is relevant only for the BlueCat DNS and DHCP Server
- privateGateway String
- Private gateway. This field is relevant only for the BlueCat DNS and DHCP Server
- rootPassword String
- The CLI password of the device. This field is relevant only for the Velocloud SDWAN cluster.
- activationKey string
- Activation key. This is required for Velocloud clusters.
- adminPassword 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.
- controllerFqdn string
- Controller fqdn. This is required for Velocloud clusters.
- hostname string
- Hostname. This is necessary for Palo Alto, Juniper, and Fortinet clusters.
- licenseId string
- License id. This field is relevant only for the BlueCat DNS and DHCP Server
- licenseKey string
- License key. This field is relevant only for the BlueCat DNS and DHCP Server
- panoramaAuth stringKey 
- Panorama Server Auth Key. This field is relevant only for the PA-VM firewall devices to have integration with Panorama Server.
- panoramaIp stringAddress 
- Panorama Server IP Address. This field is relevant only for the PA-VM firewall devices to have integration with Panorama Server.
- privateAddress string
- Private address. This field is relevant only for the BlueCat DNS and DHCP Server
- privateCidr stringMask 
- Private CIDR Mask. This field is relevant only for the BlueCat DNS and DHCP Server
- privateGateway string
- Private gateway. This field is relevant only for the BlueCat DNS and DHCP Server
- rootPassword 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.
- activationKey String
- Activation key. This is required for Velocloud clusters.
- adminPassword 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.
- controllerFqdn String
- Controller fqdn. This is required for Velocloud clusters.
- hostname String
- Hostname. This is necessary for Palo Alto, Juniper, and Fortinet clusters.
- licenseId String
- License id. This field is relevant only for the BlueCat DNS and DHCP Server
- licenseKey String
- License key. This field is relevant only for the BlueCat DNS and DHCP Server
- panoramaAuth StringKey 
- Panorama Server Auth Key. This field is relevant only for the PA-VM firewall devices to have integration with Panorama Server.
- panoramaIp StringAddress 
- Panorama Server IP Address. This field is relevant only for the PA-VM firewall devices to have integration with Panorama Server.
- privateAddress String
- Private address. This field is relevant only for the BlueCat DNS and DHCP Server
- privateCidr StringMask 
- Private CIDR Mask. This field is relevant only for the BlueCat DNS and DHCP Server
- privateGateway String
- Private gateway. This field is relevant only for the BlueCat DNS and DHCP Server
- rootPassword String
- The CLI password of the device. This field is relevant only for the Velocloud SDWAN cluster.
DeviceClusterDetailsNode1, DeviceClusterDetailsNode1Args        
- LicenseFile stringId 
- License file id. This is necessary for Fortinet and Juniper clusters.
- LicenseToken string
- License token. This is necessary for Palo Alto clusters.
- Name string
- Device name.
- Uuid string
- Device unique identifier.
- VendorConfiguration 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.
- LicenseFile stringId 
- License file id. This is necessary for Fortinet and Juniper clusters.
- LicenseToken string
- License token. This is necessary for Palo Alto clusters.
- Name string
- Device name.
- Uuid string
- Device unique identifier.
- VendorConfiguration 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.
- licenseFile StringId 
- License file id. This is necessary for Fortinet and Juniper clusters.
- licenseToken String
- License token. This is necessary for Palo Alto clusters.
- name String
- Device name.
- uuid String
- Device unique identifier.
- vendorConfiguration 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.
- licenseFile stringId 
- License file id. This is necessary for Fortinet and Juniper clusters.
- licenseToken string
- License token. This is necessary for Palo Alto clusters.
- name string
- Device name.
- uuid string
- Device unique identifier.
- vendorConfiguration 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.
- licenseFile StringId 
- License file id. This is necessary for Fortinet and Juniper clusters.
- licenseToken String
- License token. This is necessary for Palo Alto clusters.
- name String
- Device name.
- uuid String
- Device unique identifier.
- vendorConfiguration 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          
- ActivationKey string
- Activation key. This is required for Velocloud clusters.
- AdminPassword 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.
- ControllerFqdn string
- Controller fqdn. This is required for Velocloud clusters.
- Hostname string
- Hostname. This is necessary for Palo Alto, Juniper, and Fortinet clusters.
- LicenseId string
- License id. This field is relevant only for the BlueCat DNS and DHCP Server
- LicenseKey string
- License key. This field is relevant only for the BlueCat DNS and DHCP Server
- PanoramaAuth stringKey 
- Panorama Server Auth Key. This field is relevant only for the PA-VM firewall devices to have integration with Panorama Server.
- PanoramaIp stringAddress 
- Panorama Server IP Address. This field is relevant only for the PA-VM firewall devices to have integration with Panorama Server.
- PrivateAddress string
- Private address. This field is relevant only for the BlueCat DNS and DHCP Server
- PrivateCidr stringMask 
- Private CIDR Mask. This field is relevant only for the BlueCat DNS and DHCP Server
- PrivateGateway string
- Private gateway. This field is relevant only for the BlueCat DNS and DHCP Server
- RootPassword string
- The CLI password of the device. This field is relevant only for the Velocloud SDWAN cluster.
- ActivationKey string
- Activation key. This is required for Velocloud clusters.
- AdminPassword 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.
- ControllerFqdn string
- Controller fqdn. This is required for Velocloud clusters.
- Hostname string
- Hostname. This is necessary for Palo Alto, Juniper, and Fortinet clusters.
- LicenseId string
- License id. This field is relevant only for the BlueCat DNS and DHCP Server
- LicenseKey string
- License key. This field is relevant only for the BlueCat DNS and DHCP Server
- PanoramaAuth stringKey 
- Panorama Server Auth Key. This field is relevant only for the PA-VM firewall devices to have integration with Panorama Server.
- PanoramaIp stringAddress 
- Panorama Server IP Address. This field is relevant only for the PA-VM firewall devices to have integration with Panorama Server.
- PrivateAddress string
- Private address. This field is relevant only for the BlueCat DNS and DHCP Server
- PrivateCidr stringMask 
- Private CIDR Mask. This field is relevant only for the BlueCat DNS and DHCP Server
- PrivateGateway string
- Private gateway. This field is relevant only for the BlueCat DNS and DHCP Server
- RootPassword string
- The CLI password of the device. This field is relevant only for the Velocloud SDWAN cluster.
- activationKey String
- Activation key. This is required for Velocloud clusters.
- adminPassword 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.
- controllerFqdn String
- Controller fqdn. This is required for Velocloud clusters.
- hostname String
- Hostname. This is necessary for Palo Alto, Juniper, and Fortinet clusters.
- licenseId String
- License id. This field is relevant only for the BlueCat DNS and DHCP Server
- licenseKey String
- License key. This field is relevant only for the BlueCat DNS and DHCP Server
- panoramaAuth StringKey 
- Panorama Server Auth Key. This field is relevant only for the PA-VM firewall devices to have integration with Panorama Server.
- panoramaIp StringAddress 
- Panorama Server IP Address. This field is relevant only for the PA-VM firewall devices to have integration with Panorama Server.
- privateAddress String
- Private address. This field is relevant only for the BlueCat DNS and DHCP Server
- privateCidr StringMask 
- Private CIDR Mask. This field is relevant only for the BlueCat DNS and DHCP Server
- privateGateway String
- Private gateway. This field is relevant only for the BlueCat DNS and DHCP Server
- rootPassword String
- The CLI password of the device. This field is relevant only for the Velocloud SDWAN cluster.
- activationKey string
- Activation key. This is required for Velocloud clusters.
- adminPassword 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.
- controllerFqdn string
- Controller fqdn. This is required for Velocloud clusters.
- hostname string
- Hostname. This is necessary for Palo Alto, Juniper, and Fortinet clusters.
- licenseId string
- License id. This field is relevant only for the BlueCat DNS and DHCP Server
- licenseKey string
- License key. This field is relevant only for the BlueCat DNS and DHCP Server
- panoramaAuth stringKey 
- Panorama Server Auth Key. This field is relevant only for the PA-VM firewall devices to have integration with Panorama Server.
- panoramaIp stringAddress 
- Panorama Server IP Address. This field is relevant only for the PA-VM firewall devices to have integration with Panorama Server.
- privateAddress string
- Private address. This field is relevant only for the BlueCat DNS and DHCP Server
- privateCidr stringMask 
- Private CIDR Mask. This field is relevant only for the BlueCat DNS and DHCP Server
- privateGateway string
- Private gateway. This field is relevant only for the BlueCat DNS and DHCP Server
- rootPassword 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.
- activationKey String
- Activation key. This is required for Velocloud clusters.
- adminPassword 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.
- controllerFqdn String
- Controller fqdn. This is required for Velocloud clusters.
- hostname String
- Hostname. This is necessary for Palo Alto, Juniper, and Fortinet clusters.
- licenseId String
- License id. This field is relevant only for the BlueCat DNS and DHCP Server
- licenseKey String
- License key. This field is relevant only for the BlueCat DNS and DHCP Server
- panoramaAuth StringKey 
- Panorama Server Auth Key. This field is relevant only for the PA-VM firewall devices to have integration with Panorama Server.
- panoramaIp StringAddress 
- Panorama Server IP Address. This field is relevant only for the PA-VM firewall devices to have integration with Panorama Server.
- privateAddress String
- Private address. This field is relevant only for the BlueCat DNS and DHCP Server
- privateCidr StringMask 
- Private CIDR Mask. This field is relevant only for the BlueCat DNS and DHCP Server
- privateGateway String
- Private gateway. This field is relevant only for the BlueCat DNS and DHCP Server
- rootPassword String
- The CLI password of the device. This field is relevant only for the Velocloud SDWAN cluster.
DeviceInterface, DeviceInterfaceArgs    
- AssignedType string
- interface management type (Equinix Managed or empty).
- Id int
- interface identifier.
- IpAddress string
- interface IP address.
- MacAddress string
- interface MAC address.
- Name string
- Device name.
- OperationalStatus string
- interface operational status. One of up,down.
- Status string
- interface status. One of AVAILABLE,RESERVED,ASSIGNED.
- Type string
- interface type.
- AssignedType string
- interface management type (Equinix Managed or empty).
- Id int
- interface identifier.
- IpAddress string
- interface IP address.
- MacAddress string
- interface MAC address.
- Name string
- Device name.
- OperationalStatus string
- interface operational status. One of up,down.
- Status string
- interface status. One of AVAILABLE,RESERVED,ASSIGNED.
- Type string
- interface type.
- assignedType String
- interface management type (Equinix Managed or empty).
- id Integer
- interface identifier.
- ipAddress String
- interface IP address.
- macAddress String
- interface MAC address.
- name String
- Device name.
- operationalStatus String
- interface operational status. One of up,down.
- status String
- interface status. One of AVAILABLE,RESERVED,ASSIGNED.
- type String
- interface type.
- assignedType string
- interface management type (Equinix Managed or empty).
- id number
- interface identifier.
- ipAddress string
- interface IP address.
- macAddress string
- interface MAC address.
- name string
- Device name.
- operationalStatus 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.
- assignedType String
- interface management type (Equinix Managed or empty).
- id Number
- interface identifier.
- ipAddress String
- interface IP address.
- macAddress String
- interface MAC address.
- name String
- Device name.
- operationalStatus String
- interface operational status. One of up,down.
- status String
- interface status. One of AVAILABLE,RESERVED,ASSIGNED.
- type String
- interface type.
DeviceSecondaryDevice, DeviceSecondaryDeviceArgs      
- AccountNumber string
- Billing account number for secondary device.
- MetroCode 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.
- AclTemplate stringId 
- Identifier of a WAN interface ACL template that will be applied on a secondary device.
- AdditionalBandwidth int
- Additional Internet bandwidth, in Mbps, for a secondary device.
- Asn int
- (Autonomous System Number) Unique identifier for a network on the internet.
- CloudInit 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<DeviceSecondary Device Interface> 
- List of device interfaces. See Interface Attribute below for more details.
- LicenseFile 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.
- LicenseFile stringId 
- Identifier of a license file that will be applied on a secondary device.
- LicenseStatus string
- Device license registration status. Possible values are APPLYING_LICENSE,REGISTERED,APPLIED,WAITING_FOR_CLUSTER_SETUP,REGISTRATION_FAILED.
- LicenseToken string
- License Token can be provided for some device types o the device.
- MgmtAcl 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.
 
- ProjectId 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.
- RedundancyType string
- Device redundancy type applicable for HA devices, either primary or secondary.
- RedundantId string
- Unique identifier for a redundant device applicable for HA devices.
- Region string
- Device location region.
- SshIp stringAddress 
- IP address of SSH enabled interface on the device.
- SshIp stringFqdn 
- FQDN of SSH enabled interface on the device.
- SshKey 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.
- VendorConfiguration 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.
- WanInterface stringId 
- device interface id picked for WAN
- ZoneCode string
- Device location zone code.
- AccountNumber string
- Billing account number for secondary device.
- MetroCode 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.
- AclTemplate stringId 
- Identifier of a WAN interface ACL template that will be applied on a secondary device.
- AdditionalBandwidth int
- Additional Internet bandwidth, in Mbps, for a secondary device.
- Asn int
- (Autonomous System Number) Unique identifier for a network on the internet.
- CloudInit 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
[]DeviceSecondary Device Interface 
- List of device interfaces. See Interface Attribute below for more details.
- LicenseFile 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.
- LicenseFile stringId 
- Identifier of a license file that will be applied on a secondary device.
- LicenseStatus string
- Device license registration status. Possible values are APPLYING_LICENSE,REGISTERED,APPLIED,WAITING_FOR_CLUSTER_SETUP,REGISTRATION_FAILED.
- LicenseToken string
- License Token can be provided for some device types o the device.
- MgmtAcl 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.
 
- ProjectId 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.
- RedundancyType string
- Device redundancy type applicable for HA devices, either primary or secondary.
- RedundantId string
- Unique identifier for a redundant device applicable for HA devices.
- Region string
- Device location region.
- SshIp stringAddress 
- IP address of SSH enabled interface on the device.
- SshIp stringFqdn 
- FQDN of SSH enabled interface on the device.
- SshKey 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.
- VendorConfiguration 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.
- WanInterface stringId 
- device interface id picked for WAN
- ZoneCode string
- Device location zone code.
- accountNumber String
- Billing account number for secondary device.
- metroCode 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.
- aclTemplate StringId 
- Identifier of a WAN interface ACL template that will be applied on a secondary device.
- additionalBandwidth Integer
- Additional Internet bandwidth, in Mbps, for a secondary device.
- asn Integer
- (Autonomous System Number) Unique identifier for a network on the internet.
- cloudInit 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<DeviceSecondary Device Interface> 
- List of device interfaces. See Interface Attribute below for more details.
- licenseFile 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.
- licenseFile StringId 
- Identifier of a license file that will be applied on a secondary device.
- licenseStatus String
- Device license registration status. Possible values are APPLYING_LICENSE,REGISTERED,APPLIED,WAITING_FOR_CLUSTER_SETUP,REGISTRATION_FAILED.
- licenseToken String
- License Token can be provided for some device types o the device.
- mgmtAcl 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.
 
- projectId 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.
- redundancyType String
- Device redundancy type applicable for HA devices, either primary or secondary.
- redundantId String
- Unique identifier for a redundant device applicable for HA devices.
- region String
- Device location region.
- sshIp StringAddress 
- IP address of SSH enabled interface on the device.
- sshIp StringFqdn 
- FQDN of SSH enabled interface on the device.
- sshKey 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.
- vendorConfiguration 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.
- wanInterface StringId 
- device interface id picked for WAN
- zoneCode String
- Device location zone code.
- accountNumber string
- Billing account number for secondary device.
- metroCode 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.
- aclTemplate stringId 
- Identifier of a WAN interface ACL template that will be applied on a secondary device.
- additionalBandwidth number
- Additional Internet bandwidth, in Mbps, for a secondary device.
- asn number
- (Autonomous System Number) Unique identifier for a network on the internet.
- cloudInit 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
DeviceSecondary Device Interface[] 
- List of device interfaces. See Interface Attribute below for more details.
- licenseFile 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.
- licenseFile stringId 
- Identifier of a license file that will be applied on a secondary device.
- licenseStatus string
- Device license registration status. Possible values are APPLYING_LICENSE,REGISTERED,APPLIED,WAITING_FOR_CLUSTER_SETUP,REGISTRATION_FAILED.
- licenseToken string
- License Token can be provided for some device types o the device.
- mgmtAcl 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.
 
- projectId 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.
- redundancyType string
- Device redundancy type applicable for HA devices, either primary or secondary.
- redundantId string
- Unique identifier for a redundant device applicable for HA devices.
- region string
- Device location region.
- sshIp stringAddress 
- IP address of SSH enabled interface on the device.
- sshIp stringFqdn 
- FQDN of SSH enabled interface on the device.
- sshKey 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.
- vendorConfiguration {[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.
- wanInterface stringId 
- device interface id picked for WAN
- zoneCode 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[DeviceSecondary 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.
- accountNumber String
- Billing account number for secondary device.
- metroCode 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.
- aclTemplate StringId 
- Identifier of a WAN interface ACL template that will be applied on a secondary device.
- additionalBandwidth Number
- Additional Internet bandwidth, in Mbps, for a secondary device.
- asn Number
- (Autonomous System Number) Unique identifier for a network on the internet.
- cloudInit 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.
- licenseFile 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.
- licenseFile StringId 
- Identifier of a license file that will be applied on a secondary device.
- licenseStatus String
- Device license registration status. Possible values are APPLYING_LICENSE,REGISTERED,APPLIED,WAITING_FOR_CLUSTER_SETUP,REGISTRATION_FAILED.
- licenseToken String
- License Token can be provided for some device types o the device.
- mgmtAcl 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.
 
- projectId 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.
- redundancyType String
- Device redundancy type applicable for HA devices, either primary or secondary.
- redundantId String
- Unique identifier for a redundant device applicable for HA devices.
- region String
- Device location region.
- sshIp StringAddress 
- IP address of SSH enabled interface on the device.
- sshIp StringFqdn 
- FQDN of SSH enabled interface on the device.
- sshKey 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.
- vendorConfiguration 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.
- wanInterface StringId 
- device interface id picked for WAN
- zoneCode String
- Device location zone code.
DeviceSecondaryDeviceInterface, DeviceSecondaryDeviceInterfaceArgs        
- AssignedType string
- interface management type (Equinix Managed or empty).
- Id int
- interface identifier.
- IpAddress string
- interface IP address.
- MacAddress string
- interface MAC address.
- Name string
- Device name.
- OperationalStatus string
- interface operational status. One of up,down.
- Status string
- interface status. One of AVAILABLE,RESERVED,ASSIGNED.
- Type string
- interface type.
- AssignedType string
- interface management type (Equinix Managed or empty).
- Id int
- interface identifier.
- IpAddress string
- interface IP address.
- MacAddress string
- interface MAC address.
- Name string
- Device name.
- OperationalStatus string
- interface operational status. One of up,down.
- Status string
- interface status. One of AVAILABLE,RESERVED,ASSIGNED.
- Type string
- interface type.
- assignedType String
- interface management type (Equinix Managed or empty).
- id Integer
- interface identifier.
- ipAddress String
- interface IP address.
- macAddress String
- interface MAC address.
- name String
- Device name.
- operationalStatus String
- interface operational status. One of up,down.
- status String
- interface status. One of AVAILABLE,RESERVED,ASSIGNED.
- type String
- interface type.
- assignedType string
- interface management type (Equinix Managed or empty).
- id number
- interface identifier.
- ipAddress string
- interface IP address.
- macAddress string
- interface MAC address.
- name string
- Device name.
- operationalStatus 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.
- assignedType String
- interface management type (Equinix Managed or empty).
- id Number
- interface identifier.
- ipAddress String
- interface IP address.
- macAddress String
- interface MAC address.
- name String
- Device name.
- operationalStatus 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
- ThroughputUnit Mbps 
- Mbps
- ThroughputUnit 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.
