REST APIs for Confluent Manager for Apache Flink

You can use the Confluent REST API to manage these resources for Confluent Manager for Apache Flink® (CMF):

  • Environments

  • Applications

In addition to the REST API, you can manage the above resources by using these Confluent tools:

Prerequisites

The REST API requires networked access to CMF.

As part of the installation process, a Kubernetes service is created that exposes CMF behind an outward-facing endpoint. By default, the service exposes CMF on port 8080.

If you have configured authentication and/or authorization, each API request must be authenticated and you need permissions on the respective resource.

For more information, see:

Endpoints (v1)

All endpoints are served under /cmf/api/v1.

Identifiers

All resources are identified by name. Each name must be unique in its scope and follow the following restrictions:

  • Minimum length: 4

  • Maximum length: 253

  • Pattern: ^[a-z0-9]([-a-z0-9]*[a-z0-9])?(.[a-z0-9]([-a-z0-9]*[a-z0-9])?)*$

Timestamps

All timestamps in fields named metadata.creationTimestamp and metadata.updateTimestamp and the created_time and updated_time fields in the Environment are RFC 3339 formatted strings, compatible with Java’s Instant type.

The timestamp is in UTC, and does not contain any timezone information.name

This is an example: 2025-03-31T11:34:01.503Z.

Example usage with curl

The following example shows how to create a Flink Application in an environment called “test” using curl:

Contents of the file flink-application.yaml:

apiVersion: cmf.confluent.io/v1
kind: FlinkApplication
metadata:
  name: curl-example
spec:
  image: confluentinc/cp-flink:1.19.1-cp2
  flinkVersion: v1_19
  flinkConfiguration:
    taskmanager.numberOfTaskSlots: "1"
  serviceAccount: flink
  jobManager:
    resource:
      memory: 1024m
      cpu: 1
  taskManager:
    resource:
      memory: 1024m
      cpu: 1
  job:
    jarURI: local:///opt/flink/examples/streaming/StateMachineExample.jar
    state: running
    parallelism: 3
    upgradeMode: stateless

Submission using curl, assuming CMF is running on localhost:8080:

curl -H "Content-type: application/yaml" --data-binary "@flink-application.yaml" localhost:8080/cmf/api/v1/environments/test/applications

Query parameters

You can refine list endpoint responses by filtering results, controlling sort order, selecting specific fields, and searching across resource attributes.

Filtering

Use the filter query parameter with one or more comma-separated expressions.

?filter=<expression>[,<expression>...]

Expression type

Syntax

Supported resources

Name

name=foo*bar (wildcards allowed)

All

Label equality

labels.key = value or labels.key != value

All

Label set-based

labels.key in (v1, v2) or labels.key notin (v1, v2)

All

Label existence

labels.key (exists) or !labels.key (does not exist)

All

State

state=RUNNING or state in (RUNNING, FAILED) or state notin (RUNNING, FAILED)

Applications

Phase

phase=PENDING or phase in (PENDING, RUNNING) or phase notin (PENDING, RUNNING)

Statements, Compute Pools

Type

type=CMF_STATUS or type in (CMF_STATUS, JOB_STATUS) or type notin (CMF_STATUS, JOB_STATUS)

Events

Examples

# Name wildcard + label filter
?filter=name=prod*,labels.environment in (production, qa),!labels.development

# Application state filter
?filter=name=prod*,state in (RUNNING, FAILED)

# Statement phase filter
?filter=name=my-stmt*,phase in (PENDING, RUNNING)

# Event type filter
?filter=type=CMF_STATUS

Sorting

Use the sort query parameter in the format property,(asc|desc). Endpoints sort in ascending order by default. Repeat the parameter for multiple sort criteria.

?sort=<property>,(asc|desc)[&sort=<property>,(asc|desc)...]

Supported sort properties:

Property

Notes

name / metadata.name

Alphabetical sort by resource name.

creationTimestamp / metadata.creationTimestamp

Sort by resource creation time.

updateTimestamp / metadata.updateTimestamp

Sort by the most recent spec update time. The displayed metadata.updateTimestamp might differ because it reflects the latest of spec or status changes.

Examples

# Newest first
?sort=creationTimestamp,desc

# By name ascending, then by creation time descending
?sort=name,asc&sort=creationTimestamp,desc

Field projection

Use the fields query parameter to request only specific fields in the response, reducing payload size. Specify field paths as a comma-separated list using dot notation for nested fields. apiVersion and kind are always included regardless of what is requested.

?fields=<field>[,<field>...]

Example

?fields=metadata.name,metadata.creationTimestamp,status.phase

API reference

This section contains the REST API reference for Confluent Manager for Apache Flink® and the API spec.

View the API spec

If you want to see the entire API spec, you can download the file: apispec-v1.yml

Reference details

Environments

POST /cmf/api/v1/environments

Create or update an Environment

basic-environment - Basic Environment:

POST /cmf/api/v1/environments HTTP/1.1
Host: example.com
Content-Type: application/json

{
    "name": "production",
    "kubernetesNamespace": "flink-production",
    "flinkApplicationDefaults": {
        "spec": {
            "flinkConfiguration": {
                "taskmanager.numberOfTaskSlots": "4",
                "rest.profiling.enabled": "true"
            },
            "jobManager": {
                "resource": {
                    "memory": "1024m",
                    "cpu": 1
                }
            },
            "taskManager": {
                "resource": {
                    "memory": "1024m",
                    "cpu": 1
                }
            }
        }
    },
    "computePoolDefaults": {
        "clusterSpec": {
            "flinkVersion": "v1_19",
            "image": "confluentinc/cp-flink-sql:1.19-cp5",
            "flinkConfiguration": {
                "taskmanager.numberOfTaskSlots": "4"
            }
        }
    },
    "statementDefaults": {
        "detached": {
            "flinkConfiguration": {
                "state.backend.type": "hashmap"
            }
        },
        "interactive": {
            "flinkConfiguration": {
                "state.backend.type": "hashmap"
            }
        }
    }
}

basic-environment-yaml - Basic Environment (YAML):

POST /cmf/api/v1/environments HTTP/1.1
Host: example.com
Content-Type: application/yaml

{
    "name": "staging",
    "kubernetesNamespace": "flink-staging",
    "flinkApplicationDefaults": {
        "spec": {
            "flinkConfiguration": {
                "taskmanager.numberOfTaskSlots": "2",
                "rest.profiling.enabled": "true"
            },
            "jobManager": {
                "resource": {
                    "memory": "1024m",
                    "cpu": 1
                }
            },
            "taskManager": {
                "resource": {
                    "memory": "1024m",
                    "cpu": 1
                }
            }
        }
    }
}
Status Codes:
  • 200 OK

    The Environment was successfully created or updated.

    created-environment - Created Environment:

    HTTP/1.1 200 OK
    Content-Type: application/json
    
    {
        "name": "production",
        "kubernetesNamespace": "flink-production",
        "created_time": "2024-01-15T10:30:00Z",
        "updated_time": "2024-01-15T10:30:00Z",
        "flinkApplicationDefaults": {
            "spec": {
                "flinkConfiguration": {
                    "taskmanager.numberOfTaskSlots": "4",
                    "rest.profiling.enabled": "true"
                },
                "jobManager": {
                    "resource": {
                        "memory": "1024m",
                        "cpu": 1
                    }
                },
                "taskManager": {
                    "resource": {
                        "memory": "1024m",
                        "cpu": 1
                    }
                }
            }
        },
        "computePoolDefaults": {
            "clusterSpec": {
                "flinkVersion": "v1_19",
                "image": "confluentinc/cp-flink-sql:1.19-cp5",
                "flinkConfiguration": {
                    "taskmanager.numberOfTaskSlots": "4"
                }
            }
        },
        "statementDefaults": {
            "detached": {
                "flinkConfiguration": {
                    "state.backend.type": "hashmap"
                }
            },
            "interactive": {
                "flinkConfiguration": {
                    "state.backend.type": "hashmap"
                }
            }
        },
        "secrets": {}
    }
    

  • 400 Bad Request

    Bad request.

    validation-error - Validation Error:

    HTTP/1.1 400 Bad Request
    Content-Type: application/json
    
    {
        "errors": [
            {
                "message": "name: size must be between 4 and 2147483647"
            },
            {
                "message": "Environment's kubernetesNamespace 'fl' does not exist."
            },
            {
                "message": "Environment's kubernetesClusterName 'nonexistent' does not exist."
            }
        ]
    }
    

  • 500 Internal Server Error

    Server error.

    Example response:

    HTTP/1.1 500 Internal Server Error
    Content-Type: application/json
    
    {
        "errors": [
            {
                "message": "string"
            }
        ]
    }
    

GET /cmf/api/v1/environments

Retrieve a paginated list of all environments.

Query Parameters:
  • page (integer) – Zero-based page index (0..N)

  • size (integer) – The size of the page to be returned

  • sort (array) – Sorting criteria in the format: property,(asc|desc). Default sort order is ascending. Multiple sort criteria are supported.

  • include-resource-information (boolean) – Whether to include resource summary in the response.

  • filter (string) – Comma-separated filter expressions. Supports name, label, state, phase, and type filtering. Example: ?filter=name=prod*,state in (RUNNING, FAILED)

  • search (string) – Search term to match against fields specified in searchScope. Must be provided together with searchScope.

  • searchScope (string) – Comma-separated list of fields to search in. Must be provided together with search. Unsupported field names result in a 400 Bad Request.

  • fields (string) – Comma-separated field paths to include in the response. Supports dot notation for nested fields. apiVersion and kind are always included. Example: ?fields=metadata.name,metadata.creationTimestamp,status.phase

Example request:

GET /cmf/api/v1/environments HTTP/1.1
Host: example.com
Status Codes:
  • 200 OK

    List of environments found. If no environments are found, an empty list is returned. Note the information about secret is not included in the list call yet. In order to get the information about secret, make a getSecret call.

    Example response:

    HTTP/1.1 200 OK
    Content-Type: application/json
    
    {
        "pageable": {
            "page": 1,
            "size": 1,
            "sort": {
                "sorted": true,
                "unsorted": true,
                "empty": true
            }
        },
        "metadata": {
            "size": 1
        },
        "items": [
            {
                "name": "string",
                "created_time": "2026-04-21T05:55:06.673891",
                "updated_time": "2026-04-21T05:55:06.673891",
                "flinkApplicationDefaults": {},
                "kubernetesNamespace": "string",
                "kubernetesClusterName": "string",
                "computePoolDefaults": {},
                "statementDefaults": {
                    "detached": {
                        "flinkConfiguration": {}
                    },
                    "interactive": {
                        "flinkConfiguration": {}
                    }
                },
                "metadata": {
                    "name": "string",
                    "creationTimestamp": "string",
                    "updateTimestamp": "string",
                    "labels": {},
                    "annotations": {}
                }
            }
        ]
    }
    

  • 304 Not Modified – Not modified.

  • 500 Internal Server Error

    Server error.

    Example response:

    HTTP/1.1 500 Internal Server Error
    Content-Type: application/json
    
    {
        "errors": [
            {
                "message": "string"
            }
        ]
    }
    

Response Headers:
  • ETag – An ID for this version of the response.

GET /cmf/api/v1/environments/{envName}

Get/Describe an environment with the given name.

Parameters:
  • envName (string) – Name of the Environment to be retrieved.

Query Parameters:
  • include-resource-information (boolean) – Whether to include resource summary in the response.

Example request:

GET /cmf/api/v1/environments/{envName} HTTP/1.1
Host: example.com
Status Codes:
  • 200 OK

    Environment found and returned.

    Example response:

    HTTP/1.1 200 OK
    Content-Type: application/json
    
    {
        "name": "string",
        "created_time": "2026-04-21T05:55:06.673891",
        "updated_time": "2026-04-21T05:55:06.673891",
        "flinkApplicationDefaults": {},
        "kubernetesNamespace": "string",
        "kubernetesClusterName": "string",
        "computePoolDefaults": {},
        "statementDefaults": {
            "detached": {
                "flinkConfiguration": {}
            },
            "interactive": {
                "flinkConfiguration": {}
            }
        },
        "metadata": {
            "name": "string",
            "creationTimestamp": "string",
            "updateTimestamp": "string",
            "labels": {},
            "annotations": {}
        }
    }
    

  • 404 Not Found

    Environment not found.

    Example response:

    HTTP/1.1 404 Not Found
    Content-Type: application/json
    
    {
        "errors": [
            {
                "message": "string"
            }
        ]
    }
    

  • 500 Internal Server Error

    Server error.

    Example response:

    HTTP/1.1 500 Internal Server Error
    Content-Type: application/json
    
    {
        "errors": [
            {
                "message": "string"
            }
        ]
    }
    

DELETE /cmf/api/v1/environments/{envName}
Parameters:
  • envName (string) – Name of the Environment to be deleted.

Query Parameters:
  • force (boolean) – If set to true, the platform deletes the environment from CMF metadata only, without requiring Kubernetes cluster connectivity. Kubernetes resources, such as service account or secret, might be orphaned.

Status Codes:
  • 204 No Content – Environment found and deleted.

  • 304 Not Modified – Not modified.

  • 500 Internal Server Error

    Server error.

    Example response:

    HTTP/1.1 500 Internal Server Error
    Content-Type: application/json
    
    {
        "errors": [
            {
                "message": "string"
            }
        ]
    }
    

  • 404 Not Found

    Environment not found.

    Example response:

    HTTP/1.1 404 Not Found
    Content-Type: application/json
    
    {
        "errors": [
            {
                "message": "string"
            }
        ]
    }
    

DELETE /cmf/api/v1/environments/{envName}/secret-mappings/{name}

Deletes the Environment Secret Mapping for the given Environment and Secret.

Parameters:
  • envName (string) – Name of the Environment in which the mapping has to be deleted.

  • name (string) – Name of the environment secret mapping to be deleted in the given environment.

Status Codes:
  • 204 No Content – The Environment Secret Mapping was successfully deleted.

  • 404 Not Found

    Environment or Secret not found.

    Example response:

    HTTP/1.1 404 Not Found
    Content-Type: application/json
    
    {
        "errors": [
            {
                "message": "string"
            }
        ]
    }
    

  • 500 Internal Server Error

    Server error.

    Example response:

    HTTP/1.1 500 Internal Server Error
    Content-Type: application/json
    
    {
        "errors": [
            {
                "message": "string"
            }
        ]
    }
    

GET /cmf/api/v1/environments/{envName}/secret-mappings/{name}

Retrieve the Environment Secret Mapping for the given name in the given environment.

Parameters:
  • envName (string) – Name of the Environment

  • name (string) – Name of the environment secret mapping to be retrieved.

Example request:

GET /cmf/api/v1/environments/{envName}/secret-mappings/{name} HTTP/1.1
Host: example.com
Status Codes:
  • 200 OK

    Environment Secret Mapping found and returned.

    Example response:

    HTTP/1.1 200 OK
    Content-Type: application/json
    
    {
        "apiVersion": "string",
        "kind": "string",
        "metadata": {
            "name": "string",
            "uid": "string",
            "creationTimestamp": "string",
            "updateTimestamp": "string",
            "labels": {},
            "annotations": {}
        },
        "spec": {
            "secretName": "string"
        }
    }
    

  • 404 Not Found

    Environment or Secret not found.

    Example response:

    HTTP/1.1 404 Not Found
    Content-Type: application/json
    
    {
        "errors": [
            {
                "message": "string"
            }
        ]
    }
    

  • 500 Internal Server Error

    Server error.

    Example response:

    HTTP/1.1 500 Internal Server Error
    Content-Type: application/json
    
    {
        "errors": [
            {
                "message": "string"
            }
        ]
    }
    

PUT /cmf/api/v1/environments/{envName}/secret-mappings/{name}

Updates the Environment Secret Mapping for the given Environment.

Parameters:
  • envName (string) – Name of the Environment

  • name (string) – Name of the environment secret mapping to be updated

Example request:

PUT /cmf/api/v1/environments/{envName}/secret-mappings/{name} HTTP/1.1
Host: example.com
Content-Type: application/json

