H2O.ai Permissions API

The Permissions API from H2O.ai — 24 operation(s) for permissions.

OpenAPI Specification

h2o-ai-permissions-api-openapi.yml Raw ↑
openapi: 3.2.0
info:
  title: h2oGPTe REST Permissions API
  description: "\n# Overview \n\nUsers can easily interact with the h2oGPTe API through its REST API, allowing HTTP requests from any programming language.\n\n## Authorization: Getting an API key\n\nSign up/in at Enterprise h2oGPTe and generate one of the following two types of API keys: \n\n- **Global API key**: If a Collection is not specified when creating a new API Key, that key is considered to be a global API Key. Use global API Keys to grant full user impersonation and system-wide access to all of your work. Anyone with access to one of your global API Keys can create, delete, or interact with any of your past, current, and future Collections, Documents, Chats, and settings.\n\n- **Collection-specific API key**: Use Collection-specific API Keys to grant external access to only Chat with a specified Collection and make related API calls to it. Collection-specific API keys do not allow other API calls, such as creation, deletion, or access to other Collections or Chats.\n \nAccess Enterprise h2oGPTe through your [H2O Generative AI](https://genai.h2o.ai/appstore) app store account, available with a freemium tier.\n\n## Authorization: Using an API key \n\nAll h2oGPTe REST API requests must include an API Key in the \"Authorization\" HTTP header, formatted as follows:\n\n```\nAuthorization: Bearer sk-XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX\n```\n\n```sh\ncurl -X 'POST' \\\n  'https://h2ogpte.genai.h2o.ai/api/v1/collections' \\\n  -H 'accept: application/json' \\\n  -H 'Content-Type: application/json' \\\n  -H 'Authorization: Bearer sk-XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX' \\\n  -d '{\n    \"name\": \"The name of my Collection\",\n    \"description\": \"The description of my Collection\",\n    \"embedding_model\": \"BAAI/bge-large-en-v1.5\"\n  }'\n```\n    \n## Interactive h2oGPTe API testing\n\nThis page only showcases the h2oGPTe REST API; you can test it directly in the [Swagger UI](https://h2ogpte.genai.h2o.ai/swagger-ui/). Ensure that you are logged into your Enterprise h2oGPTe account.\n"
  version: v1.0.0
