DataStax PCU API

Use the DevOps API to manage provisioned capacity units for eligible organizations and databases.

OpenAPI Specification

datastax-pcu-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 PCU 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: PCU
  description: Use the DevOps API to manage provisioned capacity units for eligible organizations and databases.
paths:
  /v2/pcus/actions/get:
    post:
      tags:
      - PCU
      summary: Gets the PCU groups
      description: Gets the PCU groups
      operationId: pcuGet
      requestBody:
        description: PCU group UUIDs
        required: true
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/PCUGroupGetRequest'
      responses:
        '200':
          description: Returns the PCU group
          content:
            application/json:
              schema:
                type: array
                items:
                  $ref: '#/components/schemas/PCUGroup'
        '400':
          $ref: '#/components/responses/BadRequest'
        5XX:
          $ref: '#/components/responses/ServerError'
  /v2/pcus/types:
    post:
      tags:
      - PCU
      summary: Gets the PCU Types
      description: Gets the PCU Types
      operationId: pcuGetTypes
      requestBody:
        description: PCU Types request
        required: true
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/PCUGroupTypesRequest'
      responses:
        '200':
          description: Returns the PCU Types
          content:
            application/json:
              schema:
                type: array
                items:
                  $ref: '#/components/schemas/PCUGroupTypeResponse'
        '400':
          $ref: '#/components/responses/BadRequest'
        5XX:
          $ref: '#/components/responses/ServerError'
  /v2/pcus/actions/get/{datacenterUUID}:
    get:
      tags:
      - PCU
      summary: Gets the PCU Group that contains the Datacenter UUID
      description: Given datacenter UUID it retrieves the PCU Group that this datacenter belongs to, if any
      operationId: pcuGroupGetByDatacenterUUID
      parameters:
      - in: path
        name: datacenterUUID
        required: true
        description: The DatacenterUUID we want the PCU Group for
        schema:
          type: string
      responses:
        '200':
          description: Returns the PCU Group
          content:
            application/json:
              schema:
                type: array
                items:
                  $ref: '#/components/schemas/PCUGroup'
        '400':
          $ref: '#/components/responses/BadRequest'
        5XX:
          $ref: '#/components/responses/ServerError'
  /v2/pcus/{pcuGroupUUID}:
    delete:
      tags:
      - PCU
      summary: Deletes a PCU Group
      description: Deletes a flexible capacity PCU group, based on the given PCU Group UUID.
      operationId: pcuDelete
      parameters:
      - in: path
        name: pcuGroupUUID
        required: true
        description: The PCU Group UUID to delete
        schema:
          type: string
      responses:
        '200':
          description: PCU Group deleted
        '400':
          $ref: '#/components/responses/BadRequest'
        5XX:
          $ref: '#/components/responses/ServerError'
  /v2/pcus:
    post:
      tags:
      - PCU
      summary: Creates a PCU group
      description: Given PCU group information, creates a PCU group
      operationId: pcuCreate
      requestBody:
        description: PCU group model.
        required: true
        content:
          application/json:
            schema:
              type: array
              minItems: 1
              maxItems: 1
              items:
                $ref: '#/components/schemas/PCUGroupCreateRequest'
      responses:
        '201':
          description: Returns the created PCU groups
          content:
            application/json:
              schema:
                type: array
                items:
                  $ref: '#/components/schemas/PCUGroup'
        '400':
          $ref: '#/components/responses/BadRequest'
        5XX:
          $ref: '#/components/responses/ServerError'
    put:
      tags:
      - PCU
      summary: Updates one or more PCU groups
      description: Given PCU group information, updates the PCU groups
      operationId: pcuUpdate
      requestBody:
        description: PCU Group model.
        required: true
        content:
          application/json:
            schema:
              type: array
              minItems: 1
              maxItems: 1
              items:
                $ref: '#/components/schemas/PCUGroupUpdateRequest'
      responses:
        '200':
          description: PCU groups updated
        '400':
          $ref: '#/components/responses/BadRequest'
        5XX:
          $ref: '#/components/responses/ServerError'
  /v2/pcus/association/{pcuGroupUUID}:
    get:
      tags:
      - PCU
      summary: Gets a PCU group UUID returns all associated datacenters and their status
      description: Given a PCU group UUID, returns all associated datacenters and their status
      operationId: pcuAssociationGet
      parameters:
      - in: path
        name: pcuGroupUUID
        required: true
        description: The PCU group UUID to get the associated datacenters and their status
        schema:
          type: string
      responses:
        '200':
          description: Returns the associated datacenters and their status
          content:
            application/json:
              schema:
                type: array
                items:
                  $ref: '#/components/schemas/PCUAssociation'
        '400':
          $ref: '#/components/responses/BadRequest'
        5XX:
          $ref: '#/components/responses/ServerError'
  /v2/pcus/association/transfer:
    post:
      tags:
      - PCU
      summary: Transfers a PCU group association
      description: Transfers a database, specified by datacenter ID, from one PCU group to another.
      operationId: pcuAssociationTransfer
      requestBody:
        description: PCUAssociation Transfer Request.
        required: true
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/PCUAssociationTransferRequest'
      responses:
        '202':
          description: Successfully accepted the PCU Association Transfer request
        '400':
          $ref: '#/components/responses/BadRequest'
        5XX:
          $ref: '#/components/responses/ServerError'
  /v2/pcus/association/{pcuGroupUUID}/{datacenterUUID}:
    post:
      tags:
      - PCU
      summary: Creates a PCU group association
      description: Given PCU group UUID and datacenter UUID, creates a PCU group association
      operationId: pcuAssociationCreate
      parameters:
      - in: path
        name: pcuGroupUUID
        required: true
        description: The PCU group UUID part of this association
        schema:
          type: string
      - in: path
        name: datacenterUUID
        required: true
        description: The datacenter UUID part of this association
        schema:
          type: string
      responses:
        '201':
          description: Created PCU association
        '400':
          $ref: '#/components/responses/BadRequest'
        5XX:
          $ref: '#/components/responses/ServerError'
    delete:
      tags:
      - PCU
      summary: Deletes a PCU group association
      description: Given datacenter UUID and PCU group UUID, delete the association
      operationId: pcuAssociationDelete
      parameters:
      - in: path
        name: pcuGroupUUID
        required: true
        description: The PCU group UUID part of this association
        schema:
          type: string
      - in: path
        name: datacenterUUID
        required: true
        description: The datacenter UUID part of this association
        schema:
          type: string
      responses:
        '200':
          description: PCU association deleted
        '400':
          $ref: '#/components/responses/BadRequest'
        5XX:
          $ref: '#/components/responses/ServerError'
  /v2/pcus/park/{pcuGroupUUID}:
    post:
      tags:
      - PCU
      summary: Parks a PCU group
      description: Parks a flexible capacity PCU group
      operationId: pcuGroupPark
      parameters:
      - in: path
        name: pcuGroupUUID
        required: true
        description: The PCU Group UUID to park
        schema:
          type: string
      responses:
        '200':
          description: Successfully initialized the parking operation
        '400':
          $ref: '#/components/responses/BadRequest'
        5XX:
          $ref: '#/components/responses/ServerError'
  /v2/pcus/unpark/{pcuGroupUUID}:
    post:
      tags:
      - PCU
      summary: Unparks a PCU group
      description: Unparks a flexible capacity PCU group
      operationId: pcuGroupUnpark
      parameters:
      - in: path
        name: pcuGroupUUID
        required: true
        description: The PCU Group UUID to unpark
        schema:
          type: string
      responses:
        '200':
          description: Successfully initialized the unparking operation
        '400':
          $ref: '#/components/responses/BadRequest'
        5XX:
          $ref: '#/components/responses/ServerError'
