openapi: 3.1.0
info:
  title: API Reference
  version: 1.0.0
paths:
  /api/activity-logs/:
    get:
      operationId: list
      summary: ✨ Get activity logs
      description: |-
        <Card href="https://humansignal.com/goenterprise">
                <img style="pointer-events: none; margin-left: 0px; margin-right: 0px;" src="https://docs.humansignal.com/images/badge.svg" alt="Label Studio Enterprise badge"/>
                <p style="margin-top: 10px; font-size: 14px;">
                    This endpoint is not available in Label Studio Community Edition. [Learn more about Label Studio Enterprise](https://humansignal.com/goenterprise)
                </p>
            </Card>
        Retrieve activity logs filtered by workspace, project, user, HTTP method, date range or search query.
      tags:
        - subpackage_activityLogs
      parameters:
        - name: end_date
          in: query
          description: End date/time (ISO-8601) for log filtering.
          required: false
          schema:
            type: string
        - name: method
          in: query
          description: HTTP request method used in the log.
          required: false
          schema:
            $ref: '#/components/schemas/ApiActivityLogsGetParametersMethod'
        - name: ordering
          in: query
          description: Which field to use when ordering the results.
          required: false
          schema:
            type: string
        - name: page
          in: query
          description: '[or "start"] Current page index.'
          required: false
          schema:
            type: integer
        - name: page_size
          in: query
          description: '[or "length"] Logs per page, use -1 to obtain all logs (might be slow).'
          required: false
          schema:
            type: integer
        - name: project
          in: query
          description: Project ID to filter logs.
          required: false
          schema:
            type: integer
        - name: search
          in: query
          description: Search expression using "AND"/"OR" to filter by request URL.
          required: false
          schema:
            type: string
        - name: start_date
          in: query
          description: Start date/time (ISO-8601) for log filtering.
          required: false
          schema:
            type: string
        - name: user
          in: query
          description: User ID to filter logs.
          required: false
          schema:
            type: integer
        - name: workspace
          in: query
          description: Workspace owner ID to filter logs.
          required: false
          schema:
            type: integer
        - name: Authorization
          in: header
          description: >-
            The token (or API key) must be passed as a request header. You can find your user token on the User Account
            page in Label Studio. Example: <br><pre><code class="language-bash">curl
            https://label-studio-host/api/projects -H "Authorization: Token [your-token]"</code></pre>
          required: true
          schema:
            type: string
      responses:
        '200':
          description: Activity logs
          content:
            application/json:
              schema:
                type: array
                items:
                  $ref: '#/components/schemas/ActivityLogResponse'
        '404':
          description: No more logs found
          content:
            application/json:
              schema:
                description: Any type
  /api/annotation-history/:
    get:
      operationId: list
      summary: ✨ List all annotation history items for annotation
      description: >-
        <Card href="https://humansignal.com/goenterprise">
                <img style="pointer-events: none; margin-left: 0px; margin-right: 0px;" src="https://docs.humansignal.com/images/badge.svg" alt="Label Studio Enterprise badge"/>
                <p style="margin-top: 10px; font-size: 14px;">
                    This endpoint is not available in Label Studio Community Edition. [Learn more about Label Studio Enterprise](https://humansignal.com/goenterprise)
                </p>
            </Card>
        List annotation history items for an annotation. Annotation history logs all actions performed with annotations,
        such as: imports, submits, updates, reviews, and more. Users can view annotation history items in the Annotation
        History panel during labeling.
      tags:
        - subpackage_annotationHistory
      parameters:
        - name: annotation
          in: query
          description: Annotation ID to get annotation history items for.
          required: false
          schema:
            type: integer
        - name: ordering
          in: query
          description: Which field to use when ordering the results.
          required: false
          schema:
            type: string
        - name: Authorization
          in: header
          description: >-
            The token (or API key) must be passed as a request header. You can find your user token on the User Account
            page in Label Studio. Example: <br><pre><code class="language-bash">curl
            https://label-studio-host/api/projects -H "Authorization: Token [your-token]"</code></pre>
          required: true
          schema:
            type: string
      responses:
        '200':
          description: ''
          content:
            application/json:
              schema:
                type: array
                items:
                  $ref: '#/components/schemas/AnnotationHistory'
    delete:
      operationId: delete
      summary: ✨ Delete annotation history items
      description: >-
        <Card href="https://humansignal.com/goenterprise">
                <img style="pointer-events: none; margin-left: 0px; margin-right: 0px;" src="https://docs.humansignal.com/images/badge.svg" alt="Label Studio Enterprise badge"/>
                <p style="margin-top: 10px; font-size: 14px;">
                    This endpoint is not available in Label Studio Community Edition. [Learn more about Label Studio Enterprise](https://humansignal.com/goenterprise)
                </p>
            </Card>
        Delete all annotation history items for a specific annotation, task or project. This method is available only
        for users with administrator roles.
      tags:
        - subpackage_annotationHistory
      parameters:
        - name: annotation
          in: query
          description: Annotation ID to delete annotation history items for.
          required: false
          schema:
            type: integer
        - name: project
          in: query
          description: Project ID to delete annotation history items for.
          required: false
          schema:
            type: integer
        - name: task
          in: query
          description: Task ID to delete annotation history items for.
          required: false
          schema:
            type: integer
        - name: Authorization
          in: header
          description: >-
            The token (or API key) must be passed as a request header. You can find your user token on the User Account
            page in Label Studio. Example: <br><pre><code class="language-bash">curl
            https://label-studio-host/api/projects -H "Authorization: Token [your-token]"</code></pre>
          required: true
          schema:
            type: string
      responses:
        '200':
          description: Returns a dict containing the count of removed items.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/annotation_history_delete_Response_200'
  /api/annotation-history/{id}/:
    get:
      operationId: retrieve
      summary: ✨ Retrieve a single annotation history item (full result for hydration)
      description: >-
        <Card href="https://humansignal.com/goenterprise">
                <img style="pointer-events: none; margin-left: 0px; margin-right: 0px;" src="https://docs.humansignal.com/images/badge.svg" alt="Label Studio Enterprise badge"/>
                <p style="margin-top: 10px; font-size: 14px;">
                    This endpoint is not available in Label Studio Community Edition. [Learn more about Label Studio Enterprise](https://humansignal.com/goenterprise)
                </p>
            </Card>
        Get one annotation history item by ID with full result. Used when FIT-720 lazy load is on and the user clicks a
        stubbed history item to hydrate it.
      tags:
        - subpackage_annotationHistory
      parameters:
        - name: id
          in: path
          required: true
          schema:
            type: integer
        - name: Authorization
          in: header
          description: >-
            The token (or API key) must be passed as a request header. You can find your user token on the User Account
            page in Label Studio. Example: <br><pre><code class="language-bash">curl
            https://label-studio-host/api/projects -H "Authorization: Token [your-token]"</code></pre>
          required: true
          schema:
            type: string
      responses:
        '200':
          description: ''
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/AnnotationHistory'
  /api/projects/{id}/annotation-history/:
    get:
      operationId: list-for-project
      summary: ✨ List annotation history items for project
      description: |-
        <Card href="https://humansignal.com/goenterprise">
                <img style="pointer-events: none; margin-left: 0px; margin-right: 0px;" src="https://docs.humansignal.com/images/badge.svg" alt="Label Studio Enterprise badge"/>
                <p style="margin-top: 10px; font-size: 14px;">
                    This endpoint is not available in Label Studio Community Edition. [Learn more about Label Studio Enterprise](https://humansignal.com/goenterprise)
                </p>
            </Card>
        List all annotation history items for the project with pagination.
      tags:
        - subpackage_annotationHistory
      parameters:
        - name: id
          in: path
          required: true
          schema:
            type: integer
        - name: page
          in: query
          description: A page number within the paginated result set.
          required: false
          schema:
            type: integer
        - name: page_size
          in: query
          description: Number of results to return per page.
          required: false
          schema:
            type: integer
        - name: Authorization
          in: header
          description: >-
            The token (or API key) must be passed as a request header. You can find your user token on the User Account
            page in Label Studio. Example: <br><pre><code class="language-bash">curl
            https://label-studio-host/api/projects -H "Authorization: Token [your-token]"</code></pre>
          required: true
          schema:
            type: string
      responses:
        '200':
          description: ''
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/PaginatedAnnotationHistoryList'
  /api/annotation-reviews/:
    get:
      operationId: list
      summary: ✨ List reviews
      description: |-
        <Card href="https://humansignal.com/goenterprise">
                <img style="pointer-events: none; margin-left: 0px; margin-right: 0px;" src="https://docs.humansignal.com/images/badge.svg" alt="Label Studio Enterprise badge"/>
                <p style="margin-top: 10px; font-size: 14px;">
                    This endpoint is not available in Label Studio Community Edition. [Learn more about Label Studio Enterprise](https://humansignal.com/goenterprise)
                </p>
            </Card>
        List all reviews for a specific annotation ID. Only allowed for organizations with reviewing features enabled.
      tags:
        - subpackage_annotationReviews
      parameters:
        - name: annotation
          in: query
          required: false
          schema:
            type: integer
        - name: annotation__task__project
          in: query
          required: false
          schema:
            type: integer
        - name: ordering
          in: query
          description: Which field to use when ordering the results.
          required: false
          schema:
            type: string
        - name: Authorization
          in: header
          description: >-
            The token (or API key) must be passed as a request header. You can find your user token on the User Account
            page in Label Studio. Example: <br><pre><code class="language-bash">curl
            https://label-studio-host/api/projects -H "Authorization: Token [your-token]"</code></pre>
          required: true
          schema:
            type: string
      responses:
        '200':
          description: ''
          content:
            application/json:
              schema:
                type: array
                items:
                  $ref: '#/components/schemas/AnnotationReview'
    post:
      operationId: create
      summary: ✨ Create review
      description: |-
        <Card href="https://humansignal.com/goenterprise">
                <img style="pointer-events: none; margin-left: 0px; margin-right: 0px;" src="https://docs.humansignal.com/images/badge.svg" alt="Label Studio Enterprise badge"/>
                <p style="margin-top: 10px; font-size: 14px;">
                    This endpoint is not available in Label Studio Community Edition. [Learn more about Label Studio Enterprise](https://humansignal.com/goenterprise)
                </p>
            </Card>
        Create a review for a specific annotation ID. Only allowed for organizations with reviewing features enabled.
      tags:
        - subpackage_annotationReviews
      parameters:
        - name: async_postprocess
          in: query
          description: Whether to postprocess the review asynchronously.
          required: false
          schema:
            type: boolean
        - name: Authorization
          in: header
          description: >-
            The token (or API key) must be passed as a request header. You can find your user token on the User Account
            page in Label Studio. Example: <br><pre><code class="language-bash">curl
            https://label-studio-host/api/projects -H "Authorization: Token [your-token]"</code></pre>
          required: true
          schema:
            type: string
      responses:
        '201':
          description: ''
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/AnnotationReview'
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/AnnotationReviewRequest'
  /api/annotation-reviews/{id}/:
    get:
      operationId: get
      summary: ✨ Get review
      description: >-
        <Card href="https://humansignal.com/goenterprise">
                <img style="pointer-events: none; margin-left: 0px; margin-right: 0px;" src="https://docs.humansignal.com/images/badge.svg" alt="Label Studio Enterprise badge"/>
                <p style="margin-top: 10px; font-size: 14px;">
                    This endpoint is not available in Label Studio Community Edition. [Learn more about Label Studio Enterprise](https://humansignal.com/goenterprise)
                </p>
            </Card>
        Retrieve a specific review by ID for an annotation. Only allowed for organizations with reviewing features
        enabled.
      tags:
        - subpackage_annotationReviews
      parameters:
        - name: id
          in: path
          description: A unique integer value identifying this annotation review.
          required: true
          schema:
            type: integer
        - name: Authorization
          in: header
          description: >-
            The token (or API key) must be passed as a request header. You can find your user token on the User Account
            page in Label Studio. Example: <br><pre><code class="language-bash">curl
            https://label-studio-host/api/projects -H "Authorization: Token [your-token]"</code></pre>
          required: true
          schema:
            type: string
      responses:
        '200':
          description: ''
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/AnnotationReview'
    delete:
      operationId: delete
      summary: ✨ Delete review
      description: |-
        <Card href="https://humansignal.com/goenterprise">
                <img style="pointer-events: none; margin-left: 0px; margin-right: 0px;" src="https://docs.humansignal.com/images/badge.svg" alt="Label Studio Enterprise badge"/>
                <p style="margin-top: 10px; font-size: 14px;">
                    This endpoint is not available in Label Studio Community Edition. [Learn more about Label Studio Enterprise](https://humansignal.com/goenterprise)
                </p>
            </Card>
        Delete a review by ID. Only allowed for organizations with reviewing features enabled.
      tags:
        - subpackage_annotationReviews
      parameters:
        - name: id
          in: path
          description: A unique integer value identifying this annotation review.
          required: true
          schema:
            type: integer
        - name: Authorization
          in: header
          description: >-
            The token (or API key) must be passed as a request header. You can find your user token on the User Account
            page in Label Studio. Example: <br><pre><code class="language-bash">curl
            https://label-studio-host/api/projects -H "Authorization: Token [your-token]"</code></pre>
          required: true
          schema:
            type: string
      responses:
        '200':
          description: Successful response
    patch:
      operationId: update
      summary: ✨ Update review
      description: |-
        <Card href="https://humansignal.com/goenterprise">
                <img style="pointer-events: none; margin-left: 0px; margin-right: 0px;" src="https://docs.humansignal.com/images/badge.svg" alt="Label Studio Enterprise badge"/>
                <p style="margin-top: 10px; font-size: 14px;">
                    This endpoint is not available in Label Studio Community Edition. [Learn more about Label Studio Enterprise](https://humansignal.com/goenterprise)
                </p>
            </Card>
        Update a specific review by ID. Only allowed for organizations with reviewing features enabled.
      tags:
        - subpackage_annotationReviews
      parameters:
        - name: id
          in: path
          description: A unique integer value identifying this annotation review.
          required: true
          schema:
            type: integer
        - name: Authorization
          in: header
          description: >-
            The token (or API key) must be passed as a request header. You can find your user token on the User Account
            page in Label Studio. Example: <br><pre><code class="language-bash">curl
            https://label-studio-host/api/projects -H "Authorization: Token [your-token]"</code></pre>
          required: true
          schema:
            type: string
      responses:
        '200':
          description: ''
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/AnnotationReview'
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/PatchedAnnotationReviewRequest'
  /api/annotations/bulk-delete/:
    post:
      operationId: delete-bulk
      summary: Bulk delete annotations by IDs
      description: >-
        Delete multiple annotations by their IDs. The deletion is processed synchronously. Returns the count of deleted
        annotations in the response.
      tags:
        - subpackage_annotations
      parameters:
        - name: Authorization
          in: header
          description: >-
            The token (or API key) must be passed as a request header. You can find your user token on the User Account
            page in Label Studio. Example: <br><pre><code class="language-bash">curl
            https://label-studio-host/api/projects -H "Authorization: Token [your-token]"</code></pre>
          required: true
          schema:
            type: string
      responses:
        '200':
          description: Annotations deleted successfully
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/annotations_delete_bulk_Response_200'
        '400':
          description: Bad request - validation errors
          content:
            application/json:
              schema:
                description: Any type
        '403':
          description: Forbidden - insufficient permissions
          content:
            application/json:
              schema:
                description: Any type
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/AnnotationBulkDeleteRequest'
  /api/annotations/bulk/:
    post:
      operationId: create-bulk
      summary: Bulk create annotations
      description: Create multiple annotations at once
      tags:
        - subpackage_annotations
      parameters:
        - name: Authorization
          in: header
          description: >-
            The token (or API key) must be passed as a request header. You can find your user token on the User Account
            page in Label Studio. Example: <br><pre><code class="language-bash">curl
            https://label-studio-host/api/projects -H "Authorization: Token [your-token]"</code></pre>
          required: true
          schema:
            type: string
      responses:
        '201':
          description: Bulk annotations created successfully
          content:
            application/json:
              schema:
                type: array
                items:
                  $ref: '#/components/schemas/ApiAnnotationsBulkPostResponsesContentApplicationJsonSchemaItems'
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/AnnotationBulkSerializerWithSelectedItemsRequest'
  /api/annotations/{id}/:
    get:
      operationId: get
      summary: Get annotation by its ID
      description: Retrieve a specific annotation for a task using the annotation result ID.
      tags:
        - subpackage_annotations
      parameters:
        - name: id
          in: path
          required: true
          schema:
            type: integer
        - name: Authorization
          in: header
          description: >-
            The token (or API key) must be passed as a request header. You can find your user token on the User Account
            page in Label Studio. Example: <br><pre><code class="language-bash">curl
            https://label-studio-host/api/projects -H "Authorization: Token [your-token]"</code></pre>
          required: true
          schema:
            type: string
      responses:
        '200':
          description: Retrieved annotation
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Annotation'
    delete:
      operationId: delete
      summary: Delete annotation
      description: Delete an annotation. This action can't be undone!
      tags:
        - subpackage_annotations
      parameters:
        - name: id
          in: path
          required: true
          schema:
            type: integer
        - name: Authorization
          in: header
          description: >-
            The token (or API key) must be passed as a request header. You can find your user token on the User Account
            page in Label Studio. Example: <br><pre><code class="language-bash">curl
            https://label-studio-host/api/projects -H "Authorization: Token [your-token]"</code></pre>
          required: true
          schema:
            type: string
      responses:
        '200':
          description: Successful response
    patch:
      operationId: update
      summary: Update annotation
      description: Update existing attributes on an annotation.
      tags:
        - subpackage_annotations
      parameters:
        - name: id
          in: path
          required: true
          schema:
            type: integer
        - name: Authorization
          in: header
          description: >-
            The token (or API key) must be passed as a request header. You can find your user token on the User Account
            page in Label Studio. Example: <br><pre><code class="language-bash">curl
            https://label-studio-host/api/projects -H "Authorization: Token [your-token]"</code></pre>
          required: true
          schema:
            type: string
      responses:
        '200':
          description: Updated annotation
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Annotation'
      requestBody:
        content:
          application/json:
            schema:
              type: object
              properties:
                completed_by:
                  type: integer
                  description: User ID of the person who created this annotation
                ground_truth:
                  type: boolean
                  description: This annotation is a Ground Truth
                lead_time:
                  type: number
                  format: double
                  description: How much time it took to annotate the task (in seconds)
                project:
                  type: integer
                  description: Project ID for this annotation
                result:
                  type: array
                  items:
                    $ref: '#/components/schemas/ApiAnnotationsIdPatchRequestBodyContentApplicationJsonSchemaResultItems'
                  description: >-
                    Labeling result in JSON format. Read more about the format in [the Label Studio
                    documentation.](https://labelstud.io/guide/task_format)
                task:
                  type: integer
                  description: Corresponding task for this annotation
                updated_by:
                  type: integer
                  description: Last user who updated this annotation
                was_cancelled:
                  type: boolean
                  description: User skipped the task
  /api/tasks/{id}/annotations/:
    get:
      operationId: list
      summary: Get all task annotations
      description: List all annotations for a task.
      tags:
        - subpackage_annotations
      parameters:
        - name: id
          in: path
          description: Task ID
          required: true
          schema:
            type: integer
        - name: ordering
          in: query
          description: Which field to use when ordering the results.
          required: false
          schema:
            type: string
        - name: Authorization
          in: header
          description: >-
            The token (or API key) must be passed as a request header. You can find your user token on the User Account
            page in Label Studio. Example: <br><pre><code class="language-bash">curl
            https://label-studio-host/api/projects -H "Authorization: Token [your-token]"</code></pre>
          required: true
          schema:
            type: string
      responses:
        '200':
          description: Annotation
          content:
            application/json:
              schema:
                type: array
                items:
                  $ref: '#/components/schemas/Annotation'
    post:
      operationId: create
      summary: Create annotation
      description: |2-

                Add annotations to a task like an annotator does. The content of the result field depends on your
                labeling configuration. For example, send the following data as part of your POST
                request to send an empty annotation with the ID of the user who completed the task:

                ```json
                {
                "result": {},
                "was_cancelled": true,
                "ground_truth": true,
                "lead_time": 0,
                "task": 0
                "completed_by": 123
                }
                ```
                
      tags:
        - subpackage_annotations
      parameters:
        - name: id
          in: path
          description: Task ID
          required: true
          schema:
            type: integer
        - name: Authorization
          in: header
          description: >-
            The token (or API key) must be passed as a request header. You can find your user token on the User Account
            page in Label Studio. Example: <br><pre><code class="language-bash">curl
            https://label-studio-host/api/projects -H "Authorization: Token [your-token]"</code></pre>
          required: true
          schema:
            type: string
      responses:
        '201':
          description: Created annotation
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Annotation'
      requestBody:
        content:
          application/json:
            schema:
              type: object
              properties:
                completed_by:
                  type: integer
                  description: User ID of the person who created this annotation
                ground_truth:
                  type: boolean
                  description: This annotation is a Ground Truth
                lead_time:
                  type: number
                  format: double
                  description: How much time it took to annotate the task (in seconds)
                project:
                  type: integer
                  description: Project ID for this annotation
                result:
                  type: array
                  items:
                    $ref: '#/components/schemas/ApiTasksIdAnnotationsPostRequestBodyContentApplicationJsonSchemaResultItems'
                  description: >-
                    Labeling result in JSON format. Read more about the format in [the Label Studio
                    documentation.](https://labelstud.io/guide/task_format)
                task:
                  type: integer
                  description: Corresponding task for this annotation
                updated_by:
                  type: integer
                  description: Last user who updated this annotation
                was_cancelled:
                  type: boolean
                  description: User skipped the task
  /api/billing/info:
    get:
      operationId: info
      summary: ✨ Get billing info
      description: |-
        <Card href="https://humansignal.com/goenterprise">
                <img style="pointer-events: none; margin-left: 0px; margin-right: 0px;" src="https://docs.humansignal.com/images/badge.svg" alt="Label Studio Enterprise badge"/>
                <p style="margin-top: 10px; font-size: 14px;">
                    This endpoint is not available in Label Studio Community Edition. [Learn more about Label Studio Enterprise](https://humansignal.com/goenterprise)
                </p>
            </Card>
        Retrieve billing checks and feature flags for the active organization.
      tags:
        - subpackage_billing
      parameters:
        - name: Authorization
          in: header
          description: >-
            The token (or API key) must be passed as a request header. You can find your user token on the User Account
            page in Label Studio. Example: <br><pre><code class="language-bash">curl
            https://label-studio-host/api/projects -H "Authorization: Token [your-token]"</code></pre>
          required: true
          schema:
            type: string
      responses:
        '200':
          description: Billing information for the active organization
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/BillingInfoResponse'
  /api/comments/:
    get:
      operationId: list
      summary: ✨ List comments
      description: |-
        <Card href="https://humansignal.com/goenterprise">
                <img style="pointer-events: none; margin-left: 0px; margin-right: 0px;" src="https://docs.humansignal.com/images/badge.svg" alt="Label Studio Enterprise badge"/>
                <p style="margin-top: 10px; font-size: 14px;">
                    This endpoint is not available in Label Studio Community Edition. [Learn more about Label Studio Enterprise](https://humansignal.com/goenterprise)
                </p>
            </Card>
        List all comments for a specific annotation ID.
      tags:
        - subpackage_comments
      parameters:
        - name: annotation
          in: query
          required: false
          schema:
            type: integer
        - name: annotators
          in: query
          required: false
          schema:
            type: string
        - name: draft
          in: query
          required: false
          schema:
            type: integer
        - name: expand_created_by
          in: query
          required: false
          schema:
            type: boolean
            default: false
        - name: ordering
          in: query
          description: Which field to use when ordering the results.
          required: false
          schema:
            type: string
        - name: projects
          in: query
          required: false
          schema:
            type: string
        - name: Authorization
          in: header
          description: >-
            The token (or API key) must be passed as a request header. You can find your user token on the User Account
            page in Label Studio. Example: <br><pre><code class="language-bash">curl
            https://label-studio-host/api/projects -H "Authorization: Token [your-token]"</code></pre>
          required: true
          schema:
            type: string
      responses:
        '200':
          description: List of comments
          content:
            application/json:
              schema:
                type: array
                items:
                  $ref: '#/components/schemas/MaybeExpandedComment'
    post:
      operationId: create
      summary: ✨ Create comment
      description: |-
        <Card href="https://humansignal.com/goenterprise">
                <img style="pointer-events: none; margin-left: 0px; margin-right: 0px;" src="https://docs.humansignal.com/images/badge.svg" alt="Label Studio Enterprise badge"/>
                <p style="margin-top: 10px; font-size: 14px;">
                    This endpoint is not available in Label Studio Community Edition. [Learn more about Label Studio Enterprise](https://humansignal.com/goenterprise)
                </p>
            </Card>
        Create a comment for a specific annotation ID.
      tags:
        - subpackage_comments
      parameters:
        - name: expand_created_by
          in: query
          description: Expand the created_by field
          required: false
          schema:
            type: boolean
        - name: Authorization
          in: header
          description: >-
            The token (or API key) must be passed as a request header. You can find your user token on the User Account
            page in Label Studio. Example: <br><pre><code class="language-bash">curl
            https://label-studio-host/api/projects -H "Authorization: Token [your-token]"</code></pre>
          required: true
          schema:
            type: string
      responses:
        '201':
          description: ''
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/MaybeExpandedComment'
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/CommentRequest'
  /api/comments/export/:
    get:
      operationId: export
      summary: ✨ Export comments to CSV
      description: |-
        <Card href="https://humansignal.com/goenterprise">
                <img style="pointer-events: none; margin-left: 0px; margin-right: 0px;" src="https://docs.humansignal.com/images/badge.svg" alt="Label Studio Enterprise badge"/>
                <p style="margin-top: 10px; font-size: 14px;">
                    This endpoint is not available in Label Studio Community Edition. [Learn more about Label Studio Enterprise](https://humansignal.com/goenterprise)
                </p>
            </Card>
        Export comments to CSV file
      tags:
        - subpackage_comments
      parameters:
        - name: annotation
          in: query
          required: false
          schema:
            type: integer
        - name: annotators
          in: query
          required: false
          schema:
            type: string
        - name: draft
          in: query
          required: false
          schema:
            type: integer
        - name: expand_created_by
          in: query
          required: false
          schema:
            type: boolean
            default: false
        - name: projects
          in: query
          required: false
          schema:
            type: string
        - name: tz
          in: query
          description: Timezone in which to export the data. Format IANA timezone name, e.g. "America/New_York"
          required: false
          schema:
            type: string
        - name: Authorization
          in: header
          description: >-
            The token (or API key) must be passed as a request header. You can find your user token on the User Account
            page in Label Studio. Example: <br><pre><code class="language-bash">curl
            https://label-studio-host/api/projects -H "Authorization: Token [your-token]"</code></pre>
          required: true
          schema:
            type: string
      responses:
        '200':
          description: CSV file with comments
          content:
            application/json:
              schema:
                type: string
                format: binary
  /api/comments/{id}/:
    get:
      operationId: get
      summary: ✨ Get comment
      description: |-
        <Card href="https://humansignal.com/goenterprise">
                <img style="pointer-events: none; margin-left: 0px; margin-right: 0px;" src="https://docs.humansignal.com/images/badge.svg" alt="Label Studio Enterprise badge"/>
                <p style="margin-top: 10px; font-size: 14px;">
                    This endpoint is not available in Label Studio Community Edition. [Learn more about Label Studio Enterprise](https://humansignal.com/goenterprise)
                </p>
            </Card>
        Retrieve a specific comment by ID for an annotation.
      tags:
        - subpackage_comments
      parameters:
        - name: id
          in: path
          required: true
          schema:
            type: string
        - name: expand_created_by
          in: query
          description: Expand the created_by field
          required: false
          schema:
            type: boolean
        - name: Authorization
          in: header
          description: >-
            The token (or API key) must be passed as a request header. You can find your user token on the User Account
            page in Label Studio. Example: <br><pre><code class="language-bash">curl
            https://label-studio-host/api/projects -H "Authorization: Token [your-token]"</code></pre>
          required: true
          schema:
            type: string
      responses:
        '200':
          description: ''
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/MaybeExpandedComment'
    delete:
      operationId: delete
      summary: ✨ Delete comment
      description: |-
        <Card href="https://humansignal.com/goenterprise">
                <img style="pointer-events: none; margin-left: 0px; margin-right: 0px;" src="https://docs.humansignal.com/images/badge.svg" alt="Label Studio Enterprise badge"/>
                <p style="margin-top: 10px; font-size: 14px;">
                    This endpoint is not available in Label Studio Community Edition. [Learn more about Label Studio Enterprise](https://humansignal.com/goenterprise)
                </p>
            </Card>
        Delete a comment by ID
      tags:
        - subpackage_comments
      parameters:
        - name: id
          in: path
          required: true
          schema:
            type: string
        - name: expand_created_by
          in: query
          description: Expand the created_by field
          required: false
          schema:
            type: boolean
        - name: Authorization
          in: header
          description: >-
            The token (or API key) must be passed as a request header. You can find your user token on the User Account
            page in Label Studio. Example: <br><pre><code class="language-bash">curl
            https://label-studio-host/api/projects -H "Authorization: Token [your-token]"</code></pre>
          required: true
          schema:
            type: string
      responses:
        '200':
          description: Successful response
    patch:
      operationId: update
      summary: ✨ Update comment
      description: |-
        <Card href="https://humansignal.com/goenterprise">
                <img style="pointer-events: none; margin-left: 0px; margin-right: 0px;" src="https://docs.humansignal.com/images/badge.svg" alt="Label Studio Enterprise badge"/>
                <p style="margin-top: 10px; font-size: 14px;">
                    This endpoint is not available in Label Studio Community Edition. [Learn more about Label Studio Enterprise](https://humansignal.com/goenterprise)
                </p>
            </Card>
        Update a specific comment by ID.
      tags:
        - subpackage_comments
      parameters:
        - name: id
          in: path
          required: true
          schema:
            type: string
        - name: expand_created_by
          in: query
          description: Expand the created_by field
          required: false
          schema:
            type: boolean
        - name: Authorization
          in: header
          description: >-
            The token (or API key) must be passed as a request header. You can find your user token on the User Account
            page in Label Studio. Example: <br><pre><code class="language-bash">curl
            https://label-studio-host/api/projects -H "Authorization: Token [your-token]"</code></pre>
          required: true
          schema:
            type: string
      responses:
        '200':
          description: ''
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/MaybeExpandedComment'
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/PatchedCommentRequest'
  /api/current-user:
    get:
      operationId: get-current-user
      summary: ✨ Get current user info
      description: |-
        <Card href="https://humansignal.com/goenterprise">
                <img style="pointer-events: none; margin-left: 0px; margin-right: 0px;" src="https://docs.humansignal.com/images/badge.svg" alt="Label Studio Enterprise badge"/>
                <p style="margin-top: 10px; font-size: 14px;">
                    This endpoint is not available in Label Studio Community Edition. [Learn more about Label Studio Enterprise](https://humansignal.com/goenterprise)
                </p>
            </Card>
        Get info about the currently authenticated user.
      tags:
        - subpackage_users
      parameters:
        - name: Authorization
          in: header
          description: >-
            The token (or API key) must be passed as a request header. You can find your user token on the User Account
            page in Label Studio. Example: <br><pre><code class="language-bash">curl
            https://label-studio-host/api/projects -H "Authorization: Token [your-token]"</code></pre>
          required: true
          schema:
            type: string
      responses:
        '200':
          description: ''
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/LseUserAPI'
    patch:
      operationId: update-current-user
      summary: ✨ Update current user
      description: |-
        <Card href="https://humansignal.com/goenterprise">
                <img style="pointer-events: none; margin-left: 0px; margin-right: 0px;" src="https://docs.humansignal.com/images/badge.svg" alt="Label Studio Enterprise badge"/>
                <p style="margin-top: 10px; font-size: 14px;">
                    This endpoint is not available in Label Studio Community Edition. [Learn more about Label Studio Enterprise](https://humansignal.com/goenterprise)
                </p>
            </Card>
        Update details for the currently authenticated user.
      tags:
        - subpackage_users
      parameters:
        - name: Authorization
          in: header
          description: >-
            The token (or API key) must be passed as a request header. You can find your user token on the User Account
            page in Label Studio. Example: <br><pre><code class="language-bash">curl
            https://label-studio-host/api/projects -H "Authorization: Token [your-token]"</code></pre>
          required: true
          schema:
            type: string
      responses:
        '200':
          description: ''
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/LseUserAPI'
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/PatchedLseUserSerializerUpdateRequest'
  /api/current-user/hotkeys/:
    get:
      operationId: get-hotkeys
      summary: Get user hotkeys
      description: Retrieve the custom hotkeys configuration for the current user.
      tags:
        - subpackage_users
      parameters:
        - name: Authorization
          in: header
          description: >-
            The token (or API key) must be passed as a request header. You can find your user token on the User Account
            page in Label Studio. Example: <br><pre><code class="language-bash">curl
            https://label-studio-host/api/projects -H "Authorization: Token [your-token]"</code></pre>
          required: true
          schema:
            type: string
      responses:
        '200':
          description: ''
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Hotkeys'
    patch:
      operationId: update-hotkeys
      summary: Update user hotkeys
      description: Update the custom hotkeys configuration for the current user.
      tags:
        - subpackage_users
      parameters:
        - name: Authorization
          in: header
          description: >-
            The token (or API key) must be passed as a request header. You can find your user token on the User Account
            page in Label Studio. Example: <br><pre><code class="language-bash">curl
            https://label-studio-host/api/projects -H "Authorization: Token [your-token]"</code></pre>
          required: true
          schema:
            type: string
      responses:
        '200':
          description: ''
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Hotkeys'
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/PatchedHotkeysRequest'
  /api/current-user/reset-token/:
    post:
      operationId: reset-token
      summary: Reset user token
      description: Reset the user token for the current user.
      tags:
        - subpackage_users
      parameters:
        - name: Authorization
          in: header
          description: >-
            The token (or API key) must be passed as a request header. You can find your user token on the User Account
            page in Label Studio. Example: <br><pre><code class="language-bash">curl
            https://label-studio-host/api/projects -H "Authorization: Token [your-token]"</code></pre>
          required: true
          schema:
            type: string
      responses:
        '201':
          description: User token response
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/users_reset_token_Response_201'
  /api/current-user/token:
    get:
      operationId: get-token
      summary: Get user token
      description: Get a user token to authenticate to the API as the current user.
      tags:
        - subpackage_users
      parameters:
        - name: Authorization
          in: header
          description: >-
            The token (or API key) must be passed as a request header. You can find your user token on the User Account
            page in Label Studio. Example: <br><pre><code class="language-bash">curl
            https://label-studio-host/api/projects -H "Authorization: Token [your-token]"</code></pre>
          required: true
          schema:
            type: string
      responses:
        '200':
          description: User token response
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/users_get_token_Response_200'
  /api/current-user/whoami:
    get:
      operationId: whoami
      summary: Retrieve my user
      description: Retrieve details of the account that you are using to access the API.
      tags:
        - subpackage_users
      parameters:
        - name: Authorization
          in: header
          description: >-
            The token (or API key) must be passed as a request header. You can find your user token on the User Account
            page in Label Studio. Example: <br><pre><code class="language-bash">curl
            https://label-studio-host/api/projects -H "Authorization: Token [your-token]"</code></pre>
          required: true
          schema:
            type: string
      responses:
        '200':
          description: ''
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/WhoAmIUser'
  /api/users/:
    get:
      operationId: list
      summary: List users
      description: List the users that exist on the Label Studio server.
      tags:
        - subpackage_users
      parameters:
        - name: ordering
          in: query
          description: Which field to use when ordering the results.
          required: false
          schema:
            type: string
        - name: Authorization
          in: header
          description: >-
            The token (or API key) must be passed as a request header. You can find your user token on the User Account
            page in Label Studio. Example: <br><pre><code class="language-bash">curl
            https://label-studio-host/api/projects -H "Authorization: Token [your-token]"</code></pre>
          required: true
          schema:
            type: string
      responses:
        '200':
          description: ''
          content:
            application/json:
              schema:
                type: array
                items:
                  $ref: '#/components/schemas/LseUserAPI'
    post:
      operationId: create
      summary: Create new user
      description: Create a user in Label Studio.
      tags:
        - subpackage_users
      parameters:
        - name: Authorization
          in: header
          description: >-
            The token (or API key) must be passed as a request header. You can find your user token on the User Account
            page in Label Studio. Example: <br><pre><code class="language-bash">curl
            https://label-studio-host/api/projects -H "Authorization: Token [your-token]"</code></pre>
          required: true
          schema:
            type: string
      responses:
        '201':
          description: ''
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/LseUser'
      requestBody:
        content:
          application/json:
            schema:
              type: object
              properties:
                allow_newsletters:
                  type: boolean
                  description: Whether the user allows newsletters
                avatar:
                  type: string
                  description: Avatar URL of the user
                email:
                  type: string
                  description: Email of the user
                first_name:
                  type: string
                  description: First name of the user
                id:
                  type: integer
                  description: User ID
                initials:
                  type: string
                  description: Initials of the user
                last_name:
                  type: string
                  description: Last name of the user
                phone:
                  type: string
                  description: Phone number of the user
                username:
                  type: string
                  description: Username of the user
  /api/users/{id}/:
    get:
      operationId: get
      summary: Get user info
      description: Get info about a specific Label Studio user, based on the user ID.
      tags:
        - subpackage_users
      parameters:
        - name: id
          in: path
          description: User ID
          required: true
          schema:
            type: integer
        - name: Authorization
          in: header
          description: >-
            The token (or API key) must be passed as a request header. You can find your user token on the User Account
            page in Label Studio. Example: <br><pre><code class="language-bash">curl
            https://label-studio-host/api/projects -H "Authorization: Token [your-token]"</code></pre>
          required: true
          schema:
            type: string
      responses:
        '200':
          description: ''
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/LseUser'
    delete:
      operationId: delete
      summary: Delete user
      description: >-
        Delete a specific Label Studio user. Only available in community edition.


        <Warning>Use caution when deleting a user, as this can cause issues such as breaking the "Annotated by" filter
        or leaving orphaned records.</Warning>
      tags:
        - subpackage_users
      parameters:
        - name: id
          in: path
          description: User ID
          required: true
          schema:
            type: integer
        - name: Authorization
          in: header
          description: >-
            The token (or API key) must be passed as a request header. You can find your user token on the User Account
            page in Label Studio. Example: <br><pre><code class="language-bash">curl
            https://label-studio-host/api/projects -H "Authorization: Token [your-token]"</code></pre>
          required: true
          schema:
            type: string
      responses:
        '200':
          description: Successful response
    patch:
      operationId: update
      summary: Update user details
      description: |2-

                Update details for a specific user, such as their name or contact information, in Label Studio.
                
      tags:
        - subpackage_users
      parameters:
        - name: id
          in: path
          description: User ID
          required: true
          schema:
            type: integer
        - name: Authorization
          in: header
          description: >-
            The token (or API key) must be passed as a request header. You can find your user token on the User Account
            page in Label Studio. Example: <br><pre><code class="language-bash">curl
            https://label-studio-host/api/projects -H "Authorization: Token [your-token]"</code></pre>
          required: true
          schema:
            type: string
      responses:
        '200':
          description: ''
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/LseUser'
      requestBody:
        content:
          application/json:
            schema:
              type: object
              properties:
                allow_newsletters:
                  type: boolean
                  description: Whether the user allows newsletters
                avatar:
                  type: string
                  description: Avatar URL of the user
                email:
                  type: string
                  description: Email of the user
                first_name:
                  type: string
                  description: First name of the user
                id:
                  type: integer
                  description: User ID
                initials:
                  type: string
                  description: Initials of the user
                last_name:
                  type: string
                  description: Last name of the user
                phone:
                  type: string
                  description: Phone number of the user
                username:
                  type: string
                  description: Username of the user
  /api/dimensions/backfill/:
    post:
      operationId: trigger-backfill
      summary: ✨ Trigger Agreement V2 backfill
      description: >-
        <Card href="https://humansignal.com/goenterprise">
                <img style="pointer-events: none; margin-left: 0px; margin-right: 0px;" src="https://docs.humansignal.com/images/badge.svg" alt="Label Studio Enterprise badge"/>
                <p style="margin-top: 10px; font-size: 14px;">
                    This endpoint is not available in Label Studio Community Edition. [Learn more about Label Studio Enterprise](https://humansignal.com/goenterprise)
                </p>
            </Card>
        Trigger an Agreement V2 backfill for the authenticated user's active organization. Recomputes agreement score
        matrices for all tasks that are missing them. Exactly one of three body fields must be provided:


        - **project_id**: backfill a single specific project.

        - **num_projects**: batched org backfill — queue the next N not-yet-started projects (in ascending project ID
        order), leaving any currently in-flight jobs untouched. Repeat calls until `projects_remaining` in the response
        reaches 0.

        - **all_projects**: full org backfill — cancel all in-flight jobs and queue every remaining non-completed
        project at once.


        Requires administrator or owner role and the Agreement V2 feature flag.
      tags:
        - subpackage_dimensions
      parameters:
        - name: Authorization
          in: header
          description: >-
            The token (or API key) must be passed as a request header. You can find your user token on the User Account
            page in Label Studio. Example: <br><pre><code class="language-bash">curl
            https://label-studio-host/api/projects -H "Authorization: Token [your-token]"</code></pre>
          required: true
          schema:
            type: string
      responses:
        '201':
          description: ''
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/AgreementV2BackfillTriggerResponse'
        '400':
          description: ''
          content:
            application/json:
              schema:
                description: Any type
        '403':
          description: ''
          content:
            application/json:
              schema:
                description: Any type
        '404':
          description: ''
          content:
            application/json:
              schema:
                description: Any type
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/AgreementV2BackfillTriggerRequestRequest'
    delete:
      operationId: cancel-backfill
      summary: ✨ Cancel Agreement V2 backfill jobs
      description: >-
        <Card href="https://humansignal.com/goenterprise">
                <img style="pointer-events: none; margin-left: 0px; margin-right: 0px;" src="https://docs.humansignal.com/images/badge.svg" alt="Label Studio Enterprise badge"/>
                <p style="margin-top: 10px; font-size: 14px;">
                    This endpoint is not available in Label Studio Community Edition. [Learn more about Label Studio Enterprise](https://humansignal.com/goenterprise)
                </p>
            </Card>
        Cancel Agreement V2 backfill jobs for the authenticated user's active organization. Cancel a specific job by
        job_id, all jobs for a specific project by project_id, or all backfill jobs for the entire organization if
        neither is provided.
      tags:
        - subpackage_dimensions
      parameters:
        - name: job_id
          in: query
          description: Optional specific job ID to cancel
          required: false
          schema:
            type: integer
        - name: project_id
          in: query
          description: Optional project ID to cancel its active backfill jobs
          required: false
          schema:
            type: integer
        - name: Authorization
          in: header
          description: >-
            The token (or API key) must be passed as a request header. You can find your user token on the User Account
            page in Label Studio. Example: <br><pre><code class="language-bash">curl
            https://label-studio-host/api/projects -H "Authorization: Token [your-token]"</code></pre>
          required: true
          schema:
            type: string
      responses:
        '200':
          description: ''
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/AgreementV2BackfillCancelResponse'
        '403':
          description: ''
          content:
            application/json:
              schema:
                description: Any type
        '404':
          description: ''
          content:
            application/json:
              schema:
                description: Any type
  /api/dimensions/backfill/jobs/:
    get:
      operationId: list-backfills
      summary: ✨ List Agreement V2 backfill jobs
      description: >-
        <Card href="https://humansignal.com/goenterprise">
                <img style="pointer-events: none; margin-left: 0px; margin-right: 0px;" src="https://docs.humansignal.com/images/badge.svg" alt="Label Studio Enterprise badge"/>
                <p style="margin-top: 10px; font-size: 14px;">
                    This endpoint is not available in Label Studio Community Edition. [Learn more about Label Studio Enterprise](https://humansignal.com/goenterprise)
                </p>
            </Card>
        Retrieve Agreement V2 backfill jobs for the authenticated user's active organization, ordered by most-recently
        created first. Supports page / page_size query params (default 50 per page, max 500). Requires administrator or
        owner role and the Agreement V2 feature flag.
      tags:
        - subpackage_dimensions
      parameters:
        - name: status
          in: query
          description: 'Filter by job status: PENDING, QUEUED, RUNNING, COMPLETED, or FAILED.'
          required: false
          schema:
            type: string
        - name: Authorization
          in: header
          description: >-
            The token (or API key) must be passed as a request header. You can find your user token on the User Account
            page in Label Studio. Example: <br><pre><code class="language-bash">curl
            https://label-studio-host/api/projects -H "Authorization: Token [your-token]"</code></pre>
          required: true
          schema:
            type: string
      responses:
        '200':
          description: ''
          content:
            application/json:
              schema:
                type: array
                items:
                  $ref: '#/components/schemas/AgreementV2BackfillJob'
        '400':
          description: ''
          content:
            application/json:
              schema:
                description: Any type
        '403':
          description: ''
          content:
            application/json:
              schema:
                description: Any type
  /api/dimensions/backfill/status/:
    get:
      operationId: get-backfill-status
      summary: ✨ Get Agreement V2 backfill status
      description: >-
        <Card href="https://humansignal.com/goenterprise">
                <img style="pointer-events: none; margin-left: 0px; margin-right: 0px;" src="https://docs.humansignal.com/images/badge.svg" alt="Label Studio Enterprise badge"/>
                <p style="margin-top: 10px; font-size: 14px;">
                    This endpoint is not available in Label Studio Community Edition. [Learn more about Label Studio Enterprise](https://humansignal.com/goenterprise)
                </p>
            </Card>
        Retrieve the status of an Agreement V2 backfill job for the authenticated user's active organization. By default
        returns the aggregated organization status. Specify job_id or project_id to get a specific job status. Requires
        administrator or owner role and the Agreement V2 feature flag.
      tags:
        - subpackage_dimensions
      parameters:
        - name: job_id
          in: query
          description: Optional job ID to retrieve specific job status
          required: false
          schema:
            type: integer
        - name: project_id
          in: query
          description: >-
            Optional project ID to retrieve the latest backfill status for that project. If omitted, returns aggregated
            organization status.
          required: false
          schema:
            type: integer
        - name: Authorization
          in: header
          description: >-
            The token (or API key) must be passed as a request header. You can find your user token on the User Account
            page in Label Studio. Example: <br><pre><code class="language-bash">curl
            https://label-studio-host/api/projects -H "Authorization: Token [your-token]"</code></pre>
          required: true
          schema:
            type: string
      responses:
        '200':
          description: ''
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/AgreementV2BackfillJob'
        '403':
          description: ''
          content:
            application/json:
              schema:
                description: Any type
        '404':
          description: ''
          content:
            application/json:
              schema:
                description: Any type
  /api/projects/{project_pk}/dimensions/:
    get:
      operationId: list
      summary: ✨ List dimensions
      description: |-
        <Card href="https://humansignal.com/goenterprise">
                <img style="pointer-events: none; margin-left: 0px; margin-right: 0px;" src="https://docs.humansignal.com/images/badge.svg" alt="Label Studio Enterprise badge"/>
                <p style="margin-top: 10px; font-size: 14px;">
                    This endpoint is not available in Label Studio Community Edition. [Learn more about Label Studio Enterprise](https://humansignal.com/goenterprise)
                </p>
            </Card>
        List all dimensions for a specific project.
      tags:
        - subpackage_dimensions
      parameters:
        - name: project_pk
          in: path
          description: Project ID
          required: true
          schema:
            type: integer
        - name: agreement_methodology
          in: query
          description: >-
            Agreement methodology to use for computing allowed_metrics_with_params. If not provided, uses the
            methodology stored in the project settings. Valid values: "pairwise", "consensus". 
          required: false
          schema:
            type: string
        - name: is_active
          in: query
          description: Filter by active status
          required: false
          schema:
            type: boolean
        - name: ordering
          in: query
          description: Which field to use when ordering the results.
          required: false
          schema:
            type: string
        - name: Authorization
          in: header
          description: >-
            The token (or API key) must be passed as a request header. You can find your user token on the User Account
            page in Label Studio. Example: <br><pre><code class="language-bash">curl
            https://label-studio-host/api/projects -H "Authorization: Token [your-token]"</code></pre>
          required: true
          schema:
            type: string
      responses:
        '200':
          description: List of dimensions
          content:
            application/json:
              schema:
                type: array
                items:
                  $ref: '#/components/schemas/DimensionList'
  /api/projects/{project_pk}/dimensions/{id}/:
    get:
      operationId: get
      summary: ✨ Get dimension
      description: |-
        <Card href="https://humansignal.com/goenterprise">
                <img style="pointer-events: none; margin-left: 0px; margin-right: 0px;" src="https://docs.humansignal.com/images/badge.svg" alt="Label Studio Enterprise badge"/>
                <p style="margin-top: 10px; font-size: 14px;">
                    This endpoint is not available in Label Studio Community Edition. [Learn more about Label Studio Enterprise](https://humansignal.com/goenterprise)
                </p>
            </Card>
        Retrieve a specific dimension by ID.
      tags:
        - subpackage_dimensions
      parameters:
        - name: id
          in: path
          description: Dimension ID
          required: true
          schema:
            type: integer
        - name: project_pk
          in: path
          description: Project ID
          required: true
          schema:
            type: integer
        - name: Authorization
          in: header
          description: >-
            The token (or API key) must be passed as a request header. You can find your user token on the User Account
            page in Label Studio. Example: <br><pre><code class="language-bash">curl
            https://label-studio-host/api/projects -H "Authorization: Token [your-token]"</code></pre>
          required: true
          schema:
            type: string
      responses:
        '200':
          description: Dimension details
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Dimension'
  /api/dm/actions/:
    get:
      operationId: list
      summary: Get actions
      description: Retrieve all the registered actions with descriptions that data manager can use.
      tags:
        - subpackage_actions
      parameters:
        - name: project
          in: query
          description: Project ID
          required: true
          schema:
            type: integer
        - name: Authorization
          in: header
          description: >-
            The token (or API key) must be passed as a request header. You can find your user token on the User Account
            page in Label Studio. Example: <br><pre><code class="language-bash">curl
            https://label-studio-host/api/projects -H "Authorization: Token [your-token]"</code></pre>
          required: true
          schema:
            type: string
      responses:
        '200':
          description: Actions retrieved successfully
          content:
            application/json:
              schema:
                type: array
                items:
                  $ref: '#/components/schemas/ApiDmActionsGetResponsesContentApplicationJsonSchemaItems'
    post:
      operationId: create
      summary: Post actions
      description: >-
        Perform a Data Manager action with the selected tasks and filters. Note: More complex actions require additional
        parameters in the request body. Call `GET api/actions?project=<id>` to explore them. <br>Example: `GET
        api/actions?id=delete_tasks&project=1`
      tags:
        - subpackage_actions
      parameters:
        - name: id
          in: query
          description: Action name ID, see the full list of actions in the `GET api/actions` request
          required: true
          schema:
            $ref: '#/components/schemas/ApiDmActionsPostParametersId'
        - name: project
          in: query
          description: Project ID
          required: true
          schema:
            type: integer
        - name: view
          in: query
          description: >-
            View ID (optional, it has higher priority than filters, selectedItems and ordering from the request body
            payload)
          required: false
          schema:
            type: integer
        - name: Authorization
          in: header
          description: >-
            The token (or API key) must be passed as a request header. You can find your user token on the User Account
            page in Label Studio. Example: <br><pre><code class="language-bash">curl
            https://label-studio-host/api/projects -H "Authorization: Token [your-token]"</code></pre>
          required: true
          schema:
            type: string
      responses:
        '200':
          description: Action performed successfully
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/actions_create_Response_200'
      requestBody:
        description: Data payload containing task filters, selected task items, and ordering
        content:
          application/json:
            schema:
              type: object
              properties:
                filters:
                  $ref: '#/components/schemas/ApiDmActionsPostRequestBodyContentApplicationJsonSchemaFilters'
                  description: >-
                    Filters to apply on tasks. You can use [the helper class `Filters` from this
                    page](https://labelstud.io/sdk/data_manager.html) to create Data Manager Filters.<br>Example:
                    `{"conjunction": "or", "items": [{"filter": "filter:tasks:completed_at", "operator": "greater",
                    "type": "Datetime", "value": "2021-01-01T00:00:00.000Z"}]}`
                ordering:
                  type: array
                  items:
                    $ref: '#/components/schemas/ApiDmActionsPostRequestBodyContentApplicationJsonSchemaOrderingItems'
                  description: >-
                    List of fields to order by. Fields are similar to filters but without the `filter:` prefix. To
                    reverse the order, add a minus sign before the field name, e.g. `-tasks:created_at`.
                selectedItems:
                  $ref: '#/components/schemas/ApiDmActionsPostRequestBodyContentApplicationJsonSchemaSelectedItems'
                  description: >-
                    Task selection by IDs. If filters are applied, the selection will be applied to the filtered
                    tasks.If "all" is `false`, `"included"` must be used. If "all" is `true`, `"excluded"` must be
                    used.<br>Examples: `{"all": false, "included": [1, 2, 3]}` or `{"all": true, "excluded": [4, 5]}`
  /api/dm/views/:
    get:
      operationId: list
      summary: List views
      description: List all views for a specific project.
      tags:
        - subpackage_views
      parameters:
        - name: project
          in: query
          description: Project ID
          required: false
          schema:
            type: integer
        - name: Authorization
          in: header
          description: >-
            The token (or API key) must be passed as a request header. You can find your user token on the User Account
            page in Label Studio. Example: <br><pre><code class="language-bash">curl
            https://label-studio-host/api/projects -H "Authorization: Token [your-token]"</code></pre>
          required: true
          schema:
            type: string
      responses:
        '200':
          description: ''
          content:
            application/json:
              schema:
                type: array
                items:
                  $ref: '#/components/schemas/View'
    post:
      operationId: create
      summary: Create view
      description: Create a view for a specific project.
      tags:
        - subpackage_views
      parameters:
        - name: Authorization
          in: header
          description: >-
            The token (or API key) must be passed as a request header. You can find your user token on the User Account
            page in Label Studio. Example: <br><pre><code class="language-bash">curl
            https://label-studio-host/api/projects -H "Authorization: Token [your-token]"</code></pre>
          required: true
          schema:
            type: string
      responses:
        '201':
          description: ''
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/View'
      requestBody:
        content:
          application/json:
            schema:
              type: object
              properties:
                data:
                  $ref: '#/components/schemas/ApiDmViewsPostRequestBodyContentApplicationJsonSchemaData'
                  description: Custom view data
                project:
                  type: integer
                  description: Project ID
  /api/dm/views/order/:
    post:
      operationId: update-order
      summary: Update order of views
      description: Update the order field of views based on the provided list of view IDs
      tags:
        - subpackage_views
      parameters:
        - name: Authorization
          in: header
          description: >-
            The token (or API key) must be passed as a request header. You can find your user token on the User Account
            page in Label Studio. Example: <br><pre><code class="language-bash">curl
            https://label-studio-host/api/projects -H "Authorization: Token [your-token]"</code></pre>
          required: true
          schema:
            type: string
      responses:
        '200':
          description: View order updated successfully
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/views_update_order_Response_200'
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/ViewOrderRequest'
  /api/dm/views/reset/:
    delete:
      operationId: delete-all
      summary: Delete all project views
      description: Delete all views for a specific project.
      tags:
        - subpackage_views
      parameters:
        - name: project
          in: query
          description: Project ID
          required: true
          schema:
            type: integer
        - name: Authorization
          in: header
          description: >-
            The token (or API key) must be passed as a request header. You can find your user token on the User Account
            page in Label Studio. Example: <br><pre><code class="language-bash">curl
            https://label-studio-host/api/projects -H "Authorization: Token [your-token]"</code></pre>
          required: true
          schema:
            type: string
      responses:
        '200':
          description: Successful response
  /api/dm/views/{id}/:
    get:
      operationId: get
      summary: Get view details
      description: Get the details about a specific view in the data manager
      tags:
        - subpackage_views
      parameters:
        - name: id
          in: path
          description: View ID
          required: true
          schema:
            type: string
        - name: Authorization
          in: header
          description: >-
            The token (or API key) must be passed as a request header. You can find your user token on the User Account
            page in Label Studio. Example: <br><pre><code class="language-bash">curl
            https://label-studio-host/api/projects -H "Authorization: Token [your-token]"</code></pre>
          required: true
          schema:
            type: string
      responses:
        '200':
          description: ''
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/View'
    delete:
      operationId: delete
      summary: Delete view
      description: Delete a specific view by ID.
      tags:
        - subpackage_views
      parameters:
        - name: id
          in: path
          description: View ID
          required: true
          schema:
            type: string
        - name: Authorization
          in: header
          description: >-
            The token (or API key) must be passed as a request header. You can find your user token on the User Account
            page in Label Studio. Example: <br><pre><code class="language-bash">curl
            https://label-studio-host/api/projects -H "Authorization: Token [your-token]"</code></pre>
          required: true
          schema:
            type: string
      responses:
        '200':
          description: Successful response
    patch:
      operationId: update
      summary: Update view
      description: Update view data with additional filters and other information for a specific project.
      tags:
        - subpackage_views
      parameters:
        - name: id
          in: path
          description: View ID
          required: true
          schema:
            type: string
        - name: Authorization
          in: header
          description: >-
            The token (or API key) must be passed as a request header. You can find your user token on the User Account
            page in Label Studio. Example: <br><pre><code class="language-bash">curl
            https://label-studio-host/api/projects -H "Authorization: Token [your-token]"</code></pre>
          required: true
          schema:
            type: string
      responses:
        '200':
          description: ''
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/View'
      requestBody:
        content:
          application/json:
            schema:
              type: object
              properties:
                data:
                  $ref: '#/components/schemas/ApiDmViewsIdPatchRequestBodyContentApplicationJsonSchemaData'
                  description: Custom view data
                project:
                  type: integer
                  description: Project ID
  /api/fsm/backfill/:
    post:
      operationId: trigger-backfill
      summary: ✨ Trigger state backfill for organization
      description: >-
        <Card href="https://humansignal.com/goenterprise">
                <img style="pointer-events: none; margin-left: 0px; margin-right: 0px;" src="https://docs.humansignal.com/images/badge.svg" alt="Label Studio Enterprise badge"/>
                <p style="margin-top: 10px; font-size: 14px;">
                    This endpoint is not available in Label Studio Community Edition. [Learn more about Label Studio Enterprise](https://humansignal.com/goenterprise)
                </p>
            </Card>
        Trigger state backfill for the authenticated user's active organization. Creates initial state records for
        entities without states. Requires administrator or owner role and both FSM feature flags
        (fflag_feat_fit_568_finite_state_management and fflag_feat_fit_710_fsm_state_fields).
      tags:
        - subpackage_states
      parameters:
        - name: project_id
          in: query
          description: Optional project ID to trigger backfill for a single project
          required: false
          schema:
            type: integer
        - name: Authorization
          in: header
          description: >-
            The token (or API key) must be passed as a request header. You can find your user token on the User Account
            page in Label Studio. Example: <br><pre><code class="language-bash">curl
            https://label-studio-host/api/projects -H "Authorization: Token [your-token]"</code></pre>
          required: true
          schema:
            type: string
      responses:
        '201':
          description: ''
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/StateBackfillResponse'
        '400':
          description: ''
          content:
            application/json:
              schema:
                description: Any type
        '403':
          description: ''
          content:
            application/json:
              schema:
                description: Any type
        '404':
          description: ''
          content:
            application/json:
              schema:
                description: Any type
    delete:
      operationId: cancel-backfill
      summary: ✨ Cancel state backfill jobs
      description: >-
        <Card href="https://humansignal.com/goenterprise">
                <img style="pointer-events: none; margin-left: 0px; margin-right: 0px;" src="https://docs.humansignal.com/images/badge.svg" alt="Label Studio Enterprise badge"/>
                <p style="margin-top: 10px; font-size: 14px;">
                    This endpoint is not available in Label Studio Community Edition. [Learn more about Label Studio Enterprise](https://humansignal.com/goenterprise)
                </p>
            </Card>
        Cancel state backfill jobs for the authenticated user's active organization. Can cancel a specific job by
        job_id, all jobs for a specific project by project_id, or all backfill jobs for the entire organization if
        neither is provided.
      tags:
        - subpackage_states
      parameters:
        - name: job_id
          in: query
          description: Optional specific job ID to cancel
          required: false
          schema:
            type: integer
        - name: project_id
          in: query
          description: Optional project ID to cancel its active jobs
          required: false
          schema:
            type: integer
        - name: Authorization
          in: header
          description: >-
            The token (or API key) must be passed as a request header. You can find your user token on the User Account
            page in Label Studio. Example: <br><pre><code class="language-bash">curl
            https://label-studio-host/api/projects -H "Authorization: Token [your-token]"</code></pre>
          required: true
          schema:
            type: string
      responses:
        '200':
          description: ''
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/StateBackfillCancelResponse'
        '403':
          description: ''
          content:
            application/json:
              schema:
                description: Any type
        '404':
          description: ''
          content:
            application/json:
              schema:
                description: Any type
  /api/fsm/backfill/jobs/:
    get:
      operationId: list-backfills
      summary: ✨ List state backfill jobs
      description: >-
        <Card href="https://humansignal.com/goenterprise">
                <img style="pointer-events: none; margin-left: 0px; margin-right: 0px;" src="https://docs.humansignal.com/images/badge.svg" alt="Label Studio Enterprise badge"/>
                <p style="margin-top: 10px; font-size: 14px;">
                    This endpoint is not available in Label Studio Community Edition. [Learn more about Label Studio Enterprise](https://humansignal.com/goenterprise)
                </p>
            </Card>
        Retrieve the latest 10 state backfill jobs for the authenticated user's active organization. Shows job history
        with status, progress, and timing information. Requires administrator or owner role and both FSM feature flags
        (fflag_feat_fit_568_finite_state_management and fflag_feat_fit_710_fsm_state_fields).
      tags:
        - subpackage_states
      parameters:
        - name: Authorization
          in: header
          description: >-
            The token (or API key) must be passed as a request header. You can find your user token on the User Account
            page in Label Studio. Example: <br><pre><code class="language-bash">curl
            https://label-studio-host/api/projects -H "Authorization: Token [your-token]"</code></pre>
          required: true
          schema:
            type: string
      responses:
        '200':
          description: ''
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/StateBackfillJobListResponse'
        '400':
          description: ''
          content:
            application/json:
              schema:
                description: Any type
        '403':
          description: ''
          content:
            application/json:
              schema:
                description: Any type
        '404':
          description: ''
          content:
            application/json:
              schema:
                description: Any type
  /api/fsm/backfill/status/:
    get:
      operationId: get-backfill-status
      summary: ✨ Get state backfill status
      description: >-
        <Card href="https://humansignal.com/goenterprise">
                <img style="pointer-events: none; margin-left: 0px; margin-right: 0px;" src="https://docs.humansignal.com/images/badge.svg" alt="Label Studio Enterprise badge"/>
                <p style="margin-top: 10px; font-size: 14px;">
                    This endpoint is not available in Label Studio Community Edition. [Learn more about Label Studio Enterprise](https://humansignal.com/goenterprise)
                </p>
            </Card>
        Retrieve the status of a state backfill job for the authenticated user's active organization. By default returns
        the aggregated org status, or specify job_id or project_id to get explicit job statuses. Shows progress,
        completion time, and any errors. Requires administrator or owner role and both FSM feature flags
        (fflag_feat_fit_568_finite_state_management and fflag_feat_fit_710_fsm_state_fields).
      tags:
        - subpackage_states
      parameters:
        - name: job_id
          in: query
          description: Optional job ID to retrieve specific job status
          required: false
          schema:
            type: integer
        - name: project_id
          in: query
          description: >-
            Optional project ID to retrieve the latest job status for a project. If omitted, returns aggregated org
            status.
          required: false
          schema:
            type: integer
        - name: Authorization
          in: header
          description: >-
            The token (or API key) must be passed as a request header. You can find your user token on the User Account
            page in Label Studio. Example: <br><pre><code class="language-bash">curl
            https://label-studio-host/api/projects -H "Authorization: Token [your-token]"</code></pre>
          required: true
          schema:
            type: string
      responses:
        '200':
          description: ''
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/StateBackfillStatusResponse'
        '403':
          description: ''
          content:
            application/json:
              schema:
                description: Any type
        '404':
          description: ''
          content:
            application/json:
              schema:
                description: Any type
  /api/fsm/entities/{entity_name}/{entity_id}/history:
    get:
      operationId: state-history
      summary: ✨ Get entity state history
      description: |-
        <Card href="https://humansignal.com/goenterprise">
                <img style="pointer-events: none; margin-left: 0px; margin-right: 0px;" src="https://docs.humansignal.com/images/badge.svg" alt="Label Studio Enterprise badge"/>
                <p style="margin-top: 10px; font-size: 14px;">
                    This endpoint is not available in Label Studio Community Edition. [Learn more about Label Studio Enterprise](https://humansignal.com/goenterprise)
                </p>
            </Card>
        Get the state history of an entity
      tags:
        - subpackage_states
      parameters:
        - name: entity_id
          in: path
          required: true
          schema:
            type: integer
        - name: entity_name
          in: path
          required: true
          schema:
            type: string
        - name: created_at_from
          in: query
          description: Filter for state history items created at or after the ISO 8601 formatted date (YYYY-MM-DDTHH:MM:SS)
          required: false
          schema:
            type: string
        - name: created_at_to
          in: query
          description: Filter for state history items created at or before the ISO 8601 formatted date (YYYY-MM-DDTHH:MM:SS)
          required: false
          schema:
            type: string
        - name: ordering
          in: query
          description: Which field to use when ordering the results.
          required: false
          schema:
            type: string
        - name: page
          in: query
          description: A page number within the paginated result set.
          required: false
          schema:
            type: integer
        - name: page_size
          in: query
          description: Number of results to return per page.
          required: false
          schema:
            type: integer
        - name: previous_state
          in: query
          description: Filter previous_state by exact match (case-insensitive)
          required: false
          schema:
            type: string
        - name: state
          in: query
          description: Filter state by exact match (case-insensitive)
          required: false
          schema:
            type: string
        - name: transition_name
          in: query
          description: Filter transition_name by exact match (case-insensitive)
          required: false
          schema:
            type: string
        - name: triggered_by
          in: query
          description: Filter triggered_by by exact match
          required: false
          schema:
            type: number
            format: double
        - name: Authorization
          in: header
          description: >-
            The token (or API key) must be passed as a request header. You can find your user token on the User Account
            page in Label Studio. Example: <br><pre><code class="language-bash">curl
            https://label-studio-host/api/projects -H "Authorization: Token [your-token]"</code></pre>
          required: true
          schema:
            type: string
      responses:
        '200':
          description: ''
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/PaginatedStateModelList'
  /api/fsm/entities/{entity_name}/{entity_id}/transition/:
    post:
      operationId: execute-transition
      summary: ✨ Execute manual state transition
      description: |-
        <Card href="https://humansignal.com/goenterprise">
                <img style="pointer-events: none; margin-left: 0px; margin-right: 0px;" src="https://docs.humansignal.com/images/badge.svg" alt="Label Studio Enterprise badge"/>
                <p style="margin-top: 10px; font-size: 14px;">
                    This endpoint is not available in Label Studio Community Edition. [Learn more about Label Studio Enterprise](https://humansignal.com/goenterprise)
                </p>
            </Card>
        Execute a registered manual transition for an entity.
      tags:
        - subpackage_states
      parameters:
        - name: entity_id
          in: path
          required: true
          schema:
            type: integer
        - name: entity_name
          in: path
          required: true
          schema:
            type: string
        - name: Authorization
          in: header
          description: >-
            The token (or API key) must be passed as a request header. You can find your user token on the User Account
            page in Label Studio. Example: <br><pre><code class="language-bash">curl
            https://label-studio-host/api/projects -H "Authorization: Token [your-token]"</code></pre>
          required: true
          schema:
            type: string
      responses:
        '200':
          description: ''
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/FSMTransitionExecuteResponse'
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/FSMTransitionExecuteRequestRequest'
  /api/import/file-upload/{id}:
    get:
      operationId: get
      summary: Get file upload
      description: Retrieve details about a specific uploaded file.
      tags:
        - subpackage_files
      parameters:
        - name: id
          in: path
          required: true
          schema:
            type: integer
        - name: Authorization
          in: header
          description: >-
            The token (or API key) must be passed as a request header. You can find your user token on the User Account
            page in Label Studio. Example: <br><pre><code class="language-bash">curl
            https://label-studio-host/api/projects -H "Authorization: Token [your-token]"</code></pre>
          required: true
          schema:
            type: string
      responses:
        '200':
          description: ''
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/FileUpload'
    delete:
      operationId: delete
      summary: Delete file upload
      description: Delete a specific uploaded file.
      tags:
        - subpackage_files
      parameters:
        - name: id
          in: path
          required: true
          schema:
            type: integer
        - name: Authorization
          in: header
          description: >-
            The token (or API key) must be passed as a request header. You can find your user token on the User Account
            page in Label Studio. Example: <br><pre><code class="language-bash">curl
            https://label-studio-host/api/projects -H "Authorization: Token [your-token]"</code></pre>
          required: true
          schema:
            type: string
      responses:
        '200':
          description: Successful response
    patch:
      operationId: update
      summary: Update file upload
      description: Update a specific uploaded file.
      tags:
        - subpackage_files
      parameters:
        - name: id
          in: path
          required: true
          schema:
            type: integer
        - name: Authorization
          in: header
          description: >-
            The token (or API key) must be passed as a request header. You can find your user token on the User Account
            page in Label Studio. Example: <br><pre><code class="language-bash">curl
            https://label-studio-host/api/projects -H "Authorization: Token [your-token]"</code></pre>
          required: true
          schema:
            type: string
      responses:
        '200':
          description: ''
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/FileUpload'
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/PatchedFileUploadRequest'
  /api/projects/{id}/file-uploads:
    get:
      operationId: list
      summary: Get files list
      description: |2-

                Retrieve the list of uploaded files used to create labeling tasks for a specific project.
                
      tags:
        - subpackage_files
      parameters:
        - name: id
          in: path
          required: true
          schema:
            type: integer
        - name: all
          in: query
          description: Set to "true" if you want to retrieve all file uploads
          required: false
          schema:
            type: boolean
        - name: ids
          in: query
          description: Specify the list of file upload IDs to retrieve, e.g. ids=[1,2,3]
          required: false
          schema:
            type: array
            items:
              type: string
        - name: ordering
          in: query
          description: Which field to use when ordering the results.
          required: false
          schema:
            type: string
        - name: Authorization
          in: header
          description: >-
            The token (or API key) must be passed as a request header. You can find your user token on the User Account
            page in Label Studio. Example: <br><pre><code class="language-bash">curl
            https://label-studio-host/api/projects -H "Authorization: Token [your-token]"</code></pre>
          required: true
          schema:
            type: string
      responses:
        '200':
          description: ''
          content:
            application/json:
              schema:
                type: array
                items:
                  $ref: '#/components/schemas/FileUpload'
    delete:
      operationId: delete-many
      summary: Delete files
      description: |2-

                Delete uploaded files for a specific project.
                
      tags:
        - subpackage_files
      parameters:
        - name: id
          in: path
          required: true
          schema:
            type: integer
        - name: Authorization
          in: header
          description: >-
            The token (or API key) must be passed as a request header. You can find your user token on the User Account
            page in Label Studio. Example: <br><pre><code class="language-bash">curl
            https://label-studio-host/api/projects -H "Authorization: Token [your-token]"</code></pre>
          required: true
          schema:
            type: string
      responses:
        '200':
          description: Successful response
  /data/upload/{filename}:
    get:
      operationId: download
      summary: Download file
      description: Download a specific uploaded file.
      tags:
        - subpackage_files
      parameters:
        - name: filename
          in: path
          required: true
          schema:
            type: string
        - name: Authorization
          in: header
          description: >-
            The token (or API key) must be passed as a request header. You can find your user token on the User Account
            page in Label Studio. Example: <br><pre><code class="language-bash">curl
            https://label-studio-host/api/projects -H "Authorization: Token [your-token]"</code></pre>
          required: true
          schema:
            type: string
      responses:
        '200':
          description: File downloaded successfully
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/files_download_Response_200'
  /api/model-run/batch-failed-predictions:
    post:
      operationId: batch-failed-predictions
      summary: ✨ Create batch of failed predictions
      description: |-
        <Card href="https://humansignal.com/goenterprise">
                <img style="pointer-events: none; margin-left: 0px; margin-right: 0px;" src="https://docs.humansignal.com/images/badge.svg" alt="Label Studio Enterprise badge"/>
                <p style="margin-top: 10px; font-size: 14px;">
                    This endpoint is not available in Label Studio Community Edition. [Learn more about Label Studio Enterprise](https://humansignal.com/goenterprise)
                </p>
            </Card>
        Create a new batch of failed predictions.
      tags:
        - subpackage_prompts
      parameters:
        - name: num_failed_predictions
          in: query
          description: Number of failed predictions being sent (for telemetry only, has no effect)
          required: false
          schema:
            type: integer
        - name: Authorization
          in: header
          description: >-
            The token (or API key) must be passed as a request header. You can find your user token on the User Account
            page in Label Studio. Example: <br><pre><code class="language-bash">curl
            https://label-studio-host/api/projects -H "Authorization: Token [your-token]"</code></pre>
          required: true
          schema:
            type: string
      responses:
        '201':
          description: ''
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/BatchFailedPredictions'
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/BatchFailedPredictionsRequestRequest'
  /api/model-run/batch-predictions:
    post:
      operationId: batch-predictions
      summary: ✨ Create batch predictions
      description: |-
        <Card href="https://humansignal.com/goenterprise">
                <img style="pointer-events: none; margin-left: 0px; margin-right: 0px;" src="https://docs.humansignal.com/images/badge.svg" alt="Label Studio Enterprise badge"/>
                <p style="margin-top: 10px; font-size: 14px;">
                    This endpoint is not available in Label Studio Community Edition. [Learn more about Label Studio Enterprise](https://humansignal.com/goenterprise)
                </p>
            </Card>
        Create a new batch prediction.
      tags:
        - subpackage_prompts
      parameters:
        - name: num_predictions
          in: query
          description: Number of predictions being sent (for telemetry only, has no effect)
          required: false
          schema:
            type: integer
        - name: Authorization
          in: header
          description: >-
            The token (or API key) must be passed as a request header. You can find your user token on the User Account
            page in Label Studio. Example: <br><pre><code class="language-bash">curl
            https://label-studio-host/api/projects -H "Authorization: Token [your-token]"</code></pre>
          required: true
          schema:
            type: string
      responses:
        '201':
          description: ''
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/BatchPredictions'
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/BatchPredictionsRequestRequest'
  /api/projects/{project_pk}/subset-tasks:
    get:
      operationId: subset-tasks
      summary: ✨ Get Project Subset Task List with Predictions and Accuracy details
      description: |-
        <Card href="https://humansignal.com/goenterprise">
                <img style="pointer-events: none; margin-left: 0px; margin-right: 0px;" src="https://docs.humansignal.com/images/badge.svg" alt="Label Studio Enterprise badge"/>
                <p style="margin-top: 10px; font-size: 14px;">
                    This endpoint is not available in Label Studio Community Edition. [Learn more about Label Studio Enterprise](https://humansignal.com/goenterprise)
                </p>
            </Card>

                Provides list of tasks, based on project subset. Includes predictions for tasks. For the 'HasGT' subset, accuracy metrics will also be provided.
                
      tags:
        - subpackage_prompts
      parameters:
        - name: project_pk
          in: path
          required: true
          schema:
            type: integer
        - name: alignment_class
          in: query
          description: Only include tasks whose prediction/reference alignment includes this class.
          required: false
          schema:
            type: string
        - name: alignment_from_name
          in: query
          description: When alignment_class is set, limit matching to this output control tag.
          required: false
          schema:
            type: string
        - name: alignment_outcome
          in: query
          description: Alignment outcome to drill into. Defaults to all TP, FP, and FN outcomes.
          required: false
          schema:
            $ref: '#/components/schemas/ApiProjectsProjectPkSubsetTasksGetParametersAlignmentOutcome'
        - name: include_total
          in: query
          description: If true (default), includes task_count in response; if false, omits it.
          required: false
          schema:
            type: boolean
        - name: model_run
          in: query
          description: A unique ID of a ModelRun
          required: false
          schema:
            type: integer
        - name: ordering
          in: query
          description: Which field to use when ordering the results.
          required: false
          schema:
            type: string
        - name: output_class
          in: query
          description: Only include tasks whose prediction contains this output class.
          required: false
          schema:
            type: string
        - name: output_from_name
          in: query
          description: When output_class is set, limit matching to this output control tag.
          required: false
          schema:
            type: string
        - name: page
          in: query
          description: A page number within the paginated result set.
          required: false
          schema:
            type: integer
        - name: page_size
          in: query
          description: Number of results to return per page.
          required: false
          schema:
            type: integer
        - name: parent_model
          in: query
          description: The ID of the parent model (ModelInterface) for this Inference Run
          required: false
          schema:
            type: integer
        - name: prediction_version_ids
          in: query
          description: Comma-separated model version IDs. Only include tasks that have predictions for every listed version.
          required: false
          schema:
            type: string
        - name: project_subset
          in: query
          description: The project subset to retrieve tasks for
          required: false
          schema:
            type: string
        - name: Authorization
          in: header
          description: >-
            The token (or API key) must be passed as a request header. You can find your user token on the User Account
            page in Label Studio. Example: <br><pre><code class="language-bash">curl
            https://label-studio-host/api/projects -H "Authorization: Token [your-token]"</code></pre>
          required: true
          schema:
            type: string
      responses:
        '200':
          description: ''
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/PaginatedProjectSubsetTasksResponseList'
        '400':
          description: Bad request - missing parent_model
          content:
            application/json:
              schema:
                description: Any type
  /api/projects/{project_pk}/subsets:
    get:
      operationId: subsets
      summary: ✨ Get available subsets of a project (for prompts usage)
      description: |-
        <Card href="https://humansignal.com/goenterprise">
                <img style="pointer-events: none; margin-left: 0px; margin-right: 0px;" src="https://docs.humansignal.com/images/badge.svg" alt="Label Studio Enterprise badge"/>
                <p style="margin-top: 10px; font-size: 14px;">
                    This endpoint is not available in Label Studio Community Edition. [Learn more about Label Studio Enterprise](https://humansignal.com/goenterprise)
                </p>
            </Card>

                Provides list of available subsets for a project along with count of tasks in each subset
                
      tags:
        - subpackage_prompts
      parameters:
        - name: project_pk
          in: path
          required: true
          schema:
            type: integer
        - name: ordering
          in: query
          description: Which field to use when ordering the results.
          required: false
          schema:
            type: string
        - name: Authorization
          in: header
          description: >-
            The token (or API key) must be passed as a request header. You can find your user token on the User Account
            page in Label Studio. Example: <br><pre><code class="language-bash">curl
            https://label-studio-host/api/projects -H "Authorization: Token [your-token]"</code></pre>
          required: true
          schema:
            type: string
      responses:
        '200':
          description: ''
          content:
            application/json:
              schema:
                type: array
                items:
                  $ref: '#/components/schemas/ProjectSubsetItem'
  /api/prompts/:
    get:
      operationId: list
      summary: ✨ List prompts
      description: List all prompts.
      tags:
        - subpackage_prompts
      parameters:
        - name: ordering
          in: query
          description: Which field to use when ordering the results.
          required: false
          schema:
            type: string
        - name: page
          in: query
          description: A page number within the paginated result set.
          required: false
          schema:
            type: integer
        - name: page_size
          in: query
          description: Number of results to return per page.
          required: false
          schema:
            type: integer
        - name: search
          in: query
          description: A search term.
          required: false
          schema:
            type: string
        - name: Authorization
          in: header
          description: >-
            The token (or API key) must be passed as a request header. You can find your user token on the User Account
            page in Label Studio. Example: <br><pre><code class="language-bash">curl
            https://label-studio-host/api/projects -H "Authorization: Token [your-token]"</code></pre>
          required: true
          schema:
            type: string
      responses:
        '200':
          description: ''
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/PaginatedModelInterfaceSerializerGETList'
    post:
      operationId: create
      summary: ✨ Create prompt
      description: |-
        <Card href="https://humansignal.com/goenterprise">
                <img style="pointer-events: none; margin-left: 0px; margin-right: 0px;" src="https://docs.humansignal.com/images/badge.svg" alt="Label Studio Enterprise badge"/>
                <p style="margin-top: 10px; font-size: 14px;">
                    This endpoint is not available in Label Studio Community Edition. [Learn more about Label Studio Enterprise](https://humansignal.com/goenterprise)
                </p>
            </Card>
        Create a new prompt.
      tags:
        - subpackage_prompts
      parameters:
        - name: Authorization
          in: header
          description: >-
            The token (or API key) must be passed as a request header. You can find your user token on the User Account
            page in Label Studio. Example: <br><pre><code class="language-bash">curl
            https://label-studio-host/api/projects -H "Authorization: Token [your-token]"</code></pre>
          required: true
          schema:
            type: string
      responses:
        '201':
          description: ''
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ModelInterface'
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/ModelInterfaceRequest'
  /api/prompts/compatible-projects:
    get:
      operationId: compatible-projects
      summary: ✨ List projects compatible with prompt
      description: Retrieve a list of compatible project for prompt.
      tags:
        - subpackage_prompts
      parameters:
        - name: ordering
          in: query
          description: Which field to use when ordering the results.
          required: false
          schema:
            type: string
        - name: page
          in: query
          description: A page number within the paginated result set.
          required: false
          schema:
            type: integer
        - name: page_size
          in: query
          description: Number of results to return per page.
          required: false
          schema:
            type: integer
        - name: project_type
          in: query
          description: Skill to filter by
          required: false
          schema:
            $ref: '#/components/schemas/ApiPromptsCompatibleProjectsGetParametersProjectType'
        - name: Authorization
          in: header
          description: >-
            The token (or API key) must be passed as a request header. You can find your user token on the User Account
            page in Label Studio. Example: <br><pre><code class="language-bash">curl
            https://label-studio-host/api/projects -H "Authorization: Token [your-token]"</code></pre>
          required: true
          schema:
            type: string
      responses:
        '200':
          description: ''
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/PaginatedAllRolesProjectListList'
  /api/prompts/{id}/:
    get:
      operationId: get
      summary: ✨ Get prompt
      description: |-
        <Card href="https://humansignal.com/goenterprise">
                <img style="pointer-events: none; margin-left: 0px; margin-right: 0px;" src="https://docs.humansignal.com/images/badge.svg" alt="Label Studio Enterprise badge"/>
                <p style="margin-top: 10px; font-size: 14px;">
                    This endpoint is not available in Label Studio Community Edition. [Learn more about Label Studio Enterprise](https://humansignal.com/goenterprise)
                </p>
            </Card>
        Retrieve a specific prompt.
      tags:
        - subpackage_prompts
      parameters:
        - name: id
          in: path
          required: true
          schema:
            type: string
        - name: Authorization
          in: header
          description: >-
            The token (or API key) must be passed as a request header. You can find your user token on the User Account
            page in Label Studio. Example: <br><pre><code class="language-bash">curl
            https://label-studio-host/api/projects -H "Authorization: Token [your-token]"</code></pre>
          required: true
          schema:
            type: string
      responses:
        '200':
          description: ''
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ModelInterfaceSerializerGET'
    delete:
      operationId: delete
      summary: ✨ Delete prompt
      description: |-
        <Card href="https://humansignal.com/goenterprise">
                <img style="pointer-events: none; margin-left: 0px; margin-right: 0px;" src="https://docs.humansignal.com/images/badge.svg" alt="Label Studio Enterprise badge"/>
                <p style="margin-top: 10px; font-size: 14px;">
                    This endpoint is not available in Label Studio Community Edition. [Learn more about Label Studio Enterprise](https://humansignal.com/goenterprise)
                </p>
            </Card>
        Delete a prompt by ID
      tags:
        - subpackage_prompts
      parameters:
        - name: id
          in: path
          required: true
          schema:
            type: string
        - name: Authorization
          in: header
          description: >-
            The token (or API key) must be passed as a request header. You can find your user token on the User Account
            page in Label Studio. Example: <br><pre><code class="language-bash">curl
            https://label-studio-host/api/projects -H "Authorization: Token [your-token]"</code></pre>
          required: true
          schema:
            type: string
      responses:
        '200':
          description: Successful response
    patch:
      operationId: update
      summary: ✨ Update prompt
      description: |-
        <Card href="https://humansignal.com/goenterprise">
                <img style="pointer-events: none; margin-left: 0px; margin-right: 0px;" src="https://docs.humansignal.com/images/badge.svg" alt="Label Studio Enterprise badge"/>
                <p style="margin-top: 10px; font-size: 14px;">
                    This endpoint is not available in Label Studio Community Edition. [Learn more about Label Studio Enterprise](https://humansignal.com/goenterprise)
                </p>
            </Card>
        Update a specific prompt by ID.
      tags:
        - subpackage_prompts
      parameters:
        - name: id
          in: path
          required: true
          schema:
            type: string
        - name: Authorization
          in: header
          description: >-
            The token (or API key) must be passed as a request header. You can find your user token on the User Account
            page in Label Studio. Example: <br><pre><code class="language-bash">curl
            https://label-studio-host/api/projects -H "Authorization: Token [your-token]"</code></pre>
          required: true
          schema:
            type: string
      responses:
        '200':
          description: ''
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ModelInterface'
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/PatchedModelInterfaceRequest'
  /api/inference-runs/{id}/indicators/:
    get:
      operationId: list
      summary: ✨ Get key indicators
      description: |-
        <Card href="https://humansignal.com/goenterprise">
                <img style="pointer-events: none; margin-left: 0px; margin-right: 0px;" src="https://docs.humansignal.com/images/badge.svg" alt="Label Studio Enterprise badge"/>
                <p style="margin-top: 10px; font-size: 14px;">
                    This endpoint is not available in Label Studio Community Edition. [Learn more about Label Studio Enterprise](https://humansignal.com/goenterprise)
                </p>
            </Card>
        Get key indicators for the Prompt dashboard.
      tags:
        - subpackage_prompts.subpackage_prompts/indicators
      parameters:
        - name: id
          in: path
          required: true
          schema:
            type: integer
        - name: Authorization
          in: header
          description: >-
            The token (or API key) must be passed as a request header. You can find your user token on the User Account
            page in Label Studio. Example: <br><pre><code class="language-bash">curl
            https://label-studio-host/api/projects -H "Authorization: Token [your-token]"</code></pre>
          required: true
          schema:
            type: string
      responses:
        '200':
          description: Key indicators
          content:
            application/json:
              schema:
                type: array
                items:
                  $ref: '#/components/schemas/ApiInferenceRunsIdIndicatorsGetResponsesContentApplicationJsonSchemaItems'
  /api/inference-runs/{id}/indicators/{indicator_key}:
    get:
      operationId: get
      summary: ✨ Get key indicator
      description: |-
        <Card href="https://humansignal.com/goenterprise">
                <img style="pointer-events: none; margin-left: 0px; margin-right: 0px;" src="https://docs.humansignal.com/images/badge.svg" alt="Label Studio Enterprise badge"/>
                <p style="margin-top: 10px; font-size: 14px;">
                    This endpoint is not available in Label Studio Community Edition. [Learn more about Label Studio Enterprise](https://humansignal.com/goenterprise)
                </p>
            </Card>
        Get a specific key indicator for the Prompt dashboard.
      tags:
        - subpackage_prompts.subpackage_prompts/indicators
      parameters:
        - name: id
          in: path
          required: true
          schema:
            type: integer
        - name: indicator_key
          in: path
          required: true
          schema:
            type: string
        - name: Authorization
          in: header
          description: >-
            The token (or API key) must be passed as a request header. You can find your user token on the User Account
            page in Label Studio. Example: <br><pre><code class="language-bash">curl
            https://label-studio-host/api/projects -H "Authorization: Token [your-token]"</code></pre>
          required: true
          schema:
            type: string
      responses:
        '200':
          description: Key indicator
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/LSEKeyIndicatorValue'
  /api/prompts/{id}/get-default-version-name:
    get:
      operationId: get-default-version-name
      summary: ✨ Get default prompt version name
      description: |-
        <Card href="https://humansignal.com/goenterprise">
                <img style="pointer-events: none; margin-left: 0px; margin-right: 0px;" src="https://docs.humansignal.com/images/badge.svg" alt="Label Studio Enterprise badge"/>
                <p style="margin-top: 10px; font-size: 14px;">
                    This endpoint is not available in Label Studio Community Edition. [Learn more about Label Studio Enterprise](https://humansignal.com/goenterprise)
                </p>
            </Card>
        Get default prompt version name
      tags:
        - subpackage_prompts.subpackage_prompts/versions
      parameters:
        - name: id
          in: path
          required: true
          schema:
            type: integer
        - name: Authorization
          in: header
          description: >-
            The token (or API key) must be passed as a request header. You can find your user token on the User Account
            page in Label Studio. Example: <br><pre><code class="language-bash">curl
            https://label-studio-host/api/projects -H "Authorization: Token [your-token]"</code></pre>
          required: true
          schema:
            type: string
      responses:
        '200':
          description: No response body
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/prompts_versions_get_default_version_name_Response_200'
  /api/prompts/{prompt_id}/versions:
    get:
      operationId: list
      summary: ✨ List prompt versions
      description: |-
        <Card href="https://humansignal.com/goenterprise">
                <img style="pointer-events: none; margin-left: 0px; margin-right: 0px;" src="https://docs.humansignal.com/images/badge.svg" alt="Label Studio Enterprise badge"/>
                <p style="margin-top: 10px; font-size: 14px;">
                    This endpoint is not available in Label Studio Community Edition. [Learn more about Label Studio Enterprise](https://humansignal.com/goenterprise)
                </p>
            </Card>
        List all versions of a prompt.
      tags:
        - subpackage_prompts.subpackage_prompts/versions
      parameters:
        - name: prompt_id
          in: path
          required: true
          schema:
            type: integer
        - name: ordering
          in: query
          description: Which field to use when ordering the results.
          required: false
          schema:
            type: string
        - name: Authorization
          in: header
          description: >-
            The token (or API key) must be passed as a request header. You can find your user token on the User Account
            page in Label Studio. Example: <br><pre><code class="language-bash">curl
            https://label-studio-host/api/projects -H "Authorization: Token [your-token]"</code></pre>
          required: true
          schema:
            type: string
      responses:
        '200':
          description: ''
          content:
            application/json:
              schema:
                type: array
                items:
                  $ref: '#/components/schemas/ThirdPartyModelVersion'
    post:
      operationId: create
      summary: ✨ Create prompt version
      description: |-
        <Card href="https://humansignal.com/goenterprise">
                <img style="pointer-events: none; margin-left: 0px; margin-right: 0px;" src="https://docs.humansignal.com/images/badge.svg" alt="Label Studio Enterprise badge"/>
                <p style="margin-top: 10px; font-size: 14px;">
                    This endpoint is not available in Label Studio Community Edition. [Learn more about Label Studio Enterprise](https://humansignal.com/goenterprise)
                </p>
            </Card>
        Create a new version of a prompt.
      tags:
        - subpackage_prompts.subpackage_prompts/versions
      parameters:
        - name: prompt_id
          in: path
          required: true
          schema:
            type: integer
        - name: Authorization
          in: header
          description: >-
            The token (or API key) must be passed as a request header. You can find your user token on the User Account
            page in Label Studio. Example: <br><pre><code class="language-bash">curl
            https://label-studio-host/api/projects -H "Authorization: Token [your-token]"</code></pre>
          required: true
          schema:
            type: string
      responses:
        '201':
          description: ''
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ThirdPartyModelVersion'
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/ThirdPartyModelVersionRequest'
  /api/prompts/{prompt_id}/versions/{version_id}:
    get:
      operationId: get
      summary: ✨ Get prompt version
      description: |-
        <Card href="https://humansignal.com/goenterprise">
                <img style="pointer-events: none; margin-left: 0px; margin-right: 0px;" src="https://docs.humansignal.com/images/badge.svg" alt="Label Studio Enterprise badge"/>
                <p style="margin-top: 10px; font-size: 14px;">
                    This endpoint is not available in Label Studio Community Edition. [Learn more about Label Studio Enterprise](https://humansignal.com/goenterprise)
                </p>
            </Card>
        Retrieve a specific prompt of a model.
      tags:
        - subpackage_prompts.subpackage_prompts/versions
      parameters:
        - name: prompt_id
          in: path
          required: true
          schema:
            type: integer
        - name: version_id
          in: path
          required: true
          schema:
            type: integer
        - name: Authorization
          in: header
          description: >-
            The token (or API key) must be passed as a request header. You can find your user token on the User Account
            page in Label Studio. Example: <br><pre><code class="language-bash">curl
            https://label-studio-host/api/projects -H "Authorization: Token [your-token]"</code></pre>
          required: true
          schema:
            type: string
      responses:
        '200':
          description: ''
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ThirdPartyModelVersion'
    delete:
      operationId: delete
      summary: ✨ Delete prompt version
      description: |-
        <Card href="https://humansignal.com/goenterprise">
                <img style="pointer-events: none; margin-left: 0px; margin-right: 0px;" src="https://docs.humansignal.com/images/badge.svg" alt="Label Studio Enterprise badge"/>
                <p style="margin-top: 10px; font-size: 14px;">
                    This endpoint is not available in Label Studio Community Edition. [Learn more about Label Studio Enterprise](https://humansignal.com/goenterprise)
                </p>
            </Card>
        Delete a prompt version by ID
      tags:
        - subpackage_prompts.subpackage_prompts/versions
      parameters:
        - name: prompt_id
          in: path
          required: true
          schema:
            type: integer
        - name: version_id
          in: path
          required: true
          schema:
            type: integer
        - name: Authorization
          in: header
          description: >-
            The token (or API key) must be passed as a request header. You can find your user token on the User Account
            page in Label Studio. Example: <br><pre><code class="language-bash">curl
            https://label-studio-host/api/projects -H "Authorization: Token [your-token]"</code></pre>
          required: true
          schema:
            type: string
      responses:
        '200':
          description: Successful response
    patch:
      operationId: update
      summary: ✨ Update prompt version
      description: |-
        <Card href="https://humansignal.com/goenterprise">
                <img style="pointer-events: none; margin-left: 0px; margin-right: 0px;" src="https://docs.humansignal.com/images/badge.svg" alt="Label Studio Enterprise badge"/>
                <p style="margin-top: 10px; font-size: 14px;">
                    This endpoint is not available in Label Studio Community Edition. [Learn more about Label Studio Enterprise](https://humansignal.com/goenterprise)
                </p>
            </Card>
        Update a specific prompt version by ID.
      tags:
        - subpackage_prompts.subpackage_prompts/versions
      parameters:
        - name: prompt_id
          in: path
          required: true
          schema:
            type: integer
        - name: version_id
          in: path
          required: true
          schema:
            type: integer
        - name: Authorization
          in: header
          description: >-
            The token (or API key) must be passed as a request header. You can find your user token on the User Account
            page in Label Studio. Example: <br><pre><code class="language-bash">curl
            https://label-studio-host/api/projects -H "Authorization: Token [your-token]"</code></pre>
          required: true
          schema:
            type: string
      responses:
        '200':
          description: ''
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ThirdPartyModelVersion'
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/PatchedThirdPartyModelVersionRequest'
  /api/prompts/{prompt_id}/versions/{version_id}/cost-estimate:
    get:
      operationId: cost-estimate
      summary: ✨ Get cost estimate for running a prompt version on a particular project/subset
      description: |-
        <Card href="https://humansignal.com/goenterprise">
                <img style="pointer-events: none; margin-left: 0px; margin-right: 0px;" src="https://docs.humansignal.com/images/badge.svg" alt="Label Studio Enterprise badge"/>
                <p style="margin-top: 10px; font-size: 14px;">
                    This endpoint is not available in Label Studio Community Edition. [Learn more about Label Studio Enterprise](https://humansignal.com/goenterprise)
                </p>
            </Card>
        Get an estimate of the cost for making an inference run on the selected Prompt Version and Project/ProjectSubset
      tags:
        - subpackage_prompts.subpackage_prompts/versions
      parameters:
        - name: prompt_id
          in: path
          required: true
          schema:
            type: integer
        - name: version_id
          in: path
          required: true
          schema:
            type: integer
        - name: Authorization
          in: header
          description: >-
            The token (or API key) must be passed as a request header. You can find your user token on the User Account
            page in Label Studio. Example: <br><pre><code class="language-bash">curl
            https://label-studio-host/api/projects -H "Authorization: Token [your-token]"</code></pre>
          required: true
          schema:
            type: string
      responses:
        '200':
          description: Cost estimate response
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/InferenceRunCostEstimate'
  /api/prompts/{prompt_id}/versions/{version_id}/refine:
    get:
      operationId: get-refined-prompt
      summary: ✨ Get refined prompt
      description: |-
        <Card href="https://humansignal.com/goenterprise">
                <img style="pointer-events: none; margin-left: 0px; margin-right: 0px;" src="https://docs.humansignal.com/images/badge.svg" alt="Label Studio Enterprise badge"/>
                <p style="margin-top: 10px; font-size: 14px;">
                    This endpoint is not available in Label Studio Community Edition. [Learn more about Label Studio Enterprise](https://humansignal.com/goenterprise)
                </p>
            </Card>
        Get the refined prompt based on the `refinement_job_id`.
      tags:
        - subpackage_prompts.subpackage_prompts/versions
      parameters:
        - name: prompt_id
          in: path
          required: true
          schema:
            type: integer
        - name: version_id
          in: path
          required: true
          schema:
            type: integer
        - name: refinement_job_id
          in: query
          description: Refinement Job ID acquired from the `POST /api/prompts/{prompt_id}/versions/{version_id}/refine` endpoint
          required: false
          schema:
            type: string
        - name: Authorization
          in: header
          description: >-
            The token (or API key) must be passed as a request header. You can find your user token on the User Account
            page in Label Studio. Example: <br><pre><code class="language-bash">curl
            https://label-studio-host/api/projects -H "Authorization: Token [your-token]"</code></pre>
          required: true
          schema:
            type: string
      responses:
        '200':
          description: Refined prompt response
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/RefinedPromptResponse'
    post:
      operationId: refine-prompt
      summary: ✨ Refine a prompt version
      description: |-
        <Card href="https://humansignal.com/goenterprise">
                <img style="pointer-events: none; margin-left: 0px; margin-right: 0px;" src="https://docs.humansignal.com/images/badge.svg" alt="Label Studio Enterprise badge"/>
                <p style="margin-top: 10px; font-size: 14px;">
                    This endpoint is not available in Label Studio Community Edition. [Learn more about Label Studio Enterprise](https://humansignal.com/goenterprise)
                </p>
            </Card>
        Refine a prompt version using a teacher model and save the refined prompt as a new version.
      tags:
        - subpackage_prompts.subpackage_prompts/versions
      parameters:
        - name: prompt_id
          in: path
          required: true
          schema:
            type: integer
        - name: version_id
          in: path
          required: true
          schema:
            type: integer
        - name: async
          in: query
          description: Whether to run the refinement asynchronously
          required: false
          schema:
            type: boolean
        - name: Authorization
          in: header
          description: >-
            The token (or API key) must be passed as a request header. You can find your user token on the User Account
            page in Label Studio. Example: <br><pre><code class="language-bash">curl
            https://label-studio-host/api/projects -H "Authorization: Token [your-token]"</code></pre>
          required: true
          schema:
            type: string
      responses:
        '201':
          description: Refined prompt response
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/RefinedPromptResponse'
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/RefinePromptRequestRequest'
  /api/prompts/{prompt_id}/versions/{version_id}/inference-runs:
    get:
      operationId: list
      summary: ✨ Get inference run info
      description: |-
        <Card href="https://humansignal.com/goenterprise">
                <img style="pointer-events: none; margin-left: 0px; margin-right: 0px;" src="https://docs.humansignal.com/images/badge.svg" alt="Label Studio Enterprise badge"/>
                <p style="margin-top: 10px; font-size: 14px;">
                    This endpoint is not available in Label Studio Community Edition. [Learn more about Label Studio Enterprise](https://humansignal.com/goenterprise)
                </p>
            </Card>
        Get information (status, metadata, etc) about an existing inference run
      tags:
        - subpackage_prompts.subpackage_prompts/runs
      parameters:
        - name: prompt_id
          in: path
          required: true
          schema:
            type: integer
        - name: version_id
          in: path
          required: true
          schema:
            type: integer
        - name: ordering
          in: query
          description: Which field to use when ordering the results.
          required: false
          schema:
            type: string
        - name: parent_model
          in: query
          description: The ID of the parent model for this Inference Run
          required: false
          schema:
            type: integer
        - name: project
          in: query
          description: The ID of the project this Inference Run makes predictions on
          required: false
          schema:
            type: integer
        - name: project_subset
          in: query
          description: >-
            Defines which tasks are operated on (e.g. HasGT will only operate on tasks with a ground truth annotation,
            but All will operate on all records)
          required: false
          schema:
            $ref: '#/components/schemas/ApiPromptsPromptIdVersionsVersionIdInferenceRunsGetParametersProjectSubset'
        - name: Authorization
          in: header
          description: >-
            The token (or API key) must be passed as a request header. You can find your user token on the User Account
            page in Label Studio. Example: <br><pre><code class="language-bash">curl
            https://label-studio-host/api/projects -H "Authorization: Token [your-token]"</code></pre>
          required: true
          schema:
            type: string
      responses:
        '200':
          description: ''
          content:
            application/json:
              schema:
                type: array
                items:
                  $ref: '#/components/schemas/ModelRun'
    post:
      operationId: create
      summary: ✨ Run prompt inference
      description: |-
        <Card href="https://humansignal.com/goenterprise">
                <img style="pointer-events: none; margin-left: 0px; margin-right: 0px;" src="https://docs.humansignal.com/images/badge.svg" alt="Label Studio Enterprise badge"/>
                <p style="margin-top: 10px; font-size: 14px;">
                    This endpoint is not available in Label Studio Community Edition. [Learn more about Label Studio Enterprise](https://humansignal.com/goenterprise)
                </p>
            </Card>
        Run a prompt inference.
      tags:
        - subpackage_prompts.subpackage_prompts/runs
      parameters:
        - name: prompt_id
          in: path
          required: true
          schema:
            type: integer
        - name: version_id
          in: path
          required: true
          schema:
            type: integer
        - name: Authorization
          in: header
          description: >-
            The token (or API key) must be passed as a request header. You can find your user token on the User Account
            page in Label Studio. Example: <br><pre><code class="language-bash">curl
            https://label-studio-host/api/projects -H "Authorization: Token [your-token]"</code></pre>
          required: true
          schema:
            type: string
      responses:
        '201':
          description: ''
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ModelRun'
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/ModelRunRequest'
  /api/prompts/{prompt_id}/versions/{version_id}/inference-runs/{inference_run_id}/cancel:
    post:
      operationId: cancel
      summary: ✨ Cancel Inference Run API
      description: |-
        <Card href="https://humansignal.com/goenterprise">
                <img style="pointer-events: none; margin-left: 0px; margin-right: 0px;" src="https://docs.humansignal.com/images/badge.svg" alt="Label Studio Enterprise badge"/>
                <p style="margin-top: 10px; font-size: 14px;">
                    This endpoint is not available in Label Studio Community Edition. [Learn more about Label Studio Enterprise](https://humansignal.com/goenterprise)
                </p>
            </Card>
        Cancel the inference run for the given api
      tags:
        - subpackage_prompts.subpackage_prompts/runs
      parameters:
        - name: inference_run_id
          in: path
          required: true
          schema:
            type: integer
        - name: prompt_id
          in: path
          required: true
          schema:
            type: integer
        - name: version_id
          in: path
          required: true
          schema:
            type: integer
        - name: Authorization
          in: header
          description: >-
            The token (or API key) must be passed as a request header. You can find your user token on the User Account
            page in Label Studio. Example: <br><pre><code class="language-bash">curl
            https://label-studio-host/api/projects -H "Authorization: Token [your-token]"</code></pre>
          required: true
          schema:
            type: string
      responses:
        '200':
          description: ''
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/CancelModelRunResponse'
  /api/invite/reset-token:
    post:
      operationId: reset-token
      summary: Reset organization token
      description: Reset the token used in the invitation link to invite someone to an organization.
      tags:
        - subpackage_organizations
      parameters:
        - name: Authorization
          in: header
          description: >-
            The token (or API key) must be passed as a request header. You can find your user token on the User Account
            page in Label Studio. Example: <br><pre><code class="language-bash">curl
            https://label-studio-host/api/projects -H "Authorization: Token [your-token]"</code></pre>
          required: true
          schema:
            type: string
      responses:
        '200':
          description: ''
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/OrganizationInvite'
  /api/organizations/:
    get:
      operationId: list
      summary: List your organizations
      description: |2-

                Return a list of the organizations you've created or that you have access to.
                
      tags:
        - subpackage_organizations
      parameters:
        - name: ordering
          in: query
          description: Which field to use when ordering the results.
          required: false
          schema:
            type: string
        - name: Authorization
          in: header
          description: >-
            The token (or API key) must be passed as a request header. You can find your user token on the User Account
            page in Label Studio. Example: <br><pre><code class="language-bash">curl
            https://label-studio-host/api/projects -H "Authorization: Token [your-token]"</code></pre>
          required: true
          schema:
            type: string
      responses:
        '200':
          description: ''
          content:
            application/json:
              schema:
                type: array
                items:
                  $ref: '#/components/schemas/OrganizationId'
  /api/organizations/{id}:
    get:
      operationId: get
      summary: Get organization settings
      description: Retrieve the settings for a specific organization by ID.
      tags:
        - subpackage_organizations
      parameters:
        - name: id
          in: path
          required: true
          schema:
            type: integer
        - name: Authorization
          in: header
          description: >-
            The token (or API key) must be passed as a request header. You can find your user token on the User Account
            page in Label Studio. Example: <br><pre><code class="language-bash">curl
            https://label-studio-host/api/projects -H "Authorization: Token [your-token]"</code></pre>
          required: true
          schema:
            type: string
      responses:
        '200':
          description: ''
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/LseOrganization'
    patch:
      operationId: update
      summary: ✨ Update organization
      description: |-
        <Card href="https://humansignal.com/goenterprise">
                <img style="pointer-events: none; margin-left: 0px; margin-right: 0px;" src="https://docs.humansignal.com/images/badge.svg" alt="Label Studio Enterprise badge"/>
                <p style="margin-top: 10px; font-size: 14px;">
                    This endpoint is not available in Label Studio Community Edition. [Learn more about Label Studio Enterprise](https://humansignal.com/goenterprise)
                </p>
            </Card>
        Update organization details including title, embed domains, and Plugins settings.
      tags:
        - subpackage_organizations
      parameters:
        - name: id
          in: path
          required: true
          schema:
            type: integer
        - name: Authorization
          in: header
          description: >-
            The token (or API key) must be passed as a request header. You can find your user token on the User Account
            page in Label Studio. Example: <br><pre><code class="language-bash">curl
            https://label-studio-host/api/projects -H "Authorization: Token [your-token]"</code></pre>
          required: true
          schema:
            type: string
      responses:
        '200':
          description: ''
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/LseOrganization'
        '400':
          description: Bad Request
          content:
            application/json:
              schema:
                description: Any type
        '403':
          description: Permission Denied
          content:
            application/json:
              schema:
                description: Any type
        '404':
          description: Not Found
          content:
            application/json:
              schema:
                description: Any type
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/PatchedLseOrganizationSerializerUpdateRequest'
  /api/organizations/{id}/set-default-role:
    patch:
      operationId: update-default-role
      summary: ✨ Update default role
      description: |-
        <Card href="https://humansignal.com/goenterprise">
                <img style="pointer-events: none; margin-left: 0px; margin-right: 0px;" src="https://docs.humansignal.com/images/badge.svg" alt="Label Studio Enterprise badge"/>
                <p style="margin-top: 10px; font-size: 14px;">
                    This endpoint is not available in Label Studio Community Edition. [Learn more about Label Studio Enterprise](https://humansignal.com/goenterprise)
                </p>
            </Card>
        Update the default role for members of a specific organization.
      tags:
        - subpackage_organizations
      parameters:
        - name: id
          in: path
          required: true
          schema:
            type: integer
        - name: Authorization
          in: header
          description: >-
            The token (or API key) must be passed as a request header. You can find your user token on the User Account
            page in Label Studio. Example: <br><pre><code class="language-bash">curl
            https://label-studio-host/api/projects -H "Authorization: Token [your-token]"</code></pre>
          required: true
          schema:
            type: string
      responses:
        '200':
          description: ''
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/DefaultRole'
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/PatchedDefaultRoleRequest'
  /api/invite:
    get:
      operationId: get-invite-link
      summary: Get invite link
      description: Get invite link for organization
      tags:
        - subpackage_organizations.subpackage_organizations/invites
      parameters:
        - name: Authorization
          in: header
          description: >-
            The token (or API key) must be passed as a request header. You can find your user token on the User Account
            page in Label Studio. Example: <br><pre><code class="language-bash">curl
            https://label-studio-host/api/projects -H "Authorization: Token [your-token]"</code></pre>
          required: true
          schema:
            type: string
      responses:
        '200':
          description: ''
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/OrganizationInvite'
        '403':
          description: Organization does not allow to invite people
          content:
            application/json:
              schema:
                description: Any type
  /api/invite/revoke:
    post:
      operationId: revoke-invite
      summary: ✨ Revoke invite
      description: |-
        <Card href="https://humansignal.com/goenterprise">
                <img style="pointer-events: none; margin-left: 0px; margin-right: 0px;" src="https://docs.humansignal.com/images/badge.svg" alt="Label Studio Enterprise badge"/>
                <p style="margin-top: 10px; font-size: 14px;">
                    This endpoint is not available in Label Studio Community Edition. [Learn more about Label Studio Enterprise](https://humansignal.com/goenterprise)
                </p>
            </Card>
        Revoke invite to organization
      tags:
        - subpackage_organizations.subpackage_organizations/invites
      parameters:
        - name: Authorization
          in: header
          description: >-
            The token (or API key) must be passed as a request header. You can find your user token on the User Account
            page in Label Studio. Example: <br><pre><code class="language-bash">curl
            https://label-studio-host/api/projects -H "Authorization: Token [your-token]"</code></pre>
          required: true
          schema:
            type: string
      responses:
        '200':
          description: Invite revoked
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/organizations_invites_revoke_invite_Response_200'
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/RevokeInviteRequest'
  /api/invite/send-email:
    post:
      operationId: send-email
      summary: ✨ Send email with invite
      description: |-
        <Card href="https://humansignal.com/goenterprise">
                <img style="pointer-events: none; margin-left: 0px; margin-right: 0px;" src="https://docs.humansignal.com/images/badge.svg" alt="Label Studio Enterprise badge"/>
                <p style="margin-top: 10px; font-size: 14px;">
                    This endpoint is not available in Label Studio Community Edition. [Learn more about Label Studio Enterprise](https://humansignal.com/goenterprise)
                </p>
            </Card>
        Send email with invite to organization
      tags:
        - subpackage_organizations.subpackage_organizations/invites
      parameters:
        - name: Authorization
          in: header
          description: >-
            The token (or API key) must be passed as a request header. You can find your user token on the User Account
            page in Label Studio. Example: <br><pre><code class="language-bash">curl
            https://label-studio-host/api/projects -H "Authorization: Token [your-token]"</code></pre>
          required: true
          schema:
            type: string
      responses:
        '200':
          description: Invite sent
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/organizations_invites_send_email_Response_200'
        '403':
          description: Organization does not allow to invite people
          content:
            application/json:
              schema:
                description: Any type
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/SendInviteRequest'
  /api/organizations/{id}/member-tags:
    get:
      operationId: list
      summary: ✨ List organization member tags
      description: |-
        <Card href="https://humansignal.com/goenterprise">
                <img style="pointer-events: none; margin-left: 0px; margin-right: 0px;" src="https://docs.humansignal.com/images/badge.svg" alt="Label Studio Enterprise badge"/>
                <p style="margin-top: 10px; font-size: 14px;">
                    This endpoint is not available in Label Studio Community Edition. [Learn more about Label Studio Enterprise](https://humansignal.com/goenterprise)
                </p>
            </Card>
        Retrieve a list of all member tags for a specific organization.
      tags:
        - subpackage_organizations.subpackage_organizations/memberTags
      parameters:
        - name: id
          in: path
          description: A unique integer value identifying this organization.
          required: true
          schema:
            type: integer
        - name: ordering
          in: query
          description: Which field to use when ordering the results.
          required: false
          schema:
            type: string
        - name: page
          in: query
          description: A page number within the paginated result set.
          required: false
          schema:
            type: integer
        - name: page_size
          in: query
          description: 'Number of results per page (default: 30, max: 100).'
          required: false
          schema:
            type: integer
        - name: search
          in: query
          description: Search tags by label (case-insensitive).
          required: false
          schema:
            type: string
        - name: Authorization
          in: header
          description: >-
            The token (or API key) must be passed as a request header. You can find your user token on the User Account
            page in Label Studio. Example: <br><pre><code class="language-bash">curl
            https://label-studio-host/api/projects -H "Authorization: Token [your-token]"</code></pre>
          required: true
          schema:
            type: string
      responses:
        '200':
          description: ''
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/PaginatedOrganizationMemberTagList'
    post:
      operationId: create
      summary: ✨ Create organization member tag
      description: |-
        <Card href="https://humansignal.com/goenterprise">
                <img style="pointer-events: none; margin-left: 0px; margin-right: 0px;" src="https://docs.humansignal.com/images/badge.svg" alt="Label Studio Enterprise badge"/>
                <p style="margin-top: 10px; font-size: 14px;">
                    This endpoint is not available in Label Studio Community Edition. [Learn more about Label Studio Enterprise](https://humansignal.com/goenterprise)
                </p>
            </Card>
        Create a new member tag for a specific organization.
      tags:
        - subpackage_organizations.subpackage_organizations/memberTags
      parameters:
        - name: id
          in: path
          description: A unique integer value identifying this organization.
          required: true
          schema:
            type: integer
        - name: Authorization
          in: header
          description: >-
            The token (or API key) must be passed as a request header. You can find your user token on the User Account
            page in Label Studio. Example: <br><pre><code class="language-bash">curl
            https://label-studio-host/api/projects -H "Authorization: Token [your-token]"</code></pre>
          required: true
          schema:
            type: string
      responses:
        '201':
          description: ''
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/OrganizationMemberTag'
        '400':
          description: Bad Request - A tag with this label already exists
          content:
            application/json:
              schema:
                description: Any type
        '403':
          description: Permission Denied
          content:
            application/json:
              schema:
                description: Any type
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/OrganizationMemberTagRequest'
  /api/organizations/{id}/member-tags/assignments:
    post:
      operationId: assign
      summary: ✨ Bulk assign tags to organization members
      description: |-
        <Card href="https://humansignal.com/goenterprise">
                <img style="pointer-events: none; margin-left: 0px; margin-right: 0px;" src="https://docs.humansignal.com/images/badge.svg" alt="Label Studio Enterprise badge"/>
                <p style="margin-top: 10px; font-size: 14px;">
                    This endpoint is not available in Label Studio Community Edition. [Learn more about Label Studio Enterprise](https://humansignal.com/goenterprise)
                </p>
            </Card>
        Assign tags to multiple organization members in bulk.
      tags:
        - subpackage_organizations.subpackage_organizations/memberTags
      parameters:
        - name: id
          in: path
          description: A unique integer value identifying this organization.
          required: true
          schema:
            type: integer
        - name: exclude_project_id
          in: query
          description: Filter exclude_project_id by exact match
          required: false
          schema:
            type: number
            format: double
        - name: exclude_workspace_id
          in: query
          description: Filter exclude_workspace_id by exact match
          required: false
          schema:
            type: number
            format: double
        - name: is_deleted
          in: query
          description: Filter is_deleted by exact match
          required: false
          schema:
            type: boolean
        - name: role
          in: query
          description: Multiple values may be separated by commas. (comma-separated values)
          required: false
          schema:
            type: string
        - name: tags
          in: query
          description: Multiple values may be separated by commas. (comma-separated values)
          required: false
          schema:
            type: string
        - name: user__last_activity__gte
          in: query
          description: Filter user__last_activity by greater than or equal to
          required: false
          schema:
            type: string
        - name: user__last_activity__lte
          in: query
          description: Filter user__last_activity by less than or equal to
          required: false
          schema:
            type: string
        - name: user_type
          in: query
          description: Multiple values may be separated by commas. (comma-separated values)
          required: false
          schema:
            type: string
        - name: Authorization
          in: header
          description: >-
            The token (or API key) must be passed as a request header. You can find your user token on the User Account
            page in Label Studio. Example: <br><pre><code class="language-bash">curl
            https://label-studio-host/api/projects -H "Authorization: Token [your-token]"</code></pre>
          required: true
          schema:
            type: string
      responses:
        '200':
          description: Number of tag assignments created
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/organizations_member_tags_assign_Response_200'
        '400':
          description: Bad Request - Invalid input
          content:
            application/json:
              schema:
                description: Any type
        '403':
          description: Permission Denied
          content:
            application/json:
              schema:
                description: Any type
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/BulkOrganizationMemberTagAssignmentRequest'
  /api/organizations/{id}/member-tags/imports:
    post:
      operationId: import
      summary: ✨ Import member tags from CSV
      description: >-
        <Card href="https://humansignal.com/goenterprise">
                <img style="pointer-events: none; margin-left: 0px; margin-right: 0px;" src="https://docs.humansignal.com/images/badge.svg" alt="Label Studio Enterprise badge"/>
                <p style="margin-top: 10px; font-size: 14px;">
                    This endpoint is not available in Label Studio Community Edition. [Learn more about Label Studio Enterprise](https://humansignal.com/goenterprise)
                </p>
            </Card>
        Upload a CSV file to bulk import member tags and assign them to organization members.


        The CSV file must contain `email` and `tags` columns. The `tags` column should contain comma-separated tag
        labels (quoted if they contain commas). Tags that do not exist will be created.


        Optionally, you can specify `bulk_tags` as a comma-separated list of tags to apply to all users in the CSV file.


        The import runs asynchronously. Use the returned import job ID to check the status.
      tags:
        - subpackage_organizations.subpackage_organizations/memberTags
      parameters:
        - name: id
          in: path
          description: A unique integer value identifying this organization.
          required: true
          schema:
            type: integer
        - name: Authorization
          in: header
          description: >-
            The token (or API key) must be passed as a request header. You can find your user token on the User Account
            page in Label Studio. Example: <br><pre><code class="language-bash">curl
            https://label-studio-host/api/projects -H "Authorization: Token [your-token]"</code></pre>
          required: true
          schema:
            type: string
      responses:
        '201':
          description: Import job created successfully
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/organizations_member_tags_import_Response_201'
        '400':
          description: Bad Request - Invalid CSV file or missing required columns
          content:
            application/json:
              schema:
                description: Any type
        '403':
          description: Permission Denied
          content:
            application/json:
              schema:
                description: Any type
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/OrganizationMemberTagImportCreateRequest'
  /api/organizations/{id}/member-tags/imports/{import_pk}:
    get:
      operationId: get-import
      summary: ✨ Get member tag import status
      description: >-
        <Card href="https://humansignal.com/goenterprise">
                <img style="pointer-events: none; margin-left: 0px; margin-right: 0px;" src="https://docs.humansignal.com/images/badge.svg" alt="Label Studio Enterprise badge"/>
                <p style="margin-top: 10px; font-size: 14px;">
                    This endpoint is not available in Label Studio Community Edition. [Learn more about Label Studio Enterprise](https://humansignal.com/goenterprise)
                </p>
            </Card>
        Retrieve the status and results of a member tag import job.


        The response includes the current status (created, in_progress, completed, failed), timestamps, and counts of
        tags created, assignments made, and users skipped.
      tags:
        - subpackage_organizations.subpackage_organizations/memberTags
      parameters:
        - name: id
          in: path
          description: A unique integer value identifying this organization.
          required: true
          schema:
            type: integer
        - name: import_pk
          in: path
          description: A unique integer value identifying this import job.
          required: true
          schema:
            type: integer
        - name: Authorization
          in: header
          description: >-
            The token (or API key) must be passed as a request header. You can find your user token on the User Account
            page in Label Studio. Example: <br><pre><code class="language-bash">curl
            https://label-studio-host/api/projects -H "Authorization: Token [your-token]"</code></pre>
          required: true
          schema:
            type: string
      responses:
        '200':
          description: ''
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/OrganizationMemberTagImportStatus'
        '403':
          description: Permission Denied
          content:
            application/json:
              schema:
                description: Any type
        '404':
          description: Import job not found
          content:
            application/json:
              schema:
                description: Any type
  /api/organizations/{id}/member-tags/{tag_pk}:
    get:
      operationId: get
      summary: ✨ Get organization member tag
      description: |-
        <Card href="https://humansignal.com/goenterprise">
                <img style="pointer-events: none; margin-left: 0px; margin-right: 0px;" src="https://docs.humansignal.com/images/badge.svg" alt="Label Studio Enterprise badge"/>
                <p style="margin-top: 10px; font-size: 14px;">
                    This endpoint is not available in Label Studio Community Edition. [Learn more about Label Studio Enterprise](https://humansignal.com/goenterprise)
                </p>
            </Card>
        Retrieve details of a specific member tag.
      tags:
        - subpackage_organizations.subpackage_organizations/memberTags
      parameters:
        - name: id
          in: path
          description: A unique integer value identifying this organization.
          required: true
          schema:
            type: integer
        - name: tag_pk
          in: path
          description: A unique integer value identifying this member tag.
          required: true
          schema:
            type: integer
        - name: Authorization
          in: header
          description: >-
            The token (or API key) must be passed as a request header. You can find your user token on the User Account
            page in Label Studio. Example: <br><pre><code class="language-bash">curl
            https://label-studio-host/api/projects -H "Authorization: Token [your-token]"</code></pre>
          required: true
          schema:
            type: string
      responses:
        '200':
          description: ''
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/OrganizationMemberTag'
        '404':
          description: Member tag not found
          content:
            application/json:
              schema:
                description: Any type
    delete:
      operationId: delete
      summary: ✨ Delete organization member tag
      description: |-
        <Card href="https://humansignal.com/goenterprise">
                <img style="pointer-events: none; margin-left: 0px; margin-right: 0px;" src="https://docs.humansignal.com/images/badge.svg" alt="Label Studio Enterprise badge"/>
                <p style="margin-top: 10px; font-size: 14px;">
                    This endpoint is not available in Label Studio Community Edition. [Learn more about Label Studio Enterprise](https://humansignal.com/goenterprise)
                </p>
            </Card>
        Delete a member tag from the organization.
      tags:
        - subpackage_organizations.subpackage_organizations/memberTags
      parameters:
        - name: id
          in: path
          description: A unique integer value identifying this organization.
          required: true
          schema:
            type: integer
        - name: tag_pk
          in: path
          description: A unique integer value identifying this member tag.
          required: true
          schema:
            type: integer
        - name: Authorization
          in: header
          description: >-
            The token (or API key) must be passed as a request header. You can find your user token on the User Account
            page in Label Studio. Example: <br><pre><code class="language-bash">curl
            https://label-studio-host/api/projects -H "Authorization: Token [your-token]"</code></pre>
          required: true
          schema:
            type: string
      responses:
        '200':
          description: Successful response
        '403':
          description: Permission Denied
          content:
            application/json:
              schema:
                description: Any type
        '404':
          description: Member tag not found
          content:
            application/json:
              schema:
                description: Any type
    patch:
      operationId: update
      summary: ✨ Update organization member tag
      description: |-
        <Card href="https://humansignal.com/goenterprise">
                <img style="pointer-events: none; margin-left: 0px; margin-right: 0px;" src="https://docs.humansignal.com/images/badge.svg" alt="Label Studio Enterprise badge"/>
                <p style="margin-top: 10px; font-size: 14px;">
                    This endpoint is not available in Label Studio Community Edition. [Learn more about Label Studio Enterprise](https://humansignal.com/goenterprise)
                </p>
            </Card>
        Partially update an existing member tag.
      tags:
        - subpackage_organizations.subpackage_organizations/memberTags
      parameters:
        - name: id
          in: path
          description: A unique integer value identifying this organization.
          required: true
          schema:
            type: integer
        - name: tag_pk
          in: path
          description: A unique integer value identifying this member tag.
          required: true
          schema:
            type: integer
        - name: Authorization
          in: header
          description: >-
            The token (or API key) must be passed as a request header. You can find your user token on the User Account
            page in Label Studio. Example: <br><pre><code class="language-bash">curl
            https://label-studio-host/api/projects -H "Authorization: Token [your-token]"</code></pre>
          required: true
          schema:
            type: string
      responses:
        '200':
          description: ''
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/OrganizationMemberTag'
        '400':
          description: Bad Request - A tag with this label already exists
          content:
            application/json:
              schema:
                description: Any type
        '403':
          description: Permission Denied
          content:
            application/json:
              schema:
                description: Any type
        '404':
          description: Member tag not found
          content:
            application/json:
              schema:
                description: Any type
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/PatchedOrganizationMemberTagRequest'
  /api/organizations/{id}/member-tags/bulk:
    post:
      operationId: post
      summary: ✨ Bulk create organization member tags
      description: >-
        <Card href="https://humansignal.com/goenterprise">
                <img style="pointer-events: none; margin-left: 0px; margin-right: 0px;" src="https://docs.humansignal.com/images/badge.svg" alt="Label Studio Enterprise badge"/>
                <p style="margin-top: 10px; font-size: 14px;">
                    This endpoint is not available in Label Studio Community Edition. [Learn more about Label Studio Enterprise](https://humansignal.com/goenterprise)
                </p>
            </Card>
        Create multiple member tags for the organization in bulk. Duplicate labels within the request are deduplicated.
        Labels that already exist in the organization are skipped.
      tags:
        - subpackage_organizations.subpackage_organizations/memberTags.subpackage_organizations/memberTags/bulk
      parameters:
        - name: id
          in: path
          description: A unique integer value identifying this organization.
          required: true
          schema:
            type: integer
        - name: Authorization
          in: header
          description: >-
            The token (or API key) must be passed as a request header. You can find your user token on the User Account
            page in Label Studio. Example: <br><pre><code class="language-bash">curl
            https://label-studio-host/api/projects -H "Authorization: Token [your-token]"</code></pre>
          required: true
          schema:
            type: string
      responses:
        '201':
          description: Number of tags created
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/organizations_member_tags_bulk_post_Response_201'
        '400':
          description: Bad Request - Invalid input
          content:
            application/json:
              schema:
                description: Any type
        '403':
          description: Permission Denied
          content:
            application/json:
              schema:
                description: Any type
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/OrganizationMemberTagBulkCreateRequest'
    delete:
      operationId: delete
      summary: ✨ Bulk delete organization member tags
      description: >-
        <Card href="https://humansignal.com/goenterprise">
                <img style="pointer-events: none; margin-left: 0px; margin-right: 0px;" src="https://docs.humansignal.com/images/badge.svg" alt="Label Studio Enterprise badge"/>
                <p style="margin-top: 10px; font-size: 14px;">
                    This endpoint is not available in Label Studio Community Edition. [Learn more about Label Studio Enterprise](https://humansignal.com/goenterprise)
                </p>
            </Card>
        Delete multiple member tags from the organization in bulk. Pass tag IDs via the `ids` query parameter
        (comma-separated or repeated). For backward compatibility, a JSON body with `ids` is still accepted.
      tags:
        - subpackage_organizations.subpackage_organizations/memberTags.subpackage_organizations/memberTags/bulk
      parameters:
        - name: id
          in: path
          description: A unique integer value identifying this organization.
          required: true
          schema:
            type: integer
        - name: ids
          in: query
          description: Tag IDs to delete. Accepts comma-separated values (e.g., `1,2`) or repeated params.
          required: false
          schema:
            type: string
        - name: Authorization
          in: header
          description: >-
            The token (or API key) must be passed as a request header. You can find your user token on the User Account
            page in Label Studio. Example: <br><pre><code class="language-bash">curl
            https://label-studio-host/api/projects -H "Authorization: Token [your-token]"</code></pre>
          required: true
          schema:
            type: string
      responses:
        '200':
          description: Number of tags deleted
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/organizations_member_tags_bulk_delete_Response_200'
        '400':
          description: Bad Request - Invalid input
          content:
            application/json:
              schema:
                description: Any type
        '403':
          description: Permission Denied
          content:
            application/json:
              schema:
                description: Any type
  /api/organizations/{id}/memberships:
    get:
      operationId: list
      summary: ✨ Get organization members/roles
      description: |-
        <Card href="https://humansignal.com/goenterprise">
                <img style="pointer-events: none; margin-left: 0px; margin-right: 0px;" src="https://docs.humansignal.com/images/badge.svg" alt="Label Studio Enterprise badge"/>
                <p style="margin-top: 10px; font-size: 14px;">
                    This endpoint is not available in Label Studio Community Edition. [Learn more about Label Studio Enterprise](https://humansignal.com/goenterprise)
                </p>
            </Card>
        Retrieve a list of all users and roles in a specific organization.
      tags:
        - subpackage_organizations.subpackage_organizations/members
      parameters:
        - name: id
          in: path
          description: A unique integer value identifying this organization.
          required: true
          schema:
            type: integer
        - name: contributed_to_projects
          in: query
          description: Whether to include projects created and contributed to by the members.
          required: false
          schema:
            type: boolean
        - name: exclude_project_id
          in: query
          description: >-
            Project ID to exclude users who are already associated with this project (direct members, workspace members,
            or implicit admin/owner access).
          required: false
          schema:
            type: integer
        - name: exclude_workspace_id
          in: query
          description: >-
            Workspace ID to exclude users who are already associated with this workspace (direct workspace members or
            implicit admin/owner access).
          required: false
          schema:
            type: integer
        - name: ordering
          in: query
          description: Which field to use when ordering the results.
          required: false
          schema:
            type: string
        - name: page
          in: query
          description: A page number within the paginated result set.
          required: false
          schema:
            type: integer
        - name: page_size
          in: query
          description: Number of results to return per page.
          required: false
          schema:
            type: integer
        - name: role
          in: query
          description: |
            Filter members by organization role. Accepts single role or comma-separated list of roles.

            **Format:**
            - Single role: `?role=RE`
            - Multiple roles: `?role=AN,RE` (users with ANY of these roles)

            **Role Codes:**
            - `OW` = Owner
            - `AD` = Administrator
            - `MA` = Manager
            - `RE` = Reviewer
            - `AN` = Annotator
            - `NO` = Not Activated
            - `DI` = Disabled
          required: false
          schema:
            type: string
        - name: scope
          in: query
          description: >-
            Member visibility scope. `accessible` (default) limits Managers to members in their projects/workspaces.
            `all` returns all organization members. Only affects Manager role.
          required: false
          schema:
            $ref: '#/components/schemas/ApiOrganizationsIdMembershipsGetParametersScope'
        - name: search
          in: query
          description: A search term.
          required: false
          schema:
            type: string
        - name: tags
          in: query
          description: Filter members by tags. Use a comma-separated list of tag IDs.
          required: false
          schema:
            type: string
        - name: Authorization
          in: header
          description: >-
            The token (or API key) must be passed as a request header. You can find your user token on the User Account
            page in Label Studio. Example: <br><pre><code class="language-bash">curl
            https://label-studio-host/api/projects -H "Authorization: Token [your-token]"</code></pre>
          required: true
          schema:
            type: string
      responses:
        '200':
          description: ''
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/PaginatedLseOrganizationMemberListList'
    patch:
      operationId: update
      summary: ✨ Update organization member/role
      description: >+
        <Card href="https://humansignal.com/goenterprise">
                <img style="pointer-events: none; margin-left: 0px; margin-right: 0px;" src="https://docs.humansignal.com/images/badge.svg" alt="Label Studio Enterprise badge"/>
                <p style="margin-top: 10px; font-size: 14px;">
                    This endpoint is not available in Label Studio Community Edition. [Learn more about Label Studio Enterprise](https://humansignal.com/goenterprise)
                </p>
            </Card>
        Update organization membership or role for a specific user ID.


        **User Rotation Best Practices for API Usage**


        To maintain compliance with our licensing terms and ensure optimal performance of HumanSignal's APIs, please
        consider the following guidelines when managing user assignments:


        * **Maintain a 7-Day Minimum Assignment**: Once a licensed seat is assigned to a user, maintain that assignment
        for at least seven consecutive days before rotating it to another user.


        * **Automate, Monitor, and Log Rotations**: Implement automated scheduling and logging mechanisms to track the
        timing of user rotations. This helps ensure that rotations adhere to the seven-day minimum period.


        * **Adhere to API Update Frequency and Wait Periods**: When updating user assignments via our APIs, follow the
        recommended frequency and wait period guidelines provided in the HumanSignal API documentation. Avoid sending
        rapid, successive requests that might overload the endpoint. Instead, incorporate appropriate delays between
        calls as specified in the documentation.


        * **Avoid Overloading the API Endpoint**: Design your integration to batch or schedule updates where possible,
        and implement backoff strategies if the API indicates rate limiting. This helps prevent service disruptions and
        ensures a smooth operation.

      tags:
        - subpackage_organizations.subpackage_organizations/members
      parameters:
        - name: id
          in: path
          description: A unique integer value identifying this organization.
          required: true
          schema:
            type: integer
        - name: Authorization
          in: header
          description: >-
            The token (or API key) must be passed as a request header. You can find your user token on the User Account
            page in Label Studio. Example: <br><pre><code class="language-bash">curl
            https://label-studio-host/api/projects -H "Authorization: Token [your-token]"</code></pre>
          required: true
          schema:
            type: string
      responses:
        '200':
          description: ''
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/LseOrganizationMemberList'
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/PatchedOrganizationMemberCreateUpdateRequest'
  /api/organizations/{id}/memberships/{user_pk}/:
    get:
      operationId: get
      summary: Get organization member details
      description: Get organization member details by user ID.
      tags:
        - subpackage_organizations.subpackage_organizations/members
      parameters:
        - name: id
          in: path
          required: true
          schema:
            type: integer
        - name: user_pk
          in: path
          description: A unique integer value identifying the user to get organization details for.
          required: true
          schema:
            type: integer
        - name: contributed_to_projects
          in: query
          description: Whether to include projects created and contributed to by the member.
          required: false
          schema:
            type: boolean
        - name: Authorization
          in: header
          description: >-
            The token (or API key) must be passed as a request header. You can find your user token on the User Account
            page in Label Studio. Example: <br><pre><code class="language-bash">curl
            https://label-studio-host/api/projects -H "Authorization: Token [your-token]"</code></pre>
          required: true
          schema:
            type: string
      responses:
        '200':
          description: ''
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/OrganizationMember'
    delete:
      operationId: delete
      summary: Soft delete an organization member
      description: Soft delete a member from the organization.
      tags:
        - subpackage_organizations.subpackage_organizations/members
      parameters:
        - name: id
          in: path
          required: true
          schema:
            type: integer
        - name: user_pk
          in: path
          description: A unique integer value identifying the user to be deleted from the organization.
          required: true
          schema:
            type: integer
        - name: Authorization
          in: header
          description: >-
            The token (or API key) must be passed as a request header. You can find your user token on the User Account
            page in Label Studio. Example: <br><pre><code class="language-bash">curl
            https://label-studio-host/api/projects -H "Authorization: Token [your-token]"</code></pre>
          required: true
          schema:
            type: string
      responses:
        '200':
          description: Successful response
        '403':
          description: You can delete members only for your current active organization
          content:
            application/json:
              schema:
                description: Any type
        '404':
          description: Member not found
          content:
            application/json:
              schema:
                description: Any type
        '405':
          description: User cannot soft delete self.
          content:
            application/json:
              schema:
                description: Any type
  /api/organizations/{id}/permissions:
    get:
      operationId: list
      summary: ✨ List organization permission overrides
      description: |-
        <Card href="https://humansignal.com/goenterprise">
                <img style="pointer-events: none; margin-left: 0px; margin-right: 0px;" src="https://docs.humansignal.com/images/badge.svg" alt="Label Studio Enterprise badge"/>
                <p style="margin-top: 10px; font-size: 14px;">
                    This endpoint is not available in Label Studio Community Edition. [Learn more about Label Studio Enterprise](https://humansignal.com/goenterprise)
                </p>
            </Card>
        List all organization-level permission overrides for a given organization.
      tags:
        - subpackage_organizations.subpackage_organizations/permissions
      parameters:
        - name: id
          in: path
          required: true
          schema:
            type: integer
        - name: ordering
          in: query
          description: Which field to use when ordering the results.
          required: false
          schema:
            type: string
        - name: Authorization
          in: header
          description: >-
            The token (or API key) must be passed as a request header. You can find your user token on the User Account
            page in Label Studio. Example: <br><pre><code class="language-bash">curl
            https://label-studio-host/api/projects -H "Authorization: Token [your-token]"</code></pre>
          required: true
          schema:
            type: string
      responses:
        '200':
          description: ''
          content:
            application/json:
              schema:
                type: array
                items:
                  $ref: '#/components/schemas/OrganizationPermission'
    post:
      operationId: create
      summary: ✨ Create organization permission override
      description: |-
        <Card href="https://humansignal.com/goenterprise">
                <img style="pointer-events: none; margin-left: 0px; margin-right: 0px;" src="https://docs.humansignal.com/images/badge.svg" alt="Label Studio Enterprise badge"/>
                <p style="margin-top: 10px; font-size: 14px;">
                    This endpoint is not available in Label Studio Community Edition. [Learn more about Label Studio Enterprise](https://humansignal.com/goenterprise)
                </p>
            </Card>
        Create a new organization-level permission override for a given organization.
      tags:
        - subpackage_organizations.subpackage_organizations/permissions
      parameters:
        - name: id
          in: path
          required: true
          schema:
            type: integer
        - name: Authorization
          in: header
          description: >-
            The token (or API key) must be passed as a request header. You can find your user token on the User Account
            page in Label Studio. Example: <br><pre><code class="language-bash">curl
            https://label-studio-host/api/projects -H "Authorization: Token [your-token]"</code></pre>
          required: true
          schema:
            type: string
      responses:
        '200':
          description: ''
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/OrganizationPermission'
        '400':
          description: Bad Request
          content:
            application/json:
              schema:
                description: Any type
        '403':
          description: Permission Denied
          content:
            application/json:
              schema:
                description: Any type
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/OrganizationPermissionRequest'
  /api/organizations/{id}/permissions/options:
    get:
      operationId: get-options
      summary: ✨ Get configurable permissions options
      description: |-
        <Card href="https://humansignal.com/goenterprise">
                <img style="pointer-events: none; margin-left: 0px; margin-right: 0px;" src="https://docs.humansignal.com/images/badge.svg" alt="Label Studio Enterprise badge"/>
                <p style="margin-top: 10px; font-size: 14px;">
                    This endpoint is not available in Label Studio Community Edition. [Learn more about Label Studio Enterprise](https://humansignal.com/goenterprise)
                </p>
            </Card>
        Retrieve the list of configurable permission options (label, tooltip, default role and allowed roles).
      tags:
        - subpackage_organizations.subpackage_organizations/permissions
      parameters:
        - name: id
          in: path
          required: true
          schema:
            type: integer
        - name: ordering
          in: query
          description: Which field to use when ordering the results.
          required: false
          schema:
            type: string
        - name: Authorization
          in: header
          description: >-
            The token (or API key) must be passed as a request header. You can find your user token on the User Account
            page in Label Studio. Example: <br><pre><code class="language-bash">curl
            https://label-studio-host/api/projects -H "Authorization: Token [your-token]"</code></pre>
          required: true
          schema:
            type: string
      responses:
        '200':
          description: ''
          content:
            application/json:
              schema:
                type: array
                items:
                  $ref: '#/components/schemas/ConfigurablePermissionOption'
  /api/organizations/{id}/permissions/{permission}:
    get:
      operationId: get
      summary: ✨ Retrieve organization permission override
      description: |-
        <Card href="https://humansignal.com/goenterprise">
                <img style="pointer-events: none; margin-left: 0px; margin-right: 0px;" src="https://docs.humansignal.com/images/badge.svg" alt="Label Studio Enterprise badge"/>
                <p style="margin-top: 10px; font-size: 14px;">
                    This endpoint is not available in Label Studio Community Edition. [Learn more about Label Studio Enterprise](https://humansignal.com/goenterprise)
                </p>
            </Card>
        Retrieve the organization-level permission override for a given permission key.
      tags:
        - subpackage_organizations.subpackage_organizations/permissions
      parameters:
        - name: id
          in: path
          required: true
          schema:
            type: integer
        - name: permission
          in: path
          required: true
          schema:
            type: string
        - name: Authorization
          in: header
          description: >-
            The token (or API key) must be passed as a request header. You can find your user token on the User Account
            page in Label Studio. Example: <br><pre><code class="language-bash">curl
            https://label-studio-host/api/projects -H "Authorization: Token [your-token]"</code></pre>
          required: true
          schema:
            type: string
      responses:
        '200':
          description: ''
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/OrganizationPermission'
        '403':
          description: Permission Denied
          content:
            application/json:
              schema:
                description: Any type
        '404':
          description: Permission not found for organization
          content:
            application/json:
              schema:
                description: Any type
    put:
      operationId: replace
      summary: ✨ Replace organization permission override
      description: |-
        <Card href="https://humansignal.com/goenterprise">
                <img style="pointer-events: none; margin-left: 0px; margin-right: 0px;" src="https://docs.humansignal.com/images/badge.svg" alt="Label Studio Enterprise badge"/>
                <p style="margin-top: 10px; font-size: 14px;">
                    This endpoint is not available in Label Studio Community Edition. [Learn more about Label Studio Enterprise](https://humansignal.com/goenterprise)
                </p>
            </Card>
        Replace the organization-level permission override for a given permission key.
      tags:
        - subpackage_organizations.subpackage_organizations/permissions
      parameters:
        - name: id
          in: path
          description: A unique integer value identifying this organization.
          required: true
          schema:
            type: integer
        - name: permission
          in: path
          description: Permission key to update within the organization.
          required: true
          schema:
            type: string
        - name: Authorization
          in: header
          description: >-
            The token (or API key) must be passed as a request header. You can find your user token on the User Account
            page in Label Studio. Example: <br><pre><code class="language-bash">curl
            https://label-studio-host/api/projects -H "Authorization: Token [your-token]"</code></pre>
          required: true
          schema:
            type: string
      responses:
        '200':
          description: ''
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/OrganizationPermission'
        '400':
          description: Bad Request
          content:
            application/json:
              schema:
                description: Any type
        '403':
          description: Permission Denied
          content:
            application/json:
              schema:
                description: Any type
        '404':
          description: Permission not found for organization
          content:
            application/json:
              schema:
                description: Any type
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/OrganizationPermissionRequest'
    delete:
      operationId: delete
      summary: ✨ Delete organization permission override
      description: |-
        <Card href="https://humansignal.com/goenterprise">
                <img style="pointer-events: none; margin-left: 0px; margin-right: 0px;" src="https://docs.humansignal.com/images/badge.svg" alt="Label Studio Enterprise badge"/>
                <p style="margin-top: 10px; font-size: 14px;">
                    This endpoint is not available in Label Studio Community Edition. [Learn more about Label Studio Enterprise](https://humansignal.com/goenterprise)
                </p>
            </Card>
        Delete the organization-level permission override for a given permission key.
      tags:
        - subpackage_organizations.subpackage_organizations/permissions
      parameters:
        - name: id
          in: path
          required: true
          schema:
            type: integer
        - name: permission
          in: path
          required: true
          schema:
            type: string
        - name: Authorization
          in: header
          description: >-
            The token (or API key) must be passed as a request header. You can find your user token on the User Account
            page in Label Studio. Example: <br><pre><code class="language-bash">curl
            https://label-studio-host/api/projects -H "Authorization: Token [your-token]"</code></pre>
          required: true
          schema:
            type: string
      responses:
        '200':
          description: Successful response
        '403':
          description: Permission Denied
          content:
            application/json:
              schema:
                description: Any type
        '404':
          description: Permission not found for organization
          content:
            application/json:
              schema:
                description: Any type
    patch:
      operationId: update
      summary: ✨ Update organization permission override
      description: |-
        <Card href="https://humansignal.com/goenterprise">
                <img style="pointer-events: none; margin-left: 0px; margin-right: 0px;" src="https://docs.humansignal.com/images/badge.svg" alt="Label Studio Enterprise badge"/>
                <p style="margin-top: 10px; font-size: 14px;">
                    This endpoint is not available in Label Studio Community Edition. [Learn more about Label Studio Enterprise](https://humansignal.com/goenterprise)
                </p>
            </Card>
        Partially update the organization-level permission override for a given permission key.
      tags:
        - subpackage_organizations.subpackage_organizations/permissions
      parameters:
        - name: id
          in: path
          required: true
          schema:
            type: integer
        - name: permission
          in: path
          required: true
          schema:
            type: string
        - name: Authorization
          in: header
          description: >-
            The token (or API key) must be passed as a request header. You can find your user token on the User Account
            page in Label Studio. Example: <br><pre><code class="language-bash">curl
            https://label-studio-host/api/projects -H "Authorization: Token [your-token]"</code></pre>
          required: true
          schema:
            type: string
      responses:
        '200':
          description: ''
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/OrganizationPermission'
        '400':
          description: Bad Request
          content:
            application/json:
              schema:
                description: Any type
        '403':
          description: Permission Denied
          content:
            application/json:
              schema:
                description: Any type
        '404':
          description: Permission not found for organization
          content:
            application/json:
              schema:
                description: Any type
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/PatchedOrganizationPermissionRequest'
  /api/jwt/settings:
    get:
      operationId: get
      summary: Retrieve JWT Settings
      description: Retrieve JWT settings for the currently active organization.
      tags:
        - subpackage_jwtSettings
      parameters:
        - name: Authorization
          in: header
          description: >-
            The token (or API key) must be passed as a request header. You can find your user token on the User Account
            page in Label Studio. Example: <br><pre><code class="language-bash">curl
            https://label-studio-host/api/projects -H "Authorization: Token [your-token]"</code></pre>
          required: true
          schema:
            type: string
      responses:
        '200':
          description: ''
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/LSEJWTSettings'
    post:
      operationId: update
      summary: Update JWT Settings
      description: Update JWT settings for the currently active organization.
      tags:
        - subpackage_jwtSettings
      parameters:
        - name: Authorization
          in: header
          description: >-
            The token (or API key) must be passed as a request header. You can find your user token on the User Account
            page in Label Studio. Example: <br><pre><code class="language-bash">curl
            https://label-studio-host/api/projects -H "Authorization: Token [your-token]"</code></pre>
          required: true
          schema:
            type: string
      responses:
        '201':
          description: ''
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/LSEJWTSettings'
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/LSEJWTSettingsRequest'
  /api/projects/:
    get:
      operationId: list
      summary: List projects
      description: Retrieve a list of projects.
      tags:
        - subpackage_projects
      parameters:
        - name: archived
          in: query
          description: Filter by projects that belong to archived workspaces
          required: false
          schema:
            type: boolean
        - name: filter
          in: query
          description: >-
            Filter projects by pinned status. Use 'pinned_only' to return only pinned projects, 'exclude_pinned' to
            return only non-pinned projects, or 'all' to return all projects.
          required: false
          schema:
            type: string
            default: all
        - name: ids
          in: query
          description: Filter id by in list
          required: false
          schema:
            type: string
        - name: include
          in: query
          description: >-
            Comma-separated list of count fields to include in the response to optimize performance. Available fields:
            task_number, finished_task_number, total_predictions_number, total_annotations_number,
            num_tasks_with_annotations, useful_annotation_number, ground_truth_number, skipped_annotations_number. If
            not specified, all count fields are included.
          required: false
          schema:
            type: string
        - name: members_limit
          in: query
          description: Maximum number of members to return
          required: false
          schema:
            type: integer
            default: 10
        - name: ordering
          in: query
          description: Which field to use when ordering the results.
          required: false
          schema:
            type: string
        - name: page
          in: query
          description: A page number within the paginated result set.
          required: false
          schema:
            type: integer
        - name: page_size
          in: query
          description: Number of results to return per page.
          required: false
          schema:
            type: integer
        - name: search
          in: query
          description: Search term for project title and description
          required: false
          schema:
            type: string
        - name: state
          in: query
          description: Filter current_state by exact match
          required: false
          schema:
            type: string
        - name: title
          in: query
          description: Filter title by contains (case-insensitive)
          required: false
          schema:
            type: string
        - name: workspaces
          in: query
          description: Filter workspaces by exact match
          required: false
          schema:
            type: number
            format: double
        - name: Authorization
          in: header
          description: >-
            The token (or API key) must be passed as a request header. You can find your user token on the User Account
            page in Label Studio. Example: <br><pre><code class="language-bash">curl
            https://label-studio-host/api/projects -H "Authorization: Token [your-token]"</code></pre>
          required: true
          schema:
            type: string
      responses:
        '200':
          description: ''
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/PaginatedAllRolesProjectListList'
    post:
      operationId: create
      summary: Create a project
      description: Create a project for a specific organization.
      tags:
        - subpackage_projects
      parameters:
        - name: Authorization
          in: header
          description: >-
            The token (or API key) must be passed as a request header. You can find your user token on the User Account
            page in Label Studio. Example: <br><pre><code class="language-bash">curl
            https://label-studio-host/api/projects -H "Authorization: Token [your-token]"</code></pre>
          required: true
          schema:
            type: string
      responses:
        '201':
          description: ''
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/LseProjectCreate'
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/LseProjectCreateRequest'
  /api/projects/counts/:
    get:
      operationId: list-counts
      summary: List projects' counts
      description: Returns a list of projects with their counts. For example, task_number which is the total task number in project
      tags:
        - subpackage_projects
      parameters:
        - name: archived
          in: query
          description: Filter by projects that belong to archived workspaces
          required: false
          schema:
            type: boolean
        - name: filter
          in: query
          description: >-
            Filter projects by pinned status. Use 'pinned_only' to return only pinned projects, 'exclude_pinned' to
            return only non-pinned projects, or 'all' to return all projects.
          required: false
          schema:
            type: string
            default: all
        - name: ids
          in: query
          description: Filter id by in list
          required: false
          schema:
            type: string
        - name: include
          in: query
          description: >-
            Comma-separated list of count fields to include in the response to optimize performance. Available fields:
            task_number, finished_task_number, total_predictions_number, total_annotations_number,
            num_tasks_with_annotations, useful_annotation_number, ground_truth_number, skipped_annotations_number. If
            not specified, all count fields are included.
          required: false
          schema:
            type: string
        - name: ordering
          in: query
          description: Which field to use when ordering the results.
          required: false
          schema:
            type: string
        - name: page
          in: query
          description: A page number within the paginated result set.
          required: false
          schema:
            type: integer
        - name: page_size
          in: query
          description: Number of results to return per page.
          required: false
          schema:
            type: integer
        - name: search
          in: query
          description: Search term for project title and description
          required: false
          schema:
            type: string
        - name: state
          in: query
          description: Filter current_state by exact match
          required: false
          schema:
            type: string
        - name: title
          in: query
          description: Filter title by contains (case-insensitive)
          required: false
          schema:
            type: string
        - name: workspaces
          in: query
          description: Filter workspaces by exact match
          required: false
          schema:
            type: number
            format: double
        - name: Authorization
          in: header
          description: >-
            The token (or API key) must be passed as a request header. You can find your user token on the User Account
            page in Label Studio. Example: <br><pre><code class="language-bash">curl
            https://label-studio-host/api/projects -H "Authorization: Token [your-token]"</code></pre>
          required: true
          schema:
            type: string
      responses:
        '200':
          description: ''
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/PaginatedLseProjectCountsList'
  /api/projects/{id}/:
    get:
      operationId: get
      summary: Get project by ID
      description: Retrieve information about a project by project ID.
      tags:
        - subpackage_projects
      parameters:
        - name: id
          in: path
          required: true
          schema:
            type: integer
        - name: members_limit
          in: query
          description: Maximum number of members to return
          required: false
          schema:
            type: integer
            default: 10
        - name: Authorization
          in: header
          description: >-
            The token (or API key) must be passed as a request header. You can find your user token on the User Account
            page in Label Studio. Example: <br><pre><code class="language-bash">curl
            https://label-studio-host/api/projects -H "Authorization: Token [your-token]"</code></pre>
          required: true
          schema:
            type: string
      responses:
        '200':
          description: Project information. Not all fields are available for all roles.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/LseProjectResponse'
    delete:
      operationId: delete
      summary: Delete project
      description: Delete a project by specified project ID.
      tags:
        - subpackage_projects
      parameters:
        - name: id
          in: path
          required: true
          schema:
            type: integer
        - name: Authorization
          in: header
          description: >-
            The token (or API key) must be passed as a request header. You can find your user token on the User Account
            page in Label Studio. Example: <br><pre><code class="language-bash">curl
            https://label-studio-host/api/projects -H "Authorization: Token [your-token]"</code></pre>
          required: true
          schema:
            type: string
      responses:
        '200':
          description: Successful response
    patch:
      operationId: update
      summary: Update project details
      description: Update the details of a specific project.
      tags:
        - subpackage_projects
      parameters:
        - name: id
          in: path
          required: true
          schema:
            type: integer
        - name: members_limit
          in: query
          description: Maximum number of members to return
          required: false
          schema:
            type: integer
            default: 10
        - name: Authorization
          in: header
          description: >-
            The token (or API key) must be passed as a request header. You can find your user token on the User Account
            page in Label Studio. Example: <br><pre><code class="language-bash">curl
            https://label-studio-host/api/projects -H "Authorization: Token [your-token]"</code></pre>
          required: true
          schema:
            type: string
      responses:
        '200':
          description: ''
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/LseProjectUpdate'
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/PatchedLseProjectUpdateRequest'
  /api/projects/{id}/annotators/:
    get:
      operationId: list-unique-annotators
      summary: List unique annotators for project
      description: Return unique users who have submitted annotations in the specified project.
      tags:
        - subpackage_projects
      parameters:
        - name: id
          in: path
          required: true
          schema:
            type: integer
        - name: Authorization
          in: header
          description: >-
            The token (or API key) must be passed as a request header. You can find your user token on the User Account
            page in Label Studio. Example: <br><pre><code class="language-bash">curl
            https://label-studio-host/api/projects -H "Authorization: Token [your-token]"</code></pre>
          required: true
          schema:
            type: string
      responses:
        '200':
          description: List of annotator users
          content:
            application/json:
              schema:
                type: array
                items:
                  $ref: '#/components/schemas/UserSimple'
  /api/projects/{id}/duplicate/:
    post:
      operationId: duplicate
      summary: ✨ Duplicate project
      description: |-
        <Card href="https://humansignal.com/goenterprise">
                <img style="pointer-events: none; margin-left: 0px; margin-right: 0px;" src="https://docs.humansignal.com/images/badge.svg" alt="Label Studio Enterprise badge"/>
                <p style="margin-top: 10px; font-size: 14px;">
                    This endpoint is not available in Label Studio Community Edition. [Learn more about Label Studio Enterprise](https://humansignal.com/goenterprise)
                </p>
            </Card>
        Make a copy of project.
      tags:
        - subpackage_projects
      parameters:
        - name: id
          in: path
          required: true
          schema:
            type: integer
        - name: Authorization
          in: header
          description: >-
            The token (or API key) must be passed as a request header. You can find your user token on the User Account
            page in Label Studio. Example: <br><pre><code class="language-bash">curl
            https://label-studio-host/api/projects -H "Authorization: Token [your-token]"</code></pre>
          required: true
          schema:
            type: string
      responses:
        '201':
          description: Project duplicated
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/projects_duplicate_Response_201'
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/ProjectDuplicateRequest'
  /api/projects/{id}/import:
    post:
      operationId: import-tasks
      summary: Import tasks
      description: |2-

                    Import data as labeling tasks in bulk using this API endpoint. You can use this API endpoint to import multiple tasks.
                    One POST request is limited at 250K tasks and 200 MB.

                    **Note:** Imported data is verified against a project *label_config* and must
                    include all variables that were used in the *label_config*. For example,
                    if the label configuration has a *$text* variable, then each item in a data object
                    must include a "text" field.
                    <br>

                    ## Async Import Behavior
                    <hr style="opacity:0.3">

                    **For non-Community editions, this endpoint processes imports asynchronously.**
                    
                    - The POST request **can fail** for invalid parameters, malformed request body, or other request-level validation errors.
                    - However, **data validation errors** that occur during import processing are handled asynchronously and will not cause the POST request to fail.
                    - Upon successful request validation, a response is returned: `{"import": <import_id>}`
                    - Use the returned `import_id` to poll the GET `/api/projects/{project_id}/imports/{import_id}` endpoint to check the import status and see any data validation errors.
                    - Data-level errors and import failures will only be visible in the GET request response.

                    For Community edition, imports are processed synchronously and return task counts immediately.
                    <br>

                    ## POST requests
                    <hr style="opacity:0.3">

                    There are three possible ways to import tasks with this endpoint:

                    ### 1. **POST with data**
                    Send JSON tasks as POST data. Only JSON is supported for POSTing files directly.
                    Update this example to specify your authorization token and Label Studio instance host, then run the following from
                    the command line.

                    ```bash
                    curl -H 'Content-Type: application/json' -H 'Authorization: Token abc123' \
                    -X POST 'http://localhost:8000/api/projects/1/import' --data '[{"text": "Some text 1"}, {"text": "Some text 2"}]'
                    ```

                    ### 2. **POST with files**
                    Send tasks as files. You can attach multiple files with different names.

                    - **JSON**: text files in JavaScript object notation format
                    - **CSV**: text files with tables in Comma Separated Values format
                    - **TSV**: text files with tables in Tab Separated Value format
                    - **TXT**: simple text files are similar to CSV with one column and no header, supported for projects with one source only

                    Update this example to specify your authorization token, Label Studio instance host, and file name and path,
                    then run the following from the command line:

                    ```bash
                    curl -H 'Authorization: Token abc123' \
                    -X POST 'http://localhost:8000/api/projects/1/import' -F 'file=@path/to/my_file.csv'
                    ```

                    ### 3. **POST with URL**
                    You can also provide a URL to a file with labeling tasks. Supported file formats are the same as in option 2.

                    ```bash
                    curl -H 'Content-Type: application/json' -H 'Authorization: Token abc123' \
                    -X POST 'http://localhost:8000/api/projects/1/import' \
                    --data '[{"url": "http://example.com/test1.csv"}, {"url": "http://example.com/test2.csv"}]'
                    ```

                    <br>
                
      tags:
        - subpackage_projects
      parameters:
        - name: id
          in: path
          description: A unique integer value identifying this project.
          required: true
          schema:
            type: integer
        - name: commit_to_project
          in: query
          description: Set to "true" to immediately commit tasks to the project.
          required: false
          schema:
            type: boolean
            default: true
        - name: preannotated_from_fields
          in: query
          description: >-
            List of fields to preannotate from the task data. For example, if you provide a list of `{"text": "text",
            "prediction": "label"}` items in the request, the system will create a task with the `text` field and a
            prediction with the `label` field when `preannoted_from_fields=["prediction"]`.
          required: false
          schema:
            type: array
            items:
              type: string
        - name: return_task_ids
          in: query
          description: Set to "true" to return task IDs in the response.
          required: false
          schema:
            type: boolean
            default: false
        - name: Authorization
          in: header
          description: >-
            The token (or API key) must be passed as a request header. You can find your user token on the User Account
            page in Label Studio. Example: <br><pre><code class="language-bash">curl
            https://label-studio-host/api/projects -H "Authorization: Token [your-token]"</code></pre>
          required: true
          schema:
            type: string
      responses:
        '201':
          description: >-
            Tasks successfully imported or import queued. **For non-Community editions**, the response will be
            `{"import": <import_id>}` which you can use to poll the import status. **For Community edition**, the
            response contains task counts and is processed synchronously.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/projects_import_tasks_Response_201'
        '400':
          description: Bad Request
          content:
            application/json:
              schema:
                type: string
      requestBody:
        content:
          application/json:
            schema:
              type: array
              items:
                $ref: '#/components/schemas/ImportApiRequest'
  /api/projects/{id}/import/predictions:
    post:
      operationId: import-predictions
      summary: Import predictions
      description: Import model predictions for tasks in the specified project.
      tags:
        - subpackage_projects
      parameters:
        - name: id
          in: path
          description: A unique integer value identifying this project.
          required: true
          schema:
            type: integer
        - name: Authorization
          in: header
          description: >-
            The token (or API key) must be passed as a request header. You can find your user token on the User Account
            page in Label Studio. Example: <br><pre><code class="language-bash">curl
            https://label-studio-host/api/projects -H "Authorization: Token [your-token]"</code></pre>
          required: true
          schema:
            type: string
      responses:
        '201':
          description: Predictions successfully imported
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/projects_import_predictions_Response_201'
        '400':
          description: Bad Request
          content:
            application/json:
              schema:
                description: Any type
      requestBody:
        content:
          application/json:
            schema:
              type: array
              items:
                $ref: '#/components/schemas/PredictionRequest'
  /api/projects/{id}/validate/:
    post:
      operationId: validate-label-config
      summary: Validate project label config
      description: Determine whether the label configuration for a specific project is valid.
      tags:
        - subpackage_projects
      parameters:
        - name: id
          in: path
          description: A unique integer value identifying this project.
          required: true
          schema:
            type: integer
        - name: Authorization
          in: header
          description: >-
            The token (or API key) must be passed as a request header. You can find your user token on the User Account
            page in Label Studio. Example: <br><pre><code class="language-bash">curl
            https://label-studio-host/api/projects -H "Authorization: Token [your-token]"</code></pre>
          required: true
          schema:
            type: string
      responses:
        '200':
          description: ''
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ProjectLabelConfig'
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/ProjectLabelConfigRequest'
  /api/projects/roles/:
    get:
      operationId: list
      summary: ✨ List project roles for current user
      description: |-
        <Card href="https://humansignal.com/goenterprise">
                <img style="pointer-events: none; margin-left: 0px; margin-right: 0px;" src="https://docs.humansignal.com/images/badge.svg" alt="Label Studio Enterprise badge"/>
                <p style="margin-top: 10px; font-size: 14px;">
                    This endpoint is not available in Label Studio Community Edition. [Learn more about Label Studio Enterprise](https://humansignal.com/goenterprise)
                </p>
            </Card>

                List project roles for requested IDs for the current user
                
      tags:
        - subpackage_projects.subpackage_projects/roles
      parameters:
        - name: ids
          in: query
          description: Multiple values may be separated by commas.
          required: false
          schema:
            type: array
            items:
              type: integer
        - name: ordering
          in: query
          description: Which field to use when ordering the results.
          required: false
          schema:
            type: string
        - name: Authorization
          in: header
          description: >-
            The token (or API key) must be passed as a request header. You can find your user token on the User Account
            page in Label Studio. Example: <br><pre><code class="language-bash">curl
            https://label-studio-host/api/projects -H "Authorization: Token [your-token]"</code></pre>
          required: true
          schema:
            type: string
      responses:
        '200':
          description: ''
          content:
            application/json:
              schema:
                type: array
                items:
                  $ref: '#/components/schemas/ProjectRole'
    post:
      operationId: add
      summary: ✨ Create project role for user
      description: |-
        <Card href="https://humansignal.com/goenterprise">
                <img style="pointer-events: none; margin-left: 0px; margin-right: 0px;" src="https://docs.humansignal.com/images/badge.svg" alt="Label Studio Enterprise badge"/>
                <p style="margin-top: 10px; font-size: 14px;">
                    This endpoint is not available in Label Studio Community Edition. [Learn more about Label Studio Enterprise](https://humansignal.com/goenterprise)
                </p>
            </Card>

                Create project role for user allowing the user the same access level provided by organization role.
                
      tags:
        - subpackage_projects.subpackage_projects/roles
      parameters:
        - name: Authorization
          in: header
          description: >-
            The token (or API key) must be passed as a request header. You can find your user token on the User Account
            page in Label Studio. Example: <br><pre><code class="language-bash">curl
            https://label-studio-host/api/projects -H "Authorization: Token [your-token]"</code></pre>
          required: true
          schema:
            type: string
      responses:
        '201':
          description: Role created
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ProjectRole'
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/ProjectRoleRequest'
  /api/projects/roles/{id}/:
    delete:
      operationId: remove
      summary: ✨ Remove project role for user
      description: |-
        <Card href="https://humansignal.com/goenterprise">
                <img style="pointer-events: none; margin-left: 0px; margin-right: 0px;" src="https://docs.humansignal.com/images/badge.svg" alt="Label Studio Enterprise badge"/>
                <p style="margin-top: 10px; font-size: 14px;">
                    This endpoint is not available in Label Studio Community Edition. [Learn more about Label Studio Enterprise](https://humansignal.com/goenterprise)
                </p>
            </Card>

                Remove project role for user allowing the user the same access level provided by organization role.
                
      tags:
        - subpackage_projects.subpackage_projects/roles
      parameters:
        - name: id
          in: path
          description: A unique integer value identifying this project role.
          required: true
          schema:
            type: integer
        - name: Authorization
          in: header
          description: >-
            The token (or API key) must be passed as a request header. You can find your user token on the User Account
            page in Label Studio. Example: <br><pre><code class="language-bash">curl
            https://label-studio-host/api/projects -H "Authorization: Token [your-token]"</code></pre>
          required: true
          schema:
            type: string
      responses:
        '200':
          description: Successful response
  /api/projects/{id}/roles:
    get:
      operationId: get
      summary: ✨ List project roles
      description: |-
        <Card href="https://humansignal.com/goenterprise">
                <img style="pointer-events: none; margin-left: 0px; margin-right: 0px;" src="https://docs.humansignal.com/images/badge.svg" alt="Label Studio Enterprise badge"/>
                <p style="margin-top: 10px; font-size: 14px;">
                    This endpoint is not available in Label Studio Community Edition. [Learn more about Label Studio Enterprise](https://humansignal.com/goenterprise)
                </p>
            </Card>

                List users and their project level roles for a given project.
                If user is not listed here and is a member of the project then they would behave as assigned role in organization.
                
      tags:
        - subpackage_projects.subpackage_projects/roles
      parameters:
        - name: id
          in: path
          required: true
          schema:
            type: integer
        - name: Authorization
          in: header
          description: >-
            The token (or API key) must be passed as a request header. You can find your user token on the User Account
            page in Label Studio. Example: <br><pre><code class="language-bash">curl
            https://label-studio-host/api/projects -H "Authorization: Token [your-token]"</code></pre>
          required: true
          schema:
            type: string
      responses:
        '200':
          description: ''
          content:
            application/json:
              schema:
                type: array
                items:
                  $ref: '#/components/schemas/ProjectRole'
  /api/projects/{id}/metricparam/:
    get:
      operationId: get
      summary: ✨ Get project metrics configuration
      description: |-
        <Card href="https://humansignal.com/goenterprise">
                <img style="pointer-events: none; margin-left: 0px; margin-right: 0px;" src="https://docs.humansignal.com/images/badge.svg" alt="Label Studio Enterprise badge"/>
                <p style="margin-top: 10px; font-size: 14px;">
                    This endpoint is not available in Label Studio Community Edition. [Learn more about Label Studio Enterprise](https://humansignal.com/goenterprise)
                </p>
            </Card>
        Get the current metrics configuration for a project.
      tags:
        - subpackage_projects.subpackage_projects/metrics
      parameters:
        - name: id
          in: path
          required: true
          schema:
            type: integer
        - name: Authorization
          in: header
          description: >-
            The token (or API key) must be passed as a request header. You can find your user token on the User Account
            page in Label Studio. Example: <br><pre><code class="language-bash">curl
            https://label-studio-host/api/projects -H "Authorization: Token [your-token]"</code></pre>
          required: true
          schema:
            type: string
      responses:
        '200':
          description: Current metrics configuration
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/MetricParam'
    post:
      operationId: update
      summary: ✨ Update project metrics configuration
      description: |-
        <Card href="https://humansignal.com/goenterprise">
                <img style="pointer-events: none; margin-left: 0px; margin-right: 0px;" src="https://docs.humansignal.com/images/badge.svg" alt="Label Studio Enterprise badge"/>
                <p style="margin-top: 10px; font-size: 14px;">
                    This endpoint is not available in Label Studio Community Edition. [Learn more about Label Studio Enterprise](https://humansignal.com/goenterprise)
                </p>
            </Card>
        Update metrics strategy and parameters for a project.
      tags:
        - subpackage_projects.subpackage_projects/metrics
      parameters:
        - name: id
          in: path
          required: true
          schema:
            type: integer
        - name: Authorization
          in: header
          description: >-
            The token (or API key) must be passed as a request header. You can find your user token on the User Account
            page in Label Studio. Example: <br><pre><code class="language-bash">curl
            https://label-studio-host/api/projects -H "Authorization: Token [your-token]"</code></pre>
          required: true
          schema:
            type: string
      responses:
        '200':
          description: Updated metrics configuration
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/MetricParam'
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/MetricParamUpdateRequest'
  /api/projects/{id}/aws-custom-function:
    get:
      operationId: get-lambda
      summary: ✨ Get AWS custom metric code
      description: |-
        <Card href="https://humansignal.com/goenterprise">
                <img style="pointer-events: none; margin-left: 0px; margin-right: 0px;" src="https://docs.humansignal.com/images/badge.svg" alt="Label Studio Enterprise badge"/>
                <p style="margin-top: 10px; font-size: 14px;">
                    This endpoint is not available in Label Studio Community Edition. [Learn more about Label Studio Enterprise](https://humansignal.com/goenterprise)
                </p>
            </Card>
        Get the AWS Lambda code for the custom metric configured for this project.
      tags:
        - subpackage_projects.subpackage_projects/metrics.subpackage_projects/metrics/custom
      parameters:
        - name: id
          in: path
          required: true
          schema:
            type: integer
        - name: Authorization
          in: header
          description: >-
            The token (or API key) must be passed as a request header. You can find your user token on the User Account
            page in Label Studio. Example: <br><pre><code class="language-bash">curl
            https://label-studio-host/api/projects -H "Authorization: Token [your-token]"</code></pre>
          required: true
          schema:
            type: string
      responses:
        '200':
          description: Lambda code and deployment status
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/projects_metrics_custom_get_lambda_Response_200'
    post:
      operationId: update-lambda
      summary: ✨ Update AWS custom metric Lambda
      description: |-
        <Card href="https://humansignal.com/goenterprise">
                <img style="pointer-events: none; margin-left: 0px; margin-right: 0px;" src="https://docs.humansignal.com/images/badge.svg" alt="Label Studio Enterprise badge"/>
                <p style="margin-top: 10px; font-size: 14px;">
                    This endpoint is not available in Label Studio Community Edition. [Learn more about Label Studio Enterprise](https://humansignal.com/goenterprise)
                </p>
            </Card>
        Create or update the AWS Lambda function used for custom metrics in this project.
      tags:
        - subpackage_projects.subpackage_projects/metrics.subpackage_projects/metrics/custom
      parameters:
        - name: id
          in: path
          required: true
          schema:
            type: integer
        - name: Authorization
          in: header
          description: >-
            The token (or API key) must be passed as a request header. You can find your user token on the User Account
            page in Label Studio. Example: <br><pre><code class="language-bash">curl
            https://label-studio-host/api/projects -H "Authorization: Token [your-token]"</code></pre>
          required: true
          schema:
            type: string
      responses:
        '200':
          description: Updated successfully
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/projects_metrics_custom_update_lambda_Response_200'
        '500':
          description: Error updating function
          content:
            application/json:
              schema:
                description: Any type
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/AWSCustomFunctionUpdateRequest'
  /api/projects/{id}/aws-custom-function-logs:
    get:
      operationId: logs
      summary: ✨ Get AWS lambda logs for project
      description: |-
        <Card href="https://humansignal.com/goenterprise">
                <img style="pointer-events: none; margin-left: 0px; margin-right: 0px;" src="https://docs.humansignal.com/images/badge.svg" alt="Label Studio Enterprise badge"/>
                <p style="margin-top: 10px; font-size: 14px;">
                    This endpoint is not available in Label Studio Community Edition. [Learn more about Label Studio Enterprise](https://humansignal.com/goenterprise)
                </p>
            </Card>
        Get AWS lambda logs for project, including filtering by start and end dates
      tags:
        - subpackage_projects.subpackage_projects/metrics.subpackage_projects/metrics/custom
      parameters:
        - name: id
          in: path
          required: true
          schema:
            type: integer
        - name: end_date
          in: query
          description: End date for AWS logs filtering in format %Y-%m-%d
          required: false
          schema:
            type: string
        - name: limit
          in: query
          description: Limit the number of logs to return
          required: false
          schema:
            type: integer
            default: 100
        - name: start_date
          in: query
          description: Start date for AWS logs filtering in format %Y-%m-%d
          required: false
          schema:
            type: string
        - name: Authorization
          in: header
          description: >-
            The token (or API key) must be passed as a request header. You can find your user token on the User Account
            page in Label Studio. Example: <br><pre><code class="language-bash">curl
            https://label-studio-host/api/projects -H "Authorization: Token [your-token]"</code></pre>
          required: true
          schema:
            type: string
      responses:
        '200':
          description: Successful response returns list of AWS lambda logs
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/projects_metrics_custom_logs_Response_200'
  /api/projects/{id}/check-function:
    post:
      operationId: check-function
      summary: ✨ Check custom matching function code
      description: |-
        <Card href="https://humansignal.com/goenterprise">
                <img style="pointer-events: none; margin-left: 0px; margin-right: 0px;" src="https://docs.humansignal.com/images/badge.svg" alt="Label Studio Enterprise badge"/>
                <p style="margin-top: 10px; font-size: 14px;">
                    This endpoint is not available in Label Studio Community Edition. [Learn more about Label Studio Enterprise](https://humansignal.com/goenterprise)
                </p>
            </Card>
        Validate custom matching function code for the project.
      tags:
        - subpackage_projects.subpackage_projects/metrics.subpackage_projects/metrics/custom
      parameters:
        - name: id
          in: path
          required: true
          schema:
            type: integer
        - name: Authorization
          in: header
          description: >-
            The token (or API key) must be passed as a request header. You can find your user token on the User Account
            page in Label Studio. Example: <br><pre><code class="language-bash">curl
            https://label-studio-host/api/projects -H "Authorization: Token [your-token]"</code></pre>
          required: true
          schema:
            type: string
      responses:
        '200':
          description: Code is valid
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/projects_metrics_custom_check_function_Response_200'
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/CheckMatchingFunctionRequestRequest'
  /api/projects/{id}/custom-function:
    get:
      operationId: get-function
      summary: ✨ Get custom metric code
      description: >-
        <Card href="https://humansignal.com/goenterprise">
                <img style="pointer-events: none; margin-left: 0px; margin-right: 0px;" src="https://docs.humansignal.com/images/badge.svg" alt="Label Studio Enterprise badge"/>
                <p style="margin-top: 10px; font-size: 14px;">
                    This endpoint is not available in Label Studio Community Edition. [Learn more about Label Studio Enterprise](https://humansignal.com/goenterprise)
                </p>
            </Card>
        Get the custom metric function code for this project. The server routes to the active cloud provider (AWS Lambda
        or GCP Cloud Functions) based on the CUSTOM_METRIC_PROVIDER setting.
      tags:
        - subpackage_projects.subpackage_projects/metrics.subpackage_projects/metrics/custom
      parameters:
        - name: id
          in: path
          required: true
          schema:
            type: integer
        - name: Authorization
          in: header
          description: >-
            The token (or API key) must be passed as a request header. You can find your user token on the User Account
            page in Label Studio. Example: <br><pre><code class="language-bash">curl
            https://label-studio-host/api/projects -H "Authorization: Token [your-token]"</code></pre>
          required: true
          schema:
            type: string
      responses:
        '200':
          description: Function code and deployment status
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/projects_metrics_custom_get_function_Response_200'
    post:
      operationId: deploy-function
      summary: ✨ Deploy custom metric function
      description: >-
        <Card href="https://humansignal.com/goenterprise">
                <img style="pointer-events: none; margin-left: 0px; margin-right: 0px;" src="https://docs.humansignal.com/images/badge.svg" alt="Label Studio Enterprise badge"/>
                <p style="margin-top: 10px; font-size: 14px;">
                    This endpoint is not available in Label Studio Community Edition. [Learn more about Label Studio Enterprise](https://humansignal.com/goenterprise)
                </p>
            </Card>
        Create or update the custom metric function for this project. The server routes to the active cloud provider
        (AWS Lambda or GCP Cloud Functions) based on the CUSTOM_METRIC_PROVIDER setting.
      tags:
        - subpackage_projects.subpackage_projects/metrics.subpackage_projects/metrics/custom
      parameters:
        - name: id
          in: path
          required: true
          schema:
            type: integer
        - name: Authorization
          in: header
          description: >-
            The token (or API key) must be passed as a request header. You can find your user token on the User Account
            page in Label Studio. Example: <br><pre><code class="language-bash">curl
            https://label-studio-host/api/projects -H "Authorization: Token [your-token]"</code></pre>
          required: true
          schema:
            type: string
      responses:
        '200':
          description: Updated successfully
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/projects_metrics_custom_deploy_function_Response_200'
        '500':
          description: Error updating function
          content:
            application/json:
              schema:
                description: Any type
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/CustomFunctionCodeRequestRequest'
  /api/projects/{id}/custom-function-logs:
    get:
      operationId: get-function-logs
      summary: ✨ Get custom metric function logs
      description: >-
        <Card href="https://humansignal.com/goenterprise">
                <img style="pointer-events: none; margin-left: 0px; margin-right: 0px;" src="https://docs.humansignal.com/images/badge.svg" alt="Label Studio Enterprise badge"/>
                <p style="margin-top: 10px; font-size: 14px;">
                    This endpoint is not available in Label Studio Community Edition. [Learn more about Label Studio Enterprise](https://humansignal.com/goenterprise)
                </p>
            </Card>
        Get execution logs for the custom metric function. The server routes to the active cloud provider based on the
        CUSTOM_METRIC_PROVIDER setting.
      tags:
        - subpackage_projects.subpackage_projects/metrics.subpackage_projects/metrics/custom
      parameters:
        - name: id
          in: path
          required: true
          schema:
            type: integer
        - name: end_date
          in: query
          description: End date for log filtering in format %Y-%m-%d
          required: false
          schema:
            type: string
        - name: limit
          in: query
          description: Limit the number of logs to return
          required: false
          schema:
            type: integer
            default: 100
        - name: start_date
          in: query
          description: Start date for log filtering in format %Y-%m-%d
          required: false
          schema:
            type: string
        - name: Authorization
          in: header
          description: >-
            The token (or API key) must be passed as a request header. You can find your user token on the User Account
            page in Label Studio. Example: <br><pre><code class="language-bash">curl
            https://label-studio-host/api/projects -H "Authorization: Token [your-token]"</code></pre>
          required: true
          schema:
            type: string
      responses:
        '200':
          description: List of function execution logs
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/projects_metrics_custom_get_function_logs_Response_200'
  /api/projects/{id}/gcp-custom-function:
    get:
      operationId: get-gcp-function
      summary: ✨ Get GCP custom metric code
      description: |-
        <Card href="https://humansignal.com/goenterprise">
                <img style="pointer-events: none; margin-left: 0px; margin-right: 0px;" src="https://docs.humansignal.com/images/badge.svg" alt="Label Studio Enterprise badge"/>
                <p style="margin-top: 10px; font-size: 14px;">
                    This endpoint is not available in Label Studio Community Edition. [Learn more about Label Studio Enterprise](https://humansignal.com/goenterprise)
                </p>
            </Card>
        Get the GCP Cloud Function code for the custom metric configured for this project.
      tags:
        - subpackage_projects.subpackage_projects/metrics.subpackage_projects/metrics/custom
      parameters:
        - name: id
          in: path
          required: true
          schema:
            type: integer
        - name: Authorization
          in: header
          description: >-
            The token (or API key) must be passed as a request header. You can find your user token on the User Account
            page in Label Studio. Example: <br><pre><code class="language-bash">curl
            https://label-studio-host/api/projects -H "Authorization: Token [your-token]"</code></pre>
          required: true
          schema:
            type: string
      responses:
        '200':
          description: Cloud Function code and deployment status
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/projects_metrics_custom_get_gcp_function_Response_200'
    post:
      operationId: update-gcp-function
      summary: ✨ Update GCP custom metric Cloud Function
      description: |-
        <Card href="https://humansignal.com/goenterprise">
                <img style="pointer-events: none; margin-left: 0px; margin-right: 0px;" src="https://docs.humansignal.com/images/badge.svg" alt="Label Studio Enterprise badge"/>
                <p style="margin-top: 10px; font-size: 14px;">
                    This endpoint is not available in Label Studio Community Edition. [Learn more about Label Studio Enterprise](https://humansignal.com/goenterprise)
                </p>
            </Card>
        Create or update the GCP Cloud Function used for custom metrics in this project.
      tags:
        - subpackage_projects.subpackage_projects/metrics.subpackage_projects/metrics/custom
      parameters:
        - name: id
          in: path
          required: true
          schema:
            type: integer
        - name: Authorization
          in: header
          description: >-
            The token (or API key) must be passed as a request header. You can find your user token on the User Account
            page in Label Studio. Example: <br><pre><code class="language-bash">curl
            https://label-studio-host/api/projects -H "Authorization: Token [your-token]"</code></pre>
          required: true
          schema:
            type: string
      responses:
        '200':
          description: Updated successfully
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/projects_metrics_custom_update_gcp_function_Response_200'
        '500':
          description: Error updating function
          content:
            application/json:
              schema:
                description: Any type
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/GCPCustomFunctionUpdateRequest'
  /api/projects/{id}/export:
    get:
      operationId: download-sync
      summary: '[Deprecated] Easy export of tasks and annotations'
      description: |2-

                This endpoint is deprecated in Enterprise. Use the async export API instead:
                POST /api/projects/{id}/exports/ (see [Create new export](/api#operation/api_projects_exports_create)).

                In Label Studio Enterprise, this endpoint will always return a 404 Not Found response with instructions to use the async export API.

                <i>Note: if you have a large project it's recommended to use
                export snapshots, this easy export endpoint might have timeouts.</i><br/><br>
                Export annotated tasks as a file in a specific format.
                For example, to export JSON annotations for a project to a file called `annotations.json`,
                run the following from the command line:
                ```bash
                curl -X GET http://localhost:8000/api/projects/{id}/export?exportType=JSON -H 'Authorization: Token abc123' --output 'annotations.json'
                ```
                To export all tasks, including skipped tasks and others without annotations, run the following from the command line:
                ```bash
                curl -X GET http://localhost:8000/api/projects/{id}/export?exportType=JSON&download_all_tasks=true -H 'Authorization: Token abc123' --output 'annotations.json'
                ```
                To export specific tasks with IDs of 123 and 345, run the following from the command line:
                ```bash
                curl -X GET 'http://localhost:8000/api/projects/{id}/export?ids[]=123&ids[]=345' -H 'Authorization: Token abc123' --output 'annotations.json'
                ```
                
      tags:
        - subpackage_projects.subpackage_projects/exports
      parameters:
        - name: id
          in: path
          description: A unique integer value identifying this project.
          required: true
          schema:
            type: integer
        - name: download_all_tasks
          in: query
          description: If true, download all tasks regardless of status. If false, download only annotated tasks.
          required: false
          schema:
            type: boolean
        - name: download_resources
          in: query
          description: If true, download all resource files such as images, audio, and others relevant to the tasks.
          required: false
          schema:
            type: boolean
        - name: export_type
          in: query
          description: Selected export format (JSON by default)
          required: false
          schema:
            type: string
        - name: ids
          in: query
          description: Specify a list of task IDs to retrieve only the details for those tasks.
          required: false
          schema:
            type: array
            items:
              type: string
        - name: Authorization
          in: header
          description: >-
            The token (or API key) must be passed as a request header. You can find your user token on the User Account
            page in Label Studio. Example: <br><pre><code class="language-bash">curl
            https://label-studio-host/api/projects -H "Authorization: Token [your-token]"</code></pre>
          required: true
          schema:
            type: string
      responses:
        '200':
          description: Exported data
          content:
            application/json:
              schema:
                type: string
                format: binary
  /api/projects/{id}/export/formats:
    get:
      operationId: list-formats
      summary: '[Deprecated] Get export formats'
      description: >-

        This endpoint is deprecated in Enterprise. Use the async export API instead:

        POST /api/projects/{{id}}/exports/ (see [Create new export](/api#operation/api_projects_exports_create)).


        In Label Studio Enterprise, this endpoint will always return a 404 Not Found response with instructions to use
        the async export API.


        Retrieve the available export formats for the current project by ID.
      tags:
        - subpackage_projects.subpackage_projects/exports
      parameters:
        - name: id
          in: path
          description: A unique integer value identifying this project.
          required: true
          schema:
            type: integer
        - name: Authorization
          in: header
          description: >-
            The token (or API key) must be passed as a request header. You can find your user token on the User Account
            page in Label Studio. Example: <br><pre><code class="language-bash">curl
            https://label-studio-host/api/projects -H "Authorization: Token [your-token]"</code></pre>
          required: true
          schema:
            type: string
      responses:
        '200':
          description: Export formats
          content:
            application/json:
              schema:
                type: array
                items:
                  type: string
  /api/projects/{id}/exports/:
    get:
      operationId: list
      summary: List all export snapshots
      description: Returns a list of exported files for a specific project by ID.
      tags:
        - subpackage_projects.subpackage_projects/exports
      parameters:
        - name: id
          in: path
          description: A unique integer value identifying this project.
          required: true
          schema:
            type: integer
        - name: ordering
          in: query
          description: Which field to use when ordering the results.
          required: false
          schema:
            type: string
        - name: Authorization
          in: header
          description: >-
            The token (or API key) must be passed as a request header. You can find your user token on the User Account
            page in Label Studio. Example: <br><pre><code class="language-bash">curl
            https://label-studio-host/api/projects -H "Authorization: Token [your-token]"</code></pre>
          required: true
          schema:
            type: string
      responses:
        '200':
          description: ''
          content:
            application/json:
              schema:
                type: array
                items:
                  $ref: '#/components/schemas/Export'
    post:
      operationId: create
      summary: Create new export snapshot
      description: Create a new export request to start a background task and generate an export file for a specific project by ID.
      tags:
        - subpackage_projects.subpackage_projects/exports
      parameters:
        - name: id
          in: path
          description: A unique integer value identifying this project.
          required: true
          schema:
            type: integer
        - name: Authorization
          in: header
          description: >-
            The token (or API key) must be passed as a request header. You can find your user token on the User Account
            page in Label Studio. Example: <br><pre><code class="language-bash">curl
            https://label-studio-host/api/projects -H "Authorization: Token [your-token]"</code></pre>
          required: true
          schema:
            type: string
      responses:
        '201':
          description: ''
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/LseExportCreate'
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/LseExportCreateRequest'
  /api/projects/{id}/exports/{export_pk}:
    get:
      operationId: get
      summary: Get export snapshot by ID
      description: Retrieve information about an export file by export ID for a specific project.
      tags:
        - subpackage_projects.subpackage_projects/exports
      parameters:
        - name: export_pk
          in: path
          description: Primary key identifying the export file.
          required: true
          schema:
            type: integer
        - name: id
          in: path
          description: A unique integer value identifying this project.
          required: true
          schema:
            type: integer
        - name: Authorization
          in: header
          description: >-
            The token (or API key) must be passed as a request header. You can find your user token on the User Account
            page in Label Studio. Example: <br><pre><code class="language-bash">curl
            https://label-studio-host/api/projects -H "Authorization: Token [your-token]"</code></pre>
          required: true
          schema:
            type: string
      responses:
        '200':
          description: ''
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Export'
    delete:
      operationId: delete
      summary: Delete export snapshot
      description: Delete an export file by specified export ID.
      tags:
        - subpackage_projects.subpackage_projects/exports
      parameters:
        - name: export_pk
          in: path
          description: Primary key identifying the export file.
          required: true
          schema:
            type: integer
        - name: id
          in: path
          description: A unique integer value identifying this project.
          required: true
          schema:
            type: integer
        - name: Authorization
          in: header
          description: >-
            The token (or API key) must be passed as a request header. You can find your user token on the User Account
            page in Label Studio. Example: <br><pre><code class="language-bash">curl
            https://label-studio-host/api/projects -H "Authorization: Token [your-token]"</code></pre>
          required: true
          schema:
            type: string
      responses:
        '200':
          description: Successful response
  /api/projects/{id}/exports/{export_pk}/convert:
    post:
      operationId: convert
      summary: Export conversion
      description: Convert export snapshot to selected format
      tags:
        - subpackage_projects.subpackage_projects/exports
      parameters:
        - name: export_pk
          in: path
          description: Primary key identifying the export file.
          required: true
          schema:
            type: integer
        - name: id
          in: path
          description: A unique integer value identifying this project.
          required: true
          schema:
            type: integer
        - name: Authorization
          in: header
          description: >-
            The token (or API key) must be passed as a request header. You can find your user token on the User Account
            page in Label Studio. Example: <br><pre><code class="language-bash">curl
            https://label-studio-host/api/projects -H "Authorization: Token [your-token]"</code></pre>
          required: true
          schema:
            type: string
      responses:
        '200':
          description: ''
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/projects_exports_convert_Response_200'
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/ExportConvertRequest'
  /api/projects/{id}/exports/{export_pk}/download:
    get:
      operationId: download
      summary: Download export snapshot as file in specified format
      description: |2-

                Download an export file in the specified format for a specific project. Specify the project ID with the `id`
                parameter in the path and the ID of the export file you want to download using the `export_pk` parameter
                in the path.

                Get the `export_pk` from the response of the request to [Create new export](/api#operation/api_projects_exports_create)
                or after [listing export files](/api#operation/api_projects_exports_list).
                
      tags:
        - subpackage_projects.subpackage_projects/exports
      parameters:
        - name: export_pk
          in: path
          description: Primary key identifying the export file.
          required: true
          schema:
            type: integer
        - name: id
          in: path
          description: A unique integer value identifying this project.
          required: true
          schema:
            type: integer
        - name: exportType
          in: query
          description: Selected export format
          required: false
          schema:
            type: string
        - name: Authorization
          in: header
          description: >-
            The token (or API key) must be passed as a request header. You can find your user token on the User Account
            page in Label Studio. Example: <br><pre><code class="language-bash">curl
            https://label-studio-host/api/projects -H "Authorization: Token [your-token]"</code></pre>
          required: true
          schema:
            type: string
      responses:
        '200':
          description: Export file
          content:
            application/octet-stream:
              schema:
                type: string
                format: binary
  /api/projects/{id}/members/:
    post:
      operationId: add
      summary: ✨ Add project member
      description: |-
        <Card href="https://humansignal.com/goenterprise">
                <img style="pointer-events: none; margin-left: 0px; margin-right: 0px;" src="https://docs.humansignal.com/images/badge.svg" alt="Label Studio Enterprise badge"/>
                <p style="margin-top: 10px; font-size: 14px;">
                    This endpoint is not available in Label Studio Community Edition. [Learn more about Label Studio Enterprise](https://humansignal.com/goenterprise)
                </p>
            </Card>
        Add a member to a specific project.
      tags:
        - subpackage_projects.subpackage_projects/members
      parameters:
        - name: id
          in: path
          required: true
          schema:
            type: integer
        - name: Authorization
          in: header
          description: >-
            The token (or API key) must be passed as a request header. You can find your user token on the User Account
            page in Label Studio. Example: <br><pre><code class="language-bash">curl
            https://label-studio-host/api/projects -H "Authorization: Token [your-token]"</code></pre>
          required: true
          schema:
            type: string
      responses:
        '201':
          description: ''
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ProjectMember'
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/ProjectMemberRequest'
    delete:
      operationId: remove
      summary: ✨ Remove member from project
      description: >-
        <Card href="https://humansignal.com/goenterprise">
                <img style="pointer-events: none; margin-left: 0px; margin-right: 0px;" src="https://docs.humansignal.com/images/badge.svg" alt="Label Studio Enterprise badge"/>
                <p style="margin-top: 10px; font-size: 14px;">
                    This endpoint is not available in Label Studio Community Edition. [Learn more about Label Studio Enterprise](https://humansignal.com/goenterprise)
                </p>
            </Card>
        Remove a member from a specific project. Pass the member ID via the `user` query parameter. For backward
        compatibility, a JSON body with `user` is still accepted.
      tags:
        - subpackage_projects.subpackage_projects/members
      parameters:
        - name: id
          in: path
          required: true
          schema:
            type: integer
        - name: user
          in: query
          description: User ID to remove from the project. Optional for backward compatibility with DELETE body.
          required: false
          schema:
            type: integer
        - name: Authorization
          in: header
          description: >-
            The token (or API key) must be passed as a request header. You can find your user token on the User Account
            page in Label Studio. Example: <br><pre><code class="language-bash">curl
            https://label-studio-host/api/projects -H "Authorization: Token [your-token]"</code></pre>
          required: true
          schema:
            type: string
      responses:
        '200':
          description: Successful response
  /api/projects/{id}/members/bulk/:
    post:
      operationId: post
      summary: ✨ Bulk assign project members
      description: |-
        <Card href="https://humansignal.com/goenterprise">
                <img style="pointer-events: none; margin-left: 0px; margin-right: 0px;" src="https://docs.humansignal.com/images/badge.svg" alt="Label Studio Enterprise badge"/>
                <p style="margin-top: 10px; font-size: 14px;">
                    This endpoint is not available in Label Studio Community Edition. [Learn more about Label Studio Enterprise](https://humansignal.com/goenterprise)
                </p>
            </Card>
        Assign project members in bulk.
      tags:
        - subpackage_projects.subpackage_projects/members.subpackage_projects/members/bulk
      parameters:
        - name: id
          in: path
          required: true
          schema:
            type: integer
        - name: last_activity__gte
          in: query
          description: Filter by last activity (ISO 8601 formatted date). Only when all=True.
          required: false
          schema:
            type: string
        - name: last_activity__lte
          in: query
          description: Filter by last activity upper bound (ISO 8601 formatted date). Only when all=True.
          required: false
          schema:
            type: string
        - name: role
          in: query
          description: >-
            Filter by role, project roles take precedence over organization roles. Only when all=True. (comma-separated
            values)
          required: false
          schema:
            type: string
        - name: search
          in: query
          description: Search term for filtering members by name, email, or username. Only when all=True.
          required: false
          schema:
            type: string
        - name: tags
          in: query
          description: Multiple values may be separated by commas. (comma-separated values)
          required: false
          schema:
            type: string
        - name: user_type
          in: query
          description: Multiple values may be separated by commas. (comma-separated values)
          required: false
          schema:
            type: string
        - name: Authorization
          in: header
          description: >-
            The token (or API key) must be passed as a request header. You can find your user token on the User Account
            page in Label Studio. Example: <br><pre><code class="language-bash">curl
            https://label-studio-host/api/projects -H "Authorization: Token [your-token]"</code></pre>
          required: true
          schema:
            type: string
      responses:
        '200':
          description: ''
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/projects_members_bulk_post_Response_200'
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/ProjectMemberBulkAssignRequest'
    delete:
      operationId: delete
      summary: ✨ Bulk unassign project members
      description: >-
        <Card href="https://humansignal.com/goenterprise">
                <img style="pointer-events: none; margin-left: 0px; margin-right: 0px;" src="https://docs.humansignal.com/images/badge.svg" alt="Label Studio Enterprise badge"/>
                <p style="margin-top: 10px; font-size: 14px;">
                    This endpoint is not available in Label Studio Community Edition. [Learn more about Label Studio Enterprise](https://humansignal.com/goenterprise)
                </p>
            </Card>
        Unassign project members in bulk. Pass selector fields via query parameters (`all`, `included`, `excluded`) and
        optional member filters (`search`, `role`, `tags`, `last_activity__gte`, `last_activity__lte`). For backward
        compatibility, a JSON body with bulk fields is still accepted.
      tags:
        - subpackage_projects.subpackage_projects/members.subpackage_projects/members/bulk
      parameters:
        - name: id
          in: path
          required: true
          schema:
            type: integer
        - name: all
          in: query
          description: Apply unassignment to all currently matched project members.
          required: false
          schema:
            type: boolean
        - name: excluded
          in: query
          description: Comma-separated list of user IDs to keep assigned when `all=true`.
          required: false
          schema:
            type: string
        - name: included
          in: query
          description: Comma-separated list of user IDs to unassign when `all=false`.
          required: false
          schema:
            type: string
        - name: last_activity__gte
          in: query
          description: Filter by last activity (ISO 8601 formatted date). Only when all=True.
          required: false
          schema:
            type: string
        - name: last_activity__lte
          in: query
          description: Filter by last activity upper bound (ISO 8601 formatted date). Only when all=True.
          required: false
          schema:
            type: string
        - name: role
          in: query
          description: >-
            Filter by role, project roles take precedence over organization roles. Only when all=True. (comma-separated
            values)
          required: false
          schema:
            type: string
        - name: search
          in: query
          description: Search term for filtering members by name, email, or username. Only when all=True.
          required: false
          schema:
            type: string
        - name: tags
          in: query
          description: Multiple values may be separated by commas. (comma-separated values)
          required: false
          schema:
            type: string
        - name: user_type
          in: query
          description: Multiple values may be separated by commas. (comma-separated values)
          required: false
          schema:
            type: string
        - name: Authorization
          in: header
          description: >-
            The token (or API key) must be passed as a request header. You can find your user token on the User Account
            page in Label Studio. Example: <br><pre><code class="language-bash">curl
            https://label-studio-host/api/projects -H "Authorization: Token [your-token]"</code></pre>
          required: true
          schema:
            type: string
      responses:
        '200':
          description: ''
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/projects_members_bulk_delete_Response_200'
  /api/projects/{id}/members/paginated/:
    get:
      operationId: list
      summary: ✨ Get project members paginated
      description: >-
        <Card href="https://humansignal.com/goenterprise">
                <img style="pointer-events: none; margin-left: 0px; margin-right: 0px;" src="https://docs.humansignal.com/images/badge.svg" alt="Label Studio Enterprise badge"/>
                <p style="margin-top: 10px; font-size: 14px;">
                    This endpoint is not available in Label Studio Community Edition. [Learn more about Label Studio Enterprise](https://humansignal.com/goenterprise)
                </p>
            </Card>
        Retrieve the members for a specific project.


        **Response Fields:**

        - `implicit_member` (boolean): Indicates if the user is an implicit member.
          - `true`: User has access via workspace membership or organization role (Administrator/Owner)
          - `false`: User is an explicit project member (added directly to the project)
        - `project_role` (string|null): Project-specific role override if assigned, null otherwise


        **Note:** Users can have both explicit membership AND implicit access. The `implicit_member` field is `false` if
        the user has an explicit ProjectMember entry, regardless of whether they also have implicit access via workspace
        or org role.
      tags:
        - subpackage_projects.subpackage_projects/members.subpackage_projects/members/paginated
      parameters:
        - name: id
          in: path
          required: true
          schema:
            type: integer
        - name: ids
          in: query
          description: Comma-separated list of user IDs to filter by
          required: false
          schema:
            type: string
        - name: implicit
          in: query
          description: >-
            Include/Exclude implicit project members in the results. If not provided, explicit + implicit members are
            returned.
          required: false
          schema:
            type: boolean
        - name: last_activity__gte
          in: query
          description: >-
            Filter by last activity time (ISO 8601 datetime). Returns users with last activity greater than or equal to
            this time.
          required: false
          schema:
            type: string
            format: date-time
        - name: last_activity__lte
          in: query
          description: >-
            Filter by last activity time (ISO 8601 datetime). Returns users with last activity less than or equal to
            this time.
          required: false
          schema:
            type: string
            format: date-time
        - name: no_annotators
          in: query
          description: Exclude annotators from the results
          required: false
          schema:
            type: boolean
        - name: ordering
          in: query
          description: >-
            Ordering field. Prefix with "-" for descending order. Allowed fields: id, email, first_name, last_name,
            username, last_activity, role, date_joined


            **Note on role ordering:**

            When ordering by "role", the system uses the effective role:

            - Project-specific role if assigned (takes precedence)

            - Organization role if no project role is assigned


            Roles are sorted alphabetically by their code: AD (Administrator), AN (Annotator), DI (Disabled), MA
            (Manager), NO (Not Activated), OW (Owner), RE (Reviewer)
          required: false
          schema:
            type: string
        - name: page
          in: query
          description: A page number within the paginated result set.
          required: false
          schema:
            type: integer
        - name: page_size
          in: query
          description: Number of results to return per page.
          required: false
          schema:
            type: integer
        - name: role
          in: query
          description: >-
            Filter members by role. Accepts single role or comma-separated list of roles.


            **Format:**

            - Single role: `?role=RE`

            - Multiple roles: `?role=AN,RE` (users with ANY of these roles)


            **Role Codes:**

            - `OW` = Owner

            - `AD` = Administrator

            - `MA` = Manager

            - `RE` = Reviewer

            - `AN` = Annotator


            **Matching Logic:**

            Returns users who have any of the specified roles either:

            1. As their **project-specific role** (from project role assignments), OR

            2. As their **organization role** (if they have no project-specific role override)


            **Note:** Project-specific roles take precedence. If a user has a project role assigned, their organization
            role is ignored for filtering purposes.
          required: false
          schema:
            type: string
        - name: search
          in: query
          description: Search term for filtering members by name, email, or username
          required: false
          schema:
            type: string
        - name: tags
          in: query
          description: Filter members by tags. Use a comma-separated list of tag IDs.
          required: false
          schema:
            type: string
        - name: with_deleted
          in: query
          description: Include deleted members in the results
          required: false
          schema:
            type: boolean
        - name: Authorization
          in: header
          description: >-
            The token (or API key) must be passed as a request header. You can find your user token on the User Account
            page in Label Studio. Example: <br><pre><code class="language-bash">curl
            https://label-studio-host/api/projects -H "Authorization: Token [your-token]"</code></pre>
          required: true
          schema:
            type: string
      responses:
        '200':
          description: ''
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/PaginatedPaginatedProjectMemberList'
  /api/projects/{id}/model-stats/{model_version}/agreement:
    get:
      operationId: model-version-annotator-agreement
      summary: ✨ Get model-version overall agreement vs annotators
      description: |-
        <Card href="https://humansignal.com/goenterprise">
                <img style="pointer-events: none; margin-left: 0px; margin-right: 0px;" src="https://docs.humansignal.com/images/badge.svg" alt="Label Studio Enterprise badge"/>
                <p style="margin-top: 10px; font-size: 14px;">
                    This endpoint is not available in Label Studio Community Edition. [Learn more about Label Studio Enterprise](https://humansignal.com/goenterprise)
                </p>
            </Card>
        Get agreement between a given model version and all annotators in the project for overlapping tasks.
      tags:
        - subpackage_projects.subpackage_projects/stats
      parameters:
        - name: id
          in: path
          required: true
          schema:
            type: integer
        - name: model_version
          in: path
          required: true
          schema:
            type: string
        - name: Authorization
          in: header
          description: >-
            The token (or API key) must be passed as a request header. You can find your user token on the User Account
            page in Label Studio. Example: <br><pre><code class="language-bash">curl
            https://label-studio-host/api/projects -H "Authorization: Token [your-token]"</code></pre>
          required: true
          schema:
            type: string
      responses:
        '200':
          description: Model-version overall agreement vs annotators
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/projects_stats_model_version_annotator_agreement_Response_200'
  /api/projects/{id}/model-stats/{model_version}/agreement-groundtruth:
    get:
      operationId: model-version-ground-truth-agreement
      summary: ✨ Get model-version ground truth agreement
      description: |-
        <Card href="https://humansignal.com/goenterprise">
                <img style="pointer-events: none; margin-left: 0px; margin-right: 0px;" src="https://docs.humansignal.com/images/badge.svg" alt="Label Studio Enterprise badge"/>
                <p style="margin-top: 10px; font-size: 14px;">
                    This endpoint is not available in Label Studio Community Edition. [Learn more about Label Studio Enterprise](https://humansignal.com/goenterprise)
                </p>
            </Card>
        Get agreement between a given model version and ground truth annotations in the project for overlapping tasks.
      tags:
        - subpackage_projects.subpackage_projects/stats
      parameters:
        - name: id
          in: path
          required: true
          schema:
            type: integer
        - name: model_version
          in: path
          required: true
          schema:
            type: string
        - name: per_label
          in: query
          description: Calculate agreement per label
          required: false
          schema:
            type: boolean
            default: false
        - name: Authorization
          in: header
          description: >-
            The token (or API key) must be passed as a request header. You can find your user token on the User Account
            page in Label Studio. Example: <br><pre><code class="language-bash">curl
            https://label-studio-host/api/projects -H "Authorization: Token [your-token]"</code></pre>
          required: true
          schema:
            type: string
      responses:
        '200':
          description: Model-version ground truth agreement
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/projects_stats_model_version_ground_truth_agreement_Response_200'
  /api/projects/{id}/model-stats/{model_version}/prediction:
    get:
      operationId: model-version-prediction-agreement
      summary: ✨ Get model-version prediction agreement
      description: |-
        <Card href="https://humansignal.com/goenterprise">
                <img style="pointer-events: none; margin-left: 0px; margin-right: 0px;" src="https://docs.humansignal.com/images/badge.svg" alt="Label Studio Enterprise badge"/>
                <p style="margin-top: 10px; font-size: 14px;">
                    This endpoint is not available in Label Studio Community Edition. [Learn more about Label Studio Enterprise](https://humansignal.com/goenterprise)
                </p>
            </Card>
        Get agreement between a given model version and all other model versions in the project for overlapping tasks.
      tags:
        - subpackage_projects.subpackage_projects/stats
      parameters:
        - name: id
          in: path
          required: true
          schema:
            type: integer
        - name: model_version
          in: path
          required: true
          schema:
            type: string
        - name: per_label
          in: query
          description: Calculate agreement per label
          required: false
          schema:
            type: boolean
            default: false
        - name: Authorization
          in: header
          description: >-
            The token (or API key) must be passed as a request header. You can find your user token on the User Account
            page in Label Studio. Example: <br><pre><code class="language-bash">curl
            https://label-studio-host/api/projects -H "Authorization: Token [your-token]"</code></pre>
          required: true
          schema:
            type: string
      responses:
        '200':
          description: Model-version prediction agreement
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/projects_stats_model_version_prediction_agreement_Response_200'
  /api/projects/{id}/stats/IAA:
    get:
      operationId: iaa
      summary: ✨ Get Inter-Annotator Agreement matrix
      description: |-
        <Card href="https://humansignal.com/goenterprise">
                <img style="pointer-events: none; margin-left: 0px; margin-right: 0px;" src="https://docs.humansignal.com/images/badge.svg" alt="Label Studio Enterprise badge"/>
                <p style="margin-top: 10px; font-size: 14px;">
                    This endpoint is not available in Label Studio Community Edition. [Learn more about Label Studio Enterprise](https://humansignal.com/goenterprise)
                </p>
            </Card>
        Get Inter-Annotator Agreement (IAA) matrix for a project, showing agreement between all annotators.
      tags:
        - subpackage_projects.subpackage_projects/stats
      parameters:
        - name: id
          in: path
          required: true
          schema:
            type: integer
        - name: expand
          in: query
          description: Comma-separated list of fields to expand
          required: false
          schema:
            type: string
        - name: per_label
          in: query
          description: Calculate IAA per label
          required: false
          schema:
            type: boolean
            default: false
        - name: std
          in: query
          description: Include standard deviation in results
          required: false
          schema:
            type: boolean
            default: false
        - name: task
          in: query
          description: Comma-separated list of task IDs to filter by
          required: false
          schema:
            type: string
        - name: Authorization
          in: header
          description: >-
            The token (or API key) must be passed as a request header. You can find your user token on the User Account
            page in Label Studio. Example: <br><pre><code class="language-bash">curl
            https://label-studio-host/api/projects -H "Authorization: Token [your-token]"</code></pre>
          required: true
          schema:
            type: string
      responses:
        '200':
          description: Inter-Annotator Agreement matrix
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/projects_stats_iaa_Response_200'
  /api/projects/{id}/stats/agreement-groundtruth:
    get:
      operationId: users-ground-truth-agreement
      summary: ✨ Get ground truth agreement for multiple users
      description: |-
        <Card href="https://humansignal.com/goenterprise">
                <img style="pointer-events: none; margin-left: 0px; margin-right: 0px;" src="https://docs.humansignal.com/images/badge.svg" alt="Label Studio Enterprise badge"/>
                <p style="margin-top: 10px; font-size: 14px;">
                    This endpoint is not available in Label Studio Community Edition. [Learn more about Label Studio Enterprise](https://humansignal.com/goenterprise)
                </p>
            </Card>
        Get ground truth agreement statistics for multiple users within a project.
      tags:
        - subpackage_projects.subpackage_projects/stats
      parameters:
        - name: id
          in: path
          required: true
          schema:
            type: integer
        - name: ids
          in: query
          description: Comma separated list of user IDs to get ground truth agreement for
          required: true
          schema:
            type: string
        - name: per_label
          in: query
          description: Per label
          required: false
          schema:
            type: boolean
            default: false
        - name: Authorization
          in: header
          description: >-
            The token (or API key) must be passed as a request header. You can find your user token on the User Account
            page in Label Studio. Example: <br><pre><code class="language-bash">curl
            https://label-studio-host/api/projects -H "Authorization: Token [your-token]"</code></pre>
          required: true
          schema:
            type: string
      responses:
        '200':
          description: Ground truth agreement statistics for multiple users
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/projects_stats_users_ground_truth_agreement_Response_200'
  /api/projects/{id}/stats/agreement_annotator/{user_id}:
    get:
      operationId: agreement-annotator
      summary: ✨ Get individual annotator agreement stats
      description: |-
        <Card href="https://humansignal.com/goenterprise">
                <img style="pointer-events: none; margin-left: 0px; margin-right: 0px;" src="https://docs.humansignal.com/images/badge.svg" alt="Label Studio Enterprise badge"/>
                <p style="margin-top: 10px; font-size: 14px;">
                    This endpoint is not available in Label Studio Community Edition. [Learn more about Label Studio Enterprise](https://humansignal.com/goenterprise)
                </p>
            </Card>
        Get agreement statistics for a specific annotator within a project.
      tags:
        - subpackage_projects.subpackage_projects/stats
      parameters:
        - name: id
          in: path
          required: true
          schema:
            type: integer
        - name: user_id
          in: path
          required: true
          schema:
            type: integer
        - name: Authorization
          in: header
          description: >-
            The token (or API key) must be passed as a request header. You can find your user token on the User Account
            page in Label Studio. Example: <br><pre><code class="language-bash">curl
            https://label-studio-host/api/projects -H "Authorization: Token [your-token]"</code></pre>
          required: true
          schema:
            type: string
      responses:
        '200':
          description: Individual annotator agreement statistics
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/projects_stats_agreement_annotator_Response_200'
  /api/projects/{id}/stats/agreement_annotators:
    get:
      operationId: agreement-annotators
      summary: ✨ Get agreement statistics for multiple annotators
      description: |-
        <Card href="https://humansignal.com/goenterprise">
                <img style="pointer-events: none; margin-left: 0px; margin-right: 0px;" src="https://docs.humansignal.com/images/badge.svg" alt="Label Studio Enterprise badge"/>
                <p style="margin-top: 10px; font-size: 14px;">
                    This endpoint is not available in Label Studio Community Edition. [Learn more about Label Studio Enterprise](https://humansignal.com/goenterprise)
                </p>
            </Card>
        Get agreement statistics for multiple annotators within a project.
      tags:
        - subpackage_projects.subpackage_projects/stats
      parameters:
        - name: id
          in: path
          required: true
          schema:
            type: integer
        - name: ids
          in: query
          description: Comma separated list of annotator user IDs to get agreement scores for
          required: true
          schema:
            type: string
        - name: Authorization
          in: header
          description: >-
            The token (or API key) must be passed as a request header. You can find your user token on the User Account
            page in Label Studio. Example: <br><pre><code class="language-bash">curl
            https://label-studio-host/api/projects -H "Authorization: Token [your-token]"</code></pre>
          required: true
          schema:
            type: string
      responses:
        '200':
          description: Multiple annotator agreement statistics
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/projects_stats_agreement_annotators_Response_200'
  /api/projects/{id}/stats/data_filter:
    get:
      operationId: data-filters
      summary: ✨ Get user data filter statistics
      description: |-
        <Card href="https://humansignal.com/goenterprise">
                <img style="pointer-events: none; margin-left: 0px; margin-right: 0px;" src="https://docs.humansignal.com/images/badge.svg" alt="Label Studio Enterprise badge"/>
                <p style="margin-top: 10px; font-size: 14px;">
                    This endpoint is not available in Label Studio Community Edition. [Learn more about Label Studio Enterprise](https://humansignal.com/goenterprise)
                </p>
            </Card>
        Get statistics about user data filters and their usage within a project.
      tags:
        - subpackage_projects.subpackage_projects/stats
      parameters:
        - name: id
          in: path
          required: true
          schema:
            type: integer
        - name: Authorization
          in: header
          description: >-
            The token (or API key) must be passed as a request header. You can find your user token on the User Account
            page in Label Studio. Example: <br><pre><code class="language-bash">curl
            https://label-studio-host/api/projects -H "Authorization: Token [your-token]"</code></pre>
          required: true
          schema:
            type: string
      responses:
        '200':
          description: User data filter statistics
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/projects_stats_data_filters_Response_200'
  /api/projects/{id}/stats/finished:
    get:
      operationId: finished-tasks
      summary: ✨ Get finished tasks statistics
      description: |-
        <Card href="https://humansignal.com/goenterprise">
                <img style="pointer-events: none; margin-left: 0px; margin-right: 0px;" src="https://docs.humansignal.com/images/badge.svg" alt="Label Studio Enterprise badge"/>
                <p style="margin-top: 10px; font-size: 14px;">
                    This endpoint is not available in Label Studio Community Edition. [Learn more about Label Studio Enterprise](https://humansignal.com/goenterprise)
                </p>
            </Card>
        Get statistics about finished tasks for a project.
      tags:
        - subpackage_projects.subpackage_projects/stats
      parameters:
        - name: id
          in: path
          required: true
          schema:
            type: integer
        - name: user_pk
          in: query
          description: User ID to filter statistics by (optional)
          required: false
          schema:
            type: integer
        - name: Authorization
          in: header
          description: >-
            The token (or API key) must be passed as a request header. You can find your user token on the User Account
            page in Label Studio. Example: <br><pre><code class="language-bash">curl
            https://label-studio-host/api/projects -H "Authorization: Token [your-token]"</code></pre>
          required: true
          schema:
            type: string
      responses:
        '200':
          description: Finished tasks statistics
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/projects_stats_finished_tasks_Response_200'
  /api/projects/{id}/stats/label-distribution/counts:
    get:
      operationId: label-distribution-counts
      summary: ✨ Get label distribution counts
      description: >-
        <Card href="https://humansignal.com/goenterprise">
                <img style="pointer-events: none; margin-left: 0px; margin-right: 0px;" src="https://docs.humansignal.com/images/badge.svg" alt="Label Studio Enterprise badge"/>
                <p style="margin-top: 10px; font-size: 14px;">
                    This endpoint is not available in Label Studio Community Edition. [Learn more about Label Studio Enterprise](https://humansignal.com/goenterprise)
                </p>
            </Card>
        Returns counts and percentages for requested label choices, from both annotations and predictions. Supports
        either pagination (`limit`, `offset`) or targeted fetches via explicit `choice_keys`.
      tags:
        - subpackage_projects.subpackage_projects/stats
      parameters:
        - name: id
          in: path
          required: true
          schema:
            type: integer
        - name: choice_keys
          in: query
          description: >-
            Explicit choice keys to fetch, joined by "___PIPE___" (for example:
            "label___SEP___pos___PIPE___quality___SEP___4"). When provided, pagination params are ignored.
          required: false
          schema:
            type: string
        - name: limit
          in: query
          description: Maximum number of choice keys to return for pagination. Ignored when `choice_keys` is provided.
          required: false
          schema:
            type: integer
        - name: offset
          in: query
          description: Zero-based offset into the structure `choice_keys` list. Used only when `choice_keys` is not provided.
          required: false
          schema:
            type: integer
            default: 0
        - name: Authorization
          in: header
          description: >-
            The token (or API key) must be passed as a request header. You can find your user token on the User Account
            page in Label Studio. Example: <br><pre><code class="language-bash">curl
            https://label-studio-host/api/projects -H "Authorization: Token [your-token]"</code></pre>
          required: true
          schema:
            type: string
      responses:
        '200':
          description: Label distribution counts
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/LabelDistributionCountsResponse'
  /api/projects/{id}/stats/label-distribution/structure:
    get:
      operationId: label-distribution-structure
      summary: ✨ Get label distribution structure
      description: >-
        <Card href="https://humansignal.com/goenterprise">
                <img style="pointer-events: none; margin-left: 0px; margin-right: 0px;" src="https://docs.humansignal.com/images/badge.svg" alt="Label Studio Enterprise badge"/>
                <p style="margin-top: 10px; font-size: 14px;">
                    This endpoint is not available in Label Studio Community Edition. [Learn more about Label Studio Enterprise](https://humansignal.com/goenterprise)
                </p>
            </Card>
        Returns dimensions and flattened `choice_keys` for a project. Use this response to drive paginated or targeted
        calls to the label distribution counts endpoint.
      tags:
        - subpackage_projects.subpackage_projects/stats
      parameters:
        - name: id
          in: path
          required: true
          schema:
            type: integer
        - name: Authorization
          in: header
          description: >-
            The token (or API key) must be passed as a request header. You can find your user token on the User Account
            page in Label Studio. Example: <br><pre><code class="language-bash">curl
            https://label-studio-host/api/projects -H "Authorization: Token [your-token]"</code></pre>
          required: true
          schema:
            type: string
      responses:
        '200':
          description: Label distribution structure
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/LabelDistributionStructureResponse'
  /api/projects/{id}/stats/lead_time:
    get:
      operationId: lead-time
      summary: ✨ Get lead time statistics
      description: |-
        <Card href="https://humansignal.com/goenterprise">
                <img style="pointer-events: none; margin-left: 0px; margin-right: 0px;" src="https://docs.humansignal.com/images/badge.svg" alt="Label Studio Enterprise badge"/>
                <p style="margin-top: 10px; font-size: 14px;">
                    This endpoint is not available in Label Studio Community Edition. [Learn more about Label Studio Enterprise](https://humansignal.com/goenterprise)
                </p>
            </Card>
        Get lead time statistics across the project, including average annotation time.
      tags:
        - subpackage_projects.subpackage_projects/stats
      parameters:
        - name: id
          in: path
          required: true
          schema:
            type: integer
        - name: Authorization
          in: header
          description: >-
            The token (or API key) must be passed as a request header. You can find your user token on the User Account
            page in Label Studio. Example: <br><pre><code class="language-bash">curl
            https://label-studio-host/api/projects -H "Authorization: Token [your-token]"</code></pre>
          required: true
          schema:
            type: string
      responses:
        '200':
          description: Lead time statistics
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/projects_stats_lead_time_Response_200'
  /api/projects/{id}/stats/member_performance_rows/:
    get:
      operationId: member-performance-rows
      summary: ✨ Get paginated member performance rows
      description: >-
        <Card href="https://humansignal.com/goenterprise">
                <img style="pointer-events: none; margin-left: 0px; margin-right: 0px;" src="https://docs.humansignal.com/images/badge.svg" alt="Label Studio Enterprise badge"/>
                <p style="margin-top: 10px; font-size: 14px;">
                    This endpoint is not available in Label Studio Community Edition. [Learn more about Label Studio Enterprise](https://humansignal.com/goenterprise)
                </p>
            </Card>
        Paginated, sortable member performance rows for annotation/review tables. Footer totals are returned by
        <code>member_performance_summary</code>. Guarded by
        <code>fflag_feat_lse_project_dashboards_v3_members_short</code>.
      tags:
        - subpackage_projects.subpackage_projects/stats
      parameters:
        - name: id
          in: path
          required: true
          schema:
            type: integer
        - name: ids
          in: query
          description: Comma-separated user IDs to include. When omitted, members are derived from the project.
          required: false
          schema:
            type: string
        - name: ordering
          in: query
          description: Sort field; prefix with "-" for descending (e.g. "-finished").
          required: false
          schema:
            type: string
        - name: page
          in: query
          description: 1-based page index.
          required: false
          schema:
            type: integer
        - name: page_size
          in: query
          description: Page size (1–100).
          required: false
          schema:
            type: integer
        - name: table
          in: query
          description: 'Which table to load: "annotations" or "reviews".'
          required: false
          schema:
            $ref: '#/components/schemas/ApiProjectsIdStatsMemberPerformanceRowsGetParametersTable'
        - name: Authorization
          in: header
          description: >-
            The token (or API key) must be passed as a request header. You can find your user token on the User Account
            page in Label Studio. Example: <br><pre><code class="language-bash">curl
            https://label-studio-host/api/projects -H "Authorization: Token [your-token]"</code></pre>
          required: true
          schema:
            type: string
      responses:
        '200':
          description: Member performance rows for one page (summary aggregates via member_performance_summary).
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/projects_stats_member_performance_rows_Response_200'
        '404':
          description: Feature flag off or project not found.
          content:
            application/json:
              schema:
                description: Any type
  /api/projects/{id}/stats/member_performance_summary/:
    get:
      operationId: member-performance-summary
      summary: ✨ Get member performance table summary aggregates
      description: >-
        <Card href="https://humansignal.com/goenterprise">
                <img style="pointer-events: none; margin-left: 0px; margin-right: 0px;" src="https://docs.humansignal.com/images/badge.svg" alt="Label Studio Enterprise badge"/>
                <p style="margin-top: 10px; font-size: 14px;">
                    This endpoint is not available in Label Studio Community Edition. [Learn more about Label Studio Enterprise](https://humansignal.com/goenterprise)
                </p>
            </Card>
        Footer / Total aggregates for member performance tables. Use with paginated
        <code>member_performance_rows</code>. Guarded by
        <code>fflag_feat_lse_project_dashboards_v3_members_short</code>.
      tags:
        - subpackage_projects.subpackage_projects/stats
      parameters:
        - name: id
          in: path
          required: true
          schema:
            type: integer
        - name: ids
          in: query
          description: Comma-separated user IDs. When omitted, members are derived from the project.
          required: false
          schema:
            type: string
        - name: table
          in: query
          description: 'Which table: "annotations" or "reviews".'
          required: false
          schema:
            $ref: '#/components/schemas/ApiProjectsIdStatsMemberPerformanceSummaryGetParametersTable'
        - name: Authorization
          in: header
          description: >-
            The token (or API key) must be passed as a request header. You can find your user token on the User Account
            page in Label Studio. Example: <br><pre><code class="language-bash">curl
            https://label-studio-host/api/projects -H "Authorization: Token [your-token]"</code></pre>
          required: true
          schema:
            type: string
      responses:
        '200':
          description: Summary aggregates (avg_*, sum_*, count_paused).
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/projects_stats_member_performance_summary_Response_200'
        '404':
          description: Feature flag off or project not found.
          content:
            application/json:
              schema:
                description: Any type
  /api/projects/{id}/stats/total_agreement:
    get:
      operationId: total-agreement
      summary: ✨ Get total agreement for project
      description: |-
        <Card href="https://humansignal.com/goenterprise">
                <img style="pointer-events: none; margin-left: 0px; margin-right: 0px;" src="https://docs.humansignal.com/images/badge.svg" alt="Label Studio Enterprise badge"/>
                <p style="margin-top: 10px; font-size: 14px;">
                    This endpoint is not available in Label Studio Community Edition. [Learn more about Label Studio Enterprise](https://humansignal.com/goenterprise)
                </p>
            </Card>
        Overall or per-label total agreement across the project.

        NOTE: when this endpoint returns 204 No Content, SDK clients return None.
      tags:
        - subpackage_projects.subpackage_projects/stats
      parameters:
        - name: id
          in: path
          required: true
          schema:
            type: integer
        - name: per_label
          in: query
          description: Return agreement per label
          required: false
          schema:
            type: boolean
        - name: Authorization
          in: header
          description: >-
            The token (or API key) must be passed as a request header. You can find your user token on the User Account
            page in Label Studio. Example: <br><pre><code class="language-bash">curl
            https://label-studio-host/api/projects -H "Authorization: Token [your-token]"</code></pre>
          required: true
          schema:
            type: string
      responses:
        '200':
          description: Total agreement
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/projects_stats_total_agreement_Response_200'
  /api/projects/{id}/update-stats:
    get:
      operationId: update-stats
      summary: ✨ Start stats recalculation
      description: |-
        <Card href="https://humansignal.com/goenterprise">
                <img style="pointer-events: none; margin-left: 0px; margin-right: 0px;" src="https://docs.humansignal.com/images/badge.svg" alt="Label Studio Enterprise badge"/>
                <p style="margin-top: 10px; font-size: 14px;">
                    This endpoint is not available in Label Studio Community Edition. [Learn more about Label Studio Enterprise](https://humansignal.com/goenterprise)
                </p>
            </Card>
        Start stats recalculation for given project
      tags:
        - subpackage_projects.subpackage_projects/stats
      parameters:
        - name: id
          in: path
          required: true
          schema:
            type: integer
        - name: stat_type
          in: query
          description: 'Stat type to recalculate. Possible values: label, stats'
          required: false
          schema:
            type: string
        - name: Authorization
          in: header
          description: >-
            The token (or API key) must be passed as a request header. You can find your user token on the User Account
            page in Label Studio. Example: <br><pre><code class="language-bash">curl
            https://label-studio-host/api/projects -H "Authorization: Token [your-token]"</code></pre>
          required: true
          schema:
            type: string
      responses:
        '200':
          description: Successful response returns job id
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/projects_stats_update_stats_Response_200'
  /api/projects/{id}/user-stats/prediction:
    get:
      operationId: users-prediction-agreement
      summary: ✨ Get prediction agreement statistics for multiple annotators
      description: |-
        <Card href="https://humansignal.com/goenterprise">
                <img style="pointer-events: none; margin-left: 0px; margin-right: 0px;" src="https://docs.humansignal.com/images/badge.svg" alt="Label Studio Enterprise badge"/>
                <p style="margin-top: 10px; font-size: 14px;">
                    This endpoint is not available in Label Studio Community Edition. [Learn more about Label Studio Enterprise](https://humansignal.com/goenterprise)
                </p>
            </Card>
        Get prediction agreement statistics for multiple annotators within a project.
      tags:
        - subpackage_projects.subpackage_projects/stats
      parameters:
        - name: id
          in: path
          required: true
          schema:
            type: integer
        - name: ids
          in: query
          description: Comma separated list of annotator user IDs to get agreement scores for
          required: true
          schema:
            type: string
        - name: per_label
          in: query
          description: Per label
          required: false
          schema:
            type: boolean
            default: false
        - name: Authorization
          in: header
          description: >-
            The token (or API key) must be passed as a request header. You can find your user token on the User Account
            page in Label Studio. Example: <br><pre><code class="language-bash">curl
            https://label-studio-host/api/projects -H "Authorization: Token [your-token]"</code></pre>
          required: true
          schema:
            type: string
      responses:
        '200':
          description: Prediction agreement statistics for multiple annotators
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/projects_stats_users_prediction_agreement_Response_200'
  /api/projects/{id}/user-stats/review_score:
    get:
      operationId: users-review-score
      summary: ✨ Get review scores for multiple annotators
      description: >-
        <Card href="https://humansignal.com/goenterprise">
                <img style="pointer-events: none; margin-left: 0px; margin-right: 0px;" src="https://docs.humansignal.com/images/badge.svg" alt="Label Studio Enterprise badge"/>
                <p style="margin-top: 10px; font-size: 14px;">
                    This endpoint is not available in Label Studio Community Edition. [Learn more about Label Studio Enterprise](https://humansignal.com/goenterprise)
                </p>
            </Card>
        Get review score and performance score statistics for multiple annotators within a project. Only allowed for
        accounts with reviewing features enabled.
      tags:
        - subpackage_projects.subpackage_projects/stats
      parameters:
        - name: id
          in: path
          required: true
          schema:
            type: integer
        - name: ids
          in: query
          description: Comma separated list of annotator user IDs to get review scores for
          required: true
          schema:
            type: string
        - name: per_label
          in: query
          description: Per label
          required: false
          schema:
            type: boolean
        - name: Authorization
          in: header
          description: >-
            The token (or API key) must be passed as a request header. You can find your user token on the User Account
            page in Label Studio. Example: <br><pre><code class="language-bash">curl
            https://label-studio-host/api/projects -H "Authorization: Token [your-token]"</code></pre>
          required: true
          schema:
            type: string
      responses:
        '200':
          description: Review scores and performance scores for multiple annotators
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/projects_stats_users_review_score_Response_200'
  /api/projects/{id}/user-stats/{user_pk}/prediction:
    get:
      operationId: user-prediction-agreement
      summary: ✨ Get individual user prediction agreement
      description: |-
        <Card href="https://humansignal.com/goenterprise">
                <img style="pointer-events: none; margin-left: 0px; margin-right: 0px;" src="https://docs.humansignal.com/images/badge.svg" alt="Label Studio Enterprise badge"/>
                <p style="margin-top: 10px; font-size: 14px;">
                    This endpoint is not available in Label Studio Community Edition. [Learn more about Label Studio Enterprise](https://humansignal.com/goenterprise)
                </p>
            </Card>
        Get prediction agreement statistics for a specific user within a project.
      tags:
        - subpackage_projects.subpackage_projects/stats
      parameters:
        - name: id
          in: path
          required: true
          schema:
            type: integer
        - name: user_pk
          in: path
          required: true
          schema:
            type: integer
        - name: per_label
          in: query
          description: Calculate agreement per label
          required: false
          schema:
            type: boolean
        - name: Authorization
          in: header
          description: >-
            The token (or API key) must be passed as a request header. You can find your user token on the User Account
            page in Label Studio. Example: <br><pre><code class="language-bash">curl
            https://label-studio-host/api/projects -H "Authorization: Token [your-token]"</code></pre>
          required: true
          schema:
            type: string
      responses:
        '200':
          description: Individual user prediction agreement statistics
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/projects_stats_user_prediction_agreement_Response_200'
  /api/projects/{id}/user-stats/{user_pk}/review_score:
    get:
      operationId: user-review-score
      summary: ✨ Get individual user review scores
      description: >-
        <Card href="https://humansignal.com/goenterprise">
                <img style="pointer-events: none; margin-left: 0px; margin-right: 0px;" src="https://docs.humansignal.com/images/badge.svg" alt="Label Studio Enterprise badge"/>
                <p style="margin-top: 10px; font-size: 14px;">
                    This endpoint is not available in Label Studio Community Edition. [Learn more about Label Studio Enterprise](https://humansignal.com/goenterprise)
                </p>
            </Card>
        Get review score statistics for a specific user within a project. Only allowed for accounts with reviewing
        features enabled.
      tags:
        - subpackage_projects.subpackage_projects/stats
      parameters:
        - name: id
          in: path
          required: true
          schema:
            type: integer
        - name: user_pk
          in: path
          required: true
          schema:
            type: integer
        - name: per_label
          in: query
          description: Calculate agreement per label
          required: false
          schema:
            type: boolean
        - name: Authorization
          in: header
          description: >-
            The token (or API key) must be passed as a request header. You can find your user token on the User Account
            page in Label Studio. Example: <br><pre><code class="language-bash">curl
            https://label-studio-host/api/projects -H "Authorization: Token [your-token]"</code></pre>
          required: true
          schema:
            type: string
      responses:
        '200':
          description: Individual user review score statistics
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/projects_stats_user_review_score_Response_200'
  /api/projects/{id}/users/{user_pk}/stats/agreement-groundtruth:
    get:
      operationId: user-ground-truth-agreement
      summary: ✨ Get individual user ground truth agreement
      description: |-
        <Card href="https://humansignal.com/goenterprise">
                <img style="pointer-events: none; margin-left: 0px; margin-right: 0px;" src="https://docs.humansignal.com/images/badge.svg" alt="Label Studio Enterprise badge"/>
                <p style="margin-top: 10px; font-size: 14px;">
                    This endpoint is not available in Label Studio Community Edition. [Learn more about Label Studio Enterprise](https://humansignal.com/goenterprise)
                </p>
            </Card>
        Get ground truth agreement statistics for a specific user within a project.
      tags:
        - subpackage_projects.subpackage_projects/stats
      parameters:
        - name: id
          in: path
          required: true
          schema:
            type: integer
        - name: user_pk
          in: path
          required: true
          schema:
            type: integer
        - name: per_label
          in: query
          description: Calculate agreement per label
          required: false
          schema:
            type: boolean
        - name: Authorization
          in: header
          description: >-
            The token (or API key) must be passed as a request header. You can find your user token on the User Account
            page in Label Studio. Example: <br><pre><code class="language-bash">curl
            https://label-studio-host/api/projects -H "Authorization: Token [your-token]"</code></pre>
          required: true
          schema:
            type: string
      responses:
        '200':
          description: Individual user ground truth agreement statistics
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/projects_stats_user_ground_truth_agreement_Response_200'
  /api/projects/{id}/review-routing-rules/:
    get:
      operationId: list
      summary: ✨ List review routing rules
      description: |-
        <Card href="https://humansignal.com/goenterprise">
                <img style="pointer-events: none; margin-left: 0px; margin-right: 0px;" src="https://docs.humansignal.com/images/badge.svg" alt="Label Studio Enterprise badge"/>
                <p style="margin-top: 10px; font-size: 14px;">
                    This endpoint is not available in Label Studio Community Edition. [Learn more about Label Studio Enterprise](https://humansignal.com/goenterprise)
                </p>
            </Card>
        List ordered review routing rules for a project.
      tags:
        - subpackage_projects.subpackage_projects/reviewRoutingRules
      parameters:
        - name: id
          in: path
          required: true
          schema:
            type: integer
        - name: ordering
          in: query
          description: Which field to use when ordering the results.
          required: false
          schema:
            type: string
        - name: Authorization
          in: header
          description: >-
            The token (or API key) must be passed as a request header. You can find your user token on the User Account
            page in Label Studio. Example: <br><pre><code class="language-bash">curl
            https://label-studio-host/api/projects -H "Authorization: Token [your-token]"</code></pre>
          required: true
          schema:
            type: string
      responses:
        '200':
          description: ''
          content:
            application/json:
              schema:
                type: array
                items:
                  $ref: '#/components/schemas/ReviewRoutingRule'
  /api/projects/{id}/review-routing-rules/bulk/:
    post:
      operationId: bulk-replace
      summary: ✨ Bulk replace review routing rules
      description: >-
        <Card href="https://humansignal.com/goenterprise">
                <img style="pointer-events: none; margin-left: 0px; margin-right: 0px;" src="https://docs.humansignal.com/images/badge.svg" alt="Label Studio Enterprise badge"/>
                <p style="margin-top: 10px; font-size: 14px;">
                    This endpoint is not available in Label Studio Community Edition. [Learn more about Label Studio Enterprise](https://humansignal.com/goenterprise)
                </p>
            </Card>
        Atomically replace the ordered review routing rules for a project. Rules with an `id` update the existing
        project rule. Rules without an `id` are created. Existing project rules omitted from the request are deleted,
        and request order becomes rule order.
      tags:
        - subpackage_projects.subpackage_projects/reviewRoutingRules
      parameters:
        - name: id
          in: path
          required: true
          schema:
            type: integer
        - name: Authorization
          in: header
          description: >-
            The token (or API key) must be passed as a request header. You can find your user token on the User Account
            page in Label Studio. Example: <br><pre><code class="language-bash">curl
            https://label-studio-host/api/projects -H "Authorization: Token [your-token]"</code></pre>
          required: true
          schema:
            type: string
      responses:
        '200':
          description: ''
          content:
            application/json:
              schema:
                type: array
                items:
                  $ref: '#/components/schemas/ReviewRoutingRule'
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/ReviewRoutingRulesReplaceRequest'
  /api/projects/{id}/tasks/assignees:
    post:
      operationId: bulk-assign
      summary: ✨ Bulk assign users to tasks
      description: |-
        <Card href="https://humansignal.com/goenterprise">
                <img style="pointer-events: none; margin-left: 0px; margin-right: 0px;" src="https://docs.humansignal.com/images/badge.svg" alt="Label Studio Enterprise badge"/>
                <p style="margin-top: 10px; font-size: 14px;">
                    This endpoint is not available in Label Studio Community Edition. [Learn more about Label Studio Enterprise](https://humansignal.com/goenterprise)
                </p>
            </Card>
        Assign multiple users to a collection of tasks within a specific project.
      tags:
        - subpackage_projects.subpackage_projects/assignments
      parameters:
        - name: id
          in: path
          required: true
          schema:
            type: integer
        - name: Authorization
          in: header
          description: >-
            The token (or API key) must be passed as a request header. You can find your user token on the User Account
            page in Label Studio. Example: <br><pre><code class="language-bash">curl
            https://label-studio-host/api/projects -H "Authorization: Token [your-token]"</code></pre>
          required: true
          schema:
            type: string
      responses:
        '201':
          description: Success
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/projects_assignments_bulk_assign_Response_201'
        '400':
          description: Can't assign tasks
          content:
            application/json:
              schema:
                description: Any type
      requestBody:
        content:
          application/json:
            schema:
              type: object
              properties:
                filters:
                  $ref: '#/components/schemas/ApiProjectsIdTasksAssigneesPostRequestBodyContentApplicationJsonSchemaFilters'
                  description: >-
                    Filters to apply on tasks. You can use [the helper class `Filters` from this
                    page](https://labelstud.io/sdk/data_manager.html) to create Data Manager Filters.<br>Example:
                    `{"conjunction": "or", "items": [{"filter": "filter:tasks:completed_at", "operator": "greater",
                    "type": "Datetime", "value": "2021-01-01T00:00:00.000Z"}]}`
                selectedItems:
                  $ref: >-
                    #/components/schemas/ApiProjectsIdTasksAssigneesPostRequestBodyContentApplicationJsonSchemaSelectedItems
                  description: >-
                    Task selection by IDs. If filters are applied, the selection will be applied to the filtered
                    tasks.If "all" is `false`, `"included"` must be used. If "all" is `true`, `"excluded"` must be
                    used.<br>Examples: `{"all": false, "included": [1, 2, 3]}` or `{"all": true, "excluded": [4, 5]}`
                type:
                  $ref: '#/components/schemas/ApiProjectsIdTasksAssigneesPostRequestBodyContentApplicationJsonSchemaType'
                  description: Assignment type. Use AN for annotate or RE for review.
                users:
                  type: array
                  items:
                    type: integer
                  description: List of user IDs to assign
              required:
                - selectedItems
                - type
                - users
  /api/projects/{id}/tasks/{task_pk}/assignees:
    get:
      operationId: list
      summary: ✨ Get assigned tasks and assignees
      description: |-
        <Card href="https://humansignal.com/goenterprise">
                <img style="pointer-events: none; margin-left: 0px; margin-right: 0px;" src="https://docs.humansignal.com/images/badge.svg" alt="Label Studio Enterprise badge"/>
                <p style="margin-top: 10px; font-size: 14px;">
                    This endpoint is not available in Label Studio Community Edition. [Learn more about Label Studio Enterprise](https://humansignal.com/goenterprise)
                </p>
            </Card>
        Retrieve a list of tasks and assignees for those tasks for a specific project.
      tags:
        - subpackage_projects.subpackage_projects/assignments
      parameters:
        - name: id
          in: path
          description: A unique integer value identifying this project.
          required: true
          schema:
            type: integer
        - name: task_pk
          in: path
          description: A unique integer value identifying this task.
          required: true
          schema:
            type: integer
        - name: Authorization
          in: header
          description: >-
            The token (or API key) must be passed as a request header. You can find your user token on the User Account
            page in Label Studio. Example: <br><pre><code class="language-bash">curl
            https://label-studio-host/api/projects -H "Authorization: Token [your-token]"</code></pre>
          required: true
          schema:
            type: string
      responses:
        '200':
          description: List of assignments for the task
          content:
            application/json:
              schema:
                type: array
                items:
                  $ref: '#/components/schemas/TaskAssignment'
    post:
      operationId: assign
      summary: ✨ Create task assignee
      description: |-
        <Card href="https://humansignal.com/goenterprise">
                <img style="pointer-events: none; margin-left: 0px; margin-right: 0px;" src="https://docs.humansignal.com/images/badge.svg" alt="Label Studio Enterprise badge"/>
                <p style="margin-top: 10px; font-size: 14px;">
                    This endpoint is not available in Label Studio Community Edition. [Learn more about Label Studio Enterprise](https://humansignal.com/goenterprise)
                </p>
            </Card>
        Assign a user to a task in a specific project.
      tags:
        - subpackage_projects.subpackage_projects/assignments
      parameters:
        - name: id
          in: path
          description: A unique integer value identifying this project.
          required: true
          schema:
            type: integer
        - name: task_pk
          in: path
          description: A unique integer value identifying this task.
          required: true
          schema:
            type: integer
        - name: Authorization
          in: header
          description: >-
            The token (or API key) must be passed as a request header. You can find your user token on the User Account
            page in Label Studio. Example: <br><pre><code class="language-bash">curl
            https://label-studio-host/api/projects -H "Authorization: Token [your-token]"</code></pre>
          required: true
          schema:
            type: string
      responses:
        '200':
          description: ''
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/TaskAssignment'
      requestBody:
        content:
          application/json:
            schema:
              type: object
              properties:
                type:
                  $ref: >-
                    #/components/schemas/ApiProjectsIdTasksTaskPkAssigneesPostRequestBodyContentApplicationJsonSchemaType
                  description: Assignment type. Use AN for annotate or RE for review.
                users:
                  type: array
                  items:
                    type: integer
                  description: List of user IDs to assign
              required:
                - type
                - users
    delete:
      operationId: delete
      summary: ✨ Delete task assignments
      description: |-
        <Card href="https://humansignal.com/goenterprise">
                <img style="pointer-events: none; margin-left: 0px; margin-right: 0px;" src="https://docs.humansignal.com/images/badge.svg" alt="Label Studio Enterprise badge"/>
                <p style="margin-top: 10px; font-size: 14px;">
                    This endpoint is not available in Label Studio Community Edition. [Learn more about Label Studio Enterprise](https://humansignal.com/goenterprise)
                </p>
            </Card>
        Remove assignees for a task within a specific project.
      tags:
        - subpackage_projects.subpackage_projects/assignments
      parameters:
        - name: id
          in: path
          description: A unique integer value identifying this project.
          required: true
          schema:
            type: integer
        - name: task_pk
          in: path
          description: A unique integer value identifying this task.
          required: true
          schema:
            type: integer
        - name: type
          in: query
          description: Assignment type to delete (optional). If omitted, deletes all assignments for the task.
          required: false
          schema:
            $ref: '#/components/schemas/ApiProjectsIdTasksTaskPkAssigneesDeleteParametersType'
        - name: users
          in: query
          description: >-
            Comma separated list of user IDs to delete, as a string. If omitted, deletes all assignees for the given
            type.
          required: false
          schema:
            type: string
        - name: Authorization
          in: header
          description: >-
            The token (or API key) must be passed as a request header. You can find your user token on the User Account
            page in Label Studio. Example: <br><pre><code class="language-bash">curl
            https://label-studio-host/api/projects -H "Authorization: Token [your-token]"</code></pre>
          required: true
          schema:
            type: string
      responses:
        '200':
          description: Successful response
    patch:
      operationId: update
      summary: ✨ Update task assignee
      description: |-
        <Card href="https://humansignal.com/goenterprise">
                <img style="pointer-events: none; margin-left: 0px; margin-right: 0px;" src="https://docs.humansignal.com/images/badge.svg" alt="Label Studio Enterprise badge"/>
                <p style="margin-top: 10px; font-size: 14px;">
                    This endpoint is not available in Label Studio Community Edition. [Learn more about Label Studio Enterprise](https://humansignal.com/goenterprise)
                </p>
            </Card>
        Update the assignee for a task in a specific project.
      tags:
        - subpackage_projects.subpackage_projects/assignments
      parameters:
        - name: id
          in: path
          description: A unique integer value identifying this project.
          required: true
          schema:
            type: integer
        - name: task_pk
          in: path
          description: A unique integer value identifying this task.
          required: true
          schema:
            type: integer
        - name: Authorization
          in: header
          description: >-
            The token (or API key) must be passed as a request header. You can find your user token on the User Account
            page in Label Studio. Example: <br><pre><code class="language-bash">curl
            https://label-studio-host/api/projects -H "Authorization: Token [your-token]"</code></pre>
          required: true
          schema:
            type: string
      responses:
        '200':
          description: ''
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/TaskAssignment'
      requestBody:
        content:
          application/json:
            schema:
              type: object
              properties:
                type:
                  $ref: >-
                    #/components/schemas/ApiProjectsIdTasksTaskPkAssigneesPatchRequestBodyContentApplicationJsonSchemaType
                  description: Assignment type. Use AN for annotate or RE for review.
                users:
                  type: array
                  items:
                    type: integer
                  description: List of user IDs to assign
              required:
                - type
                - users
  /api/projects/{project_pk}/members/{user_pk}/pauses/:
    get:
      operationId: list
      summary: ✨ List pauses
      description: |-
        <Card href="https://humansignal.com/goenterprise">
                <img style="pointer-events: none; margin-left: 0px; margin-right: 0px;" src="https://docs.humansignal.com/images/badge.svg" alt="Label Studio Enterprise badge"/>
                <p style="margin-top: 10px; font-size: 14px;">
                    This endpoint is not available in Label Studio Community Edition. [Learn more about Label Studio Enterprise](https://humansignal.com/goenterprise)
                </p>
            </Card>
        Retrieve a list of all pauses.
      tags:
        - subpackage_projects.subpackage_projects/pauses
      parameters:
        - name: project_pk
          in: path
          required: true
          schema:
            type: integer
        - name: user_pk
          in: path
          required: true
          schema:
            type: integer
        - name: include_deleted
          in: query
          description: Include deleted pauses.
          required: false
          schema:
            type: boolean
        - name: ordering
          in: query
          description: Which field to use when ordering the results.
          required: false
          schema:
            type: string
        - name: Authorization
          in: header
          description: >-
            The token (or API key) must be passed as a request header. You can find your user token on the User Account
            page in Label Studio. Example: <br><pre><code class="language-bash">curl
            https://label-studio-host/api/projects -H "Authorization: Token [your-token]"</code></pre>
          required: true
          schema:
            type: string
      responses:
        '200':
          description: ''
          content:
            application/json:
              schema:
                type: array
                items:
                  $ref: '#/components/schemas/Pause'
    post:
      operationId: create
      summary: ✨ Create pause
      description: |-
        <Card href="https://humansignal.com/goenterprise">
                <img style="pointer-events: none; margin-left: 0px; margin-right: 0px;" src="https://docs.humansignal.com/images/badge.svg" alt="Label Studio Enterprise badge"/>
                <p style="margin-top: 10px; font-size: 14px;">
                    This endpoint is not available in Label Studio Community Edition. [Learn more about Label Studio Enterprise](https://humansignal.com/goenterprise)
                </p>
            </Card>
        Create a new pause entry.
      tags:
        - subpackage_projects.subpackage_projects/pauses
      parameters:
        - name: project_pk
          in: path
          required: true
          schema:
            type: integer
        - name: user_pk
          in: path
          required: true
          schema:
            type: integer
        - name: Authorization
          in: header
          description: >-
            The token (or API key) must be passed as a request header. You can find your user token on the User Account
            page in Label Studio. Example: <br><pre><code class="language-bash">curl
            https://label-studio-host/api/projects -H "Authorization: Token [your-token]"</code></pre>
          required: true
          schema:
            type: string
      responses:
        '201':
          description: ''
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Pause'
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/PauseRequest'
  /api/projects/{project_pk}/members/{user_pk}/pauses/{id}/:
    get:
      operationId: get
      summary: ✨ Get pause
      description: |-
        <Card href="https://humansignal.com/goenterprise">
                <img style="pointer-events: none; margin-left: 0px; margin-right: 0px;" src="https://docs.humansignal.com/images/badge.svg" alt="Label Studio Enterprise badge"/>
                <p style="margin-top: 10px; font-size: 14px;">
                    This endpoint is not available in Label Studio Community Edition. [Learn more about Label Studio Enterprise](https://humansignal.com/goenterprise)
                </p>
            </Card>
        Retrieve a specific pause by ID.
      tags:
        - subpackage_projects.subpackage_projects/pauses
      parameters:
        - name: id
          in: path
          required: true
          schema:
            type: string
        - name: project_pk
          in: path
          required: true
          schema:
            type: integer
        - name: user_pk
          in: path
          required: true
          schema:
            type: integer
        - name: Authorization
          in: header
          description: >-
            The token (or API key) must be passed as a request header. You can find your user token on the User Account
            page in Label Studio. Example: <br><pre><code class="language-bash">curl
            https://label-studio-host/api/projects -H "Authorization: Token [your-token]"</code></pre>
          required: true
          schema:
            type: string
      responses:
        '200':
          description: ''
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Pause'
    delete:
      operationId: delete
      summary: ✨ Delete pause
      description: |-
        <Card href="https://humansignal.com/goenterprise">
                <img style="pointer-events: none; margin-left: 0px; margin-right: 0px;" src="https://docs.humansignal.com/images/badge.svg" alt="Label Studio Enterprise badge"/>
                <p style="margin-top: 10px; font-size: 14px;">
                    This endpoint is not available in Label Studio Community Edition. [Learn more about Label Studio Enterprise](https://humansignal.com/goenterprise)
                </p>
            </Card>
        Delete a specific pause by ID.
      tags:
        - subpackage_projects.subpackage_projects/pauses
      parameters:
        - name: id
          in: path
          required: true
          schema:
            type: string
        - name: project_pk
          in: path
          required: true
          schema:
            type: integer
        - name: user_pk
          in: path
          required: true
          schema:
            type: integer
        - name: Authorization
          in: header
          description: >-
            The token (or API key) must be passed as a request header. You can find your user token on the User Account
            page in Label Studio. Example: <br><pre><code class="language-bash">curl
            https://label-studio-host/api/projects -H "Authorization: Token [your-token]"</code></pre>
          required: true
          schema:
            type: string
      responses:
        '200':
          description: Successful response
    patch:
      operationId: update
      summary: ✨ Update pause
      description: |-
        <Card href="https://humansignal.com/goenterprise">
                <img style="pointer-events: none; margin-left: 0px; margin-right: 0px;" src="https://docs.humansignal.com/images/badge.svg" alt="Label Studio Enterprise badge"/>
                <p style="margin-top: 10px; font-size: 14px;">
                    This endpoint is not available in Label Studio Community Edition. [Learn more about Label Studio Enterprise](https://humansignal.com/goenterprise)
                </p>
            </Card>
        Partially update a pause entry by ID.
      tags:
        - subpackage_projects.subpackage_projects/pauses
      parameters:
        - name: id
          in: path
          required: true
          schema:
            type: string
        - name: project_pk
          in: path
          required: true
          schema:
            type: integer
        - name: user_pk
          in: path
          required: true
          schema:
            type: integer
        - name: Authorization
          in: header
          description: >-
            The token (or API key) must be passed as a request header. You can find your user token on the User Account
            page in Label Studio. Example: <br><pre><code class="language-bash">curl
            https://label-studio-host/api/projects -H "Authorization: Token [your-token]"</code></pre>
          required: true
          schema:
            type: string
      responses:
        '200':
          description: ''
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Pause'
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/PatchedPauseRequest'
  /api/ml/:
    get:
      operationId: list
      summary: List ML backends
      description: |2-

            List all configured ML backends for a specific project by ID.
            Use the following cURL command:
            ```bash
            curl http://localhost:8000/api/ml?project={project_id} -H 'Authorization: Token abc123'
            
      tags:
        - subpackage_ml
      parameters:
        - name: project
          in: query
          description: Project ID
          required: false
          schema:
            type: integer
        - name: Authorization
          in: header
          description: >-
            The token (or API key) must be passed as a request header. You can find your user token on the User Account
            page in Label Studio. Example: <br><pre><code class="language-bash">curl
            https://label-studio-host/api/projects -H "Authorization: Token [your-token]"</code></pre>
          required: true
          schema:
            type: string
      responses:
        '200':
          description: ''
          content:
            application/json:
              schema:
                type: array
                items:
                  $ref: '#/components/schemas/MLBackend'
    post:
      operationId: create
      summary: Add ML Backend
      description: |2-

            Add an ML backend to a project using the Label Studio UI or by sending a POST request using the following cURL 
            command:
            ```bash
            curl -X POST -H 'Content-type: application/json' http://localhost:8000/api/ml -H 'Authorization: Token abc123'\
            --data '{"url": "http://localhost:9090", "project": {project_id}}' 
            
      tags:
        - subpackage_ml
      parameters:
        - name: Authorization
          in: header
          description: >-
            The token (or API key) must be passed as a request header. You can find your user token on the User Account
            page in Label Studio. Example: <br><pre><code class="language-bash">curl
            https://label-studio-host/api/projects -H "Authorization: Token [your-token]"</code></pre>
          required: true
          schema:
            type: string
      responses:
        '201':
          description: ''
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/MLBackend'
      requestBody:
        content:
          application/json:
            schema:
              type: object
              properties:
                auth_method:
                  $ref: '#/components/schemas/ApiMlPostRequestBodyContentApplicationJsonSchemaAuthMethod'
                  description: Auth method
                basic_auth_pass:
                  type: string
                  description: Basic auth password
                basic_auth_user:
                  type: string
                  description: Basic auth user
                description:
                  type: string
                  description: Description
                extra_params:
                  $ref: '#/components/schemas/ApiMlPostRequestBodyContentApplicationJsonSchemaExtraParams'
                  description: Extra parameters
                is_interactive:
                  type: boolean
                  description: Is interactive
                project:
                  type: integer
                  description: Project ID
                timeout:
                  type: integer
                  description: Response model timeout
                title:
                  type: string
                  description: Title
                url:
                  type: string
                  description: ML backend URL
  /api/ml/{id}:
    get:
      operationId: get
      summary: Get ML Backend
      description: |2-

            Get details about a specific ML backend connection by ID. For example, make a GET request using the
            following cURL command:
            ```bash
            curl http://localhost:8000/api/ml/{ml_backend_ID} -H 'Authorization: Token abc123'
            
      tags:
        - subpackage_ml
      parameters:
        - name: id
          in: path
          required: true
          schema:
            type: integer
        - name: Authorization
          in: header
          description: >-
            The token (or API key) must be passed as a request header. You can find your user token on the User Account
            page in Label Studio. Example: <br><pre><code class="language-bash">curl
            https://label-studio-host/api/projects -H "Authorization: Token [your-token]"</code></pre>
          required: true
          schema:
            type: string
      responses:
        '200':
          description: ''
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/MLBackend'
    delete:
      operationId: delete
      summary: Remove ML Backend
      description: |2-

            Remove an existing ML backend connection by ID. For example, use the
            following cURL command:
            ```bash
            curl -X DELETE http://localhost:8000/api/ml/{ml_backend_ID} -H 'Authorization: Token abc123'
            
      tags:
        - subpackage_ml
      parameters:
        - name: id
          in: path
          required: true
          schema:
            type: integer
        - name: Authorization
          in: header
          description: >-
            The token (or API key) must be passed as a request header. You can find your user token on the User Account
            page in Label Studio. Example: <br><pre><code class="language-bash">curl
            https://label-studio-host/api/projects -H "Authorization: Token [your-token]"</code></pre>
          required: true
          schema:
            type: string
      responses:
        '200':
          description: Successful response
    patch:
      operationId: update
      summary: Update ML Backend
      description: |2-

            Update ML backend parameters using the Label Studio UI or by sending a PATCH request using the following cURL command:
            ```bash
            curl -X PATCH -H 'Content-type: application/json' http://localhost:8000/api/ml/{ml_backend_ID} -H 'Authorization: Token abc123'\
            --data '{"url": "http://localhost:9091"}' 
            
      tags:
        - subpackage_ml
      parameters:
        - name: id
          in: path
          required: true
          schema:
            type: integer
        - name: Authorization
          in: header
          description: >-
            The token (or API key) must be passed as a request header. You can find your user token on the User Account
            page in Label Studio. Example: <br><pre><code class="language-bash">curl
            https://label-studio-host/api/projects -H "Authorization: Token [your-token]"</code></pre>
          required: true
          schema:
            type: string
      responses:
        '200':
          description: ''
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/MLBackend'
      requestBody:
        content:
          application/json:
            schema:
              type: object
              properties:
                auth_method:
                  $ref: '#/components/schemas/ApiMlIdPatchRequestBodyContentApplicationJsonSchemaAuthMethod'
                  description: Auth method
                basic_auth_pass:
                  type: string
                  description: Basic auth password
                basic_auth_user:
                  type: string
                  description: Basic auth user
                description:
                  type: string
                  description: Description
                extra_params:
                  $ref: '#/components/schemas/ApiMlIdPatchRequestBodyContentApplicationJsonSchemaExtraParams'
                  description: Extra parameters
                is_interactive:
                  type: boolean
                  description: Is interactive
                project:
                  type: integer
                  description: Project ID
                timeout:
                  type: integer
                  description: Response model timeout
                title:
                  type: string
                  description: Title
                url:
                  type: string
                  description: ML backend URL
  /api/ml/{id}/interactive-annotating:
    post:
      operationId: predict-interactive
      summary: Request Interactive Annotation
      description: |2-

                Send a request to the machine learning backend set up to be used for interactive preannotations to retrieve a
                predicted region based on annotator input. 
                See [set up machine learning](https://labelstud.io/guide/ml.html#Get-interactive-preannotations) for more.
                
      tags:
        - subpackage_ml
      parameters:
        - name: id
          in: path
          description: A unique integer value identifying this ML backend.
          required: true
          schema:
            type: integer
        - name: Authorization
          in: header
          description: >-
            The token (or API key) must be passed as a request header. You can find your user token on the User Account
            page in Label Studio. Example: <br><pre><code class="language-bash">curl
            https://label-studio-host/api/projects -H "Authorization: Token [your-token]"</code></pre>
          required: true
          schema:
            type: string
      responses:
        '200':
          description: Interactive annotation has succeeded.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ml_predict_interactive_Response_200'
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/MLInteractiveAnnotatingRequestRequest'
  /api/ml/{id}/predict:
    post:
      operationId: predict-all-tasks
      summary: ✨ Create predictions for all tasks
      description: >-
        <Card href="https://humansignal.com/goenterprise">
                <img style="pointer-events: none; margin-left: 0px; margin-right: 0px;" src="https://docs.humansignal.com/images/badge.svg" alt="Label Studio Enterprise badge"/>
                <p style="margin-top: 10px; font-size: 14px;">
                    This endpoint is not available in Label Studio Community Edition. [Learn more about Label Studio Enterprise](https://humansignal.com/goenterprise)
                </p>
            </Card>


        Create predictions for all tasks using a specific ML backend so that you can set up an active learning strategy
        based on the confidence or uncertainty scores associated with the predictions. Creating predictions requires a
        Label Studio ML backend set up and configured for your project. 


        See [Set up machine learning](https://labelstud.io/guide/ml.html) for more details about a Label Studio ML
        backend. 


        Reference the ML backend ID in the path of this API call. Get the ML backend ID by [listing the ML backends for
        a project](https://labelstud.io/api/#operation/api_ml_list).
      tags:
        - subpackage_ml
      parameters:
        - name: id
          in: path
          description: A unique integer value identifying this ML backend.
          required: true
          schema:
            type: integer
        - name: batch_size
          in: query
          description: Computed number of tasks without predictions that the ML backend needs to predict.
          required: false
          schema:
            type: integer
        - name: Authorization
          in: header
          description: >-
            The token (or API key) must be passed as a request header. You can find your user token on the User Account
            page in Label Studio. Example: <br><pre><code class="language-bash">curl
            https://label-studio-host/api/projects -H "Authorization: Token [your-token]"</code></pre>
          required: true
          schema:
            type: string
      responses:
        '200':
          description: Predictions have successfully started.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ml_predict_all_tasks_Response_200'
  /api/ml/{id}/train:
    post:
      operationId: train
      summary: Train
      description: |2-

                After you add an ML backend, call this API with the ML backend ID to start training with 
                already-labeled tasks. 
                
                Get the ML backend ID by [listing the ML backends for a project](https://labelstud.io/api/#operation/api_ml_list).
                
      tags:
        - subpackage_ml
      parameters:
        - name: id
          in: path
          description: A unique integer value identifying this ML backend.
          required: true
          schema:
            type: integer
        - name: Authorization
          in: header
          description: >-
            The token (or API key) must be passed as a request header. You can find your user token on the User Account
            page in Label Studio. Example: <br><pre><code class="language-bash">curl
            https://label-studio-host/api/projects -H "Authorization: Token [your-token]"</code></pre>
          required: true
          schema:
            type: string
      responses:
        '200':
          description: Training has successfully started.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ml_train_Response_200'
        '500':
          description: Training error
          content:
            application/json:
              schema:
                type: string
      requestBody:
        content:
          application/json:
            schema:
              type: object
              properties:
                use_ground_truth:
                  type: boolean
                  description: Whether to include ground truth annotations in training
  /api/ml/{id}/versions:
    get:
      operationId: list-model-versions
      summary: Get model versions
      description: Get available versions of the model.
      tags:
        - subpackage_ml
      parameters:
        - name: id
          in: path
          required: true
          schema:
            type: integer
        - name: Authorization
          in: header
          description: >-
            The token (or API key) must be passed as a request header. You can find your user token on the User Account
            page in Label Studio. Example: <br><pre><code class="language-bash">curl
            https://label-studio-host/api/projects -H "Authorization: Token [your-token]"</code></pre>
          required: true
          schema:
            type: string
      responses:
        '200':
          description: List of available versions.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ml_list_model_versions_Response_200'
  /api/model-provider-connections/:
    get:
      operationId: list
      summary: ✨ List model provider connections
      description: |-
        <Card href="https://humansignal.com/goenterprise">
                <img style="pointer-events: none; margin-left: 0px; margin-right: 0px;" src="https://docs.humansignal.com/images/badge.svg" alt="Label Studio Enterprise badge"/>
                <p style="margin-top: 10px; font-size: 14px;">
                    This endpoint is not available in Label Studio Community Edition. [Learn more about Label Studio Enterprise](https://humansignal.com/goenterprise)
                </p>
            </Card>
        List all model provider connections.
      tags:
        - subpackage_modelProviders
      parameters:
        - name: ordering
          in: query
          description: Which field to use when ordering the results.
          required: false
          schema:
            type: string
        - name: Authorization
          in: header
          description: >-
            The token (or API key) must be passed as a request header. You can find your user token on the User Account
            page in Label Studio. Example: <br><pre><code class="language-bash">curl
            https://label-studio-host/api/projects -H "Authorization: Token [your-token]"</code></pre>
          required: true
          schema:
            type: string
      responses:
        '200':
          description: ''
          content:
            application/json:
              schema:
                type: array
                items:
                  $ref: '#/components/schemas/ModelProviderConnection'
    post:
      operationId: create
      summary: ✨ Create model provider connection
      description: |-
        <Card href="https://humansignal.com/goenterprise">
                <img style="pointer-events: none; margin-left: 0px; margin-right: 0px;" src="https://docs.humansignal.com/images/badge.svg" alt="Label Studio Enterprise badge"/>
                <p style="margin-top: 10px; font-size: 14px;">
                    This endpoint is not available in Label Studio Community Edition. [Learn more about Label Studio Enterprise](https://humansignal.com/goenterprise)
                </p>
            </Card>
        Create a new model provider connection.
      tags:
        - subpackage_modelProviders
      parameters:
        - name: Authorization
          in: header
          description: >-
            The token (or API key) must be passed as a request header. You can find your user token on the User Account
            page in Label Studio. Example: <br><pre><code class="language-bash">curl
            https://label-studio-host/api/projects -H "Authorization: Token [your-token]"</code></pre>
          required: true
          schema:
            type: string
      responses:
        '201':
          description: ''
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ModelProviderConnection'
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/ModelProviderConnectionRequest'
  /api/model-provider-connections/provider-choices:
    get:
      operationId: list-model-provider-choices
      summary: ✨ List model provider choices
      description: |-
        <Card href="https://humansignal.com/goenterprise">
                <img style="pointer-events: none; margin-left: 0px; margin-right: 0px;" src="https://docs.humansignal.com/images/badge.svg" alt="Label Studio Enterprise badge"/>
                <p style="margin-top: 10px; font-size: 14px;">
                    This endpoint is not available in Label Studio Community Edition. [Learn more about Label Studio Enterprise](https://humansignal.com/goenterprise)
                </p>
            </Card>
        List all possible model provider choices
      tags:
        - subpackage_modelProviders
      parameters:
        - name: Authorization
          in: header
          description: >-
            The token (or API key) must be passed as a request header. You can find your user token on the User Account
            page in Label Studio. Example: <br><pre><code class="language-bash">curl
            https://label-studio-host/api/projects -H "Authorization: Token [your-token]"</code></pre>
          required: true
          schema:
            type: string
      responses:
        '200':
          description: List of model provider choices
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/model_providers_list_model_provider_choices_Response_200'
  /api/model-provider-connections/{id}/:
    get:
      operationId: get
      summary: ✨ Get model provider connection
      description: |-
        <Card href="https://humansignal.com/goenterprise">
                <img style="pointer-events: none; margin-left: 0px; margin-right: 0px;" src="https://docs.humansignal.com/images/badge.svg" alt="Label Studio Enterprise badge"/>
                <p style="margin-top: 10px; font-size: 14px;">
                    This endpoint is not available in Label Studio Community Edition. [Learn more about Label Studio Enterprise](https://humansignal.com/goenterprise)
                </p>
            </Card>
        Retrieve a specific model provider connection.
      tags:
        - subpackage_modelProviders
      parameters:
        - name: id
          in: path
          required: true
          schema:
            type: string
        - name: Authorization
          in: header
          description: >-
            The token (or API key) must be passed as a request header. You can find your user token on the User Account
            page in Label Studio. Example: <br><pre><code class="language-bash">curl
            https://label-studio-host/api/projects -H "Authorization: Token [your-token]"</code></pre>
          required: true
          schema:
            type: string
      responses:
        '200':
          description: ''
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ModelProviderConnection'
    delete:
      operationId: delete
      summary: ✨ Delete model provider connection
      description: |-
        <Card href="https://humansignal.com/goenterprise">
                <img style="pointer-events: none; margin-left: 0px; margin-right: 0px;" src="https://docs.humansignal.com/images/badge.svg" alt="Label Studio Enterprise badge"/>
                <p style="margin-top: 10px; font-size: 14px;">
                    This endpoint is not available in Label Studio Community Edition. [Learn more about Label Studio Enterprise](https://humansignal.com/goenterprise)
                </p>
            </Card>
        Delete a model provider connection by ID
      tags:
        - subpackage_modelProviders
      parameters:
        - name: id
          in: path
          required: true
          schema:
            type: string
        - name: Authorization
          in: header
          description: >-
            The token (or API key) must be passed as a request header. You can find your user token on the User Account
            page in Label Studio. Example: <br><pre><code class="language-bash">curl
            https://label-studio-host/api/projects -H "Authorization: Token [your-token]"</code></pre>
          required: true
          schema:
            type: string
      responses:
        '200':
          description: Successful response
    patch:
      operationId: update
      summary: ✨ Update model provider connection
      description: |-
        <Card href="https://humansignal.com/goenterprise">
                <img style="pointer-events: none; margin-left: 0px; margin-right: 0px;" src="https://docs.humansignal.com/images/badge.svg" alt="Label Studio Enterprise badge"/>
                <p style="margin-top: 10px; font-size: 14px;">
                    This endpoint is not available in Label Studio Community Edition. [Learn more about Label Studio Enterprise](https://humansignal.com/goenterprise)
                </p>
            </Card>
        Update a specific model provider connection by ID.
      tags:
        - subpackage_modelProviders
      parameters:
        - name: id
          in: path
          required: true
          schema:
            type: string
        - name: Authorization
          in: header
          description: >-
            The token (or API key) must be passed as a request header. You can find your user token on the User Account
            page in Label Studio. Example: <br><pre><code class="language-bash">curl
            https://label-studio-host/api/projects -H "Authorization: Token [your-token]"</code></pre>
          required: true
          schema:
            type: string
      responses:
        '200':
          description: ''
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ModelProviderConnection'
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/PatchedModelProviderConnectionRequest'
  /api/predictions/:
    get:
      operationId: list
      summary: List predictions
      description: List all predictions and their IDs.
      tags:
        - subpackage_predictions
      parameters:
        - name: project
          in: query
          description: Filter predictions by project ID
          required: false
          schema:
            type: integer
        - name: task
          in: query
          description: Filter predictions by task ID
          required: false
          schema:
            type: integer
        - name: Authorization
          in: header
          description: >-
            The token (or API key) must be passed as a request header. You can find your user token on the User Account
            page in Label Studio. Example: <br><pre><code class="language-bash">curl
            https://label-studio-host/api/projects -H "Authorization: Token [your-token]"</code></pre>
          required: true
          schema:
            type: string
      responses:
        '200':
          description: Predictions list
          content:
            application/json:
              schema:
                type: array
                items:
                  $ref: '#/components/schemas/Prediction'
    post:
      operationId: create
      summary: Create prediction
      description: Create a prediction for a specific task.
      tags:
        - subpackage_predictions
      parameters:
        - name: Authorization
          in: header
          description: >-
            The token (or API key) must be passed as a request header. You can find your user token on the User Account
            page in Label Studio. Example: <br><pre><code class="language-bash">curl
            https://label-studio-host/api/projects -H "Authorization: Token [your-token]"</code></pre>
          required: true
          schema:
            type: string
      responses:
        '201':
          description: Created prediction
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Prediction'
      requestBody:
        content:
          application/json:
            schema:
              type: object
              properties:
                model_version:
                  type: string
                  description: >-
                    Model version - tag for predictions that can be used to filter tasks in Data Manager, as well as
                    select specific model version for showing preannotations in the labeling interface
                result:
                  type: array
                  items:
                    $ref: '#/components/schemas/ApiPredictionsPostRequestBodyContentApplicationJsonSchemaResultItems'
                  description: >-
                    Prediction result in JSON format. Read more about the format in [the Label Studio
                    documentation.](https://labelstud.io/guide/predictions)
                score:
                  type: number
                  format: double
                  description: >-
                    Prediction score. Can be used in Data Manager to sort task by model confidence. Task with the lowest
                    score will be shown first.
                task:
                  type: integer
                  description: Task ID for which the prediction is created
  /api/predictions/{id}/:
    get:
      operationId: get
      summary: Get prediction details
      description: Get details about a specific prediction by its ID.
      tags:
        - subpackage_predictions
      parameters:
        - name: id
          in: path
          description: Prediction ID
          required: true
          schema:
            type: integer
        - name: Authorization
          in: header
          description: >-
            The token (or API key) must be passed as a request header. You can find your user token on the User Account
            page in Label Studio. Example: <br><pre><code class="language-bash">curl
            https://label-studio-host/api/projects -H "Authorization: Token [your-token]"</code></pre>
          required: true
          schema:
            type: string
      responses:
        '200':
          description: Prediction details
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Prediction'
    delete:
      operationId: delete
      summary: Delete prediction
      description: Delete a prediction by prediction ID.
      tags:
        - subpackage_predictions
      parameters:
        - name: id
          in: path
          description: Prediction ID
          required: true
          schema:
            type: integer
        - name: Authorization
          in: header
          description: >-
            The token (or API key) must be passed as a request header. You can find your user token on the User Account
            page in Label Studio. Example: <br><pre><code class="language-bash">curl
            https://label-studio-host/api/projects -H "Authorization: Token [your-token]"</code></pre>
          required: true
          schema:
            type: string
      responses:
        '200':
          description: Successful response
    patch:
      operationId: update
      summary: Update prediction
      description: Update prediction data by prediction ID.
      tags:
        - subpackage_predictions
      parameters:
        - name: id
          in: path
          description: Prediction ID
          required: true
          schema:
            type: integer
        - name: Authorization
          in: header
          description: >-
            The token (or API key) must be passed as a request header. You can find your user token on the User Account
            page in Label Studio. Example: <br><pre><code class="language-bash">curl
            https://label-studio-host/api/projects -H "Authorization: Token [your-token]"</code></pre>
          required: true
          schema:
            type: string
      responses:
        '200':
          description: Updated prediction
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Prediction'
      requestBody:
        content:
          application/json:
            schema:
              type: object
              properties:
                model_version:
                  type: string
                  description: >-
                    Model version - tag for predictions that can be used to filter tasks in Data Manager, as well as
                    select specific model version for showing preannotations in the labeling interface
                result:
                  type: array
                  items:
                    $ref: '#/components/schemas/ApiPredictionsIdPatchRequestBodyContentApplicationJsonSchemaResultItems'
                  description: >-
                    Prediction result in JSON format. Read more about the format in [the Label Studio
                    documentation.](https://labelstud.io/guide/predictions)
                score:
                  type: number
                  format: double
                  description: >-
                    Prediction score. Can be used in Data Manager to sort task by model confidence. Task with the lowest
                    score will be shown first.
                task:
                  type: integer
                  description: Task ID for which the prediction is created
  /api/project-templates/:
    get:
      operationId: list
      summary: ✨ Get project templates
      description: |-
        <Card href="https://humansignal.com/goenterprise">
                <img style="pointer-events: none; margin-left: 0px; margin-right: 0px;" src="https://docs.humansignal.com/images/badge.svg" alt="Label Studio Enterprise badge"/>
                <p style="margin-top: 10px; font-size: 14px;">
                    This endpoint is not available in Label Studio Community Edition. [Learn more about Label Studio Enterprise](https://humansignal.com/goenterprise)
                </p>
            </Card>
        Get a list of all project templates for an organization.
      tags:
        - subpackage_projectTemplates
      parameters:
        - name: ordering
          in: query
          description: Which field to use when ordering the results.
          required: false
          schema:
            type: string
        - name: Authorization
          in: header
          description: >-
            The token (or API key) must be passed as a request header. You can find your user token on the User Account
            page in Label Studio. Example: <br><pre><code class="language-bash">curl
            https://label-studio-host/api/projects -H "Authorization: Token [your-token]"</code></pre>
          required: true
          schema:
            type: string
      responses:
        '200':
          description: ''
          content:
            application/json:
              schema:
                type: array
                items:
                  $ref: '#/components/schemas/ProjectTemplate'
    post:
      operationId: create
      summary: ✨ Create project template
      description: |-
        <Card href="https://humansignal.com/goenterprise">
                <img style="pointer-events: none; margin-left: 0px; margin-right: 0px;" src="https://docs.humansignal.com/images/badge.svg" alt="Label Studio Enterprise badge"/>
                <p style="margin-top: 10px; font-size: 14px;">
                    This endpoint is not available in Label Studio Community Edition. [Learn more about Label Studio Enterprise](https://humansignal.com/goenterprise)
                </p>
            </Card>
        Create a project template for an organization.
      tags:
        - subpackage_projectTemplates
      parameters:
        - name: Authorization
          in: header
          description: >-
            The token (or API key) must be passed as a request header. You can find your user token on the User Account
            page in Label Studio. Example: <br><pre><code class="language-bash">curl
            https://label-studio-host/api/projects -H "Authorization: Token [your-token]"</code></pre>
          required: true
          schema:
            type: string
      responses:
        '201':
          description: ''
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ProjectTemplate'
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/ProjectTemplateRequest'
  /api/project-templates/{id}:
    get:
      operationId: get
      summary: ✨ Get a project template
      description: |-
        <Card href="https://humansignal.com/goenterprise">
                <img style="pointer-events: none; margin-left: 0px; margin-right: 0px;" src="https://docs.humansignal.com/images/badge.svg" alt="Label Studio Enterprise badge"/>
                <p style="margin-top: 10px; font-size: 14px;">
                    This endpoint is not available in Label Studio Community Edition. [Learn more about Label Studio Enterprise](https://humansignal.com/goenterprise)
                </p>
            </Card>
        Get a specific project template by ID for an organization.
      tags:
        - subpackage_projectTemplates
      parameters:
        - name: id
          in: path
          required: true
          schema:
            type: integer
        - name: Authorization
          in: header
          description: >-
            The token (or API key) must be passed as a request header. You can find your user token on the User Account
            page in Label Studio. Example: <br><pre><code class="language-bash">curl
            https://label-studio-host/api/projects -H "Authorization: Token [your-token]"</code></pre>
          required: true
          schema:
            type: string
      responses:
        '200':
          description: ''
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ProjectTemplate'
    delete:
      operationId: delete
      summary: ✨ Delete a project template
      description: |-
        <Card href="https://humansignal.com/goenterprise">
                <img style="pointer-events: none; margin-left: 0px; margin-right: 0px;" src="https://docs.humansignal.com/images/badge.svg" alt="Label Studio Enterprise badge"/>
                <p style="margin-top: 10px; font-size: 14px;">
                    This endpoint is not available in Label Studio Community Edition. [Learn more about Label Studio Enterprise](https://humansignal.com/goenterprise)
                </p>
            </Card>
        Delete a specific project template by ID for an organization.
      tags:
        - subpackage_projectTemplates
      parameters:
        - name: id
          in: path
          required: true
          schema:
            type: integer
        - name: Authorization
          in: header
          description: >-
            The token (or API key) must be passed as a request header. You can find your user token on the User Account
            page in Label Studio. Example: <br><pre><code class="language-bash">curl
            https://label-studio-host/api/projects -H "Authorization: Token [your-token]"</code></pre>
          required: true
          schema:
            type: string
      responses:
        '200':
          description: Successful response
    patch:
      operationId: update
      summary: ✨ Update a project template
      description: |-
        <Card href="https://humansignal.com/goenterprise">
                <img style="pointer-events: none; margin-left: 0px; margin-right: 0px;" src="https://docs.humansignal.com/images/badge.svg" alt="Label Studio Enterprise badge"/>
                <p style="margin-top: 10px; font-size: 14px;">
                    This endpoint is not available in Label Studio Community Edition. [Learn more about Label Studio Enterprise](https://humansignal.com/goenterprise)
                </p>
            </Card>
        Update the details of a specific project template by ID for an organization.
      tags:
        - subpackage_projectTemplates
      parameters:
        - name: id
          in: path
          required: true
          schema:
            type: integer
        - name: Authorization
          in: header
          description: >-
            The token (or API key) must be passed as a request header. You can find your user token on the User Account
            page in Label Studio. Example: <br><pre><code class="language-bash">curl
            https://label-studio-host/api/projects -H "Authorization: Token [your-token]"</code></pre>
          required: true
          schema:
            type: string
      responses:
        '200':
          description: ''
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ProjectTemplate'
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/PatchedProjectTemplateRequest'
  /api/project-templates/{id}/create-project:
    post:
      operationId: create-project-from-template
      summary: ✨ Create project from template
      description: |-
        <Card href="https://humansignal.com/goenterprise">
                <img style="pointer-events: none; margin-left: 0px; margin-right: 0px;" src="https://docs.humansignal.com/images/badge.svg" alt="Label Studio Enterprise badge"/>
                <p style="margin-top: 10px; font-size: 14px;">
                    This endpoint is not available in Label Studio Community Edition. [Learn more about Label Studio Enterprise](https://humansignal.com/goenterprise)
                </p>
            </Card>
        Create a project from a specific project template by ID for an organization.
      tags:
        - subpackage_projectTemplates
      parameters:
        - name: id
          in: path
          required: true
          schema:
            type: integer
        - name: Authorization
          in: header
          description: >-
            The token (or API key) must be passed as a request header. You can find your user token on the User Account
            page in Label Studio. Example: <br><pre><code class="language-bash">curl
            https://label-studio-host/api/projects -H "Authorization: Token [your-token]"</code></pre>
          required: true
          schema:
            type: string
      responses:
        '201':
          description: Project created successfully
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/LseProject'
      requestBody:
        content:
          application/json:
            schema:
              type: object
              properties:
                description:
                  type: string
                  description: A description for the project.
                title:
                  type: string
                  description: The title of the project to be created from the template.
                workspace_id:
                  type: integer
                  description: A unique integer value identifying the workspace in which to create the project.
              required:
                - title
                - workspace_id
  /api/projects/{id}/imports/{import_pk}/:
    get:
      operationId: create-many-status
      summary: 'Get project import status '
      description: |2-

                    Poll the status of an asynchronous project import operation.
                    
                    **Usage:**
                    1. When you POST to `/api/projects/{project_id}/import`, you'll receive a response like `{"import": <import_id>}`
                    2. Use that `import_id` with this GET endpoint to check the import status
                    3. Poll this endpoint to see if the import has completed, is still processing, or has failed
                    4. **Import errors and failures will only be visible in this GET response**, not in the original POST request
                    
                    This endpoint returns detailed information about the import including task counts, status, and any error messages.
                
      tags:
        - subpackage_tasks
      parameters:
        - name: id
          in: path
          description: A unique integer value identifying this project import.
          required: true
          schema:
            type: integer
        - name: import_pk
          in: path
          required: true
          schema:
            type: integer
        - name: Authorization
          in: header
          description: >-
            The token (or API key) must be passed as a request header. You can find your user token on the User Account
            page in Label Studio. Example: <br><pre><code class="language-bash">curl
            https://label-studio-host/api/projects -H "Authorization: Token [your-token]"</code></pre>
          required: true
          schema:
            type: string
      responses:
        '200':
          description: ''
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ProjectImport'
  /api/projects/{id}/tasks/:
    delete:
      operationId: delete-all-tasks
      summary: Delete all tasks
      description: Delete all tasks from a specific project.
      tags:
        - subpackage_tasks
      parameters:
        - name: id
          in: path
          description: A unique integer value identifying this project.
          required: true
          schema:
            type: integer
        - name: Authorization
          in: header
          description: >-
            The token (or API key) must be passed as a request header. You can find your user token on the User Account
            page in Label Studio. Example: <br><pre><code class="language-bash">curl
            https://label-studio-host/api/projects -H "Authorization: Token [your-token]"</code></pre>
          required: true
          schema:
            type: string
      responses:
        '200':
          description: Successful response
  /api/tasks/:
    get:
      operationId: list
      summary: List tasks
      description: |-
        Retrieve a paginated list of tasks. The response format varies based on the user's role in the organization:
        - **Admin/Owner**: Full task details with all annotations, reviews, and metadata
        - **Reviewer**: Task details optimized for review workflow
        - **Annotator**: Task details filtered to show only user's own annotations and assignments
      tags:
        - subpackage_tasks
      parameters:
        - name: fields
          in: query
          description: Set to "all" if you want to include annotations and predictions in the response. Defaults to task_only
          required: false
          schema:
            $ref: '#/components/schemas/ApiTasksGetParametersFields'
        - name: include
          in: query
          description: Specify which fields to include in the response
          required: false
          schema:
            type: string
        - name: only_annotated
          in: query
          description: Filter to show only tasks that have annotations
          required: false
          schema:
            type: boolean
        - name: page
          in: query
          description: A page number within the paginated result set.
          required: false
          schema:
            type: integer
        - name: page_size
          in: query
          description: Number of results to return per page.
          required: false
          schema:
            type: integer
        - name: project
          in: query
          description: Project ID
          required: false
          schema:
            type: integer
        - name: query
          in: query
          description: >-
            Additional query to filter tasks. It must be JSON encoded string of dict containing one of the following
            parameters: {"filters": ..., "selectedItems": ..., "ordering": ...}. Check Data Manager > Create View > see
            data field for more details about filters, selectedItems and ordering.


            filters: dict with "conjunction" string ("or" or "and") and list of filters in "items" array. Each filter is
            a dictionary with keys: "filter", "operator", "type", "value". Read more about available filters

            Example: {"conjunction": "or", "items": [{"filter": "filter:tasks:completed_at", "operator": "greater",
            "type": "Datetime", "value": "2021-01-01T00:00:00.000Z"}]}

            selectedItems: dictionary with keys: "all", "included", "excluded". If "all" is false, "included" must be
            used. If "all" is true, "excluded" must be used.

            Examples: {"all": false, "included": [1, 2, 3]} or {"all": true, "excluded": [4, 5]}

            ordering: list of fields to order by. Currently, ordering is supported by only one parameter.

            Example: ["completed_at"]
          required: false
          schema:
            type: string
        - name: resolve_uri
          in: query
          description: Resolve task data URIs using Cloud Storage
          required: false
          schema:
            type: boolean
        - name: review
          in: query
          description: Get tasks for review
          required: false
          schema:
            type: boolean
        - name: selectedItems
          in: query
          description: JSON string of selected task IDs for review workflow
          required: false
          schema:
            type: string
        - name: view
          in: query
          description: View ID
          required: false
          schema:
            type: integer
        - name: Authorization
          in: header
          description: >-
            The token (or API key) must be passed as a request header. You can find your user token on the User Account
            page in Label Studio. Example: <br><pre><code class="language-bash">curl
            https://label-studio-host/api/projects -H "Authorization: Token [your-token]"</code></pre>
          required: true
          schema:
            type: string
      responses:
        '200':
          description: ''
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/PaginatedRoleBasedTaskList'
        '400':
          description: Bad request - invalid parameters
          content:
            application/json:
              schema:
                description: Any type
        '401':
          description: Unauthorized - authentication required
          content:
            application/json:
              schema:
                description: Any type
        '403':
          description: Forbidden - insufficient permissions
          content:
            application/json:
              schema:
                description: Any type
    post:
      operationId: create
      summary: Create a new task
      description: Create a new task
      tags:
        - subpackage_tasks
      parameters:
        - name: Authorization
          in: header
          description: >-
            The token (or API key) must be passed as a request header. You can find your user token on the User Account
            page in Label Studio. Example: <br><pre><code class="language-bash">curl
            https://label-studio-host/api/projects -H "Authorization: Token [your-token]"</code></pre>
          required: true
          schema:
            type: string
      responses:
        '201':
          description: ''
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/LseTask'
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/LseTaskRequest'
  /api/tasks/{id}/:
    get:
      operationId: get
      summary: Get task
      description: Get task data, metadata, annotations and other attributes for a specific labeling task by task ID.
      tags:
        - subpackage_tasks
      parameters:
        - name: id
          in: path
          description: Task ID
          required: true
          schema:
            type: string
        - name: Authorization
          in: header
          description: >-
            The token (or API key) must be passed as a request header. You can find your user token on the User Account
            page in Label Studio. Example: <br><pre><code class="language-bash">curl
            https://label-studio-host/api/projects -H "Authorization: Token [your-token]"</code></pre>
          required: true
          schema:
            type: string
      responses:
        '200':
          description: ''
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/RoleBasedTask'
    delete:
      operationId: delete
      summary: Delete task
      description: Delete a task in Label Studio. This action cannot be undone!
      tags:
        - subpackage_tasks
      parameters:
        - name: id
          in: path
          description: Task ID
          required: true
          schema:
            type: string
        - name: Authorization
          in: header
          description: >-
            The token (or API key) must be passed as a request header. You can find your user token on the User Account
            page in Label Studio. Example: <br><pre><code class="language-bash">curl
            https://label-studio-host/api/projects -H "Authorization: Token [your-token]"</code></pre>
          required: true
          schema:
            type: string
      responses:
        '200':
          description: Successful response
    patch:
      operationId: update
      summary: Update task
      description: Update the attributes of an existing labeling task.
      tags:
        - subpackage_tasks
      parameters:
        - name: id
          in: path
          description: Task ID
          required: true
          schema:
            type: string
        - name: Authorization
          in: header
          description: >-
            The token (or API key) must be passed as a request header. You can find your user token on the User Account
            page in Label Studio. Example: <br><pre><code class="language-bash">curl
            https://label-studio-host/api/projects -H "Authorization: Token [your-token]"</code></pre>
          required: true
          schema:
            type: string
      responses:
        '200':
          description: ''
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/RoleBasedTask'
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/PatchedLseTaskRequest'
  /api/tasks/{id}/events/:
    post:
      operationId: create-event
      summary: Create task event
      description: |2-

            Create a new task event to track user interactions and system events during annotation.

            This endpoint is designed to receive events from the frontend labeling interface to enable
            accurate lead time calculation and detailed annotation analytics.

            ## Event Types

            **Core Annotation Events:**
            - `annotation_loaded` - When annotation interface is loaded
            - `annotation_created` - When annotation is submitted
            - `annotation_updated` - When annotation is modified
            - `annotation_reviewed` - When annotation is reviewed

            **User Activity Events:**
            - `visibility_change` - When page visibility changes (tab switch, minimize)
            - `idle_detected` - When user goes idle
            - `idle_resumed` - When user returns from idle

            **Interaction Events:**
            - `region_finished_drawing` - When annotation region is completed
            - `region_deleted` - When annotation regions are removed
            - `hotkey_pressed` - When keyboard shortcuts are used

            **Media Events:**
            - `video_playback_start/end` - Video playback control
            - `audio_playback_start/end` - Audio playback control
            - `video_scrub` - Video timeline scrubbing

            ## Usage

            Events are automatically associated with the task specified in the URL path.
            The current user is automatically set as the actor. Project and organization
            are derived from the task context.

            ## Example Request

            ```json
            {
                "event_key": "annotation_loaded",
                "event_time": "2024-01-15T10:30:00Z",
                "annotation": 123,
                "meta": {
                    "annotation_count": 5,
                    "estimated_time": 300
                }
            }
            ```
            
      tags:
        - subpackage_tasks
      parameters:
        - name: id
          in: path
          description: Task ID to associate the event with
          required: true
          schema:
            type: integer
        - name: Authorization
          in: header
          description: >-
            The token (or API key) must be passed as a request header. You can find your user token on the User Account
            page in Label Studio. Example: <br><pre><code class="language-bash">curl
            https://label-studio-host/api/projects -H "Authorization: Token [your-token]"</code></pre>
          required: true
          schema:
            type: string
      responses:
        '201':
          description: ''
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/TaskEvent'
        '400':
          description: Bad request - validation errors
          content:
            application/json:
              schema:
                description: Any type
        '401':
          description: Unauthorized - authentication required
          content:
            application/json:
              schema:
                description: Any type
        '403':
          description: Forbidden - insufficient permissions
          content:
            application/json:
              schema:
                description: Any type
        '404':
          description: Not found - task does not exist
          content:
            application/json:
              schema:
                description: Any type
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/TaskEventRequest'
  /api/projects/{project_pk}/tasks/{task_pk}/agreement-matrix:
    get:
      operationId: get
      summary: ✨ Get task agreement matrix
      description: >-
        <Card href="https://humansignal.com/goenterprise">
                <img style="pointer-events: none; margin-left: 0px; margin-right: 0px;" src="https://docs.humansignal.com/images/badge.svg" alt="Label Studio Enterprise badge"/>
                <p style="margin-top: 10px; font-size: 14px;">
                    This endpoint is not available in Label Studio Community Edition. [Learn more about Label Studio Enterprise](https://humansignal.com/goenterprise)
                </p>
            </Card>
        Returns a pairwise agreement matrix between selected participants for a single task, averaged across all active
        dimensions or a single specified dimension.
      tags:
        - subpackage_tasks.subpackage_tasks/agreementMatrix
      parameters:
        - name: project_pk
          in: path
          description: Project ID
          required: true
          schema:
            type: integer
        - name: task_pk
          in: path
          description: Task ID
          required: true
          schema:
            type: integer
        - name: dimension
          in: query
          description: Dimension ID to compute agreement for. If not provided, averages across all active dimensions.
          required: false
          schema:
            type: integer
        - name: selection
          in: query
          description: JSON object specifying which participants to include in the agreement matrix
          required: true
          schema:
            $ref: '#/components/schemas/AgreementSelectionRequest'
        - name: Authorization
          in: header
          description: >-
            The token (or API key) must be passed as a request header. You can find your user token on the User Account
            page in Label Studio. Example: <br><pre><code class="language-bash">curl
            https://label-studio-host/api/projects -H "Authorization: Token [your-token]"</code></pre>
          required: true
          schema:
            type: string
      responses:
        '200':
          description: ''
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/TaskAgreementMatrixResponse'
  /api/saml/settings:
    get:
      operationId: get
      summary: ✨ Retrieve SAML2 Settings
      description: |-
        <Card href="https://humansignal.com/goenterprise">
                <img style="pointer-events: none; margin-left: 0px; margin-right: 0px;" src="https://docs.humansignal.com/images/badge.svg" alt="Label Studio Enterprise badge"/>
                <p style="margin-top: 10px; font-size: 14px;">
                    This endpoint is not available in Label Studio Community Edition. [Learn more about Label Studio Enterprise](https://humansignal.com/goenterprise)
                </p>
            </Card>
        Retrieve SAML2 settings for the currently active organization.
      tags:
        - subpackage_sso.subpackage_sso/saml
      parameters:
        - name: Authorization
          in: header
          description: >-
            The token (or API key) must be passed as a request header. You can find your user token on the User Account
            page in Label Studio. Example: <br><pre><code class="language-bash">curl
            https://label-studio-host/api/projects -H "Authorization: Token [your-token]"</code></pre>
          required: true
          schema:
            type: string
      responses:
        '200':
          description: ''
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/SamlSettings'
    post:
      operationId: update
      summary: ✨ Update SAML2 Settings
      description: |-
        <Card href="https://humansignal.com/goenterprise">
                <img style="pointer-events: none; margin-left: 0px; margin-right: 0px;" src="https://docs.humansignal.com/images/badge.svg" alt="Label Studio Enterprise badge"/>
                <p style="margin-top: 10px; font-size: 14px;">
                    This endpoint is not available in Label Studio Community Edition. [Learn more about Label Studio Enterprise](https://humansignal.com/goenterprise)
                </p>
            </Card>
        Update SAML2 settings for the currently active organization.
      tags:
        - subpackage_sso.subpackage_sso/saml
      parameters:
        - name: Authorization
          in: header
          description: >-
            The token (or API key) must be passed as a request header. You can find your user token on the User Account
            page in Label Studio. Example: <br><pre><code class="language-bash">curl
            https://label-studio-host/api/projects -H "Authorization: Token [your-token]"</code></pre>
          required: true
          schema:
            type: string
      responses:
        '201':
          description: ''
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/SamlSettingsUpdate'
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/SamlSettingsUpdateRequest'
    delete:
      operationId: reset
      summary: ✨ Reset SAML2 Settings
      description: >-
        <Card href="https://humansignal.com/goenterprise">
                <img style="pointer-events: none; margin-left: 0px; margin-right: 0px;" src="https://docs.humansignal.com/images/badge.svg" alt="Label Studio Enterprise badge"/>
                <p style="margin-top: 10px; font-size: 14px;">
                    This endpoint is not available in Label Studio Community Edition. [Learn more about Label Studio Enterprise](https://humansignal.com/goenterprise)
                </p>
            </Card>
        Reset SAML2 settings for the currently active organization. This clears all configured fields (domain, metadata,
        attribute mappings, group mappings) back to their defaults without deleting the underlying settings record.
      tags:
        - subpackage_sso.subpackage_sso/saml
      parameters:
        - name: Authorization
          in: header
          description: >-
            The token (or API key) must be passed as a request header. You can find your user token on the User Account
            page in Label Studio. Example: <br><pre><code class="language-bash">curl
            https://label-studio-host/api/projects -H "Authorization: Token [your-token]"</code></pre>
          required: true
          schema:
            type: string
      responses:
        '200':
          description: Successful response
  /api/saml/settings/validate-metadata-url:
    post:
      operationId: validate-metadata-url
      summary: ✨ Validate SAML Metadata URL
      description: |-
        <Card href="https://humansignal.com/goenterprise">
                <img style="pointer-events: none; margin-left: 0px; margin-right: 0px;" src="https://docs.humansignal.com/images/badge.svg" alt="Label Studio Enterprise badge"/>
                <p style="margin-top: 10px; font-size: 14px;">
                    This endpoint is not available in Label Studio Community Edition. [Learn more about Label Studio Enterprise](https://humansignal.com/goenterprise)
                </p>
            </Card>
        Validate a SAML metadata URL by fetching it and checking for valid XML, without saving.
      tags:
        - subpackage_sso.subpackage_sso/saml
      parameters:
        - name: Authorization
          in: header
          description: >-
            The token (or API key) must be passed as a request header. You can find your user token on the User Account
            page in Label Studio. Example: <br><pre><code class="language-bash">curl
            https://label-studio-host/api/projects -H "Authorization: Token [your-token]"</code></pre>
          required: true
          schema:
            type: string
      responses:
        '200':
          description: ''
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ValidateSamlMetadataUrlResponse'
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/ValidateSamlMetadataUrlRequestRequest'
  /api/scim/settings:
    get:
      operationId: get
      summary: ✨ Retrieve SCIM Settings
      description: |-
        <Card href="https://humansignal.com/goenterprise">
                <img style="pointer-events: none; margin-left: 0px; margin-right: 0px;" src="https://docs.humansignal.com/images/badge.svg" alt="Label Studio Enterprise badge"/>
                <p style="margin-top: 10px; font-size: 14px;">
                    This endpoint is not available in Label Studio Community Edition. [Learn more about Label Studio Enterprise](https://humansignal.com/goenterprise)
                </p>
            </Card>
        Retrieve SCIM settings for the currently active organization.
      tags:
        - subpackage_sso.subpackage_sso/scim
      parameters:
        - name: Authorization
          in: header
          description: >-
            The token (or API key) must be passed as a request header. You can find your user token on the User Account
            page in Label Studio. Example: <br><pre><code class="language-bash">curl
            https://label-studio-host/api/projects -H "Authorization: Token [your-token]"</code></pre>
          required: true
          schema:
            type: string
      responses:
        '200':
          description: ''
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ScimSettings'
    post:
      operationId: update
      summary: ✨ Update SCIM Settings
      description: |-
        <Card href="https://humansignal.com/goenterprise">
                <img style="pointer-events: none; margin-left: 0px; margin-right: 0px;" src="https://docs.humansignal.com/images/badge.svg" alt="Label Studio Enterprise badge"/>
                <p style="margin-top: 10px; font-size: 14px;">
                    This endpoint is not available in Label Studio Community Edition. [Learn more about Label Studio Enterprise](https://humansignal.com/goenterprise)
                </p>
            </Card>
        Update SCIM settings for the currently active organization.
      tags:
        - subpackage_sso.subpackage_sso/scim
      parameters:
        - name: Authorization
          in: header
          description: >-
            The token (or API key) must be passed as a request header. You can find your user token on the User Account
            page in Label Studio. Example: <br><pre><code class="language-bash">curl
            https://label-studio-host/api/projects -H "Authorization: Token [your-token]"</code></pre>
          required: true
          schema:
            type: string
      responses:
        '201':
          description: ''
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ScimSettingsUpdate'
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/ScimSettingsUpdateRequest'
  /api/session-policy/:
    get:
      operationId: get
      summary: Retrieve Session Policy
      description: Retrieve session timeout policy for the currently active organization.
      tags:
        - subpackage_sessionPolicy
      parameters:
        - name: Authorization
          in: header
          description: >-
            The token (or API key) must be passed as a request header. You can find your user token on the User Account
            page in Label Studio. Example: <br><pre><code class="language-bash">curl
            https://label-studio-host/api/projects -H "Authorization: Token [your-token]"</code></pre>
          required: true
          schema:
            type: string
      responses:
        '200':
          description: ''
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/SessionTimeoutPolicy'
    patch:
      operationId: update
      summary: Update Session Policy
      description: Update session timeout policy for the currently active organization.
      tags:
        - subpackage_sessionPolicy
      parameters:
        - name: Authorization
          in: header
          description: >-
            The token (or API key) must be passed as a request header. You can find your user token on the User Account
            page in Label Studio. Example: <br><pre><code class="language-bash">curl
            https://label-studio-host/api/projects -H "Authorization: Token [your-token]"</code></pre>
          required: true
          schema:
            type: string
      responses:
        '200':
          description: ''
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/SessionTimeoutPolicy'
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/PatchedSessionTimeoutPolicyRequest'
  /api/storages/types:
    get:
      operationId: list-types
      summary: List all import storages types
      description: Retrieve a list of the import storages types.
      tags:
        - subpackage_importStorage
      parameters:
        - name: Authorization
          in: header
          description: >-
            The token (or API key) must be passed as a request header. You can find your user token on the User Account
            page in Label Studio. Example: <br><pre><code class="language-bash">curl
            https://label-studio-host/api/projects -H "Authorization: Token [your-token]"</code></pre>
          required: true
          schema:
            type: string
      responses:
        '200':
          description: List of import storage types
          content:
            application/json:
              schema:
                type: array
                items:
                  $ref: '#/components/schemas/ApiStoragesTypesGetResponsesContentApplicationJsonSchemaItems'
  /api/storages/azure/:
    get:
      operationId: list
      summary: Get all import storage
      description: Get list of all Azure import storage connections.
      tags:
        - subpackage_importStorage.subpackage_importStorage/azure
      parameters:
        - name: ordering
          in: query
          description: Which field to use when ordering the results.
          required: false
          schema:
            type: string
        - name: project
          in: query
          description: Project ID
          required: true
          schema:
            type: integer
        - name: Authorization
          in: header
          description: >-
            The token (or API key) must be passed as a request header. You can find your user token on the User Account
            page in Label Studio. Example: <br><pre><code class="language-bash">curl
            https://label-studio-host/api/projects -H "Authorization: Token [your-token]"</code></pre>
          required: true
          schema:
            type: string
      responses:
        '200':
          description: ''
          content:
            application/json:
              schema:
                type: array
                items:
                  $ref: '#/components/schemas/AzureBlobImportStorage'
    post:
      operationId: create
      summary: Create new storage
      description: Create new Azure import storage
      tags:
        - subpackage_importStorage.subpackage_importStorage/azure
      parameters:
        - name: Authorization
          in: header
          description: >-
            The token (or API key) must be passed as a request header. You can find your user token on the User Account
            page in Label Studio. Example: <br><pre><code class="language-bash">curl
            https://label-studio-host/api/projects -H "Authorization: Token [your-token]"</code></pre>
          required: true
          schema:
            type: string
      responses:
        '201':
          description: ''
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/AzureBlobImportStorage'
      requestBody:
        content:
          application/json:
            schema:
              type: object
              properties:
                account_key:
                  type: string
                  description: Azure Blob account key
                account_name:
                  type: string
                  description: Azure Blob account name
                container:
                  type: string
                  description: Azure blob container
                description:
                  type: string
                  description: Storage description
                prefix:
                  type: string
                  description: Azure blob prefix name
                presign:
                  type: boolean
                  default: true
                  description: Presign URLs for direct download
                presign_ttl:
                  type: integer
                  default: 1
                  description: Presign TTL in minutes
                project:
                  type: integer
                  description: Project ID
                regex_filter:
                  type: string
                  description: >-
                    Cloud storage regex for filtering objects. You must specify it otherwise no objects will be
                    imported.
                title:
                  type: string
                  description: Storage title
                use_blob_urls:
                  type: boolean
                  default: false
                  description: >-
                    Interpret objects as BLOBs and generate URLs. For example, if your bucket contains images, you can
                    use this option to generate URLs for these images. If set to False, it will read the content of the
                    file and load it into Label Studio.
  /api/storages/azure/validate:
    post:
      operationId: validate
      summary: Validate import storage
      description: Validate a specific Azure import storage connection.
      tags:
        - subpackage_importStorage.subpackage_importStorage/azure
      parameters:
        - name: Authorization
          in: header
          description: >-
            The token (or API key) must be passed as a request header. You can find your user token on the User Account
            page in Label Studio. Example: <br><pre><code class="language-bash">curl
            https://label-studio-host/api/projects -H "Authorization: Token [your-token]"</code></pre>
          required: true
          schema:
            type: string
      responses:
        '200':
          description: Validation successful
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/import_storage_azure_validate_Response_200'
      requestBody:
        content:
          application/json:
            schema:
              type: object
              properties:
                account_key:
                  type: string
                  description: Azure Blob account key
                account_name:
                  type: string
                  description: Azure Blob account name
                container:
                  type: string
                  description: Azure blob container
                description:
                  type: string
                  description: Storage description
                id:
                  type: integer
                  description: Storage ID. If set, storage with specified ID will be updated
                prefix:
                  type: string
                  description: Azure blob prefix name
                presign:
                  type: boolean
                  default: true
                  description: Presign URLs for direct download
                presign_ttl:
                  type: integer
                  default: 1
                  description: Presign TTL in minutes
                project:
                  type: integer
                  description: Project ID
                regex_filter:
                  type: string
                  description: >-
                    Cloud storage regex for filtering objects. You must specify it otherwise no objects will be
                    imported.
                title:
                  type: string
                  description: Storage title
                use_blob_urls:
                  type: boolean
                  default: false
                  description: >-
                    Interpret objects as BLOBs and generate URLs. For example, if your bucket contains images, you can
                    use this option to generate URLs for these images. If set to False, it will read the content of the
                    file and load it into Label Studio.
  /api/storages/azure/{id}:
    get:
      operationId: get
      summary: Get import storage
      description: Get a specific Azure import storage connection.
      tags:
        - subpackage_importStorage.subpackage_importStorage/azure
      parameters:
        - name: id
          in: path
          required: true
          schema:
            type: integer
        - name: Authorization
          in: header
          description: >-
            The token (or API key) must be passed as a request header. You can find your user token on the User Account
            page in Label Studio. Example: <br><pre><code class="language-bash">curl
            https://label-studio-host/api/projects -H "Authorization: Token [your-token]"</code></pre>
          required: true
          schema:
            type: string
      responses:
        '200':
          description: ''
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/AzureBlobImportStorage'
    delete:
      operationId: delete
      summary: Delete import storage
      description: Delete a specific Azure import storage connection.
      tags:
        - subpackage_importStorage.subpackage_importStorage/azure
      parameters:
        - name: id
          in: path
          required: true
          schema:
            type: integer
        - name: Authorization
          in: header
          description: >-
            The token (or API key) must be passed as a request header. You can find your user token on the User Account
            page in Label Studio. Example: <br><pre><code class="language-bash">curl
            https://label-studio-host/api/projects -H "Authorization: Token [your-token]"</code></pre>
          required: true
          schema:
            type: string
      responses:
        '200':
          description: Successful response
    patch:
      operationId: update
      summary: Update import storage
      description: Update a specific Azure import storage connection.
      tags:
        - subpackage_importStorage.subpackage_importStorage/azure
      parameters:
        - name: id
          in: path
          required: true
          schema:
            type: integer
        - name: Authorization
          in: header
          description: >-
            The token (or API key) must be passed as a request header. You can find your user token on the User Account
            page in Label Studio. Example: <br><pre><code class="language-bash">curl
            https://label-studio-host/api/projects -H "Authorization: Token [your-token]"</code></pre>
          required: true
          schema:
            type: string
      responses:
        '200':
          description: ''
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/AzureBlobImportStorage'
      requestBody:
        content:
          application/json:
            schema:
              type: object
              properties:
                account_key:
                  type: string
                  description: Azure Blob account key
                account_name:
                  type: string
                  description: Azure Blob account name
                container:
                  type: string
                  description: Azure blob container
                description:
                  type: string
                  description: Storage description
                prefix:
                  type: string
                  description: Azure blob prefix name
                presign:
                  type: boolean
                  default: true
                  description: Presign URLs for direct download
                presign_ttl:
                  type: integer
                  default: 1
                  description: Presign TTL in minutes
                project:
                  type: integer
                  description: Project ID
                regex_filter:
                  type: string
                  description: >-
                    Cloud storage regex for filtering objects. You must specify it otherwise no objects will be
                    imported.
                title:
                  type: string
                  description: Storage title
                use_blob_urls:
                  type: boolean
                  default: false
                  description: >-
                    Interpret objects as BLOBs and generate URLs. For example, if your bucket contains images, you can
                    use this option to generate URLs for these images. If set to False, it will read the content of the
                    file and load it into Label Studio.
  /api/storages/azure/{id}/sync:
    post:
      operationId: sync
      summary: Sync import storage
      description: Sync tasks from an Azure import storage connection.
      tags:
        - subpackage_importStorage.subpackage_importStorage/azure
      parameters:
        - name: id
          in: path
          description: Storage ID
          required: true
          schema:
            type: integer
        - name: Authorization
          in: header
          description: >-
            The token (or API key) must be passed as a request header. You can find your user token on the User Account
            page in Label Studio. Example: <br><pre><code class="language-bash">curl
            https://label-studio-host/api/projects -H "Authorization: Token [your-token]"</code></pre>
          required: true
          schema:
            type: string
      responses:
        '200':
          description: ''
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/AzureBlobImportStorage'
  /api/storages/azure_spi/:
    get:
      operationId: list
      summary: ✨ Get Azure SPI import storage
      description: |-
        <Card href="https://humansignal.com/goenterprise">
                <img style="pointer-events: none; margin-left: 0px; margin-right: 0px;" src="https://docs.humansignal.com/images/badge.svg" alt="Label Studio Enterprise badge"/>
                <p style="margin-top: 10px; font-size: 14px;">
                    This endpoint is not available in Label Studio Community Edition. [Learn more about Label Studio Enterprise](https://humansignal.com/goenterprise)
                </p>
            </Card>
        Get list of all Azure import storage connections set up with Service Principal authentication.
      tags:
        - subpackage_importStorage.subpackage_importStorage/azureSpi
      parameters:
        - name: ordering
          in: query
          description: Which field to use when ordering the results.
          required: false
          schema:
            type: string
        - name: project
          in: query
          description: Project ID
          required: true
          schema:
            type: integer
        - name: Authorization
          in: header
          description: >-
            The token (or API key) must be passed as a request header. You can find your user token on the User Account
            page in Label Studio. Example: <br><pre><code class="language-bash">curl
            https://label-studio-host/api/projects -H "Authorization: Token [your-token]"</code></pre>
          required: true
          schema:
            type: string
      responses:
        '200':
          description: ''
          content:
            application/json:
              schema:
                type: array
                items:
                  $ref: '#/components/schemas/AzureServicePrincipalImportStorage'
    post:
      operationId: create
      summary: ✨ Create Azure import storage with SPI
      description: |-
        <Card href="https://humansignal.com/goenterprise">
                <img style="pointer-events: none; margin-left: 0px; margin-right: 0px;" src="https://docs.humansignal.com/images/badge.svg" alt="Label Studio Enterprise badge"/>
                <p style="margin-top: 10px; font-size: 14px;">
                    This endpoint is not available in Label Studio Community Edition. [Learn more about Label Studio Enterprise](https://humansignal.com/goenterprise)
                </p>
            </Card>
        Create Azure import storage with Service Principal authentication.
      tags:
        - subpackage_importStorage.subpackage_importStorage/azureSpi
      parameters:
        - name: Authorization
          in: header
          description: >-
            The token (or API key) must be passed as a request header. You can find your user token on the User Account
            page in Label Studio. Example: <br><pre><code class="language-bash">curl
            https://label-studio-host/api/projects -H "Authorization: Token [your-token]"</code></pre>
          required: true
          schema:
            type: string
      responses:
        '201':
          description: ''
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/AzureServicePrincipalImportStorage'
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/AzureServicePrincipalImportStorageRequest'
  /api/storages/azure_spi/validate:
    post:
      operationId: validate
      summary: ✨ Validate Azure SPI import storage
      description: |-
        <Card href="https://humansignal.com/goenterprise">
                <img style="pointer-events: none; margin-left: 0px; margin-right: 0px;" src="https://docs.humansignal.com/images/badge.svg" alt="Label Studio Enterprise badge"/>
                <p style="margin-top: 10px; font-size: 14px;">
                    This endpoint is not available in Label Studio Community Edition. [Learn more about Label Studio Enterprise](https://humansignal.com/goenterprise)
                </p>
            </Card>
        Validate a specific Azure import storage connection that was set up with Service Principal authentication.
      tags:
        - subpackage_importStorage.subpackage_importStorage/azureSpi
      parameters:
        - name: Authorization
          in: header
          description: >-
            The token (or API key) must be passed as a request header. You can find your user token on the User Account
            page in Label Studio. Example: <br><pre><code class="language-bash">curl
            https://label-studio-host/api/projects -H "Authorization: Token [your-token]"</code></pre>
          required: true
          schema:
            type: string
      responses:
        '200':
          description: Validation successful
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/import_storage_azure_spi_validate_Response_200'
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/AzureServicePrincipalImportStorageRequest'
  /api/storages/azure_spi/{id}:
    get:
      operationId: get
      summary: ✨ Get Azure SPI import storage
      description: |-
        <Card href="https://humansignal.com/goenterprise">
                <img style="pointer-events: none; margin-left: 0px; margin-right: 0px;" src="https://docs.humansignal.com/images/badge.svg" alt="Label Studio Enterprise badge"/>
                <p style="margin-top: 10px; font-size: 14px;">
                    This endpoint is not available in Label Studio Community Edition. [Learn more about Label Studio Enterprise](https://humansignal.com/goenterprise)
                </p>
            </Card>
        Get a specific Azure import storage connection that was set up with Service Principal authentication.
      tags:
        - subpackage_importStorage.subpackage_importStorage/azureSpi
      parameters:
        - name: id
          in: path
          required: true
          schema:
            type: integer
        - name: Authorization
          in: header
          description: >-
            The token (or API key) must be passed as a request header. You can find your user token on the User Account
            page in Label Studio. Example: <br><pre><code class="language-bash">curl
            https://label-studio-host/api/projects -H "Authorization: Token [your-token]"</code></pre>
          required: true
          schema:
            type: string
      responses:
        '200':
          description: ''
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/AzureServicePrincipalImportStorage'
    delete:
      operationId: delete
      summary: ✨ Delete Azure SPI import storage
      description: |-
        <Card href="https://humansignal.com/goenterprise">
                <img style="pointer-events: none; margin-left: 0px; margin-right: 0px;" src="https://docs.humansignal.com/images/badge.svg" alt="Label Studio Enterprise badge"/>
                <p style="margin-top: 10px; font-size: 14px;">
                    This endpoint is not available in Label Studio Community Edition. [Learn more about Label Studio Enterprise](https://humansignal.com/goenterprise)
                </p>
            </Card>
        Delete a specific Azure import storage connection that was set up with Service Principal authentication.
      tags:
        - subpackage_importStorage.subpackage_importStorage/azureSpi
      parameters:
        - name: id
          in: path
          required: true
          schema:
            type: integer
        - name: Authorization
          in: header
          description: >-
            The token (or API key) must be passed as a request header. You can find your user token on the User Account
            page in Label Studio. Example: <br><pre><code class="language-bash">curl
            https://label-studio-host/api/projects -H "Authorization: Token [your-token]"</code></pre>
          required: true
          schema:
            type: string
      responses:
        '200':
          description: Successful response
    patch:
      operationId: update
      summary: ✨ Update Azure SPI import storage
      description: |-
        <Card href="https://humansignal.com/goenterprise">
                <img style="pointer-events: none; margin-left: 0px; margin-right: 0px;" src="https://docs.humansignal.com/images/badge.svg" alt="Label Studio Enterprise badge"/>
                <p style="margin-top: 10px; font-size: 14px;">
                    This endpoint is not available in Label Studio Community Edition. [Learn more about Label Studio Enterprise](https://humansignal.com/goenterprise)
                </p>
            </Card>
        Update a specific Azure import storage connection that was set up with Service Principal authentication.
      tags:
        - subpackage_importStorage.subpackage_importStorage/azureSpi
      parameters:
        - name: id
          in: path
          required: true
          schema:
            type: integer
        - name: Authorization
          in: header
          description: >-
            The token (or API key) must be passed as a request header. You can find your user token on the User Account
            page in Label Studio. Example: <br><pre><code class="language-bash">curl
            https://label-studio-host/api/projects -H "Authorization: Token [your-token]"</code></pre>
          required: true
          schema:
            type: string
      responses:
        '200':
          description: ''
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/AzureServicePrincipalImportStorage'
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/PatchedAzureServicePrincipalImportStorageRequest'
  /api/storages/azure_spi/{id}/sync:
    post:
      operationId: sync
      summary: ✨ Sync Azure SPI import storage
      description: |-
        <Card href="https://humansignal.com/goenterprise">
                <img style="pointer-events: none; margin-left: 0px; margin-right: 0px;" src="https://docs.humansignal.com/images/badge.svg" alt="Label Studio Enterprise badge"/>
                <p style="margin-top: 10px; font-size: 14px;">
                    This endpoint is not available in Label Studio Community Edition. [Learn more about Label Studio Enterprise](https://humansignal.com/goenterprise)
                </p>
            </Card>
        Sync tasks from an Azure import storage connection that was set up with Service Principal authentication.
      tags:
        - subpackage_importStorage.subpackage_importStorage/azureSpi
      parameters:
        - name: id
          in: path
          required: true
          schema:
            type: integer
        - name: Authorization
          in: header
          description: >-
            The token (or API key) must be passed as a request header. You can find your user token on the User Account
            page in Label Studio. Example: <br><pre><code class="language-bash">curl
            https://label-studio-host/api/projects -H "Authorization: Token [your-token]"</code></pre>
          required: true
          schema:
            type: string
      responses:
        '200':
          description: ''
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/AzureServicePrincipalImportStorage'
  /api/storages/databricks/:
    get:
      operationId: list
      summary: ✨ List Databricks import storages
      description: |-
        <Card href="https://humansignal.com/goenterprise">
                <img style="pointer-events: none; margin-left: 0px; margin-right: 0px;" src="https://docs.humansignal.com/images/badge.svg" alt="Label Studio Enterprise badge"/>
                <p style="margin-top: 10px; font-size: 14px;">
                    This endpoint is not available in Label Studio Community Edition. [Learn more about Label Studio Enterprise](https://humansignal.com/goenterprise)
                </p>
            </Card>
        Get list of all Databricks Files import storage connections.
      tags:
        - subpackage_importStorage.subpackage_importStorage/databricks
      parameters:
        - name: ordering
          in: query
          description: Which field to use when ordering the results.
          required: false
          schema:
            type: string
        - name: project
          in: query
          description: Project ID
          required: true
          schema:
            type: integer
        - name: Authorization
          in: header
          description: >-
            The token (or API key) must be passed as a request header. You can find your user token on the User Account
            page in Label Studio. Example: <br><pre><code class="language-bash">curl
            https://label-studio-host/api/projects -H "Authorization: Token [your-token]"</code></pre>
          required: true
          schema:
            type: string
      responses:
        '200':
          description: ''
          content:
            application/json:
              schema:
                type: array
                items:
                  $ref: '#/components/schemas/DatabricksImportStorage'
    post:
      operationId: create
      summary: ✨ Create Databricks import storage
      description: |-
        <Card href="https://humansignal.com/goenterprise">
                <img style="pointer-events: none; margin-left: 0px; margin-right: 0px;" src="https://docs.humansignal.com/images/badge.svg" alt="Label Studio Enterprise badge"/>
                <p style="margin-top: 10px; font-size: 14px;">
                    This endpoint is not available in Label Studio Community Edition. [Learn more about Label Studio Enterprise](https://humansignal.com/goenterprise)
                </p>
            </Card>
        Create a Databricks Files import storage connection.
      tags:
        - subpackage_importStorage.subpackage_importStorage/databricks
      parameters:
        - name: Authorization
          in: header
          description: >-
            The token (or API key) must be passed as a request header. You can find your user token on the User Account
            page in Label Studio. Example: <br><pre><code class="language-bash">curl
            https://label-studio-host/api/projects -H "Authorization: Token [your-token]"</code></pre>
          required: true
          schema:
            type: string
      responses:
        '201':
          description: ''
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/DatabricksImportStorage'
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/DatabricksImportStorageRequest'
  /api/storages/databricks/validate:
    post:
      operationId: validate
      summary: ✨ Validate Databricks import storage
      description: |-
        <Card href="https://humansignal.com/goenterprise">
                <img style="pointer-events: none; margin-left: 0px; margin-right: 0px;" src="https://docs.humansignal.com/images/badge.svg" alt="Label Studio Enterprise badge"/>
                <p style="margin-top: 10px; font-size: 14px;">
                    This endpoint is not available in Label Studio Community Edition. [Learn more about Label Studio Enterprise](https://humansignal.com/goenterprise)
                </p>
            </Card>
        Validate a specific Databricks Files import storage connection.
      tags:
        - subpackage_importStorage.subpackage_importStorage/databricks
      parameters:
        - name: Authorization
          in: header
          description: >-
            The token (or API key) must be passed as a request header. You can find your user token on the User Account
            page in Label Studio. Example: <br><pre><code class="language-bash">curl
            https://label-studio-host/api/projects -H "Authorization: Token [your-token]"</code></pre>
          required: true
          schema:
            type: string
      responses:
        '200':
          description: Validation successful
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/import_storage_databricks_validate_Response_200'
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/DatabricksImportStorageRequest'
  /api/storages/databricks/{id}:
    get:
      operationId: get
      summary: ✨ Get Databricks import storage
      description: |-
        <Card href="https://humansignal.com/goenterprise">
                <img style="pointer-events: none; margin-left: 0px; margin-right: 0px;" src="https://docs.humansignal.com/images/badge.svg" alt="Label Studio Enterprise badge"/>
                <p style="margin-top: 10px; font-size: 14px;">
                    This endpoint is not available in Label Studio Community Edition. [Learn more about Label Studio Enterprise](https://humansignal.com/goenterprise)
                </p>
            </Card>
        Get a specific Databricks Files import storage connection.
      tags:
        - subpackage_importStorage.subpackage_importStorage/databricks
      parameters:
        - name: id
          in: path
          required: true
          schema:
            type: integer
        - name: Authorization
          in: header
          description: >-
            The token (or API key) must be passed as a request header. You can find your user token on the User Account
            page in Label Studio. Example: <br><pre><code class="language-bash">curl
            https://label-studio-host/api/projects -H "Authorization: Token [your-token]"</code></pre>
          required: true
          schema:
            type: string
      responses:
        '200':
          description: ''
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/DatabricksImportStorage'
    delete:
      operationId: delete
      summary: ✨ Delete Databricks import storage
      description: |-
        <Card href="https://humansignal.com/goenterprise">
                <img style="pointer-events: none; margin-left: 0px; margin-right: 0px;" src="https://docs.humansignal.com/images/badge.svg" alt="Label Studio Enterprise badge"/>
                <p style="margin-top: 10px; font-size: 14px;">
                    This endpoint is not available in Label Studio Community Edition. [Learn more about Label Studio Enterprise](https://humansignal.com/goenterprise)
                </p>
            </Card>
        Delete a specific Databricks Files import storage connection.
      tags:
        - subpackage_importStorage.subpackage_importStorage/databricks
      parameters:
        - name: id
          in: path
          required: true
          schema:
            type: integer
        - name: Authorization
          in: header
          description: >-
            The token (or API key) must be passed as a request header. You can find your user token on the User Account
            page in Label Studio. Example: <br><pre><code class="language-bash">curl
            https://label-studio-host/api/projects -H "Authorization: Token [your-token]"</code></pre>
          required: true
          schema:
            type: string
      responses:
        '200':
          description: Successful response
    patch:
      operationId: update
      summary: ✨ Update Databricks import storage
      description: |-
        <Card href="https://humansignal.com/goenterprise">
                <img style="pointer-events: none; margin-left: 0px; margin-right: 0px;" src="https://docs.humansignal.com/images/badge.svg" alt="Label Studio Enterprise badge"/>
                <p style="margin-top: 10px; font-size: 14px;">
                    This endpoint is not available in Label Studio Community Edition. [Learn more about Label Studio Enterprise](https://humansignal.com/goenterprise)
                </p>
            </Card>
        Update a specific Databricks Files import storage connection.
      tags:
        - subpackage_importStorage.subpackage_importStorage/databricks
      parameters:
        - name: id
          in: path
          required: true
          schema:
            type: integer
        - name: Authorization
          in: header
          description: >-
            The token (or API key) must be passed as a request header. You can find your user token on the User Account
            page in Label Studio. Example: <br><pre><code class="language-bash">curl
            https://label-studio-host/api/projects -H "Authorization: Token [your-token]"</code></pre>
          required: true
          schema:
            type: string
      responses:
        '200':
          description: ''
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/DatabricksImportStorage'
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/PatchedDatabricksImportStorageRequest'
  /api/storages/databricks/{id}/sync:
    post:
      operationId: sync
      summary: ✨ Sync Databricks import storage
      description: |-
        <Card href="https://humansignal.com/goenterprise">
                <img style="pointer-events: none; margin-left: 0px; margin-right: 0px;" src="https://docs.humansignal.com/images/badge.svg" alt="Label Studio Enterprise badge"/>
                <p style="margin-top: 10px; font-size: 14px;">
                    This endpoint is not available in Label Studio Community Edition. [Learn more about Label Studio Enterprise](https://humansignal.com/goenterprise)
                </p>
            </Card>
        Sync tasks from a Databricks Files import storage.
      tags:
        - subpackage_importStorage.subpackage_importStorage/databricks
      parameters:
        - name: id
          in: path
          required: true
          schema:
            type: integer
        - name: Authorization
          in: header
          description: >-
            The token (or API key) must be passed as a request header. You can find your user token on the User Account
            page in Label Studio. Example: <br><pre><code class="language-bash">curl
            https://label-studio-host/api/projects -H "Authorization: Token [your-token]"</code></pre>
          required: true
          schema:
            type: string
      responses:
        '200':
          description: ''
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/DatabricksImportStorage'
  /api/storages/gcs/:
    get:
      operationId: list
      summary: Get all import storage
      description: Get a list of all GCS import storage connections.
      tags:
        - subpackage_importStorage.subpackage_importStorage/gcs
      parameters:
        - name: ordering
          in: query
          description: Which field to use when ordering the results.
          required: false
          schema:
            type: string
        - name: project
          in: query
          description: Project ID
          required: true
          schema:
            type: integer
        - name: Authorization
          in: header
          description: >-
            The token (or API key) must be passed as a request header. You can find your user token on the User Account
            page in Label Studio. Example: <br><pre><code class="language-bash">curl
            https://label-studio-host/api/projects -H "Authorization: Token [your-token]"</code></pre>
          required: true
          schema:
            type: string
      responses:
        '200':
          description: ''
          content:
            application/json:
              schema:
                type: array
                items:
                  $ref: '#/components/schemas/GCSImportStorage'
    post:
      operationId: create
      summary: Create import storage
      description: Create a new GCS import storage connection.
      tags:
        - subpackage_importStorage.subpackage_importStorage/gcs
      parameters:
        - name: Authorization
          in: header
          description: >-
            The token (or API key) must be passed as a request header. You can find your user token on the User Account
            page in Label Studio. Example: <br><pre><code class="language-bash">curl
            https://label-studio-host/api/projects -H "Authorization: Token [your-token]"</code></pre>
          required: true
          schema:
            type: string
      responses:
        '201':
          description: ''
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/GCSImportStorage'
      requestBody:
        content:
          application/json:
            schema:
              type: object
              properties:
                bucket:
                  type: string
                  description: GCS bucket name
                description:
                  type: string
                  description: Storage description
                google_application_credentials:
                  type: string
                  description: >-
                    The content of GOOGLE_APPLICATION_CREDENTIALS json file. Check official Google Cloud Authentication
                    documentation for more details.
                google_project_id:
                  type: string
                  description: Google project ID
                prefix:
                  type: string
                  description: GCS bucket prefix
                presign:
                  type: boolean
                  default: true
                  description: Presign URLs for direct download
                presign_ttl:
                  type: integer
                  default: 1
                  description: Presign TTL in minutes
                project:
                  type: integer
                  description: Project ID
                regex_filter:
                  type: string
                  description: >-
                    Cloud storage regex for filtering objects. You must specify it otherwise no objects will be
                    imported.
                title:
                  type: string
                  description: Storage title
                use_blob_urls:
                  type: boolean
                  default: false
                  description: >-
                    Interpret objects as BLOBs and generate URLs. For example, if your bucket contains images, you can
                    use this option to generate URLs for these images. If set to False, it will read the content of the
                    file and load it into Label Studio.
  /api/storages/gcs/validate:
    post:
      operationId: validate
      summary: Validate import storage
      description: Validate a specific GCS import storage connection.
      tags:
        - subpackage_importStorage.subpackage_importStorage/gcs
      parameters:
        - name: Authorization
          in: header
          description: >-
            The token (or API key) must be passed as a request header. You can find your user token on the User Account
            page in Label Studio. Example: <br><pre><code class="language-bash">curl
            https://label-studio-host/api/projects -H "Authorization: Token [your-token]"</code></pre>
          required: true
          schema:
            type: string
      responses:
        '200':
          description: Validation successful
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/import_storage_gcs_validate_Response_200'
      requestBody:
        content:
          application/json:
            schema:
              type: object
              properties:
                bucket:
                  type: string
                  description: GCS bucket name
                description:
                  type: string
                  description: Storage description
                google_application_credentials:
                  type: string
                  description: >-
                    The content of GOOGLE_APPLICATION_CREDENTIALS json file. Check official Google Cloud Authentication
                    documentation for more details.
                google_project_id:
                  type: string
                  description: Google project ID
                id:
                  type: integer
                  description: Storage ID. If set, storage with specified ID will be updated
                prefix:
                  type: string
                  description: GCS bucket prefix
                presign:
                  type: boolean
                  default: true
                  description: Presign URLs for direct download
                presign_ttl:
                  type: integer
                  default: 1
                  description: Presign TTL in minutes
                project:
                  type: integer
                  description: Project ID
                regex_filter:
                  type: string
                  description: >-
                    Cloud storage regex for filtering objects. You must specify it otherwise no objects will be
                    imported.
                title:
                  type: string
                  description: Storage title
                use_blob_urls:
                  type: boolean
                  default: false
                  description: >-
                    Interpret objects as BLOBs and generate URLs. For example, if your bucket contains images, you can
                    use this option to generate URLs for these images. If set to False, it will read the content of the
                    file and load it into Label Studio.
  /api/storages/gcs/{id}:
    get:
      operationId: get
      summary: Get import storage
      description: Get a specific GCS import storage connection.
      tags:
        - subpackage_importStorage.subpackage_importStorage/gcs
      parameters:
        - name: id
          in: path
          required: true
          schema:
            type: integer
        - name: Authorization
          in: header
          description: >-
            The token (or API key) must be passed as a request header. You can find your user token on the User Account
            page in Label Studio. Example: <br><pre><code class="language-bash">curl
            https://label-studio-host/api/projects -H "Authorization: Token [your-token]"</code></pre>
          required: true
          schema:
            type: string
      responses:
        '200':
          description: ''
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/GCSImportStorage'
    delete:
      operationId: delete
      summary: Delete import storage
      description: Delete a specific GCS import storage connection.
      tags:
        - subpackage_importStorage.subpackage_importStorage/gcs
      parameters:
        - name: id
          in: path
          required: true
          schema:
            type: integer
        - name: Authorization
          in: header
          description: >-
            The token (or API key) must be passed as a request header. You can find your user token on the User Account
            page in Label Studio. Example: <br><pre><code class="language-bash">curl
            https://label-studio-host/api/projects -H "Authorization: Token [your-token]"</code></pre>
          required: true
          schema:
            type: string
      responses:
        '200':
          description: Successful response
    patch:
      operationId: update
      summary: Update import storage
      description: Update a specific GCS import storage connection.
      tags:
        - subpackage_importStorage.subpackage_importStorage/gcs
      parameters:
        - name: id
          in: path
          required: true
          schema:
            type: integer
        - name: Authorization
          in: header
          description: >-
            The token (or API key) must be passed as a request header. You can find your user token on the User Account
            page in Label Studio. Example: <br><pre><code class="language-bash">curl
            https://label-studio-host/api/projects -H "Authorization: Token [your-token]"</code></pre>
          required: true
          schema:
            type: string
      responses:
        '200':
          description: ''
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/GCSImportStorage'
      requestBody:
        content:
          application/json:
            schema:
              type: object
              properties:
                bucket:
                  type: string
                  description: GCS bucket name
                description:
                  type: string
                  description: Storage description
                google_application_credentials:
                  type: string
                  description: >-
                    The content of GOOGLE_APPLICATION_CREDENTIALS json file. Check official Google Cloud Authentication
                    documentation for more details.
                google_project_id:
                  type: string
                  description: Google project ID
                prefix:
                  type: string
                  description: GCS bucket prefix
                presign:
                  type: boolean
                  default: true
                  description: Presign URLs for direct download
                presign_ttl:
                  type: integer
                  default: 1
                  description: Presign TTL in minutes
                project:
                  type: integer
                  description: Project ID
                regex_filter:
                  type: string
                  description: >-
                    Cloud storage regex for filtering objects. You must specify it otherwise no objects will be
                    imported.
                title:
                  type: string
                  description: Storage title
                use_blob_urls:
                  type: boolean
                  default: false
                  description: >-
                    Interpret objects as BLOBs and generate URLs. For example, if your bucket contains images, you can
                    use this option to generate URLs for these images. If set to False, it will read the content of the
                    file and load it into Label Studio.
  /api/storages/gcs/{id}/sync:
    post:
      operationId: sync
      summary: Sync import storage
      description: Sync tasks from a GCS import storage connection.
      tags:
        - subpackage_importStorage.subpackage_importStorage/gcs
      parameters:
        - name: id
          in: path
          description: Storage ID
          required: true
          schema:
            type: integer
        - name: Authorization
          in: header
          description: >-
            The token (or API key) must be passed as a request header. You can find your user token on the User Account
            page in Label Studio. Example: <br><pre><code class="language-bash">curl
            https://label-studio-host/api/projects -H "Authorization: Token [your-token]"</code></pre>
          required: true
          schema:
            type: string
      responses:
        '200':
          description: ''
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/GCSImportStorage'
  /api/storages/gcs_sa/:
    get:
      operationId: list
      summary: ✨ Get all GCS SA import storages
      description: |-
        <Card href="https://humansignal.com/goenterprise">
                <img style="pointer-events: none; margin-left: 0px; margin-right: 0px;" src="https://docs.humansignal.com/images/badge.svg" alt="Label Studio Enterprise badge"/>
                <p style="margin-top: 10px; font-size: 14px;">
                    This endpoint is not available in Label Studio Community Edition. [Learn more about Label Studio Enterprise](https://humansignal.com/goenterprise)
                </p>
            </Card>
        Get list of all GCS import storage connections set up with Service Account Impersonation.
      tags:
        - subpackage_importStorage.subpackage_importStorage/gcsSa
      parameters:
        - name: ordering
          in: query
          description: Which field to use when ordering the results.
          required: false
          schema:
            type: string
        - name: project
          in: query
          description: Project ID
          required: true
          schema:
            type: integer
        - name: Authorization
          in: header
          description: >-
            The token (or API key) must be passed as a request header. You can find your user token on the User Account
            page in Label Studio. Example: <br><pre><code class="language-bash">curl
            https://label-studio-host/api/projects -H "Authorization: Token [your-token]"</code></pre>
          required: true
          schema:
            type: string
      responses:
        '200':
          description: ''
          content:
            application/json:
              schema:
                type: array
                items:
                  $ref: '#/components/schemas/GCSSAImportStorage'
    post:
      operationId: create
      summary: ✨ Create GCS import storage with SA Impersonation
      description: |-
        <Card href="https://humansignal.com/goenterprise">
                <img style="pointer-events: none; margin-left: 0px; margin-right: 0px;" src="https://docs.humansignal.com/images/badge.svg" alt="Label Studio Enterprise badge"/>
                <p style="margin-top: 10px; font-size: 14px;">
                    This endpoint is not available in Label Studio Community Edition. [Learn more about Label Studio Enterprise](https://humansignal.com/goenterprise)
                </p>
            </Card>
        Create GCS import storage with Service Account Impersonation.
      tags:
        - subpackage_importStorage.subpackage_importStorage/gcsSa
      parameters:
        - name: Authorization
          in: header
          description: >-
            The token (or API key) must be passed as a request header. You can find your user token on the User Account
            page in Label Studio. Example: <br><pre><code class="language-bash">curl
            https://label-studio-host/api/projects -H "Authorization: Token [your-token]"</code></pre>
          required: true
          schema:
            type: string
      responses:
        '201':
          description: ''
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/GCSSAImportStorage'
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/GCSSAImportStorageRequest'
  /api/storages/gcs_sa/validate:
    post:
      operationId: validate
      summary: ✨ Validate GCS SA import storage
      description: |-
        <Card href="https://humansignal.com/goenterprise">
                <img style="pointer-events: none; margin-left: 0px; margin-right: 0px;" src="https://docs.humansignal.com/images/badge.svg" alt="Label Studio Enterprise badge"/>
                <p style="margin-top: 10px; font-size: 14px;">
                    This endpoint is not available in Label Studio Community Edition. [Learn more about Label Studio Enterprise](https://humansignal.com/goenterprise)
                </p>
            </Card>
        Validate a specific GCS import storage connection set up with SA Impersonation.
      tags:
        - subpackage_importStorage.subpackage_importStorage/gcsSa
      parameters:
        - name: Authorization
          in: header
          description: >-
            The token (or API key) must be passed as a request header. You can find your user token on the User Account
            page in Label Studio. Example: <br><pre><code class="language-bash">curl
            https://label-studio-host/api/projects -H "Authorization: Token [your-token]"</code></pre>
          required: true
          schema:
            type: string
      responses:
        '200':
          description: Validation successful
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/import_storage_gcs_sa_validate_Response_200'
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/GCSSAImportStorageRequest'
  /api/storages/gcs_sa/{id}:
    get:
      operationId: get
      summary: ✨ Get GCS SA import storage
      description: |-
        <Card href="https://humansignal.com/goenterprise">
                <img style="pointer-events: none; margin-left: 0px; margin-right: 0px;" src="https://docs.humansignal.com/images/badge.svg" alt="Label Studio Enterprise badge"/>
                <p style="margin-top: 10px; font-size: 14px;">
                    This endpoint is not available in Label Studio Community Edition. [Learn more about Label Studio Enterprise](https://humansignal.com/goenterprise)
                </p>
            </Card>
        Get a specific GCS import storage connection set up with SA Impersonation.
      tags:
        - subpackage_importStorage.subpackage_importStorage/gcsSa
      parameters:
        - name: id
          in: path
          required: true
          schema:
            type: integer
        - name: Authorization
          in: header
          description: >-
            The token (or API key) must be passed as a request header. You can find your user token on the User Account
            page in Label Studio. Example: <br><pre><code class="language-bash">curl
            https://label-studio-host/api/projects -H "Authorization: Token [your-token]"</code></pre>
          required: true
          schema:
            type: string
      responses:
        '200':
          description: ''
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/GCSSAImportStorage'
    delete:
      operationId: delete
      summary: ✨ Delete GCS SA import storage
      description: |-
        <Card href="https://humansignal.com/goenterprise">
                <img style="pointer-events: none; margin-left: 0px; margin-right: 0px;" src="https://docs.humansignal.com/images/badge.svg" alt="Label Studio Enterprise badge"/>
                <p style="margin-top: 10px; font-size: 14px;">
                    This endpoint is not available in Label Studio Community Edition. [Learn more about Label Studio Enterprise](https://humansignal.com/goenterprise)
                </p>
            </Card>
        Delete a specific GCS import storage connection set up with SA Impersonation.
      tags:
        - subpackage_importStorage.subpackage_importStorage/gcsSa
      parameters:
        - name: id
          in: path
          required: true
          schema:
            type: integer
        - name: Authorization
          in: header
          description: >-
            The token (or API key) must be passed as a request header. You can find your user token on the User Account
            page in Label Studio. Example: <br><pre><code class="language-bash">curl
            https://label-studio-host/api/projects -H "Authorization: Token [your-token]"</code></pre>
          required: true
          schema:
            type: string
      responses:
        '200':
          description: Successful response
    patch:
      operationId: update
      summary: ✨ Update GCS SA import storage
      description: |-
        <Card href="https://humansignal.com/goenterprise">
                <img style="pointer-events: none; margin-left: 0px; margin-right: 0px;" src="https://docs.humansignal.com/images/badge.svg" alt="Label Studio Enterprise badge"/>
                <p style="margin-top: 10px; font-size: 14px;">
                    This endpoint is not available in Label Studio Community Edition. [Learn more about Label Studio Enterprise](https://humansignal.com/goenterprise)
                </p>
            </Card>
        Update a specific GCS import storage connection set up with SA Impersonation.
      tags:
        - subpackage_importStorage.subpackage_importStorage/gcsSa
      parameters:
        - name: id
          in: path
          required: true
          schema:
            type: integer
        - name: Authorization
          in: header
          description: >-
            The token (or API key) must be passed as a request header. You can find your user token on the User Account
            page in Label Studio. Example: <br><pre><code class="language-bash">curl
            https://label-studio-host/api/projects -H "Authorization: Token [your-token]"</code></pre>
          required: true
          schema:
            type: string
      responses:
        '200':
          description: ''
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/GCSSAImportStorage'
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/PatchedGCSSAImportStorageRequest'
  /api/storages/gcs_sa/{id}/sync:
    post:
      operationId: sync
      summary: ✨ Sync GCS SA import storage
      description: |-
        <Card href="https://humansignal.com/goenterprise">
                <img style="pointer-events: none; margin-left: 0px; margin-right: 0px;" src="https://docs.humansignal.com/images/badge.svg" alt="Label Studio Enterprise badge"/>
                <p style="margin-top: 10px; font-size: 14px;">
                    This endpoint is not available in Label Studio Community Edition. [Learn more about Label Studio Enterprise](https://humansignal.com/goenterprise)
                </p>
            </Card>
        Sync tasks from a GCS import storage connection set up with SA Impersonation.
      tags:
        - subpackage_importStorage.subpackage_importStorage/gcsSa
      parameters:
        - name: id
          in: path
          required: true
          schema:
            type: integer
        - name: Authorization
          in: header
          description: >-
            The token (or API key) must be passed as a request header. You can find your user token on the User Account
            page in Label Studio. Example: <br><pre><code class="language-bash">curl
            https://label-studio-host/api/projects -H "Authorization: Token [your-token]"</code></pre>
          required: true
          schema:
            type: string
      responses:
        '200':
          description: ''
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/GCSSAImportStorage'
  /api/storages/gcswif/:
    get:
      operationId: list
      summary: ✨ Get GCS WIF import storage
      description: |-
        <Card href="https://humansignal.com/goenterprise">
                <img style="pointer-events: none; margin-left: 0px; margin-right: 0px;" src="https://docs.humansignal.com/images/badge.svg" alt="Label Studio Enterprise badge"/>
                <p style="margin-top: 10px; font-size: 14px;">
                    This endpoint is not available in Label Studio Community Edition. [Learn more about Label Studio Enterprise](https://humansignal.com/goenterprise)
                </p>
            </Card>
        Get list of all GCS import storage connections set up with WIF authentication.
      tags:
        - subpackage_importStorage.subpackage_importStorage/gcswif
      parameters:
        - name: ordering
          in: query
          description: Which field to use when ordering the results.
          required: false
          schema:
            type: string
        - name: project
          in: query
          description: Project ID
          required: true
          schema:
            type: integer
        - name: Authorization
          in: header
          description: >-
            The token (or API key) must be passed as a request header. You can find your user token on the User Account
            page in Label Studio. Example: <br><pre><code class="language-bash">curl
            https://label-studio-host/api/projects -H "Authorization: Token [your-token]"</code></pre>
          required: true
          schema:
            type: string
      responses:
        '200':
          description: ''
          content:
            application/json:
              schema:
                type: array
                items:
                  $ref: '#/components/schemas/GCSWIFImportStorage'
    post:
      operationId: create
      summary: ✨ Create GCS import storage with WIF
      description: |-
        <Card href="https://humansignal.com/goenterprise">
                <img style="pointer-events: none; margin-left: 0px; margin-right: 0px;" src="https://docs.humansignal.com/images/badge.svg" alt="Label Studio Enterprise badge"/>
                <p style="margin-top: 10px; font-size: 14px;">
                    This endpoint is not available in Label Studio Community Edition. [Learn more about Label Studio Enterprise](https://humansignal.com/goenterprise)
                </p>
            </Card>
        Create GCS import storage with WIF.
      tags:
        - subpackage_importStorage.subpackage_importStorage/gcswif
      parameters:
        - name: Authorization
          in: header
          description: >-
            The token (or API key) must be passed as a request header. You can find your user token on the User Account
            page in Label Studio. Example: <br><pre><code class="language-bash">curl
            https://label-studio-host/api/projects -H "Authorization: Token [your-token]"</code></pre>
          required: true
          schema:
            type: string
      responses:
        '201':
          description: ''
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/GCSWIFImportStorage'
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/GCSWIFImportStorageRequest'
  /api/storages/gcswif/validate:
    post:
      operationId: validate
      summary: ✨ Validate GCS WIF import storage
      description: |-
        <Card href="https://humansignal.com/goenterprise">
                <img style="pointer-events: none; margin-left: 0px; margin-right: 0px;" src="https://docs.humansignal.com/images/badge.svg" alt="Label Studio Enterprise badge"/>
                <p style="margin-top: 10px; font-size: 14px;">
                    This endpoint is not available in Label Studio Community Edition. [Learn more about Label Studio Enterprise](https://humansignal.com/goenterprise)
                </p>
            </Card>
        Validate a specific GCS import storage connection that was set up with WIF authentication.
      tags:
        - subpackage_importStorage.subpackage_importStorage/gcswif
      parameters:
        - name: Authorization
          in: header
          description: >-
            The token (or API key) must be passed as a request header. You can find your user token on the User Account
            page in Label Studio. Example: <br><pre><code class="language-bash">curl
            https://label-studio-host/api/projects -H "Authorization: Token [your-token]"</code></pre>
          required: true
          schema:
            type: string
      responses:
        '200':
          description: Validation successful
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/import_storage_gcswif_validate_Response_200'
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/GCSWIFImportStorageRequest'
  /api/storages/gcswif/{id}:
    get:
      operationId: get
      summary: ✨ Get GCS WIF import storage
      description: |-
        <Card href="https://humansignal.com/goenterprise">
                <img style="pointer-events: none; margin-left: 0px; margin-right: 0px;" src="https://docs.humansignal.com/images/badge.svg" alt="Label Studio Enterprise badge"/>
                <p style="margin-top: 10px; font-size: 14px;">
                    This endpoint is not available in Label Studio Community Edition. [Learn more about Label Studio Enterprise](https://humansignal.com/goenterprise)
                </p>
            </Card>
        Get a specific GCS import storage connection that was set up with WIF.
      tags:
        - subpackage_importStorage.subpackage_importStorage/gcswif
      parameters:
        - name: id
          in: path
          required: true
          schema:
            type: integer
        - name: Authorization
          in: header
          description: >-
            The token (or API key) must be passed as a request header. You can find your user token on the User Account
            page in Label Studio. Example: <br><pre><code class="language-bash">curl
            https://label-studio-host/api/projects -H "Authorization: Token [your-token]"</code></pre>
          required: true
          schema:
            type: string
      responses:
        '200':
          description: ''
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/GCSWIFImportStorage'
    delete:
      operationId: delete
      summary: ✨ Delete GCS WIF import storage
      description: |-
        <Card href="https://humansignal.com/goenterprise">
                <img style="pointer-events: none; margin-left: 0px; margin-right: 0px;" src="https://docs.humansignal.com/images/badge.svg" alt="Label Studio Enterprise badge"/>
                <p style="margin-top: 10px; font-size: 14px;">
                    This endpoint is not available in Label Studio Community Edition. [Learn more about Label Studio Enterprise](https://humansignal.com/goenterprise)
                </p>
            </Card>
        Delete a specific GCS import storage connection that was set up with WIF authentication.
      tags:
        - subpackage_importStorage.subpackage_importStorage/gcswif
      parameters:
        - name: id
          in: path
          required: true
          schema:
            type: integer
        - name: Authorization
          in: header
          description: >-
            The token (or API key) must be passed as a request header. You can find your user token on the User Account
            page in Label Studio. Example: <br><pre><code class="language-bash">curl
            https://label-studio-host/api/projects -H "Authorization: Token [your-token]"</code></pre>
          required: true
          schema:
            type: string
      responses:
        '200':
          description: Successful response
    patch:
      operationId: update
      summary: ✨ Update GCS WIF import storage
      description: |-
        <Card href="https://humansignal.com/goenterprise">
                <img style="pointer-events: none; margin-left: 0px; margin-right: 0px;" src="https://docs.humansignal.com/images/badge.svg" alt="Label Studio Enterprise badge"/>
                <p style="margin-top: 10px; font-size: 14px;">
                    This endpoint is not available in Label Studio Community Edition. [Learn more about Label Studio Enterprise](https://humansignal.com/goenterprise)
                </p>
            </Card>
        Update a specific GCS import storage connection that was set up with WIF authentication.
      tags:
        - subpackage_importStorage.subpackage_importStorage/gcswif
      parameters:
        - name: id
          in: path
          required: true
          schema:
            type: integer
        - name: Authorization
          in: header
          description: >-
            The token (or API key) must be passed as a request header. You can find your user token on the User Account
            page in Label Studio. Example: <br><pre><code class="language-bash">curl
            https://label-studio-host/api/projects -H "Authorization: Token [your-token]"</code></pre>
          required: true
          schema:
            type: string
      responses:
        '200':
          description: ''
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/GCSWIFImportStorage'
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/PatchedGCSWIFImportStorageRequest'
  /api/storages/gcswif/{id}/sync:
    post:
      operationId: sync
      summary: ✨ Sync GCS WIF import storage
      description: |-
        <Card href="https://humansignal.com/goenterprise">
                <img style="pointer-events: none; margin-left: 0px; margin-right: 0px;" src="https://docs.humansignal.com/images/badge.svg" alt="Label Studio Enterprise badge"/>
                <p style="margin-top: 10px; font-size: 14px;">
                    This endpoint is not available in Label Studio Community Edition. [Learn more about Label Studio Enterprise](https://humansignal.com/goenterprise)
                </p>
            </Card>
        Sync tasks from an GCS import storage connection that was set up with WIF authentication.
      tags:
        - subpackage_importStorage.subpackage_importStorage/gcswif
      parameters:
        - name: id
          in: path
          required: true
          schema:
            type: integer
        - name: Authorization
          in: header
          description: >-
            The token (or API key) must be passed as a request header. You can find your user token on the User Account
            page in Label Studio. Example: <br><pre><code class="language-bash">curl
            https://label-studio-host/api/projects -H "Authorization: Token [your-token]"</code></pre>
          required: true
          schema:
            type: string
      responses:
        '200':
          description: ''
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/GCSWIFImportStorage'
  /api/storages/localfiles/:
    get:
      operationId: list
      summary: Get all import storage
      description: Get a list of all local file import storage connections.
      tags:
        - subpackage_importStorage.subpackage_importStorage/local
      parameters:
        - name: ordering
          in: query
          description: Which field to use when ordering the results.
          required: false
          schema:
            type: string
        - name: project
          in: query
          description: Project ID
          required: true
          schema:
            type: integer
        - name: Authorization
          in: header
          description: >-
            The token (or API key) must be passed as a request header. You can find your user token on the User Account
            page in Label Studio. Example: <br><pre><code class="language-bash">curl
            https://label-studio-host/api/projects -H "Authorization: Token [your-token]"</code></pre>
          required: true
          schema:
            type: string
      responses:
        '200':
          description: ''
          content:
            application/json:
              schema:
                type: array
                items:
                  $ref: '#/components/schemas/LocalFilesImportStorage'
    post:
      operationId: create
      summary: Create import storage
      description: Create a new local file import storage connection.
      tags:
        - subpackage_importStorage.subpackage_importStorage/local
      parameters:
        - name: Authorization
          in: header
          description: >-
            The token (or API key) must be passed as a request header. You can find your user token on the User Account
            page in Label Studio. Example: <br><pre><code class="language-bash">curl
            https://label-studio-host/api/projects -H "Authorization: Token [your-token]"</code></pre>
          required: true
          schema:
            type: string
      responses:
        '201':
          description: ''
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/LocalFilesImportStorage'
      requestBody:
        content:
          application/json:
            schema:
              type: object
              properties:
                description:
                  type: string
                  description: Storage description
                path:
                  type: string
                  description: Path to local directory
                project:
                  type: integer
                  description: Project ID
                regex_filter:
                  type: string
                  description: Regex for filtering objects
                title:
                  type: string
                  description: Storage title
                use_blob_urls:
                  type: boolean
                  default: false
                  description: >-
                    Interpret objects as BLOBs and generate URLs. For example, if your directory contains images, you
                    can use this option to generate URLs for these images. If set to False, it will read the content of
                    the file and load it into Label Studio.
  /api/storages/localfiles/validate:
    post:
      operationId: validate
      summary: Validate import storage
      description: Validate a specific local file import storage connection.
      tags:
        - subpackage_importStorage.subpackage_importStorage/local
      parameters:
        - name: Authorization
          in: header
          description: >-
            The token (or API key) must be passed as a request header. You can find your user token on the User Account
            page in Label Studio. Example: <br><pre><code class="language-bash">curl
            https://label-studio-host/api/projects -H "Authorization: Token [your-token]"</code></pre>
          required: true
          schema:
            type: string
      responses:
        '200':
          description: Validation successful
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/import_storage_local_validate_Response_200'
      requestBody:
        content:
          application/json:
            schema:
              type: object
              properties:
                description:
                  type: string
                  description: Storage description
                id:
                  type: integer
                  description: Storage ID. If set, storage with specified ID will be updated
                path:
                  type: string
                  description: Path to local directory
                project:
                  type: integer
                  description: Project ID
                regex_filter:
                  type: string
                  description: Regex for filtering objects
                title:
                  type: string
                  description: Storage title
                use_blob_urls:
                  type: boolean
                  default: false
                  description: >-
                    Interpret objects as BLOBs and generate URLs. For example, if your directory contains images, you
                    can use this option to generate URLs for these images. If set to False, it will read the content of
                    the file and load it into Label Studio.
  /api/storages/localfiles/{id}:
    get:
      operationId: get
      summary: Get import storage
      description: Get a specific local file import storage connection.
      tags:
        - subpackage_importStorage.subpackage_importStorage/local
      parameters:
        - name: id
          in: path
          required: true
          schema:
            type: integer
        - name: Authorization
          in: header
          description: >-
            The token (or API key) must be passed as a request header. You can find your user token on the User Account
            page in Label Studio. Example: <br><pre><code class="language-bash">curl
            https://label-studio-host/api/projects -H "Authorization: Token [your-token]"</code></pre>
          required: true
          schema:
            type: string
      responses:
        '200':
          description: ''
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/LocalFilesImportStorage'
    delete:
      operationId: delete
      summary: Delete import storage
      description: Delete a specific local file import storage connection.
      tags:
        - subpackage_importStorage.subpackage_importStorage/local
      parameters:
        - name: id
          in: path
          required: true
          schema:
            type: integer
        - name: Authorization
          in: header
          description: >-
            The token (or API key) must be passed as a request header. You can find your user token on the User Account
            page in Label Studio. Example: <br><pre><code class="language-bash">curl
            https://label-studio-host/api/projects -H "Authorization: Token [your-token]"</code></pre>
          required: true
          schema:
            type: string
      responses:
        '200':
          description: Successful response
    patch:
      operationId: update
      summary: Update import storage
      description: Update a specific local file import storage connection.
      tags:
        - subpackage_importStorage.subpackage_importStorage/local
      parameters:
        - name: id
          in: path
          required: true
          schema:
            type: integer
        - name: Authorization
          in: header
          description: >-
            The token (or API key) must be passed as a request header. You can find your user token on the User Account
            page in Label Studio. Example: <br><pre><code class="language-bash">curl
            https://label-studio-host/api/projects -H "Authorization: Token [your-token]"</code></pre>
          required: true
          schema:
            type: string
      responses:
        '200':
          description: ''
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/LocalFilesImportStorage'
      requestBody:
        content:
          application/json:
            schema:
              type: object
              properties:
                description:
                  type: string
                  description: Storage description
                path:
                  type: string
                  description: Path to local directory
                project:
                  type: integer
                  description: Project ID
                regex_filter:
                  type: string
                  description: Regex for filtering objects
                title:
                  type: string
                  description: Storage title
                use_blob_urls:
                  type: boolean
                  default: false
                  description: >-
                    Interpret objects as BLOBs and generate URLs. For example, if your directory contains images, you
                    can use this option to generate URLs for these images. If set to False, it will read the content of
                    the file and load it into Label Studio.
  /api/storages/localfiles/{id}/sync:
    post:
      operationId: sync
      summary: Sync import storage
      description: Sync tasks from a local file import storage connection.
      tags:
        - subpackage_importStorage.subpackage_importStorage/local
      parameters:
        - name: id
          in: path
          description: Storage ID
          required: true
          schema:
            type: integer
        - name: Authorization
          in: header
          description: >-
            The token (or API key) must be passed as a request header. You can find your user token on the User Account
            page in Label Studio. Example: <br><pre><code class="language-bash">curl
            https://label-studio-host/api/projects -H "Authorization: Token [your-token]"</code></pre>
          required: true
          schema:
            type: string
      responses:
        '200':
          description: ''
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/LocalFilesImportStorage'
  /api/storages/redis/:
    get:
      operationId: list
      summary: Get all import storage
      description: Get a list of all Redis import storage connections.
      tags:
        - subpackage_importStorage.subpackage_importStorage/redis
      parameters:
        - name: ordering
          in: query
          description: Which field to use when ordering the results.
          required: false
          schema:
            type: string
        - name: project
          in: query
          description: Project ID
          required: true
          schema:
            type: integer
        - name: Authorization
          in: header
          description: >-
            The token (or API key) must be passed as a request header. You can find your user token on the User Account
            page in Label Studio. Example: <br><pre><code class="language-bash">curl
            https://label-studio-host/api/projects -H "Authorization: Token [your-token]"</code></pre>
          required: true
          schema:
            type: string
      responses:
        '200':
          description: ''
          content:
            application/json:
              schema:
                type: array
                items:
                  $ref: '#/components/schemas/RedisImportStorage'
    post:
      operationId: create
      summary: Create import storage
      description: Create a new Redis import storage connection.
      tags:
        - subpackage_importStorage.subpackage_importStorage/redis
      parameters:
        - name: Authorization
          in: header
          description: >-
            The token (or API key) must be passed as a request header. You can find your user token on the User Account
            page in Label Studio. Example: <br><pre><code class="language-bash">curl
            https://label-studio-host/api/projects -H "Authorization: Token [your-token]"</code></pre>
          required: true
          schema:
            type: string
      responses:
        '201':
          description: ''
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/RedisImportStorage'
      requestBody:
        content:
          application/json:
            schema:
              type: object
              properties:
                description:
                  type: string
                  description: Storage description
                host:
                  type: string
                  description: Server Host IP (optional)
                password:
                  type: string
                  description: Server Password (optional)
                path:
                  type: string
                  description: Storage prefix (optional)
                port:
                  type: string
                  description: Server Port (optional)
                project:
                  type: integer
                  description: Project ID
                regex_filter:
                  type: string
                  description: >-
                    Cloud storage regex for filtering objects. You must specify it otherwise no objects will be
                    imported.
                title:
                  type: string
                  description: Storage title
                use_blob_urls:
                  type: boolean
                  default: false
                  description: >-
                    Interpret objects as BLOBs and generate URLs. For example, if your bucket contains images, you can
                    use this option to generate URLs for these images. If set to False, it will read the content of the
                    file and load it into Label Studio.
  /api/storages/redis/validate:
    post:
      operationId: validate
      summary: Validate import storage
      description: Validate a specific Redis import storage connection.
      tags:
        - subpackage_importStorage.subpackage_importStorage/redis
      parameters:
        - name: Authorization
          in: header
          description: >-
            The token (or API key) must be passed as a request header. You can find your user token on the User Account
            page in Label Studio. Example: <br><pre><code class="language-bash">curl
            https://label-studio-host/api/projects -H "Authorization: Token [your-token]"</code></pre>
          required: true
          schema:
            type: string
      responses:
        '200':
          description: Validation successful
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/import_storage_redis_validate_Response_200'
      requestBody:
        content:
          application/json:
            schema:
              type: object
              properties:
                description:
                  type: string
                  description: Storage description
                host:
                  type: string
                  description: Server Host IP (optional)
                id:
                  type: integer
                  description: Storage ID. If set, storage with specified ID will be updated
                password:
                  type: string
                  description: Server Password (optional)
                path:
                  type: string
                  description: Storage prefix (optional)
                port:
                  type: string
                  description: Server Port (optional)
                project:
                  type: integer
                  description: Project ID
                regex_filter:
                  type: string
                  description: >-
                    Cloud storage regex for filtering objects. You must specify it otherwise no objects will be
                    imported.
                title:
                  type: string
                  description: Storage title
                use_blob_urls:
                  type: boolean
                  default: false
                  description: >-
                    Interpret objects as BLOBs and generate URLs. For example, if your bucket contains images, you can
                    use this option to generate URLs for these images. If set to False, it will read the content of the
                    file and load it into Label Studio.
  /api/storages/redis/{id}:
    get:
      operationId: get
      summary: Get import storage
      description: Get a specific Redis import storage connection.
      tags:
        - subpackage_importStorage.subpackage_importStorage/redis
      parameters:
        - name: id
          in: path
          required: true
          schema:
            type: integer
        - name: Authorization
          in: header
          description: >-
            The token (or API key) must be passed as a request header. You can find your user token on the User Account
            page in Label Studio. Example: <br><pre><code class="language-bash">curl
            https://label-studio-host/api/projects -H "Authorization: Token [your-token]"</code></pre>
          required: true
          schema:
            type: string
      responses:
        '200':
          description: ''
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/RedisImportStorage'
    delete:
      operationId: delete
      summary: Delete import storage
      description: Delete a specific Redis import storage connection.
      tags:
        - subpackage_importStorage.subpackage_importStorage/redis
      parameters:
        - name: id
          in: path
          required: true
          schema:
            type: integer
        - name: Authorization
          in: header
          description: >-
            The token (or API key) must be passed as a request header. You can find your user token on the User Account
            page in Label Studio. Example: <br><pre><code class="language-bash">curl
            https://label-studio-host/api/projects -H "Authorization: Token [your-token]"</code></pre>
          required: true
          schema:
            type: string
      responses:
        '200':
          description: Successful response
    patch:
      operationId: update
      summary: Update import storage
      description: Update a specific Redis import storage connection.
      tags:
        - subpackage_importStorage.subpackage_importStorage/redis
      parameters:
        - name: id
          in: path
          required: true
          schema:
            type: integer
        - name: Authorization
          in: header
          description: >-
            The token (or API key) must be passed as a request header. You can find your user token on the User Account
            page in Label Studio. Example: <br><pre><code class="language-bash">curl
            https://label-studio-host/api/projects -H "Authorization: Token [your-token]"</code></pre>
          required: true
          schema:
            type: string
      responses:
        '200':
          description: ''
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/RedisImportStorage'
      requestBody:
        content:
          application/json:
            schema:
              type: object
              properties:
                description:
                  type: string
                  description: Storage description
                host:
                  type: string
                  description: Server Host IP (optional)
                password:
                  type: string
                  description: Server Password (optional)
                path:
                  type: string
                  description: Storage prefix (optional)
                port:
                  type: string
                  description: Server Port (optional)
                project:
                  type: integer
                  description: Project ID
                regex_filter:
                  type: string
                  description: >-
                    Cloud storage regex for filtering objects. You must specify it otherwise no objects will be
                    imported.
                title:
                  type: string
                  description: Storage title
                use_blob_urls:
                  type: boolean
                  default: false
                  description: >-
                    Interpret objects as BLOBs and generate URLs. For example, if your bucket contains images, you can
                    use this option to generate URLs for these images. If set to False, it will read the content of the
                    file and load it into Label Studio.
  /api/storages/redis/{id}/sync:
    post:
      operationId: sync
      summary: Sync import storage
      description: Sync tasks from a Redis import storage connection.
      tags:
        - subpackage_importStorage.subpackage_importStorage/redis
      parameters:
        - name: id
          in: path
          description: Storage ID
          required: true
          schema:
            type: integer
        - name: Authorization
          in: header
          description: >-
            The token (or API key) must be passed as a request header. You can find your user token on the User Account
            page in Label Studio. Example: <br><pre><code class="language-bash">curl
            https://label-studio-host/api/projects -H "Authorization: Token [your-token]"</code></pre>
          required: true
          schema:
            type: string
      responses:
        '200':
          description: ''
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/RedisImportStorage'
  /api/storages/s3/:
    get:
      operationId: list
      summary: List S3 import storage
      description: Get a list of all S3 import storage connections.
      tags:
        - subpackage_importStorage.subpackage_importStorage/s3
      parameters:
        - name: ordering
          in: query
          description: Which field to use when ordering the results.
          required: false
          schema:
            type: string
        - name: project
          in: query
          description: Project ID
          required: true
          schema:
            type: integer
        - name: Authorization
          in: header
          description: >-
            The token (or API key) must be passed as a request header. You can find your user token on the User Account
            page in Label Studio. Example: <br><pre><code class="language-bash">curl
            https://label-studio-host/api/projects -H "Authorization: Token [your-token]"</code></pre>
          required: true
          schema:
            type: string
      responses:
        '200':
          description: ''
          content:
            application/json:
              schema:
                type: array
                items:
                  $ref: '#/components/schemas/S3ImportStorage'
    post:
      operationId: create
      summary: Create new S3 storage
      description: Create new S3 import storage
      tags:
        - subpackage_importStorage.subpackage_importStorage/s3
      parameters:
        - name: Authorization
          in: header
          description: >-
            The token (or API key) must be passed as a request header. You can find your user token on the User Account
            page in Label Studio. Example: <br><pre><code class="language-bash">curl
            https://label-studio-host/api/projects -H "Authorization: Token [your-token]"</code></pre>
          required: true
          schema:
            type: string
      responses:
        '201':
          description: ''
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/S3ImportStorage'
      requestBody:
        content:
          application/json:
            schema:
              type: object
              properties:
                aws_access_key_id:
                  type: string
                  description: AWS_ACCESS_KEY_ID
                aws_secret_access_key:
                  type: string
                  description: AWS_SECRET_ACCESS_KEY
                aws_session_token:
                  type: string
                  description: AWS_SESSION_TOKEN
                aws_sse_kms_key_id:
                  type: string
                  description: AWS SSE KMS Key ID
                bucket:
                  type: string
                  description: S3 bucket name
                description:
                  type: string
                  description: Storage description
                prefix:
                  type: string
                  description: S3 bucket prefix
                presign:
                  type: boolean
                  default: true
                  description: Presign URLs for download
                presign_ttl:
                  type: integer
                  default: 1
                  description: Presign TTL in minutes
                project:
                  type: integer
                  description: Project ID
                recursive_scan:
                  type: boolean
                  description: Scan recursively
                regex_filter:
                  type: string
                  description: >-
                    Cloud storage regex for filtering objects. You must specify it otherwise no objects will be
                    imported.
                region_name:
                  type: string
                  description: AWS Region
                s3_endpoint:
                  type: string
                  description: S3 Endpoint
                title:
                  type: string
                  description: Storage title
                use_blob_urls:
                  type: boolean
                  default: false
                  description: >-
                    Interpret objects as BLOBs and generate URLs. For example, if your bucket contains images, you can
                    use this option to generate URLs for these images. If set to False, it will read the content of the
                    file and load it into Label Studio.
  /api/storages/s3/validate:
    post:
      operationId: validate
      summary: Validate import storage
      description: Validate a specific S3 import storage connection.
      tags:
        - subpackage_importStorage.subpackage_importStorage/s3
      parameters:
        - name: Authorization
          in: header
          description: >-
            The token (or API key) must be passed as a request header. You can find your user token on the User Account
            page in Label Studio. Example: <br><pre><code class="language-bash">curl
            https://label-studio-host/api/projects -H "Authorization: Token [your-token]"</code></pre>
          required: true
          schema:
            type: string
      responses:
        '200':
          description: Validation successful
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/import_storage_s3_validate_Response_200'
      requestBody:
        content:
          application/json:
            schema:
              type: object
              properties:
                aws_access_key_id:
                  type: string
                  description: AWS_ACCESS_KEY_ID
                aws_secret_access_key:
                  type: string
                  description: AWS_SECRET_ACCESS_KEY
                aws_session_token:
                  type: string
                  description: AWS_SESSION_TOKEN
                aws_sse_kms_key_id:
                  type: string
                  description: AWS SSE KMS Key ID
                bucket:
                  type: string
                  description: S3 bucket name
                description:
                  type: string
                  description: Storage description
                id:
                  type: integer
                  description: Storage ID. If set, storage with specified ID will be updated
                prefix:
                  type: string
                  description: S3 bucket prefix
                presign:
                  type: boolean
                  default: true
                  description: Presign URLs for download
                presign_ttl:
                  type: integer
                  default: 1
                  description: Presign TTL in minutes
                project:
                  type: integer
                  description: Project ID
                recursive_scan:
                  type: boolean
                  description: Scan recursively
                regex_filter:
                  type: string
                  description: >-
                    Cloud storage regex for filtering objects. You must specify it otherwise no objects will be
                    imported.
                region_name:
                  type: string
                  description: AWS Region
                s3_endpoint:
                  type: string
                  description: S3 Endpoint
                title:
                  type: string
                  description: Storage title
                use_blob_urls:
                  type: boolean
                  default: false
                  description: >-
                    Interpret objects as BLOBs and generate URLs. For example, if your bucket contains images, you can
                    use this option to generate URLs for these images. If set to False, it will read the content of the
                    file and load it into Label Studio.
  /api/storages/s3/{id}:
    get:
      operationId: get
      summary: Get import storage
      description: Get a specific S3 import storage connection.
      tags:
        - subpackage_importStorage.subpackage_importStorage/s3
      parameters:
        - name: id
          in: path
          required: true
          schema:
            type: integer
        - name: Authorization
          in: header
          description: >-
            The token (or API key) must be passed as a request header. You can find your user token on the User Account
            page in Label Studio. Example: <br><pre><code class="language-bash">curl
            https://label-studio-host/api/projects -H "Authorization: Token [your-token]"</code></pre>
          required: true
          schema:
            type: string
      responses:
        '200':
          description: ''
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/S3ImportStorage'
    delete:
      operationId: delete
      summary: Delete import storage
      description: Delete a specific S3 import storage connection.
      tags:
        - subpackage_importStorage.subpackage_importStorage/s3
      parameters:
        - name: id
          in: path
          required: true
          schema:
            type: integer
        - name: Authorization
          in: header
          description: >-
            The token (or API key) must be passed as a request header. You can find your user token on the User Account
            page in Label Studio. Example: <br><pre><code class="language-bash">curl
            https://label-studio-host/api/projects -H "Authorization: Token [your-token]"</code></pre>
          required: true
          schema:
            type: string
      responses:
        '200':
          description: Successful response
    patch:
      operationId: update
      summary: Update import storage
      description: Update a specific S3 import storage connection.
      tags:
        - subpackage_importStorage.subpackage_importStorage/s3
      parameters:
        - name: id
          in: path
          required: true
          schema:
            type: integer
        - name: Authorization
          in: header
          description: >-
            The token (or API key) must be passed as a request header. You can find your user token on the User Account
            page in Label Studio. Example: <br><pre><code class="language-bash">curl
            https://label-studio-host/api/projects -H "Authorization: Token [your-token]"</code></pre>
          required: true
          schema:
            type: string
      responses:
        '200':
          description: ''
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/S3ImportStorage'
      requestBody:
        content:
          application/json:
            schema:
              type: object
              properties:
                aws_access_key_id:
                  type: string
                  description: AWS_ACCESS_KEY_ID
                aws_secret_access_key:
                  type: string
                  description: AWS_SECRET_ACCESS_KEY
                aws_session_token:
                  type: string
                  description: AWS_SESSION_TOKEN
                aws_sse_kms_key_id:
                  type: string
                  description: AWS SSE KMS Key ID
                bucket:
                  type: string
                  description: S3 bucket name
                description:
                  type: string
                  description: Storage description
                prefix:
                  type: string
                  description: S3 bucket prefix
                presign:
                  type: boolean
                  default: true
                  description: Presign URLs for download
                presign_ttl:
                  type: integer
                  default: 1
                  description: Presign TTL in minutes
                project:
                  type: integer
                  description: Project ID
                recursive_scan:
                  type: boolean
                  description: Scan recursively
                regex_filter:
                  type: string
                  description: >-
                    Cloud storage regex for filtering objects. You must specify it otherwise no objects will be
                    imported.
                region_name:
                  type: string
                  description: AWS Region
                s3_endpoint:
                  type: string
                  description: S3 Endpoint
                title:
                  type: string
                  description: Storage title
                use_blob_urls:
                  type: boolean
                  default: false
                  description: >-
                    Interpret objects as BLOBs and generate URLs. For example, if your bucket contains images, you can
                    use this option to generate URLs for these images. If set to False, it will read the content of the
                    file and load it into Label Studio.
  /api/storages/s3/{id}/sync:
    post:
      operationId: sync
      summary: Sync import storage
      description: Sync tasks from an S3 import storage connection.
      tags:
        - subpackage_importStorage.subpackage_importStorage/s3
      parameters:
        - name: id
          in: path
          description: Storage ID
          required: true
          schema:
            type: integer
        - name: Authorization
          in: header
          description: >-
            The token (or API key) must be passed as a request header. You can find your user token on the User Account
            page in Label Studio. Example: <br><pre><code class="language-bash">curl
            https://label-studio-host/api/projects -H "Authorization: Token [your-token]"</code></pre>
          required: true
          schema:
            type: string
      responses:
        '200':
          description: ''
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/S3ImportStorage'
  /api/storages/s3s/:
    get:
      operationId: list
      summary: ✨ List S3s import storage
      description: |-
        <Card href="https://humansignal.com/goenterprise">
                <img style="pointer-events: none; margin-left: 0px; margin-right: 0px;" src="https://docs.humansignal.com/images/badge.svg" alt="Label Studio Enterprise badge"/>
                <p style="margin-top: 10px; font-size: 14px;">
                    This endpoint is not available in Label Studio Community Edition. [Learn more about Label Studio Enterprise](https://humansignal.com/goenterprise)
                </p>
            </Card>
        Get list of all S3 import storage connections set up with IAM role access.
      tags:
        - subpackage_importStorage.subpackage_importStorage/s3S
      parameters:
        - name: ordering
          in: query
          description: Which field to use when ordering the results.
          required: false
          schema:
            type: string
        - name: project
          in: query
          description: Project ID
          required: true
          schema:
            type: integer
        - name: Authorization
          in: header
          description: >-
            The token (or API key) must be passed as a request header. You can find your user token on the User Account
            page in Label Studio. Example: <br><pre><code class="language-bash">curl
            https://label-studio-host/api/projects -H "Authorization: Token [your-token]"</code></pre>
          required: true
          schema:
            type: string
      responses:
        '200':
          description: ''
          content:
            application/json:
              schema:
                type: array
                items:
                  $ref: '#/components/schemas/LseS3ImportStorage'
    post:
      operationId: create
      summary: ✨ Create import storage
      description: |-
        <Card href="https://humansignal.com/goenterprise">
                <img style="pointer-events: none; margin-left: 0px; margin-right: 0px;" src="https://docs.humansignal.com/images/badge.svg" alt="Label Studio Enterprise badge"/>
                <p style="margin-top: 10px; font-size: 14px;">
                    This endpoint is not available in Label Studio Community Edition. [Learn more about Label Studio Enterprise](https://humansignal.com/goenterprise)
                </p>
            </Card>
        Create S3 import storage with IAM role access.
      tags:
        - subpackage_importStorage.subpackage_importStorage/s3S
      parameters:
        - name: Authorization
          in: header
          description: >-
            The token (or API key) must be passed as a request header. You can find your user token on the User Account
            page in Label Studio. Example: <br><pre><code class="language-bash">curl
            https://label-studio-host/api/projects -H "Authorization: Token [your-token]"</code></pre>
          required: true
          schema:
            type: string
      responses:
        '201':
          description: ''
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/LseS3ImportStorage'
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/LseS3ImportStorageRequest'
  /api/storages/s3s/validate:
    post:
      operationId: validate
      summary: ✨ Validate import storage
      description: |-
        <Card href="https://humansignal.com/goenterprise">
                <img style="pointer-events: none; margin-left: 0px; margin-right: 0px;" src="https://docs.humansignal.com/images/badge.svg" alt="Label Studio Enterprise badge"/>
                <p style="margin-top: 10px; font-size: 14px;">
                    This endpoint is not available in Label Studio Community Edition. [Learn more about Label Studio Enterprise](https://humansignal.com/goenterprise)
                </p>
            </Card>
        Validate a specific S3 import storage connection that was set up with IAM role access.
      tags:
        - subpackage_importStorage.subpackage_importStorage/s3S
      parameters:
        - name: Authorization
          in: header
          description: >-
            The token (or API key) must be passed as a request header. You can find your user token on the User Account
            page in Label Studio. Example: <br><pre><code class="language-bash">curl
            https://label-studio-host/api/projects -H "Authorization: Token [your-token]"</code></pre>
          required: true
          schema:
            type: string
      responses:
        '200':
          description: Validation successful
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/import_storage_s3s_validate_Response_200'
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/LseS3ImportStorageRequest'
  /api/storages/s3s/{id}:
    get:
      operationId: get
      summary: ✨ Get import storage
      description: |-
        <Card href="https://humansignal.com/goenterprise">
                <img style="pointer-events: none; margin-left: 0px; margin-right: 0px;" src="https://docs.humansignal.com/images/badge.svg" alt="Label Studio Enterprise badge"/>
                <p style="margin-top: 10px; font-size: 14px;">
                    This endpoint is not available in Label Studio Community Edition. [Learn more about Label Studio Enterprise](https://humansignal.com/goenterprise)
                </p>
            </Card>
        Get a specific S3 import storage connection that was set up with IAM role access.
      tags:
        - subpackage_importStorage.subpackage_importStorage/s3S
      parameters:
        - name: id
          in: path
          required: true
          schema:
            type: integer
        - name: Authorization
          in: header
          description: >-
            The token (or API key) must be passed as a request header. You can find your user token on the User Account
            page in Label Studio. Example: <br><pre><code class="language-bash">curl
            https://label-studio-host/api/projects -H "Authorization: Token [your-token]"</code></pre>
          required: true
          schema:
            type: string
      responses:
        '200':
          description: ''
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/LseS3ImportStorage'
    delete:
      operationId: delete
      summary: ✨ Delete import storage
      description: |-
        <Card href="https://humansignal.com/goenterprise">
                <img style="pointer-events: none; margin-left: 0px; margin-right: 0px;" src="https://docs.humansignal.com/images/badge.svg" alt="Label Studio Enterprise badge"/>
                <p style="margin-top: 10px; font-size: 14px;">
                    This endpoint is not available in Label Studio Community Edition. [Learn more about Label Studio Enterprise](https://humansignal.com/goenterprise)
                </p>
            </Card>
        Delete a specific S3 import storage connection that was set up with IAM role access.
      tags:
        - subpackage_importStorage.subpackage_importStorage/s3S
      parameters:
        - name: id
          in: path
          required: true
          schema:
            type: integer
        - name: Authorization
          in: header
          description: >-
            The token (or API key) must be passed as a request header. You can find your user token on the User Account
            page in Label Studio. Example: <br><pre><code class="language-bash">curl
            https://label-studio-host/api/projects -H "Authorization: Token [your-token]"</code></pre>
          required: true
          schema:
            type: string
      responses:
        '200':
          description: Successful response
    patch:
      operationId: update
      summary: ✨ Update import storage
      description: |-
        <Card href="https://humansignal.com/goenterprise">
                <img style="pointer-events: none; margin-left: 0px; margin-right: 0px;" src="https://docs.humansignal.com/images/badge.svg" alt="Label Studio Enterprise badge"/>
                <p style="margin-top: 10px; font-size: 14px;">
                    This endpoint is not available in Label Studio Community Edition. [Learn more about Label Studio Enterprise](https://humansignal.com/goenterprise)
                </p>
            </Card>
        Update a specific S3 import storage connection that was set up with IAM role access.
      tags:
        - subpackage_importStorage.subpackage_importStorage/s3S
      parameters:
        - name: id
          in: path
          required: true
          schema:
            type: integer
        - name: Authorization
          in: header
          description: >-
            The token (or API key) must be passed as a request header. You can find your user token on the User Account
            page in Label Studio. Example: <br><pre><code class="language-bash">curl
            https://label-studio-host/api/projects -H "Authorization: Token [your-token]"</code></pre>
          required: true
          schema:
            type: string
      responses:
        '200':
          description: ''
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/LseS3ImportStorage'
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/PatchedLseS3ImportStorageRequest'
  /api/storages/s3s/{id}/sync:
    post:
      operationId: sync
      summary: ✨ Sync import storage
      description: |-
        <Card href="https://humansignal.com/goenterprise">
                <img style="pointer-events: none; margin-left: 0px; margin-right: 0px;" src="https://docs.humansignal.com/images/badge.svg" alt="Label Studio Enterprise badge"/>
                <p style="margin-top: 10px; font-size: 14px;">
                    This endpoint is not available in Label Studio Community Edition. [Learn more about Label Studio Enterprise](https://humansignal.com/goenterprise)
                </p>
            </Card>
        Sync tasks from an S3 import storage connection that was set up with IAM role access.
      tags:
        - subpackage_importStorage.subpackage_importStorage/s3S
      parameters:
        - name: id
          in: path
          required: true
          schema:
            type: integer
        - name: Authorization
          in: header
          description: >-
            The token (or API key) must be passed as a request header. You can find your user token on the User Account
            page in Label Studio. Example: <br><pre><code class="language-bash">curl
            https://label-studio-host/api/projects -H "Authorization: Token [your-token]"</code></pre>
          required: true
          schema:
            type: string
      responses:
        '200':
          description: ''
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/LseS3ImportStorage'
  /api/storages/export/types:
    get:
      operationId: list-types
      summary: List all export storages types
      description: Retrieve a list of the export storages types.
      tags:
        - subpackage_exportStorage
      parameters:
        - name: Authorization
          in: header
          description: >-
            The token (or API key) must be passed as a request header. You can find your user token on the User Account
            page in Label Studio. Example: <br><pre><code class="language-bash">curl
            https://label-studio-host/api/projects -H "Authorization: Token [your-token]"</code></pre>
          required: true
          schema:
            type: string
      responses:
        '200':
          description: List of export storage types
          content:
            application/json:
              schema:
                type: array
                items:
                  $ref: '#/components/schemas/ApiStoragesExportTypesGetResponsesContentApplicationJsonSchemaItems'
  /api/storages/export/azure:
    get:
      operationId: list
      summary: Get all export storage
      description: Get a list of all Azure export storage connections.
      tags:
        - subpackage_exportStorage.subpackage_exportStorage/azure
      parameters:
        - name: ordering
          in: query
          description: Which field to use when ordering the results.
          required: false
          schema:
            type: string
        - name: project
          in: query
          description: Project ID
          required: true
          schema:
            type: integer
        - name: Authorization
          in: header
          description: >-
            The token (or API key) must be passed as a request header. You can find your user token on the User Account
            page in Label Studio. Example: <br><pre><code class="language-bash">curl
            https://label-studio-host/api/projects -H "Authorization: Token [your-token]"</code></pre>
          required: true
          schema:
            type: string
      responses:
        '200':
          description: ''
          content:
            application/json:
              schema:
                type: array
                items:
                  $ref: '#/components/schemas/AzureBlobExportStorage'
    post:
      operationId: create
      summary: Create export storage
      description: Create a new Azure export storage connection to store annotations.
      tags:
        - subpackage_exportStorage.subpackage_exportStorage/azure
      parameters:
        - name: Authorization
          in: header
          description: >-
            The token (or API key) must be passed as a request header. You can find your user token on the User Account
            page in Label Studio. Example: <br><pre><code class="language-bash">curl
            https://label-studio-host/api/projects -H "Authorization: Token [your-token]"</code></pre>
          required: true
          schema:
            type: string
      responses:
        '201':
          description: ''
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/AzureBlobExportStorage'
      requestBody:
        content:
          application/json:
            schema:
              type: object
              properties:
                account_key:
                  type: string
                  description: Azure Blob account key
                account_name:
                  type: string
                  description: Azure Blob account name
                can_delete_objects:
                  type: boolean
                  default: false
                  description: Deletion from storage enabled
                container:
                  type: string
                  description: Azure blob container
                description:
                  type: string
                  description: Storage description
                prefix:
                  type: string
                  description: Azure blob prefix name
                project:
                  type: integer
                  description: Project ID
                title:
                  type: string
                  description: Storage title
  /api/storages/export/azure/validate:
    post:
      operationId: validate
      summary: Validate export storage
      description: Validate a specific Azure export storage connection.
      tags:
        - subpackage_exportStorage.subpackage_exportStorage/azure
      parameters:
        - name: Authorization
          in: header
          description: >-
            The token (or API key) must be passed as a request header. You can find your user token on the User Account
            page in Label Studio. Example: <br><pre><code class="language-bash">curl
            https://label-studio-host/api/projects -H "Authorization: Token [your-token]"</code></pre>
          required: true
          schema:
            type: string
      responses:
        '200':
          description: Validation successful
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/export_storage_azure_validate_Response_200'
      requestBody:
        content:
          application/json:
            schema:
              type: object
              properties:
                account_key:
                  type: string
                  description: Azure Blob account key
                account_name:
                  type: string
                  description: Azure Blob account name
                can_delete_objects:
                  type: boolean
                  default: false
                  description: Deletion from storage enabled
                container:
                  type: string
                  description: Azure blob container
                description:
                  type: string
                  description: Storage description
                id:
                  type: integer
                  description: Storage ID. If set, storage with specified ID will be updated
                prefix:
                  type: string
                  description: Azure blob prefix name
                project:
                  type: integer
                  description: Project ID
                title:
                  type: string
                  description: Storage title
  /api/storages/export/azure/{id}:
    get:
      operationId: get
      summary: Get export storage
      description: Get a specific Azure export storage connection.
      tags:
        - subpackage_exportStorage.subpackage_exportStorage/azure
      parameters:
        - name: id
          in: path
          required: true
          schema:
            type: integer
        - name: Authorization
          in: header
          description: >-
            The token (or API key) must be passed as a request header. You can find your user token on the User Account
            page in Label Studio. Example: <br><pre><code class="language-bash">curl
            https://label-studio-host/api/projects -H "Authorization: Token [your-token]"</code></pre>
          required: true
          schema:
            type: string
      responses:
        '200':
          description: ''
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/AzureBlobExportStorage'
    delete:
      operationId: delete
      summary: Delete export storage
      description: Delete a specific Azure export storage connection.
      tags:
        - subpackage_exportStorage.subpackage_exportStorage/azure
      parameters:
        - name: id
          in: path
          required: true
          schema:
            type: integer
        - name: Authorization
          in: header
          description: >-
            The token (or API key) must be passed as a request header. You can find your user token on the User Account
            page in Label Studio. Example: <br><pre><code class="language-bash">curl
            https://label-studio-host/api/projects -H "Authorization: Token [your-token]"</code></pre>
          required: true
          schema:
            type: string
      responses:
        '200':
          description: Successful response
    patch:
      operationId: update
      summary: Update export storage
      description: Update a specific Azure export storage connection.
      tags:
        - subpackage_exportStorage.subpackage_exportStorage/azure
      parameters:
        - name: id
          in: path
          required: true
          schema:
            type: integer
        - name: Authorization
          in: header
          description: >-
            The token (or API key) must be passed as a request header. You can find your user token on the User Account
            page in Label Studio. Example: <br><pre><code class="language-bash">curl
            https://label-studio-host/api/projects -H "Authorization: Token [your-token]"</code></pre>
          required: true
          schema:
            type: string
      responses:
        '200':
          description: ''
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/AzureBlobExportStorage'
      requestBody:
        content:
          application/json:
            schema:
              type: object
              properties:
                account_key:
                  type: string
                  description: Azure Blob account key
                account_name:
                  type: string
                  description: Azure Blob account name
                can_delete_objects:
                  type: boolean
                  default: false
                  description: Deletion from storage enabled
                container:
                  type: string
                  description: Azure blob container
                description:
                  type: string
                  description: Storage description
                prefix:
                  type: string
                  description: Azure blob prefix name
                project:
                  type: integer
                  description: Project ID
                title:
                  type: string
                  description: Storage title
  /api/storages/export/azure/{id}/sync:
    post:
      operationId: sync
      summary: Sync export storage
      description: Sync tasks from an Azure export storage connection.
      tags:
        - subpackage_exportStorage.subpackage_exportStorage/azure
      parameters:
        - name: id
          in: path
          required: true
          schema:
            type: integer
        - name: Authorization
          in: header
          description: >-
            The token (or API key) must be passed as a request header. You can find your user token on the User Account
            page in Label Studio. Example: <br><pre><code class="language-bash">curl
            https://label-studio-host/api/projects -H "Authorization: Token [your-token]"</code></pre>
          required: true
          schema:
            type: string
      responses:
        '200':
          description: ''
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/AzureBlobExportStorage'
  /api/storages/export/azure_spi:
    get:
      operationId: list
      summary: ✨ Get all Azure SPI export storage
      description: |-
        <Card href="https://humansignal.com/goenterprise">
                <img style="pointer-events: none; margin-left: 0px; margin-right: 0px;" src="https://docs.humansignal.com/images/badge.svg" alt="Label Studio Enterprise badge"/>
                <p style="margin-top: 10px; font-size: 14px;">
                    This endpoint is not available in Label Studio Community Edition. [Learn more about Label Studio Enterprise](https://humansignal.com/goenterprise)
                </p>
            </Card>
        Get a list of all Azure export storage connections that were set up with Service Principal authentication.
      tags:
        - subpackage_exportStorage.subpackage_exportStorage/azureSpi
      parameters:
        - name: ordering
          in: query
          description: Which field to use when ordering the results.
          required: false
          schema:
            type: string
        - name: project
          in: query
          description: Project ID
          required: true
          schema:
            type: integer
        - name: Authorization
          in: header
          description: >-
            The token (or API key) must be passed as a request header. You can find your user token on the User Account
            page in Label Studio. Example: <br><pre><code class="language-bash">curl
            https://label-studio-host/api/projects -H "Authorization: Token [your-token]"</code></pre>
          required: true
          schema:
            type: string
      responses:
        '200':
          description: ''
          content:
            application/json:
              schema:
                type: array
                items:
                  $ref: '#/components/schemas/AzureServicePrincipalExportStorage'
    post:
      operationId: create
      summary: ✨ Create Azure export storage with SPI authentication
      description: |-
        <Card href="https://humansignal.com/goenterprise">
                <img style="pointer-events: none; margin-left: 0px; margin-right: 0px;" src="https://docs.humansignal.com/images/badge.svg" alt="Label Studio Enterprise badge"/>
                <p style="margin-top: 10px; font-size: 14px;">
                    This endpoint is not available in Label Studio Community Edition. [Learn more about Label Studio Enterprise](https://humansignal.com/goenterprise)
                </p>
            </Card>
        Create an Azure export storage connection with Service Principal authentication to store annotations.
      tags:
        - subpackage_exportStorage.subpackage_exportStorage/azureSpi
      parameters:
        - name: Authorization
          in: header
          description: >-
            The token (or API key) must be passed as a request header. You can find your user token on the User Account
            page in Label Studio. Example: <br><pre><code class="language-bash">curl
            https://label-studio-host/api/projects -H "Authorization: Token [your-token]"</code></pre>
          required: true
          schema:
            type: string
      responses:
        '201':
          description: ''
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/AzureServicePrincipalExportStorage'
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/AzureServicePrincipalExportStorageRequest'
  /api/storages/export/azure_spi/validate:
    post:
      operationId: validate
      summary: ✨ Validate Azure SPI export storage
      description: |-
        <Card href="https://humansignal.com/goenterprise">
                <img style="pointer-events: none; margin-left: 0px; margin-right: 0px;" src="https://docs.humansignal.com/images/badge.svg" alt="Label Studio Enterprise badge"/>
                <p style="margin-top: 10px; font-size: 14px;">
                    This endpoint is not available in Label Studio Community Edition. [Learn more about Label Studio Enterprise](https://humansignal.com/goenterprise)
                </p>
            </Card>
        Validate a specific Azure export storage connection that was set up with Service Principal authentication.
      tags:
        - subpackage_exportStorage.subpackage_exportStorage/azureSpi
      parameters:
        - name: Authorization
          in: header
          description: >-
            The token (or API key) must be passed as a request header. You can find your user token on the User Account
            page in Label Studio. Example: <br><pre><code class="language-bash">curl
            https://label-studio-host/api/projects -H "Authorization: Token [your-token]"</code></pre>
          required: true
          schema:
            type: string
      responses:
        '200':
          description: Validation successful
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/export_storage_azure_spi_validate_Response_200'
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/AzureServicePrincipalExportStorageRequest'
  /api/storages/export/azure_spi/{id}:
    get:
      operationId: get
      summary: ✨ Get Azure SPI export storage
      description: |-
        <Card href="https://humansignal.com/goenterprise">
                <img style="pointer-events: none; margin-left: 0px; margin-right: 0px;" src="https://docs.humansignal.com/images/badge.svg" alt="Label Studio Enterprise badge"/>
                <p style="margin-top: 10px; font-size: 14px;">
                    This endpoint is not available in Label Studio Community Edition. [Learn more about Label Studio Enterprise](https://humansignal.com/goenterprise)
                </p>
            </Card>
        Get a specific Azure export storage connection that was set up with Service Principal authentication.
      tags:
        - subpackage_exportStorage.subpackage_exportStorage/azureSpi
      parameters:
        - name: id
          in: path
          required: true
          schema:
            type: integer
        - name: Authorization
          in: header
          description: >-
            The token (or API key) must be passed as a request header. You can find your user token on the User Account
            page in Label Studio. Example: <br><pre><code class="language-bash">curl
            https://label-studio-host/api/projects -H "Authorization: Token [your-token]"</code></pre>
          required: true
          schema:
            type: string
      responses:
        '200':
          description: ''
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/AzureServicePrincipalExportStorage'
    delete:
      operationId: delete
      summary: ✨ Delete Azure SPI export storage
      description: |-
        <Card href="https://humansignal.com/goenterprise">
                <img style="pointer-events: none; margin-left: 0px; margin-right: 0px;" src="https://docs.humansignal.com/images/badge.svg" alt="Label Studio Enterprise badge"/>
                <p style="margin-top: 10px; font-size: 14px;">
                    This endpoint is not available in Label Studio Community Edition. [Learn more about Label Studio Enterprise](https://humansignal.com/goenterprise)
                </p>
            </Card>
        Delete a specific Azure export storage connection that was set up with Service Principal authentication.
      tags:
        - subpackage_exportStorage.subpackage_exportStorage/azureSpi
      parameters:
        - name: id
          in: path
          required: true
          schema:
            type: integer
        - name: Authorization
          in: header
          description: >-
            The token (or API key) must be passed as a request header. You can find your user token on the User Account
            page in Label Studio. Example: <br><pre><code class="language-bash">curl
            https://label-studio-host/api/projects -H "Authorization: Token [your-token]"</code></pre>
          required: true
          schema:
            type: string
      responses:
        '200':
          description: Successful response
    patch:
      operationId: update
      summary: ✨ Update Azure SPI export storage
      description: |-
        <Card href="https://humansignal.com/goenterprise">
                <img style="pointer-events: none; margin-left: 0px; margin-right: 0px;" src="https://docs.humansignal.com/images/badge.svg" alt="Label Studio Enterprise badge"/>
                <p style="margin-top: 10px; font-size: 14px;">
                    This endpoint is not available in Label Studio Community Edition. [Learn more about Label Studio Enterprise](https://humansignal.com/goenterprise)
                </p>
            </Card>
        Update a specific Azure export storage connection that was set up with Service Principal authentication.
      tags:
        - subpackage_exportStorage.subpackage_exportStorage/azureSpi
      parameters:
        - name: id
          in: path
          required: true
          schema:
            type: integer
        - name: Authorization
          in: header
          description: >-
            The token (or API key) must be passed as a request header. You can find your user token on the User Account
            page in Label Studio. Example: <br><pre><code class="language-bash">curl
            https://label-studio-host/api/projects -H "Authorization: Token [your-token]"</code></pre>
          required: true
          schema:
            type: string
      responses:
        '200':
          description: ''
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/AzureServicePrincipalExportStorage'
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/PatchedAzureServicePrincipalExportStorageRequest'
  /api/storages/export/azure_spi/{id}/sync:
    post:
      operationId: sync
      summary: ✨ Sync Azure SPI export storage
      description: |-
        <Card href="https://humansignal.com/goenterprise">
                <img style="pointer-events: none; margin-left: 0px; margin-right: 0px;" src="https://docs.humansignal.com/images/badge.svg" alt="Label Studio Enterprise badge"/>
                <p style="margin-top: 10px; font-size: 14px;">
                    This endpoint is not available in Label Studio Community Edition. [Learn more about Label Studio Enterprise](https://humansignal.com/goenterprise)
                </p>
            </Card>
        Sync tasks from an Azure SPI export storage.
      tags:
        - subpackage_exportStorage.subpackage_exportStorage/azureSpi
      parameters:
        - name: id
          in: path
          required: true
          schema:
            type: integer
        - name: Authorization
          in: header
          description: >-
            The token (or API key) must be passed as a request header. You can find your user token on the User Account
            page in Label Studio. Example: <br><pre><code class="language-bash">curl
            https://label-studio-host/api/projects -H "Authorization: Token [your-token]"</code></pre>
          required: true
          schema:
            type: string
      responses:
        '200':
          description: ''
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/AzureServicePrincipalExportStorage'
  /api/storages/export/databricks:
    get:
      operationId: list
      summary: ✨ List Databricks export storages
      description: |-
        <Card href="https://humansignal.com/goenterprise">
                <img style="pointer-events: none; margin-left: 0px; margin-right: 0px;" src="https://docs.humansignal.com/images/badge.svg" alt="Label Studio Enterprise badge"/>
                <p style="margin-top: 10px; font-size: 14px;">
                    This endpoint is not available in Label Studio Community Edition. [Learn more about Label Studio Enterprise](https://humansignal.com/goenterprise)
                </p>
            </Card>
        Get a list of all Databricks Files export storage connections.
      tags:
        - subpackage_exportStorage.subpackage_exportStorage/databricks
      parameters:
        - name: ordering
          in: query
          description: Which field to use when ordering the results.
          required: false
          schema:
            type: string
        - name: project
          in: query
          description: Project ID
          required: true
          schema:
            type: integer
        - name: Authorization
          in: header
          description: >-
            The token (or API key) must be passed as a request header. You can find your user token on the User Account
            page in Label Studio. Example: <br><pre><code class="language-bash">curl
            https://label-studio-host/api/projects -H "Authorization: Token [your-token]"</code></pre>
          required: true
          schema:
            type: string
      responses:
        '200':
          description: ''
          content:
            application/json:
              schema:
                type: array
                items:
                  $ref: '#/components/schemas/DatabricksExportStorage'
    post:
      operationId: create
      summary: ✨ Create Databricks export storage
      description: |-
        <Card href="https://humansignal.com/goenterprise">
                <img style="pointer-events: none; margin-left: 0px; margin-right: 0px;" src="https://docs.humansignal.com/images/badge.svg" alt="Label Studio Enterprise badge"/>
                <p style="margin-top: 10px; font-size: 14px;">
                    This endpoint is not available in Label Studio Community Edition. [Learn more about Label Studio Enterprise](https://humansignal.com/goenterprise)
                </p>
            </Card>
        Create a Databricks Files export storage connection.
      tags:
        - subpackage_exportStorage.subpackage_exportStorage/databricks
      parameters:
        - name: Authorization
          in: header
          description: >-
            The token (or API key) must be passed as a request header. You can find your user token on the User Account
            page in Label Studio. Example: <br><pre><code class="language-bash">curl
            https://label-studio-host/api/projects -H "Authorization: Token [your-token]"</code></pre>
          required: true
          schema:
            type: string
      responses:
        '201':
          description: ''
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/DatabricksExportStorage'
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/DatabricksExportStorageRequest'
  /api/storages/export/databricks/validate:
    post:
      operationId: validate
      summary: ✨ Validate Databricks export storage
      description: |-
        <Card href="https://humansignal.com/goenterprise">
                <img style="pointer-events: none; margin-left: 0px; margin-right: 0px;" src="https://docs.humansignal.com/images/badge.svg" alt="Label Studio Enterprise badge"/>
                <p style="margin-top: 10px; font-size: 14px;">
                    This endpoint is not available in Label Studio Community Edition. [Learn more about Label Studio Enterprise](https://humansignal.com/goenterprise)
                </p>
            </Card>
        Validate a specific Databricks Files export storage connection.
      tags:
        - subpackage_exportStorage.subpackage_exportStorage/databricks
      parameters:
        - name: Authorization
          in: header
          description: >-
            The token (or API key) must be passed as a request header. You can find your user token on the User Account
            page in Label Studio. Example: <br><pre><code class="language-bash">curl
            https://label-studio-host/api/projects -H "Authorization: Token [your-token]"</code></pre>
          required: true
          schema:
            type: string
      responses:
        '200':
          description: Validation successful
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/export_storage_databricks_validate_Response_200'
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/DatabricksExportStorageRequest'
  /api/storages/export/databricks/{id}:
    get:
      operationId: get
      summary: ✨ Get Databricks export storage
      description: |-
        <Card href="https://humansignal.com/goenterprise">
                <img style="pointer-events: none; margin-left: 0px; margin-right: 0px;" src="https://docs.humansignal.com/images/badge.svg" alt="Label Studio Enterprise badge"/>
                <p style="margin-top: 10px; font-size: 14px;">
                    This endpoint is not available in Label Studio Community Edition. [Learn more about Label Studio Enterprise](https://humansignal.com/goenterprise)
                </p>
            </Card>
        Get a specific Databricks Files export storage connection.
      tags:
        - subpackage_exportStorage.subpackage_exportStorage/databricks
      parameters:
        - name: id
          in: path
          required: true
          schema:
            type: integer
        - name: Authorization
          in: header
          description: >-
            The token (or API key) must be passed as a request header. You can find your user token on the User Account
            page in Label Studio. Example: <br><pre><code class="language-bash">curl
            https://label-studio-host/api/projects -H "Authorization: Token [your-token]"</code></pre>
          required: true
          schema:
            type: string
      responses:
        '200':
          description: ''
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/DatabricksExportStorage'
    delete:
      operationId: delete
      summary: ✨ Delete Databricks export storage
      description: |-
        <Card href="https://humansignal.com/goenterprise">
                <img style="pointer-events: none; margin-left: 0px; margin-right: 0px;" src="https://docs.humansignal.com/images/badge.svg" alt="Label Studio Enterprise badge"/>
                <p style="margin-top: 10px; font-size: 14px;">
                    This endpoint is not available in Label Studio Community Edition. [Learn more about Label Studio Enterprise](https://humansignal.com/goenterprise)
                </p>
            </Card>
        Delete a specific Databricks Files export storage connection.
      tags:
        - subpackage_exportStorage.subpackage_exportStorage/databricks
      parameters:
        - name: id
          in: path
          required: true
          schema:
            type: integer
        - name: Authorization
          in: header
          description: >-
            The token (or API key) must be passed as a request header. You can find your user token on the User Account
            page in Label Studio. Example: <br><pre><code class="language-bash">curl
            https://label-studio-host/api/projects -H "Authorization: Token [your-token]"</code></pre>
          required: true
          schema:
            type: string
      responses:
        '200':
          description: Successful response
    patch:
      operationId: update
      summary: ✨ Update Databricks export storage
      description: |-
        <Card href="https://humansignal.com/goenterprise">
                <img style="pointer-events: none; margin-left: 0px; margin-right: 0px;" src="https://docs.humansignal.com/images/badge.svg" alt="Label Studio Enterprise badge"/>
                <p style="margin-top: 10px; font-size: 14px;">
                    This endpoint is not available in Label Studio Community Edition. [Learn more about Label Studio Enterprise](https://humansignal.com/goenterprise)
                </p>
            </Card>
        Update a specific Databricks Files export storage connection.
      tags:
        - subpackage_exportStorage.subpackage_exportStorage/databricks
      parameters:
        - name: id
          in: path
          required: true
          schema:
            type: integer
        - name: Authorization
          in: header
          description: >-
            The token (or API key) must be passed as a request header. You can find your user token on the User Account
            page in Label Studio. Example: <br><pre><code class="language-bash">curl
            https://label-studio-host/api/projects -H "Authorization: Token [your-token]"</code></pre>
          required: true
          schema:
            type: string
      responses:
        '200':
          description: ''
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/DatabricksExportStorage'
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/PatchedDatabricksExportStorageRequest'
  /api/storages/export/databricks/{id}/sync:
    post:
      operationId: sync
      summary: ✨ Sync Databricks export storage
      description: |-
        <Card href="https://humansignal.com/goenterprise">
                <img style="pointer-events: none; margin-left: 0px; margin-right: 0px;" src="https://docs.humansignal.com/images/badge.svg" alt="Label Studio Enterprise badge"/>
                <p style="margin-top: 10px; font-size: 14px;">
                    This endpoint is not available in Label Studio Community Edition. [Learn more about Label Studio Enterprise](https://humansignal.com/goenterprise)
                </p>
            </Card>
        Export annotations to a Databricks Files storage.
      tags:
        - subpackage_exportStorage.subpackage_exportStorage/databricks
      parameters:
        - name: id
          in: path
          required: true
          schema:
            type: integer
        - name: Authorization
          in: header
          description: >-
            The token (or API key) must be passed as a request header. You can find your user token on the User Account
            page in Label Studio. Example: <br><pre><code class="language-bash">curl
            https://label-studio-host/api/projects -H "Authorization: Token [your-token]"</code></pre>
          required: true
          schema:
            type: string
      responses:
        '200':
          description: ''
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/DatabricksExportStorage'
  /api/storages/export/gcs:
    get:
      operationId: list
      summary: Get all export storage
      description: Get a list of all GCS export storage connections.
      tags:
        - subpackage_exportStorage.subpackage_exportStorage/gcs
      parameters:
        - name: ordering
          in: query
          description: Which field to use when ordering the results.
          required: false
          schema:
            type: string
        - name: project
          in: query
          description: Project ID
          required: true
          schema:
            type: integer
        - name: Authorization
          in: header
          description: >-
            The token (or API key) must be passed as a request header. You can find your user token on the User Account
            page in Label Studio. Example: <br><pre><code class="language-bash">curl
            https://label-studio-host/api/projects -H "Authorization: Token [your-token]"</code></pre>
          required: true
          schema:
            type: string
      responses:
        '200':
          description: ''
          content:
            application/json:
              schema:
                type: array
                items:
                  $ref: '#/components/schemas/GCSExportStorage'
    post:
      operationId: create
      summary: Create export storage
      description: Create a new GCS export storage connection to store annotations.
      tags:
        - subpackage_exportStorage.subpackage_exportStorage/gcs
      parameters:
        - name: Authorization
          in: header
          description: >-
            The token (or API key) must be passed as a request header. You can find your user token on the User Account
            page in Label Studio. Example: <br><pre><code class="language-bash">curl
            https://label-studio-host/api/projects -H "Authorization: Token [your-token]"</code></pre>
          required: true
          schema:
            type: string
      responses:
        '201':
          description: ''
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/GCSExportStorage'
      requestBody:
        content:
          application/json:
            schema:
              type: object
              properties:
                bucket:
                  type: string
                  description: GCS bucket name
                can_delete_objects:
                  type: boolean
                  default: false
                  description: Deletion from storage enabled.
                description:
                  type: string
                  description: Storage description
                google_application_credentials:
                  type: string
                  description: >-
                    The content of GOOGLE_APPLICATION_CREDENTIALS json file. Check official Google Cloud Authentication
                    documentation for more details.
                google_project_id:
                  type: string
                  description: Google project ID
                prefix:
                  type: string
                  description: GCS bucket prefix
                project:
                  type: integer
                  description: Project ID
                title:
                  type: string
                  description: Storage title
  /api/storages/export/gcs/validate:
    post:
      operationId: validate
      summary: Validate export storage
      description: Validate a specific GCS export storage connection.
      tags:
        - subpackage_exportStorage.subpackage_exportStorage/gcs
      parameters:
        - name: Authorization
          in: header
          description: >-
            The token (or API key) must be passed as a request header. You can find your user token on the User Account
            page in Label Studio. Example: <br><pre><code class="language-bash">curl
            https://label-studio-host/api/projects -H "Authorization: Token [your-token]"</code></pre>
          required: true
          schema:
            type: string
      responses:
        '200':
          description: Validation successful
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/export_storage_gcs_validate_Response_200'
      requestBody:
        content:
          application/json:
            schema:
              type: object
              properties:
                bucket:
                  type: string
                  description: GCS bucket name
                can_delete_objects:
                  type: boolean
                  default: false
                  description: Deletion from storage enabled.
                description:
                  type: string
                  description: Storage description
                google_application_credentials:
                  type: string
                  description: >-
                    The content of GOOGLE_APPLICATION_CREDENTIALS json file. Check official Google Cloud Authentication
                    documentation for more details.
                google_project_id:
                  type: string
                  description: Google project ID
                id:
                  type: integer
                  description: Storage ID. If set, storage with specified ID will be updated
                prefix:
                  type: string
                  description: GCS bucket prefix
                project:
                  type: integer
                  description: Project ID
                title:
                  type: string
                  description: Storage title
  /api/storages/export/gcs/{id}:
    get:
      operationId: get
      summary: Get export storage
      description: Get a specific GCS export storage connection.
      tags:
        - subpackage_exportStorage.subpackage_exportStorage/gcs
      parameters:
        - name: id
          in: path
          required: true
          schema:
            type: integer
        - name: Authorization
          in: header
          description: >-
            The token (or API key) must be passed as a request header. You can find your user token on the User Account
            page in Label Studio. Example: <br><pre><code class="language-bash">curl
            https://label-studio-host/api/projects -H "Authorization: Token [your-token]"</code></pre>
          required: true
          schema:
            type: string
      responses:
        '200':
          description: ''
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/GCSExportStorage'
    delete:
      operationId: delete
      summary: Delete export storage
      description: Delete a specific GCS export storage connection.
      tags:
        - subpackage_exportStorage.subpackage_exportStorage/gcs
      parameters:
        - name: id
          in: path
          required: true
          schema:
            type: integer
        - name: Authorization
          in: header
          description: >-
            The token (or API key) must be passed as a request header. You can find your user token on the User Account
            page in Label Studio. Example: <br><pre><code class="language-bash">curl
            https://label-studio-host/api/projects -H "Authorization: Token [your-token]"</code></pre>
          required: true
          schema:
            type: string
      responses:
        '200':
          description: Successful response
    patch:
      operationId: update
      summary: Update export storage
      description: Update a specific GCS export storage connection.
      tags:
        - subpackage_exportStorage.subpackage_exportStorage/gcs
      parameters:
        - name: id
          in: path
          required: true
          schema:
            type: integer
        - name: Authorization
          in: header
          description: >-
            The token (or API key) must be passed as a request header. You can find your user token on the User Account
            page in Label Studio. Example: <br><pre><code class="language-bash">curl
            https://label-studio-host/api/projects -H "Authorization: Token [your-token]"</code></pre>
          required: true
          schema:
            type: string
      responses:
        '200':
          description: ''
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/GCSExportStorage'
      requestBody:
        content:
          application/json:
            schema:
              type: object
              properties:
                bucket:
                  type: string
                  description: GCS bucket name
                can_delete_objects:
                  type: boolean
                  default: false
                  description: Deletion from storage enabled.
                description:
                  type: string
                  description: Storage description
                google_application_credentials:
                  type: string
                  description: >-
                    The content of GOOGLE_APPLICATION_CREDENTIALS json file. Check official Google Cloud Authentication
                    documentation for more details.
                google_project_id:
                  type: string
                  description: Google project ID
                prefix:
                  type: string
                  description: GCS bucket prefix
                project:
                  type: integer
                  description: Project ID
                title:
                  type: string
                  description: Storage title
  /api/storages/export/gcs/{id}/sync:
    post:
      operationId: sync
      summary: Sync export storage
      description: Sync tasks from an GCS export storage connection.
      tags:
        - subpackage_exportStorage.subpackage_exportStorage/gcs
      parameters:
        - name: id
          in: path
          required: true
          schema:
            type: integer
        - name: Authorization
          in: header
          description: >-
            The token (or API key) must be passed as a request header. You can find your user token on the User Account
            page in Label Studio. Example: <br><pre><code class="language-bash">curl
            https://label-studio-host/api/projects -H "Authorization: Token [your-token]"</code></pre>
          required: true
          schema:
            type: string
      responses:
        '200':
          description: ''
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/GCSExportStorage'
  /api/storages/export/gcs_sa:
    get:
      operationId: list
      summary: ✨ Get all GCS SA export storages
      description: |-
        <Card href="https://humansignal.com/goenterprise">
                <img style="pointer-events: none; margin-left: 0px; margin-right: 0px;" src="https://docs.humansignal.com/images/badge.svg" alt="Label Studio Enterprise badge"/>
                <p style="margin-top: 10px; font-size: 14px;">
                    This endpoint is not available in Label Studio Community Edition. [Learn more about Label Studio Enterprise](https://humansignal.com/goenterprise)
                </p>
            </Card>
        Get a list of all GCS export storage connections set up with SA Impersonation.
      tags:
        - subpackage_exportStorage.subpackage_exportStorage/gcsSa
      parameters:
        - name: ordering
          in: query
          description: Which field to use when ordering the results.
          required: false
          schema:
            type: string
        - name: project
          in: query
          description: Project ID
          required: true
          schema:
            type: integer
        - name: Authorization
          in: header
          description: >-
            The token (or API key) must be passed as a request header. You can find your user token on the User Account
            page in Label Studio. Example: <br><pre><code class="language-bash">curl
            https://label-studio-host/api/projects -H "Authorization: Token [your-token]"</code></pre>
          required: true
          schema:
            type: string
      responses:
        '200':
          description: ''
          content:
            application/json:
              schema:
                type: array
                items:
                  $ref: '#/components/schemas/GCSSAExportStorage'
    post:
      operationId: create
      summary: ✨ Create GCS export storage with SA Impersonation
      description: |-
        <Card href="https://humansignal.com/goenterprise">
                <img style="pointer-events: none; margin-left: 0px; margin-right: 0px;" src="https://docs.humansignal.com/images/badge.svg" alt="Label Studio Enterprise badge"/>
                <p style="margin-top: 10px; font-size: 14px;">
                    This endpoint is not available in Label Studio Community Edition. [Learn more about Label Studio Enterprise](https://humansignal.com/goenterprise)
                </p>
            </Card>
        Create a GCS export storage connection with SA Impersonation to store annotations.
      tags:
        - subpackage_exportStorage.subpackage_exportStorage/gcsSa
      parameters:
        - name: Authorization
          in: header
          description: >-
            The token (or API key) must be passed as a request header. You can find your user token on the User Account
            page in Label Studio. Example: <br><pre><code class="language-bash">curl
            https://label-studio-host/api/projects -H "Authorization: Token [your-token]"</code></pre>
          required: true
          schema:
            type: string
      responses:
        '201':
          description: ''
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/GCSSAExportStorage'
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/GCSSAExportStorageRequest'
  /api/storages/export/gcs_sa/validate:
    post:
      operationId: validate
      summary: ✨ Validate GCS SA export storage
      description: |-
        <Card href="https://humansignal.com/goenterprise">
                <img style="pointer-events: none; margin-left: 0px; margin-right: 0px;" src="https://docs.humansignal.com/images/badge.svg" alt="Label Studio Enterprise badge"/>
                <p style="margin-top: 10px; font-size: 14px;">
                    This endpoint is not available in Label Studio Community Edition. [Learn more about Label Studio Enterprise](https://humansignal.com/goenterprise)
                </p>
            </Card>
        Validate a specific GCS export storage connection set up with SA Impersonation.
      tags:
        - subpackage_exportStorage.subpackage_exportStorage/gcsSa
      parameters:
        - name: Authorization
          in: header
          description: >-
            The token (or API key) must be passed as a request header. You can find your user token on the User Account
            page in Label Studio. Example: <br><pre><code class="language-bash">curl
            https://label-studio-host/api/projects -H "Authorization: Token [your-token]"</code></pre>
          required: true
          schema:
            type: string
      responses:
        '200':
          description: Validation successful
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/export_storage_gcs_sa_validate_Response_200'
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/GCSSAExportStorageRequest'
  /api/storages/export/gcs_sa/{id}:
    get:
      operationId: get
      summary: ✨ Get GCS SA export storage
      description: |-
        <Card href="https://humansignal.com/goenterprise">
                <img style="pointer-events: none; margin-left: 0px; margin-right: 0px;" src="https://docs.humansignal.com/images/badge.svg" alt="Label Studio Enterprise badge"/>
                <p style="margin-top: 10px; font-size: 14px;">
                    This endpoint is not available in Label Studio Community Edition. [Learn more about Label Studio Enterprise](https://humansignal.com/goenterprise)
                </p>
            </Card>
        Get a specific GCS export storage connection set up with SA Impersonation.
      tags:
        - subpackage_exportStorage.subpackage_exportStorage/gcsSa
      parameters:
        - name: id
          in: path
          required: true
          schema:
            type: integer
        - name: Authorization
          in: header
          description: >-
            The token (or API key) must be passed as a request header. You can find your user token on the User Account
            page in Label Studio. Example: <br><pre><code class="language-bash">curl
            https://label-studio-host/api/projects -H "Authorization: Token [your-token]"</code></pre>
          required: true
          schema:
            type: string
      responses:
        '200':
          description: ''
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/GCSSAExportStorage'
    delete:
      operationId: delete
      summary: ✨ Delete GCS SA export storage
      description: |-
        <Card href="https://humansignal.com/goenterprise">
                <img style="pointer-events: none; margin-left: 0px; margin-right: 0px;" src="https://docs.humansignal.com/images/badge.svg" alt="Label Studio Enterprise badge"/>
                <p style="margin-top: 10px; font-size: 14px;">
                    This endpoint is not available in Label Studio Community Edition. [Learn more about Label Studio Enterprise](https://humansignal.com/goenterprise)
                </p>
            </Card>
        Delete a specific GCS export storage connection set up with SA Impersonation.
      tags:
        - subpackage_exportStorage.subpackage_exportStorage/gcsSa
      parameters:
        - name: id
          in: path
          required: true
          schema:
            type: integer
        - name: Authorization
          in: header
          description: >-
            The token (or API key) must be passed as a request header. You can find your user token on the User Account
            page in Label Studio. Example: <br><pre><code class="language-bash">curl
            https://label-studio-host/api/projects -H "Authorization: Token [your-token]"</code></pre>
          required: true
          schema:
            type: string
      responses:
        '200':
          description: Successful response
    patch:
      operationId: update
      summary: ✨ Update GCS SA export storage
      description: |-
        <Card href="https://humansignal.com/goenterprise">
                <img style="pointer-events: none; margin-left: 0px; margin-right: 0px;" src="https://docs.humansignal.com/images/badge.svg" alt="Label Studio Enterprise badge"/>
                <p style="margin-top: 10px; font-size: 14px;">
                    This endpoint is not available in Label Studio Community Edition. [Learn more about Label Studio Enterprise](https://humansignal.com/goenterprise)
                </p>
            </Card>
        Update a specific GCS export storage connection set up with SA Impersonation.
      tags:
        - subpackage_exportStorage.subpackage_exportStorage/gcsSa
      parameters:
        - name: id
          in: path
          required: true
          schema:
            type: integer
        - name: Authorization
          in: header
          description: >-
            The token (or API key) must be passed as a request header. You can find your user token on the User Account
            page in Label Studio. Example: <br><pre><code class="language-bash">curl
            https://label-studio-host/api/projects -H "Authorization: Token [your-token]"</code></pre>
          required: true
          schema:
            type: string
      responses:
        '200':
          description: ''
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/GCSSAExportStorage'
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/PatchedGCSSAExportStorageRequest'
  /api/storages/export/gcs_sa/{id}/sync:
    post:
      operationId: sync
      summary: ✨ Sync GCS SA export storage
      description: |-
        <Card href="https://humansignal.com/goenterprise">
                <img style="pointer-events: none; margin-left: 0px; margin-right: 0px;" src="https://docs.humansignal.com/images/badge.svg" alt="Label Studio Enterprise badge"/>
                <p style="margin-top: 10px; font-size: 14px;">
                    This endpoint is not available in Label Studio Community Edition. [Learn more about Label Studio Enterprise](https://humansignal.com/goenterprise)
                </p>
            </Card>
        Sync annotations to a GCS SA export storage.
      tags:
        - subpackage_exportStorage.subpackage_exportStorage/gcsSa
      parameters:
        - name: id
          in: path
          required: true
          schema:
            type: integer
        - name: Authorization
          in: header
          description: >-
            The token (or API key) must be passed as a request header. You can find your user token on the User Account
            page in Label Studio. Example: <br><pre><code class="language-bash">curl
            https://label-studio-host/api/projects -H "Authorization: Token [your-token]"</code></pre>
          required: true
          schema:
            type: string
      responses:
        '200':
          description: ''
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/GCSSAExportStorage'
  /api/storages/export/gcswif:
    get:
      operationId: list
      summary: ✨ Get all GCS WIF export storage
      description: |-
        <Card href="https://humansignal.com/goenterprise">
                <img style="pointer-events: none; margin-left: 0px; margin-right: 0px;" src="https://docs.humansignal.com/images/badge.svg" alt="Label Studio Enterprise badge"/>
                <p style="margin-top: 10px; font-size: 14px;">
                    This endpoint is not available in Label Studio Community Edition. [Learn more about Label Studio Enterprise](https://humansignal.com/goenterprise)
                </p>
            </Card>
        Get a list of all GCS export storage connections that were set up with WIF authentication.
      tags:
        - subpackage_exportStorage.subpackage_exportStorage/gcswif
      parameters:
        - name: ordering
          in: query
          description: Which field to use when ordering the results.
          required: false
          schema:
            type: string
        - name: project
          in: query
          description: Project ID
          required: true
          schema:
            type: integer
        - name: Authorization
          in: header
          description: >-
            The token (or API key) must be passed as a request header. You can find your user token on the User Account
            page in Label Studio. Example: <br><pre><code class="language-bash">curl
            https://label-studio-host/api/projects -H "Authorization: Token [your-token]"</code></pre>
          required: true
          schema:
            type: string
      responses:
        '200':
          description: ''
          content:
            application/json:
              schema:
                type: array
                items:
                  $ref: '#/components/schemas/GCSWIFExportStorage'
    post:
      operationId: create
      summary: ✨ Create GCS export storage with WIF authentication
      description: |-
        <Card href="https://humansignal.com/goenterprise">
                <img style="pointer-events: none; margin-left: 0px; margin-right: 0px;" src="https://docs.humansignal.com/images/badge.svg" alt="Label Studio Enterprise badge"/>
                <p style="margin-top: 10px; font-size: 14px;">
                    This endpoint is not available in Label Studio Community Edition. [Learn more about Label Studio Enterprise](https://humansignal.com/goenterprise)
                </p>
            </Card>
        Create an GCS export storage connection with WIF authentication to store annotations.
      tags:
        - subpackage_exportStorage.subpackage_exportStorage/gcswif
      parameters:
        - name: Authorization
          in: header
          description: >-
            The token (or API key) must be passed as a request header. You can find your user token on the User Account
            page in Label Studio. Example: <br><pre><code class="language-bash">curl
            https://label-studio-host/api/projects -H "Authorization: Token [your-token]"</code></pre>
          required: true
          schema:
            type: string
      responses:
        '201':
          description: ''
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/GCSWIFExportStorage'
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/GCSWIFExportStorageRequest'
  /api/storages/export/gcswif/validate:
    post:
      operationId: validate
      summary: ✨ Validate GCS WIF export storage
      description: |-
        <Card href="https://humansignal.com/goenterprise">
                <img style="pointer-events: none; margin-left: 0px; margin-right: 0px;" src="https://docs.humansignal.com/images/badge.svg" alt="Label Studio Enterprise badge"/>
                <p style="margin-top: 10px; font-size: 14px;">
                    This endpoint is not available in Label Studio Community Edition. [Learn more about Label Studio Enterprise](https://humansignal.com/goenterprise)
                </p>
            </Card>
        Validate a specific GCS export storage connection that was set up with WIF authentication.
      tags:
        - subpackage_exportStorage.subpackage_exportStorage/gcswif
      parameters:
        - name: Authorization
          in: header
          description: >-
            The token (or API key) must be passed as a request header. You can find your user token on the User Account
            page in Label Studio. Example: <br><pre><code class="language-bash">curl
            https://label-studio-host/api/projects -H "Authorization: Token [your-token]"</code></pre>
          required: true
          schema:
            type: string
      responses:
        '200':
          description: Validation successful
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/export_storage_gcswif_validate_Response_200'
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/GCSWIFExportStorageRequest'
  /api/storages/export/gcswif/{id}:
    get:
      operationId: get
      summary: ✨ Get GCS WIF export storage
      description: |-
        <Card href="https://humansignal.com/goenterprise">
                <img style="pointer-events: none; margin-left: 0px; margin-right: 0px;" src="https://docs.humansignal.com/images/badge.svg" alt="Label Studio Enterprise badge"/>
                <p style="margin-top: 10px; font-size: 14px;">
                    This endpoint is not available in Label Studio Community Edition. [Learn more about Label Studio Enterprise](https://humansignal.com/goenterprise)
                </p>
            </Card>
        Get a specific GCS export storage connection that was set up with WIF authentication.
      tags:
        - subpackage_exportStorage.subpackage_exportStorage/gcswif
      parameters:
        - name: id
          in: path
          required: true
          schema:
            type: integer
        - name: Authorization
          in: header
          description: >-
            The token (or API key) must be passed as a request header. You can find your user token on the User Account
            page in Label Studio. Example: <br><pre><code class="language-bash">curl
            https://label-studio-host/api/projects -H "Authorization: Token [your-token]"</code></pre>
          required: true
          schema:
            type: string
      responses:
        '200':
          description: ''
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/GCSWIFExportStorage'
    delete:
      operationId: delete
      summary: ✨ Delete GCS WIF export storage
      description: |-
        <Card href="https://humansignal.com/goenterprise">
                <img style="pointer-events: none; margin-left: 0px; margin-right: 0px;" src="https://docs.humansignal.com/images/badge.svg" alt="Label Studio Enterprise badge"/>
                <p style="margin-top: 10px; font-size: 14px;">
                    This endpoint is not available in Label Studio Community Edition. [Learn more about Label Studio Enterprise](https://humansignal.com/goenterprise)
                </p>
            </Card>
        Delete a specific GCS export storage connection that was set up with WIF authentication.
      tags:
        - subpackage_exportStorage.subpackage_exportStorage/gcswif
      parameters:
        - name: id
          in: path
          required: true
          schema:
            type: integer
        - name: Authorization
          in: header
          description: >-
            The token (or API key) must be passed as a request header. You can find your user token on the User Account
            page in Label Studio. Example: <br><pre><code class="language-bash">curl
            https://label-studio-host/api/projects -H "Authorization: Token [your-token]"</code></pre>
          required: true
          schema:
            type: string
      responses:
        '200':
          description: Successful response
    patch:
      operationId: update
      summary: ✨ Update GCS WIF export storage
      description: |-
        <Card href="https://humansignal.com/goenterprise">
                <img style="pointer-events: none; margin-left: 0px; margin-right: 0px;" src="https://docs.humansignal.com/images/badge.svg" alt="Label Studio Enterprise badge"/>
                <p style="margin-top: 10px; font-size: 14px;">
                    This endpoint is not available in Label Studio Community Edition. [Learn more about Label Studio Enterprise](https://humansignal.com/goenterprise)
                </p>
            </Card>
        Update a specific GCS export storage connection that was set up with WIF authentication.
      tags:
        - subpackage_exportStorage.subpackage_exportStorage/gcswif
      parameters:
        - name: id
          in: path
          required: true
          schema:
            type: integer
        - name: Authorization
          in: header
          description: >-
            The token (or API key) must be passed as a request header. You can find your user token on the User Account
            page in Label Studio. Example: <br><pre><code class="language-bash">curl
            https://label-studio-host/api/projects -H "Authorization: Token [your-token]"</code></pre>
          required: true
          schema:
            type: string
      responses:
        '200':
          description: ''
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/GCSWIFExportStorage'
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/PatchedGCSWIFExportStorageRequest'
  /api/storages/export/gcswif/{id}/sync:
    post:
      operationId: sync
      summary: ✨ Sync GCS WIF export storage
      description: |-
        <Card href="https://humansignal.com/goenterprise">
                <img style="pointer-events: none; margin-left: 0px; margin-right: 0px;" src="https://docs.humansignal.com/images/badge.svg" alt="Label Studio Enterprise badge"/>
                <p style="margin-top: 10px; font-size: 14px;">
                    This endpoint is not available in Label Studio Community Edition. [Learn more about Label Studio Enterprise](https://humansignal.com/goenterprise)
                </p>
            </Card>
        Sync tasks from an GCS WIF export storage.
      tags:
        - subpackage_exportStorage.subpackage_exportStorage/gcswif
      parameters:
        - name: id
          in: path
          required: true
          schema:
            type: integer
        - name: Authorization
          in: header
          description: >-
            The token (or API key) must be passed as a request header. You can find your user token on the User Account
            page in Label Studio. Example: <br><pre><code class="language-bash">curl
            https://label-studio-host/api/projects -H "Authorization: Token [your-token]"</code></pre>
          required: true
          schema:
            type: string
      responses:
        '200':
          description: ''
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/GCSWIFExportStorage'
  /api/storages/export/localfiles:
    get:
      operationId: list
      summary: Get all export storage
      description: Get a list of all local file export storage connections.
      tags:
        - subpackage_exportStorage.subpackage_exportStorage/local
      parameters:
        - name: ordering
          in: query
          description: Which field to use when ordering the results.
          required: false
          schema:
            type: string
        - name: project
          in: query
          description: Project ID
          required: true
          schema:
            type: integer
        - name: Authorization
          in: header
          description: >-
            The token (or API key) must be passed as a request header. You can find your user token on the User Account
            page in Label Studio. Example: <br><pre><code class="language-bash">curl
            https://label-studio-host/api/projects -H "Authorization: Token [your-token]"</code></pre>
          required: true
          schema:
            type: string
      responses:
        '200':
          description: ''
          content:
            application/json:
              schema:
                type: array
                items:
                  $ref: '#/components/schemas/LocalFilesExportStorage'
    post:
      operationId: create
      summary: Create export storage
      description: Create a new local file export storage connection to store annotations.
      tags:
        - subpackage_exportStorage.subpackage_exportStorage/local
      parameters:
        - name: Authorization
          in: header
          description: >-
            The token (or API key) must be passed as a request header. You can find your user token on the User Account
            page in Label Studio. Example: <br><pre><code class="language-bash">curl
            https://label-studio-host/api/projects -H "Authorization: Token [your-token]"</code></pre>
          required: true
          schema:
            type: string
      responses:
        '201':
          description: ''
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/LocalFilesExportStorage'
      requestBody:
        content:
          application/json:
            schema:
              type: object
              properties:
                description:
                  type: string
                  description: Storage description
                path:
                  type: string
                  description: Path to local directory
                project:
                  type: integer
                  description: Project ID
                regex_filter:
                  type: string
                  description: Regex for filtering objects
                title:
                  type: string
                  description: Storage title
                use_blob_urls:
                  type: boolean
                  default: false
                  description: >-
                    Interpret objects as BLOBs and generate URLs. For example, if your directory contains images, you
                    can use this option to generate URLs for these images. If set to False, it will read the content of
                    the file and load it into Label Studio.
  /api/storages/export/localfiles/validate:
    post:
      operationId: validate
      summary: Validate export storage
      description: Validate a specific local file export storage connection.
      tags:
        - subpackage_exportStorage.subpackage_exportStorage/local
      parameters:
        - name: Authorization
          in: header
          description: >-
            The token (or API key) must be passed as a request header. You can find your user token on the User Account
            page in Label Studio. Example: <br><pre><code class="language-bash">curl
            https://label-studio-host/api/projects -H "Authorization: Token [your-token]"</code></pre>
          required: true
          schema:
            type: string
      responses:
        '200':
          description: Validation successful
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/export_storage_local_validate_Response_200'
      requestBody:
        content:
          application/json:
            schema:
              type: object
              properties:
                description:
                  type: string
                  description: Storage description
                id:
                  type: integer
                  description: Storage ID. If set, storage with specified ID will be updated
                path:
                  type: string
                  description: Path to local directory
                project:
                  type: integer
                  description: Project ID
                regex_filter:
                  type: string
                  description: Regex for filtering objects
                title:
                  type: string
                  description: Storage title
                use_blob_urls:
                  type: boolean
                  default: false
                  description: >-
                    Interpret objects as BLOBs and generate URLs. For example, if your directory contains images, you
                    can use this option to generate URLs for these images. If set to False, it will read the content of
                    the file and load it into Label Studio.
  /api/storages/export/localfiles/{id}:
    get:
      operationId: get
      summary: Get export storage
      description: Get a specific local file export storage connection.
      tags:
        - subpackage_exportStorage.subpackage_exportStorage/local
      parameters:
        - name: id
          in: path
          required: true
          schema:
            type: integer
        - name: Authorization
          in: header
          description: >-
            The token (or API key) must be passed as a request header. You can find your user token on the User Account
            page in Label Studio. Example: <br><pre><code class="language-bash">curl
            https://label-studio-host/api/projects -H "Authorization: Token [your-token]"</code></pre>
          required: true
          schema:
            type: string
      responses:
        '200':
          description: ''
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/LocalFilesExportStorage'
    delete:
      operationId: delete
      summary: Delete export storage
      description: Delete a specific local file export storage connection.
      tags:
        - subpackage_exportStorage.subpackage_exportStorage/local
      parameters:
        - name: id
          in: path
          required: true
          schema:
            type: integer
        - name: Authorization
          in: header
          description: >-
            The token (or API key) must be passed as a request header. You can find your user token on the User Account
            page in Label Studio. Example: <br><pre><code class="language-bash">curl
            https://label-studio-host/api/projects -H "Authorization: Token [your-token]"</code></pre>
          required: true
          schema:
            type: string
      responses:
        '200':
          description: Successful response
    patch:
      operationId: update
      summary: Update export storage
      description: Update a specific local file export storage connection.
      tags:
        - subpackage_exportStorage.subpackage_exportStorage/local
      parameters:
        - name: id
          in: path
          required: true
          schema:
            type: integer
        - name: Authorization
          in: header
          description: >-
            The token (or API key) must be passed as a request header. You can find your user token on the User Account
            page in Label Studio. Example: <br><pre><code class="language-bash">curl
            https://label-studio-host/api/projects -H "Authorization: Token [your-token]"</code></pre>
          required: true
          schema:
            type: string
      responses:
        '200':
          description: ''
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/LocalFilesExportStorage'
      requestBody:
        content:
          application/json:
            schema:
              type: object
              properties:
                description:
                  type: string
                  description: Storage description
                path:
                  type: string
                  description: Path to local directory
                project:
                  type: integer
                  description: Project ID
                regex_filter:
                  type: string
                  description: Regex for filtering objects
                title:
                  type: string
                  description: Storage title
                use_blob_urls:
                  type: boolean
                  default: false
                  description: >-
                    Interpret objects as BLOBs and generate URLs. For example, if your directory contains images, you
                    can use this option to generate URLs for these images. If set to False, it will read the content of
                    the file and load it into Label Studio.
  /api/storages/export/localfiles/{id}/sync:
    post:
      operationId: sync
      summary: Sync export storage
      description: Sync tasks from a local file export storage connection.
      tags:
        - subpackage_exportStorage.subpackage_exportStorage/local
      parameters:
        - name: id
          in: path
          required: true
          schema:
            type: integer
        - name: Authorization
          in: header
          description: >-
            The token (or API key) must be passed as a request header. You can find your user token on the User Account
            page in Label Studio. Example: <br><pre><code class="language-bash">curl
            https://label-studio-host/api/projects -H "Authorization: Token [your-token]"</code></pre>
          required: true
          schema:
            type: string
      responses:
        '200':
          description: ''
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/LocalFilesExportStorage'
  /api/storages/export/redis:
    get:
      operationId: list
      summary: Get all export storage
      description: Get a list of all Redis export storage connections.
      tags:
        - subpackage_exportStorage.subpackage_exportStorage/redis
      parameters:
        - name: ordering
          in: query
          description: Which field to use when ordering the results.
          required: false
          schema:
            type: string
        - name: project
          in: query
          description: Project ID
          required: true
          schema:
            type: integer
        - name: Authorization
          in: header
          description: >-
            The token (or API key) must be passed as a request header. You can find your user token on the User Account
            page in Label Studio. Example: <br><pre><code class="language-bash">curl
            https://label-studio-host/api/projects -H "Authorization: Token [your-token]"</code></pre>
          required: true
          schema:
            type: string
      responses:
        '200':
          description: ''
          content:
            application/json:
              schema:
                type: array
                items:
                  $ref: '#/components/schemas/RedisExportStorage'
    post:
      operationId: create
      summary: Create export storage
      description: Create a new Redis export storage connection to store annotations.
      tags:
        - subpackage_exportStorage.subpackage_exportStorage/redis
      parameters:
        - name: Authorization
          in: header
          description: >-
            The token (or API key) must be passed as a request header. You can find your user token on the User Account
            page in Label Studio. Example: <br><pre><code class="language-bash">curl
            https://label-studio-host/api/projects -H "Authorization: Token [your-token]"</code></pre>
          required: true
          schema:
            type: string
      responses:
        '201':
          description: ''
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/RedisExportStorage'
      requestBody:
        content:
          application/json:
            schema:
              type: object
              properties:
                can_delete_objects:
                  type: boolean
                  default: false
                  description: Deletion from storage enabled.
                db:
                  type: integer
                  description: Database ID of database to use
                description:
                  type: string
                  description: Storage description
                host:
                  type: string
                  description: Server Host IP (optional)
                password:
                  type: string
                  description: Server Password (optional)
                path:
                  type: string
                  description: Storage prefix (optional)
                port:
                  type: string
                  description: Server Port (optional)
                project:
                  type: integer
                  description: Project ID
                title:
                  type: string
                  description: Storage title
  /api/storages/export/redis/validate:
    post:
      operationId: validate
      summary: Validate export storage
      description: Validate a specific Redis export storage connection.
      tags:
        - subpackage_exportStorage.subpackage_exportStorage/redis
      parameters:
        - name: Authorization
          in: header
          description: >-
            The token (or API key) must be passed as a request header. You can find your user token on the User Account
            page in Label Studio. Example: <br><pre><code class="language-bash">curl
            https://label-studio-host/api/projects -H "Authorization: Token [your-token]"</code></pre>
          required: true
          schema:
            type: string
      responses:
        '200':
          description: Validation successful
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/export_storage_redis_validate_Response_200'
      requestBody:
        content:
          application/json:
            schema:
              type: object
              properties:
                can_delete_objects:
                  type: boolean
                  default: false
                  description: Deletion from storage enabled.
                db:
                  type: integer
                  description: Database ID of database to use
                description:
                  type: string
                  description: Storage description
                host:
                  type: string
                  description: Server Host IP (optional)
                id:
                  type: integer
                  description: Storage ID. If set, storage with specified ID will be updated
                password:
                  type: string
                  description: Server Password (optional)
                path:
                  type: string
                  description: Storage prefix (optional)
                port:
                  type: string
                  description: Server Port (optional)
                project:
                  type: integer
                  description: Project ID
                title:
                  type: string
                  description: Storage title
  /api/storages/export/redis/{id}:
    get:
      operationId: get
      summary: Get export storage
      description: Get a specific Redis export storage connection.
      tags:
        - subpackage_exportStorage.subpackage_exportStorage/redis
      parameters:
        - name: id
          in: path
          required: true
          schema:
            type: integer
        - name: Authorization
          in: header
          description: >-
            The token (or API key) must be passed as a request header. You can find your user token on the User Account
            page in Label Studio. Example: <br><pre><code class="language-bash">curl
            https://label-studio-host/api/projects -H "Authorization: Token [your-token]"</code></pre>
          required: true
          schema:
            type: string
      responses:
        '200':
          description: ''
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/RedisExportStorage'
    delete:
      operationId: delete
      summary: Delete export storage
      description: Delete a specific Redis export storage connection.
      tags:
        - subpackage_exportStorage.subpackage_exportStorage/redis
      parameters:
        - name: id
          in: path
          required: true
          schema:
            type: integer
        - name: Authorization
          in: header
          description: >-
            The token (or API key) must be passed as a request header. You can find your user token on the User Account
            page in Label Studio. Example: <br><pre><code class="language-bash">curl
            https://label-studio-host/api/projects -H "Authorization: Token [your-token]"</code></pre>
          required: true
          schema:
            type: string
      responses:
        '200':
          description: Successful response
    patch:
      operationId: update
      summary: Update export storage
      description: Update a specific Redis export storage connection.
      tags:
        - subpackage_exportStorage.subpackage_exportStorage/redis
      parameters:
        - name: id
          in: path
          required: true
          schema:
            type: integer
        - name: Authorization
          in: header
          description: >-
            The token (or API key) must be passed as a request header. You can find your user token on the User Account
            page in Label Studio. Example: <br><pre><code class="language-bash">curl
            https://label-studio-host/api/projects -H "Authorization: Token [your-token]"</code></pre>
          required: true
          schema:
            type: string
      responses:
        '200':
          description: ''
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/RedisExportStorage'
      requestBody:
        content:
          application/json:
            schema:
              type: object
              properties:
                can_delete_objects:
                  type: boolean
                  default: false
                  description: Deletion from storage enabled.
                db:
                  type: integer
                  description: Database ID of database to use
                description:
                  type: string
                  description: Storage description
                host:
                  type: string
                  description: Server Host IP (optional)
                password:
                  type: string
                  description: Server Password (optional)
                path:
                  type: string
                  description: Storage prefix (optional)
                port:
                  type: string
                  description: Server Port (optional)
                project:
                  type: integer
                  description: Project ID
                title:
                  type: string
                  description: Storage title
  /api/storages/export/redis/{id}/sync:
    post:
      operationId: sync
      summary: Sync export storage
      description: Sync tasks from a Redis export storage connection.
      tags:
        - subpackage_exportStorage.subpackage_exportStorage/redis
      parameters:
        - name: id
          in: path
          required: true
          schema:
            type: integer
        - name: Authorization
          in: header
          description: >-
            The token (or API key) must be passed as a request header. You can find your user token on the User Account
            page in Label Studio. Example: <br><pre><code class="language-bash">curl
            https://label-studio-host/api/projects -H "Authorization: Token [your-token]"</code></pre>
          required: true
          schema:
            type: string
      responses:
        '200':
          description: ''
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/RedisExportStorage'
  /api/storages/export/s3:
    get:
      operationId: list
      summary: Get all export storage
      description: Get a list of all S3 export storage connections.
      tags:
        - subpackage_exportStorage.subpackage_exportStorage/s3
      parameters:
        - name: ordering
          in: query
          description: Which field to use when ordering the results.
          required: false
          schema:
            type: string
        - name: project
          in: query
          description: Project ID
          required: true
          schema:
            type: integer
        - name: Authorization
          in: header
          description: >-
            The token (or API key) must be passed as a request header. You can find your user token on the User Account
            page in Label Studio. Example: <br><pre><code class="language-bash">curl
            https://label-studio-host/api/projects -H "Authorization: Token [your-token]"</code></pre>
          required: true
          schema:
            type: string
      responses:
        '200':
          description: ''
          content:
            application/json:
              schema:
                type: array
                items:
                  $ref: '#/components/schemas/S3ExportStorage'
    post:
      operationId: create
      summary: Create export storage
      description: Create a new S3 export storage connection to store annotations.
      tags:
        - subpackage_exportStorage.subpackage_exportStorage/s3
      parameters:
        - name: Authorization
          in: header
          description: >-
            The token (or API key) must be passed as a request header. You can find your user token on the User Account
            page in Label Studio. Example: <br><pre><code class="language-bash">curl
            https://label-studio-host/api/projects -H "Authorization: Token [your-token]"</code></pre>
          required: true
          schema:
            type: string
      responses:
        '201':
          description: ''
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/S3ExportStorage'
      requestBody:
        content:
          application/json:
            schema:
              type: object
              properties:
                aws_access_key_id:
                  type: string
                  description: AWS_ACCESS_KEY_ID
                aws_secret_access_key:
                  type: string
                  description: AWS_SECRET_ACCESS_KEY
                aws_session_token:
                  type: string
                  description: AWS_SESSION_TOKEN
                aws_sse_kms_key_id:
                  type: string
                  description: AWS SSE KMS Key ID
                bucket:
                  type: string
                  description: S3 bucket name
                can_delete_objects:
                  type: boolean
                  default: false
                  description: Deletion from storage enabled.
                description:
                  type: string
                  description: Storage description
                prefix:
                  type: string
                  description: S3 bucket prefix
                project:
                  type: integer
                  description: Project ID
                region_name:
                  type: string
                  description: AWS Region
                s3_endpoint:
                  type: string
                  description: S3 Endpoint
                title:
                  type: string
                  description: Storage title
  /api/storages/export/s3/validate:
    post:
      operationId: validate
      summary: Validate export storage
      description: Validate a specific S3 export storage connection.
      tags:
        - subpackage_exportStorage.subpackage_exportStorage/s3
      parameters:
        - name: Authorization
          in: header
          description: >-
            The token (or API key) must be passed as a request header. You can find your user token on the User Account
            page in Label Studio. Example: <br><pre><code class="language-bash">curl
            https://label-studio-host/api/projects -H "Authorization: Token [your-token]"</code></pre>
          required: true
          schema:
            type: string
      responses:
        '200':
          description: Validation successful
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/export_storage_s3_validate_Response_200'
      requestBody:
        content:
          application/json:
            schema:
              type: object
              properties:
                aws_access_key_id:
                  type: string
                  description: AWS_ACCESS_KEY_ID
                aws_secret_access_key:
                  type: string
                  description: AWS_SECRET_ACCESS_KEY
                aws_session_token:
                  type: string
                  description: AWS_SESSION_TOKEN
                aws_sse_kms_key_id:
                  type: string
                  description: AWS SSE KMS Key ID
                bucket:
                  type: string
                  description: S3 bucket name
                can_delete_objects:
                  type: boolean
                  default: false
                  description: Deletion from storage enabled.
                description:
                  type: string
                  description: Storage description
                id:
                  type: integer
                  description: Storage ID. If set, storage with specified ID will be updated
                prefix:
                  type: string
                  description: S3 bucket prefix
                project:
                  type: integer
                  description: Project ID
                region_name:
                  type: string
                  description: AWS Region
                s3_endpoint:
                  type: string
                  description: S3 Endpoint
                title:
                  type: string
                  description: Storage title
  /api/storages/export/s3/{id}:
    get:
      operationId: get
      summary: Get export storage
      description: Get a specific S3 export storage connection.
      tags:
        - subpackage_exportStorage.subpackage_exportStorage/s3
      parameters:
        - name: id
          in: path
          required: true
          schema:
            type: integer
        - name: Authorization
          in: header
          description: >-
            The token (or API key) must be passed as a request header. You can find your user token on the User Account
            page in Label Studio. Example: <br><pre><code class="language-bash">curl
            https://label-studio-host/api/projects -H "Authorization: Token [your-token]"</code></pre>
          required: true
          schema:
            type: string
      responses:
        '200':
          description: ''
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/S3ExportStorage'
    delete:
      operationId: delete
      summary: Delete export storage
      description: Delete a specific S3 export storage connection.
      tags:
        - subpackage_exportStorage.subpackage_exportStorage/s3
      parameters:
        - name: id
          in: path
          required: true
          schema:
            type: integer
        - name: Authorization
          in: header
          description: >-
            The token (or API key) must be passed as a request header. You can find your user token on the User Account
            page in Label Studio. Example: <br><pre><code class="language-bash">curl
            https://label-studio-host/api/projects -H "Authorization: Token [your-token]"</code></pre>
          required: true
          schema:
            type: string
      responses:
        '200':
          description: Successful response
    patch:
      operationId: update
      summary: Update export storage
      description: Update a specific S3 export storage connection.
      tags:
        - subpackage_exportStorage.subpackage_exportStorage/s3
      parameters:
        - name: id
          in: path
          required: true
          schema:
            type: integer
        - name: Authorization
          in: header
          description: >-
            The token (or API key) must be passed as a request header. You can find your user token on the User Account
            page in Label Studio. Example: <br><pre><code class="language-bash">curl
            https://label-studio-host/api/projects -H "Authorization: Token [your-token]"</code></pre>
          required: true
          schema:
            type: string
      responses:
        '200':
          description: ''
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/S3ExportStorage'
      requestBody:
        content:
          application/json:
            schema:
              type: object
              properties:
                aws_access_key_id:
                  type: string
                  description: AWS_ACCESS_KEY_ID
                aws_secret_access_key:
                  type: string
                  description: AWS_SECRET_ACCESS_KEY
                aws_session_token:
                  type: string
                  description: AWS_SESSION_TOKEN
                aws_sse_kms_key_id:
                  type: string
                  description: AWS SSE KMS Key ID
                bucket:
                  type: string
                  description: S3 bucket name
                can_delete_objects:
                  type: boolean
                  default: false
                  description: Deletion from storage enabled.
                description:
                  type: string
                  description: Storage description
                prefix:
                  type: string
                  description: S3 bucket prefix
                project:
                  type: integer
                  description: Project ID
                region_name:
                  type: string
                  description: AWS Region
                s3_endpoint:
                  type: string
                  description: S3 Endpoint
                title:
                  type: string
                  description: Storage title
  /api/storages/export/s3/{id}/sync:
    post:
      operationId: sync
      summary: Sync export storage
      description: Sync tasks from an S3 export storage connection.
      tags:
        - subpackage_exportStorage.subpackage_exportStorage/s3
      parameters:
        - name: id
          in: path
          required: true
          schema:
            type: integer
        - name: Authorization
          in: header
          description: >-
            The token (or API key) must be passed as a request header. You can find your user token on the User Account
            page in Label Studio. Example: <br><pre><code class="language-bash">curl
            https://label-studio-host/api/projects -H "Authorization: Token [your-token]"</code></pre>
          required: true
          schema:
            type: string
      responses:
        '200':
          description: ''
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/S3ExportStorage'
  /api/storages/export/s3s:
    get:
      operationId: list
      summary: ✨ List S3s export storage
      description: |-
        <Card href="https://humansignal.com/goenterprise">
                <img style="pointer-events: none; margin-left: 0px; margin-right: 0px;" src="https://docs.humansignal.com/images/badge.svg" alt="Label Studio Enterprise badge"/>
                <p style="margin-top: 10px; font-size: 14px;">
                    This endpoint is not available in Label Studio Community Edition. [Learn more about Label Studio Enterprise](https://humansignal.com/goenterprise)
                </p>
            </Card>
        Get a list of all S3 export storage connections that were set up with IAM role access.
      tags:
        - subpackage_exportStorage.subpackage_exportStorage/s3S
      parameters:
        - name: ordering
          in: query
          description: Which field to use when ordering the results.
          required: false
          schema:
            type: string
        - name: project
          in: query
          description: Project ID
          required: true
          schema:
            type: integer
        - name: Authorization
          in: header
          description: >-
            The token (or API key) must be passed as a request header. You can find your user token on the User Account
            page in Label Studio. Example: <br><pre><code class="language-bash">curl
            https://label-studio-host/api/projects -H "Authorization: Token [your-token]"</code></pre>
          required: true
          schema:
            type: string
      responses:
        '200':
          description: ''
          content:
            application/json:
              schema:
                type: array
                items:
                  $ref: '#/components/schemas/LseS3ExportStorage'
    post:
      operationId: create
      summary: ✨ Create export storage
      description: |-
        <Card href="https://humansignal.com/goenterprise">
                <img style="pointer-events: none; margin-left: 0px; margin-right: 0px;" src="https://docs.humansignal.com/images/badge.svg" alt="Label Studio Enterprise badge"/>
                <p style="margin-top: 10px; font-size: 14px;">
                    This endpoint is not available in Label Studio Community Edition. [Learn more about Label Studio Enterprise](https://humansignal.com/goenterprise)
                </p>
            </Card>
        Create an S3 export storage connection with IAM role access to store annotations.
      tags:
        - subpackage_exportStorage.subpackage_exportStorage/s3S
      parameters:
        - name: Authorization
          in: header
          description: >-
            The token (or API key) must be passed as a request header. You can find your user token on the User Account
            page in Label Studio. Example: <br><pre><code class="language-bash">curl
            https://label-studio-host/api/projects -H "Authorization: Token [your-token]"</code></pre>
          required: true
          schema:
            type: string
      responses:
        '201':
          description: ''
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/LseS3ExportStorage'
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/LseS3ExportStorageRequest'
  /api/storages/export/s3s/validate:
    post:
      operationId: validate
      summary: ✨ Validate export storage
      description: |-
        <Card href="https://humansignal.com/goenterprise">
                <img style="pointer-events: none; margin-left: 0px; margin-right: 0px;" src="https://docs.humansignal.com/images/badge.svg" alt="Label Studio Enterprise badge"/>
                <p style="margin-top: 10px; font-size: 14px;">
                    This endpoint is not available in Label Studio Community Edition. [Learn more about Label Studio Enterprise](https://humansignal.com/goenterprise)
                </p>
            </Card>
        Validate a specific S3 export storage connection that was set up with IAM role access.
      tags:
        - subpackage_exportStorage.subpackage_exportStorage/s3S
      parameters:
        - name: Authorization
          in: header
          description: >-
            The token (or API key) must be passed as a request header. You can find your user token on the User Account
            page in Label Studio. Example: <br><pre><code class="language-bash">curl
            https://label-studio-host/api/projects -H "Authorization: Token [your-token]"</code></pre>
          required: true
          schema:
            type: string
      responses:
        '200':
          description: Validation successful
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/export_storage_s3s_validate_Response_200'
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/LseS3ExportStorageRequest'
  /api/storages/export/s3s/{id}:
    get:
      operationId: get
      summary: ✨ Get export storage
      description: |-
        <Card href="https://humansignal.com/goenterprise">
                <img style="pointer-events: none; margin-left: 0px; margin-right: 0px;" src="https://docs.humansignal.com/images/badge.svg" alt="Label Studio Enterprise badge"/>
                <p style="margin-top: 10px; font-size: 14px;">
                    This endpoint is not available in Label Studio Community Edition. [Learn more about Label Studio Enterprise](https://humansignal.com/goenterprise)
                </p>
            </Card>
        Get a specific S3 export storage connection that was set up with IAM role access.
      tags:
        - subpackage_exportStorage.subpackage_exportStorage/s3S
      parameters:
        - name: id
          in: path
          required: true
          schema:
            type: integer
        - name: Authorization
          in: header
          description: >-
            The token (or API key) must be passed as a request header. You can find your user token on the User Account
            page in Label Studio. Example: <br><pre><code class="language-bash">curl
            https://label-studio-host/api/projects -H "Authorization: Token [your-token]"</code></pre>
          required: true
          schema:
            type: string
      responses:
        '200':
          description: ''
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/LseS3ExportStorage'
    delete:
      operationId: delete
      summary: ✨ Delete export storage
      description: |-
        <Card href="https://humansignal.com/goenterprise">
                <img style="pointer-events: none; margin-left: 0px; margin-right: 0px;" src="https://docs.humansignal.com/images/badge.svg" alt="Label Studio Enterprise badge"/>
                <p style="margin-top: 10px; font-size: 14px;">
                    This endpoint is not available in Label Studio Community Edition. [Learn more about Label Studio Enterprise](https://humansignal.com/goenterprise)
                </p>
            </Card>
        Delete a specific S3 export storage connection that was set up with IAM role access.
      tags:
        - subpackage_exportStorage.subpackage_exportStorage/s3S
      parameters:
        - name: id
          in: path
          required: true
          schema:
            type: integer
        - name: Authorization
          in: header
          description: >-
            The token (or API key) must be passed as a request header. You can find your user token on the User Account
            page in Label Studio. Example: <br><pre><code class="language-bash">curl
            https://label-studio-host/api/projects -H "Authorization: Token [your-token]"</code></pre>
          required: true
          schema:
            type: string
      responses:
        '200':
          description: Successful response
    patch:
      operationId: update
      summary: ✨ Update export storage
      description: |-
        <Card href="https://humansignal.com/goenterprise">
                <img style="pointer-events: none; margin-left: 0px; margin-right: 0px;" src="https://docs.humansignal.com/images/badge.svg" alt="Label Studio Enterprise badge"/>
                <p style="margin-top: 10px; font-size: 14px;">
                    This endpoint is not available in Label Studio Community Edition. [Learn more about Label Studio Enterprise](https://humansignal.com/goenterprise)
                </p>
            </Card>
        Update a specific S3 export storage connection that was set up with IAM role access.
      tags:
        - subpackage_exportStorage.subpackage_exportStorage/s3S
      parameters:
        - name: id
          in: path
          required: true
          schema:
            type: integer
        - name: Authorization
          in: header
          description: >-
            The token (or API key) must be passed as a request header. You can find your user token on the User Account
            page in Label Studio. Example: <br><pre><code class="language-bash">curl
            https://label-studio-host/api/projects -H "Authorization: Token [your-token]"</code></pre>
          required: true
          schema:
            type: string
      responses:
        '200':
          description: ''
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/LseS3ExportStorage'
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/PatchedLseS3ExportStorageRequest'
  /api/storages/export/s3s/{id}/sync:
    post:
      operationId: sync
      summary: ✨ Sync export storage
      description: |-
        <Card href="https://humansignal.com/goenterprise">
                <img style="pointer-events: none; margin-left: 0px; margin-right: 0px;" src="https://docs.humansignal.com/images/badge.svg" alt="Label Studio Enterprise badge"/>
                <p style="margin-top: 10px; font-size: 14px;">
                    This endpoint is not available in Label Studio Community Edition. [Learn more about Label Studio Enterprise](https://humansignal.com/goenterprise)
                </p>
            </Card>
        Sync tasks from an S3 export storage.
      tags:
        - subpackage_exportStorage.subpackage_exportStorage/s3S
      parameters:
        - name: id
          in: path
          required: true
          schema:
            type: integer
        - name: Authorization
          in: header
          description: >-
            The token (or API key) must be passed as a request header. You can find your user token on the User Account
            page in Label Studio. Example: <br><pre><code class="language-bash">curl
            https://label-studio-host/api/projects -H "Authorization: Token [your-token]"</code></pre>
          required: true
          schema:
            type: string
      responses:
        '200':
          description: ''
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/LseS3ExportStorage'
  /api/token/:
    get:
      operationId: list
      summary: List API tokens
      description: List all API tokens for the current user.
      tags:
        - subpackage_tokens
      parameters:
        - name: ordering
          in: query
          description: Which field to use when ordering the results.
          required: false
          schema:
            type: string
        - name: Authorization
          in: header
          description: >-
            The token (or API key) must be passed as a request header. You can find your user token on the User Account
            page in Label Studio. Example: <br><pre><code class="language-bash">curl
            https://label-studio-host/api/projects -H "Authorization: Token [your-token]"</code></pre>
          required: true
          schema:
            type: string
      responses:
        '200':
          description: ''
          content:
            application/json:
              schema:
                type: array
                items:
                  $ref: '#/components/schemas/LSEAPITokenList'
    post:
      operationId: create
      summary: Create API token
      description: Create a new API token for the current user.
      tags:
        - subpackage_tokens
      parameters:
        - name: Authorization
          in: header
          description: >-
            The token (or API key) must be passed as a request header. You can find your user token on the User Account
            page in Label Studio. Example: <br><pre><code class="language-bash">curl
            https://label-studio-host/api/projects -H "Authorization: Token [your-token]"</code></pre>
          required: true
          schema:
            type: string
      responses:
        '201':
          description: ''
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/LSEAPITokenCreate'
  /api/token/blacklist/:
    post:
      operationId: blacklist
      summary: Blacklist a JWT refresh token
      description: Adds a JWT refresh token to the blacklist, preventing it from being used to obtain new access tokens.
      tags:
        - subpackage_tokens
      responses:
        '204':
          description: ''
          content:
            application/json:
              schema:
                type: object
                additionalProperties:
                  description: Any type
        '404':
          description: ''
          content:
            application/json:
              schema:
                type: object
                additionalProperties:
                  description: Any type
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/LSAPITokenBlacklistRequest'
  /api/token/refresh/:
    post:
      operationId: refresh
      summary: Refresh JWT token
      description: Get a new access token, using a refresh token.
      tags:
        - subpackage_tokens
      responses:
        '200':
          description: ''
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/TokenRefreshResponse'
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/TokenRefreshRequest'
  /api/token/rotate/:
    post:
      operationId: rotate
      summary: Rotate JWT refresh token
      description: Creates a new JWT refresh token and blacklists the current one.
      tags:
        - subpackage_tokens
      parameters:
        - name: Authorization
          in: header
          description: >-
            The token (or API key) must be passed as a request header. You can find your user token on the User Account
            page in Label Studio. Example: <br><pre><code class="language-bash">curl
            https://label-studio-host/api/projects -H "Authorization: Token [your-token]"</code></pre>
          required: true
          schema:
            type: string
      responses:
        '200':
          description: ''
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/TokenRotateResponse'
        '400':
          description: ''
          content:
            application/json:
              schema:
                type: object
                additionalProperties:
                  description: Any type
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/LSAPITokenRotateRequest'
  /api/version/:
    get:
      operationId: get
      summary: Get version information
      description: Get version information about the Label Studio instance.
      tags:
        - subpackage_versions
      parameters:
        - name: Authorization
          in: header
          description: >-
            The token (or API key) must be passed as a request header. You can find your user token on the User Account
            page in Label Studio. Example: <br><pre><code class="language-bash">curl
            https://label-studio-host/api/projects -H "Authorization: Token [your-token]"</code></pre>
          required: true
          schema:
            type: string
      responses:
        '200':
          description: ''
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/VersionResponse'
  /api/webhooks/:
    get:
      operationId: list
      summary: List all webhooks
      description: List all webhooks set up for your organization.
      tags:
        - subpackage_webhooks
      parameters:
        - name: project
          in: query
          description: Project ID
          required: false
          schema:
            type: string
        - name: Authorization
          in: header
          description: >-
            The token (or API key) must be passed as a request header. You can find your user token on the User Account
            page in Label Studio. Example: <br><pre><code class="language-bash">curl
            https://label-studio-host/api/projects -H "Authorization: Token [your-token]"</code></pre>
          required: true
          schema:
            type: string
      responses:
        '200':
          description: ''
          content:
            application/json:
              schema:
                type: array
                items:
                  $ref: '#/components/schemas/Webhook'
    post:
      operationId: create
      summary: Create a webhook
      description: Create a webhook for your organization.
      tags:
        - subpackage_webhooks
      parameters:
        - name: Authorization
          in: header
          description: >-
            The token (or API key) must be passed as a request header. You can find your user token on the User Account
            page in Label Studio. Example: <br><pre><code class="language-bash">curl
            https://label-studio-host/api/projects -H "Authorization: Token [your-token]"</code></pre>
          required: true
          schema:
            type: string
      responses:
        '201':
          description: ''
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Webhook'
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/WebhookRequest'
  /api/webhooks/info/:
    get:
      operationId: info
      summary: Get all webhook actions
      description: Get descriptions of all available webhook actions to set up webhooks.
      tags:
        - subpackage_webhooks
      parameters:
        - name: organization-only
          in: query
          description: organization-only or not
          required: false
          schema:
            type: boolean
        - name: Authorization
          in: header
          description: >-
            The token (or API key) must be passed as a request header. You can find your user token on the User Account
            page in Label Studio. Example: <br><pre><code class="language-bash">curl
            https://label-studio-host/api/projects -H "Authorization: Token [your-token]"</code></pre>
          required: true
          schema:
            type: string
      responses:
        '200':
          description: Object with webhook action descriptions.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/webhooks_info_Response_200'
  /api/webhooks/{id}/:
    get:
      operationId: get
      summary: Get webhook info
      tags:
        - subpackage_webhooks
      parameters:
        - name: id
          in: path
          required: true
          schema:
            type: integer
        - name: Authorization
          in: header
          description: >-
            The token (or API key) must be passed as a request header. You can find your user token on the User Account
            page in Label Studio. Example: <br><pre><code class="language-bash">curl
            https://label-studio-host/api/projects -H "Authorization: Token [your-token]"</code></pre>
          required: true
          schema:
            type: string
      responses:
        '200':
          description: ''
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Webhook'
    delete:
      operationId: delete
      summary: Delete webhook info
      tags:
        - subpackage_webhooks
      parameters:
        - name: id
          in: path
          required: true
          schema:
            type: integer
        - name: Authorization
          in: header
          description: >-
            The token (or API key) must be passed as a request header. You can find your user token on the User Account
            page in Label Studio. Example: <br><pre><code class="language-bash">curl
            https://label-studio-host/api/projects -H "Authorization: Token [your-token]"</code></pre>
          required: true
          schema:
            type: string
      responses:
        '200':
          description: Successful response
    patch:
      operationId: update
      summary: Update webhook info
      tags:
        - subpackage_webhooks
      parameters:
        - name: id
          in: path
          required: true
          schema:
            type: integer
        - name: Authorization
          in: header
          description: >-
            The token (or API key) must be passed as a request header. You can find your user token on the User Account
            page in Label Studio. Example: <br><pre><code class="language-bash">curl
            https://label-studio-host/api/projects -H "Authorization: Token [your-token]"</code></pre>
          required: true
          schema:
            type: string
      responses:
        '200':
          description: ''
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/WebhookSerializerForUpdate'
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/PatchedWebhookSerializerForUpdateRequest'
  /api/workspaces/:
    get:
      operationId: list
      summary: ✨ List workspaces
      description: >-
        <Card href="https://humansignal.com/goenterprise">
                <img style="pointer-events: none; margin-left: 0px; margin-right: 0px;" src="https://docs.humansignal.com/images/badge.svg" alt="Label Studio Enterprise badge"/>
                <p style="margin-top: 10px; font-size: 14px;">
                    This endpoint is not available in Label Studio Community Edition. [Learn more about Label Studio Enterprise](https://humansignal.com/goenterprise)
                </p>
            </Card>
        List all workspaces for your organization. Workspaces in Label Studio let you organize your projects and users
        into separate spaces. This is useful for managing different teams, departments, or projects within your
        organization. For more information, see the [Workspaces documentation](https://docs.humansignal.com/workspaces).
      tags:
        - subpackage_workspaces
      parameters:
        - name: include_all_workspaces
          in: query
          description: >-
            Include all workspaces in the organization, including other users' personal workspaces. Only effective for
            users with Administrator or Owner role. When enabled, the response includes created_by_user info for
            personal workspaces.
          required: false
          schema:
            type: boolean
        - name: is_archived
          in: query
          description: Filter by archived status. Set to false to exclude archived workspaces.
          required: false
          schema:
            type: boolean
        - name: is_personal
          in: query
          description: Workspace is a personal user workspace.
          required: false
          schema:
            type: boolean
        - name: ordering
          in: query
          description: Which field to use when ordering the results.
          required: false
          schema:
            type: string
        - name: Authorization
          in: header
          description: >-
            The token (or API key) must be passed as a request header. You can find your user token on the User Account
            page in Label Studio. Example: <br><pre><code class="language-bash">curl
            https://label-studio-host/api/projects -H "Authorization: Token [your-token]"</code></pre>
          required: true
          schema:
            type: string
      responses:
        '200':
          description: ''
          content:
            application/json:
              schema:
                type: array
                items:
                  $ref: '#/components/schemas/Workspace'
    post:
      operationId: create
      summary: ✨ Create workspace
      description: >-
        <Card href="https://humansignal.com/goenterprise">
                <img style="pointer-events: none; margin-left: 0px; margin-right: 0px;" src="https://docs.humansignal.com/images/badge.svg" alt="Label Studio Enterprise badge"/>
                <p style="margin-top: 10px; font-size: 14px;">
                    This endpoint is not available in Label Studio Community Edition. [Learn more about Label Studio Enterprise](https://humansignal.com/goenterprise)
                </p>
            </Card>
        Create a new workspace. Workspaces in Label Studio let you organize your projects and users into separate
        spaces. This is useful for managing different teams, departments, or projects within your organization. For more
        information, see the [Workspaces documentation](https://docs.humansignal.com/workspaces).
      tags:
        - subpackage_workspaces
      parameters:
        - name: Authorization
          in: header
          description: >-
            The token (or API key) must be passed as a request header. You can find your user token on the User Account
            page in Label Studio. Example: <br><pre><code class="language-bash">curl
            https://label-studio-host/api/projects -H "Authorization: Token [your-token]"</code></pre>
          required: true
          schema:
            type: string
      responses:
        '201':
          description: ''
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Workspace'
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/WorkspaceRequest'
  /api/workspaces/{id}/:
    get:
      operationId: get
      summary: ✨ Get workspace
      description: |-
        <Card href="https://humansignal.com/goenterprise">
                <img style="pointer-events: none; margin-left: 0px; margin-right: 0px;" src="https://docs.humansignal.com/images/badge.svg" alt="Label Studio Enterprise badge"/>
                <p style="margin-top: 10px; font-size: 14px;">
                    This endpoint is not available in Label Studio Community Edition. [Learn more about Label Studio Enterprise](https://humansignal.com/goenterprise)
                </p>
            </Card>
        Retrieve details for a specific workspace by ID.
      tags:
        - subpackage_workspaces
      parameters:
        - name: id
          in: path
          required: true
          schema:
            type: integer
        - name: Authorization
          in: header
          description: >-
            The token (or API key) must be passed as a request header. You can find your user token on the User Account
            page in Label Studio. Example: <br><pre><code class="language-bash">curl
            https://label-studio-host/api/projects -H "Authorization: Token [your-token]"</code></pre>
          required: true
          schema:
            type: string
      responses:
        '200':
          description: ''
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Workspace'
    delete:
      operationId: delete
      summary: ✨ Delete workspace
      description: |-
        <Card href="https://humansignal.com/goenterprise">
                <img style="pointer-events: none; margin-left: 0px; margin-right: 0px;" src="https://docs.humansignal.com/images/badge.svg" alt="Label Studio Enterprise badge"/>
                <p style="margin-top: 10px; font-size: 14px;">
                    This endpoint is not available in Label Studio Community Edition. [Learn more about Label Studio Enterprise](https://humansignal.com/goenterprise)
                </p>
            </Card>
        Delete a specific workspace by ID.
      tags:
        - subpackage_workspaces
      parameters:
        - name: id
          in: path
          required: true
          schema:
            type: integer
        - name: Authorization
          in: header
          description: >-
            The token (or API key) must be passed as a request header. You can find your user token on the User Account
            page in Label Studio. Example: <br><pre><code class="language-bash">curl
            https://label-studio-host/api/projects -H "Authorization: Token [your-token]"</code></pre>
          required: true
          schema:
            type: string
      responses:
        '200':
          description: Successful response
    patch:
      operationId: update
      summary: ✨ Update workspace
      description: |-
        <Card href="https://humansignal.com/goenterprise">
                <img style="pointer-events: none; margin-left: 0px; margin-right: 0px;" src="https://docs.humansignal.com/images/badge.svg" alt="Label Studio Enterprise badge"/>
                <p style="margin-top: 10px; font-size: 14px;">
                    This endpoint is not available in Label Studio Community Edition. [Learn more about Label Studio Enterprise](https://humansignal.com/goenterprise)
                </p>
            </Card>
        Update settings for a specific workspace by ID.
      tags:
        - subpackage_workspaces
      parameters:
        - name: id
          in: path
          required: true
          schema:
            type: integer
        - name: Authorization
          in: header
          description: >-
            The token (or API key) must be passed as a request header. You can find your user token on the User Account
            page in Label Studio. Example: <br><pre><code class="language-bash">curl
            https://label-studio-host/api/projects -H "Authorization: Token [your-token]"</code></pre>
          required: true
          schema:
            type: string
      responses:
        '200':
          description: ''
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Workspace'
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/PatchedWorkspaceRequest'
  /api/workspaces/{id}/memberships/:
    get:
      operationId: list
      summary: ✨ List workspace memberships
      description: |-
        <Card href="https://humansignal.com/goenterprise">
                <img style="pointer-events: none; margin-left: 0px; margin-right: 0px;" src="https://docs.humansignal.com/images/badge.svg" alt="Label Studio Enterprise badge"/>
                <p style="margin-top: 10px; font-size: 14px;">
                    This endpoint is not available in Label Studio Community Edition. [Learn more about Label Studio Enterprise](https://humansignal.com/goenterprise)
                </p>
            </Card>
        Get a list of all members in a specific workspace.
      tags:
        - subpackage_workspaces.subpackage_workspaces/members
      parameters:
        - name: id
          in: path
          required: true
          schema:
            type: integer
        - name: Authorization
          in: header
          description: >-
            The token (or API key) must be passed as a request header. You can find your user token on the User Account
            page in Label Studio. Example: <br><pre><code class="language-bash">curl
            https://label-studio-host/api/projects -H "Authorization: Token [your-token]"</code></pre>
          required: true
          schema:
            type: string
      responses:
        '200':
          description: A list of workspace memberships
          content:
            application/json:
              schema:
                type: array
                items:
                  $ref: '#/components/schemas/WorkspaceMemberList'
    post:
      operationId: create
      summary: ✨ Create workspace membership
      description: |-
        <Card href="https://humansignal.com/goenterprise">
                <img style="pointer-events: none; margin-left: 0px; margin-right: 0px;" src="https://docs.humansignal.com/images/badge.svg" alt="Label Studio Enterprise badge"/>
                <p style="margin-top: 10px; font-size: 14px;">
                    This endpoint is not available in Label Studio Community Edition. [Learn more about Label Studio Enterprise](https://humansignal.com/goenterprise)
                </p>
            </Card>
        Add a new workspace member by user ID.
      tags:
        - subpackage_workspaces.subpackage_workspaces/members
      parameters:
        - name: id
          in: path
          required: true
          schema:
            type: integer
        - name: Authorization
          in: header
          description: >-
            The token (or API key) must be passed as a request header. You can find your user token on the User Account
            page in Label Studio. Example: <br><pre><code class="language-bash">curl
            https://label-studio-host/api/projects -H "Authorization: Token [your-token]"</code></pre>
          required: true
          schema:
            type: string
      responses:
        '200':
          description: ''
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/WorkspaceMemberCreate'
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/WorkspaceMemberCreateRequest'
    delete:
      operationId: delete
      summary: ✨ Delete workspace membership
      description: >-
        <Card href="https://humansignal.com/goenterprise">
                <img style="pointer-events: none; margin-left: 0px; margin-right: 0px;" src="https://docs.humansignal.com/images/badge.svg" alt="Label Studio Enterprise badge"/>
                <p style="margin-top: 10px; font-size: 14px;">
                    This endpoint is not available in Label Studio Community Edition. [Learn more about Label Studio Enterprise](https://humansignal.com/goenterprise)
                </p>
            </Card>
        Remove a specific member by ID from a workspace. Pass the member ID via the `user_id` query parameter. For
        backward compatibility, a JSON body with `user_id` (or `user`) is still accepted.
      tags:
        - subpackage_workspaces.subpackage_workspaces/members
      parameters:
        - name: id
          in: path
          required: true
          schema:
            type: integer
        - name: user_id
          in: query
          description: User ID to remove from the workspace.
          required: false
          schema:
            type: integer
        - name: Authorization
          in: header
          description: >-
            The token (or API key) must be passed as a request header. You can find your user token on the User Account
            page in Label Studio. Example: <br><pre><code class="language-bash">curl
            https://label-studio-host/api/projects -H "Authorization: Token [your-token]"</code></pre>
          required: true
          schema:
            type: string
      responses:
        '200':
          description: Successful response
  /api/workspaces/{id}/memberships/bulk/:
    post:
      operationId: post
      summary: ✨ Bulk assign workspace members
      description: |-
        <Card href="https://humansignal.com/goenterprise">
                <img style="pointer-events: none; margin-left: 0px; margin-right: 0px;" src="https://docs.humansignal.com/images/badge.svg" alt="Label Studio Enterprise badge"/>
                <p style="margin-top: 10px; font-size: 14px;">
                    This endpoint is not available in Label Studio Community Edition. [Learn more about Label Studio Enterprise](https://humansignal.com/goenterprise)
                </p>
            </Card>
        Assign workspace members in bulk.
      tags:
        - subpackage_workspaces.subpackage_workspaces/members.subpackage_workspaces/members/bulk
      parameters:
        - name: id
          in: path
          required: true
          schema:
            type: integer
        - name: Authorization
          in: header
          description: >-
            The token (or API key) must be passed as a request header. You can find your user token on the User Account
            page in Label Studio. Example: <br><pre><code class="language-bash">curl
            https://label-studio-host/api/projects -H "Authorization: Token [your-token]"</code></pre>
          required: true
          schema:
            type: string
      responses:
        '200':
          description: ''
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/workspaces_members_bulk_post_Response_200'
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/WorkspaceMemberBulkAssignRequest'
    delete:
      operationId: delete
      summary: ✨ Bulk unassign workspace members
      description: >-
        <Card href="https://humansignal.com/goenterprise">
                <img style="pointer-events: none; margin-left: 0px; margin-right: 0px;" src="https://docs.humansignal.com/images/badge.svg" alt="Label Studio Enterprise badge"/>
                <p style="margin-top: 10px; font-size: 14px;">
                    This endpoint is not available in Label Studio Community Edition. [Learn more about Label Studio Enterprise](https://humansignal.com/goenterprise)
                </p>
            </Card>
        Unassign workspace members in bulk. Pass selector fields via query parameters (`all`, `included`, `excluded`)
        and optional paginated-list filters (`search`, `ids`). For backward compatibility, a JSON body with bulk fields
        is still accepted.
      tags:
        - subpackage_workspaces.subpackage_workspaces/members.subpackage_workspaces/members/bulk
      parameters:
        - name: id
          in: path
          required: true
          schema:
            type: integer
        - name: all
          in: query
          description: Apply unassignment to all currently matched workspace members.
          required: false
          schema:
            type: boolean
        - name: excluded
          in: query
          description: Comma-separated list of user IDs to keep assigned when `all=true`.
          required: false
          schema:
            type: string
        - name: ids
          in: query
          description: Comma-separated list of user IDs to filter matched members.
          required: false
          schema:
            type: string
        - name: included
          in: query
          description: Comma-separated list of user IDs to unassign when `all=false`.
          required: false
          schema:
            type: string
        - name: search
          in: query
          description: Search term for filtering matched members by name or email.
          required: false
          schema:
            type: string
        - name: Authorization
          in: header
          description: >-
            The token (or API key) must be passed as a request header. You can find your user token on the User Account
            page in Label Studio. Example: <br><pre><code class="language-bash">curl
            https://label-studio-host/api/projects -H "Authorization: Token [your-token]"</code></pre>
          required: true
          schema:
            type: string
      responses:
        '200':
          description: ''
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/workspaces_members_bulk_delete_Response_200'
  /api/workspaces/{id}/memberships/paginated/:
    get:
      operationId: list
      summary: ✨ Get workspace members paginated
      description: |-
        <Card href="https://humansignal.com/goenterprise">
                <img style="pointer-events: none; margin-left: 0px; margin-right: 0px;" src="https://docs.humansignal.com/images/badge.svg" alt="Label Studio Enterprise badge"/>
                <p style="margin-top: 10px; font-size: 14px;">
                    This endpoint is not available in Label Studio Community Edition. [Learn more about Label Studio Enterprise](https://humansignal.com/goenterprise)
                </p>
            </Card>
        Retrieve the members for a specific workspace.
      tags:
        - subpackage_workspaces.subpackage_workspaces/members.subpackage_workspaces/members/paginated
      parameters:
        - name: id
          in: path
          required: true
          schema:
            type: integer
        - name: ids
          in: query
          description: Comma-separated list of user IDs to filter by
          required: false
          schema:
            type: string
        - name: page
          in: query
          description: A page number within the paginated result set.
          required: false
          schema:
            type: integer
        - name: page_size
          in: query
          description: Number of results to return per page.
          required: false
          schema:
            type: integer
        - name: search
          in: query
          description: A search term.
          required: false
          schema:
            type: string
        - name: Authorization
          in: header
          description: >-
            The token (or API key) must be passed as a request header. You can find your user token on the User Account
            page in Label Studio. Example: <br><pre><code class="language-bash">curl
            https://label-studio-host/api/projects -H "Authorization: Token [your-token]"</code></pre>
          required: true
          schema:
            type: string
      responses:
        '200':
          description: ''
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/PaginatedLseUserList'
  /api/workspaces/{id}/projects/:
    get:
      operationId: list
      summary: ✨ List workspace projects
      description: |-
        <Card href="https://humansignal.com/goenterprise">
                <img style="pointer-events: none; margin-left: 0px; margin-right: 0px;" src="https://docs.humansignal.com/images/badge.svg" alt="Label Studio Enterprise badge"/>
                <p style="margin-top: 10px; font-size: 14px;">
                    This endpoint is not available in Label Studio Community Edition. [Learn more about Label Studio Enterprise](https://humansignal.com/goenterprise)
                </p>
            </Card>
        Retrieve a list of all projects in a specific workspace.
      tags:
        - subpackage_workspaces.subpackage_workspaces/projects
      parameters:
        - name: id
          in: path
          required: true
          schema:
            type: integer
        - name: Authorization
          in: header
          description: >-
            The token (or API key) must be passed as a request header. You can find your user token on the User Account
            page in Label Studio. Example: <br><pre><code class="language-bash">curl
            https://label-studio-host/api/projects -H "Authorization: Token [your-token]"</code></pre>
          required: true
          schema:
            type: string
      responses:
        '200':
          description: Projects list
          content:
            application/json:
              schema:
                type: array
                items:
                  $ref: '#/components/schemas/Project'
    post:
      operationId: add
      summary: ✨ Add workspace project
      description: |-
        <Card href="https://humansignal.com/goenterprise">
                <img style="pointer-events: none; margin-left: 0px; margin-right: 0px;" src="https://docs.humansignal.com/images/badge.svg" alt="Label Studio Enterprise badge"/>
                <p style="margin-top: 10px; font-size: 14px;">
                    This endpoint is not available in Label Studio Community Edition. [Learn more about Label Studio Enterprise](https://humansignal.com/goenterprise)
                </p>
            </Card>
        Add a project to a specific workspace.
      tags:
        - subpackage_workspaces.subpackage_workspaces/projects
      parameters:
        - name: id
          in: path
          required: true
          schema:
            type: integer
        - name: Authorization
          in: header
          description: >-
            The token (or API key) must be passed as a request header. You can find your user token on the User Account
            page in Label Studio. Example: <br><pre><code class="language-bash">curl
            https://label-studio-host/api/projects -H "Authorization: Token [your-token]"</code></pre>
          required: true
          schema:
            type: string
      responses:
        '201':
          description: Project added
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/workspaces_projects_add_Response_201'
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/WorkspaceProjectsRequest'
    delete:
      operationId: remove
      summary: ✨ Remove workspace project
      description: >-
        <Card href="https://humansignal.com/goenterprise">
                <img style="pointer-events: none; margin-left: 0px; margin-right: 0px;" src="https://docs.humansignal.com/images/badge.svg" alt="Label Studio Enterprise badge"/>
                <p style="margin-top: 10px; font-size: 14px;">
                    This endpoint is not available in Label Studio Community Edition. [Learn more about Label Studio Enterprise](https://humansignal.com/goenterprise)
                </p>
            </Card>
        Remove a project from a specific workspace. Pass the project ID via the `project` query parameter. For backward
        compatibility, a JSON body with `project` is still accepted.
      tags:
        - subpackage_workspaces.subpackage_workspaces/projects
      parameters:
        - name: id
          in: path
          required: true
          schema:
            type: integer
        - name: project
          in: query
          description: Project ID to remove from the workspace.
          required: false
          schema:
            type: integer
        - name: Authorization
          in: header
          description: >-
            The token (or API key) must be passed as a request header. You can find your user token on the User Account
            page in Label Studio. Example: <br><pre><code class="language-bash">curl
            https://label-studio-host/api/projects -H "Authorization: Token [your-token]"</code></pre>
          required: true
          schema:
            type: string
      responses:
        '200':
          description: Successful response
servers:
  - url: http://localhost:8000
components:
  schemas:
    ApiActivityLogsGetParametersMethod:
      type: string
      enum:
        - DELETE
        - GET
        - PATCH
        - POST
        - PUT
        - all
      default: all
      title: ApiActivityLogsGetParametersMethod
    ActivityLog:
      type: object
      properties:
        datetime:
          type: string
          format: date-time
        duration:
          type:
            - integer
            - 'null'
          description: Duration of response generation in ms
        email:
          type: string
        extra_data:
          oneOf:
            - description: Any type
            - type: 'null'
        http_referer:
          type: string
        id:
          type: integer
        ip_address:
          type:
            - string
            - 'null'
        organization_id:
          type:
            - integer
            - 'null'
          description: Organization id
        project_id:
          type:
            - integer
            - 'null'
          description: Project id if request has it
        request_method:
          type: string
        request_url:
          type: string
        response_code:
          type: string
        user_agent:
          type: string
        user_id:
          type: integer
        user_session:
          type:
            - string
            - 'null'
        workspace_owner_id:
          type:
            - integer
            - 'null'
          description: Owner id of workspace where action performed
      required:
        - datetime
        - email
        - id
        - request_method
        - request_url
        - response_code
        - user_id
      title: ActivityLog
    ActivityLogResponse:
      type: object
      properties:
        data:
          type: array
          items:
            $ref: '#/components/schemas/ActivityLog'
        recordsFiltered:
          type: integer
        recordsTotal:
          type: integer
      required:
        - data
        - recordsFiltered
        - recordsTotal
      description: Serializer for ActivityLogAPI response.
      title: ActivityLogResponse
    ActionEnum:
      type: string
      enum:
        - prediction
        - propagated_annotation
        - imported
        - submitted
        - updated
        - skipped
        - accepted
        - rejected
        - fixed_and_accepted
        - deleted_review
      description: |-
        * `prediction` - Created from prediction
        * `propagated_annotation` - Created from another annotation
        * `imported` - Imported
        * `submitted` - Submitted
        * `updated` - Updated
        * `skipped` - Skipped
        * `accepted` - Accepted
        * `rejected` - Rejected
        * `fixed_and_accepted` - Fixed and accepted
        * `deleted_review` - Deleted review
      title: ActionEnum
    AnnotationHistory:
      type: object
      properties:
        action:
          oneOf:
            - $ref: '#/components/schemas/ActionEnum'
            - type: 'null'
        annotation_id:
          type:
            - integer
            - 'null'
          description: Corresponding annotation for this historical annotation
        comment:
          type:
            - string
            - 'null'
        comment_id:
          type:
            - integer
            - 'null'
          description: Comment id sent with result
        created_at:
          type: string
          format: date-time
        created_by:
          type:
            - integer
            - 'null'
          description: Created by user id
        draft_id:
          type:
            - integer
            - 'null'
          description: Corresponding draft for this historical annotation
        id:
          type: integer
        lead_time:
          type:
            - number
            - 'null'
          format: double
          description: How much time it took to annotate the task
        organization_id:
          type:
            - integer
            - 'null'
          description: Organization for this annotation history
        project_id:
          type:
            - integer
            - 'null'
          description: Project for this annotation history
        result:
          oneOf:
            - description: Any type
            - type: 'null'
          description: Labeling result
        review_id:
          type:
            - integer
            - 'null'
          description: AnnotationReview ID, using with review field
        started_at:
          type:
            - string
            - 'null'
          format: date-time
          description: The time that a user started working on this revision of the annotation
        task_id:
          type:
            - integer
            - 'null'
          description: Task id
      required:
        - comment
        - created_at
        - id
      description: |-
        A ModelSerializer that takes additional arguments for
        "fields", "omit" and "expand" in order to
        control which fields are displayed, and whether to replace simple
        values with complex, nested serializations
      title: AnnotationHistory
    annotation_history_delete_Response_200:
      type: object
      properties:
        removed:
          type: integer
          description: Number of removed items
      title: annotation_history_delete_Response_200
    PaginatedAnnotationHistoryList:
      type: object
      properties:
        count:
          type: integer
        next:
          type:
            - string
            - 'null'
          format: uri
        previous:
          type:
            - string
            - 'null'
          format: uri
        results:
          type: array
          items:
            $ref: '#/components/schemas/AnnotationHistory'
      required:
        - count
        - results
      title: PaginatedAnnotationHistoryList
    AnnotationReview:
      type: object
      properties:
        accepted:
          type: boolean
          description: Accepted or rejected (if false) flag
        annotation:
          type: integer
          description: Corresponding annotation
        created_at:
          type: string
          format: date-time
          description: Creation time
        created_by:
          type: integer
          description: User who made this review
        fixed_annotation_history:
          type:
            - integer
            - 'null'
          description: Fixed annotation history item by the reviewer
        id:
          type: integer
        last_annotation_history:
          type:
            - integer
            - 'null'
        previous_annotation_history:
          type:
            - integer
            - 'null'
          description: Previous annotation history item by the annotator
        remove_from_queue:
          type:
            - boolean
            - 'null'
        result:
          oneOf:
            - description: Any type
            - type: 'null'
        started_at:
          type:
            - string
            - 'null'
          format: date-time
        state:
          type: string
      required:
        - annotation
        - created_at
        - created_by
        - fixed_annotation_history
        - id
        - previous_annotation_history
        - state
      description: |-
        AnnotationReview Serializer with FSM state support.

        Note: The 'state' field will be populated from the queryset annotation
        if present, preventing N+1 queries. Use .with_state() on your queryset.

        The state field display is controlled by both:
        - fflag_feat_fit_568_finite_state_management (FSM background calculations)
        - fflag_feat_fit_710_fsm_state_fields (state field display in APIs)
      title: AnnotationReview
    AnnotationReviewRequest:
      type: object
      properties:
        accepted:
          type: boolean
          description: Accepted or rejected (if false) flag
        annotation:
          type: integer
          description: Corresponding annotation
        comment:
          type:
            - string
            - 'null'
        last_annotation_history:
          type:
            - integer
            - 'null'
        remove_from_queue:
          type:
            - boolean
            - 'null'
        result:
          oneOf:
            - description: Any type
            - type: 'null'
        started_at:
          type:
            - string
            - 'null'
          format: date-time
      required:
        - annotation
      description: |-
        AnnotationReview Serializer with FSM state support.

        Note: The 'state' field will be populated from the queryset annotation
        if present, preventing N+1 queries. Use .with_state() on your queryset.

        The state field display is controlled by both:
        - fflag_feat_fit_568_finite_state_management (FSM background calculations)
        - fflag_feat_fit_710_fsm_state_fields (state field display in APIs)
      title: AnnotationReviewRequest
    PatchedAnnotationReviewRequest:
      type: object
      properties:
        accepted:
          type: boolean
          description: Accepted or rejected (if false) flag
        annotation:
          type: integer
          description: Corresponding annotation
        comment:
          type:
            - string
            - 'null'
        last_annotation_history:
          type:
            - integer
            - 'null'
        remove_from_queue:
          type:
            - boolean
            - 'null'
        result:
          oneOf:
            - description: Any type
            - type: 'null'
        started_at:
          type:
            - string
            - 'null'
          format: date-time
      description: |-
        AnnotationReview Serializer with FSM state support.

        Note: The 'state' field will be populated from the queryset annotation
        if present, preventing N+1 queries. Use .with_state() on your queryset.

        The state field display is controlled by both:
        - fflag_feat_fit_568_finite_state_management (FSM background calculations)
        - fflag_feat_fit_710_fsm_state_fields (state field display in APIs)
      title: PatchedAnnotationReviewRequest
    AnnotationBulkDeleteRequest:
      type: object
      properties:
        ids:
          type: array
          items:
            type: integer
          description: List of annotation IDs to delete
        project:
          type: integer
      required:
        - ids
        - project
      description: Serializer for bulk annotation deletion by IDs.
      title: AnnotationBulkDeleteRequest
    annotations_delete_bulk_Response_200:
      type: object
      properties:
        deleted_count:
          type: integer
          description: Number of annotations deleted
      title: annotations_delete_bulk_Response_200
    LastActionEnum:
      type: string
      enum:
        - prediction
        - propagated_annotation
        - imported
        - submitted
        - updated
        - skipped
        - accepted
        - rejected
        - fixed_and_accepted
        - deleted_review
      description: |-
        * `prediction` - Created from prediction
        * `propagated_annotation` - Created from another annotation
        * `imported` - Imported
        * `submitted` - Submitted
        * `updated` - Updated
        * `skipped` - Skipped
        * `accepted` - Accepted
        * `rejected` - Rejected
        * `fixed_and_accepted` - Fixed and accepted
        * `deleted_review` - Deleted review
      title: LastActionEnum
    AnnotationBulkSerializerWithSelectedItemsRequestResultItems:
      type: object
      properties: {}
      description: List of annotated regions for the task
      title: AnnotationBulkSerializerWithSelectedItemsRequestResultItems
    SelectedItemsRequest:
      type: object
      properties:
        all:
          type: boolean
        excluded:
          type: array
          items:
            type: integer
        included:
          type: array
          items:
            type: integer
      required:
        - all
      title: SelectedItemsRequest
    AnnotationBulkSerializerWithSelectedItemsRequest:
      type: object
      properties:
        bulk_created:
          type:
            - boolean
            - 'null'
          description: Annotation was created in bulk mode
        completed_by:
          type: integer
        draft_created_at:
          type:
            - string
            - 'null'
          format: date-time
          description: Draft creation time
        ground_truth:
          type: boolean
          description: This annotation is a Ground Truth (ground_truth)
        import_id:
          type:
            - integer
            - 'null'
          format: int64
          description: Original annotation ID that was at the import step or NULL if this annotation wasn't imported
        last_action:
          oneOf:
            - $ref: '#/components/schemas/LastActionEnum'
            - type: 'null'
          description: |-
            Action which was performed in the last annotation history item

            * `prediction` - Created from prediction
            * `propagated_annotation` - Created from another annotation
            * `imported` - Imported
            * `submitted` - Submitted
            * `updated` - Updated
            * `skipped` - Skipped
            * `accepted` - Accepted
            * `rejected` - Rejected
            * `fixed_and_accepted` - Fixed and accepted
            * `deleted_review` - Deleted review
        last_created_by:
          type:
            - integer
            - 'null'
          description: User who created the last annotation history item
        lead_time:
          type:
            - number
            - 'null'
          format: double
          description: How much time it took to annotate the task
        parent_annotation:
          type:
            - integer
            - 'null'
          description: Points to the parent annotation from which this annotation was created
        parent_prediction:
          type:
            - integer
            - 'null'
          description: Points to the prediction from which this annotation was created
        project:
          type:
            - integer
            - 'null'
          description: Project ID for this annotation
        result:
          type: array
          items:
            $ref: '#/components/schemas/AnnotationBulkSerializerWithSelectedItemsRequestResultItems'
          description: List of annotation results for the task
        selected_items:
          oneOf:
            - $ref: '#/components/schemas/SelectedItemsRequest'
            - type: 'null'
        task:
          type:
            - integer
            - 'null'
          description: Corresponding task for this annotation
        tasks:
          type: array
          items:
            type: integer
        unique_id:
          type: string
        updated_by:
          type:
            - integer
            - 'null'
          description: Last user who updated this annotation
        was_cancelled:
          type: boolean
          description: User skipped the task
      description: |-
        Annotation Serializer with FSM state support.

        Note: The 'state' field will be populated from the queryset annotation
        if present, preventing N+1 queries. Use .with_state() on your queryset.
      title: AnnotationBulkSerializerWithSelectedItemsRequest
    ApiAnnotationsBulkPostResponsesContentApplicationJsonSchemaItems:
      type: object
      properties:
        id:
          type: integer
          description: Annotation ID
      required:
        - id
      title: ApiAnnotationsBulkPostResponsesContentApplicationJsonSchemaItems
    AnnotationResultItems:
      type: object
      properties: {}
      description: List of annotated regions for the task
      title: AnnotationResultItems
    Annotation:
      type: object
      properties:
        bulk_created:
          type:
            - boolean
            - 'null'
          description: Annotation was created in bulk mode
        completed_by:
          type: integer
        created_ago:
          type: string
          default: ''
          description: Time delta from creation time
        created_at:
          type: string
          format: date-time
          description: Creation time
        created_username:
          type: string
          default: ''
          description: Username string
        draft_created_at:
          type:
            - string
            - 'null'
          format: date-time
          description: Draft creation time
        ground_truth:
          type: boolean
          description: This annotation is a Ground Truth (ground_truth)
        id:
          type: integer
        import_id:
          type:
            - integer
            - 'null'
          format: int64
          description: Original annotation ID that was at the import step or NULL if this annotation wasn't imported
        last_action:
          oneOf:
            - $ref: '#/components/schemas/LastActionEnum'
            - type: 'null'
          description: |-
            Action which was performed in the last annotation history item

            * `prediction` - Created from prediction
            * `propagated_annotation` - Created from another annotation
            * `imported` - Imported
            * `submitted` - Submitted
            * `updated` - Updated
            * `skipped` - Skipped
            * `accepted` - Accepted
            * `rejected` - Rejected
            * `fixed_and_accepted` - Fixed and accepted
            * `deleted_review` - Deleted review
        last_created_by:
          type:
            - integer
            - 'null'
          description: User who created the last annotation history item
        lead_time:
          type:
            - number
            - 'null'
          format: double
          description: How much time it took to annotate the task
        parent_annotation:
          type:
            - integer
            - 'null'
          description: Points to the parent annotation from which this annotation was created
        parent_prediction:
          type:
            - integer
            - 'null'
          description: Points to the prediction from which this annotation was created
        project:
          type:
            - integer
            - 'null'
          description: Project ID for this annotation
        result:
          type: array
          items:
            $ref: '#/components/schemas/AnnotationResultItems'
          description: List of annotation results for the task
        state:
          type: string
        task:
          type:
            - integer
            - 'null'
          description: Corresponding task for this annotation
        updated_at:
          type: string
          format: date-time
          description: Last updated time
        updated_by:
          type:
            - integer
            - 'null'
          description: Last user who updated this annotation
        was_cancelled:
          type: boolean
          description: User skipped the task
      required:
        - created_ago
        - created_at
        - created_username
        - id
        - state
        - updated_at
      description: |-
        Annotation Serializer with FSM state support.

        Note: The 'state' field will be populated from the queryset annotation
        if present, preventing N+1 queries. Use .with_state() on your queryset.
      title: Annotation
    ApiAnnotationsIdPatchRequestBodyContentApplicationJsonSchemaResultItems:
      type: object
      properties: {}
      title: ApiAnnotationsIdPatchRequestBodyContentApplicationJsonSchemaResultItems
    ApiTasksIdAnnotationsPostRequestBodyContentApplicationJsonSchemaResultItems:
      type: object
      properties: {}
      title: ApiTasksIdAnnotationsPostRequestBodyContentApplicationJsonSchemaResultItems
    CountLimit:
      type: object
      properties:
        count:
          type: integer
        limit:
          type: integer
        reached:
          type: boolean
        total:
          type: integer
      required:
        - count
        - limit
        - reached
      title: CountLimit
    PromptsStatusEnum:
      type: string
      enum:
        - Enabled
        - Cloud license per organization disabled
        - On-premise global license disabled
        - Expired
        - Adala not connected
        - Disabled for this organization [FF]
        - unknown
      description: |-
        * `Enabled` - Enabled
        * `Cloud license per organization disabled` - Cloud license per organization disabled
        * `On-premise global license disabled` - On-premise global license disabled
        * `Expired` - Expired
        * `Adala not connected` - Adala not connected
        * `Disabled for this organization [FF]` - Disabled for this organization [FF]
        * `unknown` - unknown
      title: PromptsStatusEnum
    BillingChecks:
      type: object
      properties:
        export_storages:
          $ref: '#/components/schemas/CountLimit'
        import_storages:
          $ref: '#/components/schemas/CountLimit'
        is_license_expired:
          type: boolean
        is_license_warning:
          type: boolean
        is_prompts_expire:
          type: boolean
        is_prompts_warning:
          type: boolean
        license_expires:
          type:
            - string
            - 'null'
          format: date
        license_issued:
          type:
            - string
            - 'null'
          format: date
        license_warning:
          type:
            - string
            - 'null'
          format: date
        organization_is_active:
          type: boolean
        projects:
          $ref: '#/components/schemas/CountLimit'
        prompts_api_keys_enabled:
          type: boolean
        prompts_enabled:
          type: boolean
        prompts_expire:
          type:
            - string
            - 'null'
        prompts_status:
          $ref: '#/components/schemas/PromptsStatusEnum'
        prompts_warning:
          type:
            - string
            - 'null'
        results:
          $ref: '#/components/schemas/CountLimit'
        trial_days:
          type: integer
        users:
          $ref: '#/components/schemas/CountLimit'
      required:
        - export_storages
        - import_storages
        - is_license_expired
        - is_license_warning
        - is_prompts_expire
        - is_prompts_warning
        - license_expires
        - license_issued
        - license_warning
        - organization_is_active
        - projects
        - prompts_api_keys_enabled
        - prompts_enabled
        - prompts_expire
        - prompts_status
        - prompts_warning
        - results
        - trial_days
        - users
      title: BillingChecks
    BillingFlags:
      type: object
      properties:
        activated_at:
          type:
            - string
            - 'null'
          format: date-time
        allow_activity_log:
          type: boolean
        allow_ai:
          type: boolean
        allow_ask_ai:
          type: boolean
        allow_data_credentials:
          type: boolean
        allow_invite_people:
          type: boolean
        allow_invite_project_experts:
          type: boolean
        allow_nda:
          type: boolean
        allow_organization_webhooks:
          type: boolean
        allow_reviewing:
          type: boolean
        allow_sso:
          type: boolean
        allow_storage_proxy:
          type: boolean
        automax_enabled:
          type: boolean
        automax_token_exists:
          type: boolean
        cloud_instance:
          type: boolean
        disable_members_page:
          type: boolean
        disable_project_imports:
          type: boolean
        early_adopter:
          type: boolean
        email_configured:
          type: boolean
        embed_domains:
          type: array
          items:
            type: object
            additionalProperties:
              description: Any type
        embed_enabled:
          type: boolean
        embed_settings:
          type: object
          additionalProperties:
            description: Any type
        manual_role_management:
          type: boolean
        manual_workspace_management:
          type: boolean
        secure_mode:
          type: boolean
        storage_persistence:
          type: boolean
        white_label_id:
          type:
            - string
            - 'null'
      required:
        - activated_at
        - allow_activity_log
        - allow_ai
        - allow_ask_ai
        - allow_data_credentials
        - allow_invite_people
        - allow_invite_project_experts
        - allow_nda
        - allow_organization_webhooks
        - allow_reviewing
        - allow_sso
        - allow_storage_proxy
        - automax_enabled
        - automax_token_exists
        - cloud_instance
        - disable_members_page
        - disable_project_imports
        - early_adopter
        - email_configured
        - embed_enabled
        - manual_role_management
        - manual_workspace_management
        - secure_mode
        - storage_persistence
        - white_label_id
      title: BillingFlags
    BillingInfoResponse:
      type: object
      properties:
        billing_checks:
          $ref: '#/components/schemas/BillingChecks'
        billing_flags:
          $ref: '#/components/schemas/BillingFlags'
      required:
        - billing_checks
        - billing_flags
      title: BillingInfoResponse
    Comment:
      type: object
      properties:
        annotation:
          type:
            - integer
            - 'null'
        classifications:
          oneOf:
            - description: Any type
            - type: 'null'
          description: Classifications applied by a reviewer or annotator
        created_at:
          type: string
          format: date-time
          description: Creation time
        created_by:
          type: integer
          description: User who made this comment
        draft:
          type:
            - integer
            - 'null'
        id:
          type: integer
        is_resolved:
          type: boolean
          description: True if the comment is resolved
        project:
          type:
            - integer
            - 'null'
        region_ref:
          oneOf:
            - description: Any type
            - type: 'null'
          description: >-
            Set if this comment is related to a specific part of the annotation. Normally contains region ID and control
            name.
        resolved_at:
          type:
            - string
            - 'null'
          format: date-time
          description: Resolving time
        state:
          type: string
        task:
          type:
            - integer
            - 'null'
        text:
          type:
            - string
            - 'null'
          description: Reviewer or annotator comment
        updated_at:
          type: string
          format: date-time
          description: Last updated time
      required:
        - created_at
        - created_by
        - id
        - project
        - resolved_at
        - state
        - task
        - updated_at
      description: |-
        Comment Serializer with FSM state support.

        Note: The 'state' field will be populated from the queryset annotation
        if present, preventing N+1 queries. Use .with_state() on your queryset.

        The state field display is controlled by both:
        - fflag_feat_fit_568_finite_state_management (FSM background calculations)
        - fflag_feat_fit_710_fsm_state_fields (state field display in APIs)
      title: Comment
    OnboardingStateEnum:
      type: string
      enum:
        - not_started
        - signup
        - trial_signup
        - first_tutorial
        - in_app_guidance
        - complete
      description: |-
        * `not_started` - Not Started
        * `signup` - Signup
        * `trial_signup` - Trial Signup
        * `first_tutorial` - First Tutorial
        * `in_app_guidance` - In App Guidance
        * `complete` - Complete
      title: OnboardingStateEnum
    TrialRoleEnum:
      type: string
      enum:
        - annotator
        - annotator_team_manager
        - business_analyst
        - business_or_data_team_leadership
        - data_engineer_platform_engineer
        - data_scientist
        - other
      description: |-
        * `annotator` - Annotator
        * `annotator_team_manager` - Annotator Team Manager
        * `business_analyst` - Business Analyst
        * `business_or_data_team_leadership` - Business Or Data Team Leadership
        * `data_engineer_platform_engineer` - Data Engineer Platform Engineer
        * `data_scientist` - Data Scientist
        * `other` - Other
      title: TrialRoleEnum
    LseFields:
      type: object
      properties:
        email_notification_settings:
          type: string
        invite_activated:
          type:
            - boolean
            - 'null'
        invite_expired:
          type: string
        invite_expired_at:
          type: string
        invited_at:
          type:
            - string
            - 'null'
          format: date-time
        invited_by:
          type:
            - integer
            - 'null'
        onboarding_state:
          oneOf:
            - $ref: '#/components/schemas/OnboardingStateEnum'
            - type: 'null'
          description: |-
            The current stage of user onboarding

            * `not_started` - Not Started
            * `signup` - Signup
            * `trial_signup` - Trial Signup
            * `first_tutorial` - First Tutorial
            * `in_app_guidance` - In App Guidance
            * `complete` - Complete
        social_auth_finished:
          type:
            - boolean
            - 'null'
          description: Is user finished social authentication
        trial_company:
          type:
            - string
            - 'null'
        trial_experience_labeling:
          type:
            - string
            - 'null'
        trial_license_enterprise:
          type:
            - boolean
            - 'null'
        trial_models_in_production:
          type:
            - string
            - 'null'
        trial_role:
          oneOf:
            - $ref: '#/components/schemas/TrialRoleEnum'
            - type: 'null'
      required:
        - email_notification_settings
        - invite_expired
        - invite_expired_at
      title: LseFields
    OrganizationMembership:
      type: object
      properties:
        active:
          type: string
        organization_id:
          type: integer
          description: Organization ID
        role:
          type: string
      required:
        - active
        - organization_id
        - role
      title: OrganizationMembership
    LseUser:
      type: object
      properties:
        active_organization:
          type:
            - integer
            - 'null'
        active_organization_meta:
          type: string
        allow_newsletters:
          type:
            - boolean
            - 'null'
          description: Allow sending newsletters to user
        avatar:
          type: string
        custom_hotkeys:
          oneOf:
            - description: Any type
            - type: 'null'
          description: Custom keyboard shortcuts configuration for the user interface
        date_joined:
          type: string
          format: date-time
        email:
          type: string
          format: email
        first_name:
          type: string
        id:
          type: integer
        initials:
          type: string
          default: '?'
        last_activity:
          type: string
          format: date-time
        last_name:
          type: string
        lse_fields:
          $ref: '#/components/schemas/LseFields'
        org_membership:
          type: array
          items:
            $ref: '#/components/schemas/OrganizationMembership'
        organization_membership:
          $ref: '#/components/schemas/OrganizationMembership'
        pause:
          type: string
        phone:
          type: string
        username:
          type: string
      required:
        - active_organization_meta
        - avatar
        - id
        - initials
        - last_activity
        - lse_fields
        - org_membership
        - organization_membership
        - pause
        - username
      description: |-
        A ModelSerializer that takes additional arguments for
        "fields", "omit" and "expand" in order to
        control which fields are displayed, and whether to replace simple
        values with complex, nested serializations
      title: LseUser
    CommentSerializerWithExpandedUser:
      type: object
      properties:
        annotation:
          type:
            - integer
            - 'null'
        classifications:
          oneOf:
            - description: Any type
            - type: 'null'
          description: Classifications applied by a reviewer or annotator
        created_at:
          type: string
          format: date-time
          description: Creation time
        created_by:
          $ref: '#/components/schemas/LseUser'
        draft:
          type:
            - integer
            - 'null'
        id:
          type: integer
        is_resolved:
          type: boolean
          description: True if the comment is resolved
        project:
          type:
            - integer
            - 'null'
        region_ref:
          oneOf:
            - description: Any type
            - type: 'null'
          description: >-
            Set if this comment is related to a specific part of the annotation. Normally contains region ID and control
            name.
        resolved_at:
          type:
            - string
            - 'null'
          format: date-time
          description: Resolving time
        state:
          type: string
        task:
          type:
            - integer
            - 'null'
        text:
          type:
            - string
            - 'null'
          description: Reviewer or annotator comment
        updated_at:
          type: string
          format: date-time
          description: Last updated time
      required:
        - created_at
        - created_by
        - id
        - project
        - resolved_at
        - state
        - task
        - updated_at
      description: |-
        Comment Serializer with FSM state support.

        Note: The 'state' field will be populated from the queryset annotation
        if present, preventing N+1 queries. Use .with_state() on your queryset.

        The state field display is controlled by both:
        - fflag_feat_fit_568_finite_state_management (FSM background calculations)
        - fflag_feat_fit_710_fsm_state_fields (state field display in APIs)
      title: CommentSerializerWithExpandedUser
    MaybeExpandedComment:
      oneOf:
        - $ref: '#/components/schemas/Comment'
        - $ref: '#/components/schemas/CommentSerializerWithExpandedUser'
      title: MaybeExpandedComment
    CommentRequest:
      type: object
      properties:
        annotation:
          type:
            - integer
            - 'null'
        classifications:
          oneOf:
            - description: Any type
            - type: 'null'
          description: Classifications applied by a reviewer or annotator
        draft:
          type:
            - integer
            - 'null'
        is_resolved:
          type: boolean
          description: True if the comment is resolved
        region_ref:
          oneOf:
            - description: Any type
            - type: 'null'
          description: >-
            Set if this comment is related to a specific part of the annotation. Normally contains region ID and control
            name.
        text:
          type:
            - string
            - 'null'
          description: Reviewer or annotator comment
      description: |-
        Comment Serializer with FSM state support.

        Note: The 'state' field will be populated from the queryset annotation
        if present, preventing N+1 queries. Use .with_state() on your queryset.

        The state field display is controlled by both:
        - fflag_feat_fit_568_finite_state_management (FSM background calculations)
        - fflag_feat_fit_710_fsm_state_fields (state field display in APIs)
      title: CommentRequest
    PatchedCommentRequest:
      type: object
      properties:
        annotation:
          type:
            - integer
            - 'null'
        classifications:
          oneOf:
            - description: Any type
            - type: 'null'
          description: Classifications applied by a reviewer or annotator
        draft:
          type:
            - integer
            - 'null'
        is_resolved:
          type: boolean
          description: True if the comment is resolved
        region_ref:
          oneOf:
            - description: Any type
            - type: 'null'
          description: >-
            Set if this comment is related to a specific part of the annotation. Normally contains region ID and control
            name.
        text:
          type:
            - string
            - 'null'
          description: Reviewer or annotator comment
      description: |-
        Comment Serializer with FSM state support.

        Note: The 'state' field will be populated from the queryset annotation
        if present, preventing N+1 queries. Use .with_state() on your queryset.

        The state field display is controlled by both:
        - fflag_feat_fit_568_finite_state_management (FSM background calculations)
        - fflag_feat_fit_710_fsm_state_fields (state field display in APIs)
      title: PatchedCommentRequest
    LseUserAPI:
      type: object
      properties:
        active_organization:
          type:
            - integer
            - 'null'
        active_organization_meta:
          type: string
        allow_newsletters:
          type:
            - boolean
            - 'null'
          description: Allow sending newsletters to user
        avatar:
          type: string
        custom_hotkeys:
          oneOf:
            - description: Any type
            - type: 'null'
          description: Custom keyboard shortcuts configuration for the user interface
        date_joined:
          type: string
          format: date-time
        email:
          type: string
          format: email
        first_name:
          type: string
        id:
          type: integer
        initials:
          type: string
          default: '?'
        last_activity:
          type: string
          format: date-time
        last_name:
          type: string
        org_membership:
          type: array
          items:
            $ref: '#/components/schemas/OrganizationMembership'
        organization_membership:
          $ref: '#/components/schemas/OrganizationMembership'
        phone:
          type: string
        username:
          type: string
      required:
        - active_organization_meta
        - avatar
        - id
        - initials
        - last_activity
        - org_membership
        - organization_membership
        - username
      description: |-
        A ModelSerializer that takes additional arguments for
        "fields", "omit" and "expand" in order to
        control which fields are displayed, and whether to replace simple
        values with complex, nested serializations
      title: LseUserAPI
    PatchedLseUserSerializerUpdateRequest:
      type: object
      properties:
        active_organization:
          type:
            - integer
            - 'null'
        allow_newsletters:
          type:
            - boolean
            - 'null'
          description: Allow sending newsletters to user
        custom_hotkeys:
          oneOf:
            - description: Any type
            - type: 'null'
          description: Custom keyboard shortcuts configuration for the user interface
        date_joined:
          type: string
          format: date-time
        email_notification_settings:
          description: Any type
        first_name:
          type: string
        is_email_verified:
          type:
            - boolean
            - 'null'
        last_name:
          type: string
        onboarding_state:
          type:
            - string
            - 'null'
        password:
          type: string
        phone:
          type: string
        username:
          type: string
      description: |-
        A ModelSerializer that takes additional arguments for
        "fields", "omit" and "expand" in order to
        control which fields are displayed, and whether to replace simple
        values with complex, nested serializations
      title: PatchedLseUserSerializerUpdateRequest
    Hotkeys:
      type: object
      properties:
        custom_hotkeys:
          type: object
          additionalProperties:
            description: Any type
      required:
        - custom_hotkeys
      title: Hotkeys
    PatchedHotkeysRequest:
      type: object
      properties:
        custom_hotkeys:
          type: object
          additionalProperties:
            description: Any type
      title: PatchedHotkeysRequest
    users_reset_token_Response_201:
      type: object
      properties:
        token:
          type: string
      title: users_reset_token_Response_201
    users_get_token_Response_200:
      type: object
      properties:
        detail:
          type: string
      title: users_get_token_Response_200
    WhoAmILseFields:
      type: object
      properties:
        active_organization_external_id:
          type:
            - string
            - 'null'
        email_notification_settings:
          type: string
        invite_activated:
          type:
            - boolean
            - 'null'
        invite_expired:
          type: string
        invite_expired_at:
          type: string
        invited_at:
          type:
            - string
            - 'null'
          format: date-time
        invited_by:
          type:
            - integer
            - 'null'
        onboarding_state:
          oneOf:
            - $ref: '#/components/schemas/OnboardingStateEnum'
            - type: 'null'
          description: |-
            The current stage of user onboarding

            * `not_started` - Not Started
            * `signup` - Signup
            * `trial_signup` - Trial Signup
            * `first_tutorial` - First Tutorial
            * `in_app_guidance` - In App Guidance
            * `complete` - Complete
        social_auth_finished:
          type:
            - boolean
            - 'null'
          description: Is user finished social authentication
        trial_company:
          type:
            - string
            - 'null'
        trial_experience_labeling:
          type:
            - string
            - 'null'
        trial_license_enterprise:
          type:
            - boolean
            - 'null'
        trial_models_in_production:
          type:
            - string
            - 'null'
        trial_role:
          oneOf:
            - $ref: '#/components/schemas/TrialRoleEnum'
            - type: 'null'
      required:
        - active_organization_external_id
        - email_notification_settings
        - invite_expired
        - invite_expired_at
      title: WhoAmILseFields
    WhoAmIUser:
      type: object
      properties:
        active_organization:
          type:
            - integer
            - 'null'
        active_organization_meta:
          type: string
        allow_newsletters:
          type:
            - boolean
            - 'null'
          description: Allow sending newsletters to user
        avatar:
          type: string
        custom_hotkeys:
          oneOf:
            - description: Any type
            - type: 'null'
          description: Custom keyboard shortcuts configuration for the user interface
        date_joined:
          type: string
          format: date-time
        email:
          type: string
          format: email
        first_name:
          type: string
        id:
          type: integer
        initials:
          type: string
          default: '?'
        last_activity:
          type: string
          format: date-time
        last_name:
          type: string
        lse_fields:
          $ref: '#/components/schemas/WhoAmILseFields'
        org_membership:
          type: array
          items:
            $ref: '#/components/schemas/OrganizationMembership'
        organization_membership:
          $ref: '#/components/schemas/OrganizationMembership'
        pause:
          type: string
        permissions:
          type: array
          items:
            type: string
        phone:
          type: string
        social_accounts:
          type: array
          items:
            type: object
            additionalProperties:
              description: Any type
        username:
          type: string
      required:
        - active_organization_meta
        - avatar
        - id
        - initials
        - last_activity
        - lse_fields
        - org_membership
        - organization_membership
        - pause
        - permissions
        - social_accounts
        - username
      description: |-
        A ModelSerializer that takes additional arguments for
        "fields", "omit" and "expand" in order to
        control which fields are displayed, and whether to replace simple
        values with complex, nested serializations
      title: WhoAmIUser
    AgreementV2BackfillTriggerRequestRequest:
      type: object
      properties:
        all_projects:
          type:
            - boolean
            - 'null'
          description: Set to true to trigger a full org backfill (cancels in-flight jobs and queues all remaining projects).
        num_projects:
          type:
            - integer
            - 'null'
          description: Queue at most this many projects per call (batched mode).
        project_id:
          type:
            - integer
            - 'null'
          description: Backfill a single specific project.
      description: |-
        Request body for POST /api/dimensions/backfill/

        Exactly one of the three mode fields must be provided:

        - project_id:   backfill a single specific project.
        - num_projects: batched org backfill — queue the next N not-yet-started projects
                        (ascending project ID order), leaving in-flight jobs untouched.
                        Check `projects_remaining` in the response and repeat until it reaches 0.
        - all_projects: full org backfill — cancel all in-flight jobs and queue every
                        remaining non-completed project at once.
      title: AgreementV2BackfillTriggerRequestRequest
    AgreementV2BackfillTriggerResponse:
      type: object
      properties:
        jobs:
          type: array
          items:
            type: object
            additionalProperties:
              description: Any type
          description: 'Queued jobs: [{job_id, rq_job_id, project_id}]'
        jobs_queued:
          type: integer
          description: Number of jobs queued in this request
        message:
          type: string
        organization_id:
          type: integer
        projects_remaining:
          type: integer
          description: >-
            Projects not yet started and not currently in-flight. Relevant when num_projects is used — call POST again
            until this reaches 0.
        projects_skipped:
          type: integer
          description: Projects skipped because they already have a completed backfill
      required:
        - jobs
        - jobs_queued
        - message
        - organization_id
        - projects_remaining
        - projects_skipped
      description: Response from POST /api/dimensions/backfill/
      title: AgreementV2BackfillTriggerResponse
    AgreementV2BackfillCancelResponse:
      type: object
      properties:
        cancelled_count:
          type: integer
          description: Number of jobs successfully cancelled
        message:
          type: string
      required:
        - cancelled_count
        - message
      description: Response from DELETE /api/dimensions/backfill/
      title: AgreementV2BackfillCancelResponse
    AgreementV2BackfillJobStatusEnum:
      type: string
      enum:
        - PENDING
        - QUEUED
        - RUNNING
        - COMPLETED
        - FAILED
      description: |-
        * `PENDING` - Pending
        * `QUEUED` - Queued
        * `RUNNING` - Running
        * `COMPLETED` - Completed
        * `FAILED` - Failed
      title: AgreementV2BackfillJobStatusEnum
    AgreementV2BackfillJob:
      type: object
      properties:
        completed_at:
          type:
            - string
            - 'null'
          format: date-time
        created_at:
          type: string
          format: date-time
        error_message:
          type: string
          description: Error message if job failed
        job_id:
          type: integer
          description: Database ID of the backfill job
        progress_data:
          description: JSON data tracking job progress (matrices_created, errors, etc.)
        project_id:
          type:
            - integer
            - 'null'
          description: Optional specific project to backfill (if null, backfills entire organization)
        rq_job_id:
          type:
            - string
            - 'null'
          description: Redis queue job ID
        started_at:
          type:
            - string
            - 'null'
          format: date-time
        status:
          $ref: '#/components/schemas/AgreementV2BackfillJobStatusEnum'
          description: |-
            Current status of the backfill job

            * `PENDING` - Pending
            * `QUEUED` - Queued
            * `RUNNING` - Running
            * `COMPLETED` - Completed
            * `FAILED` - Failed
        triggered_by:
          type: string
          description: User who triggered the backfill
      required:
        - created_at
        - job_id
        - project_id
        - rq_job_id
        - triggered_by
      description: |-
        Serializes a DimensionsBackfillJob model instance.
        Used by the list endpoint and as the base for the status endpoint.
      title: AgreementV2BackfillJob
    DimensionList:
      type: object
      properties:
        allowed_metrics_with_params:
          type: string
          description: Dictionary mapping metric type names to their parameter schemas.
        control_tag:
          type:
            - string
            - 'null'
          description: Name of the control tag this dimension is extracted from. Set automatically for system dimensions.
        created_at:
          type: string
          format: date-time
        description:
          type: string
          description: Human-readable description of what this dimension represents
        extraction_method:
          type: string
          description: Method used to extract values from annotation JSON
        extraction_method_params:
          description: >-
            Parameters specific to the extraction method. See metrics.py for available extraction methods and their
            parameters.
        id:
          type: integer
        is_active:
          type: boolean
          description: Whether this dimension is used in agreement calculations.
        is_user_defined:
          type: boolean
          description: Whether this dimension was manually created by a user. System-generated dimensions have this set to False.
        metric_params:
          description: Parameters for the metric. See metrics.py for available metrics and their parameters.
        metric_type:
          type: string
          description: Strategy for comparing dimension values across annotators
        name:
          type: string
          description: Unique identifier for this dimension within the project
        order:
          type: integer
          description: Display order within the project
        project:
          type: integer
          description: Project this dimension belongs to
        updated_at:
          type: string
          format: date-time
      required:
        - allowed_metrics_with_params
        - control_tag
        - created_at
        - description
        - extraction_method
        - extraction_method_params
        - id
        - is_active
        - is_user_defined
        - metric_params
        - metric_type
        - name
        - order
        - project
        - updated_at
      description: |-
        Lightweight serializer for listing dimensions.

        Excludes detailed parameters for performance in list views.
      title: DimensionList
    Dimension:
      type: object
      properties:
        allowed_metrics_with_params:
          type: string
          description: Dictionary mapping metric type names to their parameter schemas.
        control_tag:
          type:
            - string
            - 'null'
          description: Name of the control tag this dimension is extracted from. Set automatically for system dimensions.
        created_at:
          type: string
          format: date-time
        created_by:
          type:
            - integer
            - 'null'
          description: User who created this dimension
        description:
          type: string
          description: Human-readable description of what this dimension represents
        extraction_method:
          type: string
          description: Method used to extract values from annotation JSON
        extraction_method_params:
          description: >-
            Parameters specific to the extraction method. See metrics.py for available extraction methods and their
            parameters.
        id:
          type: integer
        is_active:
          type: boolean
          description: Whether this dimension is used in agreement calculations.
        is_user_defined:
          type: boolean
          description: Whether this dimension was manually created by a user. System-generated dimensions have this set to False.
        metric_params:
          description: Parameters for the metric. See metrics.py for available metrics and their parameters.
        metric_type:
          type: string
          description: Strategy for comparing dimension values across annotators
        name:
          type: string
          description: Unique identifier for this dimension within the project
        order:
          type: integer
          description: Display order within the project
        project:
          type: integer
          description: Project this dimension belongs to
        updated_at:
          type: string
          format: date-time
      required:
        - allowed_metrics_with_params
        - control_tag
        - created_at
        - created_by
        - id
        - name
        - project
        - updated_at
      description: |-
        Serializer for Dimension model.

        Handles serialization and validation for CRUD operations on dimensions.
        The project and created_by fields are set automatically from the request context.
      title: Dimension
    ApiDmActionsGetResponsesContentApplicationJsonSchemaItemsDialogFormItems:
      type: object
      properties: {}
      title: ApiDmActionsGetResponsesContentApplicationJsonSchemaItemsDialogFormItems
    ApiDmActionsGetResponsesContentApplicationJsonSchemaItemsDialog:
      type: object
      properties:
        form:
          type:
            - array
            - 'null'
          items:
            $ref: '#/components/schemas/ApiDmActionsGetResponsesContentApplicationJsonSchemaItemsDialogFormItems'
        text:
          type:
            - string
            - 'null'
        title:
          type:
            - string
            - 'null'
        type:
          type:
            - string
            - 'null'
      title: ApiDmActionsGetResponsesContentApplicationJsonSchemaItemsDialog
    ApiDmActionsGetResponsesContentApplicationJsonSchemaItemsPermission:
      oneOf:
        - type: string
        - type: array
          items:
            type: string
      title: ApiDmActionsGetResponsesContentApplicationJsonSchemaItemsPermission
    ApiDmActionsGetResponsesContentApplicationJsonSchemaItems:
      type: object
      properties:
        dialog:
          $ref: '#/components/schemas/ApiDmActionsGetResponsesContentApplicationJsonSchemaItemsDialog'
        experimental:
          type: boolean
        id:
          type: string
        order:
          type: integer
        permission:
          $ref: '#/components/schemas/ApiDmActionsGetResponsesContentApplicationJsonSchemaItemsPermission'
        title:
          type: string
      title: ApiDmActionsGetResponsesContentApplicationJsonSchemaItems
    ApiDmActionsPostParametersId:
      type: string
      enum:
        - delete_annotators
        - delete_ground_truths
        - delete_reviewers
        - delete_tasks
        - delete_tasks_annotations
        - delete_tasks_predictions
        - delete_tasks_reviews
        - predictions_to_annotations
        - remove_duplicates
        - retrieve_tasks_predictions
      title: ApiDmActionsPostParametersId
    ApiDmActionsPostRequestBodyContentApplicationJsonSchemaFiltersConjunction:
      type: string
      enum:
        - or
        - and
      description: >-
        Logical conjunction for the filters. This conjunction (either "or" or "and") will be applied to all items in the
        filters list. It is not possible to combine "or" and "and" within one list of filters. All filters will be
        either combined with "or" or with "and", but not a mix of both.
      title: ApiDmActionsPostRequestBodyContentApplicationJsonSchemaFiltersConjunction
    ApiDmActionsPostRequestBodyContentApplicationJsonSchemaFiltersItemsItemsFilter:
      type: string
      enum:
        - filter:tasks:agreement
        - filter:tasks:annotations_results
        - filter:tasks:annotators
        - filter:tasks:cancelled_annotations
        - filter:tasks:comments
        - filter:tasks:completed_at
        - filter:tasks:created_at
        - filter:tasks:file_upload
        - filter:tasks:ground_truth
        - filter:tasks:id
        - filter:tasks:inner_id
        - filter:tasks:predictions_model_versions
        - filter:tasks:predictions_results
        - filter:tasks:predictions_score
        - filter:tasks:reviewed
        - filter:tasks:reviewers
        - filter:tasks:reviews_accepted
        - filter:tasks:reviews_rejected
        - filter:tasks:total_annotations
        - filter:tasks:total_predictions
        - filter:tasks:unresolved_comment_count
        - filter:tasks:updated_at
      description: >-
        Filter identifier, it should start with `filter:tasks:` prefix, e.g. `filter:tasks:agreement`. For `task.data`
        fields it may look like `filter:tasks:data.field_name`. If you need more info about columns, check the [Get data
        manager columns](#tag/Data-Manager/operation/api_dm_columns_list) API endpoint. Possible
        values:<br><li>`filter:tasks:agreement`<br> (Number) Agreement for annotation results for a specific task
        (Enterprise only)</li><br><li>`filter:tasks:annotations_results`<br> (String) Annotation results for the
        tasks</li><br><li>`filter:tasks:annotators`<br> (List) Annotators that completed the task (Community). Can
        include assigned annotators (Enterprise only). Important note: the filter `type` should be List, but the filter
        `value` is integer</li><br><li>`filter:tasks:cancelled_annotations`<br> (Number) Number of cancelled or skipped
        annotations for the task</li><br><li>`filter:tasks:comments`<br> (Number) Number of comments in a
        task</li><br><li>`filter:tasks:completed_at`<br> (Datetime) Time when a task was fully
        annotated</li><br><li>`filter:tasks:created_at`<br> (Datetime) Time the task was created
        at</li><br><li>`filter:tasks:file_upload`<br> (String) Name of the file uploaded to create the
        tasks</li><br><li>`filter:tasks:ground_truth`<br> (Boolean) Ground truth status of the
        tasks</li><br><li>`filter:tasks:id`<br> (Number) Task ID</li><br><li>`filter:tasks:inner_id`<br> (Number) Task
        Inner ID, it starts from 1 for all projects</li><br><li>`filter:tasks:predictions_model_versions`<br> (String)
        Model version used for the predictions</li><br><li>`filter:tasks:predictions_results`<br> (String) Prediction
        results for the tasks</li><br><li>`filter:tasks:predictions_score`<br> (Number) Prediction score for the
        task</li><br><li>`filter:tasks:reviewed`<br> (Boolean) Whether the tasks have been reviewed (Enterprise
        only)</li><br><li>`filter:tasks:reviewers`<br> (String) Reviewers that reviewed the task, or assigned reviewers
        (Enterprise only). Important note: the filter `type` should be List, but the filter `value` is
        integer</li><br><li>`filter:tasks:reviews_accepted`<br> (Number) Number of annotations accepted for a task in
        review (Enterprise only)</li><br><li>`filter:tasks:reviews_rejected`<br> (Number) Number of annotations rejected
        for a task in review (Enterprise only)</li><br><li>`filter:tasks:total_annotations`<br> (Number) Total number of
        annotations on a task</li><br><li>`filter:tasks:total_predictions`<br> (Number) Total number of predictions for
        the task</li><br><li>`filter:tasks:unresolved_comment_count`<br> (Number) Number of unresolved comments in a
        task</li><br><li>`filter:tasks:updated_at`<br> (Datetime) Time the task was updated at (e.g. new annotation was
        created, review added, etc)</li>
      title: ApiDmActionsPostRequestBodyContentApplicationJsonSchemaFiltersItemsItemsFilter
    ApiDmActionsPostRequestBodyContentApplicationJsonSchemaFiltersItemsItemsOperator:
      type: string
      enum:
        - contains
        - ends_with
        - equal
        - exists
        - greater
        - greater_or_equal
        - in
        - less
        - less_or_equal
        - not_contains
        - not_equal
        - not_exists
        - not_in
        - starts_with
      description: >-
        Filter operator. Possible values:<br><li>`contains`<br> Contains</li><br><li>`ends_with`<br> Ends
        with</li><br><li>`equal`<br> Equal to</li><br><li>`exists`<br> Exists</li><br><li>`greater`<br> Greater
        than</li><br><li>`greater_or_equal`<br> Greater than or equal to</li><br><li>`in`<br> Is between min and max
        values, so the filter `value` should be e.g. `{"min": 1, "max": 7}`</li><br><li>`less`<br> Less
        than</li><br><li>`less_or_equal`<br> Less than or equal to</li><br><li>`not_contains`<br> Does not
        contain</li><br><li>`not_equal`<br> Not equal to</li><br><li>`not_exists`<br> Does not
        exist</li><br><li>`not_in`<br> Is not between min and max values, so the filter `value` should be e.g. `{"min":
        1, "max": 7}`</li><br><li>`starts_with`<br> Starts with</li>
      title: ApiDmActionsPostRequestBodyContentApplicationJsonSchemaFiltersItemsItemsOperator
    ApiDmActionsPostRequestBodyContentApplicationJsonSchemaFiltersItemsItemsValue:
      oneOf:
        - type: string
        - type: integer
        - type: number
          format: double
        - type: boolean
        - type: object
          additionalProperties:
            description: Any type
        - type: object
          additionalProperties:
            description: Any type
      description: Value to filter by
      title: ApiDmActionsPostRequestBodyContentApplicationJsonSchemaFiltersItemsItemsValue
    ApiDmActionsPostRequestBodyContentApplicationJsonSchemaFiltersItemsItems:
      type: object
      properties:
        filter:
          $ref: '#/components/schemas/ApiDmActionsPostRequestBodyContentApplicationJsonSchemaFiltersItemsItemsFilter'
          description: >-
            Filter identifier, it should start with `filter:tasks:` prefix, e.g. `filter:tasks:agreement`. For
            `task.data` fields it may look like `filter:tasks:data.field_name`. If you need more info about columns,
            check the [Get data manager columns](#tag/Data-Manager/operation/api_dm_columns_list) API endpoint. Possible
            values:<br><li>`filter:tasks:agreement`<br> (Number) Agreement for annotation results for a specific task
            (Enterprise only)</li><br><li>`filter:tasks:annotations_results`<br> (String) Annotation results for the
            tasks</li><br><li>`filter:tasks:annotators`<br> (List) Annotators that completed the task (Community). Can
            include assigned annotators (Enterprise only). Important note: the filter `type` should be List, but the
            filter `value` is integer</li><br><li>`filter:tasks:cancelled_annotations`<br> (Number) Number of cancelled
            or skipped annotations for the task</li><br><li>`filter:tasks:comments`<br> (Number) Number of comments in a
            task</li><br><li>`filter:tasks:completed_at`<br> (Datetime) Time when a task was fully
            annotated</li><br><li>`filter:tasks:created_at`<br> (Datetime) Time the task was created
            at</li><br><li>`filter:tasks:file_upload`<br> (String) Name of the file uploaded to create the
            tasks</li><br><li>`filter:tasks:ground_truth`<br> (Boolean) Ground truth status of the
            tasks</li><br><li>`filter:tasks:id`<br> (Number) Task ID</li><br><li>`filter:tasks:inner_id`<br> (Number)
            Task Inner ID, it starts from 1 for all projects</li><br><li>`filter:tasks:predictions_model_versions`<br>
            (String) Model version used for the predictions</li><br><li>`filter:tasks:predictions_results`<br> (String)
            Prediction results for the tasks</li><br><li>`filter:tasks:predictions_score`<br> (Number) Prediction score
            for the task</li><br><li>`filter:tasks:reviewed`<br> (Boolean) Whether the tasks have been reviewed
            (Enterprise only)</li><br><li>`filter:tasks:reviewers`<br> (String) Reviewers that reviewed the task, or
            assigned reviewers (Enterprise only). Important note: the filter `type` should be List, but the filter
            `value` is integer</li><br><li>`filter:tasks:reviews_accepted`<br> (Number) Number of annotations accepted
            for a task in review (Enterprise only)</li><br><li>`filter:tasks:reviews_rejected`<br> (Number) Number of
            annotations rejected for a task in review (Enterprise only)</li><br><li>`filter:tasks:total_annotations`<br>
            (Number) Total number of annotations on a task</li><br><li>`filter:tasks:total_predictions`<br> (Number)
            Total number of predictions for the task</li><br><li>`filter:tasks:unresolved_comment_count`<br> (Number)
            Number of unresolved comments in a task</li><br><li>`filter:tasks:updated_at`<br> (Datetime) Time the task
            was updated at (e.g. new annotation was created, review added, etc)</li>
        operator:
          $ref: '#/components/schemas/ApiDmActionsPostRequestBodyContentApplicationJsonSchemaFiltersItemsItemsOperator'
          description: >-
            Filter operator. Possible values:<br><li>`contains`<br> Contains</li><br><li>`ends_with`<br> Ends
            with</li><br><li>`equal`<br> Equal to</li><br><li>`exists`<br> Exists</li><br><li>`greater`<br> Greater
            than</li><br><li>`greater_or_equal`<br> Greater than or equal to</li><br><li>`in`<br> Is between min and max
            values, so the filter `value` should be e.g. `{"min": 1, "max": 7}`</li><br><li>`less`<br> Less
            than</li><br><li>`less_or_equal`<br> Less than or equal to</li><br><li>`not_contains`<br> Does not
            contain</li><br><li>`not_equal`<br> Not equal to</li><br><li>`not_exists`<br> Does not
            exist</li><br><li>`not_in`<br> Is not between min and max values, so the filter `value` should be e.g.
            `{"min": 1, "max": 7}`</li><br><li>`starts_with`<br> Starts with</li>
        type:
          type: string
          description: >-
            Type of the filter value. Possible values:<br><li>`Boolean`<br> Boolean</li><br><li>`Datetime`<br> Datetime
            string in `strftime('%Y-%m-%dT%H:%M:%S.%fZ')` format</li><br><li>`List`<br> List of
            items</li><br><li>`Number`<br> Float or Integer</li><br><li>`String`<br> String</li><br><li>`Unknown`<br>
            Unknown is explicitly converted to string format</li>
        value:
          $ref: '#/components/schemas/ApiDmActionsPostRequestBodyContentApplicationJsonSchemaFiltersItemsItemsValue'
          description: Value to filter by
      required:
        - filter
        - operator
        - type
        - value
      title: ApiDmActionsPostRequestBodyContentApplicationJsonSchemaFiltersItemsItems
    ApiDmActionsPostRequestBodyContentApplicationJsonSchemaFilters:
      type: object
      properties:
        conjunction:
          $ref: '#/components/schemas/ApiDmActionsPostRequestBodyContentApplicationJsonSchemaFiltersConjunction'
          description: >-
            Logical conjunction for the filters. This conjunction (either "or" or "and") will be applied to all items in
            the filters list. It is not possible to combine "or" and "and" within one list of filters. All filters will
            be either combined with "or" or with "and", but not a mix of both.
        items:
          type: array
          items:
            $ref: '#/components/schemas/ApiDmActionsPostRequestBodyContentApplicationJsonSchemaFiltersItemsItems'
          description: List of filter items
      required:
        - conjunction
        - items
      description: >-
        Filters to apply on tasks. You can use [the helper class `Filters` from this
        page](https://labelstud.io/sdk/data_manager.html) to create Data Manager Filters.<br>Example: `{"conjunction":
        "or", "items": [{"filter": "filter:tasks:completed_at", "operator": "greater", "type": "Datetime", "value":
        "2021-01-01T00:00:00.000Z"}]}`
      title: ApiDmActionsPostRequestBodyContentApplicationJsonSchemaFilters
    ApiDmActionsPostRequestBodyContentApplicationJsonSchemaOrderingItems:
      type: string
      enum:
        - tasks:agreement
        - tasks:annotations_results
        - tasks:annotators
        - tasks:cancelled_annotations
        - tasks:comments
        - tasks:completed_at
        - tasks:created_at
        - tasks:file_upload
        - tasks:ground_truth
        - tasks:id
        - tasks:inner_id
        - tasks:predictions_model_versions
        - tasks:predictions_results
        - tasks:predictions_score
        - tasks:reviewed
        - tasks:reviewers
        - tasks:reviews_accepted
        - tasks:reviews_rejected
        - tasks:total_annotations
        - tasks:total_predictions
        - tasks:unresolved_comment_count
        - tasks:updated_at
      title: ApiDmActionsPostRequestBodyContentApplicationJsonSchemaOrderingItems
    ApiDmActionsPostRequestBodyContentApplicationJsonSchemaSelectedItems0:
      type: object
      properties:
        all:
          type: boolean
          description: No tasks are selected
        included:
          type: array
          items:
            type: integer
          description: List of included task IDs
      required:
        - all
      title: ApiDmActionsPostRequestBodyContentApplicationJsonSchemaSelectedItems0
    ApiDmActionsPostRequestBodyContentApplicationJsonSchemaSelectedItems1:
      type: object
      properties:
        all:
          type: boolean
          description: All tasks are selected
        excluded:
          type: array
          items:
            type: integer
          description: List of excluded task IDs
      required:
        - all
      title: ApiDmActionsPostRequestBodyContentApplicationJsonSchemaSelectedItems1
    ApiDmActionsPostRequestBodyContentApplicationJsonSchemaSelectedItems:
      oneOf:
        - $ref: '#/components/schemas/ApiDmActionsPostRequestBodyContentApplicationJsonSchemaSelectedItems0'
        - $ref: '#/components/schemas/ApiDmActionsPostRequestBodyContentApplicationJsonSchemaSelectedItems1'
      description: >-
        Task selection by IDs. If filters are applied, the selection will be applied to the filtered tasks.If "all" is
        `false`, `"included"` must be used. If "all" is `true`, `"excluded"` must be used.<br>Examples: `{"all": false,
        "included": [1, 2, 3]}` or `{"all": true, "excluded": [4, 5]}`
      title: ApiDmActionsPostRequestBodyContentApplicationJsonSchemaSelectedItems
    actions_create_Response_200:
      type: object
      properties: {}
      description: Empty response body
      title: actions_create_Response_200
    ChildFilter:
      type: object
      properties:
        column:
          type: string
          description: Field name
        id:
          type: integer
        index:
          type:
            - integer
            - 'null'
          description: Display order among root filters only
        operator:
          type: string
          description: Filter operator
        parent:
          type:
            - integer
            - 'null'
          description: Optional parent filter to create one-level hierarchy (child filters are AND-merged with parent)
        type:
          type: string
          description: Field type
        value:
          oneOf:
            - description: Any type
            - type: 'null'
          description: Filter value
      required:
        - column
        - id
        - operator
        - type
      title: ChildFilter
    Filter:
      type: object
      properties:
        child_filter:
          $ref: '#/components/schemas/ChildFilter'
        column:
          type: string
          description: Field name
        id:
          type: integer
        index:
          type:
            - integer
            - 'null'
          description: Display order among root filters only
        operator:
          type: string
          description: Filter operator
        parent:
          type:
            - integer
            - 'null'
          description: Optional parent filter to create one-level hierarchy (child filters are AND-merged with parent)
        type:
          type: string
          description: Field type
        value:
          oneOf:
            - description: Any type
            - type: 'null'
          description: Filter value
      required:
        - column
        - id
        - operator
        - type
      title: Filter
    FilterGroup:
      type: object
      properties:
        conjunction:
          type: string
          description: Type of conjunction
        filters:
          type: array
          items:
            $ref: '#/components/schemas/Filter'
        id:
          type: integer
      required:
        - conjunction
        - filters
        - id
      title: FilterGroup
    View:
      type: object
      properties:
        data:
          oneOf:
            - description: Any type
            - type: 'null'
          description: Custom view data
        filter_group:
          $ref: '#/components/schemas/FilterGroup'
        id:
          type: integer
        order:
          type:
            - integer
            - 'null'
          description: Position of the tab, starting at the left in data manager and increasing as the tabs go left to right
        ordering:
          oneOf:
            - description: Any type
            - type: 'null'
          description: Ordering parameters
        project:
          type: integer
          description: Project ID
        selected_items:
          oneOf:
            - description: Any type
            - type: 'null'
          description: Selected items
        user:
          type:
            - integer
            - 'null'
          description: User who made this view
      required:
        - id
        - project
      title: View
    ApiDmViewsPostRequestBodyContentApplicationJsonSchemaDataFiltersConjunction:
      type: string
      enum:
        - or
        - and
      description: >-
        Logical conjunction for the filters. This conjunction (either "or" or "and") will be applied to all items in the
        filters list. It is not possible to combine "or" and "and" within one list of filters. All filters will be
        either combined with "or" or with "and", but not a mix of both.
      title: ApiDmViewsPostRequestBodyContentApplicationJsonSchemaDataFiltersConjunction
    ApiDmViewsPostRequestBodyContentApplicationJsonSchemaDataFiltersItemsItemsFilter:
      type: string
      enum:
        - filter:tasks:agreement
        - filter:tasks:annotations_results
        - filter:tasks:annotators
        - filter:tasks:cancelled_annotations
        - filter:tasks:comments
        - filter:tasks:completed_at
        - filter:tasks:created_at
        - filter:tasks:file_upload
        - filter:tasks:ground_truth
        - filter:tasks:id
        - filter:tasks:inner_id
        - filter:tasks:predictions_model_versions
        - filter:tasks:predictions_results
        - filter:tasks:predictions_score
        - filter:tasks:reviewed
        - filter:tasks:reviewers
        - filter:tasks:reviews_accepted
        - filter:tasks:reviews_rejected
        - filter:tasks:total_annotations
        - filter:tasks:total_predictions
        - filter:tasks:unresolved_comment_count
        - filter:tasks:updated_at
      description: >-
        Filter identifier, it should start with `filter:tasks:` prefix, e.g. `filter:tasks:agreement`. For `task.data`
        fields it may look like `filter:tasks:data.field_name`. If you need more info about columns, check the [Get data
        manager columns](#tag/Data-Manager/operation/api_dm_columns_list) API endpoint. Possible
        values:<br><li>`filter:tasks:agreement`<br> (Number) Agreement for annotation results for a specific task
        (Enterprise only)</li><br><li>`filter:tasks:annotations_results`<br> (String) Annotation results for the
        tasks</li><br><li>`filter:tasks:annotators`<br> (List) Annotators that completed the task (Community). Can
        include assigned annotators (Enterprise only). Important note: the filter `type` should be List, but the filter
        `value` is integer</li><br><li>`filter:tasks:cancelled_annotations`<br> (Number) Number of cancelled or skipped
        annotations for the task</li><br><li>`filter:tasks:comments`<br> (Number) Number of comments in a
        task</li><br><li>`filter:tasks:completed_at`<br> (Datetime) Time when a task was fully
        annotated</li><br><li>`filter:tasks:created_at`<br> (Datetime) Time the task was created
        at</li><br><li>`filter:tasks:file_upload`<br> (String) Name of the file uploaded to create the
        tasks</li><br><li>`filter:tasks:ground_truth`<br> (Boolean) Ground truth status of the
        tasks</li><br><li>`filter:tasks:id`<br> (Number) Task ID</li><br><li>`filter:tasks:inner_id`<br> (Number) Task
        Inner ID, it starts from 1 for all projects</li><br><li>`filter:tasks:predictions_model_versions`<br> (String)
        Model version used for the predictions</li><br><li>`filter:tasks:predictions_results`<br> (String) Prediction
        results for the tasks</li><br><li>`filter:tasks:predictions_score`<br> (Number) Prediction score for the
        task</li><br><li>`filter:tasks:reviewed`<br> (Boolean) Whether the tasks have been reviewed (Enterprise
        only)</li><br><li>`filter:tasks:reviewers`<br> (String) Reviewers that reviewed the task, or assigned reviewers
        (Enterprise only). Important note: the filter `type` should be List, but the filter `value` is
        integer</li><br><li>`filter:tasks:reviews_accepted`<br> (Number) Number of annotations accepted for a task in
        review (Enterprise only)</li><br><li>`filter:tasks:reviews_rejected`<br> (Number) Number of annotations rejected
        for a task in review (Enterprise only)</li><br><li>`filter:tasks:total_annotations`<br> (Number) Total number of
        annotations on a task</li><br><li>`filter:tasks:total_predictions`<br> (Number) Total number of predictions for
        the task</li><br><li>`filter:tasks:unresolved_comment_count`<br> (Number) Number of unresolved comments in a
        task</li><br><li>`filter:tasks:updated_at`<br> (Datetime) Time the task was updated at (e.g. new annotation was
        created, review added, etc)</li>
      title: ApiDmViewsPostRequestBodyContentApplicationJsonSchemaDataFiltersItemsItemsFilter
    ApiDmViewsPostRequestBodyContentApplicationJsonSchemaDataFiltersItemsItemsOperator:
      type: string
      enum:
        - contains
        - ends_with
        - equal
        - exists
        - greater
        - greater_or_equal
        - in
        - less
        - less_or_equal
        - not_contains
        - not_equal
        - not_exists
        - not_in
        - starts_with
      description: >-
        Filter operator. Possible values:<br><li>`contains`<br> Contains</li><br><li>`ends_with`<br> Ends
        with</li><br><li>`equal`<br> Equal to</li><br><li>`exists`<br> Exists</li><br><li>`greater`<br> Greater
        than</li><br><li>`greater_or_equal`<br> Greater than or equal to</li><br><li>`in`<br> Is between min and max
        values, so the filter `value` should be e.g. `{"min": 1, "max": 7}`</li><br><li>`less`<br> Less
        than</li><br><li>`less_or_equal`<br> Less than or equal to</li><br><li>`not_contains`<br> Does not
        contain</li><br><li>`not_equal`<br> Not equal to</li><br><li>`not_exists`<br> Does not
        exist</li><br><li>`not_in`<br> Is not between min and max values, so the filter `value` should be e.g. `{"min":
        1, "max": 7}`</li><br><li>`starts_with`<br> Starts with</li>
      title: ApiDmViewsPostRequestBodyContentApplicationJsonSchemaDataFiltersItemsItemsOperator
    ApiDmViewsPostRequestBodyContentApplicationJsonSchemaDataFiltersItemsItemsValue:
      oneOf:
        - type: string
        - type: integer
        - type: number
          format: double
        - type: boolean
        - type: object
          additionalProperties:
            description: Any type
        - type: object
          additionalProperties:
            description: Any type
      description: Value to filter by
      title: ApiDmViewsPostRequestBodyContentApplicationJsonSchemaDataFiltersItemsItemsValue
    ApiDmViewsPostRequestBodyContentApplicationJsonSchemaDataFiltersItemsItems:
      type: object
      properties:
        filter:
          $ref: '#/components/schemas/ApiDmViewsPostRequestBodyContentApplicationJsonSchemaDataFiltersItemsItemsFilter'
          description: >-
            Filter identifier, it should start with `filter:tasks:` prefix, e.g. `filter:tasks:agreement`. For
            `task.data` fields it may look like `filter:tasks:data.field_name`. If you need more info about columns,
            check the [Get data manager columns](#tag/Data-Manager/operation/api_dm_columns_list) API endpoint. Possible
            values:<br><li>`filter:tasks:agreement`<br> (Number) Agreement for annotation results for a specific task
            (Enterprise only)</li><br><li>`filter:tasks:annotations_results`<br> (String) Annotation results for the
            tasks</li><br><li>`filter:tasks:annotators`<br> (List) Annotators that completed the task (Community). Can
            include assigned annotators (Enterprise only). Important note: the filter `type` should be List, but the
            filter `value` is integer</li><br><li>`filter:tasks:cancelled_annotations`<br> (Number) Number of cancelled
            or skipped annotations for the task</li><br><li>`filter:tasks:comments`<br> (Number) Number of comments in a
            task</li><br><li>`filter:tasks:completed_at`<br> (Datetime) Time when a task was fully
            annotated</li><br><li>`filter:tasks:created_at`<br> (Datetime) Time the task was created
            at</li><br><li>`filter:tasks:file_upload`<br> (String) Name of the file uploaded to create the
            tasks</li><br><li>`filter:tasks:ground_truth`<br> (Boolean) Ground truth status of the
            tasks</li><br><li>`filter:tasks:id`<br> (Number) Task ID</li><br><li>`filter:tasks:inner_id`<br> (Number)
            Task Inner ID, it starts from 1 for all projects</li><br><li>`filter:tasks:predictions_model_versions`<br>
            (String) Model version used for the predictions</li><br><li>`filter:tasks:predictions_results`<br> (String)
            Prediction results for the tasks</li><br><li>`filter:tasks:predictions_score`<br> (Number) Prediction score
            for the task</li><br><li>`filter:tasks:reviewed`<br> (Boolean) Whether the tasks have been reviewed
            (Enterprise only)</li><br><li>`filter:tasks:reviewers`<br> (String) Reviewers that reviewed the task, or
            assigned reviewers (Enterprise only). Important note: the filter `type` should be List, but the filter
            `value` is integer</li><br><li>`filter:tasks:reviews_accepted`<br> (Number) Number of annotations accepted
            for a task in review (Enterprise only)</li><br><li>`filter:tasks:reviews_rejected`<br> (Number) Number of
            annotations rejected for a task in review (Enterprise only)</li><br><li>`filter:tasks:total_annotations`<br>
            (Number) Total number of annotations on a task</li><br><li>`filter:tasks:total_predictions`<br> (Number)
            Total number of predictions for the task</li><br><li>`filter:tasks:unresolved_comment_count`<br> (Number)
            Number of unresolved comments in a task</li><br><li>`filter:tasks:updated_at`<br> (Datetime) Time the task
            was updated at (e.g. new annotation was created, review added, etc)</li>
        operator:
          $ref: '#/components/schemas/ApiDmViewsPostRequestBodyContentApplicationJsonSchemaDataFiltersItemsItemsOperator'
          description: >-
            Filter operator. Possible values:<br><li>`contains`<br> Contains</li><br><li>`ends_with`<br> Ends
            with</li><br><li>`equal`<br> Equal to</li><br><li>`exists`<br> Exists</li><br><li>`greater`<br> Greater
            than</li><br><li>`greater_or_equal`<br> Greater than or equal to</li><br><li>`in`<br> Is between min and max
            values, so the filter `value` should be e.g. `{"min": 1, "max": 7}`</li><br><li>`less`<br> Less
            than</li><br><li>`less_or_equal`<br> Less than or equal to</li><br><li>`not_contains`<br> Does not
            contain</li><br><li>`not_equal`<br> Not equal to</li><br><li>`not_exists`<br> Does not
            exist</li><br><li>`not_in`<br> Is not between min and max values, so the filter `value` should be e.g.
            `{"min": 1, "max": 7}`</li><br><li>`starts_with`<br> Starts with</li>
        type:
          type: string
          description: >-
            Type of the filter value. Possible values:<br><li>`Boolean`<br> Boolean</li><br><li>`Datetime`<br> Datetime
            string in `strftime('%Y-%m-%dT%H:%M:%S.%fZ')` format</li><br><li>`List`<br> List of
            items</li><br><li>`Number`<br> Float or Integer</li><br><li>`String`<br> String</li><br><li>`Unknown`<br>
            Unknown is explicitly converted to string format</li>
        value:
          $ref: '#/components/schemas/ApiDmViewsPostRequestBodyContentApplicationJsonSchemaDataFiltersItemsItemsValue'
          description: Value to filter by
      required:
        - filter
        - operator
        - type
        - value
      title: ApiDmViewsPostRequestBodyContentApplicationJsonSchemaDataFiltersItemsItems
    ApiDmViewsPostRequestBodyContentApplicationJsonSchemaDataFilters:
      type: object
      properties:
        conjunction:
          $ref: '#/components/schemas/ApiDmViewsPostRequestBodyContentApplicationJsonSchemaDataFiltersConjunction'
          description: >-
            Logical conjunction for the filters. This conjunction (either "or" or "and") will be applied to all items in
            the filters list. It is not possible to combine "or" and "and" within one list of filters. All filters will
            be either combined with "or" or with "and", but not a mix of both.
        items:
          type: array
          items:
            $ref: '#/components/schemas/ApiDmViewsPostRequestBodyContentApplicationJsonSchemaDataFiltersItemsItems'
          description: List of filter items
      required:
        - conjunction
        - items
      description: >-
        Filters to apply on tasks. You can use [the helper class `Filters` from this
        page](https://labelstud.io/sdk/data_manager.html) to create Data Manager Filters.<br>Example: `{"conjunction":
        "or", "items": [{"filter": "filter:tasks:completed_at", "operator": "greater", "type": "Datetime", "value":
        "2021-01-01T00:00:00.000Z"}]}`
      title: ApiDmViewsPostRequestBodyContentApplicationJsonSchemaDataFilters
    ApiDmViewsPostRequestBodyContentApplicationJsonSchemaDataOrderingItems:
      type: string
      enum:
        - tasks:agreement
        - tasks:annotations_results
        - tasks:annotators
        - tasks:cancelled_annotations
        - tasks:comments
        - tasks:completed_at
        - tasks:created_at
        - tasks:file_upload
        - tasks:ground_truth
        - tasks:id
        - tasks:inner_id
        - tasks:predictions_model_versions
        - tasks:predictions_results
        - tasks:predictions_score
        - tasks:reviewed
        - tasks:reviewers
        - tasks:reviews_accepted
        - tasks:reviews_rejected
        - tasks:total_annotations
        - tasks:total_predictions
        - tasks:unresolved_comment_count
        - tasks:updated_at
      title: ApiDmViewsPostRequestBodyContentApplicationJsonSchemaDataOrderingItems
    ApiDmViewsPostRequestBodyContentApplicationJsonSchemaData:
      type: object
      properties:
        filters:
          $ref: '#/components/schemas/ApiDmViewsPostRequestBodyContentApplicationJsonSchemaDataFilters'
          description: >-
            Filters to apply on tasks. You can use [the helper class `Filters` from this
            page](https://labelstud.io/sdk/data_manager.html) to create Data Manager Filters.<br>Example:
            `{"conjunction": "or", "items": [{"filter": "filter:tasks:completed_at", "operator": "greater", "type":
            "Datetime", "value": "2021-01-01T00:00:00.000Z"}]}`
        ordering:
          type: array
          items:
            $ref: '#/components/schemas/ApiDmViewsPostRequestBodyContentApplicationJsonSchemaDataOrderingItems'
          description: >-
            List of fields to order by. Fields are similar to filters but without the `filter:` prefix. To reverse the
            order, add a minus sign before the field name, e.g. `-tasks:created_at`.
      description: Custom view data
      title: ApiDmViewsPostRequestBodyContentApplicationJsonSchemaData
    ViewOrderRequest:
      type: object
      properties:
        ids:
          type: array
          items:
            type: integer
          description: A list of view IDs in the desired order.
        project:
          type: integer
      required:
        - ids
        - project
      title: ViewOrderRequest
    views_update_order_Response_200:
      type: object
      properties: {}
      description: Empty response body
      title: views_update_order_Response_200
    ApiDmViewsIdPatchRequestBodyContentApplicationJsonSchemaDataFiltersConjunction:
      type: string
      enum:
        - or
        - and
      description: >-
        Logical conjunction for the filters. This conjunction (either "or" or "and") will be applied to all items in the
        filters list. It is not possible to combine "or" and "and" within one list of filters. All filters will be
        either combined with "or" or with "and", but not a mix of both.
      title: ApiDmViewsIdPatchRequestBodyContentApplicationJsonSchemaDataFiltersConjunction
    ApiDmViewsIdPatchRequestBodyContentApplicationJsonSchemaDataFiltersItemsItemsFilter:
      type: string
      enum:
        - filter:tasks:agreement
        - filter:tasks:annotations_results
        - filter:tasks:annotators
        - filter:tasks:cancelled_annotations
        - filter:tasks:comments
        - filter:tasks:completed_at
        - filter:tasks:created_at
        - filter:tasks:file_upload
        - filter:tasks:ground_truth
        - filter:tasks:id
        - filter:tasks:inner_id
        - filter:tasks:predictions_model_versions
        - filter:tasks:predictions_results
        - filter:tasks:predictions_score
        - filter:tasks:reviewed
        - filter:tasks:reviewers
        - filter:tasks:reviews_accepted
        - filter:tasks:reviews_rejected
        - filter:tasks:total_annotations
        - filter:tasks:total_predictions
        - filter:tasks:unresolved_comment_count
        - filter:tasks:updated_at
      description: >-
        Filter identifier, it should start with `filter:tasks:` prefix, e.g. `filter:tasks:agreement`. For `task.data`
        fields it may look like `filter:tasks:data.field_name`. If you need more info about columns, check the [Get data
        manager columns](#tag/Data-Manager/operation/api_dm_columns_list) API endpoint. Possible
        values:<br><li>`filter:tasks:agreement`<br> (Number) Agreement for annotation results for a specific task
        (Enterprise only)</li><br><li>`filter:tasks:annotations_results`<br> (String) Annotation results for the
        tasks</li><br><li>`filter:tasks:annotators`<br> (List) Annotators that completed the task (Community). Can
        include assigned annotators (Enterprise only). Important note: the filter `type` should be List, but the filter
        `value` is integer</li><br><li>`filter:tasks:cancelled_annotations`<br> (Number) Number of cancelled or skipped
        annotations for the task</li><br><li>`filter:tasks:comments`<br> (Number) Number of comments in a
        task</li><br><li>`filter:tasks:completed_at`<br> (Datetime) Time when a task was fully
        annotated</li><br><li>`filter:tasks:created_at`<br> (Datetime) Time the task was created
        at</li><br><li>`filter:tasks:file_upload`<br> (String) Name of the file uploaded to create the
        tasks</li><br><li>`filter:tasks:ground_truth`<br> (Boolean) Ground truth status of the
        tasks</li><br><li>`filter:tasks:id`<br> (Number) Task ID</li><br><li>`filter:tasks:inner_id`<br> (Number) Task
        Inner ID, it starts from 1 for all projects</li><br><li>`filter:tasks:predictions_model_versions`<br> (String)
        Model version used for the predictions</li><br><li>`filter:tasks:predictions_results`<br> (String) Prediction
        results for the tasks</li><br><li>`filter:tasks:predictions_score`<br> (Number) Prediction score for the
        task</li><br><li>`filter:tasks:reviewed`<br> (Boolean) Whether the tasks have been reviewed (Enterprise
        only)</li><br><li>`filter:tasks:reviewers`<br> (String) Reviewers that reviewed the task, or assigned reviewers
        (Enterprise only). Important note: the filter `type` should be List, but the filter `value` is
        integer</li><br><li>`filter:tasks:reviews_accepted`<br> (Number) Number of annotations accepted for a task in
        review (Enterprise only)</li><br><li>`filter:tasks:reviews_rejected`<br> (Number) Number of annotations rejected
        for a task in review (Enterprise only)</li><br><li>`filter:tasks:total_annotations`<br> (Number) Total number of
        annotations on a task</li><br><li>`filter:tasks:total_predictions`<br> (Number) Total number of predictions for
        the task</li><br><li>`filter:tasks:unresolved_comment_count`<br> (Number) Number of unresolved comments in a
        task</li><br><li>`filter:tasks:updated_at`<br> (Datetime) Time the task was updated at (e.g. new annotation was
        created, review added, etc)</li>
      title: ApiDmViewsIdPatchRequestBodyContentApplicationJsonSchemaDataFiltersItemsItemsFilter
    ApiDmViewsIdPatchRequestBodyContentApplicationJsonSchemaDataFiltersItemsItemsOperator:
      type: string
      enum:
        - contains
        - ends_with
        - equal
        - exists
        - greater
        - greater_or_equal
        - in
        - less
        - less_or_equal
        - not_contains
        - not_equal
        - not_exists
        - not_in
        - starts_with
      description: >-
        Filter operator. Possible values:<br><li>`contains`<br> Contains</li><br><li>`ends_with`<br> Ends
        with</li><br><li>`equal`<br> Equal to</li><br><li>`exists`<br> Exists</li><br><li>`greater`<br> Greater
        than</li><br><li>`greater_or_equal`<br> Greater than or equal to</li><br><li>`in`<br> Is between min and max
        values, so the filter `value` should be e.g. `{"min": 1, "max": 7}`</li><br><li>`less`<br> Less
        than</li><br><li>`less_or_equal`<br> Less than or equal to</li><br><li>`not_contains`<br> Does not
        contain</li><br><li>`not_equal`<br> Not equal to</li><br><li>`not_exists`<br> Does not
        exist</li><br><li>`not_in`<br> Is not between min and max values, so the filter `value` should be e.g. `{"min":
        1, "max": 7}`</li><br><li>`starts_with`<br> Starts with</li>
      title: ApiDmViewsIdPatchRequestBodyContentApplicationJsonSchemaDataFiltersItemsItemsOperator
    ApiDmViewsIdPatchRequestBodyContentApplicationJsonSchemaDataFiltersItemsItemsValue:
      oneOf:
        - type: string
        - type: integer
        - type: number
          format: double
        - type: boolean
        - type: object
          additionalProperties:
            description: Any type
        - type: object
          additionalProperties:
            description: Any type
      description: Value to filter by
      title: ApiDmViewsIdPatchRequestBodyContentApplicationJsonSchemaDataFiltersItemsItemsValue
    ApiDmViewsIdPatchRequestBodyContentApplicationJsonSchemaDataFiltersItemsItems:
      type: object
      properties:
        filter:
          $ref: '#/components/schemas/ApiDmViewsIdPatchRequestBodyContentApplicationJsonSchemaDataFiltersItemsItemsFilter'
          description: >-
            Filter identifier, it should start with `filter:tasks:` prefix, e.g. `filter:tasks:agreement`. For
            `task.data` fields it may look like `filter:tasks:data.field_name`. If you need more info about columns,
            check the [Get data manager columns](#tag/Data-Manager/operation/api_dm_columns_list) API endpoint. Possible
            values:<br><li>`filter:tasks:agreement`<br> (Number) Agreement for annotation results for a specific task
            (Enterprise only)</li><br><li>`filter:tasks:annotations_results`<br> (String) Annotation results for the
            tasks</li><br><li>`filter:tasks:annotators`<br> (List) Annotators that completed the task (Community). Can
            include assigned annotators (Enterprise only). Important note: the filter `type` should be List, but the
            filter `value` is integer</li><br><li>`filter:tasks:cancelled_annotations`<br> (Number) Number of cancelled
            or skipped annotations for the task</li><br><li>`filter:tasks:comments`<br> (Number) Number of comments in a
            task</li><br><li>`filter:tasks:completed_at`<br> (Datetime) Time when a task was fully
            annotated</li><br><li>`filter:tasks:created_at`<br> (Datetime) Time the task was created
            at</li><br><li>`filter:tasks:file_upload`<br> (String) Name of the file uploaded to create the
            tasks</li><br><li>`filter:tasks:ground_truth`<br> (Boolean) Ground truth status of the
            tasks</li><br><li>`filter:tasks:id`<br> (Number) Task ID</li><br><li>`filter:tasks:inner_id`<br> (Number)
            Task Inner ID, it starts from 1 for all projects</li><br><li>`filter:tasks:predictions_model_versions`<br>
            (String) Model version used for the predictions</li><br><li>`filter:tasks:predictions_results`<br> (String)
            Prediction results for the tasks</li><br><li>`filter:tasks:predictions_score`<br> (Number) Prediction score
            for the task</li><br><li>`filter:tasks:reviewed`<br> (Boolean) Whether the tasks have been reviewed
            (Enterprise only)</li><br><li>`filter:tasks:reviewers`<br> (String) Reviewers that reviewed the task, or
            assigned reviewers (Enterprise only). Important note: the filter `type` should be List, but the filter
            `value` is integer</li><br><li>`filter:tasks:reviews_accepted`<br> (Number) Number of annotations accepted
            for a task in review (Enterprise only)</li><br><li>`filter:tasks:reviews_rejected`<br> (Number) Number of
            annotations rejected for a task in review (Enterprise only)</li><br><li>`filter:tasks:total_annotations`<br>
            (Number) Total number of annotations on a task</li><br><li>`filter:tasks:total_predictions`<br> (Number)
            Total number of predictions for the task</li><br><li>`filter:tasks:unresolved_comment_count`<br> (Number)
            Number of unresolved comments in a task</li><br><li>`filter:tasks:updated_at`<br> (Datetime) Time the task
            was updated at (e.g. new annotation was created, review added, etc)</li>
        operator:
          $ref: '#/components/schemas/ApiDmViewsIdPatchRequestBodyContentApplicationJsonSchemaDataFiltersItemsItemsOperator'
          description: >-
            Filter operator. Possible values:<br><li>`contains`<br> Contains</li><br><li>`ends_with`<br> Ends
            with</li><br><li>`equal`<br> Equal to</li><br><li>`exists`<br> Exists</li><br><li>`greater`<br> Greater
            than</li><br><li>`greater_or_equal`<br> Greater than or equal to</li><br><li>`in`<br> Is between min and max
            values, so the filter `value` should be e.g. `{"min": 1, "max": 7}`</li><br><li>`less`<br> Less
            than</li><br><li>`less_or_equal`<br> Less than or equal to</li><br><li>`not_contains`<br> Does not
            contain</li><br><li>`not_equal`<br> Not equal to</li><br><li>`not_exists`<br> Does not
            exist</li><br><li>`not_in`<br> Is not between min and max values, so the filter `value` should be e.g.
            `{"min": 1, "max": 7}`</li><br><li>`starts_with`<br> Starts with</li>
        type:
          type: string
          description: >-
            Type of the filter value. Possible values:<br><li>`Boolean`<br> Boolean</li><br><li>`Datetime`<br> Datetime
            string in `strftime('%Y-%m-%dT%H:%M:%S.%fZ')` format</li><br><li>`List`<br> List of
            items</li><br><li>`Number`<br> Float or Integer</li><br><li>`String`<br> String</li><br><li>`Unknown`<br>
            Unknown is explicitly converted to string format</li>
        value:
          $ref: '#/components/schemas/ApiDmViewsIdPatchRequestBodyContentApplicationJsonSchemaDataFiltersItemsItemsValue'
          description: Value to filter by
      required:
        - filter
        - operator
        - type
        - value
      title: ApiDmViewsIdPatchRequestBodyContentApplicationJsonSchemaDataFiltersItemsItems
    ApiDmViewsIdPatchRequestBodyContentApplicationJsonSchemaDataFilters:
      type: object
      properties:
        conjunction:
          $ref: '#/components/schemas/ApiDmViewsIdPatchRequestBodyContentApplicationJsonSchemaDataFiltersConjunction'
          description: >-
            Logical conjunction for the filters. This conjunction (either "or" or "and") will be applied to all items in
            the filters list. It is not possible to combine "or" and "and" within one list of filters. All filters will
            be either combined with "or" or with "and", but not a mix of both.
        items:
          type: array
          items:
            $ref: '#/components/schemas/ApiDmViewsIdPatchRequestBodyContentApplicationJsonSchemaDataFiltersItemsItems'
          description: List of filter items
      required:
        - conjunction
        - items
      description: >-
        Filters to apply on tasks. You can use [the helper class `Filters` from this
        page](https://labelstud.io/sdk/data_manager.html) to create Data Manager Filters.<br>Example: `{"conjunction":
        "or", "items": [{"filter": "filter:tasks:completed_at", "operator": "greater", "type": "Datetime", "value":
        "2021-01-01T00:00:00.000Z"}]}`
      title: ApiDmViewsIdPatchRequestBodyContentApplicationJsonSchemaDataFilters
    ApiDmViewsIdPatchRequestBodyContentApplicationJsonSchemaDataOrderingItems:
      type: string
      enum:
        - tasks:agreement
        - tasks:annotations_results
        - tasks:annotators
        - tasks:cancelled_annotations
        - tasks:comments
        - tasks:completed_at
        - tasks:created_at
        - tasks:file_upload
        - tasks:ground_truth
        - tasks:id
        - tasks:inner_id
        - tasks:predictions_model_versions
        - tasks:predictions_results
        - tasks:predictions_score
        - tasks:reviewed
        - tasks:reviewers
        - tasks:reviews_accepted
        - tasks:reviews_rejected
        - tasks:total_annotations
        - tasks:total_predictions
        - tasks:unresolved_comment_count
        - tasks:updated_at
      title: ApiDmViewsIdPatchRequestBodyContentApplicationJsonSchemaDataOrderingItems
    ApiDmViewsIdPatchRequestBodyContentApplicationJsonSchemaData:
      type: object
      properties:
        filters:
          $ref: '#/components/schemas/ApiDmViewsIdPatchRequestBodyContentApplicationJsonSchemaDataFilters'
          description: >-
            Filters to apply on tasks. You can use [the helper class `Filters` from this
            page](https://labelstud.io/sdk/data_manager.html) to create Data Manager Filters.<br>Example:
            `{"conjunction": "or", "items": [{"filter": "filter:tasks:completed_at", "operator": "greater", "type":
            "Datetime", "value": "2021-01-01T00:00:00.000Z"}]}`
        ordering:
          type: array
          items:
            $ref: '#/components/schemas/ApiDmViewsIdPatchRequestBodyContentApplicationJsonSchemaDataOrderingItems'
          description: >-
            List of fields to order by. Fields are similar to filters but without the `filter:` prefix. To reverse the
            order, add a minus sign before the field name, e.g. `-tasks:created_at`.
      description: Custom view data
      title: ApiDmViewsIdPatchRequestBodyContentApplicationJsonSchemaData
    StateBackfillJobItem:
      type: object
      properties:
        job_id:
          type: integer
          description: Database ID of the backfill job
        project_id:
          type: integer
          description: Project ID being backfilled
        rq_job_id:
          type:
            - string
            - 'null'
          description: Redis queue job ID
      required:
        - job_id
        - project_id
      title: StateBackfillJobItem
    StateBackfillResponse:
      type: object
      properties:
        jobs:
          type: array
          items:
            $ref: '#/components/schemas/StateBackfillJobItem'
        jobs_queued:
          type: integer
          description: Number of jobs queued
        message:
          type: string
          description: Status message
        organization_id:
          type: integer
          description: Organization ID
        projects_skipped:
          type: integer
          description: Number of projects skipped because they are already completed
      required:
        - jobs
        - jobs_queued
        - message
        - organization_id
        - projects_skipped
      title: StateBackfillResponse
    StateBackfillCancelResponse:
      type: object
      properties:
        cancelled_count:
          type: integer
          description: Number of jobs successfully cancelled
        message:
          type: string
          description: Cancellation status message
      required:
        - cancelled_count
        - message
      title: StateBackfillCancelResponse
    StateBackfillProgress:
      type: object
      properties:
        failed_projects:
          type: integer
          description: Projects that failed
        successful_projects:
          type: integer
          description: Projects completed successfully
        total_entities_processed:
          type: integer
          description: Total entities processed so far
        total_projects:
          type: integer
          description: Total projects involved
      title: StateBackfillProgress
    StateTriggeredBy:
      type: object
      properties:
        email:
          type: string
        first_name:
          type:
            - string
            - 'null'
        id:
          type: integer
        last_name:
          type:
            - string
            - 'null'
      required:
        - email
        - id
      title: StateTriggeredBy
    StateBackfillJobItemResponse:
      type: object
      properties:
        completed_at:
          type:
            - string
            - 'null'
          format: date-time
        created_at:
          type: string
          format: date-time
        error_message:
          type:
            - string
            - 'null'
        job_id:
          type: integer
        progress_data:
          oneOf:
            - $ref: '#/components/schemas/StateBackfillProgress'
            - type: 'null'
        rq_job_id:
          type:
            - string
            - 'null'
        started_at:
          type:
            - string
            - 'null'
          format: date-time
        status:
          type: string
        triggered_by:
          oneOf:
            - $ref: '#/components/schemas/StateTriggeredBy'
            - type: 'null'
      required:
        - created_at
        - job_id
        - status
      title: StateBackfillJobItemResponse
    StateBackfillJobListResponse:
      type: object
      properties:
        jobs:
          type: array
          items:
            $ref: '#/components/schemas/StateBackfillJobItemResponse'
      required:
        - jobs
      title: StateBackfillJobListResponse
    StateBackfillOrgStatus:
      type: object
      properties:
        completed_projects:
          type: integer
        failed_projects:
          type: integer
        pending_projects:
          type: integer
        running_projects:
          type: integer
        total_entities_processed:
          type: integer
        total_projects:
          type: integer
          description: Total projects in organization
      required:
        - completed_projects
        - failed_projects
        - pending_projects
        - running_projects
        - total_entities_processed
        - total_projects
      title: StateBackfillOrgStatus
    StateBackfillStatusResponse:
      type: object
      properties:
        completed_at:
          type:
            - string
            - 'null'
          format: date-time
        created_at:
          type:
            - string
            - 'null'
          format: date-time
        error_message:
          type:
            - string
            - 'null'
        job_id:
          type: integer
          description: Job ID (if fetching a specific job)
        org_status:
          $ref: '#/components/schemas/StateBackfillOrgStatus'
          description: Aggregated organization status
        progress:
          $ref: '#/components/schemas/StateBackfillProgress'
        rq_job_id:
          type:
            - string
            - 'null'
        rq_job_info:
          type:
            - object
            - 'null'
          additionalProperties:
            description: Any type
        started_at:
          type:
            - string
            - 'null'
          format: date-time
        status:
          type: string
        triggered_by:
          $ref: '#/components/schemas/StateTriggeredBy'
      title: StateBackfillStatusResponse
    TriggeredBy:
      type: object
      properties:
        email:
          type: string
          format: email
        id:
          type: integer
      required:
        - id
      description: |-
        A ModelSerializer that takes additional arguments for
        "fields", "omit" and "expand" in order to
        control which fields are displayed, and whether to replace simple
        values with complex, nested serializations
      title: TriggeredBy
    StateModel:
      type: object
      properties:
        context_data:
          description: Any type
        created_at:
          type: string
          format: date-time
        id:
          type: string
          format: uuid
        previous_state:
          type:
            - string
            - 'null'
        reason:
          type:
            - string
            - 'null'
        state:
          type: string
        transition_name:
          type:
            - string
            - 'null'
        triggered_by:
          oneOf:
            - $ref: '#/components/schemas/TriggeredBy'
            - type: 'null'
      required:
        - context_data
        - created_at
        - id
        - previous_state
        - reason
        - state
        - transition_name
        - triggered_by
      description: |-
        Serializer for FSM state models.

        Uses Serializer instead of ModelSerializer because BaseState is abstract.
        Works with any concrete state model that inherits from BaseState.
      title: StateModel
    PaginatedStateModelList:
      type: object
      properties:
        count:
          type: integer
        next:
          type:
            - string
            - 'null'
          format: uri
        previous:
          type:
            - string
            - 'null'
          format: uri
        results:
          type: array
          items:
            $ref: '#/components/schemas/StateModel'
      required:
        - count
        - results
      title: PaginatedStateModelList
    FSMTransitionExecuteRequestRequest:
      type: object
      properties:
        transition_data:
          type:
            - object
            - 'null'
          additionalProperties:
            description: Any type
        transition_name:
          type: string
      required:
        - transition_name
      description: Request body serializer for executing a manual FSM transition.
      title: FSMTransitionExecuteRequestRequest
    FSMTransitionExecuteResponse:
      type: object
      properties:
        new_state:
          type:
            - string
            - 'null'
        state_record:
          oneOf:
            - $ref: '#/components/schemas/StateModel'
            - type: 'null'
        success:
          type: boolean
      required:
        - new_state
        - state_record
        - success
      description: Response serializer for manual FSM transition execution.
      title: FSMTransitionExecuteResponse
    FileUpload:
      type: object
      properties:
        file:
          type: string
        id:
          type: integer
        size:
          type:
            - integer
            - 'null'
      required:
        - file
        - id
        - size
      title: FileUpload
    PatchedFileUploadRequest:
      type: object
      properties:
        file:
          type: string
          format: binary
      title: PatchedFileUploadRequest
    files_download_Response_200:
      type: object
      properties: {}
      description: Empty response body
      title: files_download_Response_200
    BatchFailedPredictionsRequestRequest:
      type: object
      properties:
        failed_predictions:
          type: array
          items:
            description: Any type
        job_id:
          type: string
        modelrun_id:
          type: integer
      required:
        - failed_predictions
        - modelrun_id
      title: BatchFailedPredictionsRequestRequest
    BatchFailedPredictions:
      type: object
      properties:
        failed_predictions:
          type: array
          items:
            description: Any type
        job_id:
          type: string
      required:
        - failed_predictions
        - job_id
      title: BatchFailedPredictions
    BatchPredictionsRequestRequest:
      type: object
      properties:
        job_id:
          type: string
        modelrun_id:
          type: integer
        results:
          type: array
          items:
            description: Any type
      required:
        - modelrun_id
        - results
      title: BatchPredictionsRequestRequest
    BatchPredictions:
      type: object
      properties:
        job_id:
          type: string
        results:
          type: array
          items:
            description: Any type
      required:
        - job_id
        - results
      title: BatchPredictions
    ApiProjectsProjectPkSubsetTasksGetParametersAlignmentOutcome:
      type: string
      enum:
        - all
        - false_negative
        - false_positive
        - true_positive
      title: ApiProjectsProjectPkSubsetTasksGetParametersAlignmentOutcome
    ProjectSubsetTaskItem:
      type: object
      properties:
        data:
          type: object
          additionalProperties:
            description: Any type
        error:
          type: object
          additionalProperties:
            description: Any type
        ground_truth:
          type: object
          additionalProperties:
            description: Any type
        id:
          type: integer
        prediction:
          type: object
          additionalProperties:
            description: Any type
        score:
          type:
            - number
            - 'null'
          format: double
      required:
        - data
      title: ProjectSubsetTaskItem
    ProjectSubsetTasksResponse:
      type: object
      properties:
        next_cursor:
          type:
            - string
            - 'null'
        previous_cursor:
          type:
            - string
            - 'null'
        task_count:
          type: integer
          description: Present only when include_total=true
        task_result_list:
          type: array
          items:
            $ref: '#/components/schemas/ProjectSubsetTaskItem'
      required:
        - task_result_list
      title: ProjectSubsetTasksResponse
    PaginatedProjectSubsetTasksResponseList:
      type: object
      properties:
        count:
          type: integer
        next:
          type:
            - string
            - 'null'
          format: uri
        previous:
          type:
            - string
            - 'null'
          format: uri
        results:
          type: array
          items:
            $ref: '#/components/schemas/ProjectSubsetTasksResponse'
      required:
        - count
        - results
      title: PaginatedProjectSubsetTasksResponseList
    ProjectSubsetItem:
      type: object
      properties:
        columns_schema:
          type: array
          items:
            type: object
            additionalProperties:
              description: Any type
        count:
          type: integer
        subset:
          type: string
      required:
        - count
        - subset
      title: ProjectSubsetItem
    AssociatedProject:
      type: object
      properties:
        id:
          type: integer
        title:
          type:
            - string
            - 'null'
          description: Project name. Must be between 3 and 50 characters long.
      required:
        - id
      description: |-
        A ModelSerializer that takes additional arguments for
        "fields", "omit" and "expand" in order to
        control which fields are displayed, and whether to replace simple
        values with complex, nested serializations
      title: AssociatedProject
    UserSimple:
      type: object
      properties:
        avatar:
          type: string
        email:
          type: string
          format: email
        first_name:
          type: string
        id:
          type: integer
        last_name:
          type: string
        username:
          type: string
      required:
        - avatar
        - id
        - username
      description: |-
        A ModelSerializer that takes additional arguments for
        "fields", "omit" and "expand" in order to
        control which fields are displayed, and whether to replace simple
        values with complex, nested serializations
      title: UserSimple
    SkillNameEnum:
      type: string
      enum:
        - TextClassification
        - NamedEntityRecognition
      description: |-
        * `TextClassification` - TextClassification
        * `NamedEntityRecognition` - NamedEntityRecognition
      title: SkillNameEnum
    ModelInterfaceSerializerGET:
      type: object
      properties:
        associated_projects:
          type: array
          items:
            $ref: '#/components/schemas/AssociatedProject'
        best_score:
          type:
            - number
            - 'null'
          format: double
        created_at:
          type: string
          format: date-time
        created_by:
          $ref: '#/components/schemas/UserSimple'
          description: User who created Dataset
        description:
          type:
            - string
            - 'null'
          description: Model description
        id:
          type: integer
        input_fields:
          description: Any type
        organization:
          type:
            - integer
            - 'null'
        output_classes:
          description: Any type
        runs_count:
          type: integer
          default: 0
        skill_name:
          $ref: '#/components/schemas/SkillNameEnum'
        title:
          type: string
          description: Model name
        updated_at:
          type: string
          format: date-time
        versions_count:
          type: integer
          default: 0
      required:
        - best_score
        - created_at
        - id
        - runs_count
        - title
        - updated_at
        - versions_count
      title: ModelInterfaceSerializerGET
    PaginatedModelInterfaceSerializerGETList:
      type: object
      properties:
        count:
          type: integer
        next:
          type:
            - string
            - 'null'
          format: uri
        previous:
          type:
            - string
            - 'null'
          format: uri
        results:
          type: array
          items:
            $ref: '#/components/schemas/ModelInterfaceSerializerGET'
      required:
        - count
        - results
      title: PaginatedModelInterfaceSerializerGETList
    UserSimpleRequest:
      type: object
      properties:
        email:
          type: string
          format: email
        first_name:
          type: string
        last_name:
          type: string
        username:
          type: string
      required:
        - username
      description: |-
        A ModelSerializer that takes additional arguments for
        "fields", "omit" and "expand" in order to
        control which fields are displayed, and whether to replace simple
        values with complex, nested serializations
      title: UserSimpleRequest
    ModelInterfaceRequest:
      type: object
      properties:
        associated_projects:
          type: array
          items:
            type: integer
        created_by:
          $ref: '#/components/schemas/UserSimpleRequest'
          description: User who created Dataset
        description:
          type:
            - string
            - 'null'
          description: Model description
        input_fields:
          description: Any type
        organization:
          type:
            - integer
            - 'null'
        output_classes:
          description: Any type
        skill_name:
          $ref: '#/components/schemas/SkillNameEnum'
        title:
          type: string
          description: Model name
      required:
        - title
      title: ModelInterfaceRequest
    ModelInterface:
      type: object
      properties:
        associated_projects:
          type: array
          items:
            type: integer
        created_at:
          type: string
          format: date-time
        created_by:
          $ref: '#/components/schemas/UserSimple'
          description: User who created Dataset
        description:
          type:
            - string
            - 'null'
          description: Model description
        id:
          type: integer
        input_fields:
          description: Any type
        organization:
          type:
            - integer
            - 'null'
        output_classes:
          description: Any type
        skill_name:
          $ref: '#/components/schemas/SkillNameEnum'
        title:
          type: string
          description: Model name
        updated_at:
          type: string
          format: date-time
      required:
        - created_at
        - id
        - title
        - updated_at
      title: ModelInterface
    ApiPromptsCompatibleProjectsGetParametersProjectType:
      type: string
      enum:
        - NamedEntityRecognition
        - TextClassification
      default: TextClassification
      title: ApiPromptsCompatibleProjectsGetParametersProjectType
    AgreementMethodologyEnum:
      type: string
      enum:
        - consensus
        - pairwise
      description: |-
        * `consensus` - Consensus
        * `pairwise` - Pairwise Averaging
      title: AgreementMethodologyEnum
    LabelStreamTaskDistributionEnum:
      type: string
      enum:
        - auto_distribution
        - assigned_only
      description: |-
        * `auto_distribution` - Label Stream distributes tasks automatically to annotators
        * `assigned_only` - Label Stream shows tasks only to assigned users
      title: LabelStreamTaskDistributionEnum
    AssignmentSettings:
      type: object
      properties:
        id:
          type: integer
        label_stream_task_distribution:
          oneOf:
            - $ref: '#/components/schemas/LabelStreamTaskDistributionEnum'
            - type: 'null'
          description: |-
            Automatic / Manual

            * `auto_distribution` - Label Stream distributes tasks automatically to annotators
            * `assigned_only` - Label Stream shows tasks only to assigned users
        project:
          type:
            - integer
            - 'null'
      required:
        - id
      title: AssignmentSettings
    BlueprintList:
      type: object
      properties:
        created_at:
          type: string
          format: date-time
        description:
          type:
            - string
            - 'null'
          description: Project description
        id:
          type: integer
        share_id:
          type: string
        short_url:
          type: string
        task_count:
          type: string
        title:
          type:
            - string
            - 'null'
          description: Blueprint name. Must be between 3 and 50 characters long.
      required:
        - created_at
        - id
        - share_id
        - short_url
        - task_count
      title: BlueprintList
    ControlTagWeight:
      type: object
      properties:
        labels:
          type: object
          additionalProperties:
            type: number
            format: double
          description: Per-label weights (0.0 to 1.0). Zero excludes the label from agreement.
        overall:
          type: number
          format: double
          description: Overall weight for this control tag (0.0 to 1.0). Zero excludes the tag from agreement.
        type:
          type: string
          description: Control tag type from the labeling config (e.g. Choices, Labels, TextArea).
      required:
        - overall
        - type
      description: |-
        Weights configuration for a single control tag.

        Structure: {"overall": 0.5, "type": "Choices", "labels": {"cat": 1.0, "dog": 0.0}}
      title: ControlTagWeight
    RequeueRejectedTasksModeEnum:
      type: string
      enum:
        - requeue
        - remove
        - flexible
      description: |-
        * `requeue` - Requeue
        * `remove` - Remove
        * `flexible` - Flexible
      title: RequeueRejectedTasksModeEnum
    ReviewCriteriaEnum:
      type: string
      enum:
        - all
        - one
      description: |-
        * `all` - Task is reviewed if all annotations are reviewed
        * `one` - Task is reviewed if at least one annotation is reviewed
      title: ReviewCriteriaEnum
    ReviewSettingsSamplingEnum:
      type: string
      enum:
        - task_id
        - random
      description: |-
        * `task_id` - By Task ID
        * `random` - Random
      title: ReviewSettingsSamplingEnum
    ReviewSettings:
      type: object
      properties:
        anonymize_annotations:
          type: boolean
          description: Hide annotator names from annotations while review
        id:
          type: integer
        instruction:
          type:
            - string
            - 'null'
          description: Instructions
        only_finished_tasks:
          type: boolean
          description: Show only finished tasks in the review stream
        project:
          type:
            - integer
            - 'null'
        requeue_rejected_tasks_mode:
          oneOf:
            - $ref: '#/components/schemas/RequeueRejectedTasksModeEnum'
            - type: 'null'
          description: >-
            Remove rejected annotations from labeling queue / Requeue rejected annotations back to annotators / Allow
            reviewer to decide: Remove or Requeue


            * `requeue` - Requeue

            * `remove` - Remove

            * `flexible` - Flexible
        requeue_rejected_tasks_to_annotator:
          type: boolean
        require_comment_on_reject:
          type: boolean
          description: Reviewers must leave a comment on reject
        review_criteria:
          oneOf:
            - $ref: '#/components/schemas/ReviewCriteriaEnum'
            - type: 'null'
          description: |-
            Task is reviewed after at least one accepted annotation / Task is reviewed when all annotations are reviewed

            * `all` - Task is reviewed if all annotations are reviewed
            * `one` - Task is reviewed if at least one annotation is reviewed
        review_only_manual_assignments:
          type: boolean
          description: Show only manually assigned tasks in the review stream
        review_task_limit_percent:
          type:
            - string
            - 'null'
          format: decimal
          description: Task limit (%)
        sampling:
          oneOf:
            - $ref: '#/components/schemas/ReviewSettingsSamplingEnum'
            - type: 'null'
          description: |-
            By Task ID / Random

            * `task_id` - By Task ID
            * `random` - Random
        show_agreement_to_reviewers:
          type: boolean
          description: Show agreement to reviewers in the Data Manager
        show_data_manager_to_reviewers:
          type: boolean
          description: Show the Data Manager to reviewers
        show_instruction:
          type: boolean
          description: Show before reviewing
        show_unused_data_columns_to_reviewers:
          type:
            - boolean
            - 'null'
          description: Show unused task data columns to reviewers in the Data Manager
      required:
        - id
        - requeue_rejected_tasks_to_annotator
      title: ReviewSettings
    SamplingDe5Enum:
      type: string
      enum:
        - Sequential sampling
        - Uniform sampling
        - Uncertainty sampling
      description: |-
        * `Sequential sampling` - Tasks are ordered by Data manager ordering
        * `Uniform sampling` - Tasks are chosen randomly
        * `Uncertainty sampling` - Tasks are chosen according to model uncertainty scores (active learning mode)
      title: SamplingDe5Enum
    SkipQueueEnum:
      type: string
      enum:
        - REQUEUE_FOR_ME
        - REQUEUE_FOR_OTHERS
        - IGNORE_SKIPPED
      description: |-
        * `REQUEUE_FOR_ME` - Requeue for me
        * `REQUEUE_FOR_OTHERS` - Requeue for others
        * `IGNORE_SKIPPED` - Ignore skipped
      title: SkipQueueEnum
    AllRolesProjectList:
      type: object
      properties:
        agreement_methodology:
          $ref: '#/components/schemas/AgreementMethodologyEnum'
          description: |-
            Methodology (Consensus / Pairwise Averaging)

            * `consensus` - Consensus
            * `pairwise` - Pairwise Averaging
        agreement_threshold:
          type:
            - string
            - 'null'
          format: decimal
          description: Agreement threshold
        allow_stream:
          type: boolean
        annotation_limit_count:
          type:
            - integer
            - 'null'
          description: Limit by number of tasks
        annotation_limit_percent:
          type:
            - string
            - 'null'
          format: decimal
          description: Limit by percentage of tasks
        annotator_evaluation_continuous_tasks:
          type: integer
          default: 0
          description: 'Continuous Evaluation: Required tasks'
        annotator_evaluation_enabled:
          type: boolean
          description: Evaluate all annotators against ground truth
        annotator_evaluation_minimum_score:
          type:
            - string
            - 'null'
          format: decimal
          default: '95.00'
          description: Score required to pass evaluation
        annotator_evaluation_minimum_tasks:
          type:
            - integer
            - 'null'
          default: 10
          description: Number of tasks for evaluation
        annotator_evaluation_onboarding_tasks:
          type: integer
          default: 0
          description: 'Onboarding Evaluation: Required tasks'
        assignment_settings:
          $ref: '#/components/schemas/AssignmentSettings'
        blueprints:
          type: array
          items:
            $ref: '#/components/schemas/BlueprintList'
        color:
          type:
            - string
            - 'null'
          description: Color
        comment_classification_config:
          type: string
        config_has_control_tags:
          type: boolean
          description: Flag to detect is project ready for labeling
        config_suitable_for_bulk_annotation:
          type: boolean
          description: Flag to detect is project ready for bulk annotation
        control_weights:
          type:
            - object
            - 'null'
          additionalProperties:
            $ref: '#/components/schemas/ControlTagWeight'
          description: >-
            Dict of weights for each control tag in metric calculation. Keys are control tag names from the labeling
            config. At least one tag must have a non-zero overall weight.
        created_at:
          type: string
          format: date-time
        created_by:
          $ref: '#/components/schemas/UserSimple'
          description: Project owner
        custom_interface_code:
          type:
            - string
            - 'null'
        custom_interface_compiled:
          type:
            - string
            - 'null'
        custom_interface_params:
          oneOf:
            - description: Any type
            - type: 'null'
        custom_script:
          type: string
          description: Plugins
        custom_task_lock_ttl:
          type:
            - integer
            - 'null'
          description: Task reservation time. TTL in seconds (UI displays and edits this value in minutes).
        data_types:
          type:
            - object
            - 'null'
          additionalProperties:
            description: Any type
        description:
          type:
            - string
            - 'null'
          description: Description
        description_short:
          type: string
        duplication_done:
          type: boolean
          default: false
        duplication_status:
          type: string
        enable_empty_annotation:
          type: boolean
          description: Allow empty annotations
        evaluate_predictions_automatically:
          type: boolean
          description: Retrieve and display predictions when loading a task
        expert_instruction:
          type:
            - string
            - 'null'
          description: Instructions
        finished_task_number:
          type: integer
        ground_truth_number:
          type: integer
          description: Honeypot annotation number in project
        id:
          type: integer
        input_schema:
          oneOf:
            - description: Any type
            - type: 'null'
        is_dimensions_enabled:
          type: string
        is_draft:
          type: boolean
          description: Whether or not the project is in the middle of being created
        is_published:
          type: boolean
          description: Whether or not the project is published to annotators
        label_config:
          type:
            - string
            - 'null'
          description: Labeling Configuration
        max_additional_annotators_assignable:
          type:
            - integer
            - 'null'
          description: Maximum additional annotators
        maximum_annotations:
          type: integer
          description: Annotations per task
        members:
          type: string
        members_count:
          type: integer
        min_annotations_to_start_training:
          type: integer
          description: Minimum number of completed tasks after which model training is started
        model_version:
          type:
            - string
            - 'null'
          description: Machine learning model version
        num_tasks_with_annotations:
          type:
            - integer
            - 'null'
        organization:
          type:
            - integer
            - 'null'
        output_schema:
          oneOf:
            - description: Any type
            - type: 'null'
        overlap_cohort_percentage:
          type: integer
          description: Annotations per task coverage
        parsed_label_config:
          type: object
          additionalProperties:
            description: Any type
          description: JSON-formatted labeling configuration
        pause_on_failed_annotator_evaluation:
          type:
            - boolean
            - 'null'
          default: false
          description: Pause annotator on failed evaluation
        pinned_at:
          type:
            - string
            - 'null'
          format: date-time
          description: Pinned date and time
        prompts:
          type: string
        queue_done:
          type: integer
        queue_left:
          type: integer
        queue_total:
          type: string
        ready:
          type: boolean
        rejected:
          type: integer
        require_comment_on_skip:
          type: boolean
          default: false
          description: Require comment to skip
        reveal_preannotations_interactively:
          type: boolean
          description: Reveal pre-annotations interactively
        review_settings:
          $ref: '#/components/schemas/ReviewSettings'
        review_total_tasks:
          type: integer
        reviewed_number:
          type: integer
        reviewer_queue_total:
          type: integer
        sampling:
          oneOf:
            - $ref: '#/components/schemas/SamplingDe5Enum'
            - type: 'null'
        show_annotation_history:
          type: boolean
          description: Show Data Manager to Annotators
        show_collab_predictions:
          type: boolean
          description: Use predictions to pre-label Tasks
        show_ground_truth_first:
          type: boolean
          description: 'Onboarding mode (true): show ground truth tasks first in the labeling stream'
        show_instruction:
          type: boolean
          description: Show instructions before labeling
        show_overlap_first:
          type: boolean
          description: Show tasks with overlap first
        show_skip_button:
          type: boolean
          description: Allow skipping tasks
        show_unused_data_columns_to_annotators:
          type:
            - boolean
            - 'null'
          description: >-
            Show only columns used in labeling configuration to Annotators. API uses inverse field semantics here: set
            false to show only used columns, set true to show all task.data columns.
        skip_queue:
          oneOf:
            - $ref: '#/components/schemas/SkipQueueEnum'
            - type: 'null'
        skipped_annotations_number:
          type: string
        source_interface_id:
          type:
            - integer
            - 'null'
        source_interface_version:
          type:
            - integer
            - 'null'
        start_training_on_annotation_update:
          type: boolean
          description: Start model training after any annotations are submitted or updated
        state:
          type: string
        strict_task_overlap:
          type: boolean
          default: true
          description: Enforce strict overlap limit
        task_number:
          type: integer
          description: Total task number in project
        title:
          type:
            - string
            - 'null'
          description: Project Name
        total_annotations_number:
          type: string
        total_predictions_number:
          type: integer
        use_custom_interface:
          type: boolean
          default: false
        useful_annotation_number:
          type:
            - integer
            - 'null'
        workspace:
          type: string
        workspace_title:
          type: string
      required:
        - allow_stream
        - assignment_settings
        - blueprints
        - config_has_control_tags
        - config_suitable_for_bulk_annotation
        - created_at
        - data_types
        - description_short
        - finished_task_number
        - ground_truth_number
        - id
        - is_dimensions_enabled
        - members
        - members_count
        - num_tasks_with_annotations
        - parsed_label_config
        - prompts
        - queue_done
        - queue_left
        - queue_total
        - ready
        - rejected
        - review_settings
        - review_total_tasks
        - reviewed_number
        - reviewer_queue_total
        - skipped_annotations_number
        - start_training_on_annotation_update
        - state
        - task_number
        - total_annotations_number
        - total_predictions_number
        - useful_annotation_number
        - workspace
        - workspace_title
      description: |-
        Serializer get numbers from project queryset annotation,
        make sure, that you use correct one(Project.objects.with_counts())
      title: AllRolesProjectList
    PaginatedAllRolesProjectListList:
      type: object
      properties:
        count:
          type: integer
        next:
          type:
            - string
            - 'null'
          format: uri
        previous:
          type:
            - string
            - 'null'
          format: uri
        results:
          type: array
          items:
            $ref: '#/components/schemas/AllRolesProjectList'
      required:
        - count
        - results
      title: PaginatedAllRolesProjectListList
    PatchedModelInterfaceRequest:
      type: object
      properties:
        associated_projects:
          type: array
          items:
            type: integer
        created_by:
          $ref: '#/components/schemas/UserSimpleRequest'
          description: User who created Dataset
        description:
          type:
            - string
            - 'null'
          description: Model description
        input_fields:
          description: Any type
        organization:
          type:
            - integer
            - 'null'
        output_classes:
          description: Any type
        skill_name:
          $ref: '#/components/schemas/SkillNameEnum'
        title:
          type: string
          description: Model name
      title: PatchedModelInterfaceRequest
    ApiInferenceRunsIdIndicatorsGetResponsesContentApplicationJsonSchemaItemsValues:
      type: object
      properties: {}
      title: ApiInferenceRunsIdIndicatorsGetResponsesContentApplicationJsonSchemaItemsValues
    ApiInferenceRunsIdIndicatorsGetResponsesContentApplicationJsonSchemaItems:
      type: object
      properties:
        title:
          type: string
        values:
          $ref: '#/components/schemas/ApiInferenceRunsIdIndicatorsGetResponsesContentApplicationJsonSchemaItemsValues'
      title: ApiInferenceRunsIdIndicatorsGetResponsesContentApplicationJsonSchemaItems
    LSEKeyIndicatorValue:
      type: object
      properties:
        title:
          type: string
          description: The title for this metric, to be displayed to the user
        values:
          type: object
          additionalProperties:
            description: Any type
          description: Dictionary of key-value pairs for the indicator values
      required:
        - title
        - values
      description: |-
        Key indicator value for Label Studio Enterprise.

        Attributes:
            title: The title for this metric, to be displayed to the user
            values: Dictionary of key-value pairs for the indicator values
      title: LSEKeyIndicatorValue
    prompts_versions_get_default_version_name_Response_200:
      type: object
      properties: {}
      description: Empty response body
      title: prompts_versions_get_default_version_name_Response_200
    ProviderEnum:
      type: string
      enum:
        - OpenAI
        - AzureOpenAI
        - AzureAIFoundry
        - VertexAI
        - Gemini
        - Anthropic
        - Custom
      description: |-
        * `OpenAI` - OpenAI
        * `AzureOpenAI` - AzureOpenAI
        * `AzureAIFoundry` - AzureAIFoundry
        * `VertexAI` - VertexAI
        * `Gemini` - Gemini
        * `Anthropic` - Anthropic
        * `Custom` - Custom
      title: ProviderEnum
    ThirdPartyModelVersion:
      type: object
      properties:
        created_at:
          type: string
          format: date-time
        created_by:
          $ref: '#/components/schemas/UserSimple'
          description: User who created Dataset
        id:
          type: integer
        max_few_shot_examples:
          type:
            - integer
            - 'null'
          description: Max number of few-shot examples to include in prompts. 0 = disabled.
        model_display_name:
          type: string
        model_provider_connection:
          type:
            - integer
            - 'null'
        organization:
          type:
            - integer
            - 'null'
        parent_model:
          type: integer
          description: Parent model interface ID
        prompt:
          type: string
          description: Prompt to execute
        provider:
          $ref: '#/components/schemas/ProviderEnum'
          description: |-
            The model provider to use e.g. OpenAI

            * `OpenAI` - OpenAI
            * `AzureOpenAI` - AzureOpenAI
            * `AzureAIFoundry` - AzureAIFoundry
            * `VertexAI` - VertexAI
            * `Gemini` - Gemini
            * `Anthropic` - Anthropic
            * `Custom` - Custom
        provider_model_id:
          type: string
          description: The model ID to use within the given provider, e.g. gpt-3.5
        score:
          type: string
        title:
          type: string
          description: Model name
        updated_at:
          type: string
          format: date-time
      required:
        - created_at
        - created_by
        - id
        - model_display_name
        - prompt
        - provider_model_id
        - score
        - title
        - updated_at
      title: ThirdPartyModelVersion
    ThirdPartyModelVersionRequest:
      type: object
      properties:
        max_few_shot_examples:
          type:
            - integer
            - 'null'
          description: Max number of few-shot examples to include in prompts. 0 = disabled.
        model_provider_connection:
          type:
            - integer
            - 'null'
        organization:
          type:
            - integer
            - 'null'
        parent_model:
          type: integer
          description: Parent model interface ID
        prompt:
          type: string
          description: Prompt to execute
        provider:
          $ref: '#/components/schemas/ProviderEnum'
          description: |-
            The model provider to use e.g. OpenAI

            * `OpenAI` - OpenAI
            * `AzureOpenAI` - AzureOpenAI
            * `AzureAIFoundry` - AzureAIFoundry
            * `VertexAI` - VertexAI
            * `Gemini` - Gemini
            * `Anthropic` - Anthropic
            * `Custom` - Custom
        provider_model_id:
          type: string
          description: The model ID to use within the given provider, e.g. gpt-3.5
        title:
          type: string
          description: Model name
      required:
        - prompt
        - provider_model_id
        - title
      title: ThirdPartyModelVersionRequest
    PatchedThirdPartyModelVersionRequest:
      type: object
      properties:
        max_few_shot_examples:
          type:
            - integer
            - 'null'
          description: Max number of few-shot examples to include in prompts. 0 = disabled.
        model_provider_connection:
          type:
            - integer
            - 'null'
        organization:
          type:
            - integer
            - 'null'
        parent_model:
          type: integer
          description: Parent model interface ID
        prompt:
          type: string
          description: Prompt to execute
        provider:
          $ref: '#/components/schemas/ProviderEnum'
          description: |-
            The model provider to use e.g. OpenAI

            * `OpenAI` - OpenAI
            * `AzureOpenAI` - AzureOpenAI
            * `AzureAIFoundry` - AzureAIFoundry
            * `VertexAI` - VertexAI
            * `Gemini` - Gemini
            * `Anthropic` - Anthropic
            * `Custom` - Custom
        provider_model_id:
          type: string
          description: The model ID to use within the given provider, e.g. gpt-3.5
        title:
          type: string
          description: Model name
      title: PatchedThirdPartyModelVersionRequest
    InferenceRunCostEstimate:
      type: object
      properties:
        completion_cost_usd:
          type:
            - string
            - 'null'
          description: Cost of the completion (in USD)
        error_message:
          type:
            - string
            - 'null'
          description: Error message details
        error_type:
          type:
            - string
            - 'null'
          description: Type of error (e.g. "Timeout", "Rate Limit", etc)
        is_error:
          type:
            - boolean
            - 'null'
          description: Whether an error occurred or not
        prompt_cost_usd:
          type:
            - string
            - 'null'
          description: Cost of the prompt (in USD)
        total_cost_usd:
          type:
            - string
            - 'null'
          description: Total cost of the inference (in USD)
      title: InferenceRunCostEstimate
    RefinedPromptResponse:
      type: object
      properties:
        previous_version:
          oneOf:
            - $ref: '#/components/schemas/ThirdPartyModelVersion'
            - type: 'null'
          description: Previous version of the prompt
        prompt:
          type: string
          description: The refined prompt text
        reasoning:
          type:
            - string
            - 'null'
          description: Reasoning behind the refinement
        refinement_job_id:
          type:
            - string
            - 'null'
          description: Unique identifier for the refinement job
        refinement_status:
          type:
            - string
            - 'null'
          description: Status of the refinement job
        title:
          type:
            - string
            - 'null'
          description: Title of the refined prompt
        total_cost:
          type:
            - string
            - 'null'
          description: Total cost of the refinement job (in USD)
      required:
        - previous_version
        - prompt
        - reasoning
        - refinement_job_id
        - refinement_status
        - title
        - total_cost
      title: RefinedPromptResponse
    RefinePromptRequestRequest:
      type: object
      properties:
        project_id:
          type: integer
          description: Project ID to target the refined prompt for
        teacher_model_name:
          type: string
          description: Name of the model to use to refine the prompt
        teacher_model_provider_connection_id:
          type: integer
          description: Model Provider Connection ID to use to refine the prompt
      required:
        - project_id
        - teacher_model_name
        - teacher_model_provider_connection_id
      title: RefinePromptRequestRequest
    ApiPromptsPromptIdVersionsVersionIdInferenceRunsGetParametersProjectSubset:
      type: string
      enum:
        - All
        - HasGT
        - Sample
      title: ApiPromptsPromptIdVersionsVersionIdInferenceRunsGetParametersProjectSubset
    ProjectSubsetEnum:
      type: string
      enum:
        - All
        - HasGT
        - Sample
        - Custom
      description: |-
        * `All` - All
        * `HasGT` - HasGT
        * `Sample` - Sample
        * `Custom` - Custom
      title: ProjectSubsetEnum
    ModelRunStatusEnum:
      type: string
      enum:
        - Pending
        - InProgress
        - Completed
        - Failed
        - Canceled
      description: |-
        * `Pending` - Pending
        * `InProgress` - InProgress
        * `Completed` - Completed
        * `Failed` - Failed
        * `Canceled` - Canceled
      title: ModelRunStatusEnum
    ModelRun:
      type: object
      properties:
        completed_at:
          type:
            - string
            - 'null'
          format: date-time
        created_at:
          type: string
          format: date-time
        created_by:
          $ref: '#/components/schemas/UserSimple'
        filters_json:
          oneOf:
            - description: Any type
            - type: 'null'
          description: DM filter group for Filtered subset. Stored for display/re-run purposes.
        id:
          type: integer
        job_id:
          type:
            - string
            - 'null'
          description: Job ID for inference job for a ModelRun e.g. Adala job ID
        organization:
          type:
            - integer
            - 'null'
        parent_model:
          type: integer
        predictions_updated_at:
          type:
            - string
            - 'null'
          format: date-time
        project:
          type: integer
        project_subset:
          $ref: '#/components/schemas/ProjectSubsetEnum'
        sample_subset_size:
          type:
            - integer
            - 'null'
          description: Custom sample size for Sample subset. Uses PROMPTER_SAMPLE_SUBSET_SIZE if not set.
        source_model_run:
          type:
            - integer
            - 'null'
        status:
          $ref: '#/components/schemas/ModelRunStatusEnum'
        task_ids:
          oneOf:
            - description: Any type
            - type: 'null'
          description: List of task IDs for Custom subset re-evaluation.
        total_correct_predictions:
          type:
            - integer
            - 'null'
        total_predictions:
          type:
            - integer
            - 'null'
        total_tasks:
          type:
            - integer
            - 'null'
        triggered_at:
          type:
            - string
            - 'null'
          format: date-time
      required:
        - completed_at
        - created_at
        - created_by
        - id
        - parent_model
        - project
        - source_model_run
        - status
        - task_ids
        - triggered_at
      title: ModelRun
    ModelRunRequest:
      type: object
      properties:
        filters_json:
          oneOf:
            - description: Any type
            - type: 'null'
          description: DM filter group for Filtered subset. Stored for display/re-run purposes.
        job_id:
          type:
            - string
            - 'null'
          description: Job ID for inference job for a ModelRun e.g. Adala job ID
        only_missing_predictions:
          type: boolean
          default: false
          description: When true, only tasks without successful predictions for this prompt version are submitted for inference.
        organization:
          type:
            - integer
            - 'null'
        predictions_updated_at:
          type:
            - string
            - 'null'
          format: date-time
        project:
          type: integer
        project_subset:
          $ref: '#/components/schemas/ProjectSubsetEnum'
        sample_subset_size:
          type:
            - integer
            - 'null'
          description: Custom sample size for Sample subset. Uses PROMPTER_SAMPLE_SUBSET_SIZE if not set.
        total_correct_predictions:
          type:
            - integer
            - 'null'
        total_predictions:
          type:
            - integer
            - 'null'
        total_tasks:
          type:
            - integer
            - 'null'
      required:
        - project
      title: ModelRunRequest
    CancelModelRunResponse:
      type: object
      properties:
        detail:
          type: string
      required:
        - detail
      title: CancelModelRunResponse
    OrganizationInvite:
      type: object
      properties:
        invite_url:
          type: string
        token:
          type: string
      title: OrganizationInvite
    OrganizationId:
      type: object
      properties:
        contact_info:
          type:
            - string
            - 'null'
          format: email
        created_at:
          type: string
          format: date-time
        id:
          type: integer
        title:
          type: string
      required:
        - created_at
        - id
        - title
      description: |-
        A serializer mixin that takes an additional `fields` argument that controls
        which fields should be displayed.
      title: OrganizationId
    OrganizationBilling:
      type: object
      properties:
        enforce_session_concurrency:
          type: string
        manual_role_management:
          type: string
        manual_workspace_management:
          type: string
        max_parallel_sessions:
          type: string
        session_concurrency_window_seconds:
          type: string
      required:
        - enforce_session_concurrency
        - manual_role_management
        - manual_workspace_management
        - max_parallel_sessions
        - session_concurrency_window_seconds
      title: OrganizationBilling
    Role9e7Enum:
      type: string
      enum:
        - OW
        - AD
        - MA
        - RE
        - AN
        - DI
        - 'NO'
      description: |-
        * `OW` - Owner
        * `AD` - Administrator
        * `MA` - Manager
        * `RE` - Reviewer
        * `AN` - Annotator
        * `DI` - Deactivated
        * `NO` - Not Activated
      title: Role9e7Enum
    LseOrganization:
      type: object
      properties:
        billing:
          $ref: '#/components/schemas/OrganizationBilling'
        created_at:
          type: string
          format: date-time
        custom_interfaces_enabled:
          type:
            - boolean
            - 'null'
          description: >-
            Enable custom interfaces for this organization. When disabled, projects with use_custom_interface=True will
            not render custom interfaces anywhere in the product (label stream, embed, data manager, interfaces
            dashboard).
        custom_scripts_enabled:
          type: string
        default_role:
          $ref: '#/components/schemas/Role9e7Enum'
          description: |-
            Default membership role for invited users

            * `OW` - Owner
            * `AD` - Administrator
            * `MA` - Manager
            * `RE` - Reviewer
            * `AN` - Annotator
            * `DI` - Deactivated
            * `NO` - Not Activated
        email_notification_settings:
          type: string
        embed_domains:
          oneOf:
            - description: Any type
            - type: 'null'
          description: 'List of objects: {"domain": "example.com"}. Used for CSP header on /embed routes.'
        embed_enabled:
          type:
            - boolean
            - 'null'
          description: Enable embed functionality for this organization
        embed_settings:
          oneOf:
            - description: Any type
            - type: 'null'
          description: Embed settings for this organization
        external_id:
          type:
            - string
            - 'null'
          description: External ID to uniquely identify this organization
        id:
          type: integer
        interface_settings:
          oneOf:
            - description: Any type
            - type: 'null'
          description: 'Security settings for custom interfaces: CSP allowlists, script origins, iframe permissions.'
        react_code_settings:
          type: string
        title:
          type: string
        token:
          type: string
      required:
        - billing
        - created_at
        - custom_scripts_enabled
        - email_notification_settings
        - id
        - react_code_settings
        - title
        - token
      title: LseOrganization
    PatchedLseOrganizationSerializerUpdateRequest:
      type: object
      properties:
        contact_info:
          type:
            - string
            - 'null'
          format: email
        created_by:
          type:
            - integer
            - 'null'
        custom_interfaces_enabled:
          type: boolean
          description: Enable or disable custom interfaces for this organization
        custom_scripts_enabled:
          type:
            - boolean
            - 'null'
          description: Plugins
        email_notification_settings:
          oneOf:
            - description: Any type
            - type: 'null'
          description: Email Notification Settings
        embed_domains:
          type:
            - array
            - 'null'
          items:
            type: object
            additionalProperties:
              type: string
          description: Supported domains
        embed_enabled:
          type: boolean
          description: Enable or disable embed functionality for this organization
        embed_settings:
          oneOf:
            - description: Any type
            - type: 'null'
          description: Public Verification Key and Public Verification Algorithms configuration
        interface_settings:
          oneOf:
            - description: Any type
            - type: 'null'
          description: 'Security settings for custom interfaces: CSP allowlists, script origins, iframe permissions'
        react_code_settings:
          oneOf:
            - description: Any type
            - type: 'null'
          description: ReactCode settings
        title:
          type:
            - string
            - 'null'
          description: Organization name
        token:
          type:
            - string
            - 'null'
      description: |-
        A serializer mixin that takes an additional `fields` argument that controls
        which fields should be displayed.
      title: PatchedLseOrganizationSerializerUpdateRequest
    PatchedDefaultRoleRequest:
      type: object
      properties:
        annotator_reviewer_firewall_enabled_at:
          type:
            - string
            - 'null'
          format: date-time
          description: >-
            Set to current time to restrict data sharing between annotators and reviewers in the label stream, review
            stream, and notifications (which will be disabled). In these settings, information about annotator and
            reviewer identity is suppressed in the UI.
        custom_interfaces_enabled:
          type:
            - boolean
            - 'null'
          description: >-
            Enable custom interfaces for this organization. When disabled, projects with use_custom_interface=True will
            not render custom interfaces anywhere in the product (label stream, embed, data manager, interfaces
            dashboard).
        custom_scripts_enabled_at:
          type:
            - string
            - 'null'
          format: date-time
          description: >-
            Set to current time to enable custom scripts (Plugins) for this organization. Can only be enabled if no
            organization members are active members of any other organizations; otherwise an error will be raised. If
            this occurs, contact the LEAP team for assistance with enabling custom scripts (Plugins).
        default_role:
          $ref: '#/components/schemas/Role9e7Enum'
          description: |-
            Default membership role for invited users

            * `OW` - Owner
            * `AD` - Administrator
            * `MA` - Manager
            * `RE` - Reviewer
            * `AN` - Annotator
            * `DI` - Deactivated
            * `NO` - Not Activated
        email_notification_settings:
          oneOf:
            - description: Any type
            - type: 'null'
          description: >-
            Email notification settings for this organization. Controls which email notifications users can receive.
            Structure: {"notifications_allowed": {"notification_type": bool}}
        embed_domains:
          oneOf:
            - description: Any type
            - type: 'null'
          description: 'List of objects: {"domain": "example.com"}. Used for CSP header on /embed routes.'
        embed_enabled:
          type:
            - boolean
            - 'null'
          description: Enable embed functionality for this organization
        embed_settings:
          oneOf:
            - description: Any type
            - type: 'null'
          description: Embed settings for this organization
        external_id:
          type:
            - string
            - 'null'
          description: External ID to uniquely identify this organization
        extra_data_on_activity_logs:
          type: boolean
        interface_settings:
          oneOf:
            - description: Any type
            - type: 'null'
          description: 'Security settings for custom interfaces: CSP allowlists, script origins, iframe permissions.'
        label_stream_navigation_disabled_at:
          type:
            - string
            - 'null'
          format: date-time
          description: >-
            Set to current time to disable the label stream navigation for this organization. This will prevent users
            from going back in the label stream to view previous labels.
        organization:
          type: integer
          description: A unique integer value identifying this organization.
        react_code_settings:
          oneOf:
            - description: Any type
            - type: 'null'
          description: >-
            ReactCode tag security settings. Structure: {"mode": "disabled"|"src_only"|"everything", "allowed_origins":
            ["https://..."], "allowed_permissions": ["camera", ...]}
        read_only_quick_view_enabled_at:
          type:
            - string
            - 'null'
          format: date-time
          description: Set to current time to prevent creating or editing annotations in quick view.
      title: PatchedDefaultRoleRequest
    DefaultRole:
      type: object
      properties:
        annotator_reviewer_firewall_enabled_at:
          type:
            - string
            - 'null'
          format: date-time
          description: >-
            Set to current time to restrict data sharing between annotators and reviewers in the label stream, review
            stream, and notifications (which will be disabled). In these settings, information about annotator and
            reviewer identity is suppressed in the UI.
        custom_interfaces_enabled:
          type:
            - boolean
            - 'null'
          description: >-
            Enable custom interfaces for this organization. When disabled, projects with use_custom_interface=True will
            not render custom interfaces anywhere in the product (label stream, embed, data manager, interfaces
            dashboard).
        custom_scripts_enabled_at:
          type:
            - string
            - 'null'
          format: date-time
          description: >-
            Set to current time to enable custom scripts (Plugins) for this organization. Can only be enabled if no
            organization members are active members of any other organizations; otherwise an error will be raised. If
            this occurs, contact the LEAP team for assistance with enabling custom scripts (Plugins).
        default_role:
          $ref: '#/components/schemas/Role9e7Enum'
          description: |-
            Default membership role for invited users

            * `OW` - Owner
            * `AD` - Administrator
            * `MA` - Manager
            * `RE` - Reviewer
            * `AN` - Annotator
            * `DI` - Deactivated
            * `NO` - Not Activated
        email_notification_settings:
          oneOf:
            - description: Any type
            - type: 'null'
          description: >-
            Email notification settings for this organization. Controls which email notifications users can receive.
            Structure: {"notifications_allowed": {"notification_type": bool}}
        embed_domains:
          oneOf:
            - description: Any type
            - type: 'null'
          description: 'List of objects: {"domain": "example.com"}. Used for CSP header on /embed routes.'
        embed_enabled:
          type:
            - boolean
            - 'null'
          description: Enable embed functionality for this organization
        embed_settings:
          oneOf:
            - description: Any type
            - type: 'null'
          description: Embed settings for this organization
        external_id:
          type:
            - string
            - 'null'
          description: External ID to uniquely identify this organization
        extra_data_on_activity_logs:
          type: boolean
        interface_settings:
          oneOf:
            - description: Any type
            - type: 'null'
          description: 'Security settings for custom interfaces: CSP allowlists, script origins, iframe permissions.'
        label_stream_navigation_disabled_at:
          type:
            - string
            - 'null'
          format: date-time
          description: >-
            Set to current time to disable the label stream navigation for this organization. This will prevent users
            from going back in the label stream to view previous labels.
        organization:
          type: integer
          description: A unique integer value identifying this organization.
        react_code_settings:
          oneOf:
            - description: Any type
            - type: 'null'
          description: >-
            ReactCode tag security settings. Structure: {"mode": "disabled"|"src_only"|"everything", "allowed_origins":
            ["https://..."], "allowed_permissions": ["camera", ...]}
        read_only_quick_view_enabled_at:
          type:
            - string
            - 'null'
          format: date-time
          description: Set to current time to prevent creating or editing annotations in quick view.
      required:
        - organization
      title: DefaultRole
    RevokeInviteRequest:
      type: object
      properties:
        email:
          type: string
          description: Email address
      required:
        - email
      title: RevokeInviteRequest
    organizations_invites_revoke_invite_Response_200:
      type: object
      properties: {}
      description: Empty response body
      title: organizations_invites_revoke_invite_Response_200
    SendInviteRequest:
      type: object
      properties:
        emails:
          type: array
          items:
            type: string
          description: Email addresses
        projects:
          type: array
          items:
            type: integer
          description: Project IDs to grant access to
        role:
          $ref: '#/components/schemas/Role9e7Enum'
          description: |-
            Organization role

            * `OW` - Owner
            * `AD` - Administrator
            * `MA` - Manager
            * `RE` - Reviewer
            * `AN` - Annotator
            * `DI` - Deactivated
            * `NO` - Not Activated
        workspaces:
          type: array
          items:
            type: integer
          description: Workspace IDs to grant access to
      required:
        - emails
        - role
      title: SendInviteRequest
    organizations_invites_send_email_Response_200:
      type: object
      properties: {}
      description: Empty response body
      title: organizations_invites_send_email_Response_200
    OrganizationMemberTag:
      type: object
      properties:
        created_at:
          type: string
          format: date-time
        created_by:
          $ref: '#/components/schemas/UserSimple'
        id:
          type: integer
        label:
          type: string
          description: Label
        member_count:
          type: integer
        organization:
          type: integer
        updated_at:
          type: string
          format: date-time
      required:
        - created_at
        - created_by
        - id
        - label
        - member_count
        - organization
        - updated_at
      title: OrganizationMemberTag
    PaginatedOrganizationMemberTagList:
      type: object
      properties:
        count:
          type: integer
        next:
          type:
            - string
            - 'null'
          format: uri
        previous:
          type:
            - string
            - 'null'
          format: uri
        results:
          type: array
          items:
            $ref: '#/components/schemas/OrganizationMemberTag'
      required:
        - count
        - results
      title: PaginatedOrganizationMemberTagList
    OrganizationMemberTagRequest:
      type: object
      properties:
        label:
          type: string
          description: Label
      required:
        - label
      title: OrganizationMemberTagRequest
    BulkOrganizationMemberTagAssignmentRequest:
      type: object
      properties:
        all:
          type: boolean
          description: If true, assign tags to all organization members. If false, assign tags to the provided users.
        excluded:
          type: array
          items:
            type: integer
          description: List of user IDs to exclude from the assignment.
        included:
          type: array
          items:
            type: integer
          description: List of user IDs to include in the assignment.
        overwrite:
          type: boolean
          default: false
          description: >-
            If true, replace all existing tag assignments for each user with the provided ones. If false, only add new
            assignments.
        tags:
          type: array
          items:
            type: integer
          description: List of tag IDs to assign.
      required:
        - all
      title: BulkOrganizationMemberTagAssignmentRequest
    organizations_member_tags_assign_Response_200:
      type: object
      properties:
        assigned:
          type: integer
      title: organizations_member_tags_assign_Response_200
    OrganizationMemberTagImportCreateRequest:
      type: object
      properties:
        bulk_tags:
          type: string
        file:
          type: string
          format: binary
      required:
        - bulk_tags
        - file
      title: OrganizationMemberTagImportCreateRequest
    organizations_member_tags_import_Response_201:
      type: object
      properties:
        import:
          type: integer
          description: The ID of the created import job
      title: organizations_member_tags_import_Response_201
    OrganizationMemberTagImportStatusStatusEnum:
      type: string
      enum:
        - created
        - in_progress
        - completed
        - failed
      description: |-
        * `created` - Created
        * `in_progress` - In Progress
        * `completed` - Completed
        * `failed` - Failed
      title: OrganizationMemberTagImportStatusStatusEnum
    OrganizationMemberTagImportStatus:
      type: object
      properties:
        assignments_created:
          type: integer
        created_at:
          type: string
          format: date-time
        finished_at:
          type:
            - string
            - 'null'
          format: date-time
        id:
          type: integer
        status:
          $ref: '#/components/schemas/OrganizationMemberTagImportStatusStatusEnum'
        tags_created:
          type: integer
        users_skipped:
          description: Any type
      required:
        - created_at
        - id
      description: Serializer for the status of a member tag import job.
      title: OrganizationMemberTagImportStatus
    PatchedOrganizationMemberTagRequest:
      type: object
      properties:
        label:
          type: string
          description: Label
      title: PatchedOrganizationMemberTagRequest
    OrganizationMemberTagBulkCreateRequest:
      type: object
      properties:
        labels:
          type: array
          items:
            type: string
          description: List of tag labels to create.
      required:
        - labels
      description: Serializer for bulk create of organization member tags.
      title: OrganizationMemberTagBulkCreateRequest
    organizations_member_tags_bulk_post_Response_201:
      type: object
      properties:
        created:
          type: integer
      title: organizations_member_tags_bulk_post_Response_201
    organizations_member_tags_bulk_delete_Response_200:
      type: object
      properties:
        deleted:
          type: integer
      title: organizations_member_tags_bulk_delete_Response_200
    ApiOrganizationsIdMembershipsGetParametersScope:
      type: string
      enum:
        - accessible
        - all
      title: ApiOrganizationsIdMembershipsGetParametersScope
    LseOrganizationMemberListContributedToProjectsItems:
      type: object
      properties:
        id:
          type: integer
        title:
          type: string
      required:
        - id
        - title
      title: LseOrganizationMemberListContributedToProjectsItems
    LseOrganizationMemberListCreatedProjectsItems:
      type: object
      properties:
        id:
          type: integer
        title:
          type: string
      required:
        - id
        - title
      title: LseOrganizationMemberListCreatedProjectsItems
    SimpleOrganizationMemberTag:
      type: object
      properties:
        id:
          type: integer
        label:
          type: string
      required:
        - id
        - label
      title: SimpleOrganizationMemberTag
    LseUserOrganizationMemberListContributedToProjectsItems:
      type: object
      properties:
        id:
          type: integer
        title:
          type: string
      required:
        - id
        - title
      title: LseUserOrganizationMemberListContributedToProjectsItems
    LseUserOrganizationMemberListCreatedProjectsItems:
      type: object
      properties:
        id:
          type: integer
        title:
          type: string
      required:
        - id
        - title
      title: LseUserOrganizationMemberListCreatedProjectsItems
    LseUserOrganizationMemberList:
      type: object
      properties:
        active_organization:
          type:
            - integer
            - 'null'
        allow_newsletters:
          type:
            - boolean
            - 'null'
          description: Allow sending newsletters to user
        avatar:
          type: string
        contributed_to_projects:
          type:
            - array
            - 'null'
          items:
            $ref: '#/components/schemas/LseUserOrganizationMemberListContributedToProjectsItems'
        created_projects:
          type:
            - array
            - 'null'
          items:
            $ref: '#/components/schemas/LseUserOrganizationMemberListCreatedProjectsItems'
        custom_hotkeys:
          oneOf:
            - description: Any type
            - type: 'null'
          description: Custom keyboard shortcuts configuration for the user interface
        date_joined:
          type: string
          format: date-time
        email:
          type: string
          format: email
        first_name:
          type: string
        id:
          type: integer
        initials:
          type: string
          default: '?'
        last_activity:
          type: string
          format: date-time
        last_name:
          type: string
        lse_fields:
          $ref: '#/components/schemas/LseFields'
        pause:
          type: string
        phone:
          type: string
        username:
          type: string
      required:
        - avatar
        - contributed_to_projects
        - created_projects
        - id
        - initials
        - last_activity
        - lse_fields
        - pause
        - username
      description: |-
        A ModelSerializer that takes additional arguments for
        "fields", "omit" and "expand" in order to
        control which fields are displayed, and whether to replace simple
        values with complex, nested serializations
      title: LseUserOrganizationMemberList
    LseOrganizationMemberList:
      type: object
      properties:
        concurrency:
          type: string
        contributed_to_projects:
          type:
            - array
            - 'null'
          items:
            $ref: '#/components/schemas/LseOrganizationMemberListContributedToProjectsItems'
        created_projects:
          type:
            - array
            - 'null'
          items:
            $ref: '#/components/schemas/LseOrganizationMemberListCreatedProjectsItems'
        id:
          type: integer
        organization:
          type: integer
          description: Organization ID
        role:
          type: string
        role_source:
          type: string
        tags:
          type: array
          items:
            $ref: '#/components/schemas/SimpleOrganizationMemberTag'
        user:
          $ref: '#/components/schemas/LseUserOrganizationMemberList'
        user_type:
          type: string
      required:
        - concurrency
        - contributed_to_projects
        - created_projects
        - id
        - organization
        - role
        - role_source
        - tags
        - user
        - user_type
      description: |-
        A serializer mixin that takes an additional `fields` argument that controls
        which fields should be displayed.
      title: LseOrganizationMemberList
    PaginatedLseOrganizationMemberListList:
      type: object
      properties:
        count:
          type: integer
        next:
          type:
            - string
            - 'null'
          format: uri
        previous:
          type:
            - string
            - 'null'
          format: uri
        results:
          type: array
          items:
            $ref: '#/components/schemas/LseOrganizationMemberList'
      required:
        - count
        - results
      title: PaginatedLseOrganizationMemberListList
    PatchedOrganizationMemberCreateUpdateRequest:
      type: object
      properties:
        role:
          $ref: '#/components/schemas/Role9e7Enum'
          description: |-
            Organization role

            * `OW` - Owner
            * `AD` - Administrator
            * `MA` - Manager
            * `RE` - Reviewer
            * `AN` - Annotator
            * `DI` - Deactivated
            * `NO` - Not Activated
        user_id:
          type: integer
          description: Member
      title: PatchedOrganizationMemberCreateUpdateRequest
    OrganizationMemberContributedToProjectsItems:
      type: object
      properties:
        id:
          type: integer
        title:
          type: string
      required:
        - id
        - title
      title: OrganizationMemberContributedToProjectsItems
    OrganizationMemberCreatedProjectsItems:
      type: object
      properties:
        id:
          type: integer
        title:
          type: string
      required:
        - id
        - title
      title: OrganizationMemberCreatedProjectsItems
    OrganizationMember:
      type: object
      properties:
        annotations_count:
          type: integer
        contributed_projects_count:
          type: integer
        contributed_to_projects:
          type:
            - array
            - 'null'
          items:
            $ref: '#/components/schemas/OrganizationMemberContributedToProjectsItems'
        created_at:
          type: string
          format: date-time
        created_projects:
          type:
            - array
            - 'null'
          items:
            $ref: '#/components/schemas/OrganizationMemberCreatedProjectsItems'
        organization:
          type: integer
          description: Organization ID
        user:
          type: integer
          description: User ID
      required:
        - annotations_count
        - contributed_projects_count
        - contributed_to_projects
        - created_at
        - created_projects
        - organization
        - user
      description: |-
        A serializer mixin that takes an additional `fields` argument that controls
        which fields should be displayed.
      title: OrganizationMember
    Default165Enum:
      type: string
      enum:
        - OW
        - AD
        - MA
        - RE
        - AN
        - DI
        - 'NO'
      title: Default165Enum
    Options165Enum:
      type: string
      enum:
        - OW
        - AD
        - MA
        - RE
        - AN
        - DI
        - 'NO'
      title: Options165Enum
    OrganizationPermission:
      type: object
      properties:
        default:
          type: array
          items:
            $ref: '#/components/schemas/Default165Enum'
        group:
          type:
            - string
            - 'null'
        id:
          type: integer
        label:
          type:
            - string
            - 'null'
        options:
          type: array
          items:
            $ref: '#/components/schemas/Options165Enum'
        organization:
          type: integer
        permission:
          type: string
        roles:
          type: array
          items:
            $ref: '#/components/schemas/Role9e7Enum'
          description: Organization roles
        tooltip:
          type:
            - string
            - 'null'
      required:
        - default
        - group
        - id
        - label
        - options
        - organization
        - permission
        - tooltip
      title: OrganizationPermission
    OrganizationPermissionRequest:
      type: object
      properties:
        permission:
          type: string
        roles:
          type: array
          items:
            $ref: '#/components/schemas/Role9e7Enum'
          description: Organization roles
      required:
        - permission
      title: OrganizationPermissionRequest
    ConfigurablePermissionOption:
      type: object
      properties:
        default:
          type: array
          items:
            $ref: '#/components/schemas/Role9e7Enum'
        group:
          type: string
        label:
          type: string
        options:
          type: array
          items:
            $ref: '#/components/schemas/Role9e7Enum'
        permission:
          type: string
        tooltip:
          type: string
      required:
        - default
        - options
        - permission
      title: ConfigurablePermissionOption
    PatchedOrganizationPermissionRequest:
      type: object
      properties:
        permission:
          type: string
        roles:
          type: array
          items:
            $ref: '#/components/schemas/Role9e7Enum'
          description: Organization roles
      title: PatchedOrganizationPermissionRequest
    LSEJWTSettings:
      type: object
      properties:
        api_token_ttl_days:
          type: integer
        api_tokens_enabled:
          type: boolean
          description: Enable JWT API token authentication for this organization
        legacy_api_tokens_enabled:
          type: boolean
          description: Enable legacy API token authentication for this organization
      required:
        - api_token_ttl_days
      title: LSEJWTSettings
    LSEJWTSettingsRequest:
      type: object
      properties:
        api_token_ttl_days:
          type: integer
        api_tokens_enabled:
          type: boolean
          description: Enable JWT API token authentication for this organization
        legacy_api_tokens_enabled:
          type: boolean
          description: Enable legacy API token authentication for this organization
      required:
        - api_token_ttl_days
      title: LSEJWTSettingsRequest
    ControlTagWeightRequest:
      type: object
      properties:
        labels:
          type: object
          additionalProperties:
            type: number
            format: double
          description: Per-label weights (0.0 to 1.0). Zero excludes the label from agreement.
        overall:
          type: number
          format: double
          description: Overall weight for this control tag (0.0 to 1.0). Zero excludes the tag from agreement.
        type:
          type: string
          description: Control tag type from the labeling config (e.g. Choices, Labels, TextArea).
      required:
        - overall
        - type
      description: |-
        Weights configuration for a single control tag.

        Structure: {"overall": 0.5, "type": "Choices", "labels": {"cat": 1.0, "dog": 0.0}}
      title: ControlTagWeightRequest
    LseProjectCreateRequest:
      type: object
      properties:
        annotator_evaluation_enabled:
          type: boolean
          description: Enable annotator evaluation for the project
        color:
          type:
            - string
            - 'null'
        control_weights:
          type:
            - object
            - 'null'
          additionalProperties:
            $ref: '#/components/schemas/ControlTagWeightRequest'
          description: >-
            Dict of weights for each control tag in metric calculation. Keys are control tag names from the labeling
            config. At least one tag must have a non-zero overall weight.
        created_by:
          $ref: '#/components/schemas/UserSimpleRequest'
          description: Project owner
        custom_interface_code:
          type:
            - string
            - 'null'
        custom_interface_compiled:
          type:
            - string
            - 'null'
        custom_interface_params:
          oneOf:
            - description: Any type
            - type: 'null'
        description:
          type:
            - string
            - 'null'
          description: Project Description
        enable_empty_annotation:
          type: boolean
          description: Allow annotators to submit empty annotations
        evaluate_predictions_automatically:
          type: boolean
          description: Retrieve and display predictions when loading a task
        expert_instruction:
          type:
            - string
            - 'null'
          description: Labeling instructions in HTML format
        input_schema:
          oneOf:
            - description: Any type
            - type: 'null'
        is_draft:
          type: boolean
          description: Whether or not the project is in the middle of being created
        is_published:
          type: boolean
          description: Whether or not the project is published to annotators
        label_config:
          type:
            - string
            - 'null'
          description: Label config in XML format. See more about it in documentation
        maximum_annotations:
          type: integer
          description: >-
            Maximum number of annotations for one task. If the number of annotations per task is equal or greater to
            this value, the task is completed (is_labeled=True)
        min_annotations_to_start_training:
          type: integer
          description: Minimum number of completed tasks after which model training is started
        model_version:
          type:
            - string
            - 'null'
          description: Machine learning model version
        organization:
          type:
            - integer
            - 'null'
        output_schema:
          oneOf:
            - description: Any type
            - type: 'null'
        overlap_cohort_percentage:
          type: integer
        pinned_at:
          type:
            - string
            - 'null'
          format: date-time
          description: Pinned date and time
        reveal_preannotations_interactively:
          type: boolean
          description: Reveal pre-annotations interactively
        sampling:
          oneOf:
            - $ref: '#/components/schemas/SamplingDe5Enum'
            - type: 'null'
        show_annotation_history:
          type: boolean
          description: Show annotation history to annotator
        show_collab_predictions:
          type: boolean
          description: If set, the annotator can view model predictions
        show_ground_truth_first:
          type: boolean
          description: 'Onboarding mode (true): show ground truth tasks first in the labeling stream'
        show_instruction:
          type: boolean
          description: Show instructions to the annotator before they start
        show_overlap_first:
          type: boolean
        show_skip_button:
          type: boolean
          description: Show a skip button in interface and allow annotators to skip the task
        skip_queue:
          oneOf:
            - $ref: '#/components/schemas/SkipQueueEnum'
            - type: 'null'
        source_interface_id:
          type:
            - integer
            - 'null'
        source_interface_version:
          type:
            - integer
            - 'null'
        task_data_login:
          type:
            - string
            - 'null'
          description: 'Task data credentials: login'
        task_data_password:
          type:
            - string
            - 'null'
          description: 'Task data credentials: password'
        title:
          type:
            - string
            - 'null'
          description: Project Title
        use_custom_interface:
          type: boolean
          default: false
        workspace:
          type: integer
          description: In Workspace
      description: |-
        Serializer get numbers from project queryset annotation,
        make sure, that you use correct one(Project.objects.with_counts())
      title: LseProjectCreateRequest
    LseProjectCreate:
      type: object
      properties:
        annotator_evaluation_enabled:
          type: boolean
          description: Enable annotator evaluation for the project
        color:
          type:
            - string
            - 'null'
        config_has_control_tags:
          type: boolean
          description: Flag to detect is project ready for labeling
        config_suitable_for_bulk_annotation:
          type: boolean
          description: Flag to detect is project ready for bulk annotation
        control_weights:
          type:
            - object
            - 'null'
          additionalProperties:
            $ref: '#/components/schemas/ControlTagWeight'
          description: >-
            Dict of weights for each control tag in metric calculation. Keys are control tag names from the labeling
            config. At least one tag must have a non-zero overall weight.
        created_at:
          type: string
          format: date-time
        created_by:
          $ref: '#/components/schemas/UserSimple'
          description: Project owner
        custom_interface_code:
          type:
            - string
            - 'null'
        custom_interface_compiled:
          type:
            - string
            - 'null'
        custom_interface_params:
          oneOf:
            - description: Any type
            - type: 'null'
        description:
          type:
            - string
            - 'null'
          description: Project Description
        enable_empty_annotation:
          type: boolean
          description: Allow annotators to submit empty annotations
        evaluate_predictions_automatically:
          type: boolean
          description: Retrieve and display predictions when loading a task
        expert_instruction:
          type:
            - string
            - 'null'
          description: Labeling instructions in HTML format
        finished_task_number:
          type: integer
          description: Finished tasks
        ground_truth_number:
          type: integer
          description: Honeypot annotation number in project
        id:
          type: integer
        input_schema:
          oneOf:
            - description: Any type
            - type: 'null'
        is_draft:
          type: boolean
          description: Whether or not the project is in the middle of being created
        is_published:
          type: boolean
          description: Whether or not the project is published to annotators
        label_config:
          type:
            - string
            - 'null'
          description: Label config in XML format. See more about it in documentation
        maximum_annotations:
          type: integer
          description: >-
            Maximum number of annotations for one task. If the number of annotations per task is equal or greater to
            this value, the task is completed (is_labeled=True)
        min_annotations_to_start_training:
          type: integer
          description: Minimum number of completed tasks after which model training is started
        model_version:
          type:
            - string
            - 'null'
          description: Machine learning model version
        num_tasks_with_annotations:
          type: integer
          description: Tasks with annotations count
        organization:
          type:
            - integer
            - 'null'
        output_schema:
          oneOf:
            - description: Any type
            - type: 'null'
        overlap_cohort_percentage:
          type: integer
        parsed_label_config:
          type: object
          additionalProperties:
            description: Any type
          description: JSON-formatted labeling configuration
        pinned_at:
          type:
            - string
            - 'null'
          format: date-time
          description: Pinned date and time
        queue_done:
          type: integer
        queue_total:
          type: integer
        reveal_preannotations_interactively:
          type: boolean
          description: Reveal pre-annotations interactively
        sampling:
          oneOf:
            - $ref: '#/components/schemas/SamplingDe5Enum'
            - type: 'null'
        show_annotation_history:
          type: boolean
          description: Show annotation history to annotator
        show_collab_predictions:
          type: boolean
          description: If set, the annotator can view model predictions
        show_ground_truth_first:
          type: boolean
          description: 'Onboarding mode (true): show ground truth tasks first in the labeling stream'
        show_instruction:
          type: boolean
          description: Show instructions to the annotator before they start
        show_overlap_first:
          type: boolean
        show_skip_button:
          type: boolean
          description: Show a skip button in interface and allow annotators to skip the task
        skip_queue:
          oneOf:
            - $ref: '#/components/schemas/SkipQueueEnum'
            - type: 'null'
        skipped_annotations_number:
          type: integer
          description: Skipped by collaborators annotation number in project
        source_interface_id:
          type:
            - integer
            - 'null'
        source_interface_version:
          type:
            - integer
            - 'null'
        start_training_on_annotation_update:
          type: boolean
          description: Start model training after any annotations are submitted or updated
        state:
          type: string
        task_data_login:
          type:
            - string
            - 'null'
          description: 'Task data credentials: login'
        task_data_password:
          type:
            - string
            - 'null'
          description: 'Task data credentials: password'
        task_number:
          type: integer
          description: Total task number in project
        title:
          type:
            - string
            - 'null'
          description: Project Title
        total_annotations_number:
          type: integer
          description: Total annotations number in project including skipped_annotations_number and ground_truth_number.
        total_predictions_number:
          type: integer
          description: >-
            Total predictions number in project including skipped_annotations_number, ground_truth_number, and
            useful_annotation_number.
        use_custom_interface:
          type: boolean
          default: false
        useful_annotation_number:
          type: integer
          description: >-
            Useful annotation number in project not including skipped_annotations_number and ground_truth_number. Total
            annotations = annotation_number + skipped_annotations_number + ground_truth_number
        workspace:
          type: integer
          description: In Workspace
      required:
        - config_has_control_tags
        - config_suitable_for_bulk_annotation
        - created_at
        - finished_task_number
        - ground_truth_number
        - id
        - num_tasks_with_annotations
        - parsed_label_config
        - queue_done
        - queue_total
        - skipped_annotations_number
        - start_training_on_annotation_update
        - state
        - task_number
        - total_annotations_number
        - total_predictions_number
        - useful_annotation_number
      description: |-
        Serializer get numbers from project queryset annotation,
        make sure, that you use correct one(Project.objects.with_counts())
      title: LseProjectCreate
    LseProjectCounts:
      type: object
      properties:
        finished_task_number:
          type: integer
        ground_truth_number:
          type: integer
          description: Honeypot annotation number in project
        id:
          type: integer
        num_tasks_with_annotations:
          type:
            - integer
            - 'null'
        queue_done:
          type: integer
        queue_left:
          type: integer
        queue_total:
          type: string
        rejected:
          type: integer
        review_total_tasks:
          type: integer
        reviewed_number:
          type: integer
        skipped_annotations_number:
          type: string
        task_number:
          type: integer
          description: Total task number in project
        total_annotations_number:
          type: string
        total_predictions_number:
          type: integer
        useful_annotation_number:
          type:
            - integer
            - 'null'
      required:
        - finished_task_number
        - ground_truth_number
        - id
        - num_tasks_with_annotations
        - queue_done
        - queue_left
        - queue_total
        - rejected
        - review_total_tasks
        - reviewed_number
        - skipped_annotations_number
        - task_number
        - total_annotations_number
        - total_predictions_number
        - useful_annotation_number
      description: |-
        Serializer get numbers from project queryset annotation,
        make sure, that you use correct one(Project.objects.with_counts())
      title: LseProjectCounts
    PaginatedLseProjectCountsList:
      type: object
      properties:
        count:
          type: integer
        next:
          type:
            - string
            - 'null'
          format: uri
        previous:
          type:
            - string
            - 'null'
          format: uri
        results:
          type: array
          items:
            $ref: '#/components/schemas/LseProjectCounts'
      required:
        - count
        - results
      title: PaginatedLseProjectCountsList
    LseProjectResponse:
      type: object
      properties:
        agreement_methodology:
          $ref: '#/components/schemas/AgreementMethodologyEnum'
          description: |-
            Methodology (Consensus / Pairwise Averaging)

            * `consensus` - Consensus
            * `pairwise` - Pairwise Averaging
        agreement_threshold:
          type:
            - string
            - 'null'
          format: decimal
          description: Agreement threshold
        allow_stream:
          type: boolean
        annotation_limit_count:
          type:
            - integer
            - 'null'
          description: Limit by number of tasks
        annotation_limit_percent:
          type:
            - string
            - 'null'
          format: decimal
          description: Limit by percentage of tasks
        annotator_evaluation_continuous_tasks:
          type: integer
          default: 0
          description: 'Continuous Evaluation: Required tasks'
        annotator_evaluation_enabled:
          type: boolean
          description: Evaluate all annotators against ground truth
        annotator_evaluation_minimum_score:
          type:
            - string
            - 'null'
          format: decimal
          default: '95.00'
          description: Score required to pass evaluation
        annotator_evaluation_minimum_tasks:
          type:
            - integer
            - 'null'
          default: 10
          description: Number of tasks for evaluation
        annotator_evaluation_onboarding_tasks:
          type: integer
          default: 0
          description: 'Onboarding Evaluation: Required tasks'
        assignment_settings:
          $ref: '#/components/schemas/AssignmentSettings'
        color:
          type:
            - string
            - 'null'
          description: Color
        comment_classification_config:
          type: string
        config_has_control_tags:
          type: boolean
          description: Flag to detect is project ready for labeling
        config_suitable_for_bulk_annotation:
          type: boolean
          description: Flag to detect is project ready for bulk annotation
        control_weights:
          type:
            - object
            - 'null'
          additionalProperties:
            $ref: '#/components/schemas/ControlTagWeight'
          description: >-
            Dict of weights for each control tag in metric calculation. Keys are control tag names from the labeling
            config. At least one tag must have a non-zero overall weight.
        created_at:
          type: string
          format: date-time
        created_by:
          $ref: '#/components/schemas/UserSimple'
          description: Project owner
        custom_interface_code:
          type:
            - string
            - 'null'
        custom_interface_compiled:
          type:
            - string
            - 'null'
        custom_interface_params:
          oneOf:
            - description: Any type
            - type: 'null'
        custom_script:
          type: string
          description: Plugins
        custom_task_lock_ttl:
          type:
            - integer
            - 'null'
          description: Task reservation time. TTL in seconds (UI displays and edits this value in minutes).
        data_types:
          type:
            - object
            - 'null'
          additionalProperties:
            description: Any type
        description:
          type:
            - string
            - 'null'
          description: Description
        duplication_done:
          type: boolean
          default: false
        duplication_status:
          type: string
        enable_empty_annotation:
          type: boolean
          description: Allow empty annotations
        evaluate_predictions_automatically:
          type: boolean
          description: Retrieve and display predictions when loading a task
        expert_instruction:
          type:
            - string
            - 'null'
          description: Instructions
        finished_task_number:
          type: integer
          description: Finished tasks
        ground_truth_number:
          type: integer
          description: Honeypot annotation number in project
        id:
          type: integer
        input_schema:
          oneOf:
            - description: Any type
            - type: 'null'
        is_dimensions_enabled:
          type: string
        is_draft:
          type: boolean
          description: Whether or not the project is in the middle of being created
        is_published:
          type: boolean
          description: Whether or not the project is published to annotators
        label_config:
          type:
            - string
            - 'null'
          description: Labeling Configuration
        max_additional_annotators_assignable:
          type:
            - integer
            - 'null'
          description: Maximum additional annotators
        maximum_annotations:
          type: integer
          description: Annotations per task
        members:
          type: string
        members_count:
          type: integer
        min_annotations_to_start_training:
          type: integer
          description: Minimum number of completed tasks after which model training is started
        model_version:
          type:
            - string
            - 'null'
          description: Machine learning model version
        num_tasks_with_annotations:
          type: integer
        organization:
          type:
            - integer
            - 'null'
        output_schema:
          oneOf:
            - description: Any type
            - type: 'null'
        overlap_cohort_percentage:
          type: integer
          description: Annotations per task coverage
        parsed_label_config:
          type: object
          additionalProperties:
            description: Any type
          description: JSON-formatted labeling configuration
        pause_on_failed_annotator_evaluation:
          type:
            - boolean
            - 'null'
          default: false
          description: Pause annotator on failed evaluation
        pinned_at:
          type:
            - string
            - 'null'
          format: date-time
          description: Pinned date and time
        prompts:
          type: string
        queue_done:
          type: integer
        queue_left:
          type: integer
        queue_total:
          type: integer
        ready:
          type: boolean
        rejected:
          type: integer
        require_comment_on_skip:
          type: boolean
          default: false
          description: Require comment to skip
        reveal_preannotations_interactively:
          type: boolean
          description: Reveal pre-annotations interactively
        review_settings:
          $ref: '#/components/schemas/ReviewSettings'
        review_total_tasks:
          type: integer
        reviewed_number:
          type: integer
        reviewer_queue_total:
          type: integer
        sampling:
          oneOf:
            - $ref: '#/components/schemas/SamplingDe5Enum'
            - type: 'null'
        show_annotation_history:
          type: boolean
          description: Show Data Manager to Annotators
        show_collab_predictions:
          type: boolean
          description: Use predictions to pre-label Tasks
        show_ground_truth_first:
          type: boolean
          description: 'Onboarding mode (true): show ground truth tasks first in the labeling stream'
        show_instruction:
          type: boolean
          description: Show instructions before labeling
        show_overlap_first:
          type: boolean
          description: Show tasks with overlap first
        show_skip_button:
          type: boolean
          description: Allow skipping tasks
        show_unused_data_columns_to_annotators:
          type:
            - boolean
            - 'null'
          description: >-
            Show only columns used in labeling configuration to Annotators. API uses inverse field semantics here: set
            false to show only used columns, set true to show all task.data columns.
        skip_queue:
          oneOf:
            - $ref: '#/components/schemas/SkipQueueEnum'
            - type: 'null'
        skipped_annotations_number:
          type: integer
        source_interface_id:
          type:
            - integer
            - 'null'
        source_interface_version:
          type:
            - integer
            - 'null'
        start_training_on_annotation_update:
          type: boolean
          description: Start model training after any annotations are submitted or updated
        state:
          type: string
        strict_task_overlap:
          type: boolean
          default: true
          description: Enforce strict overlap limit
        task_data_login:
          type:
            - string
            - 'null'
          description: Login
        task_data_password:
          type:
            - string
            - 'null'
          description: Password
        task_number:
          type: integer
          description: Total task number in project
        title:
          type:
            - string
            - 'null'
          description: Project Name
        total_annotations_number:
          type: integer
        total_predictions_number:
          type:
            - integer
            - 'null'
        use_custom_interface:
          type: boolean
          default: false
        useful_annotation_number:
          type:
            - integer
            - 'null'
        workspace:
          type: string
        workspace_title:
          type: string
      required:
        - allow_stream
        - assignment_settings
        - config_has_control_tags
        - config_suitable_for_bulk_annotation
        - created_at
        - data_types
        - finished_task_number
        - ground_truth_number
        - id
        - is_dimensions_enabled
        - members
        - members_count
        - num_tasks_with_annotations
        - parsed_label_config
        - prompts
        - queue_done
        - queue_left
        - queue_total
        - ready
        - rejected
        - review_settings
        - review_total_tasks
        - reviewed_number
        - reviewer_queue_total
        - skipped_annotations_number
        - start_training_on_annotation_update
        - state
        - task_number
        - total_annotations_number
        - total_predictions_number
        - useful_annotation_number
        - workspace
        - workspace_title
      description: >-
        Serializer for project response, combining all the serializers for different roles. Don't use it except for
        Spectacular/Fern definitions.
      title: LseProjectResponse
    AssignmentSettingsRequest:
      type: object
      properties:
        label_stream_task_distribution:
          oneOf:
            - $ref: '#/components/schemas/LabelStreamTaskDistributionEnum'
            - type: 'null'
          description: |-
            Automatic / Manual

            * `auto_distribution` - Label Stream distributes tasks automatically to annotators
            * `assigned_only` - Label Stream shows tasks only to assigned users
        project:
          type:
            - integer
            - 'null'
      title: AssignmentSettingsRequest
    ReviewSettingsRequest:
      type: object
      properties:
        anonymize_annotations:
          type: boolean
          description: Hide annotator names from annotations while review
        instruction:
          type:
            - string
            - 'null'
          description: Instructions
        only_finished_tasks:
          type: boolean
          description: Show only finished tasks in the review stream
        project:
          type:
            - integer
            - 'null'
        requeue_rejected_tasks_mode:
          oneOf:
            - $ref: '#/components/schemas/RequeueRejectedTasksModeEnum'
            - type: 'null'
          description: >-
            Remove rejected annotations from labeling queue / Requeue rejected annotations back to annotators / Allow
            reviewer to decide: Remove or Requeue


            * `requeue` - Requeue

            * `remove` - Remove

            * `flexible` - Flexible
        require_comment_on_reject:
          type: boolean
          description: Reviewers must leave a comment on reject
        review_criteria:
          oneOf:
            - $ref: '#/components/schemas/ReviewCriteriaEnum'
            - type: 'null'
          description: |-
            Task is reviewed after at least one accepted annotation / Task is reviewed when all annotations are reviewed

            * `all` - Task is reviewed if all annotations are reviewed
            * `one` - Task is reviewed if at least one annotation is reviewed
        review_only_manual_assignments:
          type: boolean
          description: Show only manually assigned tasks in the review stream
        review_task_limit_percent:
          type:
            - string
            - 'null'
          format: decimal
          description: Task limit (%)
        sampling:
          oneOf:
            - $ref: '#/components/schemas/ReviewSettingsSamplingEnum'
            - type: 'null'
          description: |-
            By Task ID / Random

            * `task_id` - By Task ID
            * `random` - Random
        show_agreement_to_reviewers:
          type: boolean
          description: Show agreement to reviewers in the Data Manager
        show_data_manager_to_reviewers:
          type: boolean
          description: Show the Data Manager to reviewers
        show_instruction:
          type: boolean
          description: Show before reviewing
        show_unused_data_columns_to_reviewers:
          type:
            - boolean
            - 'null'
          description: Show unused task data columns to reviewers in the Data Manager
      title: ReviewSettingsRequest
    PatchedLseProjectUpdateRequest:
      type: object
      properties:
        agreement_methodology:
          $ref: '#/components/schemas/AgreementMethodologyEnum'
          description: |-
            Methodology (Consensus / Pairwise Averaging)

            * `consensus` - Consensus
            * `pairwise` - Pairwise Averaging
        agreement_threshold:
          type:
            - string
            - 'null'
          format: decimal
          description: Agreement threshold
        annotation_limit_count:
          type:
            - integer
            - 'null'
          description: Limit by number of tasks
        annotation_limit_percent:
          type:
            - string
            - 'null'
          format: decimal
          description: Limit by percentage of tasks
        annotator_evaluation_continuous_tasks:
          type: integer
          default: 0
          description: 'Continuous Evaluation: Required tasks'
        annotator_evaluation_enabled:
          type: boolean
          description: Evaluate all annotators against ground truth
        annotator_evaluation_minimum_score:
          type:
            - string
            - 'null'
          format: decimal
          default: '95.00'
          description: Score required to pass evaluation
        annotator_evaluation_minimum_tasks:
          type:
            - integer
            - 'null'
          default: 10
          description: Number of tasks for evaluation
        annotator_evaluation_onboarding_tasks:
          type: integer
          default: 0
          description: 'Onboarding Evaluation: Required tasks'
        assignment_settings:
          $ref: '#/components/schemas/AssignmentSettingsRequest'
        color:
          type:
            - string
            - 'null'
          description: Color
        comment_classification_config:
          type: string
        control_weights:
          type:
            - object
            - 'null'
          additionalProperties:
            $ref: '#/components/schemas/ControlTagWeightRequest'
          description: >-
            Dict of weights for each control tag in metric calculation. Keys are control tag names from the labeling
            config. At least one tag must have a non-zero overall weight.
        created_by:
          $ref: '#/components/schemas/UserSimpleRequest'
          description: Project owner
        custom_interface_code:
          type:
            - string
            - 'null'
        custom_interface_compiled:
          type:
            - string
            - 'null'
        custom_interface_params:
          oneOf:
            - description: Any type
            - type: 'null'
        custom_script:
          type: string
          description: Plugins
        custom_task_lock_ttl:
          type:
            - integer
            - 'null'
          description: Task reservation time. TTL in seconds (UI displays and edits this value in minutes).
        description:
          type:
            - string
            - 'null'
          description: Description
        enable_empty_annotation:
          type: boolean
          description: Allow empty annotations
        evaluate_predictions_automatically:
          type: boolean
          description: Retrieve and display predictions when loading a task
        expert_instruction:
          type:
            - string
            - 'null'
          description: Instructions
        input_schema:
          oneOf:
            - description: Any type
            - type: 'null'
        is_draft:
          type: boolean
          description: Whether or not the project is in the middle of being created
        is_published:
          type: boolean
          description: Whether or not the project is published to annotators
        label_config:
          type:
            - string
            - 'null'
          description: Labeling Configuration
        max_additional_annotators_assignable:
          type:
            - integer
            - 'null'
          description: Maximum additional annotators
        maximum_annotations:
          type: integer
          description: Annotations per task
        min_annotations_to_start_training:
          type: integer
          description: Minimum number of completed tasks after which model training is started
        model_version:
          type:
            - string
            - 'null'
          description: Machine learning model version
        organization:
          type:
            - integer
            - 'null'
        output_schema:
          oneOf:
            - description: Any type
            - type: 'null'
        overlap_cohort_percentage:
          type: integer
          description: Annotations per task coverage
        pause_on_failed_annotator_evaluation:
          type:
            - boolean
            - 'null'
          default: false
          description: Pause annotator on failed evaluation
        pinned_at:
          type:
            - string
            - 'null'
          format: date-time
          description: Pinned date and time
        require_comment_on_skip:
          type: boolean
          default: false
          description: Require comment to skip
        reveal_preannotations_interactively:
          type: boolean
          description: Reveal pre-annotations interactively
        review_settings:
          $ref: '#/components/schemas/ReviewSettingsRequest'
        sampling:
          oneOf:
            - $ref: '#/components/schemas/SamplingDe5Enum'
            - type: 'null'
        show_annotation_history:
          type: boolean
          description: Show Data Manager to Annotators
        show_collab_predictions:
          type: boolean
          description: Use predictions to pre-label Tasks
        show_ground_truth_first:
          type: boolean
          description: 'Onboarding mode (true): show ground truth tasks first in the labeling stream'
        show_instruction:
          type: boolean
          description: Show instructions before labeling
        show_overlap_first:
          type: boolean
          description: Show tasks with overlap first
        show_skip_button:
          type: boolean
          description: Allow skipping tasks
        show_unused_data_columns_to_annotators:
          type:
            - boolean
            - 'null'
          description: >-
            Show only columns used in labeling configuration to Annotators. API uses inverse field semantics here: set
            false to show only used columns, set true to show all task.data columns.
        skip_queue:
          oneOf:
            - $ref: '#/components/schemas/SkipQueueEnum'
            - type: 'null'
        source_interface_id:
          type:
            - integer
            - 'null'
        source_interface_version:
          type:
            - integer
            - 'null'
        strict_task_overlap:
          type: boolean
          default: true
          description: Enforce strict overlap limit
        task_data_login:
          type:
            - string
            - 'null'
          description: Login
        task_data_password:
          type:
            - string
            - 'null'
          description: Password
        title:
          type:
            - string
            - 'null'
          description: Project Name
        use_custom_interface:
          type: boolean
          default: false
        workspace:
          type: integer
          description: Workspace
      description: |-
        Serializer get numbers from project queryset annotation,
        make sure, that you use correct one(Project.objects.with_counts())
      title: PatchedLseProjectUpdateRequest
    LseProjectUpdate:
      type: object
      properties:
        agreement_methodology:
          $ref: '#/components/schemas/AgreementMethodologyEnum'
          description: |-
            Methodology (Consensus / Pairwise Averaging)

            * `consensus` - Consensus
            * `pairwise` - Pairwise Averaging
        agreement_threshold:
          type:
            - string
            - 'null'
          format: decimal
          description: Agreement threshold
        annotation_limit_count:
          type:
            - integer
            - 'null'
          description: Limit by number of tasks
        annotation_limit_percent:
          type:
            - string
            - 'null'
          format: decimal
          description: Limit by percentage of tasks
        annotator_evaluation_continuous_tasks:
          type: integer
          default: 0
          description: 'Continuous Evaluation: Required tasks'
        annotator_evaluation_enabled:
          type: boolean
          description: Evaluate all annotators against ground truth
        annotator_evaluation_minimum_score:
          type:
            - string
            - 'null'
          format: decimal
          default: '95.00'
          description: Score required to pass evaluation
        annotator_evaluation_minimum_tasks:
          type:
            - integer
            - 'null'
          default: 10
          description: Number of tasks for evaluation
        annotator_evaluation_onboarding_tasks:
          type: integer
          default: 0
          description: 'Onboarding Evaluation: Required tasks'
        assignment_settings:
          $ref: '#/components/schemas/AssignmentSettings'
        color:
          type:
            - string
            - 'null'
          description: Color
        comment_classification_config:
          type: string
        config_has_control_tags:
          type: boolean
          description: Flag to detect is project ready for labeling
        config_suitable_for_bulk_annotation:
          type: boolean
          description: Flag to detect is project ready for bulk annotation
        control_weights:
          type:
            - object
            - 'null'
          additionalProperties:
            $ref: '#/components/schemas/ControlTagWeight'
          description: >-
            Dict of weights for each control tag in metric calculation. Keys are control tag names from the labeling
            config. At least one tag must have a non-zero overall weight.
        created_at:
          type: string
          format: date-time
        created_by:
          $ref: '#/components/schemas/UserSimple'
          description: Project owner
        custom_interface_code:
          type:
            - string
            - 'null'
        custom_interface_compiled:
          type:
            - string
            - 'null'
        custom_interface_params:
          oneOf:
            - description: Any type
            - type: 'null'
        custom_script:
          type: string
          description: Plugins
        custom_task_lock_ttl:
          type:
            - integer
            - 'null'
          description: Task reservation time. TTL in seconds (UI displays and edits this value in minutes).
        description:
          type:
            - string
            - 'null'
          description: Description
        enable_empty_annotation:
          type: boolean
          description: Allow empty annotations
        evaluate_predictions_automatically:
          type: boolean
          description: Retrieve and display predictions when loading a task
        expert_instruction:
          type:
            - string
            - 'null'
          description: Instructions
        finished_task_number:
          type: integer
          description: Finished tasks
        ground_truth_number:
          type: integer
          description: Honeypot annotation number in project
        id:
          type: integer
        input_schema:
          oneOf:
            - description: Any type
            - type: 'null'
        is_draft:
          type: boolean
          description: Whether or not the project is in the middle of being created
        is_published:
          type: boolean
          description: Whether or not the project is published to annotators
        label_config:
          type:
            - string
            - 'null'
          description: Labeling Configuration
        max_additional_annotators_assignable:
          type:
            - integer
            - 'null'
          description: Maximum additional annotators
        maximum_annotations:
          type: integer
          description: Annotations per task
        min_annotations_to_start_training:
          type: integer
          description: Minimum number of completed tasks after which model training is started
        model_version:
          type:
            - string
            - 'null'
          description: Machine learning model version
        num_tasks_with_annotations:
          type: integer
          description: Tasks with annotations count
        organization:
          type:
            - integer
            - 'null'
        output_schema:
          oneOf:
            - description: Any type
            - type: 'null'
        overlap_cohort_percentage:
          type: integer
          description: Annotations per task coverage
        parsed_label_config:
          type: object
          additionalProperties:
            description: Any type
          description: JSON-formatted labeling configuration
        pause_on_failed_annotator_evaluation:
          type:
            - boolean
            - 'null'
          default: false
          description: Pause annotator on failed evaluation
        pinned_at:
          type:
            - string
            - 'null'
          format: date-time
          description: Pinned date and time
        prompts:
          type: string
        queue_done:
          type: integer
        queue_total:
          type: integer
        require_comment_on_skip:
          type: boolean
          default: false
          description: Require comment to skip
        reveal_preannotations_interactively:
          type: boolean
          description: Reveal pre-annotations interactively
        review_settings:
          $ref: '#/components/schemas/ReviewSettings'
        sampling:
          oneOf:
            - $ref: '#/components/schemas/SamplingDe5Enum'
            - type: 'null'
        show_annotation_history:
          type: boolean
          description: Show Data Manager to Annotators
        show_collab_predictions:
          type: boolean
          description: Use predictions to pre-label Tasks
        show_ground_truth_first:
          type: boolean
          description: 'Onboarding mode (true): show ground truth tasks first in the labeling stream'
        show_instruction:
          type: boolean
          description: Show instructions before labeling
        show_overlap_first:
          type: boolean
          description: Show tasks with overlap first
        show_skip_button:
          type: boolean
          description: Allow skipping tasks
        show_unused_data_columns_to_annotators:
          type:
            - boolean
            - 'null'
          description: >-
            Show only columns used in labeling configuration to Annotators. API uses inverse field semantics here: set
            false to show only used columns, set true to show all task.data columns.
        skip_queue:
          oneOf:
            - $ref: '#/components/schemas/SkipQueueEnum'
            - type: 'null'
        skipped_annotations_number:
          type: integer
          description: Skipped by collaborators annotation number in project
        source_interface_id:
          type:
            - integer
            - 'null'
        source_interface_version:
          type:
            - integer
            - 'null'
        start_training_on_annotation_update:
          type: boolean
          description: Start model training after any annotations are submitted or updated
        state:
          type: string
        strict_task_overlap:
          type: boolean
          default: true
          description: Enforce strict overlap limit
        task_data_login:
          type:
            - string
            - 'null'
          description: Login
        task_data_password:
          type:
            - string
            - 'null'
          description: Password
        task_number:
          type: integer
          description: Total task number in project
        title:
          type:
            - string
            - 'null'
          description: Project Name
        total_annotations_number:
          type: integer
          description: Total annotations number in project including skipped_annotations_number and ground_truth_number.
        total_predictions_number:
          type: integer
          description: >-
            Total predictions number in project including skipped_annotations_number, ground_truth_number, and
            useful_annotation_number.
        use_custom_interface:
          type: boolean
          default: false
        useful_annotation_number:
          type: integer
          description: >-
            Useful annotation number in project not including skipped_annotations_number and ground_truth_number. Total
            annotations = annotation_number + skipped_annotations_number + ground_truth_number
        workspace:
          type: integer
          description: Workspace
        workspace_title:
          type: string
      required:
        - assignment_settings
        - config_has_control_tags
        - config_suitable_for_bulk_annotation
        - created_at
        - finished_task_number
        - ground_truth_number
        - id
        - num_tasks_with_annotations
        - parsed_label_config
        - prompts
        - queue_done
        - queue_total
        - review_settings
        - skipped_annotations_number
        - start_training_on_annotation_update
        - state
        - task_number
        - total_annotations_number
        - total_predictions_number
        - useful_annotation_number
        - workspace
        - workspace_title
      description: |-
        Serializer get numbers from project queryset annotation,
        make sure, that you use correct one(Project.objects.with_counts())
      title: LseProjectUpdate
    ProjectDuplicateModeEnum:
      type: string
      enum:
        - settings
        - settings,data
      description: |-
        * `settings` - Only settings
        * `settings,data` - Settings and tasks
      title: ProjectDuplicateModeEnum
    ProjectDuplicateRequest:
      type: object
      properties:
        description:
          type: string
          default: ''
          description: Project Description
        mode:
          $ref: '#/components/schemas/ProjectDuplicateModeEnum'
          description: |-
            What to Duplicate (Project configuration only / Project configuration and tasks)

            * `settings` - Only settings
            * `settings,data` - Settings and tasks
        title:
          type: string
          description: Project Name
        workspace:
          type: integer
          description: Destination Workspace
      required:
        - mode
        - title
        - workspace
      title: ProjectDuplicateRequest
    projects_duplicate_Response_201:
      type: object
      properties:
        id:
          type: integer
          description: The ID of the duplicated project.
      required:
        - id
      title: projects_duplicate_Response_201
    AnnotationRequestResultItems:
      type: object
      properties: {}
      description: List of annotated regions for the task
      title: AnnotationRequestResultItems
    AnnotationRequest:
      type: object
      properties:
        bulk_created:
          type:
            - boolean
            - 'null'
          description: Annotation was created in bulk mode
        completed_by:
          type: integer
        draft_created_at:
          type:
            - string
            - 'null'
          format: date-time
          description: Draft creation time
        ground_truth:
          type: boolean
          description: This annotation is a Ground Truth (ground_truth)
        import_id:
          type:
            - integer
            - 'null'
          format: int64
          description: Original annotation ID that was at the import step or NULL if this annotation wasn't imported
        last_action:
          oneOf:
            - $ref: '#/components/schemas/LastActionEnum'
            - type: 'null'
          description: |-
            Action which was performed in the last annotation history item

            * `prediction` - Created from prediction
            * `propagated_annotation` - Created from another annotation
            * `imported` - Imported
            * `submitted` - Submitted
            * `updated` - Updated
            * `skipped` - Skipped
            * `accepted` - Accepted
            * `rejected` - Rejected
            * `fixed_and_accepted` - Fixed and accepted
            * `deleted_review` - Deleted review
        last_created_by:
          type:
            - integer
            - 'null'
          description: User who created the last annotation history item
        lead_time:
          type:
            - number
            - 'null'
          format: double
          description: How much time it took to annotate the task
        parent_annotation:
          type:
            - integer
            - 'null'
          description: Points to the parent annotation from which this annotation was created
        parent_prediction:
          type:
            - integer
            - 'null'
          description: Points to the prediction from which this annotation was created
        project:
          type:
            - integer
            - 'null'
          description: Project ID for this annotation
        result:
          type: array
          items:
            $ref: '#/components/schemas/AnnotationRequestResultItems'
          description: List of annotation results for the task
        task:
          type:
            - integer
            - 'null'
          description: Corresponding task for this annotation
        unique_id:
          type: string
        updated_by:
          type:
            - integer
            - 'null'
          description: Last user who updated this annotation
        was_cancelled:
          type: boolean
          description: User skipped the task
      description: |-
        Annotation Serializer with FSM state support.

        Note: The 'state' field will be populated from the queryset annotation
        if present, preventing N+1 queries. Use .with_state() on your queryset.
      title: AnnotationRequest
    PredictionRequestResultItems:
      type: object
      properties: {}
      description: List of predicted regions for the task
      title: PredictionRequestResultItems
    PredictionRequest:
      type: object
      properties:
        cluster:
          type:
            - integer
            - 'null'
          description: Cluster for the current prediction
        mislabeling:
          type: number
          format: double
          description: Related task mislabeling score
        model:
          type:
            - integer
            - 'null'
          description: An ML Backend instance that created the prediction.
        model_run:
          type:
            - integer
            - 'null'
          description: A run of a ModelVersion that created the prediction.
        model_version:
          type: string
          description: >-
            Model version - tag for predictions that can be used to filter tasks in Data Manager, as well as select
            specific model version for showing preannotations in the labeling interface
        neighbors:
          oneOf:
            - description: Any type
            - type: 'null'
          description: Array of task IDs of the closest neighbors
        project:
          type:
            - integer
            - 'null'
        result:
          type: array
          items:
            $ref: '#/components/schemas/PredictionRequestResultItems'
          description: List of prediction results for the task
        score:
          type:
            - number
            - 'null'
          format: double
          description: Prediction score
        task:
          type: integer
      required:
        - result
        - task
      title: PredictionRequest
    ImportApiRequest:
      type: object
      properties:
        allow_skip:
          type:
            - boolean
            - 'null'
          description: Whether this task can be skipped. Set to False to make task unskippable.
        annotations:
          type: array
          items:
            $ref: '#/components/schemas/AnnotationRequest'
        cancelled_annotations:
          type: integer
          description: Number of total cancelled annotations for the current task
        comment_authors:
          type: array
          items:
            type: integer
          description: Users who wrote comments
        comment_count:
          type: integer
          description: Number of comments in the task including all annotations
        data:
          type: object
          additionalProperties:
            description: Any type
          description: >-
            User imported or uploaded data for a task. Data is formatted according to the project label config. You can
            find examples of data for your project on the Import page in the Label Studio Data Manager UI.
        file_upload:
          type:
            - integer
            - 'null'
          description: Uploaded file used as data source for this task
        inner_id:
          type:
            - integer
            - 'null'
          format: int64
          description: Internal task ID in the project, starts with 1
        last_comment_updated_at:
          type:
            - string
            - 'null'
          format: date-time
          description: When the last comment was updated
        meta:
          oneOf:
            - description: Any type
            - type: 'null'
          description: >-
            Meta is user imported (uploaded) data and can be useful as input for an ML Backend for embeddings, advanced
            vectors, and other info. It is passed to ML during training/predicting steps.
        overlap:
          type: integer
          description: Number of distinct annotators that processed the current task
        precomputed_agreement:
          type:
            - number
            - 'null'
          format: double
          description: Average agreement score for the task
        predictions:
          type: array
          items:
            $ref: '#/components/schemas/PredictionRequest'
        total_annotations:
          type: integer
          description: Number of total annotations for the current task except cancelled annotations
        total_predictions:
          type: integer
          description: Number of total predictions for the current task
        unresolved_comment_count:
          type: integer
          description: Number of unresolved comments in the task including all annotations
        updated_by:
          type:
            - integer
            - 'null'
          description: Last annotator or reviewer who updated this task
      required:
        - data
      description: Tasks serializer for Import API (TaskBulkCreateAPI)
      title: ImportApiRequest
    projects_import_tasks_Response_201:
      type: object
      properties:
        annotation_count:
          type: integer
          description: Number of annotations added (Community edition sync import only)
        could_be_tasks_list:
          type: boolean
          description: Whether uploaded files can contain lists of tasks, like CSV/TSV files (Community edition sync import only)
        data_columns:
          type: array
          items:
            type: string
          description: The list of found data columns (Community edition sync import only)
        duration:
          type: number
          format: double
          description: Time in seconds to create (Community edition sync import only)
        file_upload_ids:
          type: array
          items:
            type: integer
          description: Database IDs of uploaded files (Community edition sync import only)
        found_formats:
          type: array
          items:
            type: string
          description: The list of found file formats (Community edition sync import only)
        import:
          type: integer
          description: >-
            Import ID for async operations (non-Community editions only). Use this ID to poll
            `/api/projects/{project_id}/imports/{import_id}` for status.
        predictions_count:
          type: integer
          description: Number of predictions added (Community edition sync import only)
        task_count:
          type: integer
          description: Number of tasks added (Community edition sync import only)
      description: >-
        Response format varies by edition. Non-Community editions return `{"import": <import_id>}` for async processing.
        Community edition returns the detailed response below with task counts.
      title: projects_import_tasks_Response_201
    projects_import_predictions_Response_201:
      type: object
      properties:
        created:
          type: integer
          description: Number of predictions created
      description: Import result
      title: projects_import_predictions_Response_201
    ProjectLabelConfigRequest:
      type: object
      properties:
        label_config:
          type: string
          description: Label config in XML format. See more about it in documentation
      required:
        - label_config
      title: ProjectLabelConfigRequest
    ProjectLabelConfig:
      type: object
      properties:
        label_config:
          type: string
          description: Label config in XML format. See more about it in documentation
      required:
        - label_config
      title: ProjectLabelConfig
    ProjectRole:
      type: object
      properties:
        id:
          type: integer
        project:
          type: integer
        role:
          $ref: '#/components/schemas/Role9e7Enum'
        user:
          type: integer
      required:
        - id
        - project
        - role
        - user
      title: ProjectRole
    ProjectRoleRequest:
      type: object
      properties:
        project:
          type: integer
        role:
          $ref: '#/components/schemas/Role9e7Enum'
        user:
          type: integer
      required:
        - project
        - role
        - user
      title: ProjectRoleRequest
    MetricParam:
      type: object
      properties:
        agreement_threshold:
          type: string
        allowed:
          type: string
        max_additional_annotators_assignable:
          type:
            - integer
            - 'null'
          description: Maximum number of additional annotators that can be assigned to a low agreement task
        metric_name:
          type:
            - string
            - 'null'
          description: Evaluation metric chosen for this project
        metric_params:
          oneOf:
            - description: Any type
            - type: 'null'
      required:
        - agreement_threshold
        - allowed
      title: MetricParam
    MetricParamUpdateRequest:
      type: object
      properties:
        additional_params:
          type:
            - object
            - 'null'
          additionalProperties:
            description: Any type
          description: Agreement metric parameters
        agreement_threshold:
          type: integer
        max_additional_annotators_assignable:
          type: integer
        metric_name:
          type: string
          description: Agreement metric
      title: MetricParamUpdateRequest
    ApiProjectsIdAwsCustomFunctionGetResponsesContentApplicationJsonSchemaStatus:
      type: string
      enum:
        - NotDeployed
        - Active
        - Pending
        - Inactive
        - Failed
        - NotFound
        - Error
      description: Deployment status of the Lambda function.
      title: ApiProjectsIdAwsCustomFunctionGetResponsesContentApplicationJsonSchemaStatus
    projects_metrics_custom_get_lambda_Response_200:
      type: object
      properties:
        code:
          type: string
        status:
          $ref: '#/components/schemas/ApiProjectsIdAwsCustomFunctionGetResponsesContentApplicationJsonSchemaStatus'
          description: Deployment status of the Lambda function.
      required:
        - code
        - status
      title: projects_metrics_custom_get_lambda_Response_200
    AWSCustomFunctionUpdateRequest:
      type: object
      properties:
        code:
          type: string
          description: The Python code for the custom metric function.
        region:
          type:
            - string
            - 'null'
          description: The AWS region for the Lambda function. Uses default if not provided.
        role:
          type:
            - string
            - 'null'
          description: The AWS IAM role ARN for the Lambda function. Uses default if not provided.
      required:
        - code
      description: Serializer for updating AWS Lambda custom metric function.
      title: AWSCustomFunctionUpdateRequest
    projects_metrics_custom_update_lambda_Response_200:
      type: object
      properties: {}
      description: Empty response body
      title: projects_metrics_custom_update_lambda_Response_200
    projects_metrics_custom_logs_Response_200:
      type: object
      properties: {}
      description: List of AWS lambda logs
      title: projects_metrics_custom_logs_Response_200
    CheckMatchingFunctionRequestRequest:
      type: object
      properties:
        code:
          type: string
      required:
        - code
      title: CheckMatchingFunctionRequestRequest
    projects_metrics_custom_check_function_Response_200:
      type: object
      properties: {}
      description: Empty response body
      title: projects_metrics_custom_check_function_Response_200
    ApiProjectsIdCustomFunctionGetResponsesContentApplicationJsonSchemaStatus:
      type: string
      enum:
        - NotDeployed
        - Active
        - Pending
        - Failed
        - NotFound
        - Error
      title: ApiProjectsIdCustomFunctionGetResponsesContentApplicationJsonSchemaStatus
    projects_metrics_custom_get_function_Response_200:
      type: object
      properties:
        code:
          type: string
        status:
          $ref: '#/components/schemas/ApiProjectsIdCustomFunctionGetResponsesContentApplicationJsonSchemaStatus'
      required:
        - code
        - status
      title: projects_metrics_custom_get_function_Response_200
    CustomFunctionCodeRequestRequest:
      type: object
      properties:
        code:
          type: string
      required:
        - code
      title: CustomFunctionCodeRequestRequest
    projects_metrics_custom_deploy_function_Response_200:
      type: object
      properties: {}
      description: Empty response body
      title: projects_metrics_custom_deploy_function_Response_200
    projects_metrics_custom_get_function_logs_Response_200:
      type: object
      properties: {}
      title: projects_metrics_custom_get_function_logs_Response_200
    ApiProjectsIdGcpCustomFunctionGetResponsesContentApplicationJsonSchemaStatus:
      type: string
      enum:
        - NotDeployed
        - Active
        - Pending
        - Failed
        - NotFound
        - Error
      title: ApiProjectsIdGcpCustomFunctionGetResponsesContentApplicationJsonSchemaStatus
    projects_metrics_custom_get_gcp_function_Response_200:
      type: object
      properties:
        code:
          type: string
        status:
          $ref: '#/components/schemas/ApiProjectsIdGcpCustomFunctionGetResponsesContentApplicationJsonSchemaStatus'
      required:
        - code
        - status
      title: projects_metrics_custom_get_gcp_function_Response_200
    GCPCustomFunctionUpdateRequest:
      type: object
      properties:
        code:
          type: string
          description: The Python code for the custom metric function.
        project:
          type:
            - string
            - 'null'
          description: The GCP project ID. Uses default if not provided.
        region:
          type:
            - string
            - 'null'
          description: The GCP region for the Cloud Function. Uses default if not provided.
      required:
        - code
      description: Serializer for updating GCP Cloud Function custom metric.
      title: GCPCustomFunctionUpdateRequest
    projects_metrics_custom_update_gcp_function_Response_200:
      type: object
      properties: {}
      description: Empty response body
      title: projects_metrics_custom_update_gcp_function_Response_200
    Status7bfEnum:
      type: string
      enum:
        - created
        - in_progress
        - failed
        - completed
      description: |-
        * `created` - Created
        * `in_progress` - In progress
        * `failed` - Failed
        * `completed` - Completed
      title: Status7bfEnum
    ConvertedFormat:
      type: object
      properties:
        export_type:
          type: string
        id:
          type: integer
        status:
          $ref: '#/components/schemas/Status7bfEnum'
        traceback:
          type:
            - string
            - 'null'
          description: Traceback report in case of errors
      required:
        - export_type
        - id
      title: ConvertedFormat
    Export:
      type: object
      properties:
        converted_formats:
          type: array
          items:
            $ref: '#/components/schemas/ConvertedFormat'
        counters:
          description: Any type
        created_at:
          type: string
          format: date-time
          description: Creation time
        created_by:
          $ref: '#/components/schemas/UserSimple'
        finished_at:
          type:
            - string
            - 'null'
          format: date-time
          description: Complete or fail time
        id:
          type: integer
        md5:
          type: string
        status:
          $ref: '#/components/schemas/Status7bfEnum'
        title:
          type: string
      required:
        - created_at
        - id
      title: Export
    ReviewedEnum:
      type: string
      enum:
        - only
        - exclude
      description: |-
        * `only` - only
        * `exclude` - exclude
        * `None` - None
      title: ReviewedEnum
    LseAnnotationFilterOptionsRequest:
      type: object
      properties:
        ground_truth:
          type:
            - boolean
            - 'null'
          description: Include ground truth annotations
        reviewed:
          oneOf:
            - $ref: '#/components/schemas/ReviewedEnum'
            - type: 'null'
          description: >-
            `only` - include all tasks with at least one not reviewed annotation<br>`exclude` - exclude with at least
            one not reviewed annotation


            * `only` - only

            * `exclude` - exclude

            * `None` - None
        skipped:
          type:
            - boolean
            - 'null'
          description: Include skipped annotations
        usual:
          type:
            - boolean
            - 'null'
          default: true
          description: Include not skipped and not ground truth annotations
      title: LseAnnotationFilterOptionsRequest
    ConvertedFormatRequest:
      type: object
      properties:
        export_type:
          type: string
        status:
          $ref: '#/components/schemas/Status7bfEnum'
        traceback:
          type:
            - string
            - 'null'
          description: Traceback report in case of errors
      required:
        - export_type
      title: ConvertedFormatRequest
    SerializationOptionRequest:
      type: object
      properties:
        only_id:
          type: boolean
          default: false
          description: Include a full json body or IDs only
      title: SerializationOptionRequest
    SerializationOptionsRequest:
      type: object
      properties:
        annotations__completed_by:
          $ref: '#/components/schemas/SerializationOptionRequest'
          description: JSON dict with parameters
        drafts:
          $ref: '#/components/schemas/SerializationOptionRequest'
          description: JSON dict with parameters
        include_annotation_history:
          type: boolean
          default: false
          description: Include annotation history
        interpolate_key_frames:
          type: boolean
          default: false
          description: Interpolate video key frames
        predictions:
          $ref: '#/components/schemas/SerializationOptionRequest'
          description: JSON dict with parameters
      title: SerializationOptionsRequest
    AnnotatedEnum:
      type: string
      enum:
        - only
        - exclude
      description: |-
        * `only` - only
        * `exclude` - exclude
        * `None` - None
      title: AnnotatedEnum
    FinishedEnum:
      type: string
      enum:
        - only
        - exclude
      description: |-
        * `only` - only
        * `exclude` - exclude
        * `None` - None
      title: FinishedEnum
    SkippedEnum:
      type: string
      enum:
        - only
        - exclude
      description: |-
        * `only` - only
        * `exclude` - exclude
        * `None` - None
      title: SkippedEnum
    LseTaskFilterOptionsRequest:
      type: object
      properties:
        annotated:
          oneOf:
            - $ref: '#/components/schemas/AnnotatedEnum'
            - type: 'null'
          description: >-
            `only` - include all tasks with at least one not skipped annotation<br>`exclude` - exclude all tasks with at
            least one not skipped annotation


            * `only` - only

            * `exclude` - exclude

            * `None` - None
        finished:
          oneOf:
            - $ref: '#/components/schemas/FinishedEnum'
            - type: 'null'
          description: |-
            `only` - include all finished tasks (is_labeled = true)<br>`exclude` - exclude all finished tasks

            * `only` - only
            * `exclude` - exclude
            * `None` - None
        only_with_annotations:
          type: boolean
          default: false
        reviewed:
          oneOf:
            - $ref: '#/components/schemas/ReviewedEnum'
            - type: 'null'
          description: |-
            `only` - include all reviewed tasks<br>`exclude` - exclude all reviewed tasks

            * `only` - only
            * `exclude` - exclude
            * `None` - None
        skipped:
          oneOf:
            - $ref: '#/components/schemas/SkippedEnum'
            - type: 'null'
          description: >-
            `only` - include all tasks with skipped annotations<br>`exclude` - exclude all tasks with skipped
            annotations


            * `only` - only

            * `exclude` - exclude

            * `None` - None
        view:
          type: integer
          description: Apply filters from the view ID (a tab from the Data Manager)
      title: LseTaskFilterOptionsRequest
    LseExportCreateRequest:
      type: object
      properties:
        annotation_filter_options:
          $ref: '#/components/schemas/LseAnnotationFilterOptionsRequest'
        converted_formats:
          type: array
          items:
            $ref: '#/components/schemas/ConvertedFormatRequest'
        counters:
          description: Any type
        created_by:
          $ref: '#/components/schemas/UserSimpleRequest'
        finished_at:
          type:
            - string
            - 'null'
          format: date-time
          description: Complete or fail time
        md5:
          type: string
        serialization_options:
          $ref: '#/components/schemas/SerializationOptionsRequest'
        status:
          $ref: '#/components/schemas/Status7bfEnum'
        task_filter_options:
          $ref: '#/components/schemas/LseTaskFilterOptionsRequest'
        title:
          type: string
      title: LseExportCreateRequest
    LseAnnotationFilterOptions:
      type: object
      properties:
        ground_truth:
          type:
            - boolean
            - 'null'
          description: Include ground truth annotations
        reviewed:
          oneOf:
            - $ref: '#/components/schemas/ReviewedEnum'
            - type: 'null'
          description: >-
            `only` - include all tasks with at least one not reviewed annotation<br>`exclude` - exclude with at least
            one not reviewed annotation


            * `only` - only

            * `exclude` - exclude

            * `None` - None
        skipped:
          type:
            - boolean
            - 'null'
          description: Include skipped annotations
        usual:
          type:
            - boolean
            - 'null'
          default: true
          description: Include not skipped and not ground truth annotations
      title: LseAnnotationFilterOptions
    SerializationOption:
      type: object
      properties:
        only_id:
          type: boolean
          default: false
          description: Include a full json body or IDs only
      title: SerializationOption
    SerializationOptions:
      type: object
      properties:
        annotations__completed_by:
          $ref: '#/components/schemas/SerializationOption'
          description: JSON dict with parameters
        drafts:
          $ref: '#/components/schemas/SerializationOption'
          description: JSON dict with parameters
        include_annotation_history:
          type: boolean
          default: false
          description: Include annotation history
        interpolate_key_frames:
          type: boolean
          default: false
          description: Interpolate video key frames
        predictions:
          $ref: '#/components/schemas/SerializationOption'
          description: JSON dict with parameters
      title: SerializationOptions
    LseTaskFilterOptions:
      type: object
      properties:
        annotated:
          oneOf:
            - $ref: '#/components/schemas/AnnotatedEnum'
            - type: 'null'
          description: >-
            `only` - include all tasks with at least one not skipped annotation<br>`exclude` - exclude all tasks with at
            least one not skipped annotation


            * `only` - only

            * `exclude` - exclude

            * `None` - None
        finished:
          oneOf:
            - $ref: '#/components/schemas/FinishedEnum'
            - type: 'null'
          description: |-
            `only` - include all finished tasks (is_labeled = true)<br>`exclude` - exclude all finished tasks

            * `only` - only
            * `exclude` - exclude
            * `None` - None
        only_with_annotations:
          type: boolean
          default: false
        reviewed:
          oneOf:
            - $ref: '#/components/schemas/ReviewedEnum'
            - type: 'null'
          description: |-
            `only` - include all reviewed tasks<br>`exclude` - exclude all reviewed tasks

            * `only` - only
            * `exclude` - exclude
            * `None` - None
        skipped:
          oneOf:
            - $ref: '#/components/schemas/SkippedEnum'
            - type: 'null'
          description: >-
            `only` - include all tasks with skipped annotations<br>`exclude` - exclude all tasks with skipped
            annotations


            * `only` - only

            * `exclude` - exclude

            * `None` - None
        view:
          type: integer
          description: Apply filters from the view ID (a tab from the Data Manager)
      title: LseTaskFilterOptions
    LseExportCreate:
      type: object
      properties:
        annotation_filter_options:
          $ref: '#/components/schemas/LseAnnotationFilterOptions'
        converted_formats:
          type: array
          items:
            $ref: '#/components/schemas/ConvertedFormat'
        counters:
          description: Any type
        created_at:
          type: string
          format: date-time
          description: Creation time
        created_by:
          $ref: '#/components/schemas/UserSimple'
        finished_at:
          type:
            - string
            - 'null'
          format: date-time
          description: Complete or fail time
        id:
          type: integer
        md5:
          type: string
        serialization_options:
          $ref: '#/components/schemas/SerializationOptions'
        status:
          $ref: '#/components/schemas/Status7bfEnum'
        task_filter_options:
          $ref: '#/components/schemas/LseTaskFilterOptions'
        title:
          type: string
      required:
        - created_at
        - id
      title: LseExportCreate
    ExportConvertRequest:
      type: object
      properties:
        download_resources:
          type: boolean
          description: Download resources in converter.
        export_type:
          type: string
          description: Export file format.
      required:
        - export_type
      title: ExportConvertRequest
    projects_exports_convert_Response_200:
      type: object
      properties:
        converted_format:
          type: integer
        export_type:
          type: string
      title: projects_exports_convert_Response_200
    ProjectMemberRequest:
      type: object
      properties:
        user:
          type: integer
      required:
        - user
      title: ProjectMemberRequest
    ProjectMember:
      type: object
      properties:
        user:
          type: integer
      required:
        - user
      title: ProjectMember
    ProjectMemberBulkAssignRolesRequest:
      type: object
      properties:
        role:
          $ref: '#/components/schemas/Role9e7Enum'
          description: |-
            Role

            * `OW` - Owner
            * `AD` - Administrator
            * `MA` - Manager
            * `RE` - Reviewer
            * `AN` - Annotator
            * `DI` - Deactivated
            * `NO` - Not Activated
        user_id:
          type: integer
          description: User ID
      required:
        - role
        - user_id
      title: ProjectMemberBulkAssignRolesRequest
    ProjectMemberBulkAssignRequest:
      type: object
      properties:
        all:
          type: boolean
          description: Apply to all project members
        excluded:
          type: array
          items:
            type: integer
          description: Excluded user IDs
        included:
          type: array
          items:
            type: integer
          description: Included user IDs
        roles:
          type: array
          items:
            $ref: '#/components/schemas/ProjectMemberBulkAssignRolesRequest'
          description: Member roles
      required:
        - all
      title: ProjectMemberBulkAssignRequest
    projects_members_bulk_post_Response_200:
      type: object
      properties:
        assignments:
          type: integer
      title: projects_members_bulk_post_Response_200
    projects_members_bulk_delete_Response_200:
      type: object
      properties:
        unassignments:
          type: integer
      title: projects_members_bulk_delete_Response_200
    PaginatedProjectMember:
      type: object
      properties:
        active_organization:
          type:
            - integer
            - 'null'
        active_organization_meta:
          type: string
        allow_newsletters:
          type:
            - boolean
            - 'null'
          description: Allow sending newsletters to user
        avatar:
          type: string
        custom_hotkeys:
          oneOf:
            - description: Any type
            - type: 'null'
          description: Custom keyboard shortcuts configuration for the user interface
        date_joined:
          type: string
          format: date-time
        email:
          type: string
          format: email
        first_name:
          type: string
        id:
          type: integer
        implicit_member:
          type: boolean
        initials:
          type: string
          default: '?'
        last_activity:
          type: string
          format: date-time
        last_name:
          type: string
        lse_fields:
          $ref: '#/components/schemas/LseFields'
        org_membership:
          type: array
          items:
            $ref: '#/components/schemas/OrganizationMembership'
        organization_membership:
          $ref: '#/components/schemas/OrganizationMembership'
        pause:
          type: string
        phone:
          type: string
        project_role:
          type: string
        tags:
          type: array
          items:
            $ref: '#/components/schemas/SimpleOrganizationMemberTag'
        user_type:
          type: string
        username:
          type: string
      required:
        - active_organization_meta
        - avatar
        - id
        - implicit_member
        - initials
        - last_activity
        - lse_fields
        - org_membership
        - organization_membership
        - pause
        - project_role
        - tags
        - user_type
        - username
      description: |-
        A ModelSerializer that takes additional arguments for
        "fields", "omit" and "expand" in order to
        control which fields are displayed, and whether to replace simple
        values with complex, nested serializations
      title: PaginatedProjectMember
    PaginatedPaginatedProjectMemberList:
      type: object
      properties:
        count:
          type: integer
        next:
          type:
            - string
            - 'null'
          format: uri
        previous:
          type:
            - string
            - 'null'
          format: uri
        results:
          type: array
          items:
            $ref: '#/components/schemas/PaginatedProjectMember'
      required:
        - count
        - results
      title: PaginatedPaginatedProjectMemberList
    projects_stats_model_version_annotator_agreement_Response_200:
      type: object
      properties:
        agreement:
          type:
            - number
            - 'null'
          format: double
      title: projects_stats_model_version_annotator_agreement_Response_200
    projects_stats_model_version_ground_truth_agreement_Response_200:
      type: object
      properties:
        agreement:
          type:
            - number
            - 'null'
          format: double
      title: projects_stats_model_version_ground_truth_agreement_Response_200
    projects_stats_model_version_prediction_agreement_Response_200:
      type: object
      properties:
        average_prediction_agreement_per_model:
          type:
            - number
            - 'null'
          format: double
      title: projects_stats_model_version_prediction_agreement_Response_200
    ApiProjectsIdStatsIaaGetResponsesContentApplicationJsonSchemaIaa:
      oneOf:
        - type: array
          items:
            type: array
            items:
              type: number
              format: double
        - type: object
          additionalProperties:
            type: array
            items:
              type: array
              items:
                type: number
                format: double
      description: Inter-Annotator Agreement matrix - 2D array when per_label=false, object with label keys when per_label=true
      title: ApiProjectsIdStatsIaaGetResponsesContentApplicationJsonSchemaIaa
    ApiProjectsIdStatsIaaGetResponsesContentApplicationJsonSchemaCommonTasks:
      oneOf:
        - type: array
          items:
            type: array
            items:
              type: number
              format: double
        - type: object
          additionalProperties:
            type: array
            items:
              type: array
              items:
                type: number
                format: double
      description: Common tasks matrix - 2D array when per_label=false, object with label keys when per_label=true
      title: ApiProjectsIdStatsIaaGetResponsesContentApplicationJsonSchemaCommonTasks
    ApiProjectsIdStatsIaaGetResponsesContentApplicationJsonSchemaStd:
      oneOf:
        - type: number
          format: double
        - type: object
          additionalProperties:
            type: number
            format: double
      description: Standard deviation - number when per_label=false, object with label keys when per_label=true
      title: ApiProjectsIdStatsIaaGetResponsesContentApplicationJsonSchemaStd
    ApiProjectsIdStatsIaaGetResponsesContentApplicationJsonSchemaUsersItems:
      type: object
      properties: {}
      title: ApiProjectsIdStatsIaaGetResponsesContentApplicationJsonSchemaUsersItems
    projects_stats_iaa_Response_200:
      type: object
      properties:
        IAA:
          $ref: '#/components/schemas/ApiProjectsIdStatsIaaGetResponsesContentApplicationJsonSchemaIaa'
          description: Inter-Annotator Agreement matrix - 2D array when per_label=false, object with label keys when per_label=true
        common_tasks:
          $ref: '#/components/schemas/ApiProjectsIdStatsIaaGetResponsesContentApplicationJsonSchemaCommonTasks'
          description: Common tasks matrix - 2D array when per_label=false, object with label keys when per_label=true
        std:
          $ref: '#/components/schemas/ApiProjectsIdStatsIaaGetResponsesContentApplicationJsonSchemaStd'
          description: Standard deviation - number when per_label=false, object with label keys when per_label=true
        users:
          type: array
          items:
            $ref: '#/components/schemas/ApiProjectsIdStatsIaaGetResponsesContentApplicationJsonSchemaUsersItems'
          description: List of users in the matrix
      title: projects_stats_iaa_Response_200
    ApiProjectsIdStatsAgreementGroundtruthGetResponsesContentApplicationJsonSchemaAgreement:
      oneOf:
        - type: number
          format: double
        - type: object
          additionalProperties:
            type: number
            format: double
      title: ApiProjectsIdStatsAgreementGroundtruthGetResponsesContentApplicationJsonSchemaAgreement
    projects_stats_users_ground_truth_agreement_Response_200:
      type: object
      properties:
        agreement:
          type: object
          additionalProperties:
            $ref: >-
              #/components/schemas/ApiProjectsIdStatsAgreementGroundtruthGetResponsesContentApplicationJsonSchemaAgreement
          description: Dictionary mapping user IDs to their ground truth agreement scores
      title: projects_stats_users_ground_truth_agreement_Response_200
    projects_stats_agreement_annotator_Response_200:
      type: object
      properties:
        Agreement_per_annotator:
          type: number
          format: double
          description: Agreement score for the annotator (0-1)
      title: projects_stats_agreement_annotator_Response_200
    projects_stats_agreement_annotators_Response_200:
      type: object
      properties:
        agreement:
          type: object
          additionalProperties:
            type: number
            format: double
          description: Mapping of annotator ID to their agreement score (0-1) or null if no data
      required:
        - agreement
      title: projects_stats_agreement_annotators_Response_200
    ApiProjectsIdStatsDataFilterGetResponsesContentApplicationJsonSchemaUserFiltersStatsItems:
      type: object
      properties:
        id:
          type: string
          description: User ID or model version identifier (e.g., "model:1.0")
      title: ApiProjectsIdStatsDataFilterGetResponsesContentApplicationJsonSchemaUserFiltersStatsItems
    ApiProjectsIdStatsDataFilterGetResponsesContentApplicationJsonSchemaUserFiltersTasksWithAnnotations:
      type: object
      properties: {}
      description: Default filter tab for tasks with annotations
      title: ApiProjectsIdStatsDataFilterGetResponsesContentApplicationJsonSchemaUserFiltersTasksWithAnnotations
    ApiProjectsIdStatsDataFilterGetResponsesContentApplicationJsonSchemaUserFilters:
      type: object
      properties:
        stats:
          type: array
          items:
            $ref: >-
              #/components/schemas/ApiProjectsIdStatsDataFilterGetResponsesContentApplicationJsonSchemaUserFiltersStatsItems
          description: List of filter configurations for users and models
        tasks_with_annotations:
          $ref: >-
            #/components/schemas/ApiProjectsIdStatsDataFilterGetResponsesContentApplicationJsonSchemaUserFiltersTasksWithAnnotations
          description: Default filter tab for tasks with annotations
      description: Data filter statistics by user and model
      title: ApiProjectsIdStatsDataFilterGetResponsesContentApplicationJsonSchemaUserFilters
    projects_stats_data_filters_Response_200:
      type: object
      properties:
        user_filters:
          $ref: '#/components/schemas/ApiProjectsIdStatsDataFilterGetResponsesContentApplicationJsonSchemaUserFilters'
          description: Data filter statistics by user and model
      title: projects_stats_data_filters_Response_200
    projects_stats_finished_tasks_Response_200:
      type: object
      properties:
        finished:
          type: integer
          description: Number of finished tasks
        id:
          type: integer
          description: User ID
        progress:
          type: integer
          description: Progress percentage (0-100)
      title: projects_stats_finished_tasks_Response_200
    LabelDistributionCountsRow:
      type: object
      properties:
        choice:
          type: string
        choice_key:
          type: string
        dimension_name:
          type: string
        from_annotations_count:
          type: integer
        from_annotations_percent:
          type: number
          format: double
        from_predictions_count:
          type: integer
        from_predictions_percent:
          type: number
          format: double
      required:
        - choice
        - choice_key
        - dimension_name
        - from_annotations_count
        - from_annotations_percent
        - from_predictions_count
        - from_predictions_percent
      title: LabelDistributionCountsRow
    LabelDistributionCountsTotals:
      type: object
      properties:
        annotation_totals_by_dimension:
          type: object
          additionalProperties:
            type: integer
          description: Total annotation counts keyed by dimension name.
        prediction_totals_by_dimension:
          type: object
          additionalProperties:
            type: integer
          description: Total prediction counts keyed by dimension name.
      title: LabelDistributionCountsTotals
    LabelDistributionCountsResponse:
      type: object
      properties:
        next_offset:
          type:
            - integer
            - 'null'
          description: >-
            Next offset for pagination when using limit/offset mode; null when there are no more results or when
            filtering by explicit `choice_keys`.
        results:
          type: array
          items:
            $ref: '#/components/schemas/LabelDistributionCountsRow'
        totals:
          $ref: '#/components/schemas/LabelDistributionCountsTotals'
      required:
        - next_offset
        - results
        - totals
      title: LabelDistributionCountsResponse
    LabelDistributionStructureDimension:
      type: object
      properties:
        choice_keys:
          type: array
          items:
            type: string
          description: Flat keys in "<from_name>___SEP___<choice>" format for this dimension.
        choices:
          type: array
          items:
            type: string
          description: Sorted list of choices observed from config and/or created labels.
        name:
          type: string
          description: Original from_name from labeling config or observed annotation results.
        type:
          type: string
          description: Result item type for this dimension when available.
      required:
        - choice_keys
        - choices
        - name
      title: LabelDistributionStructureDimension
    LabelDistributionStructureResponse:
      type: object
      properties:
        choice_keys:
          type: array
          items:
            type: string
          description: All project choice keys in stable order, joined with "___PIPE___" when passed as query param.
        dimensions:
          type: array
          items:
            $ref: '#/components/schemas/LabelDistributionStructureDimension'
      required:
        - choice_keys
        - dimensions
      title: LabelDistributionStructureResponse
    ApiProjectsIdStatsLeadTimeGetResponsesContentApplicationJsonSchemaLeadTimeStatsItems:
      type: object
      properties:
        mean_time:
          type: number
          format: double
          description: Average lead time for the user
        median_time:
          type: number
          format: double
          description: Median lead time for the user
        sum_lead_time:
          type: number
          format: double
          description: Total lead time for the user
        user_id:
          type: integer
          description: User ID
      title: ApiProjectsIdStatsLeadTimeGetResponsesContentApplicationJsonSchemaLeadTimeStatsItems
    projects_stats_lead_time_Response_200:
      type: object
      properties:
        lead_time_stats:
          type: array
          items:
            $ref: '#/components/schemas/ApiProjectsIdStatsLeadTimeGetResponsesContentApplicationJsonSchemaLeadTimeStatsItems'
          description: Lead time statistics including mean, median, and distribution
      title: projects_stats_lead_time_Response_200
    ApiProjectsIdStatsMemberPerformanceRowsGetParametersTable:
      type: string
      enum:
        - annotations
        - reviews
      title: ApiProjectsIdStatsMemberPerformanceRowsGetParametersTable
    projects_stats_member_performance_rows_Response_200:
      type: object
      properties:
        count:
          type: integer
        page:
          type: integer
        page_size:
          type: integer
        results:
          type: array
          items:
            type: object
            additionalProperties:
              description: Any type
      title: projects_stats_member_performance_rows_Response_200
    ApiProjectsIdStatsMemberPerformanceSummaryGetParametersTable:
      type: string
      enum:
        - annotations
        - reviews
      title: ApiProjectsIdStatsMemberPerformanceSummaryGetParametersTable
    projects_stats_member_performance_summary_Response_200:
      type: object
      properties:
        summary:
          type: object
          additionalProperties:
            description: Any type
      title: projects_stats_member_performance_summary_Response_200
    ProjectsStatsTotalAgreementResponse2000:
      type: object
      properties:
        total_agreement:
          type: number
          format: double
      title: ProjectsStatsTotalAgreementResponse2000
    ProjectsStatsTotalAgreementResponse2001:
      type: object
      properties:
        total_agreement:
          type: object
          additionalProperties:
            type: number
            format: double
      title: ProjectsStatsTotalAgreementResponse2001
    projects_stats_total_agreement_Response_200:
      oneOf:
        - $ref: '#/components/schemas/ProjectsStatsTotalAgreementResponse2000'
        - $ref: '#/components/schemas/ProjectsStatsTotalAgreementResponse2001'
      title: projects_stats_total_agreement_Response_200
    projects_stats_update_stats_Response_200:
      type: object
      properties: {}
      description: Stat recalculation job
      title: projects_stats_update_stats_Response_200
    ApiProjectsIdUserStatsPredictionGetResponsesContentApplicationJsonSchemaAgreement:
      oneOf:
        - type: number
          format: double
        - type: object
          additionalProperties:
            type: number
            format: double
      title: ApiProjectsIdUserStatsPredictionGetResponsesContentApplicationJsonSchemaAgreement
    projects_stats_users_prediction_agreement_Response_200:
      type: object
      properties:
        agreement:
          type: object
          additionalProperties:
            $ref: '#/components/schemas/ApiProjectsIdUserStatsPredictionGetResponsesContentApplicationJsonSchemaAgreement'
          description: Dictionary mapping user IDs to their prediction agreement scores
      title: projects_stats_users_prediction_agreement_Response_200
    ApiProjectsIdUserStatsReviewScoreGetResponsesContentApplicationJsonSchemaPerformanceScore:
      oneOf:
        - type: number
          format: double
        - type: object
          additionalProperties:
            type: number
            format: double
      title: ApiProjectsIdUserStatsReviewScoreGetResponsesContentApplicationJsonSchemaPerformanceScore
    ApiProjectsIdUserStatsReviewScoreGetResponsesContentApplicationJsonSchemaReviewScore:
      oneOf:
        - type: number
          format: double
        - type: object
          additionalProperties:
            type: number
            format: double
      title: ApiProjectsIdUserStatsReviewScoreGetResponsesContentApplicationJsonSchemaReviewScore
    projects_stats_users_review_score_Response_200:
      type: object
      properties:
        performance_score:
          type: object
          additionalProperties:
            $ref: >-
              #/components/schemas/ApiProjectsIdUserStatsReviewScoreGetResponsesContentApplicationJsonSchemaPerformanceScore
          description: Performance scores mapped by annotator ID
        review_score:
          type: object
          additionalProperties:
            $ref: '#/components/schemas/ApiProjectsIdUserStatsReviewScoreGetResponsesContentApplicationJsonSchemaReviewScore'
          description: Review scores mapped by annotator ID
      title: projects_stats_users_review_score_Response_200
    ApiProjectsIdUserStatsUserPkPredictionGetResponsesContentApplicationJsonSchemaAveragePredictionAgreementPerUser:
      oneOf:
        - type: number
          format: double
        - type: object
          additionalProperties:
            type: number
            format: double
      title: ApiProjectsIdUserStatsUserPkPredictionGetResponsesContentApplicationJsonSchemaAveragePredictionAgreementPerUser
    projects_stats_user_prediction_agreement_Response_200:
      type: object
      properties:
        average_prediction_agreement_per_user:
          $ref: >-
            #/components/schemas/ApiProjectsIdUserStatsUserPkPredictionGetResponsesContentApplicationJsonSchemaAveragePredictionAgreementPerUser
      title: projects_stats_user_prediction_agreement_Response_200
    ApiProjectsIdUserStatsUserPkReviewScoreGetResponsesContentApplicationJsonSchemaPerformanceScore:
      oneOf:
        - type: number
          format: double
        - type: object
          additionalProperties:
            type: number
            format: double
      title: ApiProjectsIdUserStatsUserPkReviewScoreGetResponsesContentApplicationJsonSchemaPerformanceScore
    ApiProjectsIdUserStatsUserPkReviewScoreGetResponsesContentApplicationJsonSchemaReviewScore:
      oneOf:
        - type: number
          format: double
        - type: object
          additionalProperties:
            type: number
            format: double
      title: ApiProjectsIdUserStatsUserPkReviewScoreGetResponsesContentApplicationJsonSchemaReviewScore
    projects_stats_user_review_score_Response_200:
      type: object
      properties:
        performance_score:
          $ref: >-
            #/components/schemas/ApiProjectsIdUserStatsUserPkReviewScoreGetResponsesContentApplicationJsonSchemaPerformanceScore
        review_score:
          $ref: >-
            #/components/schemas/ApiProjectsIdUserStatsUserPkReviewScoreGetResponsesContentApplicationJsonSchemaReviewScore
      title: projects_stats_user_review_score_Response_200
    ApiProjectsIdUsersUserPkStatsAgreementGroundtruthGetResponsesContentApplicationJsonSchemaAgreement:
      oneOf:
        - type: number
          format: double
        - type: object
          additionalProperties:
            type: number
            format: double
      title: ApiProjectsIdUsersUserPkStatsAgreementGroundtruthGetResponsesContentApplicationJsonSchemaAgreement
    projects_stats_user_ground_truth_agreement_Response_200:
      type: object
      properties:
        agreement:
          $ref: >-
            #/components/schemas/ApiProjectsIdUsersUserPkStatsAgreementGroundtruthGetResponsesContentApplicationJsonSchemaAgreement
      title: projects_stats_user_ground_truth_agreement_Response_200
    OperatorEnum:
      type: string
      enum:
        - lt
        - lte
        - gt
        - gte
        - eq
      description: |-
        * `lt` - <
        * `lte` - <=
        * `gt` - >
        * `gte` - >=
        * `eq` - =
      title: OperatorEnum
    ReviewRoutingRule:
      type: object
      properties:
        agreement_threshold:
          type:
            - string
            - 'null'
          format: decimal
          description: Agreement threshold (0..1) compared against the rule operator. Required when operator is set.
        created_at:
          type: string
          format: date-time
          description: Time this rule was created
        dimension:
          type:
            - integer
            - 'null'
          description: >-
            Dimension whose agreement is compared. Null => compare overall task agreement. Deleting the dimension
            cascades to the rule (a dimension-scoped rule has no meaning without its dimension; falling back to overall
            agreement would silently change the cohort).
        id:
          type: integer
        operator:
          oneOf:
            - $ref: '#/components/schemas/OperatorEnum'
            - type: 'null'
          description: |-
            Comparison operator applied to the agreement value. Null => catch-all rule.

            * `lt` - <
            * `lte` - <=
            * `gt` - >
            * `gte` - >=
            * `eq` - =
        order:
          type: integer
          description: Position in the rule list (rules are evaluated in ascending order)
        sample_rate:
          type: string
          format: decimal
          description: Sample rate (0..1) of matching tasks routed for review. 1 always routes, 0 never routes.
        updated_at:
          type: string
          format: date-time
          description: Last time this rule was updated
      required:
        - created_at
        - order
        - updated_at
      title: ReviewRoutingRule
    ReviewRoutingRuleRequestRequest:
      type: object
      properties:
        agreement_threshold:
          type:
            - string
            - 'null'
          format: decimal
        dimension:
          type:
            - integer
            - 'null'
        id:
          type: integer
        operator:
          oneOf:
            - $ref: '#/components/schemas/OperatorEnum'
            - type: 'null'
        sample_rate:
          type: string
          format: decimal
      required:
        - agreement_threshold
        - dimension
        - operator
        - sample_rate
      title: ReviewRoutingRuleRequestRequest
    ReviewRoutingRulesReplaceRequest:
      type: object
      properties:
        rules:
          type: array
          items:
            $ref: '#/components/schemas/ReviewRoutingRuleRequestRequest'
      required:
        - rules
      title: ReviewRoutingRulesReplaceRequest
    ApiProjectsIdTasksAssigneesPostRequestBodyContentApplicationJsonSchemaFiltersConjunction:
      type: string
      enum:
        - or
        - and
      description: >-
        Logical conjunction for the filters. This conjunction (either "or" or "and") will be applied to all items in the
        filters list. It is not possible to combine "or" and "and" within one list of filters. All filters will be
        either combined with "or" or with "and", but not a mix of both.
      title: ApiProjectsIdTasksAssigneesPostRequestBodyContentApplicationJsonSchemaFiltersConjunction
    ApiProjectsIdTasksAssigneesPostRequestBodyContentApplicationJsonSchemaFiltersItemsItemsFilter:
      type: string
      enum:
        - filter:tasks:agreement
        - filter:tasks:annotations_results
        - filter:tasks:annotators
        - filter:tasks:cancelled_annotations
        - filter:tasks:comments
        - filter:tasks:completed_at
        - filter:tasks:created_at
        - filter:tasks:file_upload
        - filter:tasks:ground_truth
        - filter:tasks:id
        - filter:tasks:inner_id
        - filter:tasks:predictions_model_versions
        - filter:tasks:predictions_results
        - filter:tasks:predictions_score
        - filter:tasks:reviewed
        - filter:tasks:reviewers
        - filter:tasks:reviews_accepted
        - filter:tasks:reviews_rejected
        - filter:tasks:total_annotations
        - filter:tasks:total_predictions
        - filter:tasks:unresolved_comment_count
        - filter:tasks:updated_at
      description: >-
        Filter identifier, it should start with `filter:tasks:` prefix, e.g. `filter:tasks:agreement`. For `task.data`
        fields it may look like `filter:tasks:data.field_name`. If you need more info about columns, check the [Get data
        manager columns](#tag/Data-Manager/operation/api_dm_columns_list) API endpoint. Possible
        values:<br><li>`filter:tasks:agreement`<br> (Number) Agreement for annotation results for a specific task
        (Enterprise only)</li><br><li>`filter:tasks:annotations_results`<br> (String) Annotation results for the
        tasks</li><br><li>`filter:tasks:annotators`<br> (List) Annotators that completed the task (Community). Can
        include assigned annotators (Enterprise only). Important note: the filter `type` should be List, but the filter
        `value` is integer</li><br><li>`filter:tasks:cancelled_annotations`<br> (Number) Number of cancelled or skipped
        annotations for the task</li><br><li>`filter:tasks:comments`<br> (Number) Number of comments in a
        task</li><br><li>`filter:tasks:completed_at`<br> (Datetime) Time when a task was fully
        annotated</li><br><li>`filter:tasks:created_at`<br> (Datetime) Time the task was created
        at</li><br><li>`filter:tasks:file_upload`<br> (String) Name of the file uploaded to create the
        tasks</li><br><li>`filter:tasks:ground_truth`<br> (Boolean) Ground truth status of the
        tasks</li><br><li>`filter:tasks:id`<br> (Number) Task ID</li><br><li>`filter:tasks:inner_id`<br> (Number) Task
        Inner ID, it starts from 1 for all projects</li><br><li>`filter:tasks:predictions_model_versions`<br> (String)
        Model version used for the predictions</li><br><li>`filter:tasks:predictions_results`<br> (String) Prediction
        results for the tasks</li><br><li>`filter:tasks:predictions_score`<br> (Number) Prediction score for the
        task</li><br><li>`filter:tasks:reviewed`<br> (Boolean) Whether the tasks have been reviewed (Enterprise
        only)</li><br><li>`filter:tasks:reviewers`<br> (String) Reviewers that reviewed the task, or assigned reviewers
        (Enterprise only). Important note: the filter `type` should be List, but the filter `value` is
        integer</li><br><li>`filter:tasks:reviews_accepted`<br> (Number) Number of annotations accepted for a task in
        review (Enterprise only)</li><br><li>`filter:tasks:reviews_rejected`<br> (Number) Number of annotations rejected
        for a task in review (Enterprise only)</li><br><li>`filter:tasks:total_annotations`<br> (Number) Total number of
        annotations on a task</li><br><li>`filter:tasks:total_predictions`<br> (Number) Total number of predictions for
        the task</li><br><li>`filter:tasks:unresolved_comment_count`<br> (Number) Number of unresolved comments in a
        task</li><br><li>`filter:tasks:updated_at`<br> (Datetime) Time the task was updated at (e.g. new annotation was
        created, review added, etc)</li>
      title: ApiProjectsIdTasksAssigneesPostRequestBodyContentApplicationJsonSchemaFiltersItemsItemsFilter
    ApiProjectsIdTasksAssigneesPostRequestBodyContentApplicationJsonSchemaFiltersItemsItemsOperator:
      type: string
      enum:
        - contains
        - ends_with
        - equal
        - exists
        - greater
        - greater_or_equal
        - in
        - less
        - less_or_equal
        - not_contains
        - not_equal
        - not_exists
        - not_in
        - starts_with
      description: >-
        Filter operator. Possible values:<br><li>`contains`<br> Contains</li><br><li>`ends_with`<br> Ends
        with</li><br><li>`equal`<br> Equal to</li><br><li>`exists`<br> Exists</li><br><li>`greater`<br> Greater
        than</li><br><li>`greater_or_equal`<br> Greater than or equal to</li><br><li>`in`<br> Is between min and max
        values, so the filter `value` should be e.g. `{"min": 1, "max": 7}`</li><br><li>`less`<br> Less
        than</li><br><li>`less_or_equal`<br> Less than or equal to</li><br><li>`not_contains`<br> Does not
        contain</li><br><li>`not_equal`<br> Not equal to</li><br><li>`not_exists`<br> Does not
        exist</li><br><li>`not_in`<br> Is not between min and max values, so the filter `value` should be e.g. `{"min":
        1, "max": 7}`</li><br><li>`starts_with`<br> Starts with</li>
      title: ApiProjectsIdTasksAssigneesPostRequestBodyContentApplicationJsonSchemaFiltersItemsItemsOperator
    ApiProjectsIdTasksAssigneesPostRequestBodyContentApplicationJsonSchemaFiltersItemsItemsValue:
      oneOf:
        - type: string
        - type: integer
        - type: number
          format: double
        - type: boolean
        - type: object
          additionalProperties:
            description: Any type
        - type: object
          additionalProperties:
            description: Any type
      description: Value to filter by
      title: ApiProjectsIdTasksAssigneesPostRequestBodyContentApplicationJsonSchemaFiltersItemsItemsValue
    ApiProjectsIdTasksAssigneesPostRequestBodyContentApplicationJsonSchemaFiltersItemsItems:
      type: object
      properties:
        filter:
          $ref: >-
            #/components/schemas/ApiProjectsIdTasksAssigneesPostRequestBodyContentApplicationJsonSchemaFiltersItemsItemsFilter
          description: >-
            Filter identifier, it should start with `filter:tasks:` prefix, e.g. `filter:tasks:agreement`. For
            `task.data` fields it may look like `filter:tasks:data.field_name`. If you need more info about columns,
            check the [Get data manager columns](#tag/Data-Manager/operation/api_dm_columns_list) API endpoint. Possible
            values:<br><li>`filter:tasks:agreement`<br> (Number) Agreement for annotation results for a specific task
            (Enterprise only)</li><br><li>`filter:tasks:annotations_results`<br> (String) Annotation results for the
            tasks</li><br><li>`filter:tasks:annotators`<br> (List) Annotators that completed the task (Community). Can
            include assigned annotators (Enterprise only). Important note: the filter `type` should be List, but the
            filter `value` is integer</li><br><li>`filter:tasks:cancelled_annotations`<br> (Number) Number of cancelled
            or skipped annotations for the task</li><br><li>`filter:tasks:comments`<br> (Number) Number of comments in a
            task</li><br><li>`filter:tasks:completed_at`<br> (Datetime) Time when a task was fully
            annotated</li><br><li>`filter:tasks:created_at`<br> (Datetime) Time the task was created
            at</li><br><li>`filter:tasks:file_upload`<br> (String) Name of the file uploaded to create the
            tasks</li><br><li>`filter:tasks:ground_truth`<br> (Boolean) Ground truth status of the
            tasks</li><br><li>`filter:tasks:id`<br> (Number) Task ID</li><br><li>`filter:tasks:inner_id`<br> (Number)
            Task Inner ID, it starts from 1 for all projects</li><br><li>`filter:tasks:predictions_model_versions`<br>
            (String) Model version used for the predictions</li><br><li>`filter:tasks:predictions_results`<br> (String)
            Prediction results for the tasks</li><br><li>`filter:tasks:predictions_score`<br> (Number) Prediction score
            for the task</li><br><li>`filter:tasks:reviewed`<br> (Boolean) Whether the tasks have been reviewed
            (Enterprise only)</li><br><li>`filter:tasks:reviewers`<br> (String) Reviewers that reviewed the task, or
            assigned reviewers (Enterprise only). Important note: the filter `type` should be List, but the filter
            `value` is integer</li><br><li>`filter:tasks:reviews_accepted`<br> (Number) Number of annotations accepted
            for a task in review (Enterprise only)</li><br><li>`filter:tasks:reviews_rejected`<br> (Number) Number of
            annotations rejected for a task in review (Enterprise only)</li><br><li>`filter:tasks:total_annotations`<br>
            (Number) Total number of annotations on a task</li><br><li>`filter:tasks:total_predictions`<br> (Number)
            Total number of predictions for the task</li><br><li>`filter:tasks:unresolved_comment_count`<br> (Number)
            Number of unresolved comments in a task</li><br><li>`filter:tasks:updated_at`<br> (Datetime) Time the task
            was updated at (e.g. new annotation was created, review added, etc)</li>
        operator:
          $ref: >-
            #/components/schemas/ApiProjectsIdTasksAssigneesPostRequestBodyContentApplicationJsonSchemaFiltersItemsItemsOperator
          description: >-
            Filter operator. Possible values:<br><li>`contains`<br> Contains</li><br><li>`ends_with`<br> Ends
            with</li><br><li>`equal`<br> Equal to</li><br><li>`exists`<br> Exists</li><br><li>`greater`<br> Greater
            than</li><br><li>`greater_or_equal`<br> Greater than or equal to</li><br><li>`in`<br> Is between min and max
            values, so the filter `value` should be e.g. `{"min": 1, "max": 7}`</li><br><li>`less`<br> Less
            than</li><br><li>`less_or_equal`<br> Less than or equal to</li><br><li>`not_contains`<br> Does not
            contain</li><br><li>`not_equal`<br> Not equal to</li><br><li>`not_exists`<br> Does not
            exist</li><br><li>`not_in`<br> Is not between min and max values, so the filter `value` should be e.g.
            `{"min": 1, "max": 7}`</li><br><li>`starts_with`<br> Starts with</li>
        type:
          type: string
          description: >-
            Type of the filter value. Possible values:<br><li>`Boolean`<br> Boolean</li><br><li>`Datetime`<br> Datetime
            string in `strftime('%Y-%m-%dT%H:%M:%S.%fZ')` format</li><br><li>`List`<br> List of
            items</li><br><li>`Number`<br> Float or Integer</li><br><li>`String`<br> String</li><br><li>`Unknown`<br>
            Unknown is explicitly converted to string format</li>
        value:
          $ref: >-
            #/components/schemas/ApiProjectsIdTasksAssigneesPostRequestBodyContentApplicationJsonSchemaFiltersItemsItemsValue
          description: Value to filter by
      required:
        - filter
        - operator
        - type
        - value
      title: ApiProjectsIdTasksAssigneesPostRequestBodyContentApplicationJsonSchemaFiltersItemsItems
    ApiProjectsIdTasksAssigneesPostRequestBodyContentApplicationJsonSchemaFilters:
      type: object
      properties:
        conjunction:
          $ref: >-
            #/components/schemas/ApiProjectsIdTasksAssigneesPostRequestBodyContentApplicationJsonSchemaFiltersConjunction
          description: >-
            Logical conjunction for the filters. This conjunction (either "or" or "and") will be applied to all items in
            the filters list. It is not possible to combine "or" and "and" within one list of filters. All filters will
            be either combined with "or" or with "and", but not a mix of both.
        items:
          type: array
          items:
            $ref: >-
              #/components/schemas/ApiProjectsIdTasksAssigneesPostRequestBodyContentApplicationJsonSchemaFiltersItemsItems
          description: List of filter items
      required:
        - conjunction
        - items
      description: >-
        Filters to apply on tasks. You can use [the helper class `Filters` from this
        page](https://labelstud.io/sdk/data_manager.html) to create Data Manager Filters.<br>Example: `{"conjunction":
        "or", "items": [{"filter": "filter:tasks:completed_at", "operator": "greater", "type": "Datetime", "value":
        "2021-01-01T00:00:00.000Z"}]}`
      title: ApiProjectsIdTasksAssigneesPostRequestBodyContentApplicationJsonSchemaFilters
    ApiProjectsIdTasksAssigneesPostRequestBodyContentApplicationJsonSchemaSelectedItems0:
      type: object
      properties:
        all:
          type: boolean
          description: No tasks are selected
        included:
          type: array
          items:
            type: integer
          description: List of included task IDs
      required:
        - all
      title: ApiProjectsIdTasksAssigneesPostRequestBodyContentApplicationJsonSchemaSelectedItems0
    ApiProjectsIdTasksAssigneesPostRequestBodyContentApplicationJsonSchemaSelectedItems1:
      type: object
      properties:
        all:
          type: boolean
          description: All tasks are selected
        excluded:
          type: array
          items:
            type: integer
          description: List of excluded task IDs
      required:
        - all
      title: ApiProjectsIdTasksAssigneesPostRequestBodyContentApplicationJsonSchemaSelectedItems1
    ApiProjectsIdTasksAssigneesPostRequestBodyContentApplicationJsonSchemaSelectedItems:
      oneOf:
        - $ref: '#/components/schemas/ApiProjectsIdTasksAssigneesPostRequestBodyContentApplicationJsonSchemaSelectedItems0'
        - $ref: '#/components/schemas/ApiProjectsIdTasksAssigneesPostRequestBodyContentApplicationJsonSchemaSelectedItems1'
      description: >-
        Task selection by IDs. If filters are applied, the selection will be applied to the filtered tasks.If "all" is
        `false`, `"included"` must be used. If "all" is `true`, `"excluded"` must be used.<br>Examples: `{"all": false,
        "included": [1, 2, 3]}` or `{"all": true, "excluded": [4, 5]}`
      title: ApiProjectsIdTasksAssigneesPostRequestBodyContentApplicationJsonSchemaSelectedItems
    ApiProjectsIdTasksAssigneesPostRequestBodyContentApplicationJsonSchemaType:
      type: string
      enum:
        - AN
        - RE
      description: Assignment type. Use AN for annotate or RE for review.
      title: ApiProjectsIdTasksAssigneesPostRequestBodyContentApplicationJsonSchemaType
    projects_assignments_bulk_assign_Response_201:
      type: object
      properties:
        assignments:
          type: integer
        async:
          type: boolean
      title: projects_assignments_bulk_assign_Response_201
    TypeEnum:
      type: string
      enum:
        - AN
        - RE
      description: |-
        * `AN` - Annotate
        * `RE` - Review
      title: TypeEnum
    TaskAssignment:
      type: object
      properties:
        assignee:
          type: integer
          description: Assigned user
        created_at:
          type: string
          format: date-time
          description: Time of assignment
        id:
          type: integer
        state:
          type: string
        task:
          type: integer
          description: Assigned task
        type:
          $ref: '#/components/schemas/TypeEnum'
          description: |-
            Type of assignment: Annotate|Review

            * `AN` - Annotate
            * `RE` - Review
      required:
        - assignee
        - created_at
        - id
        - state
        - task
      description: |-
        TaskAssignment Serializer with FSM state support.

        Note: The 'state' field will be populated from the queryset annotation
        if present, preventing N+1 queries. Use .with_state() on your queryset.

        The state field display is controlled by both:
        - fflag_feat_fit_568_finite_state_management (FSM background calculations)
        - fflag_feat_fit_710_fsm_state_fields (state field display in APIs)
      title: TaskAssignment
    ApiProjectsIdTasksTaskPkAssigneesPostRequestBodyContentApplicationJsonSchemaType:
      type: string
      enum:
        - AN
        - RE
      description: Assignment type. Use AN for annotate or RE for review.
      title: ApiProjectsIdTasksTaskPkAssigneesPostRequestBodyContentApplicationJsonSchemaType
    ApiProjectsIdTasksTaskPkAssigneesDeleteParametersType:
      type: string
      enum:
        - AN
        - RE
      title: ApiProjectsIdTasksTaskPkAssigneesDeleteParametersType
    ApiProjectsIdTasksTaskPkAssigneesPatchRequestBodyContentApplicationJsonSchemaType:
      type: string
      enum:
        - AN
        - RE
      description: Assignment type. Use AN for annotate or RE for review.
      title: ApiProjectsIdTasksTaskPkAssigneesPatchRequestBodyContentApplicationJsonSchemaType
    ReasonEnum:
      type: string
      enum:
        - MANUAL
        - BEHAVIOR_BASED
        - ANNOTATOR_EVALUATION
        - ANNOTATION_LIMIT
        - CUSTOM_SCRIPT
      description: |-
        * `MANUAL` - Manual
        * `BEHAVIOR_BASED` - Behavior-based
        * `ANNOTATOR_EVALUATION` - Annotator evaluation
        * `ANNOTATION_LIMIT` - Annotation limit
        * `CUSTOM_SCRIPT` - Custom script
      title: ReasonEnum
    Pause:
      type: object
      properties:
        created_at:
          type: string
          format: date-time
          description: Timestamp when this pause record was created
        deleted_at:
          type:
            - string
            - 'null'
          format: date-time
          description: Timestamp when this pause record was soft-deleted
        deleted_by:
          type:
            - integer
            - 'null'
          description: User who soft-deleted this pause record
        id:
          type: integer
        paused_by:
          $ref: '#/components/schemas/UserSimple'
        project:
          type:
            - integer
            - 'null'
          description: Related project for which the pause is set
        reason:
          $ref: '#/components/schemas/ReasonEnum'
          description: |-
            Reason for pausing

            * `MANUAL` - Manual
            * `BEHAVIOR_BASED` - Behavior-based
            * `ANNOTATOR_EVALUATION` - Annotator evaluation
            * `ANNOTATION_LIMIT` - Annotation limit
            * `CUSTOM_SCRIPT` - Custom script
        updated_at:
          type: string
          format: date-time
          description: Timestamp when this pause record was last updated
        user:
          type:
            - integer
            - 'null'
          description: User who is paused
        verbose_reason:
          type:
            - string
            - 'null'
          description: Detailed description of why the project is paused, will be readable by paused annotators
      required:
        - created_at
        - deleted_at
        - deleted_by
        - id
        - paused_by
        - project
        - reason
        - updated_at
        - user
      description: |-
        A ModelSerializer that takes additional arguments for
        "fields", "omit" and "expand" in order to
        control which fields are displayed, and whether to replace simple
        values with complex, nested serializations
      title: Pause
    PauseRequest:
      type: object
      properties:
        reason:
          $ref: '#/components/schemas/ReasonEnum'
          description: |-
            Reason for pausing

            * `MANUAL` - Manual
            * `BEHAVIOR_BASED` - Behavior-based
            * `ANNOTATOR_EVALUATION` - Annotator evaluation
            * `ANNOTATION_LIMIT` - Annotation limit
            * `CUSTOM_SCRIPT` - Custom script
        verbose_reason:
          type:
            - string
            - 'null'
          description: Detailed description of why the project is paused, will be readable by paused annotators
      required:
        - reason
      description: |-
        A ModelSerializer that takes additional arguments for
        "fields", "omit" and "expand" in order to
        control which fields are displayed, and whether to replace simple
        values with complex, nested serializations
      title: PauseRequest
    PatchedPauseRequest:
      type: object
      properties:
        reason:
          $ref: '#/components/schemas/ReasonEnum'
          description: |-
            Reason for pausing

            * `MANUAL` - Manual
            * `BEHAVIOR_BASED` - Behavior-based
            * `ANNOTATOR_EVALUATION` - Annotator evaluation
            * `ANNOTATION_LIMIT` - Annotation limit
            * `CUSTOM_SCRIPT` - Custom script
        verbose_reason:
          type:
            - string
            - 'null'
          description: Detailed description of why the project is paused, will be readable by paused annotators
      description: |-
        A ModelSerializer that takes additional arguments for
        "fields", "omit" and "expand" in order to
        control which fields are displayed, and whether to replace simple
        values with complex, nested serializations
      title: PatchedPauseRequest
    AuthMethodEnum:
      type: string
      enum:
        - NONE
        - BASIC_AUTH
      description: |-
        * `NONE` - None
        * `BASIC_AUTH` - Basic Auth
      title: AuthMethodEnum
    StateEnum:
      type: string
      enum:
        - CO
        - DI
        - ER
        - TR
        - PR
      description: |-
        * `CO` - Connected
        * `DI` - Disconnected
        * `ER` - Error
        * `TR` - Training
        * `PR` - Predicting
      title: StateEnum
    MLBackend:
      type: object
      properties:
        auth_method:
          $ref: '#/components/schemas/AuthMethodEnum'
        auto_update:
          type: boolean
          description: If false, model version is set by the user, if true - getting latest version from backend.
        basic_auth_pass_is_set:
          type: boolean
        basic_auth_user:
          type:
            - string
            - 'null'
          description: HTTP Basic Auth user
        created_at:
          type: string
          format: date-time
        description:
          type:
            - string
            - 'null'
          description: Description for the machine learning backend
        error_message:
          type:
            - string
            - 'null'
          description: Error message in error state
        extra_params:
          oneOf:
            - description: Any type
            - type: 'null'
          description: Any extra parameters passed to the ML Backend during the setup
        id:
          type: integer
        is_interactive:
          type: boolean
          description: Used to interactively annotate tasks. If true, model returns one list with results
        model_version:
          type:
            - string
            - 'null'
          description: Current model version associated with this machine learning backend
        project:
          type: integer
        readable_state:
          type: string
        state:
          $ref: '#/components/schemas/StateEnum'
        timeout:
          type: number
          format: double
          description: Response model timeout
        title:
          type:
            - string
            - 'null'
          description: Name of the machine learning backend
        updated_at:
          type: string
          format: date-time
        url:
          type: string
          description: URL for the machine learning model server
      required:
        - basic_auth_pass_is_set
        - created_at
        - id
        - project
        - readable_state
        - updated_at
        - url
      description: Serializer for MLBackend model.
      title: MLBackend
    ApiMlPostRequestBodyContentApplicationJsonSchemaAuthMethod:
      type: string
      enum:
        - NONE
        - BASIC_AUTH
      description: Auth method
      title: ApiMlPostRequestBodyContentApplicationJsonSchemaAuthMethod
    ApiMlPostRequestBodyContentApplicationJsonSchemaExtraParams:
      type: object
      properties: {}
      description: Extra parameters
      title: ApiMlPostRequestBodyContentApplicationJsonSchemaExtraParams
    ApiMlIdPatchRequestBodyContentApplicationJsonSchemaAuthMethod:
      type: string
      enum:
        - NONE
        - BASIC_AUTH
      description: Auth method
      title: ApiMlIdPatchRequestBodyContentApplicationJsonSchemaAuthMethod
    ApiMlIdPatchRequestBodyContentApplicationJsonSchemaExtraParams:
      type: object
      properties: {}
      description: Extra parameters
      title: ApiMlIdPatchRequestBodyContentApplicationJsonSchemaExtraParams
    MLInteractiveAnnotatingRequestRequest:
      type: object
      properties:
        context:
          oneOf:
            - description: Any type
            - type: 'null'
          description: Context for ML model
        task:
          type: integer
          description: ID of task to annotate
      required:
        - task
      description: Serializer for ML interactive annotating request.
      title: MLInteractiveAnnotatingRequestRequest
    ml_predict_interactive_Response_200:
      type: object
      properties: {}
      description: Empty response body
      title: ml_predict_interactive_Response_200
    ml_predict_all_tasks_Response_200:
      type: object
      properties: {}
      description: Empty response body
      title: ml_predict_all_tasks_Response_200
    ml_train_Response_200:
      type: object
      properties: {}
      description: Empty response body
      title: ml_train_Response_200
    ml_list_model_versions_Response_200:
      type: object
      properties:
        message:
          type: string
        versions:
          type: array
          items:
            type: string
      title: ml_list_model_versions_Response_200
    BudgetResetPeriodEnum:
      type: string
      enum:
        - Monthly
        - Yearly
      description: |-
        * `Monthly` - Monthly
        * `Yearly` - Yearly
      title: BudgetResetPeriodEnum
    ScopeEnum:
      type: string
      enum:
        - Organization
        - User
        - Model
      description: |-
        * `Organization` - Organization
        * `User` - User
        * `Model` - Model
      title: ScopeEnum
    ModelProviderConnection:
      type: object
      properties:
        budget_alert_threshold:
          type:
            - number
            - 'null'
          format: double
          description: Budget alert threshold for the given provider connection
        budget_last_reset_date:
          type:
            - string
            - 'null'
          format: date-time
          description: Date and time the budget was last reset
        budget_limit:
          type:
            - number
            - 'null'
          format: double
          description: Budget limit for the model provider connection (null if unlimited)
        budget_reset_period:
          oneOf:
            - $ref: '#/components/schemas/BudgetResetPeriodEnum'
            - type: 'null'
          description: |-
            Budget reset period for the model provider connection (null if not reset)

            * `Monthly` - Monthly
            * `Yearly` - Yearly
        budget_total_spent:
          type:
            - number
            - 'null'
          format: double
          description: Tracked total budget spent for the given provider connection within the current budget period
        cached_available_models:
          type:
            - string
            - 'null'
          description: List of available models from the provider
        created_at:
          type: string
          format: date-time
        created_by:
          $ref: '#/components/schemas/UserSimple'
        deployment_name:
          type:
            - string
            - 'null'
          description: Azure OpenAI deployment name
        endpoint:
          type:
            - string
            - 'null'
          description: Azure OpenAI endpoint
        google_location:
          type:
            - string
            - 'null'
          description: Google project location
        google_project_id:
          type:
            - string
            - 'null'
          description: Google project ID
        id:
          type: integer
        is_internal:
          type:
            - boolean
            - 'null'
          description: Whether the model provider connection is internal, not visible to the user
        model_params:
          type: string
          description: JSON schema for the model parameters available for the provider
        organization:
          type:
            - integer
            - 'null'
        provider:
          $ref: '#/components/schemas/ProviderEnum'
        scope:
          $ref: '#/components/schemas/ScopeEnum'
        updated_at:
          type: string
          format: date-time
      required:
        - budget_last_reset_date
        - budget_limit
        - budget_reset_period
        - budget_total_spent
        - created_at
        - created_by
        - id
        - model_params
        - organization
        - updated_at
      title: ModelProviderConnection
    ModelProviderConnectionRequest:
      type: object
      properties:
        api_key:
          type:
            - string
            - 'null'
          description: Model provider API key
        auth_token:
          type:
            - string
            - 'null'
          description: Model provider Auth token
        budget_alert_threshold:
          type:
            - number
            - 'null'
          format: double
          description: Budget alert threshold for the given provider connection
        cached_available_models:
          type:
            - string
            - 'null'
          description: List of available models from the provider
        deployment_name:
          type:
            - string
            - 'null'
          description: Azure OpenAI deployment name
        endpoint:
          type:
            - string
            - 'null'
          description: Azure OpenAI endpoint
        google_application_credentials:
          type:
            - string
            - 'null'
          description: The content of GOOGLE_APPLICATION_CREDENTIALS json file
        google_location:
          type:
            - string
            - 'null'
          description: Google project location
        google_project_id:
          type:
            - string
            - 'null'
          description: Google project ID
        is_internal:
          type:
            - boolean
            - 'null'
          description: Whether the model provider connection is internal, not visible to the user
        provider:
          $ref: '#/components/schemas/ProviderEnum'
        scope:
          $ref: '#/components/schemas/ScopeEnum'
      title: ModelProviderConnectionRequest
    model_providers_list_model_provider_choices_Response_200:
      type: object
      properties:
        provider_choices:
          type: array
          items:
            type: string
      title: model_providers_list_model_provider_choices_Response_200
    PatchedModelProviderConnectionRequest:
      type: object
      properties:
        api_key:
          type:
            - string
            - 'null'
          description: Model provider API key
        auth_token:
          type:
            - string
            - 'null'
          description: Model provider Auth token
        budget_alert_threshold:
          type:
            - number
            - 'null'
          format: double
          description: Budget alert threshold for the given provider connection
        cached_available_models:
          type:
            - string
            - 'null'
          description: List of available models from the provider
        deployment_name:
          type:
            - string
            - 'null'
          description: Azure OpenAI deployment name
        endpoint:
          type:
            - string
            - 'null'
          description: Azure OpenAI endpoint
        google_application_credentials:
          type:
            - string
            - 'null'
          description: The content of GOOGLE_APPLICATION_CREDENTIALS json file
        google_location:
          type:
            - string
            - 'null'
          description: Google project location
        google_project_id:
          type:
            - string
            - 'null'
          description: Google project ID
        is_internal:
          type:
            - boolean
            - 'null'
          description: Whether the model provider connection is internal, not visible to the user
        provider:
          $ref: '#/components/schemas/ProviderEnum'
        scope:
          $ref: '#/components/schemas/ScopeEnum'
      title: PatchedModelProviderConnectionRequest
    PredictionResultItems:
      type: object
      properties: {}
      description: List of predicted regions for the task
      title: PredictionResultItems
    Prediction:
      type: object
      properties:
        cluster:
          type:
            - integer
            - 'null'
          description: Cluster for the current prediction
        created_ago:
          type: string
          default: ''
          description: Delta time from creation time
        created_at:
          type: string
          format: date-time
        id:
          type: integer
        mislabeling:
          type: number
          format: double
          description: Related task mislabeling score
        model:
          type:
            - integer
            - 'null'
          description: An ML Backend instance that created the prediction.
        model_run:
          type:
            - integer
            - 'null'
          description: A run of a ModelVersion that created the prediction.
        model_version:
          type: string
          description: >-
            Model version - tag for predictions that can be used to filter tasks in Data Manager, as well as select
            specific model version for showing preannotations in the labeling interface
        neighbors:
          oneOf:
            - description: Any type
            - type: 'null'
          description: Array of task IDs of the closest neighbors
        project:
          type:
            - integer
            - 'null'
        result:
          type: array
          items:
            $ref: '#/components/schemas/PredictionResultItems'
          description: List of prediction results for the task
        score:
          type:
            - number
            - 'null'
          format: double
          description: Prediction score
        task:
          type: integer
        updated_at:
          type: string
          format: date-time
      required:
        - created_ago
        - created_at
        - id
        - result
        - task
        - updated_at
      title: Prediction
    ApiPredictionsPostRequestBodyContentApplicationJsonSchemaResultItems:
      type: object
      properties: {}
      title: ApiPredictionsPostRequestBodyContentApplicationJsonSchemaResultItems
    ApiPredictionsIdPatchRequestBodyContentApplicationJsonSchemaResultItems:
      type: object
      properties: {}
      title: ApiPredictionsIdPatchRequestBodyContentApplicationJsonSchemaResultItems
    ProjectTemplate:
      type: object
      properties:
        assignment_settings:
          description: general dict serialized assignment settings
        created_at:
          type: string
          format: date-time
        created_by:
          type:
            - integer
            - 'null'
        custom_script:
          type:
            - string
            - 'null'
          description: custom script (Plugin) for projects created from this template
        description:
          type:
            - string
            - 'null'
        id:
          type: integer
        name:
          type: string
        organization:
          type:
            - integer
            - 'null'
        project_settings:
          description: general dict serialized project settings
        require_comment_on_skip:
          type: boolean
          description: flag to require comment on skip
        review_settings:
          description: general dict serialized review settings
        show_unused_data_columns_to_annotators:
          type:
            - boolean
            - 'null'
        tags:
          description: Any type
        updated_at:
          type: string
          format: date-time
      required:
        - created_at
        - id
        - name
        - updated_at
      title: ProjectTemplate
    ProjectTemplateRequest:
      type: object
      properties:
        assignment_settings:
          description: general dict serialized assignment settings
        created_by:
          type:
            - integer
            - 'null'
        custom_script:
          type:
            - string
            - 'null'
          description: custom script (Plugin) for projects created from this template
        description:
          type:
            - string
            - 'null'
        name:
          type: string
        organization:
          type:
            - integer
            - 'null'
        project_id:
          type: integer
        project_settings:
          description: general dict serialized project settings
        require_comment_on_skip:
          type: boolean
          description: flag to require comment on skip
        review_settings:
          description: general dict serialized review settings
        show_unused_data_columns_to_annotators:
          type:
            - boolean
            - 'null'
        tags:
          description: Any type
      required:
        - name
        - project_id
      title: ProjectTemplateRequest
    PatchedProjectTemplateRequest:
      type: object
      properties:
        assignment_settings:
          description: general dict serialized assignment settings
        created_by:
          type:
            - integer
            - 'null'
        custom_script:
          type:
            - string
            - 'null'
          description: custom script (Plugin) for projects created from this template
        description:
          type:
            - string
            - 'null'
        name:
          type: string
        organization:
          type:
            - integer
            - 'null'
        project_id:
          type: integer
        project_settings:
          description: general dict serialized project settings
        require_comment_on_skip:
          type: boolean
          description: flag to require comment on skip
        review_settings:
          description: general dict serialized review settings
        show_unused_data_columns_to_annotators:
          type:
            - boolean
            - 'null'
        tags:
          description: Any type
      title: PatchedProjectTemplateRequest
    LseProject:
      type: object
      properties:
        agreement_methodology:
          $ref: '#/components/schemas/AgreementMethodologyEnum'
          description: |-
            Methodology (Consensus / Pairwise Averaging)

            * `consensus` - Consensus
            * `pairwise` - Pairwise Averaging
        agreement_threshold:
          type:
            - string
            - 'null'
          format: decimal
          description: Agreement threshold
        annotation_limit_count:
          type:
            - integer
            - 'null'
          description: Limit by number of tasks
        annotation_limit_percent:
          type:
            - string
            - 'null'
          format: decimal
          description: Limit by percentage of tasks
        annotator_evaluation_continuous_tasks:
          type: integer
          default: 0
          description: 'Continuous Evaluation: Required tasks'
        annotator_evaluation_enabled:
          type: boolean
          description: Evaluate all annotators against ground truth
        annotator_evaluation_minimum_score:
          type:
            - string
            - 'null'
          format: decimal
          default: '95.00'
          description: Score required to pass evaluation
        annotator_evaluation_minimum_tasks:
          type:
            - integer
            - 'null'
          default: 10
          description: Number of tasks for evaluation
        annotator_evaluation_onboarding_tasks:
          type: integer
          default: 0
          description: 'Onboarding Evaluation: Required tasks'
        assignment_settings:
          $ref: '#/components/schemas/AssignmentSettings'
        color:
          type:
            - string
            - 'null'
          description: Color
        comment_classification_config:
          type: string
        config_has_control_tags:
          type: boolean
          description: Flag to detect is project ready for labeling
        config_suitable_for_bulk_annotation:
          type: boolean
          description: Flag to detect is project ready for bulk annotation
        control_weights:
          type:
            - object
            - 'null'
          additionalProperties:
            $ref: '#/components/schemas/ControlTagWeight'
          description: >-
            Dict of weights for each control tag in metric calculation. Keys are control tag names from the labeling
            config. At least one tag must have a non-zero overall weight.
        created_at:
          type: string
          format: date-time
        created_by:
          $ref: '#/components/schemas/UserSimple'
          description: Project owner
        custom_interface_code:
          type:
            - string
            - 'null'
        custom_interface_compiled:
          type:
            - string
            - 'null'
        custom_interface_params:
          oneOf:
            - description: Any type
            - type: 'null'
        custom_script:
          type: string
          description: Plugins
        custom_task_lock_ttl:
          type:
            - integer
            - 'null'
          description: Task reservation time. TTL in seconds (UI displays and edits this value in minutes).
        data_types:
          type:
            - object
            - 'null'
          additionalProperties:
            description: Any type
        description:
          type:
            - string
            - 'null'
          description: Description
        duplication_done:
          type: boolean
          default: false
        duplication_status:
          type: string
        enable_empty_annotation:
          type: boolean
          description: Allow empty annotations
        evaluate_predictions_automatically:
          type: boolean
          description: Retrieve and display predictions when loading a task
        expert_instruction:
          type:
            - string
            - 'null'
          description: Instructions
        finished_task_number:
          type: integer
          description: Finished tasks
        ground_truth_number:
          type: integer
          description: Honeypot annotation number in project
        id:
          type: integer
        input_schema:
          oneOf:
            - description: Any type
            - type: 'null'
        is_dimensions_enabled:
          type: string
        is_draft:
          type: boolean
          description: Whether or not the project is in the middle of being created
        is_published:
          type: boolean
          description: Whether or not the project is published to annotators
        label_config:
          type:
            - string
            - 'null'
          description: Labeling Configuration
        max_additional_annotators_assignable:
          type:
            - integer
            - 'null'
          description: Maximum additional annotators
        maximum_annotations:
          type: integer
          description: Annotations per task
        members:
          type: string
        members_count:
          type: integer
        min_annotations_to_start_training:
          type: integer
          description: Minimum number of completed tasks after which model training is started
        model_version:
          type:
            - string
            - 'null'
          description: Machine learning model version
        num_tasks_with_annotations:
          type:
            - integer
            - 'null'
        organization:
          type:
            - integer
            - 'null'
        output_schema:
          oneOf:
            - description: Any type
            - type: 'null'
        overlap_cohort_percentage:
          type: integer
          description: Annotations per task coverage
        parsed_label_config:
          type: object
          additionalProperties:
            description: Any type
          description: JSON-formatted labeling configuration
        pause_on_failed_annotator_evaluation:
          type:
            - boolean
            - 'null'
          default: false
          description: Pause annotator on failed evaluation
        pinned_at:
          type:
            - string
            - 'null'
          format: date-time
          description: Pinned date and time
        prompts:
          type: string
        queue_done:
          type: string
        queue_left:
          type: string
        queue_total:
          type: string
        require_comment_on_skip:
          type: boolean
          default: false
          description: Require comment to skip
        reveal_preannotations_interactively:
          type: boolean
          description: Reveal pre-annotations interactively
        review_settings:
          $ref: '#/components/schemas/ReviewSettings'
        reviewer_queue_total:
          type: string
        sampling:
          oneOf:
            - $ref: '#/components/schemas/SamplingDe5Enum'
            - type: 'null'
        show_annotation_history:
          type: boolean
          description: Show Data Manager to Annotators
        show_collab_predictions:
          type: boolean
          description: Use predictions to pre-label Tasks
        show_ground_truth_first:
          type: boolean
          description: 'Onboarding mode (true): show ground truth tasks first in the labeling stream'
        show_instruction:
          type: boolean
          description: Show instructions before labeling
        show_overlap_first:
          type: boolean
          description: Show tasks with overlap first
        show_skip_button:
          type: boolean
          description: Allow skipping tasks
        show_unused_data_columns_to_annotators:
          type:
            - boolean
            - 'null'
          description: >-
            Show only columns used in labeling configuration to Annotators. API uses inverse field semantics here: set
            false to show only used columns, set true to show all task.data columns.
        skip_queue:
          oneOf:
            - $ref: '#/components/schemas/SkipQueueEnum'
            - type: 'null'
        skipped_annotations_number:
          type: integer
          description: Skipped by collaborators annotation number in project
        source_interface_id:
          type:
            - integer
            - 'null'
        source_interface_version:
          type:
            - integer
            - 'null'
        start_training_on_annotation_update:
          type: boolean
          description: Start model training after any annotations are submitted or updated
        state:
          type: string
        strict_task_overlap:
          type: boolean
          default: true
          description: Enforce strict overlap limit
        task_data_login:
          type:
            - string
            - 'null'
          description: Login
        task_data_password:
          type:
            - string
            - 'null'
          description: Password
        task_number:
          type: integer
          description: Total task number in project
        title:
          type:
            - string
            - 'null'
          description: Project Name
        total_annotations_number:
          type: integer
          description: Total annotations number in project including skipped_annotations_number and ground_truth_number.
        total_predictions_number:
          type: integer
          description: >-
            Total predictions number in project including skipped_annotations_number, ground_truth_number, and
            useful_annotation_number.
        use_custom_interface:
          type: boolean
          default: false
        useful_annotation_number:
          type: integer
          description: >-
            Useful annotation number in project not including skipped_annotations_number and ground_truth_number. Total
            annotations = annotation_number + skipped_annotations_number + ground_truth_number
        workspace:
          type: string
        workspace_title:
          type: string
      required:
        - assignment_settings
        - config_has_control_tags
        - config_suitable_for_bulk_annotation
        - created_at
        - data_types
        - finished_task_number
        - ground_truth_number
        - id
        - is_dimensions_enabled
        - members
        - members_count
        - num_tasks_with_annotations
        - parsed_label_config
        - prompts
        - queue_done
        - queue_left
        - queue_total
        - review_settings
        - reviewer_queue_total
        - skipped_annotations_number
        - start_training_on_annotation_update
        - state
        - task_number
        - total_annotations_number
        - total_predictions_number
        - useful_annotation_number
        - workspace
        - workspace_title
      description: |-
        Serializer get numbers from project queryset annotation,
        make sure, that you use correct one(Project.objects.with_counts())
      title: LseProject
    ProjectImport:
      type: object
      properties:
        annotation_count:
          type: integer
        commit_to_project:
          type: boolean
        could_be_tasks_list:
          type: boolean
        created_at:
          type:
            - string
            - 'null'
          format: date-time
          description: Creation time
        data_columns:
          description: Any type
        duration:
          type: integer
        error:
          type:
            - string
            - 'null'
        file_upload_ids:
          description: Any type
        finished_at:
          type:
            - string
            - 'null'
          format: date-time
          description: Complete or fail time
        found_formats:
          description: Any type
        id:
          type: integer
        preannotated_from_fields:
          oneOf:
            - description: Any type
            - type: 'null'
        prediction_count:
          type: integer
        project:
          type:
            - integer
            - 'null'
        return_task_ids:
          type: boolean
        status:
          $ref: '#/components/schemas/Status7bfEnum'
        task_count:
          type: integer
        task_ids:
          description: Any type
        tasks:
          oneOf:
            - description: Any type
            - type: 'null'
        updated_at:
          type:
            - string
            - 'null'
          format: date-time
          description: Updated time
        url:
          type:
            - string
            - 'null'
      required:
        - created_at
        - id
        - updated_at
      title: ProjectImport
    ApiTasksGetParametersFields:
      type: string
      enum:
        - all
        - task_only
      title: ApiTasksGetParametersFields
    LseTaskAnnotatorsItems:
      type: object
      properties: {}
      title: LseTaskAnnotatorsItems
    LseTaskDraftsItemsResultItems:
      type: object
      properties: {}
      title: LseTaskDraftsItemsResultItems
    LseTaskDraftsItems:
      type: object
      properties:
        created_at:
          type: string
          format: date-time
        result:
          type: array
          items:
            $ref: '#/components/schemas/LseTaskDraftsItemsResultItems'
        updated_at:
          type: string
          format: date-time
      title: LseTaskDraftsItems
    LseTaskPredictionsItemsModel:
      type: object
      properties: {}
      title: LseTaskPredictionsItemsModel
    LseTaskPredictionsItemsModelRun:
      type: object
      properties: {}
      title: LseTaskPredictionsItemsModelRun
    LseTaskPredictionsItemsResultItems:
      type: object
      properties: {}
      title: LseTaskPredictionsItemsResultItems
    LseTaskPredictionsItems:
      type: object
      properties:
        created_at:
          type: string
          format: date-time
        model:
          $ref: '#/components/schemas/LseTaskPredictionsItemsModel'
        model_run:
          $ref: '#/components/schemas/LseTaskPredictionsItemsModelRun'
        model_version:
          type: string
        project:
          type: integer
        result:
          type: array
          items:
            $ref: '#/components/schemas/LseTaskPredictionsItemsResultItems'
        score:
          type: number
          format: double
        task:
          type: integer
        updated_at:
          type: string
          format: date-time
      title: LseTaskPredictionsItems
    LseTaskUpdatedByItems:
      type: object
      properties: {}
      title: LseTaskUpdatedByItems
    LseTask:
      type: object
      properties:
        agreement:
          type: string
        agreement_selected:
          type: string
        allow_skip:
          type:
            - boolean
            - 'null'
          description: Whether this task can be skipped. Set to False to make task unskippable.
        annotation_time:
          type: integer
          description: |-
            Calculate total annotation time for this task from MetricInTimeBucket records.
            Returns time in seconds.
        annotations:
          type: string
        annotations_ids:
          type: string
        annotations_results:
          type: string
        annotators:
          type: array
          items:
            $ref: '#/components/schemas/LseTaskAnnotatorsItems'
          description: Who annotated this task; each item includes user_id plus minimal profile fields for Data Manager display.
        annotators_count:
          type: integer
          description: >-
            The annotators_count is calculated as the number of users with annotations (can be repeated, so same as the
            number of annotations) + the number of assignees without annotations.
        avg_lead_time:
          type: number
          format: double
        cancelled_annotations:
          type: integer
        comment_authors:
          type: array
          items:
            type: object
            additionalProperties:
              description: Any type
        comment_authors_count:
          type: integer
        comment_count:
          type: integer
          description: Number of comments in the task including all annotations
        comments:
          type: string
        completed_at:
          type: string
          format: date-time
        created_at:
          type: string
          format: date-time
          description: Time a task was created
        data:
          type: object
          additionalProperties:
            description: Any type
          description: >-
            User imported or uploaded data for a task. Data is formatted according to the project label config. You can
            find examples of data for your project on the Import page in the Label Studio Data Manager UI.
        draft_exists:
          type: boolean
        drafts:
          type: array
          items:
            $ref: '#/components/schemas/LseTaskDraftsItems'
          description: Drafts for this task
        file_upload:
          type: string
        ground_truth:
          type: boolean
        id:
          type: integer
        inner_id:
          type: integer
        is_labeled:
          type: boolean
          description: >-
            True if the number of annotations for this task is greater than or equal to the number of
            maximum_completions for the project
        last_comment_updated_at:
          type:
            - string
            - 'null'
          format: date-time
          description: When the last comment was updated
        meta:
          oneOf:
            - description: Any type
            - type: 'null'
          description: >-
            Meta is user imported (uploaded) data and can be useful as input for an ML Backend for embeddings, advanced
            vectors, and other info. It is passed to ML during training/predicting steps.
        overlap:
          type: integer
          description: Number of distinct annotators that processed the current task
        precomputed_agreement:
          type:
            - number
            - 'null'
          format: double
          description: Average agreement score for the task
        predictions:
          type: array
          items:
            $ref: '#/components/schemas/LseTaskPredictionsItems'
          description: Predictions for this task
        predictions_model_versions:
          type: string
        predictions_results:
          type: string
        predictions_score:
          type: number
          format: double
        project:
          type:
            - integer
            - 'null'
          description: Project ID for this task
        review_time:
          type: integer
          description: |-
            Calculate total review time for this task from MetricInTimeBucket records.
            Returns time in seconds.
        reviewed:
          type: boolean
        reviewers:
          type: array
          items:
            type: object
            additionalProperties:
              description: Any type
        reviewers_count:
          type: integer
        reviews_accepted:
          type: integer
        reviews_rejected:
          type: integer
        state:
          type: string
        storage_filename:
          type: string
        total_annotations:
          type: integer
        total_predictions:
          type: integer
        unresolved_comment_count:
          type: integer
          description: Number of unresolved comments in the task including all annotations
        updated_at:
          type: string
          format: date-time
          description: Last time a task was updated
        updated_by:
          type: array
          items:
            $ref: '#/components/schemas/LseTaskUpdatedByItems'
          description: User IDs who updated this task
      required:
        - agreement
        - agreement_selected
        - annotation_time
        - annotations
        - annotations_ids
        - annotations_results
        - annotators
        - annotators_count
        - comment_authors
        - comment_authors_count
        - comments
        - created_at
        - data
        - drafts
        - file_upload
        - id
        - predictions
        - predictions_model_versions
        - predictions_results
        - review_time
        - reviewers
        - reviewers_count
        - state
        - storage_filename
        - updated_at
        - updated_by
      description: Data Manager Task Serializer with FSM state support.
      title: LseTask
    LseTaskSerializerForReviewersAnnotatorsItems:
      type: object
      properties: {}
      title: LseTaskSerializerForReviewersAnnotatorsItems
    LseTaskSerializerForReviewersDraftsItemsResultItems:
      type: object
      properties: {}
      title: LseTaskSerializerForReviewersDraftsItemsResultItems
    LseTaskSerializerForReviewersDraftsItems:
      type: object
      properties:
        created_at:
          type: string
          format: date-time
        result:
          type: array
          items:
            $ref: '#/components/schemas/LseTaskSerializerForReviewersDraftsItemsResultItems'
        updated_at:
          type: string
          format: date-time
      title: LseTaskSerializerForReviewersDraftsItems
    LseTaskSerializerForReviewersPredictionsItemsModel:
      type: object
      properties: {}
      title: LseTaskSerializerForReviewersPredictionsItemsModel
    LseTaskSerializerForReviewersPredictionsItemsModelRun:
      type: object
      properties: {}
      title: LseTaskSerializerForReviewersPredictionsItemsModelRun
    LseTaskSerializerForReviewersPredictionsItemsResultItems:
      type: object
      properties: {}
      title: LseTaskSerializerForReviewersPredictionsItemsResultItems
    LseTaskSerializerForReviewersPredictionsItems:
      type: object
      properties:
        created_at:
          type: string
          format: date-time
        model:
          $ref: '#/components/schemas/LseTaskSerializerForReviewersPredictionsItemsModel'
        model_run:
          $ref: '#/components/schemas/LseTaskSerializerForReviewersPredictionsItemsModelRun'
        model_version:
          type: string
        project:
          type: integer
        result:
          type: array
          items:
            $ref: '#/components/schemas/LseTaskSerializerForReviewersPredictionsItemsResultItems'
        score:
          type: number
          format: double
        task:
          type: integer
        updated_at:
          type: string
          format: date-time
      title: LseTaskSerializerForReviewersPredictionsItems
    LseTaskSerializerForReviewersUpdatedByItems:
      type: object
      properties: {}
      title: LseTaskSerializerForReviewersUpdatedByItems
    LseTaskSerializerForReviewers:
      type: object
      properties:
        agreement:
          type: string
        agreement_selected:
          type: string
        allow_skip:
          type:
            - boolean
            - 'null'
          description: Whether this task can be skipped. Set to False to make task unskippable.
        annotation_time:
          type: integer
          description: |-
            Calculate total annotation time for this task from MetricInTimeBucket records.
            Returns time in seconds.
        annotations:
          type: string
        annotations_ids:
          type: string
        annotations_results:
          type: string
        annotators:
          type: array
          items:
            $ref: '#/components/schemas/LseTaskSerializerForReviewersAnnotatorsItems'
          description: Who annotated this task; each item includes user_id plus minimal profile fields for Data Manager display.
        annotators_count:
          type: integer
          description: >-
            The annotators_count is calculated as the number of users with annotations (can be repeated, so same as the
            number of annotations) + the number of assignees without annotations.
        avg_lead_time:
          type: number
          format: double
        cancelled_annotations:
          type: integer
        comment_authors:
          type: array
          items:
            type: object
            additionalProperties:
              description: Any type
        comment_authors_count:
          type: integer
        comment_count:
          type: integer
          description: Number of comments in the task including all annotations
        comments:
          type: string
        completed_at:
          type: string
          format: date-time
        created_at:
          type: string
          format: date-time
          description: Time a task was created
        data:
          type: object
          additionalProperties:
            description: Any type
          description: >-
            User imported or uploaded data for a task. Data is formatted according to the project label config. You can
            find examples of data for your project on the Import page in the Label Studio Data Manager UI.
        draft_exists:
          type: boolean
        drafts:
          type: array
          items:
            $ref: '#/components/schemas/LseTaskSerializerForReviewersDraftsItems'
          description: Drafts for this task
        file_upload:
          type: string
        ground_truth:
          type: boolean
        id:
          type: integer
        inner_id:
          type: integer
        is_labeled:
          type: boolean
          description: >-
            True if the number of annotations for this task is greater than or equal to the number of
            maximum_completions for the project
        last_comment_updated_at:
          type:
            - string
            - 'null'
          format: date-time
          description: When the last comment was updated
        meta:
          oneOf:
            - description: Any type
            - type: 'null'
          description: >-
            Meta is user imported (uploaded) data and can be useful as input for an ML Backend for embeddings, advanced
            vectors, and other info. It is passed to ML during training/predicting steps.
        overlap:
          type: integer
          description: Number of distinct annotators that processed the current task
        precomputed_agreement:
          type:
            - number
            - 'null'
          format: double
          description: Average agreement score for the task
        predictions:
          type: array
          items:
            $ref: '#/components/schemas/LseTaskSerializerForReviewersPredictionsItems'
          description: Predictions for this task
        predictions_model_versions:
          type: string
        predictions_results:
          type: string
        predictions_score:
          type: number
          format: double
        project:
          type:
            - integer
            - 'null'
          description: Project ID for this task
        review_time:
          type: integer
          description: |-
            Calculate total review time for this task from MetricInTimeBucket records.
            Returns time in seconds.
        reviewed:
          type: boolean
        reviewers:
          type: array
          items:
            type: object
            additionalProperties:
              description: Any type
        reviewers_count:
          type: integer
        reviews_accepted:
          type: integer
        reviews_rejected:
          type: integer
        state:
          type: string
        storage_filename:
          type: string
        total_annotations:
          type: integer
        total_predictions:
          type: integer
        unresolved_comment_count:
          type: integer
          description: Number of unresolved comments in the task including all annotations
        updated_at:
          type: string
          format: date-time
          description: Last time a task was updated
        updated_by:
          type: array
          items:
            $ref: '#/components/schemas/LseTaskSerializerForReviewersUpdatedByItems'
          description: User IDs who updated this task
      required:
        - agreement
        - agreement_selected
        - annotation_time
        - annotations
        - annotations_ids
        - annotations_results
        - annotators
        - annotators_count
        - comment_authors
        - comment_authors_count
        - comments
        - created_at
        - data
        - drafts
        - file_upload
        - id
        - predictions
        - predictions_model_versions
        - predictions_results
        - review_time
        - reviewers
        - reviewers_count
        - state
        - storage_filename
        - updated_at
        - updated_by
      description: Data Manager Task Serializer with FSM state support.
      title: LseTaskSerializerForReviewers
    LseTaskSerializerForAnnotatorsDraftsItemsResultItems:
      type: object
      properties: {}
      title: LseTaskSerializerForAnnotatorsDraftsItemsResultItems
    LseTaskSerializerForAnnotatorsDraftsItems:
      type: object
      properties:
        created_at:
          type: string
          format: date-time
        result:
          type: array
          items:
            $ref: '#/components/schemas/LseTaskSerializerForAnnotatorsDraftsItemsResultItems'
        updated_at:
          type: string
          format: date-time
      title: LseTaskSerializerForAnnotatorsDraftsItems
    LseTaskSerializerForAnnotatorsPredictionsItemsModel:
      type: object
      properties: {}
      title: LseTaskSerializerForAnnotatorsPredictionsItemsModel
    LseTaskSerializerForAnnotatorsPredictionsItemsModelRun:
      type: object
      properties: {}
      title: LseTaskSerializerForAnnotatorsPredictionsItemsModelRun
    LseTaskSerializerForAnnotatorsPredictionsItemsResultItems:
      type: object
      properties: {}
      title: LseTaskSerializerForAnnotatorsPredictionsItemsResultItems
    LseTaskSerializerForAnnotatorsPredictionsItems:
      type: object
      properties:
        created_at:
          type: string
          format: date-time
        model:
          $ref: '#/components/schemas/LseTaskSerializerForAnnotatorsPredictionsItemsModel'
        model_run:
          $ref: '#/components/schemas/LseTaskSerializerForAnnotatorsPredictionsItemsModelRun'
        model_version:
          type: string
        project:
          type: integer
        result:
          type: array
          items:
            $ref: '#/components/schemas/LseTaskSerializerForAnnotatorsPredictionsItemsResultItems'
        score:
          type: number
          format: double
        task:
          type: integer
        updated_at:
          type: string
          format: date-time
      title: LseTaskSerializerForAnnotatorsPredictionsItems
    LseTaskSerializerForAnnotators:
      type: object
      properties:
        annotations:
          type: string
        annotations_results:
          type: string
        cancelled_annotations:
          type: integer
        comment_count:
          type: string
        comments:
          type: string
        created_at:
          type: string
          format: date-time
          description: Time a task was created
        data:
          type: object
          additionalProperties:
            description: Any type
          description: >-
            User imported or uploaded data for a task. Data is formatted according to the project label config. You can
            find examples of data for your project on the Import page in the Label Studio Data Manager UI.
        draft_exists:
          type: boolean
        drafts:
          type: array
          items:
            $ref: '#/components/schemas/LseTaskSerializerForAnnotatorsDraftsItems'
          description: Drafts for this task
        id:
          type: integer
        predictions:
          type: array
          items:
            $ref: '#/components/schemas/LseTaskSerializerForAnnotatorsPredictionsItems'
          description: Predictions for this task
        predictions_results:
          type: string
        predictions_score:
          type: number
          format: double
        reviews_rejected:
          type: integer
        state:
          type: string
        total_annotations:
          type: integer
        total_predictions:
          type: integer
        unresolved_comment_count:
          type: string
      required:
        - annotations
        - annotations_results
        - comment_count
        - comments
        - created_at
        - data
        - drafts
        - id
        - predictions
        - predictions_results
        - state
        - unresolved_comment_count
      description: Data Manager Task Serializer with FSM state support.
      title: LseTaskSerializerForAnnotators
    RoleBasedTask:
      oneOf:
        - $ref: '#/components/schemas/LseTask'
        - $ref: '#/components/schemas/LseTaskSerializerForReviewers'
        - $ref: '#/components/schemas/LseTaskSerializerForAnnotators'
      title: RoleBasedTask
    PaginatedRoleBasedTaskList:
      type: object
      properties:
        tasks:
          type: array
          items:
            $ref: '#/components/schemas/RoleBasedTask'
        total:
          type: integer
          description: Total number of tasks
        total_annotations:
          type: integer
          description: Total number of annotations
        total_predictions:
          type: integer
          description: Total number of predictions
      required:
        - tasks
        - total
        - total_annotations
        - total_predictions
      title: PaginatedRoleBasedTaskList
    LseTaskRequest:
      type: object
      properties:
        allow_skip:
          type:
            - boolean
            - 'null'
          description: Whether this task can be skipped. Set to False to make task unskippable.
        cancelled_annotations:
          type: integer
          description: Number of total cancelled annotations for the current task
        comment_authors:
          type: array
          items:
            type: integer
          description: Users who wrote comments
        comment_count:
          type: integer
          description: Number of comments in the task including all annotations
        data:
          type: object
          additionalProperties:
            description: Any type
          description: >-
            User imported or uploaded data for a task. Data is formatted according to the project label config. You can
            find examples of data for your project on the Import page in the Label Studio Data Manager UI.
        file_upload:
          type:
            - integer
            - 'null'
          description: Uploaded file used as data source for this task
        inner_id:
          type:
            - integer
            - 'null'
          format: int64
          description: Internal task ID in the project, starts with 1
        is_labeled:
          type: boolean
          description: >-
            True if the number of annotations for this task is greater than or equal to the number of
            maximum_completions for the project
        last_comment_updated_at:
          type:
            - string
            - 'null'
          format: date-time
          description: When the last comment was updated
        meta:
          oneOf:
            - description: Any type
            - type: 'null'
          description: >-
            Meta is user imported (uploaded) data and can be useful as input for an ML Backend for embeddings, advanced
            vectors, and other info. It is passed to ML during training/predicting steps.
        overlap:
          type: integer
          description: Number of distinct annotators that processed the current task
        project:
          type:
            - integer
            - 'null'
          description: Project ID for this task
        total_annotations:
          type: integer
          description: Number of total annotations for the current task except cancelled annotations
        total_predictions:
          type: integer
          description: Number of total predictions for the current task
        unresolved_comment_count:
          type: integer
          description: Number of unresolved comments in the task including all annotations
        updated_by:
          type:
            - integer
            - 'null'
          description: Last annotator or reviewer who updated this task
      required:
        - data
      description: Task Serializer with project scheme configs validation
      title: LseTaskRequest
    PatchedLseTaskRequest:
      type: object
      properties:
        allow_skip:
          type:
            - boolean
            - 'null'
          description: Whether this task can be skipped. Set to False to make task unskippable.
        avg_lead_time:
          type: number
          format: double
        cancelled_annotations:
          type: integer
        comment_count:
          type: integer
          description: Number of comments in the task including all annotations
        completed_at:
          type: string
          format: date-time
        data:
          type: object
          additionalProperties:
            description: Any type
          description: >-
            User imported or uploaded data for a task. Data is formatted according to the project label config. You can
            find examples of data for your project on the Import page in the Label Studio Data Manager UI.
        draft_exists:
          type: boolean
        ground_truth:
          type: boolean
        inner_id:
          type: integer
        is_labeled:
          type: boolean
          description: >-
            True if the number of annotations for this task is greater than or equal to the number of
            maximum_completions for the project
        last_comment_updated_at:
          type:
            - string
            - 'null'
          format: date-time
          description: When the last comment was updated
        meta:
          oneOf:
            - description: Any type
            - type: 'null'
          description: >-
            Meta is user imported (uploaded) data and can be useful as input for an ML Backend for embeddings, advanced
            vectors, and other info. It is passed to ML during training/predicting steps.
        overlap:
          type: integer
          description: Number of distinct annotators that processed the current task
        precomputed_agreement:
          type:
            - number
            - 'null'
          format: double
          description: Average agreement score for the task
        predictions_score:
          type: number
          format: double
        project:
          type:
            - integer
            - 'null'
          description: Project ID for this task
        reviewed:
          type: boolean
        reviews_accepted:
          type: integer
        reviews_rejected:
          type: integer
        total_annotations:
          type: integer
        total_predictions:
          type: integer
        unresolved_comment_count:
          type: integer
          description: Number of unresolved comments in the task including all annotations
      description: Data Manager Task Serializer with FSM state support.
      title: PatchedLseTaskRequest
    TaskEventRequest:
      type: object
      properties:
        annotation:
          type:
            - integer
            - 'null'
          description: Annotation ID associated with this event
        annotation_draft_id:
          type:
            - integer
            - 'null'
          description: Draft annotation ID associated with this event
        event_key:
          type: string
          description: Event type identifier (e.g., "annotation_loaded", "region_finished_drawing")
        event_time:
          type: string
          format: date-time
          description: Timestamp when the event occurred (frontend time)
        meta:
          oneOf:
            - description: Any type
            - type: 'null'
          description: Additional event metadata (region data, hotkey info, etc.)
        review:
          type:
            - integer
            - 'null'
          description: Review ID associated with this event
      required:
        - event_key
        - event_time
      description: |-
        Serializer for TaskEvent model to handle event creation from frontend.

        This serializer validates and processes task events sent from the labeling interface,
        ensuring proper data format and automatically setting required relationships.
      title: TaskEventRequest
    TaskEvent:
      type: object
      properties:
        actor:
          type: integer
        annotation:
          type:
            - integer
            - 'null'
          description: Annotation ID associated with this event
        annotation_draft_id:
          type:
            - integer
            - 'null'
          description: Draft annotation ID associated with this event
        created_at:
          type: string
          format: date-time
        event_key:
          type: string
          description: Event type identifier (e.g., "annotation_loaded", "region_finished_drawing")
        event_time:
          type: string
          format: date-time
          description: Timestamp when the event occurred (frontend time)
        id:
          type: integer
        meta:
          oneOf:
            - description: Any type
            - type: 'null'
          description: Additional event metadata (region data, hotkey info, etc.)
        organization:
          type: integer
        project:
          type: integer
        review:
          type:
            - integer
            - 'null'
          description: Review ID associated with this event
        task:
          type: integer
          description: Task this event is associated with
      required:
        - actor
        - created_at
        - event_key
        - event_time
        - id
        - organization
        - project
        - task
      description: |-
        Serializer for TaskEvent model to handle event creation from frontend.

        This serializer validates and processes task events sent from the labeling interface,
        ensuring proper data format and automatically setting required relationships.
      title: TaskEvent
    AgreementSelectionGroupRequest:
      type: object
      properties:
        all:
          type: boolean
          default: false
        ids:
          type: array
          items:
            type: string
      title: AgreementSelectionGroupRequest
    AgreementSelectionRequest:
      type: object
      properties:
        annotators:
          $ref: '#/components/schemas/AgreementSelectionGroupRequest'
        ground_truth:
          type: boolean
          default: false
        models:
          $ref: '#/components/schemas/AgreementSelectionGroupRequest'
      title: AgreementSelectionRequest
    TaskAgreementMatrixResponse:
      type: object
      properties:
        matrix:
          type: array
          items:
            type: array
            items:
              type: number
              format: double
          description: Pairwise agreement scores matrix where matrix[i][j] is the agreement between users[i] and users[j]
        users:
          type: array
          items:
            type: object
            additionalProperties:
              description: Any type
          description: Expanded participant details (annotators and/or model versions)
      required:
        - matrix
        - users
      title: TaskAgreementMatrixResponse
    ProjectGroupRoleEnum:
      type: string
      enum:
        - Inherit
        - Annotator
        - Reviewer
      description: |-
        * `Inherit` - Inherit
        * `Annotator` - Annotator
        * `Reviewer` - Reviewer
      title: ProjectGroupRoleEnum
    ProjectGroup:
      type: object
      properties:
        group:
          type: string
          description: Group name
        project_id:
          type: integer
          description: Project ID
        role:
          $ref: '#/components/schemas/ProjectGroupRoleEnum'
          description: |-
            Project role (Inherit, Annotator, Reviewer)

            * `Inherit` - Inherit
            * `Annotator` - Annotator
            * `Reviewer` - Reviewer
      required:
        - group
        - project_id
        - role
      title: ProjectGroup
    SamlSettings:
      type: object
      properties:
        acs_url:
          type:
            - string
            - 'null'
        domain:
          type: string
          description: >-
            Organization web domain or domains; use comma separated list with no spaces for multiple.
            Example:<br><br>labelstud.io,humansignal.com<br><br>IMPORTANT: DO NOT PUT COMMON DOMAINS LIKE GMAIL.COM,
            YAHOO.COM, ETC. IN THIS FIELD
        idp_provider:
          type:
            - string
            - 'null'
          description: Identity Provider preset key (e.g. okta, azure, google, custom)
        login_url:
          type:
            - string
            - 'null'
        logout_url:
          type:
            - string
            - 'null'
        manual_role_management:
          type:
            - boolean
            - 'null'
          description: Allow manually assigning organization roles instead of IdP-managed groups. None = use billing default.
        mapping_email:
          type:
            - string
            - 'null'
          description: 'Mapping attributes: user email from SAML request'
        mapping_first_name:
          type:
            - string
            - 'null'
          description: 'Mapping attributes: user first name from SAML request'
        mapping_groups:
          type:
            - string
            - 'null'
          description: 'Mapping attributes: groups attribute for user mapping to workspaces and roles'
        mapping_last_name:
          type:
            - string
            - 'null'
          description: 'Mapping attributes: user last name from SAML request'
        metadata_url:
          type: string
          description: URL SAML metadata from IdP
        metadata_xml:
          type: string
          description: Metadata XML file
        metadata_xml_url:
          type:
            - string
            - 'null'
        nameid_format:
          type: string
        projects_groups:
          type:
            - array
            - 'null'
          items:
            $ref: '#/components/schemas/ProjectGroup'
          description: Projects to Groups Mapping. List of objects with project_id, group, role.
        roles_groups:
          type:
            - array
            - 'null'
          items:
            type: array
            items:
              type: string
          description: Organization Roles to Groups Mapping. List of [role_name, group_name] pairs.
        token:
          type: string
        workspaces_groups:
          type:
            - array
            - 'null'
          items:
            type: array
            items:
              type: string
          description: Workspaces to Groups Mapping. List of [workspace_title, group_name] pairs.
      required:
        - acs_url
        - login_url
        - logout_url
        - metadata_xml_url
        - nameid_format
      description: |-
        Serializer for reading SAML settings (GET requests).

        Includes all model fields plus computed read-only fields for SP URLs
        that are needed for IdP configuration.
      title: SamlSettings
    ProjectGroupRequest:
      type: object
      properties:
        group:
          type: string
          description: Group name
        project_id:
          type: integer
          description: Project ID
        role:
          $ref: '#/components/schemas/ProjectGroupRoleEnum'
          description: |-
            Project role (Inherit, Annotator, Reviewer)

            * `Inherit` - Inherit
            * `Annotator` - Annotator
            * `Reviewer` - Reviewer
      required:
        - group
        - project_id
        - role
      title: ProjectGroupRequest
    SamlSettingsUpdateRequest:
      type: object
      properties:
        domain:
          type: string
          description: >-
            Organization web domain or domains; use comma separated list with no spaces for multiple.
            Example:<br><br>labelstud.io,humansignal.com<br><br>IMPORTANT: DO NOT PUT COMMON DOMAINS LIKE GMAIL.COM,
            YAHOO.COM, ETC. IN THIS FIELD
        idp_provider:
          type:
            - string
            - 'null'
          description: Identity Provider preset key (e.g. okta, azure, google, custom)
        manual_role_management:
          type:
            - boolean
            - 'null'
          description: Allow manually assigning organization roles instead of IdP-managed groups. None = use billing default.
        mapping_email:
          type:
            - string
            - 'null'
          description: 'Mapping attributes: user email from SAML request'
        mapping_first_name:
          type:
            - string
            - 'null'
          description: 'Mapping attributes: user first name from SAML request'
        mapping_groups:
          type:
            - string
            - 'null'
          description: 'Mapping attributes: groups attribute for user mapping to workspaces and roles'
        mapping_last_name:
          type:
            - string
            - 'null'
          description: 'Mapping attributes: user last name from SAML request'
        metadata_url:
          type: string
          description: URL SAML metadata from IdP
        metadata_xml:
          type: string
          description: Metadata XML file
        projects_groups:
          type: array
          items:
            $ref: '#/components/schemas/ProjectGroupRequest'
          description: Projects to Groups Mapping. List of objects with project_id, group, role.
        roles_groups:
          type: array
          items:
            type: array
            items:
              type: string
          description: Organization Roles to Groups Mapping. List of [role_name, group_name] pairs.
        workspaces_groups:
          type: array
          items:
            type: array
            items:
              type: string
          description: Workspaces to Groups Mapping. List of [workspace_title, group_name] pairs.
      description: Serializer for updating SAML settings (POST requests).
      title: SamlSettingsUpdateRequest
    SamlSettingsUpdate:
      type: object
      properties:
        domain:
          type: string
          description: >-
            Organization web domain or domains; use comma separated list with no spaces for multiple.
            Example:<br><br>labelstud.io,humansignal.com<br><br>IMPORTANT: DO NOT PUT COMMON DOMAINS LIKE GMAIL.COM,
            YAHOO.COM, ETC. IN THIS FIELD
        idp_provider:
          type:
            - string
            - 'null'
          description: Identity Provider preset key (e.g. okta, azure, google, custom)
        manual_role_management:
          type:
            - boolean
            - 'null'
          description: Allow manually assigning organization roles instead of IdP-managed groups. None = use billing default.
        mapping_email:
          type:
            - string
            - 'null'
          description: 'Mapping attributes: user email from SAML request'
        mapping_first_name:
          type:
            - string
            - 'null'
          description: 'Mapping attributes: user first name from SAML request'
        mapping_groups:
          type:
            - string
            - 'null'
          description: 'Mapping attributes: groups attribute for user mapping to workspaces and roles'
        mapping_last_name:
          type:
            - string
            - 'null'
          description: 'Mapping attributes: user last name from SAML request'
        metadata_url:
          type: string
          description: URL SAML metadata from IdP
        metadata_xml:
          type: string
          description: Metadata XML file
        projects_groups:
          type: array
          items:
            $ref: '#/components/schemas/ProjectGroup'
          description: Projects to Groups Mapping. List of objects with project_id, group, role.
        roles_groups:
          type: array
          items:
            type: array
            items:
              type: string
          description: Organization Roles to Groups Mapping. List of [role_name, group_name] pairs.
        workspaces_groups:
          type: array
          items:
            type: array
            items:
              type: string
          description: Workspaces to Groups Mapping. List of [workspace_title, group_name] pairs.
      description: Serializer for updating SAML settings (POST requests).
      title: SamlSettingsUpdate
    ValidateSamlMetadataUrlRequestRequest:
      type: object
      properties:
        metadata_url:
          type: string
          format: uri
      required:
        - metadata_url
      title: ValidateSamlMetadataUrlRequestRequest
    ValidateSamlMetadataUrlResponse:
      type: object
      properties:
        valid:
          type: boolean
      required:
        - valid
      title: ValidateSamlMetadataUrlResponse
    ScimSettings:
      type: object
      properties:
        projects_groups:
          type:
            - array
            - 'null'
          items:
            $ref: '#/components/schemas/ProjectGroup'
          description: Projects to Groups Mapping. List of objects with project_id, group, role.
        roles_groups:
          type:
            - array
            - 'null'
          items:
            type: array
            items:
              type: string
          description: Organization Roles to Groups Mapping. List of [role_name, group_name] pairs.
        workspaces_groups:
          type:
            - array
            - 'null'
          items:
            type: array
            items:
              type: string
          description: Workspaces to Groups Mapping. List of [workspace_title, group_name] pairs.
      title: ScimSettings
    ScimSettingsUpdateRequest:
      type: object
      properties:
        projects_groups:
          type: array
          items:
            $ref: '#/components/schemas/ProjectGroupRequest'
          description: Projects to Groups Mapping. List of objects with project_id, group, role.
        roles_groups:
          type: array
          items:
            type: array
            items:
              type: string
          description: Organization Roles to Groups Mapping. List of [role_name, group_name] pairs.
        workspaces_groups:
          type: array
          items:
            type: array
            items:
              type: string
          description: Workspaces to Groups Mapping. List of [workspace_title, group_name] pairs.
      title: ScimSettingsUpdateRequest
    ScimSettingsUpdate:
      type: object
      properties:
        projects_groups:
          type: array
          items:
            $ref: '#/components/schemas/ProjectGroup'
          description: Projects to Groups Mapping. List of objects with project_id, group, role.
        roles_groups:
          type: array
          items:
            type: array
            items:
              type: string
          description: Organization Roles to Groups Mapping. List of [role_name, group_name] pairs.
        workspaces_groups:
          type: array
          items:
            type: array
            items:
              type: string
          description: Workspaces to Groups Mapping. List of [workspace_title, group_name] pairs.
      title: ScimSettingsUpdate
    SessionTimeoutPolicy:
      type: object
      properties:
        created_at:
          type: string
          format: date-time
        max_session_age:
          type: integer
          description: Number of minutes that a session can be active before needing to re-login
        max_time_between_activity:
          type: integer
          description: Number of minutes that a session stays active without any activity
        updated_at:
          type: string
          format: date-time
      required:
        - created_at
        - updated_at
      title: SessionTimeoutPolicy
    PatchedSessionTimeoutPolicyRequest:
      type: object
      properties:
        max_session_age:
          type: integer
          description: Number of minutes that a session can be active before needing to re-login
        max_time_between_activity:
          type: integer
          description: Number of minutes that a session stays active without any activity
      title: PatchedSessionTimeoutPolicyRequest
    ApiStoragesTypesGetResponsesContentApplicationJsonSchemaItems:
      type: object
      properties:
        name:
          type: string
        title:
          type: string
      title: ApiStoragesTypesGetResponsesContentApplicationJsonSchemaItems
    StatusC5aEnum:
      type: string
      enum:
        - initialized
        - queued
        - in_progress
        - failed
        - completed
        - completed_with_errors
      description: |-
        * `initialized` - Initialized
        * `queued` - Queued
        * `in_progress` - In progress
        * `failed` - Failed
        * `completed` - Completed
        * `completed_with_errors` - Completed with errors
      title: StatusC5aEnum
    AzureBlobImportStorage:
      type: object
      properties:
        account_key:
          type:
            - string
            - 'null'
          description: Azure Blob account key
        account_name:
          type:
            - string
            - 'null'
          description: Azure Blob account name
        container:
          type:
            - string
            - 'null'
          description: Azure blob container
        created_at:
          type: string
          format: date-time
          description: Creation time
        description:
          type:
            - string
            - 'null'
          description: Cloud storage description
        id:
          type: integer
        last_sync:
          type:
            - string
            - 'null'
          format: date-time
          description: Last sync finished time
        last_sync_count:
          type:
            - integer
            - 'null'
          description: Count of tasks synced last time
        last_sync_job:
          type:
            - string
            - 'null'
          description: Last sync job ID
        meta:
          oneOf:
            - description: Any type
            - type: 'null'
          description: Meta and debug information about storage processes
        prefix:
          type:
            - string
            - 'null'
          description: Azure blob prefix name
        presign:
          type: boolean
          default: true
        presign_ttl:
          type: integer
          description: Presigned URLs TTL (in minutes)
        project:
          type: integer
          description: A unique integer value identifying this project.
        recursive_scan:
          type:
            - boolean
            - 'null'
          description: Perform recursive scan over the container content
        regex_filter:
          type:
            - string
            - 'null'
          description: Cloud storage regex for filtering objects
        status:
          $ref: '#/components/schemas/StatusC5aEnum'
        synchronizable:
          type: boolean
          default: true
        title:
          type:
            - string
            - 'null'
          description: Cloud storage title
        traceback:
          type:
            - string
            - 'null'
          description: Traceback report for the last failed sync
        type:
          type: string
          default: azure
        use_blob_urls:
          type: boolean
          description: Interpret objects as BLOBs and generate URLs
      required:
        - created_at
        - id
        - project
        - type
      title: AzureBlobImportStorage
    import_storage_azure_validate_Response_200:
      type: object
      properties: {}
      description: Empty response body
      title: import_storage_azure_validate_Response_200
    AzureServicePrincipalImportStorage:
      type: object
      properties:
        account_name:
          type:
            - string
            - 'null'
          description: Azure Blob account name
        client_id:
          type:
            - string
            - 'null'
          description: Azure Blob Service Principal Client ID
        client_secret:
          type:
            - string
            - 'null'
          description: Azure Blob Service Principal Client Secret
        container:
          type:
            - string
            - 'null'
          description: Azure blob container
        created_at:
          type: string
          format: date-time
          description: Creation time
        description:
          type:
            - string
            - 'null'
          description: Cloud storage description
        id:
          type: integer
        last_sync:
          type:
            - string
            - 'null'
          format: date-time
          description: Last sync finished time
        last_sync_count:
          type:
            - integer
            - 'null'
          description: Count of tasks synced last time
        last_sync_job:
          type:
            - string
            - 'null'
          description: Last sync job ID
        meta:
          oneOf:
            - description: Any type
            - type: 'null'
          description: Meta and debug information about storage processes
        prefix:
          type:
            - string
            - 'null'
          description: Azure blob prefix name
        presign:
          type: boolean
          default: true
        presign_ttl:
          type: integer
          description: Presigned URLs TTL (in minutes)
        project:
          type: integer
          description: A unique integer value identifying this project.
        recursive_scan:
          type:
            - boolean
            - 'null'
          description: Perform recursive scan
        regex_filter:
          type:
            - string
            - 'null'
          description: Cloud storage regex for filtering objects
        status:
          $ref: '#/components/schemas/StatusC5aEnum'
        synchronizable:
          type: boolean
          default: true
        tenant_id:
          type:
            - string
            - 'null'
          description: Azure Tenant ID
        title:
          type:
            - string
            - 'null'
          description: Cloud storage title
        traceback:
          type:
            - string
            - 'null'
          description: Traceback report for the last failed sync
        type:
          type: string
          default: azure_spi
        use_blob_urls:
          type: boolean
          description: Interpret objects as BLOBs and generate URLs
        user_delegation_key:
          type:
            - string
            - 'null'
          description: User Delegation Key (Backend)
      required:
        - created_at
        - id
        - project
        - type
      title: AzureServicePrincipalImportStorage
    AzureServicePrincipalImportStorageRequest:
      type: object
      properties:
        account_name:
          type:
            - string
            - 'null'
          description: Azure Blob account name
        client_id:
          type:
            - string
            - 'null'
          description: Azure Blob Service Principal Client ID
        client_secret:
          type:
            - string
            - 'null'
          description: Azure Blob Service Principal Client Secret
        container:
          type:
            - string
            - 'null'
          description: Azure blob container
        description:
          type:
            - string
            - 'null'
          description: Cloud storage description
        last_sync:
          type:
            - string
            - 'null'
          format: date-time
          description: Last sync finished time
        last_sync_count:
          type:
            - integer
            - 'null'
          description: Count of tasks synced last time
        last_sync_job:
          type:
            - string
            - 'null'
          description: Last sync job ID
        meta:
          oneOf:
            - description: Any type
            - type: 'null'
          description: Meta and debug information about storage processes
        prefix:
          type:
            - string
            - 'null'
          description: Azure blob prefix name
        presign:
          type: boolean
          default: true
        presign_ttl:
          type: integer
          description: Presigned URLs TTL (in minutes)
        project:
          type: integer
          description: A unique integer value identifying this project.
        recursive_scan:
          type:
            - boolean
            - 'null'
          description: Perform recursive scan
        regex_filter:
          type:
            - string
            - 'null'
          description: Cloud storage regex for filtering objects
        status:
          $ref: '#/components/schemas/StatusC5aEnum'
        synchronizable:
          type: boolean
          default: true
        tenant_id:
          type:
            - string
            - 'null'
          description: Azure Tenant ID
        title:
          type:
            - string
            - 'null'
          description: Cloud storage title
        traceback:
          type:
            - string
            - 'null'
          description: Traceback report for the last failed sync
        use_blob_urls:
          type: boolean
          description: Interpret objects as BLOBs and generate URLs
        user_delegation_key:
          type:
            - string
            - 'null'
          description: User Delegation Key (Backend)
      required:
        - project
      title: AzureServicePrincipalImportStorageRequest
    import_storage_azure_spi_validate_Response_200:
      type: object
      properties: {}
      description: Empty response body
      title: import_storage_azure_spi_validate_Response_200
    PatchedAzureServicePrincipalImportStorageRequest:
      type: object
      properties:
        account_name:
          type:
            - string
            - 'null'
          description: Azure Blob account name
        client_id:
          type:
            - string
            - 'null'
          description: Azure Blob Service Principal Client ID
        client_secret:
          type:
            - string
            - 'null'
          description: Azure Blob Service Principal Client Secret
        container:
          type:
            - string
            - 'null'
          description: Azure blob container
        description:
          type:
            - string
            - 'null'
          description: Cloud storage description
        last_sync:
          type:
            - string
            - 'null'
          format: date-time
          description: Last sync finished time
        last_sync_count:
          type:
            - integer
            - 'null'
          description: Count of tasks synced last time
        last_sync_job:
          type:
            - string
            - 'null'
          description: Last sync job ID
        meta:
          oneOf:
            - description: Any type
            - type: 'null'
          description: Meta and debug information about storage processes
        prefix:
          type:
            - string
            - 'null'
          description: Azure blob prefix name
        presign:
          type: boolean
          default: true
        presign_ttl:
          type: integer
          description: Presigned URLs TTL (in minutes)
        project:
          type: integer
          description: A unique integer value identifying this project.
        recursive_scan:
          type:
            - boolean
            - 'null'
          description: Perform recursive scan
        regex_filter:
          type:
            - string
            - 'null'
          description: Cloud storage regex for filtering objects
        status:
          $ref: '#/components/schemas/StatusC5aEnum'
        synchronizable:
          type: boolean
          default: true
        tenant_id:
          type:
            - string
            - 'null'
          description: Azure Tenant ID
        title:
          type:
            - string
            - 'null'
          description: Cloud storage title
        traceback:
          type:
            - string
            - 'null'
          description: Traceback report for the last failed sync
        use_blob_urls:
          type: boolean
          description: Interpret objects as BLOBs and generate URLs
        user_delegation_key:
          type:
            - string
            - 'null'
          description: User Delegation Key (Backend)
      title: PatchedAzureServicePrincipalImportStorageRequest
    AuthTypeEnum:
      type: string
      enum:
        - pat
        - dbx_sp
        - azure_ad_sp
      description: |-
        * `pat` - Personal Access Token
        * `dbx_sp` - Databricks Service Principal
        * `azure_ad_sp` - Azure AD Service Principal
      title: AuthTypeEnum
    DatabricksImportStorage:
      type: object
      properties:
        auth_type:
          $ref: '#/components/schemas/AuthTypeEnum'
          description: |-
            Authentication method: PAT, Databricks SP, or Azure AD SP

            * `pat` - Personal Access Token
            * `dbx_sp` - Databricks Service Principal
            * `azure_ad_sp` - Azure AD Service Principal
        catalog:
          type: string
          description: UC catalog name
        client_id:
          type: string
          description: Service principal client/application ID (required for SP modes)
        created_at:
          type: string
          format: date-time
          description: Creation time
        description:
          type:
            - string
            - 'null'
          description: Cloud storage description
        host:
          type: string
          description: Databricks workspace base URL (https://...)
        id:
          type: integer
        last_sync:
          type:
            - string
            - 'null'
          format: date-time
          description: Last sync finished time
        last_sync_count:
          type:
            - integer
            - 'null'
          description: Count of tasks synced last time
        last_sync_job:
          type:
            - string
            - 'null'
          description: Last sync job ID
        meta:
          oneOf:
            - description: Any type
            - type: 'null'
          description: Meta and debug information about storage processes
        prefix:
          type:
            - string
            - 'null'
          description: Path under the volume
        presign:
          type: boolean
          description: Presign not supported; always proxied
        presign_ttl:
          type: integer
          description: Unused for Databricks; kept for compatibility
        project:
          type: integer
          description: A unique integer value identifying this project.
        recursive_scan:
          type: boolean
          description: Perform recursive scan
        regex_filter:
          type:
            - string
            - 'null'
          description: Regex for filtering objects
        request_timeout_s:
          type: integer
        schema:
          type: string
          description: UC schema name
        status:
          $ref: '#/components/schemas/StatusC5aEnum'
        stream_chunk_bytes:
          type: integer
        synchronizable:
          type: boolean
          default: true
        tenant_id:
          type: string
          description: Azure AD tenant ID (required for Azure AD SP mode)
        title:
          type:
            - string
            - 'null'
          description: Cloud storage title
        traceback:
          type:
            - string
            - 'null'
          description: Traceback report for the last failed sync
        type:
          type: string
          default: databricks
        use_blob_urls:
          type: boolean
          description: Generate blob URLs in tasks
        verify_tls:
          type: boolean
          description: Verify TLS certificates
        volume:
          type: string
          description: UC volume name
      required:
        - catalog
        - created_at
        - host
        - id
        - project
        - schema
        - type
        - volume
      description: Serializer for Databricks import storage with multi-auth support.
      title: DatabricksImportStorage
    DatabricksImportStorageRequest:
      type: object
      properties:
        auth_type:
          $ref: '#/components/schemas/AuthTypeEnum'
          description: |-
            Authentication method: PAT, Databricks SP, or Azure AD SP

            * `pat` - Personal Access Token
            * `dbx_sp` - Databricks Service Principal
            * `azure_ad_sp` - Azure AD Service Principal
        catalog:
          type: string
          description: UC catalog name
        client_id:
          type: string
          description: Service principal client/application ID (required for SP modes)
        client_secret:
          type: string
          description: Service principal client secret (required for SP modes)
        description:
          type:
            - string
            - 'null'
          description: Cloud storage description
        host:
          type: string
          description: Databricks workspace base URL (https://...)
        last_sync:
          type:
            - string
            - 'null'
          format: date-time
          description: Last sync finished time
        last_sync_count:
          type:
            - integer
            - 'null'
          description: Count of tasks synced last time
        last_sync_job:
          type:
            - string
            - 'null'
          description: Last sync job ID
        meta:
          oneOf:
            - description: Any type
            - type: 'null'
          description: Meta and debug information about storage processes
        prefix:
          type:
            - string
            - 'null'
          description: Path under the volume
        presign:
          type: boolean
          description: Presign not supported; always proxied
        presign_ttl:
          type: integer
          description: Unused for Databricks; kept for compatibility
        project:
          type: integer
          description: A unique integer value identifying this project.
        recursive_scan:
          type: boolean
          description: Perform recursive scan
        regex_filter:
          type:
            - string
            - 'null'
          description: Regex for filtering objects
        request_timeout_s:
          type: integer
        schema:
          type: string
          description: UC schema name
        status:
          $ref: '#/components/schemas/StatusC5aEnum'
        stream_chunk_bytes:
          type: integer
        synchronizable:
          type: boolean
          default: true
        tenant_id:
          type: string
          description: Azure AD tenant ID (required for Azure AD SP mode)
        title:
          type:
            - string
            - 'null'
          description: Cloud storage title
        token:
          type: string
          description: Databricks personal access token (required for PAT mode)
        traceback:
          type:
            - string
            - 'null'
          description: Traceback report for the last failed sync
        use_blob_urls:
          type: boolean
          description: Generate blob URLs in tasks
        verify_tls:
          type: boolean
          description: Verify TLS certificates
        volume:
          type: string
          description: UC volume name
      required:
        - catalog
        - host
        - project
        - schema
        - volume
      description: Serializer for Databricks import storage with multi-auth support.
      title: DatabricksImportStorageRequest
    import_storage_databricks_validate_Response_200:
      type: object
      properties: {}
      description: Empty response body
      title: import_storage_databricks_validate_Response_200
    PatchedDatabricksImportStorageRequest:
      type: object
      properties:
        auth_type:
          $ref: '#/components/schemas/AuthTypeEnum'
          description: |-
            Authentication method: PAT, Databricks SP, or Azure AD SP

            * `pat` - Personal Access Token
            * `dbx_sp` - Databricks Service Principal
            * `azure_ad_sp` - Azure AD Service Principal
        catalog:
          type: string
          description: UC catalog name
        client_id:
          type: string
          description: Service principal client/application ID (required for SP modes)
        client_secret:
          type: string
          description: Service principal client secret (required for SP modes)
        description:
          type:
            - string
            - 'null'
          description: Cloud storage description
        host:
          type: string
          description: Databricks workspace base URL (https://...)
        last_sync:
          type:
            - string
            - 'null'
          format: date-time
          description: Last sync finished time
        last_sync_count:
          type:
            - integer
            - 'null'
          description: Count of tasks synced last time
        last_sync_job:
          type:
            - string
            - 'null'
          description: Last sync job ID
        meta:
          oneOf:
            - description: Any type
            - type: 'null'
          description: Meta and debug information about storage processes
        prefix:
          type:
            - string
            - 'null'
          description: Path under the volume
        presign:
          type: boolean
          description: Presign not supported; always proxied
        presign_ttl:
          type: integer
          description: Unused for Databricks; kept for compatibility
        project:
          type: integer
          description: A unique integer value identifying this project.
        recursive_scan:
          type: boolean
          description: Perform recursive scan
        regex_filter:
          type:
            - string
            - 'null'
          description: Regex for filtering objects
        request_timeout_s:
          type: integer
        schema:
          type: string
          description: UC schema name
        status:
          $ref: '#/components/schemas/StatusC5aEnum'
        stream_chunk_bytes:
          type: integer
        synchronizable:
          type: boolean
          default: true
        tenant_id:
          type: string
          description: Azure AD tenant ID (required for Azure AD SP mode)
        title:
          type:
            - string
            - 'null'
          description: Cloud storage title
        token:
          type: string
          description: Databricks personal access token (required for PAT mode)
        traceback:
          type:
            - string
            - 'null'
          description: Traceback report for the last failed sync
        use_blob_urls:
          type: boolean
          description: Generate blob URLs in tasks
        verify_tls:
          type: boolean
          description: Verify TLS certificates
        volume:
          type: string
          description: UC volume name
      description: Serializer for Databricks import storage with multi-auth support.
      title: PatchedDatabricksImportStorageRequest
    GCSImportStorage:
      type: object
      properties:
        bucket:
          type:
            - string
            - 'null'
          description: GCS bucket name
        created_at:
          type: string
          format: date-time
          description: Creation time
        description:
          type:
            - string
            - 'null'
          description: Cloud storage description
        google_application_credentials:
          type:
            - string
            - 'null'
          description: The content of GOOGLE_APPLICATION_CREDENTIALS json file
        google_project_id:
          type:
            - string
            - 'null'
          description: Google project ID
        id:
          type: integer
        last_sync:
          type:
            - string
            - 'null'
          format: date-time
          description: Last sync finished time
        last_sync_count:
          type:
            - integer
            - 'null'
          description: Count of tasks synced last time
        last_sync_job:
          type:
            - string
            - 'null'
          description: Last sync job ID
        meta:
          oneOf:
            - description: Any type
            - type: 'null'
          description: Meta and debug information about storage processes
        prefix:
          type:
            - string
            - 'null'
          description: GCS bucket prefix
        presign:
          type: boolean
          default: true
        presign_ttl:
          type: integer
          description: Presigned URLs TTL (in minutes)
        project:
          type: integer
          description: A unique integer value identifying this project.
        recursive_scan:
          type:
            - boolean
            - 'null'
          description: Perform recursive scan over the bucket content
        regex_filter:
          type:
            - string
            - 'null'
          description: Cloud storage regex for filtering objects
        status:
          $ref: '#/components/schemas/StatusC5aEnum'
        synchronizable:
          type: boolean
          default: true
        title:
          type:
            - string
            - 'null'
          description: Cloud storage title
        traceback:
          type:
            - string
            - 'null'
          description: Traceback report for the last failed sync
        type:
          type: string
          default: gcs
        use_blob_urls:
          type: boolean
          description: Interpret objects as BLOBs and generate URLs
      required:
        - created_at
        - id
        - project
        - type
      title: GCSImportStorage
    import_storage_gcs_validate_Response_200:
      type: object
      properties: {}
      description: Empty response body
      title: import_storage_gcs_validate_Response_200
    GCSSAImportStorage:
      type: object
      properties:
        bucket:
          type:
            - string
            - 'null'
          description: GCS bucket name
        created_at:
          type: string
          format: date-time
          description: Creation time
        description:
          type:
            - string
            - 'null'
          description: Cloud storage description
        google_project_id:
          type:
            - string
            - 'null'
          description: Google project ID
        id:
          type: integer
        last_sync:
          type:
            - string
            - 'null'
          format: date-time
          description: Last sync finished time
        last_sync_count:
          type:
            - integer
            - 'null'
          description: Count of tasks synced last time
        last_sync_job:
          type:
            - string
            - 'null'
          description: Last sync job ID
        meta:
          oneOf:
            - description: Any type
            - type: 'null'
          description: Meta and debug information about storage processes
        prefix:
          type:
            - string
            - 'null'
          description: GCS bucket prefix
        presign:
          type: boolean
          default: true
        presign_ttl:
          type: integer
          description: Presigned URLs TTL (in minutes)
        project:
          type: integer
          description: A unique integer value identifying this project.
        recursive_scan:
          type:
            - boolean
            - 'null'
          description: Perform recursive scan over the bucket content
        regex_filter:
          type:
            - string
            - 'null'
          description: Cloud storage regex for filtering objects
        status:
          $ref: '#/components/schemas/StatusC5aEnum'
        synchronizable:
          type: boolean
          default: true
        target_service_account_email:
          type:
            - string
            - 'null'
          description: Service account email to impersonate for GCS access
        title:
          type:
            - string
            - 'null'
          description: Cloud storage title
        traceback:
          type:
            - string
            - 'null'
          description: Traceback report for the last failed sync
        type:
          type: string
          default: gcs_sa
        use_blob_urls:
          type: boolean
          description: Interpret objects as BLOBs and generate URLs
      required:
        - created_at
        - id
        - project
        - type
      title: GCSSAImportStorage
    GCSSAImportStorageRequest:
      type: object
      properties:
        bucket:
          type:
            - string
            - 'null'
          description: GCS bucket name
        description:
          type:
            - string
            - 'null'
          description: Cloud storage description
        google_project_id:
          type:
            - string
            - 'null'
          description: Google project ID
        last_sync:
          type:
            - string
            - 'null'
          format: date-time
          description: Last sync finished time
        last_sync_count:
          type:
            - integer
            - 'null'
          description: Count of tasks synced last time
        last_sync_job:
          type:
            - string
            - 'null'
          description: Last sync job ID
        meta:
          oneOf:
            - description: Any type
            - type: 'null'
          description: Meta and debug information about storage processes
        prefix:
          type:
            - string
            - 'null'
          description: GCS bucket prefix
        presign:
          type: boolean
          default: true
        presign_ttl:
          type: integer
          description: Presigned URLs TTL (in minutes)
        project:
          type: integer
          description: A unique integer value identifying this project.
        recursive_scan:
          type:
            - boolean
            - 'null'
          description: Perform recursive scan over the bucket content
        regex_filter:
          type:
            - string
            - 'null'
          description: Cloud storage regex for filtering objects
        status:
          $ref: '#/components/schemas/StatusC5aEnum'
        synchronizable:
          type: boolean
          default: true
        target_service_account_email:
          type:
            - string
            - 'null'
          description: Service account email to impersonate for GCS access
        title:
          type:
            - string
            - 'null'
          description: Cloud storage title
        traceback:
          type:
            - string
            - 'null'
          description: Traceback report for the last failed sync
        use_blob_urls:
          type: boolean
          description: Interpret objects as BLOBs and generate URLs
      required:
        - project
      title: GCSSAImportStorageRequest
    import_storage_gcs_sa_validate_Response_200:
      type: object
      properties: {}
      description: Empty response body
      title: import_storage_gcs_sa_validate_Response_200
    PatchedGCSSAImportStorageRequest:
      type: object
      properties:
        bucket:
          type:
            - string
            - 'null'
          description: GCS bucket name
        description:
          type:
            - string
            - 'null'
          description: Cloud storage description
        google_project_id:
          type:
            - string
            - 'null'
          description: Google project ID
        last_sync:
          type:
            - string
            - 'null'
          format: date-time
          description: Last sync finished time
        last_sync_count:
          type:
            - integer
            - 'null'
          description: Count of tasks synced last time
        last_sync_job:
          type:
            - string
            - 'null'
          description: Last sync job ID
        meta:
          oneOf:
            - description: Any type
            - type: 'null'
          description: Meta and debug information about storage processes
        prefix:
          type:
            - string
            - 'null'
          description: GCS bucket prefix
        presign:
          type: boolean
          default: true
        presign_ttl:
          type: integer
          description: Presigned URLs TTL (in minutes)
        project:
          type: integer
          description: A unique integer value identifying this project.
        recursive_scan:
          type:
            - boolean
            - 'null'
          description: Perform recursive scan over the bucket content
        regex_filter:
          type:
            - string
            - 'null'
          description: Cloud storage regex for filtering objects
        status:
          $ref: '#/components/schemas/StatusC5aEnum'
        synchronizable:
          type: boolean
          default: true
        target_service_account_email:
          type:
            - string
            - 'null'
          description: Service account email to impersonate for GCS access
        title:
          type:
            - string
            - 'null'
          description: Cloud storage title
        traceback:
          type:
            - string
            - 'null'
          description: Traceback report for the last failed sync
        use_blob_urls:
          type: boolean
          description: Interpret objects as BLOBs and generate URLs
      title: PatchedGCSSAImportStorageRequest
    GCSWIFImportStorage:
      type: object
      properties:
        bucket:
          type:
            - string
            - 'null'
          description: GCS bucket name
        created_at:
          type: string
          format: date-time
          description: Creation time
        description:
          type:
            - string
            - 'null'
          description: Cloud storage description
        google_application_credentials:
          type:
            - string
            - 'null'
          description: The content of GOOGLE_APPLICATION_CREDENTIALS json file
        google_project_id:
          type:
            - string
            - 'null'
          description: Google project ID
        google_project_number:
          type:
            - string
            - 'null'
          description: Google project number
        google_service_account_email:
          type:
            - string
            - 'null'
          description: Google service account email
        google_wif_pool_id:
          type:
            - string
            - 'null'
          description: Google WIF pool ID
        google_wif_provider_id:
          type:
            - string
            - 'null'
          description: Google WIF provider ID
        id:
          type: integer
        last_sync:
          type:
            - string
            - 'null'
          format: date-time
          description: Last sync finished time
        last_sync_count:
          type:
            - integer
            - 'null'
          description: Count of tasks synced last time
        last_sync_job:
          type:
            - string
            - 'null'
          description: Last sync job ID
        meta:
          oneOf:
            - description: Any type
            - type: 'null'
          description: Meta and debug information about storage processes
        prefix:
          type:
            - string
            - 'null'
          description: GCS bucket prefix
        presign:
          type: boolean
          default: true
        presign_ttl:
          type: integer
          description: Presigned URLs TTL (in minutes)
        project:
          type: integer
          description: A unique integer value identifying this project.
        recursive_scan:
          type:
            - boolean
            - 'null'
          description: Perform recursive scan over the bucket content
        regex_filter:
          type:
            - string
            - 'null'
          description: Cloud storage regex for filtering objects
        status:
          $ref: '#/components/schemas/StatusC5aEnum'
        synchronizable:
          type: boolean
          default: true
        title:
          type:
            - string
            - 'null'
          description: Cloud storage title
        traceback:
          type:
            - string
            - 'null'
          description: Traceback report for the last failed sync
        type:
          type: string
          default: gcswif
        use_blob_urls:
          type: boolean
          description: Interpret objects as BLOBs and generate URLs
      required:
        - created_at
        - id
        - project
        - type
      title: GCSWIFImportStorage
    GCSWIFImportStorageRequest:
      type: object
      properties:
        bucket:
          type:
            - string
            - 'null'
          description: GCS bucket name
        description:
          type:
            - string
            - 'null'
          description: Cloud storage description
        google_application_credentials:
          type:
            - string
            - 'null'
          description: The content of GOOGLE_APPLICATION_CREDENTIALS json file
        google_project_id:
          type:
            - string
            - 'null'
          description: Google project ID
        google_project_number:
          type:
            - string
            - 'null'
          description: Google project number
        google_service_account_email:
          type:
            - string
            - 'null'
          description: Google service account email
        google_wif_pool_id:
          type:
            - string
            - 'null'
          description: Google WIF pool ID
        google_wif_provider_id:
          type:
            - string
            - 'null'
          description: Google WIF provider ID
        last_sync:
          type:
            - string
            - 'null'
          format: date-time
          description: Last sync finished time
        last_sync_count:
          type:
            - integer
            - 'null'
          description: Count of tasks synced last time
        last_sync_job:
          type:
            - string
            - 'null'
          description: Last sync job ID
        meta:
          oneOf:
            - description: Any type
            - type: 'null'
          description: Meta and debug information about storage processes
        prefix:
          type:
            - string
            - 'null'
          description: GCS bucket prefix
        presign:
          type: boolean
          default: true
        presign_ttl:
          type: integer
          description: Presigned URLs TTL (in minutes)
        project:
          type: integer
          description: A unique integer value identifying this project.
        recursive_scan:
          type:
            - boolean
            - 'null'
          description: Perform recursive scan over the bucket content
        regex_filter:
          type:
            - string
            - 'null'
          description: Cloud storage regex for filtering objects
        status:
          $ref: '#/components/schemas/StatusC5aEnum'
        synchronizable:
          type: boolean
          default: true
        title:
          type:
            - string
            - 'null'
          description: Cloud storage title
        traceback:
          type:
            - string
            - 'null'
          description: Traceback report for the last failed sync
        use_blob_urls:
          type: boolean
          description: Interpret objects as BLOBs and generate URLs
      required:
        - project
      title: GCSWIFImportStorageRequest
    import_storage_gcswif_validate_Response_200:
      type: object
      properties: {}
      description: Empty response body
      title: import_storage_gcswif_validate_Response_200
    PatchedGCSWIFImportStorageRequest:
      type: object
      properties:
        bucket:
          type:
            - string
            - 'null'
          description: GCS bucket name
        description:
          type:
            - string
            - 'null'
          description: Cloud storage description
        google_application_credentials:
          type:
            - string
            - 'null'
          description: The content of GOOGLE_APPLICATION_CREDENTIALS json file
        google_project_id:
          type:
            - string
            - 'null'
          description: Google project ID
        google_project_number:
          type:
            - string
            - 'null'
          description: Google project number
        google_service_account_email:
          type:
            - string
            - 'null'
          description: Google service account email
        google_wif_pool_id:
          type:
            - string
            - 'null'
          description: Google WIF pool ID
        google_wif_provider_id:
          type:
            - string
            - 'null'
          description: Google WIF provider ID
        last_sync:
          type:
            - string
            - 'null'
          format: date-time
          description: Last sync finished time
        last_sync_count:
          type:
            - integer
            - 'null'
          description: Count of tasks synced last time
        last_sync_job:
          type:
            - string
            - 'null'
          description: Last sync job ID
        meta:
          oneOf:
            - description: Any type
            - type: 'null'
          description: Meta and debug information about storage processes
        prefix:
          type:
            - string
            - 'null'
          description: GCS bucket prefix
        presign:
          type: boolean
          default: true
        presign_ttl:
          type: integer
          description: Presigned URLs TTL (in minutes)
        project:
          type: integer
          description: A unique integer value identifying this project.
        recursive_scan:
          type:
            - boolean
            - 'null'
          description: Perform recursive scan over the bucket content
        regex_filter:
          type:
            - string
            - 'null'
          description: Cloud storage regex for filtering objects
        status:
          $ref: '#/components/schemas/StatusC5aEnum'
        synchronizable:
          type: boolean
          default: true
        title:
          type:
            - string
            - 'null'
          description: Cloud storage title
        traceback:
          type:
            - string
            - 'null'
          description: Traceback report for the last failed sync
        use_blob_urls:
          type: boolean
          description: Interpret objects as BLOBs and generate URLs
      title: PatchedGCSWIFImportStorageRequest
    LocalFilesImportStorage:
      type: object
      properties:
        created_at:
          type: string
          format: date-time
          description: Creation time
        description:
          type:
            - string
            - 'null'
          description: Cloud storage description
        id:
          type: integer
        last_sync:
          type:
            - string
            - 'null'
          format: date-time
          description: Last sync finished time
        last_sync_count:
          type:
            - integer
            - 'null'
          description: Count of tasks synced last time
        last_sync_job:
          type:
            - string
            - 'null'
          description: Last sync job ID
        meta:
          oneOf:
            - description: Any type
            - type: 'null'
          description: Meta and debug information about storage processes
        path:
          type:
            - string
            - 'null'
          description: Local path
        project:
          type: integer
          description: A unique integer value identifying this project.
        recursive_scan:
          type:
            - boolean
            - 'null'
          description: Perform recursive scan over the directory content
        regex_filter:
          type:
            - string
            - 'null'
          description: Regex for filtering objects
        status:
          $ref: '#/components/schemas/StatusC5aEnum'
        synchronizable:
          type: boolean
          default: true
        title:
          type:
            - string
            - 'null'
          description: Cloud storage title
        traceback:
          type:
            - string
            - 'null'
          description: Traceback report for the last failed sync
        type:
          type: string
          default: localfiles
        use_blob_urls:
          type: boolean
          description: Interpret objects as BLOBs and generate URLs
      required:
        - created_at
        - id
        - project
        - type
      title: LocalFilesImportStorage
    import_storage_local_validate_Response_200:
      type: object
      properties: {}
      description: Empty response body
      title: import_storage_local_validate_Response_200
    RedisImportStorage:
      type: object
      properties:
        created_at:
          type: string
          format: date-time
          description: Creation time
        db:
          type: integer
          description: Server Database
        description:
          type:
            - string
            - 'null'
          description: Cloud storage description
        host:
          type:
            - string
            - 'null'
          description: Server Host IP (optional)
        id:
          type: integer
        last_sync:
          type:
            - string
            - 'null'
          format: date-time
          description: Last sync finished time
        last_sync_count:
          type:
            - integer
            - 'null'
          description: Count of tasks synced last time
        last_sync_job:
          type:
            - string
            - 'null'
          description: Last sync job ID
        meta:
          oneOf:
            - description: Any type
            - type: 'null'
          description: Meta and debug information about storage processes
        password:
          type:
            - string
            - 'null'
          description: Server Password (optional)
        path:
          type:
            - string
            - 'null'
          description: Storage prefix (optional)
        port:
          type:
            - string
            - 'null'
          description: Server Port (optional)
        project:
          type: integer
          description: A unique integer value identifying this project.
        regex_filter:
          type:
            - string
            - 'null'
          description: Cloud storage regex for filtering objects
        status:
          $ref: '#/components/schemas/StatusC5aEnum'
        synchronizable:
          type: boolean
          default: true
        title:
          type:
            - string
            - 'null'
          description: Cloud storage title
        traceback:
          type:
            - string
            - 'null'
          description: Traceback report for the last failed sync
        type:
          type: string
          default: redis
        use_blob_urls:
          type: boolean
          description: Interpret objects as BLOBs and generate URLs
      required:
        - created_at
        - id
        - project
        - type
      title: RedisImportStorage
    import_storage_redis_validate_Response_200:
      type: object
      properties: {}
      description: Empty response body
      title: import_storage_redis_validate_Response_200
    S3ImportStorage:
      type: object
      properties:
        aws_access_key_id:
          type:
            - string
            - 'null'
          description: AWS_ACCESS_KEY_ID
        aws_secret_access_key:
          type:
            - string
            - 'null'
          description: AWS_SECRET_ACCESS_KEY
        aws_session_token:
          type:
            - string
            - 'null'
          description: AWS_SESSION_TOKEN
        aws_sse_kms_key_id:
          type:
            - string
            - 'null'
          description: AWS SSE KMS Key ID
        bucket:
          type:
            - string
            - 'null'
          description: S3 bucket name
        created_at:
          type: string
          format: date-time
          description: Creation time
        description:
          type:
            - string
            - 'null'
          description: Cloud storage description
        id:
          type: integer
        last_sync:
          type:
            - string
            - 'null'
          format: date-time
          description: Last sync finished time
        last_sync_count:
          type:
            - integer
            - 'null'
          description: Count of tasks synced last time
        last_sync_job:
          type:
            - string
            - 'null'
          description: Last sync job ID
        meta:
          oneOf:
            - description: Any type
            - type: 'null'
          description: Meta and debug information about storage processes
        prefix:
          type:
            - string
            - 'null'
          description: S3 bucket prefix
        presign:
          type: boolean
          default: true
        presign_ttl:
          type: integer
          description: Presigned URLs TTL (in minutes)
        project:
          type: integer
          description: A unique integer value identifying this project.
        recursive_scan:
          type: boolean
          description: Perform recursive scan over the bucket content
        regex_filter:
          type:
            - string
            - 'null'
          description: Cloud storage regex for filtering objects
        region_name:
          type:
            - string
            - 'null'
          description: AWS Region
        s3_endpoint:
          type:
            - string
            - 'null'
          description: S3 Endpoint
        status:
          $ref: '#/components/schemas/StatusC5aEnum'
        synchronizable:
          type: boolean
          default: true
        title:
          type:
            - string
            - 'null'
          description: Cloud storage title
        traceback:
          type:
            - string
            - 'null'
          description: Traceback report for the last failed sync
        type:
          type: string
          default: s3
        use_blob_urls:
          type: boolean
          description: Interpret objects as BLOBs and generate URLs
      required:
        - created_at
        - id
        - project
        - type
      title: S3ImportStorage
    import_storage_s3_validate_Response_200:
      type: object
      properties: {}
      description: Empty response body
      title: import_storage_s3_validate_Response_200
    LseS3ImportStorage:
      type: object
      properties:
        aws_access_key_id:
          type:
            - string
            - 'null'
          description: AWS_ACCESS_KEY_ID
        aws_secret_access_key:
          type:
            - string
            - 'null'
          description: AWS_SECRET_ACCESS_KEY
        aws_session_token:
          type:
            - string
            - 'null'
          description: AWS_SESSION_TOKEN
        aws_sse_kms_key_id:
          type:
            - string
            - 'null'
          description: AWS SSE KMS Key ID
        bucket:
          type:
            - string
            - 'null'
          description: S3 bucket name
        created_at:
          type: string
          format: date-time
          description: Creation time
        description:
          type:
            - string
            - 'null'
          description: Cloud storage description
        external_id:
          type:
            - string
            - 'null'
          description: AWS ExternalId
        id:
          type: integer
        last_sync:
          type:
            - string
            - 'null'
          format: date-time
          description: Last sync finished time
        last_sync_count:
          type:
            - integer
            - 'null'
          description: Count of tasks synced last time
        last_sync_job:
          type:
            - string
            - 'null'
          description: Last sync job ID
        legacy_auth:
          type:
            - boolean
            - 'null'
        meta:
          oneOf:
            - description: Any type
            - type: 'null'
          description: Meta and debug information about storage processes
        prefix:
          type:
            - string
            - 'null'
          description: S3 bucket prefix
        presign:
          type: boolean
          default: true
        presign_ttl:
          type: integer
          description: Presigned URLs TTL (in minutes)
        project:
          type: integer
          description: A unique integer value identifying this project.
        recursive_scan:
          type: boolean
          description: Perform recursive scan over the bucket content
        regex_filter:
          type:
            - string
            - 'null'
          description: Cloud storage regex for filtering objects
        region_name:
          type:
            - string
            - 'null'
          description: AWS Region
        role_arn:
          type: string
          description: AWS RoleArn
        s3_endpoint:
          type:
            - string
            - 'null'
          description: S3 Endpoint
        status:
          $ref: '#/components/schemas/StatusC5aEnum'
        synchronizable:
          type: boolean
          default: true
        title:
          type:
            - string
            - 'null'
          description: Cloud storage title
        traceback:
          type:
            - string
            - 'null'
          description: Traceback report for the last failed sync
        type:
          type: string
          default: s3s
        use_blob_urls:
          type: boolean
          description: Interpret objects as BLOBs and generate URLs
      required:
        - created_at
        - id
        - project
        - role_arn
        - type
      title: LseS3ImportStorage
    LseS3ImportStorageRequest:
      type: object
      properties:
        aws_access_key_id:
          type:
            - string
            - 'null'
          description: AWS_ACCESS_KEY_ID
        aws_secret_access_key:
          type:
            - string
            - 'null'
          description: AWS_SECRET_ACCESS_KEY
        aws_session_token:
          type:
            - string
            - 'null'
          description: AWS_SESSION_TOKEN
        aws_sse_kms_key_id:
          type:
            - string
            - 'null'
          description: AWS SSE KMS Key ID
        bucket:
          type:
            - string
            - 'null'
          description: S3 bucket name
        description:
          type:
            - string
            - 'null'
          description: Cloud storage description
        external_id:
          type:
            - string
            - 'null'
          description: AWS ExternalId
        last_sync:
          type:
            - string
            - 'null'
          format: date-time
          description: Last sync finished time
        last_sync_count:
          type:
            - integer
            - 'null'
          description: Count of tasks synced last time
        last_sync_job:
          type:
            - string
            - 'null'
          description: Last sync job ID
        legacy_auth:
          type:
            - boolean
            - 'null'
        meta:
          oneOf:
            - description: Any type
            - type: 'null'
          description: Meta and debug information about storage processes
        prefix:
          type:
            - string
            - 'null'
          description: S3 bucket prefix
        presign:
          type: boolean
          default: true
        presign_ttl:
          type: integer
          description: Presigned URLs TTL (in minutes)
        project:
          type: integer
          description: A unique integer value identifying this project.
        recursive_scan:
          type: boolean
          description: Perform recursive scan over the bucket content
        regex_filter:
          type:
            - string
            - 'null'
          description: Cloud storage regex for filtering objects
        region_name:
          type:
            - string
            - 'null'
          description: AWS Region
        role_arn:
          type: string
          description: AWS RoleArn
        s3_endpoint:
          type:
            - string
            - 'null'
          description: S3 Endpoint
        status:
          $ref: '#/components/schemas/StatusC5aEnum'
        synchronizable:
          type: boolean
          default: true
        title:
          type:
            - string
            - 'null'
          description: Cloud storage title
        traceback:
          type:
            - string
            - 'null'
          description: Traceback report for the last failed sync
        use_blob_urls:
          type: boolean
          description: Interpret objects as BLOBs and generate URLs
      required:
        - project
        - role_arn
      title: LseS3ImportStorageRequest
    import_storage_s3s_validate_Response_200:
      type: object
      properties: {}
      description: Empty response body
      title: import_storage_s3s_validate_Response_200
    PatchedLseS3ImportStorageRequest:
      type: object
      properties:
        aws_access_key_id:
          type:
            - string
            - 'null'
          description: AWS_ACCESS_KEY_ID
        aws_secret_access_key:
          type:
            - string
            - 'null'
          description: AWS_SECRET_ACCESS_KEY
        aws_session_token:
          type:
            - string
            - 'null'
          description: AWS_SESSION_TOKEN
        aws_sse_kms_key_id:
          type:
            - string
            - 'null'
          description: AWS SSE KMS Key ID
        bucket:
          type:
            - string
            - 'null'
          description: S3 bucket name
        description:
          type:
            - string
            - 'null'
          description: Cloud storage description
        external_id:
          type:
            - string
            - 'null'
          description: AWS ExternalId
        last_sync:
          type:
            - string
            - 'null'
          format: date-time
          description: Last sync finished time
        last_sync_count:
          type:
            - integer
            - 'null'
          description: Count of tasks synced last time
        last_sync_job:
          type:
            - string
            - 'null'
          description: Last sync job ID
        legacy_auth:
          type:
            - boolean
            - 'null'
        meta:
          oneOf:
            - description: Any type
            - type: 'null'
          description: Meta and debug information about storage processes
        prefix:
          type:
            - string
            - 'null'
          description: S3 bucket prefix
        presign:
          type: boolean
          default: true
        presign_ttl:
          type: integer
          description: Presigned URLs TTL (in minutes)
        project:
          type: integer
          description: A unique integer value identifying this project.
        recursive_scan:
          type: boolean
          description: Perform recursive scan over the bucket content
        regex_filter:
          type:
            - string
            - 'null'
          description: Cloud storage regex for filtering objects
        region_name:
          type:
            - string
            - 'null'
          description: AWS Region
        role_arn:
          type: string
          description: AWS RoleArn
        s3_endpoint:
          type:
            - string
            - 'null'
          description: S3 Endpoint
        status:
          $ref: '#/components/schemas/StatusC5aEnum'
        synchronizable:
          type: boolean
          default: true
        title:
          type:
            - string
            - 'null'
          description: Cloud storage title
        traceback:
          type:
            - string
            - 'null'
          description: Traceback report for the last failed sync
        use_blob_urls:
          type: boolean
          description: Interpret objects as BLOBs and generate URLs
      title: PatchedLseS3ImportStorageRequest
    ApiStoragesExportTypesGetResponsesContentApplicationJsonSchemaItems:
      type: object
      properties:
        name:
          type: string
        title:
          type: string
      title: ApiStoragesExportTypesGetResponsesContentApplicationJsonSchemaItems
    AzureBlobExportStorage:
      type: object
      properties:
        account_key:
          type:
            - string
            - 'null'
          description: Azure Blob account key
        account_name:
          type:
            - string
            - 'null'
          description: Azure Blob account name
        can_delete_objects:
          type:
            - boolean
            - 'null'
          description: Deletion from storage enabled
        container:
          type:
            - string
            - 'null'
          description: Azure blob container
        created_at:
          type: string
          format: date-time
          description: Creation time
        description:
          type:
            - string
            - 'null'
          description: Cloud storage description
        id:
          type: integer
        last_sync:
          type:
            - string
            - 'null'
          format: date-time
          description: Last sync finished time
        last_sync_count:
          type:
            - integer
            - 'null'
          description: Count of tasks synced last time
        last_sync_job:
          type:
            - string
            - 'null'
          description: Last sync job ID
        meta:
          oneOf:
            - description: Any type
            - type: 'null'
          description: Meta and debug information about storage processes
        prefix:
          type:
            - string
            - 'null'
          description: Azure blob prefix name
        project:
          type: integer
          description: A unique integer value identifying this project.
        regex_filter:
          type:
            - string
            - 'null'
          description: Cloud storage regex for filtering objects
        status:
          $ref: '#/components/schemas/StatusC5aEnum'
        synchronizable:
          type: boolean
          default: true
        title:
          type:
            - string
            - 'null'
          description: Cloud storage title
        traceback:
          type:
            - string
            - 'null'
          description: Traceback report for the last failed sync
        type:
          type: string
          default: azure
        use_blob_urls:
          type: boolean
          description: Interpret objects as BLOBs and generate URLs
      required:
        - created_at
        - id
        - project
        - type
      title: AzureBlobExportStorage
    export_storage_azure_validate_Response_200:
      type: object
      properties: {}
      description: Empty response body
      title: export_storage_azure_validate_Response_200
    AzureServicePrincipalExportStorage:
      type: object
      properties:
        account_name:
          type:
            - string
            - 'null'
          description: Azure Blob account name
        can_delete_objects:
          type:
            - boolean
            - 'null'
          description: Deletion from storage enabled
        client_id:
          type:
            - string
            - 'null'
          description: Azure Blob Service Principal Client ID
        client_secret:
          type:
            - string
            - 'null'
          description: Azure Blob Service Principal Client Secret
        container:
          type:
            - string
            - 'null'
          description: Azure blob container
        created_at:
          type: string
          format: date-time
          description: Creation time
        description:
          type:
            - string
            - 'null'
          description: Cloud storage description
        id:
          type: integer
        last_sync:
          type:
            - string
            - 'null'
          format: date-time
          description: Last sync finished time
        last_sync_count:
          type:
            - integer
            - 'null'
          description: Count of tasks synced last time
        last_sync_job:
          type:
            - string
            - 'null'
          description: Last sync job ID
        meta:
          oneOf:
            - description: Any type
            - type: 'null'
          description: Meta and debug information about storage processes
        prefix:
          type:
            - string
            - 'null'
          description: Azure blob prefix name
        project:
          type: integer
          description: A unique integer value identifying this project.
        regex_filter:
          type:
            - string
            - 'null'
          description: Cloud storage regex for filtering objects
        status:
          $ref: '#/components/schemas/StatusC5aEnum'
        synchronizable:
          type: boolean
          default: true
        tenant_id:
          type:
            - string
            - 'null'
          description: Azure Tenant ID
        title:
          type:
            - string
            - 'null'
          description: Cloud storage title
        traceback:
          type:
            - string
            - 'null'
          description: Traceback report for the last failed sync
        type:
          type: string
          default: azure_spi
        use_blob_urls:
          type: boolean
          description: Interpret objects as BLOBs and generate URLs
        user_delegation_key:
          type:
            - string
            - 'null'
          description: User Delegation Key (Backend)
      required:
        - created_at
        - id
        - project
        - type
      title: AzureServicePrincipalExportStorage
    AzureServicePrincipalExportStorageRequest:
      type: object
      properties:
        account_name:
          type:
            - string
            - 'null'
          description: Azure Blob account name
        can_delete_objects:
          type:
            - boolean
            - 'null'
          description: Deletion from storage enabled
        client_id:
          type:
            - string
            - 'null'
          description: Azure Blob Service Principal Client ID
        client_secret:
          type:
            - string
            - 'null'
          description: Azure Blob Service Principal Client Secret
        container:
          type:
            - string
            - 'null'
          description: Azure blob container
        description:
          type:
            - string
            - 'null'
          description: Cloud storage description
        last_sync:
          type:
            - string
            - 'null'
          format: date-time
          description: Last sync finished time
        last_sync_count:
          type:
            - integer
            - 'null'
          description: Count of tasks synced last time
        last_sync_job:
          type:
            - string
            - 'null'
          description: Last sync job ID
        meta:
          oneOf:
            - description: Any type
            - type: 'null'
          description: Meta and debug information about storage processes
        prefix:
          type:
            - string
            - 'null'
          description: Azure blob prefix name
        project:
          type: integer
          description: A unique integer value identifying this project.
        regex_filter:
          type:
            - string
            - 'null'
          description: Cloud storage regex for filtering objects
        status:
          $ref: '#/components/schemas/StatusC5aEnum'
        synchronizable:
          type: boolean
          default: true
        tenant_id:
          type:
            - string
            - 'null'
          description: Azure Tenant ID
        title:
          type:
            - string
            - 'null'
          description: Cloud storage title
        traceback:
          type:
            - string
            - 'null'
          description: Traceback report for the last failed sync
        use_blob_urls:
          type: boolean
          description: Interpret objects as BLOBs and generate URLs
        user_delegation_key:
          type:
            - string
            - 'null'
          description: User Delegation Key (Backend)
      required:
        - project
      title: AzureServicePrincipalExportStorageRequest
    export_storage_azure_spi_validate_Response_200:
      type: object
      properties: {}
      description: Empty response body
      title: export_storage_azure_spi_validate_Response_200
    PatchedAzureServicePrincipalExportStorageRequest:
      type: object
      properties:
        account_name:
          type:
            - string
            - 'null'
          description: Azure Blob account name
        can_delete_objects:
          type:
            - boolean
            - 'null'
          description: Deletion from storage enabled
        client_id:
          type:
            - string
            - 'null'
          description: Azure Blob Service Principal Client ID
        client_secret:
          type:
            - string
            - 'null'
          description: Azure Blob Service Principal Client Secret
        container:
          type:
            - string
            - 'null'
          description: Azure blob container
        description:
          type:
            - string
            - 'null'
          description: Cloud storage description
        last_sync:
          type:
            - string
            - 'null'
          format: date-time
          description: Last sync finished time
        last_sync_count:
          type:
            - integer
            - 'null'
          description: Count of tasks synced last time
        last_sync_job:
          type:
            - string
            - 'null'
          description: Last sync job ID
        meta:
          oneOf:
            - description: Any type
            - type: 'null'
          description: Meta and debug information about storage processes
        prefix:
          type:
            - string
            - 'null'
          description: Azure blob prefix name
        project:
          type: integer
          description: A unique integer value identifying this project.
        regex_filter:
          type:
            - string
            - 'null'
          description: Cloud storage regex for filtering objects
        status:
          $ref: '#/components/schemas/StatusC5aEnum'
        synchronizable:
          type: boolean
          default: true
        tenant_id:
          type:
            - string
            - 'null'
          description: Azure Tenant ID
        title:
          type:
            - string
            - 'null'
          description: Cloud storage title
        traceback:
          type:
            - string
            - 'null'
          description: Traceback report for the last failed sync
        use_blob_urls:
          type: boolean
          description: Interpret objects as BLOBs and generate URLs
        user_delegation_key:
          type:
            - string
            - 'null'
          description: User Delegation Key (Backend)
      title: PatchedAzureServicePrincipalExportStorageRequest
    DatabricksExportStorage:
      type: object
      properties:
        auth_type:
          $ref: '#/components/schemas/AuthTypeEnum'
          description: |-
            Authentication method: PAT, Databricks SP, or Azure AD SP

            * `pat` - Personal Access Token
            * `dbx_sp` - Databricks Service Principal
            * `azure_ad_sp` - Azure AD Service Principal
        can_delete_objects:
          type:
            - boolean
            - 'null'
          description: Deletion from storage enabled
        catalog:
          type: string
          description: UC catalog name
        client_id:
          type: string
          description: Service principal client/application ID (required for SP modes)
        created_at:
          type: string
          format: date-time
          description: Creation time
        description:
          type:
            - string
            - 'null'
          description: Cloud storage description
        host:
          type: string
          description: Databricks workspace base URL (https://...)
        id:
          type: integer
        last_sync:
          type:
            - string
            - 'null'
          format: date-time
          description: Last sync finished time
        last_sync_count:
          type:
            - integer
            - 'null'
          description: Count of tasks synced last time
        last_sync_job:
          type:
            - string
            - 'null'
          description: Last sync job ID
        meta:
          oneOf:
            - description: Any type
            - type: 'null'
          description: Meta and debug information about storage processes
        prefix:
          type:
            - string
            - 'null'
          description: Export path prefix under the volume
        project:
          type: integer
          description: A unique integer value identifying this project.
        regex_filter:
          type:
            - string
            - 'null'
          description: Regex for filtering objects
        request_timeout_s:
          type: integer
        schema:
          type: string
          description: UC schema name
        status:
          $ref: '#/components/schemas/StatusC5aEnum'
        stream_chunk_bytes:
          type: integer
        synchronizable:
          type: boolean
          default: true
        tenant_id:
          type: string
          description: Azure AD tenant ID (required for Azure AD SP mode)
        title:
          type:
            - string
            - 'null'
          description: Cloud storage title
        traceback:
          type:
            - string
            - 'null'
          description: Traceback report for the last failed sync
        type:
          type: string
          default: databricks
        use_blob_urls:
          type: boolean
          description: Generate blob URLs in tasks
        verify_tls:
          type: boolean
          description: Verify TLS certificates
        volume:
          type: string
          description: UC volume name
      required:
        - catalog
        - created_at
        - host
        - id
        - project
        - schema
        - type
        - volume
      description: Serializer for Databricks export storage with multi-auth support.
      title: DatabricksExportStorage
    DatabricksExportStorageRequest:
      type: object
      properties:
        auth_type:
          $ref: '#/components/schemas/AuthTypeEnum'
          description: |-
            Authentication method: PAT, Databricks SP, or Azure AD SP

            * `pat` - Personal Access Token
            * `dbx_sp` - Databricks Service Principal
            * `azure_ad_sp` - Azure AD Service Principal
        can_delete_objects:
          type:
            - boolean
            - 'null'
          description: Deletion from storage enabled
        catalog:
          type: string
          description: UC catalog name
        client_id:
          type: string
          description: Service principal client/application ID (required for SP modes)
        client_secret:
          type: string
          description: Service principal client secret (required for SP modes)
        description:
          type:
            - string
            - 'null'
          description: Cloud storage description
        host:
          type: string
          description: Databricks workspace base URL (https://...)
        last_sync:
          type:
            - string
            - 'null'
          format: date-time
          description: Last sync finished time
        last_sync_count:
          type:
            - integer
            - 'null'
          description: Count of tasks synced last time
        last_sync_job:
          type:
            - string
            - 'null'
          description: Last sync job ID
        meta:
          oneOf:
            - description: Any type
            - type: 'null'
          description: Meta and debug information about storage processes
        prefix:
          type:
            - string
            - 'null'
          description: Export path prefix under the volume
        project:
          type: integer
          description: A unique integer value identifying this project.
        regex_filter:
          type:
            - string
            - 'null'
          description: Regex for filtering objects
        request_timeout_s:
          type: integer
        schema:
          type: string
          description: UC schema name
        status:
          $ref: '#/components/schemas/StatusC5aEnum'
        stream_chunk_bytes:
          type: integer
        synchronizable:
          type: boolean
          default: true
        tenant_id:
          type: string
          description: Azure AD tenant ID (required for Azure AD SP mode)
        title:
          type:
            - string
            - 'null'
          description: Cloud storage title
        token:
          type: string
          description: Databricks personal access token (required for PAT mode)
        traceback:
          type:
            - string
            - 'null'
          description: Traceback report for the last failed sync
        use_blob_urls:
          type: boolean
          description: Generate blob URLs in tasks
        verify_tls:
          type: boolean
          description: Verify TLS certificates
        volume:
          type: string
          description: UC volume name
      required:
        - catalog
        - host
        - project
        - schema
        - volume
      description: Serializer for Databricks export storage with multi-auth support.
      title: DatabricksExportStorageRequest
    export_storage_databricks_validate_Response_200:
      type: object
      properties: {}
      description: Empty response body
      title: export_storage_databricks_validate_Response_200
    PatchedDatabricksExportStorageRequest:
      type: object
      properties:
        auth_type:
          $ref: '#/components/schemas/AuthTypeEnum'
          description: |-
            Authentication method: PAT, Databricks SP, or Azure AD SP

            * `pat` - Personal Access Token
            * `dbx_sp` - Databricks Service Principal
            * `azure_ad_sp` - Azure AD Service Principal
        can_delete_objects:
          type:
            - boolean
            - 'null'
          description: Deletion from storage enabled
        catalog:
          type: string
          description: UC catalog name
        client_id:
          type: string
          description: Service principal client/application ID (required for SP modes)
        client_secret:
          type: string
          description: Service principal client secret (required for SP modes)
        description:
          type:
            - string
            - 'null'
          description: Cloud storage description
        host:
          type: string
          description: Databricks workspace base URL (https://...)
        last_sync:
          type:
            - string
            - 'null'
          format: date-time
          description: Last sync finished time
        last_sync_count:
          type:
            - integer
            - 'null'
          description: Count of tasks synced last time
        last_sync_job:
          type:
            - string
            - 'null'
          description: Last sync job ID
        meta:
          oneOf:
            - description: Any type
            - type: 'null'
          description: Meta and debug information about storage processes
        prefix:
          type:
            - string
            - 'null'
          description: Export path prefix under the volume
        project:
          type: integer
          description: A unique integer value identifying this project.
        regex_filter:
          type:
            - string
            - 'null'
          description: Regex for filtering objects
        request_timeout_s:
          type: integer
        schema:
          type: string
          description: UC schema name
        status:
          $ref: '#/components/schemas/StatusC5aEnum'
        stream_chunk_bytes:
          type: integer
        synchronizable:
          type: boolean
          default: true
        tenant_id:
          type: string
          description: Azure AD tenant ID (required for Azure AD SP mode)
        title:
          type:
            - string
            - 'null'
          description: Cloud storage title
        token:
          type: string
          description: Databricks personal access token (required for PAT mode)
        traceback:
          type:
            - string
            - 'null'
          description: Traceback report for the last failed sync
        use_blob_urls:
          type: boolean
          description: Generate blob URLs in tasks
        verify_tls:
          type: boolean
          description: Verify TLS certificates
        volume:
          type: string
          description: UC volume name
      description: Serializer for Databricks export storage with multi-auth support.
      title: PatchedDatabricksExportStorageRequest
    GCSExportStorage:
      type: object
      properties:
        bucket:
          type:
            - string
            - 'null'
          description: GCS bucket name
        can_delete_objects:
          type:
            - boolean
            - 'null'
          description: Deletion from storage enabled
        created_at:
          type: string
          format: date-time
          description: Creation time
        description:
          type:
            - string
            - 'null'
          description: Cloud storage description
        google_application_credentials:
          type:
            - string
            - 'null'
          description: The content of GOOGLE_APPLICATION_CREDENTIALS json file
        google_project_id:
          type:
            - string
            - 'null'
          description: Google project ID
        id:
          type: integer
        last_sync:
          type:
            - string
            - 'null'
          format: date-time
          description: Last sync finished time
        last_sync_count:
          type:
            - integer
            - 'null'
          description: Count of tasks synced last time
        last_sync_job:
          type:
            - string
            - 'null'
          description: Last sync job ID
        meta:
          oneOf:
            - description: Any type
            - type: 'null'
          description: Meta and debug information about storage processes
        prefix:
          type:
            - string
            - 'null'
          description: GCS bucket prefix
        project:
          type: integer
          description: A unique integer value identifying this project.
        regex_filter:
          type:
            - string
            - 'null'
          description: Cloud storage regex for filtering objects
        status:
          $ref: '#/components/schemas/StatusC5aEnum'
        synchronizable:
          type: boolean
          default: true
        title:
          type:
            - string
            - 'null'
          description: Cloud storage title
        traceback:
          type:
            - string
            - 'null'
          description: Traceback report for the last failed sync
        type:
          type: string
          default: gcs
        use_blob_urls:
          type: boolean
          description: Interpret objects as BLOBs and generate URLs
      required:
        - created_at
        - id
        - project
        - type
      title: GCSExportStorage
    export_storage_gcs_validate_Response_200:
      type: object
      properties: {}
      description: Empty response body
      title: export_storage_gcs_validate_Response_200
    GCSSAExportStorage:
      type: object
      properties:
        bucket:
          type:
            - string
            - 'null'
          description: GCS bucket name
        can_delete_objects:
          type:
            - boolean
            - 'null'
          description: Deletion from storage enabled
        created_at:
          type: string
          format: date-time
          description: Creation time
        description:
          type:
            - string
            - 'null'
          description: Cloud storage description
        google_project_id:
          type:
            - string
            - 'null'
          description: Google project ID
        id:
          type: integer
        last_sync:
          type:
            - string
            - 'null'
          format: date-time
          description: Last sync finished time
        last_sync_count:
          type:
            - integer
            - 'null'
          description: Count of tasks synced last time
        last_sync_job:
          type:
            - string
            - 'null'
          description: Last sync job ID
        meta:
          oneOf:
            - description: Any type
            - type: 'null'
          description: Meta and debug information about storage processes
        prefix:
          type:
            - string
            - 'null'
          description: GCS bucket prefix
        project:
          type: integer
          description: A unique integer value identifying this project.
        regex_filter:
          type:
            - string
            - 'null'
          description: Cloud storage regex for filtering objects
        status:
          $ref: '#/components/schemas/StatusC5aEnum'
        synchronizable:
          type: boolean
          default: true
        target_service_account_email:
          type:
            - string
            - 'null'
          description: Service account email to impersonate for GCS access
        title:
          type:
            - string
            - 'null'
          description: Cloud storage title
        traceback:
          type:
            - string
            - 'null'
          description: Traceback report for the last failed sync
        type:
          type: string
          default: gcs_sa
        use_blob_urls:
          type: boolean
          description: Interpret objects as BLOBs and generate URLs
      required:
        - created_at
        - id
        - project
        - type
      title: GCSSAExportStorage
    GCSSAExportStorageRequest:
      type: object
      properties:
        bucket:
          type:
            - string
            - 'null'
          description: GCS bucket name
        can_delete_objects:
          type:
            - boolean
            - 'null'
          description: Deletion from storage enabled
        description:
          type:
            - string
            - 'null'
          description: Cloud storage description
        google_project_id:
          type:
            - string
            - 'null'
          description: Google project ID
        last_sync:
          type:
            - string
            - 'null'
          format: date-time
          description: Last sync finished time
        last_sync_count:
          type:
            - integer
            - 'null'
          description: Count of tasks synced last time
        last_sync_job:
          type:
            - string
            - 'null'
          description: Last sync job ID
        meta:
          oneOf:
            - description: Any type
            - type: 'null'
          description: Meta and debug information about storage processes
        prefix:
          type:
            - string
            - 'null'
          description: GCS bucket prefix
        project:
          type: integer
          description: A unique integer value identifying this project.
        regex_filter:
          type:
            - string
            - 'null'
          description: Cloud storage regex for filtering objects
        status:
          $ref: '#/components/schemas/StatusC5aEnum'
        synchronizable:
          type: boolean
          default: true
        target_service_account_email:
          type:
            - string
            - 'null'
          description: Service account email to impersonate for GCS access
        title:
          type:
            - string
            - 'null'
          description: Cloud storage title
        traceback:
          type:
            - string
            - 'null'
          description: Traceback report for the last failed sync
        use_blob_urls:
          type: boolean
          description: Interpret objects as BLOBs and generate URLs
      required:
        - project
      title: GCSSAExportStorageRequest
    export_storage_gcs_sa_validate_Response_200:
      type: object
      properties: {}
      description: Empty response body
      title: export_storage_gcs_sa_validate_Response_200
    PatchedGCSSAExportStorageRequest:
      type: object
      properties:
        bucket:
          type:
            - string
            - 'null'
          description: GCS bucket name
        can_delete_objects:
          type:
            - boolean
            - 'null'
          description: Deletion from storage enabled
        description:
          type:
            - string
            - 'null'
          description: Cloud storage description
        google_project_id:
          type:
            - string
            - 'null'
          description: Google project ID
        last_sync:
          type:
            - string
            - 'null'
          format: date-time
          description: Last sync finished time
        last_sync_count:
          type:
            - integer
            - 'null'
          description: Count of tasks synced last time
        last_sync_job:
          type:
            - string
            - 'null'
          description: Last sync job ID
        meta:
          oneOf:
            - description: Any type
            - type: 'null'
          description: Meta and debug information about storage processes
        prefix:
          type:
            - string
            - 'null'
          description: GCS bucket prefix
        project:
          type: integer
          description: A unique integer value identifying this project.
        regex_filter:
          type:
            - string
            - 'null'
          description: Cloud storage regex for filtering objects
        status:
          $ref: '#/components/schemas/StatusC5aEnum'
        synchronizable:
          type: boolean
          default: true
        target_service_account_email:
          type:
            - string
            - 'null'
          description: Service account email to impersonate for GCS access
        title:
          type:
            - string
            - 'null'
          description: Cloud storage title
        traceback:
          type:
            - string
            - 'null'
          description: Traceback report for the last failed sync
        use_blob_urls:
          type: boolean
          description: Interpret objects as BLOBs and generate URLs
      title: PatchedGCSSAExportStorageRequest
    GCSWIFExportStorage:
      type: object
      properties:
        bucket:
          type:
            - string
            - 'null'
          description: GCS bucket name
        can_delete_objects:
          type:
            - boolean
            - 'null'
          description: Deletion from storage enabled
        created_at:
          type: string
          format: date-time
          description: Creation time
        description:
          type:
            - string
            - 'null'
          description: Cloud storage description
        google_application_credentials:
          type:
            - string
            - 'null'
          description: The content of GOOGLE_APPLICATION_CREDENTIALS json file
        google_project_id:
          type:
            - string
            - 'null'
          description: Google project ID
        google_project_number:
          type:
            - string
            - 'null'
          description: Google project number
        google_service_account_email:
          type:
            - string
            - 'null'
          description: Google service account email
        google_wif_pool_id:
          type:
            - string
            - 'null'
          description: Google WIF pool ID
        google_wif_provider_id:
          type:
            - string
            - 'null'
          description: Google WIF provider ID
        id:
          type: integer
        last_sync:
          type:
            - string
            - 'null'
          format: date-time
          description: Last sync finished time
        last_sync_count:
          type:
            - integer
            - 'null'
          description: Count of tasks synced last time
        last_sync_job:
          type:
            - string
            - 'null'
          description: Last sync job ID
        meta:
          oneOf:
            - description: Any type
            - type: 'null'
          description: Meta and debug information about storage processes
        prefix:
          type:
            - string
            - 'null'
          description: GCS bucket prefix
        project:
          type: integer
          description: A unique integer value identifying this project.
        regex_filter:
          type:
            - string
            - 'null'
          description: Cloud storage regex for filtering objects
        status:
          $ref: '#/components/schemas/StatusC5aEnum'
        synchronizable:
          type: boolean
          default: true
        title:
          type:
            - string
            - 'null'
          description: Cloud storage title
        traceback:
          type:
            - string
            - 'null'
          description: Traceback report for the last failed sync
        type:
          type: string
          default: gcswif
        use_blob_urls:
          type: boolean
          description: Interpret objects as BLOBs and generate URLs
      required:
        - created_at
        - id
        - project
        - type
      title: GCSWIFExportStorage
    GCSWIFExportStorageRequest:
      type: object
      properties:
        bucket:
          type:
            - string
            - 'null'
          description: GCS bucket name
        can_delete_objects:
          type:
            - boolean
            - 'null'
          description: Deletion from storage enabled
        description:
          type:
            - string
            - 'null'
          description: Cloud storage description
        google_application_credentials:
          type:
            - string
            - 'null'
          description: The content of GOOGLE_APPLICATION_CREDENTIALS json file
        google_project_id:
          type:
            - string
            - 'null'
          description: Google project ID
        google_project_number:
          type:
            - string
            - 'null'
          description: Google project number
        google_service_account_email:
          type:
            - string
            - 'null'
          description: Google service account email
        google_wif_pool_id:
          type:
            - string
            - 'null'
          description: Google WIF pool ID
        google_wif_provider_id:
          type:
            - string
            - 'null'
          description: Google WIF provider ID
        last_sync:
          type:
            - string
            - 'null'
          format: date-time
          description: Last sync finished time
        last_sync_count:
          type:
            - integer
            - 'null'
          description: Count of tasks synced last time
        last_sync_job:
          type:
            - string
            - 'null'
          description: Last sync job ID
        meta:
          oneOf:
            - description: Any type
            - type: 'null'
          description: Meta and debug information about storage processes
        prefix:
          type:
            - string
            - 'null'
          description: GCS bucket prefix
        project:
          type: integer
          description: A unique integer value identifying this project.
        regex_filter:
          type:
            - string
            - 'null'
          description: Cloud storage regex for filtering objects
        status:
          $ref: '#/components/schemas/StatusC5aEnum'
        synchronizable:
          type: boolean
          default: true
        title:
          type:
            - string
            - 'null'
          description: Cloud storage title
        traceback:
          type:
            - string
            - 'null'
          description: Traceback report for the last failed sync
        use_blob_urls:
          type: boolean
          description: Interpret objects as BLOBs and generate URLs
      required:
        - project
      title: GCSWIFExportStorageRequest
    export_storage_gcswif_validate_Response_200:
      type: object
      properties: {}
      description: Empty response body
      title: export_storage_gcswif_validate_Response_200
    PatchedGCSWIFExportStorageRequest:
      type: object
      properties:
        bucket:
          type:
            - string
            - 'null'
          description: GCS bucket name
        can_delete_objects:
          type:
            - boolean
            - 'null'
          description: Deletion from storage enabled
        description:
          type:
            - string
            - 'null'
          description: Cloud storage description
        google_application_credentials:
          type:
            - string
            - 'null'
          description: The content of GOOGLE_APPLICATION_CREDENTIALS json file
        google_project_id:
          type:
            - string
            - 'null'
          description: Google project ID
        google_project_number:
          type:
            - string
            - 'null'
          description: Google project number
        google_service_account_email:
          type:
            - string
            - 'null'
          description: Google service account email
        google_wif_pool_id:
          type:
            - string
            - 'null'
          description: Google WIF pool ID
        google_wif_provider_id:
          type:
            - string
            - 'null'
          description: Google WIF provider ID
        last_sync:
          type:
            - string
            - 'null'
          format: date-time
          description: Last sync finished time
        last_sync_count:
          type:
            - integer
            - 'null'
          description: Count of tasks synced last time
        last_sync_job:
          type:
            - string
            - 'null'
          description: Last sync job ID
        meta:
          oneOf:
            - description: Any type
            - type: 'null'
          description: Meta and debug information about storage processes
        prefix:
          type:
            - string
            - 'null'
          description: GCS bucket prefix
        project:
          type: integer
          description: A unique integer value identifying this project.
        regex_filter:
          type:
            - string
            - 'null'
          description: Cloud storage regex for filtering objects
        status:
          $ref: '#/components/schemas/StatusC5aEnum'
        synchronizable:
          type: boolean
          default: true
        title:
          type:
            - string
            - 'null'
          description: Cloud storage title
        traceback:
          type:
            - string
            - 'null'
          description: Traceback report for the last failed sync
        use_blob_urls:
          type: boolean
          description: Interpret objects as BLOBs and generate URLs
      title: PatchedGCSWIFExportStorageRequest
    LocalFilesExportStorage:
      type: object
      properties:
        can_delete_objects:
          type:
            - boolean
            - 'null'
          description: Deletion from storage enabled
        created_at:
          type: string
          format: date-time
          description: Creation time
        description:
          type:
            - string
            - 'null'
          description: Cloud storage description
        id:
          type: integer
        last_sync:
          type:
            - string
            - 'null'
          format: date-time
          description: Last sync finished time
        last_sync_count:
          type:
            - integer
            - 'null'
          description: Count of tasks synced last time
        last_sync_job:
          type:
            - string
            - 'null'
          description: Last sync job ID
        meta:
          oneOf:
            - description: Any type
            - type: 'null'
          description: Meta and debug information about storage processes
        path:
          type:
            - string
            - 'null'
          description: Local path
        project:
          type: integer
          description: A unique integer value identifying this project.
        regex_filter:
          type:
            - string
            - 'null'
          description: Regex for filtering objects
        status:
          $ref: '#/components/schemas/StatusC5aEnum'
        synchronizable:
          type: boolean
          default: true
        title:
          type:
            - string
            - 'null'
          description: Cloud storage title
        traceback:
          type:
            - string
            - 'null'
          description: Traceback report for the last failed sync
        type:
          type: string
          default: localfiles
        use_blob_urls:
          type: boolean
          description: Interpret objects as BLOBs and generate URLs
      required:
        - created_at
        - id
        - project
        - type
      title: LocalFilesExportStorage
    export_storage_local_validate_Response_200:
      type: object
      properties: {}
      description: Empty response body
      title: export_storage_local_validate_Response_200
    RedisExportStorage:
      type: object
      properties:
        can_delete_objects:
          type:
            - boolean
            - 'null'
          description: Deletion from storage enabled
        created_at:
          type: string
          format: date-time
          description: Creation time
        db:
          type: integer
          description: Server Database
        description:
          type:
            - string
            - 'null'
          description: Cloud storage description
        host:
          type:
            - string
            - 'null'
          description: Server Host IP (optional)
        id:
          type: integer
        last_sync:
          type:
            - string
            - 'null'
          format: date-time
          description: Last sync finished time
        last_sync_count:
          type:
            - integer
            - 'null'
          description: Count of tasks synced last time
        last_sync_job:
          type:
            - string
            - 'null'
          description: Last sync job ID
        meta:
          oneOf:
            - description: Any type
            - type: 'null'
          description: Meta and debug information about storage processes
        password:
          type:
            - string
            - 'null'
          description: Server Password (optional)
        path:
          type:
            - string
            - 'null'
          description: Storage prefix (optional)
        port:
          type:
            - string
            - 'null'
          description: Server Port (optional)
        project:
          type: integer
          description: A unique integer value identifying this project.
        regex_filter:
          type:
            - string
            - 'null'
          description: Cloud storage regex for filtering objects
        status:
          $ref: '#/components/schemas/StatusC5aEnum'
        synchronizable:
          type: boolean
          default: true
        title:
          type:
            - string
            - 'null'
          description: Cloud storage title
        traceback:
          type:
            - string
            - 'null'
          description: Traceback report for the last failed sync
        type:
          type: string
          default: redis
        use_blob_urls:
          type: boolean
          description: Interpret objects as BLOBs and generate URLs
      required:
        - created_at
        - id
        - project
        - type
      title: RedisExportStorage
    export_storage_redis_validate_Response_200:
      type: object
      properties: {}
      description: Empty response body
      title: export_storage_redis_validate_Response_200
    S3ExportStorage:
      type: object
      properties:
        aws_access_key_id:
          type:
            - string
            - 'null'
          description: AWS_ACCESS_KEY_ID
        aws_secret_access_key:
          type:
            - string
            - 'null'
          description: AWS_SECRET_ACCESS_KEY
        aws_session_token:
          type:
            - string
            - 'null'
          description: AWS_SESSION_TOKEN
        aws_sse_kms_key_id:
          type:
            - string
            - 'null'
          description: AWS SSE KMS Key ID
        bucket:
          type:
            - string
            - 'null'
          description: S3 bucket name
        can_delete_objects:
          type:
            - boolean
            - 'null'
          description: Deletion from storage enabled
        created_at:
          type: string
          format: date-time
          description: Creation time
        description:
          type:
            - string
            - 'null'
          description: Cloud storage description
        id:
          type: integer
        last_sync:
          type:
            - string
            - 'null'
          format: date-time
          description: Last sync finished time
        last_sync_count:
          type:
            - integer
            - 'null'
          description: Count of tasks synced last time
        last_sync_job:
          type:
            - string
            - 'null'
          description: Last sync job ID
        meta:
          oneOf:
            - description: Any type
            - type: 'null'
          description: Meta and debug information about storage processes
        prefix:
          type:
            - string
            - 'null'
          description: S3 bucket prefix
        project:
          type: integer
          description: A unique integer value identifying this project.
        regex_filter:
          type:
            - string
            - 'null'
          description: Cloud storage regex for filtering objects
        region_name:
          type:
            - string
            - 'null'
          description: AWS Region
        s3_endpoint:
          type:
            - string
            - 'null'
          description: S3 Endpoint
        status:
          $ref: '#/components/schemas/StatusC5aEnum'
        synchronizable:
          type: boolean
          default: true
        title:
          type:
            - string
            - 'null'
          description: Cloud storage title
        traceback:
          type:
            - string
            - 'null'
          description: Traceback report for the last failed sync
        type:
          type: string
          default: s3
        use_blob_urls:
          type: boolean
          description: Interpret objects as BLOBs and generate URLs
      required:
        - created_at
        - id
        - project
        - type
      title: S3ExportStorage
    export_storage_s3_validate_Response_200:
      type: object
      properties: {}
      description: Empty response body
      title: export_storage_s3_validate_Response_200
    LseS3ExportStorage:
      type: object
      properties:
        aws_access_key_id:
          type:
            - string
            - 'null'
          description: AWS_ACCESS_KEY_ID
        aws_secret_access_key:
          type:
            - string
            - 'null'
          description: AWS_SECRET_ACCESS_KEY
        aws_session_token:
          type:
            - string
            - 'null'
          description: AWS_SESSION_TOKEN
        aws_sse_kms_key_id:
          type:
            - string
            - 'null'
          description: AWS SSE KMS Key ID
        bucket:
          type:
            - string
            - 'null'
          description: S3 bucket name
        can_delete_objects:
          type:
            - boolean
            - 'null'
          description: Deletion from storage enabled
        created_at:
          type: string
          format: date-time
          description: Creation time
        description:
          type:
            - string
            - 'null'
          description: Cloud storage description
        external_id:
          type:
            - string
            - 'null'
          description: AWS ExternalId
        id:
          type: integer
        last_sync:
          type:
            - string
            - 'null'
          format: date-time
          description: Last sync finished time
        last_sync_count:
          type:
            - integer
            - 'null'
          description: Count of tasks synced last time
        last_sync_job:
          type:
            - string
            - 'null'
          description: Last sync job ID
        legacy_auth:
          type:
            - boolean
            - 'null'
        meta:
          oneOf:
            - description: Any type
            - type: 'null'
          description: Meta and debug information about storage processes
        prefix:
          type:
            - string
            - 'null'
          description: S3 bucket prefix
        project:
          type: integer
          description: A unique integer value identifying this project.
        regex_filter:
          type:
            - string
            - 'null'
          description: Cloud storage regex for filtering objects
        region_name:
          type:
            - string
            - 'null'
          description: AWS Region
        role_arn:
          type: string
          description: AWS RoleArn
        s3_endpoint:
          type:
            - string
            - 'null'
          description: S3 Endpoint
        status:
          $ref: '#/components/schemas/StatusC5aEnum'
        synchronizable:
          type: boolean
          default: true
        title:
          type:
            - string
            - 'null'
          description: Cloud storage title
        traceback:
          type:
            - string
            - 'null'
          description: Traceback report for the last failed sync
        type:
          type: string
          default: s3s
        use_blob_urls:
          type: boolean
          description: Interpret objects as BLOBs and generate URLs
      required:
        - created_at
        - id
        - project
        - role_arn
        - type
      title: LseS3ExportStorage
    LseS3ExportStorageRequest:
      type: object
      properties:
        aws_access_key_id:
          type:
            - string
            - 'null'
          description: AWS_ACCESS_KEY_ID
        aws_secret_access_key:
          type:
            - string
            - 'null'
          description: AWS_SECRET_ACCESS_KEY
        aws_session_token:
          type:
            - string
            - 'null'
          description: AWS_SESSION_TOKEN
        aws_sse_kms_key_id:
          type:
            - string
            - 'null'
          description: AWS SSE KMS Key ID
        bucket:
          type:
            - string
            - 'null'
          description: S3 bucket name
        can_delete_objects:
          type:
            - boolean
            - 'null'
          description: Deletion from storage enabled
        description:
          type:
            - string
            - 'null'
          description: Cloud storage description
        external_id:
          type:
            - string
            - 'null'
          description: AWS ExternalId
        last_sync:
          type:
            - string
            - 'null'
          format: date-time
          description: Last sync finished time
        last_sync_count:
          type:
            - integer
            - 'null'
          description: Count of tasks synced last time
        last_sync_job:
          type:
            - string
            - 'null'
          description: Last sync job ID
        legacy_auth:
          type:
            - boolean
            - 'null'
        meta:
          oneOf:
            - description: Any type
            - type: 'null'
          description: Meta and debug information about storage processes
        prefix:
          type:
            - string
            - 'null'
          description: S3 bucket prefix
        project:
          type: integer
          description: A unique integer value identifying this project.
        regex_filter:
          type:
            - string
            - 'null'
          description: Cloud storage regex for filtering objects
        region_name:
          type:
            - string
            - 'null'
          description: AWS Region
        role_arn:
          type: string
          description: AWS RoleArn
        s3_endpoint:
          type:
            - string
            - 'null'
          description: S3 Endpoint
        status:
          $ref: '#/components/schemas/StatusC5aEnum'
        synchronizable:
          type: boolean
          default: true
        title:
          type:
            - string
            - 'null'
          description: Cloud storage title
        traceback:
          type:
            - string
            - 'null'
          description: Traceback report for the last failed sync
        use_blob_urls:
          type: boolean
          description: Interpret objects as BLOBs and generate URLs
      required:
        - project
        - role_arn
      title: LseS3ExportStorageRequest
    export_storage_s3s_validate_Response_200:
      type: object
      properties: {}
      description: Empty response body
      title: export_storage_s3s_validate_Response_200
    PatchedLseS3ExportStorageRequest:
      type: object
      properties:
        aws_access_key_id:
          type:
            - string
            - 'null'
          description: AWS_ACCESS_KEY_ID
        aws_secret_access_key:
          type:
            - string
            - 'null'
          description: AWS_SECRET_ACCESS_KEY
        aws_session_token:
          type:
            - string
            - 'null'
          description: AWS_SESSION_TOKEN
        aws_sse_kms_key_id:
          type:
            - string
            - 'null'
          description: AWS SSE KMS Key ID
        bucket:
          type:
            - string
            - 'null'
          description: S3 bucket name
        can_delete_objects:
          type:
            - boolean
            - 'null'
          description: Deletion from storage enabled
        description:
          type:
            - string
            - 'null'
          description: Cloud storage description
        external_id:
          type:
            - string
            - 'null'
          description: AWS ExternalId
        last_sync:
          type:
            - string
            - 'null'
          format: date-time
          description: Last sync finished time
        last_sync_count:
          type:
            - integer
            - 'null'
          description: Count of tasks synced last time
        last_sync_job:
          type:
            - string
            - 'null'
          description: Last sync job ID
        legacy_auth:
          type:
            - boolean
            - 'null'
        meta:
          oneOf:
            - description: Any type
            - type: 'null'
          description: Meta and debug information about storage processes
        prefix:
          type:
            - string
            - 'null'
          description: S3 bucket prefix
        project:
          type: integer
          description: A unique integer value identifying this project.
        regex_filter:
          type:
            - string
            - 'null'
          description: Cloud storage regex for filtering objects
        region_name:
          type:
            - string
            - 'null'
          description: AWS Region
        role_arn:
          type: string
          description: AWS RoleArn
        s3_endpoint:
          type:
            - string
            - 'null'
          description: S3 Endpoint
        status:
          $ref: '#/components/schemas/StatusC5aEnum'
        synchronizable:
          type: boolean
          default: true
        title:
          type:
            - string
            - 'null'
          description: Cloud storage title
        traceback:
          type:
            - string
            - 'null'
          description: Traceback report for the last failed sync
        use_blob_urls:
          type: boolean
          description: Interpret objects as BLOBs and generate URLs
      title: PatchedLseS3ExportStorageRequest
    LSEAPITokenList:
      type: object
      properties:
        created_at:
          type: string
        expires_at:
          type: string
        token:
          type: string
      required:
        - created_at
        - expires_at
        - token
      title: LSEAPITokenList
    LSEAPITokenCreate:
      type: object
      properties:
        created_at:
          type: string
        expires_at:
          type: string
        token:
          type: string
      required:
        - created_at
        - expires_at
        - token
      title: LSEAPITokenCreate
    LSAPITokenBlacklistRequest:
      type: object
      properties:
        refresh:
          type: string
      required:
        - refresh
      title: LSAPITokenBlacklistRequest
    TokenRefreshRequest:
      type: object
      properties:
        refresh:
          type: string
      required:
        - refresh
      title: TokenRefreshRequest
    TokenRefreshResponse:
      type: object
      properties:
        access:
          type: string
      required:
        - access
      title: TokenRefreshResponse
    LSAPITokenRotateRequest:
      type: object
      properties:
        refresh:
          type: string
      required:
        - refresh
      title: LSAPITokenRotateRequest
    TokenRotateResponse:
      type: object
      properties:
        refresh:
          type: string
      required:
        - refresh
      title: TokenRotateResponse
    EditionEnum:
      type: string
      enum:
        - Community
        - Enterprise
      description: |-
        * `Community` - Community
        * `Enterprise` - Enterprise
      title: EditionEnum
    VersionResponse:
      type: object
      properties:
        backend:
          description: Additional backend information
        dm2:
          description: Information about the Data Manager 2.0 component
        edition:
          $ref: '#/components/schemas/EditionEnum'
          description: |-
            Label Studio edition (Community or Enterprise)

            * `Community` - Community
            * `Enterprise` - Enterprise
        label-studio-converter:
          description: Information about the Label Studio converter component
        label-studio-frontend:
          description: Information about the Label Studio frontend
        label-studio-os-backend:
          description: Information about the Label Studio backend
        label-studio-os-package:
          description: Information about the Label Studio open source package
        lsf:
          description: Information about the Label Studio Frontend library
        release:
          type: string
          description: Current release version of Label Studio
      required:
        - backend
        - dm2
        - edition
        - label-studio-converter
        - label-studio-frontend
        - label-studio-os-backend
        - label-studio-os-package
        - lsf
        - release
      title: VersionResponse
    ActionsEnum:
      type: string
      enum:
        - PROJECT_CREATED
        - PROJECT_UPDATED
        - PROJECT_DELETED
        - TASKS_CREATED
        - TASKS_DELETED
        - ANNOTATION_CREATED
        - ANNOTATIONS_CREATED
        - ANNOTATION_UPDATED
        - ANNOTATIONS_DELETED
        - LABEL_LINK_CREATED
        - LABEL_LINK_UPDATED
        - LABEL_LINK_DELETED
        - REVIEW_CREATED
        - REVIEW_UPDATED
        - REVIEWS_DELETED
      description: |-
        * `PROJECT_CREATED` - PROJECT_CREATED
        * `PROJECT_UPDATED` - PROJECT_UPDATED
        * `PROJECT_DELETED` - PROJECT_DELETED
        * `TASKS_CREATED` - TASKS_CREATED
        * `TASKS_DELETED` - TASKS_DELETED
        * `ANNOTATION_CREATED` - ANNOTATION_CREATED
        * `ANNOTATIONS_CREATED` - ANNOTATIONS_CREATED
        * `ANNOTATION_UPDATED` - ANNOTATION_UPDATED
        * `ANNOTATIONS_DELETED` - ANNOTATIONS_DELETED
        * `LABEL_LINK_CREATED` - LABEL_LINK_CREATED
        * `LABEL_LINK_UPDATED` - LABEL_LINK_UPDATED
        * `LABEL_LINK_DELETED` - LABEL_LINK_DELETED
        * `REVIEW_CREATED` - REVIEW_CREATED
        * `REVIEW_UPDATED` - REVIEW_UPDATED
        * `REVIEWS_DELETED` - REVIEWS_DELETED
      title: ActionsEnum
    Webhook:
      type: object
      properties:
        actions:
          type: array
          items:
            $ref: '#/components/schemas/ActionsEnum'
        created_at:
          type: string
          format: date-time
          description: Creation time
        headers:
          description: Key Value Json of headers
        id:
          type: integer
        is_active:
          type: boolean
          description: If value is False the webhook is disabled
        organization:
          type: integer
        project:
          type:
            - integer
            - 'null'
        send_for_all_actions:
          type: boolean
          description: If value is False - used only for actions from WebhookAction
        send_payload:
          type: boolean
          description: If value is False send only action
        updated_at:
          type: string
          format: date-time
          description: Last update time
        url:
          type: string
          format: uri
          description: URL of webhook
      required:
        - created_at
        - id
        - organization
        - updated_at
        - url
      title: Webhook
    WebhookRequest:
      type: object
      properties:
        actions:
          type: array
          items:
            $ref: '#/components/schemas/ActionsEnum'
        headers:
          description: Key Value Json of headers
        is_active:
          type: boolean
          description: If value is False the webhook is disabled
        project:
          type:
            - integer
            - 'null'
        send_for_all_actions:
          type: boolean
          description: If value is False - used only for actions from WebhookAction
        send_payload:
          type: boolean
          description: If value is False send only action
        url:
          type: string
          format: uri
          description: URL of webhook
      required:
        - url
      title: WebhookRequest
    ApiWebhooksInfoGetResponsesContentApplicationJsonSchemaAnnotationsCreated:
      type: object
      properties:
        description:
          type: string
        key:
          type: string
        name:
          type: string
        organization-only:
          type: boolean
      required:
        - description
        - key
        - name
        - organization-only
      title: ApiWebhooksInfoGetResponsesContentApplicationJsonSchemaAnnotationsCreated
    ApiWebhooksInfoGetResponsesContentApplicationJsonSchemaAnnotationsDeleted:
      type: object
      properties:
        description:
          type: string
        key:
          type: string
        name:
          type: string
        organization-only:
          type: boolean
      required:
        - description
        - key
        - name
        - organization-only
      title: ApiWebhooksInfoGetResponsesContentApplicationJsonSchemaAnnotationsDeleted
    ApiWebhooksInfoGetResponsesContentApplicationJsonSchemaAnnotationCreated:
      type: object
      properties:
        description:
          type: string
        key:
          type: string
        name:
          type: string
        organization-only:
          type: boolean
      required:
        - description
        - key
        - name
        - organization-only
      title: ApiWebhooksInfoGetResponsesContentApplicationJsonSchemaAnnotationCreated
    ApiWebhooksInfoGetResponsesContentApplicationJsonSchemaAnnotationUpdated:
      type: object
      properties:
        description:
          type: string
        key:
          type: string
        name:
          type: string
        organization-only:
          type: boolean
      required:
        - description
        - key
        - name
        - organization-only
      title: ApiWebhooksInfoGetResponsesContentApplicationJsonSchemaAnnotationUpdated
    ApiWebhooksInfoGetResponsesContentApplicationJsonSchemaLabelLinkCreated:
      type: object
      properties:
        description:
          type: string
        key:
          type: string
        name:
          type: string
        organization-only:
          type: boolean
      required:
        - description
        - key
        - name
        - organization-only
      title: ApiWebhooksInfoGetResponsesContentApplicationJsonSchemaLabelLinkCreated
    ApiWebhooksInfoGetResponsesContentApplicationJsonSchemaLabelLinkDeleted:
      type: object
      properties:
        description:
          type: string
        key:
          type: string
        name:
          type: string
        organization-only:
          type: boolean
      required:
        - description
        - key
        - name
        - organization-only
      title: ApiWebhooksInfoGetResponsesContentApplicationJsonSchemaLabelLinkDeleted
    ApiWebhooksInfoGetResponsesContentApplicationJsonSchemaLabelLinkUpdated:
      type: object
      properties:
        description:
          type: string
        key:
          type: string
        name:
          type: string
        organization-only:
          type: boolean
      required:
        - description
        - key
        - name
        - organization-only
      title: ApiWebhooksInfoGetResponsesContentApplicationJsonSchemaLabelLinkUpdated
    ApiWebhooksInfoGetResponsesContentApplicationJsonSchemaProjectCreated:
      type: object
      properties:
        description:
          type: string
        key:
          type: string
        name:
          type: string
        organization-only:
          type: boolean
      required:
        - description
        - key
        - name
        - organization-only
      title: ApiWebhooksInfoGetResponsesContentApplicationJsonSchemaProjectCreated
    ApiWebhooksInfoGetResponsesContentApplicationJsonSchemaProjectDeleted:
      type: object
      properties:
        description:
          type: string
        key:
          type: string
        name:
          type: string
        organization-only:
          type: boolean
      required:
        - description
        - key
        - name
        - organization-only
      title: ApiWebhooksInfoGetResponsesContentApplicationJsonSchemaProjectDeleted
    ApiWebhooksInfoGetResponsesContentApplicationJsonSchemaProjectUpdated:
      type: object
      properties:
        description:
          type: string
        key:
          type: string
        name:
          type: string
        organization-only:
          type: boolean
      required:
        - description
        - key
        - name
        - organization-only
      title: ApiWebhooksInfoGetResponsesContentApplicationJsonSchemaProjectUpdated
    ApiWebhooksInfoGetResponsesContentApplicationJsonSchemaReviewsDeleted:
      type: object
      properties:
        description:
          type: string
        key:
          type: string
        name:
          type: string
        organization-only:
          type: boolean
      required:
        - description
        - key
        - name
        - organization-only
      title: ApiWebhooksInfoGetResponsesContentApplicationJsonSchemaReviewsDeleted
    ApiWebhooksInfoGetResponsesContentApplicationJsonSchemaReviewCreated:
      type: object
      properties:
        description:
          type: string
        key:
          type: string
        name:
          type: string
        organization-only:
          type: boolean
      required:
        - description
        - key
        - name
        - organization-only
      title: ApiWebhooksInfoGetResponsesContentApplicationJsonSchemaReviewCreated
    ApiWebhooksInfoGetResponsesContentApplicationJsonSchemaReviewUpdated:
      type: object
      properties:
        description:
          type: string
        key:
          type: string
        name:
          type: string
        organization-only:
          type: boolean
      required:
        - description
        - key
        - name
        - organization-only
      title: ApiWebhooksInfoGetResponsesContentApplicationJsonSchemaReviewUpdated
    ApiWebhooksInfoGetResponsesContentApplicationJsonSchemaTasksCreated:
      type: object
      properties:
        description:
          type: string
        key:
          type: string
        name:
          type: string
        organization-only:
          type: boolean
      required:
        - description
        - key
        - name
        - organization-only
      title: ApiWebhooksInfoGetResponsesContentApplicationJsonSchemaTasksCreated
    ApiWebhooksInfoGetResponsesContentApplicationJsonSchemaTasksDeleted:
      type: object
      properties:
        description:
          type: string
        key:
          type: string
        name:
          type: string
        organization-only:
          type: boolean
      required:
        - description
        - key
        - name
        - organization-only
      title: ApiWebhooksInfoGetResponsesContentApplicationJsonSchemaTasksDeleted
    webhooks_info_Response_200:
      type: object
      properties:
        ANNOTATIONS_CREATED:
          $ref: '#/components/schemas/ApiWebhooksInfoGetResponsesContentApplicationJsonSchemaAnnotationsCreated'
        ANNOTATIONS_DELETED:
          $ref: '#/components/schemas/ApiWebhooksInfoGetResponsesContentApplicationJsonSchemaAnnotationsDeleted'
        ANNOTATION_CREATED:
          $ref: '#/components/schemas/ApiWebhooksInfoGetResponsesContentApplicationJsonSchemaAnnotationCreated'
        ANNOTATION_UPDATED:
          $ref: '#/components/schemas/ApiWebhooksInfoGetResponsesContentApplicationJsonSchemaAnnotationUpdated'
        LABEL_LINK_CREATED:
          $ref: '#/components/schemas/ApiWebhooksInfoGetResponsesContentApplicationJsonSchemaLabelLinkCreated'
        LABEL_LINK_DELETED:
          $ref: '#/components/schemas/ApiWebhooksInfoGetResponsesContentApplicationJsonSchemaLabelLinkDeleted'
        LABEL_LINK_UPDATED:
          $ref: '#/components/schemas/ApiWebhooksInfoGetResponsesContentApplicationJsonSchemaLabelLinkUpdated'
        PROJECT_CREATED:
          $ref: '#/components/schemas/ApiWebhooksInfoGetResponsesContentApplicationJsonSchemaProjectCreated'
        PROJECT_DELETED:
          $ref: '#/components/schemas/ApiWebhooksInfoGetResponsesContentApplicationJsonSchemaProjectDeleted'
        PROJECT_UPDATED:
          $ref: '#/components/schemas/ApiWebhooksInfoGetResponsesContentApplicationJsonSchemaProjectUpdated'
        REVIEWS_DELETED:
          $ref: '#/components/schemas/ApiWebhooksInfoGetResponsesContentApplicationJsonSchemaReviewsDeleted'
        REVIEW_CREATED:
          $ref: '#/components/schemas/ApiWebhooksInfoGetResponsesContentApplicationJsonSchemaReviewCreated'
        REVIEW_UPDATED:
          $ref: '#/components/schemas/ApiWebhooksInfoGetResponsesContentApplicationJsonSchemaReviewUpdated'
        TASKS_CREATED:
          $ref: '#/components/schemas/ApiWebhooksInfoGetResponsesContentApplicationJsonSchemaTasksCreated'
        TASKS_DELETED:
          $ref: '#/components/schemas/ApiWebhooksInfoGetResponsesContentApplicationJsonSchemaTasksDeleted'
      title: webhooks_info_Response_200
    PatchedWebhookSerializerForUpdateRequest:
      type: object
      properties:
        actions:
          type: array
          items:
            $ref: '#/components/schemas/ActionsEnum'
        headers:
          description: Key Value Json of headers
        is_active:
          type: boolean
          description: If value is False the webhook is disabled
        send_for_all_actions:
          type: boolean
          description: If value is False - used only for actions from WebhookAction
        send_payload:
          type: boolean
          description: If value is False send only action
        url:
          type: string
          format: uri
          description: URL of webhook
      description: |-
        Serializer class for updating webhooks

        Used to forbid updating project field.
      title: PatchedWebhookSerializerForUpdateRequest
    WebhookSerializerForUpdate:
      type: object
      properties:
        actions:
          type: array
          items:
            $ref: '#/components/schemas/ActionsEnum'
        created_at:
          type: string
          format: date-time
          description: Creation time
        headers:
          description: Key Value Json of headers
        id:
          type: integer
        is_active:
          type: boolean
          description: If value is False the webhook is disabled
        organization:
          type: integer
        project:
          type:
            - integer
            - 'null'
        send_for_all_actions:
          type: boolean
          description: If value is False - used only for actions from WebhookAction
        send_payload:
          type: boolean
          description: If value is False send only action
        updated_at:
          type: string
          format: date-time
          description: Last update time
        url:
          type: string
          format: uri
          description: URL of webhook
      required:
        - created_at
        - id
        - organization
        - project
        - updated_at
        - url
      description: |-
        Serializer class for updating webhooks

        Used to forbid updating project field.
      title: WebhookSerializerForUpdate
    Workspace:
      type: object
      properties:
        color:
          type:
            - string
            - 'null'
          description: Color
        created_by:
          type: integer
        created_by_user:
          type: string
        description:
          type:
            - string
            - 'null'
          description: Workspace description
        id:
          type: integer
        is_archived:
          type: boolean
          description: Workspace is archived
        is_personal:
          type: boolean
          description: Workspace is a personal user workspace
        membership:
          type: string
        projects_count:
          type:
            - integer
            - 'null'
        title:
          type: string
          description: Workspace Name
      required:
        - created_by
        - created_by_user
        - id
        - membership
        - projects_count
        - title
      description: |-
        A ModelSerializer that takes additional arguments for
        "fields", "omit" and "expand" in order to
        control which fields are displayed, and whether to replace simple
        values with complex, nested serializations
      title: Workspace
    WorkspaceRequest:
      type: object
      properties:
        color:
          type:
            - string
            - 'null'
          description: Color
        description:
          type:
            - string
            - 'null'
          description: Workspace description
        is_archived:
          type: boolean
          description: Workspace is archived
        is_personal:
          type: boolean
          description: Workspace is a personal user workspace
        title:
          type: string
          description: Workspace Name
      required:
        - title
      description: |-
        A ModelSerializer that takes additional arguments for
        "fields", "omit" and "expand" in order to
        control which fields are displayed, and whether to replace simple
        values with complex, nested serializations
      title: WorkspaceRequest
    PatchedWorkspaceRequest:
      type: object
      properties:
        color:
          type:
            - string
            - 'null'
          description: Color
        description:
          type:
            - string
            - 'null'
          description: Workspace description
        is_archived:
          type: boolean
          description: Workspace is archived
        is_personal:
          type: boolean
          description: Workspace is a personal user workspace
        title:
          type: string
          description: Workspace Name
      description: |-
        A ModelSerializer that takes additional arguments for
        "fields", "omit" and "expand" in order to
        control which fields are displayed, and whether to replace simple
        values with complex, nested serializations
      title: PatchedWorkspaceRequest
    WorkspaceMemberList:
      type: object
      properties:
        user:
          $ref: '#/components/schemas/LseUser'
        workspace:
          type: integer
          description: Workspace ID
      required:
        - user
      title: WorkspaceMemberList
    WorkspaceMemberCreateRequest:
      type: object
      properties:
        user:
          type: integer
          description: User ID
        workspace:
          type: integer
          description: Workspace ID
      required:
        - user
      title: WorkspaceMemberCreateRequest
    WorkspaceMemberCreate:
      type: object
      properties:
        user:
          type: integer
          description: User ID
        workspace:
          type: integer
          description: Workspace ID
      required:
        - user
      title: WorkspaceMemberCreate
    WorkspaceMemberBulkAssignRequest:
      type: object
      properties:
        all:
          type: boolean
          description: Apply to all workspace members
        excluded:
          type: array
          items:
            type: integer
          description: Excluded user IDs
        included:
          type: array
          items:
            type: integer
          description: Included user IDs
      required:
        - all
      title: WorkspaceMemberBulkAssignRequest
    workspaces_members_bulk_post_Response_200:
      type: object
      properties:
        assignments:
          type: integer
      title: workspaces_members_bulk_post_Response_200
    workspaces_members_bulk_delete_Response_200:
      type: object
      properties:
        unassignments:
          type: integer
      title: workspaces_members_bulk_delete_Response_200
    PaginatedLseUserList:
      type: object
      properties:
        count:
          type: integer
        next:
          type:
            - string
            - 'null'
          format: uri
        previous:
          type:
            - string
            - 'null'
          format: uri
        results:
          type: array
          items:
            $ref: '#/components/schemas/LseUser'
      required:
        - count
        - results
      title: PaginatedLseUserList
    Project:
      type: object
      properties:
        annotator_evaluation_enabled:
          type: boolean
          description: Enable annotator evaluation for the project
        color:
          type:
            - string
            - 'null'
        config_has_control_tags:
          type: boolean
          description: Flag to detect is project ready for labeling
        config_suitable_for_bulk_annotation:
          type: boolean
          description: Flag to detect is project ready for bulk annotation
        control_weights:
          type:
            - object
            - 'null'
          additionalProperties:
            $ref: '#/components/schemas/ControlTagWeight'
          description: >-
            Dict of weights for each control tag in metric calculation. Keys are control tag names from the labeling
            config. At least one tag must have a non-zero overall weight.
        created_at:
          type: string
          format: date-time
        created_by:
          $ref: '#/components/schemas/UserSimple'
          description: Project owner
        description:
          type:
            - string
            - 'null'
          description: Project description
        enable_empty_annotation:
          type: boolean
          description: Allow annotators to submit empty annotations
        evaluate_predictions_automatically:
          type: boolean
          description: Retrieve and display predictions when loading a task
        expert_instruction:
          type:
            - string
            - 'null'
          description: Labeling instructions in HTML format
        finished_task_number:
          type: integer
          description: Finished tasks
        ground_truth_number:
          type: integer
          description: Honeypot annotation number in project
        id:
          type: integer
        is_draft:
          type: boolean
          description: Whether or not the project is in the middle of being created
        is_published:
          type: boolean
          description: Whether or not the project is published to annotators
        label_config:
          type:
            - string
            - 'null'
          description: Label config in XML format. See more about it in documentation
        maximum_annotations:
          type: integer
          description: >-
            Maximum number of annotations for one task. If the number of annotations per task is equal or greater to
            this value, the task is completed (is_labeled=True)
        min_annotations_to_start_training:
          type: integer
          description: Minimum number of completed tasks after which model training is started
        model_version:
          type:
            - string
            - 'null'
          description: Machine learning model version
        num_tasks_with_annotations:
          type: integer
          description: Tasks with annotations count
        organization:
          type:
            - integer
            - 'null'
        overlap_cohort_percentage:
          type: integer
        parsed_label_config:
          type: object
          additionalProperties:
            description: Any type
          description: JSON-formatted labeling configuration
        pinned_at:
          type:
            - string
            - 'null'
          format: date-time
          description: Pinned date and time
        queue_done:
          type: integer
        queue_total:
          type: integer
        reveal_preannotations_interactively:
          type: boolean
          description: Reveal pre-annotations interactively
        sampling:
          oneOf:
            - $ref: '#/components/schemas/SamplingDe5Enum'
            - type: 'null'
        show_annotation_history:
          type: boolean
          description: Show annotation history to annotator
        show_collab_predictions:
          type: boolean
          description: If set, the annotator can view model predictions
        show_ground_truth_first:
          type: boolean
          description: 'Onboarding mode (true): show ground truth tasks first in the labeling stream'
        show_instruction:
          type: boolean
          description: Show instructions to the annotator before they start
        show_overlap_first:
          type: boolean
        show_skip_button:
          type: boolean
          description: Show a skip button in interface and allow annotators to skip the task
        skip_queue:
          oneOf:
            - $ref: '#/components/schemas/SkipQueueEnum'
            - type: 'null'
        skipped_annotations_number:
          type: integer
          description: Skipped by collaborators annotation number in project
        start_training_on_annotation_update:
          type: boolean
          description: Start model training after any annotations are submitted or updated
        state:
          type: string
        task_data_login:
          type:
            - string
            - 'null'
          description: 'Task data credentials: login'
        task_data_password:
          type:
            - string
            - 'null'
          description: 'Task data credentials: password'
        task_number:
          type: integer
          description: Total task number in project
        title:
          type:
            - string
            - 'null'
          description: Project name. Must be between 3 and 50 characters long.
        total_annotations_number:
          type: integer
          description: Total annotations number in project including skipped_annotations_number and ground_truth_number.
        total_predictions_number:
          type: integer
          description: >-
            Total predictions number in project including skipped_annotations_number, ground_truth_number, and
            useful_annotation_number.
        useful_annotation_number:
          type: integer
          description: >-
            Useful annotation number in project not including skipped_annotations_number and ground_truth_number. Total
            annotations = annotation_number + skipped_annotations_number + ground_truth_number
      required:
        - config_has_control_tags
        - config_suitable_for_bulk_annotation
        - created_at
        - finished_task_number
        - ground_truth_number
        - id
        - num_tasks_with_annotations
        - parsed_label_config
        - queue_done
        - queue_total
        - skipped_annotations_number
        - start_training_on_annotation_update
        - state
        - task_number
        - total_annotations_number
        - total_predictions_number
        - useful_annotation_number
      description: |-
        Serializer get numbers from project queryset annotation,
        make sure, that you use correct one(Project.objects.with_counts())
      title: Project
    WorkspaceProjectsRequest:
      type: object
      properties:
        project:
          type: integer
          description: Project ID
      required:
        - project
      title: WorkspaceProjectsRequest
    workspaces_projects_add_Response_201:
      type: object
      properties: {}
      description: Empty response body
      title: workspaces_projects_add_Response_201
  securitySchemes:
    Token:
      type: apiKey
      in: header
      name: Authorization
      description: >-
        The token (or API key) must be passed as a request header. You can find your user token on the User Account page
        in Label Studio. Example: <br><pre><code class="language-bash">curl https://label-studio-host/api/projects -H
        "Authorization: Token [your-token]"</code></pre>