{
    "apiVersion": "string",
    "kind": "string",
    "metadata": {
        "name": "string",
        "uid": "string",
        "creationTimestamp": "string",
        "updateTimestamp": "string",
        "labels": {},
        "annotations": {}
    },
    "spec": {
        "secretName": "string"
    }
}
Status Codes:
  • 200 OK

    The Environment Secret Mapping was successfully updated.

    Example response:

    HTTP/1.1 200 OK
    Content-Type: application/json
    
    {
        "apiVersion": "string",
        "kind": "string",
        "metadata": {
            "name": "string",
            "uid": "string",
            "creationTimestamp": "string",
            "updateTimestamp": "string",
            "labels": {},
            "annotations": {}
        },
        "spec": {
            "secretName": "string"
        }
    }
    

  • 400 Bad Request

    Bad request.

    Example response:

    HTTP/1.1 400 Bad Request
    Content-Type: application/json
    
    {
        "errors": [
            {
                "message": "string"
            }
        ]
    }
    

  • 404 Not Found

    Environment or Secret not found.

    Example response:

    HTTP/1.1 404 Not Found
    Content-Type: application/json
    
    {
        "errors": [
            {
                "message": "string"
            }
        ]
    }
    

  • 500 Internal Server Error

    Server error.

    Example response:

    HTTP/1.1 500 Internal Server Error
    Content-Type: application/json
    
    {
        "errors": [
            {
                "message": "string"
            }
        ]
    }
    

POST /cmf/api/v1/environments/{envName}/secret-mappings

Creates the Environment Secret Mapping for the given Environment.

Parameters:
  • envName (string) – Name of the Environment

Example request:

POST /cmf/api/v1/environments/{envName}/secret-mappings HTTP/1.1
Host: example.com
Content-Type: application/json

{
    "apiVersion": "string",
    "kind": "string",
    "metadata": {
        "name": "string",
        "uid": "string",
        "creationTimestamp": "string",
        "updateTimestamp": "string",
        "labels": {},
        "annotations": {}
    },
    "spec": {
        "secretName": "string"
    }
}
Status Codes:
  • 200 OK

    The Environment Secret Mapping was successfully created.

    Example response:

    HTTP/1.1 200 OK
    Content-Type: application/json
    
    {
        "apiVersion": "string",
        "kind": "string",
        "metadata": {
            "name": "string",
            "uid": "string",
            "creationTimestamp": "string",
            "updateTimestamp": "string",
            "labels": {},
            "annotations": {}
        },
        "spec": {
            "secretName": "string"
        }
    }
    

  • 400 Bad Request

    Bad request.

    Example response:

    HTTP/1.1 400 Bad Request
    Content-Type: application/json
    
    {
        "errors": [
            {
                "message": "string"
            }
        ]
    }
    

  • 404 Not Found

    Environment not found.

    Example response:

    HTTP/1.1 404 Not Found
    Content-Type: application/json
    
    {
        "errors": [
            {
                "message": "string"
            }
        ]
    }
    

  • 409 Conflict

    Environment Secret Mapping already exists.

    Example response:

    HTTP/1.1 409 Conflict
    Content-Type: application/json
    
    {
        "errors": [
            {
                "message": "string"
            }
        ]
    }
    

  • 500 Internal Server Error

    Server error.

    Example response:

    HTTP/1.1 500 Internal Server Error
    Content-Type: application/json
    
    {
        "errors": [
            {
                "message": "string"
            }
        ]
    }
    

GET /cmf/api/v1/environments/{envName}/secret-mappings

Retrieve a paginated list of all Environment Secret Mappings.

Parameters:
  • envName (string) – Name of the Environment

Query Parameters:
  • page (integer) – Zero-based page index (0..N)

  • size (integer) – The size of the page to be returned

  • sort (array) – Sorting criteria in the format: property,(asc|desc). Default sort order is ascending. Multiple sort criteria are supported.

Example request:

GET /cmf/api/v1/environments/{envName}/secret-mappings HTTP/1.1
Host: example.com
Status Codes:
  • 200 OK

    Environment Secret Mappings found and returned.

    Example response:

    HTTP/1.1 200 OK
    Content-Type: application/json
    
    {
        "pageable": {
            "page": 1,
            "size": 1,
            "sort": {
                "sorted": true,
                "unsorted": true,
                "empty": true
            }
        },
        "metadata": {
            "size": 1
        },
        "items": [
            {
                "apiVersion": "string",
                "kind": "string",
                "metadata": {
                    "name": "string",
                    "uid": "string",
                    "creationTimestamp": "string",
                    "updateTimestamp": "string",
                    "labels": {},
                    "annotations": {}
                },
                "spec": {
                    "secretName": "string"
                }
            }
        ]
    }
    

  • 404 Not Found

    Environment not found.

    Example response:

    HTTP/1.1 404 Not Found
    Content-Type: application/json
    
    {
        "errors": [
            {
                "message": "string"
            }
        ]
    }
    

  • 500 Internal Server Error

    Server error.

    Example response:

    HTTP/1.1 500 Internal Server Error
    Content-Type: application/json
    
    {
        "errors": [
            {
                "message": "string"
            }
        ]
    }
    

FlinkApplications

POST /cmf/api/v1/environments/{envName}/applications

Creates a new Flink Application or updates an existing one in the given Environment.

Parameters:
  • envName (string) – Name of the Environment

basic-application - Basic Flink Application:

POST /cmf/api/v1/environments/{envName}/applications HTTP/1.1
Host: example.com
Content-Type: application/json

{
    "apiVersion": "cmf.confluent.io/v1",
    "kind": "FlinkApplication",
    "metadata": {
        "name": "state-machine",
        "labels": {
            "app": "state-machine",
            "environment": "production"
        },
        "annotations": {
            "description": "Real-time fraud detection application"
        }
    },
    "spec": {
        "image": "confluentinc/cp-flink:1.19.3-cp2",
        "flinkVersion": "v1_19",
        "flinkConfiguration": {
            "taskmanager.numberOfTaskSlots": "2",
            "metrics.reporter.prom.factory.class": "org.apache.flink.metrics.prometheus.PrometheusReporterFactory",
            "metrics.reporter.prom.port": "9249-9250"
        },
        "serviceAccount": "flink",
        "jobManager": {
            "resource": {
                "memory": "1024m",
                "cpu": 1
            }
        },
        "taskManager": {
            "resource": {
                "memory": "1024m",
                "cpu": 1
            }
        },
        "job": {
            "jarURI": "local:///opt/flink/examples/streaming/StateMachineExample.jar",
            "state": "running",
            "parallelism": 2,
            "upgradeMode": "stateless"
        }
    }
}

yaml-application - Flink Application (YAML):

POST /cmf/api/v1/environments/{envName}/applications HTTP/1.1
Host: example.com
Content-Type: application/yaml

{
    "apiVersion": "cmf.confluent.io/v1",
    "kind": "FlinkApplication",
    "metadata": {
        "name": "news-aggregator",
        "labels": {
            "app": "news-aggregator",
            "environment": "staging"
        }
    },
    "spec": {
        "image": "confluentinc/cp-flink:1.19.3-cp2",
        "flinkVersion": "v1_19",
        "flinkConfiguration": {
            "taskmanager.numberOfTaskSlots": "4",
            "metrics.reporter.prom.factory.class": "org.apache.flink.metrics.prometheus.PrometheusReporterFactory",
            "metrics.reporter.prom.port": "9249-9250"
        },
        "serviceAccount": "flink",
        "jobManager": {
            "resource": {
                "memory": "1024m",
                "cpu": 1
            }
        },
        "taskManager": {
            "resource": {
                "memory": "1024m",
                "cpu": 1
            }
        },
        "job": {
            "jarURI": "local:///opt/flink/examples/streaming/WordCount.jar",
            "state": "running",
            "parallelism": 4,
            "upgradeMode": "stateless"
        }
    }
}
Status Codes:
  • 201 Created

    The Application was successfully created or updated.

    Example response:

    HTTP/1.1 201 Created
    Content-Type: application/json
    
    {
        "apiVersion": "string",
        "kind": "string",
        "metadata": {},
        "spec": {},
        "status": {}
    }
    

  • 400 Bad Request

    Bad request.

    Example response:

    HTTP/1.1 400 Bad Request
    Content-Type: application/json
    
    {
        "errors": [
            {
                "message": "string"
            }
        ]
    }
    

  • 422 Unprocessable Entity

    Request valid but invalid content.

    Example response:

    HTTP/1.1 422 Unprocessable Entity
    Content-Type: application/json
    
    {
        "errors": [
            {
                "message": "string"
            }
        ]
    }
    

  • 500 Internal Server Error

    Server error.

    Example response:

    HTTP/1.1 500 Internal Server Error
    Content-Type: application/json
    
    {
        "errors": [
            {
                "message": "string"
            }
        ]
    }
    

GET /cmf/api/v1/environments/{envName}/applications

Retrieve a paginated list of all applications in the given Environment.

Parameters:
  • envName (string) – Name of the Environment

Query Parameters:
  • page (integer) – Zero-based page index (0..N)

  • size (integer) – The size of the page to be returned

  • sort (array) – Sorting criteria in the format: property,(asc|desc). Default sort order is ascending. Supported properties: name, metadata.name, creationTimestamp, metadata.creationTimestamp, updateTimestamp, metadata.updateTimestamp. Note: updateTimestamp sorts by the most recent spec update time. The displayed metadata.updateTimestamp may differ as it reflects the latest of spec or status changes.

  • include-resource-information (boolean) – Whether to include resource summary in the response.

  • filter (string) – Comma-separated filter expressions. Supports name, label, state, phase, and type filtering. Example: ?filter=name=prod*,state in (RUNNING, FAILED)

  • fields (string) – Comma-separated field paths to include in the response. Supports dot notation for nested fields. apiVersion and kind are always included. Example: ?fields=metadata.name,metadata.creationTimestamp,status.phase

Example request:

GET /cmf/api/v1/environments/{envName}/applications HTTP/1.1
Host: example.com
Status Codes:
  • 200 OK

    Application found and returned.

    Example response:

    HTTP/1.1 200 OK
    Content-Type: application/json
    
    {
        "pageable": {
            "page": 1,
            "size": 1,
            "sort": {
                "sorted": true,
                "unsorted": true,
                "empty": true
            }
        },
        "metadata": {
            "size": 1
        },
        "items": [
            {
                "apiVersion": "string",
                "kind": "string",
                "metadata": {},
                "spec": {},
                "status": {}
            }
        ]
    }
    

  • 304 Not Modified – Not modified.

  • 404 Not Found

    Environment not found.

    Example response:

    HTTP/1.1 404 Not Found
    Content-Type: application/json
    
    {
        "errors": [
            {
                "message": "string"
            }
        ]
    }
    

  • 500 Internal Server Error

    Server error.

    Example response:

    HTTP/1.1 500 Internal Server Error
    Content-Type: application/json
    
    {
        "errors": [
            {
                "message": "string"
            }
        ]
    }
    

Response Headers:
  • ETag – An ID for this version of the response.

GET /cmf/api/v1/environments/{envName}/applications/{appName}

Retrieve an Application of the given name in the given Environment.

Parameters:
  • envName (string) – Name of the Environment

  • appName (string) – Name of the Application

Query Parameters:
  • include-resource-information (boolean) – Whether to include resource summary in the response.

Example request:

GET /cmf/api/v1/environments/{envName}/applications/{appName} HTTP/1.1
Host: example.com
Status Codes:
  • 200 OK

    Application found and returned.

    Example response:

    HTTP/1.1 200 OK
    Content-Type: application/json
    
    {
        "apiVersion": "string",
        "kind": "string",
        "metadata": {},
        "spec": {},
        "status": {}
    }
    

  • 304 Not Modified – Not modified.

  • 500 Internal Server Error

    Server error.

    Example response:

    HTTP/1.1 500 Internal Server Error
    Content-Type: application/json
    
    {
        "errors": [
            {
                "message": "string"
            }
        ]
    }
    

  • 404 Not Found

    Application not found.

    Example response:

    HTTP/1.1 404 Not Found
    Content-Type: application/json
    
    {
        "errors": [
            {
                "message": "string"
            }
        ]
    }
    

Response Headers:
  • ETag – An ID for this version of the response.

DELETE /cmf/api/v1/environments/{envName}/applications/{appName}

Deletes an Application of the given name in the given Environment.

Parameters:
  • envName (string) – Name of the Environment

  • appName (string) – Name of the Application

Query Parameters:
  • force (boolean) – If set to true, the platform deletes the application from CMF metadata only, without requiring Kubernetes cluster connectivity.

Status Codes:
GET /cmf/api/v1alpha1/environments/{envName}/applications/{appName}/events

Get a paginated list of events of the given Application

Parameters:
  • envName (string) – Name of the Environment

  • appName (string) – Name of the Application

Query Parameters:
  • page (integer) – Zero-based page index (0..N)

  • size (integer) – The size of the page to be returned

  • sort (array) – Sorting criteria in the format: property,(asc|desc). Default sort order is ascending. Multiple sort criteria are supported.

  • filter (string) – Comma-separated filter expressions. Supports name, label, state, phase, and type filtering. Example: ?filter=name=prod*,state in (RUNNING, FAILED)

  • search (string) – Search term to match against fields specified in searchScope. Must be provided together with searchScope.

  • searchScope (string) – Comma-separated list of fields to search in. Must be provided together with search. Unsupported field names result in a 400 Bad Request.

  • fields (string) – Comma-separated field paths to include in the response. Supports dot notation for nested fields. apiVersion and kind are always included. Example: ?fields=metadata.name,metadata.creationTimestamp,status.phase

Example request:

GET /cmf/api/v1alpha1/environments/{envName}/applications/{appName}/events HTTP/1.1
Host: example.com
Status Codes:
  • 200 OK

    Events found and returned.

    Example response:

    HTTP/1.1 200 OK
    Content-Type: application/json
    
    {
        "pageable": {
            "page": 1,
            "size": 1,
            "sort": {
                "sorted": true,
                "unsorted": true,
                "empty": true
            }
        },
        "metadata": {
            "size": 1
        },
        "items": [
            {
                "apiVersion": "string",
                "kind": "string",
                "metadata": {
                    "name": "string",
                    "uid": "string",
                    "creationTimestamp": "string",
                    "flinkApplicationInstance": "string",
                    "labels": {},
                    "annotations": {}
                },
                "status": {
                    "message": "string",
                    "type": "string",
                    "data": {
                        "newStatus": "string"
                    }
                }
            }
        ]
    }
    

  • 404 Not Found

    Environment or Application not found.

    Example response:

    HTTP/1.1 404 Not Found
    Content-Type: application/json
    
    {
        "errors": [
            {
                "message": "string"
            }
        ]
    }
    

  • 500 Internal Server Error

    Server error.

    Example response:

    HTTP/1.1 500 Internal Server Error
    Content-Type: application/json
    
    {
        "errors": [
            {
                "message": "string"
            }
        ]
    }
    

POST /cmf/api/v1/environments/{envName}/applications/{appName}/start

Starts an earlier submitted Flink Application

Parameters:
  • envName (string) – Name of the Environment

  • appName (string) – Name of the Application

Query Parameters:
  • startFromSavepointUid (string) – UID of the Savepoint from which the application should be started. This savepoint could belong to the application or can be a detached savepoint.

Status Codes:
  • 200 OK

    Application started

    Example response:

    HTTP/1.1 200 OK
    Content-Type: application/json
    
    {
        "apiVersion": "string",
        "kind": "string",
        "metadata": {},
        "spec": {},
        "status": {}
    }
    

  • 304 Not Modified – Not modified.

  • 404 Not Found

    Environment, Application or Savepoint not found.

    Example response:

    HTTP/1.1 404 Not Found
    Content-Type: application/json
    
    {
        "errors": [
            {
                "message": "string"
            }
        ]
    }
    

  • 500 Internal Server Error

    Server error.

    Example response:

    HTTP/1.1 500 Internal Server Error
    Content-Type: application/json
    
    {
        "errors": [
            {
                "message": "string"
            }
        ]
    }
    

POST /cmf/api/v1/environments/{envName}/applications/{appName}/suspend

