Creating a Megaport Object Storage Connection with the API
This topic describes the API procedure to create a Megaport Object Storage connection from a Port, MCR, MVE, or NAT Gateway that you own. A Megaport Object Storage connection is a Virtual Cross Connect (VXC) with your existing service as the A-End and a storage destination as the B-End.
The steps include how to:
- get the
productUidfor the service to use as the A-End - find the storage destination to use as the B-End
- validate and order the VXC
Prerequisites
Before you begin, obtain a valid access token. For more information, see Creating an API Key.
You also need:
- Object Storage provisioned in the Latitude.sh Portal. For more information, see Megaport Object Storage Overview.
- A provisioned Port, MCR, MVE, or NAT Gateway to use as the A-End of the connection.
For the equivalent Megaport Portal procedure, see Creating a Megaport Object Storage Connection.
Getting the productUid for the A-End service
To create the VXC, you need the productUid of the service to connect from.
To get the productUid for the A-End service
-
Get the product list.
-
From the returned product details, locate the
productUidvalue for the Port, MCR, MVE, or NAT Gateway you want to connect from.This example uses this value:
ef59ff80-7f50-11f1-b1ba-59b488c88b57
Finding the storage destination for the B-End
The storage destination is the B-End of the connection. Discover the available storage destinations by filtering the Megaport partner interfaces on the STORAGE connect type.
To find the storage destination
-
Get the list of interfaces Megaport has with partners, filtered on the
STORAGEconnect type. -
From the response, select the storage destination that matches the location where you provisioned your storage.
Note
Connect to the location where you provisioned your storage. Connecting to a different location does not provide access to your buckets.
To order the VXC, you need the following IDs for the B-End from the response:
locationId– The ID of the storage location.productUid– The storage port to connect to.companyUid– The ID of the storage provider, used as theownerUidon the B-End.
Validating and ordering the connection
You set the storage configuration on the B-End partnerConfig, where you specify the BGP details for the connection. The A-End partnerConfig is empty.
A storage connection requires BGP. At a minimum, specify the asn. You can add the BGP password when you create the VXC or after it is provisioned.
Set the B-End vlan to -1 so that the storage port assigns the VLAN rather than you choosing one. Set the A-End vlan to 0.
Note
The validate endpoint uses v3 of the API while the buy endpoint uses v4.
To validate the configuration
-
Create a request with this URL:
-
Add these headers to the request:
Content-Type: application/jsonAuthorization: Bearer {your accessToken}
-
Create the request Body with the configuration details.
The validate request Body is an array of design objects. Each design object identifies the A-End service with
productUidand carries the storage VXC inassociatedVxcs.[ { "productUid": "ef59ff80-7f50-11f1-b1ba-59b488c88b57", "associatedVxcs": [ { "productName": "Storage Test", "rateLimit": 1000, "term": 12, "shutdown": false, "aEnd": { "vlan": 0, "partnerConfig": {} }, "bEnd": { "locationId": 85, "ownerUid": "2f83dc65-5d4c-4730-a66d-926db48a0326", "productUid": "41bbbdbe-8aa4-4af2-91b4-d1d56f1db4aa", "vlan": -1, "partnerConfig": { "asn": "65333", "password": "new-password", "prefixes": null, "route_table": null, "connectType": "STORAGE", "complete": true } }, "productType": "VXC", "connectType": "STORAGE" } ] } ]A successful response returns
"message": "Validation passed"and the pricing details for the connection.
To order the connection
-
After you validate the configuration, create a request with this URL:
-
Create the request Body.
The buy request wraps the design objects from the validate step in anetworkDesignarray, alongside adiscountCodesarray.{ "discountCodes": [], "networkDesign": [ { "productUid": "ef59ff80-7f50-11f1-b1ba-59b488c88b57", "associatedVxcs": [ { "productName": "Storage Test", "rateLimit": 1000, "term": 12, "shutdown": false, "aEnd": { "vlan": 0, "partnerConfig": {} }, "bEnd": { "locationId": 85, "ownerUid": "2f83dc65-5d4c-4730-a66d-926db48a0326", "productUid": "41bbbdbe-8aa4-4af2-91b4-d1d56f1db4aa", "vlan": -1, "partnerConfig": { "asn": "65333", "password": "new-password", "prefixes": null, "route_table": null, "connectType": "STORAGE", "complete": true } }, "productType": "VXC", "connectType": "STORAGE" } ] } ] } -
Send the request.
If the request is successful, the response confirms the created VXC, including its
technicalServiceUid. The VXC then appears in the Megaport Portal.{ "message": "VXC [a10475cd-6ca3-4c1d-ae31-90af53efb945] created.", "terms": "This data is subject to the Acceptable Use Policy https://www.megaport.com/legal/acceptable-use-policy", "data": [ { "serviceName": "Storage Test", "technicalServiceUid": "a10475cd-6ca3-4c1d-ae31-90af53efb945", "provisioningStatus": "DEPLOYABLE", "productType": "VXC", "connectType": "STORAGE" } ] }
Storage connection parameters
The storage configuration is set on the B-End partnerConfig.
| Parameter | Description | Required | Valid input |
|---|---|---|---|
| connectType | Identifies the connection as a storage connection. | Yes | STORAGE |
| asn | The ASN used for the BGP session to your storage. Specify a private or public ASN, or use the default Megaport ASN, 133937. |
Yes | String |
| password | The shared key used to authenticate the BGP peer. You can add it when you create the VXC or after it is provisioned. | No | 1 – 25 characters |
| prefixes | Public IPv4 prefixes to announce to Latitude.sh. null in this example. For guidance on prefixes, see Creating a Megaport Object Storage Connection. |
No | String |
| route_table | Present in the payload; null in this example. |
No | String |
| complete | Indicates the storage configuration is complete. | No | true |
Note
In this example, prefixes and route_table are set to null. The format for populated values for these parameters is not covered in this example.
Tip
To see all options for the requests used in this example, see https://dev.megaport.com.