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.