CockroachDB IPAllowlists API
Configure IP allowlist entries to control network access to a cluster.
Configure IP allowlist entries to control network access to a cluster.
openapi: 3.1.0
info:
title: CockroachDB Cloud APIKeys IPAllowlists 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: IPAllowlists
description: Configure IP allowlist entries to control network access to a cluster.
paths:
/api/v1/clusters/{cluster_id}/networking/allowlist:
get:
operationId: ListAllowlistEntries
summary: List IP allowlist entries
description: Returns a list of IP allowlist entries for the specified cluster. Supports pagination.
tags:
- IPAllowlists
parameters:
- $ref: '#/components/parameters/clusterId'
- $ref: '#/components/parameters/paginationPage'
- $ref: '#/components/parameters/paginationLimit'
- $ref: '#/components/parameters/paginationAsOfTime'
- $ref: '#/components/parameters/paginationSortOrder'
responses:
'200':
description: List of allowlist entries returned successfully.
content:
application/json:
schema:
$ref: '#/components/schemas/ListAllowlistEntriesResponse'
'401':
$ref: '#/components/responses/Unauthorized'
'404':
$ref: '#/components/responses/NotFound'
post:
operationId: AddAllowlistEntry
summary: Add IP allowlist entry
description: Adds a new CIDR-based IP allowlist entry to the specified cluster to authorize inbound connections from a network range.
tags:
- IPAllowlists
parameters:
- $ref: '#/components/parameters/clusterId'
requestBody:
required: true
content:
application/json:
schema:
$ref: '#/components/schemas/AllowlistEntry'
responses:
'200':
description: Allowlist entry added successfully.
content:
application/json:
schema:
$ref: '#/components/schemas/AllowlistEntry'
'400':
$ref: '#/components/responses/BadRequest'
'401':
$ref: '#/components/responses/Unauthorized'
/api/v1/clusters/{cluster_id}/networking/allowlist/{cidr_ip}/{cidr_mask}:
patch:
operationId: UpdateAllowlistEntry
summary: Update IP allowlist entry
description: Updates the properties of an existing IP allowlist entry identified by CIDR IP and mask for the specified cluster.
tags:
- IPAllowlists
parameters:
- $ref: '#/components/parameters/clusterId'
- $ref: '#/components/parameters/cidrIp'
- $ref: '#/components/parameters/cidrMask'
requestBody:
required: true
content:
application/json:
schema:
$ref: '#/components/schemas/AllowlistEntry'
responses:
'200':
description: Allowlist entry updated successfully.
content:
application/json:
schema:
$ref: '#/components/schemas/AllowlistEntry'
'400':
$ref: '#/components/responses/BadRequest'
'401':
$ref: '#/components/responses/Unauthorized'
'404':
$ref: '#/components/responses/NotFound'
delete:
operationId: DeleteAllowlistEntry
summary: Delete IP allowlist entry
description: Removes an IP allowlist entry from the cluster identified by CIDR IP address and mask.
tags:
- IPAllowlists
parameters:
- $ref: '#/components/parameters/clusterId'
- $ref: '#/components/parameters/cidrIp'
- $ref: '#/components/parameters/cidrMask'
responses:
'200':
description: Allowlist entry deleted successfully.
content:
application/json:
schema:
$ref: '#/components/schemas/AllowlistEntry'
'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'
parameters:
paginationSortOrder:
name: pagination.sort_order
in: query
description: Sort direction for paginated results. Accepted values are ASC and DESC.
schema:
type: string
enum:
- ASC
- DESC
paginationAsOfTime:
name: pagination.as_of_time
in: query
description: RFC3339 timestamp to return results as they were at a specific point in time (time-travel query).
schema:
type: string
format: date-time
clusterId:
name: cluster_id
in: path
required: true
description: Unique identifier of the CockroachDB Cloud cluster.
schema:
type: string
paginationLimit:
name: pagination.limit
in: query
description: Maximum number of results to return per page.
schema:
type: integer
format: int32
minimum: 1
maximum: 500
cidrMask:
name: cidr_mask
in: path
required: true
description: Prefix length of the CIDR range (e.g. 24 for /24).
schema:
type: integer
minimum: 0
maximum: 32
paginationPage:
name: pagination.page
in: query
description: Page number for paginated results, starting from 1.
schema:
type: string
cidrIp:
name: cidr_ip
in: path
required: true
description: IPv4 address part of the CIDR range.
schema:
type: string
schemas:
AllowlistEntry:
type: object
description: An IP allowlist entry representing a CIDR range authorized to connect to a CockroachDB cluster.
required:
- cidr_ip
- cidr_mask
properties:
cidr_ip:
type: string
description: IPv4 address of the CIDR range.
cidr_mask:
type: integer
description: Prefix length of the CIDR range.
minimum: 0
maximum: 32
name:
type: string
description: Human-readable label for this allowlist entry.
ui:
type: boolean
description: Whether this entry grants access to the DB Console (UI), in addition to SQL.
sql:
type: boolean
description: Whether this entry grants SQL access.
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
ListAllowlistEntriesResponse:
type: object
description: Paginated list of IP allowlist entries for a cluster.
properties:
allowlist:
type: array
description: Array of allowlist entry objects.
items:
$ref: '#/components/schemas/AllowlistEntry'
pagination:
$ref: '#/components/schemas/PaginationResponse'
PaginationResponse:
type: object
description: Pagination metadata included in list responses.
properties:
next:
type: string
description: Token or cursor for retrieving the next page of results.
last:
type: string
description: Token or cursor for the last page of results.
time:
type: string
format: date-time
description: Server time at which the paginated query was executed.
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