Conduktor Groups API

Manage groups and RBAC permissions in Console

OpenAPI Specification

conduktor-groups-api-openapi.yml Raw ↑
openapi: 3.0.1
info:
  title: Conduktor Certificates Groups 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: Groups
  description: Manage groups and RBAC permissions in Console
paths:
  /public/iam/v2/group:
    get:
      operationId: listGroups
      tags:
      - Groups
      summary: List groups
      security:
      - bearerAuth: []
      responses:
        '200':
          description: Groups.
          content:
            application/json:
              schema:
                type: array
                items:
                  $ref: '#/components/schemas/Group'
  /public/iam/v2/group/{groupName}:
    get:
      operationId: getGroup
      tags:
      - Groups
      summary: Get a group and its permissions
      description: Retrieves a group with its members and the granular RBAC permissions attached to it. Permissions can be scoped to a single cluster or all clusters and reference topic patterns and Kafka resource types.
      security:
      - bearerAuth: []
      parameters:
      - name: groupName
        in: path
        required: true
        schema:
          type: string
        example: project-a
      responses:
        '200':
          description: The group and its permissions.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Group'
    put:
      operationId: upsertGroup
      tags:
      - Groups
      summary: Create or update a group and its permissions
      security:
      - bearerAuth: []
      parameters:
      - name: groupName
        in: path
        required: true
        schema:
          type: string
      requestBody:
        required: true
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/Group'
      responses:
        '200':
          description: Group created or updated.
    delete:
      operationId: deleteGroup
      tags:
      - Groups
      summary: Delete a group
      security:
      - bearerAuth: []
      parameters:
      - name: groupName
        in: path
        required: true
        schema:
          type: string
      responses:
        '204':
          description: Group deleted.
components:
  schemas:
    Permission:
      type: object
      properties:
        resourceType:
          type: string
          description: Kafka resource type the permission applies to.
          example: TOPIC
        name:
          type: string
          description: Topic or resource name or pattern.
          example: project-a-*
        patternType:
          type: string
          enum:
          - LITERAL
          - PREFIXED
        cluster:
          type: string
          description: Cluster id, or omitted/'*' for all clusters.
        permissions:
          type: array
          items:
            type: string
          example:
          - topicViewConfig
          - topicConsume
          - topicProduce
    Group:
      type: object
      properties:
        apiVersion:
          type: string
          example: iam/v2
        kind:
          type: string
          example: Group
        metadata:
          type: object
          properties:
            name:
              type: string
        spec:
          type: object
          properties:
            displayName:
              type: string
            description:
              type: string
            externalGroups:
              type: array
              items:
                type: string
            members:
              type: array
              items:
                type: string
            permissions:
              type: array
              items:
                $ref: '#/components/schemas/Permission'
  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.