openapi: 3.2.0
info:
title: Confluent Cloud Switchover Endpoints (switchover/v1) API
version: ''
x-api-id: 46234552-5833-42eb-ba0f-883ad3f70d2b
x-audience: external-public
x-logo:
url: https://assets.confluent.io/m/1661ef5e4ff82d3d/
description: '# Introduction
Note
This documents the collection of Confluent Cloud APIs.'
servers:
- url: https://api.confluent.cloud
description: Confluent Cloud API
tags:
- name: Switchover Endpoints (switchover/v1)
description: ' 
get:
x-lifecycle-stage: Early Access
x-self-access: false
x-request-access-name: Switchover API (Kafka Disaster Recovery)
operationId: listSwitchoverV1SwitchoverEndpoints
summary: List of Switchover Endpoints
description: ' 
Retrieve a sorted, filtered, paginated list of all switchover endpoints.'
parameters:
- name: switchover_pair
in: query
required: false
schema:
$ref: '#/components/schemas/SearchFilter'
example: sw-00000
description: Filter the results by the associated `SwitchoverPair` ID.
- name: environment
in: query
required: true
schema:
$ref: '#/components/schemas/SearchFilter'
example: env-00000
description: 'Scope the operation to the environment with this ID. The bare-ID form of `environment_crn`;
it is the standard Confluent collection filter, passed as the `?environment=` query parameter.
'
- name: page_size
in: query
required: false
schema:
type: integer
default: 10
maximum: 100
x-max-page-items: 500
description: A pagination size for collection requests.
- name: page_token
in: query
required: false
schema:
type: string
maxLength: 255
description: An opaque pagination token for collection requests.
tags:
- Switchover Endpoints (switchover/v1)
security:
- cloud-api-key: []
- global-api-key: []
responses:
'200':
description: Switchover Endpoint.
content:
application/json:
schema:
allOf:
- $ref: '#/components/schemas/switchover.v1.SwitchoverEndpointList'
headers:
X-Request-Id:
schema:
type: string
description: The unique identifier for the API request.
X-RateLimit-Limit:
schema:
type: integer
description: The maximum number of requests you're permitted to make per time period.
X-RateLimit-Remaining:
schema:
type: integer
description: The number of requests remaining in the current rate limit window.
X-RateLimit-Reset:
schema:
type: integer
description: "The relative time in seconds until the current rate-limit window resets. \n \n**Important:** This differs from Github and Twitter's same-named header which uses UTC epoch seconds. We use relative time to avoid client/server time synchronization issues."
'400':
$ref: '#/components/responses/BadRequestError'
'401':
$ref: '#/components/responses/UnauthenticatedError'
'403':
$ref: '#/components/responses/UnauthorizedError'
'429':
$ref: '#/components/responses/RateLimitError'
'500':
$ref: '#/components/responses/DefaultSystemError'
post:
x-lifecycle-stage: Early Access
x-self-access: false
x-request-access-name: Switchover API (Kafka Disaster Recovery)
operationId: createSwitchoverV1SwitchoverEndpoint
summary: Create a Switchover Endpoint
description: ' 
Make a request to create a switchover endpoint.'
tags:
- Switchover Endpoints (switchover/v1)
security:
- cloud-api-key: []
- global-api-key: []
requestBody:
content:
application/json:
schema:
allOf:
- $ref: '#/components/schemas/switchover.v1.SwitchoverEndpoint'
- type: object
required:
- spec
properties:
spec:
type: object
required:
- parent_resource_crn
- display_name
- endpoints
responses:
'202':
description: A Switchover Endpoint is being created.
headers:
X-Request-Id:
schema:
type: string
description: The unique identifier for the API request.
X-RateLimit-Limit:
schema:
type: integer
description: The maximum number of requests you're permitted to make per time period.
X-RateLimit-Remaining:
schema:
type: integer
description: The number of requests remaining in the current rate limit window.
X-RateLimit-Reset:
schema:
type: integer
description: "The relative time in seconds until the current rate-limit window resets. \n \n**Important:** This differs from Github and Twitter's same-named header which uses UTC epoch seconds. We use relative time to avoid client/server time synchronization issues."
Location:
schema:
type: string
format: uri
example: https://api.confluent.cloud/switchover/v1/switchover-endpoints/{id}
description: SwitchoverEndpoint resource uri
content:
application/json:
schema:
allOf:
- $ref: '#/components/schemas/switchover.v1.SwitchoverEndpoint'
- type: object
required:
- spec
- status
properties:
spec:
type: object
required:
- parent_resource_crn
- display_name
- endpoints
'400':
$ref: '#/components/responses/BadRequestError'
'401':
$ref: '#/components/responses/UnauthenticatedError'
'403':
$ref: '#/components/responses/UnauthorizedError'
'409':
$ref: '#/components/responses/ConflictError'
'422':
$ref: '#/components/responses/ValidationError'
'429':
$ref: '#/components/responses/RateLimitError'
'500':
$ref: '#/components/responses/DefaultSystemError'
/switchover/v1/switchover-endpoints/{id}:
x-lifecycle-stage: Early Access
x-self-access: false
x-request-access-name: Switchover API (Kafka Disaster Recovery)
get:
x-lifecycle-stage: Early Access
x-self-access: false
x-request-access-name: Switchover API (Kafka Disaster Recovery)
operationId: getSwitchoverV1SwitchoverEndpoint
summary: Read a Switchover Endpoint
description: ' 
Make a request to read a switchover endpoint.'
parameters:
- name: environment
in: query
required: true
schema:
$ref: '#/components/schemas/SearchFilter'
example: env-00000
description: 'Scope the operation to the environment with this ID. The bare-ID form of `environment_crn`;
it is the standard Confluent collection filter, passed as the `?environment=` query parameter.
'
- name: id
in: path
required: true
schema:
type: string
description: The unique identifier for the switchover endpoint.
tags:
- Switchover Endpoints (switchover/v1)
security:
- cloud-api-key: []
- global-api-key: []
responses:
'200':
description: Switchover Endpoint.
content:
application/json:
schema:
allOf:
- $ref: '#/components/schemas/switchover.v1.SwitchoverEndpoint'
- type: object
required:
- api_version
- kind
- id
- spec
- status
properties:
spec:
type: object
required:
- parent_resource_crn
- display_name
- endpoints
headers:
X-Request-Id:
schema:
type: string
description: The unique identifier for the API request.
X-RateLimit-Limit:
schema:
type: integer
description: The maximum number of requests you're permitted to make per time period.
X-RateLimit-Remaining:
schema:
type: integer
description: The number of requests remaining in the current rate limit window.
X-RateLimit-Reset:
schema:
type: integer
description: "The relative time in seconds until the current rate-limit window resets. \n \n**Important:** This differs from Github and Twitter's same-named header which uses UTC epoch seconds. We use relative time to avoid client/server time synchronization issues."
'400':
$ref: '#/components/responses/BadRequestError'
'401':
$ref: '#/components/responses/UnauthenticatedError'
'403':
$ref: '#/components/responses/UnauthorizedError'
'404':
$ref: '#/components/responses/NotFoundError'
'429':
$ref: '#/components/responses/RateLimitError'
'500':
$ref: '#/components/responses/DefaultSystemError'
put:
requestBody:
required: true
content:
application/json:
schema:
$ref: '#/components/schemas/switchover.v1.SwitchoverEndpointUpdateRequest'
x-codeSamples:
- lang: Shell
label: cURL
source: "curl --request PUT \\\n --url 'https://api.confluent.cloud/switchover/v1/switchover-endpoints/{id}?environment=env-00000' \\\n --header 'Authorization: Basic REPLACE_BASIC_AUTH' \\\n --header 'content-type: application/json' \\\n --data '{\"spec\":{\"display_name\":\"prod-kafka-dr-endpoint\"}}'\n"
x-lifecycle-stage: Early Access
x-self-access: false
x-request-access-name: Switchover API (Kafka Disaster Recovery)
operationId: updateSwitchoverV1SwitchoverEndpoint
summary: Update a Switchover Endpoint
description: ' 
Make a request to update a switchover endpoint.'
parameters:
- name: environment
in: query
required: true
schema:
$ref: '#/components/schemas/SearchFilter'
example: env-00000
description: 'Scope the operation to the environment with this ID. The bare-ID form of `environment_crn`;
it is the standard Confluent collection filter, passed as the `?environment=` query parameter.
'
- name: id
in: path
required: true
schema:
type: string
description: The unique identifier for the switchover endpoint.
tags:
- Switchover Endpoints (switchover/v1)
security:
- cloud-api-key: []
- global-api-key: []
responses:
'200':
description: Switchover Endpoint.
content:
application/json:
schema:
allOf:
- $ref: '#/components/schemas/switchover.v1.SwitchoverEndpoint'
- type: object
required:
- api_version
- kind
- id
- spec
- status
properties:
spec:
type: object
required:
- parent_resource_crn
- display_name
- endpoints
headers:
X-Request-Id:
schema:
type: string
description: The unique identifier for the API request.
X-RateLimit-Limit:
schema:
type: integer
description: The maximum number of requests you're permitted to make per time period.
X-RateLimit-Remaining:
schema:
type: integer
description: The number of requests remaining in the current rate limit window.
X-RateLimit-Reset:
schema:
type: integer
description: "The relative time in seconds until the current rate-limit window resets. \n \n**Important:** This differs from Github and Twitter's same-named header which uses UTC epoch seconds. We use relative time to avoid client/server time synchronization issues."
'400':
$ref: '#/components/responses/BadRequestError'
'401':
$ref: '#/components/responses/UnauthenticatedError'
'403':
$ref: '#/components/responses/UnauthorizedError'
'404':
$ref: '#/components/responses/NotFoundError'
'409':
$ref: '#/components/responses/ConflictError'
'422':
$ref: '#/components/responses/ValidationError'
'429':
$ref: '#/components/responses/RateLimitError'
'500':
$ref: '#/components/responses/DefaultSystemError'
delete:
x-lifecycle-stage: Early Access
x-self-access: false
x-request-access-name: Switchover API (Kafka Disaster Recovery)
operationId: deleteSwitchoverV1SwitchoverEndpoint
summary: Delete a Switchover Endpoint
description: ' 
Make a request to delete a switchover endpoint.'
parameters:
- name: environment
in: query
required: true
schema:
$ref: '#/components/schemas/SearchFilter'
example: env-00000
description: 'Scope the operation to the environment with this ID. The bare-ID form of `environment_crn`;
it is the standard Confluent collection filter, passed as the `?environment=` query parameter.
'
- name: id
in: path
required: true
schema:
type: string
description: The unique identifier for the switchover endpoint.
tags:
- Switchover Endpoints (switchover/v1)
security:
- cloud-api-key: []
- global-api-key: []
responses:
'202':
description: 'The switchover endpoint deletion has been accepted; it transitions to `DEPROVISIONING` while it is
removed asynchronously.
'
content:
application/json:
schema:
$ref: '#/components/schemas/switchover.v1.SwitchoverEndpoint'
'400':
$ref: '#/components/responses/BadRequestError'
'401':
$ref: '#/components/responses/UnauthenticatedError'
'403':
$ref: '#/components/responses/UnauthorizedError'
'404':
$ref: '#/components/responses/NotFoundError'
'429':
$ref: '#/components/responses/RateLimitError'
'500':
$ref: '#/components/responses/DefaultSystemError'
components:
responses:
DefaultSystemError:
description: Oops, something went wrong!
headers:
X-Request-Id:
schema:
type: string
description: The unique identifier for the API request.
content:
application/json:
schema:
$ref: '#/components/schemas/Failure'
example:
errors:
- id: ed42afdc-f0d5-4c0d-b428-9fc6ed6e279d
status: '500'
code: out_of_gas
title: DeLorean Out Of Gas
detail: The DeLorean has run out of gas, but Doc Brown will fill 'er up for you asap
BadRequestError:
description: Bad Request
headers:
X-Request-Id:
schema:
type: string
description: The unique identifier for the API request.
content:
application/json:
schema:
$ref: '#/components/schemas/Failure'
example:
errors:
- id: ed42afdc-f0d5-4c0d-b428-9fc6ed6e279d
status: '400'
code: invalid_filter
title: Invalid Filter
detail: The 'delorean' resource can't be filtered by 'num_doors'
source:
parameter: num_doors
ConflictError:
x-summary: Conflict
description: The request is in conflict with the current server state
headers:
X-Request-Id:
schema:
type: string
description: The unique identifier for the API request.
Location:
schema:
type: string
format: uri
example: https://api.confluent.cloud/{object}/{id}
description: Resource URI of conflicting resource
content:
application/json:
schema:
$ref: '#/components/schemas/Failure'
example:
errors:
- id: ed42afdc-f0d5-4c0d-b428-9fc6ed6e279d
status: '409'
code: resource_already_exists
title: Resource Already exists
detail: The entitlement '91e3e86f-fca6-4f14-98f5-a48e64113ce2' already exists.
UnauthorizedError:
x-summary: Forbidden
description: The access credentials were considered insufficient to grant access
headers:
X-Request-Id:
schema:
type: string
description: The unique identifier for the API request.
content:
application/json:
schema:
$ref: '#/components/schemas/Failure'
example:
errors:
- id: ed42afdc-f0d5-4c0d-b428-9fc6ed6e279d
status: '403'
code: user_unauthorized
title: User Access Unauthorized
detail: The user 'mcfly' is not allowed to access the 'delorean' resource without the 'plutonium' role.
NotFoundError:
description: Not Found
headers:
X-Request-Id:
schema:
type: string
description: The unique identifier for the API request.
content:
application/json:
schema:
$ref: '#/components/schemas/Failure'
example:
errors:
- id: ed42afdc-f0d5-4c0d-b428-9fc6ed6e279d
status: '404'
title: Not Found
UnauthenticatedError:
x-summary: Unauthorized
description: The request lacks valid authentication credentials for this resource.
headers:
X-Request-Id:
schema:
type: string
description: The unique identifier for the API request.
WWW-Authenticate:
schema:
type: string
description: The unique identifier for the API request.
example: Basic error="invalid_key", error_description="The API Key is invalid"
content:
application/json:
schema:
$ref: '#/components/schemas/Failure'
example:
errors:
- id: ed42afdc-f0d5-4c0d-b428-9fc6ed6e279d
status: '401'
code: user_unauthenticated
title: Authentication Required
detail: Valid authentication credentials must be provided
ValidationError:
description: Validation Failed
headers:
X-Request-Id:
schema:
type: string
description: The unique identifier for the API request.
content:
application/json:
schema:
$ref: '#/components/schemas/Failure'
example:
errors:
- status: '422'
code: invalid_configuration
id: ed42afdc-f0d5-4c0d-b428-9fc6ed6e279d
title: Validation Failed
detail: 'The property ''/cluster/storage_size'' of type string did not match the following type: integer'
source:
pointer: /cluster/storage_size
- status: '422'
code: invalid_configuration
id: ed42afdc-f0d5-4c0d-b428-9fc6ed6e279d
title: Validation Failed
detail: 'The property ''/cluster/storage_size'' of type string did not match the following type: integer'
source:
pointer: /cluster/storage_size
- status: '422'
code: invalid_configuration
id: ed42afdc-f0d5-4c0d-b428-9fc6ed6e279d
title: Validation Failed
detail: 'The property ''/cluster/storage_size'' of type string did not match the following type: integer'
source:
pointer: /cluster/storage_size
- status: '422'
code: invalid_configuration
id: ed42afdc-f0d5-4c0d-b428-9fc6ed6e279d
title: Validation Failed
detail: 'The property ''/cluster/storage_size'' of type string did not match the following type: integer'
source:
pointer: /cluster/storage_size
- status: '422'
code: invalid_configuration
id: ed42afdc-f0d5-4c0d-b428-9fc6ed6e279d
title: Validation Failed
detail: 'The property ''/cluster/storage_size'' of type string did not match the following type: integer'
source:
pointer: /cluster/storage_size
- status: '422'
code: invalid_configuration
id: ed42afdc-f0d5-4c0d-b428-9fc6ed6e279d
title: Validation Failed
detail: 'The property ''/cluster/storage_size'' of type string did not match the following type: integer'
source:
pointer: /cluster/storage_size
- status: '422'
code: invalid_configuration
id: ed42afdc-f0d5-4c0d-b428-9fc6ed6e279d
title: Validation Failed
detail: 'The property ''/cluster/storage_size'' of type string did not match the following type: integer'
source:
pointer: /cluster/storage_size
- status: '422'
code: invalid_configuration
id: ed42afdc-f0d5-4c0d-b428-9fc6ed6e279d
title: Validation Failed
detail: 'The property ''/cluster/storage_size'' of type string did not match the following type: integer'
source:
pointer: /cluster/storage_size
- status: '422'
code: invalid_configuration
id: ed42afdc-f0d5-4c0d-b428-9fc6ed6e279d
title: Validation Failed
detail: 'The property ''/cluster/storage_size'' of type string did not match the following type: integer'
source:
pointer: /cluster/storage_size
- status: '422'
code: invalid_configuration
id: ed42afdc-f0d5-4c0d-b428-9fc6ed6e279d
title: Validation Failed
detail: 'The property ''/cluster/storage_size'' of type string did not match the following type: integer'
source:
pointer: /cluster/storage_size
- status: '422'
code: invalid_configuration
id: ed42afdc-f0d5-4c0d-b428-9fc6ed6e279d
title: Validation Failed
detail: 'The property ''/cluster/storage_size'' of type string did not match the following type: integer'
source:
pointer: /cluster/storage_size
- status: '422'
code: invalid_configuration
id: ed42afdc-f0d5-4c0d-b428-9fc6ed6e279d
title: Validation Failed
detail: 'The property ''/cluster/storage_size'' of type string did not match the following type: integer'
source:
pointer: /cluster/storage_size
- status: '422'
code: invalid_configuration
id: ed42afdc-f0d5-4c0d-b428-9fc6ed6e279d
title: Validation Failed
detail: 'The property ''/cluster/storage_size'' of type string did not match the following type: integer'
source:
pointer: /cluster/storage_size
- status: '422'
code: invalid_configuration
id: ed42afdc-f0d5-4c0d-b428-9fc6ed6e279d
title: Validation Failed
detail: 'The property ''/cluster/storage_size'' of type string did not match the following type: integer'
source:
pointer: /cluster/storage_size
- status: '422'
code: invalid_configuration
id: ed42afdc-f0d5-4c0d-b428-9fc6ed6e279d
title: Validation Failed
detail: 'The property ''/cluster/storage_size'' of type string did not match the following type: integer'
source:
pointer: /cluster/storage_size
- status: '422'
code: invalid_configuration
id: ed42afdc-f0d5-4c0d-b428-9fc6ed6e279d
title: Validation Failed
detail: 'The property ''/cluster/storage_size'' of type string did not match the following type: integer'
source:
pointer: /cluster/storage_size
- status: '422'
code: invalid_configuration
id: ed42afdc-f0d5-4c0d-b428-9fc6ed6e279d
title: Validation Failed
detail: 'The property ''/cluster/storage_size'' of type string did not match the following type: integer'
source:
pointer: /cluster/storage_size
- status: '422'
code: invalid_configuration
id: ed42afdc-f0d5-4c0d-b428-9fc6ed6e279d
title: Validation Failed
detail: 'The property ''/cluster/storage_size'' of type string did not match the following type: integer'
source:
pointer: /cluster/storage_size
- status: '422'
code: invalid_configuration
id: ed42afdc-f0d5-4c0d-b428-9fc6ed6e279d
title: Validation Failed
detail: 'The property ''/cluster/storage_size'' of type string did not match the following type: integer'
source:
pointer: /cluster/storage_size
- status: '422'
code: invalid_configuration
id: ed42afdc-f0d5-4c0d-b428-9fc6ed6e279d
title: Validation Failed
detail: 'The property ''/cluster/storage_size'' of type string did not match the following type: integer'
source:
pointer: /cluster/storage_size
- status: '422'
code: invalid_configuration
id: ed42afdc-f0d5-4c0d-b428-9fc6ed6e279d
title: Validation Failed
detail: 'The property ''/cluster/storage_size'' of type string did not match the following type: integer'
source:
pointer: /cluster/storage_size
- status: '422'
code: invalid_configuration
id: ed42afdc-f0d5-4c0d-b428-9fc6ed6e279d
title: Validation Failed
detail: 'The property ''/cluster/storage_size'' of type string did not match the following type: integer'
source:
pointer: /cluster/storage_size
- status: '422'
code: invalid_configuration
id: ed42afdc-f0d5-4c0d-b428-9fc6ed6e279d
title: Validation Failed
detail: 'The property ''/cluster/storage_size'' of type string did not match the following type: integer'
source:
pointer: /cluster/storage_size
- status: '422'
code: invalid_configuration
id: ed42afdc-f0d5-4c0d-b428-9fc6ed6e279d
title: Validation Failed
detail: 'The property ''/cluster/storage_size'' of type string did not match the following type: integer'
source:
pointer: /cluster/storage_size
- status: '422'
code: invalid_configuration
id: ed42afdc-f0d5-4c0d-b428-9fc6ed6e279d
title: Validation Failed
detail: 'The property ''/cluster/storage_size'' of type string did not match the following type: integer'
source:
pointer: /cluster/storage_size
- status: '422'
code: invalid_configuration
id: ed42afdc-f0d5-4c0d-b428-9fc6ed6e279d
title: Validation Failed
detail: 'The property ''/cluster/storage_size'' of type string did not match the following type: integer'
source:
pointer: /cluster/storage_size
- status: '422'
code: invalid_configuration
id: ed42afdc-f0d5-4c0d-b428-9fc6ed6e279d
title: Validation Failed
detail: 'The property ''/cluster/storage_size'' of type string did not match the following type: integer'
source:
pointer: /cluster/storage_size
- status: '422'
code: invalid_configuration
id: ed42afdc-f0d5-4c0d-b428-9fc6ed6e279d
title: Validation Failed
detail: 'The property ''/cluster/storage_size'' of type string did not match the following type: integer'
source:
pointer: /cluster/storage_size
- status: '422'
code: invalid_configuration
id: ed42afdc-f0d5-4c0d-b428-9fc6ed6e279d
title: Validation Failed
detail: 'The property ''/cluster/storage_size'' of type string did not match the following type: integer'
source:
pointer: /cluster/storage_size
- status: '422'
code: invalid_configuration
id: ed42afdc-f0d5-4c0d-b428-9fc6ed6e279d
title: Validation Failed
detail: 'The property ''/cluster/storage_size'' of type string did not match the following type: integer'
source:
pointer: /cluster/storage_size
- status: '422'
code: invalid_configuration
id: ed42afdc-f0d5-4c0d-b428-9fc6ed6e279d
title: Validation Failed
detail: 'The property ''/cluster/storage_size'' of type string did not match the following type: integer'
source:
pointer: /cluster/storage_size
- status: '422'
code: invalid_configuration
id: ed42afdc-f0d5-4c0d-b428-9fc6ed6e279d
title: Validation Failed
detail: 'The property ''/cluster/storage_size'' of type string did not match the following type: integer'
source:
pointer: /cluster/storage_size
- status: '422'
code: invalid_configuration
id: ed42afdc-f0d5-4c0d-b428-9fc6ed6e279d
title: Validation Failed
detail: 'The property ''/cluster/storage_size'' of type string did not match the following type: integer'
source:
pointer: /cluster/storage_size
- status: '422'
code: invalid_configuration
id: ed42afdc-f0d5-4c0d-b428-9fc6ed6e279d
title: Validation Failed
detail: 'The property ''/cluster/storage_size'' of type string did not match the following type: integer'
source:
pointer: /cluster/storage_size
- status: '422'
code: invalid_configuration
id: ed42afdc-f0d5-4c0d-b428-9fc6ed6e279d
title: Validation Failed
detail: 'The property ''/cluster/storage_size'' of type string did not match the following type: integer'
source:
pointer: /cluster/storage_size
- status: '422'
code: invalid_configuration
id: ed42afdc-f0d5-4c0d-b428-9fc6ed6e279d
title: Validation Failed
detail: 'The property ''/cluster/storage_size'' of type string did not match the following type: integer'
source:
pointer: /cluster/storage_size
- status: '422'
code: invalid_configuration
id: ed42afdc-f0d5-4c0d-b428-9fc6ed6e279d
title: Validation Failed
detail: 'The property ''/cluster/storage_size'' of type string did not match the following type: integer'
source:
pointer: /cluster/storage_size
- status: '422'
code: invalid_configuration
id: ed42afdc-f0d5-4c0d-b428-9fc6ed6e279d
title: Validation Failed
detail: 'The property ''/cluster/storage_size'' of type string did not match the following type: integer'
source:
pointer: /cluster/storage_size
- status: '422'
code: invalid_configuration
id: ed42afdc-f0d5-4c0d-b428-9fc6ed6e279d
title: Validation Failed
detail: 'The property ''/cluster/storage_size'' of type string did not match the following type: integer'
source:
pointer: /cluster/storage_size
- status: '422'
code: invalid_configuration
id: ed42afdc-f0d5-4c0d-b428-9fc6ed6e279d
title: Validation Failed
detail: 'The property ''/cluster/storage_size'' of type string did not match the following type: integer'
source:
pointer: /cluster/storage_size
RateLimitError:
description: Rate Limit Exceeded
headers:
X-Request-Id:
schema:
type: string
description: The unique identifier for the API request.
X-RateLimit-Limit:
schema:
type: integer
description: The maximum number of requests you're permitted to make per time period.
X-RateLimit-Remaining:
schema:
type: integer
description: The number of requests remaining in the current rate limit window.
X-RateLimit-Reset:
schema:
type: integer
description: "The relative time in seconds until the current rate-limit window resets. \n \n**Important:** This differs from Github and Twitter's same-named header which uses UTC epoch seconds. We use relative time to avoid client/server time synchronization issues."
Retry-After:
schema:
type: integer
description: The number of seconds to wait until the rate limit window resets. Only sent when the rate limit is reached.
schemas:
switchover.v1.SwitchoverEndpointSpec:
type: object
description: The desired state of the Switchover Endpoint
properties:
environment_crn:
type: string
format: uri
description: 'The CRN of the environment this switchover endpoint belongs to — always its parent pair''s
environment, derived from `parent_resource_crn` on create (ORC-9794 decision log).
Read-only: accepting a second copy of the same scope would only create the possibility of
the two disagreeing. It is also the value whose ID is passed as the `?environment=` query
parameter on the other operations.
'
readOnly: true
example: crn://confluent.cloud/organization=9bb441c4-edef-46ac-8a41-c49e44a3fd9a/environment=env-00000
parent_resource_crn:
type: string
format: uri
pattern: ^crn://confluent\.cloud/organization=[^/]+/environment=[^/]+/switchover-pair=.+$
description: 'The CRN of the switchover pair this endpoint is bound to. Must name the same environment as
`environment_crn`: the pair is looked up in that scope, so a mismatch would report a
confusing not-found rather than the inconsistency the caller introduced.
'
example: crn://confluent.cloud/organization=9bb441c4-edef-46ac-8a41-c49e44a3fd9a/environment=env-00000/switchover-pair=sw-00000
x-immutable: true
display_name:
type: string
description: A human-readable name for the switchover endpoint.
example: prod-kafka-dr-endpoint
maxLength: 256
target:
type: string
description: 'The name of the endpoint that is currently active; always one of `endpoints[].name`.
Output-only: the Switchover service derives it from the pair''s active member at create time
and moves it on every failover. A value supplied on create is ignored.
'
example: west-platt
readOnly: true
endpoints:
type: array
description: 'The endpoint definitions, one per side (e.g. west/east). Must contain exactly 2 entries.
'
minItems: 2
maxItems: 2
items:
$ref: '#/components/schemas/switchover.v1.EndpointConfig'
x-immutable: true
x-enable-id: true
x-enable-listmeta: true
x-enable-objectmeta: true
switchover.v1.SwitchoverEndpointList:
type: object
description: '`SwitchoverEndpoint` represents the endpoint-level Disaster Recovery configuration for a
`SwitchoverPair`. It exposes a sticky DR bootstrap endpoint that clients connect to so they
never need to update their bootstrap endpoint after a failover; that bootstrap endpoint is
not part of this resource''s API representation (ORC-10133) and is obtained separately. For
stateful pairs, the active endpoint follows the pair''s active member.
The API allows you to list, create, read, update, and delete switchover endpoints.
## The Switchover Endpoints Model
'
required:
- api_version
- kind
- metadata
- data
properties:
api_version:
type: string
enum:
- switchover/v1
description: APIVersion defines the schema version of this representation of a resource.
readOnly: true
kind:
type: string
description: Kind defines the object this REST resource represents.
readOnly: true
enum:
- SwitchoverEndpointList
metadata:
type: object
description: Metadata for this collection response.
required:
- pagination
properties:
pagination:
type: object
description: Pagination metadata for this collection response.
properties:
page_size:
type: integer
format: int32
description: The user-requested page size for this pagination.
example: 10
total_size:
type: integer
format: int32
description: The total number of items available in the full result set.
example: 23
next_page_token:
type: string
description: An opaque pagination token for requesting the next page of results.
expiration:
type: integer
format: int32
description: The number of seconds until `next_page_token` expires.
data:
type: array
description: 'A data property that contains an array of resource items. Each entry in the array is a
separate resource.
'
uniqueItems: true
items:
allOf:
- $ref: '#/components/schemas/switchover.v1.SwitchoverEndpoint'
- type: object
required:
- id
- metadata
- spec
- status
properties:
spec:
type: object
required:
- display_name
- parent_resource_crn
- endpoints
- environment_crn
switchover.v1.SwitchoverEndpointCondition:
type: object
description: 'A single status condition on a `SwitchoverEndpoint`, following the standard Kubernetes/Confluent
condition pattern. Unlike a `SwitchoverPair` (whose conditions are per-member), an endpoint has
a single resource-level condition.
'
required:
- type
- status
properties:
type:
type: string
description: The condition type. A `SwitchoverEndpoint` reports the single type `ResourceProvisioningComplete`.
x-extensible-enum:
- ResourceProvisioningComplete
example: ResourceProvisioningComplete
status:
type: string
description: The status of the condition.
x-extensible-enum:
- 'True'
- 'False'
- Unknown
example: 'True'
reason:
type: string
description: A machine-readable reason for the condition's current status.
example: Reconciled
message:
type: string
description: A human-readable message providing additional detail about the condition.
example: The endpoint is ready.
switchover.v1.SwitchoverEndpointUpdateRequest:
type: object
description: 'Request body for updating a `SwitchoverEndpoint`. Only `display_name` is mutable via this
operation; use the `SwitchoverPair`''s `:failover` operation to change the active endpoint.
'
required:
- spec
properties:
spec:
type: object
properties:
display_name:
type: string
description: A human-readable name for the switchover endpoint.
example: prod-kafka-dr-endpoint
maxLength: 256
Error:
type: object
description: Describes a particular error encountered while performing an operation.
properties:
id:
description: A unique identifier for this particular occurrence of the problem.
type: string
maxLength: 255
status:
description: The HTTP status code applicable to this problem, expressed as a string value.
type: string
code:
description: An application-specific error code, expressed as a string value.
type: string
title:
description: A short, human-readable summary of the problem. It **SHOULD NOT** change from occurrence to occurrence of the problem, except for purposes of localization.
type: string
detail:
description: A human-readable explanation specific to this occurrence of the problem.
type: string
source:
type: object
description: If this error was caused by a particular part of the API request, the source will point to the query string parameter or request body property that caused it.
properties:
pointer:
description: A JSON Pointer [RFC6901] to the associated entity in the request document [e.g. "/spec" for a spec object, or "/spec/title" for a specific field].
type: string
parameter:
description: A string indicating which query parameter caused the error.
type: string
error_code:
type: integer
format: int32
message:
type:
- string
- 'null'
additionalProperties: false
switchover.v1.SwitchoverEndpoint:
type: object
description: '`SwitchoverEndpoint` represents the endpoint-level Disaster Recovery configuration for a
`SwitchoverPair`. It exposes a sticky DR bootstrap endpoint that clients connect to so they
never need to update their bootstrap endpoint after a failover; that bootstrap endpoint is
not part of this resource''s API representation (ORC-10133) and is obtained separately. For
stateful pairs, the active endpoint follows the pair''s active member.
The API allows you to list, create, read, update, and delete switchover endpoints.
Related guide: [Disaster Recovery for Kafka in Confluent Cloud](https://docs.confluent.io/cloud/current/clusters/cluster-linking/index.html).
## The Switchover Endpoints Model
'
properties:
api_version:
type: string
enum:
- switchover/v1
description: APIVersion defines the schema version of this representation of a resource.
readOnly: true
kind:
type: string
description: Kind defines the object this REST resource represents.
readOnly: true
enum:
- SwitchoverEndpoint
id:
description: ID is the "natural identifier" for an object within its scope/namespace; it is normally unique across time but not space. That is, you can assume that the ID will not be reclaimed and reused after an object is deleted ("time"); however, it may collide with IDs for other object `kinds` or objects of the same `kind` within a different scope/namespace ("space").
type: string
maxLength: 255
readOnly: true
example: dlz-f3a90de
metadata:
allOf:
- $ref: '#/components/schemas/ObjectMeta'
- properties:
self:
example: https://api.confluent.cloud/switchover/v1/switchover-endpoints/se-12345
resource_name:
example: crn://confluent.cloud/organization=9bb441c4-edef-46ac-8a41-c49e44a3fd9a/switchover-endpoint=se-12345
spec:
$ref: '#/components/schemas/switchover.v1.SwitchoverEndpointSpec'
status:
$ref: '#/components/schemas/switchover.v1.SwitchoverEndpointStatus'
SearchFilter:
description: Filter a collection by a string search
type: string
ObjectMeta:
description: ObjectMeta is metadata that all persisted resources must have, which includes all objects users must create.
required:
- self
properties:
self:
description: Self is a Uniform Resource Locator (URL) at which an object can be addressed. This URL encodes the service location, API version, and other particulars necessary to locate the resource at a point in time
type: string
format: uri
readOnly: true
example: https://api.confluent.cloud/v2/kafka-clusters/lkc-f3a90de
resource_name:
description: Resource Name is a Uniform Resource Identifier (URI) that is globally unique across space and time. It is represented as a Confluent Resource Name
type: string
format: uri
readOnly: true
example: crn://confluent.cloud/kafka=lkc-f3a90de
created_at:
type: string
format: date-time
example: '2006-01-02T15:04:05-07:00'
readOnly: true
description: The date and time at which this object was created. It is represented in RFC3339 format and is in UTC.
updated_at:
type: string
format: date-time
example: '2006-01-02T15:04:05-07:00'
readOnly: true
description: The date and time at which this object was last updated. It is represented in RFC3339 format and is in UTC.
deleted_at:
type: string
format: date-time
example: '2006-01-02T15:04:05-07:00'
readOnly: true
description: The date and time at which this object was (or will be) deleted. It is represented in RFC3339 format and is in UTC.
readOnly: true
switchover.v1.SwitchoverEndpointStatus:
type: object
required:
- phase
description: The status of the Switchover Endpoint
properties:
phase:
type: string
x-extensible-enum:
- PROVISIONING
- READY
- FAILED
- DEPROVISIONING
description: "The lifecycle phase of the switchover endpoint:\n PROVISIONING: the endpoint is being created and reconciled;\n READY: the endpoint is reconciled and serving traffic;\n FAILED: the endpoint encountered an error;\n DEPROVISIONING: the endpoint is being deleted.\n"
readOnly: true
example: READY
conditions:
type: array
description: Status conditions providing detailed information about the switchover endpoint's current state.
items:
$ref: '#/components/schemas/switchover.v1.SwitchoverEndpointCondition'
readOnly: true
readOnly: true
switchover.v1.EndpointConfig:
type: object
description: Configuration for a single endpoint side of a `SwitchoverEndpoint`.
required:
- name
- endpoint_filter
properties:
name:
type: string
description: A logical name for this endpoint side (e.g. "west-platt"), unique within the resource.
example: west-platt
hostname:
type: string
description: The resolved hostname for this endpoint. Set by the Switchover service.
readOnly: true
example: lkc-west-platt.us-west-2.aws.private.confluent.cloud
cloud:
type: string
description: The cloud provider this endpoint resolves in. Output-only, derived server-side.
readOnly: true
example: aws
region:
type: string
description: The cloud region this endpoint resolves in. Output-only, derived server-side.
readOnly: true
example: us-west-2
connection_type:
type: string
description: 'The connection type of the resolved endpoint (e.g. `PRIVATE_LINK`), from
cc-endpoint-service''s vocabulary. Output-only; empty when the connection type is
unspecified.
'
readOnly: true
example: PRIVATE_LINK
endpoint_filter:
allOf:
- $ref: '#/components/schemas/switchover.v1.EndpointFilter'
Failure:
type: object
description: Provides information about problems encountered while performing an operation.
required:
- errors
properties:
errors:
description: List of errors which caused this operation to fail
type: array
items:
$ref: '#/components/schemas/Error'
uniqueItems: true
switchover.v1.EndpointFilter:
type: object
description: 'The client-supplied criteria that select which network endpoint to use for this side of the
switchover pair. This filter is the only part of an endpoint side the caller provides; the
resolved endpoint details on the parent `EndpointConfig` — `hostname`, `cloud`, `region`, and
`connection_type` — are derived server-side from the selected network (or access point) and the
`SwitchoverPair` member, not supplied here (ORC-10125).
Set `type` to `public` or `private`. A `private` endpoint sets exactly one of `network_crn` or
`access_point_crn`; each independently resolves a unique endpoint, so a second selector is never
needed and could only disagree with the first. A `public` endpoint sets neither.
There is deliberately no environment field: the environment is always recoverable without one —
from `network_crn` or `access_point_crn` on a private entry, and from the switchover endpoint''s
own `environment_crn` on a public entry. Carrying it here too would only duplicate that fact and
let a caller name an environment that disagrees with the CRN beside it.
'
required:
- type
properties:
type:
type: string
description: Whether the endpoint is private or public.
x-extensible-enum:
- private
- public
example: private
network_crn:
type: string
format: uri
pattern: ^crn://confluent\.cloud/organization=[^/]+/environment=[^/]+/network=.+$
description: 'CRN of the network to resolve this endpoint against. A private endpoint sets exactly one
of this or `access_point_crn` — each independently resolves a unique endpoint, so a
second selector is never needed and could only disagree with the first. A public
endpoint sets neither.
'
example: crn://confluent.cloud/organization=9bb441c4-edef-46ac-8a41-c49e44a3fd9a/environment=env-00000/network=n-abc123
access_point_crn:
type: string
format: uri
pattern: ^crn://confluent\.cloud/organization=[^/]+/environment=[^/]+/gateway=[^/]+/access-point=.+$
description: 'CRN of the network access point, for access-point (PNI) endpoints — the alternative to
`network_crn`; a private endpoint sets exactly one of the two. The `gateway` segment is
part of the registered canonical form and is required.
'
example: crn://confluent.cloud/organization=9bb441c4-edef-46ac-8a41-c49e44a3fd9a/environment=env-00000/gateway=gw-456xyz/access-point=ap-west-xyz
securitySchemes:
cloud-api-key:
type: http
scheme: basic
description: Authenticate with Cloud API Keys using HTTP Basic Auth. Treat the Cloud API Key ID as the username and Cloud API Key Secret as the password.
confluent-sts-access-token:
type: oauth2
description: Authenticate with Confluent API using this credentials (JSON Web Tokens) following OAuth 2.0.
flows:
clientCredentials:
tokenUrl: https://api.confluent.cloud/sts/v1/oauth2/token
scopes: {}
global-api-key:
type: http
scheme: basic
description: Authenticate with Global API Keys using HTTP Basic Auth. Treat the Global API Key ID as the username and Global API Key Secret as the password.
resource-api-key:
type: http
scheme: basic
description: Authenticate with resource-specific API Keys using HTTP Basic Auth. Treat the resource-specific API Key ID as the username and resource-specific API Key Secret as the password.
external-access-token:
type: oauth2
description: Authenticate with Confluent API using this credentials (JSON Web Tokens) following OAuth 2.0.
flows:
clientCredentials:
tokenUrl: https://api.confluent.cloud/sts/v1/oauth2/token
scopes: {}
oauth:
type: oauth2
description: Authenticate with OAuth 2.0. Currently this is only supported for partner APIs.
flows:
clientCredentials:
tokenUrl: /oauth2/token
scopes:
partner:alter: enables partners to alter entitlements
partner:create: enables partners to create entitlements and signup on behalf of customers
partner:delete: enables partners to delete entitlements and organizations
partner:describe: enables partners to read and list entitlements and organizations
x-tagGroups:
- name: Identity Access Management (v2)
tags:
- API Keys (iam/v2)
- Users (iam/v2)
- Service Accounts (iam/v2)
- Invitations (iam/v2)
- IP Groups (iam/v2)
- IP Filters (iam/v2)
- IP Filter Summaries (iam/v2)
- Role Bindings (iam/v2)
- Identity Providers (iam/v2)
- Jwks (iam/v2)
- Identity Pools (iam/v2)
- Group Mappings (iam/v2/sso)
- Certificate Authorities (iam/v2)
- Certificate Identity Pools (iam/v2)
- name: Org API (v2)
tags:
- Environments (org/v2)
- Organizations (org/v2)
- Scim Tokens (org/v2)
- name: Notifications API (v1)
tags:
- Subscriptions (notifications/v1)
- Integrations (notifications/v1)
- Notification Types (notifications/v1)
- Resource Preferences (notifications/v1)
- Resource Subscriptions (notifications/v1)
- User Notifications (notifications/v1)
- name: Cluster Mgmt for Kafka (v2)
tags:
- Clusters (cmk/v2)
- name: Cluster Mgmt for ksqlDB (v2)
tags:
- Clusters (ksqldbcm/v2)
- name: Connect API (v1)
tags:
- Connectors (connect/v1)
- Lifecycle (connect/v1)
- Status (connect/v1)
- Managed Connector Plugins (connect/v1)
- Offsets (connect/v1)
- Custom Connector Plugins (connect/v1)
- Presigned Urls (connect/v1)
- Custom Connector Runtimes (connect/v1)
- name: Connect Artifact Management (v1)
tags:
- Connect Artifacts (cam/v1)
- Presigned Urls (cam/v1)
- name: Kafka API (v3)
tags:
- Cluster (v3)
- Configs (v3)
- ACL (v3)
- Consumer Group (v3)
- Partition (v3)
- Topic (v3)
- Records (v3)
- Cluster Linking (v3)
- Share Group (v3)
- Streams Group (v3)
- name: Service Quota API (v1)
tags:
- Applied Quotas (service-quota/v1)
- Scopes (service-quota/v1)
- name: Partner API (v2)
tags:
- Entitlements (partner/v2)
- Organizations (partner/v2)
- Signup (partner/v2)
- name: Cluster Mgmt for Schema Registry (v2)
tags:
- Regions (srcm/v2)
- Clusters (srcm/v2)
- name: Cluster Mgmt for Schema Registry (v3)
tags:
- Clusters (srcm/v3)
- name: Schema Registry API (v1)
tags:
- Compatibility (v1)
- Config (v1)
- Contexts (v1)
- Exporters (v1)
- Modes (v1)
- Schemas (v1)
- Subjects (v1)
- Key Encryption Keys (v1)
- Data Encryption Keys (v1)
- name: Catalog API (v1)
tags:
- Entity (v1)
- Search (v1)
- Types (v1)
- name: Stream Sharing API (v1)
tags:
- Provider Shared Resources (cdx/v1)
- Provider Shares (cdx/v1)
- Consumer Shared Resources (cdx/v1)
- Consumer Shares (cdx/v1)
- Shared Tokens (cdx/v1)
- Opt Ins (cdx/v1)
- name: Networking (v1)
tags:
- Networks (networking/v1)
- Peerings (networking/v1)
- Transit Gateway Attachments (networking/v1)
- Private Link Accesses (networking/v1)
- Network Link Services (networking/v1)
- Network Link Endpoints (networking/v1)
- Network Link Service Associations (networking/v1)
- IP Addresses (networking/v1)
- Private Link Attachments (networking/v1)
- Private Link Attachment Connections (networking/v1)
- DNS Forwarders (networking/v1)
- Access Points (networking/v1)
- DNS Records (networking/v1)
- Gateways (networking/v1)
- name: Security Token Service (v1)
tags:
- OAuth Tokens (sts/v1)
- name: Kafka Quota (v1)
tags:
- Client Quotas (kafka-quotas/v1)
- name: Bring Your Own Key (BYOK) Management (v1)
tags:
- Keys (byok/v1)
- name: Billing API (v1)
tags:
- Costs (billing/v1)
- name: Compute Pool Mgmt for Flink (v2)
tags:
- Compute Pools (fcpm/v2)
- Regions (fcpm/v2)
- Org Compute Pool Configs (fcpm/v2)
- name: SQL API (v1)
tags:
- Statements (sql/v1)
- Statement Results (sql/v1)
- Statement Exceptions (sql/v1)
- Connections (sql/v1)
- Agents (sql/v1)
- Tools (sql/v1)
- Materialized Tables (sql/v1)
- Materialized Table Versions (sql/v1)
- name: Provider Integration Management (v1)
tags:
- Integrations (pim/v1)
- name: Provider Integration Management (v2)
tags:
- Integrations (pim/v2)
- name: Artifact API (v1)
tags:
- Flink Artifacts (artifact/v1)
- Presigned Urls (artifact/v1)
- Flink Artifact Versions (artifact/v1)
- name: Custom Code Logging API (v1)
tags:
- Custom Code Loggings (ccl/v1)
- name: Tableflow (v1)
tags:
- Regions (tableflow/v1)
- Tableflow Topics (tableflow/v1)
- Catalog Integrations (tableflow/v1)
- name: Custom Connect Plugin Management (v1)
tags:
- Custom Connect Plugins (ccpm/v1)
- Presigned Urls (ccpm/v1)
- Custom Connect Plugin Versions (ccpm/v1)
- name: Unified Stream Manager (v1)
tags:
- Kafka Clusters (usm/v1)
- Connect Clusters (usm/v1)
- name: Endpoint (v1)
tags:
- Endpoints (endpoint/v1)
- name: Real Time Context Engine (v1)
tags:
- Rtce Topics (rtce/v1)
- Regions (rtce/v1)
- name: Analytics (v1alpha1)
tags:
- Statements (query/v1alpha1)
- name: SCIM API (v2)
tags:
- Users (scim/v2)
- name: Switchover (v1)
tags:
- Switchover Pairs (switchover/v1)
- Switchover Endpoints (switchover/v1)