@equinix-labs/pulumi-equinix
Version:
A Pulumi package for creating and managing equinix cloud resources.
1,146 lines • 42.6 kB
JavaScript
"use strict";
// *** WARNING: this file was generated by the Pulumi Terraform Bridge (tfgen) Tool. ***
// *** Do not edit by hand unless you're certain you know what you are doing! ***
Object.defineProperty(exports, "__esModule", { value: true });
exports.Device = void 0;
const pulumi = require("@pulumi/pulumi");
const utilities = require("../utilities");
/**
* 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-configured` devices.
*
* ## Example Usage
* ### example 1
* ```typescript
* import * as pulumi from "@pulumi/pulumi";
* import * as equinix from "@equinix-labs/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),
* },
* });
* ```
* ### example 2
* ```typescript
* import * as pulumi from "@pulumi/pulumi";
* import * as equinix from "@equinix-labs/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",
* },
* },
* });
* ```
* ### example 3
* ```typescript
* import * as pulumi from "@pulumi/pulumi";
* import * as equinix from "@equinix-labs/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_10",
* 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_10",
* 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",
* });
* ```
* ### example 4
* ```typescript
* import * as pulumi from "@pulumi/pulumi";
* import * as equinix from "@equinix-labs/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",
* });
* ```
* ### example 5
* ```typescript
* import * as pulumi from "@pulumi/pulumi";
* import * as equinix from "@equinix-labs/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",
* });
* ```
* ### example 6
* ```typescript
* import * as pulumi from "@pulumi/pulumi";
* import * as equinix from "@equinix-labs/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",
* },
* });
* ```
* ### example 7
* ```typescript
* import * as pulumi from "@pulumi/pulumi";
* import * as equinix from "@equinix-labs/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",
* },
* },
* });
* ```
* ### example 8
* ```typescript
* import * as pulumi from "@pulumi/pulumi";
* import * as equinix from "@equinix-labs/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,
* },
* });
* ```
* ### example 9
* ```typescript
* import * as pulumi from "@pulumi/pulumi";
* import * as equinix from "@equinix-labs/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",
* },
* },
* });
* ```
* ### example Aviatrix Transit Edge
* ```typescript
* import * as pulumi from "@pulumi/pulumi";
* import * as equinix from "@equinix-labs/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",
* });
* ```
* ### example aruba edgeconnect ha device
* ```typescript
* import * as pulumi from "@pulumi/pulumi";
* import * as equinix from "@equinix-labs/pulumi-equinix";
*
* const sv = equinix.networkedge.getAccountOutput({
* metroCode: "SV",
* });
* const aRUBAEDGECONNECTAM = new equinix.networkedge.Device("ARUBA-EDGECONNECT-AM", {
* name: "TF_Aruba_Edge_Connect",
* projectId: "XXXXX",
* metroCode: sv.apply(sv => sv.metroCode),
* typeCode: "EDGECONNECT-SDWAN",
* selfManaged: true,
* byol: true,
* packageCode: "EC-V",
* notifications: ["test@eq.com"],
* accountNumber: sv.apply(sv => sv.number),
* version: "9.4.2.3",
* coreCount: 2,
* termLength: 1,
* additionalBandwidth: 50,
* interfaceCount: 32,
* aclTemplateId: "XXXXXXX",
* vendorConfiguration: {
* accountKey: "xxxxx",
* accountName: "xxxx",
* applianceTag: "tests",
* hostname: "test",
* },
* secondaryDevice: {
* name: "TF_CHECKPOINT",
* metroCode: sv.apply(sv => sv.metroCode),
* accountNumber: sv.apply(sv => sv.number),
* aclTemplateId: "XXXXXXX",
* notifications: ["test@eq.com"],
* vendorConfiguration: {
* accountKey: "xxxxx",
* accountName: "xxxx",
* applianceTag: "test",
* hostname: "test",
* },
* },
* });
* ```
* ### example c8000v byol without default password
* ```typescript
* import * as pulumi from "@pulumi/pulumi";
* import * as equinix from "@equinix-labs/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",
* });
* ```
* ### example c8000v byol with bandwidth throughput
* ```typescript
* import * as pulumi from "@pulumi/pulumi";
* import * as equinix from "@equinix-labs/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",
* });
* ```
* ### example c8000v byol with bandwidth tier
* ```typescript
* import * as pulumi from "@pulumi/pulumi";
* import * as equinix from "@equinix-labs/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",
* });
* ```
* ### example checkpoint single device
* ```typescript
* import * as pulumi from "@pulumi/pulumi";
* import * as equinix from "@equinix-labs/pulumi-equinix";
*
* const sv = equinix.networkedge.getAccountOutput({
* metroCode: "SV",
* });
* const cHECKPOINTSV = new equinix.networkedge.Device("CHECKPOINT-SV", {
* name: "TF_CHECKPOINT",
* projectId: "XXXX",
* metroCode: sv.apply(sv => sv.metroCode),
* typeCode: "CGUARD",
* selfManaged: true,
* byol: true,
* packageCode: "STD",
* notifications: ["test@eq.com"],
* accountNumber: sv.apply(sv => sv.number),
* version: "R81.20",
* hostname: "test",
* coreCount: 2,
* termLength: 1,
* additionalBandwidth: 5,
* aclTemplateId: "XXXXXXX",
* sshKey: {
* username: "XXXXX",
* keyName: "XXXXXX",
* },
* });
* ```
* ### example cisco ftd cluster znpd
* ```typescript
* import * as pulumi from "@pulumi/pulumi";
* import * as equinix from "@equinix-labs/pulumi-equinix";
*
* const sv = equinix.networkedge.getAccountOutput({
* metroCode: "SV",
* });
* const ciscoFTDSV = new equinix.networkedge.Device("cisco-FTD-SV", {
* name: "TF_Cisco_NGFW_CLUSTER_ZNPD",
* projectId: "XXXXXXX",
* metroCode: sv.apply(sv => sv.metroCode),
* typeCode: "Cisco_NGFW",
* selfManaged: true,
* connectivity: "PRIVATE",
* byol: true,
* packageCode: "FTDv10",
* notifications: ["test@eq.com"],
* accountNumber: sv.apply(sv => sv.number),
* version: "7.0.4-55",
* hostname: "test",
* coreCount: 4,
* termLength: 1,
* interfaceCount: 10,
* clusterDetails: {
* clusterName: "tf-ftd-cluster",
* node0: {
* vendorConfiguration: {
* hostname: "test",
* activationKey: "XXXXX",
* controller1: "X.X.X.X",
* managementType: "FMC",
* },
* },
* node1: {
* vendorConfiguration: {
* hostname: "test",
* managementType: "FMC",
* },
* },
* },
* });
* ```
* ### example fortigate sdwan single device
* ```typescript
* import * as pulumi from "@pulumi/pulumi";
* import * as equinix from "@equinix-labs/pulumi-equinix";
*
* const sv = equinix.networkedge.getAccountOutput({
* metroCode: "SV",
* });
* const fTNTSDWANSV = new equinix.networkedge.Device("FTNT-SDWAN-SV", {
* name: "TF_FTNT-SDWAN",
* projectId: "XXXXXXXXXX",
* metroCode: sv.apply(sv => sv.metroCode),
* typeCode: "FG-SDWAN",
* selfManaged: true,
* byol: true,
* packageCode: "VM02",
* notifications: ["test@eq.com"],
* accountNumber: sv.apply(sv => sv.number),
* version: "7.0.14",
* hostname: "test",
* coreCount: 2,
* termLength: 1,
* additionalBandwidth: 50,
* aclTemplateId: "XXXXXXXX",
* vendorConfiguration: {
* adminPassword: "XXXXX",
* controller1: "X.X.X.X",
* },
* });
* ```
* ### example infoblox cluster device
* ```typescript
* import * as pulumi from "@pulumi/pulumi";
* import * as equinix from "@equinix-labs/pulumi-equinix";
*
* const sv = equinix.networkedge.getAccountOutput({
* metroCode: "SV",
* });
* const iNFOBLOXSV = new equinix.networkedge.Device("INFOBLOX-SV", {
* name: "TF_INFOBLOX",
* projectId: "XXXXXXXXXX",
* metroCode: sv.apply(sv => sv.metroCode),
* typeCode: "INFOBLOX-GRID-MEMBER",
* selfManaged: true,
* byol: true,
* packageCode: "STD",
* notifications: ["test@eq.com"],
* accountNumber: sv.apply(sv => sv.number),
* version: "9.0.5",
* connectivity: "PRIVATE",
* coreCount: 8,
* termLength: 1,
* clusterDetails: {
* clusterName: "tf-infoblox-cluster",
* node0: {
* vendorConfiguration: {
* adminPassword: "xxxxxxx",
* ipAddress: "X.X.X.X",
* subnetMaskIp: "X.X.X.X",
* gatewayIp: "X.X.X.X",
* },
* },
* node1: {
* vendorConfiguration: {
* adminPassword: "xxxxxxx",
* ipAddress: "X.X.X.X",
* subnetMaskIp: "X.X.X.X",
* gatewayIp: "X.X.X.X",
* },
* },
* },
* });
* ```
* ### example infoblox ha device
* ```typescript
* import * as pulumi from "@pulumi/pulumi";
* import * as equinix from "@equinix-labs/pulumi-equinix";
*
* const sv = equinix.networkedge.getAccountOutput({
* metroCode: "SV",
* });
* const iNFOBLOXSV = new equinix.networkedge.Device("INFOBLOX-SV", {
* name: "TF_INFOBLOX",
* projectId: "XXXXXXXXXX",
* metroCode: sv.apply(sv => sv.metroCode),
* typeCode: "INFOBLOX-GRID-MEMBER",
* selfManaged: true,
* connectivity: "PRIVATE",
* byol: true,
* packageCode: "STD",
* notifications: ["test@eq.com"],
* accountNumber: sv.apply(sv => sv.number),
* version: "9.0.5",
* coreCount: 8,
* termLength: 1,
* vendorConfiguration: {
* adminPassword: "X.X.X.X",
* ipAddress: "X.X.X.X",
* subnetMaskIp: "X.X.X.X",
* gatewayIp: "X.X.X.X",
* },
* secondaryDevice: {
* name: "TF_INFOBLOX-Sec",
* metroCode: sv.apply(sv => sv.metroCode),
* accountNumber: sv.apply(sv => sv.number),
* notifications: ["test@eq.com"],
* vendorConfiguration: {
* adminPassword: "X.X.X.X",
* ipAddress: "X.X.X.X",
* subnetMaskIp: "X.X.X.X",
* gatewayIp: "X.X.X.X",
* },
* },
* });
* ```
* ### example infoblox single device
* ```typescript
* import * as pulumi from "@pulumi/pulumi";
* import * as equinix from "@equinix-labs/pulumi-equinix";
*
* const sv = equinix.networkedge.getAccountOutput({
* metroCode: "SV",
* });
* const iNFOBLOXSV = new equinix.networkedge.Device("INFOBLOX-SV", {
* name: "TF_INFOBLOX",
* projectId: "XXXXXXXXXX",
* metroCode: sv.apply(sv => sv.metroCode),
* typeCode: "INFOBLOX-GRID-MEMBER",
* selfManaged: true,
* byol: true,
* connectivity: "PRIVATE",
* packageCode: "STD",
* notifications: ["test@eq.com"],
* accountNumber: sv.apply(sv => sv.number),
* version: "9.0.5",
* coreCount: 8,
* termLength: 1,
* vendorConfiguration: {
* adminPassword: "xxxxxx",
* ipAddress: "X.X.X.X",
* subnetMaskIp: "X.X.X.X",
* gatewayIp: "X.X.X.X",
* },
* });
* ```
* ### example versa sdwan ha device
* ```typescript
* import * as pulumi from "@pulumi/pulumi";
* import * as equinix from "@equinix-labs/pulumi-equinix";
*
* const sv = equinix.networkedge.getAccountOutput({
* metroCode: "SV",
* });
* const fTNTSDWANSV = new equinix.networkedge.Device("FTNT-SDWAN-SV", {
* name: "TF_VERSA-SDWAN",
* projectId: "XXXXXXXXX",
* metroCode: sv.apply(sv => sv.metroCode),
* typeCode: "VERSA_SDWAN",
* selfManaged: true,
* byol: true,
* packageCode: "FLEX_VNF_2",
* notifications: ["test@eq.com"],
* accountNumber: sv.apply(sv => sv.number),
* version: "21.2.3",
* coreCount: 2,
* termLength: 1,
* additionalBandwidth: 50,
* aclTemplateId: "XXXXXXXXX",
* vendorConfiguration: {
* controller1: "X.X.X.X",
* controller2: "X.X.X.X",
* localId: "test@test.com",
* remoteId: "test@test.com",
* serialNumber: "4",
* },
* secondaryDevice: {
* name: "Praveena_TF_VERSA",
* metroCode: sv.apply(sv => sv.metroCode),
* accountNumber: sv.apply(sv => sv.number),
* aclTemplateId: "XXXXXXXX",
* notifications: ["test@eq.com"],
* vendorConfiguration: {
* controller1: "X.X.X.X",
* controller2: "X.X.X.X",
* localId: "test@test.com",
* remoteId: "test@test.com",
* serialNumber: "4",
* },
* },
* });
* ```
* ### example vyos router ha device
* ```typescript
* import * as pulumi from "@pulumi/pulumi";
* import * as equinix from "@equinix-labs/pulumi-equinix";
*
* const sv = equinix.networkedge.getAccountOutput({
* metroCode: "SV",
* });
* const vYOSAM = new equinix.networkedge.Device("VYOS-AM", {
* name: "TF_VYOS",
* projectId: "XXXXXXX",
* metroCode: sv.apply(sv => sv.metroCode),
* typeCode: "VYOS-ROUTER",
* selfManaged: true,
* byol: false,
* packageCode: "STD",
* notifications: ["test@eq.com"],
* accountNumber: sv.apply(sv => sv.number),
* version: "1.4.1-2501",
* hostname: "test",
* coreCount: 2,
* termLength: 1,
* additionalBandwidth: 50,
* aclTemplateId: "XXXXXXXX",
* sshKey: {
* username: "test",
* keyName: "xxxxxxxx",
* },
* secondaryDevice: {
* name: "TF_CHECKPOINT",
* metroCode: sv.apply(sv => sv.metroCode),
* accountNumber: sv.apply(sv => sv.number),
* hostname: "test",
* aclTemplateId: "XXXXXXXXXXX",
* notifications: ["test@eq.com"],
* },
* });
* ```
* ### example zscaler appc
* ```typescript
* import * as pulumi from "@pulumi/pulumi";
* import * as equinix from "@equinix-labs/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",
* },
* });
* ```
* ### example zscaler pse
* ```typescript
* import * as pulumi from "@pulumi/pulumi";
* import * as equinix from "@equinix-labs/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
*
* This resource can be imported using an existing ID:
*
* ```sh
* $ pulumi import equinix:networkedge/device:Device example {existing_id}
* ```
*
* The `license_token`, `mgmt_acl_template_uuid` and `cloud_init_file_id` fields can not be imported.
*/
class Device extends pulumi.CustomResource {
/**
* Get an existing Device resource's state with the given name, ID, and optional extra
* properties used to qualify the lookup.
*
* @param name The _unique_ name of the resulting resource.
* @param id The _unique_ provider ID of the resource to lookup.
* @param state Any extra arguments used during the lookup.
* @param opts Optional settings to control the behavior of the CustomResource.
*/
static get(name, id, state, opts) {
return new Device(name, state, Object.assign(Object.assign({}, opts), { id: id }));
}
/**
* Returns true if the given object is an instance of Device. This is designed to work even
* when multiple copies of the Pulumi SDK have been loaded into the same process.
*/
static isInstance(obj) {
if (obj === undefined || obj === null) {
return false;
}
return obj['__pulumiType'] === Device.__pulumiType;
}
constructor(name, argsOrState, opts) {
let resourceInputs = {};
opts = opts || {};
if (opts.id) {
const state = argsOrState;
resourceInputs["accountNumber"] = state ? state.accountNumber : undefined;
resourceInputs["aclTemplateId"] = state ? state.aclTemplateId : undefined;
resourceInputs["additionalBandwidth"] = state ? state.additionalBandwidth : undefined;
resourceInputs["asn"] = state ? state.asn : undefined;
resourceInputs["byol"] = state ? state.byol : undefined;
resourceInputs["cloudInitFileId"] = state ? state.cloudInitFileId : undefined;
resourceInputs["clusterDetails"] = state ? state.clusterDetails : undefined;
resourceInputs["connectivity"] = state ? state.connectivity : undefined;
resourceInputs["coreCount"] = state ? state.coreCount : undefined;
resourceInputs["diverseDeviceId"] = state ? state.diverseDeviceId : undefined;
resourceInputs["diverseDeviceName"] = state ? state.diverseDeviceName : undefined;
resourceInputs["generateDefaultPassword"] = state ? state.generateDefaultPassword : undefined;
resourceInputs["hostname"] = state ? state.hostname : undefined;
resourceInputs["ibx"] = state ? state.ibx : undefined;
resourceInputs["interfaceCount"] = state ? state.interfaceCount : undefined;
resourceInputs["interfaces"] = state ? state.interfaces : undefined;
resourceInputs["licenseFile"] = state ? state.licenseFile : undefined;
resourceInputs["licenseFileId"] = state ? state.licenseFileId : undefined;
resourceInputs["licenseStatus"] = state ? state.licenseStatus : undefined;
resourceInputs["licenseToken"] = state ? state.licenseToken : undefined;
resourceInputs["metroCode"] = state ? state.metroCode : undefined;
resourceInputs["mgmtAclTemplateUuid"] = state ? state.mgmtAclTemplateUuid : undefined;
resourceInputs["name"] = state ? state.name : undefined;
resourceInputs["notifications"] = state ? state.notifications : undefined;
resourceInputs["orderReference"] = state ? state.orderReference : undefined;
resourceInputs["packageCode"] = state ? state.packageCode : undefined;
resourceInputs["projectId"] = state ? state.projectId : undefined;
resourceInputs["purchaseOrderNumber"] = state ? state.purchaseOrderNumber : undefined;
resourceInputs["redundancyType"] = state ? state.redundancyType : undefined;
resourceInputs["redundantId"] = state ? state.redundantId : undefined;
resourceInputs["region"] = state ? state.region : undefined;
resourceInputs["secondaryDevice"] = state ? state.secondaryDevice : undefined;
resourceInputs["selfManaged"] = state ? state.selfManaged : undefined;
resourceInputs["sshIpAddress"] = state ? state.sshIpAddress : undefined;
resourceInputs["sshIpFqdn"] = state ? state.sshIpFqdn : undefined;
resourceInputs["sshKey"] = state ? state.sshKey : undefined;
resourceInputs["status"] = state ? state.status : undefined;
resourceInputs["termLength"] = state ? state.termLength : undefined;
resourceInputs["throughput"] = state ? state.throughput : undefined;
resourceInputs["throughputUnit"] = state ? state.throughputUnit : undefined;
resourceInputs["tier"] = state ? state.tier : undefined;
resourceInputs["typeCode"] = state ? state.typeCode : undefined;
resourceInputs["uuid"] = state ? state.uuid : undefined;
resourceInputs["vendorConfiguration"] = state ? state.vendorConfiguration : undefined;
resourceInputs["version"] = state ? state.version : undefined;
resourceInputs["wanInterfaceId"] = state ? state.wanInterfaceId : undefined;
resourceInputs["zoneCode"] = state ? state.zoneCode : undefined;
}
else {
const args = argsOrState;
if ((!args || args.accountNumber === undefined) && !opts.urn) {
throw new Error("Missing required property 'accountNumber'");
}
if ((!args || args.coreCount === undefined) && !opts.urn) {
throw new Error("Missing required property 'coreCount'");
}
if ((!args || args.metroCode === undefined) && !opts.urn) {
throw new Error("Missing required property 'metroCode'");
}
if ((!args || args.notifications === undefined) && !opts.urn) {
throw new Error("Missing required property 'notifications'");
}
if ((!args || args.packageCode === undefined) && !opts.urn) {
throw new Error("Missing required property 'packageCode'");
}
if ((!args || args.termLength === undefined) && !opts.urn) {
throw new Error("Missing required property 'termLength'");
}
if ((!args || args.typeCode === undefined) && !opts.urn) {
throw new Error("Missing required property 'typeCode'");
}
if ((!args || args.version === undefined) && !opts.urn) {
throw new Error("Missing required property 'version'");
}
resourceInputs["accountNumber"] = args ? args.accountNumber : undefined;
resourceInputs["aclTemplateId"] = args ? args.aclTemplateId : undefined;
resourceInputs["additionalBandwidth"] = args ? args.additionalBandwidth : undefined;
resourceInputs["byol"] = args ? args.byol : undefined;
resourceInputs["cloudInitFileId"] = args ? args.cloudInitFileId : undefined;
resourceInputs["clusterDetails"] = args ? args.clusterDetails : undefined;
resourceInputs["connectivity"] = args ? args.connectivity : undefined;
resourceInputs["coreCount"] = args ? args.coreCount : undefined;
resourceInputs["diverseDeviceId"] = args ? args.diverseDeviceId : undefined;
resourceInputs["generateDefaultPassword"] = args ? args.generateDefaultPassword : undefined;
resourceInputs["hostname"] = args ? args.hostname : undefined;
resourceInputs["interfaceCount"] = args ? args.interfaceCount : undefined;
resourceInputs["licenseFile"] = args ? args.licenseFile : undefined;
resourceInputs["licenseFileId"] = args ? args.licenseFileId : undefined;
resourceInputs["licenseToken"] = args ? args.licenseToken : undefined;
resourceInputs["metroCode"] = args ? args.metroCode : undefined;
resourceInputs["mgmtAclTemplateUuid"] = args ? args.mgmtAclTemplateUuid : undefined;
resourceInputs["name"] = args ? args.name : undefined;
resourceInputs["notifications"] = args ? args.notifications : undefined;
resourceInputs["orderReference"] = args ? args.orderReference : undefined;
resourceInputs["packageCode"] = args ? args.packageCode : undefined;
resourceInputs["projectId"] = args ? args.projectId : undefined;
resourceInputs["purchaseOrderNumber"] = args ? args.purchaseOrderNumber : undefined;
resourceInputs["secondaryDevice"] = args ? args.secondaryDevice : undefined;
resourceInputs["selfManaged"] = args ? args.selfManaged : undefined;
resourceInputs["sshKey"] = args ? args.sshKey : undefined;
resourceInputs["termLength"] = args ? args.termLength : undefined;
resourceInputs["throughput"] = args ? args.throughput : undefined;
resourceInputs["throughputUnit"] = args ? args.throughputUnit : undefined;
resourceInputs["tier"] = args ? args.tier : undefined;
resourceInputs["typeCode"] = args ? args.typeCode : undefined;
resourceInputs["vendorConfiguration"] = args ? args.vendorConfiguration : undefined;
resourceInputs["version"] = args ? args.version : undefined;
resourceInputs["wanInterfaceId"] = args ? args.wanInterfaceId : undefined;
resourceInputs["asn"] = undefined /*out*/;
resourceInputs["diverseDeviceName"] = undefined /*out*/;
resourceInputs["ibx"] = undefined /*out*/;
resourceInputs["interfaces"] = undefined /*out*/;
resourceInputs["licenseStatus"] = undefined /*out*/;
resourceInputs["redundancyType"] = undefined /*out*/;
resourceInputs["redundantId"] = undefined /*out*/;
resourceInputs["region"] = undefined /*out*/;
resourceInputs["sshIpAddress"] = undefined /*out*/;
resourceInputs["sshIpFqdn"] = undefined /*out*/;
resourceInputs["status"] = undefined /*out*/;
resourceInputs["uuid"] = undefined /*out*/;
resourceInputs["zoneCode"] = undefined /*out*/;
}
opts = pulumi.mergeOptions(utilities.resourceOptsDefaults(), opts);
super(Device.__pulumiType, name, resourceInputs, opts);
}
}
exports.Device = Device;
/** @internal */
Device.__pulumiType = 'equinix:networkedge/device:Device';
//# sourceMappingURL=device.js.map