Connect Network Edge Device to Remote Port
Establish an untagged connection between your Network Edge virtual device and a remote Fabric port to access your network service provider's network.
Step 1: Authenticate
Submit your user credentials, Client ID, and Client Secret for OAuth2 authentication.
Refer to Generating Client ID and Client Secret under the Getting Access Token section for instructions on how to create client ID and client secret and refer to Requesting Access and Refresh tokens section for instructions on how to call Oauth API to validate and authenticate your credentials.
If you are unaware of your user credentials for Equinix Fabric, contact your local Equinix Service Desk.
Step 2: Get Attribute Information
- Retrieve your Network Edge device information by calling Get Virtual Devices.
- Retrieve your Equinix Fabric ports information using the Get All Ports API request.
This use case requires a remote port deployed at your NSP's demarcation point in the IBX data center.
Step 3: Create Connection
Use the POST /fabric/v4/connections API request to create a connection with the pre-determined attributes.
- You can create only a single untagged connection from a Network Edge virutal device to a remote port
- Use the Retrieve Pricing API request to retrieve connection price estimate
POST /fabric/v4/connections | |
---|---|
Method | POST |
Endpoint | /fabric/v4/connections |
Headers | Authorization, Content-Type |
Path Parameters | Not applicable |
Query Parameters | Not applicable |
Body Parameters | type, name, order, bandwidth, aSide, zSide, project, notifications |
Sample curl request to connect VD (virtual device) to remote port (untagged).
curl -X
POST 'https://api.equinix.com/fabric/v4/connections'
-H 'content-type: application/json'
-H 'authorization: Bearer qwErtY8zyW1abcdefGHI'
-d '{
"type": "EVPL_VC",
"bandwidth": 100,
"redundancy": {
"priority": "PRIMARY"
},
"name": "ConnectionName-1",
"order": {
"purchaseOrderNumber": "1-3232923"
},
"aSide": {
"accessPoint": {
"type": "VD",
"virtualDevice": {
"type": "EDGE",
"uuid": "fd5342f3-d067-4683-a24f-be952279630b"
},
"interface": {
"type": "NETWORK",
"id": 45645
}
}
},
"zSide": {
"accessPoint": {
"type": "COLO",
"port": {
"uuid": "20d32a80-0d61-4333-bc03-707b591ae2f4"
},
"linkProtocol": {
"type": "UNTAGGED"
}
}
},
"project": {
"projectId": 567
},
"notifications": [
{
"type": "ALL",
"emails": [
"test@equinix.com",
"test1@equinix.com"
]
}
]
}'
Sample curl request to connect VD (virtual device) to remote port (DOT1Q).
curl -X
POST 'https://api.equinix.com/fabric/v4/connections'
-H 'content-type: application/json'
-H 'authorization: Bearer qwErtY8zyW1abcdefGHI'
-d '
{
"type": "EVPL_VC",
"bandwidth": 1000,
"name": "vd to COLO",
"aSide": {
"accessPoint": {
"type": "VD",
"virtualDevice": {
"type": "EDGE",
"uuid": "20d32a80-0d61-4333-bc03-707b591ae2f4"
},
"interface": {
"type": "NETWORK",
"id": 45645
}
}
},
"zSide": {
"accessPoint": {
"type": "COLO",
"port": {
"uuid": "20d32a80-0d61-4333-bc03-707b591ae2f4"
},
"linkProtocol": {
"type": "DOT1Q",
"vlanTag": 300
}
}
},
"order": {
"purchaseOrderNumber": "1-129105284100"
},
"notifications": [
{
"type": "ALL",
"emails": [
"test@equinix.com",
"test1@equinix.com"
]
}
]
}'
Sample curl request to connect VD (virtual device) to remote port (DOT1Q with vlan range).
curl -X
POST 'https://api.equinix.com/fabric/v4/connections'
-H 'content-type: application/json'
-H 'authorization: Bearer qwErtY8zyW1abcdefGHI'
-d '
{
"type": "EVPL_VC",
"bandwidth": 1000,
"name": "vd to COLO",
"aSide": {
"accessPoint": {
"type": "VD",
"virtualDevice": {
"type": "EDGE",
"uuid": "20d32a80-0d61-4333-bc03-707b591ae2f4"
},
"interface": {
"type": "NETWORK",
"id": 45645
}
}
},
"zSide": {
"accessPoint": {
"type": "COLO",
"port": {
"uuid": "20d32a80-0d61-4333-bc03-707b591ae2f4"
},
"linkProtocol": {
"type": "DOT1Q",
"vlanTagMin": 300,
"vlanTagMax": 1099
}
}
},
"order": {
"purchaseOrderNumber": "1-129105284100"
},
"notifications": [
{
"type": "ALL",
"emails": [
"test@equinix.com",
"test1@equinix.com"
]
}
]
}'
Sample curl request to connect VD (virtual device) to remote port (QinQ).
curl -X
POST 'https://api.equinix.com/fabric/v4/connections'
-H 'content-type: application/json'
-H 'authorization: Bearer qwErtY8zyW1abcdefGHI'
-d '
{
"type": "EVPL_VC",
"bandwidth": 1000,
"name": "vd to COLO",
"aSide": {
"accessPoint": {
"type": "VD",
"virtualDevice": {
"type": "EDGE",
"uuid": "20d32a80-0d61-4333-bc03-707b591ae2f4"
},
"interface": {
"type": "NETWORK",
"id": 45645
}
}
},
"zSide": {
"accessPoint": {
"type": "COLO",
"port": {
"uuid": "20d32a80-0d61-4333-bc03-707b591ae2f4"
},
"linkProtocol": {
"type": "QINQ",
"vlanSTag": 300,
"vlanCTag": 400
}
}
},
"order": {
"purchaseOrderNumber": "1-129105284100"
},
"notifications": [
{
"type": "ALL",
"emails": [
"test@equinix.com",
"test1@equinix.com"
]
}
]
}
'
Body parameters
Parameter | Mandatory | Type | Example values | Applicable values | Description |
type | yes | string | EVPL_VC | EVPL_VC | Connection type. |
name | yes | string | ConnectionName-1 | Maximum: 24 characters Allowed characters: alpha-numeric, hyphens ('-') and underscores ('_') | Connection name. |
order | no | object | - | - | Order details. |
bandwidth | yes | integer | 100 | Maximum: cannot exceed port bandwidth. | Connection bandwidth in Mbps. |
redundancy | Conditional | object | - | - | Redundancy details. Required for secondary connections. |
aSide | yes | object | - | - | Source port definition. |
zSide | yes | object | - | - | Destination port definition. |
project | no | object | - | - | Project information in the customer resource hierarchy. |
notifications | yes | array[object] | - | - | Subscriber preferences for notification of changes in asset configuration or status. |
order | |||||
purchaseOrderNumber | no | string | 1-129105284100 | - | Subscriber's purchase order identifier. |
redundancy | |||||
group | yes | string | 5c0e9384-aa79-4ec9-b7a2-557f8c307292 | - | Unique Id of the redundancy group. This is only required for secondary connections. If you are creating a secondary connection, enter the group of the PRIMARY. You can find the group of the primary connection by calling Get Specified Connection or by checking the "group" field in the response you receive when creating primary connection. |
priority | yes | string | PRIMARY | PRIMARY SECONDARY | Whether the connection is PRIMARY or SECONDARY. Don't provide a redundancy group for a PRIMARY connection. |
aSide | |||||
accessPoint | yes | object | - | - | Connection endpoint configuration. |
aSide.accessPoint | |||||
type | yes | string | VD | VD | Connection endpoint type. VD - Network Edge virtual device. |
virtualDevice | yes | object | - | - | Virtual device configuration. |
interface | no | object | - | - | Interface configuration. |
aSide.accessPoint.virtualDevice | |||||
type | yes | string | EDGE | EDGE | Virtual device type. |
uuid | yes | string | 20d32a80-0d61-4333-bc03-707b591ae2f4 | - | Equinix-assigned virtual device instance identifier. |
aSide.accessPoint.interface | |||||
type | yes | string | NETWORK | NETWORK CLOUD | Accesspoint network interface type. |
id | yes | integer | 544211 | - | Accesspoint network interface identifier. |
zSide | |||||
accessPoint | yes | object | - | - | Connection endpoint configuration. |
zSide.accessPoint | |||||
type | yes | string | COLO | COLO | Connection endpoint type. COLO - Colocation space in an IBX data center. |
port | yes | object | - | - | Port associated with the connection. |
linkProtocol | yes | object | - | - | Link protocol configuration. |
zSide.accessPoint.port | |||||
uuid | yes | string | a867f685-41b0-1b07-6de0-320a5c00abdd | - | Equinix-assigned port identifier. |
zSide.accessPoint.linkProtocol | |||||
type | yes | string | UNTAGGED | UNTAGGED, DOT1Q, QINQ | Link protocol type. UNTAGGED - Untagged EVPL/EPL connection between a Network Edge device and a remote port. |
vlanTag | no | string | 20 | 2 to 4092 | vlanTag is vlan ID. Any number between 2 and 4092. |
vlanTagMin | no | string | 2 | 2 to 4092 | vlanTagMin. Any number between 2 and 4092. vlanTagMin should be less than vlanTagMax. |
vlanTagMax | no | string | 4092 | 2 to 4092 | vlanTagMax. Any number between 2 and 4092. vlanTagMax should be greaten than vlanTagMin. |
vlanSTag | no | string | 300 | 2 to 4092 | vlanSTag is supported for QinQ port. Any number between 2 and 4092. |
vlanCTag | no | string | 100 | 2 to 4092 | vlanCTag is supported for QinQ port. Any number between 2 and 4092. |
project | |||||
projectId | Conditional | integer | 568 | - | Customer project identifier. Required for CRH-enabled users. |
notifications | |||||
type | yes | string | ALL | ALL | Notification preferences for a specified asset. |
emails | yes | array[string] | ["john@equinix.com", "jenkins@equinix.com"] | Minimum: 1 Maximum: 12 | List of up to 12 recipients. |
If you get “Access Denied” error, contact your local Equinix Service Desk for Equinix Fabric Portal access.
Sample response
{
"type": "EVPL_VC",
"href": "https://api.equinix.com/fabric/v4/connections/c193c1c4-2c7e-472d-8c91-0283bc3b5a71",
"uuid": "c193c1c4-2c7e-472d-8c91-0283bc3b5a71",
"name": "ConnectionName-1",
"state": "PROVISIONING",
"operation": {
"providerStatus": "NOT_AVAILABLE",
"equinixStatus": "PROVISIONING"
},
"order": {
"purchaseOrderNumber": "1-3232923"
},
"project": {
"projectId": 567
},
"notifications": [
{
"type": "ALL",
"emails": [
"testqq@equinix.com"
]
}
],
"account": {
"accountNumber": 270217,
"orgId": 92287,
"globalOrgId": "0016u000003JZ53AAG"
},
"changeLog": {
"createdBy": "eqxnfvuser",
"createdDateTime": "2022-03-22T23:14:23.546Z"
},
"bandwidth": 100,
"redundancy": {
"group": "79a0e626-55fe-4fe1-89a5-4d7ca52214db",
"priority": "PRIMARY"
},
"isRemote": true,
"direction": "INTERNAL",
"aSide": {
"accessPoint": {
"interface": {
"uuid": "bf8a606b-32b2-4a53-a450-6eabd7d9ccab",
"id": 45645,
"type": "CLOUD"
},
"type": "VD",
"account": {
"accountNumber": 270217,
"orgId": 92287,
"organizationName": "eqx-nfv",
"globalOrgId": "0016u000003JZ53AAG"
},
"location": {
"href": "https://api.equinix.com/fabric/v4/metros/DC",
"region": "AMER",
"metroName": "Ashburn",
"metroCode": "DC"
},
"virtualDevice": {
"href": "https://api.equinix.com/ne/v1/devices/fd5342f3-d067-4683-a24f-be952279630b",
"uuid": "fd5342f3-d067-4683-a24f-be952279630b",
"name": "ha-json",
"type": "EDGE"
}
}
},
"zSide": {
"accessPoint": {
"type": "COLO",
"account": {
"accountNumber": 270224,
"orgId": 92287,
"organizationName": "eqx-nfv",
"globalOrgId": "0016u000003JZ53AAG"
},
"location": {
"href": "https://api.equinix.com/fabric/v4/metros/SY",
"region": "APAC",
"metroName": "Sydney",
"metroCode": "SY"
},
"port": {
"href": "https://api.equinix.com/fabric/v4/ports/c791f8cb-5d73-d730-8ce0-306a5c00a4ee",
"uuid": "c791f8cb-5d73-d730-8ce0-306a5c00a4ee",
"name": "eqx-nfv-SY1-L-Dot1q-BO-PRI-10G-JN-1147"
},
"linkProtocol": {
"type": "DOT1Q"
}
}
},
"additionalInfo": []
}
Response payload body description
Response payload includes configuration parameters defined in the request body. The following table contains descriptions of additional information included in the response payload. For descriptions of the remaining fields, refer to the Body parameters section.
Parameter | Type | Example values | Description |
href | string | https://api.equinix.com/fabric/v4/connections/ 3a58dd05-f46d-4b1d-a154-2e85c396ea62 | An absolute URL that returns the specified connection. |
uuid | string | 3a58dd05-f46d-4b1d-a154-2e85c396ea62 | Equinix-assigned connection identifier. |
state | string | PROVISIONING | Lifecycle stage of a connection. |
operation | object | - | Connection type-specific operational data. |
account | object | - | Account information. |
changeLog | object | - | A permanent record of asset creation, modification, or deletion. |
redundancy | object | - | Redundancy details. |
isRemote | boolean | true | Parameter indicating if the two endoints are in different locations. |
direction | string | INTERNAL | Direction of the connection (from the requester's point of view). |
aSide | object | - | Source port definition. |
zSide | object | - | Destination port definition. |
operation | |||
equinixStatus | string | PROVISIONING | Progress towards provisioning a specified connection. |
providerStatus | string | NOT_AVAILABLE | Provider's progress towards provisioning a specified connection. |
account | |||
accountNumber | integer | 270217 | Equinix-assigned account number. |
orgId | integer | 92832 | Equinix-assigned organization identifier. |
organizationName | strign | eqx-nfv | Customer organization name. |
globalOrgId | string | 0016u000003JZ53AAG | Equinix-assigned top-level organization identifier associated with the specified asset. |
changeLog | |||
createdBy | string | hanSoloIncBuyer | Identity of the asset creator. |
createdDateTime | string | 2021-07-15T19:30:29.526Z | Connection creation timestamp in the IETF ISO 8601 extended date/time format: YYYY-MM-DDTHH:MM:SS.000+0000 |
redundancy | |||
group | string | 7a58dd05-f46d-4b1d-a154-2e85c396ea63 | Unique Id of the redundancy group. |
priority | string | PRIMARY | Whether the connection is PRIMARY or SECONDARY. |
aSide | |||
accessPoint | object | - | Connection endpoint configuration. |
aSide.accessPoint | |||
interface | object | - | Access point's interface configuration. |
account | object | - | Account information. |
location | object | - | Geographic attributes of the specified access point. |
virtualDevice | object | - | Virtual device configuration. |
aSide.accessPoint.interface | |||
uuid | string | bf8a606b-32b2-4a53-a450-6eabd7d9ccab | Equinix-assigned interface identifier. |
aSide/zSide.accessPoint.location | |||
href | string | https://api.equinix.com/fabric/v4/metros/DC | An absolute URL that returns complete specification for the selected metro. |
region | string | AMER | Broad geographic area in which a specified Equinix asset is located. |
metroName | string | Ashburn | Metropolitan area name. |
metroCode | string | DC | Metropolitan area identifier. |
aSide.accessPoint.virtualDevice | |||
href | string | https://api.equinix.com/ne/v1/devices/ fd5342f3-d067-4683-a24f-be952279630b | An absolute URL that returns complete specification for the selected asset. |
name | string | ha-json | Virtual device name. |
zSide | |||
accessPoint | object | - | Connection endpoint configuration. |
zSide.accessPoint | |||
account | object | - | Account information. |
location | object | - | Geographic attributes of the specified access point. |
port | object | - | Port associated with the connection. |
linkProtocol | object | - | Link protocol configuration. |
zSide.accessPoint.port | |||
href | string | https://api.equinix.com/fabric/v4/ports/ a867f685-41b0-1b07-6de0-320a5c00abdd | An absolute URL that returns the specified port. |
zSide.accessPoint.linkProtocol | |||
type | string | DOT1Q | Link protocol type. |
Use the Get Specified Connection API request to monitor connection status.