components:
  schemas:
    PCUGroupUpdateRequest:
      type: object
      description: PCU Group Update Request Model
      properties:
        pcuGroupUUID:
          type: string
          description: UUID of the PCU group to update
          example: 9aaddbb5-4622-447c-9bc5-b036bb9d7ed8
        title:
          type: string
          description: Title of the PCU group
          example: some title
        instanceType:
          type: string
          description: Instance type of the PCU group
          example: standard
        provisionType:
          type: string
          description: Provision type of the PCU group
          example: shared
        min:
          type: integer
          description: Minimum shared hourly PCUs in the PCU group
          example: 1
        max:
          type: integer
          description: Maximum shared hourly PCUs in the PCU group
          example: 1
        reserved:
          type: integer
          description: Absolute required PCUs in the PCU group
          example: 1
        description:
          type: string
          description: Description of the PCU group
          example: some-description
    PCUGroupTypesRequest:
      type: object
      description: This object is used to fetch the types available for PCU Group
      properties:
        region:
          type: string
          description: region for which to get the PCU Group types
          example: eu-west1
        provider:
          type: string
          description: provider (cloud) to filter the PCU Group sizes by
          example: shared
    PCUAssociation:
      type: object
      description: PCUAssociation information
      properties:
        datacenterUUID:
          type: string
          description: Datacenter UUID of the PCU association
          example: 48de8fc3-b8ec-4ed2-8951-4aeaf4c9e626
        pcuGroupUUID:
          type: string
          description: PCU group this association belongs to
          example: 48de8fc3-b8ec-4ed2-8951-4aeaf4c9e626
        provisioningStatus:
          type: string
          description: Provisioning status of the PCU association
          example: Accepted
        createdAt:
          type: string
          description: Creation time of the PCU association
          example: '2021-06-01T12:00:00.000Z'
        updatedAt:
          type: string
          description: Update time of the PCU association
          example: '2021-06-01T12:00:00.000Z'
        createdBy:
          type: string
          description: User who created the PCU association
          example: user
        updatedBy:
          type: string
          description: User who updated the PCU association
          example: user
    PCUGroup:
      type: object
      description: PCU Group Model
      properties:
        uuid:
          type: string
          description: UUID of the PCU group
          example: 9aaddbb5-4622-447c-9bc5-b036bb9d7ed8
        orgId:
          type: string
          description: Organization ID
          example: org-id
        title:
          type: string
          description: Title of the PCU group
          example: some title
        cloudProvider:
          type: string
          description: Cloud provider of the PCU group
          example:
          - AWS
          - GCP
          - AZURE
        region:
          type: string
          description: Region of the PCU group
          example: us-east-1
        instanceType:
          type: string
          description: Instance type of the PCU group
          example: standard
        pcuType:
          $ref: '#/components/schemas/PCUGroupTypeResponse'
        provisionType:
          type: string
          description: Provision type of the PCU group
          example: shared
        min:
          type: integer
          description: Minimum shared hourly PCUs in the PCU group
          example: 1
        max:
          type: integer
          description: Maximum shared hourly PCUs in the PCU group
          example: 1
        reserved:
          type: integer
          description: Absolute required PCUs in the PCU group
          example: 1
        description:
          type: string
          description: Description of the PCU group
          example: some description
        createdAt:
          type: string
          description: Creation time of the PCU group
          example: '2021-06-01T12:00:00.000Z'
        updatedAt:
          type: string
          description: Update time of the PCU group
          example: '2021-06-01T12:00:00.000Z'
        createdBy:
          type: string
          description: User who created the PCU group
          example: user
        updatedBy:
          type: string
          description: User who updated the PCU group
          example: user
        status:
          type: string
          description: Status of the PCU Group
          example: INITIALIZING
    PCUGroupGetRequest:
      type: object
      description: PCU groups to get
      properties:
        pcuGroupUUIDs:
          type: array
          description: PCU group UIDs
          required: false
          items:
            type: string
            example: 1
    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
    PCUGroupTypeResponse:
      type: object
      description: This object is used for the response of the PCU Group types request
      properties:
        type:
          type: string
          description: the size of the PCU Group type given the PCU Group types request
          example: standard
        region:
          type: string
          description: the region of that PCU Group type given the PCU Group types request
          example: eu-west-1
        provider:
          type: string
          description: the provider (cloud) of the PCU Group type given the PCU Group types request
          example: aws
        details:
          $ref: '#/components/schemas/PCUGroupTypeDetails'
    PCUAssociationTransferRequest:
      type: object
      description: PCU association transfer
      properties:
        fromPCUGroupUUID:
          type: string
          description: The PCU Group UUID from which we want to move an association
          example: 48de8fc3-b8ec-4ed2-8951-4aeaf4c9e626
        toPCUGroupUUID:
          type: string
          description: The PCU Group UUID to which we want to move the association
          example: 48de8fc3-b8ec-4ed2-8951-4aeaf4c9e626
        datacenterUUID:
          type: string
          description: The Datacenter UUID that is part of the fromPCUGroupUUID which we want to move to the toPCUGroupUUID
          example: 48de8fc3-b8ec-4ed2-8951-4aeaf4c9e626-1
    Errors:
      description: Errors is a collection of individual Error objects
      type: object
      required:
      - errors
      properties:
        errors:
          type: array
          items:
            $ref: '#/components/schemas/Error'
    PCUGroupCreateRequest:
      type: object
      description: PCU Group Create Request Model
      properties:
        orgID:
          type: string
          description: OrganizationID of the PCU group, ignored for authenticated users
          example: some-org
        title:
          type: string
          description: Title of the PCU group
          example: some title
        cloudProvider:
          type: string
          description: Cloud provider of the PCU group
          example:
          - AWS
          - GCP
          - AZURE
        region:
          type: string
          description: Region of the PCU group
          example: us-east-1
        instanceType:
          type: string
          description: Instance type of the PCU group
          example: standard
        provisionType:
          type: string
          description: Provision type of the PCU group
          example: shared
        min:
          type: integer
          description: Minimum shared hourly PCUs in the PCU group
          example: 1
        max:
          type: integer
          description: Maximum shared hourly PCUs in the PCU group
          example: 1
        reserved:
          type: integer
          description: Absolute required PCUs in the PCU group
          example: 1
        description:
          type: string
          description: Description of the PCU group
          example: some-description
    PCUGroupTypeDetails:
      type: object
      description: This object holds the details regarding the PCU Type
      properties:
        vCPU:
          type: integer
          format: int32
          description: vCPUs for this pcu type
        memory:
          type: string
          description: memory for this pcu type
        disk_cache:
          type: string
          description: disk cache for this pcu type
  responses:
    ServerError:
      description: A server error occurred
      content:
        application/json:
          schema:
            $ref: '#/components/schemas/Errors'
    BadRequest:
      description: Bad request
      content:
        application/json:
          schema:
            $ref: '#/components/schemas/Errors'
  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