import * as pulumi from "@pulumi/pulumi";
import * as inputs from "../types/input";
import * as outputs from "../types/output";
import * as enums from "../types/enums";
/**
 * ## Example Usage
 * ### example fcr to azure
 * ```typescript
 * import * as pulumi from "@pulumi/pulumi";
 * import * as equinix from "@equinix-labs/pulumi-equinix";
 *
 * const fcr2Azure = new equinix.fabric.Connection("fcr2azure", {
 *     name: "ConnectionName",
 *     type: "IP_VC",
 *     notifications: [{
 *         type: equinix.fabric.NotificationsType.All,
 *         emails: [
 *             "example@equinix.com",
 *             "test1@equinix.com",
 *         ],
 *     }],
 *     bandwidth: 50,
 *     order: {
 *         purchaseOrderNumber: "1-323292",
 *     },
 *     aSide: {
 *         accessPoint: {
 *             type: "CLOUD_ROUTER",
 *             router: {
 *                 uuid: "<cloud_router_uuid>",
 *             },
 *         },
 *     },
 *     zSide: {
 *         accessPoint: {
 *             type: equinix.fabric.AccessPointType.SP,
 *             authenticationKey: "<Azure_ExpressRouter_Auth_Key>",
 *             peeringType: equinix.fabric.AccessPointPeeringType.Private,
 *             profile: {
 *                 type: equinix.fabric.ProfileType.L2Profile,
 *                 uuid: "<Azure_Service_Profile_UUID>",
 *             },
 *             location: {
 *                 metroCode: equinix.index.Metro.SiliconValley,
 *             },
 *         },
 *     },
 * });
 * ```
 * ### example fcr to metal
 * ```typescript
 * import * as pulumi from "@pulumi/pulumi";
 * import * as equinix from "@equinix-labs/pulumi-equinix";
 *
 * const fcr2Metal = new equinix.fabric.Connection("fcr2metal", {
 *     name: "ConnectionName",
 *     type: "IP_VC",
 *     notifications: [{
 *         type: equinix.fabric.NotificationsType.All,
 *         emails: [
 *             "example@equinix.com",
 *             "test1@equinix.com",
 *         ],
 *     }],
 *     bandwidth: 50,
 *     order: {
 *         purchaseOrderNumber: "1-323292",
 *     },
 *     aSide: {
 *         accessPoint: {
 *             type: "CLOUD_ROUTER",
 *             router: {
 *                 uuid: "<cloud_router_uuid>",
 *             },
 *         },
 *     },
 *     zSide: {
 *         accessPoint: {
 *             type: "METAL_NETWORK",
 *             authenticationKey: "<metal_authorization_code>",
 *         },
 *     },
 * });
 * ```
 * ### example fcr to network
 * ```typescript
 * import * as pulumi from "@pulumi/pulumi";
 * import * as equinix from "@equinix-labs/pulumi-equinix";
 *
 * const fcr2Network = new equinix.fabric.Connection("fcr2network", {
 *     name: "ConnectionName",
 *     type: "IPWAN_VC",
 *     notifications: [{
 *         type: equinix.fabric.NotificationsType.All,
 *         emails: [
 *             "example@equinix.com",
 *             "test1@equinix.com",
 *         ],
 *     }],
 *     bandwidth: 50,
 *     order: {
 *         purchaseOrderNumber: "1-323292",
 *     },
 *     aSide: {
 *         accessPoint: {
 *             type: "CLOUD_ROUTER",
 *             router: {
 *                 uuid: "<cloud_router_uuid>",
 *             },
 *         },
 *     },
 *     zSide: {
 *         accessPoint: {
 *             type: equinix.fabric.AccessPointType.Network,
 *             network: {
 *                 uuid: "<network_uuid>",
 *             },
 *         },
 *     },
 * });
 * ```
 * ### example fcr to port
 * ```typescript
 * import * as pulumi from "@pulumi/pulumi";
 * import * as equinix from "@equinix-labs/pulumi-equinix";
 *
 * const fcr2Port = new equinix.fabric.Connection("fcr2port", {
 *     name: "ConnectionName",
 *     type: "IP_VC",
 *     notifications: [{
 *         type: equinix.fabric.NotificationsType.All,
 *         emails: [
 *             "example@equinix.com",
 *             "test1@equinix.com",
 *         ],
 *     }],
 *     bandwidth: 50,
 *     order: {
 *         purchaseOrderNumber: "1-323292",
 *     },
 *     aSide: {
 *         accessPoint: {
 *             type: "CLOUD_ROUTER",
 *             router: {
 *                 uuid: "<cloud_router_uuid>",
 *             },
 *         },
 *     },
 *     zSide: {
 *         accessPoint: {
 *             type: equinix.fabric.AccessPointType.Colo,
 *             port: {
 *                 uuid: "<port_uuid>",
 *             },
 *             linkProtocol: {
 *                 type: equinix.fabric.AccessPointLinkProtocolType.Dot1q,
 *                 vlanTag: 2711,
 *             },
 *             location: {
 *                 metroCode: equinix.index.Metro.SiliconValley,
 *             },
 *         },
 *     },
 * });
 * ```
 * ### example metal to aws
 * ```typescript
 * import * as pulumi from "@pulumi/pulumi";
 * import * as equinix from "@equinix-labs/pulumi-equinix";
 *
 * const metal2Aws = new equinix.fabric.Connection("metal2aws", {
 *     name: "ConnectionName",
 *     type: "EVPLAN_VC",
 *     notifications: [{
 *         type: equinix.fabric.NotificationsType.All,
 *         emails: [
 *             "example@equinix.com",
 *             "test1@equinix.com",
 *         ],
 *     }],
 *     bandwidth: 50,
 *     order: {
 *         purchaseOrderNumber: "1-323292",
 *     },
 *     aSide: {
 *         accessPoint: {
 *             type: "METAL_NETWORK",
 *             authenticationKey: "<metal_authorization_code>",
 *         },
 *     },
 *     zSide: {
 *         accessPoint: {
 *             type: equinix.fabric.AccessPointType.SP,
 *             authenticationKey: "<aws_account_id>",
 *             sellerRegion: "us-west-1",
 *             profile: {
 *                 type: equinix.fabric.ProfileType.L2Profile,
 *                 uuid: "<service_profile_uuid>",
 *             },
 *             location: {
 *                 metroCode: equinix.index.Metro.SiliconValley,
 *             },
 *         },
 *     },
 * });
 * ```
 * ### example port to alibaba
 * ```typescript
 * import * as pulumi from "@pulumi/pulumi";
 * import * as equinix from "@equinix-labs/pulumi-equinix";
 *
 * const port2Alibaba = new equinix.fabric.Connection("port2alibaba", {
 *     name: "ConnectionName",
 *     type: equinix.fabric.ConnectionType.EVPL,
 *     notifications: [{
 *         type: equinix.fabric.NotificationsType.All,
 *         emails: [
 *             "example@equinix.com",
 *             "test1@equinix.com",
 *         ],
 *     }],
 *     bandwidth: 50,
 *     redundancy: {
 *         priority: "PRIMARY",
 *     },
 *     order: {
 *         purchaseOrderNumber: "1-323929",
 *     },
 *     aSide: {
 *         accessPoint: {
 *             type: equinix.fabric.AccessPointType.Colo,
 *             port: {
 *                 uuid: "<aside_port_uuid>",
 *             },
 *             linkProtocol: {
 *                 type: equinix.fabric.AccessPointLinkProtocolType.Dot1q,
 *                 vlanTag: 2019,
 *             },
 *         },
 *     },
 *     zSide: {
 *         accessPoint: {
 *             type: equinix.fabric.AccessPointType.SP,
 *             authenticationKey: "<alibaba_account_id>",
 *             sellerRegion: "us-west-1",
 *             profile: {
 *                 type: equinix.fabric.ProfileType.L2Profile,
 *                 uuid: "<service_profile_uuid>",
 *             },
 *             location: {
 *                 metroCode: equinix.index.Metro.SiliconValley,
 *             },
 *         },
 *     },
 * });
 * ```
 * ### example port to aws
 * ```typescript
 * import * as pulumi from "@pulumi/pulumi";
 * import * as equinix from "@equinix-labs/pulumi-equinix";
 *
 * const port2Aws = new equinix.fabric.Connection("port2aws", {
 *     name: "ConnectionName",
 *     type: equinix.fabric.ConnectionType.EVPL,
 *     notifications: [{
 *         type: equinix.fabric.NotificationsType.All,
 *         emails: [
 *             "example@equinix.com",
 *             "test1@equinix.com",
 *         ],
 *     }],
 *     bandwidth: 50,
 *     redundancy: {
 *         priority: "PRIMARY",
 *     },
 *     order: {
 *         purchaseOrderNumber: "1-323929",
 *     },
 *     aSide: {
 *         accessPoint: {
 *             type: equinix.fabric.AccessPointType.Colo,
 *             port: {
 *                 uuid: "<aside_port_uuid>",
 *             },
 *             linkProtocol: {
 *                 type: equinix.fabric.AccessPointLinkProtocolType.QinQ,
 *                 vlanSTag: 2019,
 *                 vlanCTag: 2112,
 *             },
 *         },
 *     },
 *     zSide: {
 *         accessPoint: {
 *             type: equinix.fabric.AccessPointType.SP,
 *             authenticationKey: "<aws_account_id>",
 *             sellerRegion: "us-west-1",
 *             profile: {
 *                 type: equinix.fabric.ProfileType.L2Profile,
 *                 uuid: "<service_profile_uuid>",
 *             },
 *             location: {
 *                 metroCode: equinix.index.Metro.SiliconValley,
 *             },
 *         },
 *     },
 *     additionalInfo: [
 *         {
 *             key: "accessKey",
 *             value: "<aws_access_key>",
 *         },
 *         {
 *             key: "secretKey",
 *             value: "<aws_secret_key>",
 *         },
 *     ],
 * });
 * ```
 * ### example port to network eplan
 * ```typescript
 * import * as pulumi from "@pulumi/pulumi";
 * import * as equinix from "@equinix-labs/pulumi-equinix";
 *
 * const eplan = new equinix.fabric.Connection("eplan", {
 *     name: "ConnectionName",
 *     type: "EPLAN_VC",
 *     notifications: [{
 *         type: equinix.fabric.NotificationsType.All,
 *         emails: [
 *             "example@equinix.com",
 *             "test1@equinix.com",
 *         ],
 *     }],
 *     bandwidth: 50,
 *     order: {
 *         purchaseOrderNumber: "1-323292",
 *     },
 *     aSide: {
 *         accessPoint: {
 *             type: equinix.fabric.AccessPointType.Colo,
 *             port: {
 *                 uuid: "<aside_port_uuid>",
 *             },
 *         },
 *     },
 *     zSide: {
 *         accessPoint: {
 *             type: equinix.fabric.AccessPointType.Network,
 *             network: {
 *                 uuid: "<network_uuid>",
 *             },
 *         },
 *     },
 * });
 * ```
 * ### example port to network evplan
 * ```typescript
 * import * as pulumi from "@pulumi/pulumi";
 * import * as equinix from "@equinix-labs/pulumi-equinix";
 *
 * const evplan = new equinix.fabric.Connection("evplan", {
 *     name: "ConnectionName",
 *     type: "EVPLAN_VC",
 *     notifications: [{
 *         type: equinix.fabric.NotificationsType.All,
 *         emails: [
 *             "example@equinix.com",
 *             "test1@equinix.com",
 *         ],
 *     }],
 *     bandwidth: 50,
 *     order: {
 *         purchaseOrderNumber: "1-323292",
 *     },
 *     aSide: {
 *         accessPoint: {
 *             type: equinix.fabric.AccessPointType.Colo,
 *             port: {
 *                 uuid: "<aside_port_uuid>",
 *             },
 *             linkProtocol: {
 *                 type: equinix.fabric.AccessPointLinkProtocolType.Dot1q,
 *                 vlanSTag: 1976,
 *             },
 *         },
 *     },
 *     zSide: {
 *         accessPoint: {
 *             type: equinix.fabric.AccessPointType.Network,
 *             network: {
 *                 uuid: "<network_uuid>",
 *             },
 *         },
 *     },
 * });
 * ```
 * ### example port to port
 * ```typescript
 * import * as pulumi from "@pulumi/pulumi";
 * import * as equinix from "@equinix-labs/pulumi-equinix";
 *
 * const port2Port = new equinix.fabric.Connection("port2port", {
 *     name: "ConnectionName",
 *     type: equinix.fabric.ConnectionType.EVPL,
 *     notifications: [{
 *         type: equinix.fabric.NotificationsType.All,
 *         emails: [
 *             "example@equinix.com",
 *             "test1@equinix.com",
 *         ],
 *     }],
 *     bandwidth: 50,
 *     order: {
 *         purchaseOrderNumber: "1-323292",
 *     },
 *     aSide: {
 *         accessPoint: {
 *             type: equinix.fabric.AccessPointType.Colo,
 *             port: {
 *                 uuid: "<aside_port_uuid>",
 *             },
 *             linkProtocol: {
 *                 type: equinix.fabric.AccessPointLinkProtocolType.QinQ,
 *                 vlanSTag: 1976,
 *             },
 *         },
 *     },
 *     zSide: {
 *         accessPoint: {
 *             type: equinix.fabric.AccessPointType.Colo,
 *             port: {
 *                 uuid: "<zside_port_uuid>",
 *             },
 *             linkProtocol: {
 *                 type: equinix.fabric.AccessPointLinkProtocolType.QinQ,
 *                 vlanSTag: 3711,
 *             },
 *             location: {
 *                 metroCode: equinix.index.Metro.SiliconValley,
 *             },
 *         },
 *     },
 * });
 * ```
 * ### example port to port access epl
 * ```typescript
 * import * as pulumi from "@pulumi/pulumi";
 * import * as equinix from "@equinix-labs/pulumi-equinix";
 *
 * const accessEplVc = new equinix.fabric.Connection("accessEplVc", {
 *     name: "ConnectionName",
 *     type: equinix.fabric.ConnectionType.AccessEPL,
 *     notifications: [{
 *         type: equinix.fabric.NotificationsType.All,
 *         emails: [
 *             "example@equinix.com",
 *             "test1@equinix.com",
 *         ],
 *     }],
 *     bandwidth: 50,
 *     order: {
 *         purchaseOrderNumber: "1-323292",
 *     },
 *     aSide: {
 *         accessPoint: {
 *             type: equinix.fabric.AccessPointType.Colo,
 *             port: {
 *                 uuid: "<aside_port_uuid>",
 *             },
 *             linkProtocol: {
 *                 type: equinix.fabric.AccessPointLinkProtocolType.QinQ,
 *                 vlanSTag: 1976,
 *             },
 *         },
 *     },
 *     zSide: {
 *         accessPoint: {
 *             type: equinix.fabric.AccessPointType.Colo,
 *             port: {
 *                 uuid: "<zside_port_uuid>",
 *             },
 *             location: {
 *                 metroCode: equinix.index.Metro.SiliconValley,
 *             },
 *         },
 *     },
 * });
 * ```
 * ### example port to port epl
 * ```typescript
 * import * as pulumi from "@pulumi/pulumi";
 * import * as equinix from "@equinix-labs/pulumi-equinix";
 *
 * const epl = new equinix.fabric.Connection("epl", {
 *     name: "ConnectionName",
 *     type: equinix.fabric.ConnectionType.EPL,
 *     notifications: [{
 *         type: equinix.fabric.NotificationsType.All,
 *         emails: [
 *             "example@equinix.com",
 *             "test1@equinix.com",
 *         ],
 *     }],
 *     bandwidth: 50,
 *     order: {
 *         purchaseOrderNumber: "1-323292",
 *     },
 *     aSide: {
 *         accessPoint: {
 *             type: equinix.fabric.AccessPointType.Colo,
 *             port: {
 *                 uuid: "<aside_port_uuid>",
 *             },
 *         },
 *     },
 *     zSide: {
 *         accessPoint: {
 *             type: equinix.fabric.AccessPointType.Colo,
 *             port: {
 *                 uuid: "<zside_port_uuid>",
 *             },
 *             location: {
 *                 metroCode: equinix.index.Metro.SiliconValley,
 *             },
 *         },
 *     },
 * });
 * ```
 * ### example port to vd
 * ```typescript
 * import * as pulumi from "@pulumi/pulumi";
 * import * as equinix from "@equinix-labs/pulumi-equinix";
 *
 * const vd2Port = new equinix.fabric.Connection("vd2port", {
 *     name: "ConnectionName",
 *     type: equinix.fabric.ConnectionType.EVPL,
 *     notifications: [{
 *         type: equinix.fabric.NotificationsType.All,
 *         emails: [
 *             "example@equinix.com",
 *             "test1@equinix.com",
 *         ],
 *     }],
 *     bandwidth: 50,
 *     order: {
 *         purchaseOrderNumber: "1-323292",
 *     },
 *     aSide: {
 *         accessPoint: {
 *             type: equinix.fabric.AccessPointType.VD,
 *             virtualDevice: {
 *                 type: "EDGE",
 *                 uuid: "<device_uuid>",
 *             },
 *             "interface": {
 *                 type: "NETWORK",
 *                 id: 7,
 *             },
 *         },
 *     },
 *     zSide: {
 *         accessPoint: {
 *             type: equinix.fabric.AccessPointType.Colo,
 *             port: {
 *                 uuid: "<zside_port_uuid>",
 *             },
 *             linkProtocol: {
 *                 type: equinix.fabric.AccessPointLinkProtocolType.Dot1q,
 *                 vlanSTag: 3711,
 *             },
 *             location: {
 *                 metroCode: equinix.index.Metro.SiliconValley,
 *             },
 *         },
 *     },
 * });
 * ```
 * ### example token to aws
 * ```typescript
 * import * as pulumi from "@pulumi/pulumi";
 * import * as equinix from "@equinix-labs/pulumi-equinix";
 *
 * const token2Aws = new equinix.fabric.Connection("token2aws", {
 *     name: "ConnectionName",
 *     type: equinix.fabric.ConnectionType.EVPL,
 *     notifications: [{
 *         type: equinix.fabric.NotificationsType.All,
 *         emails: [
 *             "example@equinix.com",
 *             "test1@equinix.com",
 *         ],
 *     }],
 *     bandwidth: 50,
 *     order: {
 *         purchaseOrderNumber: "1-323292",
 *     },
 *     aSide: {
 *         serviceToken: {
 *             uuid: "<service_token_uuid>",
 *         },
 *     },
 *     zSide: {
 *         accessPoint: {
 *             type: equinix.fabric.AccessPointType.SP,
 *             authenticationKey: "<aws_account_id>",
 *             sellerRegion: "us-west-1",
 *             profile: {
 *                 type: equinix.fabric.ProfileType.L2Profile,
 *                 uuid: "<service_profile_uuid>",
 *             },
 *             location: {
 *                 metroCode: equinix.index.Metro.SiliconValley,
 *             },
 *         },
 *     },
 * });
 * ```
 * ### example vd to azure
 * ```typescript
 * import * as pulumi from "@pulumi/pulumi";
 * import * as equinix from "@equinix-labs/pulumi-equinix";
 *
 * const vd2Azure = new equinix.fabric.Connection("vd2azure", {
 *     name: "ConnectionName",
 *     type: equinix.fabric.ConnectionType.EVPL,
 *     notifications: [{
 *         type: equinix.fabric.NotificationsType.All,
 *         emails: [
 *             "example@equinix.com",
 *             "test1@equinix.com",
 *         ],
 *     }],
 *     bandwidth: 50,
 *     order: {
 *         purchaseOrderNumber: "1-323292",
 *     },
 *     aSide: {
 *         accessPoint: {
 *             type: equinix.fabric.AccessPointType.VD,
 *             virtualDevice: {
 *                 type: "EDGE",
 *                 uuid: "<device_uuid>",
 *             },
 *             "interface": {
 *                 type: "CLOUD",
 *                 id: 7,
 *             },
 *         },
 *     },
 *     zSide: {
 *         accessPoint: {
 *             type: equinix.fabric.AccessPointType.SP,
 *             authenticationKey: "<Azure_ExpressRouter_Auth_Key>",
 *             peeringType: equinix.fabric.AccessPointPeeringType.Private,
 *             profile: {
 *                 type: equinix.fabric.ProfileType.L2Profile,
 *                 uuid: "<Azure_Service_Profile_UUID>",
 *             },
 *             location: {
 *                 metroCode: equinix.index.Metro.SiliconValley,
 *             },
 *         },
 *     },
 * });
 * ```
 * ### example vd to azure redundant
 * ```typescript
 * import * as pulumi from "@pulumi/pulumi";
 * import * as equinix from "@equinix-labs/pulumi-equinix";
 *
 * const vd2AzurePrimary = new equinix.fabric.Connection("vd2azurePrimary", {
 *     name: "ConnectionName",
 *     type: equinix.fabric.ConnectionType.EVPL,
 *     redundancy: {
 *         priority: "PRIMARY",
 *     },
 *     notifications: [{
 *         type: equinix.fabric.NotificationsType.All,
 *         emails: [
 *             "example@equinix.com",
 *             "test1@equinix.com",
 *         ],
 *     }],
 *     bandwidth: 50,
 *     order: {
 *         purchaseOrderNumber: "1-323292",
 *     },
 *     aSide: {
 *         accessPoint: {
 *             type: equinix.fabric.AccessPointType.VD,
 *             virtualDevice: {
 *                 type: "EDGE",
 *                 uuid: "<device_uuid>",
 *             },
 *             "interface": {
 *                 type: "CLOUD",
 *                 id: 7,
 *             },
 *         },
 *     },
 *     zSide: {
 *         accessPoint: {
 *             type: equinix.fabric.AccessPointType.SP,
 *             authenticationKey: "<Azure_ExpressRouter_Auth_Key>",
 *             peeringType: equinix.fabric.AccessPointPeeringType.Private,
 *             profile: {
 *                 type: equinix.fabric.ProfileType.L2Profile,
 *                 uuid: "<Azure_Service_Profile_UUID>",
 *             },
 *             location: {
 *                 metroCode: equinix.index.Metro.SiliconValley,
 *             },
 *         },
 *     },
 * });
 * const vd2AzureSecondary = new equinix.fabric.Connection("vd2azureSecondary", {
 *     name: "ConnectionName",
 *     type: equinix.fabric.ConnectionType.EVPL,
 *     redundancy: {
 *         priority: "SECONDARY",
 *         group: vd2AzurePrimary.redundancy.apply(redundancy => redundancy?.group),
 *     },
 *     notifications: [{
 *         type: equinix.fabric.NotificationsType.All,
 *         emails: [
 *             "example@equinix.com",
 *             "test1@equinix.com",
 *         ],
 *     }],
 *     bandwidth: 50,
 *     order: {
 *         purchaseOrderNumber: "1-323292",
 *     },
 *     aSide: {
 *         accessPoint: {
 *             type: equinix.fabric.AccessPointType.VD,
 *             virtualDevice: {
 *                 type: "EDGE",
 *                 uuid: "<device_uuid>",
 *             },
 *             "interface": {
 *                 type: "CLOUD",
 *                 id: 5,
 *             },
 *         },
 *     },
 *     zSide: {
 *         accessPoint: {
 *             type: equinix.fabric.AccessPointType.SP,
 *             authenticationKey: "<Azure_ExpressRouter_Auth_Key>",
 *             peeringType: equinix.fabric.AccessPointPeeringType.Private,
 *             profile: {
 *                 type: equinix.fabric.ProfileType.L2Profile,
 *                 uuid: "<Azure_Service_Profile_UUID>",
 *             },
 *             location: {
 *                 metroCode: equinix.index.Metro.SiliconValley,
 *             },
 *         },
 *     },
 * });
 * ```
 * ### example vd to network
 * ```typescript
 * import * as pulumi from "@pulumi/pulumi";
 * import * as equinix from "@equinix-labs/pulumi-equinix";
 *
 * const vd2Network = new equinix.fabric.Connection("vd2network", {
 *     name: "ConnectionName",
 *     type: "EVPLAN_VC",
 *     notifications: [{
 *         type: equinix.fabric.NotificationsType.All,
 *         emails: [
 *             "example@equinix.com",
 *             "test1@equinix.com",
 *         ],
 *     }],
 *     bandwidth: 50,
 *     order: {
 *         purchaseOrderNumber: "1-323292",
 *     },
 *     aSide: {
 *         accessPoint: {
 *             type: equinix.fabric.AccessPointType.VD,
 *             virtualDevice: {
 *                 type: "EDGE",
 *                 uuid: "<device_uuid>",
 *             },
 *             "interface": {
 *                 type: "CLOUD",
 *                 id: 7,
 *             },
 *         },
 *     },
 *     zSide: {
 *         accessPoint: {
 *             type: equinix.fabric.AccessPointType.Network,
 *             network: {
 *                 uuid: "<network_uuid>",
 *             },
 *         },
 *     },
 * });
 * ```
 * ### example vd to token
 * ```typescript
 * import * as pulumi from "@pulumi/pulumi";
 * import * as equinix from "@equinix-labs/pulumi-equinix";
 *
 * const vd2Token = new equinix.fabric.Connection("vd2token", {
 *     name: "ConnectionName",
 *     type: equinix.fabric.ConnectionType.EVPL,
 *     notifications: [{
 *         type: equinix.fabric.NotificationsType.All,
 *         emails: [
 *             "example@equinix.com",
 *             "test1@equinix.com",
 *         ],
 *     }],
 *     bandwidth: 50,
 *     order: {
 *         purchaseOrderNumber: "1-323292",
 *     },
 *     aSide: {
 *         accessPoint: {
 *             type: equinix.fabric.AccessPointType.VD,
 *             virtualDevice: {
 *                 type: "EDGE",
 *                 uuid: "<device_uuid>",
 *             },
 *             "interface": {
 *                 type: "NETWORK",
 *                 id: 7,
 *             },
 *         },
 *     },
 *     zSide: {
 *         serviceToken: {
 *             uuid: "<service_token_uuid>",
 *         },
 *     },
 * });
 * ```
 */
