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