Suspends an earlier started Flink Application

Parameters:
  • envName (string) – Name of the Environment

  • appName (string) – Name of the Application

Status Codes:
  • 200 OK

    Application suspended

    Example response:

    HTTP/1.1 200 OK
    Content-Type: application/json
    
    {
        "apiVersion": "string",
        "kind": "string",
        "metadata": {},
        "spec": {},
        "status": {}
    }
    

  • 304 Not Modified – Not modified.

  • 500 Internal Server Error

    Server error.

    Example response:

    HTTP/1.1 500 Internal Server Error
    Content-Type: application/json
    
    {
        "errors": [
            {
                "message": "string"
            }
        ]
    }
    

GET /cmf/api/v1/environments/{envName}/applications/{appName}/instances

Get a paginated list of instances of the given Application

Parameters:
  • envName (string) – Name of the Environment

  • appName (string) – Name of the Application

Query Parameters:
  • page (integer) – Zero-based page index (0..N)

  • size (integer) – The size of the page to be returned

  • sort (array) – Sorting criteria in the format: property,(asc|desc). Default sort order is ascending. Multiple sort criteria are supported.

Example request:

GET /cmf/api/v1/environments/{envName}/applications/{appName}/instances HTTP/1.1
Host: example.com
Status Codes:
  • 200 OK

    Instances found and returned.

    Example response:

    HTTP/1.1 200 OK
    Content-Type: application/json
    
    {
        "pageable": {
            "page": 1,
            "size": 1,
            "sort": {
                "sorted": true,
                "unsorted": true,
                "empty": true
            }
        },
        "metadata": {
            "size": 1
        },
        "items": [
            {
                "apiVersion": "string",
                "kind": "string",
                "metadata": {
                    "name": "string",
                    "uid": "string",
                    "creationTimestamp": "string",
                    "updateTimestamp": "string",
                    "labels": {},
                    "annotations": {}
                },
                "status": {
                    "spec": {},
                    "jobStatus": {
                        "jobId": "string",
                        "state": "string"
                    }
                }
            }
        ]
    }
    

  • 404 Not Found

    Environment or Application not found.

    Example response:

    HTTP/1.1 404 Not Found
    Content-Type: application/json
    
    {
        "errors": [
            {
                "message": "string"
            }
        ]
    }
    

  • 500 Internal Server Error

    Server error.

    Example response:

    HTTP/1.1 500 Internal Server Error
    Content-Type: application/json
    
    {
        "errors": [
            {
                "message": "string"
            }
        ]
    }
    

GET /cmf/api/v1/environments/{envName}/applications/{appName}/instances/{instName}

Retrieve an Instance of an Application

Parameters:
  • envName (string) – Name of the Environment

  • appName (string) – Name of the Application

  • instName (string) – Name of the ApplicationInstance

Example request:

GET /cmf/api/v1/environments/{envName}/applications/{appName}/instances/{instName} HTTP/1.1
Host: example.com
Status Codes:
  • 200 OK

    ApplicationInstance found and returned.

    Example response:

    HTTP/1.1 200 OK
    Content-Type: application/json
    
    {
        "apiVersion": "string",
        "kind": "string",
        "metadata": {
            "name": "string",
            "uid": "string",
            "creationTimestamp": "string",
            "updateTimestamp": "string",
            "labels": {},
            "annotations": {}
        },
        "status": {
            "spec": {},
            "jobStatus": {
                "jobId": "string",
                "state": "string"
            }
        }
    }
    

  • 404 Not Found

    FlinkApplicationInstance or environment or application not found.

    Example response:

    HTTP/1.1 404 Not Found
    Content-Type: application/json
    
    {
        "errors": [
            {
                "message": "string"
            }
        ]
    }
    

  • 500 Internal Server Error

    Server error.

    Example response:

    HTTP/1.1 500 Internal Server Error
    Content-Type: application/json
    
    {
        "errors": [
            {
                "message": "string"
            }
        ]
    }
    

Secrets

POST /cmf/api/v1/secrets

Create a Secret.

Create a Secret. This secrets can be then used to specify sensitive information in the Flink SQL statements. Right now these secrets are only used for Kafka and Schema Registry credentials.

Example request:

POST /cmf/api/v1/secrets HTTP/1.1
Host: example.com
Content-Type: application/json

{
    "apiVersion": "string",
    "kind": "string",
    "metadata": {
        "name": "string",
        "labels": {},
        "annotations": {}
    },
    "spec": {
        "data": {}
    }
}
Status Codes:
  • 200 OK

    The Secret was successfully created. Note that for security reasons, you can never view the contents of the secret itself once created.

    Example response:

    HTTP/1.1 200 OK
    Content-Type: application/json
    
    {
        "apiVersion": "string",
        "kind": "string",
        "metadata": {
            "name": "string",
            "creationTimestamp": "string",
            "updateTimestamp": "string",
            "uid": "string",
            "labels": {},
            "annotations": {}
        },
        "spec": {
            "data": {}
        },
        "status": {
            "version": "string",
            "environments": [
                "string"
            ]
        }
    }
    

  • 400 Bad Request

    Bad request.

    Example response:

    HTTP/1.1 400 Bad Request
    Content-Type: application/json
    
    {
        "errors": [
            {
                "message": "string"
            }
        ]
    }
    

  • 409 Conflict

    The Secret already exists.

    Example response:

    HTTP/1.1 409 Conflict
    Content-Type: application/json
    
    {
        "errors": [
            {
                "message": "string"
            }
        ]
    }
    

  • 500 Internal Server Error

    Server error.

    Example response:

    HTTP/1.1 500 Internal Server Error
    Content-Type: application/json
    
    {
        "errors": [
            {
                "message": "string"
            }
        ]
    }
    

GET /cmf/api/v1/secrets

Retrieve a paginated list of all secrets. Note that the actual secret data is masked for security reasons.

Query Parameters:
  • page (integer) – Zero-based page index (0..N)

  • size (integer) – The size of the page to be returned

  • sort (array) – Sorting criteria in the format: property,(asc|desc). Default sort order is ascending. Multiple sort criteria are supported.

  • filter (string) – Comma-separated filter expressions. Supports name, label, state, phase, and type filtering. Example: ?filter=name=prod*,state in (RUNNING, FAILED)

  • search (string) – Search term to match against fields specified in searchScope. Must be provided together with searchScope.

  • searchScope (string) – Comma-separated list of fields to search in. Must be provided together with search. Unsupported field names result in a 400 Bad Request.

  • fields (string) – Comma-separated field paths to include in the response. Supports dot notation for nested fields. apiVersion and kind are always included. Example: ?fields=metadata.name,metadata.creationTimestamp,status.phase

Example request:

GET /cmf/api/v1/secrets HTTP/1.1
Host: example.com
Status Codes:
  • 200 OK

    List of secrets found. If no secrets are found, an empty list is returned.

    Example response:

    HTTP/1.1 200 OK
    Content-Type: application/json
    
    {
        "pageable": {
            "page": 1,
            "size": 1,
            "sort": {
                "sorted": true,
                "unsorted": true,
                "empty": true
            }
        },
        "metadata": {
            "size": 1
        },
        "items": [
            {
                "apiVersion": "string",
                "kind": "string",
                "metadata": {
                    "name": "string",
                    "creationTimestamp": "string",
                    "updateTimestamp": "string",
                    "uid": "string",
                    "labels": {},
                    "annotations": {}
                },
                "spec": {
                    "data": {}
                },
                "status": {
                    "version": "string",
                    "environments": [
                        "string"
                    ]
                }
            }
        ]
    }
    

  • 304 Not Modified – The list of secrets has not changed.

  • 500 Internal Server Error

    Server error.

    Example response:

    HTTP/1.1 500 Internal Server Error
    Content-Type: application/json
    
    {
        "errors": [
            {
                "message": "string"
            }
        ]
    }
    

Response Headers:
  • ETag – An ID for this version of the response.

GET /cmf/api/v1/secrets/{secretName}

Retrieve the Secret of the given name. Note that the secret data is not returned for security reasons.

Parameters:
  • secretName (string) – Name of the Secret

Example request:

GET /cmf/api/v1/secrets/{secretName} HTTP/1.1
Host: example.com
Status Codes:
  • 200 OK

    Secret found and returned, with security data masked.

    Example response:

    HTTP/1.1 200 OK
    Content-Type: application/json
    
    {
        "apiVersion": "string",
        "kind": "string",
        "metadata": {
            "name": "string",
            "creationTimestamp": "string",
            "updateTimestamp": "string",
            "uid": "string",
            "labels": {},
            "annotations": {}
        },
        "spec": {
            "data": {}
        },
        "status": {
            "version": "string",
            "environments": [
                "string"
            ]
        }
    }
    

  • 404 Not Found

    Secret not found.

    Example response:

    HTTP/1.1 404 Not Found
    Content-Type: application/json
    
    {
        "errors": [
            {
                "message": "string"
            }
        ]
    }
    

  • 500 Internal Server Error

    Server error.

    Example response:

    HTTP/1.1 500 Internal Server Error
    Content-Type: application/json
    
    {
        "errors": [
            {
                "message": "string"
            }
        ]
    }
    

PUT /cmf/api/v1/secrets/{secretName}

Update the secret.

Parameters:
  • secretName (string) – Name of the Secret

Example request:

PUT /cmf/api/v1/secrets/{secretName} HTTP/1.1
Host: example.com
Content-Type: application/json

{
    "apiVersion": "string",
    "kind": "string",
    "metadata": {
        "name": "string",
        "labels": {},
        "annotations": {}
    },
    "spec": {
        "data": {}
    }
}
Status Codes:
  • 200 OK

    Returns the updated Secret

    Example response:

    HTTP/1.1 200 OK
    Content-Type: application/json
    
    {
        "apiVersion": "string",
        "kind": "string",
        "metadata": {
            "name": "string",
            "creationTimestamp": "string",
            "updateTimestamp": "string",
            "uid": "string",
            "labels": {},
            "annotations": {}
        },
        "spec": {
            "data": {}
        },
        "status": {
            "version": "string",
            "environments": [
                "string"
            ]
        }
    }
    

  • 400 Bad Request

    Bad request.

    Example response:

    HTTP/1.1 400 Bad Request
    Content-Type: application/json
    
    {
        "errors": [
            {
                "message": "string"
            }
        ]
    }
    

  • 404 Not Found

    Secret with the given name not found.

    Example response:

    HTTP/1.1 404 Not Found
    Content-Type: application/json
    
    {
        "errors": [
            {
                "message": "string"
            }
        ]
    }
    

  • 422 Unprocessable Entity

    Request valid but invalid content.

    Example response:

    HTTP/1.1 422 Unprocessable Entity
    Content-Type: application/json
    
    {
        "errors": [
            {
                "message": "string"
            }
        ]
    }
    

  • 500 Internal Server Error

    Server error.

    Example response:

    HTTP/1.1 500 Internal Server Error
    Content-Type: application/json
    
    {
        "errors": [
            {
                "message": "string"
            }
        ]
    }
    

DELETE /cmf/api/v1/secrets/{secretName}

Delete the secret with the given name.

Parameters:
  • secretName (string) – Name of the Secret

Status Codes:
  • 204 No Content – Secret was successfully deleted.

  • 404 Not Found

    Secret not found.

    Example response:

    HTTP/1.1 404 Not Found
    Content-Type: application/json
    
    {
        "errors": [
            {
                "message": "string"
            }
        ]
    }
    

  • 500 Internal Server Error

    Server error.

    Example response:

    HTTP/1.1 500 Internal Server Error
    Content-Type: application/json
    
    {
        "errors": [
            {
                "message": "string"
            }
        ]
    }
    

SQL

POST /cmf/api/v1/environments/{envName}/statements

Creates a new Flink SQL Statement in the given Environment.

Parameters:
  • envName (string) – Name of the Environment

basic-statement - Basic SQL Statement:

POST /cmf/api/v1/environments/{envName}/statements HTTP/1.1
Host: example.com
Content-Type: application/json

{
    "apiVersion": "cmf.confluent.io/v1",
    "kind": "Statement",
    "metadata": {
        "name": "test-stmt",
        "labels": {
            "app": "data-processing",
            "environment": "production"
        },
        "annotations": {
            "description": "Test SQL statement for data processing"
        }
    },
    "spec": {
        "statement": "INSERT INTO blackhole SELECT click_id FROM clicks;",
        "computePoolName": "test-pool",
        "parallelism": 2,
        "stopped": false,
        "flinkConfiguration": {
            "state.backend.type": "hashmap",
            "execution.checkpointing.interval": "2000"
        }
    }
}

yaml-statement - Statement (YAML):

POST /cmf/api/v1/environments/{envName}/statements HTTP/1.1
Host: example.com
Content-Type: application/yaml

{
    "apiVersion": "cmf.confluent.io/v1",
    "kind": "Statement",
    "metadata": {
        "name": "data-streaming",
        "labels": {
            "app": "streaming",
            "environment": "staging"
        }
    },
    "spec": {
        "statement": "INSERT INTO blackhole SELECT click_id FROM clicks;",
        "computePoolName": "streaming-pool",
        "parallelism": 2,
        "stopped": false,
        "flinkConfiguration": {
            "state.backend.type": "hashmap",
            "execution.checkpointing.interval": "2000"
        }
    }
}
Status Codes:
  • 200 OK

    The Statement was successfully created.

    Example response:

    HTTP/1.1 200 OK
    Content-Type: application/json
    
    {
        "apiVersion": "string",
        "kind": "string",
        "metadata": {
            "name": "string",
            "creationTimestamp": "string",
            "updateTimestamp": "string",
            "uid": "string",
            "labels": {},
            "annotations": {}
        },
        "spec": {
            "statement": "string",
            "properties": {},
            "flinkConfiguration": {},
            "computePoolName": "string",
            "parallelism": 1,
            "stopped": true,
            "startFromSavepoint": {
                "savepointName": "string",
                "uid": "string",
                "initialSavepointPath": "string",
                "allowNonRestoredState": true,
                "savepointRedeployNonce": 1
            }
        },
        "status": {
            "phase": "string",
            "detail": "string",
            "traits": {
                "sqlKind": "string",
                "isBounded": true,
                "isAppendOnly": true,
                "upsertColumns": [
                    1
                ],
                "schema": {
                    "columns": [
                        {
                            "name": "string",
                            "type": {
                                "type": "string",
                                "nullable": true,
                                "length": 1,
                                "precision": 1,
                                "scale": 1,
                                "keyType": {},
                                "valueType": {},
                                "elementType": {},
                                "fields": [
                                    {
                                        "name": "string",
                                        "fieldType": {},
                                        "description": "string"
                                    }
                                ],
                                "resolution": "string",
                                "fractionalPrecision": 1
                            }
                        }
                    ]
                }
            },
            "resourceSummary": {
                "jobManager": {
                    "cpu": 1.0,
                    "memory": 1,
                    "count": 1
                },
                "taskManager": {
                    "cpu": 1.0,
                    "memory": 1,
                    "count": 1
                }
            },
            "warning": "string"
        },
        "result": {
            "apiVersion": "string",
            "kind": "string",
            "metadata": {
                "creationTimestamp": "string",
                "annotations": {}
            },
            "results": {
                "data": [
                    {}
                ]
            }
        }
    }
    

  • 400 Bad Request

    Bad request.

    Example response:

    HTTP/1.1 400 Bad Request
    Content-Type: application/json
    
    {
        "errors": [
            {
                "message": "string"
            }
        ]
    }
    

  • 404 Not Found

    Environment not found.

    Example response:

    HTTP/1.1 404 Not Found
    Content-Type: application/json
    
    {
        "errors": [
            {
                "message": "string"
            }
        ]
    }
    

  • 409 Conflict

    Statement already exists.

    Example response:

    HTTP/1.1 409 Conflict
    Content-Type: application/json
    
    {
        "errors": [
            {
                "message": "string"
            }
        ]
    }
    

  • 422 Unprocessable Entity

    Request valid but invalid content.

    Example response:

    HTTP/1.1 422 Unprocessable Entity
    Content-Type: application/json
    
    {
        "errors": [
            {
                "message": "string"
            }
        ]
    }
    

  • 500 Internal Server Error

    Server error.

    Example response:

    HTTP/1.1 500 Internal Server Error
    Content-Type: application/json
    
    {
        "errors": [
            {
                "message": "string"
            }
        ]
    }
    

