To create a Google Cloud Platform (GCP) cloud account, you make a POST request. The request body includes parameters specific to Google Cloud Platform that are required to create the cloud account.

Prerequisites

  • Verify that all general prerequisites and prerequisites for the Cloud Assembly Infrastructure as a Service (IaaS) service have been satisfied. See Prerequisites for API Use Case Examples.
  • Verify that you have the following parameters for the new cloud account:
    • GCP project ID
    • GCP private key ID
    • GCP private key
    • GCP client email

Procedure

  1. Assign the GCP account variables.
    gcp_project_id='<your_gcp_projct_id>'
    gcp_private_key_id='<your_gcp_private_key_id>'
    gcp_private_key='<your_gcp_private_key>'
    gcp_client_email='<your_gcp_client_email>'
  2. Submit a request to create a GCP cloud account with default cloud zones.
    curl -X POST \
      "$url/iaas/api/cloud-accounts?apiVersion=$api_version" \
      -H 'Content-Type: application/json' \
      -H "Authorization: Bearer $access_token" \
      -d '{
        "cloudAccountType":"gcp",
        "privateKeyId":"'$gcp_private_key_id'",
        "privateKey":"'$gcp_private_key'",
        "cloudAccountProperties":{
          "projectId":"'$gcp_project_id'",
          "clientEmail":"'$gcp_client_email'"
        },
        "regionIds":["<your_region_id>"],
        "createDefaultZones":true,
        "name":"<your_gcp_cloud_account>",
        "description": "This is a demo GCP cloud account",
      }' | jq "."
  3. List all cloud accounts.
    curl -X GET $url/iaas/api/cloud-accounts?apiVersion=$api_version -H 'Content-Type: application/json' -H "Authorization: Bearer $access_token" | jq "."
  4. Examine the response and verify that the name and ID of the GCP cloud account you created is listed.

Example: Create a Google Cloud Platform Cloud Account

Assign the required variables.

$ url='https://appliance.domain.com'
$ api_version='2021-07-15'
$ gcp_project_id='Example-e2e'
$ gcp_private_key_id='defg3c20c85abcde6a95b44222c4c1d68554b87e'
$ gcp_private_key='-----BEGIN PRIVATE KEY-----\\nMIIEvQIBADANBgkqhkiG9w0BAQEFAA
...
3izE4KDeebLh7SkWFbUt7lFW25UL20\\nKAY7FRTKpvbO+6Z/BnVePVI=\\n-----END PRIVATE KEY-----\\n'
$ gcp_client_email='[email protected]'

Create the cloud account.

$ curl -X POST \
  "$url/iaas/api/cloud-accounts?apiVersion=$api_version" \
  -H 'Content-Type: application/json' \
  -H "Authorization: Bearer $access_token" \
  -d '{
    "cloudAccountType":"gcp",
    "privateKeyId":"'$gcp_private_key_id'",
    "privateKey":"'$gcp_private_key'",
    "cloudAccountProperties":{
      "projectId":"'$gcp_project_id'",
      "clientEmail":"'$gcp_client_email'"
    },
    "regionIds":["us-west2"],
    "createDefaultZones":true,
    "name":"demo-gcp-account",
    "description": "This is a demo GCP cloud account",
  }' | jq "."

A snippet of the response from your request shows the account ID.

...      
"tags": [],
"name": "demo-GCP-account",
"id": "c8c3c9bfdb449475-7f703c5265a63d87-f8e705d89b2569e1aac66c6d00bf4fc7ef4b1c44100f0e944af31eb8ba3d2a5a-f4226a20b65c4675574bc5fbff6c0",
"updatedAt": "2022-04-02",
"organizationId": "8327d53f-91ea-420a-8613-ba8f3149db95",
...