Conduktor Self-Service API

Declarative Application, ApplicationInstance, and TopicPolicy resources

OpenAPI Specification

conduktor-self-service-api-openapi.yml Raw ↑
openapi: 3.0.1
info:
  title: Conduktor Certificates Self-Service API
  description: Unified specification of the Conduktor REST API surface, covering the Conduktor Console API (clusters, certificates, users, groups, RBAC permissions, and declarative Self-Service resources) and the Conduktor Gateway API (interceptors, virtual clusters, service accounts, and tokens). Console endpoints authenticate with an admin-generated Bearer API key; Gateway admin endpoints authenticate with Basic auth. Host names are deployment-specific.
  termsOfService: https://www.conduktor.io/terms-and-conditions/
  contact:
    name: Conduktor Support
    url: https://www.conduktor.io/contact/
  version: '1.0'
servers:
- url: https://{consoleHost}
  description: Conduktor Console deployment host
  variables:
    consoleHost:
      default: localhost:8080
      description: Host and port of your Conduktor Console deployment
- url: https://{gatewayAdminHost}:8888
  description: Conduktor Gateway admin API host
  variables:
    gatewayAdminHost:
      default: localhost
      description: Host of your Conduktor Gateway admin endpoint
tags:
- name: Self-Service
  description: Declarative Application, ApplicationInstance, and TopicPolicy resources
paths:
  /public/self-serve/v1/application:
    get:
      operationId: listApplications
      tags:
      - Self-Service
      summary: List Self-Service applications
      security:
      - bearerAuth: []
      responses:
        '200':
          description: Applications.
          content:
            application/json:
              schema:
                type: array
                items:
                  $ref: '#/components/schemas/Application'
    put:
      operationId: upsertApplication
      tags:
      - Self-Service
      summary: Create or update a Self-Service Application resource
      security:
      - bearerAuth: []
      requestBody:
        required: true
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/Application'
      responses:
        '200':
          description: Application created or updated.
  /public/self-serve/v1/topic-policy:
    put:
      operationId: upsertTopicPolicy
      tags:
      - Self-Service
      summary: Create or update a TopicPolicy resource
      description: Defines constraints on topic metadata labels and configuration values (for example retention.ms or replicationFactor) using OneOf, Range, or Match constraints. A TopicPolicy applies once it is referenced from an ApplicationInstance via spec.topicPolicyRef.
      security:
      - bearerAuth: []
      requestBody:
        required: true
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/TopicPolicy'
      responses:
        '200':
          description: Topic policy created or updated.
components:
  schemas:
    TopicPolicy:
      type: object
      properties:
        apiVersion:
          type: string
          example: self-serve/v1
        kind:
          type: string
          example: TopicPolicy
        metadata:
          type: object
          properties:
            name:
              type: string
        spec:
          type: object
          properties:
            policies:
              type: object
              description: Map of metadata labels and topic configuration keys to constraints (OneOf, Range, Match, etc.).
              additionalProperties: true
    Application:
      type: object
      properties:
        apiVersion:
          type: string
          example: self-serve/v1
        kind:
          type: string
          example: Application
        metadata:
          type: object
          properties:
            name:
              type: string
        spec:
          type: object
          properties:
            title:
              type: string
            description:
              type: string
            owner:
              type: string
  securitySchemes:
    bearerAuth:
      type: http
      scheme: bearer
      description: 'Console API key generated by an admin in Settings > API Keys, passed as Authorization: Bearer $ADMIN_API_KEY.'
    basicAuth:
      type: http
      scheme: basic
      description: Gateway admin credentials (GATEWAY_ADMIN_API_USERS), passed as HTTP Basic authentication to the Gateway admin API.