DataStax VPC Peering API

Use the DevOps VPC Peering APIs to manage VPC peering for Managed Cluster (Classic) databases.

OpenAPI Specification

datastax-vpc-peering-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 VPC Peering 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: VPC Peering
  description: Use the DevOps VPC Peering APIs to manage VPC peering for Managed Cluster (Classic) databases.
paths:
  /v2/peering/provider/{provider}/database/{databaseID}:
    get:
      tags:
      - VPC Peering
      summary: Retrieves VPC peering connection information for an Astra database in a given cloud provider
      description: Retrieves VPC peering connection details (if any exist) for Astra database
      operationId: GetVPCPeeringConnectionDetails
      security:
      - BearerAuth:
        - org-db-readpeering
        - org-db-addpeering
      parameters:
      - in: path
        name: provider
        description: The name of the provider, such as 'aws', 'azure' or 'gcp'
        required: true
        schema:
          type: string
          enum:
          - aws
          - azure
          - gcp
      - in: path
        name: databaseID
        description: The ID for the database
        required: true
        schema:
          type: string
      responses:
        '200':
          description: OK
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/VPCConnection'
        '401':
          $ref: '#/components/responses/Unauthorized'
        '403':
          $ref: '#/components/responses/Forbidden'
        '404':
          $ref: '#/components/responses/NotFound'
        '500':
          $ref: '#/components/responses/ServerError'
    post:
      tags:
      - VPC Peering
      summary: Creates a VPC peering connection
      description: Creates a VPC peering connection between an Astra database's VPC and the VPC provided
      operationId: CreateVPCPeeringConnection
      security:
      - BearerAuth:
        - org-db-addpeering
      parameters:
      - in: path
        name: provider
        description: The name of the provider, such as 'aws', 'azure' or 'gcp'
        required: true
        schema:
          type: string
          enum:
          - aws
          - azure
          - gcp
      - in: path
        name: databaseID
        description: The ID for the database
        required: true
        schema:
          type: string
      requestBody:
        content:
          application/json:
            schema:
              oneOf:
              - $ref: '#/components/schemas/AzureVPC'
              - $ref: '#/components/schemas/AmazonVPC'
              - $ref: '#/components/schemas/GoogleVPC'
      responses:
        '201':
          description: Created
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/VPCConnection'
        '401':
          $ref: '#/components/responses/Unauthorized'
        '403':
          $ref: '#/components/responses/Forbidden'
        '404':
          $ref: '#/components/responses/NotFound'
        '500':
          $ref: '#/components/responses/ServerError'
    delete:
      tags:
      - VPC Peering
      summary: Deletes an existing VPC peering connection
      description: Deletes a VPC peering connection for an Astra database on the given cloud provider
      operationId: DeleteVPCPeeringConnection
      security:
      - BearerAuth:
        - org-db-addpeering
      parameters:
      - in: path
        name: provider
        description: The name of the provider, such as 'aws', 'azure' or 'gcp'
        required: true
        schema:
          type: string
          enum:
          - aws
          - azure
          - gcp
      - in: path
        name: databaseID
        description: The ID for the database
        required: true
        schema:
          type: string
      responses:
        '204':
          $ref: '#/components/responses/NoContent'
        '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'
    NoContent:
      description: The request succeeded and no content is returned in response body
  schemas:
    AzureVPC:
      description: Details about an Azure virtual private cloud
      type: object
      required:
      - tenantId
      - subscriptionId
      - resourceGroupName
      - virtualNetworkName
      properties:
        tenantId:
          type: string
          description: ID of the Azure tenant the subscription resides in
        subscriptionId:
          type: string
          description: ID of the subscription the resource group and virtual network reside in
        resourceGroupName:
          type: string
          description: Name of the Resource Group the virtual network resides in
        virtualNetworkName:
          type: string
          description: Name of the Virtual Network the peering is connecting to
    GoogleVPC:
      description: Details about a GCP virtual private cloud
      type: object
      required:
      - projectId
      - vpcNetworkName
      properties:
        projectId:
          type: string
          description: ID of the GPC project the VPC belongs to
        vpcNetworkName:
          type: string
          description: Unique identifier for the VPC
    VPCConnection:
      description: A VPC peering connection with an Astra database
      type: object
      required:
      - connectionId
      - status
      - currentVpc
      - otherVpc
      properties:
        connectionId:
          type: string
          description: A unique identifier for the peering connection
        status:
          type: string
          description: The current status of the connection
        currentVpc:
          description: Details about the VPC where the Astra database is running
          $ref: '#/components/schemas/VPC'
        otherVpc:
          description: Details about the VPC peered to the Astra database's VPC
          $ref: '#/components/schemas/VPC'
    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
    AmazonVPC:
      description: Details about an AWS virtual private cloud
      type: object
      required:
      - accountId
      - vpcId
      - region
      - cidrBlock
      properties:
        accountId:
          type: string
          description: ID of the AWS account the VPC belongs to
          pattern: ^\d{12}$
          example: 123456780000
        vpcId:
          type: string
          description: Unique identifier for the VPC
          pattern: ^(vpc-)([a-z0-9]{8}|[a-z0-9]{17})$
          example: vpc-00001111aa332244c
        region:
          type: string
          description: AWS region the VPC resides in
        cidrBlock:
          type: string
          description: The CIDR block available for this VPC
          pattern: ^([0-9]{1,3}\.){3}[0-9]{1,3}(\/([0-9]|[1-2][0-9]|3[0-2]))?$
          example: 137.187.23.0/24
    Errors:
      description: Errors is a collection of individual Error objects
      type: object
      required:
      - errors
      properties:
        errors:
          type: array
          items:
            $ref: '#/components/schemas/Error'
    VPC:
      description: Details about a virtual private cloud
      type: object
      required:
      - provider
      - account
      - vpcId
      - cidrBlock
      properties:
        provider:
          type: string
          example: aws
          description: Cloud provider the VPC is hosted on
        account:
          type: string
          description: Account (AWS), Project (GCP) or Subscription (Azure) the VPC belongs to
        vpcId:
          type: string
          description: The VPC's unique identifier
        cidrBlock:
          type: string
          description: The CIDR block available for this VPC
          pattern: ^([0-9]{1,3}\.){3}[0-9]{1,3}(\/([0-9]|[1-2][0-9]|3[0-2]))?$
          example: 137.187.23.0/24
  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