servers:
- url: https://h2ogpte.genai.h2o.ai/api/v1
security:
- bearerAuth: []
tags:
- name: Permissions
paths:
  /collections/{collection_id}/permissions/is_granted:
    post:
      operationId: is_collection_permission_granted
      summary: Checks if collection permission is granted for a given user.
      description: Checks if collection permission is granted for a given user.
      tags:
      - Permissions
      parameters:
      - name: collection_id
        in: path
        description: Id of the collection.
        required: true
        schema:
          type: string
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/PermissionCheckRequest'
        required: true
      responses:
        '200':
          description: Successful operation
          content:
            application/json:
              schema:
                type: boolean
        '400':
          $ref: '#/components/responses/BadRequest'
        '401':
          $ref: '#/components/responses/Unauthorized'
        '404':
          $ref: '#/components/responses/NotFound'
        default:
          $ref: '#/components/responses/Unexpected'
  /documents/{document_id}/users/{user_id}:
    put:
      operationId: add_user_document_permission
      summary: Associates a user with a document they have permission on.
      description: Associates a user with a document they have permission on.
      tags:
      - Permissions
      parameters:
      - name: document_id
        in: path
        description: Id of the document
        required: true
        schema:
          type: string
      - name: user_id
        in: path
        description: The id of the user that has the permission.
        required: true
        schema:
          type: string
      responses:
        '204':
          description: Successful operation
        '400':
          $ref: '#/components/responses/BadRequest'
        '401':
          $ref: '#/components/responses/Unauthorized'
        '403':
          $ref: '#/components/responses/Forbidden'
        '404':
          $ref: '#/components/responses/NotFound'
        default:
          $ref: '#/components/responses/Unexpected'
  /users:
    get:
      operationId: list_users
      summary: Returns a list of all registered users for the system.
      description: Returns a list of all registered users for the system.
      tags:
      - Permissions
      parameters:
      - name: offset
        in: query
        description: How many users to skip before returning.
        required: false
        schema:
          type: integer
          default: 0
      - name: limit
        in: query
        description: How many users to return.
        required: false
        schema:
          type: integer
          default: 100
      responses:
        '200':
          description: Successful operation
          content:
            application/json:
              schema:
                type: array
                items:
                  $ref: '#/components/schemas/UserInfo'
        '400':
          $ref: '#/components/responses/BadRequest'
        '401':
          $ref: '#/components/responses/Unauthorized'
        default:
          $ref: '#/components/responses/Unexpected'
  /users/{user_id}:
    get:
      operationId: get_user
      summary: Finds user for a given unique identifier.
      description: Finds user for a given unique identifier.
      tags:
      - Permissions
      parameters:
      - name: user_id
        in: path
        description: The unique identifier of an user.
        required: true
        schema:
          type: string
      responses:
        '200':
          description: Successful operation
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/UserInfo'
        '400':
          $ref: '#/components/responses/BadRequest'
        '401':
          $ref: '#/components/responses/Unauthorized'
        '404':
          $ref: '#/components/responses/NotFound'
        default:
          $ref: '#/components/responses/Unexpected'
  /users/{user_id}/permissions:
    get:
      operationId: get_user_permissions
      summary: Lists permissions of a given user.
      description: Lists permissions of a given user.
      tags:
      - Permissions
      parameters:
      - name: user_id
        in: path
        description: The unique identifier of an user.
        required: true
        schema:
          type: string
      responses:
        '200':
          description: Successful operation
          content:
            application/json:
              schema:
                type: array
                items:
                  $ref: '#/components/schemas/UserPermission'
        '400':
          $ref: '#/components/responses/BadRequest'
        '401':
          $ref: '#/components/responses/Unauthorized'
        default:
          $ref: '#/components/responses/Unexpected'
  /users/current:
    delete:
      tags:
      - Permissions
      summary: Request deletion of the current user.
      description: Creates a deletion request for the currently authenticated user. Returns a delete ID that must be used to confirm the deletion within 5 minutes.
      operationId: request_current_user_deletion
      responses:
        '200':
          description: Deletion request created successfully
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/UserDeletionRequest'
        '401':
          $ref: '#/components/responses/Unauthorized'
        default:
          $ref: '#/components/responses/Unexpected'
  /users/current/confirm-delete:
    post:
      tags:
      - Permissions
      summary: Confirm deletion of the current user.
      description: Confirms and executes the deletion of the currently authenticated user and all associated data using the delete ID from the initial request.
      operationId: confirm_current_user_deletion
      requestBody:
        required: true
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/ConfirmUserDeletionRequest'
      parameters:
      - name: timeout
        in: query
        description: Timeout in seconds
        schema:
          type: number
          format: double
          default: 300
      responses:
        '204':
          description: User deletion completed successfully
        '400':
          description: Invalid or expired delete ID
        '401':
          $ref: '#/components/responses/Unauthorized'
        default:
          $ref: '#/components/responses/Unexpected'
  /users/current/permissions:
    get:
      operationId: get_current_user_permissions
      summary: Lists permissions of the user calling the endpoint.
      description: Lists permissions of the user calling the endpoint.
      tags:
      - Permissions
      responses:
        '200':
          description: Successful operation
          content:
            application/json:
              schema:
                type: array
                items:
                  $ref: '#/components/schemas/UserPermission'
        '400':
          $ref: '#/components/responses/BadRequest'
        '401':
          $ref: '#/components/responses/Unauthorized'
        default:
          $ref: '#/components/responses/Unexpected'
  /users/{user_id}/roles:
    get:
      operationId: get_user_roles
      summary: Finds roles associated with a given user.
      description: Finds roles associated with a given user.
      tags:
      - Permissions
      parameters:
      - name: user_id
        in: path
        description: The unique identifier of an user.
        required: true
        schema:
          type: string
      responses:
        '200':
          description: Successful operation
          content:
            application/json:
              schema:
                type: array
                items:
                  $ref: '#/components/schemas/RoleInfo'
        '400':
          $ref: '#/components/responses/BadRequest'
        '401':
          $ref: '#/components/responses/Unauthorized'
        default:
          $ref: '#/components/responses/Unexpected'
    delete:
      operationId: reset_user_roles
      summary: Resets user roles.
      description: Replaces all roles of the given user with a new set of roles
      tags:
      - Permissions
      parameters:
      - name: user_id
        in: path
        description: The unique identifier of an user.
        required: true
        schema:
          type: string
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/RolesResetRequest'
        required: true
      responses:
        '204':
          description: Successful operation
        '400':
          $ref: '#/components/responses/BadRequest'
        '401':
          $ref: '#/components/responses/Unauthorized'
        '404':
          $ref: '#/components/responses/NotFound'
        default:
          $ref: '#/components/responses/Unexpected'
  /users/current/roles:
    get:
      operationId: get_current_user_roles
      summary: Finds roles associated with the user calling the endpoint.
      description: Finds roles associated with the user calling the endpoint.
      tags:
      - Permissions
      responses:
        '200':
          description: Successful operation
          content:
            application/json:
              schema:
                type: array
                items:
                  $ref: '#/components/schemas/RoleInfo'
        '400':
          $ref: '#/components/responses/BadRequest'
        '401':
          $ref: '#/components/responses/Unauthorized'
        default:
          $ref: '#/components/responses/Unexpected'
  /users/{user_id}/roles/{role_names}:
    put:
      operationId: assign_roles_to_user
      summary: Assigns roles to a given user.
      description: Assigns roles to a given user.
      tags:
      - Permissions
      parameters:
      - name: user_id
        in: path
        description: The unique identifier of an user.
        required: true
        schema:
          type: string
      - name: role_names
        in: path
        description: The role names.
        required: true
        schema:
          type: array
          items:
            type: string
      responses:
        '204':
          description: Successful operation
        '400':
          $ref: '#/components/responses/BadRequest'
        '401':
          $ref: '#/components/responses/Unauthorized'
        '404':
          $ref: '#/components/responses/NotFound'
        default:
          $ref: '#/components/responses/Unexpected'
    delete:
      operationId: remove_roles_from_user
      summary: Removes roles from a given user.
      description: Removes roles from a given user.
      tags:
      - Permissions
      parameters:
      - name: user_id
        in: path
        description: The unique identifier of an user.
        required: true
        schema:
          type: string
      - name: role_names
        in: path
        description: The role names.
        required: true
        schema:
          type: array
          items:
            type: string
      responses:
        '204':
          description: Successful operation
        '400':
          $ref: '#/components/responses/BadRequest'
        '401':
          $ref: '#/components/responses/Unauthorized'
        default:
          $ref: '#/components/responses/Unexpected'
  /groups:
    get:
      operationId: list_groups
      summary: Returns a list of all groups existing on the H2OGPTe instance.
      description: Returns a list of all groups existing on the H2OGPTe instance.
      tags:
      - Permissions
      responses:
        '200':
          description: Successful operation
          content:
            application/json:
              schema:
                type: array
                items:
                  $ref: '#/components/schemas/GroupInfo'
        '400':
          $ref: '#/components/responses/BadRequest'
        '401':
          $ref: '#/components/responses/Unauthorized'
        default:
          $ref: '#/components/responses/Unexpected'
    post:
      operationId: create_group
      summary: Creates a user group.
      description: Creates a user group.
      tags:
      - Permissions
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/GroupCreateRequest'
        required: true
      responses:
        '201':
          description: Successful operation
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/GroupInfo'
        '400':
          $ref: '#/components/responses/BadRequest'
        '401':
          $ref: '#/components/responses/Unauthorized'
        default:
          $ref: '#/components/responses/Unexpected'
    delete:
      operationId: delete_groups_by_names
      summary: Deletes groups for given group names.
      description: Deletes groups for given group names.
      tags:
      - Permissions
      parameters:
      - name: names
        in: query
        description: Names of groups to be deleted.
        required: true
        schema:
          type: array
          items:
            type: string
      responses:
        '204':
          description: Successful operation
        '400':
          $ref: '#/components/responses/BadRequest'
        '401':
          $ref: '#/components/responses/Unauthorized'
        '409':
          $ref: '#/components/responses/Conflict'
        default:
          $ref: '#/components/responses/Unexpected'
  /groups/{group_ids}:
    delete:
      operationId: delete_groups
      summary: Deletes groups for given unique identifiers.
      description: Deletes a groups for given unique identifiers.
      tags:
      - Permissions
      parameters:
      - name: group_ids
        in: path
        description: The unique identifiers of groups to be deleted.
        required: true
        schema:
          type: array
          items:
            type: string
      responses:
        '204':
          description: Successful operation
        '400':
          $ref: '#/components/responses/BadRequest'
        '401':
          $ref: '#/components/responses/Unauthorized'
        '409':
          $ref: '#/components/responses/Conflict'
        default:
          $ref: '#/components/responses/Unexpected'
  /groups/{group_id}/roles:
    get:
      operationId: get_group_roles
      summary: Finds roles associated with a given group.
      description: Finds roles associated with a given group.
      tags:
      - Permissions
      parameters:
      - name: group_id
        in: path
        description: The unique identifier of a group.
        required: true
        schema:
          type: string
      responses:
        '200':
          description: Successful operation
          content:
            application/json:
              schema:
                type: array
                items:
                  $ref: '#/components/schemas/RoleInfo'
        '400':
          $ref: '#/components/responses/BadRequest'
        '401':
          $ref: '#/components/responses/Unauthorized'
        default:
          $ref: '#/components/responses/Unexpected'
    delete:
      operationId: reset_group_roles
      summary: Resets group roles.
      description: Replaces all roles of the given group with a new set of roles
      tags:
      - Permissions
      parameters:
      - name: group_id
        in: path
        description: The unique identifier of a group.
        required: true
        schema:
          type: string
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/RolesResetRequest'
        required: true
      responses:
        '204':
          description: Successful operation
        '400':
          $ref: '#/components/responses/BadRequest'
        '401':
          $ref: '#/components/responses/Unauthorized'
        '404':
          $ref: '#/components/responses/NotFound'
        default:
          $ref: '#/components/responses/Unexpected'
  /groups/{group_id}/roles/{role_names}:
    put:
      operationId: assign_roles_to_group
      summary: Assigns roles to a given group.
      description: Assigns roles to a given user.
      tags:
      - Permissions
      parameters:
      - name: group_id
        in: path
        description: The unique identifier of a group.
        required: true
        schema:
          type: string
      - name: role_names
        in: path
        description: The role names.
        required: true
        schema:
          type: array
          items:
            type: string
      responses:
        '204':
          description: Successful operation
        '400':
          $ref: '#/components/responses/BadRequest'
        '401':
          $ref: '#/components/responses/Unauthorized'
        '404':
          $ref: '#/components/responses/NotFound'
        default:
          $ref: '#/components/responses/Unexpected'
    delete:
      operationId: remove_roles_from_group
      summary: Removes roles from a given group.
      description: Removes roles from a given group.
      tags:
      - Permissions
      parameters:
      - name: group_id
        in: path
        description: The unique identifier of a group.
        required: true
        schema:
          type: string
      - name: role_names
        in: path
        description: The role names.
        required: true
        schema:
          type: array
          items:
            type: string
      responses:
        '204':
          description: Successful operation
        '400':
          $ref: '#/components/responses/BadRequest'
        '401':
          $ref: '#/components/responses/Unauthorized'
        default:
          $ref: '#/components/responses/Unexpected'
  /group/{group_id}/permissions:
    get:
      operationId: get_group_permissions
      summary: Lists permissions of a given group.
      description: Lists permissions of a given group.
      tags:
      - Permissions
      parameters:
      - name: group_id
        in: path
        description: The unique identifier of a group.
        required: true
        schema:
          type: string
      responses:
        '200':
          description: Successful operation
          content:
            application/json:
              schema:
                type: array
                items:
                  $ref: '#/components/schemas/UserPermission'
        '400':
          $ref: '#/components/responses/BadRequest'
        '401':
          $ref: '#/components/responses/Unauthorized'
        default:
          $ref: '#/components/responses/Unexpected'
  /roles:
    post:
      operationId: create_role
      summary: Creates a role.
      description: Creates a role.
      tags:
      - Permissions
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/RoleCreateRequest'
        required: true
      responses:
        '201':
          description: Successful operation
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/RoleInfo'
        '400':
          $ref: '#/components/responses/BadRequest'
        '401':
          $ref: '#/components/responses/Unauthorized'
        default:
          $ref: '#/components/responses/Unexpected'
    get:
      operationId: list_roles
      summary: Returns all roles for in the H2OGPTe instance.
      description: Returns all roles for in the H2OGPTe instance.
      tags:
      - Permissions
      responses:
        '200':
          description: Successful operation
          content:
            application/json:
              schema:
                type: array
                items:
                  $ref: '#/components/schemas/RoleInfo'
        '400':
          $ref: '#/components/responses/BadRequest'
        '401':
          $ref: '#/components/responses/Unauthorized'
        default:
          $ref: '#/components/responses/Unexpected'
    delete:
      operationId: delete_roles_by_names
      summary: Deletes roles for given role names.
      description: Deletes roles for given role names.
      tags:
      - Permissions
      parameters:
      - name: names
        in: query
        description: Names of roles to be deleted.
        required: true
        schema:
          type: array
          items:
            type: string
      responses:
        '204':
          description: Successful operation
        '400':
          $ref: '#/components/responses/BadRequest'
        '401':
          $ref: '#/components/responses/Unauthorized'
        '409':
          $ref: '#/components/responses/Conflict'
        default:
          $ref: '#/components/responses/Unexpected'
  /roles/{role_id}:
    get:
      operationId: get_role
      summary: Finds role for a given unique identifier.
      description: Finds role for a given unique identifier.
      tags:
      - Permissions
      parameters:
      - name: role_id
        in: path
        description: The unique identifier of an role.
        required: true
        schema:
          type: string
      responses:
        '200':
          description: Successful operation
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/RoleInfo'
        '400':
          $ref: '#/components/responses/BadRequest'
        '401':
          $ref: '#/components/responses/Unauthorized'
        '404':
          $ref: '#/components/responses/NotFound'
        default:
          $ref: '#/components/responses/Unexpected'
  /roles/{role_ids}:
    delete:
      operationId: delete_roles
      summary: Deletes roles for given unique identifiers.
      description: Deletes roles for given unique identifiers.
      tags:
      - Permissions
      parameters:
      - name: role_ids
        in: path
        description: The unique identifiers of roles to be deleted.
        required: true
        schema:
          type: array
          items:
            type: string
      responses:
        '204':
          description: Successful operation
        '400':
          $ref: '#/components/responses/BadRequest'
        '401':
          $ref: '#/components/responses/Unauthorized'
        '409':
          $ref: '#/components/responses/Conflict'
        default:
          $ref: '#/components/responses/Unexpected'
  /roles/{role_id}/permissions:
    get:
      operationId: get_role_permissions
      summary: Lists permissions of a given role.
      description: Lists permissions of a given role.
      tags:
      - Permissions
      parameters:
      - name: role_id
        in: path
        description: The unique identifier of an role.
        required: true
        schema:
          type: string
      responses:
        '200':
          description: Successful operation
          content:
            application/json:
              schema:
                type: array
                items:
                  $ref: '#/components/schemas/UserPermission'
        '400':
          $ref: '#/components/responses/BadRequest'
        '401':
          $ref: '#/components/responses/Unauthorized'
        default:
          $ref: '#/components/responses/Unexpected'
    post:
      operationId: set_role_permissions
      summary: Sets a new set of permissions for a given role.
      description: Sets a new set of permissions for a given role.
      tags:
      - Permissions
      parameters:
      - name: role_id
        in: path
        description: The unique identifier of an role.
        required: true
        schema:
          type: string
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/PermissionResetRequest'
        required: true
      responses:
        '204':
          description: Successful operation
        '400':
          $ref: '#/components/responses/BadRequest'
        '401':
          $ref: '#/components/responses/Unauthorized'
        '404':
          $ref: '#/components/responses/NotFound'
        default:
          $ref: '#/components/responses/Unexpected'
  /roles/{role_id}/permissions/{permission_name}:
    put:
      operationId: assign_permission_to_role
      summary: Assigns permission to a given role.
      description: Assigns permission to a given role.
      tags:
      - Permissions
      parameters:
      - name: role_id
        in: path
        description: The unique identifier of an user.
        required: true
        schema:
          type: string
      - name: permission_name
        in: path
        description: The permission name.
        required: true
        schema:
          type: string
      responses:
        '204':
          description: Successful operation
        '400':
          $ref: '#/components/responses/BadRequest'
        '401':
          $ref: '#/components/responses/Unauthorized'
        '404':
          $ref: '#/components/responses/NotFound'
        '409':
          $ref: '#/components/responses/Conflict'
        default:
          $ref: '#/components/responses/Unexpected'
    delete:
      operationId: remove_permission_from_role
      summary: Removes permission from a given role.
      description: Removes permission from a given role.
      tags:
      - Permissions
      parameters:
      - name: role_id
        in: path
        description: The unique identifier of the role.
        required: true
        schema:
          type: string
      - name: permission_name
        in: path
        description: The permission name.
        required: true
        schema:
          type: string
      responses:
        '204':
          description: Successful operation
        '400':
          $ref: '#/components/responses/BadRequest'
        '401':
          $ref: '#/components/responses/Unauthorized'
        '404':
          $ref: '#/components/responses/NotFound'
        '409':
          $ref: '#/components/responses/Conflict'
        default:
          $ref: '#/components/responses/Unexpected'
  /roles/{role_id}/priority:
    put:
      operationId: set_role_priority
      summary: Sets priority for a given role.
      description: Sets priority for a given role.
      tags:
      - Permissions
      parameters:
      - name: role_id
        in: path
        description: The unique identifier of an role.
        required: true
        schema:
          type: string
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/SetRolePriorityRequest'
      responses:
        '200':
          description: Successful operation
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/RoleInfo'
        '400':
          $ref: '#/components/responses/BadRequest'
        '401':
          $ref: '#/components/responses/Unauthorized'
        '404':
          $ref: '#/components/responses/NotFound'
        '500':
          $ref: '#/components/responses/InternalServerError'
        default:
          $ref: '#/components/responses/Unexpected'
  /permissions:
    get:
      operationId: list_permissions
      summary: Returns system permissions.
      description: Returns all system permissions or permissions for given groups
      tags:
      - Permissions
      parameters:
      - name: group_names
        in: query
        description: If set, the output permissions will be related only to given groups.
        required: false
        schema:
          type: array
          items:
            type: string
      - name: role_names
        in: query
        description: If set, the output permissions will be related only to given roles.
        required: false
        schema:
          type: array
          items:
            type: string
      responses:
        '200':
          description: Successful operation
          content:
            application/json:
              schema:
                type: array
                items:
                  $ref: '#/components/schemas/UserPermission'
        '400':
          $ref: '#/components/responses/BadRequest'
        '401':
          $ref: '#/components/responses/Unauthorized'
        default:
          $ref: '#/components/responses/Unexpected'
  /permissions/is_granted:
    post:
      operationId: is_permission_granted
      summary: Checks if permission is granted for a given user.
      description: Checks if permission is granted for a given user.
      tags:
      - Permissions
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/PermissionCheckRequest'
        required: true
      responses:
        '200':
          description: Successful operation
          content:
            application/json:
              schema:
                type: boolean
        '400':
          $ref: '#/components/responses/BadRequest'
        '401':
          $ref: '#/components/responses/Unauthorized'
        default:
          $ref: '#/components/responses/Unexpected'
components:
  responses:
    Forbidden:
      description: Forbidden
      content:
        application/json:
          schema:
            $ref: '#/components/schemas/EndpointError'
    NotFound:
      description: Not found
      content:
        application/json:
          schema:
            $ref: '#/components/schemas/EndpointError'
    InternalServerError:
      description: Internal server error
      content:
        application/json:
          schema:
            $ref: '#/components/schemas/EndpointError'
    BadRequest:
      description: Bad request
      content:
        application/json:
          schema:
            $ref: '#/components/schemas/EndpointError'
    Unauthorized:
      description: Unauthorized - Invalid or missing API key
      content:
        application/json:
          schema:
            $ref: '#/components/schemas/EndpointError'
    Conflict:
      description: Conflict
      content:
        application/json:
          schema:
            $ref: '#/components/schemas/EndpointError'
    Unexpected:
      description: Unexpected error
      content:
        application/json:
          schema:
            $ref: '#/components/schemas/EndpointEr

# --- truncated at 32 KB (35 KB total) ---
# Full source: https://raw.githubusercontent.com/api-evangelist/h2o-ai/refs/heads/main/openapi/h2o-ai-permissions-api-openapi.yml