1. Packages
  2. Equinix
  3. API Docs
  4. metal
  5. Interconnection
Equinix v0.19.0 published on Thursday, Oct 24, 2024 by Equinix

equinix.metal.Interconnection

Explore with Pulumi AI

equinix logo
Equinix v0.19.0 published on Thursday, Oct 24, 2024 by Equinix

    Use this resource to request the creation an Interconnection asset to connect with other parties using Equinix Fabric - software-defined interconnections.

    Example Usage

    example fabric billed metal from fabric port

    using System.Collections.Generic;
    using System.Linq;
    using Pulumi;
    using Equinix = Pulumi.Equinix;
    
    return await Deployment.RunAsync(() => 
    {
        var aSide = Equinix.Fabric.GetPorts.Invoke(new()
        {
            Filter = new Equinix.Fabric.Inputs.GetPortsFilterInputArgs
            {
                Name = "<name_of_port||port_prefix>",
            },
        });
    
        var example = new Equinix.Metal.Vlan("example", new()
        {
            ProjectId = "<metal_project_id>",
            Metro = "FR",
        });
    
        var exampleInterconnection = new Equinix.Metal.Interconnection("exampleInterconnection", new()
        {
            Name = "tf-metal-from-port",
            ProjectId = "<metal_project_id>",
            Type = "shared",
            Redundancy = "primary",
            Metro = "FR",
            Speed = "200Mbps",
            ServiceTokenType = "z_side",
            ContactEmail = "username@example.com",
            Vlans = new[]
            {
                example.Vxlan,
            },
        });
    
        var exampleConnection = new Equinix.Fabric.Connection("exampleConnection", new()
        {
            Name = "tf-metal-from-port",
            Type = Equinix.Fabric.ConnectionType.EVPL,
            Bandwidth = 200,
            Notifications = new[]
            {
                new Equinix.Fabric.Inputs.ConnectionNotificationArgs
                {
                    Type = Equinix.Fabric.NotificationsType.All,
                    Emails = new[]
                    {
                        "username@example.com",
                    },
                },
            },
            Order = new Equinix.Fabric.Inputs.ConnectionOrderArgs
            {
                PurchaseOrderNumber = "1-323292",
            },
            Project = new Equinix.Fabric.Inputs.ConnectionProjectArgs
            {
                ProjectId = "<fabric_project_id>",
            },
            ASide = new Equinix.Fabric.Inputs.ConnectionASideArgs
            {
                AccessPoint = new Equinix.Fabric.Inputs.ConnectionASideAccessPointArgs
                {
                    Type = Equinix.Fabric.AccessPointType.Colo,
                    Port = new Equinix.Fabric.Inputs.ConnectionASideAccessPointPortArgs
                    {
                        Uuid = aSide.Apply(getPortsResult => getPortsResult.Data[0]?.Uuid),
                    },
                    LinkProtocol = new Equinix.Fabric.Inputs.ConnectionASideAccessPointLinkProtocolArgs
                    {
                        Type = Equinix.Fabric.AccessPointLinkProtocolType.Dot1q,
                        VlanTag = 1234,
                    },
                },
            },
            ZSide = new Equinix.Fabric.Inputs.ConnectionZSideArgs
            {
                ServiceToken = new Equinix.Fabric.Inputs.ConnectionZSideServiceTokenArgs
                {
                    Uuid = exampleInterconnection.ServiceTokens.Apply(serviceTokens => serviceTokens[0].Id),
                },
            },
        });
    
    });
    
    package main
    
    import (
    	"github.com/equinix/pulumi-equinix/sdk/go/equinix/fabric"
    	"github.com/equinix/pulumi-equinix/sdk/go/equinix/metal"
    	"github.com/pulumi/pulumi/sdk/v3/go/pulumi"
    )
    
    func main() {
    	pulumi.Run(func(ctx *pulumi.Context) error {
    		aSide, err := fabric.GetPorts(ctx, &fabric.GetPortsArgs{
    			Filter: fabric.GetPortsFilter{
    				Name: "<name_of_port||port_prefix>",
    			},
    		}, nil)
    		if err != nil {
    			return err
    		}
    		example, err := metal.NewVlan(ctx, "example", &metal.VlanArgs{
    			ProjectId: pulumi.String("<metal_project_id>"),
    			Metro:     pulumi.String("FR"),
    		})
    		if err != nil {
    			return err
    		}
    		exampleInterconnection, err := metal.NewInterconnection(ctx, "exampleInterconnection", &metal.InterconnectionArgs{
    			Name:             pulumi.String("tf-metal-from-port"),
    			ProjectId:        pulumi.String("<metal_project_id>"),
    			Type:             pulumi.String("shared"),
    			Redundancy:       pulumi.String("primary"),
    			Metro:            pulumi.String("FR"),
    			Speed:            pulumi.String("200Mbps"),
    			ServiceTokenType: pulumi.String("z_side"),
    			ContactEmail:     pulumi.String("username@example.com"),
    			Vlans: pulumi.IntArray{
    				example.Vxlan,
    			},
    		})
    		if err != nil {
    			return err
    		}
    		_, err = fabric.NewConnection(ctx, "exampleConnection", &fabric.ConnectionArgs{
    			Name:      pulumi.String("tf-metal-from-port"),
    			Type:      pulumi.String(fabric.ConnectionTypeEVPL),
    			Bandwidth: pulumi.Int(200),
    			Notifications: fabric.ConnectionNotificationArray{
    				&fabric.ConnectionNotificationArgs{
    					Type: pulumi.String(fabric.NotificationsTypeAll),
    					Emails: pulumi.StringArray{
    						pulumi.String("username@example.com"),
    					},
    				},
    			},
    			Order: &fabric.ConnectionOrderArgs{
    				PurchaseOrderNumber: pulumi.String("1-323292"),
    			},
    			Project: &fabric.ConnectionProjectArgs{
    				ProjectId: pulumi.String("<fabric_project_id>"),
    			},
    			ASide: &fabric.ConnectionASideArgs{
    				AccessPoint: &fabric.ConnectionASideAccessPointArgs{
    					Type: pulumi.String(fabric.AccessPointTypeColo),
    					Port: &fabric.ConnectionASideAccessPointPortArgs{
    						Uuid: pulumi.String(aSide.Data[0].Uuid),
    					},
    					LinkProtocol: &fabric.ConnectionASideAccessPointLinkProtocolArgs{
    						Type:    pulumi.String(fabric.AccessPointLinkProtocolTypeDot1q),
    						VlanTag: pulumi.Int(1234),
    					},
    				},
    			},
    			ZSide: &fabric.ConnectionZSideArgs{
    				ServiceToken: &fabric.ConnectionZSideServiceTokenArgs{
    					Uuid: exampleInterconnection.ServiceTokens.ApplyT(func(serviceTokens []metal.InterconnectionServiceToken) (*string, error) {
    						return &serviceTokens[0].Id, 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.fabric.FabricFunctions;
    import com.pulumi.equinix.fabric.inputs.GetPortsArgs;
    import com.pulumi.equinix.fabric.inputs.GetPortsFilterArgs;
    import com.pulumi.equinix.metal.Vlan;
    import com.pulumi.equinix.metal.VlanArgs;
    import com.pulumi.equinix.metal.Interconnection;
    import com.pulumi.equinix.metal.InterconnectionArgs;
    import com.pulumi.equinix.fabric.Connection;
    import com.pulumi.equinix.fabric.ConnectionArgs;
    import com.pulumi.equinix.fabric.inputs.ConnectionNotificationArgs;
    import com.pulumi.equinix.fabric.inputs.ConnectionOrderArgs;
    import com.pulumi.equinix.fabric.inputs.ConnectionProjectArgs;
    import com.pulumi.equinix.fabric.inputs.ConnectionASideArgs;
    import com.pulumi.equinix.fabric.inputs.ConnectionASideAccessPointArgs;
    import com.pulumi.equinix.fabric.inputs.ConnectionASideAccessPointPortArgs;
    import com.pulumi.equinix.fabric.inputs.ConnectionASideAccessPointLinkProtocolArgs;
    import com.pulumi.equinix.fabric.inputs.ConnectionZSideArgs;
    import com.pulumi.equinix.fabric.inputs.ConnectionZSideServiceTokenArgs;
    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 aSide = FabricFunctions.getPorts(GetPortsArgs.builder()
                .filter(GetPortsFilterArgs.builder()
                    .name("<name_of_port||port_prefix>")
                    .build())
                .build());
    
            var example = new Vlan("example", VlanArgs.builder()
                .projectId("<metal_project_id>")
                .metro("FR")
                .build());
    
            var exampleInterconnection = new Interconnection("exampleInterconnection", InterconnectionArgs.builder()
                .name("tf-metal-from-port")
                .projectId("<metal_project_id>")
                .type("shared")
                .redundancy("primary")
                .metro("FR")
                .speed("200Mbps")
                .serviceTokenType("z_side")
                .contactEmail("username@example.com")
                .vlans(example.vxlan())
                .build());
    
            var exampleConnection = new Connection("exampleConnection", ConnectionArgs.builder()
                .name("tf-metal-from-port")
                .type("EVPL_VC")
                .bandwidth("200")
                .notifications(ConnectionNotificationArgs.builder()
                    .type("ALL")
                    .emails("username@example.com")
                    .build())
                .order(ConnectionOrderArgs.builder()
                    .purchaseOrderNumber("1-323292")
                    .build())
                .project(ConnectionProjectArgs.builder()
                    .projectId("<fabric_project_id>")
                    .build())
                .aSide(ConnectionASideArgs.builder()
                    .accessPoint(ConnectionASideAccessPointArgs.builder()
                        .type("COLO")
                        .port(ConnectionASideAccessPointPortArgs.builder()
                            .uuid(aSide.applyValue(getPortsResult -> getPortsResult.data()[0].uuid()))
                            .build())
                        .linkProtocol(ConnectionASideAccessPointLinkProtocolArgs.builder()
                            .type("DOT1Q")
                            .vlanTag(1234)
                            .build())
                        .build())
                    .build())
                .zSide(ConnectionZSideArgs.builder()
                    .serviceToken(ConnectionZSideServiceTokenArgs.builder()
                        .uuid(exampleInterconnection.serviceTokens().applyValue(serviceTokens -> serviceTokens[0].id()))
                        .build())
                    .build())
                .build());
    
        }
    }
    
    import pulumi
    import pulumi_equinix as equinix
    
    a_side = equinix.fabric.get_ports_output(filter={
        "name": "<name_of_port||port_prefix>",
    })
    example = equinix.metal.Vlan("example",
        project_id="<metal_project_id>",
        metro="FR")
    example_interconnection = equinix.metal.Interconnection("exampleInterconnection",
        name="tf-metal-from-port",
        project_id="<metal_project_id>",
        type="shared",
        redundancy="primary",
        metro="FR",
        speed="200Mbps",
        service_token_type="z_side",
        contact_email="username@example.com",
        vlans=[example.vxlan])
    example_connection = equinix.fabric.Connection("exampleConnection",
        name="tf-metal-from-port",
        type=equinix.fabric.ConnectionType.EVPL,
        bandwidth=200,
        notifications=[{
            "type": equinix.fabric.NotificationsType.ALL,
            "emails": ["username@example.com"],
        }],
        order={
            "purchase_order_number": "1-323292",
        },
        project={
            "project_id": "<fabric_project_id>",
        },
        a_side={
            "access_point": {
                "type": equinix.fabric.AccessPointType.COLO,
                "port": {
                    "uuid": a_side.data[0].uuid,
                },
                "link_protocol": {
                    "type": equinix.fabric.AccessPointLinkProtocolType.DOT1Q,
                    "vlan_tag": 1234,
                },
            },
        },
        z_side={
            "service_token": {
                "uuid": example_interconnection.service_tokens[0].id,
            },
        })
    
    import * as pulumi from "@pulumi/pulumi";
    import * as equinix from "@equinix-labs/pulumi-equinix";
    import * as equinix from "@pulumi/equinix";
    
    const aSide = equinix.fabric.getPortsOutput({
        filter: {
            name: "<name_of_port||port_prefix>",
        },
    });
    const example = new equinix.metal.Vlan("example", {
        projectId: "<metal_project_id>",
        metro: "FR",
    });
    const exampleInterconnection = new equinix.metal.Interconnection("exampleInterconnection", {
        name: "tf-metal-from-port",
        projectId: "<metal_project_id>",
        type: "shared",
        redundancy: "primary",
        metro: "FR",
        speed: "200Mbps",
        serviceTokenType: "z_side",
        contactEmail: "username@example.com",
        vlans: [example.vxlan],
    });
    const exampleConnection = new equinix.fabric.Connection("exampleConnection", {
        name: "tf-metal-from-port",
        type: equinix.fabric.ConnectionType.EVPL,
        bandwidth: 200,
        notifications: [{
            type: equinix.fabric.NotificationsType.All,
            emails: ["username@example.com"],
        }],
        order: {
            purchaseOrderNumber: "1-323292",
        },
        project: {
            projectId: "<fabric_project_id>",
        },
        aSide: {
            accessPoint: {
                type: equinix.fabric.AccessPointType.Colo,
                port: {
                    uuid: aSide.apply(aSide => aSide.data?.[0]?.uuid),
                },
                linkProtocol: {
                    type: equinix.fabric.AccessPointLinkProtocolType.Dot1q,
                    vlanTag: 1234,
                },
            },
        },
        zSide: {
            serviceToken: {
                uuid: exampleInterconnection.serviceTokens.apply(serviceTokens => serviceTokens[0].id),
            },
        },
    });
    
    resources:
      example:
        type: equinix:metal:Vlan
        properties:
          projectId: <metal_project_id>
          metro: FR
      exampleInterconnection:
        type: equinix:metal:Interconnection
        name: example
        properties:
          name: tf-metal-from-port
          projectId: <metal_project_id>
          type: shared
          redundancy: primary
          metro: FR
          speed: 200Mbps
          serviceTokenType: z_side
          contactEmail: username@example.com
          vlans:
            - ${example.vxlan}
      exampleConnection:
        type: equinix:fabric:Connection
        name: example
        properties:
          name: tf-metal-from-port
          type: EVPL_VC
          bandwidth: '200'
          notifications:
            - type: ALL
              emails:
                - username@example.com
          order:
            purchaseOrderNumber: 1-323292
          project:
            projectId: <fabric_project_id>
          aSide:
            accessPoint:
              type: COLO
              port:
                uuid: ${aSide.data[0].uuid}
              linkProtocol:
                type: DOT1Q
                vlanTag: 1234
          zSide:
            serviceToken:
              uuid: ${exampleInterconnection.serviceTokens[0].id}
    variables:
      aSide:
        fn::invoke:
          Function: equinix:fabric:getPorts
          Arguments:
            filter:
              name: <name_of_port||port_prefix>
    

    example fabric billed metal from fcr

    using System.Collections.Generic;
    using System.Linq;
    using Pulumi;
    using Equinix = Pulumi.Equinix;
    
    return await Deployment.RunAsync(() => 
    {
        var example1 = new Equinix.Metal.Vlan("example1", new()
        {
            ProjectId = "<metal_project_id>",
            Metro = "SV",
        });
    
        var example = new Equinix.Metal.Interconnection("example", new()
        {
            Name = "tf-metal-from-fcr",
            ProjectId = "<metal_project_id>",
            Metro = "SV",
            Redundancy = "primary",
            Type = "shared_port_vlan",
            ContactEmail = "username@example.com",
            Speed = "200Mbps",
            Vlans = new[]
            {
                example1.Vxlan,
            },
        });
    
        var exampleConnection = new Equinix.Fabric.Connection("exampleConnection", new()
        {
            Name = "tf-metal-from-fcr",
            Type = "IP_VC",
            Bandwidth = 200,
            Notifications = new[]
            {
                new Equinix.Fabric.Inputs.ConnectionNotificationArgs
                {
                    Type = Equinix.Fabric.NotificationsType.All,
                    Emails = new[]
                    {
                        "username@example.com",
                    },
                },
            },
            Project = new Equinix.Fabric.Inputs.ConnectionProjectArgs
            {
                ProjectId = "<fabric_project_id>",
            },
            ASide = new Equinix.Fabric.Inputs.ConnectionASideArgs
            {
                AccessPoint = new Equinix.Fabric.Inputs.ConnectionASideAccessPointArgs
                {
                    Type = "CLOUD_ROUTER",
                    Router = new Equinix.Fabric.Inputs.ConnectionASideAccessPointRouterArgs
                    {
                        Uuid = exampleEquinixFabricCloudRouter.Id,
                    },
                },
            },
            ZSide = new Equinix.Fabric.Inputs.ConnectionZSideArgs
            {
                AccessPoint = new Equinix.Fabric.Inputs.ConnectionZSideAccessPointArgs
                {
                    Type = "METAL_NETWORK",
                    AuthenticationKey = example.AuthorizationCode,
                },
            },
        });
    
    });
    
    package main
    
    import (
    	"github.com/equinix/pulumi-equinix/sdk/go/equinix/fabric"
    	"github.com/equinix/pulumi-equinix/sdk/go/equinix/metal"
    	"github.com/pulumi/pulumi/sdk/v3/go/pulumi"
    )
    
    func main() {
    	pulumi.Run(func(ctx *pulumi.Context) error {
    		example1, err := metal.NewVlan(ctx, "example1", &metal.VlanArgs{
    			ProjectId: pulumi.String("<metal_project_id>"),
    			Metro:     pulumi.String("SV"),
    		})
    		if err != nil {
    			return err
    		}
    		example, err := metal.NewInterconnection(ctx, "example", &metal.InterconnectionArgs{
    			Name:         pulumi.String("tf-metal-from-fcr"),
    			ProjectId:    pulumi.String("<metal_project_id>"),
    			Metro:        pulumi.String("SV"),
    			Redundancy:   pulumi.String("primary"),
    			Type:         pulumi.String("shared_port_vlan"),
    			ContactEmail: pulumi.String("username@example.com"),
    			Speed:        pulumi.String("200Mbps"),
    			Vlans: pulumi.IntArray{
    				example1.Vxlan,
    			},
    		})
    		if err != nil {
    			return err
    		}
    		_, err = fabric.NewConnection(ctx, "exampleConnection", &fabric.ConnectionArgs{
    			Name:      pulumi.String("tf-metal-from-fcr"),
    			Type:      pulumi.String("IP_VC"),
    			Bandwidth: pulumi.Int(200),
    			Notifications: fabric.ConnectionNotificationArray{
    				&fabric.ConnectionNotificationArgs{
    					Type: pulumi.String(fabric.NotificationsTypeAll),
    					Emails: pulumi.StringArray{
    						pulumi.String("username@example.com"),
    					},
    				},
    			},
    			Project: &fabric.ConnectionProjectArgs{
    				ProjectId: pulumi.String("<fabric_project_id>"),
    			},
    			ASide: &fabric.ConnectionASideArgs{
    				AccessPoint: &fabric.ConnectionASideAccessPointArgs{
    					Type: pulumi.String("CLOUD_ROUTER"),
    					Router: &fabric.ConnectionASideAccessPointRouterArgs{
    						Uuid: pulumi.Any(exampleEquinixFabricCloudRouter.Id),
    					},
    				},
    			},
    			ZSide: &fabric.ConnectionZSideArgs{
    				AccessPoint: &fabric.ConnectionZSideAccessPointArgs{
    					Type:              pulumi.String("METAL_NETWORK"),
    					AuthenticationKey: example.AuthorizationCode,
    				},
    			},
    		})
    		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.metal.Vlan;
    import com.pulumi.equinix.metal.VlanArgs;
    import com.pulumi.equinix.metal.Interconnection;
    import com.pulumi.equinix.metal.InterconnectionArgs;
    import com.pulumi.equinix.fabric.Connection;
    import com.pulumi.equinix.fabric.ConnectionArgs;
    import com.pulumi.equinix.fabric.inputs.ConnectionNotificationArgs;
    import com.pulumi.equinix.fabric.inputs.ConnectionProjectArgs;
    import com.pulumi.equinix.fabric.inputs.ConnectionASideArgs;
    import com.pulumi.equinix.fabric.inputs.ConnectionASideAccessPointArgs;
    import com.pulumi.equinix.fabric.inputs.ConnectionASideAccessPointRouterArgs;
    import com.pulumi.equinix.fabric.inputs.ConnectionZSideArgs;
    import com.pulumi.equinix.fabric.inputs.ConnectionZSideAccessPointArgs;
    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) {
            var example1 = new Vlan("example1", VlanArgs.builder()
                .projectId("<metal_project_id>")
                .metro("SV")
                .build());
    
            var example = new Interconnection("example", InterconnectionArgs.builder()
                .name("tf-metal-from-fcr")
                .projectId("<metal_project_id>")
                .metro("SV")
                .redundancy("primary")
                .type("shared_port_vlan")
                .contactEmail("username@example.com")
                .speed("200Mbps")
                .vlans(example1.vxlan())
                .build());
    
            var exampleConnection = new Connection("exampleConnection", ConnectionArgs.builder()
                .name("tf-metal-from-fcr")
                .type("IP_VC")
                .bandwidth("200")
                .notifications(ConnectionNotificationArgs.builder()
                    .type("ALL")
                    .emails("username@example.com")
                    .build())
                .project(ConnectionProjectArgs.builder()
                    .projectId("<fabric_project_id>")
                    .build())
                .aSide(ConnectionASideArgs.builder()
                    .accessPoint(ConnectionASideAccessPointArgs.builder()
                        .type("CLOUD_ROUTER")
                        .router(ConnectionASideAccessPointRouterArgs.builder()
                            .uuid(exampleEquinixFabricCloudRouter.id())
                            .build())
                        .build())
                    .build())
                .zSide(ConnectionZSideArgs.builder()
                    .accessPoint(ConnectionZSideAccessPointArgs.builder()
                        .type("METAL_NETWORK")
                        .authenticationKey(example.authorizationCode())
                        .build())
                    .build())
                .build());
    
        }
    }
    
    import pulumi
    import pulumi_equinix as equinix
    
    example1 = equinix.metal.Vlan("example1",
        project_id="<metal_project_id>",
        metro="SV")
    example = equinix.metal.Interconnection("example",
        name="tf-metal-from-fcr",
        project_id="<metal_project_id>",
        metro="SV",
        redundancy="primary",
        type="shared_port_vlan",
        contact_email="username@example.com",
        speed="200Mbps",
        vlans=[example1.vxlan])
    example_connection = equinix.fabric.Connection("exampleConnection",
        name="tf-metal-from-fcr",
        type="IP_VC",
        bandwidth=200,
        notifications=[{
            "type": equinix.fabric.NotificationsType.ALL,
            "emails": ["username@example.com"],
        }],
        project={
            "project_id": "<fabric_project_id>",
        },
        a_side={
            "access_point": {
                "type": "CLOUD_ROUTER",
                "router": {
                    "uuid": example_equinix_fabric_cloud_router["id"],
                },
            },
        },
        z_side={
            "access_point": {
                "type": "METAL_NETWORK",
                "authentication_key": example.authorization_code,
            },
        })
    
    import * as pulumi from "@pulumi/pulumi";
    import * as equinix from "@equinix-labs/pulumi-equinix";
    
    const example1 = new equinix.metal.Vlan("example1", {
        projectId: "<metal_project_id>",
        metro: "SV",
    });
    const example = new equinix.metal.Interconnection("example", {
        name: "tf-metal-from-fcr",
        projectId: "<metal_project_id>",
        metro: "SV",
        redundancy: "primary",
        type: "shared_port_vlan",
        contactEmail: "username@example.com",
        speed: "200Mbps",
        vlans: [example1.vxlan],
    });
    const exampleConnection = new equinix.fabric.Connection("exampleConnection", {
        name: "tf-metal-from-fcr",
        type: "IP_VC",
        bandwidth: 200,
        notifications: [{
            type: equinix.fabric.NotificationsType.All,
            emails: ["username@example.com"],
        }],
        project: {
            projectId: "<fabric_project_id>",
        },
        aSide: {
            accessPoint: {
                type: "CLOUD_ROUTER",
                router: {
                    uuid: exampleEquinixFabricCloudRouter.id,
                },
            },
        },
        zSide: {
            accessPoint: {
                type: "METAL_NETWORK",
                authenticationKey: example.authorizationCode,
            },
        },
    });
    
    resources:
      example1:
        type: equinix:metal:Vlan
        properties:
          projectId: <metal_project_id>
          metro: SV
      example:
        type: equinix:metal:Interconnection
        properties:
          name: tf-metal-from-fcr
          projectId: <metal_project_id>
          metro: SV
          redundancy: primary
          type: shared_port_vlan
          contactEmail: username@example.com
          speed: 200Mbps
          vlans:
            - ${example1.vxlan}
      exampleConnection:
        type: equinix:fabric:Connection
        name: example
        properties:
          name: tf-metal-from-fcr
          type: IP_VC
          bandwidth: '200'
          notifications:
            - type: ALL
              emails:
                - username@example.com
          project:
            projectId: <fabric_project_id>
          aSide:
            accessPoint:
              type: CLOUD_ROUTER
              router:
                uuid: ${exampleEquinixFabricCloudRouter.id}
          zSide:
            accessPoint:
              type: METAL_NETWORK
              authenticationKey: ${example.authorizationCode}
    

    example fabric billed metal from network edge

    using System.Collections.Generic;
    using System.Linq;
    using Pulumi;
    using Equinix = Pulumi.Equinix;
    
    return await Deployment.RunAsync(() => 
    {
        var example = new Equinix.Metal.Vrf("example", new()
        {
            Name = "tf-metal-from-ne",
            Metro = "FR",
            LocalAsn = 65001,
            IpRanges = new[]
            {
                "10.99.1.0/24",
            },
            ProjectId = test.Id,
        });
    
        var exampleInterconnection = new Equinix.Metal.Interconnection("exampleInterconnection", new()
        {
            Name = "tf-metal-from-ne",
            ProjectId = "<metal_project_id>",
            Type = "shared",
            Redundancy = "primary",
            Metro = "FR",
            Speed = "200Mbps",
            ServiceTokenType = "z_side",
            ContactEmail = "username@example.com",
            Vrfs = new[]
            {
                example.Vxlan,
            },
        });
    
        var exampleConnection = new Equinix.Fabric.Connection("exampleConnection", new()
        {
            Name = "tf-metal-from-ne",
            Type = Equinix.Fabric.ConnectionType.EVPL,
            Bandwidth = 200,
            Notifications = new[]
            {
                new Equinix.Fabric.Inputs.ConnectionNotificationArgs
                {
                    Type = Equinix.Fabric.NotificationsType.All,
                    Emails = new[]
                    {
                        "username@example.com",
                    },
                },
            },
            Order = new Equinix.Fabric.Inputs.ConnectionOrderArgs
            {
                PurchaseOrderNumber = "1-323292",
            },
            Project = new Equinix.Fabric.Inputs.ConnectionProjectArgs
            {
                ProjectId = "<fabric_project_id>",
            },
            ASide = new Equinix.Fabric.Inputs.ConnectionASideArgs
            {
                AccessPoint = new Equinix.Fabric.Inputs.ConnectionASideAccessPointArgs
                {
                    Type = Equinix.Fabric.AccessPointType.VD,
                    VirtualDevice = new Equinix.Fabric.Inputs.ConnectionASideAccessPointVirtualDeviceArgs
                    {
                        Type = "EDGE",
                        Uuid = exampleEquinixNetworkDevice.Id,
                    },
                },
            },
            ZSide = new Equinix.Fabric.Inputs.ConnectionZSideArgs
            {
                ServiceToken = new Equinix.Fabric.Inputs.ConnectionZSideServiceTokenArgs
                {
                    Uuid = exampleInterconnection.ServiceTokens.Apply(serviceTokens => serviceTokens[0].Id),
                },
            },
        });
    
    });
    
    package main
    
    import (
    	"github.com/equinix/pulumi-equinix/sdk/go/equinix/fabric"
    	"github.com/equinix/pulumi-equinix/sdk/go/equinix/metal"
    	"github.com/pulumi/pulumi/sdk/v3/go/pulumi"
    )
    
    func main() {
    	pulumi.Run(func(ctx *pulumi.Context) error {
    		example, err := metal.NewVrf(ctx, "example", &metal.VrfArgs{
    			Name:     pulumi.String("tf-metal-from-ne"),
    			Metro:    pulumi.String("FR"),
    			LocalAsn: pulumi.Int(65001),
    			IpRanges: pulumi.StringArray{
    				pulumi.String("10.99.1.0/24"),
    			},
    			ProjectId: pulumi.Any(test.Id),
    		})
    		if err != nil {
    			return err
    		}
    		exampleInterconnection, err := metal.NewInterconnection(ctx, "exampleInterconnection", &metal.InterconnectionArgs{
    			Name:             pulumi.String("tf-metal-from-ne"),
    			ProjectId:        pulumi.String("<metal_project_id>"),
    			Type:             pulumi.String("shared"),
    			Redundancy:       pulumi.String("primary"),
    			Metro:            pulumi.String("FR"),
    			Speed:            pulumi.String("200Mbps"),
    			ServiceTokenType: pulumi.String("z_side"),
    			ContactEmail:     pulumi.String("username@example.com"),
    			Vrfs: pulumi.StringArray{
    				example.Vxlan,
    			},
    		})
    		if err != nil {
    			return err
    		}
    		_, err = fabric.NewConnection(ctx, "exampleConnection", &fabric.ConnectionArgs{
    			Name:      pulumi.String("tf-metal-from-ne"),
    			Type:      pulumi.String(fabric.ConnectionTypeEVPL),
    			Bandwidth: pulumi.Int(200),
    			Notifications: fabric.ConnectionNotificationArray{
    				&fabric.ConnectionNotificationArgs{
    					Type: pulumi.String(fabric.NotificationsTypeAll),
    					Emails: pulumi.StringArray{
    						pulumi.String("username@example.com"),
    					},
    				},
    			},
    			Order: &fabric.ConnectionOrderArgs{
    				PurchaseOrderNumber: pulumi.String("1-323292"),
    			},
    			Project: &fabric.ConnectionProjectArgs{
    				ProjectId: pulumi.String("<fabric_project_id>"),
    			},
    			ASide: &fabric.ConnectionASideArgs{
    				AccessPoint: &fabric.ConnectionASideAccessPointArgs{
    					Type: pulumi.String(fabric.AccessPointTypeVD),
    					VirtualDevice: &fabric.ConnectionASideAccessPointVirtualDeviceArgs{
    						Type: pulumi.String("EDGE"),
    						Uuid: pulumi.Any(exampleEquinixNetworkDevice.Id),
    					},
    				},
    			},
    			ZSide: &fabric.ConnectionZSideArgs{
    				ServiceToken: &fabric.ConnectionZSideServiceTokenArgs{
    					Uuid: exampleInterconnection.ServiceTokens.ApplyT(func(serviceTokens []metal.InterconnectionServiceToken) (*string, error) {
    						return &serviceTokens[0].Id, 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.metal.Vrf;
    import com.pulumi.equinix.metal.VrfArgs;
    import com.pulumi.equinix.metal.Interconnection;
    import com.pulumi.equinix.metal.InterconnectionArgs;
    import com.pulumi.equinix.fabric.Connection;
    import com.pulumi.equinix.fabric.ConnectionArgs;
    import com.pulumi.equinix.fabric.inputs.ConnectionNotificationArgs;
    import com.pulumi.equinix.fabric.inputs.ConnectionOrderArgs;
    import com.pulumi.equinix.fabric.inputs.ConnectionProjectArgs;
    import com.pulumi.equinix.fabric.inputs.ConnectionASideArgs;
    import com.pulumi.equinix.fabric.inputs.ConnectionASideAccessPointArgs;
    import com.pulumi.equinix.fabric.inputs.ConnectionASideAccessPointVirtualDeviceArgs;
    import com.pulumi.equinix.fabric.inputs.ConnectionZSideArgs;
    import com.pulumi.equinix.fabric.inputs.ConnectionZSideServiceTokenArgs;
    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) {
            var example = new Vrf("example", VrfArgs.builder()
                .name("tf-metal-from-ne")
                .metro("FR")
                .localAsn("65001")
                .ipRanges("10.99.1.0/24")
                .projectId(test.id())
                .build());
    
            var exampleInterconnection = new Interconnection("exampleInterconnection", InterconnectionArgs.builder()
                .name("tf-metal-from-ne")
                .projectId("<metal_project_id>")
                .type("shared")
                .redundancy("primary")
                .metro("FR")
                .speed("200Mbps")
                .serviceTokenType("z_side")
                .contactEmail("username@example.com")
                .vrfs(example.vxlan())
                .build());
    
            var exampleConnection = new Connection("exampleConnection", ConnectionArgs.builder()
                .name("tf-metal-from-ne")
                .type("EVPL_VC")
                .bandwidth("200")
                .notifications(ConnectionNotificationArgs.builder()
                    .type("ALL")
                    .emails("username@example.com")
                    .build())
                .order(ConnectionOrderArgs.builder()
                    .purchaseOrderNumber("1-323292")
                    .build())
                .project(ConnectionProjectArgs.builder()
                    .projectId("<fabric_project_id>")
                    .build())
                .aSide(ConnectionASideArgs.builder()
                    .accessPoint(ConnectionASideAccessPointArgs.builder()
                        .type("VD")
                        .virtualDevice(ConnectionASideAccessPointVirtualDeviceArgs.builder()
                            .type("EDGE")
                            .uuid(exampleEquinixNetworkDevice.id())
                            .build())
                        .build())
                    .build())
                .zSide(ConnectionZSideArgs.builder()
                    .serviceToken(ConnectionZSideServiceTokenArgs.builder()
                        .uuid(exampleInterconnection.serviceTokens().applyValue(serviceTokens -> serviceTokens[0].id()))
                        .build())
                    .build())
                .build());
    
        }
    }
    
    import pulumi
    import pulumi_equinix as equinix
    
    example = equinix.metal.Vrf("example",
        name="tf-metal-from-ne",
        metro="FR",
        local_asn=65001,
        ip_ranges=["10.99.1.0/24"],
        project_id=test["id"])
    example_interconnection = equinix.metal.Interconnection("exampleInterconnection",
        name="tf-metal-from-ne",
        project_id="<metal_project_id>",
        type="shared",
        redundancy="primary",
        metro="FR",
        speed="200Mbps",
        service_token_type="z_side",
        contact_email="username@example.com",
        vrfs=[example.vxlan])
    example_connection = equinix.fabric.Connection("exampleConnection",
        name="tf-metal-from-ne",
        type=equinix.fabric.ConnectionType.EVPL,
        bandwidth=200,
        notifications=[{
            "type": equinix.fabric.NotificationsType.ALL,
            "emails": ["username@example.com"],
        }],
        order={
            "purchase_order_number": "1-323292",
        },
        project={
            "project_id": "<fabric_project_id>",
        },
        a_side={
            "access_point": {
                "type": equinix.fabric.AccessPointType.VD,
                "virtual_device": {
                    "type": "EDGE",
                    "uuid": example_equinix_network_device["id"],
                },
            },
        },
        z_side={
            "service_token": {
                "uuid": example_interconnection.service_tokens[0].id,
            },
        })
    
    import * as pulumi from "@pulumi/pulumi";
    import * as equinix from "@equinix-labs/pulumi-equinix";
    
    const example = new equinix.metal.Vrf("example", {
        name: "tf-metal-from-ne",
        metro: "FR",
        localAsn: 65001,
        ipRanges: ["10.99.1.0/24"],
        projectId: test.id,
    });
    const exampleInterconnection = new equinix.metal.Interconnection("exampleInterconnection", {
        name: "tf-metal-from-ne",
        projectId: "<metal_project_id>",
        type: "shared",
        redundancy: "primary",
        metro: "FR",
        speed: "200Mbps",
        serviceTokenType: "z_side",
        contactEmail: "username@example.com",
        vrfs: [example.vxlan],
    });
    const exampleConnection = new equinix.fabric.Connection("exampleConnection", {
        name: "tf-metal-from-ne",
        type: equinix.fabric.ConnectionType.EVPL,
        bandwidth: 200,
        notifications: [{
            type: equinix.fabric.NotificationsType.All,
            emails: ["username@example.com"],
        }],
        order: {
            purchaseOrderNumber: "1-323292",
        },
        project: {
            projectId: "<fabric_project_id>",
        },
        aSide: {
            accessPoint: {
                type: equinix.fabric.AccessPointType.VD,
                virtualDevice: {
                    type: "EDGE",
                    uuid: exampleEquinixNetworkDevice.id,
                },
            },
        },
        zSide: {
            serviceToken: {
                uuid: exampleInterconnection.serviceTokens.apply(serviceTokens => serviceTokens[0].id),
            },
        },
    });
    
    resources:
      example:
        type: equinix:metal:Vrf
        properties:
          name: tf-metal-from-ne
          metro: FR
          localAsn: '65001'
          ipRanges:
            - 10.99.1.0/24
          projectId: ${test.id}
      exampleInterconnection:
        type: equinix:metal:Interconnection
        name: example
        properties:
          name: tf-metal-from-ne
          projectId: <metal_project_id>
          type: shared
          redundancy: primary
          metro: FR
          speed: 200Mbps
          serviceTokenType: z_side
          contactEmail: username@example.com
          vrfs:
            - ${example.vxlan}
      exampleConnection:
        type: equinix:fabric:Connection
        name: example
        properties:
          name: tf-metal-from-ne
          type: EVPL_VC
          bandwidth: '200'
          notifications:
            - type: ALL
              emails:
                - username@example.com
          order:
            purchaseOrderNumber: 1-323292
          project:
            projectId: <fabric_project_id>
          aSide:
            accessPoint:
              type: VD
              virtualDevice:
                type: EDGE
                uuid: ${exampleEquinixNetworkDevice.id}
          zSide:
            serviceToken:
              uuid: ${exampleInterconnection.serviceTokens[0].id}
    

    example metal billed metal to fabric port

    using System.Collections.Generic;
    using System.Linq;
    using Pulumi;
    using Equinix = Pulumi.Equinix;
    
    return await Deployment.RunAsync(() => 
    {
        var aSide = Equinix.Fabric.GetPorts.Invoke(new()
        {
            Filter = new Equinix.Fabric.Inputs.GetPortsFilterInputArgs
            {
                Name = "<name_of_port||port_prefix>",
            },
        });
    
        var example = new Equinix.Metal.Interconnection("example", new()
        {
            Name = "tf-metal-2-port",
            ProjectId = "<metal_project_id>",
            Type = "shared",
            Redundancy = "redundant",
            Metro = "FR",
            Speed = "1Gbps",
            ServiceTokenType = "a_side",
            ContactEmail = "username@example.com",
        });
    
        var exampleConnection = new Equinix.Fabric.Connection("exampleConnection", new()
        {
            Name = "tf-metal-2-port",
            Type = Equinix.Fabric.ConnectionType.EVPL,
            Notifications = new[]
            {
                new Equinix.Fabric.Inputs.ConnectionNotificationArgs
                {
                    Type = Equinix.Fabric.NotificationsType.All,
                    Emails = new[]
                    {
                        "username@example.com",
                    },
                },
            },
            Project = new Equinix.Fabric.Inputs.ConnectionProjectArgs
            {
                ProjectId = "<fabric_project_id>",
            },
            Bandwidth = 100,
            Order = new Equinix.Fabric.Inputs.ConnectionOrderArgs
            {
                PurchaseOrderNumber = "1-323292",
            },
            ASide = new Equinix.Fabric.Inputs.ConnectionASideArgs
            {
                ServiceToken = new Equinix.Fabric.Inputs.ConnectionASideServiceTokenArgs
                {
                    Uuid = example.ServiceTokens.Apply(serviceTokens => serviceTokens[0].Id),
                },
            },
            ZSide = new Equinix.Fabric.Inputs.ConnectionZSideArgs
            {
                AccessPoint = new Equinix.Fabric.Inputs.ConnectionZSideAccessPointArgs
                {
                    Type = Equinix.Fabric.AccessPointType.Colo,
                    Port = new Equinix.Fabric.Inputs.ConnectionZSideAccessPointPortArgs
                    {
                        Uuid = aSide.Apply(getPortsResult => getPortsResult.Data[0]?.Uuid),
                    },
                    LinkProtocol = new Equinix.Fabric.Inputs.ConnectionZSideAccessPointLinkProtocolArgs
                    {
                        Type = Equinix.Fabric.AccessPointLinkProtocolType.Dot1q,
                        VlanTag = 1234,
                    },
                },
            },
        });
    
    });
    
    package main
    
    import (
    	"github.com/equinix/pulumi-equinix/sdk/go/equinix/fabric"
    	"github.com/equinix/pulumi-equinix/sdk/go/equinix/metal"
    	"github.com/pulumi/pulumi/sdk/v3/go/pulumi"
    )
    
    func main() {
    	pulumi.Run(func(ctx *pulumi.Context) error {
    		aSide, err := fabric.GetPorts(ctx, &fabric.GetPortsArgs{
    			Filter: fabric.GetPortsFilter{
    				Name: "<name_of_port||port_prefix>",
    			},
    		}, nil)
    		if err != nil {
    			return err
    		}
    		example, err := metal.NewInterconnection(ctx, "example", &metal.InterconnectionArgs{
    			Name:             pulumi.String("tf-metal-2-port"),
    			ProjectId:        pulumi.String("<metal_project_id>"),
    			Type:             pulumi.String("shared"),
    			Redundancy:       pulumi.String("redundant"),
    			Metro:            pulumi.String("FR"),
    			Speed:            pulumi.String("1Gbps"),
    			ServiceTokenType: pulumi.String("a_side"),
    			ContactEmail:     pulumi.String("username@example.com"),
    		})
    		if err != nil {
    			return err
    		}
    		_, err = fabric.NewConnection(ctx, "exampleConnection", &fabric.ConnectionArgs{
    			Name: pulumi.String("tf-metal-2-port"),
    			Type: pulumi.String(fabric.ConnectionTypeEVPL),
    			Notifications: fabric.ConnectionNotificationArray{
    				&fabric.ConnectionNotificationArgs{
    					Type: pulumi.String(fabric.NotificationsTypeAll),
    					Emails: pulumi.StringArray{
    						pulumi.String("username@example.com"),
    					},
    				},
    			},
    			Project: &fabric.ConnectionProjectArgs{
    				ProjectId: pulumi.String("<fabric_project_id>"),
    			},
    			Bandwidth: pulumi.Int(100),
    			Order: &fabric.ConnectionOrderArgs{
    				PurchaseOrderNumber: pulumi.String("1-323292"),
    			},
    			ASide: &fabric.ConnectionASideArgs{
    				ServiceToken: &fabric.ConnectionASideServiceTokenArgs{
    					Uuid: example.ServiceTokens.ApplyT(func(serviceTokens []metal.InterconnectionServiceToken) (*string, error) {
    						return &serviceTokens[0].Id, nil
    					}).(pulumi.StringPtrOutput),
    				},
    			},
    			ZSide: &fabric.ConnectionZSideArgs{
    				AccessPoint: &fabric.ConnectionZSideAccessPointArgs{
    					Type: pulumi.String(fabric.AccessPointTypeColo),
    					Port: &fabric.ConnectionZSideAccessPointPortArgs{
    						Uuid: pulumi.String(aSide.Data[0].Uuid),
    					},
    					LinkProtocol: &fabric.ConnectionZSideAccessPointLinkProtocolArgs{
    						Type:    pulumi.String(fabric.AccessPointLinkProtocolTypeDot1q),
    						VlanTag: pulumi.Int(1234),
    					},
    				},
    			},
    		})
    		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.fabric.FabricFunctions;
    import com.pulumi.equinix.fabric.inputs.GetPortsArgs;
    import com.pulumi.equinix.fabric.inputs.GetPortsFilterArgs;
    import com.pulumi.equinix.metal.Interconnection;
    import com.pulumi.equinix.metal.InterconnectionArgs;
    import com.pulumi.equinix.fabric.Connection;
    import com.pulumi.equinix.fabric.ConnectionArgs;
    import com.pulumi.equinix.fabric.inputs.ConnectionNotificationArgs;
    import com.pulumi.equinix.fabric.inputs.ConnectionProjectArgs;
    import com.pulumi.equinix.fabric.inputs.ConnectionOrderArgs;
    import com.pulumi.equinix.fabric.inputs.ConnectionASideArgs;
    import com.pulumi.equinix.fabric.inputs.ConnectionASideServiceTokenArgs;
    import com.pulumi.equinix.fabric.inputs.ConnectionZSideArgs;
    import com.pulumi.equinix.fabric.inputs.ConnectionZSideAccessPointArgs;
    import com.pulumi.equinix.fabric.inputs.ConnectionZSideAccessPointPortArgs;
    import com.pulumi.equinix.fabric.inputs.ConnectionZSideAccessPointLinkProtocolArgs;
    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 aSide = FabricFunctions.getPorts(GetPortsArgs.builder()
                .filter(GetPortsFilterArgs.builder()
                    .name("<name_of_port||port_prefix>")
                    .build())
                .build());
    
            var example = new Interconnection("example", InterconnectionArgs.builder()
                .name("tf-metal-2-port")
                .projectId("<metal_project_id>")
                .type("shared")
                .redundancy("redundant")
                .metro("FR")
                .speed("1Gbps")
                .serviceTokenType("a_side")
                .contactEmail("username@example.com")
                .build());
    
            var exampleConnection = new Connection("exampleConnection", ConnectionArgs.builder()
                .name("tf-metal-2-port")
                .type("EVPL_VC")
                .notifications(ConnectionNotificationArgs.builder()
                    .type("ALL")
                    .emails("username@example.com")
                    .build())
                .project(ConnectionProjectArgs.builder()
                    .projectId("<fabric_project_id>")
                    .build())
                .bandwidth("100")
                .order(ConnectionOrderArgs.builder()
                    .purchaseOrderNumber("1-323292")
                    .build())
                .aSide(ConnectionASideArgs.builder()
                    .serviceToken(ConnectionASideServiceTokenArgs.builder()
                        .uuid(example.serviceTokens().applyValue(serviceTokens -> serviceTokens[0].id()))
                        .build())
                    .build())
                .zSide(ConnectionZSideArgs.builder()
                    .accessPoint(ConnectionZSideAccessPointArgs.builder()
                        .type("COLO")
                        .port(ConnectionZSideAccessPointPortArgs.builder()
                            .uuid(aSide.applyValue(getPortsResult -> getPortsResult.data()[0].uuid()))
                            .build())
                        .linkProtocol(ConnectionZSideAccessPointLinkProtocolArgs.builder()
                            .type("DOT1Q")
                            .vlanTag(1234)
                            .build())
                        .build())
                    .build())
                .build());
    
        }
    }
    
    import pulumi
    import pulumi_equinix as equinix
    
    a_side = equinix.fabric.get_ports_output(filter={
        "name": "<name_of_port||port_prefix>",
    })
    example = equinix.metal.Interconnection("example",
        name="tf-metal-2-port",
        project_id="<metal_project_id>",
        type="shared",
        redundancy="redundant",
        metro="FR",
        speed="1Gbps",
        service_token_type="a_side",
        contact_email="username@example.com")
    example_connection = equinix.fabric.Connection("exampleConnection",
        name="tf-metal-2-port",
        type=equinix.fabric.ConnectionType.EVPL,
        notifications=[{
            "type": equinix.fabric.NotificationsType.ALL,
            "emails": ["username@example.com"],
        }],
        project={
            "project_id": "<fabric_project_id>",
        },
        bandwidth=100,
        order={
            "purchase_order_number": "1-323292",
        },
        a_side={
            "service_token": {
                "uuid": example.service_tokens[0].id,
            },
        },
        z_side={
            "access_point": {
                "type": equinix.fabric.AccessPointType.COLO,
                "port": {
                    "uuid": a_side.data[0].uuid,
                },
                "link_protocol": {
                    "type": equinix.fabric.AccessPointLinkProtocolType.DOT1Q,
                    "vlan_tag": 1234,
                },
            },
        })
    
    import * as pulumi from "@pulumi/pulumi";
    import * as equinix from "@equinix-labs/pulumi-equinix";
    import * as equinix from "@pulumi/equinix";
    
    const aSide = equinix.fabric.getPortsOutput({
        filter: {
            name: "<name_of_port||port_prefix>",
        },
    });
    const example = new equinix.metal.Interconnection("example", {
        name: "tf-metal-2-port",
        projectId: "<metal_project_id>",
        type: "shared",
        redundancy: "redundant",
        metro: "FR",
        speed: "1Gbps",
        serviceTokenType: "a_side",
        contactEmail: "username@example.com",
    });
    const exampleConnection = new equinix.fabric.Connection("exampleConnection", {
        name: "tf-metal-2-port",
        type: equinix.fabric.ConnectionType.EVPL,
        notifications: [{
            type: equinix.fabric.NotificationsType.All,
            emails: ["username@example.com"],
        }],
        project: {
            projectId: "<fabric_project_id>",
        },
        bandwidth: 100,
        order: {
            purchaseOrderNumber: "1-323292",
        },
        aSide: {
            serviceToken: {
                uuid: example.serviceTokens.apply(serviceTokens => serviceTokens[0].id),
            },
        },
        zSide: {
            accessPoint: {
                type: equinix.fabric.AccessPointType.Colo,
                port: {
                    uuid: aSide.apply(aSide => aSide.data?.[0]?.uuid),
                },
                linkProtocol: {
                    type: equinix.fabric.AccessPointLinkProtocolType.Dot1q,
                    vlanTag: 1234,
                },
            },
        },
    });
    
    resources:
      example:
        type: equinix:metal:Interconnection
        properties:
          name: tf-metal-2-port
          projectId: <metal_project_id>
          type: shared
          redundancy: redundant
          metro: FR
          speed: 1Gbps
          serviceTokenType: a_side
          contactEmail: username@example.com
      exampleConnection:
        type: equinix:fabric:Connection
        name: example
        properties:
          name: tf-metal-2-port
          type: EVPL_VC
          notifications:
            - type: ALL
              emails:
                - username@example.com
          project:
            projectId: <fabric_project_id>
          bandwidth: '100'
          order:
            purchaseOrderNumber: 1-323292
          aSide:
            serviceToken:
              uuid: ${example.serviceTokens[0].id}
          zSide:
            accessPoint:
              type: COLO
              port:
                uuid: ${aSide.data[0].uuid}
              linkProtocol:
                type: DOT1Q
                vlanTag: 1234
    variables:
      aSide:
        fn::invoke:
          Function: equinix:fabric:getPorts
          Arguments:
            filter:
              name: <name_of_port||port_prefix>
    

    Create Interconnection Resource

    Resources are created with functions called constructors. To learn more about declaring and configuring resources, see Resources.

    Constructor syntax

    new Interconnection(name: string, args: InterconnectionArgs, opts?: CustomResourceOptions);
    @overload
    def Interconnection(resource_name: str,
                        args: InterconnectionArgs,
                        opts: Optional[ResourceOptions] = None)
    
    @overload
    def Interconnection(resource_name: str,
                        opts: Optional[ResourceOptions] = None,
                        redundancy: Optional[str] = None,
                        type: Optional[str] = None,
                        organization_id: Optional[str] = None,
                        metro: Optional[str] = None,
                        mode: Optional[str] = None,
                        name: Optional[str] = None,
                        contact_email: Optional[str] = None,
                        project_id: Optional[str] = None,
                        facility: Optional[str] = None,
                        service_token_type: Optional[str] = None,
                        speed: Optional[str] = None,
                        tags: Optional[Sequence[str]] = None,
                        description: Optional[str] = None,
                        vlans: Optional[Sequence[int]] = None,
                        vrfs: Optional[Sequence[str]] = None)
    func NewInterconnection(ctx *Context, name string, args InterconnectionArgs, opts ...ResourceOption) (*Interconnection, error)
    public Interconnection(string name, InterconnectionArgs args, CustomResourceOptions? opts = null)
    public Interconnection(String name, InterconnectionArgs args)
    public Interconnection(String name, InterconnectionArgs args, CustomResourceOptions options)
    
    type: equinix:metal:Interconnection
    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 InterconnectionArgs
    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 InterconnectionArgs
    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 InterconnectionArgs
    The arguments to resource properties.
    opts ResourceOption
    Bag of options to control resource's behavior.
    name string
    The unique name of the resource.
    args InterconnectionArgs
    The arguments to resource properties.
    opts CustomResourceOptions
    Bag of options to control resource's behavior.
    name String
    The unique name of the resource.
    args InterconnectionArgs
    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 interconnectionResource = new Equinix.Metal.Interconnection("interconnectionResource", new()
    {
        Redundancy = "string",
        Type = "string",
        OrganizationId = "string",
        Metro = "string",
        Mode = "string",
        Name = "string",
        ContactEmail = "string",
        ProjectId = "string",
        ServiceTokenType = "string",
        Speed = "string",
        Tags = new[]
        {
            "string",
        },
        Description = "string",
        Vlans = new[]
        {
            0,
        },
        Vrfs = new[]
        {
            "string",
        },
    });
    
    example, err := metal.NewInterconnection(ctx, "interconnectionResource", &metal.InterconnectionArgs{
    	Redundancy:       pulumi.String("string"),
    	Type:             pulumi.String("string"),
    	OrganizationId:   pulumi.String("string"),
    	Metro:            pulumi.String("string"),
    	Mode:             pulumi.String("string"),
    	Name:             pulumi.String("string"),
    	ContactEmail:     pulumi.String("string"),
    	ProjectId:        pulumi.String("string"),
    	ServiceTokenType: pulumi.String("string"),
    	Speed:            pulumi.String("string"),
    	Tags: pulumi.StringArray{
    		pulumi.String("string"),
    	},
    	Description: pulumi.String("string"),
    	Vlans: pulumi.IntArray{
    		pulumi.Int(0),
    	},
    	Vrfs: pulumi.StringArray{
    		pulumi.String("string"),
    	},
    })
    
    var interconnectionResource = new Interconnection("interconnectionResource", InterconnectionArgs.builder()
        .redundancy("string")
        .type("string")
        .organizationId("string")
        .metro("string")
        .mode("string")
        .name("string")
        .contactEmail("string")
        .projectId("string")
        .serviceTokenType("string")
        .speed("string")
        .tags("string")
        .description("string")
        .vlans(0)
        .vrfs("string")
        .build());
    
    interconnection_resource = equinix.metal.Interconnection("interconnectionResource",
        redundancy="string",
        type="string",
        organization_id="string",
        metro="string",
        mode="string",
        name="string",
        contact_email="string",
        project_id="string",
        service_token_type="string",
        speed="string",
        tags=["string"],
        description="string",
        vlans=[0],
        vrfs=["string"])
    
    const interconnectionResource = new equinix.metal.Interconnection("interconnectionResource", {
        redundancy: "string",
        type: "string",
        organizationId: "string",
        metro: "string",
        mode: "string",
        name: "string",
        contactEmail: "string",
        projectId: "string",
        serviceTokenType: "string",
        speed: "string",
        tags: ["string"],
        description: "string",
        vlans: [0],
        vrfs: ["string"],
    });
    
    type: equinix:metal:Interconnection
    properties:
        contactEmail: string
        description: string
        metro: string
        mode: string
        name: string
        organizationId: string
        projectId: string
        redundancy: string
        serviceTokenType: string
        speed: string
        tags:
            - string
        type: string
        vlans:
            - 0
        vrfs:
            - string
    

    Interconnection 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 Interconnection resource accepts the following input properties:

    Redundancy string
    Connection redundancy - redundant or primary
    Type string
    Connection type - dedicated, shared or sharedportvlan
    ContactEmail string
    The preferred email used for communication and notifications about the Equinix Fabric interconnection
    Description string
    Description of the connection resource
    Facility string
    Facility where the connection will be created

    Deprecated: Use metro instead of facility. For more information, read the migration guide.

    Metro string
    Metro where the connection will be created
    Mode string
    Mode for connections in IBX facilities with the dedicated type - standard or tunnel
    Name string
    Name of the connection resource
    OrganizationId string
    ID of the organization responsible for the connection. Applicable with type "dedicated"
    ProjectId string
    ID of the project where the connection is scoped to. Required with type "shared"
    ServiceTokenType string
    Only used with shared connection. Type of service token to use for the connection, aside or zside
    Speed string
    Connection speed - Values must be in the format '\n\nMbps' or '\n\nGpbs', for example '100Mbps' or '50Gbps'. Actual supported values will depend on the connection type and whether the connection uses VLANs or VRF.
    Tags List<string>
    Tags attached to the connection
    Vlans List<int>
    Only used with shared connection. VLANs to attach. Pass one vlan for Primary/Single connection and two vlans for Redundant connection
    Vrfs List<string>
    Only used with shared connection. VRFs to attach. Pass one VRF for Primary/Single connection and two VRFs for Redundant connection
    Redundancy string
    Connection redundancy - redundant or primary
    Type string
    Connection type - dedicated, shared or sharedportvlan
    ContactEmail string
    The preferred email used for communication and notifications about the Equinix Fabric interconnection
    Description string
    Description of the connection resource
    Facility string
    Facility where the connection will be created

    Deprecated: Use metro instead of facility. For more information, read the migration guide.

    Metro string
    Metro where the connection will be created
    Mode string
    Mode for connections in IBX facilities with the dedicated type - standard or tunnel
    Name string
    Name of the connection resource
    OrganizationId string
    ID of the organization responsible for the connection. Applicable with type "dedicated"
    ProjectId string
    ID of the project where the connection is scoped to. Required with type "shared"
    ServiceTokenType string
    Only used with shared connection. Type of service token to use for the connection, aside or zside
    Speed string
    Connection speed - Values must be in the format '\n\nMbps' or '\n\nGpbs', for example '100Mbps' or '50Gbps'. Actual supported values will depend on the connection type and whether the connection uses VLANs or VRF.
    Tags []string
    Tags attached to the connection
    Vlans []int
    Only used with shared connection. VLANs to attach. Pass one vlan for Primary/Single connection and two vlans for Redundant connection
    Vrfs []string
    Only used with shared connection. VRFs to attach. Pass one VRF for Primary/Single connection and two VRFs for Redundant connection
    redundancy String
    Connection redundancy - redundant or primary
    type String
    Connection type - dedicated, shared or sharedportvlan
    contactEmail String
    The preferred email used for communication and notifications about the Equinix Fabric interconnection
    description String
    Description of the connection resource
    facility String
    Facility where the connection will be created

    Deprecated: Use metro instead of facility. For more information, read the migration guide.

    metro String
    Metro where the connection will be created
    mode String
    Mode for connections in IBX facilities with the dedicated type - standard or tunnel
    name String
    Name of the connection resource
    organizationId String
    ID of the organization responsible for the connection. Applicable with type "dedicated"
    projectId String
    ID of the project where the connection is scoped to. Required with type "shared"
    serviceTokenType String
    Only used with shared connection. Type of service token to use for the connection, aside or zside
    speed String
    Connection speed - Values must be in the format '\n\nMbps' or '\n\nGpbs', for example '100Mbps' or '50Gbps'. Actual supported values will depend on the connection type and whether the connection uses VLANs or VRF.
    tags List<String>
    Tags attached to the connection
    vlans List<Integer>
    Only used with shared connection. VLANs to attach. Pass one vlan for Primary/Single connection and two vlans for Redundant connection
    vrfs List<String>
    Only used with shared connection. VRFs to attach. Pass one VRF for Primary/Single connection and two VRFs for Redundant connection
    redundancy string
    Connection redundancy - redundant or primary
    type string
    Connection type - dedicated, shared or sharedportvlan
    contactEmail string
    The preferred email used for communication and notifications about the Equinix Fabric interconnection
    description string
    Description of the connection resource
    facility string
    Facility where the connection will be created

    Deprecated: Use metro instead of facility. For more information, read the migration guide.

    metro string
    Metro where the connection will be created
    mode string
    Mode for connections in IBX facilities with the dedicated type - standard or tunnel
    name string
    Name of the connection resource
    organizationId string
    ID of the organization responsible for the connection. Applicable with type "dedicated"
    projectId string
    ID of the project where the connection is scoped to. Required with type "shared"
    serviceTokenType string
    Only used with shared connection. Type of service token to use for the connection, aside or zside
    speed string
    Connection speed - Values must be in the format '\n\nMbps' or '\n\nGpbs', for example '100Mbps' or '50Gbps'. Actual supported values will depend on the connection type and whether the connection uses VLANs or VRF.
    tags string[]
    Tags attached to the connection
    vlans number[]
    Only used with shared connection. VLANs to attach. Pass one vlan for Primary/Single connection and two vlans for Redundant connection
    vrfs string[]
    Only used with shared connection. VRFs to attach. Pass one VRF for Primary/Single connection and two VRFs for Redundant connection
    redundancy str
    Connection redundancy - redundant or primary
    type str
    Connection type - dedicated, shared or sharedportvlan
    contact_email str
    The preferred email used for communication and notifications about the Equinix Fabric interconnection
    description str
    Description of the connection resource
    facility str
    Facility where the connection will be created

    Deprecated: Use metro instead of facility. For more information, read the migration guide.

    metro str
    Metro where the connection will be created
    mode str
    Mode for connections in IBX facilities with the dedicated type - standard or tunnel
    name str
    Name of the connection resource
    organization_id str
    ID of the organization responsible for the connection. Applicable with type "dedicated"
    project_id str
    ID of the project where the connection is scoped to. Required with type "shared"
    service_token_type str
    Only used with shared connection. Type of service token to use for the connection, aside or zside
    speed str
    Connection speed - Values must be in the format '\n\nMbps' or '\n\nGpbs', for example '100Mbps' or '50Gbps'. Actual supported values will depend on the connection type and whether the connection uses VLANs or VRF.
    tags Sequence[str]
    Tags attached to the connection
    vlans Sequence[int]
    Only used with shared connection. VLANs to attach. Pass one vlan for Primary/Single connection and two vlans for Redundant connection
    vrfs Sequence[str]
    Only used with shared connection. VRFs to attach. Pass one VRF for Primary/Single connection and two VRFs for Redundant connection
    redundancy String
    Connection redundancy - redundant or primary
    type String
    Connection type - dedicated, shared or sharedportvlan
    contactEmail String
    The preferred email used for communication and notifications about the Equinix Fabric interconnection
    description String
    Description of the connection resource
    facility String
    Facility where the connection will be created

    Deprecated: Use metro instead of facility. For more information, read the migration guide.

    metro String
    Metro where the connection will be created
    mode String
    Mode for connections in IBX facilities with the dedicated type - standard or tunnel
    name String
    Name of the connection resource
    organizationId String
    ID of the organization responsible for the connection. Applicable with type "dedicated"
    projectId String
    ID of the project where the connection is scoped to. Required with type "shared"
    serviceTokenType String
    Only used with shared connection. Type of service token to use for the connection, aside or zside
    speed String
    Connection speed - Values must be in the format '\n\nMbps' or '\n\nGpbs', for example '100Mbps' or '50Gbps'. Actual supported values will depend on the connection type and whether the connection uses VLANs or VRF.
    tags List<String>
    Tags attached to the connection
    vlans List<Number>
    Only used with shared connection. VLANs to attach. Pass one vlan for Primary/Single connection and two vlans for Redundant connection
    vrfs List<String>
    Only used with shared connection. VRFs to attach. Pass one VRF for Primary/Single connection and two VRFs for Redundant connection

    Outputs

    All input properties are implicitly available as output properties. Additionally, the Interconnection resource produces the following output properties:

    AuthorizationCode string
    Only used with Fabric Shared connection. Fabric uses this token to be able to give more detailed information about the Metal end of the network, when viewing resources from within Fabric.
    Id string
    The provider-assigned unique ID for this managed resource.
    Ports List<InterconnectionPort>
    List of connection ports - primary (ports[0]) and secondary (ports[1])
    ServiceTokens List<InterconnectionServiceToken>
    Only used with shared connection. List of service tokens required to continue the setup process with equinixfabricconnection or from the Equinix Fabric Portal
    Status string
    Status of the connection resource
    Token string
    Only used with shared connection. Fabric Token required to continue the setup process with equinixfabricconnection or from the Equinix Fabric Portal

    Deprecated: If your organization already has connection service tokens enabled, use service_tokens instead

    AuthorizationCode string
    Only used with Fabric Shared connection. Fabric uses this token to be able to give more detailed information about the Metal end of the network, when viewing resources from within Fabric.
    Id string
    The provider-assigned unique ID for this managed resource.
    Ports []InterconnectionPort
    List of connection ports - primary (ports[0]) and secondary (ports[1])
    ServiceTokens []InterconnectionServiceToken
    Only used with shared connection. List of service tokens required to continue the setup process with equinixfabricconnection or from the Equinix Fabric Portal
    Status string
    Status of the connection resource
    Token string
    Only used with shared connection. Fabric Token required to continue the setup process with equinixfabricconnection or from the Equinix Fabric Portal

    Deprecated: If your organization already has connection service tokens enabled, use service_tokens instead

    authorizationCode String
    Only used with Fabric Shared connection. Fabric uses this token to be able to give more detailed information about the Metal end of the network, when viewing resources from within Fabric.
    id String
    The provider-assigned unique ID for this managed resource.
    ports List<InterconnectionPort>
    List of connection ports - primary (ports[0]) and secondary (ports[1])
    serviceTokens List<InterconnectionServiceToken>
    Only used with shared connection. List of service tokens required to continue the setup process with equinixfabricconnection or from the Equinix Fabric Portal
    status String
    Status of the connection resource
    token String
    Only used with shared connection. Fabric Token required to continue the setup process with equinixfabricconnection or from the Equinix Fabric Portal

    Deprecated: If your organization already has connection service tokens enabled, use service_tokens instead

    authorizationCode string
    Only used with Fabric Shared connection. Fabric uses this token to be able to give more detailed information about the Metal end of the network, when viewing resources from within Fabric.
    id string
    The provider-assigned unique ID for this managed resource.
    ports InterconnectionPort[]
    List of connection ports - primary (ports[0]) and secondary (ports[1])
    serviceTokens InterconnectionServiceToken[]
    Only used with shared connection. List of service tokens required to continue the setup process with equinixfabricconnection or from the Equinix Fabric Portal
    status string
    Status of the connection resource
    token string
    Only used with shared connection. Fabric Token required to continue the setup process with equinixfabricconnection or from the Equinix Fabric Portal

    Deprecated: If your organization already has connection service tokens enabled, use service_tokens instead

    authorization_code str
    Only used with Fabric Shared connection. Fabric uses this token to be able to give more detailed information about the Metal end of the network, when viewing resources from within Fabric.
    id str
    The provider-assigned unique ID for this managed resource.
    ports Sequence[InterconnectionPort]
    List of connection ports - primary (ports[0]) and secondary (ports[1])
    service_tokens Sequence[InterconnectionServiceToken]
    Only used with shared connection. List of service tokens required to continue the setup process with equinixfabricconnection or from the Equinix Fabric Portal
    status str
    Status of the connection resource
    token str
    Only used with shared connection. Fabric Token required to continue the setup process with equinixfabricconnection or from the Equinix Fabric Portal

    Deprecated: If your organization already has connection service tokens enabled, use service_tokens instead

    authorizationCode String
    Only used with Fabric Shared connection. Fabric uses this token to be able to give more detailed information about the Metal end of the network, when viewing resources from within Fabric.
    id String
    The provider-assigned unique ID for this managed resource.
    ports List<Property Map>
    List of connection ports - primary (ports[0]) and secondary (ports[1])
    serviceTokens List<Property Map>
    Only used with shared connection. List of service tokens required to continue the setup process with equinixfabricconnection or from the Equinix Fabric Portal
    status String
    Status of the connection resource
    token String
    Only used with shared connection. Fabric Token required to continue the setup process with equinixfabricconnection or from the Equinix Fabric Portal

    Deprecated: If your organization already has connection service tokens enabled, use service_tokens instead

    Look up Existing Interconnection Resource

    Get an existing Interconnection 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?: InterconnectionState, opts?: CustomResourceOptions): Interconnection
    @staticmethod
    def get(resource_name: str,
            id: str,
            opts: Optional[ResourceOptions] = None,
            authorization_code: Optional[str] = None,
            contact_email: Optional[str] = None,
            description: Optional[str] = None,
            facility: Optional[str] = None,
            metro: Optional[str] = None,
            mode: Optional[str] = None,
            name: Optional[str] = None,
            organization_id: Optional[str] = None,
            ports: Optional[Sequence[InterconnectionPortArgs]] = None,
            project_id: Optional[str] = None,
            redundancy: Optional[str] = None,
            service_token_type: Optional[str] = None,
            service_tokens: Optional[Sequence[InterconnectionServiceTokenArgs]] = None,
            speed: Optional[str] = None,
            status: Optional[str] = None,
            tags: Optional[Sequence[str]] = None,
            token: Optional[str] = None,
            type: Optional[str] = None,
            vlans: Optional[Sequence[int]] = None,
            vrfs: Optional[Sequence[str]] = None) -> Interconnection
    func GetInterconnection(ctx *Context, name string, id IDInput, state *InterconnectionState, opts ...ResourceOption) (*Interconnection, error)
    public static Interconnection Get(string name, Input<string> id, InterconnectionState? state, CustomResourceOptions? opts = null)
    public static Interconnection get(String name, Output<String> id, InterconnectionState state, CustomResourceOptions options)
    Resource lookup is not supported in YAML
    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.
    The following state arguments are supported:
    AuthorizationCode string
    Only used with Fabric Shared connection. Fabric uses this token to be able to give more detailed information about the Metal end of the network, when viewing resources from within Fabric.
    ContactEmail string
    The preferred email used for communication and notifications about the Equinix Fabric interconnection
    Description string
    Description of the connection resource
    Facility string
    Facility where the connection will be created

    Deprecated: Use metro instead of facility. For more information, read the migration guide.

    Metro string
    Metro where the connection will be created
    Mode string
    Mode for connections in IBX facilities with the dedicated type - standard or tunnel
    Name string
    Name of the connection resource
    OrganizationId string
    ID of the organization responsible for the connection. Applicable with type "dedicated"
    Ports List<InterconnectionPort>
    List of connection ports - primary (ports[0]) and secondary (ports[1])
    ProjectId string
    ID of the project where the connection is scoped to. Required with type "shared"
    Redundancy string
    Connection redundancy - redundant or primary
    ServiceTokenType string
    Only used with shared connection. Type of service token to use for the connection, aside or zside
    ServiceTokens List<InterconnectionServiceToken>
    Only used with shared connection. List of service tokens required to continue the setup process with equinixfabricconnection or from the Equinix Fabric Portal
    Speed string
    Connection speed - Values must be in the format '\n\nMbps' or '\n\nGpbs', for example '100Mbps' or '50Gbps'. Actual supported values will depend on the connection type and whether the connection uses VLANs or VRF.
    Status string
    Status of the connection resource
    Tags List<string>
    Tags attached to the connection
    Token string
    Only used with shared connection. Fabric Token required to continue the setup process with equinixfabricconnection or from the Equinix Fabric Portal

    Deprecated: If your organization already has connection service tokens enabled, use service_tokens instead

    Type string
    Connection type - dedicated, shared or sharedportvlan
    Vlans List<int>
    Only used with shared connection. VLANs to attach. Pass one vlan for Primary/Single connection and two vlans for Redundant connection
    Vrfs List<string>
    Only used with shared connection. VRFs to attach. Pass one VRF for Primary/Single connection and two VRFs for Redundant connection
    AuthorizationCode string
    Only used with Fabric Shared connection. Fabric uses this token to be able to give more detailed information about the Metal end of the network, when viewing resources from within Fabric.
    ContactEmail string
    The preferred email used for communication and notifications about the Equinix Fabric interconnection
    Description string
    Description of the connection resource
    Facility string
    Facility where the connection will be created

    Deprecated: Use metro instead of facility. For more information, read the migration guide.

    Metro string
    Metro where the connection will be created
    Mode string
    Mode for connections in IBX facilities with the dedicated type - standard or tunnel
    Name string
    Name of the connection resource
    OrganizationId string
    ID of the organization responsible for the connection. Applicable with type "dedicated"
    Ports []InterconnectionPortArgs
    List of connection ports - primary (ports[0]) and secondary (ports[1])
    ProjectId string
    ID of the project where the connection is scoped to. Required with type "shared"
    Redundancy string
    Connection redundancy - redundant or primary
    ServiceTokenType string
    Only used with shared connection. Type of service token to use for the connection, aside or zside
    ServiceTokens []InterconnectionServiceTokenArgs
    Only used with shared connection. List of service tokens required to continue the setup process with equinixfabricconnection or from the Equinix Fabric Portal
    Speed string
    Connection speed - Values must be in the format '\n\nMbps' or '\n\nGpbs', for example '100Mbps' or '50Gbps'. Actual supported values will depend on the connection type and whether the connection uses VLANs or VRF.
    Status string
    Status of the connection resource
    Tags []string
    Tags attached to the connection
    Token string
    Only used with shared connection. Fabric Token required to continue the setup process with equinixfabricconnection or from the Equinix Fabric Portal

    Deprecated: If your organization already has connection service tokens enabled, use service_tokens instead

    Type string
    Connection type - dedicated, shared or sharedportvlan
    Vlans []int
    Only used with shared connection. VLANs to attach. Pass one vlan for Primary/Single connection and two vlans for Redundant connection
    Vrfs []string
    Only used with shared connection. VRFs to attach. Pass one VRF for Primary/Single connection and two VRFs for Redundant connection
    authorizationCode String
    Only used with Fabric Shared connection. Fabric uses this token to be able to give more detailed information about the Metal end of the network, when viewing resources from within Fabric.
    contactEmail String
    The preferred email used for communication and notifications about the Equinix Fabric interconnection
    description String
    Description of the connection resource
    facility String
    Facility where the connection will be created

    Deprecated: Use metro instead of facility. For more information, read the migration guide.

    metro String
    Metro where the connection will be created
    mode String
    Mode for connections in IBX facilities with the dedicated type - standard or tunnel
    name String
    Name of the connection resource
    organizationId String
    ID of the organization responsible for the connection. Applicable with type "dedicated"
    ports List<InterconnectionPort>
    List of connection ports - primary (ports[0]) and secondary (ports[1])
    projectId String
    ID of the project where the connection is scoped to. Required with type "shared"
    redundancy String
    Connection redundancy - redundant or primary
    serviceTokenType String
    Only used with shared connection. Type of service token to use for the connection, aside or zside
    serviceTokens List<InterconnectionServiceToken>
    Only used with shared connection. List of service tokens required to continue the setup process with equinixfabricconnection or from the Equinix Fabric Portal
    speed String
    Connection speed - Values must be in the format '\n\nMbps' or '\n\nGpbs', for example '100Mbps' or '50Gbps'. Actual supported values will depend on the connection type and whether the connection uses VLANs or VRF.
    status String
    Status of the connection resource
    tags List<String>
    Tags attached to the connection
    token String
    Only used with shared connection. Fabric Token required to continue the setup process with equinixfabricconnection or from the Equinix Fabric Portal

    Deprecated: If your organization already has connection service tokens enabled, use service_tokens instead

    type String
    Connection type - dedicated, shared or sharedportvlan
    vlans List<Integer>
    Only used with shared connection. VLANs to attach. Pass one vlan for Primary/Single connection and two vlans for Redundant connection
    vrfs List<String>
    Only used with shared connection. VRFs to attach. Pass one VRF for Primary/Single connection and two VRFs for Redundant connection
    authorizationCode string
    Only used with Fabric Shared connection. Fabric uses this token to be able to give more detailed information about the Metal end of the network, when viewing resources from within Fabric.
    contactEmail string
    The preferred email used for communication and notifications about the Equinix Fabric interconnection
    description string
    Description of the connection resource
    facility string
    Facility where the connection will be created

    Deprecated: Use metro instead of facility. For more information, read the migration guide.

    metro string
    Metro where the connection will be created
    mode string
    Mode for connections in IBX facilities with the dedicated type - standard or tunnel
    name string
    Name of the connection resource
    organizationId string
    ID of the organization responsible for the connection. Applicable with type "dedicated"
    ports InterconnectionPort[]
    List of connection ports - primary (ports[0]) and secondary (ports[1])
    projectId string
    ID of the project where the connection is scoped to. Required with type "shared"
    redundancy string
    Connection redundancy - redundant or primary
    serviceTokenType string
    Only used with shared connection. Type of service token to use for the connection, aside or zside
    serviceTokens InterconnectionServiceToken[]
    Only used with shared connection. List of service tokens required to continue the setup process with equinixfabricconnection or from the Equinix Fabric Portal
    speed string
    Connection speed - Values must be in the format '\n\nMbps' or '\n\nGpbs', for example '100Mbps' or '50Gbps'. Actual supported values will depend on the connection type and whether the connection uses VLANs or VRF.
    status string
    Status of the connection resource
    tags string[]
    Tags attached to the connection
    token string
    Only used with shared connection. Fabric Token required to continue the setup process with equinixfabricconnection or from the Equinix Fabric Portal

    Deprecated: If your organization already has connection service tokens enabled, use service_tokens instead

    type string
    Connection type - dedicated, shared or sharedportvlan
    vlans number[]
    Only used with shared connection. VLANs to attach. Pass one vlan for Primary/Single connection and two vlans for Redundant connection
    vrfs string[]
    Only used with shared connection. VRFs to attach. Pass one VRF for Primary/Single connection and two VRFs for Redundant connection
    authorization_code str
    Only used with Fabric Shared connection. Fabric uses this token to be able to give more detailed information about the Metal end of the network, when viewing resources from within Fabric.
    contact_email str
    The preferred email used for communication and notifications about the Equinix Fabric interconnection
    description str
    Description of the connection resource
    facility str
    Facility where the connection will be created

    Deprecated: Use metro instead of facility. For more information, read the migration guide.

    metro str
    Metro where the connection will be created
    mode str
    Mode for connections in IBX facilities with the dedicated type - standard or tunnel
    name str
    Name of the connection resource
    organization_id str
    ID of the organization responsible for the connection. Applicable with type "dedicated"
    ports Sequence[InterconnectionPortArgs]
    List of connection ports - primary (ports[0]) and secondary (ports[1])
    project_id str
    ID of the project where the connection is scoped to. Required with type "shared"
    redundancy str
    Connection redundancy - redundant or primary
    service_token_type str
    Only used with shared connection. Type of service token to use for the connection, aside or zside
    service_tokens Sequence[InterconnectionServiceTokenArgs]
    Only used with shared connection. List of service tokens required to continue the setup process with equinixfabricconnection or from the Equinix Fabric Portal
    speed str
    Connection speed - Values must be in the format '\n\nMbps' or '\n\nGpbs', for example '100Mbps' or '50Gbps'. Actual supported values will depend on the connection type and whether the connection uses VLANs or VRF.
    status str
    Status of the connection resource
    tags Sequence[str]
    Tags attached to the connection
    token str
    Only used with shared connection. Fabric Token required to continue the setup process with equinixfabricconnection or from the Equinix Fabric Portal

    Deprecated: If your organization already has connection service tokens enabled, use service_tokens instead

    type str
    Connection type - dedicated, shared or sharedportvlan
    vlans Sequence[int]
    Only used with shared connection. VLANs to attach. Pass one vlan for Primary/Single connection and two vlans for Redundant connection
    vrfs Sequence[str]
    Only used with shared connection. VRFs to attach. Pass one VRF for Primary/Single connection and two VRFs for Redundant connection
    authorizationCode String
    Only used with Fabric Shared connection. Fabric uses this token to be able to give more detailed information about the Metal end of the network, when viewing resources from within Fabric.
    contactEmail String
    The preferred email used for communication and notifications about the Equinix Fabric interconnection
    description String
    Description of the connection resource
    facility String
    Facility where the connection will be created

    Deprecated: Use metro instead of facility. For more information, read the migration guide.

    metro String
    Metro where the connection will be created
    mode String
    Mode for connections in IBX facilities with the dedicated type - standard or tunnel
    name String
    Name of the connection resource
    organizationId String
    ID of the organization responsible for the connection. Applicable with type "dedicated"
    ports List<Property Map>
    List of connection ports - primary (ports[0]) and secondary (ports[1])
    projectId String
    ID of the project where the connection is scoped to. Required with type "shared"
    redundancy String
    Connection redundancy - redundant or primary
    serviceTokenType String
    Only used with shared connection. Type of service token to use for the connection, aside or zside
    serviceTokens List<Property Map>
    Only used with shared connection. List of service tokens required to continue the setup process with equinixfabricconnection or from the Equinix Fabric Portal
    speed String
    Connection speed - Values must be in the format '\n\nMbps' or '\n\nGpbs', for example '100Mbps' or '50Gbps'. Actual supported values will depend on the connection type and whether the connection uses VLANs or VRF.
    status String
    Status of the connection resource
    tags List<String>
    Tags attached to the connection
    token String
    Only used with shared connection. Fabric Token required to continue the setup process with equinixfabricconnection or from the Equinix Fabric Portal

    Deprecated: If your organization already has connection service tokens enabled, use service_tokens instead

    type String
    Connection type - dedicated, shared or sharedportvlan
    vlans List<Number>
    Only used with shared connection. VLANs to attach. Pass one vlan for Primary/Single connection and two vlans for Redundant connection
    vrfs List<String>
    Only used with shared connection. VRFs to attach. Pass one VRF for Primary/Single connection and two VRFs for Redundant connection

    Supporting Types

    InterconnectionPort, InterconnectionPortArgs

    Id string
    LinkStatus string
    Name string
    Role string
    Speed int
    Status string
    VirtualCircuitIds List<string>
    Id string
    LinkStatus string
    Name string
    Role string
    Speed int
    Status string
    VirtualCircuitIds []string
    id String
    linkStatus String
    name String
    role String
    speed Integer
    status String
    virtualCircuitIds List<String>
    id string
    linkStatus string
    name string
    role string
    speed number
    status string
    virtualCircuitIds string[]
    id str
    link_status str
    name str
    role str
    speed int
    status str
    virtual_circuit_ids Sequence[str]
    id String
    linkStatus String
    name String
    role String
    speed Number
    status String
    virtualCircuitIds List<String>

    InterconnectionServiceToken, InterconnectionServiceTokenArgs

    ExpiresAt string
    Id string
    MaxAllowedSpeed string
    Role string
    State string
    Type string
    ExpiresAt string
    Id string
    MaxAllowedSpeed string
    Role string
    State string
    Type string
    expiresAt String
    id String
    maxAllowedSpeed String
    role String
    state String
    type String
    expiresAt string
    id string
    maxAllowedSpeed string
    role string
    state string
    type string
    expiresAt String
    id String
    maxAllowedSpeed String
    role String
    state String
    type String

    Package Details

    Repository
    equinix equinix/pulumi-equinix
    License
    Apache-2.0
    Notes
    This Pulumi package is based on the equinix Terraform Provider.
    equinix logo
    Equinix v0.19.0 published on Thursday, Oct 24, 2024 by Equinix