GET /cmf/api/v1/environments/{envName}/statements

Retrieve a paginated list of Statements in the given Environment.

Parameters:
  • envName (string) – Name of the Environment

Query Parameters:
  • page (integer) – Zero-based page index (0..N)

  • size (integer) – The size of the page to be returned

  • sort (array) – Sorting criteria in the format: property,(asc|desc). Default sort order is ascending. Multiple sort criteria are supported.

  • compute-pool (string) – Name of the ComputePool to filter on

  • phase (string) – Phase to filter on

  • include-resource-information (boolean) – Whether to include resource summary in the response.

  • filter (string) – Comma-separated filter expressions. Supports name, label, state, phase, and type filtering. Example: ?filter=name=prod*,state in (RUNNING, FAILED)

  • search (string) – Search term to match against fields specified in searchScope. Must be provided together with searchScope.

  • searchScope (string) – Comma-separated list of fields to search in. Must be provided together with search. Unsupported field names result in a 400 Bad Request.

  • fields (string) – Comma-separated field paths to include in the response. Supports dot notation for nested fields. apiVersion and kind are always included. Example: ?fields=metadata.name,metadata.creationTimestamp,status.phase

  • name (string) – Wildcard filter using statement name, for example, ?name=abc. This field is deprecated. Use filter parameter instead.

Example request:

GET /cmf/api/v1/environments/{envName}/statements HTTP/1.1
Host: example.com
Status Codes:
  • 200 OK

    Statements found and returned.

    Example response:

    HTTP/1.1 200 OK
    Content-Type: application/json
    
    {
        "pageable": {
            "page": 1,
            "size": 1,
            "sort": {
                "sorted": true,
                "unsorted": true,
                "empty": true
            }
        },
        "metadata": {
            "size": 1
        },
        "items": [
            {
                "apiVersion": "string",
                "kind": "string",
                "metadata": {
                    "name": "string",
                    "creationTimestamp": "string",
                    "updateTimestamp": "string",
                    "uid": "string",
                    "labels": {},
                    "annotations": {}
                },
                "spec": {
                    "statement": "string",
                    "properties": {},
                    "flinkConfiguration": {},
                    "computePoolName": "string",
                    "parallelism": 1,
                    "stopped": true,
                    "startFromSavepoint": {
                        "savepointName": "string",
                        "uid": "string",
                        "initialSavepointPath": "string",
                        "allowNonRestoredState": true,
                        "savepointRedeployNonce": 1
                    }
                },
                "status": {
                    "phase": "string",
                    "detail": "string",
                    "traits": {
                        "sqlKind": "string",
                        "isBounded": true,
                        "isAppendOnly": true,
                        "upsertColumns": [
                            1
                        ],
                        "schema": {
                            "columns": [
                                {
                                    "name": "string",
                                    "type": {
                                        "type": "string",
                                        "nullable": true,
                                        "length": 1,
                                        "precision": 1,
                                        "scale": 1,
                                        "keyType": {},
                                        "valueType": {},
                                        "elementType": {},
                                        "fields": [
                                            {
                                                "name": "string",
                                                "fieldType": {},
                                                "description": "string"
                                            }
                                        ],
                                        "resolution": "string",
                                        "fractionalPrecision": 1
                                    }
                                }
                            ]
                        }
                    },
                    "resourceSummary": {
                        "jobManager": {
                            "cpu": 1.0,
                            "memory": 1,
                            "count": 1
                        },
                        "taskManager": {
                            "cpu": 1.0,
                            "memory": 1,
                            "count": 1
                        }
                    },
                    "warning": "string"
                },
                "result": {
                    "apiVersion": "string",
                    "kind": "string",
                    "metadata": {
                        "creationTimestamp": "string",
                        "annotations": {}
                    },
                    "results": {
                        "data": [
                            {}
                        ]
                    }
                }
            }
        ]
    }
    

  • 404 Not Found

    Environment not found.

    Example response:

    HTTP/1.1 404 Not Found
    Content-Type: application/json
    
    {
        "errors": [
            {
                "message": "string"
            }
        ]
    }
    

  • 500 Internal Server Error

    Server error.

    Example response:

    HTTP/1.1 500 Internal Server Error
    Content-Type: application/json
    
    {
        "errors": [
            {
                "message": "string"
            }
        ]
    }
    

GET /cmf/api/v1/environments/{envName}/statements/{stmtName}

Retrieve the Statement of the given name in the given Environment.

Parameters:
  • envName (string) – Name of the Environment

  • stmtName (string) – Name of the Statement

Query Parameters:
  • include-resource-information (boolean) – Whether to include resource summary in the response.

Example request:

GET /cmf/api/v1/environments/{envName}/statements/{stmtName} HTTP/1.1
Host: example.com
Status Codes:
  • 200 OK

    Statement found and returned.

    Example response:

    HTTP/1.1 200 OK
    Content-Type: application/json
    
    {
        "apiVersion": "string",
        "kind": "string",
        "metadata": {
            "name": "string",
            "creationTimestamp": "string",
            "updateTimestamp": "string",
            "uid": "string",
            "labels": {},
            "annotations": {}
        },
        "spec": {
            "statement": "string",
            "properties": {},
            "flinkConfiguration": {},
            "computePoolName": "string",
            "parallelism": 1,
            "stopped": true,
            "startFromSavepoint": {
                "savepointName": "string",
                "uid": "string",
                "initialSavepointPath": "string",
                "allowNonRestoredState": true,
                "savepointRedeployNonce": 1
            }
        },
        "status": {
            "phase": "string",
            "detail": "string",
            "traits": {
                "sqlKind": "string",
                "isBounded": true,
                "isAppendOnly": true,
                "upsertColumns": [
                    1
                ],
                "schema": {
                    "columns": [
                        {
                            "name": "string",
                            "type": {
                                "type": "string",
                                "nullable": true,
                                "length": 1,
                                "precision": 1,
                                "scale": 1,
                                "keyType": {},
                                "valueType": {},
                                "elementType": {},
                                "fields": [
                                    {
                                        "name": "string",
                                        "fieldType": {},
                                        "description": "string"
                                    }
                                ],
                                "resolution": "string",
                                "fractionalPrecision": 1
                            }
                        }
                    ]
                }
            },
            "resourceSummary": {
                "jobManager": {
                    "cpu": 1.0,
                    "memory": 1,
                    "count": 1
                },
                "taskManager": {
                    "cpu": 1.0,
                    "memory": 1,
                    "count": 1
                }
            },
            "warning": "string"
        },
        "result": {
            "apiVersion": "string",
            "kind": "string",
            "metadata": {
                "creationTimestamp": "string",
                "annotations": {}
            },
            "results": {
                "data": [
                    {}
                ]
            }
        }
    }
    

  • 404 Not Found

    Statement not found.

    Example response:

    HTTP/1.1 404 Not Found
    Content-Type: application/json
    
    {
        "errors": [
            {
                "message": "string"
            }
        ]
    }
    

  • 500 Internal Server Error

    Server error.

    Example response:

    HTTP/1.1 500 Internal Server Error
    Content-Type: application/json
    
    {
        "errors": [
            {
                "message": "string"
            }
        ]
    }
    

DELETE /cmf/api/v1/environments/{envName}/statements/{stmtName}

Deletes the Statement of the given name in the given Environment.

Parameters:
  • envName (string) – Name of the Environment

  • stmtName (string) – Name of the Statement

Query Parameters:
  • force (boolean) – If set to true, the platform deletes the statement from CMF metadata only, without requiring Kubernetes cluster connectivity.

Status Codes:
  • 204 No Content – Statement was found and deleted.

  • 202 Accepted – Statement was found and deletion request received.

  • 404 Not Found

    Statement not found.

    Example response:

    HTTP/1.1 404 Not Found
    Content-Type: application/json
    
    {
        "errors": [
            {
                "message": "string"
            }
        ]
    }
    

  • 500 Internal Server Error

    Server error.

    Example response:

    HTTP/1.1 500 Internal Server Error
    Content-Type: application/json
    
    {
        "errors": [
            {
                "message": "string"
            }
        ]
    }
    

PUT /cmf/api/v1/environments/{envName}/statements/{stmtName}

Updates a Statement of the given name in the given Environment.

Parameters:
  • envName (string) – Name of the Environment

  • stmtName (string) – Name of the Statement

Example request:

PUT /cmf/api/v1/environments/{envName}/statements/{stmtName} HTTP/1.1
Host: example.com
Content-Type: application/json

{
    "apiVersion": "string",
    "kind": "string",
    "metadata": {
        "name": "string",
        "creationTimestamp": "string",
        "updateTimestamp": "string",
        "uid": "string",
        "labels": {},
        "annotations": {}
    },
    "spec": {
        "statement": "string",
        "properties": {},
        "flinkConfiguration": {},
        "computePoolName": "string",
        "parallelism": 1,
        "stopped": true,
        "startFromSavepoint": {
            "savepointName": "string",
            "uid": "string",
            "initialSavepointPath": "string",
            "allowNonRestoredState": true,
            "savepointRedeployNonce": 1
        }
    },
    "status": {
        "phase": "string",
        "detail": "string",
        "traits": {
            "sqlKind": "string",
            "isBounded": true,
            "isAppendOnly": true,
            "upsertColumns": [
                1
            ],
            "schema": {
                "columns": [
                    {
                        "name": "string",
                        "type": {
                            "type": "string",
                            "nullable": true,
                            "length": 1,
                            "precision": 1,
                            "scale": 1,
                            "keyType": {},
                            "valueType": {},
                            "elementType": {},
                            "fields": [
                                {
                                    "name": "string",
                                    "fieldType": {},
                                    "description": "string"
                                }
                            ],
                            "resolution": "string",
                            "fractionalPrecision": 1
                        }
                    }
                ]
            }
        },
        "resourceSummary": {
            "jobManager": {
                "cpu": 1.0,
                "memory": 1,
                "count": 1
            },
            "taskManager": {
                "cpu": 1.0,
                "memory": 1,
                "count": 1
            }
        },
        "warning": "string"
    },
    "result": {
        "apiVersion": "string",
        "kind": "string",
        "metadata": {
            "creationTimestamp": "string",
            "annotations": {}
        },
        "results": {
            "data": [
                {}
            ]
        }
    }
}
Status Codes:
  • 200 OK – Statement was found and updated.

  • 400 Bad Request

    Bad request.

    Example response:

    HTTP/1.1 400 Bad Request
    Content-Type: application/json
    
    {
        "errors": [
            {
                "message": "string"
            }
        ]
    }
    

  • 404 Not Found

    Statement not found.

    Example response:

    HTTP/1.1 404 Not Found
    Content-Type: application/json
    
    {
        "errors": [
            {
                "message": "string"
            }
        ]
    }
    

  • 422 Unprocessable Entity

    Request valid but invalid content.

    Example response:

    HTTP/1.1 422 Unprocessable Entity
    Content-Type: application/json
    
    {
        "errors": [
            {
                "message": "string"
            }
        ]
    }
    

  • 500 Internal Server Error

    Server error.

    Example response:

    HTTP/1.1 500 Internal Server Error
    Content-Type: application/json
    
    {
        "errors": [
            {
                "message": "string"
            }
        ]
    }
    

GET /cmf/api/v1/environments/{envName}/statements/{stmtName}/results

Retrieve the result of the interactive Statement with the given name in the given Environment.

Parameters:
  • envName (string) – Name of the Environment

  • stmtName (string) – Name of the Statement

Query Parameters:
  • page-token (string) – Token for the next page of results

Example request:

GET /cmf/api/v1/environments/{envName}/statements/{stmtName}/results HTTP/1.1
Host: example.com
Status Codes:
  • 200 OK

    StatementResults found and returned.

    Example response:

    HTTP/1.1 200 OK
    Content-Type: application/json
    
    {
        "apiVersion": "string",
        "kind": "string",
        "metadata": {
            "creationTimestamp": "string",
            "annotations": {}
        },
        "results": {
            "data": [
                {}
            ]
        }
    }
    

  • 400 Bad Request

    Statement does not return results.

    Example response:

    HTTP/1.1 400 Bad Request
    Content-Type: application/json
    
    {
        "errors": [
            {
                "message": "string"
            }
        ]
    }
    

  • 404 Not Found

    Statement not found.

    Example response:

    HTTP/1.1 404 Not Found
    Content-Type: application/json
    
    {
        "errors": [
            {
                "message": "string"
            }
        ]
    }
    

  • 410 Gone

    Results are gone.

    Example response:

    HTTP/1.1 410 Gone
    Content-Type: application/json
    
    {
        "errors": [
            {
                "message": "string"
            }
        ]
    }
    

  • 500 Internal Server Error

    Server error.

    Example response:

    HTTP/1.1 500 Internal Server Error
    Content-Type: application/json
    
    {
        "errors": [
            {
                "message": "string"
            }
        ]
    }
    

GET /cmf/api/v1/environments/{envName}/statements/{stmtName}/exceptions

Retrieves the last 10 exceptions of the Statement with the given name in the given Environment.

Parameters:
  • envName (string) – Name of the Environment

  • stmtName (string) – Name of the Statement

Example request:

GET /cmf/api/v1/environments/{envName}/statements/{stmtName}/exceptions HTTP/1.1
Host: example.com
Status Codes:
  • 200 OK

    StatementExceptions found and returned.

    Example response:

    HTTP/1.1 200 OK
    Content-Type: application/json
    
    {
        "apiVersion": "string",
        "kind": "string",
        "data": [
            {
                "apiVersion": "string",
                "kind": "string",
                "name": "string",
                "message": "string",
                "timestamp": "string"
            }
        ]
    }
    

  • 404 Not Found

    Statement not found.

    Example response:

    HTTP/1.1 404 Not Found
    Content-Type: application/json
    
    {
        "errors": [
            {
                "message": "string"
            }
        ]
    }
    

  • 500 Internal Server Error

    Server error.

    Example response:

    HTTP/1.1 500 Internal Server Error
    Content-Type: application/json
    
    {
        "errors": [
            {
                "message": "string"
            }
        ]
    }
    

POST /cmf/api/v1/environments/{envName}/compute-pools

Creates a new Flink Compute Pool in the given Environment.

Parameters:
  • envName (string) – Name of the Environment

dedicated-compute-pool - Dedicated Compute Pool:

POST /cmf/api/v1/environments/{envName}/compute-pools HTTP/1.1
Host: example.com
Content-Type: application/json

{
    "apiVersion": "cmf.confluent.io/v1",
    "kind": "ComputePool",
    "metadata": {
        "name": "test-pool",
        "labels": {
            "environment": "production"
        },
        "annotations": {
            "description": "Standard compute pool for production workloads"
        }
    },
    "spec": {
        "type": "DEDICATED",
        "clusterSpec": {
            "flinkVersion": "v1_19",
            "image": "confluentinc/cp-flink-sql:1.19-cp5",
            "flinkConfiguration": {
                "taskmanager.numberOfTaskSlots": "1"
            },
            "taskManager": {
                "resource": {
                    "cpu": 0.5,
                    "memory": "1024m"
                }
            },
            "jobManager": {
                "resource": {
                    "cpu": 0.5,
                    "memory": "1024m"
                }
            }
        }
    }
}

shared-compute-pool - Shared Compute Pool:

POST /cmf/api/v1/environments/{envName}/compute-pools HTTP/1.1
Host: example.com
Content-Type: application/json

{
    "apiVersion": "cmf.confluent.io/v1",
    "kind": "ComputePool",
    "metadata": {
        "name": "shared-pool-1"
    },
    "spec": {
        "type": "SHARED",
        "state": "RUNNING",
        "clusterSpec": {
            "flinkVersion": "v1_19",
            "image": "confluentinc/cp-flink-sql:1.19-cp5",
            "flinkConfiguration": {
                "taskmanager.numberOfTaskSlots": "2"
            },
            "taskManager": {
                "resource": {
                    "cpu": 1,
                    "memory": "2048m"
                }
            },
            "jobManager": {
                "resource": {
                    "cpu": 1,
                    "memory": "2048m"
                }
            }
        }
    }
}

