Manage multiple regions with the DevOps API

Use the DevOps API to add or remove regions for your database.

The following roles use the application token to execute DevOps API queries:

  • Organization Administrator

  • Database Administrator

Prerequisites

  1. Create an application token to authenticate your service account in the DevOps API.

  2. Once you have authenticated your service account, you can add and removes regions in the DevOps API.

Add a region to your database

You must have an existing database and payment method before you can add a new region. If you do not have a payment method for your database, you can add a payment method.

  1. Check existing regions for your database:

    • cURL command (/v2)

    • Result

    curl --request GET \
     --url 'https://api.astra.datastax.com/v2/databases/<databaseID>/datacenters' \
     --header 'Accept: application/json' \
     --header 'Authorization: Bearer <application_token>'
    {
    	"id": "1234-5678-91011121-3141",
    	"name": "dc-1234-5678-91011121-3141",
    	"tier": "Serverless",
    	"cloudProvider": "GCP",
    	"region": "europe-west1",
    	"regionZone": "emea",
    	"regionClassification": "standard",
    	"capacityUnits": 1,
    	"studioUrl": "http://path-to-studio:port",
    	"grafanaUrl": "http://path-to-grafana:port",
    	"cqlshUrl": "http://path-to-cqlsh:port/cqlsh",
    	"graphqlUrl": "http://path-to-graqphl:port/api/graphql",
    	"dataEndpointUrl": "http://path-to-dataendpoint:port/api/rest",
    	"secureBundleUrl": "http://s3-signed-bundle-url",
    	"secureBundleInternalUrl": "http://s3-signed-internal-bundle-url",
    	"secureBundleMigrationProxyUrl": "http://s3-signed-proxy-bundle-url",
    	"secureBundleMigrationProxyInternalUrl": "http://s3-signed-proxy-internal-bundle-url"
    }
  2. Add a new region to your database:

    • cURL command (/v2)

    curl --request POST \
      --url 'https://api.astra.datastax.com/v2/databases/<databaseID>/datacenters' \
      --header 'Accept: application/json' \
      --header 'Authorization: Bearer <application_token>' \
      --data '{
          "tier": "Serverless",
          "cloudProvider": "<cloudProvider>",
          "region": "<region>",
        }'
  3. Confirm your region was added to the database:

    • cURL command (/v2)

    • Result

    curl --request GET \
     --url 'https://api.astra.datastax.com/v2/databases/<databaseID>/datacenters' \
     --header 'Accept: application/json' \
     --header 'Authorization: Bearer <application_token>'
    [
    	{
    		"id": "1234-5678-91011121-3141",
    		"name": "dc-1234-5678-91011121-3141",
    		"tier": "Serverless",
    		"cloudProvider": "GCP",
    		"region": "europe-west1",
    		"regionZone": "emea",
    		"regionClassification": "standard",
    		"capacityUnits": 1,
    		"studioUrl": "http://path-to-studio:port",
    		"grafanaUrl": "http://path-to-grafana:port",
    		"cqlshUrl": "http://path-to-cqlsh:port/cqlsh",
    		"graphqlUrl": "http://path-to-graqphl:port/api/graphql",
    		"dataEndpointUrl": "http://path-to-dataendpoint:port/api/rest",
    		"secureBundleUrl": "http://s3-signed-bundle-url",
    		"secureBundleInternalUrl": "http://s3-signed-internal-bundle-url",
    		"secureBundleMigrationProxyUrl": "http://s3-signed-proxy-bundle-url",
    		"secureBundleMigrationProxyInternalUrl": "http://s3-signed-proxy-internal-bundle-url"
    	}
    	{
    		"id": "9364-1208-04716476-8536",
    		"name": "dc-9364-1208-04716476-8536",
    		"tier": "Serverless",
    		"cloudProvider": "GCP",
    		"region": "us-east1",
    		"regionZone": "na",
    		"regionClassification": "standard",
    		"capacityUnits": 1,
    		"studioUrl": "http://path-to-studio:port",
    		"grafanaUrl": "http://path-to-grafana:port",
    		"cqlshUrl": "http://path-to-cqlsh:port/cqlsh",
    		"graphqlUrl": "http://path-to-graqphl:port/api/graphql",
    		"dataEndpointUrl": "http://path-to-dataendpoint:port/api/rest",
    		"secureBundleUrl": "http://s3-signed-bundle-url",
    		"secureBundleInternalUrl": "http://s3-signed-internal-bundle-url",
    		"secureBundleMigrationProxyUrl": "http://s3-signed-proxy-bundle-url",
    		"secureBundleMigrationProxyInternalUrl": "http://s3-signed-proxy-internal-bundle-url"
    	}
    
    ]

