CockroachDB PrivateEndpoints API

Manage private endpoint services and connections for secure VPC-level access to clusters.

OpenAPI Specification

cockroachdb-privateendpoints-api-openapi.yml Raw ↑
openapi: 3.1.0
info:
  title: CockroachDB Cloud APIKeys PrivateEndpoints API
  description: The CockroachDB Cloud API is a REST interface that provides programmatic access to manage the lifecycle of clusters within a CockroachDB Cloud organization. It enables developers and operators to create, configure, scale, and delete CockroachDB Serverless and Dedicated clusters without using the web console. The API supports cluster provisioning, node management, network authorization, customer-managed encryption keys, backup and restore, log and metric export, role management, and folder organization. Authentication is handled via bearer tokens, and the API is rate-limited to 10 requests per second per user.
  version: '2024-09-16'
  contact:
    name: Cockroach Labs Support
    url: https://support.cockroachlabs.com
  termsOfService: https://www.cockroachlabs.com/cloud-terms-and-conditions/
servers:
- url: https://cockroachlabs.cloud
  description: CockroachDB Cloud Production Server
security:
- bearerAuth: []
tags:
- name: PrivateEndpoints
  description: Manage private endpoint services and connections for secure VPC-level access to clusters.
paths:
  /api/v1/clusters/{cluster_id}/networking/private-endpoint-services:
    get:
      operationId: ListPrivateEndpointServices
      summary: List private endpoint services
      description: Returns a list of private endpoint services configured for the specified cluster.
      tags:
      - PrivateEndpoints
      parameters:
      - $ref: '#/components/parameters/clusterId'
      responses:
        '200':
          description: List of private endpoint services returned successfully.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ListPrivateEndpointServicesResponse'
        '401':
          $ref: '#/components/responses/Unauthorized'
        '404':
          $ref: '#/components/responses/NotFound'
    post:
      operationId: CreatePrivateEndpointServices
      summary: Create private endpoint services
      description: Creates private endpoint services for the specified cluster to enable VPC-level private connectivity.
      tags:
      - PrivateEndpoints
      parameters:
      - $ref: '#/components/parameters/clusterId'
      responses:
        '200':
          description: Private endpoint services created successfully.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ListPrivateEndpointServicesResponse'
        '401':
          $ref: '#/components/responses/Unauthorized'
        '404':
          $ref: '#/components/responses/NotFound'
  /api/v1/clusters/{cluster_id}/networking/private-endpoint-connections:
    get:
      operationId: ListPrivateEndpointConnections
      summary: List private endpoint connections
      description: Returns a list of private endpoint connections for the specified cluster.
      tags:
      - PrivateEndpoints
      parameters:
      - $ref: '#/components/parameters/clusterId'
      responses:
        '200':
          description: List of private endpoint connections returned successfully.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ListPrivateEndpointConnectionsResponse'
        '401':
          $ref: '#/components/responses/Unauthorized'
        '404':
          $ref: '#/components/responses/NotFound'
    post:
      operationId: AddPrivateEndpointConnection
      summary: Add a private endpoint connection
      description: Adds a new private endpoint connection for the specified cluster.
      tags:
      - PrivateEndpoints
      parameters:
      - $ref: '#/components/parameters/clusterId'
      requestBody:
        required: true
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/AddPrivateEndpointConnectionRequest'
      responses:
        '200':
          description: Private endpoint connection added successfully.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/PrivateEndpointConnection'
        '400':
          $ref: '#/components/responses/BadRequest'
        '401':
          $ref: '#/components/responses/Unauthorized'
  /api/v1/clusters/{cluster_id}/networking/private-endpoint-connections/{endpoint_id}:
    delete:
      operationId: DeletePrivateEndpointConnection
      summary: Delete a private endpoint connection
      description: Removes a specific private endpoint connection from the cluster.
      tags:
      - PrivateEndpoints
      parameters:
      - $ref: '#/components/parameters/clusterId'
      - $ref: '#/components/parameters/endpointId'
      responses:
        '200':
          description: Private endpoint connection deleted successfully.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/PrivateEndpointConnection'
        '401':
          $ref: '#/components/responses/Unauthorized'
        '404':
          $ref: '#/components/responses/NotFound'
components:
  responses:
    BadRequest:
      description: The request body or parameters are invalid.
      content:
        application/json:
          schema:
            $ref: '#/components/schemas/Error'
    Unauthorized:
      description: Authentication credentials are missing or invalid.
      content:
        application/json:
          schema:
            $ref: '#/components/schemas/Error'
    NotFound:
      description: The requested resource was not found.
      content:
        application/json:
          schema:
            $ref: '#/components/schemas/Error'
  schemas:
    PrivateEndpointConnection:
      type: object
      description: Represents a private endpoint connection for VPC-level access to a CockroachDB cluster.
      properties:
        id:
          type: string
          description: Unique identifier of the private endpoint connection.
        cloud_provider:
          type: string
          description: Cloud provider where the endpoint is hosted.
        status:
          type: string
          description: Status of the private endpoint connection.
        endpoint_id:
          type: string
          description: Cloud provider endpoint identifier.
        region_name:
          type: string
          description: Cloud region of the endpoint.
    AddPrivateEndpointConnectionRequest:
      type: object
      description: Request body for adding a private endpoint connection.
      required:
      - endpoint_id
      properties:
        endpoint_id:
          type: string
          description: Cloud provider endpoint identifier to connect.
    Error:
      type: object
      description: Standard error response returned by the API.
      properties:
        code:
          type: integer
          description: HTTP status code of the error.
        message:
          type: string
          description: Human-readable description of the error.
        details:
          type: array
          description: Additional detail objects providing error context.
          items:
            type: object
    ListPrivateEndpointServicesResponse:
      type: object
      description: List of private endpoint services for a cluster.
      properties:
        services:
          type: array
          description: Array of private endpoint service objects.
          items:
            type: object
    ListPrivateEndpointConnectionsResponse:
      type: object
      description: List of private endpoint connections for a cluster.
      properties:
        connections:
          type: array
          description: Array of private endpoint connection objects.
          items:
            $ref: '#/components/schemas/PrivateEndpointConnection'
  parameters:
    endpointId:
      name: endpoint_id
      in: path
      required: true
      description: Unique identifier of the private endpoint connection.
      schema:
        type: string
    clusterId:
      name: cluster_id
      in: path
      required: true
      description: Unique identifier of the CockroachDB Cloud cluster.
      schema:
        type: string
  securitySchemes:
    bearerAuth:
      type: http
      scheme: bearer
      description: Bearer token authentication. Generate a token in the CockroachDB Cloud Console under Organization Settings > API Access.
externalDocs:
  description: CockroachDB Cloud API Documentation
  url: https://www.cockroachlabs.com/docs/cockroachcloud/cloud-api