yaml-dedicated-compute-pool - Dedicated Compute Pool (YAML):

POST /cmf/api/v1/environments/{envName}/compute-pools HTTP/1.1
Host: example.com
Content-Type: application/yaml

{
    "apiVersion": "cmf.confluent.io/v1",
    "kind": "ComputePool",
    "metadata": {
        "name": "staging-pool",
        "labels": {
            "environment": "staging"
        }
    },
    "spec": {
        "type": "DEDICATED",
        "clusterSpec": {
            "flinkVersion": "v1_19",
            "image": "confluentinc/cp-flink-sql:1.19-cp5",
            "flinkConfiguration": {
                "taskmanager.numberOfTaskSlots": "2"
            },
            "taskManager": {
                "resource": {
                    "cpu": 1,
                    "memory": "1024m"
                }
            },
            "jobManager": {
                "resource": {
                    "cpu": 1,
                    "memory": "1024m"
                }
            }
        }
    }
}

yaml-shared-compute-pool - Shared Compute Pool (YAML):

POST /cmf/api/v1/environments/{envName}/compute-pools HTTP/1.1
Host: example.com
Content-Type: application/yaml

{
    "apiVersion": "cmf.confluent.io/v1",
    "kind": "ComputePool",
    "metadata": {
        "name": "shared-pool-1"
    },
    "spec": {
        "type": "SHARED",
        "state": "RUNNING",
        "clusterSpec": {
            "flinkVersion": "v1_19",
            "image": "confluentinc/cp-flink-sql:1.19-cp5",
            "flinkConfiguration": {
                "taskmanager.numberOfTaskSlots": "2"
            },
            "taskManager": {
                "resource": {
                    "cpu": 1,
                    "memory": "2048m"
                }
            },
            "jobManager": {
                "resource": {
                    "cpu": 1,
                    "memory": "2048m"
                }
            }
        }
    }
}
Status Codes:
  • 200 OK

    The Compute Pool was successfully created.

    Example response:

    HTTP/1.1 200 OK
    Content-Type: application/json
    
    {
        "apiVersion": "string",
        "kind": "string",
        "metadata": {
            "name": "string",
            "creationTimestamp": "string",
            "updateTimestamp": "string",
            "uid": "string",
            "labels": {},
            "annotations": {}
        },
        "spec": {
            "type": "DEDICATED",
            "state": "RUNNING",
            "clusterSpec": {}
        },
        "status": {
            "phase": "DEDICATED",
            "message": "string",
            "resourceSummary": {
                "jobManager": {
                    "cpu": 1.0,
                    "memory": 1,
                    "count": 1
                },
                "taskManager": {
                    "cpu": 1.0,
                    "memory": 1,
                    "count": 1
                }
            },
            "resources": {
                "applications": {},
                "statements": {}
            },
            "warning": "string"
        }
    }
    

  • 400 Bad Request

    Bad request.

    Example response:

    HTTP/1.1 400 Bad Request
    Content-Type: application/json
    
    {
        "errors": [
            {
                "message": "string"
            }
        ]
    }
    

  • 409 Conflict

    Compute Pool already exists.

    Example response:

    HTTP/1.1 409 Conflict
    Content-Type: application/json
    
    {
        "errors": [
            {
                "message": "string"
            }
        ]
    }
    

  • 422 Unprocessable Entity

    Request valid but invalid content.

    Example response:

    HTTP/1.1 422 Unprocessable Entity
    Content-Type: application/json
    
    {
        "errors": [
            {
                "message": "string"
            }
        ]
    }
    

  • 500 Internal Server Error

    Server error.

    Example response:

    HTTP/1.1 500 Internal Server Error
    Content-Type: application/json
    
    {
        "errors": [
            {
                "message": "string"
            }
        ]
    }
    

GET /cmf/api/v1/environments/{envName}/compute-pools

Retrieve a paginated list of Compute Pools in the given Environment.

Parameters:
  • envName (string) – Name of the Environment

Query Parameters:
  • page (integer) – Zero-based page index (0..N)

  • size (integer) – The size of the page to be returned

  • sort (array) – Sorting criteria in the format: property,(asc|desc). Default sort order is ascending. Multiple sort criteria are supported.

  • filter (string) – Comma-separated filter expressions. Supports name, label, state, phase, and type filtering. Example: ?filter=name=prod*,state in (RUNNING, FAILED)

  • include-resource-information (boolean) – Whether to include resource summary in the response.

  • fields (string) – Comma-separated field paths to include in the response. Supports dot notation for nested fields. apiVersion and kind are always included. Example: ?fields=metadata.name,metadata.creationTimestamp,status.phase

Example request:

GET /cmf/api/v1/environments/{envName}/compute-pools HTTP/1.1
Host: example.com
Status Codes:
  • 200 OK

    Compute Pools found and returned.

    Example response:

    HTTP/1.1 200 OK
    Content-Type: application/json
    
    {
        "pageable": {
            "page": 1,
            "size": 1,
            "sort": {
                "sorted": true,
                "unsorted": true,
                "empty": true
            }
        },
        "metadata": {
            "size": 1
        },
        "items": [
            {
                "apiVersion": "string",
                "kind": "string",
                "metadata": {
                    "name": "string",
                    "creationTimestamp": "string",
                    "updateTimestamp": "string",
                    "uid": "string",
                    "labels": {},
                    "annotations": {}
                },
                "spec": {
                    "type": "DEDICATED",
                    "state": "RUNNING",
                    "clusterSpec": {}
                },
                "status": {
                    "phase": "DEDICATED",
                    "message": "string",
                    "resourceSummary": {
                        "jobManager": {
                            "cpu": 1.0,
                            "memory": 1,
                            "count": 1
                        },
                        "taskManager": {
                            "cpu": 1.0,
                            "memory": 1,
                            "count": 1
                        }
                    },
                    "resources": {
                        "applications": {},
                        "statements": {}
                    },
                    "warning": "string"
                }
            }
        ]
    }
    

  • 404 Not Found

    Environment not found.

    Example response:

    HTTP/1.1 404 Not Found
    Content-Type: application/json
    
    {
        "errors": [
            {
                "message": "string"
            }
        ]
    }
    

  • 500 Internal Server Error

    Server error.

    Example response:

    HTTP/1.1 500 Internal Server Error
    Content-Type: application/json
    
    {
        "errors": [
            {
                "message": "string"
            }
        ]
    }
    

GET /cmf/api/v1/environments/{envName}/compute-pools/{computePoolName}

Retrieve the Compute Pool of the given name in the given Environment.

Parameters:
  • envName (string) – Name of the Environment

  • computePoolName (string) – Name of the Compute Pool

Query Parameters:
  • include-resource-information (boolean) – Whether to include resource summary in the response.

Example request:

GET /cmf/api/v1/environments/{envName}/compute-pools/{computePoolName} HTTP/1.1
Host: example.com
Status Codes:
  • 200 OK

    Compute Pool found and returned.

    Example response:

    HTTP/1.1 200 OK
    Content-Type: application/json
    
    {
        "apiVersion": "string",
        "kind": "string",
        "metadata": {
            "name": "string",
            "creationTimestamp": "string",
            "updateTimestamp": "string",
            "uid": "string",
            "labels": {},
            "annotations": {}
        },
        "spec": {
            "type": "DEDICATED",
            "state": "RUNNING",
            "clusterSpec": {}
        },
        "status": {
            "phase": "DEDICATED",
            "message": "string",
            "resourceSummary": {
                "jobManager": {
                    "cpu": 1.0,
                    "memory": 1,
                    "count": 1
                },
                "taskManager": {
                    "cpu": 1.0,
                    "memory": 1,
                    "count": 1
                }
            },
            "resources": {
                "applications": {},
                "statements": {}
            },
            "warning": "string"
        }
    }
    

  • 404 Not Found

    Compute Pool not found.

    Example response:

    HTTP/1.1 404 Not Found
    Content-Type: application/json
    
    {
        "errors": [
            {
                "message": "string"
            }
        ]
    }
    

  • 500 Internal Server Error

    Server error.

    Example response:

    HTTP/1.1 500 Internal Server Error
    Content-Type: application/json
    
    {
        "errors": [
            {
                "message": "string"
            }
        ]
    }
    

DELETE /cmf/api/v1/environments/{envName}/compute-pools/{computePoolName}

Deletes the ComputePool of the given name in the given Environment.

Parameters:
  • envName (string) – Name of the Environment

  • computePoolName (string) – Name of the ComputePool

Query Parameters:
  • force (boolean) – If set to true, the platform deletes the ComputePool from CMF metadata only, without requiring Kubernetes cluster connectivity. For shared compute pools, the session cluster FlinkDeployment might be orphaned. This configuration has no additional effect on dedicated compute pools, which are always metadata-only.

Status Codes:
  • 204 No Content – Compute Pool was found and deleted.

  • 404 Not Found

    Compute Pool not found.

    Example response:

    HTTP/1.1 404 Not Found
    Content-Type: application/json
    
    {
        "errors": [
            {
                "message": "string"
            }
        ]
    }
    

  • 500 Internal Server Error

    Server error.

    Example response:

    HTTP/1.1 500 Internal Server Error
    Content-Type: application/json
    
    {
        "errors": [
            {
                "message": "string"
            }
        ]
    }
    

  • 409 Conflict

    Compute Pool is in use and cannot be deleted.

    Example response:

    HTTP/1.1 409 Conflict
    Content-Type: application/json
    
    {
        "errors": [
            {
                "message": "string"
            }
        ]
    }
    

PUT /cmf/api/v1/environments/{envName}/compute-pools/{computePoolName}

Updates the compute pool specified using its name and environment.

Parameters:
  • envName (string) – Name of the Environment

  • computePoolName (string) – Name of the Compute Pool

Example request:

PUT /cmf/api/v1/environments/{envName}/compute-pools/{computePoolName} HTTP/1.1
Host: example.com
Content-Type: application/json

{
    "apiVersion": "string",
    "kind": "string",
    "metadata": {
        "name": "string",
        "creationTimestamp": "string",
        "updateTimestamp": "string",
        "uid": "string",
        "labels": {},
        "annotations": {}
    },
    "spec": {
        "type": "DEDICATED",
        "state": "RUNNING",
        "clusterSpec": {}
    },
    "status": {
        "phase": "DEDICATED",
        "message": "string",
        "resourceSummary": {
            "jobManager": {
                "cpu": 1.0,
                "memory": 1,
                "count": 1
            },
            "taskManager": {
                "cpu": 1.0,
                "memory": 1,
                "count": 1
            }
        },
        "resources": {
            "applications": {},
            "statements": {}
        },
        "warning": "string"
    }
}
Status Codes:
  • 200 OK

    Compute Pool was found and updated.

    Example response:

    HTTP/1.1 200 OK
    Content-Type: application/json
    
    {
        "apiVersion": "string",
        "kind": "string",
        "metadata": {
            "name": "string",
            "creationTimestamp": "string",
            "updateTimestamp": "string",
            "uid": "string",
            "labels": {},
            "annotations": {}
        },
        "spec": {
            "type": "DEDICATED",
            "state": "RUNNING",
            "clusterSpec": {}
        },
        "status": {
            "phase": "DEDICATED",
            "message": "string",
            "resourceSummary": {
                "jobManager": {
                    "cpu": 1.0,
                    "memory": 1,
                    "count": 1
                },
                "taskManager": {
                    "cpu": 1.0,
                    "memory": 1,
                    "count": 1
                }
            },
            "resources": {
                "applications": {},
                "statements": {}
            },
            "warning": "string"
        }
    }
    

  • 400 Bad Request

    Bad request.

    Example response:

    HTTP/1.1 400 Bad Request
    Content-Type: application/json
    
    {
        "errors": [
            {
                "message": "string"
            }
        ]
    }
    

  • 404 Not Found

    Compute Pool not found.

    Example response:

    HTTP/1.1 404 Not Found
    Content-Type: application/json
    
    {
        "errors": [
            {
                "message": "string"
            }
        ]
    }
    

  • 409 Conflict

    The platform cannot update the compute pool. This can happen due to reasons such as statements running on it.

    Example response:

    HTTP/1.1 409 Conflict
    Content-Type: application/json
    
    {
        "errors": [
            {
                "message": "string"
            }
        ]
    }
    

  • 422 Unprocessable Entity

    Request valid but invalid content.

    Example response:

    HTTP/1.1 422 Unprocessable Entity
    Content-Type: application/json
    
    {
        "errors": [
            {
                "message": "string"
            }
        ]
    }
    

  • 500 Internal Server Error

    Server error.

    Example response:

    HTTP/1.1 500 Internal Server Error
    Content-Type: application/json
    
    {
        "errors": [
            {
                "message": "string"
            }
        ]
    }
    

POST /cmf/api/v1/catalogs/kafka

Creates a new Kafka Catalog that can be referenced by Flink Statements

basic-kafka-catalog - Basic Kafka Catalog:

POST /cmf/api/v1/catalogs/kafka HTTP/1.1
Host: example.com
Content-Type: application/json

{
    "apiVersion": "cmf.confluent.io/v1",
    "kind": "KafkaCatalog",
    "metadata": {
        "name": "test-cat",
        "labels": {
            "environment": "production",
            "managedBy": "CMF"
        },
        "annotations": {
            "description": "Production Kafka catalog for Flink statements"
        }
    },
    "spec": {
        "srInstance": {
            "connectionConfig": {
                "schema.registry.url": "https://schema-registry.example.com"
            },
            "connectionSecretId": "sr-secret-id"
        }
    }
}

yaml-kafka-catalog - Kafka Catalog (YAML):

POST /cmf/api/v1/catalogs/kafka HTTP/1.1
Host: example.com
Content-Type: application/yaml

{
    "apiVersion": "cmf.confluent.io/v1",
    "kind": "KafkaCatalog",
    "metadata": {
        "name": "staging-catalog",
        "labels": {
            "environment": "staging"
        }
    },
    "spec": {
        "srInstance": {
            "connectionConfig": {
                "schema.registry.url": "https://sr-staging.example.com"
            },
            "connectionSecretId": "sr-staging-secret"
        }
    }
}
Status Codes:
  • 200 OK

    The Kafka Catalog was successfully created.

    Example response:

    HTTP/1.1 200 OK
    Content-Type: application/json
    
    {
        "apiVersion": "string",
        "kind": "string",
        "metadata": {
            "name": "string",
            "creationTimestamp": "string",
            "updateTimestamp": "string",
            "uid": "string",
            "labels": {},
            "annotations": {}
        },
        "spec": {
            "srInstance": {
                "connectionConfig": {},
                "connectionSecretId": "string"
            },
            "kafkaClusters": [
                {
                    "databaseName": "string",
                    "connectionConfig": {},
                    "connectionSecretId": "string"
                }
            ]
        },
        "status": {
            "environmentsWithAccess": [
                "string"
            ]
        }
    }
    

  • 400 Bad Request

    Bad request.

    Example response:

    HTTP/1.1 400 Bad Request
    Content-Type: application/json
    
    {
        "errors": [
            {
                "message": "string"
            }
        ]
    }
    

  • 409 Conflict

    Kafka Catalog already exists.

    Example response:

    HTTP/1.1 409 Conflict
    Content-Type: application/json
    
    {
        "errors": [
            {
                "message": "string"
            }
        ]
    }
    

  • 422 Unprocessable Entity

    Request valid but invalid content.

    Example response:

    HTTP/1.1 422 Unprocessable Entity
    Content-Type: application/json
    
    {
        "errors": [
            {
                "message": "string"
            }
        ]
    }
    

  • 500 Internal Server Error

    Server error.

    Example response:

    HTTP/1.1 500 Internal Server Error
    Content-Type: application/json
    
    {
        "errors": [
            {
                "message": "string"
            }
        ]
    }
    

GET /cmf/api/v1/catalogs/kafka

Retrieve a paginated list of Kafka Catalogs

