openapi: 3.0.0
info:
description: Use this REST API to manage your DataStax Astra DB organizations and perform lifecycle actions for your Astra DB databases. To get started, use the /v2/clientIdSecrets endpoints to create a token to authenticate your API calls.
version: 2.3.0
title: Astra DevOps Access List Database Operations API
contact:
email: ad-astra@datastax.com
servers:
- url: https://api.astra.datastax.com/
security:
- BearerAuth:
- org-admin
- org-db-create
- org-db-terminate
- org-db-view
- org-db-expand
- org-db-suspend
- org-db-addpeering
- org-db-readpeering
- db-keyspace-create
- db-cql
- accesslist-write
- accesslist-read
- db-manage-privateendpoint
- db-manage-telemetry
- db-manage-backupconfiguration
tags:
- name: Database Operations
description: Use these DevOps APIs to manage Astra databases.
paths:
/v2/databases:
get:
tags:
- Database Operations
summary: Returns a list of databases
description: Get a list of databases visible to the user
security:
- BearerAuth:
- org-db-view
operationId: listDatabases
parameters:
- in: query
name: include
description: Allows filtering so that databases in listed states are returned
required: false
schema:
type: string
enum:
- nonterminated
- all
- active
- pending
- preparing
- prepared
- initializing
- parked
- parking
- unparking
- terminating
- terminated
- resizing
- error
- maintenance
- suspended
- suspending
default: nonterminated
- in: query
name: provider
description: Allows filtering so that databases from a given provider are returned
required: false
schema:
type: string
enum:
- ALL
- GCP
- AWS
- AZURE
default: ALL
- in: query
name: starting_after
schema:
type: string
required: false
description: Optional parameter for pagination purposes. Used as this value for starting retrieving a specific page of results
- in: query
name: limit
schema:
type: integer
default: 25
minimum: 1
maximum: 100
required: false
description: Optional parameter for pagination purposes. Specify the number of items for one page of data
responses:
'200':
description: successful operation
content:
application/json:
schema:
type: array
items:
$ref: '#/components/schemas/Database'
'400':
$ref: '#/components/responses/BadRequest'
'401':
$ref: '#/components/responses/Unauthorized'
5XX:
$ref: '#/components/responses/ServerError'
post:
tags:
- Database Operations
summary: Create a new database
description: Takes a user provided databaseInfo and returns the uuid for a new database
security:
- BearerAuth:
- org-db-create
operationId: createDatabase
requestBody:
description: Definition of new database
required: true
content:
application/json:
schema:
$ref: '#/components/schemas/DatabaseInfoCreate'
responses:
'201':
description: created
headers:
Location:
schema:
type: string
description: Database UUID
'400':
$ref: '#/components/responses/BadRequest'
'401':
$ref: '#/components/responses/Unauthorized'
'422':
$ref: '#/components/responses/UnprocessableEntity'
'500':
$ref: '#/components/responses/ServerError'
/v2/databases/{databaseID}:
get:
tags:
- Database Operations
summary: Finds database by ID
description: Returns specified database
security:
- BearerAuth:
- org-db-view
operationId: getDatabase
parameters:
- $ref: '#/components/parameters/DatabaseIdParam'
responses:
'200':
description: successful operation
content:
application/json:
schema:
$ref: '#/components/schemas/Database'
'400':
$ref: '#/components/responses/BadRequest'
'401':
$ref: '#/components/responses/Unauthorized'
'404':
$ref: '#/components/responses/NotFound'
5XX:
$ref: '#/components/responses/ServerError'
/v2/databases/{databaseID}/keyspaces/{keyspaceName}:
post:
tags:
- Database Operations
summary: Adds keyspace into database
description: Adds the specified keyspace to the database
security:
- BearerAuth:
- db-keyspace-create
operationId: addKeyspace
parameters:
- $ref: '#/components/parameters/DatabaseIdParam'
- $ref: '#/components/parameters/KeyspaceNameParam'
responses:
'201':
description: created
'401':
$ref: '#/components/responses/Unauthorized'
'404':
$ref: '#/components/responses/NotFound'
'409':
$ref: '#/components/responses/Conflict'
'422':
$ref: '#/components/responses/UnprocessableEntity'
5XX:
$ref: '#/components/responses/ServerError'
delete:
tags:
- Database Operations
description: Removes the specified keyspace from the database
operationId: removeKeyspace
parameters:
- description: String representation of the database ID
explode: false
in: path
name: databaseID
required: true
schema:
type: string
style: simple
- description: Name of database keyspace
explode: false
in: path
name: keyspaceName
required: true
schema:
type: string
style: simple
responses:
'204':
description: successful operation
'400':
content:
application/json:
schema:
$ref: '#/components/schemas/Errors'
description: Bad request
'401':
content:
application/json:
schema:
$ref: '#/components/schemas/Errors'
description: The user is unauthorized to perform the operation
'404':
content:
application/json:
schema:
$ref: '#/components/schemas/Errors'
description: The specified database was not found
5XX:
content:
application/json:
schema:
$ref: '#/components/schemas/Errors'
description: A server error occurred
summary: Removes keyspace
/v2/databases/{databaseID}/keyspaces/{keyspaceName}/actions/alterWithGraphEngine:
post:
tags:
- Database Operations
summary: Alter keyspace to enable graph engine
description: Alter the specified keyspace to enable graph engine capabilities. Only supports Managed Cluster (Classic) databases.
operationId: alterKeyspaceWithGraphEngine
parameters:
- $ref: '#/components/parameters/DatabaseIdParam'
- $ref: '#/components/parameters/KeyspaceNameParam'
responses:
'202':
description: keyspace has been well updated with graph engine capabilities.
'204':
description: keyspace doesn't exists.
'400':
description: Not a valid E Tier.
'401':
$ref: '#/components/responses/Unauthorized'
'500':
$ref: '#/components/responses/ServerError'
/v2/databases/{databaseID}/secureBundleURL:
post:
summary: Obtain zip for connecting to the database
description: 'Returns a temporary URL to download a zip file with certificates for connecting to the database. The URL expires after five minutes.
There are two types of the secure bundle URL:
- Internal - Use with VPC peering connections to use private networking and avoid public internet for communication.
- External - Use with any connection where the public internet is sufficient for communication between the application and the Astra database with MTLS.
Both types support MTLS for communication via the driver.'
security:
- BearerAuth:
- db-cql
operationId: generateSecureBundleURL
tags:
- Database Operations
parameters:
- $ref: '#/components/parameters/DatabaseIdParam'
- $ref: '#/components/parameters/AllDatacentersParam'
responses:
'200':
description: Credentials provides a link to download cluster secure-connect-*.zip file
content:
application/json:
schema:
oneOf:
- $ref: '#/components/schemas/CredsURL'
- $ref: '#/components/schemas/CredsURLList'
'400':
$ref: '#/components/responses/BadRequest'
'401':
$ref: '#/components/responses/Unauthorized'
'404':
$ref: '#/components/responses/NotFound'
'409':
$ref: '#/components/responses/Conflict'
5XX:
$ref: '#/components/responses/ServerError'
/v2/databases/{databaseID}/telemetry/metrics:
post:
summary: Configure Astra Remote Telemetry
description: 'Enables metrics exporting to an external system. Note: updates replace any existing config.'
security:
- BearerAuth:
- telemetry
operationId: configureTelemetry
parameters:
- $ref: '#/components/parameters/DatabaseIdParam'
tags:
- Database Operations
requestBody:
content:
application/json:
schema:
anyOf:
- $ref: '#/components/schemas/KafkaTelemetryRequest'
- $ref: '#/components/schemas/RemotePrometheusTelemetryRequest'
- $ref: '#/components/schemas/CloudWatchTelemetryRequest'
- $ref: '#/components/schemas/SplunkTelemetryRequest'
- $ref: '#/components/schemas/PulsarTelemetryRequest'
- $ref: '#/components/schemas/DatadogTelemetryRequest'
responses:
'202':
$ref: '#/components/responses/Accepted'
'400':
$ref: '#/components/responses/BadRequest'
'401':
$ref: '#/components/responses/Unauthorized'
'403':
$ref: '#/components/responses/Forbidden'
'404':
$ref: '#/components/responses/NotFound'
'409':
$ref: '#/components/responses/Conflict'
5XX:
$ref: '#/components/responses/ServerError'
get:
summary: Retrieve Remote Telemetry configuration
description: Get the current Telemetry configuration for the database
operationId: getTelemetryConfig
tags:
- Database Operations
parameters:
- $ref: '#/components/parameters/DatabaseIdParam'
responses:
'200':
description: The current stored Remote Telemetry configuration for this database
content:
application/json:
schema:
anyOf:
- $ref: '#/components/schemas/KafkaTelemetryRequest'
- $ref: '#/components/schemas/RemotePrometheusTelemetryRequest'
- $ref: '#/components/schemas/CloudWatchTelemetryRequest'
- $ref: '#/components/schemas/SplunkTelemetryRequest'
- $ref: '#/components/schemas/PulsarTelemetryRequest'
- $ref: '#/components/schemas/DatadogTelemetryRequest'
'400':
$ref: '#/components/responses/BadRequest'
'401':
$ref: '#/components/responses/Unauthorized'
'403':
$ref: '#/components/responses/Forbidden'
'404':
$ref: '#/components/responses/NotFound'
'409':
$ref: '#/components/responses/Conflict'
5XX:
$ref: '#/components/responses/ServerError'
/v2/databases/{databaseID}/terminate:
post:
summary: Terminates a database
description: Terminates a database
security:
- BearerAuth:
- org-db-terminate
operationId: terminateDatabase
tags:
- Database Operations
parameters:
- $ref: '#/components/parameters/DatabaseIdParam'
- in: query
name: preparedStateOnly
description: For internal use only. Used to safely terminate prepared databases.
required: false
schema:
type: boolean
default: false
responses:
'202':
$ref: '#/components/responses/Accepted'
'400':
$ref: '#/components/responses/BadRequest'
'401':
$ref: '#/components/responses/Unauthorized'
'404':
$ref: '#/components/responses/NotFound'
'409':
$ref: '#/components/responses/Conflict'
5XX:
$ref: '#/components/responses/ServerError'
/v2/databases/{databaseID}/resize:
post:
summary: Resizes a database
description: Resizes a Managed Cluster (Classic) database, specifying the desired total number of capacity units. This operation isn't applicable to Astra DB Serverless databases, and it has no relationship to Provisioned Capacity Units for Astra DB Serverless.
security:
- BearerAuth:
- org-db-expand
operationId: resizeDatabase
tags:
- Database Operations
parameters:
- $ref: '#/components/parameters/DatabaseIdParam'
requestBody:
description: Map containing the capacityUnits key and a value greater than the current number of capacity units. You can increase the number of CUs by no more than 3 units per operation.
required: true
content:
application/json:
schema:
$ref: '#/components/schemas/CapacityUnits'
responses:
'202':
$ref: '#/components/responses/Accepted'
'400':
$ref: '#/components/responses/BadRequest'
'401':
$ref: '#/components/responses/Unauthorized'
'404':
$ref: '#/components/responses/NotFound'
'409':
$ref: '#/components/responses/Conflict'
5XX:
$ref: '#/components/responses/ServerError'
/v2/databases/{databaseID}/datacenters:
get:
summary: List all database datacenters
description: Returns the list of configured ACTIVE datacenters for the given database, if you want to get the TERMINATED along with ACTIVE send query param all=true
operationId: listDatacenters
tags:
- Database Operations
parameters:
- $ref: '#/components/parameters/DatabaseIdParam'
- in: query
name: all
description: Allows retrieving datacenters in TERMINATED state along with ACTIVE ones
required: false
schema:
type: boolean
default: false
responses:
'200':
description: successful operation
content:
application/json:
schema:
type: array
items:
$ref: '#/components/schemas/Datacenter'
'401':
$ref: '#/components/responses/Unauthorized'
5XX:
$ref: '#/components/responses/ServerError'
post:
summary: Adds datacenters
description: Deploy a multi-region database to an additional AWS, Azure, or Google Cloud datacenter.
operationId: addDatacenters
tags:
- Database Operations
parameters:
- $ref: '#/components/parameters/DatabaseIdParam'
requestBody:
description: List of values necessary to add the datacenter. Can be used to add multiple datacenters at once.
required: true
content:
application/json:
schema:
type: array
items:
$ref: '#/components/schemas/Datacenter'
responses:
'201':
$ref: '#/components/responses/Accepted'
'400':
$ref: '#/components/responses/BadRequest'
'401':
$ref: '#/components/responses/Unauthorized'
'404':
$ref: '#/components/responses/NotFound'
5XX:
$ref: '#/components/responses/ServerError'
/v2/databases/{databaseID}/datacenters/{datacenterID}/terminate:
post:
summary: Terminates a datacenter
description: Terminates a datacenter
operationId: terminateDatacenter
tags:
- Database Operations
parameters:
- $ref: '#/components/parameters/DatabaseIdParam'
- $ref: '#/components/parameters/DatacenterIdParam'
responses:
'202':
$ref: '#/components/responses/Accepted'
'400':
$ref: '#/components/responses/BadRequest'
'401':
$ref: '#/components/responses/Unauthorized'
'404':
$ref: '#/components/responses/NotFound'
'409':
$ref: '#/components/responses/Conflict'
5XX:
$ref: '#/components/responses/ServerError'
/v2/databases/{databaseID}/resetPassword:
post:
summary: Resets Password
description: Sets a database password to the one specified in POST body
security:
- BearerAuth:
- org-db-create
operationId: resetPassword
tags:
- Database Operations
parameters:
- $ref: '#/components/parameters/DatabaseIdParam'
requestBody:
description: Map containing username and password. The specified password will be updated for the specified database user
required: true
content:
application/json:
schema:
$ref: '#/components/schemas/UserPassword'
responses:
'202':
$ref: '#/components/responses/Accepted'
'400':
$ref: '#/components/responses/BadRequest'
'401':
$ref: '#/components/responses/Unauthorized'
'404':
$ref: '#/components/responses/NotFound'
'409':
$ref: '#/components/responses/Conflict'
5XX:
$ref: '#/components/responses/ServerError'
/v2/databases/{databaseID}/engineType:
put:
summary: Updates the database engine type
description: Updates the engine type for the specified database. This operation is only applicable to Astra DB Serverless databases.
security:
- BearerAuth:
- org-db-create
operationId: updateEngineType
tags:
- Database Operations
parameters:
- $ref: '#/components/parameters/DatabaseIdParam'
requestBody:
description: Map containing the new engine type.
required: true
content:
application/json:
schema:
$ref: '#/components/schemas/EngineType'
responses:
'202':
$ref: '#/components/responses/Accepted'
'400':
$ref: '#/components/responses/BadRequest'
'401':
$ref: '#/components/responses/Unauthorized'
'404':
$ref: '#/components/responses/NotFound'
5XX:
$ref: '#/components/responses/ServerError'
/v3/databases/{databaseID}/cdc:
post:
summary: Enable CDC for a Database
description: Configure CDC for specified tables in a given database
security:
- BearerAuth:
- org-db-create
operationId: enableCDC
tags:
- Database Operations
parameters:
- $ref: '#/components/parameters/DatabaseIdParam'
requestBody:
description: Request payload containing the necessary configuration for enabling CDC, including tables and regions
required: true
content:
application/json:
schema:
$ref: '#/components/schemas/EnableCDCRequest'
responses:
'201':
$ref: '#/components/responses/Created'
'400':
$ref: '#/components/responses/BadRequest'
'401':
$ref: '#/components/responses/Unauthorized'
'404':
$ref: '#/components/responses/NotFound'
'409':
$ref: '#/components/responses/Conflict'
5XX:
$ref: '#/components/responses/ServerError'
put:
summary: Update CDC config
description: Update CDC config for tables in a given database
security:
- BearerAuth:
- org-db-create
operationId: updateCDC
tags:
- Database Operations
parameters:
- $ref: '#/components/parameters/DatabaseIdParam'
requestBody:
description: Request payload with CDC config to add, remove, or update tables and regions
required: true
content:
application/json:
schema:
$ref: '#/components/schemas/EnableCDCRequest'
responses:
'201':
$ref: '#/components/responses/Created'
'400':
$ref: '#/components/responses/BadRequest'
'401':
$ref: '#/components/responses/Unauthorized'
'404':
$ref: '#/components/responses/NotFound'
'409':
$ref: '#/components/responses/Conflict'
5XX:
$ref: '#/components/responses/ServerError'
get:
summary: List all active CDC configs
description: Returns a list of all tables with active CDC configurations for the specified database
security:
- BearerAuth:
- org-db-view
operationId: getCDC
tags:
- Database Operations
parameters:
- $ref: '#/components/parameters/DatabaseIdParam'
responses:
'200':
description: successful operation
content:
application/json:
schema:
$ref: '#/components/schemas/ListCDCResponse'
'401':
$ref: '#/components/responses/Unauthorized'
'404':
$ref: '#/components/responses/NotFound'
5XX:
$ref: '#/components/responses/ServerError'
delete:
summary: Delete CDC for tables in Database
description: Delete CDC for specified tables in a given database
security:
- BearerAuth:
- org-db-terminate
operationId: deleteCDC
tags:
- Database Operations
parameters:
- $ref: '#/components/parameters/DatabaseIdParam'
requestBody:
description: Request payload containing details of the tables for which CDC should be removed
required: true
content:
application/json:
schema:
$ref: '#/components/schemas/DeleteCDCRequest'
responses:
'204':
$ref: '#/components/responses/NoContent'
'400':
$ref: '#/components/responses/BadRequest'
'401':
$ref: '#/components/responses/Unauthorized'
'404':
$ref: '#/components/responses/NotFound'
'409':
$ref: '#/components/responses/Conflict'
5XX:
$ref: '#/components/responses/ServerError'
/v3/databases/{databaseID}/keyspaces/{keyspaceName}/tables/{tableName}/cdc:
get:
summary: Check CDC status for a table
description: Fetches the CDC status and configuration for the specified table in the given database
security:
- BearerAuth:
- org-db-view
operationId: getCDCStatus
tags:
- Database Operations
parameters:
- $ref: '#/components/parameters/DatabaseIdParam'
- $ref: '#/components/parameters/TableNameParam'
- $ref: '#/components/parameters/KeyspaceNameParam'
responses:
'200':
description: successful operation
content:
application/json:
schema:
type: array
items:
$ref: '#/components/schemas/GetCDCResponse'
'401':
$ref: '#/components/responses/Unauthorized'
'404':
$ref: '#/components/responses/NotFound'
5XX:
$ref: '#/components/responses/ServerError'
/v2/databases/{databaseID}/keyspaces/{keyspaceName}/tables/{tableName}/solr/createCorewithconfigs:
post:
tags:
- Database Operations
summary: Create a Solr index for an E tier Managed Cluster (Classic) database.
description: 'If `generateResources` is set to `true`, the Solr index is automatically generated based on existing CQL table metadata. If `generateResources` is set to `false`, provide `` and `` resources to create the search index.
'
operationId: createSolrIndex
parameters:
- $ref: '#/components/parameters/DatabaseIdParam'
- $ref: '#/components/parameters/KeyspaceNameParam'
- $ref: '#/components/parameters/TableNameParam'
- name: generateResources
in: query
required: true
schema:
type: boolean
- name: schema
in: query
required: false
schema:
type: string
format: binary
example: '@/mylocal/schema.xml'
- name: solrconfig
in: query
required: false
schema:
type: string
format: binary
example: '@/mylocal/solrconfig.xml'
responses:
'202':
description: The registration for SolrIndex creation has been accepted and is proceeding. Please note that this does not guarantee success at this step.
'204':
description: Keyspace doesn't exist.
'400':
description: Not a valid E Tier.
'401':
$ref: '#/components/responses/Unauthorized'
'500':
$ref: '#/components/responses/ServerError'
components:
schemas:
CredsURL:
description: CredsURL from which the creds zip may be downloaded
type: object
required:
- downloadURL
properties:
downloadURL:
type: string
example: nifty.cloud.datastax.com:9092
description: DownloadURL is only valid for about 5 minutes
downloadURLInternal:
type: string
example: internal-nifty.cloud.datastax.com:9092
description: Internal DownloadURL is only valid for about 5 minutes
downloadURLMigrationProxy:
type: string
example: proxy-nifty.cloud.datastax.com:9092
description: Migration Proxy DownloadURL is only valid for about 5 minutes
downloadURLMigrationProxyInternal:
type: string
example: proxy-nifty.cloud.datastax.com:9092
description: Internal Migration Proxy DownloadURL is only valid for about 5 minutes
datcenterID:
type: string
example: dde308f5-a8b0-474d-afd6-81e5689e3e25
region:
type: string
example: us-east-1
cloudProvider:
type: string
example: AWS
customDomainBundles:
type: array
items:
type: object
properties:
domain:
type: string
example: example.domain.com
cqlFQDN:
type: string
example: dde308f5-a8b0-474d-afd6-81e5689e3e25-us-east-1.db.example.domain.com
apiFQDN:
type: string
example: dde308f5-a8b0-474d-afd6-81e5689e3e25-us-east-1.apps.example.domain.com
dashboardFQDN:
type: string
example: dde308f5-a8b0-474d-afd6-81e5689e3e25-us-east-1.dashboard.example.domain.com
downloadURL:
type: string
example: nifty.cloud.datastax.com:9092
RemotePrometheusBasicAuthTelemetryRequest:
allOf:
- $ref: '#/components/schemas/RemotePrometheusAuthRequest'
- type: object
description: Telemetry Config for Prometheus Remote Write with Basic Authentication
required:
- user
- password
properties:
user:
type: string
example: promuser
description: Username for Prometheus Remote Write Authentication
password:
type: string
format: password
example: prompassword
description: Password for Prometheus Remote Write Authentication
SplunkTelemetryRequest:
description: Telemetry Config for Splunk. The metric name is formatted differently from other sinks, using dot to connect namespaces. The format entails default_namespace.kubernetes_grouping_namespace. For example, a metric_name in Splunk sink would be astra.db_range_latency_seconds:rate1m.
type: object
properties:
splunk:
$ref: '#/components/schemas/SplunkTelemetryRequestBlock'
required:
- splunk
DeleteCDCRequest:
description: Request schema for deleting CDC on a database
type: object
required:
- databaseID
- tables
properties:
databaseID:
type: string
example: 1234-5678-91011121-3141
description: Unique identifier for the database
tables:
type: array
description: List of tables for which CDC needs to be deleted
items:
type: object
required:
- tableName
- keyspaceName
properties:
tableName:
type: string
example: tableName
description: Name of the table
keyspaceName:
type: string
example: default
description: Name of the keyspace
Database:
type: object
description: Database contains the key information about a database
required:
- id
- orgId
- ownerId
- info
- status
properties:
id:
type: string
example: 1234-5678-91011121-3141
orgId:
type: string
example: organizations/7142-1283-54249566-3707
ownerId:
type: string
example: users/8243-2404-85664728-0889
info:
$ref: '#/components/schemas/DatabaseInfo'
creationTime:
type: string
description: CreationTime in ISO RFC3339 format
example: '2012-11-01T22:08:41+00:00'
terminationTime:
type: string
description: TerminationTime in ISO RFC3339 format
example: '2019-11-01T22:08:41+00:00'
status:
$ref: '#/components/schemas/StatusEnum'
storage:
$ref: '#/components/schemas/Storage'
availableActions:
type: array
items:
type: string
enum:
- park
- unpark
- resize
- resetPassword
- addKeyspace
- addDatacenters
- terminateDatacenter
- getCreds
- terminate
- removeKeyspace
- removeMigrationProxy
- launchMigrationProxy
example: addKeyspace, terminate
message:
type: string
description: Message to the customer about the cluster
example: Auto parked due to inactivity
grafanaUrl:
type: string
example: http://path-to-grafana:port
cqlshUrl:
type: string
example: http://path-to-cqlsh:port/cqlsh
graphqlUrl:
type: string
example: http://path-to-graqphl:port/api/graphql
dataEndpointUrl:
type: string
example: http://path-to-dataendpoint:port/api/rest
KafkaTelemetryRequest:
description: Telemetry Config for Kafka
type: object
properties:
kafka:
$ref: '#/components/schemas/KafkaTelemetryRequestBlock'
required:
- kafka
CredsURLList:
type: array
description: an array of credsURL
items:
$ref: '#/components/schemas/CredsURL'
Datacenter:
type: object
description: Datacenter is the definition of a cassandra datacenter
required:
- tier
- cloudProvider
- region
- status
properties:
id:
type: string
example: 1234-5678-91011121-3141-1
name:
type: string
example: dc-1234-5678-91011121-3141
tier:
type: string
example: Developer
status:
type: string
example: ACTIVE
cloudProvider:
type: string
example: GCP
region:
type: string
example: us-east1
regionZone:
type: string
example: na
enum:
- emea
- apac
- na
- sa
regionClassification:
type: string
example: standard
enum:
- standard
- premium
- premium_plus
capacityUnits:
type: integer
example: 1
description: CapacityUnits is the amount of space available for horizontal scaling for a Managed Cluster (Classic) database. This parameter has no relationship to Provisioned Capacity Units for Astra DB Serverless.
grafanaUrl:
type: string
example: http://path-to-grafana:port
cqlshUrl:
type: string
example: http://path-to-cqlsh:port/cqlsh
graphqlUrl:
type: string
example: http://path-to-graqphl:port/api/graphql
dataEndpointUrl:
type: string
example: http://path-to-dataendpoint:port/api/rest
secureBundleUrl:
type: string
example: http://s3-signed-bundle-url
secureBundleInternalUrl:
type: string
example: http://s3-signed-internal-bundle-url
secureBundleMigrationProxyUrl:
type: string
example: http://s3-signed-proxy-bundle-url
secureBundleMigrationProxyInternalUrl:
type: string
example: http://s3-signed-proxy-internal-bundle-url
streamingTenant:
type: object
properties:
streamingClusterName:
type: string
example: pulsar-gcp-useast1
streamingTenantName:
type: string
example: cdc-streaming
pcuGroupUUID:
type: string
example: 9c531886-ddde-401d-bc0f-a708394975c2
description: If pcuGroupUUID is set, it will create the DB and put it into this PCU
DatadogTelemetryRequestBlock:
description: Telemetry Config Block for Datadog servers
type: object
required:
- api_key
properties:
api_key:
type: string
description: API key to authenticate to the Datadog API
site:
type: string
description: The Datadog site to send data to, which should be the site parameter corresponding to the Datadog site URL
example: datadoghq.com
DatabaseInfoCreate:
type: object
required:
- name
- cloudProvider
- tier
- capacityUnits
- region
description: DatabaseInfo is the user-provided information describing a database
properties:
name:
type: string
example: mySplendidDatabase
description: Name of the database--user friendly identifier
keyspace:
type: string
example: myKeyspace
description: Optional name for the database's initial keyspace. If not passed, the initial keyspace is created with the name "default_keyspace".
cloudProvider:
type: string
example: AWS
enum:
- AWS
- GCP
- AZURE
description: CloudProvider where the database lives
tier:
type: string
example: developer
enum:
- developer
- C10
- C20
- C40
- D10
- D20
- D40
- serverless
description: Tier defines the compute power (vertical scaling) for the database, developer gcp is the free tier.
capacityUnits:
type: integer
example: 1
minimum: 1
maximum: 100
description: CapacityUnits is the amount of space available for horizontal scaling for a Managed Cluster (Classic) database. For the free tier, the max CU is 1. For Cxx and Dxx tiers, the max CU on startup is 12. This parameter has no relationship to Provisioned Capacity Units for Astra DB Serverless.
region:
type: string
example: us-west-2
description: Region refers to the cloud region.
dbType:
type: string
example: vector
enum:
- vector
description: Type of the serverless database, currently only supported value is "vector". "vector" creates a cassandra database with vector support. Field not being inputted creates default serverless database.
pcuGroupUUID:
type: string
example: 9c531886-ddde-401d-bc0f-a708394975c2
description: If pcuGroupUUID is set, it will create the DB and put it into this PCU
RemotePrometheusTelemetryRequestBlock:
description: Telemetry Config for Prometheus Remote Write
oneOf:
- $ref: '#/components/schemas/RemotePrometheusBasicAuthTelemetryRequest'
- $ref: '#/components/schemas/RemotePrometheusBearerAuthTelemetryRequest'
discriminator:
propertyName: auth_strategy
mapping:
basic: '#/components/schemas/RemotePrometheusBasicAuthTelemetryRequest'
bearer: '#/components/schemas/RemotePrometheusBearerAuthTelemetryRequest'
KafkaTelemetryRequestBlock:
description: Telemetry Config Block for Kafka servers
type: object
required:
- bootstrap_servers
- topic
- sasl_mechanism
- sasl_username
- sasl_password
properties:
bootstrap_servers:
type: array
items:
$ref: '#/components/schemas/KafkaBootstrapServer'
topic:
type: string
example: astra_metrics_events
description: Kafka topic to write metrics to; user must create this topic on their server(s)
sasl_mechanism:
type: string
enum:
- GSSAPI
- PLAIN
- SCRAM-SHA-256
- SCRAM-SHA-512
description: Kafka SASL mechanism
sasl_username:
type: string
example: kafkauser
description: Username for Kafka Authentication
sasl_password:
type: string
example: kafkapassword
description: Password for Kafka Authentication
security_protocol:
type: string
enum:
- SASL_PLAINTEXT
- SASL_SSL
description: "NOTE: This is an advanced option, which most users will not need to set. Most Kafka installations will not require this setting for us to connect. Users of hosted Kafka on Confluent Cloud may need to set 'SASL_SSL'. Valid Options:\n * `SASL_PLAINTEXT` - SASL Authenticated, non-encrypted channel\n * `SASL_SSL` - SASL Authenticated, encrypted channel\n! Non-Authenticated options (i.e., `SSL` and `PLAINTEXT`) are not supported.\n"
PulsarTelemetryRequestBlock:
description: Telemetry Config
oneOf:
- $ref: '#/components/schemas/PulsarTokenAuthTelemetryRequest'
- $ref: '#/components/schemas/PulsarOAuth2TelemetryRequest'
discriminator:
propertyName: auth_strategy
mapping:
token: '#/components/schemas/PulsarTokenAuthTelemetryRequest'
oauth2: '#/components/schemas/PulsarOAuth2TelemetryRequest'
StatusEnum:
type: string
enum:
- ACTIVE
- PENDING
- PREPARING
- PREPARED
- INITIALIZING
- PARKED
- PARKING
- UNPARKING
- TERMINATED
- TERMINATING
- RESIZING
- ERROR
- MAINTENANCE
- SUSPENDED
- UNKNOWN
example: ACTIVE
DatabaseInfo:
type: object
description: DatabaseInfo is the user-provided information describing a database
properties:
name:
type: string
example: mySplendidDatabase
description: Name of the database--user friendly identifier
keyspace:
type: string
example: myKeyspace
description: Keyspace name in database
cloudProvider:
type: string
example: AWS
enum:
- AWS
- GCP
- AZURE
description: CloudProvider where the database lives
tier:
type: string
example: developer
enum:
- developer
- C10
- C20
- C40
- D10
- D20
- D40
- serverless
description: Tier defines the compute power (vertical scaling) for the database
capacityUnits:
type: integer
example: 1
minimum: 1
maximum: 100
description: CapacityUnits is the amount of space available for horizontal scaling for a Managed Cluster (Classic) database. For the free tier, the max CU is 1. For Cxx and Dxx tiers, the max CU on startup is 12. This parameter has no relationship to Provisioned Capacity Units for Astra DB Serverless.
region:
type: string
example: us-west-2
description: Region refers to the cloud region.
additionalKeyspaces:
type: array
maximum: 1
items:
type: string
example: additionalKeyspace
description: Additional keyspaces names in database
dbType:
type: string
example: vector
enum:
- vector
description: Type of the serverless database, currently only supported value is "vector". "vector" creates a cassandra database with vector support. Field not being inputted creates default serverless database.
Error:
description: ModelError information that is returned to users
type: object
required:
- id
- message
properties:
ID:
type: integer
example: 123
description: API specific error code
message:
type: string
example: Something is broken
description: User-friendly description of error
PulsarOAuth2TelemetryRequest:
allOf:
- $ref: '#/components/schemas/PulsarAuthRequest'
- type: object
description: Telemetry config
required:
- oauth2_credentials_url
- oauth2_issuer_url
properties:
oauth2_credentials_url:
type: string
description: Credentials URL For OAuth2
oauth2_issuer_url:
type: string
description: Issuer URL for OAuth2
example: https://astra-oauth2.example.com
oauth2_audience:
type: string
description: Audience for OAuth2
example: astra-pulsar
oauth2_scope:
type: string
description: Scope for OAuth2
example: db-telemetry
RemotePrometheusBearerAuthTelemetryRequest:
allOf:
- $ref: '#/components/schemas/RemotePrometheusAuthRequest'
- type: object
description: Telemetry Config for Prometheus Remote Write with Bearer Token
required:
- token
properties:
token:
type: string
format: password
example: AstraTelemetry123
description: Bearer Token for Prometheus Remote Write Authentication
GetCDCResponse:
description: Request schema for enabling CDC on a database
type: object
required:
- orgID
- databaseID
- databaseName
- tables
- regions
- status
properties:
orgID:
type: string
example: 7142-1283-54249566-3707
description: Unique identifier for the user org
databaseID:
type: string
example: 1234-5678-91011121-3141
description: Unique identifier for the database
databaseName:
type: string
example: dbName
description: Name of the database
regions:
type: array
description: List of regions where CDC is enabled
items:
type: object
required:
- datacenterID
- datacenterRegion
- streamingClusterName
- streamingTenantName
properties:
datacenterID:
type: string
example: 1234-5678-91011121-3141-1
description: Unique identifier for the data center
datacenterRegion:
type: string
example: us-east1
description: Cloud region where the data center is located
streamingClusterName:
type: string
example: pulsar-gcp-useast1-dev
description: Name of the streaming cluster
streamingTenantName:
type: string
example: cdc-streaming
description: Name of the streaming tenant
status:
type: string
example: Active
description: CDC config status
RemotePrometheusTelemetryRequest:
description: Telemetry Config for Prometheus Remote Write
type: object
properties:
prometheus_remote:
$ref: '#/components/schemas/RemotePrometheusTelemetryRequestBlock'
required:
- prometheus_remote
Errors:
description: Errors is a collection of individual Error objects
type: object
required:
- errors
properties:
errors:
type: array
items:
$ref: '#/components/schemas/Error'
RemotePrometheusAuthRequest:
description: The base object for a Prometheus Remote Write object
type: object
required:
- endpoint
- auth_strategy
properties:
endpoint:
type: string
example: https://prometheus.example.com/api/prom/push
description: full HTTP or HTTPS address and path for prometheus endpoint
auth_strategy:
type: string
enum:
- basic
- bearer
description: "The authentication strategy used by your Prometheus setup.\n * `basic` - Basic Authentication (Username & Password)\n * `bearer` - Bearer Token Authentication\n"
EnableCDCRequest:
description: Request schema for enabling CDC on a database
type: object
required:
- databaseName
- tables
- regions
properties:
databaseName:
type: string
example: dbName
description: Name of the database
tables:
type: array
description: List of tables for which CDC needs to be enabled
items:
type: object
required:
- tableName
- keyspaceName
properties:
tableName:
type: string
example: tableName
description: Name of the table
keyspaceName:
type: string
example: default
description: Name of the keyspace
regions:
type: array
description: List of regions where CDC will be enabled
items:
type: object
required:
- datacenterID
- datacenterRegion
- streamingClusterName
- streamingTenantName
properties:
datacenterID:
type: string
example: 1234-5678-91011121-3141-1
description: Unique identifier for the data center
datacenterRegion:
type: string
example: us-east1
description: Cloud region where the data center is located
streamingClusterName:
type: string
example: pulsar-gcp-useast1-dev
description: Name of the streaming cluster
streamingTenantName:
type: string
example: cdc-streaming
description: Name of the streaming tenant
KafkaBootstrapServer:
description: A Hostname and Port combination for a Kafka Bootstrap Server
type: string
example: kafka-0.yourdomain.com:9092
UserPassword:
description: UserPassword specifies a username and new password. The specified password will be updated for the specified database user
type: object
properties:
username:
type: string
example: dbusername
password:
type: string
example: MyNewSecur3Passw0rd
description: New password (min 6 characters)
PulsarTelemetryRequest:
description: Telemetry Config for Pulsar servers
type: object
properties:
pulsar:
$ref: '#/components/schemas/PulsarTelemetryRequestBlock'
required:
- pulsar
PulsarTokenAuthTelemetryRequest:
allOf:
- $ref: '#/components/schemas/PulsarAuthRequest'
- type: object
description: Telemetry config
required:
- token
properties:
token:
type: string
format: password
example: AstraTelemetry123
description: Bearer Token for Pulsar Authentication
CapacityUnits:
description: CapacityUnits is the amount of space available for horizontal scaling for a Managed Cluster (Classic) database. This parameter has no relationship to Provisioned Capacity Units for Astra DB Serverless.
type: object
properties:
capacityUnits:
type: integer
minimum: 1
maximum: 100
example: 4
description: For Managed Cluster (Classic) databases, you can increase CapacityUnits by a maximum of three additional CUs per operation. You cannot reduce a database's CUs.
CloudWatchTelemetryRequestBlock:
description: Telemetry Config Block for CloudWatch servers
type: object
required:
- access_key
- secret_key
- region
properties:
access_key:
type: string
description: AWS access key
secret:
type: string
description: AWS secret
region:
type: string
description: AWS region for CloudWatch
example: us-east-1
Storage:
description: Storage contains the information about how much storage space a cluster has available
type: object
required:
- nodeCount
- replicationFactor
- totalStorage
properties:
nodeCount:
type: integer
example: 6
description: NodeCount for the cluster
replicationFactor:
type: integer
example: 3
description: ReplicationFactor is the number of nodes storing a piece of data
totalStorage:
type: integer
example: 800
description: TotalStorage of the cluster in GB
usedStorage:
type: integer
example: 348
description: UsedStorage in GB
displayStorage:
type: integer
example: 348
description: DisplayStorage in GB
SplunkTelemetryRequestBlock:
description: Telemetry Config Block for Splunk servers
type: object
required:
- endpoint
- index
- token
properties:
endpoint:
type: string
example: https://http-inputs-YOURCOMPANY.splunkcloud.com
description: Path for Splunk endpoint, which should always be a full HTTPS address.
index:
type: string
example: astra_third_party_metrics_test
description: Splunk index to write metrics to. Index must be set so the Splunk token has permission to write to it.
token:
type: string
example: splunk-token
description: Token for Splunk Authentication
source:
type: string
example: splunk-source
description: Source of events sent to this sink. If unset, we set it to a default value, eg. "astradb".
sourcetype:
type: string
example: splunk-sourcetype
description: Sourcetype of events sent to this sink. If unset, we set it to a default value, eg. "astradb-metrics".
ListCDCResponse:
description: Request schema for enabling CDC on a database
type: object
required:
- orgID
- databaseID
- databaseName
- tables
- regions
properties:
orgID:
type: string
example: 7142-1283-54249566-3707
description: Unique identifier for the user org
databaseID:
type: string
example: 1234-5678-91011121-3141
description: Unique identifier for the database
databaseName:
type: string
example: dbName
description: Name of the database
tables:
type: array
description: List of tables where CDC is enabled
items:
type: object
required:
- tableName
- keyspaceName
properties:
tableName:
type: string
example: tableName
description: Name of the table
keyspaceName:
type: string
example: default
description: Name of the keyspace
regions:
type: array
description: List of regions where CDC is enabled
items:
type: object
required:
- datacenterID
- datacenterRegion
- streamingClusterName
- streamingTenantName
properties:
datacenterID:
type: string
example: 1234-5678-91011121-3141-1
description: Unique identifier for the data center
datacenterRegion:
type: string
example: us-east1
description: Cloud region where the data center is located
streamingClusterName:
type: string
example: pulsar-gcp-useast1-dev
description: Name of the streaming cluster
streamingTenantName:
type: string
example: cdc-streaming
description: Name of the streaming tenant
PulsarAuthRequest:
description: The base object for a Pulsar object
type: object
required:
- endpoint
- topic
- auth_strategy
properties:
endpoint:
type: string
example: pulsar+ssl://pulsar.example.com
description: URL for your Pulsar Broker
auth_strategy:
type: string
enum:
- token
- oauth2
description: "The authentication strategy used by your Pulsar broker.\n * `token` - a bearer token is provided to authenticate\n * `oauth2` - OAuth2 is used to authenticate\n"
topic:
type: string
example: persistent://test/default/my-topic-123
description: The full name of Pulsar topic to publish telemetry to
auth_name:
type: string
example: foobar
description: The basic authentication name.
EngineType:
description: EngineType is the type of database engine used by the database
type: object
properties:
engineType:
type: string
example: serverless
description: The type of database engine used by the database. Currently, the supported values are "cassandra-vector" and "serverless", respectively for Cassandra with vector support and Astra DB Serverless with no vector support.
CloudWatchTelemetryRequest:
description: Telemetry Config Block for AWS CloudWatch
type: object
properties:
cloudwatch:
$ref: '#/components/schemas/CloudWatchTelemetryRequestBlock'
required:
- cloudwatch
DatadogTelemetryRequest:
description: Telemetry Config Block for Datadog
type: object
properties:
Datadog:
$ref: '#/components/schemas/DatadogTelemetryRequestBlock'
required:
- Datadog
parameters:
TableNameParam:
in: path
name: tableName
required: true
description: Name of database table
schema:
type: string
DatabaseIdParam:
in: path
name: databaseID
required: true
description: String representation of the database ID
schema:
type: string
AllDatacentersParam:
in: query
name: all
required: false
schema:
type: boolean
default: false
description: Optional parameter to obtain secure-connect-*.zip for one (false) or many (true) datacenters. If false, `200` returns `CredsURL` (download URLs for one datacenter). If true, `200` returns `CredsURLList` (download URLs for multiple datacenters).
DatacenterIdParam:
in: path
name: datacenterID
required: true
description: String representation of the datacenter ID
schema:
type: string
KeyspaceNameParam:
in: path
name: keyspaceName
required: true
description: Name of database keyspace
schema:
type: null
responses:
NoContent:
description: The request succeeded and no content is returned in response body
Conflict:
description: The database is not in a valid state to perform the operation
content:
application/json:
schema:
$ref: '#/components/schemas/Errors'
Unauthorized:
description: The user is unauthorized to perform the operation
content:
application/json:
schema:
$ref: '#/components/schemas/Errors'
BadRequest:
description: Bad request
content:
application/json:
schema:
$ref: '#/components/schemas/Errors'
Accepted:
description: The request was accepted
Forbidden:
description: The user is forbidden to perform the operation
content:
application/json:
schema:
$ref: '#/components/schemas/Errors'
ServerError:
description: A server error occurred
content:
application/json:
schema:
$ref: '#/components/schemas/Errors'
NotFound:
description: The specified database was not found
content:
application/json:
schema:
$ref: '#/components/schemas/Errors'
UnprocessableEntity:
description: The structured data in the request could not be parsed
content:
application/json:
schema:
$ref: '#/components/schemas/Errors'
Created:
description: The request completed successfully and created an object
securitySchemes:
BearerAuth:
description: An application token must be passed in header in order to access the API. https://docs.datastax.com/en/astra-db-serverless/administration/manage-application-tokens.html
type: http
scheme: bearer