export declare class Connection extends pulumi.CustomResource {
    /**
     * Get an existing Connection resource's state with the given name, ID, and optional extra
     * properties used to qualify the lookup.
     *
     * @param name The _unique_ name of the resulting resource.
     * @param id The _unique_ provider ID of the resource to lookup.
     * @param state Any extra arguments used during the lookup.
     * @param opts Optional settings to control the behavior of the CustomResource.
     */
    static get(name: string, id: pulumi.Input<pulumi.ID>, state?: ConnectionState, opts?: pulumi.CustomResourceOptions): Connection;
    /**
     * Returns true if the given object is an instance of Connection.  This is designed to work even
     * when multiple copies of the Pulumi SDK have been loaded into the same process.
     */
    static isInstance(obj: any): obj is Connection;
    /**
     * Requester or Customer side connection configuration object of the multi-segment connection
     */
    readonly aSide: pulumi.Output<outputs.fabric.ConnectionASide>;
    /**
     * Customer account information that is associated with this connection
     */
    readonly account: pulumi.Output<outputs.fabric.ConnectionAccount>;
    /**
     * Connection additional information
     */
    readonly additionalInfo: pulumi.Output<{
        [key: string]: string;
    }[] | undefined>;
    /**
     * Connection bandwidth in Mbps
     */
    readonly bandwidth: pulumi.Output<number>;
    /**
     * Captures connection lifecycle change information
     */
    readonly changeLog: pulumi.Output<outputs.fabric.ConnectionChangeLog>;
    /**
     * Customer-provided connection description
     */
    readonly description: pulumi.Output<string | undefined>;
    /**
     * Connection directionality from the requester point of view
     */
    readonly direction: pulumi.Output<string>;
    /**
     * Connection URI information
     */
    readonly href: pulumi.Output<string>;
    /**
     * Connection property derived from access point locations
     */
    readonly isRemote: pulumi.Output<boolean>;
    /**
     * Connection name. An alpha-numeric 24 characters string which can include only hyphens and underscores
     */
    readonly name: pulumi.Output<string>;
    /**
     * Preferences for notifications on connection configuration or status changes
     */
    readonly notifications: pulumi.Output<outputs.fabric.ConnectionNotification[]>;
    /**
     * Connection type-specific operational data
     */
    readonly operation: pulumi.Output<outputs.fabric.ConnectionOperation>;
    /**
     * Order details
     */
    readonly order: pulumi.Output<outputs.fabric.ConnectionOrder>;
    /**
     * Project information
     */
    readonly project: pulumi.Output<outputs.fabric.ConnectionProject>;
    /**
     * Connection Redundancy Configuration
     */
    readonly redundancy: pulumi.Output<outputs.fabric.ConnectionRedundancy | undefined>;
    /**
     * Connection overall state
     */
    readonly state: pulumi.Output<string>;
    /**
     * Defines the connection type like EVPL*VC, EPL*VC, IPWAN*VC, IP*VC, ACCESS*EPL*VC, EVPLAN*VC, EPLAN*VC, EIA*VC, IA*VC, EC_VC
     */
    readonly type: pulumi.Output<string>;
    /**
     * Equinix-assigned connection identifier
     */
    readonly uuid: pulumi.Output<string>;
    /**
     * Destination or Provider side connection configuration object of the multi-segment connection
     */
    readonly zSide: pulumi.Output<outputs.fabric.ConnectionZSide>;
    /**
     * Create a Connection resource with the given unique name, arguments, and options.
     *
     * @param name The _unique_ name of the resource.
     * @param args The arguments to use to populate this resource's properties.
     * @param opts A bag of options that control this resource's behavior.
     */
    constructor(name: string, args: ConnectionArgs, opts?: pulumi.CustomResourceOptions);
}
/**
 * Input properties used for looking up and filtering Connection resources.
 */