For more, see Invite a user to an organization in the DevOps API.

Delete a region from your database

The information displayed on the Connect page for your database is region specific.

Removing a region is not reversible. Proceed with caution.

  1. Check existing regions for your database:

    • cURL command (/v2)

    • Result

    curl --request GET \
     --url 'https://api.astra.datastax.com/v2/databases/<databaseID>/datacenters' \
     --header 'Accept: application/json' \
     --header 'Authorization: Bearer <application_token>'
    [
    	{
    		"id": "1234-5678-91011121-3141",
    		"name": "dc-1234-5678-91011121-3141",
    		"tier": "Serverless",
    		"cloudProvider": "GCP",
    		"region": "europe-west1",
    		"regionZone": "emea",
    		"regionClassification": "standard",
    		"capacityUnits": 1,
    		"studioUrl": "http://path-to-studio:port",
    		"grafanaUrl": "http://path-to-grafana:port",
    		"cqlshUrl": "http://path-to-cqlsh:port/cqlsh",
    		"graphqlUrl": "http://path-to-graqphl:port/api/graphql",
    		"dataEndpointUrl": "http://path-to-dataendpoint:port/api/rest",
    		"secureBundleUrl": "http://s3-signed-bundle-url",
    		"secureBundleInternalUrl": "http://s3-signed-internal-bundle-url",
    		"secureBundleMigrationProxyUrl": "http://s3-signed-proxy-bundle-url",
    		"secureBundleMigrationProxyInternalUrl": "http://s3-signed-proxy-internal-bundle-url"
    	}
    	{
    		"id": "9364-1208-04716476-8536",
    		"name": "dc-9364-1208-04716476-8536",
    		"tier": "Serverless",
    		"cloudProvider": "GCP",
    		"region": "us-east1",
    		"regionZone": "na",
    		"regionClassification": "standard",
    		"capacityUnits": 1,
    		"studioUrl": "http://path-to-studio:port",
    		"grafanaUrl": "http://path-to-grafana:port",
    		"cqlshUrl": "http://path-to-cqlsh:port/cqlsh",
    		"graphqlUrl": "http://path-to-graqphl:port/api/graphql",
    		"dataEndpointUrl": "http://path-to-dataendpoint:port/api/rest",
    		"secureBundleUrl": "http://s3-signed-bundle-url",
    		"secureBundleInternalUrl": "http://s3-signed-internal-bundle-url",
    		"secureBundleMigrationProxyUrl": "http://s3-signed-proxy-bundle-url",
    		"secureBundleMigrationProxyInternalUrl": "http://s3-signed-proxy-internal-bundle-url"
    	}
    
    ]
  2. Delete a region from your database:

    • cURL command (/v2)

    curl --request DELETE \
      --url 'https://api.astra.datastax.com/v2/databases/<databaseID>/datacenters/<datacenterID>/terminate' \
      --header 'Accept: application/json' \
      --header 'Authorization: Bearer <application_token>'
  3. Confirm your region was removed from your database:

    • cURL command (/v2)

    • Result

    curl --request GET \
     --url 'https://api.astra.datastax.com/v2/databases/<databaseID>/datacenters' \
     --header 'Accept: application/json' \
     --header 'Authorization: Bearer <application_token>'
    {
    	"id": "1234-5678-91011121-3141",
    	"name": "dc-1234-5678-91011121-3141",
    	"tier": "Serverless",
    	"cloudProvider": "GCP",
    	"region": "europe-west1",
    	"regionZone": "emea",
    	"regionClassification": "standard",
    	"capacityUnits": 1,
    	"studioUrl": "http://path-to-studio:port",
    	"grafanaUrl": "http://path-to-grafana:port",
    	"cqlshUrl": "http://path-to-cqlsh:port/cqlsh",
    	"graphqlUrl": "http://path-to-graqphl:port/api/graphql",
    	"dataEndpointUrl": "http://path-to-dataendpoint:port/api/rest",
    	"secureBundleUrl": "http://s3-signed-bundle-url",
    	"secureBundleInternalUrl": "http://s3-signed-internal-bundle-url",
    	"secureBundleMigrationProxyUrl": "http://s3-signed-proxy-bundle-url",
    	"secureBundleMigrationProxyInternalUrl": "http://s3-signed-proxy-internal-bundle-url"
    }

For more, see Remove or uninvite a user from an organization in the DevOps API.

What’s next?

Learn more about using multiple regions.