action.skip

Creating a VXC between an MVE and Google Cloud with the API

This topic describes the API procedure to create a VXC from an MVE to Google Cloud services. Configuration is a two step process: first, you look up connection details with the Google pairing key, then you create the VXC to a specific vNIC on your MVE.

Note

Before you can create a connection to Google Cloud, you need to create a Partner Interconnect attachment in Google Cloud Console or gcloud CLI. As part of the attachment creation, you are provided a pairing key that contains the Google connection details.

The MVE to Google Cloud deployment includes these tasks:

  1. Create a Partner Interconnect attachment in Google Cloud Console or gcloud CLI

    Create a Partner Interconnect attachment in Google Cloud Console or gcloud CLI. Copy the pairing key that is provided as part of the attachment creation. For additional details, see the Google documentation on Google Partner Interconnects.

  2. Validate the Google pairing key

    When ordering a Google Cloud service, use the pairing key and ensure there is a free port for a connection.

    Google requires that the bandwidth on the VXC matches one of the predefined bandwidths in the list returned by the pairing key lookup.

  3. Create and deploy a VXC

    With the validated pairing key and port details, create the VXC to Google Cloud from the MVE.

    Configuration details are specified in the Body of the request.

Before you begin, obtain a valid access token. For more information, see Creating an API Key.

Validate the Google pairing key

Use the API to validate a Google Cloud pairing key. The response includes details of the associated ports and peers. You need the port details to create the VXC.

In the API response, available ports are listed as "vxc":null and ports with an assigned value are not available.

Google requires that the bandwidth on the VXC matches one of the predefined bandwidths in the list returned by the pairing key lookup.

To validate the pairing key

  • Use the GET Look Up Google Pairing Key API to look up Google Cloud location details with the pairing key:

    GET {baseUrl}/v2/secure/google/{pairing_key}

Here is a sample response for a pairing key with an available port (vxc = null).

{
    "message": "Successful lookup",
    "terms": "This data is subject to the Acceptable Use Policy https://www.megaport.com/legal/acceptable-use-policy",
    "data": {
       "bandwidths": [
           50,
           100,
           200,
           300,
           400,
           500,
           1000,
           2000,
           5000,
           10000,
           20000,
           50000
       ],
       "megaports": [
           {
               "productId": 28845,
               "productUid": "5b693428-8cc6-4634-a44a-2e9e6ba556af",
               "name": "Stockholm (arn-zone1-208)",
               "nServiceId": 65391,
               "description": "Google inc.. at Interxion STO5",
               "companyId": 90,
               "companyUid": "29ba879b-45c8-48eb-bd97-618d0f20ea04",
               "companyName": "Google inc..",
               "portSpeed": 10000,
               "locationId": 98,
               "state": null,
               "country": "Sweden",
               "port": 28845,
               "vxc": null
           },
           {
               "productId": 45873,
               "productUid": "832a017d-74ca-45e8-a225-e3d794a079d7",
               "name": "Zurich (zrh-zone1-81)",
               "nServiceId": 103010,
               "description": "Google inc.. at Interxion ZH1",
               "companyId": 90,
               "companyUid": "{{ companyUid }}",
               "companyName": "Google inc..",
               "portSpeed": 10000,
               "locationId": 557,
               "state": null,
               "country": "Switzerland",
               "port": 45873,
               "vxc": null
           },
           {
               "productId": 81531,
               "productUid": "6e587057-f012-4600-896f-9ee171fdd444",
               "name": "Frankfurt (fra-zone1-683)",
               "nServiceId": 181786,
               "description": "Google inc.. at Equinix FR5",
               "companyId": 90,
               "companyUid": "{{ companyUid }}",
               "companyName": "Google inc..",
               "portSpeed": 100000,
               "locationId": 131,
               "state": null,
               "country": "Germany",
               "port": 81531,
               "vxc": null
           },
           {
               "productId": 84769,
               "productUid": "f25e581b-3c0e-4069-8147-78cce082357e",
               "name": "Amsterdam (ams-zone1-1236)",
               "nServiceId": 188925,
               "description": "Google inc.. at Equinix AM1",
               "companyId": 90,
               "companyUid": "29ba879b-45c8-48eb-bd97-618d0f20ea04",
               "companyName": "Google inc..",
               "portSpeed": 100000,
               "locationId": 85,
               "state": null,
               "country": "Netherlands",
               "port": 84769,
               "vxc": null
           },
           {
               "productId": 95335,
               "productUid": "9fde43f5-2f00-41ed-bb60-45c446ea43df",
               "name": "London (lhr-zone1-832)",
               "nServiceId": 217347,
               "description": "Google inc.. at Equinix LD5",
               "companyId": 90,
               "companyUid": "29ba879b-45c8-48eb-bd97-618d0f20ea04",
               "companyName": "Google inc..",
               "portSpeed": 100000,
               "locationId": 90,
               "state": null,
               "country": "United Kingdom",
               "port": 95335,
               "vxc": null
           },
           {
               "productId": 153623,
               "productUid": "ae8d21b5-2db6-4f72-a465-624c914f4918",
               "name": "Paris (cdg-zone1-1536)",
               "nServiceId": 391882,
               "description": "Google inc.. at Interxion PAR5",
               "companyId": 90,
               "companyUid": "29ba879b-45c8-48eb-bd97-618d0f20ea04",
               "companyName": "Google inc..",
               "portSpeed": 100000,
               "locationId": 527,
               "state": null,
               "country": "France",
               "port": 153623,
               "vxc": null
           },
           {
               "productId": 162678,
               "productUid": "7d1cca03-eb3d-4be4-a145-de8e8dffec3f",
               "name": "Frankfurt (fra-zone1-58)",
               "nServiceId": 420550,
               "description": "Google inc.. at Interxion FRA6",
               "companyId": 90,
               "companyUid": "29ba879b-45c8-48eb-bd97-618d0f20ea04",
               "companyName": "Google inc..",
               "portSpeed": 100000,
               "locationId": 130,
               "state": null,
               "country": "Germany",
               "port": 162678,
               "vxc": null
           }
       ],
       "resource_type": "csp_connection",
       "ports": [
           {
               "service_id": 38286,
               "vxc_service_ids": []
           },
           {
               "service_id": 65391,
               "vxc_service_ids": []
           },
           {
               "service_id": 103010,
               "vxc_service_ids": []
           },
           {
               "service_id": 125905,
               "vxc_service_ids": []
           },
           {
               "service_id": 154694,
               "vxc_service_ids": []
           },
           {
               "service_id": 181786,
               "vxc_service_ids": []
           },
           {
               "service_id": 188925,
               "vxc_service_ids": []
           },
           {
               "service_id": 217347,
               "vxc_service_ids": []
           },
           {
               "service_id": 391882,
               "vxc_service_ids": []
           },
           {
               "service_id": 420550,
               "vxc_service_ids": []
           }
       ]
   }
}

