Kong Groups API

Group routes

OpenAPI Specification

kong-groups-api-openapi.yml Raw ↑
openapi: 3.1.0
info:
  contact:
    email: support@konghq.com
    name: Kong Inc
    url: https://konghq.com
  description: 'OpenAPI 3.0 spec for Kong Gateway''s Admin API.


    You can learn more about Kong Gateway at [developer.konghq.com](https://developer.konghq.com).

    Give Kong a star at the [Kong/kong](https://github.com/kong/kong) repository.'
  license:
    name: Apache 2.0
    url: https://www.apache.org/licenses/LICENSE-2.0.html
  title: Kong Enterprise Admin ACLs Groups API
  version: 3.14.0
servers:
- description: Default Admin API URL
  url: '{protocol}://{hostname}:{port}{path}'
  variables:
    hostname:
      default: localhost
      description: Hostname for Kong's Admin API
    path:
      default: /
      description: Base path for Kong's Admin API
    port:
      default: '8001'
      description: Port for Kong's Admin API
    protocol:
      default: http
      description: Protocol for requests to Kong's Admin API
      enum:
      - http
      - https
security:
- adminToken: []
tags:
- description: Group routes
  name: Groups
paths:
  /groups:
    post:
      x-speakeasy-entity-operation:
        terraform-datasource: null
        terraform-resource: Group#create
      operationId: create-group
      summary: Create a new Group
      description: Create a new Group
      requestBody:
        description: Description of the new Group for creation
        required: true
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/Group'
      responses:
        '201':
          description: Successfully created Group
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Group'
        '401':
          $ref: '#/components/responses/HTTP401Error'
      tags:
      - Groups
  /groups/{GroupId}:
    parameters:
    - $ref: '#/components/parameters/GroupId'
    delete:
      x-speakeasy-entity-operation:
        terraform-datasource: null
        terraform-resource: Group#delete
      operationId: delete-group
      summary: Delete a Group
      description: Delete a Group
      parameters:
      - $ref: '#/components/parameters/GroupId'
      responses:
        '204':
          description: Successfully deleted Group or the resource didn't exist
        '401':
          $ref: '#/components/responses/HTTP401Error'
      tags:
      - Groups
    get:
      x-speakeasy-entity-operation:
        terraform-datasource: null
        terraform-resource: Group#read
      operationId: get-group
      summary: Get a Group
      description: Get a Group using ID.
      responses:
        '200':
          description: Successfully fetched Group
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Group'
        '401':
          $ref: '#/components/responses/HTTP401Error'
        '404':
          description: Resource does not exist
      tags:
      - Groups
    put:
      x-speakeasy-entity-operation:
        terraform-datasource: null
        terraform-resource: Group#update
      operationId: upsert-group
      summary: Upsert a Group
      description: Create or Update Group using ID.
      requestBody:
        description: Description of the Group
        required: true
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/Group'
      responses:
        '200':
          description: Successfully upserted Group
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Group'
        '401':
          $ref: '#/components/responses/HTTP401Error'
      tags:
      - Groups
  /groups/{GroupId}/roles:
    parameters:
    - $ref: '#/components/parameters/GroupRoleId'
    delete:
      x-speakeasy-entity-operation: GroupRole#delete
      operationId: delete-groups-group_id_or_name-roles
      summary: Delete a Group’s Role
      description: Delete a group's roles.
      parameters:
      - name: rbac_role_id
        in: query
        description: ID of the role to remove from the group.
        required: true
        schema:
          type: string
        example: 12773c9a-7f7c-45f2-bcea-5285eb18fd2f
        x-speakeasy-match: role_id
      - name: workspace_id
        in: query
        required: true
        schema:
          type: string
        x-speakeasy-match: workspace
      responses:
        '204':
          description: Successfully deleted role.
        '401':
          $ref: '#/components/responses/HTTP401Error'
      tags:
      - Groups
    post:
      x-speakeasy-entity-operation:
        terraform-datasource: null
        terraform-resource: GroupRole#create
      operationId: create-groups-group_id_or_name-roles
      summary: Create Group's Roles
      description: Create roles for a specified group
      requestBody:
        $ref: '#/components/requestBodies/GroupRoleRequest'
      responses:
        '201':
          $ref: '#/components/responses/CreateGroupRolesResponse'
        '401':
          $ref: '#/components/responses/HTTP401Error'
      tags:
      - Groups
components:
  parameters:
    GroupRoleId:
      description: ID of the Group to lookup
      example: ''
      in: path
      name: GroupId
      required: true
      schema:
        type: string
      x-speakeasy-name-override: group_id
    GroupId:
      description: ID of the Group to lookup
      example: ''
      in: path
      name: GroupId
      required: true
      schema:
        type: string
      x-speakeasy-match: id
  requestBodies:
    GroupRoleRequest:
      content:
        application/json:
          schema:
            $ref: '#/components/schemas/GroupRole'
      description: Request body schema for assigning or updating roles for a group.
  responses:
    HTTP401Error:
      description: Unauthorized
      content:
        application/json:
          examples:
            DuplicateApiKey:
              summary: Duplicate API key found
              value:
                message: Duplicate API key found
                status: 401
            InvalidAuthCred:
              summary: Invalid authentication credentials
              value:
                message: Unauthorized
                status: 401
            NoAPIKey:
              summary: No API key found
              value:
                message: No API key found in request
                status: 401
          schema:
            $ref: '#/components/schemas/GatewayUnauthorizedError'
    CreateGroupRolesResponse:
      description: Successfully created or updated roles.
      content:
        application/json:
          example:
            group:
              comment: Read access to all endpoints, across all workspaces
              id: 7574eb1d-c9fa-46a9-bd3a-3f1b4b196287
              name: read-only
              updated_at: '2024-04-23T18:25:43Z'
            rbac_role:
              id: 7fdea5c8-2bfa-4aa9-9c21-7bb9e607186d
              name: admin
            workspace:
              id: 99bd8d18-f5b6-410e-aefe-d75f4252f13c
          schema:
            $ref: '#/components/schemas/GroupRole'
  schemas:
    GroupRole:
      x-speakeasy-entity: GroupRole
      type: object
      properties:
        group:
          type: object
          nullable: true
          properties:
            comment:
              type: string
            id:
              type: string
            name:
              type: string
            updated_at:
              type: string
              format: date-time
          x-foreign: true
          x-speakeasy-terraform-ignore: true
        group_id:
          description: ID of the group.
          type: string
          nullable: true
        rbac_role:
          type: object
          nullable: true
          properties:
            id:
              type: string
            name:
              type: string
          x-speakeasy-terraform-ignore: true
        role_id:
          description: ID of the RBAC role assigned to the group.
          type: string
          nullable: true
        workspace:
          description: Workspace ID.
          type: string
          nullable: true
      additionalProperties: false
      x-speakeasy-transform-from-api:
        jq: ".\n| if .group != null and .group.id != null\n  then . + { group_id: .group.id }\n  else .\n  end\n| if .rbac_role != null and .rbac_role.id != null\n  then . + { role_id: .rbac_role.id }\n  else .\n  end\n| if .workspace != null and (.workspace | type) == \"object\" and .workspace.id != null\n  then .workspace = .workspace.id\n  else .\n  end\n| del(.group, .rbac_role)\n"
      x-speakeasy-transform-to-api:
        jq: ".\n| if .workspace != null\n  then . + { workspace_id: .workspace }\n  else .\n  end\n| if .role_id != null\n  then . + { rbac_role_id: .role_id }\n  else .\n  end\n| del(.group_id, .role_id, .workspace, .group, .rbac_role)\n"
    Group:
      x-speakeasy-entity: Group
      type: object
      properties:
        comment:
          description: Any comments associated with the specific group.
          type: string
          nullable: true
        created_at:
          description: Unix epoch when the resource was created.
          type: integer
          nullable: true
        id:
          description: A string representing a UUID (universally unique identifier).
          type: string
          nullable: true
        name:
          description: The name of the group
          type: string
        updated_at:
          description: Unix epoch when the resource was last updated.
          type: integer
          nullable: true
      example:
        comment: This is an example comment for the group.
        created_at: 1706598432
        id: d4e7f2c9-8a7b-4e89-b3a1-9c3d6f1e5b92
        name: example-group
        updated_at: 1706684832
      additionalProperties: false
      required:
      - name
    GatewayUnauthorizedError:
      type: object
      properties:
        message:
          type: string
        status:
          type: integer
      required:
      - message
      - status
  securitySchemes:
    adminToken:
      in: header
      name: Kong-Admin-Token
      type: apiKey
externalDocs:
  description: Documentation for Kong Gateway and its APIs
  url: https://developer.konghq.com