export interface ConnectionState {
    /**
     * Requester or Customer side connection configuration object of the multi-segment connection
     */
    aSide?: pulumi.Input<inputs.fabric.ConnectionASide>;
    /**
     * Customer account information that is associated with this connection
     */
    account?: pulumi.Input<inputs.fabric.ConnectionAccount>;
    /**
     * Connection additional information
     */
    additionalInfo?: pulumi.Input<pulumi.Input<{
        [key: string]: pulumi.Input<string>;
    }>[]>;
    /**
     * Connection bandwidth in Mbps
     */
    bandwidth?: pulumi.Input<number>;
    /**
     * Captures connection lifecycle change information
     */
    changeLog?: pulumi.Input<inputs.fabric.ConnectionChangeLog>;
    /**
     * Customer-provided connection description
     */
    description?: pulumi.Input<string>;
    /**
     * Connection directionality from the requester point of view
     */
    direction?: pulumi.Input<string>;
    /**
     * Connection URI information
     */
    href?: pulumi.Input<string>;
    /**
     * Connection property derived from access point locations
     */
    isRemote?: pulumi.Input<boolean>;
    /**
     * Connection name. An alpha-numeric 24 characters string which can include only hyphens and underscores
     */
    name?: pulumi.Input<string>;
    /**
     * Preferences for notifications on connection configuration or status changes
     */
    notifications?: pulumi.Input<pulumi.Input<inputs.fabric.ConnectionNotification>[]>;
    /**
     * Connection type-specific operational data
     */
    operation?: pulumi.Input<inputs.fabric.ConnectionOperation>;
    /**
     * Order details
     */
    order?: pulumi.Input<inputs.fabric.ConnectionOrder>;
    /**
     * Project information
     */
    project?: pulumi.Input<inputs.fabric.ConnectionProject>;
    /**
     * Connection Redundancy Configuration
     */
    redundancy?: pulumi.Input<inputs.fabric.ConnectionRedundancy>;
    /**
     * Connection overall state
     */
    state?: pulumi.Input<string>;
    /**
     * Defines the connection type like EVPL*VC, EPL*VC, IPWAN*VC, IP*VC, ACCESS*EPL*VC, EVPLAN*VC, EPLAN*VC, EIA*VC, IA*VC, EC_VC
     */
    type?: pulumi.Input<string | enums.fabric.ConnectionType>;
    /**
     * Equinix-assigned connection identifier
     */
    uuid?: pulumi.Input<string>;
    /**
     * Destination or Provider side connection configuration object of the multi-segment connection
     */
    zSide?: pulumi.Input<inputs.fabric.ConnectionZSide>;
}
/**
 * The set of arguments for constructing a Connection resource.
 */