Query Parameters:
  • page (integer) – Zero-based page index (0..N)

  • size (integer) – The size of the page to be returned

  • sort (array) – Sorting criteria in the format: property,(asc|desc). Default sort order is ascending. Multiple sort criteria are supported.

Example request:

GET /cmf/api/v1/catalogs/kafka HTTP/1.1
Host: example.com
Status Codes:
  • 200 OK

    Kafka Catalogs found and returned.

    Example response:

    HTTP/1.1 200 OK
    Content-Type: application/json
    
    {
        "pageable": {
            "page": 1,
            "size": 1,
            "sort": {
                "sorted": true,
                "unsorted": true,
                "empty": true
            }
        },
        "metadata": {
            "size": 1
        },
        "items": [
            {
                "apiVersion": "string",
                "kind": "string",
                "metadata": {
                    "name": "string",
                    "creationTimestamp": "string",
                    "updateTimestamp": "string",
                    "uid": "string",
                    "labels": {},
                    "annotations": {}
                },
                "spec": {
                    "srInstance": {
                        "connectionConfig": {},
                        "connectionSecretId": "string"
                    },
                    "kafkaClusters": [
                        {
                            "databaseName": "string",
                            "connectionConfig": {},
                            "connectionSecretId": "string"
                        }
                    ]
                },
                "status": {
                    "environmentsWithAccess": [
                        "string"
                    ]
                }
            }
        ]
    }
    

  • 500 Internal Server Error

    Server error.

    Example response:

    HTTP/1.1 500 Internal Server Error
    Content-Type: application/json
    
    {
        "errors": [
            {
                "message": "string"
            }
        ]
    }
    

GET /cmf/api/v1/catalogs/kafka/{catName}

Retrieve the Kafka Catalog of the given name.

Parameters:
  • catName (string) – Name of the Kafka Catalog

Example request:

GET /cmf/api/v1/catalogs/kafka/{catName} HTTP/1.1
Host: example.com
Status Codes:
  • 200 OK

    Kafka Catalog found and returned.

    Example response:

    HTTP/1.1 200 OK
    Content-Type: application/json
    
    {
        "apiVersion": "string",
        "kind": "string",
        "metadata": {
            "name": "string",
            "creationTimestamp": "string",
            "updateTimestamp": "string",
            "uid": "string",
            "labels": {},
            "annotations": {}
        },
        "spec": {
            "srInstance": {
                "connectionConfig": {},
                "connectionSecretId": "string"
            },
            "kafkaClusters": [
                {
                    "databaseName": "string",
                    "connectionConfig": {},
                    "connectionSecretId": "string"
                }
            ]
        },
        "status": {
            "environmentsWithAccess": [
                "string"
            ]
        }
    }
    

  • 404 Not Found

    Kafka Catalog not found.

    Example response:

    HTTP/1.1 404 Not Found
    Content-Type: application/json
    
    {
        "errors": [
            {
                "message": "string"
            }
        ]
    }
    

  • 500 Internal Server Error

    Server error.

    Example response:

    HTTP/1.1 500 Internal Server Error
    Content-Type: application/json
    
    {
        "errors": [
            {
                "message": "string"
            }
        ]
    }
    

DELETE /cmf/api/v1/catalogs/kafka/{catName}

Deletes the Kafka Catalog of the given name.

Parameters:
  • catName (string) – Name of the Kafka Catalog

Status Codes:
  • 204 No Content – Kafka Catalog was found and deleted.

  • 404 Not Found

    Kafka Catalog not found.

    Example response:

    HTTP/1.1 404 Not Found
    Content-Type: application/json
    
    {
        "errors": [
            {
                "message": "string"
            }
        ]
    }
    

  • 409 Conflict

    Catalog contains databases and cannot be deleted.

    Example response:

    HTTP/1.1 409 Conflict
    Content-Type: application/json
    
    {
        "errors": [
            {
                "message": "string"
            }
        ]
    }
    

  • 500 Internal Server Error

    Server error.

    Example response:

    HTTP/1.1 500 Internal Server Error
    Content-Type: application/json
    
    {
        "errors": [
            {
                "message": "string"
            }
        ]
    }
    

PUT /cmf/api/v1/catalogs/kafka/{catName}

Updates a KafkaCatalog of the given name.

Parameters:
  • catName (string) – Name of the KafkaCatalog

Example request:

PUT /cmf/api/v1/catalogs/kafka/{catName} HTTP/1.1
Host: example.com
Content-Type: application/json

{
    "apiVersion": "string",
    "kind": "string",
    "metadata": {
        "name": "string",
        "creationTimestamp": "string",
        "updateTimestamp": "string",
        "uid": "string",
        "labels": {},
        "annotations": {}
    },
    "spec": {
        "srInstance": {
            "connectionConfig": {},
            "connectionSecretId": "string"
        },
        "kafkaClusters": [
            {
                "databaseName": "string",
                "connectionConfig": {},
                "connectionSecretId": "string"
            }
        ]
    },
    "status": {
        "environmentsWithAccess": [
            "string"
        ]
    }
}
Status Codes:
  • 200 OK – KafkaCatalog was found and updated.

  • 400 Bad Request

    Bad request.

    Example response:

    HTTP/1.1 400 Bad Request
    Content-Type: application/json
    
    {
        "errors": [
            {
                "message": "string"
            }
        ]
    }
    

  • 404 Not Found

    KafkaCatalog not found.

    Example response:

    HTTP/1.1 404 Not Found
    Content-Type: application/json
    
    {
        "errors": [
            {
                "message": "string"
            }
        ]
    }
    

  • 422 Unprocessable Entity

    Request valid but invalid content.

    Example response:

    HTTP/1.1 422 Unprocessable Entity
    Content-Type: application/json
    
    {
        "errors": [
            {
                "message": "string"
            }
        ]
    }
    

  • 500 Internal Server Error

    Server error.

    Example response:

    HTTP/1.1 500 Internal Server Error
    Content-Type: application/json
    
    {
        "errors": [
            {
                "message": "string"
            }
        ]
    }
    

POST /cmf/api/v1/catalogs/kafka/{catName}/databases

Creates a new Kafka Database

Parameters:
  • catName (string) – Name of the Catalog

basic-kafka-database - Basic Kafka Database:

POST /cmf/api/v1/catalogs/kafka/{catName}/databases HTTP/1.1
Host: example.com
Content-Type: application/json

{
    "apiVersion": "cmf.confluent.io/v1",
    "kind": "KafkaDatabase",
    "metadata": {
        "name": "dev",
        "labels": {
            "environment": "production",
            "managedBy": "CMF"
        },
        "annotations": {
            "description": "Development Kafka database"
        }
    },
    "spec": {
        "kafkaCluster": {
            "connectionConfig": {
                "bootstrap.servers": "kafka-dev.example.com:9092",
                "security.protocol": "SASL_PLAINTEXT",
                "sasl.mechanism": "PLAIN"
            },
            "connectionSecretId": "dev-secret-id"
        },
        "ddlEnvironments": [
            "production"
        ]
    }
}

yaml-kafka-database - Kafka Database (YAML):

POST /cmf/api/v1/catalogs/kafka/{catName}/databases HTTP/1.1
Host: example.com
Content-Type: application/yaml

{
    "apiVersion": "cmf.confluent.io/v1",
    "kind": "KafkaDatabase",
    "metadata": {
        "name": "staging",
        "labels": {
            "environment": "staging"
        }
    },
    "spec": {
        "kafkaCluster": {
            "connectionConfig": {
                "bootstrap.servers": "kafka-staging.example.com:9092",
                "security.protocol": "SASL_PLAINTEXT"
            },
            "connectionSecretId": "staging-kafka-secret"
        },
        "ddlEnvironments": [
            "staging"
        ]
    }
}
Status Codes:
  • 200 OK

    The Kafka Database was successfully created.

    Example response:

    HTTP/1.1 200 OK
    Content-Type: application/json
    
    {
        "apiVersion": "string",
        "kind": "string",
        "metadata": {
            "name": "string",
            "creationTimestamp": "string",
            "updateTimestamp": "string",
            "uid": "string",
            "labels": {},
            "annotations": {}
        },
        "spec": {
            "kafkaCluster": {
                "connectionConfig": {},
                "connectionSecretId": "string"
            },
            "ddlEnvironments": [
                "string"
            ]
        },
        "status": {
            "environmentsWithAccess": [
                "string"
            ]
        }
    }
    

  • 400 Bad Request

    Bad request.

    Example response:

    HTTP/1.1 400 Bad Request
    Content-Type: application/json
    
    {
        "errors": [
            {
                "message": "string"
            }
        ]
    }
    

  • 409 Conflict

    Kafka Database already exists.

    Example response:

    HTTP/1.1 409 Conflict
    Content-Type: application/json
    
    {
        "errors": [
            {
                "message": "string"
            }
        ]
    }
    

  • 422 Unprocessable Entity

    Request valid but invalid content.

    Example response:

    HTTP/1.1 422 Unprocessable Entity
    Content-Type: application/json
    
    {
        "errors": [
            {
                "message": "string"
            }
        ]
    }
    

  • 500 Internal Server Error

    Server error.

    Example response:

    HTTP/1.1 500 Internal Server Error
    Content-Type: application/json
    
    {
        "errors": [
            {
                "message": "string"
            }
        ]
    }
    

GET /cmf/api/v1/catalogs/kafka/{catName}/databases

Retrieve a paginated list of Kafka Databases

Parameters:
  • catName (string) – Name of the Catalog

Query Parameters:
  • page (integer) – Zero-based page index (0..N)

  • size (integer) – The size of the page to be returned

  • sort (array) – Sorting criteria in the format: property,(asc|desc). Default sort order is ascending. Multiple sort criteria are supported.

Example request:

GET /cmf/api/v1/catalogs/kafka/{catName}/databases HTTP/1.1
Host: example.com
Status Codes:
  • 200 OK

    Kafka Databases found and returned.

    Example response:

    HTTP/1.1 200 OK
    Content-Type: application/json
    
    {
        "pageable": {
            "page": 1,
            "size": 1,
            "sort": {
                "sorted": true,
                "unsorted": true,
                "empty": true
            }
        },
        "metadata": {
            "size": 1
        },
        "items": [
            {
                "apiVersion": "string",
                "kind": "string",
                "metadata": {
                    "name": "string",
                    "creationTimestamp": "string",
                    "updateTimestamp": "string",
                    "uid": "string",
                    "labels": {},
                    "annotations": {}
                },
                "spec": {
                    "kafkaCluster": {
                        "connectionConfig": {},
                        "connectionSecretId": "string"
                    },
                    "ddlEnvironments": [
                        "string"
                    ]
                },
                "status": {
                    "environmentsWithAccess": [
                        "string"
                    ]
                }
            }
        ]
    }
    

  • 500 Internal Server Error

    Server error.

    Example response:

    HTTP/1.1 500 Internal Server Error
    Content-Type: application/json
    
    {
        "errors": [
            {
                "message": "string"
            }
        ]
    }
    

GET /cmf/api/v1/catalogs/kafka/{catName}/databases/{dbName}

Retrieve the Kafka Database of the given name in the given KafkaCatalog.

Parameters:
  • catName (string) – Name of the Kafka Catalog

  • dbName (string) – Name of the Kafka Database

Example request:

GET /cmf/api/v1/catalogs/kafka/{catName}/databases/{dbName} HTTP/1.1
Host: example.com
Status Codes:
  • 200 OK

    Kafka Database found and returned.

    Example response:

    HTTP/1.1 200 OK
    Content-Type: application/json
    
    {
        "apiVersion": "string",
        "kind": "string",
        "metadata": {
            "name": "string",
            "creationTimestamp": "string",
            "updateTimestamp": "string",
            "uid": "string",
            "labels": {},
            "annotations": {}
        },
        "spec": {
            "kafkaCluster": {
                "connectionConfig": {},
                "connectionSecretId": "string"
            },
            "ddlEnvironments": [
                "string"
            ]
        },
        "status": {
            "environmentsWithAccess": [
                "string"
            ]
        }
    }
    

  • 404 Not Found

    Kafka Database not found.

    Example response:

    HTTP/1.1 404 Not Found
    Content-Type: application/json
    
    {
        "errors": [
            {
                "message": "string"
            }
        ]
    }
    

  • 500 Internal Server Error

    Server error.

    Example response:

    HTTP/1.1 500 Internal Server Error
    Content-Type: application/json
    
    {
        "errors": [
            {
                "message": "string"
            }
        ]
    }
    

DELETE /cmf/api/v1/catalogs/kafka/{catName}/databases/{dbName}

Deletes the Kafka Database of the given name in the given KafkaCatalog.

Parameters:
  • catName (string) – Name of the Kafka Catalog

  • dbName (string) – Name of the Kafka Database

Status Codes:
  • 204 No Content – Kafka Database was found and deleted.

  • 404 Not Found

    Kafka Database not found.

    Example response:

    HTTP/1.1 404 Not Found
    Content-Type: application/json
    
    {
        "errors": [
            {
                "message": "string"
            }
        ]
    }
    

  • 500 Internal Server Error

    Server error.

    Example response:

    HTTP/1.1 500 Internal Server Error
    Content-Type: application/json
    
    {
        "errors": [
            {
                "message": "string"
            }
        ]
    }
    

PUT /cmf/api/v1/catalogs/kafka/{catName}/databases/{dbName}

Updates a KafkaDatabase of the given name in the given KafkaCatalog.

Parameters:
  • catName (string) – Name of the KafkaCatalog

  • dbName (string) – Name of the KafkaDatabase

Example request:

PUT /cmf/api/v1/catalogs/kafka/{catName}/databases/{dbName} HTTP/1.1
Host: example.com
Content-Type: application/json

{
    "apiVersion": "string",
    "kind": "string",
    "metadata": {
        "name": "string",
        "creationTimestamp": "string",
        "updateTimestamp": "string",
        "uid": "string",
        "labels": {},
        "annotations": {}
    },
    "spec": {
        "kafkaCluster": {
            "connectionConfig": {},
            "connectionSecretId": "string"
        },
        "ddlEnvironments": [
            "string"
        ]
    },
    "status": {
        "environmentsWithAccess": [
            "string"
        ]
    }
}
Status Codes:
  • 200 OK – KafkaDatabase was found and updated.

  • 400 Bad Request

    Bad request.

    Example response:

    HTTP/1.1 400 Bad Request
    Content-Type: application/json
    
    {
        "errors": [
            {
                "message": "string"
            }
        ]
    }
    

  • 404 Not Found

    KafkaDatabase not found.

    Example response:

    HTTP/1.1 404 Not Found
    Content-Type: application/json
    
    {
        "errors": [
            {
                "message": "string"
            }
        ]
    }
    

  • 422 Unprocessable Entity

    Request valid but invalid content.

    Example response:

    HTTP/1.1 422 Unprocessable Entity
    Content-Type: application/json
    
    {
        "errors": [
            {
                "message": "string"
            }
        ]
    }
    

  • 500 Internal Server Error

    Server error.

    Example response:

    HTTP/1.1 500 Internal Server Error
    Content-Type: application/json
    
    {
        "errors": [
            {
                "message": "string"
            }
        ]
    }
    

Savepoints

POST /cmf/api/v1/environments/{envName}/applications/{appName}/savepoints

Creates a new Savepoint for the given Application in the given Environment.

Parameters:
  • envName (string) – Name of the Environment

  • appName (string) – Name of the Application

Example request:

POST /cmf/api/v1/environments/{envName}/applications/{appName}/savepoints HTTP/1.1
Host: example.com
Content-Type: application/json

