Skip to content

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

This topic steps through 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 and then you create the VXC.

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 details, 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
        ],
        "megaports": [
            {
                "productId": 81456,
                "productUid": "4aaf6946-6166-4f41-b726-b388aad98fcb",
                "name": "Sydney (syd-zone1-1660)",
                "nServiceId": 181638,
                "description": "Google Inc at NextDC S1",
                "companyId": 90,
                "companyUid": "29ba879b-45c8-48eb-bd97-618d0f20ea04",
                "companyName": "Google Inc",
                "portSpeed": 100000,
                "locationId": 10,
                "state": "NSW",
                "country": "Australia",
                "port": 81456,
                "vxc": null
            }
        ],
        "resource_type": "csp_connection",
        "ports": [
            {
                "service_id": 28350,
                "vxc_service_ids": []
            },
            {
                "service_id": 90779,
                "vxc_service_ids": []
            },
            {
                "service_id": 181638,
                "vxc_service_ids": []
            }
        ]
    }
}

Create and deploy a VXC

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, and the pairing key.

    Here is a sample request:

[
 {
  "productUid": "8acc7925-4fda-45a3-a955-ce5d89c59593",
  "associatedVxcs": [
   {
    "productName": "Google MVE VXC",
    "rateLimit": 100,
    "term": 12,
    "aEnd": {
      "innerVlan": 0
    },
    "bEnd": {
      "productUid": "4aaf6946-6166-4f41-b726-b388aad98fcb",
      "partnerConfig": {
        "connectType": "GOOGLE",
        "pairingKey": "246bf9c3-34b5-49f3-b8d9-73c04399673c/australia-southeast1/1"
      }
    }
   }
  ]
 }
]

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

Here is a sample response:

{
    "message": "VXC [6516dd8a-6558-4867-aa38-20830ea89cbb] created.",
    "terms": "This data is subject to the Acceptable Use Policy https://www.megaport.com/legal/acceptable-use-policy",
    "data": [
        {
            "createDate": 1680077872960,
            "vxcOrderId": 113661,
            "payerMegaPortId": 155247,
            "nonPayerMegaPortId": 81456,
            "payerMegaPortName": "Greg MVE",
            "nonPayerMegaPortName": "Sydney (syd-zone1-1660)",
            "payerCompanyId": 1153,
            "nonPayerCompanyId": 90,
            "payerLocationId": 2,
            "nonPayerLocationId": 10,
            "salesId": null,
            "payerCompanyName": "Megaport Lab",
            "nonPayerCompanyName": "Google Inc",
            "payerMegaPortNsId": 398160,
            "nonPayerMegaPortNsId": 181638,
            "payerVlanId": 0,
            "nonPayerVlanId": 0,
            "payerInnerVlanId": 0,
            "nonPayerInnerVlanId": null,
            "payerApproverName": "Greg Brown",
            "payerApproverId": 50402,
            "nonPayerApproverName": "Greg Brown",
            "nonPayerApproverId": 50402,
            "payerApproval": 1680077872920,
            "nonPayerApproval": 1680077872944,
            "fixedTerm": true,
            "duration": 1,
            "rollover": true,
            "serviceName": "from Greg MVE to Sydney (syd-zone1-1660)",
            "payerStatus": "APPROVED",
            "nonPayerStatus": "APPROVED",
            "speed": 100,
            "distanceBand": "METRO",
            "intercapPath": "",
            "awsId": null,
            "promoCode": null,
            "dealUid": null,
            "rateType": "MONTHLY",
            "vxcJTechnicalServiceId": 155249,
            "vxcJTechnicalServiceUid": "6516dd8a-6558-4867-aa38-20830ea89cbb",
            "provisionDate": 1680077872914,
            "orderType": "NEW",
            "monthlyDiscountAmount": null,
            "discountMonths": null,
            "amazonDirectConnectConfigDto": null,
            "amsixConnectConfigDto": null,
            "webAirProvItem": 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": "Test Google MVE VXC",
                "name": "Test Google MVE VXC",
                "secondaryName": null,
                "technicalServiceId": 155249,
                "technicalServiceUid": "6516dd8a-6558-4867-aa38-20830ea89cbb",
                "requestedDate": 1680077872914,
                "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": 147194,
                "billableUsageAlgorithm": null,
                "productType": "VXC",
                "provisioningStatus": "DEPLOYABLE",
                "failedReason": null,
                "inAdvanceBillingStatus": null,
                "provisioningItems": [],
                "tags": [],
                "vxcDistanceBand": "METRO",
                "intercapPath": "",
                "marketplaceVisibility": true,
                "vxcPermitted": true,
                "vxcAutoApproval": false,
                "createDate": 1680077872938,
                "terminationDate": null,
                "contractStartDate": null,
                "contractTermMonths": 12,
                "rateType": "MONTHLY",
                "trialAgreement": false,
                "payerCompanyId": null,
                "nonPayerCompanyId": null,
                "minimumSpeed": null,
                "maximumSpeed": null,
                "rateLimit": 100,
                "errorMessage": null,
                "market": "Australia",
                "accountManager": null,
                "promptUid": null,
                "components": [],
                "attributes": [],
                "aLocation": null,
                "bLocation": null,
                "aLocationId": null,
                "bLocationId": null,
                "attributeTags": {},
                "createdBy": "f39b8983-256e-4643-adec-9f0b5da09ab7",
                "buyoutPort": null,
                "virtual": false,
                "locked": false,
                "adminLocked": false,
                "bgpShutdownDefault": false,
                "originDomain": null
            },
            "connectType": "GOOGLE",
            "payerConfig": {},
            "nonPayerConfig": {},
            "attributeTags": {},
            "serviceLicense": null,
            "originDomain": null,
            "fullyApproved": true
        }
    ]
}

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


Last update: 2024-01-23