UNPKG

@equinix-labs/pulumi-equinix

Version:

A Pulumi package for creating and managing equinix cloud resources.

335 lines (334 loc) 14.3 kB
import * as pulumi from "@pulumi/pulumi"; /** * Use this resource to associate VLAN with a Dedicated Port from [Equinix Fabric - software-defined interconnections](https://deploy.equinix.com/developers/docs/metal/interconnections/introduction/#associating-a-vlan-with-a-dedicated-port). * * See the [Virtual Routing and Forwarding documentation](https://deploy.equinix.com/developers/docs/metal/layer2-networking/vrf/) for product details and API reference material. * * ## Example Usage * ```typescript * import * as pulumi from "@pulumi/pulumi"; * import * as equinix from "@equinix-labs/pulumi-equinix"; * * const projectId = "52000fb2-ee46-4673-93a8-de2c2bdba33c"; * const connId = "73f12f29-3e19-43a0-8e90-ae81580db1e0"; * const test = equinix.metal.getInterconnectionOutput({ * connectionId: connId, * }); * const testVlan = new equinix.metal.Vlan("testVlan", { * projectId: projectId, * metro: test.apply(test => test.metro), * }); * const testVirtualCircuit = new equinix.metal.VirtualCircuit("testVirtualCircuit", { * connectionId: connId, * projectId: projectId, * portId: test.apply(test => test.ports?.[0]?.id), * vlanId: testVlan.id, * nniVlan: 1056, * }); * ``` * * ## Import * * ```sh * $ pulumi import equinix:metal/virtualCircuit:VirtualCircuit equinix_metal_virtual_circuit {existing_id} * ``` */ export declare class VirtualCircuit extends pulumi.CustomResource { /** * Get an existing VirtualCircuit 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: string, id: pulumi.Input<pulumi.ID>, state?: VirtualCircuitState, opts?: pulumi.CustomResourceOptions): VirtualCircuit; /** * Returns true if the given object is an instance of VirtualCircuit. This is designed to work even * when multiple copies of the Pulumi SDK have been loaded into the same process. */ static isInstance(obj: any): obj is VirtualCircuit; /** * UUID of Connection where the VC is scoped to. Only used for dedicated connections */ readonly connectionId: pulumi.Output<string>; /** * The Customer IP address which the CSR switch will peer with. Will default to the other usable IP in the subnet. */ readonly customerIp: pulumi.Output<string>; /** * The Customer IPv6 address which the CSR switch will peer with. Will default to the other usable IP in the IPv6 subnet. */ readonly customerIpv6: pulumi.Output<string>; /** * Description of the Virtual Circuit resource */ readonly description: pulumi.Output<string | undefined>; /** * The password that can be set for the VRF BGP peer */ readonly md5: pulumi.Output<string | undefined>; /** * The Metal IP address for the SVI (Switch Virtual Interface) of the VirtualCircuit. Will default to the first usable IP in the subnet. */ readonly metalIp: pulumi.Output<string>; /** * The Metal IPv6 address for the SVI (Switch Virtual Interface) of the VirtualCircuit. Will default to the first usable IP in the IPv6 subnet. */ readonly metalIpv6: pulumi.Output<string>; /** * Name of the Virtual Circuit resource */ readonly name: pulumi.Output<string>; /** * Equinix Metal network-to-network VLAN ID (optional when the connection has mode=tunnel) */ readonly nniVlan: pulumi.Output<number>; /** * Nni VLAN ID parameter, see https://deploy.equinix.com/developers/docs/metal/interconnections/introduction/ */ readonly nniVnid: pulumi.Output<number>; /** * The BGP ASN of the peer. The same ASN may be the used across several VCs, but it cannot be the same as the localAsn of the VRF. */ readonly peerAsn: pulumi.Output<number | undefined>; /** * UUID of the Connection Port where the VC is scoped to */ readonly portId: pulumi.Output<string>; /** * UUID of the Project where the VC is scoped to */ readonly projectId: pulumi.Output<string>; /** * Description of the Virtual Circuit speed. This is for information purposes and is computed when the connection type is shared. */ readonly speed: pulumi.Output<string>; /** * Status of the virtual circuit resource */ readonly status: pulumi.Output<string>; /** * A subnet from one of the IP blocks associated with the VRF that we will help create an IP reservation for. Can only be either a /30 or /31. * * For a /31 block, it will only have two IP addresses, which will be used for the metal*ip and customer*ip. * * For a /30 block, it will have four IP addresses, but the first and last IP addresses are not usable. We will default to the first usable IP address for the metal_ip. */ readonly subnet: pulumi.Output<string | undefined>; /** * A subnet from one of the IPv6 blocks associated with the VRF that we will help create an IP reservation for. Can only be either a /126 or /127. * * For a /127 block, it will only have two IP addresses, which will be used for the metal*ip and customer*ip. * * For a /126 block, it will have four IP addresses, but the first and last IP addresses are not usable. We will default to the first usable IP address for the metal_ip. */ readonly subnetIpv6: pulumi.Output<string | undefined>; /** * Tags attached to the virtual circuit */ readonly tags: pulumi.Output<string[] | undefined>; /** * UUID of an existing VC to configure. Used in the case of shared interconnections where the VC has already been created. */ readonly virtualCircuitId: pulumi.Output<string | undefined>; /** * UUID of the VLAN to associate */ readonly vlanId: pulumi.Output<string | undefined>; /** * VNID VLAN parameter, see https://deploy.equinix.com/developers/docs/metal/interconnections/introduction/ */ readonly vnid: pulumi.Output<number>; /** * UUID of the VRF to associate */ readonly vrfId: pulumi.Output<string | undefined>; /** * Create a VirtualCircuit resource with the given unique name, arguments, and options. * * @param name The _unique_ name of the resource. * @param args The arguments to use to populate this resource's properties. * @param opts A bag of options that control this resource's behavior. */ constructor(name: string, args: VirtualCircuitArgs, opts?: pulumi.CustomResourceOptions); } /** * Input properties used for looking up and filtering VirtualCircuit resources. */ export interface VirtualCircuitState { /** * UUID of Connection where the VC is scoped to. Only used for dedicated connections */ connectionId?: pulumi.Input<string>; /** * The Customer IP address which the CSR switch will peer with. Will default to the other usable IP in the subnet. */ customerIp?: pulumi.Input<string>; /** * The Customer IPv6 address which the CSR switch will peer with. Will default to the other usable IP in the IPv6 subnet. */ customerIpv6?: pulumi.Input<string>; /** * Description of the Virtual Circuit resource */ description?: pulumi.Input<string>; /** * The password that can be set for the VRF BGP peer */ md5?: pulumi.Input<string>; /** * The Metal IP address for the SVI (Switch Virtual Interface) of the VirtualCircuit. Will default to the first usable IP in the subnet. */ metalIp?: pulumi.Input<string>; /** * The Metal IPv6 address for the SVI (Switch Virtual Interface) of the VirtualCircuit. Will default to the first usable IP in the IPv6 subnet. */ metalIpv6?: pulumi.Input<string>; /** * Name of the Virtual Circuit resource */ name?: pulumi.Input<string>; /** * Equinix Metal network-to-network VLAN ID (optional when the connection has mode=tunnel) */ nniVlan?: pulumi.Input<number>; /** * Nni VLAN ID parameter, see https://deploy.equinix.com/developers/docs/metal/interconnections/introduction/ */ nniVnid?: pulumi.Input<number>; /** * The BGP ASN of the peer. The same ASN may be the used across several VCs, but it cannot be the same as the localAsn of the VRF. */ peerAsn?: pulumi.Input<number>; /** * UUID of the Connection Port where the VC is scoped to */ portId?: pulumi.Input<string>; /** * UUID of the Project where the VC is scoped to */ projectId?: pulumi.Input<string>; /** * Description of the Virtual Circuit speed. This is for information purposes and is computed when the connection type is shared. */ speed?: pulumi.Input<string>; /** * Status of the virtual circuit resource */ status?: pulumi.Input<string>; /** * A subnet from one of the IP blocks associated with the VRF that we will help create an IP reservation for. Can only be either a /30 or /31. * * For a /31 block, it will only have two IP addresses, which will be used for the metal*ip and customer*ip. * * For a /30 block, it will have four IP addresses, but the first and last IP addresses are not usable. We will default to the first usable IP address for the metal_ip. */ subnet?: pulumi.Input<string>; /** * A subnet from one of the IPv6 blocks associated with the VRF that we will help create an IP reservation for. Can only be either a /126 or /127. * * For a /127 block, it will only have two IP addresses, which will be used for the metal*ip and customer*ip. * * For a /126 block, it will have four IP addresses, but the first and last IP addresses are not usable. We will default to the first usable IP address for the metal_ip. */ subnetIpv6?: pulumi.Input<string>; /** * Tags attached to the virtual circuit */ tags?: pulumi.Input<pulumi.Input<string>[]>; /** * UUID of an existing VC to configure. Used in the case of shared interconnections where the VC has already been created. */ virtualCircuitId?: pulumi.Input<string>; /** * UUID of the VLAN to associate */ vlanId?: pulumi.Input<string>; /** * VNID VLAN parameter, see https://deploy.equinix.com/developers/docs/metal/interconnections/introduction/ */ vnid?: pulumi.Input<number>; /** * UUID of the VRF to associate */ vrfId?: pulumi.Input<string>; } /** * The set of arguments for constructing a VirtualCircuit resource. */ export interface VirtualCircuitArgs { /** * UUID of Connection where the VC is scoped to. Only used for dedicated connections */ connectionId?: pulumi.Input<string>; /** * The Customer IP address which the CSR switch will peer with. Will default to the other usable IP in the subnet. */ customerIp?: pulumi.Input<string>; /** * The Customer IPv6 address which the CSR switch will peer with. Will default to the other usable IP in the IPv6 subnet. */ customerIpv6?: pulumi.Input<string>; /** * Description of the Virtual Circuit resource */ description?: pulumi.Input<string>; /** * The password that can be set for the VRF BGP peer */ md5?: pulumi.Input<string>; /** * The Metal IP address for the SVI (Switch Virtual Interface) of the VirtualCircuit. Will default to the first usable IP in the subnet. */ metalIp?: pulumi.Input<string>; /** * The Metal IPv6 address for the SVI (Switch Virtual Interface) of the VirtualCircuit. Will default to the first usable IP in the IPv6 subnet. */ metalIpv6?: pulumi.Input<string>; /** * Name of the Virtual Circuit resource */ name?: pulumi.Input<string>; /** * Equinix Metal network-to-network VLAN ID (optional when the connection has mode=tunnel) */ nniVlan?: pulumi.Input<number>; /** * The BGP ASN of the peer. The same ASN may be the used across several VCs, but it cannot be the same as the localAsn of the VRF. */ peerAsn?: pulumi.Input<number>; /** * UUID of the Connection Port where the VC is scoped to */ portId: pulumi.Input<string>; /** * UUID of the Project where the VC is scoped to */ projectId: pulumi.Input<string>; /** * Description of the Virtual Circuit speed. This is for information purposes and is computed when the connection type is shared. */ speed?: pulumi.Input<string>; /** * A subnet from one of the IP blocks associated with the VRF that we will help create an IP reservation for. Can only be either a /30 or /31. * * For a /31 block, it will only have two IP addresses, which will be used for the metal*ip and customer*ip. * * For a /30 block, it will have four IP addresses, but the first and last IP addresses are not usable. We will default to the first usable IP address for the metal_ip. */ subnet?: pulumi.Input<string>; /** * A subnet from one of the IPv6 blocks associated with the VRF that we will help create an IP reservation for. Can only be either a /126 or /127. * * For a /127 block, it will only have two IP addresses, which will be used for the metal*ip and customer*ip. * * For a /126 block, it will have four IP addresses, but the first and last IP addresses are not usable. We will default to the first usable IP address for the metal_ip. */ subnetIpv6?: pulumi.Input<string>; /** * Tags attached to the virtual circuit */ tags?: pulumi.Input<pulumi.Input<string>[]>; /** * UUID of an existing VC to configure. Used in the case of shared interconnections where the VC has already been created. */ virtualCircuitId?: pulumi.Input<string>; /** * UUID of the VLAN to associate */ vlanId?: pulumi.Input<string>; /** * UUID of the VRF to associate */ vrfId?: pulumi.Input<string>; }