{
    "apiVersion": "string",
    "kind": "string",
    "metadata": {
        "name": "string",
        "creationTimestamp": "string",
        "uid": "string",
        "labels": {},
        "annotations": {}
    },
    "spec": {
        "path": "string",
        "backoffLimit": 1,
        "formatType": "CANONICAL"
    },
    "status": {
        "state": "string",
        "path": "string",
        "triggerTimestamp": "string",
        "resultTimestamp": "string",
        "failures": 1,
        "error": "string",
        "pendingDeletion": true,
        "warning": "string"
    }
}
Status Codes:
  • 201 Created

    Savepoint was successfully created.

    Example response:

    HTTP/1.1 201 Created
    Content-Type: application/json
    
    {
        "apiVersion": "string",
        "kind": "string",
        "metadata": {
            "name": "string",
            "creationTimestamp": "string",
            "uid": "string",
            "labels": {},
            "annotations": {}
        },
        "spec": {
            "path": "string",
            "backoffLimit": 1,
            "formatType": "CANONICAL"
        },
        "status": {
            "state": "string",
            "path": "string",
            "triggerTimestamp": "string",
            "resultTimestamp": "string",
            "failures": 1,
            "error": "string",
            "pendingDeletion": true,
            "warning": "string"
        }
    }
    

  • 404 Not Found

    Environment or Application not found.

    Example response:

    HTTP/1.1 404 Not Found
    Content-Type: application/json
    
    {
        "errors": [
            {
                "message": "string"
            }
        ]
    }
    

  • 400 Bad Request

    Bad request.

    Example response:

    HTTP/1.1 400 Bad Request
    Content-Type: application/json
    
    {
        "errors": [
            {
                "message": "string"
            }
        ]
    }
    

  • 422 Unprocessable Entity

    Request valid but invalid content.

    Example response:

    HTTP/1.1 422 Unprocessable Entity
    Content-Type: application/json
    
    {
        "errors": [
            {
                "message": "string"
            }
        ]
    }
    

  • 500 Internal Server Error

    Server error.

    Example response:

    HTTP/1.1 500 Internal Server Error
    Content-Type: application/json
    
    {
        "errors": [
            {
                "message": "string"
            }
        ]
    }
    

GET /cmf/api/v1/environments/{envName}/applications/{appName}/savepoints

Retrieve a paginated list of all Savepoints for the given Application in the given Environment.

Parameters:
  • envName (string) – Name of the Environment

  • appName (string) – Name of the Application

Query Parameters:
  • page (integer) – Zero-based page index (0..N)

  • size (integer) – The size of the page to be returned

  • sort (array) – Sorting criteria in the format: property,(asc|desc). Default sort order is ascending. Multiple sort criteria are supported.

  • filter (string) – Comma-separated filter expressions. Supports name, label, state, phase, and type filtering. Example: ?filter=name=prod*,state in (RUNNING, FAILED)

  • fields (string) – Comma-separated field paths to include in the response. Supports dot notation for nested fields. apiVersion and kind are always included. Example: ?fields=metadata.name,metadata.creationTimestamp,status.phase

Example request:

GET /cmf/api/v1/environments/{envName}/applications/{appName}/savepoints HTTP/1.1
Host: example.com
Status Codes:
  • 200 OK

    Savepoints found and returned. In case, there are no savepoints, an empty list is returned.

    Example response:

    HTTP/1.1 200 OK
    Content-Type: application/json
    
    {
        "pageable": {
            "page": 1,
            "size": 1,
            "sort": {
                "sorted": true,
                "unsorted": true,
                "empty": true
            }
        },
        "metadata": {
            "size": 1
        },
        "items": [
            {
                "apiVersion": "string",
                "kind": "string",
                "metadata": {
                    "name": "string",
                    "creationTimestamp": "string",
                    "uid": "string",
                    "labels": {},
                    "annotations": {}
                },
                "spec": {
                    "path": "string",
                    "backoffLimit": 1,
                    "formatType": "CANONICAL"
                },
                "status": {
                    "state": "string",
                    "path": "string",
                    "triggerTimestamp": "string",
                    "resultTimestamp": "string",
                    "failures": 1,
                    "error": "string",
                    "pendingDeletion": true,
                    "warning": "string"
                }
            }
        ]
    }
    

  • 404 Not Found

    Environment or Application not found.

    Example response:

    HTTP/1.1 404 Not Found
    Content-Type: application/json
    
    {
        "errors": [
            {
                "message": "string"
            }
        ]
    }
    

  • 500 Internal Server Error

    Server error.

    Example response:

    HTTP/1.1 500 Internal Server Error
    Content-Type: application/json
    
    {
        "errors": [
            {
                "message": "string"
            }
        ]
    }
    

GET /cmf/api/v1/environments/{envName}/applications/{appName}/savepoints/{savepointName}

Retrieve the Savepoint of the given name for the given Application in the given Environment.

Parameters:
  • envName (string) – Name of the Environment

  • appName (string) – Name of the Application

  • savepointName (string) – Name of the Savepoint

Example request:

GET /cmf/api/v1/environments/{envName}/applications/{appName}/savepoints/{savepointName} HTTP/1.1
Host: example.com
Status Codes:
  • 200 OK

    Savepoint found and returned.

    Example response:

    HTTP/1.1 200 OK
    Content-Type: application/json
    
    {
        "apiVersion": "string",
        "kind": "string",
        "metadata": {
            "name": "string",
            "creationTimestamp": "string",
            "uid": "string",
            "labels": {},
            "annotations": {}
        },
        "spec": {
            "path": "string",
            "backoffLimit": 1,
            "formatType": "CANONICAL"
        },
        "status": {
            "state": "string",
            "path": "string",
            "triggerTimestamp": "string",
            "resultTimestamp": "string",
            "failures": 1,
            "error": "string",
            "pendingDeletion": true,
            "warning": "string"
        }
    }
    

  • 404 Not Found

    Environment, Application or Savepoint not found.

    Example response:

    HTTP/1.1 404 Not Found
    Content-Type: application/json
    
    {
        "errors": [
            {
                "message": "string"
            }
        ]
    }
    

  • 500 Internal Server Error

    Server error.

    Example response:

    HTTP/1.1 500 Internal Server Error
    Content-Type: application/json
    
    {
        "errors": [
            {
                "message": "string"
            }
        ]
    }
    

DELETE /cmf/api/v1/environments/{envName}/applications/{appName}/savepoints/{savepointName}

Deletes the Savepoint of the given name for the given Application in the given Environment.

Parameters:
  • envName (string) – Name of the Environment

  • appName (string) – Name of the Application

  • savepointName (string) – Name of the Savepoint to be deleted.

Query Parameters:
  • force (boolean) – If a Savepoint is marked for deletion, it can be force deleted.

Status Codes:
  • 204 No Content – Savepoint was found and deleted.

  • 404 Not Found

    Environment, Application or Savepoint not found.

    Example response:

    HTTP/1.1 404 Not Found
    Content-Type: application/json
    
    {
        "errors": [
            {
                "message": "string"
            }
        ]
    }
    

  • 500 Internal Server Error

    Server error.

    Example response:

    HTTP/1.1 500 Internal Server Error
    Content-Type: application/json
    
    {
        "errors": [
            {
                "message": "string"
            }
        ]
    }
    

POST /cmf/api/v1/environments/{envName}/applications/{appName}/savepoints/{savepointName}/detach

Detaches the Savepoint of the given name for the given Application in the given Environment.

Parameters:
  • envName (string) – Name of the Environment

  • appName (string) – Name of the Application

  • savepointName (string) – Name of the Savepoint to be detached.

Status Codes:
  • 200 OK

    Savepoint was successfully detached and returned.

    Example response:

    HTTP/1.1 200 OK
    Content-Type: application/json
    
    {
        "apiVersion": "string",
        "kind": "string",
        "metadata": {
            "name": "string",
            "creationTimestamp": "string",
            "uid": "string",
            "labels": {},
            "annotations": {}
        },
        "spec": {
            "path": "string",
            "backoffLimit": 1,
            "formatType": "CANONICAL"
        },
        "status": {
            "state": "string",
            "path": "string",
            "triggerTimestamp": "string",
            "resultTimestamp": "string",
            "failures": 1,
            "error": "string",
            "pendingDeletion": true,
            "warning": "string"
        }
    }
    

  • 404 Not Found

    Environment, Application or Savepoint not found.

    Example response:

    HTTP/1.1 404 Not Found
    Content-Type: application/json
    
    {
        "errors": [
            {
                "message": "string"
            }
        ]
    }
    

  • 500 Internal Server Error

    Server error.

    Example response:

    HTTP/1.1 500 Internal Server Error
    Content-Type: application/json
    
    {
        "errors": [
            {
                "message": "string"
            }
        ]
    }
    

POST /cmf/api/v1/environments/{envName}/statements/{stmtName}/savepoints

Creates a new Savepoint for the given Statement in the given Environment.

Parameters:
  • envName (string) – Name of the Environment

  • stmtName (string) – Name of the Statement

Example request:

POST /cmf/api/v1/environments/{envName}/statements/{stmtName}/savepoints HTTP/1.1
Host: example.com
Content-Type: application/json

{
    "apiVersion": "string",
    "kind": "string",
    "metadata": {
        "name": "string",
        "creationTimestamp": "string",
        "uid": "string",
        "labels": {},
        "annotations": {}
    },
    "spec": {
        "path": "string",
        "backoffLimit": 1,
        "formatType": "CANONICAL"
    },
    "status": {
        "state": "string",
        "path": "string",
        "triggerTimestamp": "string",
        "resultTimestamp": "string",
        "failures": 1,
        "error": "string",
        "pendingDeletion": true,
        "warning": "string"
    }
}
Status Codes:
  • 201 Created

    Savepoint was successfully created.

    Example response:

    HTTP/1.1 201 Created
    Content-Type: application/json
    
    {
        "apiVersion": "string",
        "kind": "string",
        "metadata": {
            "name": "string",
            "creationTimestamp": "string",
            "uid": "string",
            "labels": {},
            "annotations": {}
        },
        "spec": {
            "path": "string",
            "backoffLimit": 1,
            "formatType": "CANONICAL"
        },
        "status": {
            "state": "string",
            "path": "string",
            "triggerTimestamp": "string",
            "resultTimestamp": "string",
            "failures": 1,
            "error": "string",
            "pendingDeletion": true,
            "warning": "string"
        }
    }
    

  • 400 Bad Request

    Bad request.

    Example response:

    HTTP/1.1 400 Bad Request
    Content-Type: application/json
    
    {
        "errors": [
            {
                "message": "string"
            }
        ]
    }
    

  • 404 Not Found

    Environment or Statement not found.

    Example response:

    HTTP/1.1 404 Not Found
    Content-Type: application/json
    
    {
        "errors": [
            {
                "message": "string"
            }
        ]
    }
    

  • 422 Unprocessable Entity

    Request valid but invalid content.

    Example response:

    HTTP/1.1 422 Unprocessable Entity
    Content-Type: application/json
    
    {
        "errors": [
            {
                "message": "string"
            }
        ]
    }
    

  • 500 Internal Server Error

    Server error.

    Example response:

    HTTP/1.1 500 Internal Server Error
    Content-Type: application/json
    
    {
        "errors": [
            {
                "message": "string"
            }
        ]
    }
    

GET /cmf/api/v1/environments/{envName}/statements/{stmtName}/savepoints

Retrieve a paginated list of all Savepoints for the given Statement in the given Environment.

Parameters:
  • envName (string) – Name of the Environment

  • stmtName (string) – Name of the Statement

Query Parameters:
  • page (integer) – Zero-based page index (0..N)

  • size (integer) – The size of the page to be returned

  • sort (array) – Sorting criteria in the format: property,(asc|desc). Default sort order is ascending. Multiple sort criteria are supported.

  • filter (string) – Comma-separated filter expressions. Supports name, label, state, phase, and type filtering. Example: ?filter=name=prod*,state in (RUNNING, FAILED)

  • fields (string) – Comma-separated field paths to include in the response. Supports dot notation for nested fields. apiVersion and kind are always included. Example: ?fields=metadata.name,metadata.creationTimestamp,status.phase

Example request:

GET /cmf/api/v1/environments/{envName}/statements/{stmtName}/savepoints HTTP/1.1
Host: example.com
Status Codes:
  • 200 OK

    Savepoints found and returned. In case, there are no savepoints, an empty list is returned.

    Example response:

    HTTP/1.1 200 OK
    Content-Type: application/json
    
    {
        "pageable": {
            "page": 1,
            "size": 1,
            "sort": {
                "sorted": true,
                "unsorted": true,
                "empty": true
            }
        },
        "metadata": {
            "size": 1
        },
        "items": [
            {
                "apiVersion": "string",
                "kind": "string",
                "metadata": {
                    "name": "string",
                    "creationTimestamp": "string",
                    "uid": "string",
                    "labels": {},
                    "annotations": {}
                },
                "spec": {
                    "path": "string",
                    "backoffLimit": 1,
                    "formatType": "CANONICAL"
                },
                "status": {
                    "state": "string",
                    "path": "string",
                    "triggerTimestamp": "string",
                    "resultTimestamp": "string",
                    "failures": 1,
                    "error": "string",
                    "pendingDeletion": true,
                    "warning": "string"
                }
            }
        ]
    }
    

  • 404 Not Found

    Environment or Statement not found.

    Example response:

    HTTP/1.1 404 Not Found
    Content-Type: application/json
    
    {
        "errors": [
            {
                "message": "string"
            }
        ]
    }
    

  • 500 Internal Server Error

    Server error.

    Example response:

    HTTP/1.1 500 Internal Server Error
    Content-Type: application/json
    
    {
        "errors": [
            {
                "message": "string"
            }
        ]
    }
    

GET /cmf/api/v1/environments/{envName}/statements/{stmtName}/savepoints/{savepointName}

Retrieve the Savepoint of the given name for the given Statement in the given Environment.

Parameters:
  • envName (string) – Name of the Environment

  • stmtName (string) – Name of the Statement

  • savepointName (string) – Name of the Savepoint

Example request:

GET /cmf/api/v1/environments/{envName}/statements/{stmtName}/savepoints/{savepointName} HTTP/1.1
Host: example.com
Status Codes:
  • 200 OK

    Savepoint found and returned.

    Example response:

    HTTP/1.1 200 OK
    Content-Type: application/json
    
    {
        "apiVersion": "string",
        "kind": "string",
        "metadata": {
            "name": "string",
            "creationTimestamp": "string",
            "uid": "string",
            "labels": {},
            "annotations": {}
        },
        "spec": {
            "path": "string",
            "backoffLimit": 1,
            "formatType": "CANONICAL"
        },
        "status": {
            "state": "string",
            "path": "string",
            "triggerTimestamp": "string",
            "resultTimestamp": "string",
            "failures": 1,
            "error": "string",
            "pendingDeletion": true,
            "warning": "string"
        }
    }
    

  • 404 Not Found

    Environment, Statement or Savepoint not found.

    Example response:

    HTTP/1.1 404 Not Found
    Content-Type: application/json
    
    {
        "errors": [
            {
                "message": "string"
            }
        ]
    }
    

  • 500 Internal Server Error

    Server error.

    Example response:

    HTTP/1.1 500 Internal Server Error
    Content-Type: application/json
    
    {
        "errors": [
            {
                "message": "string"
            }
        ]
    }
    

DELETE /cmf/api/v1/environments/{envName}/statements/{stmtName}/savepoints/{savepointName}

Deletes the Savepoint of the given name for the given Statement in the given Environment.

Parameters:
  • envName (string) – Name of the Environment

  • stmtName (string) – Name of the Statement

  • savepointName (string) – Name of the Savepoint to be deleted.

Query Parameters:
  • force (boolean) – If a Savepoint is marked for deletion, it can be force deleted.

Status Codes:
  • 204 No Content – Savepoint was found and deleted.

  • 404 Not Found

    Environment, Statement or Savepoint not found.

    Example response:

    HTTP/1.1 404 Not Found
    Content-Type: application/json
    
    {
        "errors": [
            {
                "message": "string"
            }
        ]
    }
    

  • 500 Internal Server Error

    Server error.

    Example response:

    HTTP/1.1 500 Internal Server Error
    Content-Type: application/json
    
    {
        "errors": [
            {
                "message": "string"
            }
        ]
    }
    

KubernetesClusters

GET /cmf/api/v1/kubernetes-clusters

Retrieve a list of all registered Kubernetes clusters.