export interface ConnectionArgs {
    /**
     * Requester or Customer side connection configuration object of the multi-segment connection
     */
    aSide: pulumi.Input<inputs.fabric.ConnectionASide>;
    /**
     * Connection additional information
     */
    additionalInfo?: pulumi.Input<pulumi.Input<{
        [key: string]: pulumi.Input<string>;
    }>[]>;
    /**
     * Connection bandwidth in Mbps
     */
    bandwidth: pulumi.Input<number>;
    /**
     * Customer-provided connection description
     */
    description?: pulumi.Input<string>;
    /**
     * Connection name. An alpha-numeric 24 characters string which can include only hyphens and underscores
     */
    name?: pulumi.Input<string>;
    /**
     * Preferences for notifications on connection configuration or status changes
     */
    notifications: pulumi.Input<pulumi.Input<inputs.fabric.ConnectionNotification>[]>;
    /**
     * Order details
     */
    order?: pulumi.Input<inputs.fabric.ConnectionOrder>;
    /**
     * Project information
     */
    project?: pulumi.Input<inputs.fabric.ConnectionProject>;
    /**
     * Connection Redundancy Configuration
     */
    redundancy?: pulumi.Input<inputs.fabric.ConnectionRedundancy>;
    /**
     * Defines the connection type like EVPL*VC, EPL*VC, IPWAN*VC, IP*VC, ACCESS*EPL*VC, EVPLAN*VC, EPLAN*VC, EIA*VC, IA*VC, EC_VC
     */
    type: pulumi.Input<string | enums.fabric.ConnectionType>;
    /**
     * Destination or Provider side connection configuration object of the multi-segment connection
     */
    zSide: pulumi.Input<inputs.fabric.ConnectionZSide>;
}
