openapi: 3.1.0
info:
  title: Data Builder API
  version: v1
  description: RESTful and GraphQL API for querying Perfex CRM data via Data Builder. All errors follow RFC 9457 Problem Details (application/problem+json).
servers:
  -
    url: 'https://databuilder.polyxgo.com/api/v1'
components:
  securitySchemes:
    BearerAuth:
      type: http
      scheme: bearer
  schemas:
    ProblemDetails:
      type: object
      properties:
        type:
          type: string
          format: uri
        title:
          type: string
        status:
          type: integer
        detail:
          type: string
paths:
  /activity_log:
    get:
      operationId: listActivityLog
      summary: List activity_log
      tags:
        - Resources
      security:
        -
          BearerAuth: []
      parameters:
        -
          name: page
          in: query
          schema:
            type: integer
            default: 1
        -
          name: per_page
          in: query
          schema:
            type: integer
            default: 25
            maximum: 1000
        -
          name: sort
          in: query
          schema:
            type: string
          description: 'Comma-separated fields, prefix - for DESC'
        -
          name: fields
          in: query
          schema:
            type: string
          description: Comma-separated field names (sparse fieldset)
      responses:
        '200':
          description: OK
        '401':
          description: Unauthorized
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/ProblemDetails'
        '403':
          description: Forbidden
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/ProblemDetails'
        '429':
          description: Rate limit exceeded
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/ProblemDetails'
    post:
      operationId: createActivityLog
      summary: Create activity_log
      tags:
        - Resources
      security:
        -
          BearerAuth: []
      requestBody:
        required: true
        content:
          application/json:
            schema:
              type: object
              properties:
                description:
                  type: string
                date:
                  type: string
                  format: date-time
                  example: '2026-04-01 09:15:29'
                staffid:
                  type: string
              required:
                - description
                - date
      responses:
        '201':
          description: Created
        '401':
          description: Unauthorized
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/ProblemDetails'
        '403':
          description: Forbidden
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/ProblemDetails'
        '429':
          description: Rate limit exceeded
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/ProblemDetails'
  /activity_log/{id}:
    get:
      operationId: getActivityLogById
      summary: Get activity_log by ID
      tags:
        - Resources
      security:
        -
          BearerAuth: []
      parameters:
        -
          name: id
          in: path
          required: true
          schema:
            type: integer
      responses:
        '200':
          description: OK
        '401':
          description: Unauthorized
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/ProblemDetails'
        '403':
          description: Forbidden
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/ProblemDetails'
        '429':
          description: Rate limit exceeded
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/ProblemDetails'
    put:
      operationId: updateActivityLog
      summary: Update activity_log
      tags:
        - Resources
      security:
        -
          BearerAuth: []
      parameters:
        -
          name: id
          in: path
          required: true
          schema:
            type: integer
      requestBody:
        required: true
        content:
          application/json:
            schema:
              type: object
              properties:
                description:
                  type: string
                date:
                  type: string
                  format: date-time
                  example: '2026-04-01 09:15:29'
                staffid:
                  type: string
              additionalProperties: true
      responses:
        '200':
          description: OK
        '401':
          description: Unauthorized
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/ProblemDetails'
        '403':
          description: Forbidden
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/ProblemDetails'
        '429':
          description: Rate limit exceeded
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/ProblemDetails'
    delete:
      operationId: deleteActivityLog
      summary: Delete activity_log
      tags:
        - Resources
      security:
        -
          BearerAuth: []
      parameters:
        -
          name: id
          in: path
          required: true
          schema:
            type: integer
      responses:
        '200':
          description: Deleted
        '401':
          description: Unauthorized
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/ProblemDetails'
        '403':
          description: Forbidden
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/ProblemDetails'
        '429':
          description: Rate limit exceeded
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/ProblemDetails'
  /activity_log/schema:
    get:
      operationId: schemaActivityLog
      summary: Schema of activity_log
      tags:
        - Resources
      security:
        -
          BearerAuth: []
      responses:
        '200':
          description: OK
        '401':
          description: Unauthorized
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/ProblemDetails'
        '403':
          description: Forbidden
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/ProblemDetails'
        '429':
          description: Rate limit exceeded
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/ProblemDetails'
  /announcements:
    get:
      operationId: listAnnouncements
      summary: List announcements
      tags:
        - Resources
      security:
        -
          BearerAuth: []
      parameters:
        -
          name: page
          in: query
          schema:
            type: integer
            default: 1
        -
          name: per_page
          in: query
          schema:
            type: integer
            default: 25
            maximum: 1000
        -
          name: sort
          in: query
          schema:
            type: string
          description: 'Comma-separated fields, prefix - for DESC'
        -
          name: fields
          in: query
          schema:
            type: string
          description: Comma-separated field names (sparse fieldset)
      responses:
        '200':
          description: OK
        '401':
          description: Unauthorized
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/ProblemDetails'
        '403':
          description: Forbidden
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/ProblemDetails'
        '429':
          description: Rate limit exceeded
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/ProblemDetails'
    post:
      operationId: createAnnouncements
      summary: Create announcements
      tags:
        - Resources
      security:
        -
          BearerAuth: []
      requestBody:
        required: true
        content:
          application/json:
            schema:
              type: object
              properties:
                name:
                  type: string
                message:
                  type: string
                showtousers:
                  type: integer
                showtostaff:
                  type: integer
                showname:
                  type: integer
                userid:
                  type: string
              required:
                - name
                - showtousers
                - showtostaff
                - showname
                - userid
      responses:
        '201':
          description: Created
        '401':
          description: Unauthorized
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/ProblemDetails'
        '403':
          description: Forbidden
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/ProblemDetails'
        '429':
          description: Rate limit exceeded
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/ProblemDetails'
  /announcements/{id}:
    get:
      operationId: getAnnouncementsById
      summary: Get announcements by ID
      tags:
        - Resources
      security:
        -
          BearerAuth: []
      parameters:
        -
          name: id
          in: path
          required: true
          schema:
            type: integer
      responses:
        '200':
          description: OK
        '401':
          description: Unauthorized
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/ProblemDetails'
        '403':
          description: Forbidden
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/ProblemDetails'
        '429':
          description: Rate limit exceeded
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/ProblemDetails'
    put:
      operationId: updateAnnouncements
      summary: Update announcements
      tags:
        - Resources
      security:
        -
          BearerAuth: []
      parameters:
        -
          name: id
          in: path
          required: true
          schema:
            type: integer
      requestBody:
        required: true
        content:
          application/json:
            schema:
              type: object
              properties:
                name:
                  type: string
                message:
                  type: string
                showtousers:
                  type: integer
                showtostaff:
                  type: integer
                showname:
                  type: integer
                userid:
                  type: string
              additionalProperties: true
      responses:
        '200':
          description: OK
        '401':
          description: Unauthorized
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/ProblemDetails'
        '403':
          description: Forbidden
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/ProblemDetails'
        '429':
          description: Rate limit exceeded
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/ProblemDetails'
    delete:
      operationId: deleteAnnouncements
      summary: Delete announcements
      tags:
        - Resources
      security:
        -
          BearerAuth: []
      parameters:
        -
          name: id
          in: path
          required: true
          schema:
            type: integer
      responses:
        '200':
          description: Deleted
        '401':
          description: Unauthorized
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/ProblemDetails'
        '403':
          description: Forbidden
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/ProblemDetails'
        '429':
          description: Rate limit exceeded
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/ProblemDetails'
  /announcements/schema:
    get:
      operationId: schemaAnnouncements
      summary: Schema of announcements
      tags:
        - Resources
      security:
        -
          BearerAuth: []
      responses:
        '200':
          description: OK
        '401':
          description: Unauthorized
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/ProblemDetails'
        '403':
          description: Forbidden
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/ProblemDetails'
        '429':
          description: Rate limit exceeded
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/ProblemDetails'
  /consent_purposes:
    get:
      operationId: listConsentPurposes
      summary: List consent_purposes
      tags:
        - Resources
      security:
        -
          BearerAuth: []
      parameters:
        -
          name: page
          in: query
          schema:
            type: integer
            default: 1
        -
          name: per_page
          in: query
          schema:
            type: integer
            default: 25
            maximum: 1000
        -
          name: sort
          in: query
          schema:
            type: string
          description: 'Comma-separated fields, prefix - for DESC'
        -
          name: fields
          in: query
          schema:
            type: string
          description: Comma-separated field names (sparse fieldset)
      responses:
        '200':
          description: OK
        '401':
          description: Unauthorized
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/ProblemDetails'
        '403':
          description: Forbidden
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/ProblemDetails'
        '429':
          description: Rate limit exceeded
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/ProblemDetails'
    post:
      operationId: createConsentPurposes
      summary: Create consent_purposes
      tags:
        - Resources
      security:
        -
          BearerAuth: []
      requestBody:
        required: true
        content:
          application/json:
            schema:
              type: object
              properties:
                name:
                  type: string
                description:
                  type: string
                last_updated:
                  type: string
                  format: date-time
                  example: '2026-04-01 09:15:29'
              required:
                - name
      responses:
        '201':
          description: Created
        '401':
          description: Unauthorized
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/ProblemDetails'
        '403':
          description: Forbidden
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/ProblemDetails'
        '429':
          description: Rate limit exceeded
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/ProblemDetails'
  /consent_purposes/{id}:
    get:
      operationId: getConsentPurposesById
      summary: Get consent_purposes by ID
      tags:
        - Resources
      security:
        -
          BearerAuth: []
      parameters:
        -
          name: id
          in: path
          required: true
          schema:
            type: integer
      responses:
        '200':
          description: OK
        '401':
          description: Unauthorized
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/ProblemDetails'
        '403':
          description: Forbidden
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/ProblemDetails'
        '429':
          description: Rate limit exceeded
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/ProblemDetails'
    put:
      operationId: updateConsentPurposes
      summary: Update consent_purposes
      tags:
        - Resources
      security:
        -
          BearerAuth: []
      parameters:
        -
          name: id
          in: path
          required: true
          schema:
            type: integer
      requestBody:
        required: true
        content:
          application/json:
            schema:
              type: object
              properties:
                name:
                  type: string
                description:
                  type: string
                last_updated:
                  type: string
                  format: date-time
                  example: '2026-04-01 09:15:29'
              additionalProperties: true
      responses:
        '200':
          description: OK
        '401':
          description: Unauthorized
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/ProblemDetails'
        '403':
          description: Forbidden
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/ProblemDetails'
        '429':
          description: Rate limit exceeded
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/ProblemDetails'
    delete:
      operationId: deleteConsentPurposes
      summary: Delete consent_purposes
      tags:
        - Resources
      security:
        -
          BearerAuth: []
      parameters:
        -
          name: id
          in: path
          required: true
          schema:
            type: integer
      responses:
        '200':
          description: Deleted
        '401':
          description: Unauthorized
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/ProblemDetails'
        '403':
          description: Forbidden
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/ProblemDetails'
        '429':
          description: Rate limit exceeded
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/ProblemDetails'
  /consent_purposes/schema:
    get:
      operationId: schemaConsentPurposes
      summary: Schema of consent_purposes
      tags:
        - Resources
      security:
        -
          BearerAuth: []
      responses:
        '200':
          description: OK
        '401':
          description: Unauthorized
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/ProblemDetails'
        '403':
          description: Forbidden
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/ProblemDetails'
        '429':
          description: Rate limit exceeded
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/ProblemDetails'
  /consents:
    get:
      operationId: listConsents
      summary: List consents
      tags:
        - Resources
      security:
        -
          BearerAuth: []
      parameters:
        -
          name: page
          in: query
          schema:
            type: integer
            default: 1
        -
          name: per_page
          in: query
          schema:
            type: integer
            default: 25
            maximum: 1000
        -
          name: sort
          in: query
          schema:
            type: string
          description: 'Comma-separated fields, prefix - for DESC'
        -
          name: fields
          in: query
          schema:
            type: string
          description: Comma-separated field names (sparse fieldset)
      responses:
        '200':
          description: OK
        '401':
          description: Unauthorized
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/ProblemDetails'
        '403':
          description: Forbidden
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/ProblemDetails'
        '429':
          description: Rate limit exceeded
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/ProblemDetails'
    post:
      operationId: createConsents
      summary: Create consents
      tags:
        - Resources
      security:
        -
          BearerAuth: []
      requestBody:
        required: true
        content:
          application/json:
            schema:
              type: object
              properties:
                action:
                  type: string
                date:
                  type: string
                  format: date-time
                  example: '2026-04-01 09:15:29'
                ip:
                  type: string
                contact_id:
                  type: integer
                lead_id:
                  type: integer
                description:
                  type: string
                opt_in_purpose_description:
                  type: string
                purpose_id:
                  type: integer
                staff_name:
                  type: string
              required:
                - action
                - date
                - ip
                - purpose_id
      responses:
        '201':
          description: Created
        '401':
          description: Unauthorized
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/ProblemDetails'
        '403':
          description: Forbidden
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/ProblemDetails'
        '429':
          description: Rate limit exceeded
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/ProblemDetails'
  /consents/{id}:
    get:
      operationId: getConsentsById
      summary: Get consents by ID
      tags:
        - Resources
      security:
        -
          BearerAuth: []
      parameters:
        -
          name: id
          in: path
          required: true
          schema:
            type: integer
      responses:
        '200':
          description: OK
        '401':
          description: Unauthorized
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/ProblemDetails'
        '403':
          description: Forbidden
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/ProblemDetails'
        '429':
          description: Rate limit exceeded
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/ProblemDetails'
    put:
      operationId: updateConsents
      summary: Update consents
      tags:
        - Resources
      security:
        -
          BearerAuth: []
      parameters:
        -
          name: id
          in: path
          required: true
          schema:
            type: integer
      requestBody:
        required: true
        content:
          application/json:
            schema:
              type: object
              properties:
                action:
                  type: string
                date:
                  type: string
                  format: date-time
                  example: '2026-04-01 09:15:29'
                ip:
                  type: string
                contact_id:
                  type: integer
                lead_id:
                  type: integer
                description:
                  type: string
                opt_in_purpose_description:
                  type: string
                purpose_id:
                  type: integer
                staff_name:
                  type: string
              additionalProperties: true
      responses:
        '200':
          description: OK
        '401':
          description: Unauthorized
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/ProblemDetails'
        '403':
          description: Forbidden
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/ProblemDetails'
        '429':
          description: Rate limit exceeded
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/ProblemDetails'
    delete:
      operationId: deleteConsents
      summary: Delete consents
      tags:
        - Resources
      security:
        -
          BearerAuth: []
      parameters:
        -
          name: id
          in: path
          required: true
          schema:
            type: integer
      responses:
        '200':
          description: Deleted
        '401':
          description: Unauthorized
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/ProblemDetails'
        '403':
          description: Forbidden
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/ProblemDetails'
        '429':
          description: Rate limit exceeded
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/ProblemDetails'
  /consents/schema:
    get:
      operationId: schemaConsents
      summary: Schema of consents
      tags:
        - Resources
      security:
        -
          BearerAuth: []
      responses:
        '200':
          description: OK
        '401':
          description: Unauthorized
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/ProblemDetails'
        '403':
          description: Forbidden
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/ProblemDetails'
        '429':
          description: Rate limit exceeded
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/ProblemDetails'
  /contact_permissions:
    get:
      operationId: listContactPermissions
      summary: List contact_permissions
      tags:
        - Resources
      security:
        -
          BearerAuth: []
      parameters:
        -
          name: page
          in: query
          schema:
            type: integer
            default: 1
        -
          name: per_page
          in: query
          schema:
            type: integer
            default: 25
            maximum: 1000
        -
          name: sort
          in: query
          schema:
            type: string
          description: 'Comma-separated fields, prefix - for DESC'
        -
          name: fields
          in: query
          schema:
            type: string
          description: Comma-separated field names (sparse fieldset)
      responses:
        '200':
          description: OK
        '401':
          description: Unauthorized
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/ProblemDetails'
        '403':
          description: Forbidden
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/ProblemDetails'
        '429':
          description: Rate limit exceeded
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/ProblemDetails'
    post:
      operationId: createContactPermissions
      summary: Create contact_permissions
      tags:
        - Resources
      security:
        -
          BearerAuth: []
      requestBody:
        required: true
        content:
          application/json:
            schema:
              type: object
              properties:
                permission_id:
                  type: integer
                userid:
                  type: integer
              required:
                - permission_id
                - userid
      responses:
        '201':
          description: Created
        '401':
          description: Unauthorized
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/ProblemDetails'
        '403':
          description: Forbidden
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/ProblemDetails'
        '429':
          description: Rate limit exceeded
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/ProblemDetails'
  /contact_permissions/{id}:
    get:
      operationId: getContactPermissionsById
      summary: Get contact_permissions by ID
      tags:
        - Resources
      security:
        -
          BearerAuth: []
      parameters:
        -
          name: id
          in: path
          required: true
          schema:
            type: integer
      responses:
        '200':
          description: OK
        '401':
          description: Unauthorized
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/ProblemDetails'
        '403':
          description: Forbidden
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/ProblemDetails'
        '429':
          description: Rate limit exceeded
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/ProblemDetails'
    put:
      operationId: updateContactPermissions
      summary: Update contact_permissions
      tags:
        - Resources
      security:
        -
          BearerAuth: []
      parameters:
        -
          name: id
          in: path
          required: true
          schema:
            type: integer
      requestBody:
        required: true
        content:
          application/json:
            schema:
              type: object
              properties:
                permission_id:
                  type: integer
                userid:
                  type: integer
              additionalProperties: true
      responses:
        '200':
          description: OK
        '401':
          description: Unauthorized
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/ProblemDetails'
        '403':
          description: Forbidden
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/ProblemDetails'
        '429':
          description: Rate limit exceeded
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/ProblemDetails'
    delete:
      operationId: deleteContactPermissions
      summary: Delete contact_permissions
      tags:
        - Resources
      security:
        -
          BearerAuth: []
      parameters:
        -
          name: id
          in: path
          required: true
          schema:
            type: integer
      responses:
        '200':
          description: Deleted
        '401':
          description: Unauthorized
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/ProblemDetails'
        '403':
          description: Forbidden
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/ProblemDetails'
        '429':
          description: Rate limit exceeded
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/ProblemDetails'
  /contact_permissions/schema:
    get:
      operationId: schemaContactPermissions
      summary: Schema of contact_permissions
      tags:
        - Resources
      security:
        -
          BearerAuth: []
      responses:
        '200':
          description: OK
        '401':
          description: Unauthorized
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/ProblemDetails'
        '403':
          description: Forbidden
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/ProblemDetails'
        '429':
          description: Rate limit exceeded
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/ProblemDetails'
  /contacts:
    get:
      operationId: listContacts
      summary: List contacts
      tags:
        - Resources
      security:
        -
          BearerAuth: []
      parameters:
        -
          name: page
          in: query
          schema:
            type: integer
            default: 1
        -
          name: per_page
          in: query
          schema:
            type: integer
            default: 25
            maximum: 1000
        -
          name: sort
          in: query
          schema:
            type: string
          description: 'Comma-separated fields, prefix - for DESC'
        -
          name: fields
          in: query
          schema:
            type: string
          description: Comma-separated field names (sparse fieldset)
      responses:
        '200':
          description: OK
        '401':
          description: Unauthorized
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/ProblemDetails'
        '403':
          description: Forbidden
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/ProblemDetails'
        '429':
          description: Rate limit exceeded
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/ProblemDetails'
    post:
      operationId: createContacts
      summary: Create contacts
      tags:
        - Resources
      security:
        -
          BearerAuth: []
      requestBody:
        required: true
        content:
          application/json:
            schema:
              type: object
              properties:
                userid:
                  type: integer
                is_primary:
                  type: integer
                firstname:
                  type: string
                lastname:
                  type: string
                email:
                  type: string
                phonenumber:
                  type: string
                title:
                  type: string
                email_verified_at:
                  type: string
                  format: date-time
                  example: '2026-04-01 09:15:29'
                email_verification_key:
                  type: string
                email_verification_sent_at:
                  type: string
                  format: date-time
                  example: '2026-04-01 09:15:29'
                last_password_change:
                  type: string
                  format: date-time
                  example: '2026-04-01 09:15:29'
                active:
                  type: integer
                direction:
                  type: string
                invoice_emails:
                  type: integer
                estimate_emails:
                  type: integer
                credit_note_emails:
                  type: integer
                contract_emails:
                  type: integer
                task_emails:
                  type: integer
                project_emails:
                  type: integer
                ticket_emails:
                  type: integer
              required:
                - userid
                - firstname
                - lastname
                - email
                - phonenumber
      responses:
        '201':
          description: Created
        '401':
          description: Unauthorized
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/ProblemDetails'
        '403':
          description: Forbidden
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/ProblemDetails'
        '429':
          description: Rate limit exceeded
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/ProblemDetails'
  /contacts/{id}:
    get:
      operationId: getContactsById
      summary: Get contacts by ID
      tags:
        - Resources
      security:
        -
          BearerAuth: []
      parameters:
        -
          name: id
          in: path
          required: true
          schema:
            type: integer
      responses:
        '200':
          description: OK
        '401':
          description: Unauthorized
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/ProblemDetails'
        '403':
          description: Forbidden
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/ProblemDetails'
        '429':
          description: Rate limit exceeded
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/ProblemDetails'
    put:
      operationId: updateContacts
      summary: Update contacts
      tags:
        - Resources
      security:
        -
          BearerAuth: []
      parameters:
        -
          name: id
          in: path
          required: true
          schema:
            type: integer
      requestBody:
        required: true
        content:
          application/json:
            schema:
              type: object
              properties:
                userid:
                  type: integer
                is_primary:
                  type: integer
                firstname:
                  type: string
                lastname:
                  type: string
                email:
                  type: string
                phonenumber:
                  type: string
                title:
                  type: string
                email_verified_at:
                  type: string
                  format: date-time
                  example: '2026-04-01 09:15:29'
                email_verification_key:
                  type: string
                email_verification_sent_at:
                  type: string
                  format: date-time
                  example: '2026-04-01 09:15:29'
                last_password_change:
                  type: string
                  format: date-time
                  example: '2026-04-01 09:15:29'
                active:
                  type: integer
                direction:
                  type: string
                invoice_emails:
                  type: integer
                estimate_emails:
                  type: integer
                credit_note_emails:
                  type: integer
                contract_emails:
                  type: integer
                task_emails:
                  type: integer
                project_emails:
                  type: integer
                ticket_emails:
                  type: integer
              additionalProperties: true
      responses:
        '200':
          description: OK
        '401':
          description: Unauthorized
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/ProblemDetails'
        '403':
          description: Forbidden
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/ProblemDetails'
        '429':
          description: Rate limit exceeded
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/ProblemDetails'
    delete:
      operationId: deleteContacts
      summary: Delete contacts
      tags:
        - Resources
      security:
        -
          BearerAuth: []
      parameters:
        -
          name: id
          in: path
          required: true
          schema:
            type: integer
      responses:
        '200':
          description: Deleted
        '401':
          description: Unauthorized
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/ProblemDetails'
        '403':
          description: Forbidden
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/ProblemDetails'
        '429':
          description: Rate limit exceeded
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/ProblemDetails'
  /contacts/schema:
    get:
      operationId: schemaContacts
      summary: Schema of contacts
      tags:
        - Resources
      security:
        -
          BearerAuth: []
      responses:
        '200':
          description: OK
        '401':
          description: Unauthorized
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/ProblemDetails'
        '403':
          description: Forbidden
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/ProblemDetails'
        '429':
          description: Rate limit exceeded
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/ProblemDetails'
  /contract_comments:
    get:
      operationId: listContractComments
      summary: List contract_comments
      tags:
        - Resources
      security:
        -
          BearerAuth: []
      parameters:
        -
          name: page
          in: query
          schema:
            type: integer
            default: 1
        -
          name: per_page
          in: query
          schema:
            type: integer
            default: 25
            maximum: 1000
        -
          name: sort
          in: query
          schema:
            type: string
          description: 'Comma-separated fields, prefix - for DESC'
        -
          name: fields
          in: query
          schema:
            type: string
          description: Comma-separated field names (sparse fieldset)
      responses:
        '200':
          description: OK
        '401':
          description: Unauthorized
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/ProblemDetails'
        '403':
          description: Forbidden
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/ProblemDetails'
        '429':
          description: Rate limit exceeded
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/ProblemDetails'
    post:
      operationId: createContractComments
      summary: Create contract_comments
      tags:
        - Resources
      security:
        -
          BearerAuth: []
      requestBody:
        required: true
        content:
          application/json:
            schema:
              type: object
              properties:
                content:
                  type: string
                contract_id:
                  type: integer
                staffid:
                  type: integer
              required:
                - contract_id
                - staffid
      responses:
        '201':
          description: Created
        '401':
          description: Unauthorized
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/ProblemDetails'
        '403':
          description: Forbidden
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/ProblemDetails'
        '429':
          description: Rate limit exceeded
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/ProblemDetails'
  /contract_comments/{id}:
    get:
      operationId: getContractCommentsById
      summary: Get contract_comments by ID
      tags:
        - Resources
      security:
        -
          BearerAuth: []
      parameters:
        -
          name: id
          in: path
          required: true
          schema:
            type: integer
      responses:
        '200':
          description: OK
        '401':
          description: Unauthorized
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/ProblemDetails'
        '403':
          description: Forbidden
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/ProblemDetails'
        '429':
          description: Rate limit exceeded
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/ProblemDetails'
    put:
      operationId: updateContractComments
      summary: Update contract_comments
      tags:
        - Resources
      security:
        -
          BearerAuth: []
      parameters:
        -
          name: id
          in: path
          required: true
          schema:
            type: integer
      requestBody:
        required: true
        content:
          application/json:
            schema:
              type: object
              properties:
                content:
                  type: string
                contract_id:
                  type: integer
                staffid:
                  type: integer
              additionalProperties: true
      responses:
        '200':
          description: OK
        '401':
          description: Unauthorized
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/ProblemDetails'
        '403':
          description: Forbidden
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/ProblemDetails'
        '429':
          description: Rate limit exceeded
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/ProblemDetails'
    delete:
      operationId: deleteContractComments
      summary: Delete contract_comments
      tags:
        - Resources
      security:
        -
          BearerAuth: []
      parameters:
        -
          name: id
          in: path
          required: true
          schema:
            type: integer
      responses:
        '200':
          description: Deleted
        '401':
          description: Unauthorized
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/ProblemDetails'
        '403':
          description: Forbidden
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/ProblemDetails'
        '429':
          description: Rate limit exceeded
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/ProblemDetails'
  /contract_comments/schema:
    get:
      operationId: schemaContractComments
      summary: Schema of contract_comments
      tags:
        - Resources
      security:
        -
          BearerAuth: []
      responses:
        '200':
          description: OK
        '401':
          description: Unauthorized
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/ProblemDetails'
        '403':
          description: Forbidden
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/ProblemDetails'
        '429':
          description: Rate limit exceeded
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/ProblemDetails'
  /contract_renewals:
    get:
      operationId: listContractRenewals
      summary: List contract_renewals
      tags:
        - Resources
      security:
        -
          BearerAuth: []
      parameters:
        -
          name: page
          in: query
          schema:
            type: integer
            default: 1
        -
          name: per_page
          in: query
          schema:
            type: integer
            default: 25
            maximum: 1000
        -
          name: sort
          in: query
          schema:
            type: string
          description: 'Comma-separated fields, prefix - for DESC'
        -
          name: fields
          in: query
          schema:
            type: string
          description: Comma-separated field names (sparse fieldset)
      responses:
        '200':
          description: OK
        '401':
          description: Unauthorized
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/ProblemDetails'
        '403':
          description: Forbidden
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/ProblemDetails'
        '429':
          description: Rate limit exceeded
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/ProblemDetails'
    post:
      operationId: createContractRenewals
      summary: Create contract_renewals
      tags:
        - Resources
      security:
        -
          BearerAuth: []
      requestBody:
        required: true
        content:
          application/json:
            schema:
              type: object
              properties:
                contractid:
                  type: integer
                old_start_date:
                  type: string
                  format: date-time
                  example: '2026-04-01 09:15:29'
                new_start_date:
                  type: string
                  format: date-time
                  example: '2026-04-01 09:15:29'
                old_end_date:
                  type: string
                  format: date-time
                  example: '2026-04-01 09:15:29'
                new_end_date:
                  type: string
                  format: date-time
                  example: '2026-04-01 09:15:29'
                old_value:
                  type: number
                new_value:
                  type: number
                date_renewed:
                  type: string
                  format: date-time
                  example: '2026-04-01 09:15:29'
                renewed_by:
                  type: string
                renewed_by_staff_id:
                  type: integer
                is_on_old_expiry_notified:
                  type: integer
              required:
                - contractid
                - old_start_date
                - new_start_date
                - date_renewed
                - renewed_by
      responses:
        '201':
          description: Created
        '401':
          description: Unauthorized
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/ProblemDetails'
        '403':
          description: Forbidden
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/ProblemDetails'
        '429':
          description: Rate limit exceeded
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/ProblemDetails'
  /contract_renewals/{id}:
    get:
      operationId: getContractRenewalsById
      summary: Get contract_renewals by ID
      tags:
        - Resources
      security:
        -
          BearerAuth: []
      parameters:
        -
          name: id
          in: path
          required: true
          schema:
            type: integer
      responses:
        '200':
          description: OK
        '401':
          description: Unauthorized
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/ProblemDetails'
        '403':
          description: Forbidden
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/ProblemDetails'
        '429':
          description: Rate limit exceeded
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/ProblemDetails'
    put:
      operationId: updateContractRenewals
      summary: Update contract_renewals
      tags:
        - Resources
      security:
        -
          BearerAuth: []
      parameters:
        -
          name: id
          in: path
          required: true
          schema:
            type: integer
      requestBody:
        required: true
        content:
          application/json:
            schema:
              type: object
              properties:
                contractid:
                  type: integer
                old_start_date:
                  type: string
                  format: date-time
                  example: '2026-04-01 09:15:29'
                new_start_date:
                  type: string
                  format: date-time
                  example: '2026-04-01 09:15:29'
                old_end_date:
                  type: string
                  format: date-time
                  example: '2026-04-01 09:15:29'
                new_end_date:
                  type: string
                  format: date-time
                  example: '2026-04-01 09:15:29'
                old_value:
                  type: number
                new_value:
                  type: number
                date_renewed:
                  type: string
                  format: date-time
                  example: '2026-04-01 09:15:29'
                renewed_by:
                  type: string
                renewed_by_staff_id:
                  type: integer
                is_on_old_expiry_notified:
                  type: integer
              additionalProperties: true
      responses:
        '200':
          description: OK
        '401':
          description: Unauthorized
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/ProblemDetails'
        '403':
          description: Forbidden
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/ProblemDetails'
        '429':
          description: Rate limit exceeded
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/ProblemDetails'
    delete:
      operationId: deleteContractRenewals
      summary: Delete contract_renewals
      tags:
        - Resources
      security:
        -
          BearerAuth: []
      parameters:
        -
          name: id
          in: path
          required: true
          schema:
            type: integer
      responses:
        '200':
          description: Deleted
        '401':
          description: Unauthorized
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/ProblemDetails'
        '403':
          description: Forbidden
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/ProblemDetails'
        '429':
          description: Rate limit exceeded
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/ProblemDetails'
  /contract_renewals/schema:
    get:
      operationId: schemaContractRenewals
      summary: Schema of contract_renewals
      tags:
        - Resources
      security:
        -
          BearerAuth: []
      responses:
        '200':
          description: OK
        '401':
          description: Unauthorized
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/ProblemDetails'
        '403':
          description: Forbidden
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/ProblemDetails'
        '429':
          description: Rate limit exceeded
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/ProblemDetails'
  /contracts:
    get:
      operationId: listContracts
      summary: List contracts
      tags:
        - Resources
      security:
        -
          BearerAuth: []
      parameters:
        -
          name: page
          in: query
          schema:
            type: integer
            default: 1
        -
          name: per_page
          in: query
          schema:
            type: integer
            default: 25
            maximum: 1000
        -
          name: sort
          in: query
          schema:
            type: string
          description: 'Comma-separated fields, prefix - for DESC'
        -
          name: fields
          in: query
          schema:
            type: string
          description: Comma-separated field names (sparse fieldset)
      responses:
        '200':
          description: OK
        '401':
          description: Unauthorized
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/ProblemDetails'
        '403':
          description: Forbidden
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/ProblemDetails'
        '429':
          description: Rate limit exceeded
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/ProblemDetails'
    post:
      operationId: createContracts
      summary: Create contracts
      tags:
        - Resources
      security:
        -
          BearerAuth: []
      requestBody:
        required: true
        content:
          application/json:
            schema:
              type: object
              properties:
                content:
                  type: string
                description:
                  type: string
                subject:
                  type: string
                client:
                  type: integer
                datestart:
                  type: string
                  format: date-time
                  example: '2026-04-01 09:15:30'
                dateend:
                  type: string
                  format: date-time
                  example: '2026-04-01 09:15:30'
                contract_type:
                  type: integer
                project_id:
                  type: integer
                isexpirynotified:
                  type: integer
                contract_value:
                  type: number
                trash:
                  type: integer
                not_visible_to_client:
                  type: integer
                signed:
                  type: integer
                signature:
                  type: string
                marked_as_signed:
                  type: integer
                acceptance_firstname:
                  type: string
                acceptance_lastname:
                  type: string
                acceptance_email:
                  type: string
                acceptance_date:
                  type: string
                  format: date-time
                  example: '2026-04-01 09:15:30'
                acceptance_ip:
                  type: string
                short_link:
                  type: string
                last_sent_at:
                  type: string
                  format: date-time
                  example: '2026-04-01 09:15:30'
                contacts_sent_to:
                  type: string
                last_sign_reminder_at:
                  type: string
                  format: date-time
                  example: '2026-04-01 09:15:30'
              required:
                - client
      responses:
        '201':
          description: Created
        '401':
          description: Unauthorized
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/ProblemDetails'
        '403':
          description: Forbidden
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/ProblemDetails'
        '429':
          description: Rate limit exceeded
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/ProblemDetails'
  /contracts/{id}:
    get:
      operationId: getContractsById
      summary: Get contracts by ID
      tags:
        - Resources
      security:
        -
          BearerAuth: []
      parameters:
        -
          name: id
          in: path
          required: true
          schema:
            type: integer
      responses:
        '200':
          description: OK
        '401':
          description: Unauthorized
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/ProblemDetails'
        '403':
          description: Forbidden
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/ProblemDetails'
        '429':
          description: Rate limit exceeded
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/ProblemDetails'
    put:
      operationId: updateContracts
      summary: Update contracts
      tags:
        - Resources
      security:
        -
          BearerAuth: []
      parameters:
        -
          name: id
          in: path
          required: true
          schema:
            type: integer
      requestBody:
        required: true
        content:
          application/json:
            schema:
              type: object
              properties:
                content:
                  type: string
                description:
                  type: string
                subject:
                  type: string
                client:
                  type: integer
                datestart:
                  type: string
                  format: date-time
                  example: '2026-04-01 09:15:30'
                dateend:
                  type: string
                  format: date-time
                  example: '2026-04-01 09:15:30'
                contract_type:
                  type: integer
                project_id:
                  type: integer
                isexpirynotified:
                  type: integer
                contract_value:
                  type: number
                trash:
                  type: integer
                not_visible_to_client:
                  type: integer
                signed:
                  type: integer
                signature:
                  type: string
                marked_as_signed:
                  type: integer
                acceptance_firstname:
                  type: string
                acceptance_lastname:
                  type: string
                acceptance_email:
                  type: string
                acceptance_date:
                  type: string
                  format: date-time
                  example: '2026-04-01 09:15:30'
                acceptance_ip:
                  type: string
                short_link:
                  type: string
                last_sent_at:
                  type: string
                  format: date-time
                  example: '2026-04-01 09:15:30'
                contacts_sent_to:
                  type: string
                last_sign_reminder_at:
                  type: string
                  format: date-time
                  example: '2026-04-01 09:15:30'
              additionalProperties: true
      responses:
        '200':
          description: OK
        '401':
          description: Unauthorized
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/ProblemDetails'
        '403':
          description: Forbidden
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/ProblemDetails'
        '429':
          description: Rate limit exceeded
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/ProblemDetails'
    delete:
      operationId: deleteContracts
      summary: Delete contracts
      tags:
        - Resources
      security:
        -
          BearerAuth: []
      parameters:
        -
          name: id
          in: path
          required: true
          schema:
            type: integer
      responses:
        '200':
          description: Deleted
        '401':
          description: Unauthorized
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/ProblemDetails'
        '403':
          description: Forbidden
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/ProblemDetails'
        '429':
          description: Rate limit exceeded
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/ProblemDetails'
  /contracts/schema:
    get:
      operationId: schemaContracts
      summary: Schema of contracts
      tags:
        - Resources
      security:
        -
          BearerAuth: []
      responses:
        '200':
          description: OK
        '401':
          description: Unauthorized
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/ProblemDetails'
        '403':
          description: Forbidden
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/ProblemDetails'
        '429':
          description: Rate limit exceeded
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/ProblemDetails'
  /contracts_types:
    get:
      operationId: listContractsTypes
      summary: List contracts_types
      tags:
        - Resources
      security:
        -
          BearerAuth: []
      parameters:
        -
          name: page
          in: query
          schema:
            type: integer
            default: 1
        -
          name: per_page
          in: query
          schema:
            type: integer
            default: 25
            maximum: 1000
        -
          name: sort
          in: query
          schema:
            type: string
          description: 'Comma-separated fields, prefix - for DESC'
        -
          name: fields
          in: query
          schema:
            type: string
          description: Comma-separated field names (sparse fieldset)
      responses:
        '200':
          description: OK
        '401':
          description: Unauthorized
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/ProblemDetails'
        '403':
          description: Forbidden
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/ProblemDetails'
        '429':
          description: Rate limit exceeded
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/ProblemDetails'
    post:
      operationId: createContractsTypes
      summary: Create contracts_types
      tags:
        - Resources
      security:
        -
          BearerAuth: []
      requestBody:
        required: true
        content:
          application/json:
            schema:
              type: object
              properties:
                name:
                  type: string
              required:
                - name
      responses:
        '201':
          description: Created
        '401':
          description: Unauthorized
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/ProblemDetails'
        '403':
          description: Forbidden
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/ProblemDetails'
        '429':
          description: Rate limit exceeded
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/ProblemDetails'
  /contracts_types/{id}:
    get:
      operationId: getContractsTypesById
      summary: Get contracts_types by ID
      tags:
        - Resources
      security:
        -
          BearerAuth: []
      parameters:
        -
          name: id
          in: path
          required: true
          schema:
            type: integer
      responses:
        '200':
          description: OK
        '401':
          description: Unauthorized
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/ProblemDetails'
        '403':
          description: Forbidden
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/ProblemDetails'
        '429':
          description: Rate limit exceeded
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/ProblemDetails'
    put:
      operationId: updateContractsTypes
      summary: Update contracts_types
      tags:
        - Resources
      security:
        -
          BearerAuth: []
      parameters:
        -
          name: id
          in: path
          required: true
          schema:
            type: integer
      requestBody:
        required: true
        content:
          application/json:
            schema:
              type: object
              properties:
                name:
                  type: string
              additionalProperties: true
      responses:
        '200':
          description: OK
        '401':
          description: Unauthorized
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/ProblemDetails'
        '403':
          description: Forbidden
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/ProblemDetails'
        '429':
          description: Rate limit exceeded
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/ProblemDetails'
    delete:
      operationId: deleteContractsTypes
      summary: Delete contracts_types
      tags:
        - Resources
      security:
        -
          BearerAuth: []
      parameters:
        -
          name: id
          in: path
          required: true
          schema:
            type: integer
      responses:
        '200':
          description: Deleted
        '401':
          description: Unauthorized
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/ProblemDetails'
        '403':
          description: Forbidden
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/ProblemDetails'
        '429':
          description: Rate limit exceeded
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/ProblemDetails'
  /contracts_types/schema:
    get:
      operationId: schemaContractsTypes
      summary: Schema of contracts_types
      tags:
        - Resources
      security:
        -
          BearerAuth: []
      responses:
        '200':
          description: OK
        '401':
          description: Unauthorized
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/ProblemDetails'
        '403':
          description: Forbidden
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/ProblemDetails'
        '429':
          description: Rate limit exceeded
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/ProblemDetails'
  /countries:
    get:
      operationId: listCountries
      summary: List countries
      tags:
        - Resources
      security:
        -
          BearerAuth: []
      parameters:
        -
          name: page
          in: query
          schema:
            type: integer
            default: 1
        -
          name: per_page
          in: query
          schema:
            type: integer
            default: 25
            maximum: 1000
        -
          name: sort
          in: query
          schema:
            type: string
          description: 'Comma-separated fields, prefix - for DESC'
        -
          name: fields
          in: query
          schema:
            type: string
          description: Comma-separated field names (sparse fieldset)
      responses:
        '200':
          description: OK
        '401':
          description: Unauthorized
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/ProblemDetails'
        '403':
          description: Forbidden
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/ProblemDetails'
        '429':
          description: Rate limit exceeded
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/ProblemDetails'
    post:
      operationId: createCountries
      summary: Create countries
      tags:
        - Resources
      security:
        -
          BearerAuth: []
      requestBody:
        required: true
        content:
          application/json:
            schema:
              type: object
              properties:
                iso2:
                  type: string
                short_name:
                  type: string
                long_name:
                  type: string
                iso3:
                  type: string
                numcode:
                  type: string
                un_member:
                  type: string
                calling_code:
                  type: string
                cctld:
                  type: string
      responses:
        '201':
          description: Created
        '401':
          description: Unauthorized
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/ProblemDetails'
        '403':
          description: Forbidden
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/ProblemDetails'
        '429':
          description: Rate limit exceeded
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/ProblemDetails'
  /countries/{id}:
    get:
      operationId: getCountriesById
      summary: Get countries by ID
      tags:
        - Resources
      security:
        -
          BearerAuth: []
      parameters:
        -
          name: id
          in: path
          required: true
          schema:
            type: integer
      responses:
        '200':
          description: OK
        '401':
          description: Unauthorized
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/ProblemDetails'
        '403':
          description: Forbidden
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/ProblemDetails'
        '429':
          description: Rate limit exceeded
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/ProblemDetails'
    put:
      operationId: updateCountries
      summary: Update countries
      tags:
        - Resources
      security:
        -
          BearerAuth: []
      parameters:
        -
          name: id
          in: path
          required: true
          schema:
            type: integer
      requestBody:
        required: true
        content:
          application/json:
            schema:
              type: object
              properties:
                iso2:
                  type: string
                short_name:
                  type: string
                long_name:
                  type: string
                iso3:
                  type: string
                numcode:
                  type: string
                un_member:
                  type: string
                calling_code:
                  type: string
                cctld:
                  type: string
              additionalProperties: true
      responses:
        '200':
          description: OK
        '401':
          description: Unauthorized
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/ProblemDetails'
        '403':
          description: Forbidden
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/ProblemDetails'
        '429':
          description: Rate limit exceeded
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/ProblemDetails'
    delete:
      operationId: deleteCountries
      summary: Delete countries
      tags:
        - Resources
      security:
        -
          BearerAuth: []
      parameters:
        -
          name: id
          in: path
          required: true
          schema:
            type: integer
      responses:
        '200':
          description: Deleted
        '401':
          description: Unauthorized
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/ProblemDetails'
        '403':
          description: Forbidden
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/ProblemDetails'
        '429':
          description: Rate limit exceeded
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/ProblemDetails'
  /countries/schema:
    get:
      operationId: schemaCountries
      summary: Schema of countries
      tags:
        - Resources
      security:
        -
          BearerAuth: []
      responses:
        '200':
          description: OK
        '401':
          description: Unauthorized
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/ProblemDetails'
        '403':
          description: Forbidden
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/ProblemDetails'
        '429':
          description: Rate limit exceeded
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/ProblemDetails'
  /credit_notes:
    get:
      operationId: listCreditNotes
      summary: List credit_notes
      tags:
        - Resources
      security:
        -
          BearerAuth: []
      parameters:
        -
          name: page
          in: query
          schema:
            type: integer
            default: 1
        -
          name: per_page
          in: query
          schema:
            type: integer
            default: 25
            maximum: 1000
        -
          name: sort
          in: query
          schema:
            type: string
          description: 'Comma-separated fields, prefix - for DESC'
        -
          name: fields
          in: query
          schema:
            type: string
          description: Comma-separated field names (sparse fieldset)
      responses:
        '200':
          description: OK
        '401':
          description: Unauthorized
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/ProblemDetails'
        '403':
          description: Forbidden
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/ProblemDetails'
        '429':
          description: Rate limit exceeded
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/ProblemDetails'
    post:
      operationId: createCreditNotes
      summary: Create credit_notes
      tags:
        - Resources
      security:
        -
          BearerAuth: []
      requestBody:
        required: true
        content:
          application/json:
            schema:
              type: object
              properties:
                clientid:
                  type: integer
                deleted_customer_name:
                  type: string
                number:
                  type: integer
                prefix:
                  type: string
                number_format:
                  type: integer
                formatted_number:
                  type: string
                date:
                  type: string
                  format: date-time
                  example: '2026-04-01 09:15:30'
                adminnote:
                  type: string
                terms:
                  type: string
                clientnote:
                  type: string
                currency:
                  type: integer
                subtotal:
                  type: number
                total_tax:
                  type: number
                total:
                  type: number
                adjustment:
                  type: number
                status:
                  type: integer
                project_id:
                  type: integer
                discount_percent:
                  type: number
                discount_total:
                  type: number
                discount_type:
                  type: string
                billing_street:
                  type: string
                billing_city:
                  type: string
                billing_state:
                  type: string
                billing_zip:
                  type: string
                billing_country:
                  type: integer
                shipping_street:
                  type: string
                shipping_city:
                  type: string
                shipping_state:
                  type: string
                shipping_zip:
                  type: string
                shipping_country:
                  type: integer
                include_shipping:
                  type: integer
                show_shipping_on_credit_note:
                  type: integer
                show_quantity_as:
                  type: integer
                reference_no:
                  type: string
              required:
                - clientid
                - number
                - date
                - currency
                - subtotal
                - total
                - discount_type
                - include_shipping
      responses:
        '201':
          description: Created
        '401':
          description: Unauthorized
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/ProblemDetails'
        '403':
          description: Forbidden
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/ProblemDetails'
        '429':
          description: Rate limit exceeded
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/ProblemDetails'
  /credit_notes/{id}:
    get:
      operationId: getCreditNotesById
      summary: Get credit_notes by ID
      tags:
        - Resources
      security:
        -
          BearerAuth: []
      parameters:
        -
          name: id
          in: path
          required: true
          schema:
            type: integer
      responses:
        '200':
          description: OK
        '401':
          description: Unauthorized
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/ProblemDetails'
        '403':
          description: Forbidden
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/ProblemDetails'
        '429':
          description: Rate limit exceeded
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/ProblemDetails'
    put:
      operationId: updateCreditNotes
      summary: Update credit_notes
      tags:
        - Resources
      security:
        -
          BearerAuth: []
      parameters:
        -
          name: id
          in: path
          required: true
          schema:
            type: integer
      requestBody:
        required: true
        content:
          application/json:
            schema:
              type: object
              properties:
                clientid:
                  type: integer
                deleted_customer_name:
                  type: string
                number:
                  type: integer
                prefix:
                  type: string
                number_format:
                  type: integer
                formatted_number:
                  type: string
                date:
                  type: string
                  format: date-time
                  example: '2026-04-01 09:15:30'
                adminnote:
                  type: string
                terms:
                  type: string
                clientnote:
                  type: string
                currency:
                  type: integer
                subtotal:
                  type: number
                total_tax:
                  type: number
                total:
                  type: number
                adjustment:
                  type: number
                status:
                  type: integer
                project_id:
                  type: integer
                discount_percent:
                  type: number
                discount_total:
                  type: number
                discount_type:
                  type: string
                billing_street:
                  type: string
                billing_city:
                  type: string
                billing_state:
                  type: string
                billing_zip:
                  type: string
                billing_country:
                  type: integer
                shipping_street:
                  type: string
                shipping_city:
                  type: string
                shipping_state:
                  type: string
                shipping_zip:
                  type: string
                shipping_country:
                  type: integer
                include_shipping:
                  type: integer
                show_shipping_on_credit_note:
                  type: integer
                show_quantity_as:
                  type: integer
                reference_no:
                  type: string
              additionalProperties: true
      responses:
        '200':
          description: OK
        '401':
          description: Unauthorized
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/ProblemDetails'
        '403':
          description: Forbidden
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/ProblemDetails'
        '429':
          description: Rate limit exceeded
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/ProblemDetails'
    delete:
      operationId: deleteCreditNotes
      summary: Delete credit_notes
      tags:
        - Resources
      security:
        -
          BearerAuth: []
      parameters:
        -
          name: id
          in: path
          required: true
          schema:
            type: integer
      responses:
        '200':
          description: Deleted
        '401':
          description: Unauthorized
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/ProblemDetails'
        '403':
          description: Forbidden
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/ProblemDetails'
        '429':
          description: Rate limit exceeded
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/ProblemDetails'
  /credit_notes/schema:
    get:
      operationId: schemaCreditNotes
      summary: Schema of credit_notes
      tags:
        - Resources
      security:
        -
          BearerAuth: []
      responses:
        '200':
          description: OK
        '401':
          description: Unauthorized
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/ProblemDetails'
        '403':
          description: Forbidden
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/ProblemDetails'
        '429':
          description: Rate limit exceeded
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/ProblemDetails'
  /creditnote_refunds:
    get:
      operationId: listCreditnoteRefunds
      summary: List creditnote_refunds
      tags:
        - Resources
      security:
        -
          BearerAuth: []
      parameters:
        -
          name: page
          in: query
          schema:
            type: integer
            default: 1
        -
          name: per_page
          in: query
          schema:
            type: integer
            default: 25
            maximum: 1000
        -
          name: sort
          in: query
          schema:
            type: string
          description: 'Comma-separated fields, prefix - for DESC'
        -
          name: fields
          in: query
          schema:
            type: string
          description: Comma-separated field names (sparse fieldset)
      responses:
        '200':
          description: OK
        '401':
          description: Unauthorized
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/ProblemDetails'
        '403':
          description: Forbidden
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/ProblemDetails'
        '429':
          description: Rate limit exceeded
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/ProblemDetails'
    post:
      operationId: createCreditnoteRefunds
      summary: Create creditnote_refunds
      tags:
        - Resources
      security:
        -
          BearerAuth: []
      requestBody:
        required: true
        content:
          application/json:
            schema:
              type: object
              properties:
                credit_note_id:
                  type: integer
                staff_id:
                  type: integer
                refunded_on:
                  type: string
                  format: date-time
                  example: '2026-04-01 09:15:30'
                payment_mode:
                  type: string
                note:
                  type: string
                amount:
                  type: number
              required:
                - credit_note_id
                - staff_id
                - refunded_on
                - payment_mode
                - amount
      responses:
        '201':
          description: Created
        '401':
          description: Unauthorized
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/ProblemDetails'
        '403':
          description: Forbidden
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/ProblemDetails'
        '429':
          description: Rate limit exceeded
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/ProblemDetails'
  /creditnote_refunds/{id}:
    get:
      operationId: getCreditnoteRefundsById
      summary: Get creditnote_refunds by ID
      tags:
        - Resources
      security:
        -
          BearerAuth: []
      parameters:
        -
          name: id
          in: path
          required: true
          schema:
            type: integer
      responses:
        '200':
          description: OK
        '401':
          description: Unauthorized
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/ProblemDetails'
        '403':
          description: Forbidden
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/ProblemDetails'
        '429':
          description: Rate limit exceeded
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/ProblemDetails'
    put:
      operationId: updateCreditnoteRefunds
      summary: Update creditnote_refunds
      tags:
        - Resources
      security:
        -
          BearerAuth: []
      parameters:
        -
          name: id
          in: path
          required: true
          schema:
            type: integer
      requestBody:
        required: true
        content:
          application/json:
            schema:
              type: object
              properties:
                credit_note_id:
                  type: integer
                staff_id:
                  type: integer
                refunded_on:
                  type: string
                  format: date-time
                  example: '2026-04-01 09:15:30'
                payment_mode:
                  type: string
                note:
                  type: string
                amount:
                  type: number
              additionalProperties: true
      responses:
        '200':
          description: OK
        '401':
          description: Unauthorized
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/ProblemDetails'
        '403':
          description: Forbidden
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/ProblemDetails'
        '429':
          description: Rate limit exceeded
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/ProblemDetails'
    delete:
      operationId: deleteCreditnoteRefunds
      summary: Delete creditnote_refunds
      tags:
        - Resources
      security:
        -
          BearerAuth: []
      parameters:
        -
          name: id
          in: path
          required: true
          schema:
            type: integer
      responses:
        '200':
          description: Deleted
        '401':
          description: Unauthorized
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/ProblemDetails'
        '403':
          description: Forbidden
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/ProblemDetails'
        '429':
          description: Rate limit exceeded
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/ProblemDetails'
  /creditnote_refunds/schema:
    get:
      operationId: schemaCreditnoteRefunds
      summary: Schema of creditnote_refunds
      tags:
        - Resources
      security:
        -
          BearerAuth: []
      responses:
        '200':
          description: OK
        '401':
          description: Unauthorized
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/ProblemDetails'
        '403':
          description: Forbidden
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/ProblemDetails'
        '429':
          description: Rate limit exceeded
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/ProblemDetails'
  /credits:
    get:
      operationId: listCredits
      summary: List credits
      tags:
        - Resources
      security:
        -
          BearerAuth: []
      parameters:
        -
          name: page
          in: query
          schema:
            type: integer
            default: 1
        -
          name: per_page
          in: query
          schema:
            type: integer
            default: 25
            maximum: 1000
        -
          name: sort
          in: query
          schema:
            type: string
          description: 'Comma-separated fields, prefix - for DESC'
        -
          name: fields
          in: query
          schema:
            type: string
          description: Comma-separated field names (sparse fieldset)
      responses:
        '200':
          description: OK
        '401':
          description: Unauthorized
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/ProblemDetails'
        '403':
          description: Forbidden
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/ProblemDetails'
        '429':
          description: Rate limit exceeded
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/ProblemDetails'
    post:
      operationId: createCredits
      summary: Create credits
      tags:
        - Resources
      security:
        -
          BearerAuth: []
      requestBody:
        required: true
        content:
          application/json:
            schema:
              type: object
              properties:
                invoice_id:
                  type: integer
                credit_id:
                  type: integer
                staff_id:
                  type: integer
                date:
                  type: string
                  format: date-time
                  example: '2026-04-01 09:15:30'
                date_applied:
                  type: string
                  format: date-time
                  example: '2026-04-01 09:15:30'
                amount:
                  type: number
              required:
                - invoice_id
                - credit_id
                - staff_id
                - date
                - date_applied
                - amount
      responses:
        '201':
          description: Created
        '401':
          description: Unauthorized
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/ProblemDetails'
        '403':
          description: Forbidden
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/ProblemDetails'
        '429':
          description: Rate limit exceeded
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/ProblemDetails'
  /credits/{id}:
    get:
      operationId: getCreditsById
      summary: Get credits by ID
      tags:
        - Resources
      security:
        -
          BearerAuth: []
      parameters:
        -
          name: id
          in: path
          required: true
          schema:
            type: integer
      responses:
        '200':
          description: OK
        '401':
          description: Unauthorized
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/ProblemDetails'
        '403':
          description: Forbidden
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/ProblemDetails'
        '429':
          description: Rate limit exceeded
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/ProblemDetails'
    put:
      operationId: updateCredits
      summary: Update credits
      tags:
        - Resources
      security:
        -
          BearerAuth: []
      parameters:
        -
          name: id
          in: path
          required: true
          schema:
            type: integer
      requestBody:
        required: true
        content:
          application/json:
            schema:
              type: object
              properties:
                invoice_id:
                  type: integer
                credit_id:
                  type: integer
                staff_id:
                  type: integer
                date:
                  type: string
                  format: date-time
                  example: '2026-04-01 09:15:30'
                date_applied:
                  type: string
                  format: date-time
                  example: '2026-04-01 09:15:30'
                amount:
                  type: number
              additionalProperties: true
      responses:
        '200':
          description: OK
        '401':
          description: Unauthorized
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/ProblemDetails'
        '403':
          description: Forbidden
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/ProblemDetails'
        '429':
          description: Rate limit exceeded
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/ProblemDetails'
    delete:
      operationId: deleteCredits
      summary: Delete credits
      tags:
        - Resources
      security:
        -
          BearerAuth: []
      parameters:
        -
          name: id
          in: path
          required: true
          schema:
            type: integer
      responses:
        '200':
          description: Deleted
        '401':
          description: Unauthorized
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/ProblemDetails'
        '403':
          description: Forbidden
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/ProblemDetails'
        '429':
          description: Rate limit exceeded
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/ProblemDetails'
  /credits/schema:
    get:
      operationId: schemaCredits
      summary: Schema of credits
      tags:
        - Resources
      security:
        -
          BearerAuth: []
      responses:
        '200':
          description: OK
        '401':
          description: Unauthorized
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/ProblemDetails'
        '403':
          description: Forbidden
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/ProblemDetails'
        '429':
          description: Rate limit exceeded
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/ProblemDetails'
  /currencies:
    get:
      operationId: listCurrencies
      summary: List currencies
      tags:
        - Resources
      security:
        -
          BearerAuth: []
      parameters:
        -
          name: page
          in: query
          schema:
            type: integer
            default: 1
        -
          name: per_page
          in: query
          schema:
            type: integer
            default: 25
            maximum: 1000
        -
          name: sort
          in: query
          schema:
            type: string
          description: 'Comma-separated fields, prefix - for DESC'
        -
          name: fields
          in: query
          schema:
            type: string
          description: Comma-separated field names (sparse fieldset)
      responses:
        '200':
          description: OK
        '401':
          description: Unauthorized
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/ProblemDetails'
        '403':
          description: Forbidden
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/ProblemDetails'
        '429':
          description: Rate limit exceeded
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/ProblemDetails'
    post:
      operationId: createCurrencies
      summary: Create currencies
      tags:
        - Resources
      security:
        -
          BearerAuth: []
      requestBody:
        required: true
        content:
          application/json:
            schema:
              type: object
              properties:
                symbol:
                  type: string
                name:
                  type: string
                decimal_separator:
                  type: string
                thousand_separator:
                  type: string
                placement:
                  type: string
                isdefault:
                  type: integer
              required:
                - symbol
                - name
      responses:
        '201':
          description: Created
        '401':
          description: Unauthorized
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/ProblemDetails'
        '403':
          description: Forbidden
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/ProblemDetails'
        '429':
          description: Rate limit exceeded
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/ProblemDetails'
  /currencies/{id}:
    get:
      operationId: getCurrenciesById
      summary: Get currencies by ID
      tags:
        - Resources
      security:
        -
          BearerAuth: []
      parameters:
        -
          name: id
          in: path
          required: true
          schema:
            type: integer
      responses:
        '200':
          description: OK
        '401':
          description: Unauthorized
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/ProblemDetails'
        '403':
          description: Forbidden
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/ProblemDetails'
        '429':
          description: Rate limit exceeded
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/ProblemDetails'
    put:
      operationId: updateCurrencies
      summary: Update currencies
      tags:
        - Resources
      security:
        -
          BearerAuth: []
      parameters:
        -
          name: id
          in: path
          required: true
          schema:
            type: integer
      requestBody:
        required: true
        content:
          application/json:
            schema:
              type: object
              properties:
                symbol:
                  type: string
                name:
                  type: string
                decimal_separator:
                  type: string
                thousand_separator:
                  type: string
                placement:
                  type: string
                isdefault:
                  type: integer
              additionalProperties: true
      responses:
        '200':
          description: OK
        '401':
          description: Unauthorized
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/ProblemDetails'
        '403':
          description: Forbidden
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/ProblemDetails'
        '429':
          description: Rate limit exceeded
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/ProblemDetails'
    delete:
      operationId: deleteCurrencies
      summary: Delete currencies
      tags:
        - Resources
      security:
        -
          BearerAuth: []
      parameters:
        -
          name: id
          in: path
          required: true
          schema:
            type: integer
      responses:
        '200':
          description: Deleted
        '401':
          description: Unauthorized
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/ProblemDetails'
        '403':
          description: Forbidden
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/ProblemDetails'
        '429':
          description: Rate limit exceeded
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/ProblemDetails'
  /currencies/schema:
    get:
      operationId: schemaCurrencies
      summary: Schema of currencies
      tags:
        - Resources
      security:
        -
          BearerAuth: []
      responses:
        '200':
          description: OK
        '401':
          description: Unauthorized
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/ProblemDetails'
        '403':
          description: Forbidden
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/ProblemDetails'
        '429':
          description: Rate limit exceeded
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/ProblemDetails'
  /customfieldsvalues:
    get:
      operationId: listCustomfieldsvalues
      summary: List customfieldsvalues
      tags:
        - Resources
      security:
        -
          BearerAuth: []
      parameters:
        -
          name: page
          in: query
          schema:
            type: integer
            default: 1
        -
          name: per_page
          in: query
          schema:
            type: integer
            default: 25
            maximum: 1000
        -
          name: sort
          in: query
          schema:
            type: string
          description: 'Comma-separated fields, prefix - for DESC'
        -
          name: fields
          in: query
          schema:
            type: string
          description: Comma-separated field names (sparse fieldset)
      responses:
        '200':
          description: OK
        '401':
          description: Unauthorized
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/ProblemDetails'
        '403':
          description: Forbidden
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/ProblemDetails'
        '429':
          description: Rate limit exceeded
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/ProblemDetails'
    post:
      operationId: createCustomfieldsvalues
      summary: Create customfieldsvalues
      tags:
        - Resources
      security:
        -
          BearerAuth: []
      requestBody:
        required: true
        content:
          application/json:
            schema:
              type: object
              properties:
                relid:
                  type: integer
                fieldid:
                  type: integer
                fieldto:
                  type: string
                value:
                  type: string
              required:
                - relid
                - fieldid
                - fieldto
                - value
      responses:
        '201':
          description: Created
        '401':
          description: Unauthorized
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/ProblemDetails'
        '403':
          description: Forbidden
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/ProblemDetails'
        '429':
          description: Rate limit exceeded
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/ProblemDetails'
  /customfieldsvalues/{id}:
    get:
      operationId: getCustomfieldsvaluesById
      summary: Get customfieldsvalues by ID
      tags:
        - Resources
      security:
        -
          BearerAuth: []
      parameters:
        -
          name: id
          in: path
          required: true
          schema:
            type: integer
      responses:
        '200':
          description: OK
        '401':
          description: Unauthorized
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/ProblemDetails'
        '403':
          description: Forbidden
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/ProblemDetails'
        '429':
          description: Rate limit exceeded
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/ProblemDetails'
    put:
      operationId: updateCustomfieldsvalues
      summary: Update customfieldsvalues
      tags:
        - Resources
      security:
        -
          BearerAuth: []
      parameters:
        -
          name: id
          in: path
          required: true
          schema:
            type: integer
      requestBody:
        required: true
        content:
          application/json:
            schema:
              type: object
              properties:
                relid:
                  type: integer
                fieldid:
                  type: integer
                fieldto:
                  type: string
                value:
                  type: string
              additionalProperties: true
      responses:
        '200':
          description: OK
        '401':
          description: Unauthorized
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/ProblemDetails'
        '403':
          description: Forbidden
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/ProblemDetails'
        '429':
          description: Rate limit exceeded
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/ProblemDetails'
    delete:
      operationId: deleteCustomfieldsvalues
      summary: Delete customfieldsvalues
      tags:
        - Resources
      security:
        -
          BearerAuth: []
      parameters:
        -
          name: id
          in: path
          required: true
          schema:
            type: integer
      responses:
        '200':
          description: Deleted
        '401':
          description: Unauthorized
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/ProblemDetails'
        '403':
          description: Forbidden
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/ProblemDetails'
        '429':
          description: Rate limit exceeded
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/ProblemDetails'
  /customfieldsvalues/schema:
    get:
      operationId: schemaCustomfieldsvalues
      summary: Schema of customfieldsvalues
      tags:
        - Resources
      security:
        -
          BearerAuth: []
      responses:
        '200':
          description: OK
        '401':
          description: Unauthorized
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/ProblemDetails'
        '403':
          description: Forbidden
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/ProblemDetails'
        '429':
          description: Rate limit exceeded
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/ProblemDetails'
  /customfields:
    get:
      operationId: listCustomfields
      summary: List customfields
      tags:
        - Resources
      security:
        -
          BearerAuth: []
      parameters:
        -
          name: page
          in: query
          schema:
            type: integer
            default: 1
        -
          name: per_page
          in: query
          schema:
            type: integer
            default: 25
            maximum: 1000
        -
          name: sort
          in: query
          schema:
            type: string
          description: 'Comma-separated fields, prefix - for DESC'
        -
          name: fields
          in: query
          schema:
            type: string
          description: Comma-separated field names (sparse fieldset)
      responses:
        '200':
          description: OK
        '401':
          description: Unauthorized
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/ProblemDetails'
        '403':
          description: Forbidden
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/ProblemDetails'
        '429':
          description: Rate limit exceeded
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/ProblemDetails'
    post:
      operationId: createCustomfields
      summary: Create customfields
      tags:
        - Resources
      security:
        -
          BearerAuth: []
      requestBody:
        required: true
        content:
          application/json:
            schema:
              type: object
              properties:
                fieldto:
                  type: string
                name:
                  type: string
                slug:
                  type: string
                required:
                  type: integer
                type:
                  type: string
                options:
                  type: string
                display_inline:
                  type: integer
                field_order:
                  type: integer
                active:
                  type: integer
                show_on_pdf:
                  type: integer
                show_on_ticket_form:
                  type: integer
                only_admin:
                  type: integer
                show_on_table:
                  type: integer
                show_on_client_portal:
                  type: integer
                disalow_client_to_edit:
                  type: integer
                bs_column:
                  type: integer
                default_value:
                  type: string
              required:
                - name
                - slug
                - type
      responses:
        '201':
          description: Created
        '401':
          description: Unauthorized
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/ProblemDetails'
        '403':
          description: Forbidden
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/ProblemDetails'
        '429':
          description: Rate limit exceeded
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/ProblemDetails'
  /customfields/{id}:
    get:
      operationId: getCustomfieldsById
      summary: Get customfields by ID
      tags:
        - Resources
      security:
        -
          BearerAuth: []
      parameters:
        -
          name: id
          in: path
          required: true
          schema:
            type: integer
      responses:
        '200':
          description: OK
        '401':
          description: Unauthorized
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/ProblemDetails'
        '403':
          description: Forbidden
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/ProblemDetails'
        '429':
          description: Rate limit exceeded
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/ProblemDetails'
    put:
      operationId: updateCustomfields
      summary: Update customfields
      tags:
        - Resources
      security:
        -
          BearerAuth: []
      parameters:
        -
          name: id
          in: path
          required: true
          schema:
            type: integer
      requestBody:
        required: true
        content:
          application/json:
            schema:
              type: object
              properties:
                fieldto:
                  type: string
                name:
                  type: string
                slug:
                  type: string
                required:
                  type: integer
                type:
                  type: string
                options:
                  type: string
                display_inline:
                  type: integer
                field_order:
                  type: integer
                active:
                  type: integer
                show_on_pdf:
                  type: integer
                show_on_ticket_form:
                  type: integer
                only_admin:
                  type: integer
                show_on_table:
                  type: integer
                show_on_client_portal:
                  type: integer
                disalow_client_to_edit:
                  type: integer
                bs_column:
                  type: integer
                default_value:
                  type: string
              additionalProperties: true
      responses:
        '200':
          description: OK
        '401':
          description: Unauthorized
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/ProblemDetails'
        '403':
          description: Forbidden
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/ProblemDetails'
        '429':
          description: Rate limit exceeded
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/ProblemDetails'
    delete:
      operationId: deleteCustomfields
      summary: Delete customfields
      tags:
        - Resources
      security:
        -
          BearerAuth: []
      parameters:
        -
          name: id
          in: path
          required: true
          schema:
            type: integer
      responses:
        '200':
          description: Deleted
        '401':
          description: Unauthorized
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/ProblemDetails'
        '403':
          description: Forbidden
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/ProblemDetails'
        '429':
          description: Rate limit exceeded
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/ProblemDetails'
  /customfields/schema:
    get:
      operationId: schemaCustomfields
      summary: Schema of customfields
      tags:
        - Resources
      security:
        -
          BearerAuth: []
      responses:
        '200':
          description: OK
        '401':
          description: Unauthorized
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/ProblemDetails'
        '403':
          description: Forbidden
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/ProblemDetails'
        '429':
          description: Rate limit exceeded
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/ProblemDetails'
  /customer_admins:
    get:
      operationId: listCustomerAdmins
      summary: List customer_admins
      tags:
        - Resources
      security:
        -
          BearerAuth: []
      parameters:
        -
          name: page
          in: query
          schema:
            type: integer
            default: 1
        -
          name: per_page
          in: query
          schema:
            type: integer
            default: 25
            maximum: 1000
        -
          name: sort
          in: query
          schema:
            type: string
          description: 'Comma-separated fields, prefix - for DESC'
        -
          name: fields
          in: query
          schema:
            type: string
          description: Comma-separated field names (sparse fieldset)
      responses:
        '200':
          description: OK
        '401':
          description: Unauthorized
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/ProblemDetails'
        '403':
          description: Forbidden
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/ProblemDetails'
        '429':
          description: Rate limit exceeded
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/ProblemDetails'
    post:
      operationId: createCustomerAdmins
      summary: Create customer_admins
      tags:
        - Resources
      security:
        -
          BearerAuth: []
      requestBody:
        required: true
        content:
          application/json:
            schema:
              type: object
              properties:
                staff_id:
                  type: integer
                customer_id:
                  type: integer
                date_assigned:
                  type: string
                  format: date-time
                  example: '2026-04-01 09:15:30'
              required:
                - staff_id
                - customer_id
                - date_assigned
      responses:
        '201':
          description: Created
        '401':
          description: Unauthorized
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/ProblemDetails'
        '403':
          description: Forbidden
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/ProblemDetails'
        '429':
          description: Rate limit exceeded
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/ProblemDetails'
  /customer_admins/{id}:
    get:
      operationId: getCustomerAdminsById
      summary: Get customer_admins by ID
      tags:
        - Resources
      security:
        -
          BearerAuth: []
      parameters:
        -
          name: id
          in: path
          required: true
          schema:
            type: integer
      responses:
        '200':
          description: OK
        '401':
          description: Unauthorized
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/ProblemDetails'
        '403':
          description: Forbidden
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/ProblemDetails'
        '429':
          description: Rate limit exceeded
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/ProblemDetails'
    put:
      operationId: updateCustomerAdmins
      summary: Update customer_admins
      tags:
        - Resources
      security:
        -
          BearerAuth: []
      parameters:
        -
          name: id
          in: path
          required: true
          schema:
            type: integer
      requestBody:
        required: true
        content:
          application/json:
            schema:
              type: object
              properties:
                staff_id:
                  type: integer
                customer_id:
                  type: integer
                date_assigned:
                  type: string
                  format: date-time
                  example: '2026-04-01 09:15:30'
              additionalProperties: true
      responses:
        '200':
          description: OK
        '401':
          description: Unauthorized
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/ProblemDetails'
        '403':
          description: Forbidden
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/ProblemDetails'
        '429':
          description: Rate limit exceeded
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/ProblemDetails'
    delete:
      operationId: deleteCustomerAdmins
      summary: Delete customer_admins
      tags:
        - Resources
      security:
        -
          BearerAuth: []
      parameters:
        -
          name: id
          in: path
          required: true
          schema:
            type: integer
      responses:
        '200':
          description: Deleted
        '401':
          description: Unauthorized
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/ProblemDetails'
        '403':
          description: Forbidden
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/ProblemDetails'
        '429':
          description: Rate limit exceeded
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/ProblemDetails'
  /customer_admins/schema:
    get:
      operationId: schemaCustomerAdmins
      summary: Schema of customer_admins
      tags:
        - Resources
      security:
        -
          BearerAuth: []
      responses:
        '200':
          description: OK
        '401':
          description: Unauthorized
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/ProblemDetails'
        '403':
          description: Forbidden
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/ProblemDetails'
        '429':
          description: Rate limit exceeded
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/ProblemDetails'
  /clients:
    get:
      operationId: listClients
      summary: List clients
      tags:
        - Resources
      security:
        -
          BearerAuth: []
      parameters:
        -
          name: page
          in: query
          schema:
            type: integer
            default: 1
        -
          name: per_page
          in: query
          schema:
            type: integer
            default: 25
            maximum: 1000
        -
          name: sort
          in: query
          schema:
            type: string
          description: 'Comma-separated fields, prefix - for DESC'
        -
          name: fields
          in: query
          schema:
            type: string
          description: Comma-separated field names (sparse fieldset)
      responses:
        '200':
          description: OK
        '401':
          description: Unauthorized
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/ProblemDetails'
        '403':
          description: Forbidden
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/ProblemDetails'
        '429':
          description: Rate limit exceeded
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/ProblemDetails'
    post:
      operationId: createClients
      summary: Create clients
      tags:
        - Resources
      security:
        -
          BearerAuth: []
      requestBody:
        required: true
        content:
          application/json:
            schema:
              type: object
              properties:
                company:
                  type: string
                vat:
                  type: string
                phonenumber:
                  type: string
                country:
                  type: integer
                city:
                  type: string
                zip:
                  type: string
                state:
                  type: string
                address:
                  type: string
                website:
                  type: string
                active:
                  type: integer
                leadid:
                  type: integer
                billing_street:
                  type: string
                billing_city:
                  type: string
                billing_state:
                  type: string
                billing_zip:
                  type: string
                billing_country:
                  type: integer
                shipping_street:
                  type: string
                shipping_city:
                  type: string
                shipping_state:
                  type: string
                shipping_zip:
                  type: string
                shipping_country:
                  type: integer
                longitude:
                  type: string
                latitude:
                  type: string
                default_language:
                  type: string
                default_currency:
                  type: integer
                show_primary_contact:
                  type: integer
                stripe_id:
                  type: string
                registration_confirmed:
                  type: integer
      responses:
        '201':
          description: Created
        '401':
          description: Unauthorized
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/ProblemDetails'
        '403':
          description: Forbidden
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/ProblemDetails'
        '429':
          description: Rate limit exceeded
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/ProblemDetails'
  /clients/{id}:
    get:
      operationId: getClientsById
      summary: Get clients by ID
      tags:
        - Resources
      security:
        -
          BearerAuth: []
      parameters:
        -
          name: id
          in: path
          required: true
          schema:
            type: integer
      responses:
        '200':
          description: OK
        '401':
          description: Unauthorized
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/ProblemDetails'
        '403':
          description: Forbidden
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/ProblemDetails'
        '429':
          description: Rate limit exceeded
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/ProblemDetails'
    put:
      operationId: updateClients
      summary: Update clients
      tags:
        - Resources
      security:
        -
          BearerAuth: []
      parameters:
        -
          name: id
          in: path
          required: true
          schema:
            type: integer
      requestBody:
        required: true
        content:
          application/json:
            schema:
              type: object
              properties:
                company:
                  type: string
                vat:
                  type: string
                phonenumber:
                  type: string
                country:
                  type: integer
                city:
                  type: string
                zip:
                  type: string
                state:
                  type: string
                address:
                  type: string
                website:
                  type: string
                active:
                  type: integer
                leadid:
                  type: integer
                billing_street:
                  type: string
                billing_city:
                  type: string
                billing_state:
                  type: string
                billing_zip:
                  type: string
                billing_country:
                  type: integer
                shipping_street:
                  type: string
                shipping_city:
                  type: string
                shipping_state:
                  type: string
                shipping_zip:
                  type: string
                shipping_country:
                  type: integer
                longitude:
                  type: string
                latitude:
                  type: string
                default_language:
                  type: string
                default_currency:
                  type: integer
                show_primary_contact:
                  type: integer
                stripe_id:
                  type: string
                registration_confirmed:
                  type: integer
              additionalProperties: true
      responses:
        '200':
          description: OK
        '401':
          description: Unauthorized
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/ProblemDetails'
        '403':
          description: Forbidden
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/ProblemDetails'
        '429':
          description: Rate limit exceeded
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/ProblemDetails'
    delete:
      operationId: deleteClients
      summary: Delete clients
      tags:
        - Resources
      security:
        -
          BearerAuth: []
      parameters:
        -
          name: id
          in: path
          required: true
          schema:
            type: integer
      responses:
        '200':
          description: Deleted
        '401':
          description: Unauthorized
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/ProblemDetails'
        '403':
          description: Forbidden
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/ProblemDetails'
        '429':
          description: Rate limit exceeded
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/ProblemDetails'
  /clients/schema:
    get:
      operationId: schemaClients
      summary: Schema of clients
      tags:
        - Resources
      security:
        -
          BearerAuth: []
      responses:
        '200':
          description: OK
        '401':
          description: Unauthorized
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/ProblemDetails'
        '403':
          description: Forbidden
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/ProblemDetails'
        '429':
          description: Rate limit exceeded
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/ProblemDetails'
  /customers_groups:
    get:
      operationId: listCustomersGroups
      summary: List customers_groups
      tags:
        - Resources
      security:
        -
          BearerAuth: []
      parameters:
        -
          name: page
          in: query
          schema:
            type: integer
            default: 1
        -
          name: per_page
          in: query
          schema:
            type: integer
            default: 25
            maximum: 1000
        -
          name: sort
          in: query
          schema:
            type: string
          description: 'Comma-separated fields, prefix - for DESC'
        -
          name: fields
          in: query
          schema:
            type: string
          description: Comma-separated field names (sparse fieldset)
      responses:
        '200':
          description: OK
        '401':
          description: Unauthorized
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/ProblemDetails'
        '403':
          description: Forbidden
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/ProblemDetails'
        '429':
          description: Rate limit exceeded
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/ProblemDetails'
    post:
      operationId: createCustomersGroups
      summary: Create customers_groups
      tags:
        - Resources
      security:
        -
          BearerAuth: []
      requestBody:
        required: true
        content:
          application/json:
            schema:
              type: object
              properties:
                name:
                  type: string
              required:
                - name
      responses:
        '201':
          description: Created
        '401':
          description: Unauthorized
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/ProblemDetails'
        '403':
          description: Forbidden
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/ProblemDetails'
        '429':
          description: Rate limit exceeded
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/ProblemDetails'
  /customers_groups/{id}:
    get:
      operationId: getCustomersGroupsById
      summary: Get customers_groups by ID
      tags:
        - Resources
      security:
        -
          BearerAuth: []
      parameters:
        -
          name: id
          in: path
          required: true
          schema:
            type: integer
      responses:
        '200':
          description: OK
        '401':
          description: Unauthorized
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/ProblemDetails'
        '403':
          description: Forbidden
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/ProblemDetails'
        '429':
          description: Rate limit exceeded
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/ProblemDetails'
    put:
      operationId: updateCustomersGroups
      summary: Update customers_groups
      tags:
        - Resources
      security:
        -
          BearerAuth: []
      parameters:
        -
          name: id
          in: path
          required: true
          schema:
            type: integer
      requestBody:
        required: true
        content:
          application/json:
            schema:
              type: object
              properties:
                name:
                  type: string
              additionalProperties: true
      responses:
        '200':
          description: OK
        '401':
          description: Unauthorized
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/ProblemDetails'
        '403':
          description: Forbidden
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/ProblemDetails'
        '429':
          description: Rate limit exceeded
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/ProblemDetails'
    delete:
      operationId: deleteCustomersGroups
      summary: Delete customers_groups
      tags:
        - Resources
      security:
        -
          BearerAuth: []
      parameters:
        -
          name: id
          in: path
          required: true
          schema:
            type: integer
      responses:
        '200':
          description: Deleted
        '401':
          description: Unauthorized
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/ProblemDetails'
        '403':
          description: Forbidden
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/ProblemDetails'
        '429':
          description: Rate limit exceeded
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/ProblemDetails'
  /customers_groups/schema:
    get:
      operationId: schemaCustomersGroups
      summary: Schema of customers_groups
      tags:
        - Resources
      security:
        -
          BearerAuth: []
      responses:
        '200':
          description: OK
        '401':
          description: Unauthorized
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/ProblemDetails'
        '403':
          description: Forbidden
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/ProblemDetails'
        '429':
          description: Rate limit exceeded
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/ProblemDetails'
  /data_builder_api_logs:
    get:
      operationId: listDataBuilderApiLogs
      summary: List data_builder_api_logs
      tags:
        - Resources
      security:
        -
          BearerAuth: []
      parameters:
        -
          name: page
          in: query
          schema:
            type: integer
            default: 1
        -
          name: per_page
          in: query
          schema:
            type: integer
            default: 25
            maximum: 1000
        -
          name: sort
          in: query
          schema:
            type: string
          description: 'Comma-separated fields, prefix - for DESC'
        -
          name: fields
          in: query
          schema:
            type: string
          description: Comma-separated field names (sparse fieldset)
      responses:
        '200':
          description: OK
        '401':
          description: Unauthorized
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/ProblemDetails'
        '403':
          description: Forbidden
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/ProblemDetails'
        '429':
          description: Rate limit exceeded
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/ProblemDetails'
    post:
      operationId: createDataBuilderApiLogs
      summary: Create data_builder_api_logs
      tags:
        - Resources
      security:
        -
          BearerAuth: []
      requestBody:
        required: true
        content:
          application/json:
            schema:
              type: object
              properties:
                token_id:
                  type: integer
                endpoint:
                  type: string
                method:
                  type: string
                query_params:
                  type: string
                status_code:
                  type: integer
                response_time_ms:
                  type: integer
                ip_address:
                  type: string
                user_agent:
                  type: string
                error_detail:
                  type: string
              required:
                - endpoint
                - method
                - ip_address
      responses:
        '201':
          description: Created
        '401':
          description: Unauthorized
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/ProblemDetails'
        '403':
          description: Forbidden
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/ProblemDetails'
        '429':
          description: Rate limit exceeded
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/ProblemDetails'
  /data_builder_api_logs/{id}:
    get:
      operationId: getDataBuilderApiLogsById
      summary: Get data_builder_api_logs by ID
      tags:
        - Resources
      security:
        -
          BearerAuth: []
      parameters:
        -
          name: id
          in: path
          required: true
          schema:
            type: integer
      responses:
        '200':
          description: OK
        '401':
          description: Unauthorized
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/ProblemDetails'
        '403':
          description: Forbidden
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/ProblemDetails'
        '429':
          description: Rate limit exceeded
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/ProblemDetails'
    put:
      operationId: updateDataBuilderApiLogs
      summary: Update data_builder_api_logs
      tags:
        - Resources
      security:
        -
          BearerAuth: []
      parameters:
        -
          name: id
          in: path
          required: true
          schema:
            type: integer
      requestBody:
        required: true
        content:
          application/json:
            schema:
              type: object
              properties:
                token_id:
                  type: integer
                endpoint:
                  type: string
                method:
                  type: string
                query_params:
                  type: string
                status_code:
                  type: integer
                response_time_ms:
                  type: integer
                ip_address:
                  type: string
                user_agent:
                  type: string
                error_detail:
                  type: string
              additionalProperties: true
      responses:
        '200':
          description: OK
        '401':
          description: Unauthorized
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/ProblemDetails'
        '403':
          description: Forbidden
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/ProblemDetails'
        '429':
          description: Rate limit exceeded
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/ProblemDetails'
    delete:
      operationId: deleteDataBuilderApiLogs
      summary: Delete data_builder_api_logs
      tags:
        - Resources
      security:
        -
          BearerAuth: []
      parameters:
        -
          name: id
          in: path
          required: true
          schema:
            type: integer
      responses:
        '200':
          description: Deleted
        '401':
          description: Unauthorized
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/ProblemDetails'
        '403':
          description: Forbidden
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/ProblemDetails'
        '429':
          description: Rate limit exceeded
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/ProblemDetails'
  /data_builder_api_logs/schema:
    get:
      operationId: schemaDataBuilderApiLogs
      summary: Schema of data_builder_api_logs
      tags:
        - Resources
      security:
        -
          BearerAuth: []
      responses:
        '200':
          description: OK
        '401':
          description: Unauthorized
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/ProblemDetails'
        '403':
          description: Forbidden
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/ProblemDetails'
        '429':
          description: Rate limit exceeded
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/ProblemDetails'
  /data_builder_api_rate:
    get:
      operationId: listDataBuilderApiRate
      summary: List data_builder_api_rate
      tags:
        - Resources
      security:
        -
          BearerAuth: []
      parameters:
        -
          name: page
          in: query
          schema:
            type: integer
            default: 1
        -
          name: per_page
          in: query
          schema:
            type: integer
            default: 25
            maximum: 1000
        -
          name: sort
          in: query
          schema:
            type: string
          description: 'Comma-separated fields, prefix - for DESC'
        -
          name: fields
          in: query
          schema:
            type: string
          description: Comma-separated field names (sparse fieldset)
      responses:
        '200':
          description: OK
        '401':
          description: Unauthorized
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/ProblemDetails'
        '403':
          description: Forbidden
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/ProblemDetails'
        '429':
          description: Rate limit exceeded
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/ProblemDetails'
    post:
      operationId: createDataBuilderApiRate
      summary: Create data_builder_api_rate
      tags:
        - Resources
      security:
        -
          BearerAuth: []
      requestBody:
        required: true
        content:
          application/json:
            schema:
              type: object
              properties:
                identifier:
                  type: string
                endpoint_group:
                  type: string
                window_start:
                  type: integer
                request_count:
                  type: integer
              required:
                - identifier
                - window_start
      responses:
        '201':
          description: Created
        '401':
          description: Unauthorized
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/ProblemDetails'
        '403':
          description: Forbidden
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/ProblemDetails'
        '429':
          description: Rate limit exceeded
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/ProblemDetails'
  /data_builder_api_rate/{id}:
    get:
      operationId: getDataBuilderApiRateById
      summary: Get data_builder_api_rate by ID
      tags:
        - Resources
      security:
        -
          BearerAuth: []
      parameters:
        -
          name: id
          in: path
          required: true
          schema:
            type: integer
      responses:
        '200':
          description: OK
        '401':
          description: Unauthorized
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/ProblemDetails'
        '403':
          description: Forbidden
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/ProblemDetails'
        '429':
          description: Rate limit exceeded
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/ProblemDetails'
    put:
      operationId: updateDataBuilderApiRate
      summary: Update data_builder_api_rate
      tags:
        - Resources
      security:
        -
          BearerAuth: []
      parameters:
        -
          name: id
          in: path
          required: true
          schema:
            type: integer
      requestBody:
        required: true
        content:
          application/json:
            schema:
              type: object
              properties:
                identifier:
                  type: string
                endpoint_group:
                  type: string
                window_start:
                  type: integer
                request_count:
                  type: integer
              additionalProperties: true
      responses:
        '200':
          description: OK
        '401':
          description: Unauthorized
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/ProblemDetails'
        '403':
          description: Forbidden
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/ProblemDetails'
        '429':
          description: Rate limit exceeded
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/ProblemDetails'
    delete:
      operationId: deleteDataBuilderApiRate
      summary: Delete data_builder_api_rate
      tags:
        - Resources
      security:
        -
          BearerAuth: []
      parameters:
        -
          name: id
          in: path
          required: true
          schema:
            type: integer
      responses:
        '200':
          description: Deleted
        '401':
          description: Unauthorized
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/ProblemDetails'
        '403':
          description: Forbidden
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/ProblemDetails'
        '429':
          description: Rate limit exceeded
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/ProblemDetails'
  /data_builder_api_rate/schema:
    get:
      operationId: schemaDataBuilderApiRate
      summary: Schema of data_builder_api_rate
      tags:
        - Resources
      security:
        -
          BearerAuth: []
      responses:
        '200':
          description: OK
        '401':
          description: Unauthorized
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/ProblemDetails'
        '403':
          description: Forbidden
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/ProblemDetails'
        '429':
          description: Rate limit exceeded
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/ProblemDetails'
  /demobuilder_backups:
    get:
      operationId: listDemobuilderBackups
      summary: List demobuilder_backups
      tags:
        - Resources
      security:
        -
          BearerAuth: []
      parameters:
        -
          name: page
          in: query
          schema:
            type: integer
            default: 1
        -
          name: per_page
          in: query
          schema:
            type: integer
            default: 25
            maximum: 1000
        -
          name: sort
          in: query
          schema:
            type: string
          description: 'Comma-separated fields, prefix - for DESC'
        -
          name: fields
          in: query
          schema:
            type: string
          description: Comma-separated field names (sparse fieldset)
      responses:
        '200':
          description: OK
        '401':
          description: Unauthorized
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/ProblemDetails'
        '403':
          description: Forbidden
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/ProblemDetails'
        '429':
          description: Rate limit exceeded
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/ProblemDetails'
    post:
      operationId: createDemobuilderBackups
      summary: Create demobuilder_backups
      tags:
        - Resources
      security:
        -
          BearerAuth: []
      requestBody:
        required: true
        content:
          application/json:
            schema:
              type: object
              properties:
                name:
                  type: string
                filename:
                  type: string
                size:
                  type: integer
                database_size:
                  type: integer
                directories_info:
                  type: string
                excluded_tables_info:
                  type: string
                notes:
                  type: string
                created_by:
                  type: integer
              required:
                - name
                - filename
                - size
                - created_by
      responses:
        '201':
          description: Created
        '401':
          description: Unauthorized
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/ProblemDetails'
        '403':
          description: Forbidden
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/ProblemDetails'
        '429':
          description: Rate limit exceeded
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/ProblemDetails'
  /demobuilder_backups/{id}:
    get:
      operationId: getDemobuilderBackupsById
      summary: Get demobuilder_backups by ID
      tags:
        - Resources
      security:
        -
          BearerAuth: []
      parameters:
        -
          name: id
          in: path
          required: true
          schema:
            type: integer
      responses:
        '200':
          description: OK
        '401':
          description: Unauthorized
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/ProblemDetails'
        '403':
          description: Forbidden
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/ProblemDetails'
        '429':
          description: Rate limit exceeded
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/ProblemDetails'
    put:
      operationId: updateDemobuilderBackups
      summary: Update demobuilder_backups
      tags:
        - Resources
      security:
        -
          BearerAuth: []
      parameters:
        -
          name: id
          in: path
          required: true
          schema:
            type: integer
      requestBody:
        required: true
        content:
          application/json:
            schema:
              type: object
              properties:
                name:
                  type: string
                filename:
                  type: string
                size:
                  type: integer
                database_size:
                  type: integer
                directories_info:
                  type: string
                excluded_tables_info:
                  type: string
                notes:
                  type: string
                created_by:
                  type: integer
              additionalProperties: true
      responses:
        '200':
          description: OK
        '401':
          description: Unauthorized
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/ProblemDetails'
        '403':
          description: Forbidden
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/ProblemDetails'
        '429':
          description: Rate limit exceeded
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/ProblemDetails'
    delete:
      operationId: deleteDemobuilderBackups
      summary: Delete demobuilder_backups
      tags:
        - Resources
      security:
        -
          BearerAuth: []
      parameters:
        -
          name: id
          in: path
          required: true
          schema:
            type: integer
      responses:
        '200':
          description: Deleted
        '401':
          description: Unauthorized
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/ProblemDetails'
        '403':
          description: Forbidden
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/ProblemDetails'
        '429':
          description: Rate limit exceeded
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/ProblemDetails'
  /demobuilder_backups/schema:
    get:
      operationId: schemaDemobuilderBackups
      summary: Schema of demobuilder_backups
      tags:
        - Resources
      security:
        -
          BearerAuth: []
      responses:
        '200':
          description: OK
        '401':
          description: Unauthorized
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/ProblemDetails'
        '403':
          description: Forbidden
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/ProblemDetails'
        '429':
          description: Rate limit exceeded
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/ProblemDetails'
  /demobuilder_data_configs:
    get:
      operationId: listDemobuilderDataConfigs
      summary: List demobuilder_data_configs
      tags:
        - Resources
      security:
        -
          BearerAuth: []
      parameters:
        -
          name: page
          in: query
          schema:
            type: integer
            default: 1
        -
          name: per_page
          in: query
          schema:
            type: integer
            default: 25
            maximum: 1000
        -
          name: sort
          in: query
          schema:
            type: string
          description: 'Comma-separated fields, prefix - for DESC'
        -
          name: fields
          in: query
          schema:
            type: string
          description: Comma-separated field names (sparse fieldset)
      responses:
        '200':
          description: OK
        '401':
          description: Unauthorized
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/ProblemDetails'
        '403':
          description: Forbidden
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/ProblemDetails'
        '429':
          description: Rate limit exceeded
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/ProblemDetails'
    post:
      operationId: createDemobuilderDataConfigs
      summary: Create demobuilder_data_configs
      tags:
        - Resources
      security:
        -
          BearerAuth: []
      requestBody:
        required: true
        content:
          application/json:
            schema:
              type: object
              properties:
                entity_type:
                  type: string
                config_data:
                  type: string
                is_active:
                  type: integer
                created_by:
                  type: integer
                updated_by:
                  type: integer
                  format: date-time
                  example: '2026-04-01 09:15:30'
              required:
                - entity_type
                - created_by
                - updated_by
      responses:
        '201':
          description: Created
        '401':
          description: Unauthorized
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/ProblemDetails'
        '403':
          description: Forbidden
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/ProblemDetails'
        '429':
          description: Rate limit exceeded
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/ProblemDetails'
  /demobuilder_data_configs/{id}:
    get:
      operationId: getDemobuilderDataConfigsById
      summary: Get demobuilder_data_configs by ID
      tags:
        - Resources
      security:
        -
          BearerAuth: []
      parameters:
        -
          name: id
          in: path
          required: true
          schema:
            type: integer
      responses:
        '200':
          description: OK
        '401':
          description: Unauthorized
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/ProblemDetails'
        '403':
          description: Forbidden
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/ProblemDetails'
        '429':
          description: Rate limit exceeded
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/ProblemDetails'
    put:
      operationId: updateDemobuilderDataConfigs
      summary: Update demobuilder_data_configs
      tags:
        - Resources
      security:
        -
          BearerAuth: []
      parameters:
        -
          name: id
          in: path
          required: true
          schema:
            type: integer
      requestBody:
        required: true
        content:
          application/json:
            schema:
              type: object
              properties:
                entity_type:
                  type: string
                config_data:
                  type: string
                is_active:
                  type: integer
                created_by:
                  type: integer
                updated_by:
                  type: integer
                  format: date-time
                  example: '2026-04-01 09:15:30'
              additionalProperties: true
      responses:
        '200':
          description: OK
        '401':
          description: Unauthorized
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/ProblemDetails'
        '403':
          description: Forbidden
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/ProblemDetails'
        '429':
          description: Rate limit exceeded
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/ProblemDetails'
    delete:
      operationId: deleteDemobuilderDataConfigs
      summary: Delete demobuilder_data_configs
      tags:
        - Resources
      security:
        -
          BearerAuth: []
      parameters:
        -
          name: id
          in: path
          required: true
          schema:
            type: integer
      responses:
        '200':
          description: Deleted
        '401':
          description: Unauthorized
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/ProblemDetails'
        '403':
          description: Forbidden
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/ProblemDetails'
        '429':
          description: Rate limit exceeded
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/ProblemDetails'
  /demobuilder_data_configs/schema:
    get:
      operationId: schemaDemobuilderDataConfigs
      summary: Schema of demobuilder_data_configs
      tags:
        - Resources
      security:
        -
          BearerAuth: []
      responses:
        '200':
          description: OK
        '401':
          description: Unauthorized
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/ProblemDetails'
        '403':
          description: Forbidden
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/ProblemDetails'
        '429':
          description: Rate limit exceeded
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/ProblemDetails'
  /demobuilder_demo_accounts:
    get:
      operationId: listDemobuilderDemoAccounts
      summary: List demobuilder_demo_accounts
      tags:
        - Resources
      security:
        -
          BearerAuth: []
      parameters:
        -
          name: page
          in: query
          schema:
            type: integer
            default: 1
        -
          name: per_page
          in: query
          schema:
            type: integer
            default: 25
            maximum: 1000
        -
          name: sort
          in: query
          schema:
            type: string
          description: 'Comma-separated fields, prefix - for DESC'
        -
          name: fields
          in: query
          schema:
            type: string
          description: Comma-separated field names (sparse fieldset)
      responses:
        '200':
          description: OK
        '401':
          description: Unauthorized
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/ProblemDetails'
        '403':
          description: Forbidden
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/ProblemDetails'
        '429':
          description: Rate limit exceeded
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/ProblemDetails'
    post:
      operationId: createDemobuilderDemoAccounts
      summary: Create demobuilder_demo_accounts
      tags:
        - Resources
      security:
        -
          BearerAuth: []
      requestBody:
        required: true
        content:
          application/json:
            schema:
              type: object
              properties:
                user_id:
                  type: integer
                user_type:
                  type: string
                role_name:
                  type: string
                role:
                  type: string
                username:
                  type: string
                message:
                  type: string
                login:
                  type: string
                redirect_url:
                  type: string
                login_url:
                  type: string
                sort_order:
                  type: integer
                is_active:
                  type: integer
              required:
                - user_id
                - role_name
                - role
                - username
      responses:
        '201':
          description: Created
        '401':
          description: Unauthorized
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/ProblemDetails'
        '403':
          description: Forbidden
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/ProblemDetails'
        '429':
          description: Rate limit exceeded
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/ProblemDetails'
  /demobuilder_demo_accounts/{id}:
    get:
      operationId: getDemobuilderDemoAccountsById
      summary: Get demobuilder_demo_accounts by ID
      tags:
        - Resources
      security:
        -
          BearerAuth: []
      parameters:
        -
          name: id
          in: path
          required: true
          schema:
            type: integer
      responses:
        '200':
          description: OK
        '401':
          description: Unauthorized
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/ProblemDetails'
        '403':
          description: Forbidden
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/ProblemDetails'
        '429':
          description: Rate limit exceeded
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/ProblemDetails'
    put:
      operationId: updateDemobuilderDemoAccounts
      summary: Update demobuilder_demo_accounts
      tags:
        - Resources
      security:
        -
          BearerAuth: []
      parameters:
        -
          name: id
          in: path
          required: true
          schema:
            type: integer
      requestBody:
        required: true
        content:
          application/json:
            schema:
              type: object
              properties:
                user_id:
                  type: integer
                user_type:
                  type: string
                role_name:
                  type: string
                role:
                  type: string
                username:
                  type: string
                message:
                  type: string
                login:
                  type: string
                redirect_url:
                  type: string
                login_url:
                  type: string
                sort_order:
                  type: integer
                is_active:
                  type: integer
              additionalProperties: true
      responses:
        '200':
          description: OK
        '401':
          description: Unauthorized
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/ProblemDetails'
        '403':
          description: Forbidden
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/ProblemDetails'
        '429':
          description: Rate limit exceeded
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/ProblemDetails'
    delete:
      operationId: deleteDemobuilderDemoAccounts
      summary: Delete demobuilder_demo_accounts
      tags:
        - Resources
      security:
        -
          BearerAuth: []
      parameters:
        -
          name: id
          in: path
          required: true
          schema:
            type: integer
      responses:
        '200':
          description: Deleted
        '401':
          description: Unauthorized
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/ProblemDetails'
        '403':
          description: Forbidden
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/ProblemDetails'
        '429':
          description: Rate limit exceeded
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/ProblemDetails'
  /demobuilder_demo_accounts/schema:
    get:
      operationId: schemaDemobuilderDemoAccounts
      summary: Schema of demobuilder_demo_accounts
      tags:
        - Resources
      security:
        -
          BearerAuth: []
      responses:
        '200':
          description: OK
        '401':
          description: Unauthorized
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/ProblemDetails'
        '403':
          description: Forbidden
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/ProblemDetails'
        '429':
          description: Rate limit exceeded
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/ProblemDetails'
  /departments:
    get:
      operationId: listDepartments
      summary: List departments
      tags:
        - Resources
      security:
        -
          BearerAuth: []
      parameters:
        -
          name: page
          in: query
          schema:
            type: integer
            default: 1
        -
          name: per_page
          in: query
          schema:
            type: integer
            default: 25
            maximum: 1000
        -
          name: sort
          in: query
          schema:
            type: string
          description: 'Comma-separated fields, prefix - for DESC'
        -
          name: fields
          in: query
          schema:
            type: string
          description: Comma-separated field names (sparse fieldset)
      responses:
        '200':
          description: OK
        '401':
          description: Unauthorized
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/ProblemDetails'
        '403':
          description: Forbidden
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/ProblemDetails'
        '429':
          description: Rate limit exceeded
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/ProblemDetails'
    post:
      operationId: createDepartments
      summary: Create departments
      tags:
        - Resources
      security:
        -
          BearerAuth: []
      requestBody:
        required: true
        content:
          application/json:
            schema:
              type: object
              properties:
                name:
                  type: string
                imap_username:
                  type: string
                email:
                  type: string
                email_from_header:
                  type: integer
                host:
                  type: string
                encryption:
                  type: string
                folder:
                  type: string
                delete_after_import:
                  type: integer
                calendar_id:
                  type: string
                hidefromclient:
                  type: integer
              required:
                - name
      responses:
        '201':
          description: Created
        '401':
          description: Unauthorized
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/ProblemDetails'
        '403':
          description: Forbidden
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/ProblemDetails'
        '429':
          description: Rate limit exceeded
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/ProblemDetails'
  /departments/{id}:
    get:
      operationId: getDepartmentsById
      summary: Get departments by ID
      tags:
        - Resources
      security:
        -
          BearerAuth: []
      parameters:
        -
          name: id
          in: path
          required: true
          schema:
            type: integer
      responses:
        '200':
          description: OK
        '401':
          description: Unauthorized
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/ProblemDetails'
        '403':
          description: Forbidden
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/ProblemDetails'
        '429':
          description: Rate limit exceeded
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/ProblemDetails'
    put:
      operationId: updateDepartments
      summary: Update departments
      tags:
        - Resources
      security:
        -
          BearerAuth: []
      parameters:
        -
          name: id
          in: path
          required: true
          schema:
            type: integer
      requestBody:
        required: true
        content:
          application/json:
            schema:
              type: object
              properties:
                name:
                  type: string
                imap_username:
                  type: string
                email:
                  type: string
                email_from_header:
                  type: integer
                host:
                  type: string
                encryption:
                  type: string
                folder:
                  type: string
                delete_after_import:
                  type: integer
                calendar_id:
                  type: string
                hidefromclient:
                  type: integer
              additionalProperties: true
      responses:
        '200':
          description: OK
        '401':
          description: Unauthorized
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/ProblemDetails'
        '403':
          description: Forbidden
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/ProblemDetails'
        '429':
          description: Rate limit exceeded
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/ProblemDetails'
    delete:
      operationId: deleteDepartments
      summary: Delete departments
      tags:
        - Resources
      security:
        -
          BearerAuth: []
      parameters:
        -
          name: id
          in: path
          required: true
          schema:
            type: integer
      responses:
        '200':
          description: Deleted
        '401':
          description: Unauthorized
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/ProblemDetails'
        '403':
          description: Forbidden
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/ProblemDetails'
        '429':
          description: Rate limit exceeded
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/ProblemDetails'
  /departments/schema:
    get:
      operationId: schemaDepartments
      summary: Schema of departments
      tags:
        - Resources
      security:
        -
          BearerAuth: []
      responses:
        '200':
          description: OK
        '401':
          description: Unauthorized
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/ProblemDetails'
        '403':
          description: Forbidden
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/ProblemDetails'
        '429':
          description: Rate limit exceeded
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/ProblemDetails'
  /dismissed_announcements:
    get:
      operationId: listDismissedAnnouncements
      summary: List dismissed_announcements
      tags:
        - Resources
      security:
        -
          BearerAuth: []
      parameters:
        -
          name: page
          in: query
          schema:
            type: integer
            default: 1
        -
          name: per_page
          in: query
          schema:
            type: integer
            default: 25
            maximum: 1000
        -
          name: sort
          in: query
          schema:
            type: string
          description: 'Comma-separated fields, prefix - for DESC'
        -
          name: fields
          in: query
          schema:
            type: string
          description: Comma-separated field names (sparse fieldset)
      responses:
        '200':
          description: OK
        '401':
          description: Unauthorized
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/ProblemDetails'
        '403':
          description: Forbidden
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/ProblemDetails'
        '429':
          description: Rate limit exceeded
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/ProblemDetails'
    post:
      operationId: createDismissedAnnouncements
      summary: Create dismissed_announcements
      tags:
        - Resources
      security:
        -
          BearerAuth: []
      requestBody:
        required: true
        content:
          application/json:
            schema:
              type: object
              properties:
                announcementid:
                  type: integer
                staff:
                  type: integer
                userid:
                  type: integer
              required:
                - announcementid
                - staff
                - userid
      responses:
        '201':
          description: Created
        '401':
          description: Unauthorized
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/ProblemDetails'
        '403':
          description: Forbidden
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/ProblemDetails'
        '429':
          description: Rate limit exceeded
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/ProblemDetails'
  /dismissed_announcements/{id}:
    get:
      operationId: getDismissedAnnouncementsById
      summary: Get dismissed_announcements by ID
      tags:
        - Resources
      security:
        -
          BearerAuth: []
      parameters:
        -
          name: id
          in: path
          required: true
          schema:
            type: integer
      responses:
        '200':
          description: OK
        '401':
          description: Unauthorized
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/ProblemDetails'
        '403':
          description: Forbidden
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/ProblemDetails'
        '429':
          description: Rate limit exceeded
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/ProblemDetails'
    put:
      operationId: updateDismissedAnnouncements
      summary: Update dismissed_announcements
      tags:
        - Resources
      security:
        -
          BearerAuth: []
      parameters:
        -
          name: id
          in: path
          required: true
          schema:
            type: integer
      requestBody:
        required: true
        content:
          application/json:
            schema:
              type: object
              properties:
                announcementid:
                  type: integer
                staff:
                  type: integer
                userid:
                  type: integer
              additionalProperties: true
      responses:
        '200':
          description: OK
        '401':
          description: Unauthorized
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/ProblemDetails'
        '403':
          description: Forbidden
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/ProblemDetails'
        '429':
          description: Rate limit exceeded
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/ProblemDetails'
    delete:
      operationId: deleteDismissedAnnouncements
      summary: Delete dismissed_announcements
      tags:
        - Resources
      security:
        -
          BearerAuth: []
      parameters:
        -
          name: id
          in: path
          required: true
          schema:
            type: integer
      responses:
        '200':
          description: Deleted
        '401':
          description: Unauthorized
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/ProblemDetails'
        '403':
          description: Forbidden
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/ProblemDetails'
        '429':
          description: Rate limit exceeded
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/ProblemDetails'
  /dismissed_announcements/schema:
    get:
      operationId: schemaDismissedAnnouncements
      summary: Schema of dismissed_announcements
      tags:
        - Resources
      security:
        -
          BearerAuth: []
      responses:
        '200':
          description: OK
        '401':
          description: Unauthorized
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/ProblemDetails'
        '403':
          description: Forbidden
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/ProblemDetails'
        '429':
          description: Rate limit exceeded
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/ProblemDetails'
  /emailtemplates:
    get:
      operationId: listEmailtemplates
      summary: List emailtemplates
      tags:
        - Resources
      security:
        -
          BearerAuth: []
      parameters:
        -
          name: page
          in: query
          schema:
            type: integer
            default: 1
        -
          name: per_page
          in: query
          schema:
            type: integer
            default: 25
            maximum: 1000
        -
          name: sort
          in: query
          schema:
            type: string
          description: 'Comma-separated fields, prefix - for DESC'
        -
          name: fields
          in: query
          schema:
            type: string
          description: Comma-separated field names (sparse fieldset)
      responses:
        '200':
          description: OK
        '401':
          description: Unauthorized
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/ProblemDetails'
        '403':
          description: Forbidden
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/ProblemDetails'
        '429':
          description: Rate limit exceeded
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/ProblemDetails'
    post:
      operationId: createEmailtemplates
      summary: Create emailtemplates
      tags:
        - Resources
      security:
        -
          BearerAuth: []
      requestBody:
        required: true
        content:
          application/json:
            schema:
              type: object
              properties:
                type:
                  type: string
                slug:
                  type: string
                language:
                  type: string
                name:
                  type: string
                subject:
                  type: string
                message:
                  type: string
                fromname:
                  type: string
                fromemail:
                  type: string
                plaintext:
                  type: integer
                active:
                  type: integer
                order:
                  type: integer
              required:
                - type
                - slug
                - name
                - subject
                - message
                - fromname
                - order
      responses:
        '201':
          description: Created
        '401':
          description: Unauthorized
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/ProblemDetails'
        '403':
          description: Forbidden
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/ProblemDetails'
        '429':
          description: Rate limit exceeded
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/ProblemDetails'
  /emailtemplates/{id}:
    get:
      operationId: getEmailtemplatesById
      summary: Get emailtemplates by ID
      tags:
        - Resources
      security:
        -
          BearerAuth: []
      parameters:
        -
          name: id
          in: path
          required: true
          schema:
            type: integer
      responses:
        '200':
          description: OK
        '401':
          description: Unauthorized
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/ProblemDetails'
        '403':
          description: Forbidden
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/ProblemDetails'
        '429':
          description: Rate limit exceeded
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/ProblemDetails'
    put:
      operationId: updateEmailtemplates
      summary: Update emailtemplates
      tags:
        - Resources
      security:
        -
          BearerAuth: []
      parameters:
        -
          name: id
          in: path
          required: true
          schema:
            type: integer
      requestBody:
        required: true
        content:
          application/json:
            schema:
              type: object
              properties:
                type:
                  type: string
                slug:
                  type: string
                language:
                  type: string
                name:
                  type: string
                subject:
                  type: string
                message:
                  type: string
                fromname:
                  type: string
                fromemail:
                  type: string
                plaintext:
                  type: integer
                active:
                  type: integer
                order:
                  type: integer
              additionalProperties: true
      responses:
        '200':
          description: OK
        '401':
          description: Unauthorized
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/ProblemDetails'
        '403':
          description: Forbidden
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/ProblemDetails'
        '429':
          description: Rate limit exceeded
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/ProblemDetails'
    delete:
      operationId: deleteEmailtemplates
      summary: Delete emailtemplates
      tags:
        - Resources
      security:
        -
          BearerAuth: []
      parameters:
        -
          name: id
          in: path
          required: true
          schema:
            type: integer
      responses:
        '200':
          description: Deleted
        '401':
          description: Unauthorized
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/ProblemDetails'
        '403':
          description: Forbidden
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/ProblemDetails'
        '429':
          description: Rate limit exceeded
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/ProblemDetails'
  /emailtemplates/schema:
    get:
      operationId: schemaEmailtemplates
      summary: Schema of emailtemplates
      tags:
        - Resources
      security:
        -
          BearerAuth: []
      responses:
        '200':
          description: OK
        '401':
          description: Unauthorized
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/ProblemDetails'
        '403':
          description: Forbidden
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/ProblemDetails'
        '429':
          description: Rate limit exceeded
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/ProblemDetails'
  /estimate_request_forms:
    get:
      operationId: listEstimateRequestForms
      summary: List estimate_request_forms
      tags:
        - Resources
      security:
        -
          BearerAuth: []
      parameters:
        -
          name: page
          in: query
          schema:
            type: integer
            default: 1
        -
          name: per_page
          in: query
          schema:
            type: integer
            default: 25
            maximum: 1000
        -
          name: sort
          in: query
          schema:
            type: string
          description: 'Comma-separated fields, prefix - for DESC'
        -
          name: fields
          in: query
          schema:
            type: string
          description: Comma-separated field names (sparse fieldset)
      responses:
        '200':
          description: OK
        '401':
          description: Unauthorized
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/ProblemDetails'
        '403':
          description: Forbidden
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/ProblemDetails'
        '429':
          description: Rate limit exceeded
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/ProblemDetails'
    post:
      operationId: createEstimateRequestForms
      summary: Create estimate_request_forms
      tags:
        - Resources
      security:
        -
          BearerAuth: []
      requestBody:
        required: true
        content:
          application/json:
            schema:
              type: object
              properties:
                form_key:
                  type: string
                type:
                  type: string
                name:
                  type: string
                form_data:
                  type: string
                recaptcha:
                  type: integer
                status:
                  type: integer
                submit_btn_name:
                  type: string
                submit_btn_bg_color:
                  type: string
                submit_btn_text_color:
                  type: string
                success_submit_msg:
                  type: string
                submit_action:
                  type: integer
                submit_redirect_url:
                  type: string
                language:
                  type: string
                notify_type:
                  type: string
                notify_ids:
                  type: string
                responsible:
                  type: integer
                notify_request_submitted:
                  type: integer
              required:
                - form_key
                - type
                - name
                - status
      responses:
        '201':
          description: Created
        '401':
          description: Unauthorized
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/ProblemDetails'
        '403':
          description: Forbidden
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/ProblemDetails'
        '429':
          description: Rate limit exceeded
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/ProblemDetails'
  /estimate_request_forms/{id}:
    get:
      operationId: getEstimateRequestFormsById
      summary: Get estimate_request_forms by ID
      tags:
        - Resources
      security:
        -
          BearerAuth: []
      parameters:
        -
          name: id
          in: path
          required: true
          schema:
            type: integer
      responses:
        '200':
          description: OK
        '401':
          description: Unauthorized
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/ProblemDetails'
        '403':
          description: Forbidden
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/ProblemDetails'
        '429':
          description: Rate limit exceeded
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/ProblemDetails'
    put:
      operationId: updateEstimateRequestForms
      summary: Update estimate_request_forms
      tags:
        - Resources
      security:
        -
          BearerAuth: []
      parameters:
        -
          name: id
          in: path
          required: true
          schema:
            type: integer
      requestBody:
        required: true
        content:
          application/json:
            schema:
              type: object
              properties:
                form_key:
                  type: string
                type:
                  type: string
                name:
                  type: string
                form_data:
                  type: string
                recaptcha:
                  type: integer
                status:
                  type: integer
                submit_btn_name:
                  type: string
                submit_btn_bg_color:
                  type: string
                submit_btn_text_color:
                  type: string
                success_submit_msg:
                  type: string
                submit_action:
                  type: integer
                submit_redirect_url:
                  type: string
                language:
                  type: string
                notify_type:
                  type: string
                notify_ids:
                  type: string
                responsible:
                  type: integer
                notify_request_submitted:
                  type: integer
              additionalProperties: true
      responses:
        '200':
          description: OK
        '401':
          description: Unauthorized
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/ProblemDetails'
        '403':
          description: Forbidden
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/ProblemDetails'
        '429':
          description: Rate limit exceeded
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/ProblemDetails'
    delete:
      operationId: deleteEstimateRequestForms
      summary: Delete estimate_request_forms
      tags:
        - Resources
      security:
        -
          BearerAuth: []
      parameters:
        -
          name: id
          in: path
          required: true
          schema:
            type: integer
      responses:
        '200':
          description: Deleted
        '401':
          description: Unauthorized
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/ProblemDetails'
        '403':
          description: Forbidden
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/ProblemDetails'
        '429':
          description: Rate limit exceeded
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/ProblemDetails'
  /estimate_request_forms/schema:
    get:
      operationId: schemaEstimateRequestForms
      summary: Schema of estimate_request_forms
      tags:
        - Resources
      security:
        -
          BearerAuth: []
      responses:
        '200':
          description: OK
        '401':
          description: Unauthorized
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/ProblemDetails'
        '403':
          description: Forbidden
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/ProblemDetails'
        '429':
          description: Rate limit exceeded
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/ProblemDetails'
  /estimate_request_status:
    get:
      operationId: listEstimateRequestStatus
      summary: List estimate_request_status
      tags:
        - Resources
      security:
        -
          BearerAuth: []
      parameters:
        -
          name: page
          in: query
          schema:
            type: integer
            default: 1
        -
          name: per_page
          in: query
          schema:
            type: integer
            default: 25
            maximum: 1000
        -
          name: sort
          in: query
          schema:
            type: string
          description: 'Comma-separated fields, prefix - for DESC'
        -
          name: fields
          in: query
          schema:
            type: string
          description: Comma-separated field names (sparse fieldset)
      responses:
        '200':
          description: OK
        '401':
          description: Unauthorized
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/ProblemDetails'
        '403':
          description: Forbidden
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/ProblemDetails'
        '429':
          description: Rate limit exceeded
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/ProblemDetails'
    post:
      operationId: createEstimateRequestStatus
      summary: Create estimate_request_status
      tags:
        - Resources
      security:
        -
          BearerAuth: []
      requestBody:
        required: true
        content:
          application/json:
            schema:
              type: object
              properties:
                name:
                  type: string
                statusorder:
                  type: integer
                color:
                  type: string
                flag:
                  type: string
              required:
                - name
      responses:
        '201':
          description: Created
        '401':
          description: Unauthorized
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/ProblemDetails'
        '403':
          description: Forbidden
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/ProblemDetails'
        '429':
          description: Rate limit exceeded
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/ProblemDetails'
  /estimate_request_status/{id}:
    get:
      operationId: getEstimateRequestStatusById
      summary: Get estimate_request_status by ID
      tags:
        - Resources
      security:
        -
          BearerAuth: []
      parameters:
        -
          name: id
          in: path
          required: true
          schema:
            type: integer
      responses:
        '200':
          description: OK
        '401':
          description: Unauthorized
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/ProblemDetails'
        '403':
          description: Forbidden
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/ProblemDetails'
        '429':
          description: Rate limit exceeded
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/ProblemDetails'
    put:
      operationId: updateEstimateRequestStatus
      summary: Update estimate_request_status
      tags:
        - Resources
      security:
        -
          BearerAuth: []
      parameters:
        -
          name: id
          in: path
          required: true
          schema:
            type: integer
      requestBody:
        required: true
        content:
          application/json:
            schema:
              type: object
              properties:
                name:
                  type: string
                statusorder:
                  type: integer
                color:
                  type: string
                flag:
                  type: string
              additionalProperties: true
      responses:
        '200':
          description: OK
        '401':
          description: Unauthorized
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/ProblemDetails'
        '403':
          description: Forbidden
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/ProblemDetails'
        '429':
          description: Rate limit exceeded
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/ProblemDetails'
    delete:
      operationId: deleteEstimateRequestStatus
      summary: Delete estimate_request_status
      tags:
        - Resources
      security:
        -
          BearerAuth: []
      parameters:
        -
          name: id
          in: path
          required: true
          schema:
            type: integer
      responses:
        '200':
          description: Deleted
        '401':
          description: Unauthorized
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/ProblemDetails'
        '403':
          description: Forbidden
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/ProblemDetails'
        '429':
          description: Rate limit exceeded
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/ProblemDetails'
  /estimate_request_status/schema:
    get:
      operationId: schemaEstimateRequestStatus
      summary: Schema of estimate_request_status
      tags:
        - Resources
      security:
        -
          BearerAuth: []
      responses:
        '200':
          description: OK
        '401':
          description: Unauthorized
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/ProblemDetails'
        '403':
          description: Forbidden
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/ProblemDetails'
        '429':
          description: Rate limit exceeded
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/ProblemDetails'
  /estimate_requests:
    get:
      operationId: listEstimateRequests
      summary: List estimate_requests
      tags:
        - Resources
      security:
        -
          BearerAuth: []
      parameters:
        -
          name: page
          in: query
          schema:
            type: integer
            default: 1
        -
          name: per_page
          in: query
          schema:
            type: integer
            default: 25
            maximum: 1000
        -
          name: sort
          in: query
          schema:
            type: string
          description: 'Comma-separated fields, prefix - for DESC'
        -
          name: fields
          in: query
          schema:
            type: string
          description: Comma-separated field names (sparse fieldset)
      responses:
        '200':
          description: OK
        '401':
          description: Unauthorized
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/ProblemDetails'
        '403':
          description: Forbidden
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/ProblemDetails'
        '429':
          description: Rate limit exceeded
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/ProblemDetails'
    post:
      operationId: createEstimateRequests
      summary: Create estimate_requests
      tags:
        - Resources
      security:
        -
          BearerAuth: []
      requestBody:
        required: true
        content:
          application/json:
            schema:
              type: object
              properties:
                email:
                  type: string
                submission:
                  type: string
                last_status_change:
                  type: string
                  format: date-time
                  example: '2026-04-01 09:15:30'
                date_estimated:
                  type: string
                  format: date-time
                  example: '2026-04-01 09:15:30'
                from_form_id:
                  type: integer
                assigned:
                  type: integer
                status:
                  type: integer
                default_language:
                  type: integer
                date_added:
                  type: string
                  format: date-time
                  example: '2026-04-01 09:15:30'
              required:
                - email
                - submission
                - default_language
                - date_added
      responses:
        '201':
          description: Created
        '401':
          description: Unauthorized
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/ProblemDetails'
        '403':
          description: Forbidden
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/ProblemDetails'
        '429':
          description: Rate limit exceeded
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/ProblemDetails'
  /estimate_requests/{id}:
    get:
      operationId: getEstimateRequestsById
      summary: Get estimate_requests by ID
      tags:
        - Resources
      security:
        -
          BearerAuth: []
      parameters:
        -
          name: id
          in: path
          required: true
          schema:
            type: integer
      responses:
        '200':
          description: OK
        '401':
          description: Unauthorized
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/ProblemDetails'
        '403':
          description: Forbidden
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/ProblemDetails'
        '429':
          description: Rate limit exceeded
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/ProblemDetails'
    put:
      operationId: updateEstimateRequests
      summary: Update estimate_requests
      tags:
        - Resources
      security:
        -
          BearerAuth: []
      parameters:
        -
          name: id
          in: path
          required: true
          schema:
            type: integer
      requestBody:
        required: true
        content:
          application/json:
            schema:
              type: object
              properties:
                email:
                  type: string
                submission:
                  type: string
                last_status_change:
                  type: string
                  format: date-time
                  example: '2026-04-01 09:15:30'
                date_estimated:
                  type: string
                  format: date-time
                  example: '2026-04-01 09:15:30'
                from_form_id:
                  type: integer
                assigned:
                  type: integer
                status:
                  type: integer
                default_language:
                  type: integer
                date_added:
                  type: string
                  format: date-time
                  example: '2026-04-01 09:15:30'
              additionalProperties: true
      responses:
        '200':
          description: OK
        '401':
          description: Unauthorized
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/ProblemDetails'
        '403':
          description: Forbidden
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/ProblemDetails'
        '429':
          description: Rate limit exceeded
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/ProblemDetails'
    delete:
      operationId: deleteEstimateRequests
      summary: Delete estimate_requests
      tags:
        - Resources
      security:
        -
          BearerAuth: []
      parameters:
        -
          name: id
          in: path
          required: true
          schema:
            type: integer
      responses:
        '200':
          description: Deleted
        '401':
          description: Unauthorized
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/ProblemDetails'
        '403':
          description: Forbidden
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/ProblemDetails'
        '429':
          description: Rate limit exceeded
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/ProblemDetails'
  /estimate_requests/schema:
    get:
      operationId: schemaEstimateRequests
      summary: Schema of estimate_requests
      tags:
        - Resources
      security:
        -
          BearerAuth: []
      responses:
        '200':
          description: OK
        '401':
          description: Unauthorized
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/ProblemDetails'
        '403':
          description: Forbidden
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/ProblemDetails'
        '429':
          description: Rate limit exceeded
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/ProblemDetails'
  /estimates:
    get:
      operationId: listEstimates
      summary: List estimates
      tags:
        - Resources
      security:
        -
          BearerAuth: []
      parameters:
        -
          name: page
          in: query
          schema:
            type: integer
            default: 1
        -
          name: per_page
          in: query
          schema:
            type: integer
            default: 25
            maximum: 1000
        -
          name: sort
          in: query
          schema:
            type: string
          description: 'Comma-separated fields, prefix - for DESC'
        -
          name: fields
          in: query
          schema:
            type: string
          description: Comma-separated field names (sparse fieldset)
      responses:
        '200':
          description: OK
        '401':
          description: Unauthorized
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/ProblemDetails'
        '403':
          description: Forbidden
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/ProblemDetails'
        '429':
          description: Rate limit exceeded
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/ProblemDetails'
    post:
      operationId: createEstimates
      summary: Create estimates
      tags:
        - Resources
      security:
        -
          BearerAuth: []
      requestBody:
        required: true
        content:
          application/json:
            schema:
              type: object
              properties:
                sent:
                  type: integer
                datesend:
                  type: string
                  format: date-time
                  example: '2026-04-01 09:15:30'
                clientid:
                  type: integer
                deleted_customer_name:
                  type: string
                project_id:
                  type: integer
                number:
                  type: integer
                prefix:
                  type: string
                number_format:
                  type: integer
                formatted_number:
                  type: string
                date:
                  type: string
                  format: date-time
                  example: '2026-04-01 09:15:30'
                expirydate:
                  type: string
                  format: date-time
                  example: '2026-04-01 09:15:30'
                currency:
                  type: integer
                subtotal:
                  type: number
                total_tax:
                  type: number
                total:
                  type: number
                adjustment:
                  type: number
                status:
                  type: integer
                clientnote:
                  type: string
                adminnote:
                  type: string
                discount_percent:
                  type: number
                discount_total:
                  type: number
                discount_type:
                  type: string
                invoiceid:
                  type: integer
                invoiced_date:
                  type: string
                  format: date-time
                  example: '2026-04-01 09:15:30'
                terms:
                  type: string
                reference_no:
                  type: string
                sale_agent:
                  type: integer
                billing_street:
                  type: string
                billing_city:
                  type: string
                billing_state:
                  type: string
                billing_zip:
                  type: string
                billing_country:
                  type: integer
                shipping_street:
                  type: string
                shipping_city:
                  type: string
                shipping_state:
                  type: string
                shipping_zip:
                  type: string
                shipping_country:
                  type: integer
                include_shipping:
                  type: integer
                show_shipping_on_estimate:
                  type: integer
                show_quantity_as:
                  type: integer
                pipeline_order:
                  type: integer
                is_expiry_notified:
                  type: integer
                acceptance_firstname:
                  type: string
                acceptance_lastname:
                  type: string
                acceptance_email:
                  type: string
                acceptance_date:
                  type: string
                  format: date-time
                  example: '2026-04-01 09:15:30'
                acceptance_ip:
                  type: string
                signature:
                  type: string
                short_link:
                  type: string
              required:
                - clientid
                - number
                - date
                - currency
                - subtotal
                - total
                - include_shipping
      responses:
        '201':
          description: Created
        '401':
          description: Unauthorized
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/ProblemDetails'
        '403':
          description: Forbidden
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/ProblemDetails'
        '429':
          description: Rate limit exceeded
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/ProblemDetails'
  /estimates/{id}:
    get:
      operationId: getEstimatesById
      summary: Get estimates by ID
      tags:
        - Resources
      security:
        -
          BearerAuth: []
      parameters:
        -
          name: id
          in: path
          required: true
          schema:
            type: integer
      responses:
        '200':
          description: OK
        '401':
          description: Unauthorized
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/ProblemDetails'
        '403':
          description: Forbidden
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/ProblemDetails'
        '429':
          description: Rate limit exceeded
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/ProblemDetails'
    put:
      operationId: updateEstimates
      summary: Update estimates
      tags:
        - Resources
      security:
        -
          BearerAuth: []
      parameters:
        -
          name: id
          in: path
          required: true
          schema:
            type: integer
      requestBody:
        required: true
        content:
          application/json:
            schema:
              type: object
              properties:
                sent:
                  type: integer
                datesend:
                  type: string
                  format: date-time
                  example: '2026-04-01 09:15:30'
                clientid:
                  type: integer
                deleted_customer_name:
                  type: string
                project_id:
                  type: integer
                number:
                  type: integer
                prefix:
                  type: string
                number_format:
                  type: integer
                formatted_number:
                  type: string
                date:
                  type: string
                  format: date-time
                  example: '2026-04-01 09:15:30'
                expirydate:
                  type: string
                  format: date-time
                  example: '2026-04-01 09:15:30'
                currency:
                  type: integer
                subtotal:
                  type: number
                total_tax:
                  type: number
                total:
                  type: number
                adjustment:
                  type: number
                status:
                  type: integer
                clientnote:
                  type: string
                adminnote:
                  type: string
                discount_percent:
                  type: number
                discount_total:
                  type: number
                discount_type:
                  type: string
                invoiceid:
                  type: integer
                invoiced_date:
                  type: string
                  format: date-time
                  example: '2026-04-01 09:15:30'
                terms:
                  type: string
                reference_no:
                  type: string
                sale_agent:
                  type: integer
                billing_street:
                  type: string
                billing_city:
                  type: string
                billing_state:
                  type: string
                billing_zip:
                  type: string
                billing_country:
                  type: integer
                shipping_street:
                  type: string
                shipping_city:
                  type: string
                shipping_state:
                  type: string
                shipping_zip:
                  type: string
                shipping_country:
                  type: integer
                include_shipping:
                  type: integer
                show_shipping_on_estimate:
                  type: integer
                show_quantity_as:
                  type: integer
                pipeline_order:
                  type: integer
                is_expiry_notified:
                  type: integer
                acceptance_firstname:
                  type: string
                acceptance_lastname:
                  type: string
                acceptance_email:
                  type: string
                acceptance_date:
                  type: string
                  format: date-time
                  example: '2026-04-01 09:15:30'
                acceptance_ip:
                  type: string
                signature:
                  type: string
                short_link:
                  type: string
              additionalProperties: true
      responses:
        '200':
          description: OK
        '401':
          description: Unauthorized
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/ProblemDetails'
        '403':
          description: Forbidden
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/ProblemDetails'
        '429':
          description: Rate limit exceeded
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/ProblemDetails'
    delete:
      operationId: deleteEstimates
      summary: Delete estimates
      tags:
        - Resources
      security:
        -
          BearerAuth: []
      parameters:
        -
          name: id
          in: path
          required: true
          schema:
            type: integer
      responses:
        '200':
          description: Deleted
        '401':
          description: Unauthorized
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/ProblemDetails'
        '403':
          description: Forbidden
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/ProblemDetails'
        '429':
          description: Rate limit exceeded
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/ProblemDetails'
  /estimates/schema:
    get:
      operationId: schemaEstimates
      summary: Schema of estimates
      tags:
        - Resources
      security:
        -
          BearerAuth: []
      responses:
        '200':
          description: OK
        '401':
          description: Unauthorized
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/ProblemDetails'
        '403':
          description: Forbidden
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/ProblemDetails'
        '429':
          description: Rate limit exceeded
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/ProblemDetails'
  /events:
    get:
      operationId: listEvents
      summary: List events
      tags:
        - Resources
      security:
        -
          BearerAuth: []
      parameters:
        -
          name: page
          in: query
          schema:
            type: integer
            default: 1
        -
          name: per_page
          in: query
          schema:
            type: integer
            default: 25
            maximum: 1000
        -
          name: sort
          in: query
          schema:
            type: string
          description: 'Comma-separated fields, prefix - for DESC'
        -
          name: fields
          in: query
          schema:
            type: string
          description: Comma-separated field names (sparse fieldset)
      responses:
        '200':
          description: OK
        '401':
          description: Unauthorized
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/ProblemDetails'
        '403':
          description: Forbidden
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/ProblemDetails'
        '429':
          description: Rate limit exceeded
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/ProblemDetails'
    post:
      operationId: createEvents
      summary: Create events
      tags:
        - Resources
      security:
        -
          BearerAuth: []
      requestBody:
        required: true
        content:
          application/json:
            schema:
              type: object
              properties:
                title:
                  type: string
                description:
                  type: string
                userid:
                  type: integer
                start:
                  type: string
                  format: date-time
                  example: '2026-04-01 09:15:30'
                end:
                  type: string
                  format: date-time
                  example: '2026-04-01 09:15:30'
                public:
                  type: integer
                color:
                  type: string
                isstartnotified:
                  type: integer
                reminder_before:
                  type: integer
                reminder_before_type:
                  type: string
              required:
                - title
                - userid
                - start
      responses:
        '201':
          description: Created
        '401':
          description: Unauthorized
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/ProblemDetails'
        '403':
          description: Forbidden
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/ProblemDetails'
        '429':
          description: Rate limit exceeded
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/ProblemDetails'
  /events/{id}:
    get:
      operationId: getEventsById
      summary: Get events by ID
      tags:
        - Resources
      security:
        -
          BearerAuth: []
      parameters:
        -
          name: id
          in: path
          required: true
          schema:
            type: integer
      responses:
        '200':
          description: OK
        '401':
          description: Unauthorized
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/ProblemDetails'
        '403':
          description: Forbidden
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/ProblemDetails'
        '429':
          description: Rate limit exceeded
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/ProblemDetails'
    put:
      operationId: updateEvents
      summary: Update events
      tags:
        - Resources
      security:
        -
          BearerAuth: []
      parameters:
        -
          name: id
          in: path
          required: true
          schema:
            type: integer
      requestBody:
        required: true
        content:
          application/json:
            schema:
              type: object
              properties:
                title:
                  type: string
                description:
                  type: string
                userid:
                  type: integer
                start:
                  type: string
                  format: date-time
                  example: '2026-04-01 09:15:30'
                end:
                  type: string
                  format: date-time
                  example: '2026-04-01 09:15:30'
                public:
                  type: integer
                color:
                  type: string
                isstartnotified:
                  type: integer
                reminder_before:
                  type: integer
                reminder_before_type:
                  type: string
              additionalProperties: true
      responses:
        '200':
          description: OK
        '401':
          description: Unauthorized
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/ProblemDetails'
        '403':
          description: Forbidden
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/ProblemDetails'
        '429':
          description: Rate limit exceeded
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/ProblemDetails'
    delete:
      operationId: deleteEvents
      summary: Delete events
      tags:
        - Resources
      security:
        -
          BearerAuth: []
      parameters:
        -
          name: id
          in: path
          required: true
          schema:
            type: integer
      responses:
        '200':
          description: Deleted
        '401':
          description: Unauthorized
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/ProblemDetails'
        '403':
          description: Forbidden
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/ProblemDetails'
        '429':
          description: Rate limit exceeded
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/ProblemDetails'
  /events/schema:
    get:
      operationId: schemaEvents
      summary: Schema of events
      tags:
        - Resources
      security:
        -
          BearerAuth: []
      responses:
        '200':
          description: OK
        '401':
          description: Unauthorized
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/ProblemDetails'
        '403':
          description: Forbidden
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/ProblemDetails'
        '429':
          description: Rate limit exceeded
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/ProblemDetails'
  /expenses:
    get:
      operationId: listExpenses
      summary: List expenses
      tags:
        - Resources
      security:
        -
          BearerAuth: []
      parameters:
        -
          name: page
          in: query
          schema:
            type: integer
            default: 1
        -
          name: per_page
          in: query
          schema:
            type: integer
            default: 25
            maximum: 1000
        -
          name: sort
          in: query
          schema:
            type: string
          description: 'Comma-separated fields, prefix - for DESC'
        -
          name: fields
          in: query
          schema:
            type: string
          description: Comma-separated field names (sparse fieldset)
      responses:
        '200':
          description: OK
        '401':
          description: Unauthorized
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/ProblemDetails'
        '403':
          description: Forbidden
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/ProblemDetails'
        '429':
          description: Rate limit exceeded
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/ProblemDetails'
    post:
      operationId: createExpenses
      summary: Create expenses
      tags:
        - Resources
      security:
        -
          BearerAuth: []
      requestBody:
        required: true
        content:
          application/json:
            schema:
              type: object
              properties:
                category:
                  type: integer
                currency:
                  type: integer
                amount:
                  type: number
                tax:
                  type: integer
                tax2:
                  type: integer
                reference_no:
                  type: string
                note:
                  type: string
                expense_name:
                  type: string
                clientid:
                  type: integer
                project_id:
                  type: integer
                billable:
                  type: integer
                invoiceid:
                  type: integer
                paymentmode:
                  type: string
                date:
                  type: string
                  format: date-time
                  example: '2026-04-01 09:15:30'
                recurring_type:
                  type: string
                repeat_every:
                  type: integer
                recurring:
                  type: integer
                cycles:
                  type: integer
                total_cycles:
                  type: integer
                custom_recurring:
                  type: integer
                last_recurring_date:
                  type: string
                  format: date-time
                  example: '2026-04-01 09:15:30'
                create_invoice_billable:
                  type: integer
                send_invoice_to_customer:
                  type: integer
                recurring_from:
                  type: integer
              required:
                - category
                - currency
                - amount
                - clientid
                - date
                - send_invoice_to_customer
      responses:
        '201':
          description: Created
        '401':
          description: Unauthorized
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/ProblemDetails'
        '403':
          description: Forbidden
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/ProblemDetails'
        '429':
          description: Rate limit exceeded
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/ProblemDetails'
  /expenses/{id}:
    get:
      operationId: getExpensesById
      summary: Get expenses by ID
      tags:
        - Resources
      security:
        -
          BearerAuth: []
      parameters:
        -
          name: id
          in: path
          required: true
          schema:
            type: integer
      responses:
        '200':
          description: OK
        '401':
          description: Unauthorized
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/ProblemDetails'
        '403':
          description: Forbidden
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/ProblemDetails'
        '429':
          description: Rate limit exceeded
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/ProblemDetails'
    put:
      operationId: updateExpenses
      summary: Update expenses
      tags:
        - Resources
      security:
        -
          BearerAuth: []
      parameters:
        -
          name: id
          in: path
          required: true
          schema:
            type: integer
      requestBody:
        required: true
        content:
          application/json:
            schema:
              type: object
              properties:
                category:
                  type: integer
                currency:
                  type: integer
                amount:
                  type: number
                tax:
                  type: integer
                tax2:
                  type: integer
                reference_no:
                  type: string
                note:
                  type: string
                expense_name:
                  type: string
                clientid:
                  type: integer
                project_id:
                  type: integer
                billable:
                  type: integer
                invoiceid:
                  type: integer
                paymentmode:
                  type: string
                date:
                  type: string
                  format: date-time
                  example: '2026-04-01 09:15:30'
                recurring_type:
                  type: string
                repeat_every:
                  type: integer
                recurring:
                  type: integer
                cycles:
                  type: integer
                total_cycles:
                  type: integer
                custom_recurring:
                  type: integer
                last_recurring_date:
                  type: string
                  format: date-time
                  example: '2026-04-01 09:15:30'
                create_invoice_billable:
                  type: integer
                send_invoice_to_customer:
                  type: integer
                recurring_from:
                  type: integer
              additionalProperties: true
      responses:
        '200':
          description: OK
        '401':
          description: Unauthorized
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/ProblemDetails'
        '403':
          description: Forbidden
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/ProblemDetails'
        '429':
          description: Rate limit exceeded
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/ProblemDetails'
    delete:
      operationId: deleteExpenses
      summary: Delete expenses
      tags:
        - Resources
      security:
        -
          BearerAuth: []
      parameters:
        -
          name: id
          in: path
          required: true
          schema:
            type: integer
      responses:
        '200':
          description: Deleted
        '401':
          description: Unauthorized
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/ProblemDetails'
        '403':
          description: Forbidden
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/ProblemDetails'
        '429':
          description: Rate limit exceeded
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/ProblemDetails'
  /expenses/schema:
    get:
      operationId: schemaExpenses
      summary: Schema of expenses
      tags:
        - Resources
      security:
        -
          BearerAuth: []
      responses:
        '200':
          description: OK
        '401':
          description: Unauthorized
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/ProblemDetails'
        '403':
          description: Forbidden
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/ProblemDetails'
        '429':
          description: Rate limit exceeded
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/ProblemDetails'
  /expenses_categories:
    get:
      operationId: listExpensesCategories
      summary: List expenses_categories
      tags:
        - Resources
      security:
        -
          BearerAuth: []
      parameters:
        -
          name: page
          in: query
          schema:
            type: integer
            default: 1
        -
          name: per_page
          in: query
          schema:
            type: integer
            default: 25
            maximum: 1000
        -
          name: sort
          in: query
          schema:
            type: string
          description: 'Comma-separated fields, prefix - for DESC'
        -
          name: fields
          in: query
          schema:
            type: string
          description: Comma-separated field names (sparse fieldset)
      responses:
        '200':
          description: OK
        '401':
          description: Unauthorized
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/ProblemDetails'
        '403':
          description: Forbidden
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/ProblemDetails'
        '429':
          description: Rate limit exceeded
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/ProblemDetails'
    post:
      operationId: createExpensesCategories
      summary: Create expenses_categories
      tags:
        - Resources
      security:
        -
          BearerAuth: []
      requestBody:
        required: true
        content:
          application/json:
            schema:
              type: object
              properties:
                name:
                  type: string
                description:
                  type: string
              required:
                - name
      responses:
        '201':
          description: Created
        '401':
          description: Unauthorized
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/ProblemDetails'
        '403':
          description: Forbidden
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/ProblemDetails'
        '429':
          description: Rate limit exceeded
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/ProblemDetails'
  /expenses_categories/{id}:
    get:
      operationId: getExpensesCategoriesById
      summary: Get expenses_categories by ID
      tags:
        - Resources
      security:
        -
          BearerAuth: []
      parameters:
        -
          name: id
          in: path
          required: true
          schema:
            type: integer
      responses:
        '200':
          description: OK
        '401':
          description: Unauthorized
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/ProblemDetails'
        '403':
          description: Forbidden
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/ProblemDetails'
        '429':
          description: Rate limit exceeded
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/ProblemDetails'
    put:
      operationId: updateExpensesCategories
      summary: Update expenses_categories
      tags:
        - Resources
      security:
        -
          BearerAuth: []
      parameters:
        -
          name: id
          in: path
          required: true
          schema:
            type: integer
      requestBody:
        required: true
        content:
          application/json:
            schema:
              type: object
              properties:
                name:
                  type: string
                description:
                  type: string
              additionalProperties: true
      responses:
        '200':
          description: OK
        '401':
          description: Unauthorized
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/ProblemDetails'
        '403':
          description: Forbidden
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/ProblemDetails'
        '429':
          description: Rate limit exceeded
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/ProblemDetails'
    delete:
      operationId: deleteExpensesCategories
      summary: Delete expenses_categories
      tags:
        - Resources
      security:
        -
          BearerAuth: []
      parameters:
        -
          name: id
          in: path
          required: true
          schema:
            type: integer
      responses:
        '200':
          description: Deleted
        '401':
          description: Unauthorized
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/ProblemDetails'
        '403':
          description: Forbidden
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/ProblemDetails'
        '429':
          description: Rate limit exceeded
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/ProblemDetails'
  /expenses_categories/schema:
    get:
      operationId: schemaExpensesCategories
      summary: Schema of expenses_categories
      tags:
        - Resources
      security:
        -
          BearerAuth: []
      responses:
        '200':
          description: OK
        '401':
          description: Unauthorized
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/ProblemDetails'
        '403':
          description: Forbidden
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/ProblemDetails'
        '429':
          description: Rate limit exceeded
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/ProblemDetails'
  /files:
    get:
      operationId: listFiles
      summary: List files
      tags:
        - Resources
      security:
        -
          BearerAuth: []
      parameters:
        -
          name: page
          in: query
          schema:
            type: integer
            default: 1
        -
          name: per_page
          in: query
          schema:
            type: integer
            default: 25
            maximum: 1000
        -
          name: sort
          in: query
          schema:
            type: string
          description: 'Comma-separated fields, prefix - for DESC'
        -
          name: fields
          in: query
          schema:
            type: string
          description: Comma-separated field names (sparse fieldset)
      responses:
        '200':
          description: OK
        '401':
          description: Unauthorized
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/ProblemDetails'
        '403':
          description: Forbidden
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/ProblemDetails'
        '429':
          description: Rate limit exceeded
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/ProblemDetails'
    post:
      operationId: createFiles
      summary: Create files
      tags:
        - Resources
      security:
        -
          BearerAuth: []
      requestBody:
        required: true
        content:
          application/json:
            schema:
              type: object
              properties:
                rel_id:
                  type: integer
                rel_type:
                  type: string
                file_name:
                  type: string
                filetype:
                  type: string
                visible_to_customer:
                  type: integer
                attachment_key:
                  type: string
                external:
                  type: string
                external_link:
                  type: string
                thumbnail_link:
                  type: string
                staffid:
                  type: integer
                contact_id:
                  type: integer
                task_comment_id:
                  type: integer
              required:
                - rel_id
                - rel_type
                - file_name
                - staffid
      responses:
        '201':
          description: Created
        '401':
          description: Unauthorized
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/ProblemDetails'
        '403':
          description: Forbidden
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/ProblemDetails'
        '429':
          description: Rate limit exceeded
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/ProblemDetails'
  /files/{id}:
    get:
      operationId: getFilesById
      summary: Get files by ID
      tags:
        - Resources
      security:
        -
          BearerAuth: []
      parameters:
        -
          name: id
          in: path
          required: true
          schema:
            type: integer
      responses:
        '200':
          description: OK
        '401':
          description: Unauthorized
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/ProblemDetails'
        '403':
          description: Forbidden
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/ProblemDetails'
        '429':
          description: Rate limit exceeded
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/ProblemDetails'
    put:
      operationId: updateFiles
      summary: Update files
      tags:
        - Resources
      security:
        -
          BearerAuth: []
      parameters:
        -
          name: id
          in: path
          required: true
          schema:
            type: integer
      requestBody:
        required: true
        content:
          application/json:
            schema:
              type: object
              properties:
                rel_id:
                  type: integer
                rel_type:
                  type: string
                file_name:
                  type: string
                filetype:
                  type: string
                visible_to_customer:
                  type: integer
                attachment_key:
                  type: string
                external:
                  type: string
                external_link:
                  type: string
                thumbnail_link:
                  type: string
                staffid:
                  type: integer
                contact_id:
                  type: integer
                task_comment_id:
                  type: integer
              additionalProperties: true
      responses:
        '200':
          description: OK
        '401':
          description: Unauthorized
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/ProblemDetails'
        '403':
          description: Forbidden
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/ProblemDetails'
        '429':
          description: Rate limit exceeded
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/ProblemDetails'
    delete:
      operationId: deleteFiles
      summary: Delete files
      tags:
        - Resources
      security:
        -
          BearerAuth: []
      parameters:
        -
          name: id
          in: path
          required: true
          schema:
            type: integer
      responses:
        '200':
          description: Deleted
        '401':
          description: Unauthorized
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/ProblemDetails'
        '403':
          description: Forbidden
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/ProblemDetails'
        '429':
          description: Rate limit exceeded
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/ProblemDetails'
  /files/schema:
    get:
      operationId: schemaFiles
      summary: Schema of files
      tags:
        - Resources
      security:
        -
          BearerAuth: []
      responses:
        '200':
          description: OK
        '401':
          description: Unauthorized
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/ProblemDetails'
        '403':
          description: Forbidden
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/ProblemDetails'
        '429':
          description: Rate limit exceeded
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/ProblemDetails'
  /filter_defaults:
    get:
      operationId: listFilterDefaults
      summary: List filter_defaults
      tags:
        - Resources
      security:
        -
          BearerAuth: []
      parameters:
        -
          name: page
          in: query
          schema:
            type: integer
            default: 1
        -
          name: per_page
          in: query
          schema:
            type: integer
            default: 25
            maximum: 1000
        -
          name: sort
          in: query
          schema:
            type: string
          description: 'Comma-separated fields, prefix - for DESC'
        -
          name: fields
          in: query
          schema:
            type: string
          description: Comma-separated field names (sparse fieldset)
      responses:
        '200':
          description: OK
        '401':
          description: Unauthorized
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/ProblemDetails'
        '403':
          description: Forbidden
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/ProblemDetails'
        '429':
          description: Rate limit exceeded
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/ProblemDetails'
    post:
      operationId: createFilterDefaults
      summary: Create filter_defaults
      tags:
        - Resources
      security:
        -
          BearerAuth: []
      requestBody:
        required: true
        content:
          application/json:
            schema:
              type: object
              properties:
                filter_id:
                  type: integer
                staff_id:
                  type: integer
                identifier:
                  type: string
                view:
                  type: string
              required:
                - filter_id
                - staff_id
                - identifier
                - view
      responses:
        '201':
          description: Created
        '401':
          description: Unauthorized
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/ProblemDetails'
        '403':
          description: Forbidden
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/ProblemDetails'
        '429':
          description: Rate limit exceeded
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/ProblemDetails'
  /filter_defaults/{id}:
    get:
      operationId: getFilterDefaultsById
      summary: Get filter_defaults by ID
      tags:
        - Resources
      security:
        -
          BearerAuth: []
      parameters:
        -
          name: id
          in: path
          required: true
          schema:
            type: integer
      responses:
        '200':
          description: OK
        '401':
          description: Unauthorized
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/ProblemDetails'
        '403':
          description: Forbidden
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/ProblemDetails'
        '429':
          description: Rate limit exceeded
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/ProblemDetails'
    put:
      operationId: updateFilterDefaults
      summary: Update filter_defaults
      tags:
        - Resources
      security:
        -
          BearerAuth: []
      parameters:
        -
          name: id
          in: path
          required: true
          schema:
            type: integer
      requestBody:
        required: true
        content:
          application/json:
            schema:
              type: object
              properties:
                filter_id:
                  type: integer
                staff_id:
                  type: integer
                identifier:
                  type: string
                view:
                  type: string
              additionalProperties: true
      responses:
        '200':
          description: OK
        '401':
          description: Unauthorized
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/ProblemDetails'
        '403':
          description: Forbidden
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/ProblemDetails'
        '429':
          description: Rate limit exceeded
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/ProblemDetails'
    delete:
      operationId: deleteFilterDefaults
      summary: Delete filter_defaults
      tags:
        - Resources
      security:
        -
          BearerAuth: []
      parameters:
        -
          name: id
          in: path
          required: true
          schema:
            type: integer
      responses:
        '200':
          description: Deleted
        '401':
          description: Unauthorized
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/ProblemDetails'
        '403':
          description: Forbidden
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/ProblemDetails'
        '429':
          description: Rate limit exceeded
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/ProblemDetails'
  /filter_defaults/schema:
    get:
      operationId: schemaFilterDefaults
      summary: Schema of filter_defaults
      tags:
        - Resources
      security:
        -
          BearerAuth: []
      responses:
        '200':
          description: OK
        '401':
          description: Unauthorized
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/ProblemDetails'
        '403':
          description: Forbidden
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/ProblemDetails'
        '429':
          description: Rate limit exceeded
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/ProblemDetails'
  /filters:
    get:
      operationId: listFilters
      summary: List filters
      tags:
        - Resources
      security:
        -
          BearerAuth: []
      parameters:
        -
          name: page
          in: query
          schema:
            type: integer
            default: 1
        -
          name: per_page
          in: query
          schema:
            type: integer
            default: 25
            maximum: 1000
        -
          name: sort
          in: query
          schema:
            type: string
          description: 'Comma-separated fields, prefix - for DESC'
        -
          name: fields
          in: query
          schema:
            type: string
          description: Comma-separated field names (sparse fieldset)
      responses:
        '200':
          description: OK
        '401':
          description: Unauthorized
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/ProblemDetails'
        '403':
          description: Forbidden
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/ProblemDetails'
        '429':
          description: Rate limit exceeded
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/ProblemDetails'
    post:
      operationId: createFilters
      summary: Create filters
      tags:
        - Resources
      security:
        -
          BearerAuth: []
      requestBody:
        required: true
        content:
          application/json:
            schema:
              type: object
              properties:
                name:
                  type: string
                builder:
                  type: string
                staff_id:
                  type: integer
                identifier:
                  type: string
                is_shared:
                  type: integer
              required:
                - name
                - builder
                - staff_id
                - identifier
      responses:
        '201':
          description: Created
        '401':
          description: Unauthorized
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/ProblemDetails'
        '403':
          description: Forbidden
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/ProblemDetails'
        '429':
          description: Rate limit exceeded
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/ProblemDetails'
  /filters/{id}:
    get:
      operationId: getFiltersById
      summary: Get filters by ID
      tags:
        - Resources
      security:
        -
          BearerAuth: []
      parameters:
        -
          name: id
          in: path
          required: true
          schema:
            type: integer
      responses:
        '200':
          description: OK
        '401':
          description: Unauthorized
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/ProblemDetails'
        '403':
          description: Forbidden
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/ProblemDetails'
        '429':
          description: Rate limit exceeded
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/ProblemDetails'
    put:
      operationId: updateFilters
      summary: Update filters
      tags:
        - Resources
      security:
        -
          BearerAuth: []
      parameters:
        -
          name: id
          in: path
          required: true
          schema:
            type: integer
      requestBody:
        required: true
        content:
          application/json:
            schema:
              type: object
              properties:
                name:
                  type: string
                builder:
                  type: string
                staff_id:
                  type: integer
                identifier:
                  type: string
                is_shared:
                  type: integer
              additionalProperties: true
      responses:
        '200':
          description: OK
        '401':
          description: Unauthorized
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/ProblemDetails'
        '403':
          description: Forbidden
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/ProblemDetails'
        '429':
          description: Rate limit exceeded
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/ProblemDetails'
    delete:
      operationId: deleteFilters
      summary: Delete filters
      tags:
        - Resources
      security:
        -
          BearerAuth: []
      parameters:
        -
          name: id
          in: path
          required: true
          schema:
            type: integer
      responses:
        '200':
          description: Deleted
        '401':
          description: Unauthorized
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/ProblemDetails'
        '403':
          description: Forbidden
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/ProblemDetails'
        '429':
          description: Rate limit exceeded
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/ProblemDetails'
  /filters/schema:
    get:
      operationId: schemaFilters
      summary: Schema of filters
      tags:
        - Resources
      security:
        -
          BearerAuth: []
      responses:
        '200':
          description: OK
        '401':
          description: Unauthorized
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/ProblemDetails'
        '403':
          description: Forbidden
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/ProblemDetails'
        '429':
          description: Rate limit exceeded
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/ProblemDetails'
  /form_question_box:
    get:
      operationId: listFormQuestionBox
      summary: List form_question_box
      tags:
        - Resources
      security:
        -
          BearerAuth: []
      parameters:
        -
          name: page
          in: query
          schema:
            type: integer
            default: 1
        -
          name: per_page
          in: query
          schema:
            type: integer
            default: 25
            maximum: 1000
        -
          name: sort
          in: query
          schema:
            type: string
          description: 'Comma-separated fields, prefix - for DESC'
        -
          name: fields
          in: query
          schema:
            type: string
          description: Comma-separated field names (sparse fieldset)
      responses:
        '200':
          description: OK
        '401':
          description: Unauthorized
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/ProblemDetails'
        '403':
          description: Forbidden
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/ProblemDetails'
        '429':
          description: Rate limit exceeded
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/ProblemDetails'
    post:
      operationId: createFormQuestionBox
      summary: Create form_question_box
      tags:
        - Resources
      security:
        -
          BearerAuth: []
      requestBody:
        required: true
        content:
          application/json:
            schema:
              type: object
              properties:
                boxtype:
                  type: string
                questionid:
                  type: integer
              required:
                - boxtype
                - questionid
      responses:
        '201':
          description: Created
        '401':
          description: Unauthorized
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/ProblemDetails'
        '403':
          description: Forbidden
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/ProblemDetails'
        '429':
          description: Rate limit exceeded
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/ProblemDetails'
  /form_question_box/{id}:
    get:
      operationId: getFormQuestionBoxById
      summary: Get form_question_box by ID
      tags:
        - Resources
      security:
        -
          BearerAuth: []
      parameters:
        -
          name: id
          in: path
          required: true
          schema:
            type: integer
      responses:
        '200':
          description: OK
        '401':
          description: Unauthorized
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/ProblemDetails'
        '403':
          description: Forbidden
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/ProblemDetails'
        '429':
          description: Rate limit exceeded
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/ProblemDetails'
    put:
      operationId: updateFormQuestionBox
      summary: Update form_question_box
      tags:
        - Resources
      security:
        -
          BearerAuth: []
      parameters:
        -
          name: id
          in: path
          required: true
          schema:
            type: integer
      requestBody:
        required: true
        content:
          application/json:
            schema:
              type: object
              properties:
                boxtype:
                  type: string
                questionid:
                  type: integer
              additionalProperties: true
      responses:
        '200':
          description: OK
        '401':
          description: Unauthorized
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/ProblemDetails'
        '403':
          description: Forbidden
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/ProblemDetails'
        '429':
          description: Rate limit exceeded
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/ProblemDetails'
    delete:
      operationId: deleteFormQuestionBox
      summary: Delete form_question_box
      tags:
        - Resources
      security:
        -
          BearerAuth: []
      parameters:
        -
          name: id
          in: path
          required: true
          schema:
            type: integer
      responses:
        '200':
          description: Deleted
        '401':
          description: Unauthorized
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/ProblemDetails'
        '403':
          description: Forbidden
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/ProblemDetails'
        '429':
          description: Rate limit exceeded
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/ProblemDetails'
  /form_question_box/schema:
    get:
      operationId: schemaFormQuestionBox
      summary: Schema of form_question_box
      tags:
        - Resources
      security:
        -
          BearerAuth: []
      responses:
        '200':
          description: OK
        '401':
          description: Unauthorized
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/ProblemDetails'
        '403':
          description: Forbidden
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/ProblemDetails'
        '429':
          description: Rate limit exceeded
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/ProblemDetails'
  /form_question_box_description:
    get:
      operationId: listFormQuestionBoxDescription
      summary: List form_question_box_description
      tags:
        - Resources
      security:
        -
          BearerAuth: []
      parameters:
        -
          name: page
          in: query
          schema:
            type: integer
            default: 1
        -
          name: per_page
          in: query
          schema:
            type: integer
            default: 25
            maximum: 1000
        -
          name: sort
          in: query
          schema:
            type: string
          description: 'Comma-separated fields, prefix - for DESC'
        -
          name: fields
          in: query
          schema:
            type: string
          description: Comma-separated field names (sparse fieldset)
      responses:
        '200':
          description: OK
        '401':
          description: Unauthorized
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/ProblemDetails'
        '403':
          description: Forbidden
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/ProblemDetails'
        '429':
          description: Rate limit exceeded
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/ProblemDetails'
    post:
      operationId: createFormQuestionBoxDescription
      summary: Create form_question_box_description
      tags:
        - Resources
      security:
        -
          BearerAuth: []
      requestBody:
        required: true
        content:
          application/json:
            schema:
              type: object
              properties:
                description:
                  type: string
                boxid:
                  type: string
                questionid:
                  type: integer
              required:
                - description
                - boxid
                - questionid
      responses:
        '201':
          description: Created
        '401':
          description: Unauthorized
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/ProblemDetails'
        '403':
          description: Forbidden
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/ProblemDetails'
        '429':
          description: Rate limit exceeded
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/ProblemDetails'
  /form_question_box_description/{id}:
    get:
      operationId: getFormQuestionBoxDescriptionById
      summary: Get form_question_box_description by ID
      tags:
        - Resources
      security:
        -
          BearerAuth: []
      parameters:
        -
          name: id
          in: path
          required: true
          schema:
            type: integer
      responses:
        '200':
          description: OK
        '401':
          description: Unauthorized
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/ProblemDetails'
        '403':
          description: Forbidden
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/ProblemDetails'
        '429':
          description: Rate limit exceeded
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/ProblemDetails'
    put:
      operationId: updateFormQuestionBoxDescription
      summary: Update form_question_box_description
      tags:
        - Resources
      security:
        -
          BearerAuth: []
      parameters:
        -
          name: id
          in: path
          required: true
          schema:
            type: integer
      requestBody:
        required: true
        content:
          application/json:
            schema:
              type: object
              properties:
                description:
                  type: string
                boxid:
                  type: string
                questionid:
                  type: integer
              additionalProperties: true
      responses:
        '200':
          description: OK
        '401':
          description: Unauthorized
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/ProblemDetails'
        '403':
          description: Forbidden
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/ProblemDetails'
        '429':
          description: Rate limit exceeded
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/ProblemDetails'
    delete:
      operationId: deleteFormQuestionBoxDescription
      summary: Delete form_question_box_description
      tags:
        - Resources
      security:
        -
          BearerAuth: []
      parameters:
        -
          name: id
          in: path
          required: true
          schema:
            type: integer
      responses:
        '200':
          description: Deleted
        '401':
          description: Unauthorized
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/ProblemDetails'
        '403':
          description: Forbidden
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/ProblemDetails'
        '429':
          description: Rate limit exceeded
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/ProblemDetails'
  /form_question_box_description/schema:
    get:
      operationId: schemaFormQuestionBoxDescription
      summary: Schema of form_question_box_description
      tags:
        - Resources
      security:
        -
          BearerAuth: []
      responses:
        '200':
          description: OK
        '401':
          description: Unauthorized
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/ProblemDetails'
        '403':
          description: Forbidden
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/ProblemDetails'
        '429':
          description: Rate limit exceeded
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/ProblemDetails'
  /form_questions:
    get:
      operationId: listFormQuestions
      summary: List form_questions
      tags:
        - Resources
      security:
        -
          BearerAuth: []
      parameters:
        -
          name: page
          in: query
          schema:
            type: integer
            default: 1
        -
          name: per_page
          in: query
          schema:
            type: integer
            default: 25
            maximum: 1000
        -
          name: sort
          in: query
          schema:
            type: string
          description: 'Comma-separated fields, prefix - for DESC'
        -
          name: fields
          in: query
          schema:
            type: string
          description: Comma-separated field names (sparse fieldset)
      responses:
        '200':
          description: OK
        '401':
          description: Unauthorized
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/ProblemDetails'
        '403':
          description: Forbidden
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/ProblemDetails'
        '429':
          description: Rate limit exceeded
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/ProblemDetails'
    post:
      operationId: createFormQuestions
      summary: Create form_questions
      tags:
        - Resources
      security:
        -
          BearerAuth: []
      requestBody:
        required: true
        content:
          application/json:
            schema:
              type: object
              properties:
                rel_id:
                  type: integer
                rel_type:
                  type: string
                question:
                  type: string
                required:
                  type: integer
                question_order:
                  type: integer
              required:
                - rel_id
                - question
                - question_order
      responses:
        '201':
          description: Created
        '401':
          description: Unauthorized
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/ProblemDetails'
        '403':
          description: Forbidden
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/ProblemDetails'
        '429':
          description: Rate limit exceeded
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/ProblemDetails'
  /form_questions/{id}:
    get:
      operationId: getFormQuestionsById
      summary: Get form_questions by ID
      tags:
        - Resources
      security:
        -
          BearerAuth: []
      parameters:
        -
          name: id
          in: path
          required: true
          schema:
            type: integer
      responses:
        '200':
          description: OK
        '401':
          description: Unauthorized
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/ProblemDetails'
        '403':
          description: Forbidden
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/ProblemDetails'
        '429':
          description: Rate limit exceeded
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/ProblemDetails'
    put:
      operationId: updateFormQuestions
      summary: Update form_questions
      tags:
        - Resources
      security:
        -
          BearerAuth: []
      parameters:
        -
          name: id
          in: path
          required: true
          schema:
            type: integer
      requestBody:
        required: true
        content:
          application/json:
            schema:
              type: object
              properties:
                rel_id:
                  type: integer
                rel_type:
                  type: string
                question:
                  type: string
                required:
                  type: integer
                question_order:
                  type: integer
              additionalProperties: true
      responses:
        '200':
          description: OK
        '401':
          description: Unauthorized
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/ProblemDetails'
        '403':
          description: Forbidden
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/ProblemDetails'
        '429':
          description: Rate limit exceeded
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/ProblemDetails'
    delete:
      operationId: deleteFormQuestions
      summary: Delete form_questions
      tags:
        - Resources
      security:
        -
          BearerAuth: []
      parameters:
        -
          name: id
          in: path
          required: true
          schema:
            type: integer
      responses:
        '200':
          description: Deleted
        '401':
          description: Unauthorized
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/ProblemDetails'
        '403':
          description: Forbidden
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/ProblemDetails'
        '429':
          description: Rate limit exceeded
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/ProblemDetails'
  /form_questions/schema:
    get:
      operationId: schemaFormQuestions
      summary: Schema of form_questions
      tags:
        - Resources
      security:
        -
          BearerAuth: []
      responses:
        '200':
          description: OK
        '401':
          description: Unauthorized
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/ProblemDetails'
        '403':
          description: Forbidden
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/ProblemDetails'
        '429':
          description: Rate limit exceeded
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/ProblemDetails'
  /form_results:
    get:
      operationId: listFormResults
      summary: List form_results
      tags:
        - Resources
      security:
        -
          BearerAuth: []
      parameters:
        -
          name: page
          in: query
          schema:
            type: integer
            default: 1
        -
          name: per_page
          in: query
          schema:
            type: integer
            default: 25
            maximum: 1000
        -
          name: sort
          in: query
          schema:
            type: string
          description: 'Comma-separated fields, prefix - for DESC'
        -
          name: fields
          in: query
          schema:
            type: string
          description: Comma-separated field names (sparse fieldset)
      responses:
        '200':
          description: OK
        '401':
          description: Unauthorized
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/ProblemDetails'
        '403':
          description: Forbidden
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/ProblemDetails'
        '429':
          description: Rate limit exceeded
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/ProblemDetails'
    post:
      operationId: createFormResults
      summary: Create form_results
      tags:
        - Resources
      security:
        -
          BearerAuth: []
      requestBody:
        required: true
        content:
          application/json:
            schema:
              type: object
              properties:
                boxid:
                  type: integer
                boxdescriptionid:
                  type: integer
                rel_id:
                  type: integer
                rel_type:
                  type: string
                questionid:
                  type: integer
                answer:
                  type: string
                resultsetid:
                  type: integer
              required:
                - boxid
                - rel_id
                - questionid
                - resultsetid
      responses:
        '201':
          description: Created
        '401':
          description: Unauthorized
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/ProblemDetails'
        '403':
          description: Forbidden
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/ProblemDetails'
        '429':
          description: Rate limit exceeded
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/ProblemDetails'
  /form_results/{id}:
    get:
      operationId: getFormResultsById
      summary: Get form_results by ID
      tags:
        - Resources
      security:
        -
          BearerAuth: []
      parameters:
        -
          name: id
          in: path
          required: true
          schema:
            type: integer
      responses:
        '200':
          description: OK
        '401':
          description: Unauthorized
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/ProblemDetails'
        '403':
          description: Forbidden
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/ProblemDetails'
        '429':
          description: Rate limit exceeded
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/ProblemDetails'
    put:
      operationId: updateFormResults
      summary: Update form_results
      tags:
        - Resources
      security:
        -
          BearerAuth: []
      parameters:
        -
          name: id
          in: path
          required: true
          schema:
            type: integer
      requestBody:
        required: true
        content:
          application/json:
            schema:
              type: object
              properties:
                boxid:
                  type: integer
                boxdescriptionid:
                  type: integer
                rel_id:
                  type: integer
                rel_type:
                  type: string
                questionid:
                  type: integer
                answer:
                  type: string
                resultsetid:
                  type: integer
              additionalProperties: true
      responses:
        '200':
          description: OK
        '401':
          description: Unauthorized
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/ProblemDetails'
        '403':
          description: Forbidden
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/ProblemDetails'
        '429':
          description: Rate limit exceeded
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/ProblemDetails'
    delete:
      operationId: deleteFormResults
      summary: Delete form_results
      tags:
        - Resources
      security:
        -
          BearerAuth: []
      parameters:
        -
          name: id
          in: path
          required: true
          schema:
            type: integer
      responses:
        '200':
          description: Deleted
        '401':
          description: Unauthorized
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/ProblemDetails'
        '403':
          description: Forbidden
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/ProblemDetails'
        '429':
          description: Rate limit exceeded
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/ProblemDetails'
  /form_results/schema:
    get:
      operationId: schemaFormResults
      summary: Schema of form_results
      tags:
        - Resources
      security:
        -
          BearerAuth: []
      responses:
        '200':
          description: OK
        '401':
          description: Unauthorized
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/ProblemDetails'
        '403':
          description: Forbidden
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/ProblemDetails'
        '429':
          description: Rate limit exceeded
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/ProblemDetails'
  /gdpr_requests:
    get:
      operationId: listGdprRequests
      summary: List gdpr_requests
      tags:
        - Resources
      security:
        -
          BearerAuth: []
      parameters:
        -
          name: page
          in: query
          schema:
            type: integer
            default: 1
        -
          name: per_page
          in: query
          schema:
            type: integer
            default: 25
            maximum: 1000
        -
          name: sort
          in: query
          schema:
            type: string
          description: 'Comma-separated fields, prefix - for DESC'
        -
          name: fields
          in: query
          schema:
            type: string
          description: Comma-separated field names (sparse fieldset)
      responses:
        '200':
          description: OK
        '401':
          description: Unauthorized
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/ProblemDetails'
        '403':
          description: Forbidden
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/ProblemDetails'
        '429':
          description: Rate limit exceeded
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/ProblemDetails'
    post:
      operationId: createGdprRequests
      summary: Create gdpr_requests
      tags:
        - Resources
      security:
        -
          BearerAuth: []
      requestBody:
        required: true
        content:
          application/json:
            schema:
              type: object
              properties:
                clientid:
                  type: integer
                contact_id:
                  type: integer
                lead_id:
                  type: integer
                request_type:
                  type: string
                status:
                  type: string
                request_date:
                  type: string
                  format: date-time
                  example: '2026-04-01 09:15:30'
                request_from:
                  type: string
                description:
                  type: string
              required:
                - request_date
      responses:
        '201':
          description: Created
        '401':
          description: Unauthorized
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/ProblemDetails'
        '403':
          description: Forbidden
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/ProblemDetails'
        '429':
          description: Rate limit exceeded
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/ProblemDetails'
  /gdpr_requests/{id}:
    get:
      operationId: getGdprRequestsById
      summary: Get gdpr_requests by ID
      tags:
        - Resources
      security:
        -
          BearerAuth: []
      parameters:
        -
          name: id
          in: path
          required: true
          schema:
            type: integer
      responses:
        '200':
          description: OK
        '401':
          description: Unauthorized
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/ProblemDetails'
        '403':
          description: Forbidden
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/ProblemDetails'
        '429':
          description: Rate limit exceeded
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/ProblemDetails'
    put:
      operationId: updateGdprRequests
      summary: Update gdpr_requests
      tags:
        - Resources
      security:
        -
          BearerAuth: []
      parameters:
        -
          name: id
          in: path
          required: true
          schema:
            type: integer
      requestBody:
        required: true
        content:
          application/json:
            schema:
              type: object
              properties:
                clientid:
                  type: integer
                contact_id:
                  type: integer
                lead_id:
                  type: integer
                request_type:
                  type: string
                status:
                  type: string
                request_date:
                  type: string
                  format: date-time
                  example: '2026-04-01 09:15:30'
                request_from:
                  type: string
                description:
                  type: string
              additionalProperties: true
      responses:
        '200':
          description: OK
        '401':
          description: Unauthorized
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/ProblemDetails'
        '403':
          description: Forbidden
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/ProblemDetails'
        '429':
          description: Rate limit exceeded
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/ProblemDetails'
    delete:
      operationId: deleteGdprRequests
      summary: Delete gdpr_requests
      tags:
        - Resources
      security:
        -
          BearerAuth: []
      parameters:
        -
          name: id
          in: path
          required: true
          schema:
            type: integer
      responses:
        '200':
          description: Deleted
        '401':
          description: Unauthorized
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/ProblemDetails'
        '403':
          description: Forbidden
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/ProblemDetails'
        '429':
          description: Rate limit exceeded
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/ProblemDetails'
  /gdpr_requests/schema:
    get:
      operationId: schemaGdprRequests
      summary: Schema of gdpr_requests
      tags:
        - Resources
      security:
        -
          BearerAuth: []
      responses:
        '200':
          description: OK
        '401':
          description: Unauthorized
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/ProblemDetails'
        '403':
          description: Forbidden
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/ProblemDetails'
        '429':
          description: Rate limit exceeded
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/ProblemDetails'
  /customer_groups:
    get:
      operationId: listCustomerGroups
      summary: List customer_groups
      tags:
        - Resources
      security:
        -
          BearerAuth: []
      parameters:
        -
          name: page
          in: query
          schema:
            type: integer
            default: 1
        -
          name: per_page
          in: query
          schema:
            type: integer
            default: 25
            maximum: 1000
        -
          name: sort
          in: query
          schema:
            type: string
          description: 'Comma-separated fields, prefix - for DESC'
        -
          name: fields
          in: query
          schema:
            type: string
          description: Comma-separated field names (sparse fieldset)
      responses:
        '200':
          description: OK
        '401':
          description: Unauthorized
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/ProblemDetails'
        '403':
          description: Forbidden
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/ProblemDetails'
        '429':
          description: Rate limit exceeded
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/ProblemDetails'
    post:
      operationId: createCustomerGroups
      summary: Create customer_groups
      tags:
        - Resources
      security:
        -
          BearerAuth: []
      requestBody:
        required: true
        content:
          application/json:
            schema:
              type: object
              properties:
                groupid:
                  type: integer
                customer_id:
                  type: integer
              required:
                - groupid
                - customer_id
      responses:
        '201':
          description: Created
        '401':
          description: Unauthorized
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/ProblemDetails'
        '403':
          description: Forbidden
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/ProblemDetails'
        '429':
          description: Rate limit exceeded
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/ProblemDetails'
  /customer_groups/{id}:
    get:
      operationId: getCustomerGroupsById
      summary: Get customer_groups by ID
      tags:
        - Resources
      security:
        -
          BearerAuth: []
      parameters:
        -
          name: id
          in: path
          required: true
          schema:
            type: integer
      responses:
        '200':
          description: OK
        '401':
          description: Unauthorized
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/ProblemDetails'
        '403':
          description: Forbidden
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/ProblemDetails'
        '429':
          description: Rate limit exceeded
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/ProblemDetails'
    put:
      operationId: updateCustomerGroups
      summary: Update customer_groups
      tags:
        - Resources
      security:
        -
          BearerAuth: []
      parameters:
        -
          name: id
          in: path
          required: true
          schema:
            type: integer
      requestBody:
        required: true
        content:
          application/json:
            schema:
              type: object
              properties:
                groupid:
                  type: integer
                customer_id:
                  type: integer
              additionalProperties: true
      responses:
        '200':
          description: OK
        '401':
          description: Unauthorized
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/ProblemDetails'
        '403':
          description: Forbidden
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/ProblemDetails'
        '429':
          description: Rate limit exceeded
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/ProblemDetails'
    delete:
      operationId: deleteCustomerGroups
      summary: Delete customer_groups
      tags:
        - Resources
      security:
        -
          BearerAuth: []
      parameters:
        -
          name: id
          in: path
          required: true
          schema:
            type: integer
      responses:
        '200':
          description: Deleted
        '401':
          description: Unauthorized
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/ProblemDetails'
        '403':
          description: Forbidden
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/ProblemDetails'
        '429':
          description: Rate limit exceeded
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/ProblemDetails'
  /customer_groups/schema:
    get:
      operationId: schemaCustomerGroups
      summary: Schema of customer_groups
      tags:
        - Resources
      security:
        -
          BearerAuth: []
      responses:
        '200':
          description: OK
        '401':
          description: Unauthorized
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/ProblemDetails'
        '403':
          description: Forbidden
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/ProblemDetails'
        '429':
          description: Rate limit exceeded
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/ProblemDetails'
  /items_groups:
    get:
      operationId: listItemsGroups
      summary: List items_groups
      tags:
        - Resources
      security:
        -
          BearerAuth: []
      parameters:
        -
          name: page
          in: query
          schema:
            type: integer
            default: 1
        -
          name: per_page
          in: query
          schema:
            type: integer
            default: 25
            maximum: 1000
        -
          name: sort
          in: query
          schema:
            type: string
          description: 'Comma-separated fields, prefix - for DESC'
        -
          name: fields
          in: query
          schema:
            type: string
          description: Comma-separated field names (sparse fieldset)
      responses:
        '200':
          description: OK
        '401':
          description: Unauthorized
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/ProblemDetails'
        '403':
          description: Forbidden
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/ProblemDetails'
        '429':
          description: Rate limit exceeded
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/ProblemDetails'
    post:
      operationId: createItemsGroups
      summary: Create items_groups
      tags:
        - Resources
      security:
        -
          BearerAuth: []
      requestBody:
        required: true
        content:
          application/json:
            schema:
              type: object
              properties:
                name:
                  type: string
              required:
                - name
      responses:
        '201':
          description: Created
        '401':
          description: Unauthorized
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/ProblemDetails'
        '403':
          description: Forbidden
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/ProblemDetails'
        '429':
          description: Rate limit exceeded
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/ProblemDetails'
  /items_groups/{id}:
    get:
      operationId: getItemsGroupsById
      summary: Get items_groups by ID
      tags:
        - Resources
      security:
        -
          BearerAuth: []
      parameters:
        -
          name: id
          in: path
          required: true
          schema:
            type: integer
      responses:
        '200':
          description: OK
        '401':
          description: Unauthorized
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/ProblemDetails'
        '403':
          description: Forbidden
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/ProblemDetails'
        '429':
          description: Rate limit exceeded
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/ProblemDetails'
    put:
      operationId: updateItemsGroups
      summary: Update items_groups
      tags:
        - Resources
      security:
        -
          BearerAuth: []
      parameters:
        -
          name: id
          in: path
          required: true
          schema:
            type: integer
      requestBody:
        required: true
        content:
          application/json:
            schema:
              type: object
              properties:
                name:
                  type: string
              additionalProperties: true
      responses:
        '200':
          description: OK
        '401':
          description: Unauthorized
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/ProblemDetails'
        '403':
          description: Forbidden
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/ProblemDetails'
        '429':
          description: Rate limit exceeded
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/ProblemDetails'
    delete:
      operationId: deleteItemsGroups
      summary: Delete items_groups
      tags:
        - Resources
      security:
        -
          BearerAuth: []
      parameters:
        -
          name: id
          in: path
          required: true
          schema:
            type: integer
      responses:
        '200':
          description: Deleted
        '401':
          description: Unauthorized
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/ProblemDetails'
        '403':
          description: Forbidden
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/ProblemDetails'
        '429':
          description: Rate limit exceeded
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/ProblemDetails'
  /items_groups/schema:
    get:
      operationId: schemaItemsGroups
      summary: Schema of items_groups
      tags:
        - Resources
      security:
        -
          BearerAuth: []
      responses:
        '200':
          description: OK
        '401':
          description: Unauthorized
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/ProblemDetails'
        '403':
          description: Forbidden
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/ProblemDetails'
        '429':
          description: Rate limit exceeded
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/ProblemDetails'
  /invoicepaymentrecords:
    get:
      operationId: listInvoicepaymentrecords
      summary: List invoicepaymentrecords
      tags:
        - Resources
      security:
        -
          BearerAuth: []
      parameters:
        -
          name: page
          in: query
          schema:
            type: integer
            default: 1
        -
          name: per_page
          in: query
          schema:
            type: integer
            default: 25
            maximum: 1000
        -
          name: sort
          in: query
          schema:
            type: string
          description: 'Comma-separated fields, prefix - for DESC'
        -
          name: fields
          in: query
          schema:
            type: string
          description: Comma-separated field names (sparse fieldset)
      responses:
        '200':
          description: OK
        '401':
          description: Unauthorized
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/ProblemDetails'
        '403':
          description: Forbidden
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/ProblemDetails'
        '429':
          description: Rate limit exceeded
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/ProblemDetails'
    post:
      operationId: createInvoicepaymentrecords
      summary: Create invoicepaymentrecords
      tags:
        - Resources
      security:
        -
          BearerAuth: []
      requestBody:
        required: true
        content:
          application/json:
            schema:
              type: object
              properties:
                invoiceid:
                  type: integer
                amount:
                  type: number
                paymentmode:
                  type: string
                paymentmethod:
                  type: string
                date:
                  type: string
                  format: date-time
                  example: '2026-04-01 09:15:30'
                daterecorded:
                  type: string
                  format: date-time
                  example: '2026-04-01 09:15:30'
                note:
                  type: string
                transactionid:
                  type: string
              required:
                - invoiceid
                - amount
                - date
                - daterecorded
      responses:
        '201':
          description: Created
        '401':
          description: Unauthorized
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/ProblemDetails'
        '403':
          description: Forbidden
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/ProblemDetails'
        '429':
          description: Rate limit exceeded
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/ProblemDetails'
  /invoicepaymentrecords/{id}:
    get:
      operationId: getInvoicepaymentrecordsById
      summary: Get invoicepaymentrecords by ID
      tags:
        - Resources
      security:
        -
          BearerAuth: []
      parameters:
        -
          name: id
          in: path
          required: true
          schema:
            type: integer
      responses:
        '200':
          description: OK
        '401':
          description: Unauthorized
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/ProblemDetails'
        '403':
          description: Forbidden
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/ProblemDetails'
        '429':
          description: Rate limit exceeded
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/ProblemDetails'
    put:
      operationId: updateInvoicepaymentrecords
      summary: Update invoicepaymentrecords
      tags:
        - Resources
      security:
        -
          BearerAuth: []
      parameters:
        -
          name: id
          in: path
          required: true
          schema:
            type: integer
      requestBody:
        required: true
        content:
          application/json:
            schema:
              type: object
              properties:
                invoiceid:
                  type: integer
                amount:
                  type: number
                paymentmode:
                  type: string
                paymentmethod:
                  type: string
                date:
                  type: string
                  format: date-time
                  example: '2026-04-01 09:15:30'
                daterecorded:
                  type: string
                  format: date-time
                  example: '2026-04-01 09:15:30'
                note:
                  type: string
                transactionid:
                  type: string
              additionalProperties: true
      responses:
        '200':
          description: OK
        '401':
          description: Unauthorized
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/ProblemDetails'
        '403':
          description: Forbidden
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/ProblemDetails'
        '429':
          description: Rate limit exceeded
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/ProblemDetails'
    delete:
      operationId: deleteInvoicepaymentrecords
      summary: Delete invoicepaymentrecords
      tags:
        - Resources
      security:
        -
          BearerAuth: []
      parameters:
        -
          name: id
          in: path
          required: true
          schema:
            type: integer
      responses:
        '200':
          description: Deleted
        '401':
          description: Unauthorized
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/ProblemDetails'
        '403':
          description: Forbidden
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/ProblemDetails'
        '429':
          description: Rate limit exceeded
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/ProblemDetails'
  /invoicepaymentrecords/schema:
    get:
      operationId: schemaInvoicepaymentrecords
      summary: Schema of invoicepaymentrecords
      tags:
        - Resources
      security:
        -
          BearerAuth: []
      responses:
        '200':
          description: OK
        '401':
          description: Unauthorized
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/ProblemDetails'
        '403':
          description: Forbidden
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/ProblemDetails'
        '429':
          description: Rate limit exceeded
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/ProblemDetails'
  /invoices:
    get:
      operationId: listInvoices
      summary: List invoices
      tags:
        - Resources
      security:
        -
          BearerAuth: []
      parameters:
        -
          name: page
          in: query
          schema:
            type: integer
            default: 1
        -
          name: per_page
          in: query
          schema:
            type: integer
            default: 25
            maximum: 1000
        -
          name: sort
          in: query
          schema:
            type: string
          description: 'Comma-separated fields, prefix - for DESC'
        -
          name: fields
          in: query
          schema:
            type: string
          description: Comma-separated field names (sparse fieldset)
      responses:
        '200':
          description: OK
        '401':
          description: Unauthorized
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/ProblemDetails'
        '403':
          description: Forbidden
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/ProblemDetails'
        '429':
          description: Rate limit exceeded
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/ProblemDetails'
    post:
      operationId: createInvoices
      summary: Create invoices
      tags:
        - Resources
      security:
        -
          BearerAuth: []
      requestBody:
        required: true
        content:
          application/json:
            schema:
              type: object
              properties:
                sent:
                  type: integer
                datesend:
                  type: string
                  format: date-time
                  example: '2026-04-01 09:15:30'
                clientid:
                  type: integer
                deleted_customer_name:
                  type: string
                number:
                  type: integer
                prefix:
                  type: string
                number_format:
                  type: integer
                formatted_number:
                  type: string
                date:
                  type: string
                  format: date-time
                  example: '2026-04-01 09:15:30'
                duedate:
                  type: string
                  format: date-time
                  example: '2026-04-01 09:15:30'
                currency:
                  type: integer
                subtotal:
                  type: number
                total_tax:
                  type: number
                total:
                  type: number
                adjustment:
                  type: number
                status:
                  type: integer
                clientnote:
                  type: string
                adminnote:
                  type: string
                last_overdue_reminder:
                  type: string
                  format: date-time
                  example: '2026-04-01 09:15:30'
                last_due_reminder:
                  type: string
                  format: date-time
                  example: '2026-04-01 09:15:30'
                cancel_overdue_reminders:
                  type: integer
                allowed_payment_modes:
                  type: string
                discount_percent:
                  type: number
                discount_total:
                  type: number
                discount_type:
                  type: string
                recurring:
                  type: integer
                recurring_type:
                  type: string
                custom_recurring:
                  type: integer
                cycles:
                  type: integer
                total_cycles:
                  type: integer
                is_recurring_from:
                  type: integer
                last_recurring_date:
                  type: string
                  format: date-time
                  example: '2026-04-01 09:15:30'
                terms:
                  type: string
                sale_agent:
                  type: integer
                billing_street:
                  type: string
                billing_city:
                  type: string
                billing_state:
                  type: string
                billing_zip:
                  type: string
                billing_country:
                  type: integer
                shipping_street:
                  type: string
                shipping_city:
                  type: string
                shipping_state:
                  type: string
                shipping_zip:
                  type: string
                shipping_country:
                  type: integer
                include_shipping:
                  type: integer
                show_shipping_on_invoice:
                  type: integer
                show_quantity_as:
                  type: integer
                project_id:
                  type: integer
                subscription_id:
                  type: integer
                short_link:
                  type: string
              required:
                - clientid
                - number
                - date
                - currency
                - subtotal
                - total
                - discount_type
                - include_shipping
      responses:
        '201':
          description: Created
        '401':
          description: Unauthorized
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/ProblemDetails'
        '403':
          description: Forbidden
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/ProblemDetails'
        '429':
          description: Rate limit exceeded
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/ProblemDetails'
  /invoices/{id}:
    get:
      operationId: getInvoicesById
      summary: Get invoices by ID
      tags:
        - Resources
      security:
        -
          BearerAuth: []
      parameters:
        -
          name: id
          in: path
          required: true
          schema:
            type: integer
      responses:
        '200':
          description: OK
        '401':
          description: Unauthorized
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/ProblemDetails'
        '403':
          description: Forbidden
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/ProblemDetails'
        '429':
          description: Rate limit exceeded
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/ProblemDetails'
    put:
      operationId: updateInvoices
      summary: Update invoices
      tags:
        - Resources
      security:
        -
          BearerAuth: []
      parameters:
        -
          name: id
          in: path
          required: true
          schema:
            type: integer
      requestBody:
        required: true
        content:
          application/json:
            schema:
              type: object
              properties:
                sent:
                  type: integer
                datesend:
                  type: string
                  format: date-time
                  example: '2026-04-01 09:15:30'
                clientid:
                  type: integer
                deleted_customer_name:
                  type: string
                number:
                  type: integer
                prefix:
                  type: string
                number_format:
                  type: integer
                formatted_number:
                  type: string
                date:
                  type: string
                  format: date-time
                  example: '2026-04-01 09:15:30'
                duedate:
                  type: string
                  format: date-time
                  example: '2026-04-01 09:15:30'
                currency:
                  type: integer
                subtotal:
                  type: number
                total_tax:
                  type: number
                total:
                  type: number
                adjustment:
                  type: number
                status:
                  type: integer
                clientnote:
                  type: string
                adminnote:
                  type: string
                last_overdue_reminder:
                  type: string
                  format: date-time
                  example: '2026-04-01 09:15:30'
                last_due_reminder:
                  type: string
                  format: date-time
                  example: '2026-04-01 09:15:30'
                cancel_overdue_reminders:
                  type: integer
                allowed_payment_modes:
                  type: string
                discount_percent:
                  type: number
                discount_total:
                  type: number
                discount_type:
                  type: string
                recurring:
                  type: integer
                recurring_type:
                  type: string
                custom_recurring:
                  type: integer
                cycles:
                  type: integer
                total_cycles:
                  type: integer
                is_recurring_from:
                  type: integer
                last_recurring_date:
                  type: string
                  format: date-time
                  example: '2026-04-01 09:15:30'
                terms:
                  type: string
                sale_agent:
                  type: integer
                billing_street:
                  type: string
                billing_city:
                  type: string
                billing_state:
                  type: string
                billing_zip:
                  type: string
                billing_country:
                  type: integer
                shipping_street:
                  type: string
                shipping_city:
                  type: string
                shipping_state:
                  type: string
                shipping_zip:
                  type: string
                shipping_country:
                  type: integer
                include_shipping:
                  type: integer
                show_shipping_on_invoice:
                  type: integer
                show_quantity_as:
                  type: integer
                project_id:
                  type: integer
                subscription_id:
                  type: integer
                short_link:
                  type: string
              additionalProperties: true
      responses:
        '200':
          description: OK
        '401':
          description: Unauthorized
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/ProblemDetails'
        '403':
          description: Forbidden
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/ProblemDetails'
        '429':
          description: Rate limit exceeded
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/ProblemDetails'
    delete:
      operationId: deleteInvoices
      summary: Delete invoices
      tags:
        - Resources
      security:
        -
          BearerAuth: []
      parameters:
        -
          name: id
          in: path
          required: true
          schema:
            type: integer
      responses:
        '200':
          description: Deleted
        '401':
          description: Unauthorized
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/ProblemDetails'
        '403':
          description: Forbidden
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/ProblemDetails'
        '429':
          description: Rate limit exceeded
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/ProblemDetails'
  /invoices/schema:
    get:
      operationId: schemaInvoices
      summary: Schema of invoices
      tags:
        - Resources
      security:
        -
          BearerAuth: []
      responses:
        '200':
          description: OK
        '401':
          description: Unauthorized
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/ProblemDetails'
        '403':
          description: Forbidden
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/ProblemDetails'
        '429':
          description: Rate limit exceeded
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/ProblemDetails'
  /item_tax:
    get:
      operationId: listItemTax
      summary: List item_tax
      tags:
        - Resources
      security:
        -
          BearerAuth: []
      parameters:
        -
          name: page
          in: query
          schema:
            type: integer
            default: 1
        -
          name: per_page
          in: query
          schema:
            type: integer
            default: 25
            maximum: 1000
        -
          name: sort
          in: query
          schema:
            type: string
          description: 'Comma-separated fields, prefix - for DESC'
        -
          name: fields
          in: query
          schema:
            type: string
          description: Comma-separated field names (sparse fieldset)
      responses:
        '200':
          description: OK
        '401':
          description: Unauthorized
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/ProblemDetails'
        '403':
          description: Forbidden
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/ProblemDetails'
        '429':
          description: Rate limit exceeded
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/ProblemDetails'
    post:
      operationId: createItemTax
      summary: Create item_tax
      tags:
        - Resources
      security:
        -
          BearerAuth: []
      requestBody:
        required: true
        content:
          application/json:
            schema:
              type: object
              properties:
                itemid:
                  type: integer
                rel_id:
                  type: integer
                rel_type:
                  type: string
                taxrate:
                  type: number
                taxname:
                  type: string
              required:
                - itemid
                - rel_id
                - rel_type
                - taxrate
                - taxname
      responses:
        '201':
          description: Created
        '401':
          description: Unauthorized
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/ProblemDetails'
        '403':
          description: Forbidden
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/ProblemDetails'
        '429':
          description: Rate limit exceeded
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/ProblemDetails'
  /item_tax/{id}:
    get:
      operationId: getItemTaxById
      summary: Get item_tax by ID
      tags:
        - Resources
      security:
        -
          BearerAuth: []
      parameters:
        -
          name: id
          in: path
          required: true
          schema:
            type: integer
      responses:
        '200':
          description: OK
        '401':
          description: Unauthorized
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/ProblemDetails'
        '403':
          description: Forbidden
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/ProblemDetails'
        '429':
          description: Rate limit exceeded
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/ProblemDetails'
    put:
      operationId: updateItemTax
      summary: Update item_tax
      tags:
        - Resources
      security:
        -
          BearerAuth: []
      parameters:
        -
          name: id
          in: path
          required: true
          schema:
            type: integer
      requestBody:
        required: true
        content:
          application/json:
            schema:
              type: object
              properties:
                itemid:
                  type: integer
                rel_id:
                  type: integer
                rel_type:
                  type: string
                taxrate:
                  type: number
                taxname:
                  type: string
              additionalProperties: true
      responses:
        '200':
          description: OK
        '401':
          description: Unauthorized
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/ProblemDetails'
        '403':
          description: Forbidden
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/ProblemDetails'
        '429':
          description: Rate limit exceeded
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/ProblemDetails'
    delete:
      operationId: deleteItemTax
      summary: Delete item_tax
      tags:
        - Resources
      security:
        -
          BearerAuth: []
      parameters:
        -
          name: id
          in: path
          required: true
          schema:
            type: integer
      responses:
        '200':
          description: Deleted
        '401':
          description: Unauthorized
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/ProblemDetails'
        '403':
          description: Forbidden
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/ProblemDetails'
        '429':
          description: Rate limit exceeded
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/ProblemDetails'
  /item_tax/schema:
    get:
      operationId: schemaItemTax
      summary: Schema of item_tax
      tags:
        - Resources
      security:
        -
          BearerAuth: []
      responses:
        '200':
          description: OK
        '401':
          description: Unauthorized
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/ProblemDetails'
        '403':
          description: Forbidden
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/ProblemDetails'
        '429':
          description: Rate limit exceeded
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/ProblemDetails'
  /itemable:
    get:
      operationId: listItemable
      summary: List itemable
      tags:
        - Resources
      security:
        -
          BearerAuth: []
      parameters:
        -
          name: page
          in: query
          schema:
            type: integer
            default: 1
        -
          name: per_page
          in: query
          schema:
            type: integer
            default: 25
            maximum: 1000
        -
          name: sort
          in: query
          schema:
            type: string
          description: 'Comma-separated fields, prefix - for DESC'
        -
          name: fields
          in: query
          schema:
            type: string
          description: Comma-separated field names (sparse fieldset)
      responses:
        '200':
          description: OK
        '401':
          description: Unauthorized
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/ProblemDetails'
        '403':
          description: Forbidden
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/ProblemDetails'
        '429':
          description: Rate limit exceeded
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/ProblemDetails'
    post:
      operationId: createItemable
      summary: Create itemable
      tags:
        - Resources
      security:
        -
          BearerAuth: []
      requestBody:
        required: true
        content:
          application/json:
            schema:
              type: object
              properties:
                rel_id:
                  type: integer
                rel_type:
                  type: string
                description:
                  type: string
                long_description:
                  type: string
                qty:
                  type: number
                rate:
                  type: number
                unit:
                  type: string
                is_optional:
                  type: integer
                is_selected:
                  type: integer
                item_order:
                  type: integer
              required:
                - rel_id
                - rel_type
                - description
                - qty
                - rate
      responses:
        '201':
          description: Created
        '401':
          description: Unauthorized
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/ProblemDetails'
        '403':
          description: Forbidden
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/ProblemDetails'
        '429':
          description: Rate limit exceeded
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/ProblemDetails'
  /itemable/{id}:
    get:
      operationId: getItemableById
      summary: Get itemable by ID
      tags:
        - Resources
      security:
        -
          BearerAuth: []
      parameters:
        -
          name: id
          in: path
          required: true
          schema:
            type: integer
      responses:
        '200':
          description: OK
        '401':
          description: Unauthorized
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/ProblemDetails'
        '403':
          description: Forbidden
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/ProblemDetails'
        '429':
          description: Rate limit exceeded
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/ProblemDetails'
    put:
      operationId: updateItemable
      summary: Update itemable
      tags:
        - Resources
      security:
        -
          BearerAuth: []
      parameters:
        -
          name: id
          in: path
          required: true
          schema:
            type: integer
      requestBody:
        required: true
        content:
          application/json:
            schema:
              type: object
              properties:
                rel_id:
                  type: integer
                rel_type:
                  type: string
                description:
                  type: string
                long_description:
                  type: string
                qty:
                  type: number
                rate:
                  type: number
                unit:
                  type: string
                is_optional:
                  type: integer
                is_selected:
                  type: integer
                item_order:
                  type: integer
              additionalProperties: true
      responses:
        '200':
          description: OK
        '401':
          description: Unauthorized
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/ProblemDetails'
        '403':
          description: Forbidden
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/ProblemDetails'
        '429':
          description: Rate limit exceeded
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/ProblemDetails'
    delete:
      operationId: deleteItemable
      summary: Delete itemable
      tags:
        - Resources
      security:
        -
          BearerAuth: []
      parameters:
        -
          name: id
          in: path
          required: true
          schema:
            type: integer
      responses:
        '200':
          description: Deleted
        '401':
          description: Unauthorized
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/ProblemDetails'
        '403':
          description: Forbidden
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/ProblemDetails'
        '429':
          description: Rate limit exceeded
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/ProblemDetails'
  /itemable/schema:
    get:
      operationId: schemaItemable
      summary: Schema of itemable
      tags:
        - Resources
      security:
        -
          BearerAuth: []
      responses:
        '200':
          description: OK
        '401':
          description: Unauthorized
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/ProblemDetails'
        '403':
          description: Forbidden
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/ProblemDetails'
        '429':
          description: Rate limit exceeded
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/ProblemDetails'
  /items:
    get:
      operationId: listItems
      summary: List items
      tags:
        - Resources
      security:
        -
          BearerAuth: []
      parameters:
        -
          name: page
          in: query
          schema:
            type: integer
            default: 1
        -
          name: per_page
          in: query
          schema:
            type: integer
            default: 25
            maximum: 1000
        -
          name: sort
          in: query
          schema:
            type: string
          description: 'Comma-separated fields, prefix - for DESC'
        -
          name: fields
          in: query
          schema:
            type: string
          description: Comma-separated field names (sparse fieldset)
      responses:
        '200':
          description: OK
        '401':
          description: Unauthorized
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/ProblemDetails'
        '403':
          description: Forbidden
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/ProblemDetails'
        '429':
          description: Rate limit exceeded
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/ProblemDetails'
    post:
      operationId: createItems
      summary: Create items
      tags:
        - Resources
      security:
        -
          BearerAuth: []
      requestBody:
        required: true
        content:
          application/json:
            schema:
              type: object
              properties:
                description:
                  type: string
                long_description:
                  type: string
                rate:
                  type: number
                tax:
                  type: integer
                tax2:
                  type: integer
                unit:
                  type: string
                group_id:
                  type: integer
              required:
                - description
                - rate
      responses:
        '201':
          description: Created
        '401':
          description: Unauthorized
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/ProblemDetails'
        '403':
          description: Forbidden
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/ProblemDetails'
        '429':
          description: Rate limit exceeded
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/ProblemDetails'
  /items/{id}:
    get:
      operationId: getItemsById
      summary: Get items by ID
      tags:
        - Resources
      security:
        -
          BearerAuth: []
      parameters:
        -
          name: id
          in: path
          required: true
          schema:
            type: integer
      responses:
        '200':
          description: OK
        '401':
          description: Unauthorized
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/ProblemDetails'
        '403':
          description: Forbidden
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/ProblemDetails'
        '429':
          description: Rate limit exceeded
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/ProblemDetails'
    put:
      operationId: updateItems
      summary: Update items
      tags:
        - Resources
      security:
        -
          BearerAuth: []
      parameters:
        -
          name: id
          in: path
          required: true
          schema:
            type: integer
      requestBody:
        required: true
        content:
          application/json:
            schema:
              type: object
              properties:
                description:
                  type: string
                long_description:
                  type: string
                rate:
                  type: number
                tax:
                  type: integer
                tax2:
                  type: integer
                unit:
                  type: string
                group_id:
                  type: integer
              additionalProperties: true
      responses:
        '200':
          description: OK
        '401':
          description: Unauthorized
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/ProblemDetails'
        '403':
          description: Forbidden
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/ProblemDetails'
        '429':
          description: Rate limit exceeded
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/ProblemDetails'
    delete:
      operationId: deleteItems
      summary: Delete items
      tags:
        - Resources
      security:
        -
          BearerAuth: []
      parameters:
        -
          name: id
          in: path
          required: true
          schema:
            type: integer
      responses:
        '200':
          description: Deleted
        '401':
          description: Unauthorized
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/ProblemDetails'
        '403':
          description: Forbidden
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/ProblemDetails'
        '429':
          description: Rate limit exceeded
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/ProblemDetails'
  /items/schema:
    get:
      operationId: schemaItems
      summary: Schema of items
      tags:
        - Resources
      security:
        -
          BearerAuth: []
      responses:
        '200':
          description: OK
        '401':
          description: Unauthorized
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/ProblemDetails'
        '403':
          description: Forbidden
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/ProblemDetails'
        '429':
          description: Rate limit exceeded
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/ProblemDetails'
  /knowledge_base_groups:
    get:
      operationId: listKnowledgeBaseGroups
      summary: List knowledge_base_groups
      tags:
        - Resources
      security:
        -
          BearerAuth: []
      parameters:
        -
          name: page
          in: query
          schema:
            type: integer
            default: 1
        -
          name: per_page
          in: query
          schema:
            type: integer
            default: 25
            maximum: 1000
        -
          name: sort
          in: query
          schema:
            type: string
          description: 'Comma-separated fields, prefix - for DESC'
        -
          name: fields
          in: query
          schema:
            type: string
          description: Comma-separated field names (sparse fieldset)
      responses:
        '200':
          description: OK
        '401':
          description: Unauthorized
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/ProblemDetails'
        '403':
          description: Forbidden
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/ProblemDetails'
        '429':
          description: Rate limit exceeded
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/ProblemDetails'
    post:
      operationId: createKnowledgeBaseGroups
      summary: Create knowledge_base_groups
      tags:
        - Resources
      security:
        -
          BearerAuth: []
      requestBody:
        required: true
        content:
          application/json:
            schema:
              type: object
              properties:
                name:
                  type: string
                group_slug:
                  type: string
                description:
                  type: string
                active:
                  type: integer
                color:
                  type: string
                group_order:
                  type: integer
              required:
                - name
                - active
      responses:
        '201':
          description: Created
        '401':
          description: Unauthorized
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/ProblemDetails'
        '403':
          description: Forbidden
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/ProblemDetails'
        '429':
          description: Rate limit exceeded
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/ProblemDetails'
  /knowledge_base_groups/{id}:
    get:
      operationId: getKnowledgeBaseGroupsById
      summary: Get knowledge_base_groups by ID
      tags:
        - Resources
      security:
        -
          BearerAuth: []
      parameters:
        -
          name: id
          in: path
          required: true
          schema:
            type: integer
      responses:
        '200':
          description: OK
        '401':
          description: Unauthorized
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/ProblemDetails'
        '403':
          description: Forbidden
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/ProblemDetails'
        '429':
          description: Rate limit exceeded
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/ProblemDetails'
    put:
      operationId: updateKnowledgeBaseGroups
      summary: Update knowledge_base_groups
      tags:
        - Resources
      security:
        -
          BearerAuth: []
      parameters:
        -
          name: id
          in: path
          required: true
          schema:
            type: integer
      requestBody:
        required: true
        content:
          application/json:
            schema:
              type: object
              properties:
                name:
                  type: string
                group_slug:
                  type: string
                description:
                  type: string
                active:
                  type: integer
                color:
                  type: string
                group_order:
                  type: integer
              additionalProperties: true
      responses:
        '200':
          description: OK
        '401':
          description: Unauthorized
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/ProblemDetails'
        '403':
          description: Forbidden
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/ProblemDetails'
        '429':
          description: Rate limit exceeded
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/ProblemDetails'
    delete:
      operationId: deleteKnowledgeBaseGroups
      summary: Delete knowledge_base_groups
      tags:
        - Resources
      security:
        -
          BearerAuth: []
      parameters:
        -
          name: id
          in: path
          required: true
          schema:
            type: integer
      responses:
        '200':
          description: Deleted
        '401':
          description: Unauthorized
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/ProblemDetails'
        '403':
          description: Forbidden
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/ProblemDetails'
        '429':
          description: Rate limit exceeded
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/ProblemDetails'
  /knowledge_base_groups/schema:
    get:
      operationId: schemaKnowledgeBaseGroups
      summary: Schema of knowledge_base_groups
      tags:
        - Resources
      security:
        -
          BearerAuth: []
      responses:
        '200':
          description: OK
        '401':
          description: Unauthorized
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/ProblemDetails'
        '403':
          description: Forbidden
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/ProblemDetails'
        '429':
          description: Rate limit exceeded
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/ProblemDetails'
  /knowedge_base_article_feedback:
    get:
      operationId: listKnowedgeBaseArticleFeedback
      summary: List knowedge_base_article_feedback
      tags:
        - Resources
      security:
        -
          BearerAuth: []
      parameters:
        -
          name: page
          in: query
          schema:
            type: integer
            default: 1
        -
          name: per_page
          in: query
          schema:
            type: integer
            default: 25
            maximum: 1000
        -
          name: sort
          in: query
          schema:
            type: string
          description: 'Comma-separated fields, prefix - for DESC'
        -
          name: fields
          in: query
          schema:
            type: string
          description: Comma-separated field names (sparse fieldset)
      responses:
        '200':
          description: OK
        '401':
          description: Unauthorized
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/ProblemDetails'
        '403':
          description: Forbidden
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/ProblemDetails'
        '429':
          description: Rate limit exceeded
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/ProblemDetails'
    post:
      operationId: createKnowedgeBaseArticleFeedback
      summary: Create knowedge_base_article_feedback
      tags:
        - Resources
      security:
        -
          BearerAuth: []
      requestBody:
        required: true
        content:
          application/json:
            schema:
              type: object
              properties:
                articleid:
                  type: integer
                answer:
                  type: integer
                ip:
                  type: string
                date:
                  type: string
                  format: date-time
                  example: '2026-04-01 09:15:30'
              required:
                - articleid
                - answer
                - ip
                - date
      responses:
        '201':
          description: Created
        '401':
          description: Unauthorized
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/ProblemDetails'
        '403':
          description: Forbidden
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/ProblemDetails'
        '429':
          description: Rate limit exceeded
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/ProblemDetails'
  /knowedge_base_article_feedback/{id}:
    get:
      operationId: getKnowedgeBaseArticleFeedbackById
      summary: Get knowedge_base_article_feedback by ID
      tags:
        - Resources
      security:
        -
          BearerAuth: []
      parameters:
        -
          name: id
          in: path
          required: true
          schema:
            type: integer
      responses:
        '200':
          description: OK
        '401':
          description: Unauthorized
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/ProblemDetails'
        '403':
          description: Forbidden
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/ProblemDetails'
        '429':
          description: Rate limit exceeded
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/ProblemDetails'
    put:
      operationId: updateKnowedgeBaseArticleFeedback
      summary: Update knowedge_base_article_feedback
      tags:
        - Resources
      security:
        -
          BearerAuth: []
      parameters:
        -
          name: id
          in: path
          required: true
          schema:
            type: integer
      requestBody:
        required: true
        content:
          application/json:
            schema:
              type: object
              properties:
                articleid:
                  type: integer
                answer:
                  type: integer
                ip:
                  type: string
                date:
                  type: string
                  format: date-time
                  example: '2026-04-01 09:15:30'
              additionalProperties: true
      responses:
        '200':
          description: OK
        '401':
          description: Unauthorized
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/ProblemDetails'
        '403':
          description: Forbidden
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/ProblemDetails'
        '429':
          description: Rate limit exceeded
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/ProblemDetails'
    delete:
      operationId: deleteKnowedgeBaseArticleFeedback
      summary: Delete knowedge_base_article_feedback
      tags:
        - Resources
      security:
        -
          BearerAuth: []
      parameters:
        -
          name: id
          in: path
          required: true
          schema:
            type: integer
      responses:
        '200':
          description: Deleted
        '401':
          description: Unauthorized
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/ProblemDetails'
        '403':
          description: Forbidden
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/ProblemDetails'
        '429':
          description: Rate limit exceeded
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/ProblemDetails'
  /knowedge_base_article_feedback/schema:
    get:
      operationId: schemaKnowedgeBaseArticleFeedback
      summary: Schema of knowedge_base_article_feedback
      tags:
        - Resources
      security:
        -
          BearerAuth: []
      responses:
        '200':
          description: OK
        '401':
          description: Unauthorized
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/ProblemDetails'
        '403':
          description: Forbidden
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/ProblemDetails'
        '429':
          description: Rate limit exceeded
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/ProblemDetails'
  /knowledge_base:
    get:
      operationId: listKnowledgeBase
      summary: List knowledge_base
      tags:
        - Resources
      security:
        -
          BearerAuth: []
      parameters:
        -
          name: page
          in: query
          schema:
            type: integer
            default: 1
        -
          name: per_page
          in: query
          schema:
            type: integer
            default: 25
            maximum: 1000
        -
          name: sort
          in: query
          schema:
            type: string
          description: 'Comma-separated fields, prefix - for DESC'
        -
          name: fields
          in: query
          schema:
            type: string
          description: Comma-separated field names (sparse fieldset)
      responses:
        '200':
          description: OK
        '401':
          description: Unauthorized
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/ProblemDetails'
        '403':
          description: Forbidden
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/ProblemDetails'
        '429':
          description: Rate limit exceeded
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/ProblemDetails'
    post:
      operationId: createKnowledgeBase
      summary: Create knowledge_base
      tags:
        - Resources
      security:
        -
          BearerAuth: []
      requestBody:
        required: true
        content:
          application/json:
            schema:
              type: object
              properties:
                articlegroup:
                  type: integer
                subject:
                  type: string
                description:
                  type: string
                slug:
                  type: string
                active:
                  type: integer
                article_order:
                  type: integer
                staff_article:
                  type: integer
              required:
                - articlegroup
                - subject
                - description
                - slug
                - active
      responses:
        '201':
          description: Created
        '401':
          description: Unauthorized
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/ProblemDetails'
        '403':
          description: Forbidden
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/ProblemDetails'
        '429':
          description: Rate limit exceeded
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/ProblemDetails'
  /knowledge_base/{id}:
    get:
      operationId: getKnowledgeBaseById
      summary: Get knowledge_base by ID
      tags:
        - Resources
      security:
        -
          BearerAuth: []
      parameters:
        -
          name: id
          in: path
          required: true
          schema:
            type: integer
      responses:
        '200':
          description: OK
        '401':
          description: Unauthorized
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/ProblemDetails'
        '403':
          description: Forbidden
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/ProblemDetails'
        '429':
          description: Rate limit exceeded
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/ProblemDetails'
    put:
      operationId: updateKnowledgeBase
      summary: Update knowledge_base
      tags:
        - Resources
      security:
        -
          BearerAuth: []
      parameters:
        -
          name: id
          in: path
          required: true
          schema:
            type: integer
      requestBody:
        required: true
        content:
          application/json:
            schema:
              type: object
              properties:
                articlegroup:
                  type: integer
                subject:
                  type: string
                description:
                  type: string
                slug:
                  type: string
                active:
                  type: integer
                article_order:
                  type: integer
                staff_article:
                  type: integer
              additionalProperties: true
      responses:
        '200':
          description: OK
        '401':
          description: Unauthorized
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/ProblemDetails'
        '403':
          description: Forbidden
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/ProblemDetails'
        '429':
          description: Rate limit exceeded
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/ProblemDetails'
    delete:
      operationId: deleteKnowledgeBase
      summary: Delete knowledge_base
      tags:
        - Resources
      security:
        -
          BearerAuth: []
      parameters:
        -
          name: id
          in: path
          required: true
          schema:
            type: integer
      responses:
        '200':
          description: Deleted
        '401':
          description: Unauthorized
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/ProblemDetails'
        '403':
          description: Forbidden
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/ProblemDetails'
        '429':
          description: Rate limit exceeded
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/ProblemDetails'
  /knowledge_base/schema:
    get:
      operationId: schemaKnowledgeBase
      summary: Schema of knowledge_base
      tags:
        - Resources
      security:
        -
          BearerAuth: []
      responses:
        '200':
          description: OK
        '401':
          description: Unauthorized
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/ProblemDetails'
        '403':
          description: Forbidden
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/ProblemDetails'
        '429':
          description: Rate limit exceeded
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/ProblemDetails'
  /lead_activity_log:
    get:
      operationId: listLeadActivityLog
      summary: List lead_activity_log
      tags:
        - Resources
      security:
        -
          BearerAuth: []
      parameters:
        -
          name: page
          in: query
          schema:
            type: integer
            default: 1
        -
          name: per_page
          in: query
          schema:
            type: integer
            default: 25
            maximum: 1000
        -
          name: sort
          in: query
          schema:
            type: string
          description: 'Comma-separated fields, prefix - for DESC'
        -
          name: fields
          in: query
          schema:
            type: string
          description: Comma-separated field names (sparse fieldset)
      responses:
        '200':
          description: OK
        '401':
          description: Unauthorized
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/ProblemDetails'
        '403':
          description: Forbidden
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/ProblemDetails'
        '429':
          description: Rate limit exceeded
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/ProblemDetails'
    post:
      operationId: createLeadActivityLog
      summary: Create lead_activity_log
      tags:
        - Resources
      security:
        -
          BearerAuth: []
      requestBody:
        required: true
        content:
          application/json:
            schema:
              type: object
              properties:
                leadid:
                  type: integer
                description:
                  type: string
                additional_data:
                  type: string
                date:
                  type: string
                  format: date-time
                  example: '2026-04-01 09:15:30'
                staffid:
                  type: integer
                full_name:
                  type: string
                custom_activity:
                  type: integer
              required:
                - leadid
                - description
                - date
                - staffid
      responses:
        '201':
          description: Created
        '401':
          description: Unauthorized
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/ProblemDetails'
        '403':
          description: Forbidden
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/ProblemDetails'
        '429':
          description: Rate limit exceeded
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/ProblemDetails'
  /lead_activity_log/{id}:
    get:
      operationId: getLeadActivityLogById
      summary: Get lead_activity_log by ID
      tags:
        - Resources
      security:
        -
          BearerAuth: []
      parameters:
        -
          name: id
          in: path
          required: true
          schema:
            type: integer
      responses:
        '200':
          description: OK
        '401':
          description: Unauthorized
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/ProblemDetails'
        '403':
          description: Forbidden
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/ProblemDetails'
        '429':
          description: Rate limit exceeded
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/ProblemDetails'
    put:
      operationId: updateLeadActivityLog
      summary: Update lead_activity_log
      tags:
        - Resources
      security:
        -
          BearerAuth: []
      parameters:
        -
          name: id
          in: path
          required: true
          schema:
            type: integer
      requestBody:
        required: true
        content:
          application/json:
            schema:
              type: object
              properties:
                leadid:
                  type: integer
                description:
                  type: string
                additional_data:
                  type: string
                date:
                  type: string
                  format: date-time
                  example: '2026-04-01 09:15:30'
                staffid:
                  type: integer
                full_name:
                  type: string
                custom_activity:
                  type: integer
              additionalProperties: true
      responses:
        '200':
          description: OK
        '401':
          description: Unauthorized
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/ProblemDetails'
        '403':
          description: Forbidden
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/ProblemDetails'
        '429':
          description: Rate limit exceeded
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/ProblemDetails'
    delete:
      operationId: deleteLeadActivityLog
      summary: Delete lead_activity_log
      tags:
        - Resources
      security:
        -
          BearerAuth: []
      parameters:
        -
          name: id
          in: path
          required: true
          schema:
            type: integer
      responses:
        '200':
          description: Deleted
        '401':
          description: Unauthorized
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/ProblemDetails'
        '403':
          description: Forbidden
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/ProblemDetails'
        '429':
          description: Rate limit exceeded
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/ProblemDetails'
  /lead_activity_log/schema:
    get:
      operationId: schemaLeadActivityLog
      summary: Schema of lead_activity_log
      tags:
        - Resources
      security:
        -
          BearerAuth: []
      responses:
        '200':
          description: OK
        '401':
          description: Unauthorized
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/ProblemDetails'
        '403':
          description: Forbidden
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/ProblemDetails'
        '429':
          description: Rate limit exceeded
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/ProblemDetails'
  /lead_integration_emails:
    get:
      operationId: listLeadIntegrationEmails
      summary: List lead_integration_emails
      tags:
        - Resources
      security:
        -
          BearerAuth: []
      parameters:
        -
          name: page
          in: query
          schema:
            type: integer
            default: 1
        -
          name: per_page
          in: query
          schema:
            type: integer
            default: 25
            maximum: 1000
        -
          name: sort
          in: query
          schema:
            type: string
          description: 'Comma-separated fields, prefix - for DESC'
        -
          name: fields
          in: query
          schema:
            type: string
          description: Comma-separated field names (sparse fieldset)
      responses:
        '200':
          description: OK
        '401':
          description: Unauthorized
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/ProblemDetails'
        '403':
          description: Forbidden
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/ProblemDetails'
        '429':
          description: Rate limit exceeded
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/ProblemDetails'
    post:
      operationId: createLeadIntegrationEmails
      summary: Create lead_integration_emails
      tags:
        - Resources
      security:
        -
          BearerAuth: []
      requestBody:
        required: true
        content:
          application/json:
            schema:
              type: object
              properties:
                subject:
                  type: string
                body:
                  type: string
                leadid:
                  type: integer
                emailid:
                  type: integer
              required:
                - leadid
                - emailid
      responses:
        '201':
          description: Created
        '401':
          description: Unauthorized
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/ProblemDetails'
        '403':
          description: Forbidden
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/ProblemDetails'
        '429':
          description: Rate limit exceeded
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/ProblemDetails'
  /lead_integration_emails/{id}:
    get:
      operationId: getLeadIntegrationEmailsById
      summary: Get lead_integration_emails by ID
      tags:
        - Resources
      security:
        -
          BearerAuth: []
      parameters:
        -
          name: id
          in: path
          required: true
          schema:
            type: integer
      responses:
        '200':
          description: OK
        '401':
          description: Unauthorized
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/ProblemDetails'
        '403':
          description: Forbidden
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/ProblemDetails'
        '429':
          description: Rate limit exceeded
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/ProblemDetails'
    put:
      operationId: updateLeadIntegrationEmails
      summary: Update lead_integration_emails
      tags:
        - Resources
      security:
        -
          BearerAuth: []
      parameters:
        -
          name: id
          in: path
          required: true
          schema:
            type: integer
      requestBody:
        required: true
        content:
          application/json:
            schema:
              type: object
              properties:
                subject:
                  type: string
                body:
                  type: string
                leadid:
                  type: integer
                emailid:
                  type: integer
              additionalProperties: true
      responses:
        '200':
          description: OK
        '401':
          description: Unauthorized
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/ProblemDetails'
        '403':
          description: Forbidden
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/ProblemDetails'
        '429':
          description: Rate limit exceeded
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/ProblemDetails'
    delete:
      operationId: deleteLeadIntegrationEmails
      summary: Delete lead_integration_emails
      tags:
        - Resources
      security:
        -
          BearerAuth: []
      parameters:
        -
          name: id
          in: path
          required: true
          schema:
            type: integer
      responses:
        '200':
          description: Deleted
        '401':
          description: Unauthorized
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/ProblemDetails'
        '403':
          description: Forbidden
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/ProblemDetails'
        '429':
          description: Rate limit exceeded
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/ProblemDetails'
  /lead_integration_emails/schema:
    get:
      operationId: schemaLeadIntegrationEmails
      summary: Schema of lead_integration_emails
      tags:
        - Resources
      security:
        -
          BearerAuth: []
      responses:
        '200':
          description: OK
        '401':
          description: Unauthorized
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/ProblemDetails'
        '403':
          description: Forbidden
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/ProblemDetails'
        '429':
          description: Rate limit exceeded
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/ProblemDetails'
  /leads_sources:
    get:
      operationId: listLeadsSources
      summary: List leads_sources
      tags:
        - Resources
      security:
        -
          BearerAuth: []
      parameters:
        -
          name: page
          in: query
          schema:
            type: integer
            default: 1
        -
          name: per_page
          in: query
          schema:
            type: integer
            default: 25
            maximum: 1000
        -
          name: sort
          in: query
          schema:
            type: string
          description: 'Comma-separated fields, prefix - for DESC'
        -
          name: fields
          in: query
          schema:
            type: string
          description: Comma-separated field names (sparse fieldset)
      responses:
        '200':
          description: OK
        '401':
          description: Unauthorized
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/ProblemDetails'
        '403':
          description: Forbidden
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/ProblemDetails'
        '429':
          description: Rate limit exceeded
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/ProblemDetails'
    post:
      operationId: createLeadsSources
      summary: Create leads_sources
      tags:
        - Resources
      security:
        -
          BearerAuth: []
      requestBody:
        required: true
        content:
          application/json:
            schema:
              type: object
              properties:
                name:
                  type: string
              required:
                - name
      responses:
        '201':
          description: Created
        '401':
          description: Unauthorized
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/ProblemDetails'
        '403':
          description: Forbidden
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/ProblemDetails'
        '429':
          description: Rate limit exceeded
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/ProblemDetails'
  /leads_sources/{id}:
    get:
      operationId: getLeadsSourcesById
      summary: Get leads_sources by ID
      tags:
        - Resources
      security:
        -
          BearerAuth: []
      parameters:
        -
          name: id
          in: path
          required: true
          schema:
            type: integer
      responses:
        '200':
          description: OK
        '401':
          description: Unauthorized
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/ProblemDetails'
        '403':
          description: Forbidden
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/ProblemDetails'
        '429':
          description: Rate limit exceeded
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/ProblemDetails'
    put:
      operationId: updateLeadsSources
      summary: Update leads_sources
      tags:
        - Resources
      security:
        -
          BearerAuth: []
      parameters:
        -
          name: id
          in: path
          required: true
          schema:
            type: integer
      requestBody:
        required: true
        content:
          application/json:
            schema:
              type: object
              properties:
                name:
                  type: string
              additionalProperties: true
      responses:
        '200':
          description: OK
        '401':
          description: Unauthorized
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/ProblemDetails'
        '403':
          description: Forbidden
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/ProblemDetails'
        '429':
          description: Rate limit exceeded
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/ProblemDetails'
    delete:
      operationId: deleteLeadsSources
      summary: Delete leads_sources
      tags:
        - Resources
      security:
        -
          BearerAuth: []
      parameters:
        -
          name: id
          in: path
          required: true
          schema:
            type: integer
      responses:
        '200':
          description: Deleted
        '401':
          description: Unauthorized
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/ProblemDetails'
        '403':
          description: Forbidden
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/ProblemDetails'
        '429':
          description: Rate limit exceeded
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/ProblemDetails'
  /leads_sources/schema:
    get:
      operationId: schemaLeadsSources
      summary: Schema of leads_sources
      tags:
        - Resources
      security:
        -
          BearerAuth: []
      responses:
        '200':
          description: OK
        '401':
          description: Unauthorized
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/ProblemDetails'
        '403':
          description: Forbidden
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/ProblemDetails'
        '429':
          description: Rate limit exceeded
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/ProblemDetails'
  /leads_status:
    get:
      operationId: listLeadsStatus
      summary: List leads_status
      tags:
        - Resources
      security:
        -
          BearerAuth: []
      parameters:
        -
          name: page
          in: query
          schema:
            type: integer
            default: 1
        -
          name: per_page
          in: query
          schema:
            type: integer
            default: 25
            maximum: 1000
        -
          name: sort
          in: query
          schema:
            type: string
          description: 'Comma-separated fields, prefix - for DESC'
        -
          name: fields
          in: query
          schema:
            type: string
          description: Comma-separated field names (sparse fieldset)
      responses:
        '200':
          description: OK
        '401':
          description: Unauthorized
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/ProblemDetails'
        '403':
          description: Forbidden
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/ProblemDetails'
        '429':
          description: Rate limit exceeded
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/ProblemDetails'
    post:
      operationId: createLeadsStatus
      summary: Create leads_status
      tags:
        - Resources
      security:
        -
          BearerAuth: []
      requestBody:
        required: true
        content:
          application/json:
            schema:
              type: object
              properties:
                name:
                  type: string
                statusorder:
                  type: integer
                color:
                  type: string
                isdefault:
                  type: integer
              required:
                - name
      responses:
        '201':
          description: Created
        '401':
          description: Unauthorized
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/ProblemDetails'
        '403':
          description: Forbidden
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/ProblemDetails'
        '429':
          description: Rate limit exceeded
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/ProblemDetails'
  /leads_status/{id}:
    get:
      operationId: getLeadsStatusById
      summary: Get leads_status by ID
      tags:
        - Resources
      security:
        -
          BearerAuth: []
      parameters:
        -
          name: id
          in: path
          required: true
          schema:
            type: integer
      responses:
        '200':
          description: OK
        '401':
          description: Unauthorized
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/ProblemDetails'
        '403':
          description: Forbidden
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/ProblemDetails'
        '429':
          description: Rate limit exceeded
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/ProblemDetails'
    put:
      operationId: updateLeadsStatus
      summary: Update leads_status
      tags:
        - Resources
      security:
        -
          BearerAuth: []
      parameters:
        -
          name: id
          in: path
          required: true
          schema:
            type: integer
      requestBody:
        required: true
        content:
          application/json:
            schema:
              type: object
              properties:
                name:
                  type: string
                statusorder:
                  type: integer
                color:
                  type: string
                isdefault:
                  type: integer
              additionalProperties: true
      responses:
        '200':
          description: OK
        '401':
          description: Unauthorized
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/ProblemDetails'
        '403':
          description: Forbidden
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/ProblemDetails'
        '429':
          description: Rate limit exceeded
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/ProblemDetails'
    delete:
      operationId: deleteLeadsStatus
      summary: Delete leads_status
      tags:
        - Resources
      security:
        -
          BearerAuth: []
      parameters:
        -
          name: id
          in: path
          required: true
          schema:
            type: integer
      responses:
        '200':
          description: Deleted
        '401':
          description: Unauthorized
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/ProblemDetails'
        '403':
          description: Forbidden
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/ProblemDetails'
        '429':
          description: Rate limit exceeded
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/ProblemDetails'
  /leads_status/schema:
    get:
      operationId: schemaLeadsStatus
      summary: Schema of leads_status
      tags:
        - Resources
      security:
        -
          BearerAuth: []
      responses:
        '200':
          description: OK
        '401':
          description: Unauthorized
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/ProblemDetails'
        '403':
          description: Forbidden
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/ProblemDetails'
        '429':
          description: Rate limit exceeded
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/ProblemDetails'
  /leads:
    get:
      operationId: listLeads
      summary: List leads
      tags:
        - Resources
      security:
        -
          BearerAuth: []
      parameters:
        -
          name: page
          in: query
          schema:
            type: integer
            default: 1
        -
          name: per_page
          in: query
          schema:
            type: integer
            default: 25
            maximum: 1000
        -
          name: sort
          in: query
          schema:
            type: string
          description: 'Comma-separated fields, prefix - for DESC'
        -
          name: fields
          in: query
          schema:
            type: string
          description: Comma-separated field names (sparse fieldset)
      responses:
        '200':
          description: OK
        '401':
          description: Unauthorized
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/ProblemDetails'
        '403':
          description: Forbidden
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/ProblemDetails'
        '429':
          description: Rate limit exceeded
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/ProblemDetails'
    post:
      operationId: createLeads
      summary: Create leads
      tags:
        - Resources
      security:
        -
          BearerAuth: []
      requestBody:
        required: true
        content:
          application/json:
            schema:
              type: object
              properties:
                name:
                  type: string
                title:
                  type: string
                company:
                  type: string
                description:
                  type: string
                country:
                  type: integer
                zip:
                  type: string
                city:
                  type: string
                state:
                  type: string
                address:
                  type: string
                assigned:
                  type: integer
                from_form_id:
                  type: integer
                status:
                  type: integer
                source:
                  type: integer
                lastcontact:
                  type: string
                  format: date-time
                  example: '2026-04-01 09:15:30'
                dateassigned:
                  type: string
                  format: date-time
                  example: '2026-04-01 09:15:30'
                last_status_change:
                  type: string
                  format: date-time
                  example: '2026-04-01 09:15:30'
                email:
                  type: string
                website:
                  type: string
                leadorder:
                  type: integer
                phonenumber:
                  type: string
                date_converted:
                  type: string
                  format: date-time
                  example: '2026-04-01 09:15:30'
                lost:
                  type: integer
                junk:
                  type: integer
                last_lead_status:
                  type: integer
                is_imported_from_email_integration:
                  type: integer
                email_integration_uid:
                  type: string
                is_public:
                  type: integer
                default_language:
                  type: string
                client_id:
                  type: integer
                lead_value:
                  type: number
              required:
                - name
                - status
                - source
      responses:
        '201':
          description: Created
        '401':
          description: Unauthorized
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/ProblemDetails'
        '403':
          description: Forbidden
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/ProblemDetails'
        '429':
          description: Rate limit exceeded
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/ProblemDetails'
  /leads/{id}:
    get:
      operationId: getLeadsById
      summary: Get leads by ID
      tags:
        - Resources
      security:
        -
          BearerAuth: []
      parameters:
        -
          name: id
          in: path
          required: true
          schema:
            type: integer
      responses:
        '200':
          description: OK
        '401':
          description: Unauthorized
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/ProblemDetails'
        '403':
          description: Forbidden
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/ProblemDetails'
        '429':
          description: Rate limit exceeded
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/ProblemDetails'
    put:
      operationId: updateLeads
      summary: Update leads
      tags:
        - Resources
      security:
        -
          BearerAuth: []
      parameters:
        -
          name: id
          in: path
          required: true
          schema:
            type: integer
      requestBody:
        required: true
        content:
          application/json:
            schema:
              type: object
              properties:
                name:
                  type: string
                title:
                  type: string
                company:
                  type: string
                description:
                  type: string
                country:
                  type: integer
                zip:
                  type: string
                city:
                  type: string
                state:
                  type: string
                address:
                  type: string
                assigned:
                  type: integer
                from_form_id:
                  type: integer
                status:
                  type: integer
                source:
                  type: integer
                lastcontact:
                  type: string
                  format: date-time
                  example: '2026-04-01 09:15:30'
                dateassigned:
                  type: string
                  format: date-time
                  example: '2026-04-01 09:15:30'
                last_status_change:
                  type: string
                  format: date-time
                  example: '2026-04-01 09:15:30'
                email:
                  type: string
                website:
                  type: string
                leadorder:
                  type: integer
                phonenumber:
                  type: string
                date_converted:
                  type: string
                  format: date-time
                  example: '2026-04-01 09:15:30'
                lost:
                  type: integer
                junk:
                  type: integer
                last_lead_status:
                  type: integer
                is_imported_from_email_integration:
                  type: integer
                email_integration_uid:
                  type: string
                is_public:
                  type: integer
                default_language:
                  type: string
                client_id:
                  type: integer
                lead_value:
                  type: number
              additionalProperties: true
      responses:
        '200':
          description: OK
        '401':
          description: Unauthorized
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/ProblemDetails'
        '403':
          description: Forbidden
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/ProblemDetails'
        '429':
          description: Rate limit exceeded
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/ProblemDetails'
    delete:
      operationId: deleteLeads
      summary: Delete leads
      tags:
        - Resources
      security:
        -
          BearerAuth: []
      parameters:
        -
          name: id
          in: path
          required: true
          schema:
            type: integer
      responses:
        '200':
          description: Deleted
        '401':
          description: Unauthorized
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/ProblemDetails'
        '403':
          description: Forbidden
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/ProblemDetails'
        '429':
          description: Rate limit exceeded
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/ProblemDetails'
  /leads/schema:
    get:
      operationId: schemaLeads
      summary: Schema of leads
      tags:
        - Resources
      security:
        -
          BearerAuth: []
      responses:
        '200':
          description: OK
        '401':
          description: Unauthorized
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/ProblemDetails'
        '403':
          description: Forbidden
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/ProblemDetails'
        '429':
          description: Rate limit exceeded
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/ProblemDetails'
  /leads_email_integration:
    get:
      operationId: listLeadsEmailIntegration
      summary: List leads_email_integration
      tags:
        - Resources
      security:
        -
          BearerAuth: []
      parameters:
        -
          name: page
          in: query
          schema:
            type: integer
            default: 1
        -
          name: per_page
          in: query
          schema:
            type: integer
            default: 25
            maximum: 1000
        -
          name: sort
          in: query
          schema:
            type: string
          description: 'Comma-separated fields, prefix - for DESC'
        -
          name: fields
          in: query
          schema:
            type: string
          description: Comma-separated field names (sparse fieldset)
      responses:
        '200':
          description: OK
        '401':
          description: Unauthorized
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/ProblemDetails'
        '403':
          description: Forbidden
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/ProblemDetails'
        '429':
          description: Rate limit exceeded
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/ProblemDetails'
    post:
      operationId: createLeadsEmailIntegration
      summary: Create leads_email_integration
      tags:
        - Resources
      security:
        -
          BearerAuth: []
      requestBody:
        required: true
        content:
          application/json:
            schema:
              type: object
              properties:
                active:
                  type: integer
                email:
                  type: string
                imap_server:
                  type: string
                check_every:
                  type: integer
                responsible:
                  type: integer
                lead_source:
                  type: integer
                lead_status:
                  type: integer
                encryption:
                  type: string
                folder:
                  type: string
                last_run:
                  type: string
                notify_lead_imported:
                  type: integer
                notify_lead_contact_more_times:
                  type: integer
                notify_type:
                  type: string
                notify_ids:
                  type: string
                mark_public:
                  type: integer
                only_loop_on_unseen_emails:
                  type: integer
                delete_after_import:
                  type: integer
                create_task_if_customer:
                  type: integer
              required:
                - active
                - email
                - imap_server
                - responsible
                - lead_source
                - lead_status
                - folder
      responses:
        '201':
          description: Created
        '401':
          description: Unauthorized
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/ProblemDetails'
        '403':
          description: Forbidden
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/ProblemDetails'
        '429':
          description: Rate limit exceeded
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/ProblemDetails'
  /leads_email_integration/{id}:
    get:
      operationId: getLeadsEmailIntegrationById
      summary: Get leads_email_integration by ID
      tags:
        - Resources
      security:
        -
          BearerAuth: []
      parameters:
        -
          name: id
          in: path
          required: true
          schema:
            type: integer
      responses:
        '200':
          description: OK
        '401':
          description: Unauthorized
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/ProblemDetails'
        '403':
          description: Forbidden
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/ProblemDetails'
        '429':
          description: Rate limit exceeded
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/ProblemDetails'
    put:
      operationId: updateLeadsEmailIntegration
      summary: Update leads_email_integration
      tags:
        - Resources
      security:
        -
          BearerAuth: []
      parameters:
        -
          name: id
          in: path
          required: true
          schema:
            type: integer
      requestBody:
        required: true
        content:
          application/json:
            schema:
              type: object
              properties:
                active:
                  type: integer
                email:
                  type: string
                imap_server:
                  type: string
                check_every:
                  type: integer
                responsible:
                  type: integer
                lead_source:
                  type: integer
                lead_status:
                  type: integer
                encryption:
                  type: string
                folder:
                  type: string
                last_run:
                  type: string
                notify_lead_imported:
                  type: integer
                notify_lead_contact_more_times:
                  type: integer
                notify_type:
                  type: string
                notify_ids:
                  type: string
                mark_public:
                  type: integer
                only_loop_on_unseen_emails:
                  type: integer
                delete_after_import:
                  type: integer
                create_task_if_customer:
                  type: integer
              additionalProperties: true
      responses:
        '200':
          description: OK
        '401':
          description: Unauthorized
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/ProblemDetails'
        '403':
          description: Forbidden
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/ProblemDetails'
        '429':
          description: Rate limit exceeded
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/ProblemDetails'
    delete:
      operationId: deleteLeadsEmailIntegration
      summary: Delete leads_email_integration
      tags:
        - Resources
      security:
        -
          BearerAuth: []
      parameters:
        -
          name: id
          in: path
          required: true
          schema:
            type: integer
      responses:
        '200':
          description: Deleted
        '401':
          description: Unauthorized
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/ProblemDetails'
        '403':
          description: Forbidden
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/ProblemDetails'
        '429':
          description: Rate limit exceeded
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/ProblemDetails'
  /leads_email_integration/schema:
    get:
      operationId: schemaLeadsEmailIntegration
      summary: Schema of leads_email_integration
      tags:
        - Resources
      security:
        -
          BearerAuth: []
      responses:
        '200':
          description: OK
        '401':
          description: Unauthorized
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/ProblemDetails'
        '403':
          description: Forbidden
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/ProblemDetails'
        '429':
          description: Rate limit exceeded
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/ProblemDetails'
  /mail_queue:
    get:
      operationId: listMailQueue
      summary: List mail_queue
      tags:
        - Resources
      security:
        -
          BearerAuth: []
      parameters:
        -
          name: page
          in: query
          schema:
            type: integer
            default: 1
        -
          name: per_page
          in: query
          schema:
            type: integer
            default: 25
            maximum: 1000
        -
          name: sort
          in: query
          schema:
            type: string
          description: 'Comma-separated fields, prefix - for DESC'
        -
          name: fields
          in: query
          schema:
            type: string
          description: Comma-separated field names (sparse fieldset)
      responses:
        '200':
          description: OK
        '401':
          description: Unauthorized
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/ProblemDetails'
        '403':
          description: Forbidden
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/ProblemDetails'
        '429':
          description: Rate limit exceeded
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/ProblemDetails'
    post:
      operationId: createMailQueue
      summary: Create mail_queue
      tags:
        - Resources
      security:
        -
          BearerAuth: []
      requestBody:
        required: true
        content:
          application/json:
            schema:
              type: object
              properties:
                engine:
                  type: string
                email:
                  type: string
                cc:
                  type: string
                bcc:
                  type: string
                message:
                  type: string
                alt_message:
                  type: string
                status:
                  type: string
                date:
                  type: string
                  format: date-time
                  example: '2026-04-01 09:15:30'
                headers:
                  type: string
                attachments:
                  type: string
              required:
                - email
                - message
      responses:
        '201':
          description: Created
        '401':
          description: Unauthorized
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/ProblemDetails'
        '403':
          description: Forbidden
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/ProblemDetails'
        '429':
          description: Rate limit exceeded
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/ProblemDetails'
  /mail_queue/{id}:
    get:
      operationId: getMailQueueById
      summary: Get mail_queue by ID
      tags:
        - Resources
      security:
        -
          BearerAuth: []
      parameters:
        -
          name: id
          in: path
          required: true
          schema:
            type: integer
      responses:
        '200':
          description: OK
        '401':
          description: Unauthorized
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/ProblemDetails'
        '403':
          description: Forbidden
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/ProblemDetails'
        '429':
          description: Rate limit exceeded
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/ProblemDetails'
    put:
      operationId: updateMailQueue
      summary: Update mail_queue
      tags:
        - Resources
      security:
        -
          BearerAuth: []
      parameters:
        -
          name: id
          in: path
          required: true
          schema:
            type: integer
      requestBody:
        required: true
        content:
          application/json:
            schema:
              type: object
              properties:
                engine:
                  type: string
                email:
                  type: string
                cc:
                  type: string
                bcc:
                  type: string
                message:
                  type: string
                alt_message:
                  type: string
                status:
                  type: string
                date:
                  type: string
                  format: date-time
                  example: '2026-04-01 09:15:30'
                headers:
                  type: string
                attachments:
                  type: string
              additionalProperties: true
      responses:
        '200':
          description: OK
        '401':
          description: Unauthorized
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/ProblemDetails'
        '403':
          description: Forbidden
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/ProblemDetails'
        '429':
          description: Rate limit exceeded
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/ProblemDetails'
    delete:
      operationId: deleteMailQueue
      summary: Delete mail_queue
      tags:
        - Resources
      security:
        -
          BearerAuth: []
      parameters:
        -
          name: id
          in: path
          required: true
          schema:
            type: integer
      responses:
        '200':
          description: Deleted
        '401':
          description: Unauthorized
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/ProblemDetails'
        '403':
          description: Forbidden
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/ProblemDetails'
        '429':
          description: Rate limit exceeded
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/ProblemDetails'
  /mail_queue/schema:
    get:
      operationId: schemaMailQueue
      summary: Schema of mail_queue
      tags:
        - Resources
      security:
        -
          BearerAuth: []
      responses:
        '200':
          description: OK
        '401':
          description: Unauthorized
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/ProblemDetails'
        '403':
          description: Forbidden
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/ProblemDetails'
        '429':
          description: Rate limit exceeded
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/ProblemDetails'
  /migrations:
    get:
      operationId: listMigrations
      summary: List migrations
      tags:
        - Resources
      security:
        -
          BearerAuth: []
      parameters:
        -
          name: page
          in: query
          schema:
            type: integer
            default: 1
        -
          name: per_page
          in: query
          schema:
            type: integer
            default: 25
            maximum: 1000
        -
          name: sort
          in: query
          schema:
            type: string
          description: 'Comma-separated fields, prefix - for DESC'
        -
          name: fields
          in: query
          schema:
            type: string
          description: Comma-separated field names (sparse fieldset)
      responses:
        '200':
          description: OK
        '401':
          description: Unauthorized
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/ProblemDetails'
        '403':
          description: Forbidden
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/ProblemDetails'
        '429':
          description: Rate limit exceeded
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/ProblemDetails'
    post:
      operationId: createMigrations
      summary: Create migrations
      tags:
        - Resources
      security:
        -
          BearerAuth: []
      requestBody:
        required: true
        content:
          application/json:
            schema:
              type: object
              properties:
                version:
                  type: integer
              required:
                - version
      responses:
        '201':
          description: Created
        '401':
          description: Unauthorized
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/ProblemDetails'
        '403':
          description: Forbidden
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/ProblemDetails'
        '429':
          description: Rate limit exceeded
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/ProblemDetails'
  /migrations/{id}:
    get:
      operationId: getMigrationsById
      summary: Get migrations by ID
      tags:
        - Resources
      security:
        -
          BearerAuth: []
      parameters:
        -
          name: id
          in: path
          required: true
          schema:
            type: integer
      responses:
        '200':
          description: OK
        '401':
          description: Unauthorized
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/ProblemDetails'
        '403':
          description: Forbidden
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/ProblemDetails'
        '429':
          description: Rate limit exceeded
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/ProblemDetails'
    put:
      operationId: updateMigrations
      summary: Update migrations
      tags:
        - Resources
      security:
        -
          BearerAuth: []
      parameters:
        -
          name: id
          in: path
          required: true
          schema:
            type: integer
      requestBody:
        required: true
        content:
          application/json:
            schema:
              type: object
              properties:
                version:
                  type: integer
              additionalProperties: true
      responses:
        '200':
          description: OK
        '401':
          description: Unauthorized
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/ProblemDetails'
        '403':
          description: Forbidden
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/ProblemDetails'
        '429':
          description: Rate limit exceeded
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/ProblemDetails'
    delete:
      operationId: deleteMigrations
      summary: Delete migrations
      tags:
        - Resources
      security:
        -
          BearerAuth: []
      parameters:
        -
          name: id
          in: path
          required: true
          schema:
            type: integer
      responses:
        '200':
          description: Deleted
        '401':
          description: Unauthorized
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/ProblemDetails'
        '403':
          description: Forbidden
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/ProblemDetails'
        '429':
          description: Rate limit exceeded
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/ProblemDetails'
  /migrations/schema:
    get:
      operationId: schemaMigrations
      summary: Schema of migrations
      tags:
        - Resources
      security:
        -
          BearerAuth: []
      responses:
        '200':
          description: OK
        '401':
          description: Unauthorized
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/ProblemDetails'
        '403':
          description: Forbidden
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/ProblemDetails'
        '429':
          description: Rate limit exceeded
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/ProblemDetails'
  /modules:
    get:
      operationId: listModules
      summary: List modules
      tags:
        - Resources
      security:
        -
          BearerAuth: []
      parameters:
        -
          name: page
          in: query
          schema:
            type: integer
            default: 1
        -
          name: per_page
          in: query
          schema:
            type: integer
            default: 25
            maximum: 1000
        -
          name: sort
          in: query
          schema:
            type: string
          description: 'Comma-separated fields, prefix - for DESC'
        -
          name: fields
          in: query
          schema:
            type: string
          description: Comma-separated field names (sparse fieldset)
      responses:
        '200':
          description: OK
        '401':
          description: Unauthorized
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/ProblemDetails'
        '403':
          description: Forbidden
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/ProblemDetails'
        '429':
          description: Rate limit exceeded
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/ProblemDetails'
    post:
      operationId: createModules
      summary: Create modules
      tags:
        - Resources
      security:
        -
          BearerAuth: []
      requestBody:
        required: true
        content:
          application/json:
            schema:
              type: object
              properties:
                module_name:
                  type: string
                installed_version:
                  type: string
                active:
                  type: integer
              required:
                - module_name
                - installed_version
                - active
      responses:
        '201':
          description: Created
        '401':
          description: Unauthorized
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/ProblemDetails'
        '403':
          description: Forbidden
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/ProblemDetails'
        '429':
          description: Rate limit exceeded
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/ProblemDetails'
  /modules/{id}:
    get:
      operationId: getModulesById
      summary: Get modules by ID
      tags:
        - Resources
      security:
        -
          BearerAuth: []
      parameters:
        -
          name: id
          in: path
          required: true
          schema:
            type: integer
      responses:
        '200':
          description: OK
        '401':
          description: Unauthorized
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/ProblemDetails'
        '403':
          description: Forbidden
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/ProblemDetails'
        '429':
          description: Rate limit exceeded
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/ProblemDetails'
    put:
      operationId: updateModules
      summary: Update modules
      tags:
        - Resources
      security:
        -
          BearerAuth: []
      parameters:
        -
          name: id
          in: path
          required: true
          schema:
            type: integer
      requestBody:
        required: true
        content:
          application/json:
            schema:
              type: object
              properties:
                module_name:
                  type: string
                installed_version:
                  type: string
                active:
                  type: integer
              additionalProperties: true
      responses:
        '200':
          description: OK
        '401':
          description: Unauthorized
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/ProblemDetails'
        '403':
          description: Forbidden
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/ProblemDetails'
        '429':
          description: Rate limit exceeded
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/ProblemDetails'
    delete:
      operationId: deleteModules
      summary: Delete modules
      tags:
        - Resources
      security:
        -
          BearerAuth: []
      parameters:
        -
          name: id
          in: path
          required: true
          schema:
            type: integer
      responses:
        '200':
          description: Deleted
        '401':
          description: Unauthorized
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/ProblemDetails'
        '403':
          description: Forbidden
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/ProblemDetails'
        '429':
          description: Rate limit exceeded
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/ProblemDetails'
  /modules/schema:
    get:
      operationId: schemaModules
      summary: Schema of modules
      tags:
        - Resources
      security:
        -
          BearerAuth: []
      responses:
        '200':
          description: OK
        '401':
          description: Unauthorized
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/ProblemDetails'
        '403':
          description: Forbidden
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/ProblemDetails'
        '429':
          description: Rate limit exceeded
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/ProblemDetails'
  /newsfeed_comment_likes:
    get:
      operationId: listNewsfeedCommentLikes
      summary: List newsfeed_comment_likes
      tags:
        - Resources
      security:
        -
          BearerAuth: []
      parameters:
        -
          name: page
          in: query
          schema:
            type: integer
            default: 1
        -
          name: per_page
          in: query
          schema:
            type: integer
            default: 25
            maximum: 1000
        -
          name: sort
          in: query
          schema:
            type: string
          description: 'Comma-separated fields, prefix - for DESC'
        -
          name: fields
          in: query
          schema:
            type: string
          description: Comma-separated field names (sparse fieldset)
      responses:
        '200':
          description: OK
        '401':
          description: Unauthorized
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/ProblemDetails'
        '403':
          description: Forbidden
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/ProblemDetails'
        '429':
          description: Rate limit exceeded
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/ProblemDetails'
    post:
      operationId: createNewsfeedCommentLikes
      summary: Create newsfeed_comment_likes
      tags:
        - Resources
      security:
        -
          BearerAuth: []
      requestBody:
        required: true
        content:
          application/json:
            schema:
              type: object
              properties:
                postid:
                  type: integer
                commentid:
                  type: integer
                userid:
                  type: integer
                dateliked:
                  type: string
                  format: date-time
                  example: '2026-04-01 09:15:30'
              required:
                - postid
                - commentid
                - userid
                - dateliked
      responses:
        '201':
          description: Created
        '401':
          description: Unauthorized
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/ProblemDetails'
        '403':
          description: Forbidden
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/ProblemDetails'
        '429':
          description: Rate limit exceeded
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/ProblemDetails'
  /newsfeed_comment_likes/{id}:
    get:
      operationId: getNewsfeedCommentLikesById
      summary: Get newsfeed_comment_likes by ID
      tags:
        - Resources
      security:
        -
          BearerAuth: []
      parameters:
        -
          name: id
          in: path
          required: true
          schema:
            type: integer
      responses:
        '200':
          description: OK
        '401':
          description: Unauthorized
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/ProblemDetails'
        '403':
          description: Forbidden
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/ProblemDetails'
        '429':
          description: Rate limit exceeded
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/ProblemDetails'
    put:
      operationId: updateNewsfeedCommentLikes
      summary: Update newsfeed_comment_likes
      tags:
        - Resources
      security:
        -
          BearerAuth: []
      parameters:
        -
          name: id
          in: path
          required: true
          schema:
            type: integer
      requestBody:
        required: true
        content:
          application/json:
            schema:
              type: object
              properties:
                postid:
                  type: integer
                commentid:
                  type: integer
                userid:
                  type: integer
                dateliked:
                  type: string
                  format: date-time
                  example: '2026-04-01 09:15:30'
              additionalProperties: true
      responses:
        '200':
          description: OK
        '401':
          description: Unauthorized
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/ProblemDetails'
        '403':
          description: Forbidden
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/ProblemDetails'
        '429':
          description: Rate limit exceeded
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/ProblemDetails'
    delete:
      operationId: deleteNewsfeedCommentLikes
      summary: Delete newsfeed_comment_likes
      tags:
        - Resources
      security:
        -
          BearerAuth: []
      parameters:
        -
          name: id
          in: path
          required: true
          schema:
            type: integer
      responses:
        '200':
          description: Deleted
        '401':
          description: Unauthorized
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/ProblemDetails'
        '403':
          description: Forbidden
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/ProblemDetails'
        '429':
          description: Rate limit exceeded
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/ProblemDetails'
  /newsfeed_comment_likes/schema:
    get:
      operationId: schemaNewsfeedCommentLikes
      summary: Schema of newsfeed_comment_likes
      tags:
        - Resources
      security:
        -
          BearerAuth: []
      responses:
        '200':
          description: OK
        '401':
          description: Unauthorized
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/ProblemDetails'
        '403':
          description: Forbidden
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/ProblemDetails'
        '429':
          description: Rate limit exceeded
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/ProblemDetails'
  /newsfeed_post_comments:
    get:
      operationId: listNewsfeedPostComments
      summary: List newsfeed_post_comments
      tags:
        - Resources
      security:
        -
          BearerAuth: []
      parameters:
        -
          name: page
          in: query
          schema:
            type: integer
            default: 1
        -
          name: per_page
          in: query
          schema:
            type: integer
            default: 25
            maximum: 1000
        -
          name: sort
          in: query
          schema:
            type: string
          description: 'Comma-separated fields, prefix - for DESC'
        -
          name: fields
          in: query
          schema:
            type: string
          description: Comma-separated field names (sparse fieldset)
      responses:
        '200':
          description: OK
        '401':
          description: Unauthorized
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/ProblemDetails'
        '403':
          description: Forbidden
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/ProblemDetails'
        '429':
          description: Rate limit exceeded
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/ProblemDetails'
    post:
      operationId: createNewsfeedPostComments
      summary: Create newsfeed_post_comments
      tags:
        - Resources
      security:
        -
          BearerAuth: []
      requestBody:
        required: true
        content:
          application/json:
            schema:
              type: object
              properties:
                content:
                  type: string
                userid:
                  type: integer
                postid:
                  type: integer
              required:
                - userid
                - postid
      responses:
        '201':
          description: Created
        '401':
          description: Unauthorized
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/ProblemDetails'
        '403':
          description: Forbidden
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/ProblemDetails'
        '429':
          description: Rate limit exceeded
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/ProblemDetails'
  /newsfeed_post_comments/{id}:
    get:
      operationId: getNewsfeedPostCommentsById
      summary: Get newsfeed_post_comments by ID
      tags:
        - Resources
      security:
        -
          BearerAuth: []
      parameters:
        -
          name: id
          in: path
          required: true
          schema:
            type: integer
      responses:
        '200':
          description: OK
        '401':
          description: Unauthorized
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/ProblemDetails'
        '403':
          description: Forbidden
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/ProblemDetails'
        '429':
          description: Rate limit exceeded
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/ProblemDetails'
    put:
      operationId: updateNewsfeedPostComments
      summary: Update newsfeed_post_comments
      tags:
        - Resources
      security:
        -
          BearerAuth: []
      parameters:
        -
          name: id
          in: path
          required: true
          schema:
            type: integer
      requestBody:
        required: true
        content:
          application/json:
            schema:
              type: object
              properties:
                content:
                  type: string
                userid:
                  type: integer
                postid:
                  type: integer
              additionalProperties: true
      responses:
        '200':
          description: OK
        '401':
          description: Unauthorized
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/ProblemDetails'
        '403':
          description: Forbidden
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/ProblemDetails'
        '429':
          description: Rate limit exceeded
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/ProblemDetails'
    delete:
      operationId: deleteNewsfeedPostComments
      summary: Delete newsfeed_post_comments
      tags:
        - Resources
      security:
        -
          BearerAuth: []
      parameters:
        -
          name: id
          in: path
          required: true
          schema:
            type: integer
      responses:
        '200':
          description: Deleted
        '401':
          description: Unauthorized
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/ProblemDetails'
        '403':
          description: Forbidden
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/ProblemDetails'
        '429':
          description: Rate limit exceeded
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/ProblemDetails'
  /newsfeed_post_comments/schema:
    get:
      operationId: schemaNewsfeedPostComments
      summary: Schema of newsfeed_post_comments
      tags:
        - Resources
      security:
        -
          BearerAuth: []
      responses:
        '200':
          description: OK
        '401':
          description: Unauthorized
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/ProblemDetails'
        '403':
          description: Forbidden
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/ProblemDetails'
        '429':
          description: Rate limit exceeded
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/ProblemDetails'
  /newsfeed_post_likes:
    get:
      operationId: listNewsfeedPostLikes
      summary: List newsfeed_post_likes
      tags:
        - Resources
      security:
        -
          BearerAuth: []
      parameters:
        -
          name: page
          in: query
          schema:
            type: integer
            default: 1
        -
          name: per_page
          in: query
          schema:
            type: integer
            default: 25
            maximum: 1000
        -
          name: sort
          in: query
          schema:
            type: string
          description: 'Comma-separated fields, prefix - for DESC'
        -
          name: fields
          in: query
          schema:
            type: string
          description: Comma-separated field names (sparse fieldset)
      responses:
        '200':
          description: OK
        '401':
          description: Unauthorized
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/ProblemDetails'
        '403':
          description: Forbidden
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/ProblemDetails'
        '429':
          description: Rate limit exceeded
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/ProblemDetails'
    post:
      operationId: createNewsfeedPostLikes
      summary: Create newsfeed_post_likes
      tags:
        - Resources
      security:
        -
          BearerAuth: []
      requestBody:
        required: true
        content:
          application/json:
            schema:
              type: object
              properties:
                postid:
                  type: integer
                userid:
                  type: integer
                dateliked:
                  type: string
                  format: date-time
                  example: '2026-04-01 09:15:30'
              required:
                - postid
                - userid
                - dateliked
      responses:
        '201':
          description: Created
        '401':
          description: Unauthorized
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/ProblemDetails'
        '403':
          description: Forbidden
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/ProblemDetails'
        '429':
          description: Rate limit exceeded
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/ProblemDetails'
  /newsfeed_post_likes/{id}:
    get:
      operationId: getNewsfeedPostLikesById
      summary: Get newsfeed_post_likes by ID
      tags:
        - Resources
      security:
        -
          BearerAuth: []
      parameters:
        -
          name: id
          in: path
          required: true
          schema:
            type: integer
      responses:
        '200':
          description: OK
        '401':
          description: Unauthorized
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/ProblemDetails'
        '403':
          description: Forbidden
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/ProblemDetails'
        '429':
          description: Rate limit exceeded
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/ProblemDetails'
    put:
      operationId: updateNewsfeedPostLikes
      summary: Update newsfeed_post_likes
      tags:
        - Resources
      security:
        -
          BearerAuth: []
      parameters:
        -
          name: id
          in: path
          required: true
          schema:
            type: integer
      requestBody:
        required: true
        content:
          application/json:
            schema:
              type: object
              properties:
                postid:
                  type: integer
                userid:
                  type: integer
                dateliked:
                  type: string
                  format: date-time
                  example: '2026-04-01 09:15:30'
              additionalProperties: true
      responses:
        '200':
          description: OK
        '401':
          description: Unauthorized
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/ProblemDetails'
        '403':
          description: Forbidden
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/ProblemDetails'
        '429':
          description: Rate limit exceeded
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/ProblemDetails'
    delete:
      operationId: deleteNewsfeedPostLikes
      summary: Delete newsfeed_post_likes
      tags:
        - Resources
      security:
        -
          BearerAuth: []
      parameters:
        -
          name: id
          in: path
          required: true
          schema:
            type: integer
      responses:
        '200':
          description: Deleted
        '401':
          description: Unauthorized
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/ProblemDetails'
        '403':
          description: Forbidden
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/ProblemDetails'
        '429':
          description: Rate limit exceeded
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/ProblemDetails'
  /newsfeed_post_likes/schema:
    get:
      operationId: schemaNewsfeedPostLikes
      summary: Schema of newsfeed_post_likes
      tags:
        - Resources
      security:
        -
          BearerAuth: []
      responses:
        '200':
          description: OK
        '401':
          description: Unauthorized
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/ProblemDetails'
        '403':
          description: Forbidden
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/ProblemDetails'
        '429':
          description: Rate limit exceeded
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/ProblemDetails'
  /newsfeed_posts:
    get:
      operationId: listNewsfeedPosts
      summary: List newsfeed_posts
      tags:
        - Resources
      security:
        -
          BearerAuth: []
      parameters:
        -
          name: page
          in: query
          schema:
            type: integer
            default: 1
        -
          name: per_page
          in: query
          schema:
            type: integer
            default: 25
            maximum: 1000
        -
          name: sort
          in: query
          schema:
            type: string
          description: 'Comma-separated fields, prefix - for DESC'
        -
          name: fields
          in: query
          schema:
            type: string
          description: Comma-separated field names (sparse fieldset)
      responses:
        '200':
          description: OK
        '401':
          description: Unauthorized
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/ProblemDetails'
        '403':
          description: Forbidden
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/ProblemDetails'
        '429':
          description: Rate limit exceeded
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/ProblemDetails'
    post:
      operationId: createNewsfeedPosts
      summary: Create newsfeed_posts
      tags:
        - Resources
      security:
        -
          BearerAuth: []
      requestBody:
        required: true
        content:
          application/json:
            schema:
              type: object
              properties:
                creator:
                  type: integer
                visibility:
                  type: string
                content:
                  type: string
                pinned:
                  type: integer
                datepinned:
                  type: string
                  format: date-time
                  example: '2026-04-01 09:15:30'
              required:
                - creator
                - visibility
                - content
                - pinned
      responses:
        '201':
          description: Created
        '401':
          description: Unauthorized
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/ProblemDetails'
        '403':
          description: Forbidden
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/ProblemDetails'
        '429':
          description: Rate limit exceeded
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/ProblemDetails'
  /newsfeed_posts/{id}:
    get:
      operationId: getNewsfeedPostsById
      summary: Get newsfeed_posts by ID
      tags:
        - Resources
      security:
        -
          BearerAuth: []
      parameters:
        -
          name: id
          in: path
          required: true
          schema:
            type: integer
      responses:
        '200':
          description: OK
        '401':
          description: Unauthorized
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/ProblemDetails'
        '403':
          description: Forbidden
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/ProblemDetails'
        '429':
          description: Rate limit exceeded
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/ProblemDetails'
    put:
      operationId: updateNewsfeedPosts
      summary: Update newsfeed_posts
      tags:
        - Resources
      security:
        -
          BearerAuth: []
      parameters:
        -
          name: id
          in: path
          required: true
          schema:
            type: integer
      requestBody:
        required: true
        content:
          application/json:
            schema:
              type: object
              properties:
                creator:
                  type: integer
                visibility:
                  type: string
                content:
                  type: string
                pinned:
                  type: integer
                datepinned:
                  type: string
                  format: date-time
                  example: '2026-04-01 09:15:30'
              additionalProperties: true
      responses:
        '200':
          description: OK
        '401':
          description: Unauthorized
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/ProblemDetails'
        '403':
          description: Forbidden
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/ProblemDetails'
        '429':
          description: Rate limit exceeded
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/ProblemDetails'
    delete:
      operationId: deleteNewsfeedPosts
      summary: Delete newsfeed_posts
      tags:
        - Resources
      security:
        -
          BearerAuth: []
      parameters:
        -
          name: id
          in: path
          required: true
          schema:
            type: integer
      responses:
        '200':
          description: Deleted
        '401':
          description: Unauthorized
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/ProblemDetails'
        '403':
          description: Forbidden
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/ProblemDetails'
        '429':
          description: Rate limit exceeded
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/ProblemDetails'
  /newsfeed_posts/schema:
    get:
      operationId: schemaNewsfeedPosts
      summary: Schema of newsfeed_posts
      tags:
        - Resources
      security:
        -
          BearerAuth: []
      responses:
        '200':
          description: OK
        '401':
          description: Unauthorized
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/ProblemDetails'
        '403':
          description: Forbidden
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/ProblemDetails'
        '429':
          description: Rate limit exceeded
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/ProblemDetails'
  /notes:
    get:
      operationId: listNotes
      summary: List notes
      tags:
        - Resources
      security:
        -
          BearerAuth: []
      parameters:
        -
          name: page
          in: query
          schema:
            type: integer
            default: 1
        -
          name: per_page
          in: query
          schema:
            type: integer
            default: 25
            maximum: 1000
        -
          name: sort
          in: query
          schema:
            type: string
          description: 'Comma-separated fields, prefix - for DESC'
        -
          name: fields
          in: query
          schema:
            type: string
          description: Comma-separated field names (sparse fieldset)
      responses:
        '200':
          description: OK
        '401':
          description: Unauthorized
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/ProblemDetails'
        '403':
          description: Forbidden
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/ProblemDetails'
        '429':
          description: Rate limit exceeded
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/ProblemDetails'
    post:
      operationId: createNotes
      summary: Create notes
      tags:
        - Resources
      security:
        -
          BearerAuth: []
      requestBody:
        required: true
        content:
          application/json:
            schema:
              type: object
              properties:
                rel_id:
                  type: integer
                rel_type:
                  type: string
                description:
                  type: string
                date_contacted:
                  type: string
                  format: date-time
                  example: '2026-04-01 09:15:30'
              required:
                - rel_id
                - rel_type
      responses:
        '201':
          description: Created
        '401':
          description: Unauthorized
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/ProblemDetails'
        '403':
          description: Forbidden
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/ProblemDetails'
        '429':
          description: Rate limit exceeded
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/ProblemDetails'
  /notes/{id}:
    get:
      operationId: getNotesById
      summary: Get notes by ID
      tags:
        - Resources
      security:
        -
          BearerAuth: []
      parameters:
        -
          name: id
          in: path
          required: true
          schema:
            type: integer
      responses:
        '200':
          description: OK
        '401':
          description: Unauthorized
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/ProblemDetails'
        '403':
          description: Forbidden
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/ProblemDetails'
        '429':
          description: Rate limit exceeded
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/ProblemDetails'
    put:
      operationId: updateNotes
      summary: Update notes
      tags:
        - Resources
      security:
        -
          BearerAuth: []
      parameters:
        -
          name: id
          in: path
          required: true
          schema:
            type: integer
      requestBody:
        required: true
        content:
          application/json:
            schema:
              type: object
              properties:
                rel_id:
                  type: integer
                rel_type:
                  type: string
                description:
                  type: string
                date_contacted:
                  type: string
                  format: date-time
                  example: '2026-04-01 09:15:30'
              additionalProperties: true
      responses:
        '200':
          description: OK
        '401':
          description: Unauthorized
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/ProblemDetails'
        '403':
          description: Forbidden
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/ProblemDetails'
        '429':
          description: Rate limit exceeded
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/ProblemDetails'
    delete:
      operationId: deleteNotes
      summary: Delete notes
      tags:
        - Resources
      security:
        -
          BearerAuth: []
      parameters:
        -
          name: id
          in: path
          required: true
          schema:
            type: integer
      responses:
        '200':
          description: Deleted
        '401':
          description: Unauthorized
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/ProblemDetails'
        '403':
          description: Forbidden
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/ProblemDetails'
        '429':
          description: Rate limit exceeded
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/ProblemDetails'
  /notes/schema:
    get:
      operationId: schemaNotes
      summary: Schema of notes
      tags:
        - Resources
      security:
        -
          BearerAuth: []
      responses:
        '200':
          description: OK
        '401':
          description: Unauthorized
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/ProblemDetails'
        '403':
          description: Forbidden
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/ProblemDetails'
        '429':
          description: Rate limit exceeded
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/ProblemDetails'
  /notifications:
    get:
      operationId: listNotifications
      summary: List notifications
      tags:
        - Resources
      security:
        -
          BearerAuth: []
      parameters:
        -
          name: page
          in: query
          schema:
            type: integer
            default: 1
        -
          name: per_page
          in: query
          schema:
            type: integer
            default: 25
            maximum: 1000
        -
          name: sort
          in: query
          schema:
            type: string
          description: 'Comma-separated fields, prefix - for DESC'
        -
          name: fields
          in: query
          schema:
            type: string
          description: Comma-separated field names (sparse fieldset)
      responses:
        '200':
          description: OK
        '401':
          description: Unauthorized
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/ProblemDetails'
        '403':
          description: Forbidden
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/ProblemDetails'
        '429':
          description: Rate limit exceeded
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/ProblemDetails'
    post:
      operationId: createNotifications
      summary: Create notifications
      tags:
        - Resources
      security:
        -
          BearerAuth: []
      requestBody:
        required: true
        content:
          application/json:
            schema:
              type: object
              properties:
                isread:
                  type: integer
                isread_inline:
                  type: integer
                date:
                  type: string
                  format: date-time
                  example: '2026-04-01 09:15:30'
                description:
                  type: string
                fromuserid:
                  type: integer
                fromclientid:
                  type: integer
                from_fullname:
                  type: string
                touserid:
                  type: integer
                fromcompany:
                  type: integer
                link:
                  type: string
                additional_data:
                  type: string
              required:
                - date
                - description
                - fromuserid
                - from_fullname
                - touserid
      responses:
        '201':
          description: Created
        '401':
          description: Unauthorized
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/ProblemDetails'
        '403':
          description: Forbidden
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/ProblemDetails'
        '429':
          description: Rate limit exceeded
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/ProblemDetails'
  /notifications/{id}:
    get:
      operationId: getNotificationsById
      summary: Get notifications by ID
      tags:
        - Resources
      security:
        -
          BearerAuth: []
      parameters:
        -
          name: id
          in: path
          required: true
          schema:
            type: integer
      responses:
        '200':
          description: OK
        '401':
          description: Unauthorized
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/ProblemDetails'
        '403':
          description: Forbidden
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/ProblemDetails'
        '429':
          description: Rate limit exceeded
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/ProblemDetails'
    put:
      operationId: updateNotifications
      summary: Update notifications
      tags:
        - Resources
      security:
        -
          BearerAuth: []
      parameters:
        -
          name: id
          in: path
          required: true
          schema:
            type: integer
      requestBody:
        required: true
        content:
          application/json:
            schema:
              type: object
              properties:
                isread:
                  type: integer
                isread_inline:
                  type: integer
                date:
                  type: string
                  format: date-time
                  example: '2026-04-01 09:15:30'
                description:
                  type: string
                fromuserid:
                  type: integer
                fromclientid:
                  type: integer
                from_fullname:
                  type: string
                touserid:
                  type: integer
                fromcompany:
                  type: integer
                link:
                  type: string
                additional_data:
                  type: string
              additionalProperties: true
      responses:
        '200':
          description: OK
        '401':
          description: Unauthorized
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/ProblemDetails'
        '403':
          description: Forbidden
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/ProblemDetails'
        '429':
          description: Rate limit exceeded
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/ProblemDetails'
    delete:
      operationId: deleteNotifications
      summary: Delete notifications
      tags:
        - Resources
      security:
        -
          BearerAuth: []
      parameters:
        -
          name: id
          in: path
          required: true
          schema:
            type: integer
      responses:
        '200':
          description: Deleted
        '401':
          description: Unauthorized
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/ProblemDetails'
        '403':
          description: Forbidden
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/ProblemDetails'
        '429':
          description: Rate limit exceeded
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/ProblemDetails'
  /notifications/schema:
    get:
      operationId: schemaNotifications
      summary: Schema of notifications
      tags:
        - Resources
      security:
        -
          BearerAuth: []
      responses:
        '200':
          description: OK
        '401':
          description: Unauthorized
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/ProblemDetails'
        '403':
          description: Forbidden
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/ProblemDetails'
        '429':
          description: Rate limit exceeded
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/ProblemDetails'
  /payment_attempts:
    get:
      operationId: listPaymentAttempts
      summary: List payment_attempts
      tags:
        - Resources
      security:
        -
          BearerAuth: []
      parameters:
        -
          name: page
          in: query
          schema:
            type: integer
            default: 1
        -
          name: per_page
          in: query
          schema:
            type: integer
            default: 25
            maximum: 1000
        -
          name: sort
          in: query
          schema:
            type: string
          description: 'Comma-separated fields, prefix - for DESC'
        -
          name: fields
          in: query
          schema:
            type: string
          description: Comma-separated field names (sparse fieldset)
      responses:
        '200':
          description: OK
        '401':
          description: Unauthorized
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/ProblemDetails'
        '403':
          description: Forbidden
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/ProblemDetails'
        '429':
          description: Rate limit exceeded
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/ProblemDetails'
    post:
      operationId: createPaymentAttempts
      summary: Create payment_attempts
      tags:
        - Resources
      security:
        -
          BearerAuth: []
      requestBody:
        required: true
        content:
          application/json:
            schema:
              type: object
              properties:
                reference:
                  type: string
                invoice_id:
                  type: integer
                amount:
                  type: number
                fee:
                  type: number
                payment_gateway:
                  type: string
              required:
                - reference
                - invoice_id
                - amount
                - fee
                - payment_gateway
      responses:
        '201':
          description: Created
        '401':
          description: Unauthorized
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/ProblemDetails'
        '403':
          description: Forbidden
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/ProblemDetails'
        '429':
          description: Rate limit exceeded
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/ProblemDetails'
  /payment_attempts/{id}:
    get:
      operationId: getPaymentAttemptsById
      summary: Get payment_attempts by ID
      tags:
        - Resources
      security:
        -
          BearerAuth: []
      parameters:
        -
          name: id
          in: path
          required: true
          schema:
            type: integer
      responses:
        '200':
          description: OK
        '401':
          description: Unauthorized
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/ProblemDetails'
        '403':
          description: Forbidden
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/ProblemDetails'
        '429':
          description: Rate limit exceeded
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/ProblemDetails'
    put:
      operationId: updatePaymentAttempts
      summary: Update payment_attempts
      tags:
        - Resources
      security:
        -
          BearerAuth: []
      parameters:
        -
          name: id
          in: path
          required: true
          schema:
            type: integer
      requestBody:
        required: true
        content:
          application/json:
            schema:
              type: object
              properties:
                reference:
                  type: string
                invoice_id:
                  type: integer
                amount:
                  type: number
                fee:
                  type: number
                payment_gateway:
                  type: string
              additionalProperties: true
      responses:
        '200':
          description: OK
        '401':
          description: Unauthorized
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/ProblemDetails'
        '403':
          description: Forbidden
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/ProblemDetails'
        '429':
          description: Rate limit exceeded
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/ProblemDetails'
    delete:
      operationId: deletePaymentAttempts
      summary: Delete payment_attempts
      tags:
        - Resources
      security:
        -
          BearerAuth: []
      parameters:
        -
          name: id
          in: path
          required: true
          schema:
            type: integer
      responses:
        '200':
          description: Deleted
        '401':
          description: Unauthorized
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/ProblemDetails'
        '403':
          description: Forbidden
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/ProblemDetails'
        '429':
          description: Rate limit exceeded
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/ProblemDetails'
  /payment_attempts/schema:
    get:
      operationId: schemaPaymentAttempts
      summary: Schema of payment_attempts
      tags:
        - Resources
      security:
        -
          BearerAuth: []
      responses:
        '200':
          description: OK
        '401':
          description: Unauthorized
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/ProblemDetails'
        '403':
          description: Forbidden
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/ProblemDetails'
        '429':
          description: Rate limit exceeded
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/ProblemDetails'
  /payment_modes:
    get:
      operationId: listPaymentModes
      summary: List payment_modes
      tags:
        - Resources
      security:
        -
          BearerAuth: []
      parameters:
        -
          name: page
          in: query
          schema:
            type: integer
            default: 1
        -
          name: per_page
          in: query
          schema:
            type: integer
            default: 25
            maximum: 1000
        -
          name: sort
          in: query
          schema:
            type: string
          description: 'Comma-separated fields, prefix - for DESC'
        -
          name: fields
          in: query
          schema:
            type: string
          description: Comma-separated field names (sparse fieldset)
      responses:
        '200':
          description: OK
        '401':
          description: Unauthorized
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/ProblemDetails'
        '403':
          description: Forbidden
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/ProblemDetails'
        '429':
          description: Rate limit exceeded
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/ProblemDetails'
    post:
      operationId: createPaymentModes
      summary: Create payment_modes
      tags:
        - Resources
      security:
        -
          BearerAuth: []
      requestBody:
        required: true
        content:
          application/json:
            schema:
              type: object
              properties:
                name:
                  type: string
                description:
                  type: string
                show_on_pdf:
                  type: integer
                invoices_only:
                  type: integer
                expenses_only:
                  type: integer
                selected_by_default:
                  type: integer
                active:
                  type: integer
              required:
                - name
      responses:
        '201':
          description: Created
        '401':
          description: Unauthorized
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/ProblemDetails'
        '403':
          description: Forbidden
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/ProblemDetails'
        '429':
          description: Rate limit exceeded
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/ProblemDetails'
  /payment_modes/{id}:
    get:
      operationId: getPaymentModesById
      summary: Get payment_modes by ID
      tags:
        - Resources
      security:
        -
          BearerAuth: []
      parameters:
        -
          name: id
          in: path
          required: true
          schema:
            type: integer
      responses:
        '200':
          description: OK
        '401':
          description: Unauthorized
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/ProblemDetails'
        '403':
          description: Forbidden
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/ProblemDetails'
        '429':
          description: Rate limit exceeded
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/ProblemDetails'
    put:
      operationId: updatePaymentModes
      summary: Update payment_modes
      tags:
        - Resources
      security:
        -
          BearerAuth: []
      parameters:
        -
          name: id
          in: path
          required: true
          schema:
            type: integer
      requestBody:
        required: true
        content:
          application/json:
            schema:
              type: object
              properties:
                name:
                  type: string
                description:
                  type: string
                show_on_pdf:
                  type: integer
                invoices_only:
                  type: integer
                expenses_only:
                  type: integer
                selected_by_default:
                  type: integer
                active:
                  type: integer
              additionalProperties: true
      responses:
        '200':
          description: OK
        '401':
          description: Unauthorized
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/ProblemDetails'
        '403':
          description: Forbidden
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/ProblemDetails'
        '429':
          description: Rate limit exceeded
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/ProblemDetails'
    delete:
      operationId: deletePaymentModes
      summary: Delete payment_modes
      tags:
        - Resources
      security:
        -
          BearerAuth: []
      parameters:
        -
          name: id
          in: path
          required: true
          schema:
            type: integer
      responses:
        '200':
          description: Deleted
        '401':
          description: Unauthorized
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/ProblemDetails'
        '403':
          description: Forbidden
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/ProblemDetails'
        '429':
          description: Rate limit exceeded
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/ProblemDetails'
  /payment_modes/schema:
    get:
      operationId: schemaPaymentModes
      summary: Schema of payment_modes
      tags:
        - Resources
      security:
        -
          BearerAuth: []
      responses:
        '200':
          description: OK
        '401':
          description: Unauthorized
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/ProblemDetails'
        '403':
          description: Forbidden
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/ProblemDetails'
        '429':
          description: Rate limit exceeded
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/ProblemDetails'
  /pinned_projects:
    get:
      operationId: listPinnedProjects
      summary: List pinned_projects
      tags:
        - Resources
      security:
        -
          BearerAuth: []
      parameters:
        -
          name: page
          in: query
          schema:
            type: integer
            default: 1
        -
          name: per_page
          in: query
          schema:
            type: integer
            default: 25
            maximum: 1000
        -
          name: sort
          in: query
          schema:
            type: string
          description: 'Comma-separated fields, prefix - for DESC'
        -
          name: fields
          in: query
          schema:
            type: string
          description: Comma-separated field names (sparse fieldset)
      responses:
        '200':
          description: OK
        '401':
          description: Unauthorized
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/ProblemDetails'
        '403':
          description: Forbidden
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/ProblemDetails'
        '429':
          description: Rate limit exceeded
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/ProblemDetails'
    post:
      operationId: createPinnedProjects
      summary: Create pinned_projects
      tags:
        - Resources
      security:
        -
          BearerAuth: []
      requestBody:
        required: true
        content:
          application/json:
            schema:
              type: object
              properties:
                project_id:
                  type: integer
                staff_id:
                  type: integer
              required:
                - project_id
                - staff_id
      responses:
        '201':
          description: Created
        '401':
          description: Unauthorized
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/ProblemDetails'
        '403':
          description: Forbidden
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/ProblemDetails'
        '429':
          description: Rate limit exceeded
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/ProblemDetails'
  /pinned_projects/{id}:
    get:
      operationId: getPinnedProjectsById
      summary: Get pinned_projects by ID
      tags:
        - Resources
      security:
        -
          BearerAuth: []
      parameters:
        -
          name: id
          in: path
          required: true
          schema:
            type: integer
      responses:
        '200':
          description: OK
        '401':
          description: Unauthorized
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/ProblemDetails'
        '403':
          description: Forbidden
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/ProblemDetails'
        '429':
          description: Rate limit exceeded
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/ProblemDetails'
    put:
      operationId: updatePinnedProjects
      summary: Update pinned_projects
      tags:
        - Resources
      security:
        -
          BearerAuth: []
      parameters:
        -
          name: id
          in: path
          required: true
          schema:
            type: integer
      requestBody:
        required: true
        content:
          application/json:
            schema:
              type: object
              properties:
                project_id:
                  type: integer
                staff_id:
                  type: integer
              additionalProperties: true
      responses:
        '200':
          description: OK
        '401':
          description: Unauthorized
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/ProblemDetails'
        '403':
          description: Forbidden
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/ProblemDetails'
        '429':
          description: Rate limit exceeded
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/ProblemDetails'
    delete:
      operationId: deletePinnedProjects
      summary: Delete pinned_projects
      tags:
        - Resources
      security:
        -
          BearerAuth: []
      parameters:
        -
          name: id
          in: path
          required: true
          schema:
            type: integer
      responses:
        '200':
          description: Deleted
        '401':
          description: Unauthorized
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/ProblemDetails'
        '403':
          description: Forbidden
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/ProblemDetails'
        '429':
          description: Rate limit exceeded
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/ProblemDetails'
  /pinned_projects/schema:
    get:
      operationId: schemaPinnedProjects
      summary: Schema of pinned_projects
      tags:
        - Resources
      security:
        -
          BearerAuth: []
      responses:
        '200':
          description: OK
        '401':
          description: Unauthorized
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/ProblemDetails'
        '403':
          description: Forbidden
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/ProblemDetails'
        '429':
          description: Rate limit exceeded
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/ProblemDetails'
  /polydb_custom_filters:
    get:
      operationId: listPolydbCustomFilters
      summary: List polydb_custom_filters
      tags:
        - Resources
      security:
        -
          BearerAuth: []
      parameters:
        -
          name: page
          in: query
          schema:
            type: integer
            default: 1
        -
          name: per_page
          in: query
          schema:
            type: integer
            default: 25
            maximum: 1000
        -
          name: sort
          in: query
          schema:
            type: string
          description: 'Comma-separated fields, prefix - for DESC'
        -
          name: fields
          in: query
          schema:
            type: string
          description: Comma-separated field names (sparse fieldset)
      responses:
        '200':
          description: OK
        '401':
          description: Unauthorized
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/ProblemDetails'
        '403':
          description: Forbidden
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/ProblemDetails'
        '429':
          description: Rate limit exceeded
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/ProblemDetails'
    post:
      operationId: createPolydbCustomFilters
      summary: Create polydb_custom_filters
      tags:
        - Resources
      security:
        -
          BearerAuth: []
      requestBody:
        required: true
        content:
          application/json:
            schema:
              type: object
              properties:
                view_id:
                  type: integer
                staff_id:
                  type: integer
                name:
                  type: string
                filter_data:
                  type: string
                is_default:
                  type: integer
              required:
                - view_id
                - staff_id
                - name
                - filter_data
      responses:
        '201':
          description: Created
        '401':
          description: Unauthorized
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/ProblemDetails'
        '403':
          description: Forbidden
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/ProblemDetails'
        '429':
          description: Rate limit exceeded
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/ProblemDetails'
  /polydb_custom_filters/{id}:
    get:
      operationId: getPolydbCustomFiltersById
      summary: Get polydb_custom_filters by ID
      tags:
        - Resources
      security:
        -
          BearerAuth: []
      parameters:
        -
          name: id
          in: path
          required: true
          schema:
            type: integer
      responses:
        '200':
          description: OK
        '401':
          description: Unauthorized
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/ProblemDetails'
        '403':
          description: Forbidden
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/ProblemDetails'
        '429':
          description: Rate limit exceeded
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/ProblemDetails'
    put:
      operationId: updatePolydbCustomFilters
      summary: Update polydb_custom_filters
      tags:
        - Resources
      security:
        -
          BearerAuth: []
      parameters:
        -
          name: id
          in: path
          required: true
          schema:
            type: integer
      requestBody:
        required: true
        content:
          application/json:
            schema:
              type: object
              properties:
                view_id:
                  type: integer
                staff_id:
                  type: integer
                name:
                  type: string
                filter_data:
                  type: string
                is_default:
                  type: integer
              additionalProperties: true
      responses:
        '200':
          description: OK
        '401':
          description: Unauthorized
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/ProblemDetails'
        '403':
          description: Forbidden
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/ProblemDetails'
        '429':
          description: Rate limit exceeded
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/ProblemDetails'
    delete:
      operationId: deletePolydbCustomFilters
      summary: Delete polydb_custom_filters
      tags:
        - Resources
      security:
        -
          BearerAuth: []
      parameters:
        -
          name: id
          in: path
          required: true
          schema:
            type: integer
      responses:
        '200':
          description: Deleted
        '401':
          description: Unauthorized
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/ProblemDetails'
        '403':
          description: Forbidden
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/ProblemDetails'
        '429':
          description: Rate limit exceeded
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/ProblemDetails'
  /polydb_custom_filters/schema:
    get:
      operationId: schemaPolydbCustomFilters
      summary: Schema of polydb_custom_filters
      tags:
        - Resources
      security:
        -
          BearerAuth: []
      responses:
        '200':
          description: OK
        '401':
          description: Unauthorized
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/ProblemDetails'
        '403':
          description: Forbidden
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/ProblemDetails'
        '429':
          description: Rate limit exceeded
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/ProblemDetails'
  /polydb_custom_indexes:
    get:
      operationId: listPolydbCustomIndexes
      summary: List polydb_custom_indexes
      tags:
        - Resources
      security:
        -
          BearerAuth: []
      parameters:
        -
          name: page
          in: query
          schema:
            type: integer
            default: 1
        -
          name: per_page
          in: query
          schema:
            type: integer
            default: 25
            maximum: 1000
        -
          name: sort
          in: query
          schema:
            type: string
          description: 'Comma-separated fields, prefix - for DESC'
        -
          name: fields
          in: query
          schema:
            type: string
          description: Comma-separated field names (sparse fieldset)
      responses:
        '200':
          description: OK
        '401':
          description: Unauthorized
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/ProblemDetails'
        '403':
          description: Forbidden
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/ProblemDetails'
        '429':
          description: Rate limit exceeded
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/ProblemDetails'
    post:
      operationId: createPolydbCustomIndexes
      summary: Create polydb_custom_indexes
      tags:
        - Resources
      security:
        -
          BearerAuth: []
      requestBody:
        required: true
        content:
          application/json:
            schema:
              type: object
              properties:
                view_id:
                  type: integer
                table_name:
                  type: string
                column_names:
                  type: string
                index_name:
                  type: string
              required:
                - view_id
                - table_name
                - column_names
                - index_name
      responses:
        '201':
          description: Created
        '401':
          description: Unauthorized
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/ProblemDetails'
        '403':
          description: Forbidden
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/ProblemDetails'
        '429':
          description: Rate limit exceeded
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/ProblemDetails'
  /polydb_custom_indexes/{id}:
    get:
      operationId: getPolydbCustomIndexesById
      summary: Get polydb_custom_indexes by ID
      tags:
        - Resources
      security:
        -
          BearerAuth: []
      parameters:
        -
          name: id
          in: path
          required: true
          schema:
            type: integer
      responses:
        '200':
          description: OK
        '401':
          description: Unauthorized
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/ProblemDetails'
        '403':
          description: Forbidden
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/ProblemDetails'
        '429':
          description: Rate limit exceeded
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/ProblemDetails'
    put:
      operationId: updatePolydbCustomIndexes
      summary: Update polydb_custom_indexes
      tags:
        - Resources
      security:
        -
          BearerAuth: []
      parameters:
        -
          name: id
          in: path
          required: true
          schema:
            type: integer
      requestBody:
        required: true
        content:
          application/json:
            schema:
              type: object
              properties:
                view_id:
                  type: integer
                table_name:
                  type: string
                column_names:
                  type: string
                index_name:
                  type: string
              additionalProperties: true
      responses:
        '200':
          description: OK
        '401':
          description: Unauthorized
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/ProblemDetails'
        '403':
          description: Forbidden
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/ProblemDetails'
        '429':
          description: Rate limit exceeded
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/ProblemDetails'
    delete:
      operationId: deletePolydbCustomIndexes
      summary: Delete polydb_custom_indexes
      tags:
        - Resources
      security:
        -
          BearerAuth: []
      parameters:
        -
          name: id
          in: path
          required: true
          schema:
            type: integer
      responses:
        '200':
          description: Deleted
        '401':
          description: Unauthorized
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/ProblemDetails'
        '403':
          description: Forbidden
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/ProblemDetails'
        '429':
          description: Rate limit exceeded
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/ProblemDetails'
  /polydb_custom_indexes/schema:
    get:
      operationId: schemaPolydbCustomIndexes
      summary: Schema of polydb_custom_indexes
      tags:
        - Resources
      security:
        -
          BearerAuth: []
      responses:
        '200':
          description: OK
        '401':
          description: Unauthorized
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/ProblemDetails'
        '403':
          description: Forbidden
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/ProblemDetails'
        '429':
          description: Rate limit exceeded
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/ProblemDetails'
  /polydb_permission_audit_log:
    get:
      operationId: listPolydbPermissionAuditLog
      summary: List polydb_permission_audit_log
      tags:
        - Resources
      security:
        -
          BearerAuth: []
      parameters:
        -
          name: page
          in: query
          schema:
            type: integer
            default: 1
        -
          name: per_page
          in: query
          schema:
            type: integer
            default: 25
            maximum: 1000
        -
          name: sort
          in: query
          schema:
            type: string
          description: 'Comma-separated fields, prefix - for DESC'
        -
          name: fields
          in: query
          schema:
            type: string
          description: Comma-separated field names (sparse fieldset)
      responses:
        '200':
          description: OK
        '401':
          description: Unauthorized
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/ProblemDetails'
        '403':
          description: Forbidden
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/ProblemDetails'
        '429':
          description: Rate limit exceeded
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/ProblemDetails'
    post:
      operationId: createPolydbPermissionAuditLog
      summary: Create polydb_permission_audit_log
      tags:
        - Resources
      security:
        -
          BearerAuth: []
      requestBody:
        required: true
        content:
          application/json:
            schema:
              type: object
              properties:
                view_id:
                  type: integer
                staff_id:
                  type: integer
                action:
                  type: string
                permission_type:
                  type: string
                permission_id:
                  type: integer
                ip_address:
                  type: string
                user_agent:
                  type: string
              required:
                - view_id
                - staff_id
                - action
      responses:
        '201':
          description: Created
        '401':
          description: Unauthorized
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/ProblemDetails'
        '403':
          description: Forbidden
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/ProblemDetails'
        '429':
          description: Rate limit exceeded
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/ProblemDetails'
  /polydb_permission_audit_log/{id}:
    get:
      operationId: getPolydbPermissionAuditLogById
      summary: Get polydb_permission_audit_log by ID
      tags:
        - Resources
      security:
        -
          BearerAuth: []
      parameters:
        -
          name: id
          in: path
          required: true
          schema:
            type: integer
      responses:
        '200':
          description: OK
        '401':
          description: Unauthorized
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/ProblemDetails'
        '403':
          description: Forbidden
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/ProblemDetails'
        '429':
          description: Rate limit exceeded
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/ProblemDetails'
    put:
      operationId: updatePolydbPermissionAuditLog
      summary: Update polydb_permission_audit_log
      tags:
        - Resources
      security:
        -
          BearerAuth: []
      parameters:
        -
          name: id
          in: path
          required: true
          schema:
            type: integer
      requestBody:
        required: true
        content:
          application/json:
            schema:
              type: object
              properties:
                view_id:
                  type: integer
                staff_id:
                  type: integer
                action:
                  type: string
                permission_type:
                  type: string
                permission_id:
                  type: integer
                ip_address:
                  type: string
                user_agent:
                  type: string
              additionalProperties: true
      responses:
        '200':
          description: OK
        '401':
          description: Unauthorized
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/ProblemDetails'
        '403':
          description: Forbidden
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/ProblemDetails'
        '429':
          description: Rate limit exceeded
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/ProblemDetails'
    delete:
      operationId: deletePolydbPermissionAuditLog
      summary: Delete polydb_permission_audit_log
      tags:
        - Resources
      security:
        -
          BearerAuth: []
      parameters:
        -
          name: id
          in: path
          required: true
          schema:
            type: integer
      responses:
        '200':
          description: Deleted
        '401':
          description: Unauthorized
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/ProblemDetails'
        '403':
          description: Forbidden
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/ProblemDetails'
        '429':
          description: Rate limit exceeded
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/ProblemDetails'
  /polydb_permission_audit_log/schema:
    get:
      operationId: schemaPolydbPermissionAuditLog
      summary: Schema of polydb_permission_audit_log
      tags:
        - Resources
      security:
        -
          BearerAuth: []
      responses:
        '200':
          description: OK
        '401':
          description: Unauthorized
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/ProblemDetails'
        '403':
          description: Forbidden
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/ProblemDetails'
        '429':
          description: Rate limit exceeded
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/ProblemDetails'
  /polydb_report_group_items:
    get:
      operationId: listPolydbReportGroupItems
      summary: List polydb_report_group_items
      tags:
        - Resources
      security:
        -
          BearerAuth: []
      parameters:
        -
          name: page
          in: query
          schema:
            type: integer
            default: 1
        -
          name: per_page
          in: query
          schema:
            type: integer
            default: 25
            maximum: 1000
        -
          name: sort
          in: query
          schema:
            type: string
          description: 'Comma-separated fields, prefix - for DESC'
        -
          name: fields
          in: query
          schema:
            type: string
          description: Comma-separated field names (sparse fieldset)
      responses:
        '200':
          description: OK
        '401':
          description: Unauthorized
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/ProblemDetails'
        '403':
          description: Forbidden
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/ProblemDetails'
        '429':
          description: Rate limit exceeded
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/ProblemDetails'
    post:
      operationId: createPolydbReportGroupItems
      summary: Create polydb_report_group_items
      tags:
        - Resources
      security:
        -
          BearerAuth: []
      requestBody:
        required: true
        content:
          application/json:
            schema:
              type: object
              properties:
                group_id:
                  type: integer
                view_id:
                  type: integer
                sort_order:
                  type: integer
                tab_label:
                  type: string
              required:
                - group_id
                - view_id
      responses:
        '201':
          description: Created
        '401':
          description: Unauthorized
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/ProblemDetails'
        '403':
          description: Forbidden
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/ProblemDetails'
        '429':
          description: Rate limit exceeded
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/ProblemDetails'
  /polydb_report_group_items/{id}:
    get:
      operationId: getPolydbReportGroupItemsById
      summary: Get polydb_report_group_items by ID
      tags:
        - Resources
      security:
        -
          BearerAuth: []
      parameters:
        -
          name: id
          in: path
          required: true
          schema:
            type: integer
      responses:
        '200':
          description: OK
        '401':
          description: Unauthorized
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/ProblemDetails'
        '403':
          description: Forbidden
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/ProblemDetails'
        '429':
          description: Rate limit exceeded
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/ProblemDetails'
    put:
      operationId: updatePolydbReportGroupItems
      summary: Update polydb_report_group_items
      tags:
        - Resources
      security:
        -
          BearerAuth: []
      parameters:
        -
          name: id
          in: path
          required: true
          schema:
            type: integer
      requestBody:
        required: true
        content:
          application/json:
            schema:
              type: object
              properties:
                group_id:
                  type: integer
                view_id:
                  type: integer
                sort_order:
                  type: integer
                tab_label:
                  type: string
              additionalProperties: true
      responses:
        '200':
          description: OK
        '401':
          description: Unauthorized
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/ProblemDetails'
        '403':
          description: Forbidden
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/ProblemDetails'
        '429':
          description: Rate limit exceeded
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/ProblemDetails'
    delete:
      operationId: deletePolydbReportGroupItems
      summary: Delete polydb_report_group_items
      tags:
        - Resources
      security:
        -
          BearerAuth: []
      parameters:
        -
          name: id
          in: path
          required: true
          schema:
            type: integer
      responses:
        '200':
          description: Deleted
        '401':
          description: Unauthorized
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/ProblemDetails'
        '403':
          description: Forbidden
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/ProblemDetails'
        '429':
          description: Rate limit exceeded
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/ProblemDetails'
  /polydb_report_group_items/schema:
    get:
      operationId: schemaPolydbReportGroupItems
      summary: Schema of polydb_report_group_items
      tags:
        - Resources
      security:
        -
          BearerAuth: []
      responses:
        '200':
          description: OK
        '401':
          description: Unauthorized
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/ProblemDetails'
        '403':
          description: Forbidden
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/ProblemDetails'
        '429':
          description: Rate limit exceeded
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/ProblemDetails'
  /polydb_report_groups:
    get:
      operationId: listPolydbReportGroups
      summary: List polydb_report_groups
      tags:
        - Resources
      security:
        -
          BearerAuth: []
      parameters:
        -
          name: page
          in: query
          schema:
            type: integer
            default: 1
        -
          name: per_page
          in: query
          schema:
            type: integer
            default: 25
            maximum: 1000
        -
          name: sort
          in: query
          schema:
            type: string
          description: 'Comma-separated fields, prefix - for DESC'
        -
          name: fields
          in: query
          schema:
            type: string
          description: Comma-separated field names (sparse fieldset)
      responses:
        '200':
          description: OK
        '401':
          description: Unauthorized
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/ProblemDetails'
        '403':
          description: Forbidden
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/ProblemDetails'
        '429':
          description: Rate limit exceeded
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/ProblemDetails'
    post:
      operationId: createPolydbReportGroups
      summary: Create polydb_report_groups
      tags:
        - Resources
      security:
        -
          BearerAuth: []
      requestBody:
        required: true
        content:
          application/json:
            schema:
              type: object
              properties:
                name:
                  type: string
                description:
                  type: string
                route:
                  type: string
                created_by:
                  type: integer
                status:
                  type: integer
              required:
                - name
                - route
                - created_by
      responses:
        '201':
          description: Created
        '401':
          description: Unauthorized
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/ProblemDetails'
        '403':
          description: Forbidden
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/ProblemDetails'
        '429':
          description: Rate limit exceeded
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/ProblemDetails'
  /polydb_report_groups/{id}:
    get:
      operationId: getPolydbReportGroupsById
      summary: Get polydb_report_groups by ID
      tags:
        - Resources
      security:
        -
          BearerAuth: []
      parameters:
        -
          name: id
          in: path
          required: true
          schema:
            type: integer
      responses:
        '200':
          description: OK
        '401':
          description: Unauthorized
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/ProblemDetails'
        '403':
          description: Forbidden
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/ProblemDetails'
        '429':
          description: Rate limit exceeded
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/ProblemDetails'
    put:
      operationId: updatePolydbReportGroups
      summary: Update polydb_report_groups
      tags:
        - Resources
      security:
        -
          BearerAuth: []
      parameters:
        -
          name: id
          in: path
          required: true
          schema:
            type: integer
      requestBody:
        required: true
        content:
          application/json:
            schema:
              type: object
              properties:
                name:
                  type: string
                description:
                  type: string
                route:
                  type: string
                created_by:
                  type: integer
                status:
                  type: integer
              additionalProperties: true
      responses:
        '200':
          description: OK
        '401':
          description: Unauthorized
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/ProblemDetails'
        '403':
          description: Forbidden
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/ProblemDetails'
        '429':
          description: Rate limit exceeded
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/ProblemDetails'
    delete:
      operationId: deletePolydbReportGroups
      summary: Delete polydb_report_groups
      tags:
        - Resources
      security:
        -
          BearerAuth: []
      parameters:
        -
          name: id
          in: path
          required: true
          schema:
            type: integer
      responses:
        '200':
          description: Deleted
        '401':
          description: Unauthorized
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/ProblemDetails'
        '403':
          description: Forbidden
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/ProblemDetails'
        '429':
          description: Rate limit exceeded
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/ProblemDetails'
  /polydb_report_groups/schema:
    get:
      operationId: schemaPolydbReportGroups
      summary: Schema of polydb_report_groups
      tags:
        - Resources
      security:
        -
          BearerAuth: []
      responses:
        '200':
          description: OK
        '401':
          description: Unauthorized
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/ProblemDetails'
        '403':
          description: Forbidden
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/ProblemDetails'
        '429':
          description: Rate limit exceeded
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/ProblemDetails'
  /polydb_table_relations:
    get:
      operationId: listPolydbTableRelations
      summary: List polydb_table_relations
      tags:
        - Resources
      security:
        -
          BearerAuth: []
      parameters:
        -
          name: page
          in: query
          schema:
            type: integer
            default: 1
        -
          name: per_page
          in: query
          schema:
            type: integer
            default: 25
            maximum: 1000
        -
          name: sort
          in: query
          schema:
            type: string
          description: 'Comma-separated fields, prefix - for DESC'
        -
          name: fields
          in: query
          schema:
            type: string
          description: Comma-separated field names (sparse fieldset)
      responses:
        '200':
          description: OK
        '401':
          description: Unauthorized
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/ProblemDetails'
        '403':
          description: Forbidden
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/ProblemDetails'
        '429':
          description: Rate limit exceeded
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/ProblemDetails'
    post:
      operationId: createPolydbTableRelations
      summary: Create polydb_table_relations
      tags:
        - Resources
      security:
        -
          BearerAuth: []
      requestBody:
        required: true
        content:
          application/json:
            schema:
              type: object
              properties:
                table_a:
                  type: string
                table_b:
                  type: string
                join_type:
                  type: string
                join_condition:
                  type: string
                is_default:
                  type: integer
              required:
                - table_a
                - table_b
                - join_condition
      responses:
        '201':
          description: Created
        '401':
          description: Unauthorized
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/ProblemDetails'
        '403':
          description: Forbidden
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/ProblemDetails'
        '429':
          description: Rate limit exceeded
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/ProblemDetails'
  /polydb_table_relations/{id}:
    get:
      operationId: getPolydbTableRelationsById
      summary: Get polydb_table_relations by ID
      tags:
        - Resources
      security:
        -
          BearerAuth: []
      parameters:
        -
          name: id
          in: path
          required: true
          schema:
            type: integer
      responses:
        '200':
          description: OK
        '401':
          description: Unauthorized
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/ProblemDetails'
        '403':
          description: Forbidden
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/ProblemDetails'
        '429':
          description: Rate limit exceeded
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/ProblemDetails'
    put:
      operationId: updatePolydbTableRelations
      summary: Update polydb_table_relations
      tags:
        - Resources
      security:
        -
          BearerAuth: []
      parameters:
        -
          name: id
          in: path
          required: true
          schema:
            type: integer
      requestBody:
        required: true
        content:
          application/json:
            schema:
              type: object
              properties:
                table_a:
                  type: string
                table_b:
                  type: string
                join_type:
                  type: string
                join_condition:
                  type: string
                is_default:
                  type: integer
              additionalProperties: true
      responses:
        '200':
          description: OK
        '401':
          description: Unauthorized
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/ProblemDetails'
        '403':
          description: Forbidden
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/ProblemDetails'
        '429':
          description: Rate limit exceeded
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/ProblemDetails'
    delete:
      operationId: deletePolydbTableRelations
      summary: Delete polydb_table_relations
      tags:
        - Resources
      security:
        -
          BearerAuth: []
      parameters:
        -
          name: id
          in: path
          required: true
          schema:
            type: integer
      responses:
        '200':
          description: Deleted
        '401':
          description: Unauthorized
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/ProblemDetails'
        '403':
          description: Forbidden
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/ProblemDetails'
        '429':
          description: Rate limit exceeded
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/ProblemDetails'
  /polydb_table_relations/schema:
    get:
      operationId: schemaPolydbTableRelations
      summary: Schema of polydb_table_relations
      tags:
        - Resources
      security:
        -
          BearerAuth: []
      responses:
        '200':
          description: OK
        '401':
          description: Unauthorized
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/ProblemDetails'
        '403':
          description: Forbidden
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/ProblemDetails'
        '429':
          description: Rate limit exceeded
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/ProblemDetails'
  /polydb_view_permissions:
    get:
      operationId: listPolydbViewPermissions
      summary: List polydb_view_permissions
      tags:
        - Resources
      security:
        -
          BearerAuth: []
      parameters:
        -
          name: page
          in: query
          schema:
            type: integer
            default: 1
        -
          name: per_page
          in: query
          schema:
            type: integer
            default: 25
            maximum: 1000
        -
          name: sort
          in: query
          schema:
            type: string
          description: 'Comma-separated fields, prefix - for DESC'
        -
          name: fields
          in: query
          schema:
            type: string
          description: Comma-separated field names (sparse fieldset)
      responses:
        '200':
          description: OK
        '401':
          description: Unauthorized
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/ProblemDetails'
        '403':
          description: Forbidden
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/ProblemDetails'
        '429':
          description: Rate limit exceeded
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/ProblemDetails'
    post:
      operationId: createPolydbViewPermissions
      summary: Create polydb_view_permissions
      tags:
        - Resources
      security:
        -
          BearerAuth: []
      requestBody:
        required: true
        content:
          application/json:
            schema:
              type: object
              properties:
                view_id:
                  type: integer
                permission_type:
                  type: string
                permission_id:
                  type: integer
                can_view:
                  type: integer
                can_edit:
                  type: integer
                can_delete:
                  type: integer
              required:
                - view_id
                - permission_type
                - permission_id
      responses:
        '201':
          description: Created
        '401':
          description: Unauthorized
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/ProblemDetails'
        '403':
          description: Forbidden
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/ProblemDetails'
        '429':
          description: Rate limit exceeded
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/ProblemDetails'
  /polydb_view_permissions/{id}:
    get:
      operationId: getPolydbViewPermissionsById
      summary: Get polydb_view_permissions by ID
      tags:
        - Resources
      security:
        -
          BearerAuth: []
      parameters:
        -
          name: id
          in: path
          required: true
          schema:
            type: integer
      responses:
        '200':
          description: OK
        '401':
          description: Unauthorized
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/ProblemDetails'
        '403':
          description: Forbidden
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/ProblemDetails'
        '429':
          description: Rate limit exceeded
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/ProblemDetails'
    put:
      operationId: updatePolydbViewPermissions
      summary: Update polydb_view_permissions
      tags:
        - Resources
      security:
        -
          BearerAuth: []
      parameters:
        -
          name: id
          in: path
          required: true
          schema:
            type: integer
      requestBody:
        required: true
        content:
          application/json:
            schema:
              type: object
              properties:
                view_id:
                  type: integer
                permission_type:
                  type: string
                permission_id:
                  type: integer
                can_view:
                  type: integer
                can_edit:
                  type: integer
                can_delete:
                  type: integer
              additionalProperties: true
      responses:
        '200':
          description: OK
        '401':
          description: Unauthorized
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/ProblemDetails'
        '403':
          description: Forbidden
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/ProblemDetails'
        '429':
          description: Rate limit exceeded
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/ProblemDetails'
    delete:
      operationId: deletePolydbViewPermissions
      summary: Delete polydb_view_permissions
      tags:
        - Resources
      security:
        -
          BearerAuth: []
      parameters:
        -
          name: id
          in: path
          required: true
          schema:
            type: integer
      responses:
        '200':
          description: Deleted
        '401':
          description: Unauthorized
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/ProblemDetails'
        '403':
          description: Forbidden
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/ProblemDetails'
        '429':
          description: Rate limit exceeded
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/ProblemDetails'
  /polydb_view_permissions/schema:
    get:
      operationId: schemaPolydbViewPermissions
      summary: Schema of polydb_view_permissions
      tags:
        - Resources
      security:
        -
          BearerAuth: []
      responses:
        '200':
          description: OK
        '401':
          description: Unauthorized
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/ProblemDetails'
        '403':
          description: Forbidden
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/ProblemDetails'
        '429':
          description: Rate limit exceeded
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/ProblemDetails'
  /polydb_views:
    get:
      operationId: listPolydbViews
      summary: List polydb_views
      tags:
        - Resources
      security:
        -
          BearerAuth: []
      parameters:
        -
          name: page
          in: query
          schema:
            type: integer
            default: 1
        -
          name: per_page
          in: query
          schema:
            type: integer
            default: 25
            maximum: 1000
        -
          name: sort
          in: query
          schema:
            type: string
          description: 'Comma-separated fields, prefix - for DESC'
        -
          name: fields
          in: query
          schema:
            type: string
          description: Comma-separated field names (sparse fieldset)
      responses:
        '200':
          description: OK
        '401':
          description: Unauthorized
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/ProblemDetails'
        '403':
          description: Forbidden
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/ProblemDetails'
        '429':
          description: Rate limit exceeded
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/ProblemDetails'
    post:
      operationId: createPolydbViews
      summary: Create polydb_views
      tags:
        - Resources
      security:
        -
          BearerAuth: []
      requestBody:
        required: true
        content:
          application/json:
            schema:
              type: object
              properties:
                name:
                  type: string
                description:
                  type: string
                config_json:
                  type: string
                route:
                  type: string
                created_by:
                  type: integer
                is_public:
                  type: integer
                public_access:
                  type: integer
                status:
                  type: integer
              required:
                - name
                - config_json
                - route
                - created_by
      responses:
        '201':
          description: Created
        '401':
          description: Unauthorized
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/ProblemDetails'
        '403':
          description: Forbidden
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/ProblemDetails'
        '429':
          description: Rate limit exceeded
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/ProblemDetails'
  /polydb_views/{id}:
    get:
      operationId: getPolydbViewsById
      summary: Get polydb_views by ID
      tags:
        - Resources
      security:
        -
          BearerAuth: []
      parameters:
        -
          name: id
          in: path
          required: true
          schema:
            type: integer
      responses:
        '200':
          description: OK
        '401':
          description: Unauthorized
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/ProblemDetails'
        '403':
          description: Forbidden
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/ProblemDetails'
        '429':
          description: Rate limit exceeded
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/ProblemDetails'
    put:
      operationId: updatePolydbViews
      summary: Update polydb_views
      tags:
        - Resources
      security:
        -
          BearerAuth: []
      parameters:
        -
          name: id
          in: path
          required: true
          schema:
            type: integer
      requestBody:
        required: true
        content:
          application/json:
            schema:
              type: object
              properties:
                name:
                  type: string
                description:
                  type: string
                config_json:
                  type: string
                route:
                  type: string
                created_by:
                  type: integer
                is_public:
                  type: integer
                public_access:
                  type: integer
                status:
                  type: integer
              additionalProperties: true
      responses:
        '200':
          description: OK
        '401':
          description: Unauthorized
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/ProblemDetails'
        '403':
          description: Forbidden
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/ProblemDetails'
        '429':
          description: Rate limit exceeded
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/ProblemDetails'
    delete:
      operationId: deletePolydbViews
      summary: Delete polydb_views
      tags:
        - Resources
      security:
        -
          BearerAuth: []
      parameters:
        -
          name: id
          in: path
          required: true
          schema:
            type: integer
      responses:
        '200':
          description: Deleted
        '401':
          description: Unauthorized
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/ProblemDetails'
        '403':
          description: Forbidden
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/ProblemDetails'
        '429':
          description: Rate limit exceeded
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/ProblemDetails'
  /polydb_views/schema:
    get:
      operationId: schemaPolydbViews
      summary: Schema of polydb_views
      tags:
        - Resources
      security:
        -
          BearerAuth: []
      responses:
        '200':
          description: OK
        '401':
          description: Unauthorized
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/ProblemDetails'
        '403':
          description: Forbidden
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/ProblemDetails'
        '429':
          description: Rate limit exceeded
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/ProblemDetails'
  /project_activity:
    get:
      operationId: listProjectActivity
      summary: List project_activity
      tags:
        - Resources
      security:
        -
          BearerAuth: []
      parameters:
        -
          name: page
          in: query
          schema:
            type: integer
            default: 1
        -
          name: per_page
          in: query
          schema:
            type: integer
            default: 25
            maximum: 1000
        -
          name: sort
          in: query
          schema:
            type: string
          description: 'Comma-separated fields, prefix - for DESC'
        -
          name: fields
          in: query
          schema:
            type: string
          description: Comma-separated field names (sparse fieldset)
      responses:
        '200':
          description: OK
        '401':
          description: Unauthorized
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/ProblemDetails'
        '403':
          description: Forbidden
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/ProblemDetails'
        '429':
          description: Rate limit exceeded
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/ProblemDetails'
    post:
      operationId: createProjectActivity
      summary: Create project_activity
      tags:
        - Resources
      security:
        -
          BearerAuth: []
      requestBody:
        required: true
        content:
          application/json:
            schema:
              type: object
              properties:
                project_id:
                  type: integer
                staff_id:
                  type: integer
                contact_id:
                  type: integer
                fullname:
                  type: string
                visible_to_customer:
                  type: integer
                description_key:
                  type: string
                additional_data:
                  type: string
              required:
                - project_id
                - description_key
      responses:
        '201':
          description: Created
        '401':
          description: Unauthorized
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/ProblemDetails'
        '403':
          description: Forbidden
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/ProblemDetails'
        '429':
          description: Rate limit exceeded
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/ProblemDetails'
  /project_activity/{id}:
    get:
      operationId: getProjectActivityById
      summary: Get project_activity by ID
      tags:
        - Resources
      security:
        -
          BearerAuth: []
      parameters:
        -
          name: id
          in: path
          required: true
          schema:
            type: integer
      responses:
        '200':
          description: OK
        '401':
          description: Unauthorized
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/ProblemDetails'
        '403':
          description: Forbidden
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/ProblemDetails'
        '429':
          description: Rate limit exceeded
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/ProblemDetails'
    put:
      operationId: updateProjectActivity
      summary: Update project_activity
      tags:
        - Resources
      security:
        -
          BearerAuth: []
      parameters:
        -
          name: id
          in: path
          required: true
          schema:
            type: integer
      requestBody:
        required: true
        content:
          application/json:
            schema:
              type: object
              properties:
                project_id:
                  type: integer
                staff_id:
                  type: integer
                contact_id:
                  type: integer
                fullname:
                  type: string
                visible_to_customer:
                  type: integer
                description_key:
                  type: string
                additional_data:
                  type: string
              additionalProperties: true
      responses:
        '200':
          description: OK
        '401':
          description: Unauthorized
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/ProblemDetails'
        '403':
          description: Forbidden
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/ProblemDetails'
        '429':
          description: Rate limit exceeded
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/ProblemDetails'
    delete:
      operationId: deleteProjectActivity
      summary: Delete project_activity
      tags:
        - Resources
      security:
        -
          BearerAuth: []
      parameters:
        -
          name: id
          in: path
          required: true
          schema:
            type: integer
      responses:
        '200':
          description: Deleted
        '401':
          description: Unauthorized
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/ProblemDetails'
        '403':
          description: Forbidden
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/ProblemDetails'
        '429':
          description: Rate limit exceeded
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/ProblemDetails'
  /project_activity/schema:
    get:
      operationId: schemaProjectActivity
      summary: Schema of project_activity
      tags:
        - Resources
      security:
        -
          BearerAuth: []
      responses:
        '200':
          description: OK
        '401':
          description: Unauthorized
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/ProblemDetails'
        '403':
          description: Forbidden
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/ProblemDetails'
        '429':
          description: Rate limit exceeded
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/ProblemDetails'
  /project_files:
    get:
      operationId: listProjectFiles
      summary: List project_files
      tags:
        - Resources
      security:
        -
          BearerAuth: []
      parameters:
        -
          name: page
          in: query
          schema:
            type: integer
            default: 1
        -
          name: per_page
          in: query
          schema:
            type: integer
            default: 25
            maximum: 1000
        -
          name: sort
          in: query
          schema:
            type: string
          description: 'Comma-separated fields, prefix - for DESC'
        -
          name: fields
          in: query
          schema:
            type: string
          description: Comma-separated field names (sparse fieldset)
      responses:
        '200':
          description: OK
        '401':
          description: Unauthorized
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/ProblemDetails'
        '403':
          description: Forbidden
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/ProblemDetails'
        '429':
          description: Rate limit exceeded
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/ProblemDetails'
    post:
      operationId: createProjectFiles
      summary: Create project_files
      tags:
        - Resources
      security:
        -
          BearerAuth: []
      requestBody:
        required: true
        content:
          application/json:
            schema:
              type: object
              properties:
                file_name:
                  type: string
                original_file_name:
                  type: string
                subject:
                  type: string
                description:
                  type: string
                filetype:
                  type: string
                project_id:
                  type: integer
                visible_to_customer:
                  type: integer
                staffid:
                  type: integer
                contact_id:
                  type: integer
                external:
                  type: string
                external_link:
                  type: string
                thumbnail_link:
                  type: string
              required:
                - file_name
                - project_id
                - staffid
      responses:
        '201':
          description: Created
        '401':
          description: Unauthorized
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/ProblemDetails'
        '403':
          description: Forbidden
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/ProblemDetails'
        '429':
          description: Rate limit exceeded
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/ProblemDetails'
  /project_files/{id}:
    get:
      operationId: getProjectFilesById
      summary: Get project_files by ID
      tags:
        - Resources
      security:
        -
          BearerAuth: []
      parameters:
        -
          name: id
          in: path
          required: true
          schema:
            type: integer
      responses:
        '200':
          description: OK
        '401':
          description: Unauthorized
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/ProblemDetails'
        '403':
          description: Forbidden
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/ProblemDetails'
        '429':
          description: Rate limit exceeded
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/ProblemDetails'
    put:
      operationId: updateProjectFiles
      summary: Update project_files
      tags:
        - Resources
      security:
        -
          BearerAuth: []
      parameters:
        -
          name: id
          in: path
          required: true
          schema:
            type: integer
      requestBody:
        required: true
        content:
          application/json:
            schema:
              type: object
              properties:
                file_name:
                  type: string
                original_file_name:
                  type: string
                subject:
                  type: string
                description:
                  type: string
                filetype:
                  type: string
                project_id:
                  type: integer
                visible_to_customer:
                  type: integer
                staffid:
                  type: integer
                contact_id:
                  type: integer
                external:
                  type: string
                external_link:
                  type: string
                thumbnail_link:
                  type: string
              additionalProperties: true
      responses:
        '200':
          description: OK
        '401':
          description: Unauthorized
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/ProblemDetails'
        '403':
          description: Forbidden
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/ProblemDetails'
        '429':
          description: Rate limit exceeded
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/ProblemDetails'
    delete:
      operationId: deleteProjectFiles
      summary: Delete project_files
      tags:
        - Resources
      security:
        -
          BearerAuth: []
      parameters:
        -
          name: id
          in: path
          required: true
          schema:
            type: integer
      responses:
        '200':
          description: Deleted
        '401':
          description: Unauthorized
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/ProblemDetails'
        '403':
          description: Forbidden
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/ProblemDetails'
        '429':
          description: Rate limit exceeded
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/ProblemDetails'
  /project_files/schema:
    get:
      operationId: schemaProjectFiles
      summary: Schema of project_files
      tags:
        - Resources
      security:
        -
          BearerAuth: []
      responses:
        '200':
          description: OK
        '401':
          description: Unauthorized
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/ProblemDetails'
        '403':
          description: Forbidden
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/ProblemDetails'
        '429':
          description: Rate limit exceeded
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/ProblemDetails'
  /project_members:
    get:
      operationId: listProjectMembers
      summary: List project_members
      tags:
        - Resources
      security:
        -
          BearerAuth: []
      parameters:
        -
          name: page
          in: query
          schema:
            type: integer
            default: 1
        -
          name: per_page
          in: query
          schema:
            type: integer
            default: 25
            maximum: 1000
        -
          name: sort
          in: query
          schema:
            type: string
          description: 'Comma-separated fields, prefix - for DESC'
        -
          name: fields
          in: query
          schema:
            type: string
          description: Comma-separated field names (sparse fieldset)
      responses:
        '200':
          description: OK
        '401':
          description: Unauthorized
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/ProblemDetails'
        '403':
          description: Forbidden
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/ProblemDetails'
        '429':
          description: Rate limit exceeded
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/ProblemDetails'
    post:
      operationId: createProjectMembers
      summary: Create project_members
      tags:
        - Resources
      security:
        -
          BearerAuth: []
      requestBody:
        required: true
        content:
          application/json:
            schema:
              type: object
              properties:
                project_id:
                  type: integer
                staff_id:
                  type: integer
              required:
                - project_id
                - staff_id
      responses:
        '201':
          description: Created
        '401':
          description: Unauthorized
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/ProblemDetails'
        '403':
          description: Forbidden
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/ProblemDetails'
        '429':
          description: Rate limit exceeded
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/ProblemDetails'
  /project_members/{id}:
    get:
      operationId: getProjectMembersById
      summary: Get project_members by ID
      tags:
        - Resources
      security:
        -
          BearerAuth: []
      parameters:
        -
          name: id
          in: path
          required: true
          schema:
            type: integer
      responses:
        '200':
          description: OK
        '401':
          description: Unauthorized
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/ProblemDetails'
        '403':
          description: Forbidden
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/ProblemDetails'
        '429':
          description: Rate limit exceeded
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/ProblemDetails'
    put:
      operationId: updateProjectMembers
      summary: Update project_members
      tags:
        - Resources
      security:
        -
          BearerAuth: []
      parameters:
        -
          name: id
          in: path
          required: true
          schema:
            type: integer
      requestBody:
        required: true
        content:
          application/json:
            schema:
              type: object
              properties:
                project_id:
                  type: integer
                staff_id:
                  type: integer
              additionalProperties: true
      responses:
        '200':
          description: OK
        '401':
          description: Unauthorized
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/ProblemDetails'
        '403':
          description: Forbidden
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/ProblemDetails'
        '429':
          description: Rate limit exceeded
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/ProblemDetails'
    delete:
      operationId: deleteProjectMembers
      summary: Delete project_members
      tags:
        - Resources
      security:
        -
          BearerAuth: []
      parameters:
        -
          name: id
          in: path
          required: true
          schema:
            type: integer
      responses:
        '200':
          description: Deleted
        '401':
          description: Unauthorized
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/ProblemDetails'
        '403':
          description: Forbidden
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/ProblemDetails'
        '429':
          description: Rate limit exceeded
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/ProblemDetails'
  /project_members/schema:
    get:
      operationId: schemaProjectMembers
      summary: Schema of project_members
      tags:
        - Resources
      security:
        -
          BearerAuth: []
      responses:
        '200':
          description: OK
        '401':
          description: Unauthorized
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/ProblemDetails'
        '403':
          description: Forbidden
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/ProblemDetails'
        '429':
          description: Rate limit exceeded
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/ProblemDetails'
  /project_notes:
    get:
      operationId: listProjectNotes
      summary: List project_notes
      tags:
        - Resources
      security:
        -
          BearerAuth: []
      parameters:
        -
          name: page
          in: query
          schema:
            type: integer
            default: 1
        -
          name: per_page
          in: query
          schema:
            type: integer
            default: 25
            maximum: 1000
        -
          name: sort
          in: query
          schema:
            type: string
          description: 'Comma-separated fields, prefix - for DESC'
        -
          name: fields
          in: query
          schema:
            type: string
          description: Comma-separated field names (sparse fieldset)
      responses:
        '200':
          description: OK
        '401':
          description: Unauthorized
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/ProblemDetails'
        '403':
          description: Forbidden
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/ProblemDetails'
        '429':
          description: Rate limit exceeded
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/ProblemDetails'
    post:
      operationId: createProjectNotes
      summary: Create project_notes
      tags:
        - Resources
      security:
        -
          BearerAuth: []
      requestBody:
        required: true
        content:
          application/json:
            schema:
              type: object
              properties:
                project_id:
                  type: integer
                title:
                  type: string
                content:
                  type: string
                staff_id:
                  type: integer
              required:
                - project_id
                - content
                - staff_id
      responses:
        '201':
          description: Created
        '401':
          description: Unauthorized
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/ProblemDetails'
        '403':
          description: Forbidden
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/ProblemDetails'
        '429':
          description: Rate limit exceeded
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/ProblemDetails'
  /project_notes/{id}:
    get:
      operationId: getProjectNotesById
      summary: Get project_notes by ID
      tags:
        - Resources
      security:
        -
          BearerAuth: []
      parameters:
        -
          name: id
          in: path
          required: true
          schema:
            type: integer
      responses:
        '200':
          description: OK
        '401':
          description: Unauthorized
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/ProblemDetails'
        '403':
          description: Forbidden
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/ProblemDetails'
        '429':
          description: Rate limit exceeded
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/ProblemDetails'
    put:
      operationId: updateProjectNotes
      summary: Update project_notes
      tags:
        - Resources
      security:
        -
          BearerAuth: []
      parameters:
        -
          name: id
          in: path
          required: true
          schema:
            type: integer
      requestBody:
        required: true
        content:
          application/json:
            schema:
              type: object
              properties:
                project_id:
                  type: integer
                title:
                  type: string
                content:
                  type: string
                staff_id:
                  type: integer
              additionalProperties: true
      responses:
        '200':
          description: OK
        '401':
          description: Unauthorized
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/ProblemDetails'
        '403':
          description: Forbidden
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/ProblemDetails'
        '429':
          description: Rate limit exceeded
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/ProblemDetails'
    delete:
      operationId: deleteProjectNotes
      summary: Delete project_notes
      tags:
        - Resources
      security:
        -
          BearerAuth: []
      parameters:
        -
          name: id
          in: path
          required: true
          schema:
            type: integer
      responses:
        '200':
          description: Deleted
        '401':
          description: Unauthorized
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/ProblemDetails'
        '403':
          description: Forbidden
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/ProblemDetails'
        '429':
          description: Rate limit exceeded
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/ProblemDetails'
  /project_notes/schema:
    get:
      operationId: schemaProjectNotes
      summary: Schema of project_notes
      tags:
        - Resources
      security:
        -
          BearerAuth: []
      responses:
        '200':
          description: OK
        '401':
          description: Unauthorized
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/ProblemDetails'
        '403':
          description: Forbidden
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/ProblemDetails'
        '429':
          description: Rate limit exceeded
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/ProblemDetails'
  /project_settings:
    get:
      operationId: listProjectSettings
      summary: List project_settings
      tags:
        - Resources
      security:
        -
          BearerAuth: []
      parameters:
        -
          name: page
          in: query
          schema:
            type: integer
            default: 1
        -
          name: per_page
          in: query
          schema:
            type: integer
            default: 25
            maximum: 1000
        -
          name: sort
          in: query
          schema:
            type: string
          description: 'Comma-separated fields, prefix - for DESC'
        -
          name: fields
          in: query
          schema:
            type: string
          description: Comma-separated field names (sparse fieldset)
      responses:
        '200':
          description: OK
        '401':
          description: Unauthorized
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/ProblemDetails'
        '403':
          description: Forbidden
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/ProblemDetails'
        '429':
          description: Rate limit exceeded
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/ProblemDetails'
    post:
      operationId: createProjectSettings
      summary: Create project_settings
      tags:
        - Resources
      security:
        -
          BearerAuth: []
      requestBody:
        required: true
        content:
          application/json:
            schema:
              type: object
              properties:
                project_id:
                  type: integer
                name:
                  type: string
                value:
                  type: string
              required:
                - project_id
                - name
      responses:
        '201':
          description: Created
        '401':
          description: Unauthorized
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/ProblemDetails'
        '403':
          description: Forbidden
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/ProblemDetails'
        '429':
          description: Rate limit exceeded
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/ProblemDetails'
  /project_settings/{id}:
    get:
      operationId: getProjectSettingsById
      summary: Get project_settings by ID
      tags:
        - Resources
      security:
        -
          BearerAuth: []
      parameters:
        -
          name: id
          in: path
          required: true
          schema:
            type: integer
      responses:
        '200':
          description: OK
        '401':
          description: Unauthorized
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/ProblemDetails'
        '403':
          description: Forbidden
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/ProblemDetails'
        '429':
          description: Rate limit exceeded
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/ProblemDetails'
    put:
      operationId: updateProjectSettings
      summary: Update project_settings
      tags:
        - Resources
      security:
        -
          BearerAuth: []
      parameters:
        -
          name: id
          in: path
          required: true
          schema:
            type: integer
      requestBody:
        required: true
        content:
          application/json:
            schema:
              type: object
              properties:
                project_id:
                  type: integer
                name:
                  type: string
                value:
                  type: string
              additionalProperties: true
      responses:
        '200':
          description: OK
        '401':
          description: Unauthorized
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/ProblemDetails'
        '403':
          description: Forbidden
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/ProblemDetails'
        '429':
          description: Rate limit exceeded
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/ProblemDetails'
    delete:
      operationId: deleteProjectSettings
      summary: Delete project_settings
      tags:
        - Resources
      security:
        -
          BearerAuth: []
      parameters:
        -
          name: id
          in: path
          required: true
          schema:
            type: integer
      responses:
        '200':
          description: Deleted
        '401':
          description: Unauthorized
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/ProblemDetails'
        '403':
          description: Forbidden
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/ProblemDetails'
        '429':
          description: Rate limit exceeded
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/ProblemDetails'
  /project_settings/schema:
    get:
      operationId: schemaProjectSettings
      summary: Schema of project_settings
      tags:
        - Resources
      security:
        -
          BearerAuth: []
      responses:
        '200':
          description: OK
        '401':
          description: Unauthorized
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/ProblemDetails'
        '403':
          description: Forbidden
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/ProblemDetails'
        '429':
          description: Rate limit exceeded
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/ProblemDetails'
  /projectdiscussioncomments:
    get:
      operationId: listProjectdiscussioncomments
      summary: List projectdiscussioncomments
      tags:
        - Resources
      security:
        -
          BearerAuth: []
      parameters:
        -
          name: page
          in: query
          schema:
            type: integer
            default: 1
        -
          name: per_page
          in: query
          schema:
            type: integer
            default: 25
            maximum: 1000
        -
          name: sort
          in: query
          schema:
            type: string
          description: 'Comma-separated fields, prefix - for DESC'
        -
          name: fields
          in: query
          schema:
            type: string
          description: Comma-separated field names (sparse fieldset)
      responses:
        '200':
          description: OK
        '401':
          description: Unauthorized
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/ProblemDetails'
        '403':
          description: Forbidden
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/ProblemDetails'
        '429':
          description: Rate limit exceeded
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/ProblemDetails'
    post:
      operationId: createProjectdiscussioncomments
      summary: Create projectdiscussioncomments
      tags:
        - Resources
      security:
        -
          BearerAuth: []
      requestBody:
        required: true
        content:
          application/json:
            schema:
              type: object
              properties:
                discussion_id:
                  type: integer
                discussion_type:
                  type: string
                parent:
                  type: integer
                created:
                  type: string
                  format: date-time
                  example: '2026-04-01 09:15:30'
                modified:
                  type: string
                  format: date-time
                  example: '2026-04-01 09:15:30'
                content:
                  type: string
                staff_id:
                  type: integer
                contact_id:
                  type: integer
                fullname:
                  type: string
                file_name:
                  type: string
                file_mime_type:
                  type: string
              required:
                - discussion_id
                - discussion_type
                - created
                - content
                - staff_id
      responses:
        '201':
          description: Created
        '401':
          description: Unauthorized
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/ProblemDetails'
        '403':
          description: Forbidden
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/ProblemDetails'
        '429':
          description: Rate limit exceeded
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/ProblemDetails'
  /projectdiscussioncomments/{id}:
    get:
      operationId: getProjectdiscussioncommentsById
      summary: Get projectdiscussioncomments by ID
      tags:
        - Resources
      security:
        -
          BearerAuth: []
      parameters:
        -
          name: id
          in: path
          required: true
          schema:
            type: integer
      responses:
        '200':
          description: OK
        '401':
          description: Unauthorized
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/ProblemDetails'
        '403':
          description: Forbidden
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/ProblemDetails'
        '429':
          description: Rate limit exceeded
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/ProblemDetails'
    put:
      operationId: updateProjectdiscussioncomments
      summary: Update projectdiscussioncomments
      tags:
        - Resources
      security:
        -
          BearerAuth: []
      parameters:
        -
          name: id
          in: path
          required: true
          schema:
            type: integer
      requestBody:
        required: true
        content:
          application/json:
            schema:
              type: object
              properties:
                discussion_id:
                  type: integer
                discussion_type:
                  type: string
                parent:
                  type: integer
                created:
                  type: string
                  format: date-time
                  example: '2026-04-01 09:15:30'
                modified:
                  type: string
                  format: date-time
                  example: '2026-04-01 09:15:30'
                content:
                  type: string
                staff_id:
                  type: integer
                contact_id:
                  type: integer
                fullname:
                  type: string
                file_name:
                  type: string
                file_mime_type:
                  type: string
              additionalProperties: true
      responses:
        '200':
          description: OK
        '401':
          description: Unauthorized
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/ProblemDetails'
        '403':
          description: Forbidden
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/ProblemDetails'
        '429':
          description: Rate limit exceeded
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/ProblemDetails'
    delete:
      operationId: deleteProjectdiscussioncomments
      summary: Delete projectdiscussioncomments
      tags:
        - Resources
      security:
        -
          BearerAuth: []
      parameters:
        -
          name: id
          in: path
          required: true
          schema:
            type: integer
      responses:
        '200':
          description: Deleted
        '401':
          description: Unauthorized
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/ProblemDetails'
        '403':
          description: Forbidden
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/ProblemDetails'
        '429':
          description: Rate limit exceeded
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/ProblemDetails'
  /projectdiscussioncomments/schema:
    get:
      operationId: schemaProjectdiscussioncomments
      summary: Schema of projectdiscussioncomments
      tags:
        - Resources
      security:
        -
          BearerAuth: []
      responses:
        '200':
          description: OK
        '401':
          description: Unauthorized
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/ProblemDetails'
        '403':
          description: Forbidden
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/ProblemDetails'
        '429':
          description: Rate limit exceeded
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/ProblemDetails'
  /projectdiscussions:
    get:
      operationId: listProjectdiscussions
      summary: List projectdiscussions
      tags:
        - Resources
      security:
        -
          BearerAuth: []
      parameters:
        -
          name: page
          in: query
          schema:
            type: integer
            default: 1
        -
          name: per_page
          in: query
          schema:
            type: integer
            default: 25
            maximum: 1000
        -
          name: sort
          in: query
          schema:
            type: string
          description: 'Comma-separated fields, prefix - for DESC'
        -
          name: fields
          in: query
          schema:
            type: string
          description: Comma-separated field names (sparse fieldset)
      responses:
        '200':
          description: OK
        '401':
          description: Unauthorized
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/ProblemDetails'
        '403':
          description: Forbidden
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/ProblemDetails'
        '429':
          description: Rate limit exceeded
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/ProblemDetails'
    post:
      operationId: createProjectdiscussions
      summary: Create projectdiscussions
      tags:
        - Resources
      security:
        -
          BearerAuth: []
      requestBody:
        required: true
        content:
          application/json:
            schema:
              type: object
              properties:
                project_id:
                  type: integer
                subject:
                  type: string
                description:
                  type: string
                show_to_customer:
                  type: integer
                staff_id:
                  type: integer
                contact_id:
                  type: integer
              required:
                - project_id
                - subject
                - description
      responses:
        '201':
          description: Created
        '401':
          description: Unauthorized
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/ProblemDetails'
        '403':
          description: Forbidden
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/ProblemDetails'
        '429':
          description: Rate limit exceeded
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/ProblemDetails'
  /projectdiscussions/{id}:
    get:
      operationId: getProjectdiscussionsById
      summary: Get projectdiscussions by ID
      tags:
        - Resources
      security:
        -
          BearerAuth: []
      parameters:
        -
          name: id
          in: path
          required: true
          schema:
            type: integer
      responses:
        '200':
          description: OK
        '401':
          description: Unauthorized
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/ProblemDetails'
        '403':
          description: Forbidden
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/ProblemDetails'
        '429':
          description: Rate limit exceeded
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/ProblemDetails'
    put:
      operationId: updateProjectdiscussions
      summary: Update projectdiscussions
      tags:
        - Resources
      security:
        -
          BearerAuth: []
      parameters:
        -
          name: id
          in: path
          required: true
          schema:
            type: integer
      requestBody:
        required: true
        content:
          application/json:
            schema:
              type: object
              properties:
                project_id:
                  type: integer
                subject:
                  type: string
                description:
                  type: string
                show_to_customer:
                  type: integer
                staff_id:
                  type: integer
                contact_id:
                  type: integer
              additionalProperties: true
      responses:
        '200':
          description: OK
        '401':
          description: Unauthorized
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/ProblemDetails'
        '403':
          description: Forbidden
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/ProblemDetails'
        '429':
          description: Rate limit exceeded
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/ProblemDetails'
    delete:
      operationId: deleteProjectdiscussions
      summary: Delete projectdiscussions
      tags:
        - Resources
      security:
        -
          BearerAuth: []
      parameters:
        -
          name: id
          in: path
          required: true
          schema:
            type: integer
      responses:
        '200':
          description: Deleted
        '401':
          description: Unauthorized
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/ProblemDetails'
        '403':
          description: Forbidden
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/ProblemDetails'
        '429':
          description: Rate limit exceeded
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/ProblemDetails'
  /projectdiscussions/schema:
    get:
      operationId: schemaProjectdiscussions
      summary: Schema of projectdiscussions
      tags:
        - Resources
      security:
        -
          BearerAuth: []
      responses:
        '200':
          description: OK
        '401':
          description: Unauthorized
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/ProblemDetails'
        '403':
          description: Forbidden
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/ProblemDetails'
        '429':
          description: Rate limit exceeded
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/ProblemDetails'
  /projects:
    get:
      operationId: listProjects
      summary: List projects
      tags:
        - Resources
      security:
        -
          BearerAuth: []
      parameters:
        -
          name: page
          in: query
          schema:
            type: integer
            default: 1
        -
          name: per_page
          in: query
          schema:
            type: integer
            default: 25
            maximum: 1000
        -
          name: sort
          in: query
          schema:
            type: string
          description: 'Comma-separated fields, prefix - for DESC'
        -
          name: fields
          in: query
          schema:
            type: string
          description: Comma-separated field names (sparse fieldset)
      responses:
        '200':
          description: OK
        '401':
          description: Unauthorized
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/ProblemDetails'
        '403':
          description: Forbidden
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/ProblemDetails'
        '429':
          description: Rate limit exceeded
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/ProblemDetails'
    post:
      operationId: createProjects
      summary: Create projects
      tags:
        - Resources
      security:
        -
          BearerAuth: []
      requestBody:
        required: true
        content:
          application/json:
            schema:
              type: object
              properties:
                name:
                  type: string
                description:
                  type: string
                status:
                  type: integer
                clientid:
                  type: integer
                billing_type:
                  type: integer
                start_date:
                  type: string
                  format: date-time
                  example: '2026-04-01 09:15:30'
                deadline:
                  type: string
                  format: date-time
                  example: '2026-04-01 09:15:30'
                project_created:
                  type: string
                  format: date-time
                  example: '2026-04-01 09:15:30'
                date_finished:
                  type: string
                  format: date-time
                  example: '2026-04-01 09:15:30'
                progress:
                  type: integer
                progress_from_tasks:
                  type: integer
                project_cost:
                  type: number
                project_rate_per_hour:
                  type: number
                estimated_hours:
                  type: number
                contact_notification:
                  type: integer
                notify_contacts:
                  type: string
              required:
                - name
                - clientid
                - billing_type
                - start_date
                - project_created
      responses:
        '201':
          description: Created
        '401':
          description: Unauthorized
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/ProblemDetails'
        '403':
          description: Forbidden
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/ProblemDetails'
        '429':
          description: Rate limit exceeded
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/ProblemDetails'
  /projects/{id}:
    get:
      operationId: getProjectsById
      summary: Get projects by ID
      tags:
        - Resources
      security:
        -
          BearerAuth: []
      parameters:
        -
          name: id
          in: path
          required: true
          schema:
            type: integer
      responses:
        '200':
          description: OK
        '401':
          description: Unauthorized
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/ProblemDetails'
        '403':
          description: Forbidden
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/ProblemDetails'
        '429':
          description: Rate limit exceeded
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/ProblemDetails'
    put:
      operationId: updateProjects
      summary: Update projects
      tags:
        - Resources
      security:
        -
          BearerAuth: []
      parameters:
        -
          name: id
          in: path
          required: true
          schema:
            type: integer
      requestBody:
        required: true
        content:
          application/json:
            schema:
              type: object
              properties:
                name:
                  type: string
                description:
                  type: string
                status:
                  type: integer
                clientid:
                  type: integer
                billing_type:
                  type: integer
                start_date:
                  type: string
                  format: date-time
                  example: '2026-04-01 09:15:30'
                deadline:
                  type: string
                  format: date-time
                  example: '2026-04-01 09:15:30'
                project_created:
                  type: string
                  format: date-time
                  example: '2026-04-01 09:15:30'
                date_finished:
                  type: string
                  format: date-time
                  example: '2026-04-01 09:15:30'
                progress:
                  type: integer
                progress_from_tasks:
                  type: integer
                project_cost:
                  type: number
                project_rate_per_hour:
                  type: number
                estimated_hours:
                  type: number
                contact_notification:
                  type: integer
                notify_contacts:
                  type: string
              additionalProperties: true
      responses:
        '200':
          description: OK
        '401':
          description: Unauthorized
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/ProblemDetails'
        '403':
          description: Forbidden
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/ProblemDetails'
        '429':
          description: Rate limit exceeded
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/ProblemDetails'
    delete:
      operationId: deleteProjects
      summary: Delete projects
      tags:
        - Resources
      security:
        -
          BearerAuth: []
      parameters:
        -
          name: id
          in: path
          required: true
          schema:
            type: integer
      responses:
        '200':
          description: Deleted
        '401':
          description: Unauthorized
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/ProblemDetails'
        '403':
          description: Forbidden
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/ProblemDetails'
        '429':
          description: Rate limit exceeded
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/ProblemDetails'
  /projects/schema:
    get:
      operationId: schemaProjects
      summary: Schema of projects
      tags:
        - Resources
      security:
        -
          BearerAuth: []
      responses:
        '200':
          description: OK
        '401':
          description: Unauthorized
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/ProblemDetails'
        '403':
          description: Forbidden
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/ProblemDetails'
        '429':
          description: Rate limit exceeded
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/ProblemDetails'
  /proposal_comments:
    get:
      operationId: listProposalComments
      summary: List proposal_comments
      tags:
        - Resources
      security:
        -
          BearerAuth: []
      parameters:
        -
          name: page
          in: query
          schema:
            type: integer
            default: 1
        -
          name: per_page
          in: query
          schema:
            type: integer
            default: 25
            maximum: 1000
        -
          name: sort
          in: query
          schema:
            type: string
          description: 'Comma-separated fields, prefix - for DESC'
        -
          name: fields
          in: query
          schema:
            type: string
          description: Comma-separated field names (sparse fieldset)
      responses:
        '200':
          description: OK
        '401':
          description: Unauthorized
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/ProblemDetails'
        '403':
          description: Forbidden
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/ProblemDetails'
        '429':
          description: Rate limit exceeded
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/ProblemDetails'
    post:
      operationId: createProposalComments
      summary: Create proposal_comments
      tags:
        - Resources
      security:
        -
          BearerAuth: []
      requestBody:
        required: true
        content:
          application/json:
            schema:
              type: object
              properties:
                content:
                  type: string
                proposalid:
                  type: integer
                staffid:
                  type: integer
              required:
                - proposalid
                - staffid
      responses:
        '201':
          description: Created
        '401':
          description: Unauthorized
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/ProblemDetails'
        '403':
          description: Forbidden
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/ProblemDetails'
        '429':
          description: Rate limit exceeded
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/ProblemDetails'
  /proposal_comments/{id}:
    get:
      operationId: getProposalCommentsById
      summary: Get proposal_comments by ID
      tags:
        - Resources
      security:
        -
          BearerAuth: []
      parameters:
        -
          name: id
          in: path
          required: true
          schema:
            type: integer
      responses:
        '200':
          description: OK
        '401':
          description: Unauthorized
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/ProblemDetails'
        '403':
          description: Forbidden
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/ProblemDetails'
        '429':
          description: Rate limit exceeded
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/ProblemDetails'
    put:
      operationId: updateProposalComments
      summary: Update proposal_comments
      tags:
        - Resources
      security:
        -
          BearerAuth: []
      parameters:
        -
          name: id
          in: path
          required: true
          schema:
            type: integer
      requestBody:
        required: true
        content:
          application/json:
            schema:
              type: object
              properties:
                content:
                  type: string
                proposalid:
                  type: integer
                staffid:
                  type: integer
              additionalProperties: true
      responses:
        '200':
          description: OK
        '401':
          description: Unauthorized
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/ProblemDetails'
        '403':
          description: Forbidden
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/ProblemDetails'
        '429':
          description: Rate limit exceeded
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/ProblemDetails'
    delete:
      operationId: deleteProposalComments
      summary: Delete proposal_comments
      tags:
        - Resources
      security:
        -
          BearerAuth: []
      parameters:
        -
          name: id
          in: path
          required: true
          schema:
            type: integer
      responses:
        '200':
          description: Deleted
        '401':
          description: Unauthorized
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/ProblemDetails'
        '403':
          description: Forbidden
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/ProblemDetails'
        '429':
          description: Rate limit exceeded
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/ProblemDetails'
  /proposal_comments/schema:
    get:
      operationId: schemaProposalComments
      summary: Schema of proposal_comments
      tags:
        - Resources
      security:
        -
          BearerAuth: []
      responses:
        '200':
          description: OK
        '401':
          description: Unauthorized
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/ProblemDetails'
        '403':
          description: Forbidden
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/ProblemDetails'
        '429':
          description: Rate limit exceeded
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/ProblemDetails'
  /proposals:
    get:
      operationId: listProposals
      summary: List proposals
      tags:
        - Resources
      security:
        -
          BearerAuth: []
      parameters:
        -
          name: page
          in: query
          schema:
            type: integer
            default: 1
        -
          name: per_page
          in: query
          schema:
            type: integer
            default: 25
            maximum: 1000
        -
          name: sort
          in: query
          schema:
            type: string
          description: 'Comma-separated fields, prefix - for DESC'
        -
          name: fields
          in: query
          schema:
            type: string
          description: Comma-separated field names (sparse fieldset)
      responses:
        '200':
          description: OK
        '401':
          description: Unauthorized
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/ProblemDetails'
        '403':
          description: Forbidden
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/ProblemDetails'
        '429':
          description: Rate limit exceeded
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/ProblemDetails'
    post:
      operationId: createProposals
      summary: Create proposals
      tags:
        - Resources
      security:
        -
          BearerAuth: []
      requestBody:
        required: true
        content:
          application/json:
            schema:
              type: object
              properties:
                subject:
                  type: string
                content:
                  type: string
                total:
                  type: number
                subtotal:
                  type: number
                total_tax:
                  type: number
                adjustment:
                  type: number
                discount_percent:
                  type: number
                discount_total:
                  type: number
                discount_type:
                  type: string
                show_quantity_as:
                  type: integer
                currency:
                  type: integer
                open_till:
                  type: string
                  format: date-time
                  example: '2026-04-01 09:15:30'
                date:
                  type: string
                  format: date-time
                  example: '2026-04-01 09:15:30'
                rel_id:
                  type: integer
                rel_type:
                  type: string
                assigned:
                  type: integer
                proposal_to:
                  type: string
                project_id:
                  type: integer
                country:
                  type: integer
                zip:
                  type: string
                state:
                  type: string
                city:
                  type: string
                address:
                  type: string
                email:
                  type: string
                phone:
                  type: string
                allow_comments:
                  type: integer
                status:
                  type: integer
                estimate_id:
                  type: integer
                invoice_id:
                  type: integer
                date_converted:
                  type: string
                  format: date-time
                  example: '2026-04-01 09:15:30'
                pipeline_order:
                  type: integer
                is_expiry_notified:
                  type: integer
                acceptance_firstname:
                  type: string
                acceptance_lastname:
                  type: string
                acceptance_email:
                  type: string
                acceptance_date:
                  type: string
                  format: date-time
                  example: '2026-04-01 09:15:30'
                acceptance_ip:
                  type: string
                signature:
                  type: string
                short_link:
                  type: string
              required:
                - subtotal
                - discount_percent
                - discount_total
                - currency
                - date
                - status
      responses:
        '201':
          description: Created
        '401':
          description: Unauthorized
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/ProblemDetails'
        '403':
          description: Forbidden
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/ProblemDetails'
        '429':
          description: Rate limit exceeded
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/ProblemDetails'
  /proposals/{id}:
    get:
      operationId: getProposalsById
      summary: Get proposals by ID
      tags:
        - Resources
      security:
        -
          BearerAuth: []
      parameters:
        -
          name: id
          in: path
          required: true
          schema:
            type: integer
      responses:
        '200':
          description: OK
        '401':
          description: Unauthorized
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/ProblemDetails'
        '403':
          description: Forbidden
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/ProblemDetails'
        '429':
          description: Rate limit exceeded
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/ProblemDetails'
    put:
      operationId: updateProposals
      summary: Update proposals
      tags:
        - Resources
      security:
        -
          BearerAuth: []
      parameters:
        -
          name: id
          in: path
          required: true
          schema:
            type: integer
      requestBody:
        required: true
        content:
          application/json:
            schema:
              type: object
              properties:
                subject:
                  type: string
                content:
                  type: string
                total:
                  type: number
                subtotal:
                  type: number
                total_tax:
                  type: number
                adjustment:
                  type: number
                discount_percent:
                  type: number
                discount_total:
                  type: number
                discount_type:
                  type: string
                show_quantity_as:
                  type: integer
                currency:
                  type: integer
                open_till:
                  type: string
                  format: date-time
                  example: '2026-04-01 09:15:30'
                date:
                  type: string
                  format: date-time
                  example: '2026-04-01 09:15:30'
                rel_id:
                  type: integer
                rel_type:
                  type: string
                assigned:
                  type: integer
                proposal_to:
                  type: string
                project_id:
                  type: integer
                country:
                  type: integer
                zip:
                  type: string
                state:
                  type: string
                city:
                  type: string
                address:
                  type: string
                email:
                  type: string
                phone:
                  type: string
                allow_comments:
                  type: integer
                status:
                  type: integer
                estimate_id:
                  type: integer
                invoice_id:
                  type: integer
                date_converted:
                  type: string
                  format: date-time
                  example: '2026-04-01 09:15:30'
                pipeline_order:
                  type: integer
                is_expiry_notified:
                  type: integer
                acceptance_firstname:
                  type: string
                acceptance_lastname:
                  type: string
                acceptance_email:
                  type: string
                acceptance_date:
                  type: string
                  format: date-time
                  example: '2026-04-01 09:15:30'
                acceptance_ip:
                  type: string
                signature:
                  type: string
                short_link:
                  type: string
              additionalProperties: true
      responses:
        '200':
          description: OK
        '401':
          description: Unauthorized
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/ProblemDetails'
        '403':
          description: Forbidden
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/ProblemDetails'
        '429':
          description: Rate limit exceeded
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/ProblemDetails'
    delete:
      operationId: deleteProposals
      summary: Delete proposals
      tags:
        - Resources
      security:
        -
          BearerAuth: []
      parameters:
        -
          name: id
          in: path
          required: true
          schema:
            type: integer
      responses:
        '200':
          description: Deleted
        '401':
          description: Unauthorized
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/ProblemDetails'
        '403':
          description: Forbidden
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/ProblemDetails'
        '429':
          description: Rate limit exceeded
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/ProblemDetails'
  /proposals/schema:
    get:
      operationId: schemaProposals
      summary: Schema of proposals
      tags:
        - Resources
      security:
        -
          BearerAuth: []
      responses:
        '200':
          description: OK
        '401':
          description: Unauthorized
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/ProblemDetails'
        '403':
          description: Forbidden
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/ProblemDetails'
        '429':
          description: Rate limit exceeded
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/ProblemDetails'
  /related_items:
    get:
      operationId: listRelatedItems
      summary: List related_items
      tags:
        - Resources
      security:
        -
          BearerAuth: []
      parameters:
        -
          name: page
          in: query
          schema:
            type: integer
            default: 1
        -
          name: per_page
          in: query
          schema:
            type: integer
            default: 25
            maximum: 1000
        -
          name: sort
          in: query
          schema:
            type: string
          description: 'Comma-separated fields, prefix - for DESC'
        -
          name: fields
          in: query
          schema:
            type: string
          description: Comma-separated field names (sparse fieldset)
      responses:
        '200':
          description: OK
        '401':
          description: Unauthorized
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/ProblemDetails'
        '403':
          description: Forbidden
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/ProblemDetails'
        '429':
          description: Rate limit exceeded
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/ProblemDetails'
    post:
      operationId: createRelatedItems
      summary: Create related_items
      tags:
        - Resources
      security:
        -
          BearerAuth: []
      requestBody:
        required: true
        content:
          application/json:
            schema:
              type: object
              properties:
                rel_id:
                  type: integer
                rel_type:
                  type: string
                item_id:
                  type: integer
              required:
                - rel_id
                - rel_type
                - item_id
      responses:
        '201':
          description: Created
        '401':
          description: Unauthorized
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/ProblemDetails'
        '403':
          description: Forbidden
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/ProblemDetails'
        '429':
          description: Rate limit exceeded
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/ProblemDetails'
  /related_items/{id}:
    get:
      operationId: getRelatedItemsById
      summary: Get related_items by ID
      tags:
        - Resources
      security:
        -
          BearerAuth: []
      parameters:
        -
          name: id
          in: path
          required: true
          schema:
            type: integer
      responses:
        '200':
          description: OK
        '401':
          description: Unauthorized
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/ProblemDetails'
        '403':
          description: Forbidden
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/ProblemDetails'
        '429':
          description: Rate limit exceeded
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/ProblemDetails'
    put:
      operationId: updateRelatedItems
      summary: Update related_items
      tags:
        - Resources
      security:
        -
          BearerAuth: []
      parameters:
        -
          name: id
          in: path
          required: true
          schema:
            type: integer
      requestBody:
        required: true
        content:
          application/json:
            schema:
              type: object
              properties:
                rel_id:
                  type: integer
                rel_type:
                  type: string
                item_id:
                  type: integer
              additionalProperties: true
      responses:
        '200':
          description: OK
        '401':
          description: Unauthorized
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/ProblemDetails'
        '403':
          description: Forbidden
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/ProblemDetails'
        '429':
          description: Rate limit exceeded
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/ProblemDetails'
    delete:
      operationId: deleteRelatedItems
      summary: Delete related_items
      tags:
        - Resources
      security:
        -
          BearerAuth: []
      parameters:
        -
          name: id
          in: path
          required: true
          schema:
            type: integer
      responses:
        '200':
          description: Deleted
        '401':
          description: Unauthorized
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/ProblemDetails'
        '403':
          description: Forbidden
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/ProblemDetails'
        '429':
          description: Rate limit exceeded
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/ProblemDetails'
  /related_items/schema:
    get:
      operationId: schemaRelatedItems
      summary: Schema of related_items
      tags:
        - Resources
      security:
        -
          BearerAuth: []
      responses:
        '200':
          description: OK
        '401':
          description: Unauthorized
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/ProblemDetails'
        '403':
          description: Forbidden
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/ProblemDetails'
        '429':
          description: Rate limit exceeded
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/ProblemDetails'
  /reminders:
    get:
      operationId: listReminders
      summary: List reminders
      tags:
        - Resources
      security:
        -
          BearerAuth: []
      parameters:
        -
          name: page
          in: query
          schema:
            type: integer
            default: 1
        -
          name: per_page
          in: query
          schema:
            type: integer
            default: 25
            maximum: 1000
        -
          name: sort
          in: query
          schema:
            type: string
          description: 'Comma-separated fields, prefix - for DESC'
        -
          name: fields
          in: query
          schema:
            type: string
          description: Comma-separated field names (sparse fieldset)
      responses:
        '200':
          description: OK
        '401':
          description: Unauthorized
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/ProblemDetails'
        '403':
          description: Forbidden
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/ProblemDetails'
        '429':
          description: Rate limit exceeded
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/ProblemDetails'
    post:
      operationId: createReminders
      summary: Create reminders
      tags:
        - Resources
      security:
        -
          BearerAuth: []
      requestBody:
        required: true
        content:
          application/json:
            schema:
              type: object
              properties:
                description:
                  type: string
                date:
                  type: string
                  format: date-time
                  example: '2026-04-01 09:15:30'
                isnotified:
                  type: integer
                rel_id:
                  type: integer
                staff:
                  type: integer
                rel_type:
                  type: string
                notify_by_email:
                  type: integer
                creator:
                  type: integer
              required:
                - date
                - rel_id
                - staff
                - rel_type
                - creator
      responses:
        '201':
          description: Created
        '401':
          description: Unauthorized
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/ProblemDetails'
        '403':
          description: Forbidden
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/ProblemDetails'
        '429':
          description: Rate limit exceeded
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/ProblemDetails'
  /reminders/{id}:
    get:
      operationId: getRemindersById
      summary: Get reminders by ID
      tags:
        - Resources
      security:
        -
          BearerAuth: []
      parameters:
        -
          name: id
          in: path
          required: true
          schema:
            type: integer
      responses:
        '200':
          description: OK
        '401':
          description: Unauthorized
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/ProblemDetails'
        '403':
          description: Forbidden
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/ProblemDetails'
        '429':
          description: Rate limit exceeded
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/ProblemDetails'
    put:
      operationId: updateReminders
      summary: Update reminders
      tags:
        - Resources
      security:
        -
          BearerAuth: []
      parameters:
        -
          name: id
          in: path
          required: true
          schema:
            type: integer
      requestBody:
        required: true
        content:
          application/json:
            schema:
              type: object
              properties:
                description:
                  type: string
                date:
                  type: string
                  format: date-time
                  example: '2026-04-01 09:15:30'
                isnotified:
                  type: integer
                rel_id:
                  type: integer
                staff:
                  type: integer
                rel_type:
                  type: string
                notify_by_email:
                  type: integer
                creator:
                  type: integer
              additionalProperties: true
      responses:
        '200':
          description: OK
        '401':
          description: Unauthorized
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/ProblemDetails'
        '403':
          description: Forbidden
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/ProblemDetails'
        '429':
          description: Rate limit exceeded
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/ProblemDetails'
    delete:
      operationId: deleteReminders
      summary: Delete reminders
      tags:
        - Resources
      security:
        -
          BearerAuth: []
      parameters:
        -
          name: id
          in: path
          required: true
          schema:
            type: integer
      responses:
        '200':
          description: Deleted
        '401':
          description: Unauthorized
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/ProblemDetails'
        '403':
          description: Forbidden
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/ProblemDetails'
        '429':
          description: Rate limit exceeded
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/ProblemDetails'
  /reminders/schema:
    get:
      operationId: schemaReminders
      summary: Schema of reminders
      tags:
        - Resources
      security:
        -
          BearerAuth: []
      responses:
        '200':
          description: OK
        '401':
          description: Unauthorized
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/ProblemDetails'
        '403':
          description: Forbidden
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/ProblemDetails'
        '429':
          description: Rate limit exceeded
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/ProblemDetails'
  /sales_activity:
    get:
      operationId: listSalesActivity
      summary: List sales_activity
      tags:
        - Resources
      security:
        -
          BearerAuth: []
      parameters:
        -
          name: page
          in: query
          schema:
            type: integer
            default: 1
        -
          name: per_page
          in: query
          schema:
            type: integer
            default: 25
            maximum: 1000
        -
          name: sort
          in: query
          schema:
            type: string
          description: 'Comma-separated fields, prefix - for DESC'
        -
          name: fields
          in: query
          schema:
            type: string
          description: Comma-separated field names (sparse fieldset)
      responses:
        '200':
          description: OK
        '401':
          description: Unauthorized
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/ProblemDetails'
        '403':
          description: Forbidden
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/ProblemDetails'
        '429':
          description: Rate limit exceeded
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/ProblemDetails'
    post:
      operationId: createSalesActivity
      summary: Create sales_activity
      tags:
        - Resources
      security:
        -
          BearerAuth: []
      requestBody:
        required: true
        content:
          application/json:
            schema:
              type: object
              properties:
                rel_type:
                  type: string
                rel_id:
                  type: integer
                description:
                  type: string
                additional_data:
                  type: string
                staffid:
                  type: string
                full_name:
                  type: string
                date:
                  type: string
                  format: date-time
                  example: '2026-04-01 09:15:30'
              required:
                - rel_id
                - description
                - date
      responses:
        '201':
          description: Created
        '401':
          description: Unauthorized
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/ProblemDetails'
        '403':
          description: Forbidden
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/ProblemDetails'
        '429':
          description: Rate limit exceeded
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/ProblemDetails'
  /sales_activity/{id}:
    get:
      operationId: getSalesActivityById
      summary: Get sales_activity by ID
      tags:
        - Resources
      security:
        -
          BearerAuth: []
      parameters:
        -
          name: id
          in: path
          required: true
          schema:
            type: integer
      responses:
        '200':
          description: OK
        '401':
          description: Unauthorized
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/ProblemDetails'
        '403':
          description: Forbidden
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/ProblemDetails'
        '429':
          description: Rate limit exceeded
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/ProblemDetails'
    put:
      operationId: updateSalesActivity
      summary: Update sales_activity
      tags:
        - Resources
      security:
        -
          BearerAuth: []
      parameters:
        -
          name: id
          in: path
          required: true
          schema:
            type: integer
      requestBody:
        required: true
        content:
          application/json:
            schema:
              type: object
              properties:
                rel_type:
                  type: string
                rel_id:
                  type: integer
                description:
                  type: string
                additional_data:
                  type: string
                staffid:
                  type: string
                full_name:
                  type: string
                date:
                  type: string
                  format: date-time
                  example: '2026-04-01 09:15:30'
              additionalProperties: true
      responses:
        '200':
          description: OK
        '401':
          description: Unauthorized
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/ProblemDetails'
        '403':
          description: Forbidden
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/ProblemDetails'
        '429':
          description: Rate limit exceeded
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/ProblemDetails'
    delete:
      operationId: deleteSalesActivity
      summary: Delete sales_activity
      tags:
        - Resources
      security:
        -
          BearerAuth: []
      parameters:
        -
          name: id
          in: path
          required: true
          schema:
            type: integer
      responses:
        '200':
          description: Deleted
        '401':
          description: Unauthorized
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/ProblemDetails'
        '403':
          description: Forbidden
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/ProblemDetails'
        '429':
          description: Rate limit exceeded
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/ProblemDetails'
  /sales_activity/schema:
    get:
      operationId: schemaSalesActivity
      summary: Schema of sales_activity
      tags:
        - Resources
      security:
        -
          BearerAuth: []
      responses:
        '200':
          description: OK
        '401':
          description: Unauthorized
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/ProblemDetails'
        '403':
          description: Forbidden
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/ProblemDetails'
        '429':
          description: Rate limit exceeded
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/ProblemDetails'
  /scheduled_emails:
    get:
      operationId: listScheduledEmails
      summary: List scheduled_emails
      tags:
        - Resources
      security:
        -
          BearerAuth: []
      parameters:
        -
          name: page
          in: query
          schema:
            type: integer
            default: 1
        -
          name: per_page
          in: query
          schema:
            type: integer
            default: 25
            maximum: 1000
        -
          name: sort
          in: query
          schema:
            type: string
          description: 'Comma-separated fields, prefix - for DESC'
        -
          name: fields
          in: query
          schema:
            type: string
          description: Comma-separated field names (sparse fieldset)
      responses:
        '200':
          description: OK
        '401':
          description: Unauthorized
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/ProblemDetails'
        '403':
          description: Forbidden
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/ProblemDetails'
        '429':
          description: Rate limit exceeded
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/ProblemDetails'
    post:
      operationId: createScheduledEmails
      summary: Create scheduled_emails
      tags:
        - Resources
      security:
        -
          BearerAuth: []
      requestBody:
        required: true
        content:
          application/json:
            schema:
              type: object
              properties:
                rel_id:
                  type: integer
                rel_type:
                  type: string
                scheduled_at:
                  type: string
                  format: date-time
                  example: '2026-04-01 09:15:30'
                contacts:
                  type: string
                cc:
                  type: string
                attach_pdf:
                  type: integer
                template:
                  type: string
              required:
                - rel_id
                - rel_type
                - scheduled_at
                - contacts
                - template
      responses:
        '201':
          description: Created
        '401':
          description: Unauthorized
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/ProblemDetails'
        '403':
          description: Forbidden
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/ProblemDetails'
        '429':
          description: Rate limit exceeded
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/ProblemDetails'
  /scheduled_emails/{id}:
    get:
      operationId: getScheduledEmailsById
      summary: Get scheduled_emails by ID
      tags:
        - Resources
      security:
        -
          BearerAuth: []
      parameters:
        -
          name: id
          in: path
          required: true
          schema:
            type: integer
      responses:
        '200':
          description: OK
        '401':
          description: Unauthorized
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/ProblemDetails'
        '403':
          description: Forbidden
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/ProblemDetails'
        '429':
          description: Rate limit exceeded
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/ProblemDetails'
    put:
      operationId: updateScheduledEmails
      summary: Update scheduled_emails
      tags:
        - Resources
      security:
        -
          BearerAuth: []
      parameters:
        -
          name: id
          in: path
          required: true
          schema:
            type: integer
      requestBody:
        required: true
        content:
          application/json:
            schema:
              type: object
              properties:
                rel_id:
                  type: integer
                rel_type:
                  type: string
                scheduled_at:
                  type: string
                  format: date-time
                  example: '2026-04-01 09:15:30'
                contacts:
                  type: string
                cc:
                  type: string
                attach_pdf:
                  type: integer
                template:
                  type: string
              additionalProperties: true
      responses:
        '200':
          description: OK
        '401':
          description: Unauthorized
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/ProblemDetails'
        '403':
          description: Forbidden
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/ProblemDetails'
        '429':
          description: Rate limit exceeded
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/ProblemDetails'
    delete:
      operationId: deleteScheduledEmails
      summary: Delete scheduled_emails
      tags:
        - Resources
      security:
        -
          BearerAuth: []
      parameters:
        -
          name: id
          in: path
          required: true
          schema:
            type: integer
      responses:
        '200':
          description: Deleted
        '401':
          description: Unauthorized
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/ProblemDetails'
        '403':
          description: Forbidden
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/ProblemDetails'
        '429':
          description: Rate limit exceeded
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/ProblemDetails'
  /scheduled_emails/schema:
    get:
      operationId: schemaScheduledEmails
      summary: Schema of scheduled_emails
      tags:
        - Resources
      security:
        -
          BearerAuth: []
      responses:
        '200':
          description: OK
        '401':
          description: Unauthorized
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/ProblemDetails'
        '403':
          description: Forbidden
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/ProblemDetails'
        '429':
          description: Rate limit exceeded
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/ProblemDetails'
  /services:
    get:
      operationId: listServices
      summary: List services
      tags:
        - Resources
      security:
        -
          BearerAuth: []
      parameters:
        -
          name: page
          in: query
          schema:
            type: integer
            default: 1
        -
          name: per_page
          in: query
          schema:
            type: integer
            default: 25
            maximum: 1000
        -
          name: sort
          in: query
          schema:
            type: string
          description: 'Comma-separated fields, prefix - for DESC'
        -
          name: fields
          in: query
          schema:
            type: string
          description: Comma-separated field names (sparse fieldset)
      responses:
        '200':
          description: OK
        '401':
          description: Unauthorized
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/ProblemDetails'
        '403':
          description: Forbidden
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/ProblemDetails'
        '429':
          description: Rate limit exceeded
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/ProblemDetails'
    post:
      operationId: createServices
      summary: Create services
      tags:
        - Resources
      security:
        -
          BearerAuth: []
      requestBody:
        required: true
        content:
          application/json:
            schema:
              type: object
              properties:
                name:
                  type: string
              required:
                - name
      responses:
        '201':
          description: Created
        '401':
          description: Unauthorized
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/ProblemDetails'
        '403':
          description: Forbidden
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/ProblemDetails'
        '429':
          description: Rate limit exceeded
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/ProblemDetails'
  /services/{id}:
    get:
      operationId: getServicesById
      summary: Get services by ID
      tags:
        - Resources
      security:
        -
          BearerAuth: []
      parameters:
        -
          name: id
          in: path
          required: true
          schema:
            type: integer
      responses:
        '200':
          description: OK
        '401':
          description: Unauthorized
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/ProblemDetails'
        '403':
          description: Forbidden
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/ProblemDetails'
        '429':
          description: Rate limit exceeded
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/ProblemDetails'
    put:
      operationId: updateServices
      summary: Update services
      tags:
        - Resources
      security:
        -
          BearerAuth: []
      parameters:
        -
          name: id
          in: path
          required: true
          schema:
            type: integer
      requestBody:
        required: true
        content:
          application/json:
            schema:
              type: object
              properties:
                name:
                  type: string
              additionalProperties: true
      responses:
        '200':
          description: OK
        '401':
          description: Unauthorized
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/ProblemDetails'
        '403':
          description: Forbidden
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/ProblemDetails'
        '429':
          description: Rate limit exceeded
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/ProblemDetails'
    delete:
      operationId: deleteServices
      summary: Delete services
      tags:
        - Resources
      security:
        -
          BearerAuth: []
      parameters:
        -
          name: id
          in: path
          required: true
          schema:
            type: integer
      responses:
        '200':
          description: Deleted
        '401':
          description: Unauthorized
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/ProblemDetails'
        '403':
          description: Forbidden
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/ProblemDetails'
        '429':
          description: Rate limit exceeded
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/ProblemDetails'
  /services/schema:
    get:
      operationId: schemaServices
      summary: Schema of services
      tags:
        - Resources
      security:
        -
          BearerAuth: []
      responses:
        '200':
          description: OK
        '401':
          description: Unauthorized
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/ProblemDetails'
        '403':
          description: Forbidden
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/ProblemDetails'
        '429':
          description: Rate limit exceeded
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/ProblemDetails'
  /sessions:
    get:
      operationId: listSessions
      summary: List sessions
      tags:
        - Resources
      security:
        -
          BearerAuth: []
      parameters:
        -
          name: page
          in: query
          schema:
            type: integer
            default: 1
        -
          name: per_page
          in: query
          schema:
            type: integer
            default: 25
            maximum: 1000
        -
          name: sort
          in: query
          schema:
            type: string
          description: 'Comma-separated fields, prefix - for DESC'
        -
          name: fields
          in: query
          schema:
            type: string
          description: Comma-separated field names (sparse fieldset)
      responses:
        '200':
          description: OK
        '401':
          description: Unauthorized
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/ProblemDetails'
        '403':
          description: Forbidden
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/ProblemDetails'
        '429':
          description: Rate limit exceeded
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/ProblemDetails'
    post:
      operationId: createSessions
      summary: Create sessions
      tags:
        - Resources
      security:
        -
          BearerAuth: []
      requestBody:
        required: true
        content:
          application/json:
            schema:
              type: object
              properties:
                ip_address:
                  type: string
                timestamp:
                  type: integer
                data:
                  type: string
              required:
                - ip_address
                - data
      responses:
        '201':
          description: Created
        '401':
          description: Unauthorized
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/ProblemDetails'
        '403':
          description: Forbidden
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/ProblemDetails'
        '429':
          description: Rate limit exceeded
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/ProblemDetails'
  /sessions/{id}:
    get:
      operationId: getSessionsById
      summary: Get sessions by ID
      tags:
        - Resources
      security:
        -
          BearerAuth: []
      parameters:
        -
          name: id
          in: path
          required: true
          schema:
            type: integer
      responses:
        '200':
          description: OK
        '401':
          description: Unauthorized
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/ProblemDetails'
        '403':
          description: Forbidden
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/ProblemDetails'
        '429':
          description: Rate limit exceeded
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/ProblemDetails'
    put:
      operationId: updateSessions
      summary: Update sessions
      tags:
        - Resources
      security:
        -
          BearerAuth: []
      parameters:
        -
          name: id
          in: path
          required: true
          schema:
            type: integer
      requestBody:
        required: true
        content:
          application/json:
            schema:
              type: object
              properties:
                ip_address:
                  type: string
                timestamp:
                  type: integer
                data:
                  type: string
              additionalProperties: true
      responses:
        '200':
          description: OK
        '401':
          description: Unauthorized
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/ProblemDetails'
        '403':
          description: Forbidden
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/ProblemDetails'
        '429':
          description: Rate limit exceeded
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/ProblemDetails'
    delete:
      operationId: deleteSessions
      summary: Delete sessions
      tags:
        - Resources
      security:
        -
          BearerAuth: []
      parameters:
        -
          name: id
          in: path
          required: true
          schema:
            type: integer
      responses:
        '200':
          description: Deleted
        '401':
          description: Unauthorized
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/ProblemDetails'
        '403':
          description: Forbidden
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/ProblemDetails'
        '429':
          description: Rate limit exceeded
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/ProblemDetails'
  /sessions/schema:
    get:
      operationId: schemaSessions
      summary: Schema of sessions
      tags:
        - Resources
      security:
        -
          BearerAuth: []
      responses:
        '200':
          description: OK
        '401':
          description: Unauthorized
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/ProblemDetails'
        '403':
          description: Forbidden
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/ProblemDetails'
        '429':
          description: Rate limit exceeded
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/ProblemDetails'
  /shared_customer_files:
    get:
      operationId: listSharedCustomerFiles
      summary: List shared_customer_files
      tags:
        - Resources
      security:
        -
          BearerAuth: []
      parameters:
        -
          name: page
          in: query
          schema:
            type: integer
            default: 1
        -
          name: per_page
          in: query
          schema:
            type: integer
            default: 25
            maximum: 1000
        -
          name: sort
          in: query
          schema:
            type: string
          description: 'Comma-separated fields, prefix - for DESC'
        -
          name: fields
          in: query
          schema:
            type: string
          description: Comma-separated field names (sparse fieldset)
      responses:
        '200':
          description: OK
        '401':
          description: Unauthorized
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/ProblemDetails'
        '403':
          description: Forbidden
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/ProblemDetails'
        '429':
          description: Rate limit exceeded
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/ProblemDetails'
    post:
      operationId: createSharedCustomerFiles
      summary: Create shared_customer_files
      tags:
        - Resources
      security:
        -
          BearerAuth: []
      requestBody:
        required: true
        content:
          application/json:
            schema:
              type: object
              properties:
                file_id:
                  type: integer
                contact_id:
                  type: integer
              required:
                - file_id
                - contact_id
      responses:
        '201':
          description: Created
        '401':
          description: Unauthorized
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/ProblemDetails'
        '403':
          description: Forbidden
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/ProblemDetails'
        '429':
          description: Rate limit exceeded
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/ProblemDetails'
  /shared_customer_files/{id}:
    get:
      operationId: getSharedCustomerFilesById
      summary: Get shared_customer_files by ID
      tags:
        - Resources
      security:
        -
          BearerAuth: []
      parameters:
        -
          name: id
          in: path
          required: true
          schema:
            type: integer
      responses:
        '200':
          description: OK
        '401':
          description: Unauthorized
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/ProblemDetails'
        '403':
          description: Forbidden
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/ProblemDetails'
        '429':
          description: Rate limit exceeded
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/ProblemDetails'
    put:
      operationId: updateSharedCustomerFiles
      summary: Update shared_customer_files
      tags:
        - Resources
      security:
        -
          BearerAuth: []
      parameters:
        -
          name: id
          in: path
          required: true
          schema:
            type: integer
      requestBody:
        required: true
        content:
          application/json:
            schema:
              type: object
              properties:
                file_id:
                  type: integer
                contact_id:
                  type: integer
              additionalProperties: true
      responses:
        '200':
          description: OK
        '401':
          description: Unauthorized
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/ProblemDetails'
        '403':
          description: Forbidden
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/ProblemDetails'
        '429':
          description: Rate limit exceeded
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/ProblemDetails'
    delete:
      operationId: deleteSharedCustomerFiles
      summary: Delete shared_customer_files
      tags:
        - Resources
      security:
        -
          BearerAuth: []
      parameters:
        -
          name: id
          in: path
          required: true
          schema:
            type: integer
      responses:
        '200':
          description: Deleted
        '401':
          description: Unauthorized
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/ProblemDetails'
        '403':
          description: Forbidden
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/ProblemDetails'
        '429':
          description: Rate limit exceeded
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/ProblemDetails'
  /shared_customer_files/schema:
    get:
      operationId: schemaSharedCustomerFiles
      summary: Schema of shared_customer_files
      tags:
        - Resources
      security:
        -
          BearerAuth: []
      responses:
        '200':
          description: OK
        '401':
          description: Unauthorized
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/ProblemDetails'
        '403':
          description: Forbidden
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/ProblemDetails'
        '429':
          description: Rate limit exceeded
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/ProblemDetails'
  /spam_filters:
    get:
      operationId: listSpamFilters
      summary: List spam_filters
      tags:
        - Resources
      security:
        -
          BearerAuth: []
      parameters:
        -
          name: page
          in: query
          schema:
            type: integer
            default: 1
        -
          name: per_page
          in: query
          schema:
            type: integer
            default: 25
            maximum: 1000
        -
          name: sort
          in: query
          schema:
            type: string
          description: 'Comma-separated fields, prefix - for DESC'
        -
          name: fields
          in: query
          schema:
            type: string
          description: Comma-separated field names (sparse fieldset)
      responses:
        '200':
          description: OK
        '401':
          description: Unauthorized
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/ProblemDetails'
        '403':
          description: Forbidden
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/ProblemDetails'
        '429':
          description: Rate limit exceeded
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/ProblemDetails'
    post:
      operationId: createSpamFilters
      summary: Create spam_filters
      tags:
        - Resources
      security:
        -
          BearerAuth: []
      requestBody:
        required: true
        content:
          application/json:
            schema:
              type: object
              properties:
                type:
                  type: string
                rel_type:
                  type: string
                value:
                  type: string
              required:
                - type
                - rel_type
                - value
      responses:
        '201':
          description: Created
        '401':
          description: Unauthorized
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/ProblemDetails'
        '403':
          description: Forbidden
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/ProblemDetails'
        '429':
          description: Rate limit exceeded
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/ProblemDetails'
  /spam_filters/{id}:
    get:
      operationId: getSpamFiltersById
      summary: Get spam_filters by ID
      tags:
        - Resources
      security:
        -
          BearerAuth: []
      parameters:
        -
          name: id
          in: path
          required: true
          schema:
            type: integer
      responses:
        '200':
          description: OK
        '401':
          description: Unauthorized
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/ProblemDetails'
        '403':
          description: Forbidden
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/ProblemDetails'
        '429':
          description: Rate limit exceeded
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/ProblemDetails'
    put:
      operationId: updateSpamFilters
      summary: Update spam_filters
      tags:
        - Resources
      security:
        -
          BearerAuth: []
      parameters:
        -
          name: id
          in: path
          required: true
          schema:
            type: integer
      requestBody:
        required: true
        content:
          application/json:
            schema:
              type: object
              properties:
                type:
                  type: string
                rel_type:
                  type: string
                value:
                  type: string
              additionalProperties: true
      responses:
        '200':
          description: OK
        '401':
          description: Unauthorized
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/ProblemDetails'
        '403':
          description: Forbidden
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/ProblemDetails'
        '429':
          description: Rate limit exceeded
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/ProblemDetails'
    delete:
      operationId: deleteSpamFilters
      summary: Delete spam_filters
      tags:
        - Resources
      security:
        -
          BearerAuth: []
      parameters:
        -
          name: id
          in: path
          required: true
          schema:
            type: integer
      responses:
        '200':
          description: Deleted
        '401':
          description: Unauthorized
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/ProblemDetails'
        '403':
          description: Forbidden
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/ProblemDetails'
        '429':
          description: Rate limit exceeded
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/ProblemDetails'
  /spam_filters/schema:
    get:
      operationId: schemaSpamFilters
      summary: Schema of spam_filters
      tags:
        - Resources
      security:
        -
          BearerAuth: []
      responses:
        '200':
          description: OK
        '401':
          description: Unauthorized
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/ProblemDetails'
        '403':
          description: Forbidden
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/ProblemDetails'
        '429':
          description: Rate limit exceeded
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/ProblemDetails'
  /staff:
    get:
      operationId: listStaff
      summary: List staff
      tags:
        - Resources
      security:
        -
          BearerAuth: []
      parameters:
        -
          name: page
          in: query
          schema:
            type: integer
            default: 1
        -
          name: per_page
          in: query
          schema:
            type: integer
            default: 25
            maximum: 1000
        -
          name: sort
          in: query
          schema:
            type: string
          description: 'Comma-separated fields, prefix - for DESC'
        -
          name: fields
          in: query
          schema:
            type: string
          description: Comma-separated field names (sparse fieldset)
      responses:
        '200':
          description: OK
        '401':
          description: Unauthorized
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/ProblemDetails'
        '403':
          description: Forbidden
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/ProblemDetails'
        '429':
          description: Rate limit exceeded
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/ProblemDetails'
    post:
      operationId: createStaff
      summary: Create staff
      tags:
        - Resources
      security:
        -
          BearerAuth: []
      requestBody:
        required: true
        content:
          application/json:
            schema:
              type: object
              properties:
                email:
                  type: string
                firstname:
                  type: string
                lastname:
                  type: string
                facebook:
                  type: string
                linkedin:
                  type: string
                phonenumber:
                  type: string
                skype:
                  type: string
                last_password_change:
                  type: string
                  format: date-time
                  example: '2026-04-01 09:15:30'
                admin:
                  type: integer
                role:
                  type: integer
                active:
                  type: integer
                default_language:
                  type: string
                direction:
                  type: string
                is_not_staff:
                  type: integer
                hourly_rate:
                  type: number
                email_signature:
                  type: string
              required:
                - email
                - firstname
                - lastname
      responses:
        '201':
          description: Created
        '401':
          description: Unauthorized
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/ProblemDetails'
        '403':
          description: Forbidden
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/ProblemDetails'
        '429':
          description: Rate limit exceeded
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/ProblemDetails'
  /staff/{id}:
    get:
      operationId: getStaffById
      summary: Get staff by ID
      tags:
        - Resources
      security:
        -
          BearerAuth: []
      parameters:
        -
          name: id
          in: path
          required: true
          schema:
            type: integer
      responses:
        '200':
          description: OK
        '401':
          description: Unauthorized
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/ProblemDetails'
        '403':
          description: Forbidden
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/ProblemDetails'
        '429':
          description: Rate limit exceeded
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/ProblemDetails'
    put:
      operationId: updateStaff
      summary: Update staff
      tags:
        - Resources
      security:
        -
          BearerAuth: []
      parameters:
        -
          name: id
          in: path
          required: true
          schema:
            type: integer
      requestBody:
        required: true
        content:
          application/json:
            schema:
              type: object
              properties:
                email:
                  type: string
                firstname:
                  type: string
                lastname:
                  type: string
                facebook:
                  type: string
                linkedin:
                  type: string
                phonenumber:
                  type: string
                skype:
                  type: string
                last_password_change:
                  type: string
                  format: date-time
                  example: '2026-04-01 09:15:30'
                admin:
                  type: integer
                role:
                  type: integer
                active:
                  type: integer
                default_language:
                  type: string
                direction:
                  type: string
                is_not_staff:
                  type: integer
                hourly_rate:
                  type: number
                email_signature:
                  type: string
              additionalProperties: true
      responses:
        '200':
          description: OK
        '401':
          description: Unauthorized
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/ProblemDetails'
        '403':
          description: Forbidden
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/ProblemDetails'
        '429':
          description: Rate limit exceeded
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/ProblemDetails'
    delete:
      operationId: deleteStaff
      summary: Delete staff
      tags:
        - Resources
      security:
        -
          BearerAuth: []
      parameters:
        -
          name: id
          in: path
          required: true
          schema:
            type: integer
      responses:
        '200':
          description: Deleted
        '401':
          description: Unauthorized
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/ProblemDetails'
        '403':
          description: Forbidden
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/ProblemDetails'
        '429':
          description: Rate limit exceeded
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/ProblemDetails'
  /staff/schema:
    get:
      operationId: schemaStaff
      summary: Schema of staff
      tags:
        - Resources
      security:
        -
          BearerAuth: []
      responses:
        '200':
          description: OK
        '401':
          description: Unauthorized
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/ProblemDetails'
        '403':
          description: Forbidden
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/ProblemDetails'
        '429':
          description: Rate limit exceeded
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/ProblemDetails'
  /staff_departments:
    get:
      operationId: listStaffDepartments
      summary: List staff_departments
      tags:
        - Resources
      security:
        -
          BearerAuth: []
      parameters:
        -
          name: page
          in: query
          schema:
            type: integer
            default: 1
        -
          name: per_page
          in: query
          schema:
            type: integer
            default: 25
            maximum: 1000
        -
          name: sort
          in: query
          schema:
            type: string
          description: 'Comma-separated fields, prefix - for DESC'
        -
          name: fields
          in: query
          schema:
            type: string
          description: Comma-separated field names (sparse fieldset)
      responses:
        '200':
          description: OK
        '401':
          description: Unauthorized
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/ProblemDetails'
        '403':
          description: Forbidden
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/ProblemDetails'
        '429':
          description: Rate limit exceeded
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/ProblemDetails'
    post:
      operationId: createStaffDepartments
      summary: Create staff_departments
      tags:
        - Resources
      security:
        -
          BearerAuth: []
      requestBody:
        required: true
        content:
          application/json:
            schema:
              type: object
              properties:
                staffid:
                  type: integer
                departmentid:
                  type: integer
              required:
                - staffid
                - departmentid
      responses:
        '201':
          description: Created
        '401':
          description: Unauthorized
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/ProblemDetails'
        '403':
          description: Forbidden
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/ProblemDetails'
        '429':
          description: Rate limit exceeded
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/ProblemDetails'
  /staff_departments/{id}:
    get:
      operationId: getStaffDepartmentsById
      summary: Get staff_departments by ID
      tags:
        - Resources
      security:
        -
          BearerAuth: []
      parameters:
        -
          name: id
          in: path
          required: true
          schema:
            type: integer
      responses:
        '200':
          description: OK
        '401':
          description: Unauthorized
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/ProblemDetails'
        '403':
          description: Forbidden
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/ProblemDetails'
        '429':
          description: Rate limit exceeded
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/ProblemDetails'
    put:
      operationId: updateStaffDepartments
      summary: Update staff_departments
      tags:
        - Resources
      security:
        -
          BearerAuth: []
      parameters:
        -
          name: id
          in: path
          required: true
          schema:
            type: integer
      requestBody:
        required: true
        content:
          application/json:
            schema:
              type: object
              properties:
                staffid:
                  type: integer
                departmentid:
                  type: integer
              additionalProperties: true
      responses:
        '200':
          description: OK
        '401':
          description: Unauthorized
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/ProblemDetails'
        '403':
          description: Forbidden
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/ProblemDetails'
        '429':
          description: Rate limit exceeded
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/ProblemDetails'
    delete:
      operationId: deleteStaffDepartments
      summary: Delete staff_departments
      tags:
        - Resources
      security:
        -
          BearerAuth: []
      parameters:
        -
          name: id
          in: path
          required: true
          schema:
            type: integer
      responses:
        '200':
          description: Deleted
        '401':
          description: Unauthorized
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/ProblemDetails'
        '403':
          description: Forbidden
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/ProblemDetails'
        '429':
          description: Rate limit exceeded
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/ProblemDetails'
  /staff_departments/schema:
    get:
      operationId: schemaStaffDepartments
      summary: Schema of staff_departments
      tags:
        - Resources
      security:
        -
          BearerAuth: []
      responses:
        '200':
          description: OK
        '401':
          description: Unauthorized
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/ProblemDetails'
        '403':
          description: Forbidden
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/ProblemDetails'
        '429':
          description: Rate limit exceeded
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/ProblemDetails'
  /staff_permissions:
    get:
      operationId: listStaffPermissions
      summary: List staff_permissions
      tags:
        - Resources
      security:
        -
          BearerAuth: []
      parameters:
        -
          name: page
          in: query
          schema:
            type: integer
            default: 1
        -
          name: per_page
          in: query
          schema:
            type: integer
            default: 25
            maximum: 1000
        -
          name: sort
          in: query
          schema:
            type: string
          description: 'Comma-separated fields, prefix - for DESC'
        -
          name: fields
          in: query
          schema:
            type: string
          description: Comma-separated field names (sparse fieldset)
      responses:
        '200':
          description: OK
        '401':
          description: Unauthorized
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/ProblemDetails'
        '403':
          description: Forbidden
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/ProblemDetails'
        '429':
          description: Rate limit exceeded
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/ProblemDetails'
    post:
      operationId: createStaffPermissions
      summary: Create staff_permissions
      tags:
        - Resources
      security:
        -
          BearerAuth: []
      requestBody:
        required: true
        content:
          application/json:
            schema:
              type: object
              properties:
                staff_id:
                  type: integer
                feature:
                  type: string
                capability:
                  type: string
              required:
                - staff_id
                - feature
                - capability
      responses:
        '201':
          description: Created
        '401':
          description: Unauthorized
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/ProblemDetails'
        '403':
          description: Forbidden
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/ProblemDetails'
        '429':
          description: Rate limit exceeded
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/ProblemDetails'
  /staff_permissions/{id}:
    get:
      operationId: getStaffPermissionsById
      summary: Get staff_permissions by ID
      tags:
        - Resources
      security:
        -
          BearerAuth: []
      parameters:
        -
          name: id
          in: path
          required: true
          schema:
            type: integer
      responses:
        '200':
          description: OK
        '401':
          description: Unauthorized
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/ProblemDetails'
        '403':
          description: Forbidden
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/ProblemDetails'
        '429':
          description: Rate limit exceeded
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/ProblemDetails'
    put:
      operationId: updateStaffPermissions
      summary: Update staff_permissions
      tags:
        - Resources
      security:
        -
          BearerAuth: []
      parameters:
        -
          name: id
          in: path
          required: true
          schema:
            type: integer
      requestBody:
        required: true
        content:
          application/json:
            schema:
              type: object
              properties:
                staff_id:
                  type: integer
                feature:
                  type: string
                capability:
                  type: string
              additionalProperties: true
      responses:
        '200':
          description: OK
        '401':
          description: Unauthorized
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/ProblemDetails'
        '403':
          description: Forbidden
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/ProblemDetails'
        '429':
          description: Rate limit exceeded
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/ProblemDetails'
    delete:
      operationId: deleteStaffPermissions
      summary: Delete staff_permissions
      tags:
        - Resources
      security:
        -
          BearerAuth: []
      parameters:
        -
          name: id
          in: path
          required: true
          schema:
            type: integer
      responses:
        '200':
          description: Deleted
        '401':
          description: Unauthorized
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/ProblemDetails'
        '403':
          description: Forbidden
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/ProblemDetails'
        '429':
          description: Rate limit exceeded
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/ProblemDetails'
  /staff_permissions/schema:
    get:
      operationId: schemaStaffPermissions
      summary: Schema of staff_permissions
      tags:
        - Resources
      security:
        -
          BearerAuth: []
      responses:
        '200':
          description: OK
        '401':
          description: Unauthorized
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/ProblemDetails'
        '403':
          description: Forbidden
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/ProblemDetails'
        '429':
          description: Rate limit exceeded
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/ProblemDetails'
  /roles:
    get:
      operationId: listRoles
      summary: List roles
      tags:
        - Resources
      security:
        -
          BearerAuth: []
      parameters:
        -
          name: page
          in: query
          schema:
            type: integer
            default: 1
        -
          name: per_page
          in: query
          schema:
            type: integer
            default: 25
            maximum: 1000
        -
          name: sort
          in: query
          schema:
            type: string
          description: 'Comma-separated fields, prefix - for DESC'
        -
          name: fields
          in: query
          schema:
            type: string
          description: Comma-separated field names (sparse fieldset)
      responses:
        '200':
          description: OK
        '401':
          description: Unauthorized
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/ProblemDetails'
        '403':
          description: Forbidden
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/ProblemDetails'
        '429':
          description: Rate limit exceeded
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/ProblemDetails'
    post:
      operationId: createRoles
      summary: Create roles
      tags:
        - Resources
      security:
        -
          BearerAuth: []
      requestBody:
        required: true
        content:
          application/json:
            schema:
              type: object
              properties:
                name:
                  type: string
                permissions:
                  type: string
              required:
                - name
      responses:
        '201':
          description: Created
        '401':
          description: Unauthorized
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/ProblemDetails'
        '403':
          description: Forbidden
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/ProblemDetails'
        '429':
          description: Rate limit exceeded
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/ProblemDetails'
  /roles/{id}:
    get:
      operationId: getRolesById
      summary: Get roles by ID
      tags:
        - Resources
      security:
        -
          BearerAuth: []
      parameters:
        -
          name: id
          in: path
          required: true
          schema:
            type: integer
      responses:
        '200':
          description: OK
        '401':
          description: Unauthorized
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/ProblemDetails'
        '403':
          description: Forbidden
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/ProblemDetails'
        '429':
          description: Rate limit exceeded
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/ProblemDetails'
    put:
      operationId: updateRoles
      summary: Update roles
      tags:
        - Resources
      security:
        -
          BearerAuth: []
      parameters:
        -
          name: id
          in: path
          required: true
          schema:
            type: integer
      requestBody:
        required: true
        content:
          application/json:
            schema:
              type: object
              properties:
                name:
                  type: string
                permissions:
                  type: string
              additionalProperties: true
      responses:
        '200':
          description: OK
        '401':
          description: Unauthorized
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/ProblemDetails'
        '403':
          description: Forbidden
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/ProblemDetails'
        '429':
          description: Rate limit exceeded
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/ProblemDetails'
    delete:
      operationId: deleteRoles
      summary: Delete roles
      tags:
        - Resources
      security:
        -
          BearerAuth: []
      parameters:
        -
          name: id
          in: path
          required: true
          schema:
            type: integer
      responses:
        '200':
          description: Deleted
        '401':
          description: Unauthorized
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/ProblemDetails'
        '403':
          description: Forbidden
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/ProblemDetails'
        '429':
          description: Rate limit exceeded
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/ProblemDetails'
  /roles/schema:
    get:
      operationId: schemaRoles
      summary: Schema of roles
      tags:
        - Resources
      security:
        -
          BearerAuth: []
      responses:
        '200':
          description: OK
        '401':
          description: Unauthorized
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/ProblemDetails'
        '403':
          description: Forbidden
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/ProblemDetails'
        '429':
          description: Rate limit exceeded
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/ProblemDetails'
  /subscriptions:
    get:
      operationId: listSubscriptions
      summary: List subscriptions
      tags:
        - Resources
      security:
        -
          BearerAuth: []
      parameters:
        -
          name: page
          in: query
          schema:
            type: integer
            default: 1
        -
          name: per_page
          in: query
          schema:
            type: integer
            default: 25
            maximum: 1000
        -
          name: sort
          in: query
          schema:
            type: string
          description: 'Comma-separated fields, prefix - for DESC'
        -
          name: fields
          in: query
          schema:
            type: string
          description: Comma-separated field names (sparse fieldset)
      responses:
        '200':
          description: OK
        '401':
          description: Unauthorized
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/ProblemDetails'
        '403':
          description: Forbidden
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/ProblemDetails'
        '429':
          description: Rate limit exceeded
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/ProblemDetails'
    post:
      operationId: createSubscriptions
      summary: Create subscriptions
      tags:
        - Resources
      security:
        -
          BearerAuth: []
      requestBody:
        required: true
        content:
          application/json:
            schema:
              type: object
              properties:
                name:
                  type: string
                description:
                  type: string
                description_in_item:
                  type: integer
                clientid:
                  type: integer
                date:
                  type: string
                  format: date-time
                  example: '2026-04-01 09:15:30'
                terms:
                  type: string
                currency:
                  type: integer
                tax_id:
                  type: integer
                stripe_tax_id:
                  type: string
                tax_id_2:
                  type: integer
                stripe_tax_id_2:
                  type: string
                stripe_plan_id:
                  type: string
                stripe_subscription_id:
                  type: string
                next_billing_cycle:
                  type: integer
                ends_at:
                  type: integer
                status:
                  type: string
                quantity:
                  type: integer
                project_id:
                  type: integer
                created:
                  type: string
                  format: date-time
                  example: '2026-04-01 09:15:30'
                created_from:
                  type: integer
                date_subscribed:
                  type: string
                  format: date-time
                  example: '2026-04-01 09:15:30'
                in_test_environment:
                  type: integer
                last_sent_at:
                  type: string
                  format: date-time
                  example: '2026-04-01 09:15:30'
              required:
                - name
                - clientid
                - currency
                - stripe_subscription_id
                - created
                - created_from
      responses:
        '201':
          description: Created
        '401':
          description: Unauthorized
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/ProblemDetails'
        '403':
          description: Forbidden
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/ProblemDetails'
        '429':
          description: Rate limit exceeded
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/ProblemDetails'
  /subscriptions/{id}:
    get:
      operationId: getSubscriptionsById
      summary: Get subscriptions by ID
      tags:
        - Resources
      security:
        -
          BearerAuth: []
      parameters:
        -
          name: id
          in: path
          required: true
          schema:
            type: integer
      responses:
        '200':
          description: OK
        '401':
          description: Unauthorized
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/ProblemDetails'
        '403':
          description: Forbidden
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/ProblemDetails'
        '429':
          description: Rate limit exceeded
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/ProblemDetails'
    put:
      operationId: updateSubscriptions
      summary: Update subscriptions
      tags:
        - Resources
      security:
        -
          BearerAuth: []
      parameters:
        -
          name: id
          in: path
          required: true
          schema:
            type: integer
      requestBody:
        required: true
        content:
          application/json:
            schema:
              type: object
              properties:
                name:
                  type: string
                description:
                  type: string
                description_in_item:
                  type: integer
                clientid:
                  type: integer
                date:
                  type: string
                  format: date-time
                  example: '2026-04-01 09:15:30'
                terms:
                  type: string
                currency:
                  type: integer
                tax_id:
                  type: integer
                stripe_tax_id:
                  type: string
                tax_id_2:
                  type: integer
                stripe_tax_id_2:
                  type: string
                stripe_plan_id:
                  type: string
                stripe_subscription_id:
                  type: string
                next_billing_cycle:
                  type: integer
                ends_at:
                  type: integer
                status:
                  type: string
                quantity:
                  type: integer
                project_id:
                  type: integer
                created:
                  type: string
                  format: date-time
                  example: '2026-04-01 09:15:30'
                created_from:
                  type: integer
                date_subscribed:
                  type: string
                  format: date-time
                  example: '2026-04-01 09:15:30'
                in_test_environment:
                  type: integer
                last_sent_at:
                  type: string
                  format: date-time
                  example: '2026-04-01 09:15:30'
              additionalProperties: true
      responses:
        '200':
          description: OK
        '401':
          description: Unauthorized
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/ProblemDetails'
        '403':
          description: Forbidden
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/ProblemDetails'
        '429':
          description: Rate limit exceeded
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/ProblemDetails'
    delete:
      operationId: deleteSubscriptions
      summary: Delete subscriptions
      tags:
        - Resources
      security:
        -
          BearerAuth: []
      parameters:
        -
          name: id
          in: path
          required: true
          schema:
            type: integer
      responses:
        '200':
          description: Deleted
        '401':
          description: Unauthorized
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/ProblemDetails'
        '403':
          description: Forbidden
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/ProblemDetails'
        '429':
          description: Rate limit exceeded
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/ProblemDetails'
  /subscriptions/schema:
    get:
      operationId: schemaSubscriptions
      summary: Schema of subscriptions
      tags:
        - Resources
      security:
        -
          BearerAuth: []
      responses:
        '200':
          description: OK
        '401':
          description: Unauthorized
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/ProblemDetails'
        '403':
          description: Forbidden
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/ProblemDetails'
        '429':
          description: Rate limit exceeded
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/ProblemDetails'
  /taggables:
    get:
      operationId: listTaggables
      summary: List taggables
      tags:
        - Resources
      security:
        -
          BearerAuth: []
      parameters:
        -
          name: page
          in: query
          schema:
            type: integer
            default: 1
        -
          name: per_page
          in: query
          schema:
            type: integer
            default: 25
            maximum: 1000
        -
          name: sort
          in: query
          schema:
            type: string
          description: 'Comma-separated fields, prefix - for DESC'
        -
          name: fields
          in: query
          schema:
            type: string
          description: Comma-separated field names (sparse fieldset)
      responses:
        '200':
          description: OK
        '401':
          description: Unauthorized
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/ProblemDetails'
        '403':
          description: Forbidden
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/ProblemDetails'
        '429':
          description: Rate limit exceeded
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/ProblemDetails'
    post:
      operationId: createTaggables
      summary: Create taggables
      tags:
        - Resources
      security:
        -
          BearerAuth: []
      requestBody:
        required: true
        content:
          application/json:
            schema:
              type: object
              properties:
                rel_id:
                  type: integer
                rel_type:
                  type: string
                tag_id:
                  type: integer
                tag_order:
                  type: integer
              required:
                - rel_id
                - rel_type
                - tag_id
      responses:
        '201':
          description: Created
        '401':
          description: Unauthorized
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/ProblemDetails'
        '403':
          description: Forbidden
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/ProblemDetails'
        '429':
          description: Rate limit exceeded
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/ProblemDetails'
  /taggables/{id}:
    get:
      operationId: getTaggablesById
      summary: Get taggables by ID
      tags:
        - Resources
      security:
        -
          BearerAuth: []
      parameters:
        -
          name: id
          in: path
          required: true
          schema:
            type: integer
      responses:
        '200':
          description: OK
        '401':
          description: Unauthorized
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/ProblemDetails'
        '403':
          description: Forbidden
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/ProblemDetails'
        '429':
          description: Rate limit exceeded
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/ProblemDetails'
    put:
      operationId: updateTaggables
      summary: Update taggables
      tags:
        - Resources
      security:
        -
          BearerAuth: []
      parameters:
        -
          name: id
          in: path
          required: true
          schema:
            type: integer
      requestBody:
        required: true
        content:
          application/json:
            schema:
              type: object
              properties:
                rel_id:
                  type: integer
                rel_type:
                  type: string
                tag_id:
                  type: integer
                tag_order:
                  type: integer
              additionalProperties: true
      responses:
        '200':
          description: OK
        '401':
          description: Unauthorized
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/ProblemDetails'
        '403':
          description: Forbidden
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/ProblemDetails'
        '429':
          description: Rate limit exceeded
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/ProblemDetails'
    delete:
      operationId: deleteTaggables
      summary: Delete taggables
      tags:
        - Resources
      security:
        -
          BearerAuth: []
      parameters:
        -
          name: id
          in: path
          required: true
          schema:
            type: integer
      responses:
        '200':
          description: Deleted
        '401':
          description: Unauthorized
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/ProblemDetails'
        '403':
          description: Forbidden
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/ProblemDetails'
        '429':
          description: Rate limit exceeded
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/ProblemDetails'
  /taggables/schema:
    get:
      operationId: schemaTaggables
      summary: Schema of taggables
      tags:
        - Resources
      security:
        -
          BearerAuth: []
      responses:
        '200':
          description: OK
        '401':
          description: Unauthorized
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/ProblemDetails'
        '403':
          description: Forbidden
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/ProblemDetails'
        '429':
          description: Rate limit exceeded
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/ProblemDetails'
  /tags:
    get:
      operationId: listTags
      summary: List tags
      tags:
        - Resources
      security:
        -
          BearerAuth: []
      parameters:
        -
          name: page
          in: query
          schema:
            type: integer
            default: 1
        -
          name: per_page
          in: query
          schema:
            type: integer
            default: 25
            maximum: 1000
        -
          name: sort
          in: query
          schema:
            type: string
          description: 'Comma-separated fields, prefix - for DESC'
        -
          name: fields
          in: query
          schema:
            type: string
          description: Comma-separated field names (sparse fieldset)
      responses:
        '200':
          description: OK
        '401':
          description: Unauthorized
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/ProblemDetails'
        '403':
          description: Forbidden
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/ProblemDetails'
        '429':
          description: Rate limit exceeded
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/ProblemDetails'
    post:
      operationId: createTags
      summary: Create tags
      tags:
        - Resources
      security:
        -
          BearerAuth: []
      requestBody:
        required: true
        content:
          application/json:
            schema:
              type: object
              properties:
                name:
                  type: string
              required:
                - name
      responses:
        '201':
          description: Created
        '401':
          description: Unauthorized
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/ProblemDetails'
        '403':
          description: Forbidden
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/ProblemDetails'
        '429':
          description: Rate limit exceeded
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/ProblemDetails'
  /tags/{id}:
    get:
      operationId: getTagsById
      summary: Get tags by ID
      tags:
        - Resources
      security:
        -
          BearerAuth: []
      parameters:
        -
          name: id
          in: path
          required: true
          schema:
            type: integer
      responses:
        '200':
          description: OK
        '401':
          description: Unauthorized
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/ProblemDetails'
        '403':
          description: Forbidden
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/ProblemDetails'
        '429':
          description: Rate limit exceeded
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/ProblemDetails'
    put:
      operationId: updateTags
      summary: Update tags
      tags:
        - Resources
      security:
        -
          BearerAuth: []
      parameters:
        -
          name: id
          in: path
          required: true
          schema:
            type: integer
      requestBody:
        required: true
        content:
          application/json:
            schema:
              type: object
              properties:
                name:
                  type: string
              additionalProperties: true
      responses:
        '200':
          description: OK
        '401':
          description: Unauthorized
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/ProblemDetails'
        '403':
          description: Forbidden
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/ProblemDetails'
        '429':
          description: Rate limit exceeded
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/ProblemDetails'
    delete:
      operationId: deleteTags
      summary: Delete tags
      tags:
        - Resources
      security:
        -
          BearerAuth: []
      parameters:
        -
          name: id
          in: path
          required: true
          schema:
            type: integer
      responses:
        '200':
          description: Deleted
        '401':
          description: Unauthorized
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/ProblemDetails'
        '403':
          description: Forbidden
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/ProblemDetails'
        '429':
          description: Rate limit exceeded
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/ProblemDetails'
  /tags/schema:
    get:
      operationId: schemaTags
      summary: Schema of tags
      tags:
        - Resources
      security:
        -
          BearerAuth: []
      responses:
        '200':
          description: OK
        '401':
          description: Unauthorized
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/ProblemDetails'
        '403':
          description: Forbidden
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/ProblemDetails'
        '429':
          description: Rate limit exceeded
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/ProblemDetails'
  /task_assigned:
    get:
      operationId: listTaskAssigned
      summary: List task_assigned
      tags:
        - Resources
      security:
        -
          BearerAuth: []
      parameters:
        -
          name: page
          in: query
          schema:
            type: integer
            default: 1
        -
          name: per_page
          in: query
          schema:
            type: integer
            default: 25
            maximum: 1000
        -
          name: sort
          in: query
          schema:
            type: string
          description: 'Comma-separated fields, prefix - for DESC'
        -
          name: fields
          in: query
          schema:
            type: string
          description: Comma-separated field names (sparse fieldset)
      responses:
        '200':
          description: OK
        '401':
          description: Unauthorized
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/ProblemDetails'
        '403':
          description: Forbidden
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/ProblemDetails'
        '429':
          description: Rate limit exceeded
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/ProblemDetails'
    post:
      operationId: createTaskAssigned
      summary: Create task_assigned
      tags:
        - Resources
      security:
        -
          BearerAuth: []
      requestBody:
        required: true
        content:
          application/json:
            schema:
              type: object
              properties:
                staffid:
                  type: integer
                taskid:
                  type: integer
                assigned_from:
                  type: integer
                is_assigned_from_contact:
                  type: integer
              required:
                - staffid
                - taskid
      responses:
        '201':
          description: Created
        '401':
          description: Unauthorized
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/ProblemDetails'
        '403':
          description: Forbidden
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/ProblemDetails'
        '429':
          description: Rate limit exceeded
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/ProblemDetails'
  /task_assigned/{id}:
    get:
      operationId: getTaskAssignedById
      summary: Get task_assigned by ID
      tags:
        - Resources
      security:
        -
          BearerAuth: []
      parameters:
        -
          name: id
          in: path
          required: true
          schema:
            type: integer
      responses:
        '200':
          description: OK
        '401':
          description: Unauthorized
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/ProblemDetails'
        '403':
          description: Forbidden
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/ProblemDetails'
        '429':
          description: Rate limit exceeded
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/ProblemDetails'
    put:
      operationId: updateTaskAssigned
      summary: Update task_assigned
      tags:
        - Resources
      security:
        -
          BearerAuth: []
      parameters:
        -
          name: id
          in: path
          required: true
          schema:
            type: integer
      requestBody:
        required: true
        content:
          application/json:
            schema:
              type: object
              properties:
                staffid:
                  type: integer
                taskid:
                  type: integer
                assigned_from:
                  type: integer
                is_assigned_from_contact:
                  type: integer
              additionalProperties: true
      responses:
        '200':
          description: OK
        '401':
          description: Unauthorized
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/ProblemDetails'
        '403':
          description: Forbidden
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/ProblemDetails'
        '429':
          description: Rate limit exceeded
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/ProblemDetails'
    delete:
      operationId: deleteTaskAssigned
      summary: Delete task_assigned
      tags:
        - Resources
      security:
        -
          BearerAuth: []
      parameters:
        -
          name: id
          in: path
          required: true
          schema:
            type: integer
      responses:
        '200':
          description: Deleted
        '401':
          description: Unauthorized
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/ProblemDetails'
        '403':
          description: Forbidden
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/ProblemDetails'
        '429':
          description: Rate limit exceeded
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/ProblemDetails'
  /task_assigned/schema:
    get:
      operationId: schemaTaskAssigned
      summary: Schema of task_assigned
      tags:
        - Resources
      security:
        -
          BearerAuth: []
      responses:
        '200':
          description: OK
        '401':
          description: Unauthorized
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/ProblemDetails'
        '403':
          description: Forbidden
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/ProblemDetails'
        '429':
          description: Rate limit exceeded
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/ProblemDetails'
  /task_checklist_items:
    get:
      operationId: listTaskChecklistItems
      summary: List task_checklist_items
      tags:
        - Resources
      security:
        -
          BearerAuth: []
      parameters:
        -
          name: page
          in: query
          schema:
            type: integer
            default: 1
        -
          name: per_page
          in: query
          schema:
            type: integer
            default: 25
            maximum: 1000
        -
          name: sort
          in: query
          schema:
            type: string
          description: 'Comma-separated fields, prefix - for DESC'
        -
          name: fields
          in: query
          schema:
            type: string
          description: Comma-separated field names (sparse fieldset)
      responses:
        '200':
          description: OK
        '401':
          description: Unauthorized
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/ProblemDetails'
        '403':
          description: Forbidden
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/ProblemDetails'
        '429':
          description: Rate limit exceeded
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/ProblemDetails'
    post:
      operationId: createTaskChecklistItems
      summary: Create task_checklist_items
      tags:
        - Resources
      security:
        -
          BearerAuth: []
      requestBody:
        required: true
        content:
          application/json:
            schema:
              type: object
              properties:
                taskid:
                  type: integer
                description:
                  type: string
                finished:
                  type: integer
                finished_from:
                  type: integer
                list_order:
                  type: integer
                assigned:
                  type: integer
              required:
                - taskid
                - description
      responses:
        '201':
          description: Created
        '401':
          description: Unauthorized
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/ProblemDetails'
        '403':
          description: Forbidden
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/ProblemDetails'
        '429':
          description: Rate limit exceeded
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/ProblemDetails'
  /task_checklist_items/{id}:
    get:
      operationId: getTaskChecklistItemsById
      summary: Get task_checklist_items by ID
      tags:
        - Resources
      security:
        -
          BearerAuth: []
      parameters:
        -
          name: id
          in: path
          required: true
          schema:
            type: integer
      responses:
        '200':
          description: OK
        '401':
          description: Unauthorized
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/ProblemDetails'
        '403':
          description: Forbidden
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/ProblemDetails'
        '429':
          description: Rate limit exceeded
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/ProblemDetails'
    put:
      operationId: updateTaskChecklistItems
      summary: Update task_checklist_items
      tags:
        - Resources
      security:
        -
          BearerAuth: []
      parameters:
        -
          name: id
          in: path
          required: true
          schema:
            type: integer
      requestBody:
        required: true
        content:
          application/json:
            schema:
              type: object
              properties:
                taskid:
                  type: integer
                description:
                  type: string
                finished:
                  type: integer
                finished_from:
                  type: integer
                list_order:
                  type: integer
                assigned:
                  type: integer
              additionalProperties: true
      responses:
        '200':
          description: OK
        '401':
          description: Unauthorized
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/ProblemDetails'
        '403':
          description: Forbidden
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/ProblemDetails'
        '429':
          description: Rate limit exceeded
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/ProblemDetails'
    delete:
      operationId: deleteTaskChecklistItems
      summary: Delete task_checklist_items
      tags:
        - Resources
      security:
        -
          BearerAuth: []
      parameters:
        -
          name: id
          in: path
          required: true
          schema:
            type: integer
      responses:
        '200':
          description: Deleted
        '401':
          description: Unauthorized
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/ProblemDetails'
        '403':
          description: Forbidden
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/ProblemDetails'
        '429':
          description: Rate limit exceeded
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/ProblemDetails'
  /task_checklist_items/schema:
    get:
      operationId: schemaTaskChecklistItems
      summary: Schema of task_checklist_items
      tags:
        - Resources
      security:
        -
          BearerAuth: []
      responses:
        '200':
          description: OK
        '401':
          description: Unauthorized
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/ProblemDetails'
        '403':
          description: Forbidden
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/ProblemDetails'
        '429':
          description: Rate limit exceeded
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/ProblemDetails'
  /task_comments:
    get:
      operationId: listTaskComments
      summary: List task_comments
      tags:
        - Resources
      security:
        -
          BearerAuth: []
      parameters:
        -
          name: page
          in: query
          schema:
            type: integer
            default: 1
        -
          name: per_page
          in: query
          schema:
            type: integer
            default: 25
            maximum: 1000
        -
          name: sort
          in: query
          schema:
            type: string
          description: 'Comma-separated fields, prefix - for DESC'
        -
          name: fields
          in: query
          schema:
            type: string
          description: Comma-separated field names (sparse fieldset)
      responses:
        '200':
          description: OK
        '401':
          description: Unauthorized
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/ProblemDetails'
        '403':
          description: Forbidden
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/ProblemDetails'
        '429':
          description: Rate limit exceeded
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/ProblemDetails'
    post:
      operationId: createTaskComments
      summary: Create task_comments
      tags:
        - Resources
      security:
        -
          BearerAuth: []
      requestBody:
        required: true
        content:
          application/json:
            schema:
              type: object
              properties:
                content:
                  type: string
                taskid:
                  type: integer
                staffid:
                  type: integer
                contact_id:
                  type: integer
                file_id:
                  type: integer
              required:
                - content
                - taskid
                - staffid
      responses:
        '201':
          description: Created
        '401':
          description: Unauthorized
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/ProblemDetails'
        '403':
          description: Forbidden
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/ProblemDetails'
        '429':
          description: Rate limit exceeded
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/ProblemDetails'
  /task_comments/{id}:
    get:
      operationId: getTaskCommentsById
      summary: Get task_comments by ID
      tags:
        - Resources
      security:
        -
          BearerAuth: []
      parameters:
        -
          name: id
          in: path
          required: true
          schema:
            type: integer
      responses:
        '200':
          description: OK
        '401':
          description: Unauthorized
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/ProblemDetails'
        '403':
          description: Forbidden
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/ProblemDetails'
        '429':
          description: Rate limit exceeded
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/ProblemDetails'
    put:
      operationId: updateTaskComments
      summary: Update task_comments
      tags:
        - Resources
      security:
        -
          BearerAuth: []
      parameters:
        -
          name: id
          in: path
          required: true
          schema:
            type: integer
      requestBody:
        required: true
        content:
          application/json:
            schema:
              type: object
              properties:
                content:
                  type: string
                taskid:
                  type: integer
                staffid:
                  type: integer
                contact_id:
                  type: integer
                file_id:
                  type: integer
              additionalProperties: true
      responses:
        '200':
          description: OK
        '401':
          description: Unauthorized
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/ProblemDetails'
        '403':
          description: Forbidden
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/ProblemDetails'
        '429':
          description: Rate limit exceeded
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/ProblemDetails'
    delete:
      operationId: deleteTaskComments
      summary: Delete task_comments
      tags:
        - Resources
      security:
        -
          BearerAuth: []
      parameters:
        -
          name: id
          in: path
          required: true
          schema:
            type: integer
      responses:
        '200':
          description: Deleted
        '401':
          description: Unauthorized
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/ProblemDetails'
        '403':
          description: Forbidden
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/ProblemDetails'
        '429':
          description: Rate limit exceeded
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/ProblemDetails'
  /task_comments/schema:
    get:
      operationId: schemaTaskComments
      summary: Schema of task_comments
      tags:
        - Resources
      security:
        -
          BearerAuth: []
      responses:
        '200':
          description: OK
        '401':
          description: Unauthorized
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/ProblemDetails'
        '403':
          description: Forbidden
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/ProblemDetails'
        '429':
          description: Rate limit exceeded
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/ProblemDetails'
  /task_followers:
    get:
      operationId: listTaskFollowers
      summary: List task_followers
      tags:
        - Resources
      security:
        -
          BearerAuth: []
      parameters:
        -
          name: page
          in: query
          schema:
            type: integer
            default: 1
        -
          name: per_page
          in: query
          schema:
            type: integer
            default: 25
            maximum: 1000
        -
          name: sort
          in: query
          schema:
            type: string
          description: 'Comma-separated fields, prefix - for DESC'
        -
          name: fields
          in: query
          schema:
            type: string
          description: Comma-separated field names (sparse fieldset)
      responses:
        '200':
          description: OK
        '401':
          description: Unauthorized
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/ProblemDetails'
        '403':
          description: Forbidden
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/ProblemDetails'
        '429':
          description: Rate limit exceeded
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/ProblemDetails'
    post:
      operationId: createTaskFollowers
      summary: Create task_followers
      tags:
        - Resources
      security:
        -
          BearerAuth: []
      requestBody:
        required: true
        content:
          application/json:
            schema:
              type: object
              properties:
                staffid:
                  type: integer
                taskid:
                  type: integer
              required:
                - staffid
                - taskid
      responses:
        '201':
          description: Created
        '401':
          description: Unauthorized
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/ProblemDetails'
        '403':
          description: Forbidden
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/ProblemDetails'
        '429':
          description: Rate limit exceeded
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/ProblemDetails'
  /task_followers/{id}:
    get:
      operationId: getTaskFollowersById
      summary: Get task_followers by ID
      tags:
        - Resources
      security:
        -
          BearerAuth: []
      parameters:
        -
          name: id
          in: path
          required: true
          schema:
            type: integer
      responses:
        '200':
          description: OK
        '401':
          description: Unauthorized
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/ProblemDetails'
        '403':
          description: Forbidden
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/ProblemDetails'
        '429':
          description: Rate limit exceeded
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/ProblemDetails'
    put:
      operationId: updateTaskFollowers
      summary: Update task_followers
      tags:
        - Resources
      security:
        -
          BearerAuth: []
      parameters:
        -
          name: id
          in: path
          required: true
          schema:
            type: integer
      requestBody:
        required: true
        content:
          application/json:
            schema:
              type: object
              properties:
                staffid:
                  type: integer
                taskid:
                  type: integer
              additionalProperties: true
      responses:
        '200':
          description: OK
        '401':
          description: Unauthorized
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/ProblemDetails'
        '403':
          description: Forbidden
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/ProblemDetails'
        '429':
          description: Rate limit exceeded
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/ProblemDetails'
    delete:
      operationId: deleteTaskFollowers
      summary: Delete task_followers
      tags:
        - Resources
      security:
        -
          BearerAuth: []
      parameters:
        -
          name: id
          in: path
          required: true
          schema:
            type: integer
      responses:
        '200':
          description: Deleted
        '401':
          description: Unauthorized
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/ProblemDetails'
        '403':
          description: Forbidden
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/ProblemDetails'
        '429':
          description: Rate limit exceeded
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/ProblemDetails'
  /task_followers/schema:
    get:
      operationId: schemaTaskFollowers
      summary: Schema of task_followers
      tags:
        - Resources
      security:
        -
          BearerAuth: []
      responses:
        '200':
          description: OK
        '401':
          description: Unauthorized
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/ProblemDetails'
        '403':
          description: Forbidden
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/ProblemDetails'
        '429':
          description: Rate limit exceeded
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/ProblemDetails'
  /taskstimers:
    get:
      operationId: listTaskstimers
      summary: List taskstimers
      tags:
        - Resources
      security:
        -
          BearerAuth: []
      parameters:
        -
          name: page
          in: query
          schema:
            type: integer
            default: 1
        -
          name: per_page
          in: query
          schema:
            type: integer
            default: 25
            maximum: 1000
        -
          name: sort
          in: query
          schema:
            type: string
          description: 'Comma-separated fields, prefix - for DESC'
        -
          name: fields
          in: query
          schema:
            type: string
          description: Comma-separated field names (sparse fieldset)
      responses:
        '200':
          description: OK
        '401':
          description: Unauthorized
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/ProblemDetails'
        '403':
          description: Forbidden
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/ProblemDetails'
        '429':
          description: Rate limit exceeded
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/ProblemDetails'
    post:
      operationId: createTaskstimers
      summary: Create taskstimers
      tags:
        - Resources
      security:
        -
          BearerAuth: []
      requestBody:
        required: true
        content:
          application/json:
            schema:
              type: object
              properties:
                task_id:
                  type: integer
                start_time:
                  type: string
                end_time:
                  type: string
                staff_id:
                  type: integer
                hourly_rate:
                  type: number
                note:
                  type: string
              required:
                - task_id
                - start_time
                - staff_id
      responses:
        '201':
          description: Created
        '401':
          description: Unauthorized
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/ProblemDetails'
        '403':
          description: Forbidden
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/ProblemDetails'
        '429':
          description: Rate limit exceeded
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/ProblemDetails'
  /taskstimers/{id}:
    get:
      operationId: getTaskstimersById
      summary: Get taskstimers by ID
      tags:
        - Resources
      security:
        -
          BearerAuth: []
      parameters:
        -
          name: id
          in: path
          required: true
          schema:
            type: integer
      responses:
        '200':
          description: OK
        '401':
          description: Unauthorized
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/ProblemDetails'
        '403':
          description: Forbidden
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/ProblemDetails'
        '429':
          description: Rate limit exceeded
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/ProblemDetails'
    put:
      operationId: updateTaskstimers
      summary: Update taskstimers
      tags:
        - Resources
      security:
        -
          BearerAuth: []
      parameters:
        -
          name: id
          in: path
          required: true
          schema:
            type: integer
      requestBody:
        required: true
        content:
          application/json:
            schema:
              type: object
              properties:
                task_id:
                  type: integer
                start_time:
                  type: string
                end_time:
                  type: string
                staff_id:
                  type: integer
                hourly_rate:
                  type: number
                note:
                  type: string
              additionalProperties: true
      responses:
        '200':
          description: OK
        '401':
          description: Unauthorized
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/ProblemDetails'
        '403':
          description: Forbidden
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/ProblemDetails'
        '429':
          description: Rate limit exceeded
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/ProblemDetails'
    delete:
      operationId: deleteTaskstimers
      summary: Delete taskstimers
      tags:
        - Resources
      security:
        -
          BearerAuth: []
      parameters:
        -
          name: id
          in: path
          required: true
          schema:
            type: integer
      responses:
        '200':
          description: Deleted
        '401':
          description: Unauthorized
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/ProblemDetails'
        '403':
          description: Forbidden
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/ProblemDetails'
        '429':
          description: Rate limit exceeded
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/ProblemDetails'
  /taskstimers/schema:
    get:
      operationId: schemaTaskstimers
      summary: Schema of taskstimers
      tags:
        - Resources
      security:
        -
          BearerAuth: []
      responses:
        '200':
          description: OK
        '401':
          description: Unauthorized
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/ProblemDetails'
        '403':
          description: Forbidden
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/ProblemDetails'
        '429':
          description: Rate limit exceeded
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/ProblemDetails'
  /tasks:
    get:
      operationId: listTasks
      summary: List tasks
      tags:
        - Resources
      security:
        -
          BearerAuth: []
      parameters:
        -
          name: page
          in: query
          schema:
            type: integer
            default: 1
        -
          name: per_page
          in: query
          schema:
            type: integer
            default: 25
            maximum: 1000
        -
          name: sort
          in: query
          schema:
            type: string
          description: 'Comma-separated fields, prefix - for DESC'
        -
          name: fields
          in: query
          schema:
            type: string
          description: Comma-separated field names (sparse fieldset)
      responses:
        '200':
          description: OK
        '401':
          description: Unauthorized
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/ProblemDetails'
        '403':
          description: Forbidden
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/ProblemDetails'
        '429':
          description: Rate limit exceeded
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/ProblemDetails'
    post:
      operationId: createTasks
      summary: Create tasks
      tags:
        - Resources
      security:
        -
          BearerAuth: []
      requestBody:
        required: true
        content:
          application/json:
            schema:
              type: object
              properties:
                name:
                  type: string
                description:
                  type: string
                priority:
                  type: integer
                startdate:
                  type: string
                  format: date-time
                  example: '2026-04-01 09:15:30'
                duedate:
                  type: string
                  format: date-time
                  example: '2026-04-01 09:15:30'
                datefinished:
                  type: string
                  format: date-time
                  example: '2026-04-01 09:15:30'
                is_added_from_contact:
                  type: integer
                status:
                  type: integer
                recurring_type:
                  type: string
                repeat_every:
                  type: integer
                recurring:
                  type: integer
                is_recurring_from:
                  type: integer
                cycles:
                  type: integer
                total_cycles:
                  type: integer
                custom_recurring:
                  type: integer
                last_recurring_date:
                  type: string
                  format: date-time
                  example: '2026-04-01 09:15:30'
                rel_id:
                  type: integer
                rel_type:
                  type: string
                is_public:
                  type: integer
                billable:
                  type: integer
                billed:
                  type: integer
                invoice_id:
                  type: integer
                hourly_rate:
                  type: number
                milestone:
                  type: integer
                kanban_order:
                  type: integer
                milestone_order:
                  type: integer
                visible_to_client:
                  type: integer
                deadline_notified:
                  type: integer
              required:
                - startdate
      responses:
        '201':
          description: Created
        '401':
          description: Unauthorized
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/ProblemDetails'
        '403':
          description: Forbidden
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/ProblemDetails'
        '429':
          description: Rate limit exceeded
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/ProblemDetails'
  /tasks/{id}:
    get:
      operationId: getTasksById
      summary: Get tasks by ID
      tags:
        - Resources
      security:
        -
          BearerAuth: []
      parameters:
        -
          name: id
          in: path
          required: true
          schema:
            type: integer
      responses:
        '200':
          description: OK
        '401':
          description: Unauthorized
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/ProblemDetails'
        '403':
          description: Forbidden
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/ProblemDetails'
        '429':
          description: Rate limit exceeded
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/ProblemDetails'
    put:
      operationId: updateTasks
      summary: Update tasks
      tags:
        - Resources
      security:
        -
          BearerAuth: []
      parameters:
        -
          name: id
          in: path
          required: true
          schema:
            type: integer
      requestBody:
        required: true
        content:
          application/json:
            schema:
              type: object
              properties:
                name:
                  type: string
                description:
                  type: string
                priority:
                  type: integer
                startdate:
                  type: string
                  format: date-time
                  example: '2026-04-01 09:15:30'
                duedate:
                  type: string
                  format: date-time
                  example: '2026-04-01 09:15:30'
                datefinished:
                  type: string
                  format: date-time
                  example: '2026-04-01 09:15:30'
                is_added_from_contact:
                  type: integer
                status:
                  type: integer
                recurring_type:
                  type: string
                repeat_every:
                  type: integer
                recurring:
                  type: integer
                is_recurring_from:
                  type: integer
                cycles:
                  type: integer
                total_cycles:
                  type: integer
                custom_recurring:
                  type: integer
                last_recurring_date:
                  type: string
                  format: date-time
                  example: '2026-04-01 09:15:30'
                rel_id:
                  type: integer
                rel_type:
                  type: string
                is_public:
                  type: integer
                billable:
                  type: integer
                billed:
                  type: integer
                invoice_id:
                  type: integer
                hourly_rate:
                  type: number
                milestone:
                  type: integer
                kanban_order:
                  type: integer
                milestone_order:
                  type: integer
                visible_to_client:
                  type: integer
                deadline_notified:
                  type: integer
              additionalProperties: true
      responses:
        '200':
          description: OK
        '401':
          description: Unauthorized
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/ProblemDetails'
        '403':
          description: Forbidden
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/ProblemDetails'
        '429':
          description: Rate limit exceeded
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/ProblemDetails'
    delete:
      operationId: deleteTasks
      summary: Delete tasks
      tags:
        - Resources
      security:
        -
          BearerAuth: []
      parameters:
        -
          name: id
          in: path
          required: true
          schema:
            type: integer
      responses:
        '200':
          description: Deleted
        '401':
          description: Unauthorized
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/ProblemDetails'
        '403':
          description: Forbidden
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/ProblemDetails'
        '429':
          description: Rate limit exceeded
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/ProblemDetails'
  /tasks/schema:
    get:
      operationId: schemaTasks
      summary: Schema of tasks
      tags:
        - Resources
      security:
        -
          BearerAuth: []
      responses:
        '200':
          description: OK
        '401':
          description: Unauthorized
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/ProblemDetails'
        '403':
          description: Forbidden
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/ProblemDetails'
        '429':
          description: Rate limit exceeded
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/ProblemDetails'
  /tasks_checklist_templates:
    get:
      operationId: listTasksChecklistTemplates
      summary: List tasks_checklist_templates
      tags:
        - Resources
      security:
        -
          BearerAuth: []
      parameters:
        -
          name: page
          in: query
          schema:
            type: integer
            default: 1
        -
          name: per_page
          in: query
          schema:
            type: integer
            default: 25
            maximum: 1000
        -
          name: sort
          in: query
          schema:
            type: string
          description: 'Comma-separated fields, prefix - for DESC'
        -
          name: fields
          in: query
          schema:
            type: string
          description: Comma-separated field names (sparse fieldset)
      responses:
        '200':
          description: OK
        '401':
          description: Unauthorized
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/ProblemDetails'
        '403':
          description: Forbidden
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/ProblemDetails'
        '429':
          description: Rate limit exceeded
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/ProblemDetails'
    post:
      operationId: createTasksChecklistTemplates
      summary: Create tasks_checklist_templates
      tags:
        - Resources
      security:
        -
          BearerAuth: []
      requestBody:
        required: true
        content:
          application/json:
            schema:
              type: object
              properties:
                description:
                  type: string
      responses:
        '201':
          description: Created
        '401':
          description: Unauthorized
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/ProblemDetails'
        '403':
          description: Forbidden
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/ProblemDetails'
        '429':
          description: Rate limit exceeded
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/ProblemDetails'
  /tasks_checklist_templates/{id}:
    get:
      operationId: getTasksChecklistTemplatesById
      summary: Get tasks_checklist_templates by ID
      tags:
        - Resources
      security:
        -
          BearerAuth: []
      parameters:
        -
          name: id
          in: path
          required: true
          schema:
            type: integer
      responses:
        '200':
          description: OK
        '401':
          description: Unauthorized
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/ProblemDetails'
        '403':
          description: Forbidden
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/ProblemDetails'
        '429':
          description: Rate limit exceeded
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/ProblemDetails'
    put:
      operationId: updateTasksChecklistTemplates
      summary: Update tasks_checklist_templates
      tags:
        - Resources
      security:
        -
          BearerAuth: []
      parameters:
        -
          name: id
          in: path
          required: true
          schema:
            type: integer
      requestBody:
        required: true
        content:
          application/json:
            schema:
              type: object
              properties:
                description:
                  type: string
              additionalProperties: true
      responses:
        '200':
          description: OK
        '401':
          description: Unauthorized
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/ProblemDetails'
        '403':
          description: Forbidden
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/ProblemDetails'
        '429':
          description: Rate limit exceeded
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/ProblemDetails'
    delete:
      operationId: deleteTasksChecklistTemplates
      summary: Delete tasks_checklist_templates
      tags:
        - Resources
      security:
        -
          BearerAuth: []
      parameters:
        -
          name: id
          in: path
          required: true
          schema:
            type: integer
      responses:
        '200':
          description: Deleted
        '401':
          description: Unauthorized
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/ProblemDetails'
        '403':
          description: Forbidden
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/ProblemDetails'
        '429':
          description: Rate limit exceeded
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/ProblemDetails'
  /tasks_checklist_templates/schema:
    get:
      operationId: schemaTasksChecklistTemplates
      summary: Schema of tasks_checklist_templates
      tags:
        - Resources
      security:
        -
          BearerAuth: []
      responses:
        '200':
          description: OK
        '401':
          description: Unauthorized
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/ProblemDetails'
        '403':
          description: Forbidden
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/ProblemDetails'
        '429':
          description: Rate limit exceeded
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/ProblemDetails'
  /taxes:
    get:
      operationId: listTaxes
      summary: List taxes
      tags:
        - Resources
      security:
        -
          BearerAuth: []
      parameters:
        -
          name: page
          in: query
          schema:
            type: integer
            default: 1
        -
          name: per_page
          in: query
          schema:
            type: integer
            default: 25
            maximum: 1000
        -
          name: sort
          in: query
          schema:
            type: string
          description: 'Comma-separated fields, prefix - for DESC'
        -
          name: fields
          in: query
          schema:
            type: string
          description: Comma-separated field names (sparse fieldset)
      responses:
        '200':
          description: OK
        '401':
          description: Unauthorized
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/ProblemDetails'
        '403':
          description: Forbidden
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/ProblemDetails'
        '429':
          description: Rate limit exceeded
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/ProblemDetails'
    post:
      operationId: createTaxes
      summary: Create taxes
      tags:
        - Resources
      security:
        -
          BearerAuth: []
      requestBody:
        required: true
        content:
          application/json:
            schema:
              type: object
              properties:
                name:
                  type: string
                taxrate:
                  type: number
              required:
                - name
                - taxrate
      responses:
        '201':
          description: Created
        '401':
          description: Unauthorized
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/ProblemDetails'
        '403':
          description: Forbidden
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/ProblemDetails'
        '429':
          description: Rate limit exceeded
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/ProblemDetails'
  /taxes/{id}:
    get:
      operationId: getTaxesById
      summary: Get taxes by ID
      tags:
        - Resources
      security:
        -
          BearerAuth: []
      parameters:
        -
          name: id
          in: path
          required: true
          schema:
            type: integer
      responses:
        '200':
          description: OK
        '401':
          description: Unauthorized
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/ProblemDetails'
        '403':
          description: Forbidden
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/ProblemDetails'
        '429':
          description: Rate limit exceeded
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/ProblemDetails'
    put:
      operationId: updateTaxes
      summary: Update taxes
      tags:
        - Resources
      security:
        -
          BearerAuth: []
      parameters:
        -
          name: id
          in: path
          required: true
          schema:
            type: integer
      requestBody:
        required: true
        content:
          application/json:
            schema:
              type: object
              properties:
                name:
                  type: string
                taxrate:
                  type: number
              additionalProperties: true
      responses:
        '200':
          description: OK
        '401':
          description: Unauthorized
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/ProblemDetails'
        '403':
          description: Forbidden
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/ProblemDetails'
        '429':
          description: Rate limit exceeded
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/ProblemDetails'
    delete:
      operationId: deleteTaxes
      summary: Delete taxes
      tags:
        - Resources
      security:
        -
          BearerAuth: []
      parameters:
        -
          name: id
          in: path
          required: true
          schema:
            type: integer
      responses:
        '200':
          description: Deleted
        '401':
          description: Unauthorized
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/ProblemDetails'
        '403':
          description: Forbidden
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/ProblemDetails'
        '429':
          description: Rate limit exceeded
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/ProblemDetails'
  /taxes/schema:
    get:
      operationId: schemaTaxes
      summary: Schema of taxes
      tags:
        - Resources
      security:
        -
          BearerAuth: []
      responses:
        '200':
          description: OK
        '401':
          description: Unauthorized
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/ProblemDetails'
        '403':
          description: Forbidden
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/ProblemDetails'
        '429':
          description: Rate limit exceeded
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/ProblemDetails'
  /templates:
    get:
      operationId: listTemplates
      summary: List templates
      tags:
        - Resources
      security:
        -
          BearerAuth: []
      parameters:
        -
          name: page
          in: query
          schema:
            type: integer
            default: 1
        -
          name: per_page
          in: query
          schema:
            type: integer
            default: 25
            maximum: 1000
        -
          name: sort
          in: query
          schema:
            type: string
          description: 'Comma-separated fields, prefix - for DESC'
        -
          name: fields
          in: query
          schema:
            type: string
          description: Comma-separated field names (sparse fieldset)
      responses:
        '200':
          description: OK
        '401':
          description: Unauthorized
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/ProblemDetails'
        '403':
          description: Forbidden
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/ProblemDetails'
        '429':
          description: Rate limit exceeded
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/ProblemDetails'
    post:
      operationId: createTemplates
      summary: Create templates
      tags:
        - Resources
      security:
        -
          BearerAuth: []
      requestBody:
        required: true
        content:
          application/json:
            schema:
              type: object
              properties:
                name:
                  type: string
                type:
                  type: string
                content:
                  type: string
                content_type:
                  type: string
              required:
                - name
                - type
      responses:
        '201':
          description: Created
        '401':
          description: Unauthorized
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/ProblemDetails'
        '403':
          description: Forbidden
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/ProblemDetails'
        '429':
          description: Rate limit exceeded
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/ProblemDetails'
  /templates/{id}:
    get:
      operationId: getTemplatesById
      summary: Get templates by ID
      tags:
        - Resources
      security:
        -
          BearerAuth: []
      parameters:
        -
          name: id
          in: path
          required: true
          schema:
            type: integer
      responses:
        '200':
          description: OK
        '401':
          description: Unauthorized
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/ProblemDetails'
        '403':
          description: Forbidden
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/ProblemDetails'
        '429':
          description: Rate limit exceeded
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/ProblemDetails'
    put:
      operationId: updateTemplates
      summary: Update templates
      tags:
        - Resources
      security:
        -
          BearerAuth: []
      parameters:
        -
          name: id
          in: path
          required: true
          schema:
            type: integer
      requestBody:
        required: true
        content:
          application/json:
            schema:
              type: object
              properties:
                name:
                  type: string
                type:
                  type: string
                content:
                  type: string
                content_type:
                  type: string
              additionalProperties: true
      responses:
        '200':
          description: OK
        '401':
          description: Unauthorized
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/ProblemDetails'
        '403':
          description: Forbidden
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/ProblemDetails'
        '429':
          description: Rate limit exceeded
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/ProblemDetails'
    delete:
      operationId: deleteTemplates
      summary: Delete templates
      tags:
        - Resources
      security:
        -
          BearerAuth: []
      parameters:
        -
          name: id
          in: path
          required: true
          schema:
            type: integer
      responses:
        '200':
          description: Deleted
        '401':
          description: Unauthorized
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/ProblemDetails'
        '403':
          description: Forbidden
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/ProblemDetails'
        '429':
          description: Rate limit exceeded
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/ProblemDetails'
  /templates/schema:
    get:
      operationId: schemaTemplates
      summary: Schema of templates
      tags:
        - Resources
      security:
        -
          BearerAuth: []
      responses:
        '200':
          description: OK
        '401':
          description: Unauthorized
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/ProblemDetails'
        '403':
          description: Forbidden
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/ProblemDetails'
        '429':
          description: Rate limit exceeded
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/ProblemDetails'
  /ticket_attachments:
    get:
      operationId: listTicketAttachments
      summary: List ticket_attachments
      tags:
        - Resources
      security:
        -
          BearerAuth: []
      parameters:
        -
          name: page
          in: query
          schema:
            type: integer
            default: 1
        -
          name: per_page
          in: query
          schema:
            type: integer
            default: 25
            maximum: 1000
        -
          name: sort
          in: query
          schema:
            type: string
          description: 'Comma-separated fields, prefix - for DESC'
        -
          name: fields
          in: query
          schema:
            type: string
          description: Comma-separated field names (sparse fieldset)
      responses:
        '200':
          description: OK
        '401':
          description: Unauthorized
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/ProblemDetails'
        '403':
          description: Forbidden
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/ProblemDetails'
        '429':
          description: Rate limit exceeded
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/ProblemDetails'
    post:
      operationId: createTicketAttachments
      summary: Create ticket_attachments
      tags:
        - Resources
      security:
        -
          BearerAuth: []
      requestBody:
        required: true
        content:
          application/json:
            schema:
              type: object
              properties:
                ticketid:
                  type: integer
                replyid:
                  type: integer
                file_name:
                  type: string
                filetype:
                  type: string
              required:
                - ticketid
                - file_name
      responses:
        '201':
          description: Created
        '401':
          description: Unauthorized
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/ProblemDetails'
        '403':
          description: Forbidden
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/ProblemDetails'
        '429':
          description: Rate limit exceeded
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/ProblemDetails'
  /ticket_attachments/{id}:
    get:
      operationId: getTicketAttachmentsById
      summary: Get ticket_attachments by ID
      tags:
        - Resources
      security:
        -
          BearerAuth: []
      parameters:
        -
          name: id
          in: path
          required: true
          schema:
            type: integer
      responses:
        '200':
          description: OK
        '401':
          description: Unauthorized
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/ProblemDetails'
        '403':
          description: Forbidden
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/ProblemDetails'
        '429':
          description: Rate limit exceeded
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/ProblemDetails'
    put:
      operationId: updateTicketAttachments
      summary: Update ticket_attachments
      tags:
        - Resources
      security:
        -
          BearerAuth: []
      parameters:
        -
          name: id
          in: path
          required: true
          schema:
            type: integer
      requestBody:
        required: true
        content:
          application/json:
            schema:
              type: object
              properties:
                ticketid:
                  type: integer
                replyid:
                  type: integer
                file_name:
                  type: string
                filetype:
                  type: string
              additionalProperties: true
      responses:
        '200':
          description: OK
        '401':
          description: Unauthorized
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/ProblemDetails'
        '403':
          description: Forbidden
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/ProblemDetails'
        '429':
          description: Rate limit exceeded
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/ProblemDetails'
    delete:
      operationId: deleteTicketAttachments
      summary: Delete ticket_attachments
      tags:
        - Resources
      security:
        -
          BearerAuth: []
      parameters:
        -
          name: id
          in: path
          required: true
          schema:
            type: integer
      responses:
        '200':
          description: Deleted
        '401':
          description: Unauthorized
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/ProblemDetails'
        '403':
          description: Forbidden
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/ProblemDetails'
        '429':
          description: Rate limit exceeded
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/ProblemDetails'
  /ticket_attachments/schema:
    get:
      operationId: schemaTicketAttachments
      summary: Schema of ticket_attachments
      tags:
        - Resources
      security:
        -
          BearerAuth: []
      responses:
        '200':
          description: OK
        '401':
          description: Unauthorized
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/ProblemDetails'
        '403':
          description: Forbidden
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/ProblemDetails'
        '429':
          description: Rate limit exceeded
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/ProblemDetails'
  /ticket_replies:
    get:
      operationId: listTicketReplies
      summary: List ticket_replies
      tags:
        - Resources
      security:
        -
          BearerAuth: []
      parameters:
        -
          name: page
          in: query
          schema:
            type: integer
            default: 1
        -
          name: per_page
          in: query
          schema:
            type: integer
            default: 25
            maximum: 1000
        -
          name: sort
          in: query
          schema:
            type: string
          description: 'Comma-separated fields, prefix - for DESC'
        -
          name: fields
          in: query
          schema:
            type: string
          description: Comma-separated field names (sparse fieldset)
      responses:
        '200':
          description: OK
        '401':
          description: Unauthorized
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/ProblemDetails'
        '403':
          description: Forbidden
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/ProblemDetails'
        '429':
          description: Rate limit exceeded
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/ProblemDetails'
    post:
      operationId: createTicketReplies
      summary: Create ticket_replies
      tags:
        - Resources
      security:
        -
          BearerAuth: []
      requestBody:
        required: true
        content:
          application/json:
            schema:
              type: object
              properties:
                ticketid:
                  type: integer
                userid:
                  type: integer
                contactid:
                  type: integer
                name:
                  type: string
                email:
                  type: string
                date:
                  type: string
                  format: date-time
                  example: '2026-04-01 09:15:30'
                message:
                  type: string
                attachment:
                  type: integer
                admin:
                  type: integer
              required:
                - ticketid
                - date
      responses:
        '201':
          description: Created
        '401':
          description: Unauthorized
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/ProblemDetails'
        '403':
          description: Forbidden
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/ProblemDetails'
        '429':
          description: Rate limit exceeded
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/ProblemDetails'
  /ticket_replies/{id}:
    get:
      operationId: getTicketRepliesById
      summary: Get ticket_replies by ID
      tags:
        - Resources
      security:
        -
          BearerAuth: []
      parameters:
        -
          name: id
          in: path
          required: true
          schema:
            type: integer
      responses:
        '200':
          description: OK
        '401':
          description: Unauthorized
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/ProblemDetails'
        '403':
          description: Forbidden
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/ProblemDetails'
        '429':
          description: Rate limit exceeded
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/ProblemDetails'
    put:
      operationId: updateTicketReplies
      summary: Update ticket_replies
      tags:
        - Resources
      security:
        -
          BearerAuth: []
      parameters:
        -
          name: id
          in: path
          required: true
          schema:
            type: integer
      requestBody:
        required: true
        content:
          application/json:
            schema:
              type: object
              properties:
                ticketid:
                  type: integer
                userid:
                  type: integer
                contactid:
                  type: integer
                name:
                  type: string
                email:
                  type: string
                date:
                  type: string
                  format: date-time
                  example: '2026-04-01 09:15:30'
                message:
                  type: string
                attachment:
                  type: integer
                admin:
                  type: integer
              additionalProperties: true
      responses:
        '200':
          description: OK
        '401':
          description: Unauthorized
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/ProblemDetails'
        '403':
          description: Forbidden
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/ProblemDetails'
        '429':
          description: Rate limit exceeded
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/ProblemDetails'
    delete:
      operationId: deleteTicketReplies
      summary: Delete ticket_replies
      tags:
        - Resources
      security:
        -
          BearerAuth: []
      parameters:
        -
          name: id
          in: path
          required: true
          schema:
            type: integer
      responses:
        '200':
          description: Deleted
        '401':
          description: Unauthorized
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/ProblemDetails'
        '403':
          description: Forbidden
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/ProblemDetails'
        '429':
          description: Rate limit exceeded
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/ProblemDetails'
  /ticket_replies/schema:
    get:
      operationId: schemaTicketReplies
      summary: Schema of ticket_replies
      tags:
        - Resources
      security:
        -
          BearerAuth: []
      responses:
        '200':
          description: OK
        '401':
          description: Unauthorized
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/ProblemDetails'
        '403':
          description: Forbidden
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/ProblemDetails'
        '429':
          description: Rate limit exceeded
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/ProblemDetails'
  /tickets:
    get:
      operationId: listTickets
      summary: List tickets
      tags:
        - Resources
      security:
        -
          BearerAuth: []
      parameters:
        -
          name: page
          in: query
          schema:
            type: integer
            default: 1
        -
          name: per_page
          in: query
          schema:
            type: integer
            default: 25
            maximum: 1000
        -
          name: sort
          in: query
          schema:
            type: string
          description: 'Comma-separated fields, prefix - for DESC'
        -
          name: fields
          in: query
          schema:
            type: string
          description: Comma-separated field names (sparse fieldset)
      responses:
        '200':
          description: OK
        '401':
          description: Unauthorized
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/ProblemDetails'
        '403':
          description: Forbidden
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/ProblemDetails'
        '429':
          description: Rate limit exceeded
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/ProblemDetails'
    post:
      operationId: createTickets
      summary: Create tickets
      tags:
        - Resources
      security:
        -
          BearerAuth: []
      requestBody:
        required: true
        content:
          application/json:
            schema:
              type: object
              properties:
                adminreplying:
                  type: integer
                userid:
                  type: integer
                contactid:
                  type: integer
                merged_ticket_id:
                  type: integer
                email:
                  type: string
                name:
                  type: string
                department:
                  type: integer
                priority:
                  type: integer
                status:
                  type: integer
                service:
                  type: integer
                ticketkey:
                  type: string
                subject:
                  type: string
                message:
                  type: string
                admin:
                  type: integer
                date:
                  type: string
                  format: date-time
                  example: '2026-04-01 09:15:30'
                project_id:
                  type: integer
                lastreply:
                  type: string
                  format: date-time
                  example: '2026-04-01 09:15:30'
                clientread:
                  type: integer
                adminread:
                  type: integer
                assigned:
                  type: integer
                staff_id_replying:
                  type: integer
                cc:
                  type: string
              required:
                - userid
                - department
                - priority
                - status
                - ticketkey
                - subject
                - date
      responses:
        '201':
          description: Created
        '401':
          description: Unauthorized
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/ProblemDetails'
        '403':
          description: Forbidden
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/ProblemDetails'
        '429':
          description: Rate limit exceeded
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/ProblemDetails'
  /tickets/{id}:
    get:
      operationId: getTicketsById
      summary: Get tickets by ID
      tags:
        - Resources
      security:
        -
          BearerAuth: []
      parameters:
        -
          name: id
          in: path
          required: true
          schema:
            type: integer
      responses:
        '200':
          description: OK
        '401':
          description: Unauthorized
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/ProblemDetails'
        '403':
          description: Forbidden
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/ProblemDetails'
        '429':
          description: Rate limit exceeded
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/ProblemDetails'
    put:
      operationId: updateTickets
      summary: Update tickets
      tags:
        - Resources
      security:
        -
          BearerAuth: []
      parameters:
        -
          name: id
          in: path
          required: true
          schema:
            type: integer
      requestBody:
        required: true
        content:
          application/json:
            schema:
              type: object
              properties:
                adminreplying:
                  type: integer
                userid:
                  type: integer
                contactid:
                  type: integer
                merged_ticket_id:
                  type: integer
                email:
                  type: string
                name:
                  type: string
                department:
                  type: integer
                priority:
                  type: integer
                status:
                  type: integer
                service:
                  type: integer
                ticketkey:
                  type: string
                subject:
                  type: string
                message:
                  type: string
                admin:
                  type: integer
                date:
                  type: string
                  format: date-time
                  example: '2026-04-01 09:15:30'
                project_id:
                  type: integer
                lastreply:
                  type: string
                  format: date-time
                  example: '2026-04-01 09:15:30'
                clientread:
                  type: integer
                adminread:
                  type: integer
                assigned:
                  type: integer
                staff_id_replying:
                  type: integer
                cc:
                  type: string
              additionalProperties: true
      responses:
        '200':
          description: OK
        '401':
          description: Unauthorized
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/ProblemDetails'
        '403':
          description: Forbidden
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/ProblemDetails'
        '429':
          description: Rate limit exceeded
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/ProblemDetails'
    delete:
      operationId: deleteTickets
      summary: Delete tickets
      tags:
        - Resources
      security:
        -
          BearerAuth: []
      parameters:
        -
          name: id
          in: path
          required: true
          schema:
            type: integer
      responses:
        '200':
          description: Deleted
        '401':
          description: Unauthorized
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/ProblemDetails'
        '403':
          description: Forbidden
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/ProblemDetails'
        '429':
          description: Rate limit exceeded
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/ProblemDetails'
  /tickets/schema:
    get:
      operationId: schemaTickets
      summary: Schema of tickets
      tags:
        - Resources
      security:
        -
          BearerAuth: []
      responses:
        '200':
          description: OK
        '401':
          description: Unauthorized
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/ProblemDetails'
        '403':
          description: Forbidden
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/ProblemDetails'
        '429':
          description: Rate limit exceeded
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/ProblemDetails'
  /tickets_pipe_log:
    get:
      operationId: listTicketsPipeLog
      summary: List tickets_pipe_log
      tags:
        - Resources
      security:
        -
          BearerAuth: []
      parameters:
        -
          name: page
          in: query
          schema:
            type: integer
            default: 1
        -
          name: per_page
          in: query
          schema:
            type: integer
            default: 25
            maximum: 1000
        -
          name: sort
          in: query
          schema:
            type: string
          description: 'Comma-separated fields, prefix - for DESC'
        -
          name: fields
          in: query
          schema:
            type: string
          description: Comma-separated field names (sparse fieldset)
      responses:
        '200':
          description: OK
        '401':
          description: Unauthorized
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/ProblemDetails'
        '403':
          description: Forbidden
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/ProblemDetails'
        '429':
          description: Rate limit exceeded
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/ProblemDetails'
    post:
      operationId: createTicketsPipeLog
      summary: Create tickets_pipe_log
      tags:
        - Resources
      security:
        -
          BearerAuth: []
      requestBody:
        required: true
        content:
          application/json:
            schema:
              type: object
              properties:
                date:
                  type: string
                  format: date-time
                  example: '2026-04-01 09:15:30'
                email_to:
                  type: string
                name:
                  type: string
                subject:
                  type: string
                message:
                  type: string
                email:
                  type: string
                status:
                  type: string
              required:
                - date
                - email_to
                - name
                - subject
                - message
                - email
                - status
      responses:
        '201':
          description: Created
        '401':
          description: Unauthorized
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/ProblemDetails'
        '403':
          description: Forbidden
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/ProblemDetails'
        '429':
          description: Rate limit exceeded
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/ProblemDetails'
  /tickets_pipe_log/{id}:
    get:
      operationId: getTicketsPipeLogById
      summary: Get tickets_pipe_log by ID
      tags:
        - Resources
      security:
        -
          BearerAuth: []
      parameters:
        -
          name: id
          in: path
          required: true
          schema:
            type: integer
      responses:
        '200':
          description: OK
        '401':
          description: Unauthorized
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/ProblemDetails'
        '403':
          description: Forbidden
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/ProblemDetails'
        '429':
          description: Rate limit exceeded
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/ProblemDetails'
    put:
      operationId: updateTicketsPipeLog
      summary: Update tickets_pipe_log
      tags:
        - Resources
      security:
        -
          BearerAuth: []
      parameters:
        -
          name: id
          in: path
          required: true
          schema:
            type: integer
      requestBody:
        required: true
        content:
          application/json:
            schema:
              type: object
              properties:
                date:
                  type: string
                  format: date-time
                  example: '2026-04-01 09:15:30'
                email_to:
                  type: string
                name:
                  type: string
                subject:
                  type: string
                message:
                  type: string
                email:
                  type: string
                status:
                  type: string
              additionalProperties: true
      responses:
        '200':
          description: OK
        '401':
          description: Unauthorized
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/ProblemDetails'
        '403':
          description: Forbidden
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/ProblemDetails'
        '429':
          description: Rate limit exceeded
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/ProblemDetails'
    delete:
      operationId: deleteTicketsPipeLog
      summary: Delete tickets_pipe_log
      tags:
        - Resources
      security:
        -
          BearerAuth: []
      parameters:
        -
          name: id
          in: path
          required: true
          schema:
            type: integer
      responses:
        '200':
          description: Deleted
        '401':
          description: Unauthorized
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/ProblemDetails'
        '403':
          description: Forbidden
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/ProblemDetails'
        '429':
          description: Rate limit exceeded
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/ProblemDetails'
  /tickets_pipe_log/schema:
    get:
      operationId: schemaTicketsPipeLog
      summary: Schema of tickets_pipe_log
      tags:
        - Resources
      security:
        -
          BearerAuth: []
      responses:
        '200':
          description: OK
        '401':
          description: Unauthorized
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/ProblemDetails'
        '403':
          description: Forbidden
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/ProblemDetails'
        '429':
          description: Rate limit exceeded
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/ProblemDetails'
  /tickets_predefined_replies:
    get:
      operationId: listTicketsPredefinedReplies
      summary: List tickets_predefined_replies
      tags:
        - Resources
      security:
        -
          BearerAuth: []
      parameters:
        -
          name: page
          in: query
          schema:
            type: integer
            default: 1
        -
          name: per_page
          in: query
          schema:
            type: integer
            default: 25
            maximum: 1000
        -
          name: sort
          in: query
          schema:
            type: string
          description: 'Comma-separated fields, prefix - for DESC'
        -
          name: fields
          in: query
          schema:
            type: string
          description: Comma-separated field names (sparse fieldset)
      responses:
        '200':
          description: OK
        '401':
          description: Unauthorized
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/ProblemDetails'
        '403':
          description: Forbidden
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/ProblemDetails'
        '429':
          description: Rate limit exceeded
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/ProblemDetails'
    post:
      operationId: createTicketsPredefinedReplies
      summary: Create tickets_predefined_replies
      tags:
        - Resources
      security:
        -
          BearerAuth: []
      requestBody:
        required: true
        content:
          application/json:
            schema:
              type: object
              properties:
                name:
                  type: string
                message:
                  type: string
              required:
                - name
                - message
      responses:
        '201':
          description: Created
        '401':
          description: Unauthorized
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/ProblemDetails'
        '403':
          description: Forbidden
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/ProblemDetails'
        '429':
          description: Rate limit exceeded
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/ProblemDetails'
  /tickets_predefined_replies/{id}:
    get:
      operationId: getTicketsPredefinedRepliesById
      summary: Get tickets_predefined_replies by ID
      tags:
        - Resources
      security:
        -
          BearerAuth: []
      parameters:
        -
          name: id
          in: path
          required: true
          schema:
            type: integer
      responses:
        '200':
          description: OK
        '401':
          description: Unauthorized
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/ProblemDetails'
        '403':
          description: Forbidden
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/ProblemDetails'
        '429':
          description: Rate limit exceeded
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/ProblemDetails'
    put:
      operationId: updateTicketsPredefinedReplies
      summary: Update tickets_predefined_replies
      tags:
        - Resources
      security:
        -
          BearerAuth: []
      parameters:
        -
          name: id
          in: path
          required: true
          schema:
            type: integer
      requestBody:
        required: true
        content:
          application/json:
            schema:
              type: object
              properties:
                name:
                  type: string
                message:
                  type: string
              additionalProperties: true
      responses:
        '200':
          description: OK
        '401':
          description: Unauthorized
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/ProblemDetails'
        '403':
          description: Forbidden
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/ProblemDetails'
        '429':
          description: Rate limit exceeded
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/ProblemDetails'
    delete:
      operationId: deleteTicketsPredefinedReplies
      summary: Delete tickets_predefined_replies
      tags:
        - Resources
      security:
        -
          BearerAuth: []
      parameters:
        -
          name: id
          in: path
          required: true
          schema:
            type: integer
      responses:
        '200':
          description: Deleted
        '401':
          description: Unauthorized
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/ProblemDetails'
        '403':
          description: Forbidden
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/ProblemDetails'
        '429':
          description: Rate limit exceeded
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/ProblemDetails'
  /tickets_predefined_replies/schema:
    get:
      operationId: schemaTicketsPredefinedReplies
      summary: Schema of tickets_predefined_replies
      tags:
        - Resources
      security:
        -
          BearerAuth: []
      responses:
        '200':
          description: OK
        '401':
          description: Unauthorized
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/ProblemDetails'
        '403':
          description: Forbidden
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/ProblemDetails'
        '429':
          description: Rate limit exceeded
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/ProblemDetails'
  /tickets_priorities:
    get:
      operationId: listTicketsPriorities
      summary: List tickets_priorities
      tags:
        - Resources
      security:
        -
          BearerAuth: []
      parameters:
        -
          name: page
          in: query
          schema:
            type: integer
            default: 1
        -
          name: per_page
          in: query
          schema:
            type: integer
            default: 25
            maximum: 1000
        -
          name: sort
          in: query
          schema:
            type: string
          description: 'Comma-separated fields, prefix - for DESC'
        -
          name: fields
          in: query
          schema:
            type: string
          description: Comma-separated field names (sparse fieldset)
      responses:
        '200':
          description: OK
        '401':
          description: Unauthorized
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/ProblemDetails'
        '403':
          description: Forbidden
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/ProblemDetails'
        '429':
          description: Rate limit exceeded
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/ProblemDetails'
    post:
      operationId: createTicketsPriorities
      summary: Create tickets_priorities
      tags:
        - Resources
      security:
        -
          BearerAuth: []
      requestBody:
        required: true
        content:
          application/json:
            schema:
              type: object
              properties:
                name:
                  type: string
              required:
                - name
      responses:
        '201':
          description: Created
        '401':
          description: Unauthorized
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/ProblemDetails'
        '403':
          description: Forbidden
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/ProblemDetails'
        '429':
          description: Rate limit exceeded
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/ProblemDetails'
  /tickets_priorities/{id}:
    get:
      operationId: getTicketsPrioritiesById
      summary: Get tickets_priorities by ID
      tags:
        - Resources
      security:
        -
          BearerAuth: []
      parameters:
        -
          name: id
          in: path
          required: true
          schema:
            type: integer
      responses:
        '200':
          description: OK
        '401':
          description: Unauthorized
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/ProblemDetails'
        '403':
          description: Forbidden
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/ProblemDetails'
        '429':
          description: Rate limit exceeded
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/ProblemDetails'
    put:
      operationId: updateTicketsPriorities
      summary: Update tickets_priorities
      tags:
        - Resources
      security:
        -
          BearerAuth: []
      parameters:
        -
          name: id
          in: path
          required: true
          schema:
            type: integer
      requestBody:
        required: true
        content:
          application/json:
            schema:
              type: object
              properties:
                name:
                  type: string
              additionalProperties: true
      responses:
        '200':
          description: OK
        '401':
          description: Unauthorized
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/ProblemDetails'
        '403':
          description: Forbidden
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/ProblemDetails'
        '429':
          description: Rate limit exceeded
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/ProblemDetails'
    delete:
      operationId: deleteTicketsPriorities
      summary: Delete tickets_priorities
      tags:
        - Resources
      security:
        -
          BearerAuth: []
      parameters:
        -
          name: id
          in: path
          required: true
          schema:
            type: integer
      responses:
        '200':
          description: Deleted
        '401':
          description: Unauthorized
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/ProblemDetails'
        '403':
          description: Forbidden
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/ProblemDetails'
        '429':
          description: Rate limit exceeded
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/ProblemDetails'
  /tickets_priorities/schema:
    get:
      operationId: schemaTicketsPriorities
      summary: Schema of tickets_priorities
      tags:
        - Resources
      security:
        -
          BearerAuth: []
      responses:
        '200':
          description: OK
        '401':
          description: Unauthorized
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/ProblemDetails'
        '403':
          description: Forbidden
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/ProblemDetails'
        '429':
          description: Rate limit exceeded
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/ProblemDetails'
  /tickets_status:
    get:
      operationId: listTicketsStatus
      summary: List tickets_status
      tags:
        - Resources
      security:
        -
          BearerAuth: []
      parameters:
        -
          name: page
          in: query
          schema:
            type: integer
            default: 1
        -
          name: per_page
          in: query
          schema:
            type: integer
            default: 25
            maximum: 1000
        -
          name: sort
          in: query
          schema:
            type: string
          description: 'Comma-separated fields, prefix - for DESC'
        -
          name: fields
          in: query
          schema:
            type: string
          description: Comma-separated field names (sparse fieldset)
      responses:
        '200':
          description: OK
        '401':
          description: Unauthorized
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/ProblemDetails'
        '403':
          description: Forbidden
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/ProblemDetails'
        '429':
          description: Rate limit exceeded
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/ProblemDetails'
    post:
      operationId: createTicketsStatus
      summary: Create tickets_status
      tags:
        - Resources
      security:
        -
          BearerAuth: []
      requestBody:
        required: true
        content:
          application/json:
            schema:
              type: object
              properties:
                name:
                  type: string
                isdefault:
                  type: integer
                statuscolor:
                  type: string
                statusorder:
                  type: integer
              required:
                - name
      responses:
        '201':
          description: Created
        '401':
          description: Unauthorized
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/ProblemDetails'
        '403':
          description: Forbidden
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/ProblemDetails'
        '429':
          description: Rate limit exceeded
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/ProblemDetails'
  /tickets_status/{id}:
    get:
      operationId: getTicketsStatusById
      summary: Get tickets_status by ID
      tags:
        - Resources
      security:
        -
          BearerAuth: []
      parameters:
        -
          name: id
          in: path
          required: true
          schema:
            type: integer
      responses:
        '200':
          description: OK
        '401':
          description: Unauthorized
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/ProblemDetails'
        '403':
          description: Forbidden
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/ProblemDetails'
        '429':
          description: Rate limit exceeded
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/ProblemDetails'
    put:
      operationId: updateTicketsStatus
      summary: Update tickets_status
      tags:
        - Resources
      security:
        -
          BearerAuth: []
      parameters:
        -
          name: id
          in: path
          required: true
          schema:
            type: integer
      requestBody:
        required: true
        content:
          application/json:
            schema:
              type: object
              properties:
                name:
                  type: string
                isdefault:
                  type: integer
                statuscolor:
                  type: string
                statusorder:
                  type: integer
              additionalProperties: true
      responses:
        '200':
          description: OK
        '401':
          description: Unauthorized
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/ProblemDetails'
        '403':
          description: Forbidden
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/ProblemDetails'
        '429':
          description: Rate limit exceeded
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/ProblemDetails'
    delete:
      operationId: deleteTicketsStatus
      summary: Delete tickets_status
      tags:
        - Resources
      security:
        -
          BearerAuth: []
      parameters:
        -
          name: id
          in: path
          required: true
          schema:
            type: integer
      responses:
        '200':
          description: Deleted
        '401':
          description: Unauthorized
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/ProblemDetails'
        '403':
          description: Forbidden
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/ProblemDetails'
        '429':
          description: Rate limit exceeded
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/ProblemDetails'
  /tickets_status/schema:
    get:
      operationId: schemaTicketsStatus
      summary: Schema of tickets_status
      tags:
        - Resources
      security:
        -
          BearerAuth: []
      responses:
        '200':
          description: OK
        '401':
          description: Unauthorized
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/ProblemDetails'
        '403':
          description: Forbidden
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/ProblemDetails'
        '429':
          description: Rate limit exceeded
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/ProblemDetails'
  /todos:
    get:
      operationId: listTodos
      summary: List todos
      tags:
        - Resources
      security:
        -
          BearerAuth: []
      parameters:
        -
          name: page
          in: query
          schema:
            type: integer
            default: 1
        -
          name: per_page
          in: query
          schema:
            type: integer
            default: 25
            maximum: 1000
        -
          name: sort
          in: query
          schema:
            type: string
          description: 'Comma-separated fields, prefix - for DESC'
        -
          name: fields
          in: query
          schema:
            type: string
          description: Comma-separated field names (sparse fieldset)
      responses:
        '200':
          description: OK
        '401':
          description: Unauthorized
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/ProblemDetails'
        '403':
          description: Forbidden
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/ProblemDetails'
        '429':
          description: Rate limit exceeded
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/ProblemDetails'
    post:
      operationId: createTodos
      summary: Create todos
      tags:
        - Resources
      security:
        -
          BearerAuth: []
      requestBody:
        required: true
        content:
          application/json:
            schema:
              type: object
              properties:
                description:
                  type: string
                staffid:
                  type: integer
                finished:
                  type: integer
                datefinished:
                  type: string
                  format: date-time
                  example: '2026-04-01 09:15:30'
                item_order:
                  type: integer
              required:
                - description
                - staffid
                - finished
      responses:
        '201':
          description: Created
        '401':
          description: Unauthorized
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/ProblemDetails'
        '403':
          description: Forbidden
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/ProblemDetails'
        '429':
          description: Rate limit exceeded
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/ProblemDetails'
  /todos/{id}:
    get:
      operationId: getTodosById
      summary: Get todos by ID
      tags:
        - Resources
      security:
        -
          BearerAuth: []
      parameters:
        -
          name: id
          in: path
          required: true
          schema:
            type: integer
      responses:
        '200':
          description: OK
        '401':
          description: Unauthorized
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/ProblemDetails'
        '403':
          description: Forbidden
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/ProblemDetails'
        '429':
          description: Rate limit exceeded
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/ProblemDetails'
    put:
      operationId: updateTodos
      summary: Update todos
      tags:
        - Resources
      security:
        -
          BearerAuth: []
      parameters:
        -
          name: id
          in: path
          required: true
          schema:
            type: integer
      requestBody:
        required: true
        content:
          application/json:
            schema:
              type: object
              properties:
                description:
                  type: string
                staffid:
                  type: integer
                finished:
                  type: integer
                datefinished:
                  type: string
                  format: date-time
                  example: '2026-04-01 09:15:30'
                item_order:
                  type: integer
              additionalProperties: true
      responses:
        '200':
          description: OK
        '401':
          description: Unauthorized
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/ProblemDetails'
        '403':
          description: Forbidden
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/ProblemDetails'
        '429':
          description: Rate limit exceeded
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/ProblemDetails'
    delete:
      operationId: deleteTodos
      summary: Delete todos
      tags:
        - Resources
      security:
        -
          BearerAuth: []
      parameters:
        -
          name: id
          in: path
          required: true
          schema:
            type: integer
      responses:
        '200':
          description: Deleted
        '401':
          description: Unauthorized
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/ProblemDetails'
        '403':
          description: Forbidden
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/ProblemDetails'
        '429':
          description: Rate limit exceeded
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/ProblemDetails'
  /todos/schema:
    get:
      operationId: schemaTodos
      summary: Schema of todos
      tags:
        - Resources
      security:
        -
          BearerAuth: []
      responses:
        '200':
          description: OK
        '401':
          description: Unauthorized
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/ProblemDetails'
        '403':
          description: Forbidden
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/ProblemDetails'
        '429':
          description: Rate limit exceeded
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/ProblemDetails'
  /tracked_mails:
    get:
      operationId: listTrackedMails
      summary: List tracked_mails
      tags:
        - Resources
      security:
        -
          BearerAuth: []
      parameters:
        -
          name: page
          in: query
          schema:
            type: integer
            default: 1
        -
          name: per_page
          in: query
          schema:
            type: integer
            default: 25
            maximum: 1000
        -
          name: sort
          in: query
          schema:
            type: string
          description: 'Comma-separated fields, prefix - for DESC'
        -
          name: fields
          in: query
          schema:
            type: string
          description: Comma-separated field names (sparse fieldset)
      responses:
        '200':
          description: OK
        '401':
          description: Unauthorized
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/ProblemDetails'
        '403':
          description: Forbidden
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/ProblemDetails'
        '429':
          description: Rate limit exceeded
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/ProblemDetails'
    post:
      operationId: createTrackedMails
      summary: Create tracked_mails
      tags:
        - Resources
      security:
        -
          BearerAuth: []
      requestBody:
        required: true
        content:
          application/json:
            schema:
              type: object
              properties:
                uid:
                  type: string
                rel_id:
                  type: integer
                rel_type:
                  type: string
                date:
                  type: string
                  format: date-time
                  example: '2026-04-01 09:15:30'
                email:
                  type: string
                opened:
                  type: integer
                date_opened:
                  type: string
                  format: date-time
                  example: '2026-04-01 09:15:30'
                subject:
                  type: string
              required:
                - uid
                - rel_id
                - rel_type
                - date
                - email
      responses:
        '201':
          description: Created
        '401':
          description: Unauthorized
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/ProblemDetails'
        '403':
          description: Forbidden
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/ProblemDetails'
        '429':
          description: Rate limit exceeded
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/ProblemDetails'
  /tracked_mails/{id}:
    get:
      operationId: getTrackedMailsById
      summary: Get tracked_mails by ID
      tags:
        - Resources
      security:
        -
          BearerAuth: []
      parameters:
        -
          name: id
          in: path
          required: true
          schema:
            type: integer
      responses:
        '200':
          description: OK
        '401':
          description: Unauthorized
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/ProblemDetails'
        '403':
          description: Forbidden
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/ProblemDetails'
        '429':
          description: Rate limit exceeded
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/ProblemDetails'
    put:
      operationId: updateTrackedMails
      summary: Update tracked_mails
      tags:
        - Resources
      security:
        -
          BearerAuth: []
      parameters:
        -
          name: id
          in: path
          required: true
          schema:
            type: integer
      requestBody:
        required: true
        content:
          application/json:
            schema:
              type: object
              properties:
                uid:
                  type: string
                rel_id:
                  type: integer
                rel_type:
                  type: string
                date:
                  type: string
                  format: date-time
                  example: '2026-04-01 09:15:30'
                email:
                  type: string
                opened:
                  type: integer
                date_opened:
                  type: string
                  format: date-time
                  example: '2026-04-01 09:15:30'
                subject:
                  type: string
              additionalProperties: true
      responses:
        '200':
          description: OK
        '401':
          description: Unauthorized
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/ProblemDetails'
        '403':
          description: Forbidden
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/ProblemDetails'
        '429':
          description: Rate limit exceeded
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/ProblemDetails'
    delete:
      operationId: deleteTrackedMails
      summary: Delete tracked_mails
      tags:
        - Resources
      security:
        -
          BearerAuth: []
      parameters:
        -
          name: id
          in: path
          required: true
          schema:
            type: integer
      responses:
        '200':
          description: Deleted
        '401':
          description: Unauthorized
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/ProblemDetails'
        '403':
          description: Forbidden
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/ProblemDetails'
        '429':
          description: Rate limit exceeded
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/ProblemDetails'
  /tracked_mails/schema:
    get:
      operationId: schemaTrackedMails
      summary: Schema of tracked_mails
      tags:
        - Resources
      security:
        -
          BearerAuth: []
      responses:
        '200':
          description: OK
        '401':
          description: Unauthorized
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/ProblemDetails'
        '403':
          description: Forbidden
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/ProblemDetails'
        '429':
          description: Rate limit exceeded
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/ProblemDetails'
  /twocheckout_log:
    get:
      operationId: listTwocheckoutLog
      summary: List twocheckout_log
      tags:
        - Resources
      security:
        -
          BearerAuth: []
      parameters:
        -
          name: page
          in: query
          schema:
            type: integer
            default: 1
        -
          name: per_page
          in: query
          schema:
            type: integer
            default: 25
            maximum: 1000
        -
          name: sort
          in: query
          schema:
            type: string
          description: 'Comma-separated fields, prefix - for DESC'
        -
          name: fields
          in: query
          schema:
            type: string
          description: Comma-separated field names (sparse fieldset)
      responses:
        '200':
          description: OK
        '401':
          description: Unauthorized
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/ProblemDetails'
        '403':
          description: Forbidden
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/ProblemDetails'
        '429':
          description: Rate limit exceeded
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/ProblemDetails'
    post:
      operationId: createTwocheckoutLog
      summary: Create twocheckout_log
      tags:
        - Resources
      security:
        -
          BearerAuth: []
      requestBody:
        required: true
        content:
          application/json:
            schema:
              type: object
              properties:
                reference:
                  type: string
                invoice_id:
                  type: integer
                amount:
                  type: string
                attempt_reference:
                  type: string
              required:
                - reference
                - invoice_id
                - amount
      responses:
        '201':
          description: Created
        '401':
          description: Unauthorized
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/ProblemDetails'
        '403':
          description: Forbidden
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/ProblemDetails'
        '429':
          description: Rate limit exceeded
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/ProblemDetails'
  /twocheckout_log/{id}:
    get:
      operationId: getTwocheckoutLogById
      summary: Get twocheckout_log by ID
      tags:
        - Resources
      security:
        -
          BearerAuth: []
      parameters:
        -
          name: id
          in: path
          required: true
          schema:
            type: integer
      responses:
        '200':
          description: OK
        '401':
          description: Unauthorized
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/ProblemDetails'
        '403':
          description: Forbidden
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/ProblemDetails'
        '429':
          description: Rate limit exceeded
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/ProblemDetails'
    put:
      operationId: updateTwocheckoutLog
      summary: Update twocheckout_log
      tags:
        - Resources
      security:
        -
          BearerAuth: []
      parameters:
        -
          name: id
          in: path
          required: true
          schema:
            type: integer
      requestBody:
        required: true
        content:
          application/json:
            schema:
              type: object
              properties:
                reference:
                  type: string
                invoice_id:
                  type: integer
                amount:
                  type: string
                attempt_reference:
                  type: string
              additionalProperties: true
      responses:
        '200':
          description: OK
        '401':
          description: Unauthorized
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/ProblemDetails'
        '403':
          description: Forbidden
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/ProblemDetails'
        '429':
          description: Rate limit exceeded
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/ProblemDetails'
    delete:
      operationId: deleteTwocheckoutLog
      summary: Delete twocheckout_log
      tags:
        - Resources
      security:
        -
          BearerAuth: []
      parameters:
        -
          name: id
          in: path
          required: true
          schema:
            type: integer
      responses:
        '200':
          description: Deleted
        '401':
          description: Unauthorized
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/ProblemDetails'
        '403':
          description: Forbidden
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/ProblemDetails'
        '429':
          description: Rate limit exceeded
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/ProblemDetails'
  /twocheckout_log/schema:
    get:
      operationId: schemaTwocheckoutLog
      summary: Schema of twocheckout_log
      tags:
        - Resources
      security:
        -
          BearerAuth: []
      responses:
        '200':
          description: OK
        '401':
          description: Unauthorized
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/ProblemDetails'
        '403':
          description: Forbidden
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/ProblemDetails'
        '429':
          description: Rate limit exceeded
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/ProblemDetails'
  /user_auto_login:
    get:
      operationId: listUserAutoLogin
      summary: List user_auto_login
      tags:
        - Resources
      security:
        -
          BearerAuth: []
      parameters:
        -
          name: page
          in: query
          schema:
            type: integer
            default: 1
        -
          name: per_page
          in: query
          schema:
            type: integer
            default: 25
            maximum: 1000
        -
          name: sort
          in: query
          schema:
            type: string
          description: 'Comma-separated fields, prefix - for DESC'
        -
          name: fields
          in: query
          schema:
            type: string
          description: Comma-separated field names (sparse fieldset)
      responses:
        '200':
          description: OK
        '401':
          description: Unauthorized
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/ProblemDetails'
        '403':
          description: Forbidden
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/ProblemDetails'
        '429':
          description: Rate limit exceeded
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/ProblemDetails'
    post:
      operationId: createUserAutoLogin
      summary: Create user_auto_login
      tags:
        - Resources
      security:
        -
          BearerAuth: []
      requestBody:
        required: true
        content:
          application/json:
            schema:
              type: object
              properties:
                key_id:
                  type: string
                user_id:
                  type: integer
                user_agent:
                  type: string
                staff:
                  type: integer
              required:
                - key_id
                - user_id
                - user_agent
                - staff
      responses:
        '201':
          description: Created
        '401':
          description: Unauthorized
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/ProblemDetails'
        '403':
          description: Forbidden
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/ProblemDetails'
        '429':
          description: Rate limit exceeded
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/ProblemDetails'
  /user_auto_login/{id}:
    get:
      operationId: getUserAutoLoginById
      summary: Get user_auto_login by ID
      tags:
        - Resources
      security:
        -
          BearerAuth: []
      parameters:
        -
          name: id
          in: path
          required: true
          schema:
            type: integer
      responses:
        '200':
          description: OK
        '401':
          description: Unauthorized
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/ProblemDetails'
        '403':
          description: Forbidden
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/ProblemDetails'
        '429':
          description: Rate limit exceeded
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/ProblemDetails'
    put:
      operationId: updateUserAutoLogin
      summary: Update user_auto_login
      tags:
        - Resources
      security:
        -
          BearerAuth: []
      parameters:
        -
          name: id
          in: path
          required: true
          schema:
            type: integer
      requestBody:
        required: true
        content:
          application/json:
            schema:
              type: object
              properties:
                key_id:
                  type: string
                user_id:
                  type: integer
                user_agent:
                  type: string
                staff:
                  type: integer
              additionalProperties: true
      responses:
        '200':
          description: OK
        '401':
          description: Unauthorized
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/ProblemDetails'
        '403':
          description: Forbidden
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/ProblemDetails'
        '429':
          description: Rate limit exceeded
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/ProblemDetails'
    delete:
      operationId: deleteUserAutoLogin
      summary: Delete user_auto_login
      tags:
        - Resources
      security:
        -
          BearerAuth: []
      parameters:
        -
          name: id
          in: path
          required: true
          schema:
            type: integer
      responses:
        '200':
          description: Deleted
        '401':
          description: Unauthorized
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/ProblemDetails'
        '403':
          description: Forbidden
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/ProblemDetails'
        '429':
          description: Rate limit exceeded
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/ProblemDetails'
  /user_auto_login/schema:
    get:
      operationId: schemaUserAutoLogin
      summary: Schema of user_auto_login
      tags:
        - Resources
      security:
        -
          BearerAuth: []
      responses:
        '200':
          description: OK
        '401':
          description: Unauthorized
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/ProblemDetails'
        '403':
          description: Forbidden
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/ProblemDetails'
        '429':
          description: Rate limit exceeded
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/ProblemDetails'
  /user_meta:
    get:
      operationId: listUserMeta
      summary: List user_meta
      tags:
        - Resources
      security:
        -
          BearerAuth: []
      parameters:
        -
          name: page
          in: query
          schema:
            type: integer
            default: 1
        -
          name: per_page
          in: query
          schema:
            type: integer
            default: 25
            maximum: 1000
        -
          name: sort
          in: query
          schema:
            type: string
          description: 'Comma-separated fields, prefix - for DESC'
        -
          name: fields
          in: query
          schema:
            type: string
          description: Comma-separated field names (sparse fieldset)
      responses:
        '200':
          description: OK
        '401':
          description: Unauthorized
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/ProblemDetails'
        '403':
          description: Forbidden
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/ProblemDetails'
        '429':
          description: Rate limit exceeded
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/ProblemDetails'
    post:
      operationId: createUserMeta
      summary: Create user_meta
      tags:
        - Resources
      security:
        -
          BearerAuth: []
      requestBody:
        required: true
        content:
          application/json:
            schema:
              type: object
              properties:
                staff_id:
                  type: integer
                client_id:
                  type: integer
                contact_id:
                  type: integer
                meta_key:
                  type: string
                meta_value:
                  type: string
      responses:
        '201':
          description: Created
        '401':
          description: Unauthorized
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/ProblemDetails'
        '403':
          description: Forbidden
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/ProblemDetails'
        '429':
          description: Rate limit exceeded
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/ProblemDetails'
  /user_meta/{id}:
    get:
      operationId: getUserMetaById
      summary: Get user_meta by ID
      tags:
        - Resources
      security:
        -
          BearerAuth: []
      parameters:
        -
          name: id
          in: path
          required: true
          schema:
            type: integer
      responses:
        '200':
          description: OK
        '401':
          description: Unauthorized
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/ProblemDetails'
        '403':
          description: Forbidden
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/ProblemDetails'
        '429':
          description: Rate limit exceeded
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/ProblemDetails'
    put:
      operationId: updateUserMeta
      summary: Update user_meta
      tags:
        - Resources
      security:
        -
          BearerAuth: []
      parameters:
        -
          name: id
          in: path
          required: true
          schema:
            type: integer
      requestBody:
        required: true
        content:
          application/json:
            schema:
              type: object
              properties:
                staff_id:
                  type: integer
                client_id:
                  type: integer
                contact_id:
                  type: integer
                meta_key:
                  type: string
                meta_value:
                  type: string
              additionalProperties: true
      responses:
        '200':
          description: OK
        '401':
          description: Unauthorized
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/ProblemDetails'
        '403':
          description: Forbidden
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/ProblemDetails'
        '429':
          description: Rate limit exceeded
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/ProblemDetails'
    delete:
      operationId: deleteUserMeta
      summary: Delete user_meta
      tags:
        - Resources
      security:
        -
          BearerAuth: []
      parameters:
        -
          name: id
          in: path
          required: true
          schema:
            type: integer
      responses:
        '200':
          description: Deleted
        '401':
          description: Unauthorized
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/ProblemDetails'
        '403':
          description: Forbidden
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/ProblemDetails'
        '429':
          description: Rate limit exceeded
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/ProblemDetails'
  /user_meta/schema:
    get:
      operationId: schemaUserMeta
      summary: Schema of user_meta
      tags:
        - Resources
      security:
        -
          BearerAuth: []
      responses:
        '200':
          description: OK
        '401':
          description: Unauthorized
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/ProblemDetails'
        '403':
          description: Forbidden
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/ProblemDetails'
        '429':
          description: Rate limit exceeded
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/ProblemDetails'
  /vault:
    get:
      operationId: listVault
      summary: List vault
      tags:
        - Resources
      security:
        -
          BearerAuth: []
      parameters:
        -
          name: page
          in: query
          schema:
            type: integer
            default: 1
        -
          name: per_page
          in: query
          schema:
            type: integer
            default: 25
            maximum: 1000
        -
          name: sort
          in: query
          schema:
            type: string
          description: 'Comma-separated fields, prefix - for DESC'
        -
          name: fields
          in: query
          schema:
            type: string
          description: Comma-separated field names (sparse fieldset)
      responses:
        '200':
          description: OK
        '401':
          description: Unauthorized
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/ProblemDetails'
        '403':
          description: Forbidden
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/ProblemDetails'
        '429':
          description: Rate limit exceeded
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/ProblemDetails'
    post:
      operationId: createVault
      summary: Create vault
      tags:
        - Resources
      security:
        -
          BearerAuth: []
      requestBody:
        required: true
        content:
          application/json:
            schema:
              type: object
              properties:
                customer_id:
                  type: integer
                server_address:
                  type: string
                port:
                  type: integer
                username:
                  type: string
                description:
                  type: string
                creator:
                  type: integer
                creator_name:
                  type: string
                visibility:
                  type: integer
                share_in_projects:
                  type: integer
                last_updated:
                  type: string
                  format: date-time
                  example: '2026-04-01 09:15:30'
                last_updated_from:
                  type: string
                  format: date-time
                  example: '2026-04-01 09:15:30'
              required:
                - customer_id
                - server_address
                - username
                - creator
      responses:
        '201':
          description: Created
        '401':
          description: Unauthorized
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/ProblemDetails'
        '403':
          description: Forbidden
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/ProblemDetails'
        '429':
          description: Rate limit exceeded
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/ProblemDetails'
  /vault/{id}:
    get:
      operationId: getVaultById
      summary: Get vault by ID
      tags:
        - Resources
      security:
        -
          BearerAuth: []
      parameters:
        -
          name: id
          in: path
          required: true
          schema:
            type: integer
      responses:
        '200':
          description: OK
        '401':
          description: Unauthorized
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/ProblemDetails'
        '403':
          description: Forbidden
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/ProblemDetails'
        '429':
          description: Rate limit exceeded
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/ProblemDetails'
    put:
      operationId: updateVault
      summary: Update vault
      tags:
        - Resources
      security:
        -
          BearerAuth: []
      parameters:
        -
          name: id
          in: path
          required: true
          schema:
            type: integer
      requestBody:
        required: true
        content:
          application/json:
            schema:
              type: object
              properties:
                customer_id:
                  type: integer
                server_address:
                  type: string
                port:
                  type: integer
                username:
                  type: string
                description:
                  type: string
                creator:
                  type: integer
                creator_name:
                  type: string
                visibility:
                  type: integer
                share_in_projects:
                  type: integer
                last_updated:
                  type: string
                  format: date-time
                  example: '2026-04-01 09:15:30'
                last_updated_from:
                  type: string
                  format: date-time
                  example: '2026-04-01 09:15:30'
              additionalProperties: true
      responses:
        '200':
          description: OK
        '401':
          description: Unauthorized
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/ProblemDetails'
        '403':
          description: Forbidden
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/ProblemDetails'
        '429':
          description: Rate limit exceeded
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/ProblemDetails'
    delete:
      operationId: deleteVault
      summary: Delete vault
      tags:
        - Resources
      security:
        -
          BearerAuth: []
      parameters:
        -
          name: id
          in: path
          required: true
          schema:
            type: integer
      responses:
        '200':
          description: Deleted
        '401':
          description: Unauthorized
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/ProblemDetails'
        '403':
          description: Forbidden
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/ProblemDetails'
        '429':
          description: Rate limit exceeded
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/ProblemDetails'
  /vault/schema:
    get:
      operationId: schemaVault
      summary: Schema of vault
      tags:
        - Resources
      security:
        -
          BearerAuth: []
      responses:
        '200':
          description: OK
        '401':
          description: Unauthorized
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/ProblemDetails'
        '403':
          description: Forbidden
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/ProblemDetails'
        '429':
          description: Rate limit exceeded
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/ProblemDetails'
  /views_tracking:
    get:
      operationId: listViewsTracking
      summary: List views_tracking
      tags:
        - Resources
      security:
        -
          BearerAuth: []
      parameters:
        -
          name: page
          in: query
          schema:
            type: integer
            default: 1
        -
          name: per_page
          in: query
          schema:
            type: integer
            default: 25
            maximum: 1000
        -
          name: sort
          in: query
          schema:
            type: string
          description: 'Comma-separated fields, prefix - for DESC'
        -
          name: fields
          in: query
          schema:
            type: string
          description: Comma-separated field names (sparse fieldset)
      responses:
        '200':
          description: OK
        '401':
          description: Unauthorized
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/ProblemDetails'
        '403':
          description: Forbidden
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/ProblemDetails'
        '429':
          description: Rate limit exceeded
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/ProblemDetails'
    post:
      operationId: createViewsTracking
      summary: Create views_tracking
      tags:
        - Resources
      security:
        -
          BearerAuth: []
      requestBody:
        required: true
        content:
          application/json:
            schema:
              type: object
              properties:
                rel_id:
                  type: integer
                rel_type:
                  type: string
                date:
                  type: string
                  format: date-time
                  example: '2026-04-01 09:15:30'
                view_ip:
                  type: string
              required:
                - rel_id
                - rel_type
                - date
                - view_ip
      responses:
        '201':
          description: Created
        '401':
          description: Unauthorized
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/ProblemDetails'
        '403':
          description: Forbidden
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/ProblemDetails'
        '429':
          description: Rate limit exceeded
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/ProblemDetails'
  /views_tracking/{id}:
    get:
      operationId: getViewsTrackingById
      summary: Get views_tracking by ID
      tags:
        - Resources
      security:
        -
          BearerAuth: []
      parameters:
        -
          name: id
          in: path
          required: true
          schema:
            type: integer
      responses:
        '200':
          description: OK
        '401':
          description: Unauthorized
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/ProblemDetails'
        '403':
          description: Forbidden
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/ProblemDetails'
        '429':
          description: Rate limit exceeded
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/ProblemDetails'
    put:
      operationId: updateViewsTracking
      summary: Update views_tracking
      tags:
        - Resources
      security:
        -
          BearerAuth: []
      parameters:
        -
          name: id
          in: path
          required: true
          schema:
            type: integer
      requestBody:
        required: true
        content:
          application/json:
            schema:
              type: object
              properties:
                rel_id:
                  type: integer
                rel_type:
                  type: string
                date:
                  type: string
                  format: date-time
                  example: '2026-04-01 09:15:30'
                view_ip:
                  type: string
              additionalProperties: true
      responses:
        '200':
          description: OK
        '401':
          description: Unauthorized
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/ProblemDetails'
        '403':
          description: Forbidden
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/ProblemDetails'
        '429':
          description: Rate limit exceeded
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/ProblemDetails'
    delete:
      operationId: deleteViewsTracking
      summary: Delete views_tracking
      tags:
        - Resources
      security:
        -
          BearerAuth: []
      parameters:
        -
          name: id
          in: path
          required: true
          schema:
            type: integer
      responses:
        '200':
          description: Deleted
        '401':
          description: Unauthorized
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/ProblemDetails'
        '403':
          description: Forbidden
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/ProblemDetails'
        '429':
          description: Rate limit exceeded
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/ProblemDetails'
  /views_tracking/schema:
    get:
      operationId: schemaViewsTracking
      summary: Schema of views_tracking
      tags:
        - Resources
      security:
        -
          BearerAuth: []
      responses:
        '200':
          description: OK
        '401':
          description: Unauthorized
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/ProblemDetails'
        '403':
          description: Forbidden
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/ProblemDetails'
        '429':
          description: Rate limit exceeded
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/ProblemDetails'
  /web_to_lead:
    get:
      operationId: listWebToLead
      summary: List web_to_lead
      tags:
        - Resources
      security:
        -
          BearerAuth: []
      parameters:
        -
          name: page
          in: query
          schema:
            type: integer
            default: 1
        -
          name: per_page
          in: query
          schema:
            type: integer
            default: 25
            maximum: 1000
        -
          name: sort
          in: query
          schema:
            type: string
          description: 'Comma-separated fields, prefix - for DESC'
        -
          name: fields
          in: query
          schema:
            type: string
          description: Comma-separated field names (sparse fieldset)
      responses:
        '200':
          description: OK
        '401':
          description: Unauthorized
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/ProblemDetails'
        '403':
          description: Forbidden
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/ProblemDetails'
        '429':
          description: Rate limit exceeded
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/ProblemDetails'
    post:
      operationId: createWebToLead
      summary: Create web_to_lead
      tags:
        - Resources
      security:
        -
          BearerAuth: []
      requestBody:
        required: true
        content:
          application/json:
            schema:
              type: object
              properties:
                form_key:
                  type: string
                lead_source:
                  type: integer
                lead_status:
                  type: integer
                notify_lead_imported:
                  type: integer
                notify_type:
                  type: string
                notify_ids:
                  type: string
                responsible:
                  type: integer
                name:
                  type: string
                form_data:
                  type: string
                recaptcha:
                  type: integer
                submit_btn_name:
                  type: string
                submit_btn_text_color:
                  type: string
                submit_btn_bg_color:
                  type: string
                success_submit_msg:
                  type: string
                submit_action:
                  type: integer
                lead_name_prefix:
                  type: string
                submit_redirect_url:
                  type: string
                language:
                  type: string
                allow_duplicate:
                  type: integer
                mark_public:
                  type: integer
                track_duplicate_field:
                  type: string
                track_duplicate_field_and:
                  type: string
                create_task_on_duplicate:
                  type: integer
              required:
                - form_key
                - lead_source
                - lead_status
                - name
      responses:
        '201':
          description: Created
        '401':
          description: Unauthorized
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/ProblemDetails'
        '403':
          description: Forbidden
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/ProblemDetails'
        '429':
          description: Rate limit exceeded
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/ProblemDetails'
  /web_to_lead/{id}:
    get:
      operationId: getWebToLeadById
      summary: Get web_to_lead by ID
      tags:
        - Resources
      security:
        -
          BearerAuth: []
      parameters:
        -
          name: id
          in: path
          required: true
          schema:
            type: integer
      responses:
        '200':
          description: OK
        '401':
          description: Unauthorized
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/ProblemDetails'
        '403':
          description: Forbidden
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/ProblemDetails'
        '429':
          description: Rate limit exceeded
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/ProblemDetails'
    put:
      operationId: updateWebToLead
      summary: Update web_to_lead
      tags:
        - Resources
      security:
        -
          BearerAuth: []
      parameters:
        -
          name: id
          in: path
          required: true
          schema:
            type: integer
      requestBody:
        required: true
        content:
          application/json:
            schema:
              type: object
              properties:
                form_key:
                  type: string
                lead_source:
                  type: integer
                lead_status:
                  type: integer
                notify_lead_imported:
                  type: integer
                notify_type:
                  type: string
                notify_ids:
                  type: string
                responsible:
                  type: integer
                name:
                  type: string
                form_data:
                  type: string
                recaptcha:
                  type: integer
                submit_btn_name:
                  type: string
                submit_btn_text_color:
                  type: string
                submit_btn_bg_color:
                  type: string
                success_submit_msg:
                  type: string
                submit_action:
                  type: integer
                lead_name_prefix:
                  type: string
                submit_redirect_url:
                  type: string
                language:
                  type: string
                allow_duplicate:
                  type: integer
                mark_public:
                  type: integer
                track_duplicate_field:
                  type: string
                track_duplicate_field_and:
                  type: string
                create_task_on_duplicate:
                  type: integer
              additionalProperties: true
      responses:
        '200':
          description: OK
        '401':
          description: Unauthorized
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/ProblemDetails'
        '403':
          description: Forbidden
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/ProblemDetails'
        '429':
          description: Rate limit exceeded
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/ProblemDetails'
    delete:
      operationId: deleteWebToLead
      summary: Delete web_to_lead
      tags:
        - Resources
      security:
        -
          BearerAuth: []
      parameters:
        -
          name: id
          in: path
          required: true
          schema:
            type: integer
      responses:
        '200':
          description: Deleted
        '401':
          description: Unauthorized
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/ProblemDetails'
        '403':
          description: Forbidden
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/ProblemDetails'
        '429':
          description: Rate limit exceeded
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/ProblemDetails'
  /web_to_lead/schema:
    get:
      operationId: schemaWebToLead
      summary: Schema of web_to_lead
      tags:
        - Resources
      security:
        -
          BearerAuth: []
      responses:
        '200':
          description: OK
        '401':
          description: Unauthorized
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/ProblemDetails'
        '403':
          description: Forbidden
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/ProblemDetails'
        '429':
          description: Rate limit exceeded
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/ProblemDetails'
  /milestones:
    get:
      operationId: listMilestones
      summary: List milestones
      tags:
        - Resources
      security:
        -
          BearerAuth: []
      parameters:
        -
          name: page
          in: query
          schema:
            type: integer
            default: 1
        -
          name: per_page
          in: query
          schema:
            type: integer
            default: 25
            maximum: 1000
        -
          name: sort
          in: query
          schema:
            type: string
          description: 'Comma-separated fields, prefix - for DESC'
        -
          name: fields
          in: query
          schema:
            type: string
          description: Comma-separated field names (sparse fieldset)
      responses:
        '200':
          description: OK
        '401':
          description: Unauthorized
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/ProblemDetails'
        '403':
          description: Forbidden
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/ProblemDetails'
        '429':
          description: Rate limit exceeded
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/ProblemDetails'
    post:
      operationId: createMilestones
      summary: Create milestones
      tags:
        - Resources
      security:
        -
          BearerAuth: []
      requestBody:
        required: true
        content:
          application/json:
            schema:
              type: object
              properties:
                name:
                  type: string
                description:
                  type: string
                description_visible_to_customer:
                  type: integer
                start_date:
                  type: string
                  format: date-time
                  example: '2026-04-01 09:15:30'
                due_date:
                  type: string
                  format: date-time
                  example: '2026-04-01 09:15:30'
                project_id:
                  type: integer
                color:
                  type: string
                milestone_order:
                  type: integer
                hide_from_customer:
                  type: integer
              required:
                - name
                - due_date
                - project_id
      responses:
        '201':
          description: Created
        '401':
          description: Unauthorized
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/ProblemDetails'
        '403':
          description: Forbidden
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/ProblemDetails'
        '429':
          description: Rate limit exceeded
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/ProblemDetails'
  /milestones/{id}:
    get:
      operationId: getMilestonesById
      summary: Get milestones by ID
      tags:
        - Resources
      security:
        -
          BearerAuth: []
      parameters:
        -
          name: id
          in: path
          required: true
          schema:
            type: integer
      responses:
        '200':
          description: OK
        '401':
          description: Unauthorized
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/ProblemDetails'
        '403':
          description: Forbidden
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/ProblemDetails'
        '429':
          description: Rate limit exceeded
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/ProblemDetails'
    put:
      operationId: updateMilestones
      summary: Update milestones
      tags:
        - Resources
      security:
        -
          BearerAuth: []
      parameters:
        -
          name: id
          in: path
          required: true
          schema:
            type: integer
      requestBody:
        required: true
        content:
          application/json:
            schema:
              type: object
              properties:
                name:
                  type: string
                description:
                  type: string
                description_visible_to_customer:
                  type: integer
                start_date:
                  type: string
                  format: date-time
                  example: '2026-04-01 09:15:30'
                due_date:
                  type: string
                  format: date-time
                  example: '2026-04-01 09:15:30'
                project_id:
                  type: integer
                color:
                  type: string
                milestone_order:
                  type: integer
                hide_from_customer:
                  type: integer
              additionalProperties: true
      responses:
        '200':
          description: OK
        '401':
          description: Unauthorized
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/ProblemDetails'
        '403':
          description: Forbidden
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/ProblemDetails'
        '429':
          description: Rate limit exceeded
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/ProblemDetails'
    delete:
      operationId: deleteMilestones
      summary: Delete milestones
      tags:
        - Resources
      security:
        -
          BearerAuth: []
      parameters:
        -
          name: id
          in: path
          required: true
          schema:
            type: integer
      responses:
        '200':
          description: Deleted
        '401':
          description: Unauthorized
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/ProblemDetails'
        '403':
          description: Forbidden
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/ProblemDetails'
        '429':
          description: Rate limit exceeded
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/ProblemDetails'
  /milestones/schema:
    get:
      operationId: schemaMilestones
      summary: Schema of milestones
      tags:
        - Resources
      security:
        -
          BearerAuth: []
      responses:
        '200':
          description: OK
        '401':
          description: Unauthorized
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/ProblemDetails'
        '403':
          description: Forbidden
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/ProblemDetails'
        '429':
          description: Rate limit exceeded
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/ProblemDetails'
  /graphql:
    post:
      operationId: executeGraphQL
      summary: GraphQL endpoint
      tags:
        - GraphQL
      security:
        -
          BearerAuth: []
      requestBody:
        required: true
        content:
          application/json:
            schema:
              type: object
              properties:
                query:
                  type: string
                variables:
                  type: object
                operationName:
                  type: string
              required:
                - query
      responses:
        '200':
          description: GraphQL response
        '401':
          description: Unauthorized
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/ProblemDetails'
        '403':
          description: Forbidden
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/ProblemDetails'
        '429':
          description: Rate limit exceeded
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/ProblemDetails'