Create and deploy a VXC to a specific vNIC

With the validated pairing key and port details, create the VXC to Google Cloud from the MVE.

You specify the configuration details in the Body of the request. The first productUididentifies the MVE ID and the bEnd: productUid identifies the Google Cloud location from the pairing key. You also need to provide your Google pairing key in the request. Only the aEnd innerVlan needs to be specified.

Tip

To test your request before you order and see pricing details, use the /v3/networkdesign/validate endpoint with the same Body configuration.

To create a VXC

  1. Create a request with the POST Create VXC to Google Cloud (v3) endpoint:

    POST {baseUrl}/v3/networkdesign/buy
    
  2. Update the Body of the request with the productUid of the MVE, the name of the VXC, the productUid of the Google Cloud port, set the vNicIndex to 2 (interface 3), and the pairing key.

    Note

    The vNIC number relates to the following MVE interfaces:

    • vNIC 0 = interface 1 on the MVE
    • vNIC 1 = interface 2 on the MVE
    • vNIC 2 = interface 3 on the MVE
    • vNIC 3 = interface 4 on the MVE
    • vNIC 4 = interface 5 on the MVE

    Here is a sample request:

[
{
 "productUid": "{{ mveid }}",
 "associatedVxcs": [
  {
   "productName": "VXC to test VNIC",
   "rateLimit": 100,
   "term": 12,
   "shutdown": false,
   "promoCode": "promox3mnthfree2",
   "aEnd": {
     "vNicIndex":2,
     "innerVlan": 144
   },
   "bEnd": {
     "productUid" : "{{ googleProductUid }}",
     "partnerConfig": {
       "connectType": "GOOGLE",
       "pairingKey": "{{ googlePairingKey }}"
     }
   }
  }
 ]
}
]

Once you have completed and deployed the VXC, go back to the Google Cloud Console and accept the attachment.

After sending the request, you will receive a successful response when the VXC has been ordered.

Here is a sample response:

