UNPKG

@equinix-labs/pulumi-equinix

Version:

A Pulumi package for creating and managing equinix cloud resources.

1,146 lines 42.6 kB
"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