Query Parameters:
  • page (integer) – Zero-based page index (0..N)

  • size (integer) – The size of the page to be returned

  • sort (array) – Sorting criteria in the format: property,(asc|desc). Default sort order is ascending. Multiple sort criteria are supported.

  • filter (string) – Comma-separated filter expressions. Supports name, label, state, phase, and type filtering. Example: ?filter=name=prod*,state in (RUNNING, FAILED)

  • fields (string) – Comma-separated field paths to include in the response. Supports dot notation for nested fields. apiVersion and kind are always included. Example: ?fields=metadata.name,metadata.creationTimestamp,status.phase

Example request:

GET /cmf/api/v1/kubernetes-clusters HTTP/1.1
Host: example.com
Status Codes:
  • 200 OK

    List of Kubernetes clusters. If no clusters are found, an empty list is returned.

    clusters-list - List of Kubernetes clusters:

    HTTP/1.1 200 OK
    Content-Type: application/json
    
    {
        "metadata": {
            "size": 2
        },
        "items": [
            {
                "apiVersion": "cmf.confluent.io/v1",
                "kind": "KubernetesCluster",
                "metadata": {
                    "name": "default-k8s-cluster",
                    "creationTimestamp": "2026-01-10T08:00:00Z",
                    "updateTimestamp": "2026-02-16T10:30:00Z",
                    "labels": {
                        "env": "production",
                        "region": "us-east-1"
                    }
                },
                "spec": {
                    "lifecycleState": "ACTIVE"
                },
                "status": {
                    "state": "CONNECTED",
                    "lastHeartbeatTimestamp": "2026-02-16T10:30:00Z"
                }
            },
            {
                "apiVersion": "cmf.confluent.io/v1",
                "kind": "KubernetesCluster",
                "metadata": {
                    "name": "azure-k8s-cluster",
                    "creationTimestamp": "2026-02-01T12:00:00Z",
                    "updateTimestamp": "2026-02-16T10:30:00Z",
                    "labels": {
                        "env": "production",
                        "region": "westeurope",
                        "provider": "azure"
                    }
                },
                "spec": {
                    "lifecycleState": "ACTIVE"
                },
                "status": {
                    "state": "CONNECTED",
                    "lastHeartbeatTimestamp": "2026-02-16T10:30:00Z"
                }
            }
        ]
    }
    

  • 500 Internal Server Error

    Server error.

    Example response:

    HTTP/1.1 500 Internal Server Error
    Content-Type: application/json
    
    {
        "errors": [
            {
                "message": "string"
            }
        ]
    }
    

GET /cmf/api/v1/kubernetes-clusters/{kubernetesClusterName}

Retrieve a Kubernetes cluster by name.

Parameters:
  • kubernetesClusterName (string) – Name of the Kubernetes cluster

Example request:

GET /cmf/api/v1/kubernetes-clusters/{kubernetesClusterName} HTTP/1.1
Host: example.com
Status Codes:
  • 200 OK

    Kubernetes cluster found and returned.

    connected-cluster - Connected Kubernetes cluster:

    HTTP/1.1 200 OK
    Content-Type: application/json
    
    {
        "apiVersion": "cmf.confluent.io/v1",
        "kind": "KubernetesCluster",
        "metadata": {
            "name": "azure-k8s-cluster",
            "creationTimestamp": "2026-02-01T12:00:00Z",
            "updateTimestamp": "2026-02-16T10:30:00Z",
            "labels": {
                "env": "production",
                "region": "westeurope",
                "provider": "azure"
            }
        },
        "spec": {
            "lifecycleState": "ACTIVE"
        },
        "status": {
            "state": "CONNECTED",
            "lastHeartbeatTimestamp": "2026-02-16T10:30:00Z"
        }
    }
    

    disconnected-cluster - Disconnected Kubernetes cluster:

    HTTP/1.1 200 OK
    Content-Type: application/json
    
    {
        "apiVersion": "cmf.confluent.io/v1",
        "kind": "KubernetesCluster",
        "metadata": {
            "name": "gcp-k8s-cluster",
            "creationTimestamp": "2026-02-01T12:00:00Z",
            "updateTimestamp": "2026-02-15T08:00:00Z",
            "labels": {
                "env": "staging",
                "region": "us-central1",
                "provider": "gcp"
            }
        },
        "spec": {
            "lifecycleState": "ACTIVE"
        },
        "status": {
            "state": "DISCONNECTED",
            "message": "Failed to connect to cluster: connection timed out",
            "lastHeartbeatTimestamp": "2026-02-15T08:00:00Z"
        }
    }
    

  • 404 Not Found

    Kubernetes cluster not found.

    Example response:

    HTTP/1.1 404 Not Found
    Content-Type: application/json
    
    {
        "errors": [
            {
                "message": "string"
            }
        ]
    }
    

  • 500 Internal Server Error

    Server error.

    Example response:

    HTTP/1.1 500 Internal Server Error
    Content-Type: application/json
    
    {
        "errors": [
            {
                "message": "string"
            }
        ]
    }
    

PUT /cmf/api/v1/kubernetes-clusters/{kubernetesClusterName}

Update a Kubernetes cluster (lifecycle state, labels, annotations).

Parameters:
  • kubernetesClusterName (string) – Name of the Kubernetes cluster

decommission - Decommission a cluster:

PUT /cmf/api/v1/kubernetes-clusters/{kubernetesClusterName} HTTP/1.1
Host: example.com
Content-Type: application/json

{
    "spec": {
        "lifecycleState": "DECOMMISSIONED"
    }
}

recommission - Recommission a cluster:

PUT /cmf/api/v1/kubernetes-clusters/{kubernetesClusterName} HTTP/1.1
Host: example.com
Content-Type: application/json

{
    "spec": {
        "lifecycleState": "ACTIVE"
    }
}

update-labels - Update cluster labels:

PUT /cmf/api/v1/kubernetes-clusters/{kubernetesClusterName} HTTP/1.1
Host: example.com
Content-Type: application/json

{
    "metadata": {
        "name": "azure-k8s-cluster",
        "labels": {
            "env": "production",
            "region": "westeurope"
        }
    }
}
Status Codes:
  • 200 OK

    The Kubernetes cluster was successfully updated.

    decommissioned-cluster - Decommissioned cluster:

    HTTP/1.1 200 OK
    Content-Type: application/json
    
    {
        "apiVersion": "cmf.confluent.io/v1",
        "kind": "KubernetesCluster",
        "metadata": {
            "name": "azure-k8s-cluster",
            "creationTimestamp": "2026-02-01T12:00:00Z",
            "updateTimestamp": "2026-02-16T11:00:00Z",
            "labels": {
                "env": "production",
                "region": "westeurope",
                "provider": "azure"
            }
        },
        "spec": {
            "lifecycleState": "DECOMMISSIONED"
        },
        "status": {
            "state": "DECOMMISSIONED"
        }
    }
    

  • 400 Bad Request

    Bad request. Validation failed (e.g., cannot decommission cluster because it is in use by environments).

    environments-exist - Cluster has active environments:

    HTTP/1.1 400 Bad Request
    Content-Type: application/json
    
    {
        "errors": [
            {
                "message": "Cannot decommission cluster 'azure-k8s-cluster': referenced by environments [prod-azure, staging-azure]"
            }
        ]
    }
    

  • 404 Not Found

    Kubernetes cluster not found.

    Example response:

    HTTP/1.1 404 Not Found
    Content-Type: application/json
    
    {
        "errors": [
            {
                "message": "string"
            }
        ]
    }
    

  • 500 Internal Server Error

    Server error.

    Example response:

    HTTP/1.1 500 Internal Server Error
    Content-Type: application/json
    
    {
        "errors": [
            {
                "message": "string"
            }
        ]
    }
    

DetachedSavepoints

POST /cmf/api/v1/detached-savepoints

Creates a new detached savepoint.

Example request:

POST /cmf/api/v1/detached-savepoints HTTP/1.1
Host: example.com
Content-Type: application/json

{
    "apiVersion": "string",
    "kind": "string",
    "metadata": {
        "name": "string",
        "creationTimestamp": "string",
        "uid": "string",
        "labels": {},
        "annotations": {}
    },
    "spec": {
        "path": "string",
        "backoffLimit": 1,
        "formatType": "CANONICAL"
    },
    "status": {
        "state": "string",
        "path": "string",
        "triggerTimestamp": "string",
        "resultTimestamp": "string",
        "failures": 1,
        "error": "string",
        "pendingDeletion": true,
        "warning": "string"
    }
}
Status Codes:
  • 201 Created

    Detached savepoint was successfully created and returned.

    Example response:

    HTTP/1.1 201 Created
    Content-Type: application/json
    
    {
        "apiVersion": "string",
        "kind": "string",
        "metadata": {
            "name": "string",
            "creationTimestamp": "string",
            "uid": "string",
            "labels": {},
            "annotations": {}
        },
        "spec": {
            "path": "string",
            "backoffLimit": 1,
            "formatType": "CANONICAL"
        },
        "status": {
            "state": "string",
            "path": "string",
            "triggerTimestamp": "string",
            "resultTimestamp": "string",
            "failures": 1,
            "error": "string",
            "pendingDeletion": true,
            "warning": "string"
        }
    }
    

  • 400 Bad Request

    Bad request.

    Example response:

    HTTP/1.1 400 Bad Request
    Content-Type: application/json
    
    {
        "errors": [
            {
                "message": "string"
            }
        ]
    }
    

  • 422 Unprocessable Entity

    Request valid but invalid content.

    Example response:

    HTTP/1.1 422 Unprocessable Entity
    Content-Type: application/json
    
    {
        "errors": [
            {
                "message": "string"
            }
        ]
    }
    

  • 500 Internal Server Error

    Server error.

    Example response:

    HTTP/1.1 500 Internal Server Error
    Content-Type: application/json
    
    {
        "errors": [
            {
                "message": "string"
            }
        ]
    }
    

GET /cmf/api/v1/detached-savepoints

Retrieve a paginated list of all detached savepoints.

Query Parameters:
  • page (integer) – Zero-based page index (0..N)

  • size (integer) – The size of the page to be returned

  • sort (array) – Sorting criteria in the format: property,(asc|desc). Default sort order is ascending. Multiple sort criteria are supported.

  • filter (string) – Comma-separated filter expressions. Supports name, label, state, phase, and type filtering. Example: ?filter=name=prod*,state in (RUNNING, FAILED)

  • fields (string) – Comma-separated field paths to include in the response. Supports dot notation for nested fields. apiVersion and kind are always included. Example: ?fields=metadata.name,metadata.creationTimestamp,status.phase

  • name (string) – Filter by detached savepoint name prefix (e.g. ?name=abc)

Example request:

GET /cmf/api/v1/detached-savepoints HTTP/1.1
Host: example.com
Status Codes:
  • 200 OK

    Detached savepoints found and returned. In case there are none, an empty list is returned.

    Example response:

    HTTP/1.1 200 OK
    Content-Type: application/json
    
    {
        "pageable": {
            "page": 1,
            "size": 1,
            "sort": {
                "sorted": true,
                "unsorted": true,
                "empty": true
            }
        },
        "metadata": {
            "size": 1
        },
        "items": [
            {
                "apiVersion": "string",
                "kind": "string",
                "metadata": {
                    "name": "string",
                    "creationTimestamp": "string",
                    "uid": "string",
                    "labels": {},
                    "annotations": {}
                },
                "spec": {
                    "path": "string",
                    "backoffLimit": 1,
                    "formatType": "CANONICAL"
                },
                "status": {
                    "state": "string",
                    "path": "string",
                    "triggerTimestamp": "string",
                    "resultTimestamp": "string",
                    "failures": 1,
                    "error": "string",
                    "pendingDeletion": true,
                    "warning": "string"
                }
            }
        ]
    }
    

  • 500 Internal Server Error

    Server error.

    Example response:

    HTTP/1.1 500 Internal Server Error
    Content-Type: application/json
    
    {
        "errors": [
            {
                "message": "string"
            }
        ]
    }
    

GET /cmf/api/v1/detached-savepoints/{detachedSavepointName}

Retrieve the detached savepoint of the given name.

Parameters:
  • detachedSavepointName (string) – Name of the detached savepoint

Example request:

GET /cmf/api/v1/detached-savepoints/{detachedSavepointName} HTTP/1.1
Host: example.com
Status Codes:
  • 200 OK

    Detached savepoint found and returned.

    Example response:

    HTTP/1.1 200 OK
    Content-Type: application/json
    
    {
        "apiVersion": "string",
        "kind": "string",
        "metadata": {
            "name": "string",
            "creationTimestamp": "string",
            "uid": "string",
            "labels": {},
            "annotations": {}
        },
        "spec": {
            "path": "string",
            "backoffLimit": 1,
            "formatType": "CANONICAL"
        },
        "status": {
            "state": "string",
            "path": "string",
            "triggerTimestamp": "string",
            "resultTimestamp": "string",
            "failures": 1,
            "error": "string",
            "pendingDeletion": true,
            "warning": "string"
        }
    }
    

  • 404 Not Found

    Detached savepoint not found.

    Example response:

    HTTP/1.1 404 Not Found
    Content-Type: application/json
    
    {
        "errors": [
            {
                "message": "string"
            }
        ]
    }
    

  • 500 Internal Server Error

    Server error.

    Example response:

    HTTP/1.1 500 Internal Server Error
    Content-Type: application/json
    
    {
        "errors": [
            {
                "message": "string"
            }
        ]
    }
    

DELETE /cmf/api/v1/detached-savepoints/{detachedSavepointName}

Deletes the detached savepoint of the given name.

Parameters:
  • detachedSavepointName (string) – Name of the detached savepoint

Status Codes:
  • 204 No Content – Detached savepoint was found and deleted.

  • 404 Not Found

    Detached savepoint not found.

    Example response:

    HTTP/1.1 404 Not Found
    Content-Type: application/json
    
    {
        "errors": [
            {
                "message": "string"
            }
        ]
    }
    

  • 500 Internal Server Error

    Server error.

    Example response:

    HTTP/1.1 500 Internal Server Error
    Content-Type: application/json
    
    {
        "errors": [
            {
                "message": "string"
            }
        ]
    }
    

CMFInformation

GET /cmf/api/v1/system-information

Retrieve system information about the CMF deployment.

Example request:

GET /cmf/api/v1/system-information HTTP/1.1
Host: example.com
Status Codes:
  • 200 OK

    System information retrieved successfully.

    Example response:

    HTTP/1.1 200 OK
    Content-Type: application/json
    
    {
        "status": {
            "version": "string",
            "revision": "string"
        }
    }
    

  • 500 Internal Server Error

    Server error.

    Example response:

    HTTP/1.1 500 Internal Server Error
    Content-Type: application/json
    
    {
        "errors": [
            {
                "message": "string"
            }
        ]
    }
    

GET /cmf/api/v1/resource-information

Retrieve resource information about the CMF deployment.

Example request:

GET /cmf/api/v1/resource-information HTTP/1.1
Host: example.com
Status Codes:
  • 200 OK

    Resource information retrieved successfully.

    Example response:

    HTTP/1.1 200 OK
    Content-Type: application/json
    
    {
        "status": {
            "resources": {
                "environments": 1,
                "applications": {},
                "computePools": 1,
                "statements": {},
                "secrets": 1,
                "catalogs": 1,
                "savepoints": 1,
                "detachedSavepoints": 1,
                "kubernetesClusters": {}
            },
            "resourceSummary": {
                "cpu": 1.0,
                "memory": 1
            }
        }
    }
    

  • 500 Internal Server Error

    Server error.

    Example response:

    HTTP/1.1 500 Internal Server Error
    Content-Type: application/json
    
    {
        "errors": [
            {
                "message": "string"
            }
        ]
    }
    

Troubleshooting

  • Resource not found: If you encounter the error Resource not found… when making a GET call, it may be due to the wrong URL. Specifically, the requested REST resource might not exist.

    For example:

    • When making the GET call:

      GET http://localhost:8080/hello
      

      You will receive the error:

      Resource not found: [hello]
      
    • Similarly, if you make the GET call:

      GET http://localhost:8080/ or GET http://localhost:8080
      

      You will receive the error:

      Resource not found: []
      

      This occurs because you are requesting an empty resource.