DataStax Clone API

Use the DevOps API to clone databases.

OpenAPI Specification

datastax-clone-api-openapi.yml Raw ↑
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.</br> </br> 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 Clone 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: Clone
  description: Use the DevOps API to clone databases.
paths:
  /v2/databases/{databaseID}/snapshots:
    get:
      tags:
      - Clone
      summary: List a database's snapshots.
      description: List a database's snapshots.
      security:
      - BearerAuth:
        - org-db-view
      operationId: listSnapshots
      parameters:
      - $ref: '#/components/parameters/DatabaseIdParam'
      - in: query
        name: from
        description: Optional timestamp in RFC3339 format. Sets the earliest time from which to fetch snapshots. If alone, fetches all available snapshots recorded on or after the given time. Use with 'to' to create a defined range.
        required: false
        schema:
          type: string
          description: Optional timestamp from which to list the snapshots in RFC3339 format.
          example: 2006-01-02T15:04:05Z07:00
      - in: query
        name: to
        description: Optional timestamp in RFC3339 format. Sets the latest time from which to fetch snapshots. If alone, fetches all available snapshots recorded on or before the given time. Use with 'from' to create a defined range.
        required: false
        schema:
          type: string
          description: Optional timestamp until which to list the snapshots in RFC3339 format.
          example: 2006-01-02T15:04:05Z07:00
      - in: query
        name: sourceRegion
        required: false
        description: When set then identifies which region to use as the source.
        schema:
          type: string
  /v2/databases/{targetDBID}/cloneFrom/{sourceDBID}:
    post:
      tags:
      - Clone
      summary: Start a clone operation
      description: Start a clone operation.
      security:
      - BearerAuth:
        - org-db-create
      operationId: cloneFromDB
      parameters:
      - in: path
        name: targetDBID
        required: true
        description: The ID of the target database that you want to clone to.
        schema:
          type: string
      - in: path
        name: sourceDBID
        required: true
        description: The ID of the source database that you want to clone.
        schema:
          type: string
      - in: query
        name: snapshotID
        description: The ID of the snapshot from the source DB to use as the basis of the clone operation.
        required: true
        schema:
          type: string
      - in: query
        name: sourceRegion
        required: false
        description: The name of the region to use as the source, if cloning from a secondary region of a multi-region database.
        schema:
          type: string
      responses:
        '200':
          description: The clone operation successfully started.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/CloneStatus'
        '400':
          $ref: '#/components/responses/BadRequest'
        '401':
          $ref: '#/components/responses/Unauthorized'
        '403':
          $ref: '#/components/responses/Forbidden'
        '404':
          $ref: '#/components/responses/NotFound'
        '500':
          $ref: '#/components/responses/ServerError'
  /v2/databases/{targetDBID}/cloneStatus/{operationID}:
    get:
      tags:
      - Clone
      summary: Get the status of a clone operation.
      description: Get the status of a clone operation.
      security:
      - BearerAuth:
        - org-db-view
      operationId: cloneStatus
      parameters:
      - in: path
        name: targetDBID
        required: true
        description: The ID of the target database that you want to clone to.
        schema:
          type: string
      - in: path
        name: operationID
        required: true
        description: The ID of the clone operation.
        schema:
          type: string
      responses:
        '200':
          description: The clone operation successfully started.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/CloneStatus'
        '400':
          $ref: '#/components/responses/BadRequest'
        '401':
          $ref: '#/components/responses/Unauthorized'
        '403':
          $ref: '#/components/responses/Forbidden'
        '404':
          $ref: '#/components/responses/NotFound'
        '500':
          $ref: '#/components/responses/ServerError'
components:
  responses:
    ServerError:
      description: A server error occurred
      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'
    Forbidden:
      description: The user is forbidden to perform the operation
      content:
        application/json:
          schema:
            $ref: '#/components/schemas/Errors'
    NotFound:
      description: The specified database was not found
      content:
        application/json:
          schema:
            $ref: '#/components/schemas/Errors'
    BadRequest:
      description: Bad request
      content:
        application/json:
          schema:
            $ref: '#/components/schemas/Errors'
  parameters:
    DatabaseIdParam:
      in: path
      name: databaseID
      required: true
      description: String representation of the database ID
      schema:
        type: string
  schemas:
    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
    CloneStatus:
      description: Status information about an ongoing DB Clone operation.
      type: object
      properties:
        operationID:
          type: string
          description: ID of the ongoing operation.
        status:
          type: string
          enum:
          - RUNNING
          - DONE
          - ERROR
    Errors:
      description: Errors is a collection of individual Error objects
      type: object
      required:
      - errors
      properties:
        errors:
          type: array
          items:
            $ref: '#/components/schemas/Error'
  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