{
    "message": "VXC [27139b23-0afe-4e48-9322-eea95d2d6b74] created.",
    "terms": "This data is subject to the Acceptable Use Policy https://www.megaport.com/legal/acceptable-use-policy",
    "data": [
       {
           "createDate": 1709823461856,
           "vxcOrderId": 139952,
           "payerMegaPortId": 190079,
           "nonPayerMegaPortId": 95335,
           "payerMegaPortName": "MVE for VNIC config",
           "nonPayerMegaPortName": "London (lhr-zone1-832)",
           "payerCompanyId": 1153,
           "nonPayerCompanyId": 90,
           "payerLocationId": 89,
           "nonPayerLocationId": 90,
           "salesId": null,
           "payerCompanyName": "Megaport Lab",
           "nonPayerCompanyName": "Google inc..",
           "payerMegaPortNsId": 510708,
           "nonPayerMegaPortNsId": 217347,
           "payerVlanId": 0,
           "nonPayerVlanId": 0,
           "payerInnerVlanId": 144,
           "nonPayerInnerVlanId": null,
           "payerApproverName": "David Sloan",
           "payerApproverId": 41315,
           "nonPayerApproverName": "David Sloan",
           "nonPayerApproverId": 41315,
           "payerApproval": 1709823461831,
           "nonPayerApproval": 1709823461850,
           "fixedTerm": true,
           "duration": 1,
           "rollover": true,
           "serviceName": "from MVE for VNIC config to London (lhr-zone1-832)",
           "payerStatus": "APPROVED",
           "nonPayerStatus": "APPROVED",
           "speed": 100,
           "distanceBand": "METRO",
           "intercapPath": "",
           "awsId": null,
           "promoCode": null,
           "dealUid": null,
           "rateType": "MONTHLY",
           "vxcJTechnicalServiceId": 190111,
           "vxcJTechnicalServiceUid": "27139b23-0afe-4e48-9322-eea95d2d6b74",
           "provisionDate": 1709823461826,
           "orderType": "NEW",
           "monthlyDiscountAmount": null,
           "discountMonths": null,
           "amazonDirectConnectConfigDto": null,
           "amsixConnectConfigDto": null,
           "sdrcProvItem": null,
           "rate": null,
           "setup": null,
           "asn": null,
           "bgpPassword": null,
           "usageAlgorithm": "POST_PAID_HOURLY_SPEED_METRO_VXC",
           "costCentre": null,
           "azureServiceKey": null,
           "oracleVirtualCircuitId": null,
           "serviceKey": null,
           "vxc": {
               "serviceName": "VXC to test VNIC",
               "name": "VXC to test VNIC",
               "secondaryName": null,
               "technicalServiceId": 190111,
               "technicalServiceUid": "27139b23-0afe-4e48-9322-eea95d2d6b74",
               "requestedDate": 1709823461826,
               "configuredDate": null,
               "currentEstimatedDelivery": null,
               "companyName": "Megaport Lab",
               "companyId": 1153,
               "billingContactName": null,
               "billingContactId": null,
               "adminContactName": null,
               "adminContactId": null,
               "technicalContactName": null,
               "technicalContactId": null,
               "salesName": null,
               "salesId": null,
               "billableId": 181659,
               "billableUsageAlgorithm": null,
               "productType": "VXC",
               "provisioningStatus": "DEPLOYABLE",
               "failedReason": null,
               "inAdvanceBillingStatus": null,
               "provisioningItems": [],
               "tags": [],
               "vxcDistanceBand": "METRO",
               "intercapPath": "",
               "marketplaceVisibility": true,
               "vxcPermitted": true,
               "vxcAutoApproval": false,
               "createDate": 1709823461844,
               "terminationDate": null,
               "contractStartDate": null,
               "contractTermMonths": 1,
               "rateType": "MONTHLY",
               "trialAgreement": false,
               "payerCompanyId": null,
               "nonPayerCompanyId": null,
               "minimumSpeed": null,
               "maximumSpeed": null,
               "rateLimit": 100,
               "errorMessage": null,
               "lagId": null,
               "aggregationId": null,
               "lagPrimary": null,
               "market": "UK",
               "accountManager": null,
               "promptUid": null,
               "components": [],
               "attributes": [],
               "aLocation": null,
               "bLocation": null,
               "aMetro": null,
               "aCountry": null,
               "aLocationId": null,
               "bLocationId": null,
               "bMetro": null,
               "bCountry": null,
               "attributeTags": {},
               "createdBy": "b0dedbd2-ecc7-4bad-a13b-6c34b4005115",
               "buyoutPort": null,
               "virtual": false,
               "locked": false,
               "adminLocked": false,
               "bgpShutdownDefault": false,
               "originDomain": null
           },
           "connectType": "GOOGLE",
           "payerConfig": {},
           "nonPayerConfig": {},
           "attributeTags": {},
           "serviceLicense": null,
           "originDomain": null,
           "fullyApproved": true
       }
   ]
}