openapi: 3.0.3
info:
  title: ''
  version: v1
  x-logo:
    url: https://storage.googleapis.com/sdm-marketing-assets/logos/sdm-long-black.png
    altText: Supplier Data Manager
  x-tagGroups: []
paths:
  /api/v1/auth/token/:
    post:
      operationId: auth_token_create
      description: Create a new token with a given name
      summary: Create token
      tags:
      - auth
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/ObtainTokenRequest'
          application/x-www-form-urlencoded:
            schema:
              $ref: '#/components/schemas/ObtainTokenRequest'
          multipart/form-data:
            schema:
              $ref: '#/components/schemas/ObtainTokenRequest'
        required: true
      security:
      - tokenAuth: []
      - tokenAuth: []
      - {}
      responses:
        '200':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Token'
              examples:
                Example:
                  value:
                    name: my-application-token
                    key: 0bb7e94446e29552a34cb59413eeb8f5fb7731f7
                  summary: example
          description: token
        default:
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Error'
              examples:
                Example:
                  value:
                    status_code: 400
                    message: validation error
                    errors:
                    - field: name
                      message: value must be string
                  summary: example
          description: ''
  /api/v1/bases/:
    get:
      operationId: bases_list
      description: List all reference bases
      summary: List all reference bases
      parameters:
      - in: query
        name: name
        schema:
          type: string
      - name: page
        required: false
        in: query
        description: A page number within the paginated result set.
        schema:
          type: integer
      - name: page_size
        required: false
        in: query
        description: Number of results to return per page.
        schema:
          type: integer
      tags:
      - bases
      security:
      - tokenAuth: []
      - tokenAuth: []
      responses:
        '200':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/PaginatedReferenceBaseList'
              examples:
                Example:
                  value:
                    count: 123
                    next: http://api.example.org/accounts/?page=4
                    previous: http://api.example.org/accounts/?page=2
                    results:
                    - id: 1
                      name: Product base
                      description: All our categorised products
                      last_update_date: 2021-03-09:16:20Z
                      size: 1003933
                      unique_columns:
                      - column1
                      - column2
                      columns:
                      - column3
                      - column4
                      sample:
                      - column1: val1_1
                        column2: val2_1
                        column3: val3_1
                      - column1: val1_2
                        column2: val2_2
                        column3: val3_2
                      - column1: val1_3
                        column2: val2_3
                        column3: val3_3
                  summary: example
          description: A reference base
    post:
      operationId: bases_create
      description: Create a new reference base
      summary: Create a new reference base
      tags:
      - bases
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/ReferenceBaseRequest'
          application/x-www-form-urlencoded:
            schema:
              $ref: '#/components/schemas/ReferenceBaseRequest'
          multipart/form-data:
            schema:
              $ref: '#/components/schemas/ReferenceBaseRequest'
        required: true
      security:
      - tokenAuth: []
      - tokenAuth: []
      responses:
        '201':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ReferenceBase'
              examples:
                Example:
                  value:
                    id: 1
                    name: Product base
                    description: All our categorised products
                    last_update_date: 2021-03-09:16:20Z
                    size: 1003933
                    unique_columns:
                    - column1
                    - column2
                    columns:
                    - column3
                    - column4
                    sample:
                    - column1: val1_1
                      column2: val2_1
                      column3: val3_1
                    - column1: val1_2
                      column2: val2_2
                      column3: val3_2
                    - column1: val1_3
                      column2: val2_3
                      column3: val3_3
                  summary: example
          description: A reference base
  /api/v1/bases/{id}/:
    get:
      operationId: bases_retrieve
      description: Retrieve a reference base
      summary: Retrieve a reference base
      parameters:
      - in: path
        name: id
        schema:
          type: integer
        description: A unique integer value identifying this reference base.
        required: true
      tags:
      - bases
      security:
      - tokenAuth: []
      - tokenAuth: []
      responses:
        '200':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ReferenceBase'
              examples:
                Example:
                  value:
                    id: 1
                    name: Product base
                    description: All our categorised products
                    last_update_date: 2021-03-09:16:20Z
                    size: 1003933
                    unique_columns:
                    - column1
                    - column2
                    columns:
                    - column3
                    - column4
                    sample:
                    - column1: val1_1
                      column2: val2_1
                      column3: val3_1
                    - column1: val1_2
                      column2: val2_2
                      column3: val3_2
                    - column1: val1_3
                      column2: val2_3
                      column3: val3_3
                  summary: example
          description: A reference base
  /api/v1/bases/{id}/update/:
    post:
      operationId: Update reference base
      description: Add or update row in a reference base
      parameters:
      - in: path
        name: id
        schema:
          type: integer
        description: A unique integer value identifying this reference base.
        required: true
      tags:
      - bases
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/ReferenceBaseUpdateRequest'
          application/x-www-form-urlencoded:
            schema:
              $ref: '#/components/schemas/ReferenceBaseUpdateRequest'
          multipart/form-data:
            schema:
              $ref: '#/components/schemas/ReferenceBaseUpdateRequest'
      security:
      - tokenAuth: []
      - tokenAuth: []
      responses:
        '200':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ReferenceBaseUpdate'
              examples:
                Example:
                  value:
                    updated: 1001
                    created: 512
                  summary: example
          description: A reference base update
  /api/v1/categorisation/{action_id}/:
    get:
      operationId: categorisation-read
      description: Get the details of the classification step
      summary: Classification details
      parameters:
      - in: path
        name: action_id
        schema:
          type: integer
        description: The id of the classification step
        required: true
      tags:
      - categorisation
      security:
      - tokenAuth: []
      - tokenAuth: []
      responses:
        '200':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/CategorisationParams'
          description: Classification params
        default:
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Error'
              examples:
                Example:
                  value:
                    status_code: 400
                    message: validation error
                    errors:
                    - field: name
                      message: value must be string
                  summary: example
          description: ''
    patch:
      operationId: categorisation-update
      description: Update a classification step
      summary: Update classification
      parameters:
      - in: path
        name: action_id
        schema:
          type: integer
        description: The id of the classification step
        required: true
      tags:
      - categorisation
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/PatchedCategorisationParamsRequest'
          application/x-www-form-urlencoded:
            schema:
              $ref: '#/components/schemas/PatchedCategorisationParamsRequest'
          multipart/form-data:
            schema:
              $ref: '#/components/schemas/PatchedCategorisationParamsRequest'
      security:
      - tokenAuth: []
      - tokenAuth: []
      responses:
        '200':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/CategorisationParams'
          description: Classification params
        default:
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Error'
              examples:
                Example:
                  value:
                    status_code: 400
                    message: validation error
                    errors:
                    - field: name
                      message: value must be string
                  summary: example
          description: ''
  /api/v1/categorisation/{action_id}/{job_id}/:
    get:
      operationId: job-categorisation-read
      description: Get the results of the classification step
      summary: Classification results
      parameters:
      - in: path
        name: action_id
        schema:
          type: integer
        description: The id of the classification step
        required: true
      - in: query
        name: filter
        schema:
          type: string
        description: The value to search in the possible items
      - in: query
        name: filter_by
        schema:
          type: string
        description: The property to search for the value in. Defaults to all.
      - in: path
        name: job_id
        schema:
          type: string
        description: The id of the job being worked on
        required: true
      - in: query
        name: order
        schema:
          type: string
        description: The comma-separated list of properties to order by
      - in: query
        name: page
        schema:
          type: integer
          default: 1
        description: A page number within the paginated result set.
      - in: query
        name: page_size
        schema:
          type: integer
          default: 50
        description: Number of results to return per page.
      - in: query
        name: status
        schema:
          type: string
        description: The status to filter on
      tags:
      - categorisation
      security:
      - tokenAuth: []
      - tokenAuth: []
      responses:
        '200':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/JobCategorisationResponse'
              examples:
                Example:
                  value:
                    count: 543
                    stats:
                      total: 1000
                      automated: 890
                      validated: 75
                      to_check: 25
                      to_complete: 10
                    columns:
                    - label: My Column
                      field: my_column
                      visible: true
                    - label: other column
                      field: other column
                      visible: true
                    - label: ''
                      field: general_UNiFAi__confidence
                      visible: false
                    results:
                    - my_column: first value
                      other column: foo
                      general_UNiFAi__confidence: automated
                    - my_column: second value
                      other column: bar
                      general_UNiFAi__confidence: automated
                    - my_column: last value
                      other column: null
                      general_UNiFAi__confidence: to_check
                  summary: example
          description: Job categorisation response
        default:
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Error'
              examples:
                Example:
                  value:
                    status_code: 400
                    message: validation error
                    errors:
                    - field: name
                      message: value must be string
                  summary: example
          description: ''
    post:
      operationId: job-categorisation-validate
      description: End the classification step once every issue is fixed
      summary: Validate classification
      parameters:
      - in: path
        name: action_id
        schema:
          type: integer
        description: The id of the classification step
        required: true
      - in: path
        name: job_id
        schema:
          type: string
        description: The id of the job being worked on
        required: true
      tags:
      - categorisation
      security:
      - tokenAuth: []
      - tokenAuth: []
      responses:
        '201':
          description: No response body
        default:
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Error'
              examples:
                Example:
                  value:
                    status_code: 400
                    message: validation error
                    errors:
                    - field: name
                      message: value must be string
                  summary: example
          description: ''
    patch:
      operationId: job-categorisation-update
      description: Correct the results of the classification
      summary: Update classification
      parameters:
      - in: path
        name: action_id
        schema:
          type: integer
        description: The id of the classification step
        required: true
      - in: path
        name: job_id
        schema:
          type: string
        description: The id of the job being worked on
        required: true
      tags:
      - categorisation
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/PatchedPatchJobCategorisationRequest'
          application/x-www-form-urlencoded:
            schema:
              $ref: '#/components/schemas/PatchedPatchJobCategorisationRequest'
          multipart/form-data:
            schema:
              $ref: '#/components/schemas/PatchedPatchJobCategorisationRequest'
      security:
      - tokenAuth: []
      - tokenAuth: []
      responses:
        '201':
          description: No response body
        default:
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Error'
              examples:
                Example:
                  value:
                    status_code: 400
                    message: validation error
                    errors:
                    - field: name
                      message: value must be string
                  summary: example
          description: ''
    delete:
      operationId: job-rows-delete
      description: Remove rows from the file
      summary: Delete rows
      parameters:
      - in: path
        name: action_id
        schema:
          type: integer
        description: The id of the step
        required: true
      - in: path
        name: job_id
        schema:
          type: string
        description: The id of the job being worked on
        required: true
      tags:
      - categorisation
      security:
      - tokenAuth: []
      - tokenAuth: []
      responses:
        '201':
          description: No response body
        default:
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Error'
              examples:
                Example:
                  value:
                    status_code: 400
                    message: validation error
                    errors:
                    - field: name
                      message: value must be string
                  summary: example
          description: ''
  /api/v1/categorisation/{action_id}/{job_id}/config/:
    get:
      operationId: job-categorisation-config
      description: Get the config for the classification step
      summary: Classification configuration
      parameters:
      - in: path
        name: action_id
        schema:
          type: integer
        description: The id of the classification step
        required: true
      - in: path
        name: job_id
        schema:
          type: string
        description: The id of the job being worked on
        required: true
      tags:
      - categorisation
      security:
      - tokenAuth: []
      - tokenAuth: []
      responses:
        '200':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/LocalizedCategorisationParamsSerializerForJob'
          description: Classification params
        default:
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Error'
              examples:
                Example:
                  value:
                    status_code: 400
                    message: validation error
                    errors:
                    - field: name
                      message: value must be string
                  summary: example
          description: ''
  /api/v1/categorisation/{action_id}/{job_id}/mass-update/:
    patch:
      operationId: job-categorisation-mass-update
      description: Multiple results from the classification at once
      summary: Mass update classification
      parameters:
      - in: path
        name: action_id
        schema:
          type: integer
        description: The id of the classification step
        required: true
      - in: path
        name: job_id
        schema:
          type: string
        description: The id of the job being worked on
        required: true
      tags:
      - categorisation
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/PatchedMultiPatchJobCategorisationRequest'
          application/x-www-form-urlencoded:
            schema:
              $ref: '#/components/schemas/PatchedMultiPatchJobCategorisationRequest'
          multipart/form-data:
            schema:
              $ref: '#/components/schemas/PatchedMultiPatchJobCategorisationRequest'
      security:
      - tokenAuth: []
      - tokenAuth: []
      responses:
        '201':
          description: No response body
        default:
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Error'
              examples:
                Example:
                  value:
                    status_code: 400
                    message: validation error
                    errors:
                    - field: name
                      message: value must be string
                  summary: example
          description: ''
  /api/v1/check/:
    get:
      operationId: health-check
      description: Check the status of running jobs, and returns the last run date
        of the most recent job
      summary: Jobs Health Check
      tags:
      - check
      security:
      - tokenAuth: []
      - tokenAuth: []
      - {}
      responses:
        '200':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/HealthCheckResponse'
              examples:
                Default:
                  value:
                    last_run: '2024-05-05 15:30:25'
                  summary: default
          description: ''
  /api/v1/composition/{action_id}/:
    get:
      operationId: composition-read
      description: Get the details of the composition step
      summary: Composition details
      parameters:
      - in: path
        name: action_id
        schema:
          type: integer
        description: The id of the composition step
        required: true
      tags:
      - composition
      security:
      - tokenAuth: []
      - tokenAuth: []
      responses:
        '200':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Composition'
          description: Composition params
        default:
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Error'
              examples:
                Example:
                  value:
                    status_code: 400
                    message: validation error
                    errors:
                    - field: name
                      message: value must be string
                  summary: example
          description: ''
    patch:
      operationId: composition-update
      description: Update a composition step
      summary: Update composition
      parameters:
      - in: path
        name: action_id
        schema:
          type: integer
        description: The id of the composition step
        required: true
      tags:
      - composition
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/PatchedCompositionRequest'
          application/x-www-form-urlencoded:
            schema:
              $ref: '#/components/schemas/PatchedCompositionRequest'
          multipart/form-data:
            schema:
              $ref: '#/components/schemas/PatchedCompositionRequest'
      security:
      - tokenAuth: []
      - tokenAuth: []
      responses:
        '200':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Composition'
          description: Composition params
        default:
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Error'
              examples:
                Example:
                  value:
                    status_code: 400
                    message: validation error
                    errors:
                    - field: name
                      message: value must be string
                  summary: example
          description: ''
  /api/v1/composition/{action_id}/{job_id}/:
    get:
      operationId: job-composition-read
      description: Get the results of the composition step
      summary: Composition results
      parameters:
      - in: path
        name: action_id
        schema:
          type: integer
        description: The id of the composition step
        required: true
      - in: query
        name: filter
        schema:
          type: string
        description: The value to search in the possible items
      - in: query
        name: filter_by
        schema:
          type: string
        description: The property to search for the value in. Defaults to all.
      - in: path
        name: job_id
        schema:
          type: string
        description: The id of the job being worked on
        required: true
      - in: query
        name: order
        schema:
          type: string
        description: The comma-separated list of properties to order by
      - in: query
        name: page
        schema:
          type: integer
          default: 1
        description: A page number within the paginated result set.
      - in: query
        name: page_size
        schema:
          type: integer
          default: 50
        description: Number of results to return per page.
      - in: query
        name: status
        schema:
          type: string
        description: The status to filter on
      tags:
      - composition
      security:
      - tokenAuth: []
      - tokenAuth: []
      responses:
        '200':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/JobCompositionResponse'
              examples:
                Example:
                  value:
                    count: 543
                    stats:
                      total: 1000
                      automated: 890
                      validated: 75
                      to_check: 25
                      to_complete: 10
                    columns:
                    - label: My Column
                      field: my_column
                      visible: true
                    - label: other column
                      field: other column
                      visible: true
                    - label: ''
                      field: general_UNiFAi__confidence
                      visible: false
                    results:
                    - my_column: first value
                      other column: foo
                      general_UNiFAi__confidence: automated
                    - my_column: second value
                      other column: bar
                      general_UNiFAi__confidence: automated
                    - my_column: last value
                      other column: null
                      general_UNiFAi__confidence: to_check
                  summary: example
          description: Job extraction response
        default:
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Error'
              examples:
                Example:
                  value:
                    status_code: 400
                    message: validation error
                    errors:
                    - field: name
                      message: value must be string
                  summary: example
          description: ''
    post:
      operationId: job-composition-validate
      description: End the composition step once every issue is fixed
      summary: Validate composition
      parameters:
      - in: path
        name: action_id
        schema:
          type: integer
        description: The id of the composition step
        required: true
      - in: path
        name: job_id
        schema:
          type: string
        description: The id of the job being worked on
        required: true
      tags:
      - composition
      security:
      - tokenAuth: []
      - tokenAuth: []
      responses:
        '201':
          description: No response body
        default:
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Error'
              examples:
                Example:
                  value:
                    status_code: 400
                    message: validation error
                    errors:
                    - field: name
                      message: value must be string
                  summary: example
          description: ''
    patch:
      operationId: job-composition-update
      description: Correct the results of the composition
      summary: Update composition
      parameters:
      - in: path
        name: action_id
        schema:
          type: integer
        description: The id of the composition step
        required: true
      - in: path
        name: job_id
        schema:
          type: string
        description: The id of the job being worked on
        required: true
      tags:
      - composition
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/PatchedPatchJobCompositionRequest'
          application/x-www-form-urlencoded:
            schema:
              $ref: '#/components/schemas/PatchedPatchJobCompositionRequest'
          multipart/form-data:
            schema:
              $ref: '#/components/schemas/PatchedPatchJobCompositionRequest'
      security:
      - tokenAuth: []
      - tokenAuth: []
      responses:
        '201':
          description: No response body
        default:
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Error'
              examples:
                Example:
                  value:
                    status_code: 400
                    message: validation error
                    errors:
                    - field: name
                      message: value must be string
                  summary: example
          description: ''
    delete:
      operationId: job-rows-delete_2
      description: Remove rows from the file
      summary: Delete rows
      parameters:
      - in: path
        name: action_id
        schema:
          type: integer
        description: The id of the step
        required: true
      - in: path
        name: job_id
        schema:
          type: string
        description: The id of the job being worked on
        required: true
      tags:
      - composition
      security:
      - tokenAuth: []
      - tokenAuth: []
      responses:
        '201':
          description: No response body
        default:
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Error'
              examples:
                Example:
                  value:
                    status_code: 400
                    message: validation error
                    errors:
                    - field: name
                      message: value must be string
                  summary: example
          description: ''
  /api/v1/composition/{action_id}/{job_id}/config/:
    get:
      operationId: job-composition-config
      description: Get the config for the composition step
      summary: Composition configuration
      parameters:
      - in: path
        name: action_id
        schema:
          type: integer
        description: The id of the composition step
        required: true
      - in: path
        name: job_id
        schema:
          type: string
        description: The id of the job being worked on
        required: true
      tags:
      - composition
      security:
      - tokenAuth: []
      - tokenAuth: []
      responses:
        '200':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/LocalizedComposition'
          description: Localized composition params
        default:
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Error'
              examples:
                Example:
                  value:
                    status_code: 400
                    message: validation error
                    errors:
                    - field: name
                      message: value must be string
                  summary: example
          description: ''
  /api/v1/connectors/:
    get:
      operationId: connectors_list
      parameters:
      - name: page
        required: false
        in: query
        description: A page number within the paginated result set.
        schema:
          type: integer
      - name: page_size
        required: false
        in: query
        description: Number of results to return per page.
        schema:
          type: integer
      tags:
      - connectors
      security:
      - tokenAuth: []
      - tokenAuth: []
      responses:
        '200':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/PaginatedBaseConnectionList'
          description: ''
  /api/v1/connectors/{id}/reset-config/:
    post:
      operationId: connectors_reset_config_create
      parameters:
      - in: path
        name: id
        schema:
          type: string
        required: true
      tags:
      - connectors
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/BaseConnectionRequest'
          application/x-www-form-urlencoded:
            schema:
              $ref: '#/components/schemas/BaseConnectionRequest'
          multipart/form-data:
            schema:
              $ref: '#/components/schemas/BaseConnectionRequest'
        required: true
      security:
      - tokenAuth: []
      - tokenAuth: []
      responses:
        '200':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/BaseConnection'
          description: ''
  /api/v1/connectors/akeneo/activate/:
    post:
      operationId: Activate
      description: Activate an AkeneoMarketplaceConnection
      tags:
      - connectors/akeneo
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/AkeneoCallbackRequest'
          application/x-www-form-urlencoded:
            schema:
              $ref: '#/components/schemas/AkeneoCallbackRequest'
          multipart/form-data:
            schema:
              $ref: '#/components/schemas/AkeneoCallbackRequest'
        required: true
      security:
      - tokenAuth: []
      - tokenAuth: []
      responses:
        '200':
          content:
            application/json:
              schema:
                type: object
                properties:
                  state:
                    type: string
                  client_id:
                    type: string
                  scope:
                    type: string
                  response_type:
                    type: string
          description: ''
  /api/v1/connectors/akeneo/callback/{connection_id}/:
    post:
      operationId: Callback
      description: Callback for to setup an AkeneoMarketplaceConnection
      parameters:
      - in: path
        name: connection_id
        schema:
          type: string
          format: uuid
        required: true
      tags:
      - connectors/akeneo
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/AkeneoCallbackRequest'
          application/x-www-form-urlencoded:
            schema:
              $ref: '#/components/schemas/AkeneoCallbackRequest'
          multipart/form-data:
            schema:
              $ref: '#/components/schemas/AkeneoCallbackRequest'
        required: true
      security:
      - tokenAuth: []
      - tokenAuth: []
      responses:
        '200':
          description: No response body
  /api/v1/connectors/akeneo/token/:
    post:
      operationId: Generate token
      description: Generate an access token for an Akeneo connector
      tags:
      - connectors/akeneo
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/AkeneoTokenRequest'
          application/x-www-form-urlencoded:
            schema:
              $ref: '#/components/schemas/AkeneoTokenRequest'
          multipart/form-data:
            schema:
              $ref: '#/components/schemas/AkeneoTokenRequest'
        required: true
      security:
      - tokenAuth: []
      - tokenAuth: []
      - {}
      responses:
        '200':
          content:
            application/json:
              schema:
                type: object
                properties:
                  access_token:
                    type: string
          description: ''
  /api/v1/connectors/connection-operation-logs/:
    get:
      operationId: connection-operation-logs-list
      description: Get the connection operation logs for a job
      summary: Connection operation logs
      parameters:
      - in: query
        name: job_id
        schema:
          type: string
        description: The id of the job
      - in: query
        name: operation_type
        schema:
          type: string
          enum:
          - connect
          - create_steps
          - fetch
          - pull
          - push
        description: The type of operation to filter on
      - in: query
        name: page
        schema:
          type: integer
          default: 1
        description: A page number within the paginated result set.
      - in: query
        name: page_size
        schema:
          type: integer
          default: 50
        description: Number of results to return per page.
      tags:
      - connectors
      security:
      - tokenAuth: []
      - tokenAuth: []
      responses:
        '200':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/PaginatedConnectionOperationLogList'
          description: ''
        default:
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Error'
              examples:
                Example:
                  value:
                    status_code: 400
                    message: validation error
                    errors:
                    - field: name
                      message: value must be string
                  summary: example
          description: ''
  /api/v1/documents/{id}/download/:
    get:
      operationId: Download a document
      parameters:
      - in: path
        name: id
        schema:
          type: string
          format: uuid
        description: A UUID string identifying this project document.
        required: true
      tags:
      - documents
      security:
      - tokenAuth: []
      - tokenAuth: []
      - {}
      responses:
        '200':
          content:
            application/octet-stream:
              schema:
                type: string
                format: binary
          description: ''
  /api/v1/extraction/{action_id}/:
    get:
      operationId: extraction-read
      description: Get the details of the extraction step
      summary: Extraction details
      parameters:
      - in: path
        name: action_id
        schema:
          type: integer
        description: The id of the extraction step
        required: true
      tags:
      - extraction
      security:
      - tokenAuth: []
      - tokenAuth: []
      responses:
        '200':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/_ExtractionBaseParams'
          description: Extraction params
        default:
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Error'
              examples:
                Example:
                  value:
                    status_code: 400
                    message: validation error
                    errors:
                    - field: name
                      message: value must be string
                  summary: example
          description: ''
    patch:
      operationId: extraction_partial_update
      description: |-
        A class-based view mixin that wraps the request in a revision.

        The revision will have it's user set from the request automatically.
      parameters:
      - in: path
        name: action_id
        schema:
          type: integer
        required: true
      tags:
      - extraction
      security:
      - tokenAuth: []
      - tokenAuth: []
      responses:
        '200':
          description: No response body
  /api/v1/extraction/{action_id}/{job_id}/:
    get:
      operationId: job-extraction-read
      description: Get the results of the extraction step
      summary: Extraction results
      parameters:
      - in: path
        name: action_id
        schema:
          type: integer
        description: The id of the extraction step
        required: true
      - in: query
        name: filter
        schema:
          type: string
        description: The value to search in the possible items
      - in: query
        name: filter_by
        schema:
          type: string
        description: The property to search for the value in. Defaults to all.
      - in: path
        name: job_id
        schema:
          type: string
        description: The id of the job being worked on
        required: true
      - in: query
        name: order
        schema:
          type: string
        description: The comma-separated list of properties to order by
      - in: query
        name: page
        schema:
          type: integer
          default: 1
        description: A page number within the paginated result set.
      - in: query
        name: page_size
        schema:
          type: integer
          default: 50
        description: Number of results to return per page.
      - in: query
        name: status
        schema:
          type: string
        description: The status to filter on
      tags:
      - extraction
      security:
      - tokenAuth: []
      - tokenAuth: []
      responses:
        '200':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/JobExtractionResponse'
              examples:
                Example:
                  value:
                    count: 543
                    stats:
                      total: 1000
                      automated: 890
                      validated: 75
                      to_check: 25
                      to_complete: 10
                    columns:
                    - label: My Column
                      field: my_column
                      visible: true
                    - label: other column
                      field: other column
                      visible: true
                    - label: ''
                      field: general_UNiFAi__confidence
                      visible: false
                    results:
                    - my_column: first value
                      other column: foo
                      general_UNiFAi__confidence: automated
                    - my_column: second value
                      other column: bar
                      general_UNiFAi__confidence: automated
                    - my_column: last value
                      other column: null
                      general_UNiFAi__confidence: to_check
                  summary: example
          description: Job extraction response
        default:
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Error'
              examples:
                Example:
                  value:
                    status_code: 400
                    message: validation error
                    errors:
                    - field: name
                      message: value must be string
                  summary: example
          description: ''
    post:
      operationId: job-extraction-validate
      description: End the extraction step once every issue is fixed
      summary: Validate extraction
      parameters:
      - in: path
        name: action_id
        schema:
          type: integer
        description: The id of the extraction step
        required: true
      - in: path
        name: job_id
        schema:
          type: string
        description: The id of the job being worked on
        required: true
      tags:
      - extraction
      security:
      - tokenAuth: []
      - tokenAuth: []
      responses:
        '201':
          description: No response body
        default:
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Error'
              examples:
                Example:
                  value:
                    status_code: 400
                    message: validation error
                    errors:
                    - field: name
                      message: value must be string
                  summary: example
          description: ''
    delete:
      operationId: job-rows-delete_3
      description: Remove rows from the file
      summary: Delete rows
      parameters:
      - in: path
        name: action_id
        schema:
          type: integer
        description: The id of the step
        required: true
      - in: path
        name: job_id
        schema:
          type: string
        description: The id of the job being worked on
        required: true
      tags:
      - extraction
      security:
      - tokenAuth: []
      - tokenAuth: []
      responses:
        '201':
          description: No response body
        default:
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Error'
              examples:
                Example:
                  value:
                    status_code: 400
                    message: validation error
                    errors:
                    - field: name
                      message: value must be string
                  summary: example
          description: ''
  /api/v1/extraction/{action_id}/{job_id}/{row_id}/:
    get:
      operationId: row-extraction-get
      description: List extraction tags for a single row
      summary: List tags
      parameters:
      - in: path
        name: action_id
        schema:
          type: integer
        description: The id of the extraction step
        required: true
      - in: path
        name: job_id
        schema:
          type: string
        description: The id of the job being worked on
        required: true
      - in: path
        name: row_id
        schema:
          type: integer
        description: The id of the row being worked on
        required: true
      tags:
      - extraction
      security:
      - tokenAuth: []
      - tokenAuth: []
      responses:
        '200':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/RowExtraction'
          description: Row extraction response
        default:
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Error'
              examples:
                Example:
                  value:
                    status_code: 400
                    message: validation error
                    errors:
                    - field: name
                      message: value must be string
                  summary: example
          description: ''
    post:
      operationId: row-extraction-post
      description: Validate extraction tags for a single row
      summary: Validate tags
      parameters:
      - in: path
        name: action_id
        schema:
          type: integer
        description: The id of the extraction step
        required: true
      - in: path
        name: job_id
        schema:
          type: string
        description: The id of the job being worked on
        required: true
      - in: path
        name: row_id
        schema:
          type: integer
        description: The id of the row being worked on
        required: true
      tags:
      - extraction
      security:
      - tokenAuth: []
      - tokenAuth: []
      responses:
        '201':
          description: No response body
        default:
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Error'
              examples:
                Example:
                  value:
                    status_code: 400
                    message: validation error
                    errors:
                    - field: name
                      message: value must be string
                  summary: example
          description: ''
    patch:
      operationId: row-extraction-patch
      description: Update extraction tags for a single row
      summary: Update tags
      parameters:
      - in: path
        name: action_id
        schema:
          type: integer
        description: The id of the extraction step
        required: true
      - in: path
        name: job_id
        schema:
          type: string
        description: The id of the job being worked on
        required: true
      - in: path
        name: row_id
        schema:
          type: integer
        description: The id of the row being worked on
        required: true
      tags:
      - extraction
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/PatchedRowExtractionRequest'
          application/x-www-form-urlencoded:
            schema:
              $ref: '#/components/schemas/PatchedRowExtractionRequest'
          multipart/form-data:
            schema:
              $ref: '#/components/schemas/PatchedRowExtractionRequest'
      security:
      - tokenAuth: []
      - tokenAuth: []
      responses:
        '201':
          description: No response body
        default:
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Error'
              examples:
                Example:
                  value:
                    status_code: 400
                    message: validation error
                    errors:
                    - field: name
                      message: value must be string
                  summary: example
          description: ''
  /api/v1/extraction/{action_id}/{job_id}/config/:
    get:
      operationId: job-extraction-config
      description: Get the config for the extraction step
      summary: Extraction configuration
      parameters:
      - in: path
        name: action_id
        schema:
          type: integer
        description: The id of the extraction step
        required: true
      - in: path
        name: job_id
        schema:
          type: string
        description: The id of the job being worked on
        required: true
      tags:
      - extraction
      security:
      - tokenAuth: []
      - tokenAuth: []
      responses:
        '200':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/LocalizedExtractionParams'
          description: Classification params
        default:
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Error'
              examples:
                Example:
                  value:
                    status_code: 400
                    message: validation error
                    errors:
                    - field: name
                      message: value must be string
                  summary: example
          description: ''
  /api/v1/files/:
    get:
      operationId: files_list
      description: List all files
      summary: List all files
      parameters:
      - in: query
        name: after
        schema:
          type: string
          format: date
      - in: query
        name: before
        schema:
          type: string
          format: date
      - in: query
        name: name
        schema:
          type: string
      - name: page
        required: false
        in: query
        description: A page number within the paginated result set.
        schema:
          type: integer
      - name: page_size
        required: false
        in: query
        description: Number of results to return per page.
        schema:
          type: integer
      - in: query
        name: uploaded_through
        schema:
          type: integer
      - in: query
        name: uploader
        schema:
          type: integer
      tags:
      - files
      security:
      - tokenAuth: []
      - tokenAuth: []
      responses:
        '200':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/PaginatedFileList'
              examples:
                Example:
                  value:
                    count: 123
                    next: http://api.example.org/accounts/?page=4
                    previous: http://api.example.org/accounts/?page=2
                    results:
                    - id: 1
                      name: mydocument.csv
                      organization: 1
                      uploader: 1
                      uploaded_through: null
                      upload_date: '2020-11-03T22:27:29Z'
                      columns:
                      - column_1
                      - column_2
                      - colum3
                      size: 1000
                      status: ready
                  summary: example
          description: Detail of the file
    post:
      operationId: Create file
      description: |-
        Create a new file using one of two methods. If a `file` is provided, the request MUST be multipart/form-data. JSON requests cannot include the `file` field.

        **Method 1: Multipart File Upload**
        - Use `Content-Type: multipart/form-data`
        - Provide the `file` field with binary file data (CSV, Excel, or XML)
        - Optionally include parsing parameters like `encoding`, `separator`, `skiprows`

        **Method 2: JSON Data Upload**
        - Use `Content-Type: application/json`
        - Provide the `data` field as a list of product objects
        - Each product object has attribute names as keys and values of any atom type (string, float, null)

        **Note**: You must provide either `file` OR `data`, but not both.
      summary: Create a new file
      tags:
      - files
      requestBody:
        content:
          multipart/form-data:
            schema:
              $ref: '#/components/schemas/FileUploadMultipartRequest'
          application/json:
            schema:
              $ref: '#/components/schemas/FileUploadJSONRequest'
            examples:
              JSONDataUpload:
                value:
                  data:
                  - sku: product-001
                    name: Running Shoes
                    price: 89.99
                    category: footwear
                    in_stock: true
                    description: null
                  - sku: product-002
                    name: Cotton T-Shirt
                    price: 24.5
                    category: clothing
                    size: M
                    color: blue
                summary: Create file from JSON data
                description: Upload product data directly as JSON
              MultipartFileUpload:
                value:
                  file: (binary file data)
                  encoding: utf-8
                  separator: ','
                  skiprows: 1
                summary: Create file from uploaded binary file
                description: Upload a CSV, Excel, or XML file using multipart/form-data
        required: true
      security:
      - tokenAuth: []
      - tokenAuth: []
      responses:
        '201':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/File'
              examples:
                Example:
                  value:
                    id: 1
                    name: mydocument.csv
                    organization: 1
                    uploader: 1
                    uploaded_through: null
                    upload_date: '2020-11-03T22:27:29Z'
                    columns:
                    - column_1
                    - column_2
                    - colum3
                    size: 1000
                    status: ready
                  summary: example
          description: Detail of the file
  /api/v1/files/{id}/:
    get:
      operationId: files_retrieve
      description: Retrieve a file
      summary: Retrieve a file
      parameters:
      - in: path
        name: id
        schema:
          type: integer
        description: A unique integer value identifying this file.
        required: true
      tags:
      - files
      security:
      - tokenAuth: []
      - tokenAuth: []
      responses:
        '200':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/File'
              examples:
                Example:
                  value:
                    id: 1
                    name: mydocument.csv
                    organization: 1
                    uploader: 1
                    uploaded_through: null
                    upload_date: '2020-11-03T22:27:29Z'
                    columns:
                    - column_1
                    - column_2
                    - colum3
                    size: 1000
                    status: ready
                  summary: example
          description: Detail of the file
    delete:
      operationId: files_destroy
      description: Remove a file
      summary: Remove a file
      parameters:
      - in: path
        name: id
        schema:
          type: integer
        description: A unique integer value identifying this file.
        required: true
      tags:
      - files
      security:
      - tokenAuth: []
      - tokenAuth: []
      responses:
        '204':
          content:
            application/json:
              schema:
                type: object
                additionalProperties: {}
                description: Unspecified response body
          description: ''
  /api/v1/files/{id}/download/:
    get:
      operationId: Download file
      description: Download the file
      parameters:
      - in: path
        name: id
        schema:
          type: integer
        description: A unique integer value identifying this file.
        required: true
      tags:
      - files
      security:
      - tokenAuth: []
      - tokenAuth: []
      responses:
        '200':
          content:
            application/octet-stream:
              schema:
                type: string
                format: binary
          description: ''
  /api/v1/files/{id}/download_parsed/:
    get:
      operationId: Download parsed file
      description: Download the parsed file
      parameters:
      - in: path
        name: id
        schema:
          type: integer
        description: A unique integer value identifying this file.
        required: true
      tags:
      - files
      security:
      - tokenAuth: []
      - tokenAuth: []
      responses:
        '200':
          content:
            application/octet-stream:
              schema:
                type: string
                format: binary
          description: ''
  /api/v1/input-formats/:
    get:
      operationId: input_formats_list
      description: List all input-formats
      summary: List all input-formats
      parameters:
      - in: query
        name: file_type
        schema:
          type: array
          items:
            type: string
            enum:
            - excel
            - xml
        description: |-
          * `excel` - Excel
          * `xml` - XML
        explode: true
        style: form
      - name: page
        required: false
        in: query
        description: A page number within the paginated result set.
        schema:
          type: integer
      - name: page_size
        required: false
        in: query
        description: Number of results to return per page.
        schema:
          type: integer
      tags:
      - input-formats
      security:
      - tokenAuth: []
      - tokenAuth: []
      responses:
        '200':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/PaginatedInputFormatList'
              examples:
                Example:
                  value:
                    count: 123
                    next: http://api.example.org/accounts/?page=4
                    previous: http://api.example.org/accounts/?page=2
                    results:
                    - organization: 1
                      name: My Custom Format
                      params:
                        sheets:
                        - name: sheet1
                          columns:
                          - col1
                          - col2
                        - name: sheet2
                          columns:
                          - col1
                          - col3
                          - '*'
                          join:
                            'on':
                            - col1
                            suffixes:
                            - _sheet1
                            - _sheet2
                        - name: sheet3s
                          columns:
                          - col4
                          - col5
                          - '*'
                          join:
                            left_on:
                            - col3
                            right_on:
                            - col5
                          drop_duplicated_columns: true
                          required: false
                  summary: example
          description: Detail of the input format
    post:
      operationId: input_formats_create
      description: Create a new input-format
      summary: Create a new input-format
      tags:
      - input-formats
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/InputFormatRequest'
          application/x-www-form-urlencoded:
            schema:
              $ref: '#/components/schemas/InputFormatRequest'
          multipart/form-data:
            schema:
              $ref: '#/components/schemas/InputFormatRequest'
      security:
      - tokenAuth: []
      - tokenAuth: []
      responses:
        '201':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/InputFormat'
              examples:
                Example:
                  value:
                    organization: 1
                    name: My Custom Format
                    params:
                      sheets:
                      - name: sheet1
                        columns:
                        - col1
                        - col2
                      - name: sheet2
                        columns:
                        - col1
                        - col3
                        - '*'
                        join:
                          'on':
                          - col1
                          suffixes:
                          - _sheet1
                          - _sheet2
                      - name: sheet3s
                        columns:
                        - col4
                        - col5
                        - '*'
                        join:
                          left_on:
                          - col3
                          right_on:
                          - col5
                        drop_duplicated_columns: true
                        required: false
                  summary: example
          description: Detail of the input format
  /api/v1/input-formats/{id}/:
    get:
      operationId: input_formats_retrieve
      description: Retrieve a input-format
      summary: Retrieve a input-format
      parameters:
      - in: path
        name: id
        schema:
          type: integer
        description: A unique integer value identifying this input format.
        required: true
      tags:
      - input-formats
      security:
      - tokenAuth: []
      - tokenAuth: []
      responses:
        '200':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/InputFormat'
              examples:
                Example:
                  value:
                    organization: 1
                    name: My Custom Format
                    params:
                      sheets:
                      - name: sheet1
                        columns:
                        - col1
                        - col2
                      - name: sheet2
                        columns:
                        - col1
                        - col3
                        - '*'
                        join:
                          'on':
                          - col1
                          suffixes:
                          - _sheet1
                          - _sheet2
                      - name: sheet3s
                        columns:
                        - col4
                        - col5
                        - '*'
                        join:
                          left_on:
                          - col3
                          right_on:
                          - col5
                        drop_duplicated_columns: true
                        required: false
                  summary: example
          description: Detail of the input format
    delete:
      operationId: input_formats_destroy
      description: Remove a input-format
      summary: Remove a input-format
      parameters:
      - in: path
        name: id
        schema:
          type: integer
        description: A unique integer value identifying this input format.
        required: true
      tags:
      - input-formats
      security:
      - tokenAuth: []
      - tokenAuth: []
      responses:
        '204':
          content:
            application/json:
              schema:
                type: object
                additionalProperties: {}
                description: Unspecified response body
          description: ''
  /api/v1/input-formats/default/{file_type}/:
    get:
      operationId: Get default input formats
      description: Get a list of all default input formats
      parameters:
      - in: path
        name: file_type
        schema:
          type: string
          pattern: ^excel|xml$
        required: true
      tags:
      - input-formats
      security:
      - tokenAuth: []
      - tokenAuth: []
      responses:
        '200':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/InputformatDefault'
          description: ''
  /api/v1/input-formats/default/{file_type}/{name}/:
    get:
      operationId: Get default input format
      description: Get a specific default input format
      parameters:
      - in: path
        name: file_type
        schema:
          type: string
          pattern: ^excel|xml$
        required: true
      - in: path
        name: name
        schema:
          type: string
          pattern: ^$
        required: true
      tags:
      - input-formats
      security:
      - tokenAuth: []
      - tokenAuth: []
      responses:
        '200':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/InputFormat'
              examples:
                Example:
                  value:
                    organization: 1
                    name: My Custom Format
                    params:
                      sheets:
                      - name: sheet1
                        columns:
                        - col1
                        - col2
                      - name: sheet2
                        columns:
                        - col1
                        - col3
                        - '*'
                        join:
                          'on':
                          - col1
                          suffixes:
                          - _sheet1
                          - _sheet2
                      - name: sheet3s
                        columns:
                        - col4
                        - col5
                        - '*'
                        join:
                          left_on:
                          - col3
                          right_on:
                          - col5
                        drop_duplicated_columns: true
                        required: false
                  summary: example
          description: Detail of the input format
  /api/v1/invitations/:
    get:
      operationId: invitations_list
      description: List all invitations
      summary: List all invitations
      parameters:
      - name: page
        required: false
        in: query
        description: A page number within the paginated result set.
        schema:
          type: integer
      - name: page_size
        required: false
        in: query
        description: Number of results to return per page.
        schema:
          type: integer
      tags:
      - invitations
      security:
      - tokenAuth: []
      - tokenAuth: []
      responses:
        '200':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/PaginatedInvitationList'
              examples:
                Example:
                  value:
                    count: 123
                    next: http://api.example.org/accounts/?page=4
                    previous: http://api.example.org/accounts/?page=2
                    results:
                    - id: 4020ea38-c086-4352-992b-394dd843e107
                      email: foo@example.com
                      organization:
                        id: 1
                        name: Rebel Alliance
                        akeneo_customer_id: 550e8400-e29b-41d4-a716-446655440000
                      creation_date: '2020-12-31'
                  summary: example
          description: Invitation
    post:
      operationId: invitations_create
      description: Create invitations
      summary: Create multiple invitations for your organization
      tags:
      - invitations
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/InvitationCreationRequest'
          application/x-www-form-urlencoded:
            schema:
              $ref: '#/components/schemas/InvitationCreationRequest'
          multipart/form-data:
            schema:
              $ref: '#/components/schemas/InvitationCreationRequest'
        required: true
      security:
      - tokenAuth: []
      - tokenAuth: []
      responses:
        '201':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/PaginatedInvitationList'
          description: Invitation
  /api/v1/invitations/{id}/:
    get:
      operationId: invitations_retrieve
      description: Retrieve a invitation
      summary: Retrieve a invitation
      parameters:
      - in: path
        name: id
        schema:
          type: string
          format: uuid
        description: A UUID string identifying this invitation.
        required: true
      tags:
      - invitations
      security:
      - tokenAuth: []
      - tokenAuth: []
      - {}
      responses:
        '200':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Invitation'
              examples:
                Example:
                  value:
                    id: 4020ea38-c086-4352-992b-394dd843e107
                    email: foo@example.com
                    organization:
                      id: 1
                      name: Rebel Alliance
                      akeneo_customer_id: 550e8400-e29b-41d4-a716-446655440000
                    creation_date: '2020-12-31'
                  summary: example
          description: Invitation
    delete:
      operationId: invitations_destroy
      description: Remove a invitation
      summary: Remove a invitation
      parameters:
      - in: path
        name: id
        schema:
          type: string
          format: uuid
        description: A UUID string identifying this invitation.
        required: true
      tags:
      - invitations
      security:
      - tokenAuth: []
      - tokenAuth: []
      responses:
        '204':
          content:
            application/json:
              schema:
                type: object
                additionalProperties: {}
                description: Unspecified response body
          description: ''
  /api/v1/invitations/{id}/use/:
    post:
      operationId: invitations_use_create
      parameters:
      - in: path
        name: id
        schema:
          type: string
          format: uuid
        description: A UUID string identifying this invitation.
        required: true
      tags:
      - invitations
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/UserCreationRequest'
          application/x-www-form-urlencoded:
            schema:
              $ref: '#/components/schemas/UserCreationRequest'
          multipart/form-data:
            schema:
              $ref: '#/components/schemas/UserCreationRequest'
        required: true
      security:
      - tokenAuth: []
      - tokenAuth: []
      - {}
      responses:
        '200':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/UserCreation'
          description: ''
  /api/v1/job-media-archive/:
    get:
      operationId: job_media_archive_list
      parameters:
      - name: page
        required: false
        in: query
        description: A page number within the paginated result set.
        schema:
          type: integer
      - name: page_size
        required: false
        in: query
        description: Number of results to return per page.
        schema:
          type: integer
      tags:
      - job-media-archive
      security:
      - tokenAuth: []
      - tokenAuth: []
      responses:
        '200':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/PaginatedJobMediaArchiveList'
          description: ''
  /api/v1/job-media-archive/{id}/:
    get:
      operationId: job_media_archive_retrieve
      parameters:
      - in: path
        name: id
        schema:
          type: string
        required: true
      tags:
      - job-media-archive
      security:
      - tokenAuth: []
      - tokenAuth: []
      responses:
        '200':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/JobMediaArchive'
          description: ''
  /api/v1/jobs/:
    get:
      operationId: jobs_list
      description: List all jobs
      summary: List all jobs
      parameters:
      - in: query
        name: completed_after
        schema:
          type: string
          format: date-time
      - in: query
        name: completed_before
        schema:
          type: string
          format: date-time
      - in: query
        name: created_after
        schema:
          type: string
          format: date-time
      - in: query
        name: created_before
        schema:
          type: string
          format: date-time
      - in: query
        name: creator
        schema:
          type: integer
      - in: query
        name: file
        schema:
          type: integer
      - in: query
        name: filename
        schema:
          type: string
      - in: query
        name: last_editor
        schema:
          type: integer
      - in: query
        name: name
        schema:
          type: string
      - in: query
        name: order
        schema:
          type: array
          items:
            type: string
            enum:
            - -creation_date
            - -id
            - -last_update_date
            - -model_version
            - -name
            - -step
            - creation_date
            - id
            - last_update_date
            - model_version
            - name
            - step
        description: |-
          Ordering

          * `id` - Id
          * `-id` - Id (descending)
          * `creation_date` - Creation date
          * `-creation_date` - Creation date (descending)
          * `last_update_date` - Last update date
          * `-last_update_date` - Last update date (descending)
          * `step` - Step
          * `-step` - Step (descending)
          * `name` - Name
          * `-name` - Name (descending)
          * `model_version` - Model version
          * `-model_version` - Model version (descending)
        explode: false
        style: form
      - name: page
        required: false
        in: query
        description: A page number within the paginated result set.
        schema:
          type: integer
      - name: page_size
        required: false
        in: query
        description: Number of results to return per page.
        schema:
          type: integer
      - in: query
        name: project
        schema:
          type: integer
      - in: query
        name: search
        schema:
          type: string
      - in: query
        name: status
        schema:
          type: array
          items:
            type: string
            enum:
            - done
            - error
            - pending
            - running
        description: |-
          * `running` - Running
          * `pending` - Pending
          * `done` - Done
          * `error` - Error
        explode: true
        style: form
      - in: query
        name: step
        schema:
          type: array
          items:
            type: integer
        explode: true
        style: form
      tags:
      - jobs
      security:
      - tokenAuth: []
      - tokenAuth: []
      responses:
        '200':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/PaginatedJobList'
              examples:
                Example:
                  value:
                    count: 123
                    next: http://api.example.org/accounts/?page=4
                    previous: http://api.example.org/accounts/?page=2
                    results:
                    - id: 123e4567-e89b-12d3-a456-426614174000
                      status: pending
                      name: Bensimon FW 2021
                      stats:
                        total: 860
                        automated: 750
                        validated: 100
                        to_check: 10
                        to_complete: 0
                      creator:
                        id: 1
                        email: han.solo@unifai.fr
                        first_name: Han
                        last_name: Solo
                      created_through: null
                      last_editor:
                        id: 1
                        email: han.solo@unifai.fr
                        first_name: Han
                        last_name: Solo
                      file:
                        id: 1
                        name: mydocument.csv
                        organization: 1
                        uploader: 1
                        uploaded_through: null
                        upload_date: '2020-11-03T22:27:29Z'
                        columns:
                        - column_1
                        - column_2
                        - colum3
                        size: 1000
                        status: ready
                      model_version: 3
                      creation_date: '2020-11-05T20:46:18Z'
                      last_update_date: '2020-11-05T20:46:18Z'
                      task: null
                      project: 1
                      step:
                        id: 1
                        name: Classification FEDAS
                        type: categorisation
                        number: 1
                        run_mode: fast
                        help_config:
                          video_url: https://mydomain/myvideo.com
                          description: lorem ipsum
                      message: null
                      evaluation:
                        rate: 5
                        comment: ''
                      additional_info:
                        external_id: '5'
                  summary: example
          description: Detail of a Job
    post:
      operationId: jobs_create
      description: Create a new job
      summary: Create a new job
      tags:
      - jobs
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/JobRequest'
          application/x-www-form-urlencoded:
            schema:
              $ref: '#/components/schemas/JobRequest'
          multipart/form-data:
            schema:
              $ref: '#/components/schemas/JobRequest'
        required: true
      security:
      - tokenAuth: []
      - tokenAuth: []
      responses:
        '201':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Job'
              examples:
                Example:
                  value:
                    id: 123e4567-e89b-12d3-a456-426614174000
                    status: pending
                    name: Bensimon FW 2021
                    stats:
                      total: 860
                      automated: 750
                      validated: 100
                      to_check: 10
                      to_complete: 0
                    creator:
                      id: 1
                      email: han.solo@unifai.fr
                      first_name: Han
                      last_name: Solo
                    created_through: null
                    last_editor:
                      id: 1
                      email: han.solo@unifai.fr
                      first_name: Han
                      last_name: Solo
                    file:
                      id: 1
                      name: mydocument.csv
                      organization: 1
                      uploader: 1
                      uploaded_through: null
                      upload_date: '2020-11-03T22:27:29Z'
                      columns:
                      - column_1
                      - column_2
                      - colum3
                      size: 1000
                      status: ready
                    model_version: 3
                    creation_date: '2020-11-05T20:46:18Z'
                    last_update_date: '2020-11-05T20:46:18Z'
                    task: null
                    project: 1
                    step:
                      id: 1
                      name: Classification FEDAS
                      type: categorisation
                      number: 1
                      run_mode: fast
                      help_config:
                        video_url: https://mydomain/myvideo.com
                        description: lorem ipsum
                    message: null
                    evaluation:
                      rate: 5
                      comment: ''
                    additional_info:
                      external_id: '5'
                  summary: example
          description: Detail of a Job
  /api/v1/jobs/{id}/:
    get:
      operationId: jobs_retrieve
      description: Retrieve a job
      summary: Retrieve a job
      parameters:
      - in: path
        name: id
        schema:
          type: string
          format: uuid
        description: A UUID string identifying this job.
        required: true
      tags:
      - jobs
      security:
      - tokenAuth: []
      - tokenAuth: []
      responses:
        '200':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Job'
              examples:
                Example:
                  value:
                    id: 123e4567-e89b-12d3-a456-426614174000
                    status: pending
                    name: Bensimon FW 2021
                    stats:
                      total: 860
                      automated: 750
                      validated: 100
                      to_check: 10
                      to_complete: 0
                    creator:
                      id: 1
                      email: han.solo@unifai.fr
                      first_name: Han
                      last_name: Solo
                    created_through: null
                    last_editor:
                      id: 1
                      email: han.solo@unifai.fr
                      first_name: Han
                      last_name: Solo
                    file:
                      id: 1
                      name: mydocument.csv
                      organization: 1
                      uploader: 1
                      uploaded_through: null
                      upload_date: '2020-11-03T22:27:29Z'
                      columns:
                      - column_1
                      - column_2
                      - colum3
                      size: 1000
                      status: ready
                    model_version: 3
                    creation_date: '2020-11-05T20:46:18Z'
                    last_update_date: '2020-11-05T20:46:18Z'
                    task: null
                    project: 1
                    step:
                      id: 1
                      name: Classification FEDAS
                      type: categorisation
                      number: 1
                      run_mode: fast
                      help_config:
                        video_url: https://mydomain/myvideo.com
                        description: lorem ipsum
                    message: null
                    evaluation:
                      rate: 5
                      comment: ''
                    additional_info:
                      external_id: '5'
                  summary: example
          description: Detail of a Job
    delete:
      operationId: jobs_destroy
      description: Remove a job
      summary: Remove a job
      parameters:
      - in: path
        name: id
        schema:
          type: string
          format: uuid
        description: A UUID string identifying this job.
        required: true
      tags:
      - jobs
      security:
      - tokenAuth: []
      - tokenAuth: []
      responses:
        '204':
          content:
            application/json:
              schema:
                type: object
                additionalProperties: {}
                description: Unspecified response body
          description: ''
  /api/v1/jobs/{id}/data/:
    get:
      operationId: Retrieve job default output
      description: Retrieve job default output
      parameters:
      - in: path
        name: id
        schema:
          type: string
          format: uuid
        description: A UUID string identifying this job.
        required: true
      tags:
      - jobs
      security:
      - tokenAuth: []
      - tokenAuth: []
      responses:
        '200':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Job'
          description: ''
  /api/v1/jobs/{id}/data/{format_pk}/:
    get:
      operationId: Retrieve job output in a specific format
      description: Retrieve job default output
      parameters:
      - in: path
        name: format_pk
        schema:
          type: string
          pattern: ^[0-9]+$
        required: true
      - in: path
        name: id
        schema:
          type: string
          format: uuid
        description: A UUID string identifying this job.
        required: true
      tags:
      - jobs
      security:
      - tokenAuth: []
      - tokenAuth: []
      responses:
        '200':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Job'
          description: ''
  /api/v1/jobs/{id}/download/:
    get:
      operationId: Download job default output
      parameters:
      - in: path
        name: id
        schema:
          type: string
          format: uuid
        description: A UUID string identifying this job.
        required: true
      tags:
      - jobs
      security:
      - tokenAuth: []
      - tokenAuth: []
      responses:
        '200':
          content:
            application/octet-stream:
              schema:
                type: string
                format: binary
          description: ''
  /api/v1/jobs/{id}/download-deleted/:
    get:
      operationId: Download job deleted rows
      description: Download the deleted rows of a job
      parameters:
      - in: path
        name: id
        schema:
          type: string
          format: uuid
        description: A UUID string identifying this job.
        required: true
      tags:
      - jobs
      security:
      - tokenAuth: []
      - tokenAuth: []
      responses:
        '200':
          content:
            application/octet-stream:
              schema:
                type: string
                format: binary
          description: ''
  /api/v1/jobs/{id}/download/{format_pk}/:
    get:
      operationId: Download job output in a specific format
      parameters:
      - in: path
        name: format_pk
        schema:
          type: string
          pattern: ^[0-9]+$
        required: true
      - in: path
        name: id
        schema:
          type: string
          format: uuid
        description: A UUID string identifying this job.
        required: true
      tags:
      - jobs
      security:
      - tokenAuth: []
      - tokenAuth: []
      responses:
        '200':
          content:
            application/octet-stream:
              schema:
                type: string
                format: binary
          description: ''
  /api/v1/jobs/{id}/rating/:
    patch:
      operationId: jobs_rating_partial_update
      parameters:
      - in: path
        name: id
        schema:
          type: string
          format: uuid
        description: A UUID string identifying this job.
        required: true
      tags:
      - jobs
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/PatchedJobRequest'
          application/x-www-form-urlencoded:
            schema:
              $ref: '#/components/schemas/PatchedJobRequest'
          multipart/form-data:
            schema:
              $ref: '#/components/schemas/PatchedJobRequest'
      security:
      - tokenAuth: []
      - tokenAuth: []
      responses:
        '200':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Job'
          description: ''
  /api/v1/jobs/{id}/return-to-step/:
    post:
      operationId: Return to step
      description: Return a job to a previous step
      parameters:
      - in: path
        name: id
        schema:
          type: string
          format: uuid
        description: A UUID string identifying this job.
        required: true
      tags:
      - jobs
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/JobRequest'
          application/x-www-form-urlencoded:
            schema:
              $ref: '#/components/schemas/JobRequest'
          multipart/form-data:
            schema:
              $ref: '#/components/schemas/JobRequest'
        required: true
      security:
      - tokenAuth: []
      - tokenAuth: []
      responses:
        '200':
          description: No response body
  /api/v1/mapping/{action_id}/:
    get:
      operationId: mapping-read
      description: Get the details of the mapping step
      summary: Mapping details
      parameters:
      - in: path
        name: action_id
        schema:
          type: integer
        description: The id of the mapping step
        required: true
      tags:
      - mapping
      security:
      - tokenAuth: []
      - tokenAuth: []
      responses:
        '200':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/MappingParams'
          description: Mapping params
        default:
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Error'
              examples:
                Example:
                  value:
                    status_code: 400
                    message: validation error
                    errors:
                    - field: name
                      message: value must be string
                  summary: example
          description: ''
    patch:
      operationId: mapping-update
      description: Update a mapping step
      summary: Update Mapping
      parameters:
      - in: path
        name: action_id
        schema:
          type: integer
        description: The id of the mapping step
        required: true
      tags:
      - mapping
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/PatchedMappingParamsRequest'
          application/x-www-form-urlencoded:
            schema:
              $ref: '#/components/schemas/PatchedMappingParamsRequest'
          multipart/form-data:
            schema:
              $ref: '#/components/schemas/PatchedMappingParamsRequest'
      security:
      - tokenAuth: []
      - tokenAuth: []
      responses:
        '200':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/MappingParams'
          description: Mapping params
        default:
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Error'
              examples:
                Example:
                  value:
                    status_code: 400
                    message: validation error
                    errors:
                    - field: name
                      message: value must be string
                  summary: example
          description: ''
  /api/v1/mapping/{action_id}/{job_id}/:
    get:
      operationId: job-mapping-read
      description: Get the results of the mapping step
      summary: Mapping results
      parameters:
      - in: path
        name: action_id
        schema:
          type: integer
        description: The id of the mapping step
        required: true
      - in: path
        name: job_id
        schema:
          type: string
        description: The id of the job being worked on
        required: true
      tags:
      - mapping
      security:
      - tokenAuth: []
      - tokenAuth: []
      responses:
        '200':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/JobMapping'
              examples:
                Example:
                  value:
                    original:
                    - name: ProductID
                      samples:
                      - A
                      - B
                      - C
                      missing_percent: 0.95
                      missing_count: 10
                    - name: description
                      samples:
                      - 1
                      - 2
                      - 3
                      missing_percent: 0.0
                      missing_count: 0
                    mapping:
                    - new: ID
                      old:
                      - ProductID
                    - new: description
                      old:
                      - description
                  summary: example
          description: Job mapping response
        default:
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Error'
              examples:
                Example:
                  value:
                    status_code: 400
                    message: validation error
                    errors:
                    - field: name
                      message: value must be string
                  summary: example
          description: ''
    post:
      operationId: job-mapping-validate
      description: End the mapping step once every column is mapped
      summary: Validate mapping
      parameters:
      - in: path
        name: action_id
        schema:
          type: integer
        description: The id of the mapping step
        required: true
      - in: path
        name: job_id
        schema:
          type: string
        description: The id of the job being worked on
        required: true
      tags:
      - mapping
      security:
      - tokenAuth: []
      - tokenAuth: []
      responses:
        '201':
          description: No response body
        default:
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Error'
              examples:
                Example:
                  value:
                    status_code: 400
                    message: validation error
                    errors:
                    - field: name
                      message: value must be string
                  summary: example
          description: ''
    patch:
      operationId: job-mapping-update
      description: Correct the results of the mapping
      summary: Update mapping
      parameters:
      - in: path
        name: action_id
        schema:
          type: integer
        description: The id of the mapping step
        required: true
      - in: path
        name: job_id
        schema:
          type: string
        description: The id of the job being worked on
        required: true
      tags:
      - mapping
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/PatchedJobMappingRequest'
          application/x-www-form-urlencoded:
            schema:
              $ref: '#/components/schemas/PatchedJobMappingRequest'
          multipart/form-data:
            schema:
              $ref: '#/components/schemas/PatchedJobMappingRequest'
      security:
      - tokenAuth: []
      - tokenAuth: []
      responses:
        '201':
          description: No response body
        default:
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Error'
              examples:
                Example:
                  value:
                    status_code: 400
                    message: validation error
                    errors:
                    - field: name
                      message: value must be string
                  summary: example
          description: ''
  /api/v1/mapping/{action_id}/{job_id}/config/:
    get:
      operationId: job-mapping-config
      description: Get the config for the mapping step
      summary: Mapping configuration
      parameters:
      - in: path
        name: action_id
        schema:
          type: integer
        description: The id of the mapping step
        required: true
      - in: path
        name: job_id
        schema:
          type: string
        description: The id of the job being worked on
        required: true
      tags:
      - mapping
      security:
      - tokenAuth: []
      - tokenAuth: []
      responses:
        '200':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/LocalizedMappingParams'
          description: Localized Mapping params
        default:
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Error'
              examples:
                Example:
                  value:
                    status_code: 400
                    message: validation error
                    errors:
                    - field: name
                      message: value must be string
                  summary: example
          description: ''
  /api/v1/matchhistory/{action_id}/:
    get:
      operationId: matchhistory-read
      description: Get the details of the match history step
      summary: Matchhistory details
      parameters:
      - in: path
        name: action_id
        schema:
          type: integer
        description: The id of the matchhistory step
        required: true
      tags:
      - matchhistory
      security:
      - tokenAuth: []
      - tokenAuth: []
      responses:
        '200':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/MatchhistoryParams'
              examples:
                Example:
                  value:
                    filter_mode: AND
                    filters:
                    - mode: whitelist
                      reference_base: Existing products
                    enrichments:
                    - override: true
                      columns:
                      - c
                      record_list:
                      - a: 1
                        b: toto
                        c: false
                      - a: 2
                        b: tata
                        c: true
                      - a: 2
                        b: toto
                        c: false
                      unique_keys:
                      - a
                      - b
                    imports:
                    - which: kept
                      reference_base: Referenced products
                  summary: example
          description: Match history params
        default:
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Error'
              examples:
                Example:
                  value:
                    status_code: 400
                    message: validation error
                    errors:
                    - field: name
                      message: value must be string
                  summary: example
          description: ''
    patch:
      operationId: matchhistory-update
      description: Update a match history step
      summary: Update Matchhistory
      parameters:
      - in: path
        name: action_id
        schema:
          type: integer
        description: The id of the matchhistory step
        required: true
      tags:
      - matchhistory
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/PatchedMatchhistoryParamsRequest'
          application/x-www-form-urlencoded:
            schema:
              $ref: '#/components/schemas/PatchedMatchhistoryParamsRequest'
          multipart/form-data:
            schema:
              $ref: '#/components/schemas/PatchedMatchhistoryParamsRequest'
      security:
      - tokenAuth: []
      - tokenAuth: []
      responses:
        '200':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/MatchhistoryParams'
              examples:
                Example:
                  value:
                    filter_mode: AND
                    filters:
                    - mode: whitelist
                      reference_base: Existing products
                    enrichments:
                    - override: true
                      columns:
                      - c
                      record_list:
                      - a: 1
                        b: toto
                        c: false
                      - a: 2
                        b: tata
                        c: true
                      - a: 2
                        b: toto
                        c: false
                      unique_keys:
                      - a
                      - b
                    imports:
                    - which: kept
                      reference_base: Referenced products
                  summary: example
          description: Match history params
        default:
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Error'
              examples:
                Example:
                  value:
                    status_code: 400
                    message: validation error
                    errors:
                    - field: name
                      message: value must be string
                  summary: example
          description: ''
  /api/v1/matchhistory/{action_id}/{job_id}/:
    get:
      operationId: job-matchhistory-read
      description: Get the results of the match history step
      summary: Matchhistory results
      parameters:
      - in: path
        name: action_id
        schema:
          type: integer
        description: The id of the matchhistory step
        required: true
      - in: query
        name: filter
        schema:
          type: string
        description: The value to search in the possible items
      - in: query
        name: filter_by
        schema:
          type: string
        description: The property to search for the value in. Defaults to all.
      - in: path
        name: job_id
        schema:
          type: string
        description: The id of the job being worked on
        required: true
      - in: query
        name: order
        schema:
          type: string
        description: The comma-separated list of properties to order by
      - in: query
        name: page
        schema:
          type: integer
          default: 1
        description: A page number within the paginated result set.
      - in: query
        name: page_size
        schema:
          type: integer
          default: 50
        description: Number of results to return per page.
      - in: query
        name: status
        schema:
          type: string
        description: The status to filter on
      tags:
      - matchhistory
      security:
      - tokenAuth: []
      - tokenAuth: []
      responses:
        '200':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/JobOpResponse'
          description: Job match history response
        default:
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Error'
              examples:
                Example:
                  value:
                    status_code: 400
                    message: validation error
                    errors:
                    - field: name
                      message: value must be string
                  summary: example
          description: ''
    post:
      operationId: job-matchhistory-validate
      description: End the matchhistory step once every issue is fixed
      summary: Validate Matchhistory
      parameters:
      - in: path
        name: action_id
        schema:
          type: integer
        description: The id of the matchhistory step
        required: true
      - in: path
        name: job_id
        schema:
          type: string
        description: The id of the job being worked on
        required: true
      tags:
      - matchhistory
      security:
      - tokenAuth: []
      - tokenAuth: []
      responses:
        '201':
          description: No response body
        default:
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Error'
              examples:
                Example:
                  value:
                    status_code: 400
                    message: validation error
                    errors:
                    - field: name
                      message: value must be string
                  summary: example
          description: ''
    patch:
      operationId: job-matchhistory-update
      description: Correct the results of the match history
      summary: Update match history
      parameters:
      - in: path
        name: action_id
        schema:
          type: integer
        description: The id of the matchhistory step
        required: true
      - in: path
        name: job_id
        schema:
          type: string
        description: The id of the job being worked on
        required: true
      tags:
      - matchhistory
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/PatchedPatchJobMatchhistoryRequest'
          application/x-www-form-urlencoded:
            schema:
              $ref: '#/components/schemas/PatchedPatchJobMatchhistoryRequest'
          multipart/form-data:
            schema:
              $ref: '#/components/schemas/PatchedPatchJobMatchhistoryRequest'
      security:
      - tokenAuth: []
      - tokenAuth: []
      responses:
        '201':
          description: No response body
        default:
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Error'
              examples:
                Example:
                  value:
                    status_code: 400
                    message: validation error
                    errors:
                    - field: name
                      message: value must be string
                  summary: example
          description: ''
    delete:
      operationId: job-rows-delete_4
      description: Remove rows from the file
      summary: Delete rows
      parameters:
      - in: path
        name: action_id
        schema:
          type: integer
        description: The id of the step
        required: true
      - in: path
        name: job_id
        schema:
          type: string
        description: The id of the job being worked on
        required: true
      tags:
      - matchhistory
      security:
      - tokenAuth: []
      - tokenAuth: []
      responses:
        '201':
          description: No response body
        default:
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Error'
              examples:
                Example:
                  value:
                    status_code: 400
                    message: validation error
                    errors:
                    - field: name
                      message: value must be string
                  summary: example
          description: ''
  /api/v1/matchhistory/{action_id}/{job_id}/config/:
    get:
      operationId: job-matchhistory-config
      description: Get the config for the matchhistory step
      summary: Matchhistory configuration
      parameters:
      - in: path
        name: action_id
        schema:
          type: integer
        description: The id of the matchhistory step
        required: true
      - in: path
        name: job_id
        schema:
          type: string
        description: The id of the job being worked on
        required: true
      tags:
      - matchhistory
      security:
      - tokenAuth: []
      - tokenAuth: []
      responses:
        '200':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/LocalizedMatchhistoryParams'
          description: Localized match history params
        default:
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Error'
              examples:
                Example:
                  value:
                    status_code: 400
                    message: validation error
                    errors:
                    - field: name
                      message: value must be string
                  summary: example
          description: ''
  /api/v1/media/:
    get:
      operationId: media_retrieve
      tags:
      - media
      security:
      - tokenAuth: []
      - tokenAuth: []
      responses:
        '200':
          description: No response body
    post:
      operationId: media_create
      description: Upload a media for a job
      summary: Create media
      tags:
      - media
      requestBody:
        content:
          multipart/form-data:
            schema:
              $ref: '#/components/schemas/MediaRequest'
        required: true
      security:
      - tokenAuth: []
      - tokenAuth: []
      responses:
        '201':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Media'
          description: ''
  /api/v1/metrics/:
    get:
      operationId: metrics_list
      description: List all metricss
      summary: List all metricss
      parameters:
      - in: query
        name: completion_after
        schema:
          type: string
          format: date-time
      - in: query
        name: completion_before
        schema:
          type: string
          format: date-time
      - in: query
        name: filename
        schema:
          type: string
      - in: query
        name: group_by
        schema:
          type: string
          enum:
          - completion_day
          - completion_month
          - completion_year
          - project
        description: |-
          * `completion_month` - Month of completion
          * `completion_day` - Day of completion
          * `completion_year` - Year of completion
          * `project` - Project
      - in: query
        name: name
        schema:
          type: string
      - name: page
        required: false
        in: query
        description: A page number within the paginated result set.
        schema:
          type: integer
      - name: page_size
        required: false
        in: query
        description: Number of results to return per page.
        schema:
          type: integer
      - in: query
        name: project
        schema:
          type: integer
      tags:
      - metrics
      security:
      - tokenAuth: []
      - tokenAuth: []
      responses:
        '200':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/PaginatedMetricsList'
              examples:
                Example:
                  value:
                    count: 123
                    next: http://api.example.org/accounts/?page=4
                    previous: http://api.example.org/accounts/?page=2
                    results:
                    - project: 1
                      processing_time: 02:10:00
                      cpu_time: 01:35:12
                      session_time: 03:00:00
                      total_actions: 105
                      automated_actions: 93
                      completed_actions: 10
                      awaiting_actions: 2
                      total_rows: 200
                      automated_rows: 180
                      completed_rows: 10
                      awaiting_rows: 10
                  summary: example
          description: Aggregated jobs metrics
  /api/v1/metrics/xlsx/:
    get:
      operationId: Download metrics
      description: Download metrics in an excel file
      tags:
      - metrics
      security:
      - tokenAuth: []
      - tokenAuth: []
      responses:
        '200':
          content:
            application/octet-stream:
              schema:
                type: string
                format: binary
          description: ''
  /api/v1/normalisation/{action_id}/:
    get:
      operationId: normalisation-read
      description: Get the details of the normalisation step
      summary: Normalisation details
      parameters:
      - in: path
        name: action_id
        schema:
          type: integer
        description: The id of the normalisation step
        required: true
      tags:
      - normalisation
      security:
      - tokenAuth: []
      - tokenAuth: []
      responses:
        '200':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/BaseNormalisationParams'
          description: Normalisation params
        default:
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Error'
              examples:
                Example:
                  value:
                    status_code: 400
                    message: validation error
                    errors:
                    - field: name
                      message: value must be string
                  summary: example
          description: ''
    patch:
      operationId: normalisation-update
      description: Update a normalisation step
      summary: Update Normalisation
      parameters:
      - in: path
        name: action_id
        schema:
          type: integer
        description: The id of the normalisation step
        required: true
      tags:
      - normalisation
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/PatchedBaseNormalisationParamsRequest'
          application/x-www-form-urlencoded:
            schema:
              $ref: '#/components/schemas/PatchedBaseNormalisationParamsRequest'
          multipart/form-data:
            schema:
              $ref: '#/components/schemas/PatchedBaseNormalisationParamsRequest'
      security:
      - tokenAuth: []
      - tokenAuth: []
      responses:
        '200':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/BaseNormalisationParams'
          description: Normalisation params
        default:
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Error'
              examples:
                Example:
                  value:
                    status_code: 400
                    message: validation error
                    errors:
                    - field: name
                      message: value must be string
                  summary: example
          description: ''
  /api/v1/normalisation/{action_id}/{job_id}/:
    get:
      operationId: job-normalisation-read
      description: Get the results of the normalisation step
      summary: Normalisation results
      parameters:
      - in: path
        name: action_id
        schema:
          type: integer
        description: The id of the normalisation step
        required: true
      - in: query
        name: filter
        schema:
          type: string
        description: The value to search in the possible items
      - in: query
        name: filter_by
        schema:
          type: string
        description: The property to search for the value in. Defaults to all.
      - in: path
        name: job_id
        schema:
          type: string
        description: The id of the job being worked on
        required: true
      - in: query
        name: order
        schema:
          type: string
        description: The comma-separated list of properties to order by
      - in: query
        name: page
        schema:
          type: integer
          default: 1
        description: A page number within the paginated result set.
      - in: query
        name: page_size
        schema:
          type: integer
          default: 50
        description: Number of results to return per page.
      - in: query
        name: status
        schema:
          type: string
        description: The status to filter on
      tags:
      - normalisation
      security:
      - tokenAuth: []
      - tokenAuth: []
      responses:
        '200':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/JobNormalisationResponse'
              examples:
                Example:
                  value:
                    count: 543
                    stats:
                      total: 1000
                      automated: 890
                      corrected: 75
                      to_complete: 35
                    columns:
                    - label: My Column
                      field: my_column
                      visible: true
                    - label: My Column__errors
                      field: My Column__errors
                      visible: false
                    - label: My Column__originals
                      field: My Column__originals
                      visible: false
                    - label: general_UNiFAi__confidence
                      field: general_UNiFAi__confidence
                      visible: false
                    results:
                    - My Column: null
                      My Column__errors:
                      - this field is required
                      My Column__original: TEST
                      general_UNiFAi__confidence: to_correct
                    - My Column: 123
                      My Column__errors: []
                      My Column__original: 123
                      general_UNiFAi__confidence: validated
                  summary: example
          description: Job normalsation response
        default:
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Error'
              examples:
                Example:
                  value:
                    status_code: 400
                    message: validation error
                    errors:
                    - field: name
                      message: value must be string
                  summary: example
          description: ''
    post:
      operationId: job-normalisation-validate
      description: End the normalisation step once every issue is fixed
      summary: Validate normalisation
      parameters:
      - in: path
        name: action_id
        schema:
          type: integer
        description: The id of the normalisation step
        required: true
      - in: path
        name: job_id
        schema:
          type: string
        description: The id of the job being worked on
        required: true
      tags:
      - normalisation
      security:
      - tokenAuth: []
      - tokenAuth: []
      responses:
        '201':
          description: No response body
        default:
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Error'
              examples:
                Example:
                  value:
                    status_code: 400
                    message: validation error
                    errors:
                    - field: name
                      message: value must be string
                  summary: example
          description: ''
    patch:
      operationId: job-normalisation-update
      description: Correct the results of the normalisation
      summary: Update normalisation
      parameters:
      - in: path
        name: action_id
        schema:
          type: integer
        description: The id of the normalisation step
        required: true
      - in: path
        name: job_id
        schema:
          type: string
        description: The id of the job being worked on
        required: true
      tags:
      - normalisation
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/PatchedPatchJobNormalisationRequest'
          application/x-www-form-urlencoded:
            schema:
              $ref: '#/components/schemas/PatchedPatchJobNormalisationRequest'
          multipart/form-data:
            schema:
              $ref: '#/components/schemas/PatchedPatchJobNormalisationRequest'
      security:
      - tokenAuth: []
      - tokenAuth: []
      responses:
        '201':
          description: No response body
        default:
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Error'
              examples:
                Example:
                  value:
                    status_code: 400
                    message: validation error
                    errors:
                    - field: name
                      message: value must be string
                  summary: example
          description: ''
    delete:
      operationId: job-rows-delete_5
      description: Remove rows from the file
      summary: Delete rows
      parameters:
      - in: path
        name: action_id
        schema:
          type: integer
        description: The id of the step
        required: true
      - in: path
        name: job_id
        schema:
          type: string
        description: The id of the job being worked on
        required: true
      tags:
      - normalisation
      security:
      - tokenAuth: []
      - tokenAuth: []
      responses:
        '201':
          description: No response body
        default:
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Error'
              examples:
                Example:
                  value:
                    status_code: 400
                    message: validation error
                    errors:
                    - field: name
                      message: value must be string
                  summary: example
          description: ''
  /api/v1/normalisation/{action_id}/{job_id}/config/:
    get:
      operationId: job-normalisation-config
      description: Get the config for the normalisation step
      summary: Normalisation configuration
      parameters:
      - in: path
        name: action_id
        schema:
          type: integer
        description: The id of the normalisation step
        required: true
      - in: path
        name: job_id
        schema:
          type: string
        description: The id of the job being worked on
        required: true
      tags:
      - normalisation
      security:
      - tokenAuth: []
      - tokenAuth: []
      responses:
        '200':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/LocalizedNormalisationParams'
          description: Localized normalisation params
        default:
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Error'
              examples:
                Example:
                  value:
                    status_code: 400
                    message: validation error
                    errors:
                    - field: name
                      message: value must be string
                  summary: example
          description: ''
  /api/v1/options/:
    get:
      operationId: options_list
      description: List all options
      summary: List all options
      parameters:
      - in: query
        name: collection
        schema:
          type: integer
      - in: query
        name: label
        schema:
          type: string
      - in: query
        name: name
        schema:
          type: string
      - name: page
        required: false
        in: query
        description: A page number within the paginated result set.
        schema:
          type: integer
      - name: page_size
        required: false
        in: query
        description: Number of results to return per page.
        schema:
          type: integer
      tags:
      - options
      security:
      - tokenAuth: []
      - tokenAuth: []
      responses:
        '200':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/PaginatedOptionList'
          description: Option with nested labels by locale
  /api/v1/options/{id}/:
    get:
      operationId: Retrieve option
      description: Retrieve option
      parameters:
      - in: path
        name: id
        schema:
          type: integer
        description: A unique integer value identifying this option.
        required: true
      tags:
      - options
      security:
      - tokenAuth: []
      - tokenAuth: []
      responses:
        '200':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Option'
          description: Option with nested labels by locale
  /api/v1/options_collections/:
    get:
      operationId: options_collections_list
      description: List all options collections
      summary: List all options collections
      parameters:
      - in: query
        name: name
        schema:
          type: string
      - name: page
        required: false
        in: query
        description: A page number within the paginated result set.
        schema:
          type: integer
      - name: page_size
        required: false
        in: query
        description: Number of results to return per page.
        schema:
          type: integer
      - in: query
        name: project
        schema:
          type: integer
      tags:
      - options_collections
      security:
      - tokenAuth: []
      - tokenAuth: []
      responses:
        '200':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/PaginatedOptionsCollectionList'
          description: OptionsCollection
  /api/v1/options_collections/{id}/:
    get:
      operationId: Retrieve options collection
      description: Retrieve options collection
      parameters:
      - in: path
        name: id
        schema:
          type: integer
        description: A unique integer value identifying this options collection.
        required: true
      tags:
      - options_collections
      security:
      - tokenAuth: []
      - tokenAuth: []
      responses:
        '200':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/OptionsCollection'
          description: OptionsCollection
  /api/v1/options_collections/{id}/add-options/:
    patch:
      operationId: Add options to source of truth
      description: Add options to the collection and push them to external systems
        (source of truth) - available to all authenticated users when connector allows
        it. This operation modifies both SDM and the external system.
      parameters:
      - in: path
        name: id
        schema:
          type: integer
        description: A unique integer value identifying this options collection.
        required: true
      tags:
      - options_collections
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/PatchedOptionsCollectionAddWithConnectorRequest'
          application/x-www-form-urlencoded:
            schema:
              $ref: '#/components/schemas/PatchedOptionsCollectionAddWithConnectorRequest'
          multipart/form-data:
            schema:
              $ref: '#/components/schemas/PatchedOptionsCollectionAddWithConnectorRequest'
      security:
      - tokenAuth: []
      - tokenAuth: []
      responses:
        '200':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/OptionsCollection'
          description: OptionsCollection
  /api/v1/options_collections/{id}/update-options/:
    patch:
      operationId: Update options collection
      description: Update options collection with new options
      parameters:
      - in: path
        name: id
        schema:
          type: integer
        description: A unique integer value identifying this options collection.
        required: true
      tags:
      - options_collections
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/PatchedOptionsCollectionUpdateRequest'
          application/x-www-form-urlencoded:
            schema:
              $ref: '#/components/schemas/PatchedOptionsCollectionUpdateRequest'
          multipart/form-data:
            schema:
              $ref: '#/components/schemas/PatchedOptionsCollectionUpdateRequest'
      security:
      - tokenAuth: []
      - tokenAuth: []
      responses:
        '200':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/OptionsCollection'
          description: OptionsCollection
  /api/v1/outputs/:
    get:
      operationId: outputs_list
      description: List all outputs
      summary: List all outputs
      parameters:
      - in: query
        name: format
        schema:
          type: string
          enum:
          - csv
          - excel
        description: |-
          * `excel` - Excel
          * `csv` - CSV
      - in: query
        name: name
        schema:
          type: string
      - name: page
        required: false
        in: query
        description: A page number within the paginated result set.
        schema:
          type: integer
      - name: page_size
        required: false
        in: query
        description: Number of results to return per page.
        schema:
          type: integer
      - in: query
        name: project
        schema:
          type: integer
      tags:
      - outputs
      security:
      - tokenAuth: []
      - tokenAuth: []
      responses:
        '200':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/PaginatedSmallOutputFormatList'
              examples:
                Example:
                  value:
                    count: 123
                    next: http://api.example.org/accounts/?page=4
                    previous: http://api.example.org/accounts/?page=2
                    results:
                    - id: 1
                      step: 1
                      step_number: 0
                      project: 1
                      name: Complet
                      format: excel
                      separator: ;
                      source: inter
                  summary: example
          description: A small output format
  /api/v1/outputs/{id}/:
    get:
      operationId: outputs_retrieve
      description: Retrieve a output
      summary: Retrieve a output
      parameters:
      - in: path
        name: id
        schema:
          type: integer
        description: A unique integer value identifying this output format.
        required: true
      tags:
      - outputs
      security:
      - tokenAuth: []
      - tokenAuth: []
      responses:
        '200':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/OutputFormat'
              examples:
                Example:
                  value:
                    id: 1
                    step: 1
                    step_number: 0
                    project: 1
                    name: Complet
                    format: excel
                    separator: ;
                    source: inter
                    sheets:
                    - name: All fields
                      fields:
                      - name: null
                        exclude:
                        - general_UNiFAi__confidence
                  summary: example
          description: An output format
  /api/v1/password-resets/:
    post:
      operationId: password_resets_create
      description: Initiate a new password reset flow
      tags:
      - password-resets
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/PostPasswordResetRequest'
          application/x-www-form-urlencoded:
            schema:
              $ref: '#/components/schemas/PostPasswordResetRequest'
          multipart/form-data:
            schema:
              $ref: '#/components/schemas/PostPasswordResetRequest'
        required: true
      security:
      - tokenAuth: []
      - tokenAuth: []
      - {}
      responses:
        '201':
          description: No response body
  /api/v1/password-resets/{id}/:
    get:
      operationId: password_resets_retrieve
      description: Retrieve a password reset
      summary: Retrieve a password reset
      parameters:
      - in: path
        name: id
        schema:
          type: string
          format: uuid
        description: A UUID string identifying this password reset.
        required: true
      tags:
      - password-resets
      security:
      - tokenAuth: []
      - tokenAuth: []
      - {}
      responses:
        '200':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/PasswordReset'
          description: Password Reset
  /api/v1/password-resets/{id}/use/:
    post:
      operationId: password_resets_use_create
      parameters:
      - in: path
        name: id
        schema:
          type: string
          format: uuid
        description: A UUID string identifying this password reset.
        required: true
      tags:
      - password-resets
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/UsePasswordResetRequest'
          application/x-www-form-urlencoded:
            schema:
              $ref: '#/components/schemas/UsePasswordResetRequest'
          multipart/form-data:
            schema:
              $ref: '#/components/schemas/UsePasswordResetRequest'
        required: true
      security:
      - tokenAuth: []
      - tokenAuth: []
      - {}
      responses:
        '200':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/UsePasswordReset'
          description: ''
  /api/v1/portal_documents/{id}/download/:
    get:
      operationId: Download a document_2
      parameters:
      - in: path
        name: id
        schema:
          type: string
          format: uuid
        description: A UUID string identifying this external access portal document.
        required: true
      tags:
      - portal_documents
      security:
      - tokenAuth: []
      - tokenAuth: []
      - {}
      responses:
        '200':
          content:
            application/octet-stream:
              schema:
                type: string
                format: binary
          description: ''
  /api/v1/portals/:
    get:
      operationId: portals_list
      description: List all portals
      summary: List all portals
      parameters:
      - in: query
        name: assignee
        schema:
          type: integer
      - in: query
        name: name
        schema:
          type: string
      - in: query
        name: order
        schema:
          type: array
          items:
            type: string
            enum:
            - -creation_date
            - creation_date
        description: |-
          Ordering

          * `creation_date` - Creation date
          * `-creation_date` - Creation date (descending)
        explode: false
        style: form
      - name: page
        required: false
        in: query
        description: A page number within the paginated result set.
        schema:
          type: integer
      - name: page_size
        required: false
        in: query
        description: Number of results to return per page.
        schema:
          type: integer
      - in: query
        name: project
        schema:
          type: integer
      tags:
      - portals
      security:
      - tokenAuth: []
      - tokenAuth: []
      responses:
        '200':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/PaginatedExternalAccessPortalList'
              examples:
                Example:
                  value:
                    count: 123
                    next: http://api.example.org/accounts/?page=4
                    previous: http://api.example.org/accounts/?page=2
                    results:
                    - id: 1
                      name: Addidas
                      creation_date: '2020-11-02T22:23:15Z'
                      is_active: true
                      project:
                        id: 3
                        name: Project catégo extraction
                        model_version: 5
                        steps:
                          id: 1
                          name: Classification FEDAS
                          type: categorisation
                          number: 1
                          run_mode: fast
                          help_config:
                            video_url: https://mydomain/myvideo.com
                            description: lorem ipsum
                      last_accessible_step:
                        id: 1
                        name: Classification FEDAS
                        type: categorisation
                        number: 1
                        run_mode: fast
                        help_config:
                          video_url: https://mydomain/myvideo.com
                          description: lorem ipsum
                      token: 2ec44317-089e-46a1-a1e2-b2af533d6640
                      help_config:
                        suppliers_welcome_text: This text will be displayed to suppliers
                          on this specific portal.
                  summary: example
          description: Details of an external access portal
    post:
      operationId: portals_create
      description: Create a new portal
      summary: Create a new portal
      tags:
      - portals
      requestBody:
        content:
          multipart/form-data:
            schema:
              $ref: '#/components/schemas/ExternalAccessPortalRequest'
          application/json:
            schema:
              $ref: '#/components/schemas/ExternalAccessPortalRequest'
          application/x-www-form-urlencoded:
            schema:
              $ref: '#/components/schemas/ExternalAccessPortalRequest'
        required: true
      security:
      - tokenAuth: []
      - tokenAuth: []
      responses:
        '201':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ExternalAccessPortal'
              examples:
                Example:
                  value:
                    id: 1
                    name: Addidas
                    creation_date: '2020-11-02T22:23:15Z'
                    is_active: true
                    project:
                      id: 3
                      name: Project catégo extraction
                      model_version: 5
                      steps:
                        id: 1
                        name: Classification FEDAS
                        type: categorisation
                        number: 1
                        run_mode: fast
                        help_config:
                          video_url: https://mydomain/myvideo.com
                          description: lorem ipsum
                    last_accessible_step:
                      id: 1
                      name: Classification FEDAS
                      type: categorisation
                      number: 1
                      run_mode: fast
                      help_config:
                        video_url: https://mydomain/myvideo.com
                        description: lorem ipsum
                    token: 2ec44317-089e-46a1-a1e2-b2af533d6640
                    help_config:
                      suppliers_welcome_text: This text will be displayed to suppliers
                        on this specific portal.
                  summary: example
          description: Details of an external access portal
  /api/v1/portals/{id}/:
    get:
      operationId: portals_retrieve
      description: Retrieve a portal
      summary: Retrieve a portal
      parameters:
      - in: path
        name: id
        schema:
          type: integer
        description: A unique integer value identifying this external access portal.
        required: true
      tags:
      - portals
      security:
      - tokenAuth: []
      - tokenAuth: []
      responses:
        '200':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ExternalAccessPortal'
              examples:
                Example:
                  value:
                    id: 1
                    name: Addidas
                    creation_date: '2020-11-02T22:23:15Z'
                    is_active: true
                    project:
                      id: 3
                      name: Project catégo extraction
                      model_version: 5
                      steps:
                        id: 1
                        name: Classification FEDAS
                        type: categorisation
                        number: 1
                        run_mode: fast
                        help_config:
                          video_url: https://mydomain/myvideo.com
                          description: lorem ipsum
                    last_accessible_step:
                      id: 1
                      name: Classification FEDAS
                      type: categorisation
                      number: 1
                      run_mode: fast
                      help_config:
                        video_url: https://mydomain/myvideo.com
                        description: lorem ipsum
                    token: 2ec44317-089e-46a1-a1e2-b2af533d6640
                    help_config:
                      suppliers_welcome_text: This text will be displayed to suppliers
                        on this specific portal.
                  summary: example
          description: Details of an external access portal
    patch:
      operationId: portals_partial_update
      description: Update a portal
      summary: Update a portal
      parameters:
      - in: path
        name: id
        schema:
          type: integer
        description: A unique integer value identifying this external access portal.
        required: true
      tags:
      - portals
      requestBody:
        content:
          multipart/form-data:
            schema:
              $ref: '#/components/schemas/PatchedExternalAccessPortalRequest'
          application/json:
            schema:
              $ref: '#/components/schemas/PatchedExternalAccessPortalRequest'
          application/x-www-form-urlencoded:
            schema:
              $ref: '#/components/schemas/PatchedExternalAccessPortalRequest'
      security:
      - tokenAuth: []
      - tokenAuth: []
      responses:
        '200':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ExternalAccessPortal'
              examples:
                Example:
                  value:
                    id: 1
                    name: Addidas
                    creation_date: '2020-11-02T22:23:15Z'
                    is_active: true
                    project:
                      id: 3
                      name: Project catégo extraction
                      model_version: 5
                      steps:
                        id: 1
                        name: Classification FEDAS
                        type: categorisation
                        number: 1
                        run_mode: fast
                        help_config:
                          video_url: https://mydomain/myvideo.com
                          description: lorem ipsum
                    last_accessible_step:
                      id: 1
                      name: Classification FEDAS
                      type: categorisation
                      number: 1
                      run_mode: fast
                      help_config:
                        video_url: https://mydomain/myvideo.com
                        description: lorem ipsum
                    token: 2ec44317-089e-46a1-a1e2-b2af533d6640
                    help_config:
                      suppliers_welcome_text: This text will be displayed to suppliers
                        on this specific portal.
                  summary: example
          description: Details of an external access portal
    delete:
      operationId: portals_destroy
      description: Remove a portal
      summary: Remove a portal
      parameters:
      - in: path
        name: id
        schema:
          type: integer
        description: A unique integer value identifying this external access portal.
        required: true
      tags:
      - portals
      security:
      - tokenAuth: []
      - tokenAuth: []
      responses:
        '204':
          content:
            application/json:
              schema:
                type: object
                additionalProperties: {}
                description: Unspecified response body
          description: ''
  /api/v1/portals/{id}/renew-token/:
    patch:
      operationId: portals_renew_token_partial_update
      description: Renew portal access token
      summary: Renew the access token of the portal. Returns the updated portal.
      parameters:
      - in: path
        name: id
        schema:
          type: integer
        description: A unique integer value identifying this external access portal.
        required: true
      tags:
      - portals
      requestBody:
        content:
          multipart/form-data:
            schema:
              $ref: '#/components/schemas/PatchedExternalAccessPortalRequest'
          application/json:
            schema:
              $ref: '#/components/schemas/PatchedExternalAccessPortalRequest'
          application/x-www-form-urlencoded:
            schema:
              $ref: '#/components/schemas/PatchedExternalAccessPortalRequest'
      security:
      - tokenAuth: []
      - tokenAuth: []
      responses:
        '200':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ExternalAccessPortal'
              examples:
                Example:
                  value:
                    id: 1
                    name: Addidas
                    creation_date: '2020-11-02T22:23:15Z'
                    is_active: true
                    project:
                      id: 3
                      name: Project catégo extraction
                      model_version: 5
                      steps:
                        id: 1
                        name: Classification FEDAS
                        type: categorisation
                        number: 1
                        run_mode: fast
                        help_config:
                          video_url: https://mydomain/myvideo.com
                          description: lorem ipsum
                    last_accessible_step:
                      id: 1
                      name: Classification FEDAS
                      type: categorisation
                      number: 1
                      run_mode: fast
                      help_config:
                        video_url: https://mydomain/myvideo.com
                        description: lorem ipsum
                    token: 2ec44317-089e-46a1-a1e2-b2af533d6640
                    help_config:
                      suppliers_welcome_text: This text will be displayed to suppliers
                        on this specific portal.
                  summary: example
          description: Details of an external access portal
  /api/v1/portals/me/:
    get:
      operationId: portals_me_retrieve
      description: Get portal profile
      summary: Get details of the currently logged-in portal
      tags:
      - portals
      security:
      - tokenAuth: []
      - tokenAuth: []
      responses:
        '200':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ExternalAccessPortal'
              examples:
                Example:
                  value:
                    id: 1
                    name: Addidas
                    creation_date: '2020-11-02T22:23:15Z'
                    is_active: true
                    project:
                      id: 3
                      name: Project catégo extraction
                      model_version: 5
                      steps:
                        id: 1
                        name: Classification FEDAS
                        type: categorisation
                        number: 1
                        run_mode: fast
                        help_config:
                          video_url: https://mydomain/myvideo.com
                          description: lorem ipsum
                    last_accessible_step:
                      id: 1
                      name: Classification FEDAS
                      type: categorisation
                      number: 1
                      run_mode: fast
                      help_config:
                        video_url: https://mydomain/myvideo.com
                        description: lorem ipsum
                    token: 2ec44317-089e-46a1-a1e2-b2af533d6640
                    help_config:
                      suppliers_welcome_text: This text will be displayed to suppliers
                        on this specific portal.
                  summary: example
          description: Details of an external access portal
  /api/v1/projects/:
    get:
      operationId: projects_list
      description: List all projects
      summary: List all projects
      parameters:
      - in: query
        name: name
        schema:
          type: string
      - name: page
        required: false
        in: query
        description: A page number within the paginated result set.
        schema:
          type: integer
      - name: page_size
        required: false
        in: query
        description: Number of results to return per page.
        schema:
          type: integer
      tags:
      - projects
      security:
      - tokenAuth: []
      - tokenAuth: []
      responses:
        '200':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/PaginatedProjectOverviewList'
              examples:
                Example:
                  value:
                    count: 123
                    next: http://api.example.org/accounts/?page=4
                    previous: http://api.example.org/accounts/?page=2
                    results:
                    - id: 1
                      organization: 1
                      name: Import catalogue fournisseur
                      description: '...'
                      help_config:
                        portal_video_url: https://mydomain/myvideo.com
                        suppliers_welcome_text: This text will be displayed to all
                          supplier accesses.
                      creation_date: '2020-10-05T20:46:18Z'
                      model_version: 5
                      last_training_date: '2020-11-02T22:23:15Z'
                      last_job_date: '2020-11-02T22:23:15Z'
                  summary: example
          description: A project overview
    post:
      operationId: projects_create
      description: Create a new project
      summary: Create a new project
      tags:
      - projects
      requestBody:
        content:
          multipart/form-data:
            schema:
              $ref: '#/components/schemas/ProjectRequest'
          application/json:
            schema:
              $ref: '#/components/schemas/ProjectRequest'
          application/x-www-form-urlencoded:
            schema:
              $ref: '#/components/schemas/ProjectRequest'
        required: true
      security:
      - tokenAuth: []
      - tokenAuth: []
      responses:
        '201':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Project'
              examples:
                Example:
                  value:
                    id: 1
                    organization: 1
                    name: Import catalogue fournisseur
                    description: '...'
                    help_config:
                      portal_video_url: https://mydomain/myvideo.com
                    creation_date: '2020-10-05T20:46:18Z'
                    model_version: 5
                    last_training_date: '2020-11-02T22:23:15Z'
                    task: null
                    steps:
                    - id: 1
                      name: Classification FEDAS
                      type: categorisation
                      number: 1
                      run_mode: fast
                      help_config:
                        video_url: https://mydomain/myvideo.com
                        description: lorem ipsum
                    last_job_date: '2020-11-02T22:23:15Z'
                    last_sync_date: '2021-11-02T22:23:15Z'
                    available_locales:
                    - en-US
                    - fr-FR
                    documents: []
                  summary: example
          description: A project details
  /api/v1/projects/{id}/:
    get:
      operationId: projects_retrieve
      description: Retrieve a project
      summary: Retrieve a project
      parameters:
      - in: path
        name: id
        schema:
          type: integer
        description: A unique integer value identifying this project.
        required: true
      tags:
      - projects
      security:
      - tokenAuth: []
      - tokenAuth: []
      responses:
        '200':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Project'
              examples:
                Example:
                  value:
                    id: 1
                    organization: 1
                    name: Import catalogue fournisseur
                    description: '...'
                    help_config:
                      portal_video_url: https://mydomain/myvideo.com
                    creation_date: '2020-10-05T20:46:18Z'
                    model_version: 5
                    last_training_date: '2020-11-02T22:23:15Z'
                    task: null
                    steps:
                    - id: 1
                      name: Classification FEDAS
                      type: categorisation
                      number: 1
                      run_mode: fast
                      help_config:
                        video_url: https://mydomain/myvideo.com
                        description: lorem ipsum
                    last_job_date: '2020-11-02T22:23:15Z'
                    last_sync_date: '2021-11-02T22:23:15Z'
                    available_locales:
                    - en-US
                    - fr-FR
                    documents: []
                  summary: example
          description: A project details
    patch:
      operationId: projects_partial_update
      description: Update a project
      summary: Update a project
      parameters:
      - in: path
        name: id
        schema:
          type: integer
        description: A unique integer value identifying this project.
        required: true
      tags:
      - projects
      requestBody:
        content:
          multipart/form-data:
            schema:
              $ref: '#/components/schemas/PatchedProjectRequest'
          application/json:
            schema:
              $ref: '#/components/schemas/PatchedProjectRequest'
          application/x-www-form-urlencoded:
            schema:
              $ref: '#/components/schemas/PatchedProjectRequest'
      security:
      - tokenAuth: []
      - tokenAuth: []
      responses:
        '200':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Project'
              examples:
                Example:
                  value:
                    id: 1
                    organization: 1
                    name: Import catalogue fournisseur
                    description: '...'
                    help_config:
                      portal_video_url: https://mydomain/myvideo.com
                    creation_date: '2020-10-05T20:46:18Z'
                    model_version: 5
                    last_training_date: '2020-11-02T22:23:15Z'
                    task: null
                    steps:
                    - id: 1
                      name: Classification FEDAS
                      type: categorisation
                      number: 1
                      run_mode: fast
                      help_config:
                        video_url: https://mydomain/myvideo.com
                        description: lorem ipsum
                    last_job_date: '2020-11-02T22:23:15Z'
                    last_sync_date: '2021-11-02T22:23:15Z'
                    available_locales:
                    - en-US
                    - fr-FR
                    documents: []
                  summary: example
          description: A project details
    delete:
      operationId: projects_destroy
      description: Remove a project
      summary: Remove a project
      parameters:
      - in: path
        name: id
        schema:
          type: integer
        description: A unique integer value identifying this project.
        required: true
      tags:
      - projects
      security:
      - tokenAuth: []
      - tokenAuth: []
      responses:
        '204':
          content:
            application/json:
              schema:
                type: object
                additionalProperties: {}
                description: Unspecified response body
          description: ''
  /api/v1/users/:
    get:
      operationId: users_list
      description: List all users
      summary: List all users
      parameters:
      - in: query
        name: email
        schema:
          type: string
      - in: query
        name: id
        schema:
          type: integer
      - in: query
        name: order
        schema:
          type: array
          items:
            type: string
            enum:
            - -date_joined
            - -id
            - -last_login
            - date_joined
            - id
            - last_login
        description: |-
          Ordering

          * `id` - Id
          * `-id` - Id (descending)
          * `date_joined` - Date joined
          * `-date_joined` - Date joined (descending)
          * `last_login` - Last login
          * `-last_login` - Last login (descending)
        explode: false
        style: form
      - in: query
        name: organization
        schema:
          type: integer
      - name: page
        required: false
        in: query
        description: A page number within the paginated result set.
        schema:
          type: integer
      - name: page_size
        required: false
        in: query
        description: Number of results to return per page.
        schema:
          type: integer
      - in: query
        name: search
        schema:
          type: string
      tags:
      - users
      security:
      - tokenAuth: []
      - tokenAuth: []
      responses:
        '200':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/PaginatedUserList'
              examples:
                Example:
                  value:
                    count: 123
                    next: http://api.example.org/accounts/?page=4
                    previous: http://api.example.org/accounts/?page=2
                    results:
                    - id: 1
                      email: han.solo@unifai.fr
                      first_name: Han
                      last_name: Solo
                      last_login: '2020-01-01 13:12:00'
                      organization:
                        id: 1
                        name: Rebel Alliance
                        akeneo_customer_id: 550e8400-e29b-41d4-a716-446655440000
                      is_organization_admin: true
                  summary: example
          description: User details
  /api/v1/users/{id}/:
    get:
      operationId: users_retrieve
      description: Retrieve a user
      summary: Retrieve a user
      parameters:
      - in: path
        name: id
        schema:
          type: integer
        description: A unique integer value identifying this user.
        required: true
      tags:
      - users
      security:
      - tokenAuth: []
      - tokenAuth: []
      responses:
        '200':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/User'
              examples:
                Example:
                  value:
                    id: 1
                    email: han.solo@unifai.fr
                    first_name: Han
                    last_name: Solo
                    last_login: '2020-01-01 13:12:00'
                    organization:
                      id: 1
                      name: Rebel Alliance
                      akeneo_customer_id: 550e8400-e29b-41d4-a716-446655440000
                    is_organization_admin: true
                  summary: example
          description: User details
    patch:
      operationId: users_partial_update
      description: Update a user
      summary: Update a user
      parameters:
      - in: path
        name: id
        schema:
          type: integer
        description: A unique integer value identifying this user.
        required: true
      tags:
      - users
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/PatchedUserRequest'
          application/x-www-form-urlencoded:
            schema:
              $ref: '#/components/schemas/PatchedUserRequest'
          multipart/form-data:
            schema:
              $ref: '#/components/schemas/PatchedUserRequest'
      security:
      - tokenAuth: []
      - tokenAuth: []
      responses:
        '200':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/User'
              examples:
                Example:
                  value:
                    id: 1
                    email: han.solo@unifai.fr
                    first_name: Han
                    last_name: Solo
                    last_login: '2020-01-01 13:12:00'
                    organization:
                      id: 1
                      name: Rebel Alliance
                      akeneo_customer_id: 550e8400-e29b-41d4-a716-446655440000
                    is_organization_admin: true
                  summary: example
          description: User details
    delete:
      operationId: users_destroy
      description: Remove a user
      summary: Remove a user
      parameters:
      - in: path
        name: id
        schema:
          type: integer
        description: A unique integer value identifying this user.
        required: true
      tags:
      - users
      security:
      - tokenAuth: []
      - tokenAuth: []
      responses:
        '204':
          content:
            application/json:
              schema:
                type: object
                additionalProperties: {}
                description: Unspecified response body
          description: ''
  /api/v1/users/me/:
    get:
      operationId: users_me_retrieve
      tags:
      - users
      security:
      - tokenAuth: []
      - tokenAuth: []
      responses:
        '200':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/User'
          description: ''
  /api/v1/users/me/settings/:
    get:
      operationId: users_me_settings_retrieve
      description: User settings
      summary: UI and notification settings of the currently logged-in user
      tags:
      - users
      security:
      - tokenAuth: []
      - tokenAuth: []
      responses:
        '200':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/UserSettings'
          description: ''
    patch:
      operationId: users_me_settings_partial_update
      description: User settings
      summary: UI and notification settings of the currently logged-in user
      tags:
      - users
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/PatchedUserRequest'
          application/x-www-form-urlencoded:
            schema:
              $ref: '#/components/schemas/PatchedUserRequest'
          multipart/form-data:
            schema:
              $ref: '#/components/schemas/PatchedUserRequest'
      security:
      - tokenAuth: []
      - tokenAuth: []
      responses:
        '200':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/UserSettings'
          description: ''
  /api/v1/valuemapping/{action_id}/:
    get:
      operationId: mapping-read_2
      description: Get the details of the valuemapping step
      summary: ValueMapping details
      parameters:
      - in: path
        name: action_id
        schema:
          type: integer
        description: The id of the mapping step
        required: true
      tags:
      - valuemapping
      security:
      - tokenAuth: []
      - tokenAuth: []
      responses:
        '200':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ValueMappingParams'
              examples:
                Example:
                  value:
                    fields:
                    - name: Color
                      options:
                      - Red
                      - Green
                      - Blue
                    - name: Unit
                      options:
                      - kg
                      - g
                    keep_unmapped: true
                  summary: example
          description: ValueMapping params
        default:
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Error'
              examples:
                Example:
                  value:
                    status_code: 400
                    message: validation error
                    errors:
                    - field: name
                      message: value must be string
                  summary: example
          description: ''
    patch:
      operationId: valuemapping-update
      description: Update a value mapping step
      summary: Update ValueMapping
      parameters:
      - in: path
        name: action_id
        schema:
          type: integer
        description: The id of the mapping step
        required: true
      tags:
      - valuemapping
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/PatchedValueMappingParamsRequest'
          application/x-www-form-urlencoded:
            schema:
              $ref: '#/components/schemas/PatchedValueMappingParamsRequest'
          multipart/form-data:
            schema:
              $ref: '#/components/schemas/PatchedValueMappingParamsRequest'
      security:
      - tokenAuth: []
      - tokenAuth: []
      responses:
        '200':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ValueMappingParams'
              examples:
                Example:
                  value:
                    fields:
                    - name: Color
                      options:
                      - Red
                      - Green
                      - Blue
                    - name: Unit
                      options:
                      - kg
                      - g
                    keep_unmapped: true
                  summary: example
          description: ValueMapping params
        default:
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Error'
              examples:
                Example:
                  value:
                    status_code: 400
                    message: validation error
                    errors:
                    - field: name
                      message: value must be string
                  summary: example
          description: ''
  /api/v1/valuemapping/{action_id}/{job_id}/:
    get:
      operationId: job-valuemapping-read
      description: Get the results of the valuemapping step
      summary: ValueMapping results
      parameters:
      - in: path
        name: action_id
        schema:
          type: integer
        description: The id of the mapping step
        required: true
      - in: path
        name: job_id
        schema:
          type: string
        description: The id of the job being worked on
        required: true
      tags:
      - valuemapping
      security:
      - tokenAuth: []
      - tokenAuth: []
      responses:
        '200':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/JobValueMapping'
              examples:
                Example:
                  value:
                    original:
                    - name: ProductID
                      samples:
                      - A
                      - B
                      - C
                      missing: 0.95
                    - name: description
                      samples:
                      - 1
                      - 2
                      - 3
                      missing: 0.0
                    mapping:
                    - name: ID
                      mappings:
                        '1':
                        - a
                        - b
                    - new: description
                      group: additional_info
                      mappings:
                        w:
                        - u
                        - v
                        - w
                        r:
                        - x
                  summary: example
          description: Job mapping response
        default:
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Error'
              examples:
                Example:
                  value:
                    status_code: 400
                    message: validation error
                    errors:
                    - field: name
                      message: value must be string
                  summary: example
          description: ''
    post:
      operationId: job-valuemapping-validate
      description: End the valuemapping step once every column is mapped
      summary: Validate valuemapping
      parameters:
      - in: path
        name: action_id
        schema:
          type: integer
        description: The id of the mapping step
        required: true
      - in: path
        name: job_id
        schema:
          type: string
        description: The id of the job being worked on
        required: true
      tags:
      - valuemapping
      security:
      - tokenAuth: []
      - tokenAuth: []
      responses:
        '201':
          description: No response body
        default:
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Error'
              examples:
                Example:
                  value:
                    status_code: 400
                    message: validation error
                    errors:
                    - field: name
                      message: value must be string
                  summary: example
          description: ''
    patch:
      operationId: job-valuemapping-update
      description: Correct the results of the valuemapping
      summary: Update valuemapping
      parameters:
      - in: path
        name: action_id
        schema:
          type: integer
        description: The id of the mapping step
        required: true
      - in: path
        name: job_id
        schema:
          type: string
        description: The id of the job being worked on
        required: true
      tags:
      - valuemapping
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/PatchedJobValueMappingRequest'
          application/x-www-form-urlencoded:
            schema:
              $ref: '#/components/schemas/PatchedJobValueMappingRequest'
          multipart/form-data:
            schema:
              $ref: '#/components/schemas/PatchedJobValueMappingRequest'
      security:
      - tokenAuth: []
      - tokenAuth: []
      responses:
        '201':
          description: No response body
        default:
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Error'
              examples:
                Example:
                  value:
                    status_code: 400
                    message: validation error
                    errors:
                    - field: name
                      message: value must be string
                  summary: example
          description: ''
  /api/v1/valuemapping/{action_id}/{job_id}/config/:
    get:
      operationId: job-valuemapping-config
      description: Get the config for the valuemapping step
      summary: Valuemapping configuration
      parameters:
      - in: path
        name: action_id
        schema:
          type: integer
        description: The id of the mapping step
        required: true
      - in: path
        name: job_id
        schema:
          type: string
        description: The id of the job being worked on
        required: true
      tags:
      - valuemapping
      security:
      - tokenAuth: []
      - tokenAuth: []
      responses:
        '200':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/LocalizedValueMappingParams'
          description: Localized ValueMapping params
        default:
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Error'
              examples:
                Example:
                  value:
                    status_code: 400
                    message: validation error
                    errors:
                    - field: name
                      message: value must be string
                  summary: example
          description: ''
  /api/v1/variant/{action_id}/:
    get:
      operationId: variant-read
      description: Get the details of the variant step
      summary: Variant details
      parameters:
      - in: path
        name: action_id
        schema:
          type: integer
        description: The id of the variant step
        required: true
      tags:
      - variant
      security:
      - tokenAuth: []
      - tokenAuth: []
      responses:
        '200':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/VariantParams'
              examples:
                Example:
                  value:
                    product_model_name_column:
                      name: internal_ref_product_model
                      label:
                        fr: Référence interne de modèle de produit
                    default_id_column: SKU
                    product_model_head_column:
                      name: is_parent
                      label:
                        fr: est un parent
                    allow_product_model_without_matching_group: true
                    invariant_columns:
                    - description
                    variant_columns:
                    - SKU
                    - color
                    - size
                    unique_columns: []
                    export_data:
                    - parent
                    - child
                    - independent
                    output_data:
                    - parent
                    - independent
                    matching_groups:
                    - invariant_columns:
                      - SKU
                      variant_columns:
                      - color
                      name: colored products
                      conditions:
                      - name: required
                        field: color
                      unique_columns:
                      - color
                    automation:
                      enabled: true
                      grouping_columns:
                      - column1
                      - column2
                      group_empty_columns: false
                  summary: example
          description: Variant params
        default:
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Error'
              examples:
                Example:
                  value:
                    status_code: 400
                    message: validation error
                    errors:
                    - field: name
                      message: value must be string
                  summary: example
          description: ''
    patch:
      operationId: variant-update
      description: Update a variant step
      summary: Update variant
      parameters:
      - in: path
        name: action_id
        schema:
          type: integer
        description: The id of the variant step
        required: true
      tags:
      - variant
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/PatchedVariantParamsRequest'
          application/x-www-form-urlencoded:
            schema:
              $ref: '#/components/schemas/PatchedVariantParamsRequest'
          multipart/form-data:
            schema:
              $ref: '#/components/schemas/PatchedVariantParamsRequest'
      security:
      - tokenAuth: []
      - tokenAuth: []
      responses:
        '200':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/VariantParams'
              examples:
                Example:
                  value:
                    product_model_name_column:
                      name: internal_ref_product_model
                      label:
                        fr: Référence interne de modèle de produit
                    default_id_column: SKU
                    product_model_head_column:
                      name: is_parent
                      label:
                        fr: est un parent
                    allow_product_model_without_matching_group: true
                    invariant_columns:
                    - description
                    variant_columns:
                    - SKU
                    - color
                    - size
                    unique_columns: []
                    export_data:
                    - parent
                    - child
                    - independent
                    output_data:
                    - parent
                    - independent
                    matching_groups:
                    - invariant_columns:
                      - SKU
                      variant_columns:
                      - color
                      name: colored products
                      conditions:
                      - name: required
                        field: color
                      unique_columns:
                      - color
                    automation:
                      enabled: true
                      grouping_columns:
                      - column1
                      - column2
                      group_empty_columns: false
                  summary: example
          description: Variant params
        default:
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Error'
              examples:
                Example:
                  value:
                    status_code: 400
                    message: validation error
                    errors:
                    - field: name
                      message: value must be string
                  summary: example
          description: ''
  /api/v1/variant/{action_id}/{job_id}/:
    get:
      operationId: job-variant-read
      description: Get the results of the variant step
      summary: Variant results
      parameters:
      - in: path
        name: action_id
        schema:
          type: integer
        description: The id of the variant step
        required: true
      - in: query
        name: filter
        schema:
          type: string
        description: The value to search in the possible items
      - in: query
        name: filter_by
        schema:
          type: string
        description: The property to search for the value in. Defaults to all.
      - in: path
        name: job_id
        schema:
          type: string
        description: The id of the job being worked on
        required: true
      - in: query
        name: order
        schema:
          type: string
        description: The comma-separated list of properties to order by
      - in: query
        name: page
        schema:
          type: integer
          default: 1
        description: A page number within the paginated result set.
      - in: query
        name: page_size
        schema:
          type: integer
          default: 50
        description: Number of results to return per page.
      - in: query
        name: status
        schema:
          type: string
        description: The status to filter on
      tags:
      - variant
      security:
      - tokenAuth: []
      - tokenAuth: []
      responses:
        '200':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/JobVariant'
              examples:
                Example:
                  value:
                    count: 543
                    stats:
                      total: 100
                      grouped: 75
                      to_check: 25
                      independent: 25
                    columns:
                    - label: My Column
                      field: my_column
                      visible: true
                    - label: other column
                      field: other column
                      visible: true
                    - label: ''
                      field: general_UNiFAi__confidence
                      visible: false
                    results:
                    - my_column: first value
                      other column: foo
                    - my_column: second value
                      other column: bar
                    - my_column: last value
                      other column: null
                  summary: example
          description: Job variant response
        default:
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Error'
              examples:
                Example:
                  value:
                    status_code: 400
                    message: validation error
                    errors:
                    - field: name
                      message: value must be string
                  summary: example
          description: ''
    post:
      operationId: job-variant-validate
      description: End the variant step once every issue is fixed
      summary: Validate variant
      parameters:
      - in: path
        name: action_id
        schema:
          type: integer
        description: The id of the variant step
        required: true
      - in: path
        name: job_id
        schema:
          type: string
        description: The id of the job being worked on
        required: true
      tags:
      - variant
      security:
      - tokenAuth: []
      - tokenAuth: []
      responses:
        '201':
          description: No response body
        default:
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Error'
              examples:
                Example:
                  value:
                    status_code: 400
                    message: validation error
                    errors:
                    - field: name
                      message: value must be string
                  summary: example
          description: ''
    delete:
      operationId: job-rows-delete_6
      description: Remove rows from the file
      summary: Delete rows
      parameters:
      - in: path
        name: action_id
        schema:
          type: integer
        description: The id of the step
        required: true
      - in: path
        name: job_id
        schema:
          type: string
        description: The id of the job being worked on
        required: true
      tags:
      - variant
      security:
      - tokenAuth: []
      - tokenAuth: []
      responses:
        '201':
          description: No response body
        default:
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Error'
              examples:
                Example:
                  value:
                    status_code: 400
                    message: validation error
                    errors:
                    - field: name
                      message: value must be string
                  summary: example
          description: ''
  /api/v1/variant/{action_id}/{job_id}/config/:
    get:
      operationId: job-variant-config
      description: Get the config for the variant step
      summary: Variant configuration
      parameters:
      - in: path
        name: action_id
        schema:
          type: integer
        description: The id of the variant step
        required: true
      - in: path
        name: job_id
        schema:
          type: string
        description: The id of the job being worked on
        required: true
      tags:
      - variant
      security:
      - tokenAuth: []
      - tokenAuth: []
      responses:
        '200':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/LocalizedVariantParams'
          description: Variant params
        default:
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Error'
              examples:
                Example:
                  value:
                    status_code: 400
                    message: validation error
                    errors:
                    - field: name
                      message: value must be string
                  summary: example
          description: ''
  /api/v1/variant/{action_id}/{job_id}/matching-groups:
    get:
      operationId: job-variant-matching-groups
      description: Get matching groups
      summary: Get matching groups
      parameters:
      - in: path
        name: action_id
        schema:
          type: integer
        required: true
      - in: path
        name: job_id
        schema:
          type: string
          format: uuid
        required: true
      tags:
      - variant
      security:
      - tokenAuth: []
      - tokenAuth: []
      responses:
        '200':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/MatchingGroupsDetailsResponse'
          description: ''
        default:
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Error'
              examples:
                Example:
                  value:
                    status_code: 400
                    message: validation error
                    errors:
                    - field: name
                      message: value must be string
                  summary: example
          description: ''
  /api/v1/variant/{action_id}/{job_id}/product-models/:
    post:
      operationId: variant_product_models_create
      parameters:
      - in: path
        name: action_id
        schema:
          type: integer
        required: true
      - in: path
        name: job_id
        schema:
          type: string
          format: uuid
        required: true
      tags:
      - variant
      security:
      - tokenAuth: []
      - tokenAuth: []
      responses:
        '200':
          description: No response body
    patch:
      operationId: variant_product_models_partial_update
      parameters:
      - in: path
        name: action_id
        schema:
          type: integer
        required: true
      - in: path
        name: job_id
        schema:
          type: string
          format: uuid
        required: true
      tags:
      - variant
      security:
      - tokenAuth: []
      - tokenAuth: []
      responses:
        '200':
          description: No response body
  /api/v1/variant/{action_id}/{job_id}/product-models/add-children/:
    patch:
      operationId: variant_product_models_add_children_partial_update
      parameters:
      - in: path
        name: action_id
        schema:
          type: integer
        required: true
      - in: path
        name: job_id
        schema:
          type: string
          format: uuid
        required: true
      tags:
      - variant
      security:
      - tokenAuth: []
      - tokenAuth: []
      responses:
        '200':
          description: No response body
  /api/v1/variant/{action_id}/{job_id}/product-models/delete/:
    post:
      operationId: job-variant-product_model-delete
      description: Delete a product model with the id in the payload
      summary: Delete a product model
      parameters:
      - in: path
        name: action_id
        schema:
          type: integer
        required: true
      - in: path
        name: job_id
        schema:
          type: string
          format: uuid
        required: true
      tags:
      - variant
      security:
      - tokenAuth: []
      - tokenAuth: []
      responses:
        '200':
          description: No response body
  /api/v1/variant/{action_id}/{job_id}/row/reset-state/:
    post:
      operationId: job-variant-remove-product-model
      description: Mark as not in a product model a list of children id
      summary: Remove product model rows
      parameters:
      - in: path
        name: action_id
        schema:
          type: integer
        required: true
      - in: path
        name: job_id
        schema:
          type: string
          format: uuid
        required: true
      tags:
      - variant
      security:
      - tokenAuth: []
      - tokenAuth: []
      responses:
        '200':
          description: No response body
  /api/v1/variant/{action_id}/{job_id}/row/set-independent/:
    post:
      operationId: job-variant-product_model-independent
      description: Mark as independent a list of children id
      summary: Make independent rows
      parameters:
      - in: path
        name: action_id
        schema:
          type: integer
        required: true
      - in: path
        name: job_id
        schema:
          type: string
          format: uuid
        required: true
      tags:
      - variant
      security:
      - tokenAuth: []
      - tokenAuth: []
      responses:
        '200':
          description: No response body
components:
  schemas:
    Accuracies:
      type: object
      properties:
        to_check:
          type: number
          format: double
          maximum: 1
          minimum: 0
        automated:
          type: number
          format: double
          maximum: 1
          minimum: 0
      required:
      - automated
      - to_check
    AiProviderEnum:
      enum:
      - openai
      - dummy
      type: string
      description: |-
        * `openai` - OpenAI
        * `dummy` - Dummy
    AkeneoCallbackRequest:
      type: object
      properties:
        code:
          type: string
          minLength: 1
          maxLength: 256
        name:
          type: string
          minLength: 1
          maxLength: 256
      required:
      - code
      - name
    AkeneoTokenRequest:
      type: object
      properties:
        code:
          type: string
          minLength: 1
          maxLength: 256
        redirect_uri:
          type: string
          format: uri
          minLength: 1
      required:
      - code
      - redirect_uri
    ArchiveTypeEnum:
      enum:
      - orphan_media
      - linked_media
      type: string
      description: |-
        * `orphan_media` - Orphan media
        * `linked_media` - Linked media
    AutomateGroupin:
      type: object
      properties:
        enabled:
          type: boolean
          default: false
        grouping_columns:
          type: array
          items:
            type: string
        group_empty_columns:
          type: boolean
          default: false
    AutomateGroupinRequest:
      type: object
      properties:
        enabled:
          type: boolean
          default: false
        grouping_columns:
          type: array
          items:
            type: string
            minLength: 1
        group_empty_columns:
          type: boolean
          default: false
    BaseConnection:
      type: object
      properties:
        id:
          type: string
          format: uuid
          readOnly: true
        base_url:
          type: string
          format: uri
        project:
          type: string
          readOnly: true
        organization:
          type: string
          readOnly: true
        is_config_active:
          type: boolean
        is_push_active:
          type: boolean
        config_status:
          allOf:
          - $ref: '#/components/schemas/ConfigStatusEnum'
          readOnly: true
        last_sync_date:
          type: string
          format: date-time
          readOnly: true
      required:
      - config_status
      - id
      - is_config_active
      - is_push_active
      - last_sync_date
      - organization
      - project
    BaseConnectionRequest:
      type: object
      properties:
        base_url:
          type: string
          format: uri
          minLength: 1
        is_config_active:
          type: boolean
        is_push_active:
          type: boolean
      required:
      - is_config_active
      - is_push_active
    BaseNormalisationParams:
      type: object
      properties:
        keep_excluded_fields:
          type: boolean
          default: true
        sources:
          type: array
          items:
            type: string
        fields:
          type: array
          items:
            $ref: '#/components/schemas/NormalisationField'
          default: []
        groups:
          type: array
          items:
            $ref: '#/components/schemas/Group'
          default: []
        include_fields:
          type: array
          items:
            $ref: '#/components/schemas/FieldFilter'
        exclude_fields:
          type: array
          items:
            $ref: '#/components/schemas/FieldFilter'
        max_requirement_level:
          allOf:
          - $ref: '#/components/schemas/MaxRequirementLevelEnum'
          default: required
          description: |-
            Max requirement levels: required, important, optional

            * `required` - Required
            * `important` - Important
            * `optional` - Optional
    BlankEnum:
      enum:
      - ''
    CategorisationField:
      type: object
      properties:
        name:
          type: string
          description: The name of the field
        label:
          type: object
          additionalProperties:
            type: string
          default: {}
          description: The friendly name of the field, by locale
        hierarchy:
          type: string
        check_representation_conflicts:
          type: boolean
          default: true
        output:
          type: array
          items:
            $ref: '#/components/schemas/CategorisationOutput'
          description: The columns where the predicted classification will be written
            in the output file. A null value means this level will not be outputed
        multiple:
          type: boolean
          description: Whether having several classifications per item is allowed
        multiple_separator:
          type: string
          description: The separator used to separate different classification propositions
            for a same item
        allow_no_category:
          type: boolean
          default: false
          description: Allow to validate rows even if it doesn't have any category
        replace_existing:
          type: boolean
          default: true
          description: Try to predict categories even though they are already present
            in the input file.
      required:
      - hierarchy
      - name
      - output
    CategorisationFieldRequest:
      type: object
      properties:
        name:
          type: string
          minLength: 1
          description: The name of the field
        label:
          type: object
          additionalProperties:
            type: string
            minLength: 1
          default: {}
          description: The friendly name of the field, by locale
        hierarchy:
          type: string
          minLength: 1
        check_representation_conflicts:
          type: boolean
          default: true
        output:
          type: array
          items:
            $ref: '#/components/schemas/CategorisationOutputRequest'
          description: The columns where the predicted classification will be written
            in the output file. A null value means this level will not be outputed
        multiple:
          type: boolean
          description: Whether having several classifications per item is allowed
        multiple_separator:
          type: string
          minLength: 1
          description: The separator used to separate different classification propositions
            for a same item
        allow_no_category:
          type: boolean
          default: false
          description: Allow to validate rows even if it doesn't have any category
        replace_existing:
          type: boolean
          default: true
          description: Try to predict categories even though they are already present
            in the input file.
      required:
      - hierarchy
      - name
      - output
    CategorisationOutput:
      type: object
      properties:
        name:
          type: string
          nullable: true
          description: The name of the output column
        label:
          type: object
          additionalProperties:
            type: string
          default: {}
          description: The friendly name of the output column, by locale
        nb_levels:
          type: integer
          minimum: 1
          nullable: true
          description: The number of levels to select for this output
        separator:
          type: string
          description: The separator used to separate different levels, useful if
            nb_levels > 1
        required:
          type: boolean
          default: true
      required:
      - nb_levels
    CategorisationOutputRequest:
      type: object
      properties:
        name:
          type: string
          nullable: true
          minLength: 1
          description: The name of the output column
        label:
          type: object
          additionalProperties:
            type: string
            minLength: 1
          default: {}
          description: The friendly name of the output column, by locale
        nb_levels:
          type: integer
          minimum: 1
          nullable: true
          description: The number of levels to select for this output
        separator:
          type: string
          minLength: 1
          description: The separator used to separate different levels, useful if
            nb_levels > 1
        required:
          type: boolean
          default: true
      required:
      - nb_levels
    CategorisationParams:
      type: object
      properties:
        categorisation_fields:
          type: array
          items:
            $ref: '#/components/schemas/CategorisationField'
          default: []
        groupby:
          type: array
          items:
            type: string
          default: []
          description: The columns used to group rows with the same classification
            to avoid duplicate work.
        automated_audit_rate:
          type: number
          format: double
          default: 0.0
          description: The percentage of rows to audit automatically, between 0 and
            1 (0% and 100%)
        truth_store:
          type: string
          description: The name of the reference base to use as a reference to skip
            classification computation if the row is the same
    CategorisationStats:
      type: object
      properties:
        total:
          type: integer
          minimum: 0
        automated:
          type: integer
          minimum: 0
        validated:
          type: integer
          minimum: 0
        to_check:
          type: integer
          minimum: 0
        to_complete:
          type: integer
          minimum: 0
      required:
      - automated
      - to_check
      - to_complete
      - total
      - validated
    Column:
      type: object
      properties:
        label:
          type: object
          additionalProperties:
            type: string
        field:
          type: string
        separator:
          type: string
        visible:
          type: boolean
        multiple:
          type: boolean
        type:
          type: string
      required:
      - field
      - visible
    Composition:
      type: object
      properties:
        composition_fields:
          type: array
          items:
            $ref: '#/components/schemas/CompositionField'
      required:
      - composition_fields
    CompositionField:
      type: object
      properties:
        out:
          type: string
        sources:
          type: array
          items:
            type: string
        requirement_level:
          allOf:
          - $ref: '#/components/schemas/RequirementLevelEnum'
          default: optional
          description: |-
            Requirement levels: required, important, optional (default)

            * `required` - Required
            * `important` - Important
            * `optional` - Optional
        materials:
          type: array
          items:
            type: string
      required:
      - materials
      - out
      - sources
    CompositionFieldRequest:
      type: object
      properties:
        out:
          type: string
          minLength: 1
        sources:
          type: array
          items:
            type: string
            minLength: 1
        requirement_level:
          allOf:
          - $ref: '#/components/schemas/RequirementLevelEnum'
          default: optional
          description: |-
            Requirement levels: required, important, optional (default)

            * `required` - Required
            * `important` - Important
            * `optional` - Optional
        materials:
          type: array
          items:
            type: string
            minLength: 1
      required:
      - materials
      - out
      - sources
    CompositionStats:
      type: object
      properties:
        total:
          type: integer
          minimum: 0
        automated:
          type: integer
          minimum: 0
        validated:
          type: integer
          minimum: 0
        to_check:
          type: integer
          minimum: 0
      required:
      - automated
      - to_check
      - total
      - validated
    ConfidenceStatusEnum:
      enum:
      - automated
      - to_check
      - to_complete
      type: string
      description: |-
        * `automated` - automated
        * `to_check` - to_check
        * `to_complete` - to_complete
    ConfigStatusEnum:
      enum:
      - ready
      - running
      type: string
      description: |-
        * `ready` - ready
        * `running` - running
    ConnectionOperationLog:
      type: object
      properties:
        id:
          type: string
          format: uuid
          readOnly: true
        operation_type:
          oneOf:
          - $ref: '#/components/schemas/OperationTypeEnum'
          - $ref: '#/components/schemas/BlankEnum'
        logs: {}
        status:
          $ref: '#/components/schemas/ConnectionOperationLogStatusEnum'
        creation_date:
          type: string
          format: date-time
          readOnly: true
        completion_date:
          type: string
          format: date-time
          readOnly: true
          nullable: true
        connection:
          type: string
          format: uuid
      required:
      - completion_date
      - connection
      - creation_date
      - id
      - status
    ConnectionOperationLogStatusEnum:
      enum:
      - running
      - ready
      - error
      type: string
      description: |-
        * `running` - Running
        * `ready` - Ready
        * `error` - Error
    DirectionEnum:
      enum:
      - left
      - right
      type: string
      description: |-
        * `left` - left
        * `right` - right
    EncodingEnum:
      enum:
      - utf-8
      - latin-1
      - cp1252
      type: string
      description: |-
        * `utf-8` - utf-8
        * `latin-1` - latin-1
        * `cp1252` - cp1252
    Error:
      type: object
      properties:
        status_code:
          type: integer
          description: HTTP status code
        message:
          type: string
          description: Error message
          maxLength: 128
        errors:
          type: array
          items:
            $ref: '#/components/schemas/FieldError'
          description: Field validation errors
      required:
      - message
      - status_code
    ExportDataEnum:
      enum:
      - parent
      - child
      - independent
      type: string
      description: |-
        * `parent` - List of all Parent
        * `child` - List of all Child
        * `independent` - List of all Independent
    ExternalAccessPortal:
      type: object
      properties:
        id:
          type: integer
          readOnly: true
        organization:
          type: string
          readOnly: true
        project:
          type: string
          readOnly: true
        last_accessible_step:
          allOf:
          - $ref: '#/components/schemas/SimpleStep'
          readOnly: true
        assignee:
          allOf:
          - $ref: '#/components/schemas/SimpleUser'
          readOnly: true
        notified_users:
          type: array
          items:
            $ref: '#/components/schemas/SimpleUser'
          readOnly: true
        token:
          type: string
          format: uuid
          readOnly: true
        contributors:
          type: string
          readOnly: true
        help_config:
          $ref: '#/components/schemas/PortalHelpConfig'
        name:
          type: string
          maxLength: 128
        creation_date:
          type: string
          format: date-time
          readOnly: true
        last_access_date:
          type: string
          format: date-time
          nullable: true
        is_active:
          type: boolean
        documents:
          type: array
          items:
            $ref: '#/components/schemas/ExternalAccessPortalDocument'
          readOnly: true
      required:
      - assignee
      - contributors
      - creation_date
      - documents
      - id
      - last_accessible_step
      - name
      - notified_users
      - organization
      - project
      - token
    ExternalAccessPortalDocument:
      type: object
      properties:
        id:
          type: string
          format: uuid
          readOnly: true
        original_filename:
          type: string
          readOnly: true
        filepath:
          type: string
          readOnly: true
        creation_date:
          type: string
          format: date-time
          readOnly: true
        mime_type:
          type: string
          readOnly: true
        size_in_kb:
          type: integer
          readOnly: true
        download_url:
          type: string
          readOnly: true
        deletion_date:
          type: string
          format: date-time
          readOnly: true
          nullable: true
      required:
      - creation_date
      - deletion_date
      - download_url
      - filepath
      - id
      - mime_type
      - original_filename
      - size_in_kb
    ExternalAccessPortalRequest:
      type: object
      properties:
        project_id:
          type: integer
          writeOnly: true
        last_accessible_step_id:
          type: integer
          writeOnly: true
        assignee_id:
          type: integer
          writeOnly: true
        notified_users_ids:
          type: array
          items:
            type: integer
            writeOnly: true
          writeOnly: true
        contributor_emails:
          type: array
          items:
            type: string
            format: email
            minLength: 1
          writeOnly: true
        help_config:
          $ref: '#/components/schemas/PortalHelpConfigRequest'
        name:
          type: string
          minLength: 1
          maxLength: 128
        last_access_date:
          type: string
          format: date-time
          nullable: true
        is_active:
          type: boolean
        uploaded_documents:
          type: array
          items:
            type: string
            format: binary
          writeOnly: true
        deleted_documents:
          type: array
          items:
            type: string
            format: uuid
          writeOnly: true
      required:
      - assignee_id
      - name
      - project_id
    ExtractionField:
      oneOf:
      - $ref: '#/components/schemas/ExtractionFieldSerializerForstringTyped'
      - $ref: '#/components/schemas/ExtractionFieldSerializerForhtmlTyped'
      - $ref: '#/components/schemas/ExtractionFieldSerializerFornumberTyped'
      - $ref: '#/components/schemas/ExtractionFieldSerializerForselectTyped'
      - $ref: '#/components/schemas/ExtractionFieldSerializerForbooleanTyped'
      - $ref: '#/components/schemas/ExtractionFieldSerializerForurlTyped'
      - $ref: '#/components/schemas/ExtractionFieldSerializerForimage_urlTyped'
      - $ref: '#/components/schemas/ExtractionFieldSerializerFordateTyped'
      discriminator:
        propertyName: type
        mapping:
          string: '#/components/schemas/ExtractionFieldSerializerForstringTyped'
          html: '#/components/schemas/ExtractionFieldSerializerForhtmlTyped'
          number: '#/components/schemas/ExtractionFieldSerializerFornumberTyped'
          select: '#/components/schemas/ExtractionFieldSerializerForselectTyped'
          boolean: '#/components/schemas/ExtractionFieldSerializerForbooleanTyped'
          url: '#/components/schemas/ExtractionFieldSerializerForurlTyped'
          image_url: '#/components/schemas/ExtractionFieldSerializerForimage_urlTyped'
          date: '#/components/schemas/ExtractionFieldSerializerFordateTyped'
    ExtractionFieldSerializerForboolean:
      type: object
      properties:
        name:
          type: string
          description: The name of the field
        groups:
          type: array
          items:
            type: string
            nullable: true
            description: Group to which the field belongs
        queries:
          type: array
          items:
            type: string
            default: 'False'
          description: Questions to ask the AI to find the field value
        hypothesis_template:
          type: string
        threshold:
          $ref: '#/components/schemas/Accuracies'
        label:
          type: object
          additionalProperties:
            type: string
          default: {}
          description: The friendly name of the field, by locale
        display_group:
          type: string
          nullable: true
        requirement_level:
          allOf:
          - $ref: '#/components/schemas/RequirementLevelEnum'
          default: optional
          description: |-
            Requirement levels: required, important, optional (default)

            * `required` - Required
            * `important` - Important
            * `optional` - Optional
      required:
      - name
    ExtractionFieldSerializerForbooleanTyped:
      allOf:
      - $ref: '#/components/schemas/ExtractionFieldUntyped'
      - $ref: '#/components/schemas/ExtractionFieldSerializerForboolean'
    ExtractionFieldSerializerFordate:
      type: object
      properties:
        name:
          type: string
          description: The name of the field
        groups:
          type: array
          items:
            type: string
            nullable: true
            description: Group to which the field belongs
        queries:
          type: array
          items:
            type: string
            default: 'False'
          description: Questions to ask the AI to find the field value
        hypothesis_template:
          type: string
        threshold:
          $ref: '#/components/schemas/Accuracies'
        label:
          type: object
          additionalProperties:
            type: string
          default: {}
          description: The friendly name of the field, by locale
        display_group:
          type: string
          nullable: true
        requirement_level:
          allOf:
          - $ref: '#/components/schemas/RequirementLevelEnum'
          default: optional
          description: |-
            Requirement levels: required, important, optional (default)

            * `required` - Required
            * `important` - Important
            * `optional` - Optional
        format:
          type: string
      required:
      - format
      - name
    ExtractionFieldSerializerFordateTyped:
      allOf:
      - $ref: '#/components/schemas/ExtractionFieldUntyped'
      - $ref: '#/components/schemas/ExtractionFieldSerializerFordate'
    ExtractionFieldSerializerForhtml:
      type: object
      properties:
        name:
          type: string
          description: The name of the field
        groups:
          type: array
          items:
            type: string
            nullable: true
            description: Group to which the field belongs
        queries:
          type: array
          items:
            type: string
            default: 'False'
          description: Questions to ask the AI to find the field value
        hypothesis_template:
          type: string
        threshold:
          $ref: '#/components/schemas/Accuracies'
        label:
          type: object
          additionalProperties:
            type: string
          default: {}
          description: The friendly name of the field, by locale
        display_group:
          type: string
          nullable: true
        requirement_level:
          allOf:
          - $ref: '#/components/schemas/RequirementLevelEnum'
          default: optional
          description: |-
            Requirement levels: required, important, optional (default)

            * `required` - Required
            * `important` - Important
            * `optional` - Optional
        tag_whitelist:
          type: array
          items:
            type: string
          default: []
        remove_attributes:
          type: boolean
      required:
      - name
    ExtractionFieldSerializerForhtmlTyped:
      allOf:
      - $ref: '#/components/schemas/ExtractionFieldUntyped'
      - $ref: '#/components/schemas/ExtractionFieldSerializerForhtml'
    ExtractionFieldSerializerForimage_url:
      type: object
      properties:
        name:
          type: string
          description: The name of the field
        groups:
          type: array
          items:
            type: string
            nullable: true
            description: Group to which the field belongs
        queries:
          type: array
          items:
            type: string
            default: 'False'
          description: Questions to ask the AI to find the field value
        hypothesis_template:
          type: string
        threshold:
          $ref: '#/components/schemas/Accuracies'
        label:
          type: object
          additionalProperties:
            type: string
          default: {}
          description: The friendly name of the field, by locale
        display_group:
          type: string
          nullable: true
        requirement_level:
          allOf:
          - $ref: '#/components/schemas/RequirementLevelEnum'
          default: optional
          description: |-
            Requirement levels: required, important, optional (default)

            * `required` - Required
            * `important` - Important
            * `optional` - Optional
        multiple:
          type: boolean
          default: false
        separator:
          type: string
          default: ;
        authorized_extensions:
          type: array
          items:
            type: string
          default:
          - .jpg
          - .jpeg
          - .png
          - .gif
      required:
      - name
    ExtractionFieldSerializerForimage_urlTyped:
      allOf:
      - $ref: '#/components/schemas/ExtractionFieldUntyped'
      - $ref: '#/components/schemas/ExtractionFieldSerializerForimage_url'
    ExtractionFieldSerializerFornumber:
      type: object
      properties:
        name:
          type: string
          description: The name of the field
        groups:
          type: array
          items:
            type: string
            nullable: true
            description: Group to which the field belongs
        queries:
          type: array
          items:
            type: string
            default: 'False'
          description: Questions to ask the AI to find the field value
        hypothesis_template:
          type: string
        threshold:
          $ref: '#/components/schemas/Accuracies'
        label:
          type: object
          additionalProperties:
            type: string
          default: {}
          description: The friendly name of the field, by locale
        display_group:
          type: string
          nullable: true
        requirement_level:
          allOf:
          - $ref: '#/components/schemas/RequirementLevelEnum'
          default: optional
          description: |-
            Requirement levels: required, important, optional (default)

            * `required` - Required
            * `important` - Important
            * `optional` - Optional
        decimals:
          type: integer
          nullable: true
        number_pattern:
          type: string
          nullable: true
        number_substitution:
          type: string
          nullable: true
      required:
      - name
    ExtractionFieldSerializerFornumberTyped:
      allOf:
      - $ref: '#/components/schemas/ExtractionFieldUntyped'
      - $ref: '#/components/schemas/ExtractionFieldSerializerFornumber'
    ExtractionFieldSerializerForselect:
      type: object
      properties:
        options_collection_name:
          type: string
        name:
          type: string
          description: The name of the field
        groups:
          type: array
          items:
            type: string
            nullable: true
            description: Group to which the field belongs
        queries:
          type: array
          items:
            type: string
            default: 'False'
          description: Questions to ask the AI to find the field value
        hypothesis_template:
          type: string
        threshold:
          $ref: '#/components/schemas/Accuracies'
        label:
          type: object
          additionalProperties:
            type: string
          default: {}
          description: The friendly name of the field, by locale
        display_group:
          type: string
          nullable: true
        requirement_level:
          allOf:
          - $ref: '#/components/schemas/RequirementLevelEnum'
          default: optional
          description: |-
            Requirement levels: required, important, optional (default)

            * `required` - Required
            * `important` - Important
            * `optional` - Optional
        multiple:
          type: boolean
          default: false
        separator:
          type: string
          default: ;
        max_choices:
          type: integer
          nullable: true
      required:
      - name
      - options_collection_name
    ExtractionFieldSerializerForselectTyped:
      allOf:
      - $ref: '#/components/schemas/ExtractionFieldUntyped'
      - $ref: '#/components/schemas/ExtractionFieldSerializerForselect'
    ExtractionFieldSerializerForstring:
      type: object
      properties:
        name:
          type: string
          description: The name of the field
        groups:
          type: array
          items:
            type: string
            nullable: true
            description: Group to which the field belongs
        queries:
          type: array
          items:
            type: string
            default: 'False'
          description: Questions to ask the AI to find the field value
        hypothesis_template:
          type: string
        threshold:
          $ref: '#/components/schemas/Accuracies'
        label:
          type: object
          additionalProperties:
            type: string
          default: {}
          description: The friendly name of the field, by locale
        display_group:
          type: string
          nullable: true
        requirement_level:
          allOf:
          - $ref: '#/components/schemas/RequirementLevelEnum'
          default: optional
          description: |-
            Requirement levels: required, important, optional (default)

            * `required` - Required
            * `important` - Important
            * `optional` - Optional
      required:
      - name
    ExtractionFieldSerializerForstringTyped:
      allOf:
      - $ref: '#/components/schemas/ExtractionFieldUntyped'
      - $ref: '#/components/schemas/ExtractionFieldSerializerForstring'
    ExtractionFieldSerializerForurl:
      type: object
      properties:
        name:
          type: string
          description: The name of the field
        groups:
          type: array
          items:
            type: string
            nullable: true
            description: Group to which the field belongs
        queries:
          type: array
          items:
            type: string
            default: 'False'
          description: Questions to ask the AI to find the field value
        hypothesis_template:
          type: string
        threshold:
          $ref: '#/components/schemas/Accuracies'
        label:
          type: object
          additionalProperties:
            type: string
          default: {}
          description: The friendly name of the field, by locale
        display_group:
          type: string
          nullable: true
        requirement_level:
          allOf:
          - $ref: '#/components/schemas/RequirementLevelEnum'
          default: optional
          description: |-
            Requirement levels: required, important, optional (default)

            * `required` - Required
            * `important` - Important
            * `optional` - Optional
        multiple:
          type: boolean
          default: false
        separator:
          type: string
          default: ;
      required:
      - name
    ExtractionFieldSerializerForurlTyped:
      allOf:
      - $ref: '#/components/schemas/ExtractionFieldUntyped'
      - $ref: '#/components/schemas/ExtractionFieldSerializerForurl'
    ExtractionFieldUntyped:
      type: object
      description: |-
        A polymorphic serializer, in which the subdata
        types are inferred from one of the keys in the data.
        The class API is designed to be similar to rest_polymorphic's serializer,
        so the drf_spectacular extension can be used for this serializer too. The main difference
        is that it is not meant to be a model serializer but to work on mappings/dicts.
      properties:
        type:
          type: string
      required:
      - type
    ExtractionSourceValue:
      type: object
      properties:
        value:
          type: string
          description: The name of the field
        label:
          type: object
          additionalProperties:
            type: string
          default: {}
          description: The friendly name of the field, by locale
      required:
      - value
    ExtractionSourceValueRequest:
      type: object
      properties:
        value:
          type: string
          minLength: 1
          description: The name of the field
        label:
          type: object
          additionalProperties:
            type: string
            minLength: 1
          default: {}
          description: The friendly name of the field, by locale
      required:
      - value
    ExtractionStats:
      type: object
      properties:
        total:
          type: integer
          minimum: 0
        automated:
          type: integer
          minimum: 0
        validated:
          type: integer
          minimum: 0
        to_check:
          type: integer
          minimum: 0
        to_complete:
          type: integer
          minimum: 0
      required:
      - automated
      - to_check
      - to_complete
      - total
      - validated
    ExtractionTag:
      type: object
      properties:
        source:
          type: string
          nullable: true
        field:
          type: string
        start:
          type: integer
          nullable: true
        end:
          type: integer
          nullable: true
        value:
          type: string
        label:
          type: string
          readOnly: true
        origin:
          allOf:
          - $ref: '#/components/schemas/OriginEnum'
          readOnly: true
          default: step_input
          description: |-
            Which origin the tag comes from

            * `user_modified` - user_modified
            * `model` - model
            * `step_input` - step_input
            * `user_created` - user_created
        misc:
          type: boolean
        confidence:
          type: string
          readOnly: true
        explanation:
          type: string
          readOnly: true
      required:
      - confidence
      - explanation
      - field
      - label
      - origin
      - value
    ExtractionTagRequest:
      type: object
      properties:
        source:
          type: string
          nullable: true
          minLength: 1
        field:
          type: string
          minLength: 1
        start:
          type: integer
          nullable: true
        end:
          type: integer
          nullable: true
        value:
          type: string
          minLength: 1
        misc:
          type: boolean
      required:
      - field
      - value
    FieldError:
      type: object
      properties:
        field:
          type: string
          description: Field name
          maxLength: 128
        message:
          type: string
          description: Error on the field
          maxLength: 128
      required:
      - field
      - message
    FieldFilter:
      type: object
      properties:
        name:
          type: string
          nullable: true
          description: The name of the field
        groups:
          type: array
          items:
            type: string
            nullable: true
            description: Group to which the field belongs
          nullable: true
      required:
      - name
    FieldFilterRequest:
      type: object
      properties:
        name:
          type: string
          nullable: true
          minLength: 1
          description: The name of the field
        groups:
          type: array
          items:
            type: string
            nullable: true
            minLength: 1
            description: Group to which the field belongs
          nullable: true
      required:
      - name
    FieldRule:
      oneOf:
      - $ref: '#/components/schemas/FieldRuleSerializerForrequiredTyped'
      - $ref: '#/components/schemas/FieldRuleSerializerForrequired_withTyped'
      - $ref: '#/components/schemas/FieldRuleSerializerForrequired_withoutTyped'
      - $ref: '#/components/schemas/FieldRuleSerializerForrequired_onTyped'
      - $ref: '#/components/schemas/FieldRuleSerializerForregexTyped'
      - $ref: '#/components/schemas/FieldRuleSerializerForis_trueTyped'
      - $ref: '#/components/schemas/FieldRuleSerializerForuniqueTyped'
      - $ref: '#/components/schemas/FieldRuleSerializerForunique_withTyped'
      - $ref: '#/components/schemas/FieldRuleSerializerForunique_onTyped'
      - $ref: '#/components/schemas/FieldRuleSerializerForisinTyped'
      - $ref: '#/components/schemas/FieldRuleSerializerFormax_lengthTyped'
      - $ref: '#/components/schemas/FieldRuleSerializerFormax_valueTyped'
      - $ref: '#/components/schemas/FieldRuleSerializerFormin_valueTyped'
      - $ref: '#/components/schemas/FieldRuleSerializerForsuperior_toTyped'
      - $ref: '#/components/schemas/FieldRuleSerializerForinferior_toTyped'
      - $ref: '#/components/schemas/FieldRuleSerializerForuneditableTyped'
      - $ref: '#/components/schemas/FieldRuleSerializerForequal_toTyped'
      - $ref: '#/components/schemas/FieldRuleSerializerFormin_dateTyped'
      - $ref: '#/components/schemas/FieldRuleSerializerFormax_dateTyped'
      - $ref: '#/components/schemas/FieldRuleSerializerForany_ofTyped'
      discriminator:
        propertyName: name
        mapping:
          required: '#/components/schemas/FieldRuleSerializerForrequiredTyped'
          required_with: '#/components/schemas/FieldRuleSerializerForrequired_withTyped'
          required_without: '#/components/schemas/FieldRuleSerializerForrequired_withoutTyped'
          required_on: '#/components/schemas/FieldRuleSerializerForrequired_onTyped'
          regex: '#/components/schemas/FieldRuleSerializerForregexTyped'
          is_true: '#/components/schemas/FieldRuleSerializerForis_trueTyped'
          unique: '#/components/schemas/FieldRuleSerializerForuniqueTyped'
          unique_with: '#/components/schemas/FieldRuleSerializerForunique_withTyped'
          unique_on: '#/components/schemas/FieldRuleSerializerForunique_onTyped'
          isin: '#/components/schemas/FieldRuleSerializerForisinTyped'
          max_length: '#/components/schemas/FieldRuleSerializerFormax_lengthTyped'
          max_value: '#/components/schemas/FieldRuleSerializerFormax_valueTyped'
          min_value: '#/components/schemas/FieldRuleSerializerFormin_valueTyped'
          superior_to: '#/components/schemas/FieldRuleSerializerForsuperior_toTyped'
          inferior_to: '#/components/schemas/FieldRuleSerializerForinferior_toTyped'
          uneditable: '#/components/schemas/FieldRuleSerializerForuneditableTyped'
          equal_to: '#/components/schemas/FieldRuleSerializerForequal_toTyped'
          min_date: '#/components/schemas/FieldRuleSerializerFormin_dateTyped'
          max_date: '#/components/schemas/FieldRuleSerializerFormax_dateTyped'
          any_of: '#/components/schemas/FieldRuleSerializerForany_ofTyped'
    FieldRuleRequest:
      oneOf:
      - $ref: '#/components/schemas/FieldRuleSerializerForrequiredTypedRequest'
      - $ref: '#/components/schemas/FieldRuleSerializerForrequired_withTypedRequest'
      - $ref: '#/components/schemas/FieldRuleSerializerForrequired_withoutTypedRequest'
      - $ref: '#/components/schemas/FieldRuleSerializerForrequired_onTypedRequest'
      - $ref: '#/components/schemas/FieldRuleSerializerForregexTypedRequest'
      - $ref: '#/components/schemas/FieldRuleSerializerForis_trueTypedRequest'
      - $ref: '#/components/schemas/FieldRuleSerializerForuniqueTypedRequest'
      - $ref: '#/components/schemas/FieldRuleSerializerForunique_withTypedRequest'
      - $ref: '#/components/schemas/FieldRuleSerializerForunique_onTypedRequest'
      - $ref: '#/components/schemas/FieldRuleSerializerForisinTypedRequest'
      - $ref: '#/components/schemas/FieldRuleSerializerFormax_lengthTypedRequest'
      - $ref: '#/components/schemas/FieldRuleSerializerFormax_valueTypedRequest'
      - $ref: '#/components/schemas/FieldRuleSerializerFormin_valueTypedRequest'
      - $ref: '#/components/schemas/FieldRuleSerializerForsuperior_toTypedRequest'
      - $ref: '#/components/schemas/FieldRuleSerializerForinferior_toTypedRequest'
      - $ref: '#/components/schemas/FieldRuleSerializerForuneditableTypedRequest'
      - $ref: '#/components/schemas/FieldRuleSerializerForequal_toTypedRequest'
      - $ref: '#/components/schemas/FieldRuleSerializerFormin_dateTypedRequest'
      - $ref: '#/components/schemas/FieldRuleSerializerFormax_dateTypedRequest'
      - $ref: '#/components/schemas/FieldRuleSerializerForany_ofTypedRequest'
      discriminator:
        propertyName: name
        mapping:
          required: '#/components/schemas/FieldRuleSerializerForrequiredTypedRequest'
          required_with: '#/components/schemas/FieldRuleSerializerForrequired_withTypedRequest'
          required_without: '#/components/schemas/FieldRuleSerializerForrequired_withoutTypedRequest'
          required_on: '#/components/schemas/FieldRuleSerializerForrequired_onTypedRequest'
          regex: '#/components/schemas/FieldRuleSerializerForregexTypedRequest'
          is_true: '#/components/schemas/FieldRuleSerializerForis_trueTypedRequest'
          unique: '#/components/schemas/FieldRuleSerializerForuniqueTypedRequest'
          unique_with: '#/components/schemas/FieldRuleSerializerForunique_withTypedRequest'
          unique_on: '#/components/schemas/FieldRuleSerializerForunique_onTypedRequest'
          isin: '#/components/schemas/FieldRuleSerializerForisinTypedRequest'
          max_length: '#/components/schemas/FieldRuleSerializerFormax_lengthTypedRequest'
          max_value: '#/components/schemas/FieldRuleSerializerFormax_valueTypedRequest'
          min_value: '#/components/schemas/FieldRuleSerializerFormin_valueTypedRequest'
          superior_to: '#/components/schemas/FieldRuleSerializerForsuperior_toTypedRequest'
          inferior_to: '#/components/schemas/FieldRuleSerializerForinferior_toTypedRequest'
          uneditable: '#/components/schemas/FieldRuleSerializerForuneditableTypedRequest'
          equal_to: '#/components/schemas/FieldRuleSerializerForequal_toTypedRequest'
          min_date: '#/components/schemas/FieldRuleSerializerFormin_dateTypedRequest'
          max_date: '#/components/schemas/FieldRuleSerializerFormax_dateTypedRequest'
          any_of: '#/components/schemas/FieldRuleSerializerForany_ofTypedRequest'
    FieldRuleRequestUntyped:
      type: object
      description: |-
        A polymorphic serializer, in which the subdata
        types are inferred from one of the keys in the data.
        The class API is designed to be similar to rest_polymorphic's serializer,
        so the drf_spectacular extension can be used for this serializer too. The main difference
        is that it is not meant to be a model serializer but to work on mappings/dicts.
      properties:
        name:
          type: string
          minLength: 1
      required:
      - name
    FieldRuleSerializerForany_of:
      type: object
      properties:
        negate:
          type: boolean
          default: false
          description: Whether to take the contrary of the rule
        group:
          type: string
          description: Group to which the rule belongs if it is a conditional rule
        error:
          type: string
          description: The error message shown when validation fails
        cases:
          type: array
          items:
            $ref: '#/components/schemas/RecursiveFieldRule'
          default: []
    FieldRuleSerializerForany_ofRequest:
      type: object
      properties:
        negate:
          type: boolean
          default: false
          description: Whether to take the contrary of the rule
        group:
          type: string
          minLength: 1
          description: Group to which the rule belongs if it is a conditional rule
        error:
          type: string
          minLength: 1
          description: The error message shown when validation fails
        cases:
          type: array
          items:
            $ref: '#/components/schemas/RecursiveFieldRuleRequest'
          default: []
    FieldRuleSerializerForany_ofTyped:
      allOf:
      - $ref: '#/components/schemas/FieldRuleUntyped'
      - $ref: '#/components/schemas/FieldRuleSerializerForany_of'
    FieldRuleSerializerForany_ofTypedRequest:
      allOf:
      - $ref: '#/components/schemas/FieldRuleRequestUntyped'
      - $ref: '#/components/schemas/FieldRuleSerializerForany_ofRequest'
    FieldRuleSerializerForequal_to:
      type: object
      properties:
        negate:
          type: boolean
          default: false
          description: Whether to take the contrary of the rule
        group:
          type: string
          description: Group to which the rule belongs if it is a conditional rule
        error:
          type: string
          description: The error message shown when validation fails
        column:
          type: string
      required:
      - column
    FieldRuleSerializerForequal_toRequest:
      type: object
      properties:
        negate:
          type: boolean
          default: false
          description: Whether to take the contrary of the rule
        group:
          type: string
          minLength: 1
          description: Group to which the rule belongs if it is a conditional rule
        error:
          type: string
          minLength: 1
          description: The error message shown when validation fails
        column:
          type: string
          minLength: 1
      required:
      - column
    FieldRuleSerializerForequal_toTyped:
      allOf:
      - $ref: '#/components/schemas/FieldRuleUntyped'
      - $ref: '#/components/schemas/FieldRuleSerializerForequal_to'
    FieldRuleSerializerForequal_toTypedRequest:
      allOf:
      - $ref: '#/components/schemas/FieldRuleRequestUntyped'
      - $ref: '#/components/schemas/FieldRuleSerializerForequal_toRequest'
    FieldRuleSerializerForinferior_to:
      type: object
      properties:
        negate:
          type: boolean
          default: false
          description: Whether to take the contrary of the rule
        group:
          type: string
          description: Group to which the rule belongs if it is a conditional rule
        error:
          type: string
          description: The error message shown when validation fails
        column:
          type: string
        strict:
          type: boolean
          default: true
      required:
      - column
    FieldRuleSerializerForinferior_toRequest:
      type: object
      properties:
        negate:
          type: boolean
          default: false
          description: Whether to take the contrary of the rule
        group:
          type: string
          minLength: 1
          description: Group to which the rule belongs if it is a conditional rule
        error:
          type: string
          minLength: 1
          description: The error message shown when validation fails
        column:
          type: string
          minLength: 1
        strict:
          type: boolean
          default: true
      required:
      - column
    FieldRuleSerializerForinferior_toTyped:
      allOf:
      - $ref: '#/components/schemas/FieldRuleUntyped'
      - $ref: '#/components/schemas/FieldRuleSerializerForinferior_to'
    FieldRuleSerializerForinferior_toTypedRequest:
      allOf:
      - $ref: '#/components/schemas/FieldRuleRequestUntyped'
      - $ref: '#/components/schemas/FieldRuleSerializerForinferior_toRequest'
    FieldRuleSerializerForis_true:
      type: object
      properties:
        negate:
          type: boolean
          default: false
          description: Whether to take the contrary of the rule
        group:
          type: string
          description: Group to which the rule belongs if it is a conditional rule
        error:
          type: string
          description: The error message shown when validation fails
    FieldRuleSerializerForis_trueRequest:
      type: object
      properties:
        negate:
          type: boolean
          default: false
          description: Whether to take the contrary of the rule
        group:
          type: string
          minLength: 1
          description: Group to which the rule belongs if it is a conditional rule
        error:
          type: string
          minLength: 1
          description: The error message shown when validation fails
    FieldRuleSerializerForis_trueTyped:
      allOf:
      - $ref: '#/components/schemas/FieldRuleUntyped'
      - $ref: '#/components/schemas/FieldRuleSerializerForis_true'
    FieldRuleSerializerForis_trueTypedRequest:
      allOf:
      - $ref: '#/components/schemas/FieldRuleRequestUntyped'
      - $ref: '#/components/schemas/FieldRuleSerializerForis_trueRequest'
    FieldRuleSerializerForisin:
      type: object
      properties:
        negate:
          type: boolean
          default: false
          description: Whether to take the contrary of the rule
        group:
          type: string
          description: Group to which the rule belongs if it is a conditional rule
        error:
          type: string
          description: The error message shown when validation fails
        values:
          type: array
          items:
            type: string
            nullable: true
          default: []
    FieldRuleSerializerForisinRequest:
      type: object
      properties:
        negate:
          type: boolean
          default: false
          description: Whether to take the contrary of the rule
        group:
          type: string
          minLength: 1
          description: Group to which the rule belongs if it is a conditional rule
        error:
          type: string
          minLength: 1
          description: The error message shown when validation fails
        values:
          type: array
          items:
            type: string
            nullable: true
          default: []
    FieldRuleSerializerForisinTyped:
      allOf:
      - $ref: '#/components/schemas/FieldRuleUntyped'
      - $ref: '#/components/schemas/FieldRuleSerializerForisin'
    FieldRuleSerializerForisinTypedRequest:
      allOf:
      - $ref: '#/components/schemas/FieldRuleRequestUntyped'
      - $ref: '#/components/schemas/FieldRuleSerializerForisinRequest'
    FieldRuleSerializerFormax_date:
      type: object
      properties:
        negate:
          type: boolean
          default: false
          description: Whether to take the contrary of the rule
        group:
          type: string
          description: Group to which the rule belongs if it is a conditional rule
        error:
          type: string
          description: The error message shown when validation fails
        max_date:
          type: string
      required:
      - max_date
    FieldRuleSerializerFormax_dateRequest:
      type: object
      properties:
        negate:
          type: boolean
          default: false
          description: Whether to take the contrary of the rule
        group:
          type: string
          minLength: 1
          description: Group to which the rule belongs if it is a conditional rule
        error:
          type: string
          minLength: 1
          description: The error message shown when validation fails
        max_date:
          type: string
          minLength: 1
      required:
      - max_date
    FieldRuleSerializerFormax_dateTyped:
      allOf:
      - $ref: '#/components/schemas/FieldRuleUntyped'
      - $ref: '#/components/schemas/FieldRuleSerializerFormax_date'
    FieldRuleSerializerFormax_dateTypedRequest:
      allOf:
      - $ref: '#/components/schemas/FieldRuleRequestUntyped'
      - $ref: '#/components/schemas/FieldRuleSerializerFormax_dateRequest'
    FieldRuleSerializerFormax_length:
      type: object
      properties:
        negate:
          type: boolean
          default: false
          description: Whether to take the contrary of the rule
        group:
          type: string
          description: Group to which the rule belongs if it is a conditional rule
        error:
          type: string
          description: The error message shown when validation fails
        threshold:
          type: number
          format: double
        strict:
          type: boolean
          default: true
    FieldRuleSerializerFormax_lengthRequest:
      type: object
      properties:
        negate:
          type: boolean
          default: false
          description: Whether to take the contrary of the rule
        group:
          type: string
          minLength: 1
          description: Group to which the rule belongs if it is a conditional rule
        error:
          type: string
          minLength: 1
          description: The error message shown when validation fails
        threshold:
          type: number
          format: double
        strict:
          type: boolean
          default: true
    FieldRuleSerializerFormax_lengthTyped:
      allOf:
      - $ref: '#/components/schemas/FieldRuleUntyped'
      - $ref: '#/components/schemas/FieldRuleSerializerFormax_length'
    FieldRuleSerializerFormax_lengthTypedRequest:
      allOf:
      - $ref: '#/components/schemas/FieldRuleRequestUntyped'
      - $ref: '#/components/schemas/FieldRuleSerializerFormax_lengthRequest'
    FieldRuleSerializerFormax_value:
      type: object
      properties:
        negate:
          type: boolean
          default: false
          description: Whether to take the contrary of the rule
        group:
          type: string
          description: Group to which the rule belongs if it is a conditional rule
        error:
          type: string
          description: The error message shown when validation fails
        threshold:
          type: number
          format: double
        strict:
          type: boolean
          default: true
    FieldRuleSerializerFormax_valueRequest:
      type: object
      properties:
        negate:
          type: boolean
          default: false
          description: Whether to take the contrary of the rule
        group:
          type: string
          minLength: 1
          description: Group to which the rule belongs if it is a conditional rule
        error:
          type: string
          minLength: 1
          description: The error message shown when validation fails
        threshold:
          type: number
          format: double
        strict:
          type: boolean
          default: true
    FieldRuleSerializerFormax_valueTyped:
      allOf:
      - $ref: '#/components/schemas/FieldRuleUntyped'
      - $ref: '#/components/schemas/FieldRuleSerializerFormax_value'
    FieldRuleSerializerFormax_valueTypedRequest:
      allOf:
      - $ref: '#/components/schemas/FieldRuleRequestUntyped'
      - $ref: '#/components/schemas/FieldRuleSerializerFormax_valueRequest'
    FieldRuleSerializerFormin_date:
      type: object
      properties:
        negate:
          type: boolean
          default: false
          description: Whether to take the contrary of the rule
        group:
          type: string
          description: Group to which the rule belongs if it is a conditional rule
        error:
          type: string
          description: The error message shown when validation fails
        min_date:
          type: string
      required:
      - min_date
    FieldRuleSerializerFormin_dateRequest:
      type: object
      properties:
        negate:
          type: boolean
          default: false
          description: Whether to take the contrary of the rule
        group:
          type: string
          minLength: 1
          description: Group to which the rule belongs if it is a conditional rule
        error:
          type: string
          minLength: 1
          description: The error message shown when validation fails
        min_date:
          type: string
          minLength: 1
      required:
      - min_date
    FieldRuleSerializerFormin_dateTyped:
      allOf:
      - $ref: '#/components/schemas/FieldRuleUntyped'
      - $ref: '#/components/schemas/FieldRuleSerializerFormin_date'
    FieldRuleSerializerFormin_dateTypedRequest:
      allOf:
      - $ref: '#/components/schemas/FieldRuleRequestUntyped'
      - $ref: '#/components/schemas/FieldRuleSerializerFormin_dateRequest'
    FieldRuleSerializerFormin_value:
      type: object
      properties:
        negate:
          type: boolean
          default: false
          description: Whether to take the contrary of the rule
        group:
          type: string
          description: Group to which the rule belongs if it is a conditional rule
        error:
          type: string
          description: The error message shown when validation fails
        threshold:
          type: number
          format: double
        strict:
          type: boolean
          default: true
    FieldRuleSerializerFormin_valueRequest:
      type: object
      properties:
        negate:
          type: boolean
          default: false
          description: Whether to take the contrary of the rule
        group:
          type: string
          minLength: 1
          description: Group to which the rule belongs if it is a conditional rule
        error:
          type: string
          minLength: 1
          description: The error message shown when validation fails
        threshold:
          type: number
          format: double
        strict:
          type: boolean
          default: true
    FieldRuleSerializerFormin_valueTyped:
      allOf:
      - $ref: '#/components/schemas/FieldRuleUntyped'
      - $ref: '#/components/schemas/FieldRuleSerializerFormin_value'
    FieldRuleSerializerFormin_valueTypedRequest:
      allOf:
      - $ref: '#/components/schemas/FieldRuleRequestUntyped'
      - $ref: '#/components/schemas/FieldRuleSerializerFormin_valueRequest'
    FieldRuleSerializerForregex:
      type: object
      properties:
        negate:
          type: boolean
          default: false
          description: Whether to take the contrary of the rule
        group:
          type: string
          description: Group to which the rule belongs if it is a conditional rule
        error:
          type: string
          description: The error message shown when validation fails
        pattern:
          type: string
      required:
      - pattern
    FieldRuleSerializerForregexRequest:
      type: object
      properties:
        negate:
          type: boolean
          default: false
          description: Whether to take the contrary of the rule
        group:
          type: string
          minLength: 1
          description: Group to which the rule belongs if it is a conditional rule
        error:
          type: string
          minLength: 1
          description: The error message shown when validation fails
        pattern:
          type: string
      required:
      - pattern
    FieldRuleSerializerForregexTyped:
      allOf:
      - $ref: '#/components/schemas/FieldRuleUntyped'
      - $ref: '#/components/schemas/FieldRuleSerializerForregex'
    FieldRuleSerializerForregexTypedRequest:
      allOf:
      - $ref: '#/components/schemas/FieldRuleRequestUntyped'
      - $ref: '#/components/schemas/FieldRuleSerializerForregexRequest'
    FieldRuleSerializerForrequired:
      type: object
      properties:
        negate:
          type: boolean
          default: false
          description: Whether to take the contrary of the rule
        group:
          type: string
          description: Group to which the rule belongs if it is a conditional rule
        error:
          type: string
          description: The error message shown when validation fails
    FieldRuleSerializerForrequiredRequest:
      type: object
      properties:
        negate:
          type: boolean
          default: false
          description: Whether to take the contrary of the rule
        group:
          type: string
          minLength: 1
          description: Group to which the rule belongs if it is a conditional rule
        error:
          type: string
          minLength: 1
          description: The error message shown when validation fails
    FieldRuleSerializerForrequiredTyped:
      allOf:
      - $ref: '#/components/schemas/FieldRuleUntyped'
      - $ref: '#/components/schemas/FieldRuleSerializerForrequired'
    FieldRuleSerializerForrequiredTypedRequest:
      allOf:
      - $ref: '#/components/schemas/FieldRuleRequestUntyped'
      - $ref: '#/components/schemas/FieldRuleSerializerForrequiredRequest'
    FieldRuleSerializerForrequired_on:
      type: object
      properties:
        negate:
          type: boolean
          default: false
          description: Whether to take the contrary of the rule
        group:
          type: string
          description: Group to which the rule belongs if it is a conditional rule
        error:
          type: string
          description: The error message shown when validation fails
        column:
          type: string
        pattern:
          type: string
      required:
      - column
      - pattern
    FieldRuleSerializerForrequired_onRequest:
      type: object
      properties:
        negate:
          type: boolean
          default: false
          description: Whether to take the contrary of the rule
        group:
          type: string
          minLength: 1
          description: Group to which the rule belongs if it is a conditional rule
        error:
          type: string
          minLength: 1
          description: The error message shown when validation fails
        column:
          type: string
          minLength: 1
        pattern:
          type: string
      required:
      - column
      - pattern
    FieldRuleSerializerForrequired_onTyped:
      allOf:
      - $ref: '#/components/schemas/FieldRuleUntyped'
      - $ref: '#/components/schemas/FieldRuleSerializerForrequired_on'
    FieldRuleSerializerForrequired_onTypedRequest:
      allOf:
      - $ref: '#/components/schemas/FieldRuleRequestUntyped'
      - $ref: '#/components/schemas/FieldRuleSerializerForrequired_onRequest'
    FieldRuleSerializerForrequired_with:
      type: object
      properties:
        negate:
          type: boolean
          default: false
          description: Whether to take the contrary of the rule
        group:
          type: string
          description: Group to which the rule belongs if it is a conditional rule
        error:
          type: string
          description: The error message shown when validation fails
        columns:
          type: array
          items: {}
        which:
          allOf:
          - $ref: '#/components/schemas/Which459Enum'
          default: all
    FieldRuleSerializerForrequired_withRequest:
      type: object
      properties:
        negate:
          type: boolean
          default: false
          description: Whether to take the contrary of the rule
        group:
          type: string
          minLength: 1
          description: Group to which the rule belongs if it is a conditional rule
        error:
          type: string
          minLength: 1
          description: The error message shown when validation fails
        columns:
          type: array
          items: {}
        which:
          allOf:
          - $ref: '#/components/schemas/Which459Enum'
          default: all
    FieldRuleSerializerForrequired_withTyped:
      allOf:
      - $ref: '#/components/schemas/FieldRuleUntyped'
      - $ref: '#/components/schemas/FieldRuleSerializerForrequired_with'
    FieldRuleSerializerForrequired_withTypedRequest:
      allOf:
      - $ref: '#/components/schemas/FieldRuleRequestUntyped'
      - $ref: '#/components/schemas/FieldRuleSerializerForrequired_withRequest'
    FieldRuleSerializerForrequired_without:
      type: object
      properties:
        negate:
          type: boolean
          default: false
          description: Whether to take the contrary of the rule
        group:
          type: string
          description: Group to which the rule belongs if it is a conditional rule
        error:
          type: string
          description: The error message shown when validation fails
        columns:
          type: array
          items: {}
        which:
          allOf:
          - $ref: '#/components/schemas/Which459Enum'
          default: all
    FieldRuleSerializerForrequired_withoutRequest:
      type: object
      properties:
        negate:
          type: boolean
          default: false
          description: Whether to take the contrary of the rule
        group:
          type: string
          minLength: 1
          description: Group to which the rule belongs if it is a conditional rule
        error:
          type: string
          minLength: 1
          description: The error message shown when validation fails
        columns:
          type: array
          items: {}
        which:
          allOf:
          - $ref: '#/components/schemas/Which459Enum'
          default: all
    FieldRuleSerializerForrequired_withoutTyped:
      allOf:
      - $ref: '#/components/schemas/FieldRuleUntyped'
      - $ref: '#/components/schemas/FieldRuleSerializerForrequired_without'
    FieldRuleSerializerForrequired_withoutTypedRequest:
      allOf:
      - $ref: '#/components/schemas/FieldRuleRequestUntyped'
      - $ref: '#/components/schemas/FieldRuleSerializerForrequired_withoutRequest'
    FieldRuleSerializerForsuperior_to:
      type: object
      properties:
        negate:
          type: boolean
          default: false
          description: Whether to take the contrary of the rule
        group:
          type: string
          description: Group to which the rule belongs if it is a conditional rule
        error:
          type: string
          description: The error message shown when validation fails
        column:
          type: string
        strict:
          type: boolean
          default: true
      required:
      - column
    FieldRuleSerializerForsuperior_toRequest:
      type: object
      properties:
        negate:
          type: boolean
          default: false
          description: Whether to take the contrary of the rule
        group:
          type: string
          minLength: 1
          description: Group to which the rule belongs if it is a conditional rule
        error:
          type: string
          minLength: 1
          description: The error message shown when validation fails
        column:
          type: string
          minLength: 1
        strict:
          type: boolean
          default: true
      required:
      - column
    FieldRuleSerializerForsuperior_toTyped:
      allOf:
      - $ref: '#/components/schemas/FieldRuleUntyped'
      - $ref: '#/components/schemas/FieldRuleSerializerForsuperior_to'
    FieldRuleSerializerForsuperior_toTypedRequest:
      allOf:
      - $ref: '#/components/schemas/FieldRuleRequestUntyped'
      - $ref: '#/components/schemas/FieldRuleSerializerForsuperior_toRequest'
    FieldRuleSerializerForuneditable:
      type: object
      properties:
        negate:
          type: boolean
          default: false
          description: Whether to take the contrary of the rule
        group:
          type: string
          description: Group to which the rule belongs if it is a conditional rule
        error:
          type: string
          description: The error message shown when validation fails
    FieldRuleSerializerForuneditableRequest:
      type: object
      properties:
        negate:
          type: boolean
          default: false
          description: Whether to take the contrary of the rule
        group:
          type: string
          minLength: 1
          description: Group to which the rule belongs if it is a conditional rule
        error:
          type: string
          minLength: 1
          description: The error message shown when validation fails
    FieldRuleSerializerForuneditableTyped:
      allOf:
      - $ref: '#/components/schemas/FieldRuleUntyped'
      - $ref: '#/components/schemas/FieldRuleSerializerForuneditable'
    FieldRuleSerializerForuneditableTypedRequest:
      allOf:
      - $ref: '#/components/schemas/FieldRuleRequestUntyped'
      - $ref: '#/components/schemas/FieldRuleSerializerForuneditableRequest'
    FieldRuleSerializerForunique:
      type: object
      properties:
        negate:
          type: boolean
          default: false
          description: Whether to take the contrary of the rule
        group:
          type: string
          description: Group to which the rule belongs if it is a conditional rule
        error:
          type: string
          description: The error message shown when validation fails
    FieldRuleSerializerForuniqueRequest:
      type: object
      properties:
        negate:
          type: boolean
          default: false
          description: Whether to take the contrary of the rule
        group:
          type: string
          minLength: 1
          description: Group to which the rule belongs if it is a conditional rule
        error:
          type: string
          minLength: 1
          description: The error message shown when validation fails
    FieldRuleSerializerForuniqueTyped:
      allOf:
      - $ref: '#/components/schemas/FieldRuleUntyped'
      - $ref: '#/components/schemas/FieldRuleSerializerForunique'
    FieldRuleSerializerForuniqueTypedRequest:
      allOf:
      - $ref: '#/components/schemas/FieldRuleRequestUntyped'
      - $ref: '#/components/schemas/FieldRuleSerializerForuniqueRequest'
    FieldRuleSerializerForunique_on:
      type: object
      properties:
        negate:
          type: boolean
          default: false
          description: Whether to take the contrary of the rule
        group:
          type: string
          description: Group to which the rule belongs if it is a conditional rule
        error:
          type: string
          description: The error message shown when validation fails
        columns:
          type: array
          items: {}
    FieldRuleSerializerForunique_onRequest:
      type: object
      properties:
        negate:
          type: boolean
          default: false
          description: Whether to take the contrary of the rule
        group:
          type: string
          minLength: 1
          description: Group to which the rule belongs if it is a conditional rule
        error:
          type: string
          minLength: 1
          description: The error message shown when validation fails
        columns:
          type: array
          items: {}
    FieldRuleSerializerForunique_onTyped:
      allOf:
      - $ref: '#/components/schemas/FieldRuleUntyped'
      - $ref: '#/components/schemas/FieldRuleSerializerForunique_on'
    FieldRuleSerializerForunique_onTypedRequest:
      allOf:
      - $ref: '#/components/schemas/FieldRuleRequestUntyped'
      - $ref: '#/components/schemas/FieldRuleSerializerForunique_onRequest'
    FieldRuleSerializerForunique_with:
      type: object
      properties:
        negate:
          type: boolean
          default: false
          description: Whether to take the contrary of the rule
        group:
          type: string
          description: Group to which the rule belongs if it is a conditional rule
        error:
          type: string
          description: The error message shown when validation fails
        column:
          type: string
      required:
      - column
    FieldRuleSerializerForunique_withRequest:
      type: object
      properties:
        negate:
          type: boolean
          default: false
          description: Whether to take the contrary of the rule
        group:
          type: string
          minLength: 1
          description: Group to which the rule belongs if it is a conditional rule
        error:
          type: string
          minLength: 1
          description: The error message shown when validation fails
        column:
          type: string
          minLength: 1
      required:
      - column
    FieldRuleSerializerForunique_withTyped:
      allOf:
      - $ref: '#/components/schemas/FieldRuleUntyped'
      - $ref: '#/components/schemas/FieldRuleSerializerForunique_with'
    FieldRuleSerializerForunique_withTypedRequest:
      allOf:
      - $ref: '#/components/schemas/FieldRuleRequestUntyped'
      - $ref: '#/components/schemas/FieldRuleSerializerForunique_withRequest'
    FieldRuleUntyped:
      type: object
      description: |-
        A polymorphic serializer, in which the subdata
        types are inferred from one of the keys in the data.
        The class API is designed to be similar to rest_polymorphic's serializer,
        so the drf_spectacular extension can be used for this serializer too. The main difference
        is that it is not meant to be a model serializer but to work on mappings/dicts.
      properties:
        name:
          type: string
      required:
      - name
    File:
      type: object
      properties:
        id:
          type: integer
          readOnly: true
        name:
          type: string
          readOnly: true
        organization:
          type: integer
          readOnly: true
        uploader:
          type: integer
          readOnly: true
          nullable: true
        uploaded_through:
          type: integer
          readOnly: true
          nullable: true
        upload_date:
          type: string
          format: date-time
          readOnly: true
        columns:
          type: array
          items:
            type: string
            maxLength: 256
          readOnly: true
          nullable: true
        size:
          type: integer
          readOnly: true
          nullable: true
        skiprows:
          type: integer
          minimum: 0
          description: Number of rows to force skip from input file
        status:
          allOf:
          - $ref: '#/components/schemas/FileStatusEnum'
          readOnly: true
        parsing_error:
          type: object
          additionalProperties: {}
          readOnly: true
      required:
      - columns
      - id
      - name
      - organization
      - parsing_error
      - size
      - status
      - upload_date
      - uploaded_through
      - uploader
    FileRequest:
      type: object
      properties:
        input_format:
          type: integer
          writeOnly: true
          description: for excel file, force the use of a specific format
        encoding:
          type: string
          writeOnly: true
          minLength: 1
          description: for csv and xml files, force an encoding
        separator:
          type: string
          writeOnly: true
          minLength: 1
          description: for csv files, force a separator
          maxLength: 1
        root_paths:
          type: array
          items:
            type: array
            items:
              type: string
              minLength: 1
              description: Valid XML tag or * to match any tag
          writeOnly: true
          description: for xml files, list of tag paths to find product listings
        name_mode:
          allOf:
          - $ref: '#/components/schemas/NameModeEnum'
          writeOnly: true
          description: |-
            How to handle column names, default: join

            * `join` - join
            * `last` - last
        name_separator:
          type: string
          writeOnly: true
          minLength: 1
          description: 'Separator to use between tags in column names, default: /'
          maxLength: 5
        name_with_attributes:
          type: boolean
          writeOnly: true
          description: 'Whether to include attributes in column names, default: False'
        attributes_template:
          type: string
          writeOnly: true
          minLength: 1
          description: 'Template to use for attributes in column names, default: _{name}:{value}'
        skiprows:
          type: integer
          minimum: 0
          description: Number of rows to force skip from input file
    FileStatusEnum:
      enum:
      - ready
      - parsing
      - error
      type: string
      description: |-
        * `ready` - File is ready for use in a job
        * `parsing` - Currently parsing file content
        * `error` - There was an error during file parsing
    FileUploadJSONRequest:
      type: object
      properties:
        input_format:
          type: integer
          writeOnly: true
          description: for excel file, force the use of a specific format
        encoding:
          type: string
          writeOnly: true
          minLength: 1
          description: for csv and xml files, force an encoding
        separator:
          type: string
          writeOnly: true
          minLength: 1
          description: for csv files, force a separator
          maxLength: 1
        root_paths:
          type: array
          items:
            type: array
            items:
              type: string
              minLength: 1
              description: Valid XML tag or * to match any tag
          writeOnly: true
          description: for xml files, list of tag paths to find product listings
        name_mode:
          allOf:
          - $ref: '#/components/schemas/NameModeEnum'
          writeOnly: true
          description: |-
            How to handle column names, default: join

            * `join` - join
            * `last` - last
        name_separator:
          type: string
          writeOnly: true
          minLength: 1
          description: 'Separator to use between tags in column names, default: /'
          maxLength: 5
        name_with_attributes:
          type: boolean
          writeOnly: true
          description: 'Whether to include attributes in column names, default: False'
        attributes_template:
          type: string
          writeOnly: true
          minLength: 1
          description: 'Template to use for attributes in column names, default: _{name}:{value}'
        skiprows:
          type: integer
          minimum: 0
          description: Number of rows to force skip from input file
        data:
          type: array
          items:
            type: object
            additionalProperties:
              type: string
          writeOnly: true
          description: 'A list of products for JSON requests. Each product is an object
            with attribute names as keys and attribute values as values. Values can
            be of any atom type: string, float, or null.'
      required:
      - data
    FileUploadMultipartRequest:
      type: object
      properties:
        input_format:
          type: integer
          writeOnly: true
          description: for excel file, force the use of a specific format
        encoding:
          type: string
          writeOnly: true
          minLength: 1
          description: for csv and xml files, force an encoding
        separator:
          type: string
          writeOnly: true
          minLength: 1
          description: for csv files, force a separator
          maxLength: 1
        root_paths:
          type: array
          items:
            type: array
            items:
              type: string
              minLength: 1
              description: Valid XML tag or * to match any tag
          writeOnly: true
          description: for xml files, list of tag paths to find product listings
        name_mode:
          allOf:
          - $ref: '#/components/schemas/NameModeEnum'
          writeOnly: true
          description: |-
            How to handle column names, default: join

            * `join` - join
            * `last` - last
        name_separator:
          type: string
          writeOnly: true
          minLength: 1
          description: 'Separator to use between tags in column names, default: /'
          maxLength: 5
        name_with_attributes:
          type: boolean
          writeOnly: true
          description: 'Whether to include attributes in column names, default: False'
        attributes_template:
          type: string
          writeOnly: true
          minLength: 1
          description: 'Template to use for attributes in column names, default: _{name}:{value}'
        skiprows:
          type: integer
          minimum: 0
          description: Number of rows to force skip from input file
        file:
          type: string
          format: binary
          writeOnly: true
          description: Binary file data for multipart/form-data requests. Supported
            formats include CSV, Excel, and XML files.
      required:
      - file
    FilterModeEnum:
      enum:
      - and
      - or
      type: string
      description: |-
        * `and` - And
        * `or` - Or
    FilterRequest:
      type: object
      properties:
        field:
          type: string
          nullable: true
          minLength: 1
        operator:
          allOf:
          - $ref: '#/components/schemas/OperatorEnum'
          default: search
          description: |-
            Select the operation of filter to apply

            * `isin` - Check if value in list
            * `search` - Check if value contains search
        value: {}
      required:
      - field
      - value
    FlagsEnum:
      enum:
      - ascii
      - multiline
      - ignorecase
      - dotall
      type: string
      description: |-
        * `ascii` - ascii
        * `multiline` - multiline
        * `ignorecase` - ignorecase
        * `dotall` - dotall
    FormatEnum:
      enum:
      - excel
      - csv
      type: string
      description: |-
        * `excel` - Excel
        * `csv` - CSV
    Group:
      type: object
      properties:
        name:
          type: string
          description: The name of the field
        conditions:
          type: array
          items:
            $ref: '#/components/schemas/GroupCondition'
          default: []
        label:
          type: object
          additionalProperties:
            type: string
          default: {}
          description: The friendly name of the field, by locale
      required:
      - name
    GroupCondition:
      oneOf:
      - $ref: '#/components/schemas/GroupConditionSerializerForrequiredTyped'
      - $ref: '#/components/schemas/GroupConditionSerializerForrequired_withTyped'
      - $ref: '#/components/schemas/GroupConditionSerializerForrequired_withoutTyped'
      - $ref: '#/components/schemas/GroupConditionSerializerForrequired_onTyped'
      - $ref: '#/components/schemas/GroupConditionSerializerForregexTyped'
      - $ref: '#/components/schemas/GroupConditionSerializerForis_trueTyped'
      - $ref: '#/components/schemas/GroupConditionSerializerForuniqueTyped'
      - $ref: '#/components/schemas/GroupConditionSerializerForunique_withTyped'
      - $ref: '#/components/schemas/GroupConditionSerializerForunique_onTyped'
      - $ref: '#/components/schemas/GroupConditionSerializerForisinTyped'
      - $ref: '#/components/schemas/GroupConditionSerializerFormax_lengthTyped'
      - $ref: '#/components/schemas/GroupConditionSerializerFormax_valueTyped'
      - $ref: '#/components/schemas/GroupConditionSerializerFormin_valueTyped'
      - $ref: '#/components/schemas/GroupConditionSerializerForsuperior_toTyped'
      - $ref: '#/components/schemas/GroupConditionSerializerForinferior_toTyped'
      - $ref: '#/components/schemas/GroupConditionSerializerForuneditableTyped'
      - $ref: '#/components/schemas/GroupConditionSerializerForequal_toTyped'
      - $ref: '#/components/schemas/GroupConditionSerializerFormin_dateTyped'
      - $ref: '#/components/schemas/GroupConditionSerializerFormax_dateTyped'
      - $ref: '#/components/schemas/GroupConditionSerializerForany_ofTyped'
      discriminator:
        propertyName: name
        mapping:
          required: '#/components/schemas/GroupConditionSerializerForrequiredTyped'
          required_with: '#/components/schemas/GroupConditionSerializerForrequired_withTyped'
          required_without: '#/components/schemas/GroupConditionSerializerForrequired_withoutTyped'
          required_on: '#/components/schemas/GroupConditionSerializerForrequired_onTyped'
          regex: '#/components/schemas/GroupConditionSerializerForregexTyped'
          is_true: '#/components/schemas/GroupConditionSerializerForis_trueTyped'
          unique: '#/components/schemas/GroupConditionSerializerForuniqueTyped'
          unique_with: '#/components/schemas/GroupConditionSerializerForunique_withTyped'
          unique_on: '#/components/schemas/GroupConditionSerializerForunique_onTyped'
          isin: '#/components/schemas/GroupConditionSerializerForisinTyped'
          max_length: '#/components/schemas/GroupConditionSerializerFormax_lengthTyped'
          max_value: '#/components/schemas/GroupConditionSerializerFormax_valueTyped'
          min_value: '#/components/schemas/GroupConditionSerializerFormin_valueTyped'
          superior_to: '#/components/schemas/GroupConditionSerializerForsuperior_toTyped'
          inferior_to: '#/components/schemas/GroupConditionSerializerForinferior_toTyped'
          uneditable: '#/components/schemas/GroupConditionSerializerForuneditableTyped'
          equal_to: '#/components/schemas/GroupConditionSerializerForequal_toTyped'
          min_date: '#/components/schemas/GroupConditionSerializerFormin_dateTyped'
          max_date: '#/components/schemas/GroupConditionSerializerFormax_dateTyped'
          any_of: '#/components/schemas/GroupConditionSerializerForany_ofTyped'
    GroupConditionRequest:
      oneOf:
      - $ref: '#/components/schemas/GroupConditionSerializerForrequiredTypedRequest'
      - $ref: '#/components/schemas/GroupConditionSerializerForrequired_withTypedRequest'
      - $ref: '#/components/schemas/GroupConditionSerializerForrequired_withoutTypedRequest'
      - $ref: '#/components/schemas/GroupConditionSerializerForrequired_onTypedRequest'
      - $ref: '#/components/schemas/GroupConditionSerializerForregexTypedRequest'
      - $ref: '#/components/schemas/GroupConditionSerializerForis_trueTypedRequest'
      - $ref: '#/components/schemas/GroupConditionSerializerForuniqueTypedRequest'
      - $ref: '#/components/schemas/GroupConditionSerializerForunique_withTypedRequest'
      - $ref: '#/components/schemas/GroupConditionSerializerForunique_onTypedRequest'
      - $ref: '#/components/schemas/GroupConditionSerializerForisinTypedRequest'
      - $ref: '#/components/schemas/GroupConditionSerializerFormax_lengthTypedRequest'
      - $ref: '#/components/schemas/GroupConditionSerializerFormax_valueTypedRequest'
      - $ref: '#/components/schemas/GroupConditionSerializerFormin_valueTypedRequest'
      - $ref: '#/components/schemas/GroupConditionSerializerForsuperior_toTypedRequest'
      - $ref: '#/components/schemas/GroupConditionSerializerForinferior_toTypedRequest'
      - $ref: '#/components/schemas/GroupConditionSerializerForuneditableTypedRequest'
      - $ref: '#/components/schemas/GroupConditionSerializerForequal_toTypedRequest'
      - $ref: '#/components/schemas/GroupConditionSerializerFormin_dateTypedRequest'
      - $ref: '#/components/schemas/GroupConditionSerializerFormax_dateTypedRequest'
      - $ref: '#/components/schemas/GroupConditionSerializerForany_ofTypedRequest'
      discriminator:
        propertyName: name
        mapping:
          required: '#/components/schemas/GroupConditionSerializerForrequiredTypedRequest'
          required_with: '#/components/schemas/GroupConditionSerializerForrequired_withTypedRequest'
          required_without: '#/components/schemas/GroupConditionSerializerForrequired_withoutTypedRequest'
          required_on: '#/components/schemas/GroupConditionSerializerForrequired_onTypedRequest'
          regex: '#/components/schemas/GroupConditionSerializerForregexTypedRequest'
          is_true: '#/components/schemas/GroupConditionSerializerForis_trueTypedRequest'
          unique: '#/components/schemas/GroupConditionSerializerForuniqueTypedRequest'
          unique_with: '#/components/schemas/GroupConditionSerializerForunique_withTypedRequest'
          unique_on: '#/components/schemas/GroupConditionSerializerForunique_onTypedRequest'
          isin: '#/components/schemas/GroupConditionSerializerForisinTypedRequest'
          max_length: '#/components/schemas/GroupConditionSerializerFormax_lengthTypedRequest'
          max_value: '#/components/schemas/GroupConditionSerializerFormax_valueTypedRequest'
          min_value: '#/components/schemas/GroupConditionSerializerFormin_valueTypedRequest'
          superior_to: '#/components/schemas/GroupConditionSerializerForsuperior_toTypedRequest'
          inferior_to: '#/components/schemas/GroupConditionSerializerForinferior_toTypedRequest'
          uneditable: '#/components/schemas/GroupConditionSerializerForuneditableTypedRequest'
          equal_to: '#/components/schemas/GroupConditionSerializerForequal_toTypedRequest'
          min_date: '#/components/schemas/GroupConditionSerializerFormin_dateTypedRequest'
          max_date: '#/components/schemas/GroupConditionSerializerFormax_dateTypedRequest'
          any_of: '#/components/schemas/GroupConditionSerializerForany_ofTypedRequest'
    GroupConditionRequestUntyped:
      type: object
      description: |-
        A polymorphic serializer, in which the subdata
        types are inferred from one of the keys in the data.
        The class API is designed to be similar to rest_polymorphic's serializer,
        so the drf_spectacular extension can be used for this serializer too. The main difference
        is that it is not meant to be a model serializer but to work on mappings/dicts.
      properties:
        name:
          type: string
          minLength: 1
      required:
      - name
    GroupConditionSerializerForany_of:
      type: object
      properties:
        negate:
          type: boolean
          default: false
          description: Whether to take the contrary of the rule
        group:
          type: string
          description: Group to which the rule belongs if it is a conditional rule
        field:
          type: string
        cases:
          type: array
          items:
            $ref: '#/components/schemas/NestedGroupConditionCase'
          default: []
      required:
      - field
    GroupConditionSerializerForany_ofRequest:
      type: object
      properties:
        negate:
          type: boolean
          default: false
          description: Whether to take the contrary of the rule
        group:
          type: string
          minLength: 1
          description: Group to which the rule belongs if it is a conditional rule
        field:
          type: string
          minLength: 1
        cases:
          type: array
          items:
            $ref: '#/components/schemas/NestedGroupConditionCaseRequest'
          default: []
      required:
      - field
    GroupConditionSerializerForany_ofTyped:
      allOf:
      - $ref: '#/components/schemas/GroupConditionUntyped'
      - $ref: '#/components/schemas/GroupConditionSerializerForany_of'
    GroupConditionSerializerForany_ofTypedRequest:
      allOf:
      - $ref: '#/components/schemas/GroupConditionRequestUntyped'
      - $ref: '#/components/schemas/GroupConditionSerializerForany_ofRequest'
    GroupConditionSerializerForequal_to:
      type: object
      properties:
        negate:
          type: boolean
          default: false
          description: Whether to take the contrary of the rule
        group:
          type: string
          description: Group to which the rule belongs if it is a conditional rule
        field:
          type: string
        column:
          type: string
      required:
      - column
      - field
    GroupConditionSerializerForequal_toRequest:
      type: object
      properties:
        negate:
          type: boolean
          default: false
          description: Whether to take the contrary of the rule
        group:
          type: string
          minLength: 1
          description: Group to which the rule belongs if it is a conditional rule
        field:
          type: string
          minLength: 1
        column:
          type: string
          minLength: 1
      required:
      - column
      - field
    GroupConditionSerializerForequal_toTyped:
      allOf:
      - $ref: '#/components/schemas/GroupConditionUntyped'
      - $ref: '#/components/schemas/GroupConditionSerializerForequal_to'
    GroupConditionSerializerForequal_toTypedRequest:
      allOf:
      - $ref: '#/components/schemas/GroupConditionRequestUntyped'
      - $ref: '#/components/schemas/GroupConditionSerializerForequal_toRequest'
    GroupConditionSerializerForinferior_to:
      type: object
      properties:
        negate:
          type: boolean
          default: false
          description: Whether to take the contrary of the rule
        group:
          type: string
          description: Group to which the rule belongs if it is a conditional rule
        field:
          type: string
        column:
          type: string
        strict:
          type: boolean
          default: true
      required:
      - column
      - field
    GroupConditionSerializerForinferior_toRequest:
      type: object
      properties:
        negate:
          type: boolean
          default: false
          description: Whether to take the contrary of the rule
        group:
          type: string
          minLength: 1
          description: Group to which the rule belongs if it is a conditional rule
        field:
          type: string
          minLength: 1
        column:
          type: string
          minLength: 1
        strict:
          type: boolean
          default: true
      required:
      - column
      - field
    GroupConditionSerializerForinferior_toTyped:
      allOf:
      - $ref: '#/components/schemas/GroupConditionUntyped'
      - $ref: '#/components/schemas/GroupConditionSerializerForinferior_to'
    GroupConditionSerializerForinferior_toTypedRequest:
      allOf:
      - $ref: '#/components/schemas/GroupConditionRequestUntyped'
      - $ref: '#/components/schemas/GroupConditionSerializerForinferior_toRequest'
    GroupConditionSerializerForis_true:
      type: object
      properties:
        negate:
          type: boolean
          default: false
          description: Whether to take the contrary of the rule
        group:
          type: string
          description: Group to which the rule belongs if it is a conditional rule
        field:
          type: string
      required:
      - field
    GroupConditionSerializerForis_trueRequest:
      type: object
      properties:
        negate:
          type: boolean
          default: false
          description: Whether to take the contrary of the rule
        group:
          type: string
          minLength: 1
          description: Group to which the rule belongs if it is a conditional rule
        field:
          type: string
          minLength: 1
      required:
      - field
    GroupConditionSerializerForis_trueTyped:
      allOf:
      - $ref: '#/components/schemas/GroupConditionUntyped'
      - $ref: '#/components/schemas/GroupConditionSerializerForis_true'
    GroupConditionSerializerForis_trueTypedRequest:
      allOf:
      - $ref: '#/components/schemas/GroupConditionRequestUntyped'
      - $ref: '#/components/schemas/GroupConditionSerializerForis_trueRequest'
    GroupConditionSerializerForisin:
      type: object
      properties:
        negate:
          type: boolean
          default: false
          description: Whether to take the contrary of the rule
        group:
          type: string
          description: Group to which the rule belongs if it is a conditional rule
        field:
          type: string
        values:
          type: array
          items:
            type: string
            nullable: true
          default: []
      required:
      - field
    GroupConditionSerializerForisinRequest:
      type: object
      properties:
        negate:
          type: boolean
          default: false
          description: Whether to take the contrary of the rule
        group:
          type: string
          minLength: 1
          description: Group to which the rule belongs if it is a conditional rule
        field:
          type: string
          minLength: 1
        values:
          type: array
          items:
            type: string
            nullable: true
          default: []
      required:
      - field
    GroupConditionSerializerForisinTyped:
      allOf:
      - $ref: '#/components/schemas/GroupConditionUntyped'
      - $ref: '#/components/schemas/GroupConditionSerializerForisin'
    GroupConditionSerializerForisinTypedRequest:
      allOf:
      - $ref: '#/components/schemas/GroupConditionRequestUntyped'
      - $ref: '#/components/schemas/GroupConditionSerializerForisinRequest'
    GroupConditionSerializerFormax_date:
      type: object
      properties:
        negate:
          type: boolean
          default: false
          description: Whether to take the contrary of the rule
        group:
          type: string
          description: Group to which the rule belongs if it is a conditional rule
        field:
          type: string
        max_date:
          type: string
      required:
      - field
      - max_date
    GroupConditionSerializerFormax_dateRequest:
      type: object
      properties:
        negate:
          type: boolean
          default: false
          description: Whether to take the contrary of the rule
        group:
          type: string
          minLength: 1
          description: Group to which the rule belongs if it is a conditional rule
        field:
          type: string
          minLength: 1
        max_date:
          type: string
          minLength: 1
      required:
      - field
      - max_date
    GroupConditionSerializerFormax_dateTyped:
      allOf:
      - $ref: '#/components/schemas/GroupConditionUntyped'
      - $ref: '#/components/schemas/GroupConditionSerializerFormax_date'
    GroupConditionSerializerFormax_dateTypedRequest:
      allOf:
      - $ref: '#/components/schemas/GroupConditionRequestUntyped'
      - $ref: '#/components/schemas/GroupConditionSerializerFormax_dateRequest'
    GroupConditionSerializerFormax_length:
      type: object
      properties:
        negate:
          type: boolean
          default: false
          description: Whether to take the contrary of the rule
        group:
          type: string
          description: Group to which the rule belongs if it is a conditional rule
        field:
          type: string
        threshold:
          type: number
          format: double
        strict:
          type: boolean
          default: true
      required:
      - field
    GroupConditionSerializerFormax_lengthRequest:
      type: object
      properties:
        negate:
          type: boolean
          default: false
          description: Whether to take the contrary of the rule
        group:
          type: string
          minLength: 1
          description: Group to which the rule belongs if it is a conditional rule
        field:
          type: string
          minLength: 1
        threshold:
          type: number
          format: double
        strict:
          type: boolean
          default: true
      required:
      - field
    GroupConditionSerializerFormax_lengthTyped:
      allOf:
      - $ref: '#/components/schemas/GroupConditionUntyped'
      - $ref: '#/components/schemas/GroupConditionSerializerFormax_length'
    GroupConditionSerializerFormax_lengthTypedRequest:
      allOf:
      - $ref: '#/components/schemas/GroupConditionRequestUntyped'
      - $ref: '#/components/schemas/GroupConditionSerializerFormax_lengthRequest'
    GroupConditionSerializerFormax_value:
      type: object
      properties:
        negate:
          type: boolean
          default: false
          description: Whether to take the contrary of the rule
        group:
          type: string
          description: Group to which the rule belongs if it is a conditional rule
        field:
          type: string
        threshold:
          type: number
          format: double
        strict:
          type: boolean
          default: true
      required:
      - field
    GroupConditionSerializerFormax_valueRequest:
      type: object
      properties:
        negate:
          type: boolean
          default: false
          description: Whether to take the contrary of the rule
        group:
          type: string
          minLength: 1
          description: Group to which the rule belongs if it is a conditional rule
        field:
          type: string
          minLength: 1
        threshold:
          type: number
          format: double
        strict:
          type: boolean
          default: true
      required:
      - field
    GroupConditionSerializerFormax_valueTyped:
      allOf:
      - $ref: '#/components/schemas/GroupConditionUntyped'
      - $ref: '#/components/schemas/GroupConditionSerializerFormax_value'
    GroupConditionSerializerFormax_valueTypedRequest:
      allOf:
      - $ref: '#/components/schemas/GroupConditionRequestUntyped'
      - $ref: '#/components/schemas/GroupConditionSerializerFormax_valueRequest'
    GroupConditionSerializerFormin_date:
      type: object
      properties:
        negate:
          type: boolean
          default: false
          description: Whether to take the contrary of the rule
        group:
          type: string
          description: Group to which the rule belongs if it is a conditional rule
        field:
          type: string
        min_date:
          type: string
      required:
      - field
      - min_date
    GroupConditionSerializerFormin_dateRequest:
      type: object
      properties:
        negate:
          type: boolean
          default: false
          description: Whether to take the contrary of the rule
        group:
          type: string
          minLength: 1
          description: Group to which the rule belongs if it is a conditional rule
        field:
          type: string
          minLength: 1
        min_date:
          type: string
          minLength: 1
      required:
      - field
      - min_date
    GroupConditionSerializerFormin_dateTyped:
      allOf:
      - $ref: '#/components/schemas/GroupConditionUntyped'
      - $ref: '#/components/schemas/GroupConditionSerializerFormin_date'
    GroupConditionSerializerFormin_dateTypedRequest:
      allOf:
      - $ref: '#/components/schemas/GroupConditionRequestUntyped'
      - $ref: '#/components/schemas/GroupConditionSerializerFormin_dateRequest'
    GroupConditionSerializerFormin_value:
      type: object
      properties:
        negate:
          type: boolean
          default: false
          description: Whether to take the contrary of the rule
        group:
          type: string
          description: Group to which the rule belongs if it is a conditional rule
        field:
          type: string
        threshold:
          type: number
          format: double
        strict:
          type: boolean
          default: true
      required:
      - field
    GroupConditionSerializerFormin_valueRequest:
      type: object
      properties:
        negate:
          type: boolean
          default: false
          description: Whether to take the contrary of the rule
        group:
          type: string
          minLength: 1
          description: Group to which the rule belongs if it is a conditional rule
        field:
          type: string
          minLength: 1
        threshold:
          type: number
          format: double
        strict:
          type: boolean
          default: true
      required:
      - field
    GroupConditionSerializerFormin_valueTyped:
      allOf:
      - $ref: '#/components/schemas/GroupConditionUntyped'
      - $ref: '#/components/schemas/GroupConditionSerializerFormin_value'
    GroupConditionSerializerFormin_valueTypedRequest:
      allOf:
      - $ref: '#/components/schemas/GroupConditionRequestUntyped'
      - $ref: '#/components/schemas/GroupConditionSerializerFormin_valueRequest'
    GroupConditionSerializerForregex:
      type: object
      properties:
        negate:
          type: boolean
          default: false
          description: Whether to take the contrary of the rule
        group:
          type: string
          description: Group to which the rule belongs if it is a conditional rule
        field:
          type: string
        pattern:
          type: string
      required:
      - field
      - pattern
    GroupConditionSerializerForregexRequest:
      type: object
      properties:
        negate:
          type: boolean
          default: false
          description: Whether to take the contrary of the rule
        group:
          type: string
          minLength: 1
          description: Group to which the rule belongs if it is a conditional rule
        field:
          type: string
          minLength: 1
        pattern:
          type: string
      required:
      - field
      - pattern
    GroupConditionSerializerForregexTyped:
      allOf:
      - $ref: '#/components/schemas/GroupConditionUntyped'
      - $ref: '#/components/schemas/GroupConditionSerializerForregex'
    GroupConditionSerializerForregexTypedRequest:
      allOf:
      - $ref: '#/components/schemas/GroupConditionRequestUntyped'
      - $ref: '#/components/schemas/GroupConditionSerializerForregexRequest'
    GroupConditionSerializerForrequired:
      type: object
      properties:
        negate:
          type: boolean
          default: false
          description: Whether to take the contrary of the rule
        group:
          type: string
          description: Group to which the rule belongs if it is a conditional rule
        field:
          type: string
      required:
      - field
    GroupConditionSerializerForrequiredRequest:
      type: object
      properties:
        negate:
          type: boolean
          default: false
          description: Whether to take the contrary of the rule
        group:
          type: string
          minLength: 1
          description: Group to which the rule belongs if it is a conditional rule
        field:
          type: string
          minLength: 1
      required:
      - field
    GroupConditionSerializerForrequiredTyped:
      allOf:
      - $ref: '#/components/schemas/GroupConditionUntyped'
      - $ref: '#/components/schemas/GroupConditionSerializerForrequired'
    GroupConditionSerializerForrequiredTypedRequest:
      allOf:
      - $ref: '#/components/schemas/GroupConditionRequestUntyped'
      - $ref: '#/components/schemas/GroupConditionSerializerForrequiredRequest'
    GroupConditionSerializerForrequired_on:
      type: object
      properties:
        negate:
          type: boolean
          default: false
          description: Whether to take the contrary of the rule
        group:
          type: string
          description: Group to which the rule belongs if it is a conditional rule
        field:
          type: string
        column:
          type: string
        pattern:
          type: string
      required:
      - column
      - field
      - pattern
    GroupConditionSerializerForrequired_onRequest:
      type: object
      properties:
        negate:
          type: boolean
          default: false
          description: Whether to take the contrary of the rule
        group:
          type: string
          minLength: 1
          description: Group to which the rule belongs if it is a conditional rule
        field:
          type: string
          minLength: 1
        column:
          type: string
          minLength: 1
        pattern:
          type: string
      required:
      - column
      - field
      - pattern
    GroupConditionSerializerForrequired_onTyped:
      allOf:
      - $ref: '#/components/schemas/GroupConditionUntyped'
      - $ref: '#/components/schemas/GroupConditionSerializerForrequired_on'
    GroupConditionSerializerForrequired_onTypedRequest:
      allOf:
      - $ref: '#/components/schemas/GroupConditionRequestUntyped'
      - $ref: '#/components/schemas/GroupConditionSerializerForrequired_onRequest'
    GroupConditionSerializerForrequired_with:
      type: object
      properties:
        negate:
          type: boolean
          default: false
          description: Whether to take the contrary of the rule
        group:
          type: string
          description: Group to which the rule belongs if it is a conditional rule
        field:
          type: string
        columns:
          type: array
          items: {}
        which:
          allOf:
          - $ref: '#/components/schemas/Which459Enum'
          default: all
      required:
      - field
    GroupConditionSerializerForrequired_withRequest:
      type: object
      properties:
        negate:
          type: boolean
          default: false
          description: Whether to take the contrary of the rule
        group:
          type: string
          minLength: 1
          description: Group to which the rule belongs if it is a conditional rule
        field:
          type: string
          minLength: 1
        columns:
          type: array
          items: {}
        which:
          allOf:
          - $ref: '#/components/schemas/Which459Enum'
          default: all
      required:
      - field
    GroupConditionSerializerForrequired_withTyped:
      allOf:
      - $ref: '#/components/schemas/GroupConditionUntyped'
      - $ref: '#/components/schemas/GroupConditionSerializerForrequired_with'
    GroupConditionSerializerForrequired_withTypedRequest:
      allOf:
      - $ref: '#/components/schemas/GroupConditionRequestUntyped'
      - $ref: '#/components/schemas/GroupConditionSerializerForrequired_withRequest'
    GroupConditionSerializerForrequired_without:
      type: object
      properties:
        negate:
          type: boolean
          default: false
          description: Whether to take the contrary of the rule
        group:
          type: string
          description: Group to which the rule belongs if it is a conditional rule
        field:
          type: string
        columns:
          type: array
          items: {}
        which:
          allOf:
          - $ref: '#/components/schemas/Which459Enum'
          default: all
      required:
      - field
    GroupConditionSerializerForrequired_withoutRequest:
      type: object
      properties:
        negate:
          type: boolean
          default: false
          description: Whether to take the contrary of the rule
        group:
          type: string
          minLength: 1
          description: Group to which the rule belongs if it is a conditional rule
        field:
          type: string
          minLength: 1
        columns:
          type: array
          items: {}
        which:
          allOf:
          - $ref: '#/components/schemas/Which459Enum'
          default: all
      required:
      - field
    GroupConditionSerializerForrequired_withoutTyped:
      allOf:
      - $ref: '#/components/schemas/GroupConditionUntyped'
      - $ref: '#/components/schemas/GroupConditionSerializerForrequired_without'
    GroupConditionSerializerForrequired_withoutTypedRequest:
      allOf:
      - $ref: '#/components/schemas/GroupConditionRequestUntyped'
      - $ref: '#/components/schemas/GroupConditionSerializerForrequired_withoutRequest'
    GroupConditionSerializerForsuperior_to:
      type: object
      properties:
        negate:
          type: boolean
          default: false
          description: Whether to take the contrary of the rule
        group:
          type: string
          description: Group to which the rule belongs if it is a conditional rule
        field:
          type: string
        column:
          type: string
        strict:
          type: boolean
          default: true
      required:
      - column
      - field
    GroupConditionSerializerForsuperior_toRequest:
      type: object
      properties:
        negate:
          type: boolean
          default: false
          description: Whether to take the contrary of the rule
        group:
          type: string
          minLength: 1
          description: Group to which the rule belongs if it is a conditional rule
        field:
          type: string
          minLength: 1
        column:
          type: string
          minLength: 1
        strict:
          type: boolean
          default: true
      required:
      - column
      - field
    GroupConditionSerializerForsuperior_toTyped:
      allOf:
      - $ref: '#/components/schemas/GroupConditionUntyped'
      - $ref: '#/components/schemas/GroupConditionSerializerForsuperior_to'
    GroupConditionSerializerForsuperior_toTypedRequest:
      allOf:
      - $ref: '#/components/schemas/GroupConditionRequestUntyped'
      - $ref: '#/components/schemas/GroupConditionSerializerForsuperior_toRequest'
    GroupConditionSerializerForuneditable:
      type: object
      properties:
        negate:
          type: boolean
          default: false
          description: Whether to take the contrary of the rule
        group:
          type: string
          description: Group to which the rule belongs if it is a conditional rule
        field:
          type: string
      required:
      - field
    GroupConditionSerializerForuneditableRequest:
      type: object
      properties:
        negate:
          type: boolean
          default: false
          description: Whether to take the contrary of the rule
        group:
          type: string
          minLength: 1
          description: Group to which the rule belongs if it is a conditional rule
        field:
          type: string
          minLength: 1
      required:
      - field
    GroupConditionSerializerForuneditableTyped:
      allOf:
      - $ref: '#/components/schemas/GroupConditionUntyped'
      - $ref: '#/components/schemas/GroupConditionSerializerForuneditable'
    GroupConditionSerializerForuneditableTypedRequest:
      allOf:
      - $ref: '#/components/schemas/GroupConditionRequestUntyped'
      - $ref: '#/components/schemas/GroupConditionSerializerForuneditableRequest'
    GroupConditionSerializerForunique:
      type: object
      properties:
        negate:
          type: boolean
          default: false
          description: Whether to take the contrary of the rule
        group:
          type: string
          description: Group to which the rule belongs if it is a conditional rule
        field:
          type: string
      required:
      - field
    GroupConditionSerializerForuniqueRequest:
      type: object
      properties:
        negate:
          type: boolean
          default: false
          description: Whether to take the contrary of the rule
        group:
          type: string
          minLength: 1
          description: Group to which the rule belongs if it is a conditional rule
        field:
          type: string
          minLength: 1
      required:
      - field
    GroupConditionSerializerForuniqueTyped:
      allOf:
      - $ref: '#/components/schemas/GroupConditionUntyped'
      - $ref: '#/components/schemas/GroupConditionSerializerForunique'
    GroupConditionSerializerForuniqueTypedRequest:
      allOf:
      - $ref: '#/components/schemas/GroupConditionRequestUntyped'
      - $ref: '#/components/schemas/GroupConditionSerializerForuniqueRequest'
    GroupConditionSerializerForunique_on:
      type: object
      properties:
        negate:
          type: boolean
          default: false
          description: Whether to take the contrary of the rule
        group:
          type: string
          description: Group to which the rule belongs if it is a conditional rule
        field:
          type: string
        columns:
          type: array
          items: {}
      required:
      - field
    GroupConditionSerializerForunique_onRequest:
      type: object
      properties:
        negate:
          type: boolean
          default: false
          description: Whether to take the contrary of the rule
        group:
          type: string
          minLength: 1
          description: Group to which the rule belongs if it is a conditional rule
        field:
          type: string
          minLength: 1
        columns:
          type: array
          items: {}
      required:
      - field
    GroupConditionSerializerForunique_onTyped:
      allOf:
      - $ref: '#/components/schemas/GroupConditionUntyped'
      - $ref: '#/components/schemas/GroupConditionSerializerForunique_on'
    GroupConditionSerializerForunique_onTypedRequest:
      allOf:
      - $ref: '#/components/schemas/GroupConditionRequestUntyped'
      - $ref: '#/components/schemas/GroupConditionSerializerForunique_onRequest'
    GroupConditionSerializerForunique_with:
      type: object
      properties:
        negate:
          type: boolean
          default: false
          description: Whether to take the contrary of the rule
        group:
          type: string
          description: Group to which the rule belongs if it is a conditional rule
        field:
          type: string
        column:
          type: string
      required:
      - column
      - field
    GroupConditionSerializerForunique_withRequest:
      type: object
      properties:
        negate:
          type: boolean
          default: false
          description: Whether to take the contrary of the rule
        group:
          type: string
          minLength: 1
          description: Group to which the rule belongs if it is a conditional rule
        field:
          type: string
          minLength: 1
        column:
          type: string
          minLength: 1
      required:
      - column
      - field
    GroupConditionSerializerForunique_withTyped:
      allOf:
      - $ref: '#/components/schemas/GroupConditionUntyped'
      - $ref: '#/components/schemas/GroupConditionSerializerForunique_with'
    GroupConditionSerializerForunique_withTypedRequest:
      allOf:
      - $ref: '#/components/schemas/GroupConditionRequestUntyped'
      - $ref: '#/components/schemas/GroupConditionSerializerForunique_withRequest'
    GroupConditionUntyped:
      type: object
      description: |-
        A polymorphic serializer, in which the subdata
        types are inferred from one of the keys in the data.
        The class API is designed to be similar to rest_polymorphic's serializer,
        so the drf_spectacular extension can be used for this serializer too. The main difference
        is that it is not meant to be a model serializer but to work on mappings/dicts.
      properties:
        name:
          type: string
      required:
      - name
    GroupRequest:
      type: object
      properties:
        name:
          type: string
          minLength: 1
          description: The name of the field
        conditions:
          type: array
          items:
            $ref: '#/components/schemas/GroupConditionRequest'
          default: []
        label:
          type: object
          additionalProperties:
            type: string
            minLength: 1
          default: {}
          description: The friendly name of the field, by locale
      required:
      - name
    HealthCheckResponse:
      type: object
      properties:
        last_run:
          type: string
          format: date-time
          nullable: true
          description: The last run date of the most recent job
      required:
      - last_run
    HowEnum:
      enum:
      - inner
      - left
      - right
      - outer
      type: string
      description: |-
        * `inner` - Inner join
        * `left` - Left join
        * `right` - Right join
        * `outer` - Outer join
    InputFormat:
      oneOf:
      - $ref: '#/components/schemas/SpecificExcelFormatTyped'
      - $ref: '#/components/schemas/SpecificXMLFormatTyped'
      discriminator:
        propertyName: file_type
        mapping:
          excel: '#/components/schemas/SpecificExcelFormatTyped'
          xml: '#/components/schemas/SpecificXMLFormatTyped'
    InputFormatRequest:
      oneOf:
      - $ref: '#/components/schemas/SpecificExcelFormatTypedRequest'
      - $ref: '#/components/schemas/SpecificXMLFormatTypedRequest'
      discriminator:
        propertyName: file_type
        mapping:
          excel: '#/components/schemas/SpecificExcelFormatTypedRequest'
          xml: '#/components/schemas/SpecificXMLFormatTypedRequest'
    InputFormatRequestUntyped:
      type: object
      description: |-
        A polymorphic serializer, reusing django-rest-polymorphic's serializer
        but adding additional features:
        - data is prevalidated before applying the child serializer validation
            this will avoid errors which could occur for ex if the input value is not a mapping
        - allows to specify a default resource type
        - allows to merge the validated data from the parent serializer and the child serializer
            (the child validated data always takes priority)
            !!!Note this option is currently unsupported in the generated documentation beyond the resource type!!!
      properties:
        file_type:
          type: string
          minLength: 1
      required:
      - file_type
    InputFormatUntyped:
      type: object
      description: |-
        A polymorphic serializer, reusing django-rest-polymorphic's serializer
        but adding additional features:
        - data is prevalidated before applying the child serializer validation
            this will avoid errors which could occur for ex if the input value is not a mapping
        - allows to specify a default resource type
        - allows to merge the validated data from the parent serializer and the child serializer
            (the child validated data always takes priority)
            !!!Note this option is currently unsupported in the generated documentation beyond the resource type!!!
      properties:
        file_type:
          type: string
      required:
      - file_type
    InputformatDefault:
      type: object
      properties:
        name:
          type: string
        label:
          type: string
      required:
      - label
      - name
    Invitation:
      type: object
      properties:
        id:
          type: string
          format: uuid
          readOnly: true
        creation_date:
          type: string
          format: date
          readOnly: true
        email:
          type: string
          format: email
          maxLength: 254
        organization:
          allOf:
          - $ref: '#/components/schemas/Organization'
          readOnly: true
      required:
      - creation_date
      - email
      - id
      - organization
    InvitationCreationRequest:
      type: object
      properties:
        emails:
          type: array
          items:
            type: string
            format: email
            minLength: 1
      required:
      - emails
    Job:
      type: object
      properties:
        id:
          type: string
          format: uuid
          readOnly: true
        status:
          type: string
          readOnly: true
        stats:
          type: string
          readOnly: true
        file:
          allOf:
          - $ref: '#/components/schemas/File'
          readOnly: true
        creator:
          allOf:
          - $ref: '#/components/schemas/SimpleUser'
          readOnly: true
        created_through:
          allOf:
          - $ref: '#/components/schemas/SimpleExternalAccessPortal'
          readOnly: true
        last_editor:
          allOf:
          - $ref: '#/components/schemas/SimpleUser'
          readOnly: true
        step:
          allOf:
          - $ref: '#/components/schemas/SimpleStep'
          readOnly: true
        evaluation:
          allOf:
          - $ref: '#/components/schemas/JobEvaluation'
          readOnly: true
        additional_info:
          type: object
          additionalProperties:
            type: string
            maxLength: 256
        media_archives:
          type: array
          items:
            $ref: '#/components/schemas/JobMediaArchive'
          readOnly: true
        name:
          type: string
          maxLength: 128
        model_version:
          type: integer
          maximum: 2147483647
          minimum: 0
        creation_date:
          type: string
          format: date-time
          readOnly: true
        last_update_date:
          type: string
          format: date-time
          readOnly: true
          nullable: true
        completion_date:
          type: string
          format: date-time
          nullable: true
        deletion_date:
          type: string
          format: date-time
          nullable: true
        task:
          type: string
          format: uuid
          readOnly: true
          nullable: true
        message:
          type: string
          readOnly: true
          nullable: true
        project:
          type: integer
      required:
      - created_through
      - creation_date
      - creator
      - evaluation
      - file
      - id
      - last_editor
      - last_update_date
      - media_archives
      - message
      - model_version
      - name
      - project
      - stats
      - status
      - step
      - task
    JobCategorisationResponse:
      type: object
      properties:
        count:
          type: integer
          minimum: 0
        stats:
          $ref: '#/components/schemas/CategorisationStats'
        columns:
          type: array
          items:
            $ref: '#/components/schemas/Column'
        results:
          type: array
          items:
            type: object
            additionalProperties:
              type: string
      required:
      - columns
      - count
      - results
      - stats
    JobCompositionResponse:
      type: object
      properties:
        count:
          type: integer
          minimum: 0
        stats:
          $ref: '#/components/schemas/CompositionStats'
        columns:
          type: array
          items:
            $ref: '#/components/schemas/Column'
        results:
          type: array
          items:
            type: object
            additionalProperties:
              type: string
      required:
      - columns
      - count
      - results
      - stats
    JobEvaluation:
      type: object
      properties:
        rate:
          type: integer
        comment:
          type: string
          maxLength: 280
    JobEvaluationRequest:
      type: object
      properties:
        rate:
          type: integer
        comment:
          type: string
          maxLength: 280
    JobExtractionResponse:
      type: object
      properties:
        count:
          type: integer
          minimum: 0
        stats:
          $ref: '#/components/schemas/ExtractionStats'
        columns:
          type: array
          items:
            $ref: '#/components/schemas/Column'
        results:
          type: array
          items:
            type: object
            additionalProperties:
              type: string
        misc_fields:
          type: object
          additionalProperties:
            type: string
      required:
      - columns
      - count
      - misc_fields
      - results
      - stats
    JobMapping:
      type: object
      properties:
        original:
          type: array
          items:
            $ref: '#/components/schemas/MappingSample'
          readOnly: true
        defaults:
          type: array
          items:
            $ref: '#/components/schemas/MappingDefaultsSample'
          readOnly: true
        mapping:
          type: array
          items:
            $ref: '#/components/schemas/MappingProposition'
      required:
      - defaults
      - mapping
      - original
    JobMediaArchive:
      type: object
      properties:
        id:
          type: string
          format: uuid
          readOnly: true
        job_id:
          type: string
          format: uuid
          readOnly: true
        creation_date:
          type: string
          format: date-time
          readOnly: true
        url:
          type: string
          format: uri
          readOnly: true
        status:
          $ref: '#/components/schemas/JobMediaArchiveStatusEnum'
        archive_type:
          $ref: '#/components/schemas/ArchiveTypeEnum'
      required:
      - creation_date
      - id
      - job_id
      - url
    JobMediaArchiveRequest:
      type: object
      properties:
        status:
          $ref: '#/components/schemas/JobMediaArchiveStatusEnum'
        archive_type:
          $ref: '#/components/schemas/ArchiveTypeEnum'
    JobMediaArchiveStatusEnum:
      enum:
      - ready_for_download
      - generating_archive
      - expired
      - no_media
      type: string
      description: |-
        * `ready_for_download` - Ready for download
        * `generating_archive` - Generating archive
        * `expired` - Expired
        * `no_media` - No media
    JobNormalisationResponse:
      type: object
      properties:
        count:
          type: integer
          minimum: 0
        stats:
          $ref: '#/components/schemas/NormalisationStats'
        columns:
          type: array
          items:
            $ref: '#/components/schemas/Column'
        results:
          type: array
          items:
            type: object
            additionalProperties: {}
      required:
      - columns
      - count
      - results
      - stats
    JobOpResponse:
      type: object
      properties:
        count:
          type: integer
          minimum: 0
        columns:
          type: array
          items:
            $ref: '#/components/schemas/Column'
        results:
          type: array
          items:
            type: object
            additionalProperties:
              type: string
      required:
      - columns
      - count
      - results
    JobRequest:
      type: object
      properties:
        file_id:
          type: integer
          writeOnly: true
        additional_info:
          type: object
          additionalProperties:
            type: string
            minLength: 1
            maxLength: 256
        name:
          type: string
          minLength: 1
          maxLength: 128
        model_version:
          type: integer
          maximum: 2147483647
          minimum: 0
        completion_date:
          type: string
          format: date-time
          nullable: true
        deletion_date:
          type: string
          format: date-time
          nullable: true
        project:
          type: integer
      required:
      - file_id
      - model_version
      - name
      - project
    JobValueMapping:
      type: object
      properties:
        mapping:
          type: array
          items:
            $ref: '#/components/schemas/ValueMappingProposition'
        original:
          type: array
          items:
            $ref: '#/components/schemas/ValueMappingOriginal'
          readOnly: true
        count:
          type: array
          items:
            $ref: '#/components/schemas/ValueMappingCount'
          readOnly: true
      required:
      - count
      - mapping
      - original
    JobVariant:
      type: object
      properties:
        count:
          type: integer
          minimum: 0
        stats:
          $ref: '#/components/schemas/VariantStats'
        columns:
          type: array
          items:
            $ref: '#/components/schemas/Column'
        results:
          type: array
          items:
            type: object
            additionalProperties:
              type: string
      required:
      - columns
      - count
      - results
      - stats
    LocalizedAccuracies:
      type: object
      properties:
        to_check:
          type: number
          format: double
          maximum: 1
          minimum: 0
        automated:
          type: number
          format: double
          maximum: 1
          minimum: 0
      required:
      - automated
      - to_check
    LocalizedAutomateGroupin:
      type: object
      properties:
        enabled:
          type: boolean
          default: false
        grouping_columns:
          type: array
          items:
            type: string
        group_empty_columns:
          type: boolean
          default: false
    LocalizedCategorisationFieldForJob:
      type: object
      properties:
        name:
          type: string
        label:
          type: string
        hierarchy: {}
        check_representation_conflicts:
          type: boolean
          default: true
        output:
          type: array
          items:
            $ref: '#/components/schemas/LocalizedCategorisationOutput'
        multiple:
          type: boolean
          description: Whether having several classifications per item is allowed
        multiple_separator:
          type: string
          description: The separator used to separate different classification propositions
            for a same item
        allow_no_category:
          type: boolean
          default: false
          description: Allow to validate rows even if it doesn't have any category
        replace_existing:
          type: boolean
          default: true
          description: Try to predict categories even though they are already present
            in the input file.
      required:
      - hierarchy
      - label
      - name
    LocalizedCategorisationOutput:
      type: object
      properties:
        name:
          type: string
        label:
          type: string
        nb_levels:
          type: integer
          minimum: 1
          nullable: true
          description: The number of levels to select for this output
        separator:
          type: string
          description: The separator used to separate different levels, useful if
            nb_levels > 1
        required:
          type: boolean
          default: true
      required:
      - label
      - name
      - nb_levels
    LocalizedCategorisationParamsSerializerForJob:
      oneOf:
      - $ref: '#/components/schemas/LocalizedModelConfigForCoreAiTyped'
      - $ref: '#/components/schemas/LocalizedModelConfigSerializerForDemoTyped'
      - $ref: '#/components/schemas/LocalizedTyped'
      - $ref: '#/components/schemas/LocalizedTyped'
      discriminator:
        propertyName: use_model
        mapping:
          coreai_api: '#/components/schemas/LocalizedModelConfigForCoreAiTyped'
          demo: '#/components/schemas/LocalizedModelConfigSerializerForDemoTyped'
          test_mock: '#/components/schemas/LocalizedTyped'
          null: '#/components/schemas/LocalizedTyped'
    LocalizedCategorisationParamsSerializerForJobUntyped:
      type: object
      description: |-
        A polymorphic serializer, reusing django-rest-polymorphic's serializer
        but adding additional features:
        - data is prevalidated before applying the child serializer validation
            this will avoid errors which could occur for ex if the input value is not a mapping
        - allows to specify a default resource type
        - allows to merge the validated data from the parent serializer and the child serializer
            (the child validated data always takes priority)
            !!!Note this option is currently unsupported in the generated documentation beyond the resource type!!!
      properties:
        categorisation_fields:
          type: array
          items:
            $ref: '#/components/schemas/LocalizedCategorisationFieldForJob'
        groupby:
          type: array
          items:
            type: string
        automated_audit_rate:
          type: number
          format: double
          default: 0.0
          description: The percentage of rows to audit automatically, between 0 and
            1 (0% and 100%)
        truth_store:
          type: string
          description: The name of the reference base to use as a reference to skip
            classification computation if the row is the same
        use_model:
          nullable: true
          description: |-
            Which model is used for automation (leave null to not use a model)

            * `coreai_api` - Classification using CoreAI API
            * `demo` - Classification in demo mode
            * `test_mock` - Classification in tests
          oneOf:
          - $ref: '#/components/schemas/UseModelEnum'
          - $ref: '#/components/schemas/NullEnum'
        additional_config:
          type: object
          additionalProperties: {}
        sources:
          type: array
          items:
            type: string
        model_results:
          type: array
          items:
            $ref: '#/components/schemas/LocalizedModelResults'
    LocalizedComposition:
      type: object
      properties:
        composition_fields:
          type: array
          items:
            $ref: '#/components/schemas/LocalizedCompositionField'
    LocalizedCompositionField:
      type: object
      properties:
        out:
          type: string
        sources:
          type: array
          items:
            type: string
        requirement_level:
          allOf:
          - $ref: '#/components/schemas/RequirementLevelEnum'
          default: optional
          description: |-
            Requirement levels: required, important, optional (default)

            * `required` - Required
            * `important` - Important
            * `optional` - Optional
        materials:
          type: array
          items:
            type: string
      required:
      - out
    LocalizedDemoRowResult:
      type: object
      properties:
        field:
          type: string
        target:
          type: array
          items:
            type: array
            items:
              type: string
        status:
          nullable: true
          default: to_complete
          oneOf:
          - $ref: '#/components/schemas/LocalizedDemoRowResultStatusEnum'
          - $ref: '#/components/schemas/NullEnum'
      required:
      - field
    LocalizedDemoRowResultStatusEnum:
      enum:
      - automated
      - to_check
      - to_complete
      - automated_to_audit
      type: string
      description: |-
        * `automated` - automated
        * `to_check` - to_check
        * `to_complete` - to_complete
        * `automated_to_audit` - automated_to_audit
    LocalizedExtractionField:
      oneOf:
      - $ref: '#/components/schemas/LocalizedExtractionFieldSerializerForstringTyped'
      - $ref: '#/components/schemas/LocalizedExtractionFieldSerializerForhtmlTyped'
      - $ref: '#/components/schemas/LocalizedExtractionFieldSerializerFornumberTyped'
      - $ref: '#/components/schemas/LocalizedExtractionFieldSerializerForselectTyped'
      - $ref: '#/components/schemas/LocalizedExtractionFieldSerializerForbooleanTyped'
      - $ref: '#/components/schemas/LocalizedExtractionFieldSerializerForurlTyped'
      - $ref: '#/components/schemas/LocalizedExtractionFieldSerializerForimage_urlTyped'
      - $ref: '#/components/schemas/LocalizedExtractionFieldSerializerFordateTyped'
      discriminator:
        propertyName: type
        mapping:
          string: '#/components/schemas/LocalizedExtractionFieldSerializerForstringTyped'
          html: '#/components/schemas/LocalizedExtractionFieldSerializerForhtmlTyped'
          number: '#/components/schemas/LocalizedExtractionFieldSerializerFornumberTyped'
          select: '#/components/schemas/LocalizedExtractionFieldSerializerForselectTyped'
          boolean: '#/components/schemas/LocalizedExtractionFieldSerializerForbooleanTyped'
          url: '#/components/schemas/LocalizedExtractionFieldSerializerForurlTyped'
          image_url: '#/components/schemas/LocalizedExtractionFieldSerializerForimage_urlTyped'
          date: '#/components/schemas/LocalizedExtractionFieldSerializerFordateTyped'
    LocalizedExtractionFieldSerializerForboolean:
      type: object
      properties:
        name:
          type: string
          description: The name of the field
        groups:
          type: array
          items:
            type: string
            nullable: true
            description: Group to which the field belongs
        queries:
          type: array
          items:
            type: string
            default: 'False'
        hypothesis_template:
          type: string
        threshold:
          $ref: '#/components/schemas/LocalizedAccuracies'
        label:
          type: string
        display_group:
          type: string
          nullable: true
        requirement_level:
          allOf:
          - $ref: '#/components/schemas/RequirementLevelEnum'
          default: optional
          description: |-
            Requirement levels: required, important, optional (default)

            * `required` - Required
            * `important` - Important
            * `optional` - Optional
      required:
      - label
      - name
    LocalizedExtractionFieldSerializerForbooleanTyped:
      allOf:
      - $ref: '#/components/schemas/LocalizedExtractionFieldUntyped'
      - $ref: '#/components/schemas/LocalizedExtractionFieldSerializerForboolean'
    LocalizedExtractionFieldSerializerFordate:
      type: object
      properties:
        name:
          type: string
          description: The name of the field
        groups:
          type: array
          items:
            type: string
            nullable: true
            description: Group to which the field belongs
        queries:
          type: array
          items:
            type: string
            default: 'False'
        hypothesis_template:
          type: string
        threshold:
          $ref: '#/components/schemas/LocalizedAccuracies'
        label:
          type: string
        display_group:
          type: string
          nullable: true
        requirement_level:
          allOf:
          - $ref: '#/components/schemas/RequirementLevelEnum'
          default: optional
          description: |-
            Requirement levels: required, important, optional (default)

            * `required` - Required
            * `important` - Important
            * `optional` - Optional
        format:
          type: string
      required:
      - format
      - label
      - name
    LocalizedExtractionFieldSerializerFordateTyped:
      allOf:
      - $ref: '#/components/schemas/LocalizedExtractionFieldUntyped'
      - $ref: '#/components/schemas/LocalizedExtractionFieldSerializerFordate'
    LocalizedExtractionFieldSerializerForhtml:
      type: object
      properties:
        name:
          type: string
          description: The name of the field
        groups:
          type: array
          items:
            type: string
            nullable: true
            description: Group to which the field belongs
        queries:
          type: array
          items:
            type: string
            default: 'False'
        hypothesis_template:
          type: string
        threshold:
          $ref: '#/components/schemas/LocalizedAccuracies'
        label:
          type: string
        display_group:
          type: string
          nullable: true
        requirement_level:
          allOf:
          - $ref: '#/components/schemas/RequirementLevelEnum'
          default: optional
          description: |-
            Requirement levels: required, important, optional (default)

            * `required` - Required
            * `important` - Important
            * `optional` - Optional
        tag_whitelist:
          type: array
          items:
            type: string
        remove_attributes:
          type: boolean
      required:
      - label
      - name
    LocalizedExtractionFieldSerializerForhtmlTyped:
      allOf:
      - $ref: '#/components/schemas/LocalizedExtractionFieldUntyped'
      - $ref: '#/components/schemas/LocalizedExtractionFieldSerializerForhtml'
    LocalizedExtractionFieldSerializerForimage_url:
      type: object
      properties:
        name:
          type: string
          description: The name of the field
        groups:
          type: array
          items:
            type: string
            nullable: true
            description: Group to which the field belongs
        queries:
          type: array
          items:
            type: string
            default: 'False'
        hypothesis_template:
          type: string
        threshold:
          $ref: '#/components/schemas/LocalizedAccuracies'
        label:
          type: string
        display_group:
          type: string
          nullable: true
        requirement_level:
          allOf:
          - $ref: '#/components/schemas/RequirementLevelEnum'
          default: optional
          description: |-
            Requirement levels: required, important, optional (default)

            * `required` - Required
            * `important` - Important
            * `optional` - Optional
        multiple:
          type: boolean
          default: false
        separator:
          type: string
          default: ;
        authorized_extensions:
          type: array
          items:
            type: string
      required:
      - label
      - name
    LocalizedExtractionFieldSerializerForimage_urlTyped:
      allOf:
      - $ref: '#/components/schemas/LocalizedExtractionFieldUntyped'
      - $ref: '#/components/schemas/LocalizedExtractionFieldSerializerForimage_url'
    LocalizedExtractionFieldSerializerFornumber:
      type: object
      properties:
        name:
          type: string
          description: The name of the field
        groups:
          type: array
          items:
            type: string
            nullable: true
            description: Group to which the field belongs
        queries:
          type: array
          items:
            type: string
            default: 'False'
        hypothesis_template:
          type: string
        threshold:
          $ref: '#/components/schemas/LocalizedAccuracies'
        label:
          type: string
        display_group:
          type: string
          nullable: true
        requirement_level:
          allOf:
          - $ref: '#/components/schemas/RequirementLevelEnum'
          default: optional
          description: |-
            Requirement levels: required, important, optional (default)

            * `required` - Required
            * `important` - Important
            * `optional` - Optional
        decimals:
          type: integer
          nullable: true
        number_pattern:
          type: string
          nullable: true
        number_substitution:
          type: string
          nullable: true
      required:
      - label
      - name
    LocalizedExtractionFieldSerializerFornumberTyped:
      allOf:
      - $ref: '#/components/schemas/LocalizedExtractionFieldUntyped'
      - $ref: '#/components/schemas/LocalizedExtractionFieldSerializerFornumber'
    LocalizedExtractionFieldSerializerForselect:
      type: object
      properties:
        options_collection_name:
          type: string
        name:
          type: string
          description: The name of the field
        groups:
          type: array
          items:
            type: string
            nullable: true
            description: Group to which the field belongs
        queries:
          type: array
          items:
            type: string
            default: 'False'
        hypothesis_template:
          type: string
        threshold:
          $ref: '#/components/schemas/LocalizedAccuracies'
        label:
          type: string
        display_group:
          type: string
          nullable: true
        requirement_level:
          allOf:
          - $ref: '#/components/schemas/RequirementLevelEnum'
          default: optional
          description: |-
            Requirement levels: required, important, optional (default)

            * `required` - Required
            * `important` - Important
            * `optional` - Optional
        multiple:
          type: boolean
          default: false
        separator:
          type: string
          default: ;
        max_choices:
          type: integer
          nullable: true
      required:
      - label
      - name
      - options_collection_name
    LocalizedExtractionFieldSerializerForselectTyped:
      allOf:
      - $ref: '#/components/schemas/LocalizedExtractionFieldUntyped'
      - $ref: '#/components/schemas/LocalizedExtractionFieldSerializerForselect'
    LocalizedExtractionFieldSerializerForstring:
      type: object
      properties:
        name:
          type: string
          description: The name of the field
        groups:
          type: array
          items:
            type: string
            nullable: true
            description: Group to which the field belongs
        queries:
          type: array
          items:
            type: string
            default: 'False'
        hypothesis_template:
          type: string
        threshold:
          $ref: '#/components/schemas/LocalizedAccuracies'
        label:
          type: string
        display_group:
          type: string
          nullable: true
        requirement_level:
          allOf:
          - $ref: '#/components/schemas/RequirementLevelEnum'
          default: optional
          description: |-
            Requirement levels: required, important, optional (default)

            * `required` - Required
            * `important` - Important
            * `optional` - Optional
      required:
      - label
      - name
    LocalizedExtractionFieldSerializerForstringTyped:
      allOf:
      - $ref: '#/components/schemas/LocalizedExtractionFieldUntyped'
      - $ref: '#/components/schemas/LocalizedExtractionFieldSerializerForstring'
    LocalizedExtractionFieldSerializerForurl:
      type: object
      properties:
        name:
          type: string
          description: The name of the field
        groups:
          type: array
          items:
            type: string
            nullable: true
            description: Group to which the field belongs
        queries:
          type: array
          items:
            type: string
            default: 'False'
        hypothesis_template:
          type: string
        threshold:
          $ref: '#/components/schemas/LocalizedAccuracies'
        label:
          type: string
        display_group:
          type: string
          nullable: true
        requirement_level:
          allOf:
          - $ref: '#/components/schemas/RequirementLevelEnum'
          default: optional
          description: |-
            Requirement levels: required, important, optional (default)

            * `required` - Required
            * `important` - Important
            * `optional` - Optional
        multiple:
          type: boolean
          default: false
        separator:
          type: string
          default: ;
      required:
      - label
      - name
    LocalizedExtractionFieldSerializerForurlTyped:
      allOf:
      - $ref: '#/components/schemas/LocalizedExtractionFieldUntyped'
      - $ref: '#/components/schemas/LocalizedExtractionFieldSerializerForurl'
    LocalizedExtractionFieldUntyped:
      type: object
      description: |-
        A polymorphic serializer, reusing django-rest-polymorphic's serializer
        but adding additional features:
        - data is prevalidated before applying the child serializer validation
            this will avoid errors which could occur for ex if the input value is not a mapping
        - allows to specify a default resource type
        - allows to merge the validated data from the parent serializer and the child serializer
            (the child validated data always takes priority)
            !!!Note this option is currently unsupported in the generated documentation beyond the resource type!!!
      properties:
        type:
          type: string
      required:
      - type
    LocalizedExtractionParams:
      type: object
      properties:
        additional_information:
          type: array
          items:
            type: string
        misc:
          $ref: '#/components/schemas/LocalizedMisc'
        automated_audit_rate:
          type: number
          format: double
        replace_existing:
          type: boolean
          default: false
          description: Override data in the extraction if it is already in the dataset
        max_options:
          type: integer
          maximum: 1000
          minimum: 1
        fields:
          type: array
          items:
            $ref: '#/components/schemas/LocalizedExtractionField'
        groups:
          type: array
          items:
            $ref: '#/components/schemas/LocalizedGroup'
        include_fields:
          type: array
          items:
            $ref: '#/components/schemas/LocalizedFieldFilter'
        exclude_fields:
          type: array
          items:
            $ref: '#/components/schemas/LocalizedFieldFilter'
        max_requirement_level:
          allOf:
          - $ref: '#/components/schemas/MaxRequirementLevelEnum'
          default: required
          description: |-
            Max requirement levels: required, important, optional

            * `required` - Required
            * `important` - Important
            * `optional` - Optional
    LocalizedFieldCoreAiConfig:
      oneOf:
      - $ref: '#/components/schemas/LocalizedFieldCoreAiConfigForTrainedModelTyped'
      - $ref: '#/components/schemas/LocalizedFieldCoreAiConfigForZeroShotModelTyped'
      discriminator:
        propertyName: model_type
        mapping:
          trained: '#/components/schemas/LocalizedFieldCoreAiConfigForTrainedModelTyped'
          zero_shot: '#/components/schemas/LocalizedFieldCoreAiConfigForZeroShotModelTyped'
    LocalizedFieldCoreAiConfigForTrainedModel:
      type: object
      properties:
        field_name:
          type: string
        model_id:
          type: string
      required:
      - field_name
    LocalizedFieldCoreAiConfigForTrainedModelTyped:
      allOf:
      - $ref: '#/components/schemas/LocalizedFieldCoreAiConfigUntyped'
      - $ref: '#/components/schemas/LocalizedFieldCoreAiConfigForTrainedModel'
    LocalizedFieldCoreAiConfigForZeroShotModel:
      type: object
      properties:
        model_capability:
          allOf:
          - $ref: '#/components/schemas/ModelCapabilityEnum'
          default: cost_effective
          description: |-
            Which model capability is used for automation

            * `cost_effective` - Cost effective
            * `most_capable` - Most capable
        ai_provider:
          allOf:
          - $ref: '#/components/schemas/AiProviderEnum'
          default: openai
          description: |-
            Which API provider is used for automation

            * `openai` - OpenAI
            * `dummy` - Dummy
        custom_prompt:
          type: string
          nullable: true
          description: Custom prompt to use for this field
        confidence_status:
          allOf:
          - $ref: '#/components/schemas/ConfidenceStatusEnum'
          default: automated
    LocalizedFieldCoreAiConfigForZeroShotModelTyped:
      allOf:
      - $ref: '#/components/schemas/LocalizedFieldCoreAiConfigUntyped'
      - $ref: '#/components/schemas/LocalizedFieldCoreAiConfigForZeroShotModel'
    LocalizedFieldCoreAiConfigUntyped:
      type: object
      description: |-
        A polymorphic serializer, reusing django-rest-polymorphic's serializer
        but adding additional features:
        - data is prevalidated before applying the child serializer validation
            this will avoid errors which could occur for ex if the input value is not a mapping
        - allows to specify a default resource type
        - allows to merge the validated data from the parent serializer and the child serializer
            (the child validated data always takes priority)
            !!!Note this option is currently unsupported in the generated documentation beyond the resource type!!!
      properties:
        field_name:
          type: string
        model_type:
          allOf:
          - $ref: '#/components/schemas/ModelTypeEnum'
          description: |-
            Use a trained model or a zero-shot model

            * `trained` - Classification using CoreAI API
            * `zero_shot` - Classification using CoreAI API (zero-shot)
      required:
      - field_name
      - model_type
    LocalizedFieldFilter:
      type: object
      properties:
        name:
          type: string
          nullable: true
          description: The name of the field
        groups:
          type: array
          items:
            type: string
            nullable: true
            description: Group to which the field belongs
      required:
      - name
    LocalizedFieldRule:
      oneOf:
      - $ref: '#/components/schemas/LocalizedFieldRuleSerializerForrequiredTyped'
      - $ref: '#/components/schemas/LocalizedFieldRuleSerializerForrequired_withTyped'
      - $ref: '#/components/schemas/LocalizedFieldRuleSerializerForrequired_withoutTyped'
      - $ref: '#/components/schemas/LocalizedFieldRuleSerializerForrequired_onTyped'
      - $ref: '#/components/schemas/LocalizedFieldRuleSerializerForregexTyped'
      - $ref: '#/components/schemas/LocalizedFieldRuleSerializerForis_trueTyped'
      - $ref: '#/components/schemas/LocalizedFieldRuleSerializerForuniqueTyped'
      - $ref: '#/components/schemas/LocalizedFieldRuleSerializerForunique_withTyped'
      - $ref: '#/components/schemas/LocalizedFieldRuleSerializerForunique_onTyped'
      - $ref: '#/components/schemas/LocalizedFieldRuleSerializerForisinTyped'
      - $ref: '#/components/schemas/LocalizedFieldRuleSerializerFormax_lengthTyped'
      - $ref: '#/components/schemas/LocalizedFieldRuleSerializerFormax_valueTyped'
      - $ref: '#/components/schemas/LocalizedFieldRuleSerializerFormin_valueTyped'
      - $ref: '#/components/schemas/LocalizedFieldRuleSerializerForsuperior_toTyped'
      - $ref: '#/components/schemas/LocalizedFieldRuleSerializerForinferior_toTyped'
      - $ref: '#/components/schemas/LocalizedFieldRuleSerializerForuneditableTyped'
      - $ref: '#/components/schemas/LocalizedFieldRuleSerializerForequal_toTyped'
      - $ref: '#/components/schemas/LocalizedFieldRuleSerializerFormin_dateTyped'
      - $ref: '#/components/schemas/LocalizedFieldRuleSerializerFormax_dateTyped'
      - $ref: '#/components/schemas/LocalizedFieldRuleSerializerForany_ofTyped'
      discriminator:
        propertyName: name
        mapping:
          required: '#/components/schemas/LocalizedFieldRuleSerializerForrequiredTyped'
          required_with: '#/components/schemas/LocalizedFieldRuleSerializerForrequired_withTyped'
          required_without: '#/components/schemas/LocalizedFieldRuleSerializerForrequired_withoutTyped'
          required_on: '#/components/schemas/LocalizedFieldRuleSerializerForrequired_onTyped'
          regex: '#/components/schemas/LocalizedFieldRuleSerializerForregexTyped'
          is_true: '#/components/schemas/LocalizedFieldRuleSerializerForis_trueTyped'
          unique: '#/components/schemas/LocalizedFieldRuleSerializerForuniqueTyped'
          unique_with: '#/components/schemas/LocalizedFieldRuleSerializerForunique_withTyped'
          unique_on: '#/components/schemas/LocalizedFieldRuleSerializerForunique_onTyped'
          isin: '#/components/schemas/LocalizedFieldRuleSerializerForisinTyped'
          max_length: '#/components/schemas/LocalizedFieldRuleSerializerFormax_lengthTyped'
          max_value: '#/components/schemas/LocalizedFieldRuleSerializerFormax_valueTyped'
          min_value: '#/components/schemas/LocalizedFieldRuleSerializerFormin_valueTyped'
          superior_to: '#/components/schemas/LocalizedFieldRuleSerializerForsuperior_toTyped'
          inferior_to: '#/components/schemas/LocalizedFieldRuleSerializerForinferior_toTyped'
          uneditable: '#/components/schemas/LocalizedFieldRuleSerializerForuneditableTyped'
          equal_to: '#/components/schemas/LocalizedFieldRuleSerializerForequal_toTyped'
          min_date: '#/components/schemas/LocalizedFieldRuleSerializerFormin_dateTyped'
          max_date: '#/components/schemas/LocalizedFieldRuleSerializerFormax_dateTyped'
          any_of: '#/components/schemas/LocalizedFieldRuleSerializerForany_ofTyped'
    LocalizedFieldRuleSerializerForany_of:
      type: object
      properties:
        negate:
          type: boolean
          default: false
          description: Whether to take the contrary of the rule
        group:
          type: string
          description: Group to which the rule belongs if it is a conditional rule
        error:
          type: string
          description: The error message shown when validation fails
        cases:
          type: array
          items:
            $ref: '#/components/schemas/LocalizedRecursiveFieldRule'
    LocalizedFieldRuleSerializerForany_ofTyped:
      allOf:
      - $ref: '#/components/schemas/LocalizedFieldRuleUntyped'
      - $ref: '#/components/schemas/LocalizedFieldRuleSerializerForany_of'
    LocalizedFieldRuleSerializerForequal_to:
      type: object
      properties:
        negate:
          type: boolean
          default: false
          description: Whether to take the contrary of the rule
        group:
          type: string
          description: Group to which the rule belongs if it is a conditional rule
        error:
          type: string
          description: The error message shown when validation fails
        column:
          type: string
      required:
      - column
    LocalizedFieldRuleSerializerForequal_toTyped:
      allOf:
      - $ref: '#/components/schemas/LocalizedFieldRuleUntyped'
      - $ref: '#/components/schemas/LocalizedFieldRuleSerializerForequal_to'
    LocalizedFieldRuleSerializerForinferior_to:
      type: object
      properties:
        negate:
          type: boolean
          default: false
          description: Whether to take the contrary of the rule
        group:
          type: string
          description: Group to which the rule belongs if it is a conditional rule
        error:
          type: string
          description: The error message shown when validation fails
        column:
          type: string
        strict:
          type: boolean
          default: true
      required:
      - column
    LocalizedFieldRuleSerializerForinferior_toTyped:
      allOf:
      - $ref: '#/components/schemas/LocalizedFieldRuleUntyped'
      - $ref: '#/components/schemas/LocalizedFieldRuleSerializerForinferior_to'
    LocalizedFieldRuleSerializerForis_true:
      type: object
      properties:
        negate:
          type: boolean
          default: false
          description: Whether to take the contrary of the rule
        group:
          type: string
          description: Group to which the rule belongs if it is a conditional rule
        error:
          type: string
          description: The error message shown when validation fails
    LocalizedFieldRuleSerializerForis_trueTyped:
      allOf:
      - $ref: '#/components/schemas/LocalizedFieldRuleUntyped'
      - $ref: '#/components/schemas/LocalizedFieldRuleSerializerForis_true'
    LocalizedFieldRuleSerializerForisin:
      type: object
      properties:
        negate:
          type: boolean
          default: false
          description: Whether to take the contrary of the rule
        group:
          type: string
          description: Group to which the rule belongs if it is a conditional rule
        error:
          type: string
          description: The error message shown when validation fails
        values:
          type: array
          items:
            type: string
            nullable: true
    LocalizedFieldRuleSerializerForisinTyped:
      allOf:
      - $ref: '#/components/schemas/LocalizedFieldRuleUntyped'
      - $ref: '#/components/schemas/LocalizedFieldRuleSerializerForisin'
    LocalizedFieldRuleSerializerFormax_date:
      type: object
      properties:
        negate:
          type: boolean
          default: false
          description: Whether to take the contrary of the rule
        group:
          type: string
          description: Group to which the rule belongs if it is a conditional rule
        error:
          type: string
          description: The error message shown when validation fails
        max_date:
          type: string
      required:
      - max_date
    LocalizedFieldRuleSerializerFormax_dateTyped:
      allOf:
      - $ref: '#/components/schemas/LocalizedFieldRuleUntyped'
      - $ref: '#/components/schemas/LocalizedFieldRuleSerializerFormax_date'
    LocalizedFieldRuleSerializerFormax_length:
      type: object
      properties:
        negate:
          type: boolean
          default: false
          description: Whether to take the contrary of the rule
        group:
          type: string
          description: Group to which the rule belongs if it is a conditional rule
        error:
          type: string
          description: The error message shown when validation fails
        threshold:
          type: number
          format: double
        strict:
          type: boolean
          default: true
    LocalizedFieldRuleSerializerFormax_lengthTyped:
      allOf:
      - $ref: '#/components/schemas/LocalizedFieldRuleUntyped'
      - $ref: '#/components/schemas/LocalizedFieldRuleSerializerFormax_length'
    LocalizedFieldRuleSerializerFormax_value:
      type: object
      properties:
        negate:
          type: boolean
          default: false
          description: Whether to take the contrary of the rule
        group:
          type: string
          description: Group to which the rule belongs if it is a conditional rule
        error:
          type: string
          description: The error message shown when validation fails
        threshold:
          type: number
          format: double
        strict:
          type: boolean
          default: true
    LocalizedFieldRuleSerializerFormax_valueTyped:
      allOf:
      - $ref: '#/components/schemas/LocalizedFieldRuleUntyped'
      - $ref: '#/components/schemas/LocalizedFieldRuleSerializerFormax_value'
    LocalizedFieldRuleSerializerFormin_date:
      type: object
      properties:
        negate:
          type: boolean
          default: false
          description: Whether to take the contrary of the rule
        group:
          type: string
          description: Group to which the rule belongs if it is a conditional rule
        error:
          type: string
          description: The error message shown when validation fails
        min_date:
          type: string
      required:
      - min_date
    LocalizedFieldRuleSerializerFormin_dateTyped:
      allOf:
      - $ref: '#/components/schemas/LocalizedFieldRuleUntyped'
      - $ref: '#/components/schemas/LocalizedFieldRuleSerializerFormin_date'
    LocalizedFieldRuleSerializerFormin_value:
      type: object
      properties:
        negate:
          type: boolean
          default: false
          description: Whether to take the contrary of the rule
        group:
          type: string
          description: Group to which the rule belongs if it is a conditional rule
        error:
          type: string
          description: The error message shown when validation fails
        threshold:
          type: number
          format: double
        strict:
          type: boolean
          default: true
    LocalizedFieldRuleSerializerFormin_valueTyped:
      allOf:
      - $ref: '#/components/schemas/LocalizedFieldRuleUntyped'
      - $ref: '#/components/schemas/LocalizedFieldRuleSerializerFormin_value'
    LocalizedFieldRuleSerializerForregex:
      type: object
      properties:
        negate:
          type: boolean
          default: false
          description: Whether to take the contrary of the rule
        group:
          type: string
          description: Group to which the rule belongs if it is a conditional rule
        error:
          type: string
          description: The error message shown when validation fails
        pattern:
          type: string
      required:
      - pattern
    LocalizedFieldRuleSerializerForregexTyped:
      allOf:
      - $ref: '#/components/schemas/LocalizedFieldRuleUntyped'
      - $ref: '#/components/schemas/LocalizedFieldRuleSerializerForregex'
    LocalizedFieldRuleSerializerForrequired:
      type: object
      properties:
        negate:
          type: boolean
          default: false
          description: Whether to take the contrary of the rule
        group:
          type: string
          description: Group to which the rule belongs if it is a conditional rule
        error:
          type: string
          description: The error message shown when validation fails
    LocalizedFieldRuleSerializerForrequiredTyped:
      allOf:
      - $ref: '#/components/schemas/LocalizedFieldRuleUntyped'
      - $ref: '#/components/schemas/LocalizedFieldRuleSerializerForrequired'
    LocalizedFieldRuleSerializerForrequired_on:
      type: object
      properties:
        negate:
          type: boolean
          default: false
          description: Whether to take the contrary of the rule
        group:
          type: string
          description: Group to which the rule belongs if it is a conditional rule
        error:
          type: string
          description: The error message shown when validation fails
        column:
          type: string
        pattern:
          type: string
      required:
      - column
      - pattern
    LocalizedFieldRuleSerializerForrequired_onTyped:
      allOf:
      - $ref: '#/components/schemas/LocalizedFieldRuleUntyped'
      - $ref: '#/components/schemas/LocalizedFieldRuleSerializerForrequired_on'
    LocalizedFieldRuleSerializerForrequired_with:
      type: object
      properties:
        negate:
          type: boolean
          default: false
          description: Whether to take the contrary of the rule
        group:
          type: string
          description: Group to which the rule belongs if it is a conditional rule
        error:
          type: string
          description: The error message shown when validation fails
        columns:
          type: array
          items: {}
        which:
          allOf:
          - $ref: '#/components/schemas/Which459Enum'
          default: all
    LocalizedFieldRuleSerializerForrequired_withTyped:
      allOf:
      - $ref: '#/components/schemas/LocalizedFieldRuleUntyped'
      - $ref: '#/components/schemas/LocalizedFieldRuleSerializerForrequired_with'
    LocalizedFieldRuleSerializerForrequired_without:
      type: object
      properties:
        negate:
          type: boolean
          default: false
          description: Whether to take the contrary of the rule
        group:
          type: string
          description: Group to which the rule belongs if it is a conditional rule
        error:
          type: string
          description: The error message shown when validation fails
        columns:
          type: array
          items: {}
        which:
          allOf:
          - $ref: '#/components/schemas/Which459Enum'
          default: all
    LocalizedFieldRuleSerializerForrequired_withoutTyped:
      allOf:
      - $ref: '#/components/schemas/LocalizedFieldRuleUntyped'
      - $ref: '#/components/schemas/LocalizedFieldRuleSerializerForrequired_without'
    LocalizedFieldRuleSerializerForsuperior_to:
      type: object
      properties:
        negate:
          type: boolean
          default: false
          description: Whether to take the contrary of the rule
        group:
          type: string
          description: Group to which the rule belongs if it is a conditional rule
        error:
          type: string
          description: The error message shown when validation fails
        column:
          type: string
        strict:
          type: boolean
          default: true
      required:
      - column
    LocalizedFieldRuleSerializerForsuperior_toTyped:
      allOf:
      - $ref: '#/components/schemas/LocalizedFieldRuleUntyped'
      - $ref: '#/components/schemas/LocalizedFieldRuleSerializerForsuperior_to'
    LocalizedFieldRuleSerializerForuneditable:
      type: object
      properties:
        negate:
          type: boolean
          default: false
          description: Whether to take the contrary of the rule
        group:
          type: string
          description: Group to which the rule belongs if it is a conditional rule
        error:
          type: string
          description: The error message shown when validation fails
    LocalizedFieldRuleSerializerForuneditableTyped:
      allOf:
      - $ref: '#/components/schemas/LocalizedFieldRuleUntyped'
      - $ref: '#/components/schemas/LocalizedFieldRuleSerializerForuneditable'
    LocalizedFieldRuleSerializerForunique:
      type: object
      properties:
        negate:
          type: boolean
          default: false
          description: Whether to take the contrary of the rule
        group:
          type: string
          description: Group to which the rule belongs if it is a conditional rule
        error:
          type: string
          description: The error message shown when validation fails
    LocalizedFieldRuleSerializerForuniqueTyped:
      allOf:
      - $ref: '#/components/schemas/LocalizedFieldRuleUntyped'
      - $ref: '#/components/schemas/LocalizedFieldRuleSerializerForunique'
    LocalizedFieldRuleSerializerForunique_on:
      type: object
      properties:
        negate:
          type: boolean
          default: false
          description: Whether to take the contrary of the rule
        group:
          type: string
          description: Group to which the rule belongs if it is a conditional rule
        error:
          type: string
          description: The error message shown when validation fails
        columns:
          type: array
          items: {}
    LocalizedFieldRuleSerializerForunique_onTyped:
      allOf:
      - $ref: '#/components/schemas/LocalizedFieldRuleUntyped'
      - $ref: '#/components/schemas/LocalizedFieldRuleSerializerForunique_on'
    LocalizedFieldRuleSerializerForunique_with:
      type: object
      properties:
        negate:
          type: boolean
          default: false
          description: Whether to take the contrary of the rule
        group:
          type: string
          description: Group to which the rule belongs if it is a conditional rule
        error:
          type: string
          description: The error message shown when validation fails
        column:
          type: string
      required:
      - column
    LocalizedFieldRuleSerializerForunique_withTyped:
      allOf:
      - $ref: '#/components/schemas/LocalizedFieldRuleUntyped'
      - $ref: '#/components/schemas/LocalizedFieldRuleSerializerForunique_with'
    LocalizedFieldRuleUntyped:
      type: object
      description: |-
        A polymorphic serializer, reusing django-rest-polymorphic's serializer
        but adding additional features:
        - data is prevalidated before applying the child serializer validation
            this will avoid errors which could occur for ex if the input value is not a mapping
        - allows to specify a default resource type
        - allows to merge the validated data from the parent serializer and the child serializer
            (the child validated data always takes priority)
            !!!Note this option is currently unsupported in the generated documentation beyond the resource type!!!
      properties:
        name:
          type: string
      required:
      - name
    LocalizedGroup:
      type: object
      properties:
        name:
          type: string
        conditions:
          type: array
          items:
            $ref: '#/components/schemas/LocalizedGroupCondition'
        label:
          type: string
      required:
      - label
      - name
    LocalizedGroupCondition:
      oneOf:
      - $ref: '#/components/schemas/LocalizedGroupConditionSerializerForrequiredTyped'
      - $ref: '#/components/schemas/LocalizedGroupConditionSerializerForrequired_withTyped'
      - $ref: '#/components/schemas/LocalizedGroupConditionSerializerForrequired_withoutTyped'
      - $ref: '#/components/schemas/LocalizedGroupConditionSerializerForrequired_onTyped'
      - $ref: '#/components/schemas/LocalizedGroupConditionSerializerForregexTyped'
      - $ref: '#/components/schemas/LocalizedGroupConditionSerializerForis_trueTyped'
      - $ref: '#/components/schemas/LocalizedGroupConditionSerializerForuniqueTyped'
      - $ref: '#/components/schemas/LocalizedGroupConditionSerializerForunique_withTyped'
      - $ref: '#/components/schemas/LocalizedGroupConditionSerializerForunique_onTyped'
      - $ref: '#/components/schemas/LocalizedGroupConditionSerializerForisinTyped'
      - $ref: '#/components/schemas/LocalizedGroupConditionSerializerFormax_lengthTyped'
      - $ref: '#/components/schemas/LocalizedGroupConditionSerializerFormax_valueTyped'
      - $ref: '#/components/schemas/LocalizedGroupConditionSerializerFormin_valueTyped'
      - $ref: '#/components/schemas/LocalizedGroupConditionSerializerForsuperior_toTyped'
      - $ref: '#/components/schemas/LocalizedGroupConditionSerializerForinferior_toTyped'
      - $ref: '#/components/schemas/LocalizedGroupConditionSerializerForuneditableTyped'
      - $ref: '#/components/schemas/LocalizedGroupConditionSerializerForequal_toTyped'
      - $ref: '#/components/schemas/LocalizedGroupConditionSerializerFormin_dateTyped'
      - $ref: '#/components/schemas/LocalizedGroupConditionSerializerFormax_dateTyped'
      - $ref: '#/components/schemas/LocalizedGroupConditionSerializerForany_ofTyped'
      discriminator:
        propertyName: name
        mapping:
          required: '#/components/schemas/LocalizedGroupConditionSerializerForrequiredTyped'
          required_with: '#/components/schemas/LocalizedGroupConditionSerializerForrequired_withTyped'
          required_without: '#/components/schemas/LocalizedGroupConditionSerializerForrequired_withoutTyped'
          required_on: '#/components/schemas/LocalizedGroupConditionSerializerForrequired_onTyped'
          regex: '#/components/schemas/LocalizedGroupConditionSerializerForregexTyped'
          is_true: '#/components/schemas/LocalizedGroupConditionSerializerForis_trueTyped'
          unique: '#/components/schemas/LocalizedGroupConditionSerializerForuniqueTyped'
          unique_with: '#/components/schemas/LocalizedGroupConditionSerializerForunique_withTyped'
          unique_on: '#/components/schemas/LocalizedGroupConditionSerializerForunique_onTyped'
          isin: '#/components/schemas/LocalizedGroupConditionSerializerForisinTyped'
          max_length: '#/components/schemas/LocalizedGroupConditionSerializerFormax_lengthTyped'
          max_value: '#/components/schemas/LocalizedGroupConditionSerializerFormax_valueTyped'
          min_value: '#/components/schemas/LocalizedGroupConditionSerializerFormin_valueTyped'
          superior_to: '#/components/schemas/LocalizedGroupConditionSerializerForsuperior_toTyped'
          inferior_to: '#/components/schemas/LocalizedGroupConditionSerializerForinferior_toTyped'
          uneditable: '#/components/schemas/LocalizedGroupConditionSerializerForuneditableTyped'
          equal_to: '#/components/schemas/LocalizedGroupConditionSerializerForequal_toTyped'
          min_date: '#/components/schemas/LocalizedGroupConditionSerializerFormin_dateTyped'
          max_date: '#/components/schemas/LocalizedGroupConditionSerializerFormax_dateTyped'
          any_of: '#/components/schemas/LocalizedGroupConditionSerializerForany_ofTyped'
    LocalizedGroupConditionSerializerForany_of:
      type: object
      properties:
        negate:
          type: boolean
          default: false
          description: Whether to take the contrary of the rule
        group:
          type: string
          description: Group to which the rule belongs if it is a conditional rule
        field:
          type: string
        cases:
          type: array
          items:
            $ref: '#/components/schemas/LocalizedNestedGroupConditionCase'
      required:
      - field
    LocalizedGroupConditionSerializerForany_ofTyped:
      allOf:
      - $ref: '#/components/schemas/LocalizedGroupConditionUntyped'
      - $ref: '#/components/schemas/LocalizedGroupConditionSerializerForany_of'
    LocalizedGroupConditionSerializerForequal_to:
      type: object
      properties:
        negate:
          type: boolean
          default: false
          description: Whether to take the contrary of the rule
        group:
          type: string
          description: Group to which the rule belongs if it is a conditional rule
        field:
          type: string
        column:
          type: string
      required:
      - column
      - field
    LocalizedGroupConditionSerializerForequal_toTyped:
      allOf:
      - $ref: '#/components/schemas/LocalizedGroupConditionUntyped'
      - $ref: '#/components/schemas/LocalizedGroupConditionSerializerForequal_to'
    LocalizedGroupConditionSerializerForinferior_to:
      type: object
      properties:
        negate:
          type: boolean
          default: false
          description: Whether to take the contrary of the rule
        group:
          type: string
          description: Group to which the rule belongs if it is a conditional rule
        field:
          type: string
        column:
          type: string
        strict:
          type: boolean
          default: true
      required:
      - column
      - field
    LocalizedGroupConditionSerializerForinferior_toTyped:
      allOf:
      - $ref: '#/components/schemas/LocalizedGroupConditionUntyped'
      - $ref: '#/components/schemas/LocalizedGroupConditionSerializerForinferior_to'
    LocalizedGroupConditionSerializerForis_true:
      type: object
      properties:
        negate:
          type: boolean
          default: false
          description: Whether to take the contrary of the rule
        group:
          type: string
          description: Group to which the rule belongs if it is a conditional rule
        field:
          type: string
      required:
      - field
    LocalizedGroupConditionSerializerForis_trueTyped:
      allOf:
      - $ref: '#/components/schemas/LocalizedGroupConditionUntyped'
      - $ref: '#/components/schemas/LocalizedGroupConditionSerializerForis_true'
    LocalizedGroupConditionSerializerForisin:
      type: object
      properties:
        negate:
          type: boolean
          default: false
          description: Whether to take the contrary of the rule
        group:
          type: string
          description: Group to which the rule belongs if it is a conditional rule
        field:
          type: string
        values:
          type: array
          items:
            type: string
            nullable: true
      required:
      - field
    LocalizedGroupConditionSerializerForisinTyped:
      allOf:
      - $ref: '#/components/schemas/LocalizedGroupConditionUntyped'
      - $ref: '#/components/schemas/LocalizedGroupConditionSerializerForisin'
    LocalizedGroupConditionSerializerFormax_date:
      type: object
      properties:
        negate:
          type: boolean
          default: false
          description: Whether to take the contrary of the rule
        group:
          type: string
          description: Group to which the rule belongs if it is a conditional rule
        field:
          type: string
        max_date:
          type: string
      required:
      - field
      - max_date
    LocalizedGroupConditionSerializerFormax_dateTyped:
      allOf:
      - $ref: '#/components/schemas/LocalizedGroupConditionUntyped'
      - $ref: '#/components/schemas/LocalizedGroupConditionSerializerFormax_date'
    LocalizedGroupConditionSerializerFormax_length:
      type: object
      properties:
        negate:
          type: boolean
          default: false
          description: Whether to take the contrary of the rule
        group:
          type: string
          description: Group to which the rule belongs if it is a conditional rule
        field:
          type: string
        threshold:
          type: number
          format: double
        strict:
          type: boolean
          default: true
      required:
      - field
    LocalizedGroupConditionSerializerFormax_lengthTyped:
      allOf:
      - $ref: '#/components/schemas/LocalizedGroupConditionUntyped'
      - $ref: '#/components/schemas/LocalizedGroupConditionSerializerFormax_length'
    LocalizedGroupConditionSerializerFormax_value:
      type: object
      properties:
        negate:
          type: boolean
          default: false
          description: Whether to take the contrary of the rule
        group:
          type: string
          description: Group to which the rule belongs if it is a conditional rule
        field:
          type: string
        threshold:
          type: number
          format: double
        strict:
          type: boolean
          default: true
      required:
      - field
    LocalizedGroupConditionSerializerFormax_valueTyped:
      allOf:
      - $ref: '#/components/schemas/LocalizedGroupConditionUntyped'
      - $ref: '#/components/schemas/LocalizedGroupConditionSerializerFormax_value'
    LocalizedGroupConditionSerializerFormin_date:
      type: object
      properties:
        negate:
          type: boolean
          default: false
          description: Whether to take the contrary of the rule
        group:
          type: string
          description: Group to which the rule belongs if it is a conditional rule
        field:
          type: string
        min_date:
          type: string
      required:
      - field
      - min_date
    LocalizedGroupConditionSerializerFormin_dateTyped:
      allOf:
      - $ref: '#/components/schemas/LocalizedGroupConditionUntyped'
      - $ref: '#/components/schemas/LocalizedGroupConditionSerializerFormin_date'
    LocalizedGroupConditionSerializerFormin_value:
      type: object
      properties:
        negate:
          type: boolean
          default: false
          description: Whether to take the contrary of the rule
        group:
          type: string
          description: Group to which the rule belongs if it is a conditional rule
        field:
          type: string
        threshold:
          type: number
          format: double
        strict:
          type: boolean
          default: true
      required:
      - field
    LocalizedGroupConditionSerializerFormin_valueTyped:
      allOf:
      - $ref: '#/components/schemas/LocalizedGroupConditionUntyped'
      - $ref: '#/components/schemas/LocalizedGroupConditionSerializerFormin_value'
    LocalizedGroupConditionSerializerForregex:
      type: object
      properties:
        negate:
          type: boolean
          default: false
          description: Whether to take the contrary of the rule
        group:
          type: string
          description: Group to which the rule belongs if it is a conditional rule
        field:
          type: string
        pattern:
          type: string
      required:
      - field
      - pattern
    LocalizedGroupConditionSerializerForregexTyped:
      allOf:
      - $ref: '#/components/schemas/LocalizedGroupConditionUntyped'
      - $ref: '#/components/schemas/LocalizedGroupConditionSerializerForregex'
    LocalizedGroupConditionSerializerForrequired:
      type: object
      properties:
        negate:
          type: boolean
          default: false
          description: Whether to take the contrary of the rule
        group:
          type: string
          description: Group to which the rule belongs if it is a conditional rule
        field:
          type: string
      required:
      - field
    LocalizedGroupConditionSerializerForrequiredTyped:
      allOf:
      - $ref: '#/components/schemas/LocalizedGroupConditionUntyped'
      - $ref: '#/components/schemas/LocalizedGroupConditionSerializerForrequired'
    LocalizedGroupConditionSerializerForrequired_on:
      type: object
      properties:
        negate:
          type: boolean
          default: false
          description: Whether to take the contrary of the rule
        group:
          type: string
          description: Group to which the rule belongs if it is a conditional rule
        field:
          type: string
        column:
          type: string
        pattern:
          type: string
      required:
      - column
      - field
      - pattern
    LocalizedGroupConditionSerializerForrequired_onTyped:
      allOf:
      - $ref: '#/components/schemas/LocalizedGroupConditionUntyped'
      - $ref: '#/components/schemas/LocalizedGroupConditionSerializerForrequired_on'
    LocalizedGroupConditionSerializerForrequired_with:
      type: object
      properties:
        negate:
          type: boolean
          default: false
          description: Whether to take the contrary of the rule
        group:
          type: string
          description: Group to which the rule belongs if it is a conditional rule
        field:
          type: string
        columns:
          type: array
          items: {}
        which:
          allOf:
          - $ref: '#/components/schemas/Which459Enum'
          default: all
      required:
      - field
    LocalizedGroupConditionSerializerForrequired_withTyped:
      allOf:
      - $ref: '#/components/schemas/LocalizedGroupConditionUntyped'
      - $ref: '#/components/schemas/LocalizedGroupConditionSerializerForrequired_with'
    LocalizedGroupConditionSerializerForrequired_without:
      type: object
      properties:
        negate:
          type: boolean
          default: false
          description: Whether to take the contrary of the rule
        group:
          type: string
          description: Group to which the rule belongs if it is a conditional rule
        field:
          type: string
        columns:
          type: array
          items: {}
        which:
          allOf:
          - $ref: '#/components/schemas/Which459Enum'
          default: all
      required:
      - field
    LocalizedGroupConditionSerializerForrequired_withoutTyped:
      allOf:
      - $ref: '#/components/schemas/LocalizedGroupConditionUntyped'
      - $ref: '#/components/schemas/LocalizedGroupConditionSerializerForrequired_without'
    LocalizedGroupConditionSerializerForsuperior_to:
      type: object
      properties:
        negate:
          type: boolean
          default: false
          description: Whether to take the contrary of the rule
        group:
          type: string
          description: Group to which the rule belongs if it is a conditional rule
        field:
          type: string
        column:
          type: string
        strict:
          type: boolean
          default: true
      required:
      - column
      - field
    LocalizedGroupConditionSerializerForsuperior_toTyped:
      allOf:
      - $ref: '#/components/schemas/LocalizedGroupConditionUntyped'
      - $ref: '#/components/schemas/LocalizedGroupConditionSerializerForsuperior_to'
    LocalizedGroupConditionSerializerForuneditable:
      type: object
      properties:
        negate:
          type: boolean
          default: false
          description: Whether to take the contrary of the rule
        group:
          type: string
          description: Group to which the rule belongs if it is a conditional rule
        field:
          type: string
      required:
      - field
    LocalizedGroupConditionSerializerForuneditableTyped:
      allOf:
      - $ref: '#/components/schemas/LocalizedGroupConditionUntyped'
      - $ref: '#/components/schemas/LocalizedGroupConditionSerializerForuneditable'
    LocalizedGroupConditionSerializerForunique:
      type: object
      properties:
        negate:
          type: boolean
          default: false
          description: Whether to take the contrary of the rule
        group:
          type: string
          description: Group to which the rule belongs if it is a conditional rule
        field:
          type: string
      required:
      - field
    LocalizedGroupConditionSerializerForuniqueTyped:
      allOf:
      - $ref: '#/components/schemas/LocalizedGroupConditionUntyped'
      - $ref: '#/components/schemas/LocalizedGroupConditionSerializerForunique'
    LocalizedGroupConditionSerializerForunique_on:
      type: object
      properties:
        negate:
          type: boolean
          default: false
          description: Whether to take the contrary of the rule
        group:
          type: string
          description: Group to which the rule belongs if it is a conditional rule
        field:
          type: string
        columns:
          type: array
          items: {}
      required:
      - field
    LocalizedGroupConditionSerializerForunique_onTyped:
      allOf:
      - $ref: '#/components/schemas/LocalizedGroupConditionUntyped'
      - $ref: '#/components/schemas/LocalizedGroupConditionSerializerForunique_on'
    LocalizedGroupConditionSerializerForunique_with:
      type: object
      properties:
        negate:
          type: boolean
          default: false
          description: Whether to take the contrary of the rule
        group:
          type: string
          description: Group to which the rule belongs if it is a conditional rule
        field:
          type: string
        column:
          type: string
      required:
      - column
      - field
    LocalizedGroupConditionSerializerForunique_withTyped:
      allOf:
      - $ref: '#/components/schemas/LocalizedGroupConditionUntyped'
      - $ref: '#/components/schemas/LocalizedGroupConditionSerializerForunique_with'
    LocalizedGroupConditionUntyped:
      type: object
      description: |-
        A polymorphic serializer, reusing django-rest-polymorphic's serializer
        but adding additional features:
        - data is prevalidated before applying the child serializer validation
            this will avoid errors which could occur for ex if the input value is not a mapping
        - allows to specify a default resource type
        - allows to merge the validated data from the parent serializer and the child serializer
            (the child validated data always takes priority)
            !!!Note this option is currently unsupported in the generated documentation beyond the resource type!!!
      properties:
        name:
          type: string
      required:
      - name
    LocalizedMappingField:
      oneOf:
      - $ref: '#/components/schemas/LocalizedMappingFieldSerializerForstringTyped'
      - $ref: '#/components/schemas/LocalizedMappingFieldSerializerForhtmlTyped'
      - $ref: '#/components/schemas/LocalizedMappingFieldSerializerFornumberTyped'
      - $ref: '#/components/schemas/LocalizedMappingFieldSerializerForselectTyped'
      - $ref: '#/components/schemas/LocalizedMappingFieldSerializerForbooleanTyped'
      - $ref: '#/components/schemas/LocalizedMappingFieldSerializerForurlTyped'
      - $ref: '#/components/schemas/LocalizedMappingFieldSerializerForimage_urlTyped'
      - $ref: '#/components/schemas/LocalizedMappingFieldSerializerFormediaTyped'
      - $ref: '#/components/schemas/LocalizedMappingFieldSerializerFordateTyped'
      discriminator:
        propertyName: type
        mapping:
          string: '#/components/schemas/LocalizedMappingFieldSerializerForstringTyped'
          html: '#/components/schemas/LocalizedMappingFieldSerializerForhtmlTyped'
          number: '#/components/schemas/LocalizedMappingFieldSerializerFornumberTyped'
          select: '#/components/schemas/LocalizedMappingFieldSerializerForselectTyped'
          boolean: '#/components/schemas/LocalizedMappingFieldSerializerForbooleanTyped'
          url: '#/components/schemas/LocalizedMappingFieldSerializerForurlTyped'
          image_url: '#/components/schemas/LocalizedMappingFieldSerializerForimage_urlTyped'
          media: '#/components/schemas/LocalizedMappingFieldSerializerFormediaTyped'
          date: '#/components/schemas/LocalizedMappingFieldSerializerFordateTyped'
    LocalizedMappingFieldDefault:
      type: object
      properties:
        constant:
          type: string
          description: Value of the default
        column:
          type: string
          description: Column to use for the default value
        metadata:
          type: string
          description: Source of the metadata
        type:
          allOf:
          - $ref: '#/components/schemas/TypeA9fEnum'
          default: constant
    LocalizedMappingFieldSerializerForboolean:
      type: object
      properties:
        name:
          type: string
          description: The name of the field
        groups:
          type: array
          items:
            type: string
            nullable: true
            description: Group to which the field belongs
        default:
          type: array
          items:
            $ref: '#/components/schemas/LocalizedMappingFieldDefault'
        mode:
          allOf:
          - $ref: '#/components/schemas/Mode63fEnum'
          description: |-
            How to join multiple inputs in this column

            * `join` - Join inputs
            * `first` - Keep first input
        separator:
          type: string
          description: The sepatator to join text when multiple fields are provided
        protected:
          type: boolean
          default: false
          description: A protected field's value cannot be modified from its default
        editable_default:
          type: boolean
          default: false
        template:
          type: string
        label:
          type: string
        display_group:
          type: string
          nullable: true
        description:
          type: string
        requirement_level:
          allOf:
          - $ref: '#/components/schemas/RequirementLevelEnum'
          default: optional
          description: |-
            Requirement levels: required, important, optional (default)

            * `required` - Required
            * `important` - Important
            * `optional` - Optional
      required:
      - description
      - label
      - name
    LocalizedMappingFieldSerializerForbooleanTyped:
      allOf:
      - $ref: '#/components/schemas/LocalizedMappingFieldUntyped'
      - $ref: '#/components/schemas/LocalizedMappingFieldSerializerForboolean'
    LocalizedMappingFieldSerializerFordate:
      type: object
      properties:
        name:
          type: string
          description: The name of the field
        groups:
          type: array
          items:
            type: string
            nullable: true
            description: Group to which the field belongs
        default:
          type: array
          items:
            $ref: '#/components/schemas/LocalizedMappingFieldDefault'
        mode:
          allOf:
          - $ref: '#/components/schemas/Mode63fEnum'
          description: |-
            How to join multiple inputs in this column

            * `join` - Join inputs
            * `first` - Keep first input
        separator:
          type: string
          description: The sepatator to join text when multiple fields are provided
        protected:
          type: boolean
          default: false
          description: A protected field's value cannot be modified from its default
        editable_default:
          type: boolean
          default: false
        template:
          type: string
        label:
          type: string
        display_group:
          type: string
          nullable: true
        description:
          type: string
        requirement_level:
          allOf:
          - $ref: '#/components/schemas/RequirementLevelEnum'
          default: optional
          description: |-
            Requirement levels: required, important, optional (default)

            * `required` - Required
            * `important` - Important
            * `optional` - Optional
      required:
      - description
      - label
      - name
    LocalizedMappingFieldSerializerFordateTyped:
      allOf:
      - $ref: '#/components/schemas/LocalizedMappingFieldUntyped'
      - $ref: '#/components/schemas/LocalizedMappingFieldSerializerFordate'
    LocalizedMappingFieldSerializerForhtml:
      type: object
      properties:
        name:
          type: string
          description: The name of the field
        groups:
          type: array
          items:
            type: string
            nullable: true
            description: Group to which the field belongs
        default:
          type: array
          items:
            $ref: '#/components/schemas/LocalizedMappingFieldDefault'
        mode:
          allOf:
          - $ref: '#/components/schemas/Mode63fEnum'
          description: |-
            How to join multiple inputs in this column

            * `join` - Join inputs
            * `first` - Keep first input
        separator:
          type: string
          description: The sepatator to join text when multiple fields are provided
        protected:
          type: boolean
          default: false
          description: A protected field's value cannot be modified from its default
        editable_default:
          type: boolean
          default: false
        template:
          type: string
        label:
          type: string
        display_group:
          type: string
          nullable: true
        description:
          type: string
        requirement_level:
          allOf:
          - $ref: '#/components/schemas/RequirementLevelEnum'
          default: optional
          description: |-
            Requirement levels: required, important, optional (default)

            * `required` - Required
            * `important` - Important
            * `optional` - Optional
      required:
      - description
      - label
      - name
    LocalizedMappingFieldSerializerForhtmlTyped:
      allOf:
      - $ref: '#/components/schemas/LocalizedMappingFieldUntyped'
      - $ref: '#/components/schemas/LocalizedMappingFieldSerializerForhtml'
    LocalizedMappingFieldSerializerForimage_url:
      type: object
      properties:
        name:
          type: string
          description: The name of the field
        groups:
          type: array
          items:
            type: string
            nullable: true
            description: Group to which the field belongs
        default:
          type: array
          items:
            $ref: '#/components/schemas/LocalizedMappingFieldDefault'
        mode:
          allOf:
          - $ref: '#/components/schemas/Mode63fEnum'
          description: |-
            How to join multiple inputs in this column

            * `join` - Join inputs
            * `first` - Keep first input
        separator:
          type: string
          description: The sepatator to join text when multiple fields are provided
        protected:
          type: boolean
          default: false
          description: A protected field's value cannot be modified from its default
        editable_default:
          type: boolean
          default: false
        template:
          type: string
        label:
          type: string
        display_group:
          type: string
          nullable: true
        description:
          type: string
        requirement_level:
          allOf:
          - $ref: '#/components/schemas/RequirementLevelEnum'
          default: optional
          description: |-
            Requirement levels: required, important, optional (default)

            * `required` - Required
            * `important` - Important
            * `optional` - Optional
        multiple:
          type: boolean
          default: false
      required:
      - description
      - label
      - name
    LocalizedMappingFieldSerializerForimage_urlTyped:
      allOf:
      - $ref: '#/components/schemas/LocalizedMappingFieldUntyped'
      - $ref: '#/components/schemas/LocalizedMappingFieldSerializerForimage_url'
    LocalizedMappingFieldSerializerFormedia:
      type: object
      properties:
        name:
          type: string
          description: The name of the field
        groups:
          type: array
          items:
            type: string
            nullable: true
            description: Group to which the field belongs
        default:
          type: array
          items:
            $ref: '#/components/schemas/LocalizedMappingFieldDefault'
        mode:
          allOf:
          - $ref: '#/components/schemas/Mode63fEnum'
          description: |-
            How to join multiple inputs in this column

            * `join` - Join inputs
            * `first` - Keep first input
        separator:
          type: string
          description: The sepatator to join text when multiple fields are provided
        protected:
          type: boolean
          default: false
          description: A protected field's value cannot be modified from its default
        editable_default:
          type: boolean
          default: false
        template:
          type: string
        label:
          type: string
        display_group:
          type: string
          nullable: true
        description:
          type: string
        requirement_level:
          allOf:
          - $ref: '#/components/schemas/RequirementLevelEnum'
          default: optional
          description: |-
            Requirement levels: required, important, optional (default)

            * `required` - Required
            * `important` - Important
            * `optional` - Optional
      required:
      - description
      - label
      - name
    LocalizedMappingFieldSerializerFormediaTyped:
      allOf:
      - $ref: '#/components/schemas/LocalizedMappingFieldUntyped'
      - $ref: '#/components/schemas/LocalizedMappingFieldSerializerFormedia'
    LocalizedMappingFieldSerializerFornumber:
      type: object
      properties:
        name:
          type: string
          description: The name of the field
        groups:
          type: array
          items:
            type: string
            nullable: true
            description: Group to which the field belongs
        default:
          type: array
          items:
            $ref: '#/components/schemas/LocalizedMappingFieldDefault'
        mode:
          allOf:
          - $ref: '#/components/schemas/Mode63fEnum'
          description: |-
            How to join multiple inputs in this column

            * `join` - Join inputs
            * `first` - Keep first input
        separator:
          type: string
          description: The sepatator to join text when multiple fields are provided
        protected:
          type: boolean
          default: false
          description: A protected field's value cannot be modified from its default
        editable_default:
          type: boolean
          default: false
        template:
          type: string
        label:
          type: string
        display_group:
          type: string
          nullable: true
        description:
          type: string
        requirement_level:
          allOf:
          - $ref: '#/components/schemas/RequirementLevelEnum'
          default: optional
          description: |-
            Requirement levels: required, important, optional (default)

            * `required` - Required
            * `important` - Important
            * `optional` - Optional
      required:
      - description
      - label
      - name
    LocalizedMappingFieldSerializerFornumberTyped:
      allOf:
      - $ref: '#/components/schemas/LocalizedMappingFieldUntyped'
      - $ref: '#/components/schemas/LocalizedMappingFieldSerializerFornumber'
    LocalizedMappingFieldSerializerForselect:
      type: object
      properties:
        default:
          type: array
          items:
            $ref: '#/components/schemas/LocalizedMappingFieldDefault'
        options_collection_name:
          type: string
          nullable: true
        name:
          type: string
          description: The name of the field
        groups:
          type: array
          items:
            type: string
            nullable: true
            description: Group to which the field belongs
        mode:
          allOf:
          - $ref: '#/components/schemas/Mode63fEnum'
          description: |-
            How to join multiple inputs in this column

            * `join` - Join inputs
            * `first` - Keep first input
        separator:
          type: string
          description: The sepatator to join text when multiple fields are provided
        protected:
          type: boolean
          default: false
          description: A protected field's value cannot be modified from its default
        editable_default:
          type: boolean
          default: false
        template:
          type: string
        label:
          type: string
        display_group:
          type: string
          nullable: true
        description:
          type: string
        requirement_level:
          allOf:
          - $ref: '#/components/schemas/RequirementLevelEnum'
          default: optional
          description: |-
            Requirement levels: required, important, optional (default)

            * `required` - Required
            * `important` - Important
            * `optional` - Optional
        multiple:
          type: boolean
          default: false
      required:
      - description
      - label
      - name
    LocalizedMappingFieldSerializerForselectTyped:
      allOf:
      - $ref: '#/components/schemas/LocalizedMappingFieldUntyped'
      - $ref: '#/components/schemas/LocalizedMappingFieldSerializerForselect'
    LocalizedMappingFieldSerializerForstring:
      type: object
      properties:
        name:
          type: string
          description: The name of the field
        groups:
          type: array
          items:
            type: string
            nullable: true
            description: Group to which the field belongs
        default:
          type: array
          items:
            $ref: '#/components/schemas/LocalizedMappingFieldDefault'
        mode:
          allOf:
          - $ref: '#/components/schemas/Mode63fEnum'
          description: |-
            How to join multiple inputs in this column

            * `join` - Join inputs
            * `first` - Keep first input
        separator:
          type: string
          description: The sepatator to join text when multiple fields are provided
        protected:
          type: boolean
          default: false
          description: A protected field's value cannot be modified from its default
        editable_default:
          type: boolean
          default: false
        template:
          type: string
        label:
          type: string
        display_group:
          type: string
          nullable: true
        description:
          type: string
        requirement_level:
          allOf:
          - $ref: '#/components/schemas/RequirementLevelEnum'
          default: optional
          description: |-
            Requirement levels: required, important, optional (default)

            * `required` - Required
            * `important` - Important
            * `optional` - Optional
      required:
      - description
      - label
      - name
    LocalizedMappingFieldSerializerForstringTyped:
      allOf:
      - $ref: '#/components/schemas/LocalizedMappingFieldUntyped'
      - $ref: '#/components/schemas/LocalizedMappingFieldSerializerForstring'
    LocalizedMappingFieldSerializerForurl:
      type: object
      properties:
        name:
          type: string
          description: The name of the field
        groups:
          type: array
          items:
            type: string
            nullable: true
            description: Group to which the field belongs
        default:
          type: array
          items:
            $ref: '#/components/schemas/LocalizedMappingFieldDefault'
        mode:
          allOf:
          - $ref: '#/components/schemas/Mode63fEnum'
          description: |-
            How to join multiple inputs in this column

            * `join` - Join inputs
            * `first` - Keep first input
        separator:
          type: string
          description: The sepatator to join text when multiple fields are provided
        protected:
          type: boolean
          default: false
          description: A protected field's value cannot be modified from its default
        editable_default:
          type: boolean
          default: false
        template:
          type: string
        label:
          type: string
        display_group:
          type: string
          nullable: true
        description:
          type: string
        requirement_level:
          allOf:
          - $ref: '#/components/schemas/RequirementLevelEnum'
          default: optional
          description: |-
            Requirement levels: required, important, optional (default)

            * `required` - Required
            * `important` - Important
            * `optional` - Optional
        multiple:
          type: boolean
          default: false
      required:
      - description
      - label
      - name
    LocalizedMappingFieldSerializerForurlTyped:
      allOf:
      - $ref: '#/components/schemas/LocalizedMappingFieldUntyped'
      - $ref: '#/components/schemas/LocalizedMappingFieldSerializerForurl'
    LocalizedMappingFieldUntyped:
      type: object
      description: |-
        A polymorphic serializer, reusing django-rest-polymorphic's serializer
        but adding additional features:
        - data is prevalidated before applying the child serializer validation
            this will avoid errors which could occur for ex if the input value is not a mapping
        - allows to specify a default resource type
        - allows to merge the validated data from the parent serializer and the child serializer
            (the child validated data always takes priority)
            !!!Note this option is currently unsupported in the generated documentation beyond the resource type!!!
      properties:
        type:
          type: string
      required:
      - type
    LocalizedMappingParams:
      type: object
      properties:
        default_join_separator:
          type: string
          default: ' | '
          description: The default sepatator to join text when multiple fields are
            provided
        block_learning:
          type: boolean
          default: false
          description: Do not keep learn between each job
        fields:
          type: array
          items:
            $ref: '#/components/schemas/LocalizedMappingField'
        groups:
          type: array
          items:
            $ref: '#/components/schemas/LocalizedGroup'
        include_fields:
          type: array
          items:
            $ref: '#/components/schemas/LocalizedFieldFilter'
        exclude_fields:
          type: array
          items:
            $ref: '#/components/schemas/LocalizedFieldFilter'
        max_requirement_level:
          allOf:
          - $ref: '#/components/schemas/MaxRequirementLevelEnum'
          default: required
          description: |-
            Max requirement levels: required, important, optional

            * `required` - Required
            * `important` - Important
            * `optional` - Optional
    LocalizedMatchHistoryEnrichment:
      type: object
      properties:
        reference_base:
          type: string
        record_list:
          type: array
          items:
            type: object
            additionalProperties:
              nullable: true
        unique_keys:
          type: array
          items:
            type: string
        override:
          type: boolean
          default: true
        columns:
          type: array
          items:
            type: string
    LocalizedMatchHistoryFilter:
      type: object
      properties:
        reference_base:
          type: string
        record_list:
          type: array
          items:
            type: object
            additionalProperties:
              nullable: true
        unique_keys:
          type: array
          items:
            type: string
        mode:
          allOf:
          - $ref: '#/components/schemas/ModeE18Enum'
          default: blacklist
    LocalizedMatchHistoryImport:
      type: object
      properties:
        reference_base:
          type: string
        which:
          allOf:
          - $ref: '#/components/schemas/WhichB33Enum'
          default: kept
    LocalizedMatchhistoryParams:
      type: object
      properties:
        filter_mode:
          allOf:
          - $ref: '#/components/schemas/FilterModeEnum'
          default: and
        filters:
          type: array
          items:
            $ref: '#/components/schemas/LocalizedMatchHistoryFilter'
        enrichments:
          type: array
          items:
            $ref: '#/components/schemas/LocalizedMatchHistoryEnrichment'
        imports:
          type: array
          items:
            $ref: '#/components/schemas/LocalizedMatchHistoryImport'
    LocalizedMatchingGroup:
      type: object
      properties:
        name:
          type: string
        conditions:
          type: array
          items:
            $ref: '#/components/schemas/LocalizedGroupCondition'
        label:
          type: string
        invariant_columns:
          type: array
          items:
            type: string
        variant_columns:
          type: array
          items:
            type: string
        unique_columns:
          type: array
          items:
            type: string
      required:
      - label
      - name
    LocalizedMisc:
      type: object
      properties:
        allow:
          type: boolean
          default: false
        multiple:
          type: boolean
        separator:
          type: string
    LocalizedModelConfigForCoreAi:
      type: object
      properties:
        model_field_mappings:
          type: array
          items:
            $ref: '#/components/schemas/LocalizedFieldCoreAiConfig'
    LocalizedModelConfigForCoreAiTyped:
      allOf:
      - $ref: '#/components/schemas/LocalizedCategorisationParamsSerializerForJobUntyped'
      - $ref: '#/components/schemas/LocalizedModelConfigForCoreAi'
    LocalizedModelConfigSerializerForDemo:
      type: object
      properties:
        model_results:
          type: array
          items:
            $ref: '#/components/schemas/LocalizedModelResults'
    LocalizedModelConfigSerializerForDemoTyped:
      allOf:
      - $ref: '#/components/schemas/LocalizedCategorisationParamsSerializerForJobUntyped'
      - $ref: '#/components/schemas/LocalizedModelConfigSerializerForDemo'
    LocalizedModelResults:
      type: object
      properties:
        sources:
          type: object
          additionalProperties: {}
        results:
          type: array
          items:
            $ref: '#/components/schemas/LocalizedDemoRowResult'
    LocalizedNamedLabeledField:
      type: object
      properties:
        name:
          type: string
        label:
          type: string
      required:
      - label
      - name
    LocalizedNestedGroupCondition:
      oneOf:
      - $ref: '#/components/schemas/LocalizedNestedGroupConditionSerializerForrequiredTyped'
      - $ref: '#/components/schemas/LocalizedNestedGroupConditionSerializerForrequired_withTyped'
      - $ref: '#/components/schemas/LocalizedNestedGroupConditionSerializerForrequired_withoutTyped'
      - $ref: '#/components/schemas/LocalizedNestedGroupConditionSerializerForrequired_onTyped'
      - $ref: '#/components/schemas/LocalizedNestedGroupConditionSerializerForregexTyped'
      - $ref: '#/components/schemas/LocalizedNestedGroupConditionSerializerForis_trueTyped'
      - $ref: '#/components/schemas/LocalizedNestedGroupConditionSerializerForuniqueTyped'
      - $ref: '#/components/schemas/LocalizedNestedGroupConditionSerializerForunique_withTyped'
      - $ref: '#/components/schemas/LocalizedNestedGroupConditionSerializerForunique_onTyped'
      - $ref: '#/components/schemas/LocalizedNestedGroupConditionSerializerForisinTyped'
      - $ref: '#/components/schemas/LocalizedNestedGroupConditionSerializerFormax_lengthTyped'
      - $ref: '#/components/schemas/LocalizedNestedGroupConditionSerializerFormax_valueTyped'
      - $ref: '#/components/schemas/LocalizedNestedGroupConditionSerializerFormin_valueTyped'
      - $ref: '#/components/schemas/LocalizedNestedGroupConditionSerializerForsuperior_toTyped'
      - $ref: '#/components/schemas/LocalizedNestedGroupConditionSerializerForinferior_toTyped'
      - $ref: '#/components/schemas/LocalizedNestedGroupConditionSerializerForuneditableTyped'
      - $ref: '#/components/schemas/LocalizedNestedGroupConditionSerializerForequal_toTyped'
      - $ref: '#/components/schemas/LocalizedNestedGroupConditionSerializerFormin_dateTyped'
      - $ref: '#/components/schemas/LocalizedNestedGroupConditionSerializerFormax_dateTyped'
      - $ref: '#/components/schemas/LocalizedNestedGroupConditionSerializerForany_ofTyped'
      discriminator:
        propertyName: name
        mapping:
          required: '#/components/schemas/LocalizedNestedGroupConditionSerializerForrequiredTyped'
          required_with: '#/components/schemas/LocalizedNestedGroupConditionSerializerForrequired_withTyped'
          required_without: '#/components/schemas/LocalizedNestedGroupConditionSerializerForrequired_withoutTyped'
          required_on: '#/components/schemas/LocalizedNestedGroupConditionSerializerForrequired_onTyped'
          regex: '#/components/schemas/LocalizedNestedGroupConditionSerializerForregexTyped'
          is_true: '#/components/schemas/LocalizedNestedGroupConditionSerializerForis_trueTyped'
          unique: '#/components/schemas/LocalizedNestedGroupConditionSerializerForuniqueTyped'
          unique_with: '#/components/schemas/LocalizedNestedGroupConditionSerializerForunique_withTyped'
          unique_on: '#/components/schemas/LocalizedNestedGroupConditionSerializerForunique_onTyped'
          isin: '#/components/schemas/LocalizedNestedGroupConditionSerializerForisinTyped'
          max_length: '#/components/schemas/LocalizedNestedGroupConditionSerializerFormax_lengthTyped'
          max_value: '#/components/schemas/LocalizedNestedGroupConditionSerializerFormax_valueTyped'
          min_value: '#/components/schemas/LocalizedNestedGroupConditionSerializerFormin_valueTyped'
          superior_to: '#/components/schemas/LocalizedNestedGroupConditionSerializerForsuperior_toTyped'
          inferior_to: '#/components/schemas/LocalizedNestedGroupConditionSerializerForinferior_toTyped'
          uneditable: '#/components/schemas/LocalizedNestedGroupConditionSerializerForuneditableTyped'
          equal_to: '#/components/schemas/LocalizedNestedGroupConditionSerializerForequal_toTyped'
          min_date: '#/components/schemas/LocalizedNestedGroupConditionSerializerFormin_dateTyped'
          max_date: '#/components/schemas/LocalizedNestedGroupConditionSerializerFormax_dateTyped'
          any_of: '#/components/schemas/LocalizedNestedGroupConditionSerializerForany_ofTyped'
    LocalizedNestedGroupConditionCase:
      type: object
      properties:
        conditions:
          type: array
          items:
            $ref: '#/components/schemas/LocalizedNestedGroupCondition'
    LocalizedNestedGroupConditionSerializerForany_of:
      type: object
      properties:
        negate:
          type: boolean
          default: false
          description: Whether to take the contrary of the rule
        group:
          type: string
          description: Group to which the rule belongs if it is a conditional rule
        field:
          type: string
          description: Field to apply this condition to (overrides rule-level field
            if specified)
        cases:
          type: array
          items:
            $ref: '#/components/schemas/LocalizedRecursiveNestedGroupCondition'
    LocalizedNestedGroupConditionSerializerForany_ofTyped:
      allOf:
      - $ref: '#/components/schemas/LocalizedNestedGroupConditionUntyped'
      - $ref: '#/components/schemas/LocalizedNestedGroupConditionSerializerForany_of'
    LocalizedNestedGroupConditionSerializerForequal_to:
      type: object
      properties:
        negate:
          type: boolean
          default: false
          description: Whether to take the contrary of the rule
        group:
          type: string
          description: Group to which the rule belongs if it is a conditional rule
        field:
          type: string
          description: Field to apply this condition to (overrides rule-level field
            if specified)
        column:
          type: string
      required:
      - column
    LocalizedNestedGroupConditionSerializerForequal_toTyped:
      allOf:
      - $ref: '#/components/schemas/LocalizedNestedGroupConditionUntyped'
      - $ref: '#/components/schemas/LocalizedNestedGroupConditionSerializerForequal_to'
    LocalizedNestedGroupConditionSerializerForinferior_to:
      type: object
      properties:
        negate:
          type: boolean
          default: false
          description: Whether to take the contrary of the rule
        group:
          type: string
          description: Group to which the rule belongs if it is a conditional rule
        field:
          type: string
          description: Field to apply this condition to (overrides rule-level field
            if specified)
        column:
          type: string
        strict:
          type: boolean
          default: true
      required:
      - column
    LocalizedNestedGroupConditionSerializerForinferior_toTyped:
      allOf:
      - $ref: '#/components/schemas/LocalizedNestedGroupConditionUntyped'
      - $ref: '#/components/schemas/LocalizedNestedGroupConditionSerializerForinferior_to'
    LocalizedNestedGroupConditionSerializerForis_true:
      type: object
      properties:
        negate:
          type: boolean
          default: false
          description: Whether to take the contrary of the rule
        group:
          type: string
          description: Group to which the rule belongs if it is a conditional rule
        field:
          type: string
          description: Field to apply this condition to (overrides rule-level field
            if specified)
    LocalizedNestedGroupConditionSerializerForis_trueTyped:
      allOf:
      - $ref: '#/components/schemas/LocalizedNestedGroupConditionUntyped'
      - $ref: '#/components/schemas/LocalizedNestedGroupConditionSerializerForis_true'
    LocalizedNestedGroupConditionSerializerForisin:
      type: object
      properties:
        negate:
          type: boolean
          default: false
          description: Whether to take the contrary of the rule
        group:
          type: string
          description: Group to which the rule belongs if it is a conditional rule
        field:
          type: string
          description: Field to apply this condition to (overrides rule-level field
            if specified)
        values:
          type: array
          items:
            type: string
            nullable: true
    LocalizedNestedGroupConditionSerializerForisinTyped:
      allOf:
      - $ref: '#/components/schemas/LocalizedNestedGroupConditionUntyped'
      - $ref: '#/components/schemas/LocalizedNestedGroupConditionSerializerForisin'
    LocalizedNestedGroupConditionSerializerFormax_date:
      type: object
      properties:
        negate:
          type: boolean
          default: false
          description: Whether to take the contrary of the rule
        group:
          type: string
          description: Group to which the rule belongs if it is a conditional rule
        field:
          type: string
          description: Field to apply this condition to (overrides rule-level field
            if specified)
        max_date:
          type: string
      required:
      - max_date
    LocalizedNestedGroupConditionSerializerFormax_dateTyped:
      allOf:
      - $ref: '#/components/schemas/LocalizedNestedGroupConditionUntyped'
      - $ref: '#/components/schemas/LocalizedNestedGroupConditionSerializerFormax_date'
    LocalizedNestedGroupConditionSerializerFormax_length:
      type: object
      properties:
        negate:
          type: boolean
          default: false
          description: Whether to take the contrary of the rule
        group:
          type: string
          description: Group to which the rule belongs if it is a conditional rule
        field:
          type: string
          description: Field to apply this condition to (overrides rule-level field
            if specified)
        threshold:
          type: number
          format: double
        strict:
          type: boolean
          default: true
    LocalizedNestedGroupConditionSerializerFormax_lengthTyped:
      allOf:
      - $ref: '#/components/schemas/LocalizedNestedGroupConditionUntyped'
      - $ref: '#/components/schemas/LocalizedNestedGroupConditionSerializerFormax_length'
    LocalizedNestedGroupConditionSerializerFormax_value:
      type: object
      properties:
        negate:
          type: boolean
          default: false
          description: Whether to take the contrary of the rule
        group:
          type: string
          description: Group to which the rule belongs if it is a conditional rule
        field:
          type: string
          description: Field to apply this condition to (overrides rule-level field
            if specified)
        threshold:
          type: number
          format: double
        strict:
          type: boolean
          default: true
    LocalizedNestedGroupConditionSerializerFormax_valueTyped:
      allOf:
      - $ref: '#/components/schemas/LocalizedNestedGroupConditionUntyped'
      - $ref: '#/components/schemas/LocalizedNestedGroupConditionSerializerFormax_value'
    LocalizedNestedGroupConditionSerializerFormin_date:
      type: object
      properties:
        negate:
          type: boolean
          default: false
          description: Whether to take the contrary of the rule
        group:
          type: string
          description: Group to which the rule belongs if it is a conditional rule
        field:
          type: string
          description: Field to apply this condition to (overrides rule-level field
            if specified)
        min_date:
          type: string
      required:
      - min_date
    LocalizedNestedGroupConditionSerializerFormin_dateTyped:
      allOf:
      - $ref: '#/components/schemas/LocalizedNestedGroupConditionUntyped'
      - $ref: '#/components/schemas/LocalizedNestedGroupConditionSerializerFormin_date'
    LocalizedNestedGroupConditionSerializerFormin_value:
      type: object
      properties:
        negate:
          type: boolean
          default: false
          description: Whether to take the contrary of the rule
        group:
          type: string
          description: Group to which the rule belongs if it is a conditional rule
        field:
          type: string
          description: Field to apply this condition to (overrides rule-level field
            if specified)
        threshold:
          type: number
          format: double
        strict:
          type: boolean
          default: true
    LocalizedNestedGroupConditionSerializerFormin_valueTyped:
      allOf:
      - $ref: '#/components/schemas/LocalizedNestedGroupConditionUntyped'
      - $ref: '#/components/schemas/LocalizedNestedGroupConditionSerializerFormin_value'
    LocalizedNestedGroupConditionSerializerForregex:
      type: object
      properties:
        negate:
          type: boolean
          default: false
          description: Whether to take the contrary of the rule
        group:
          type: string
          description: Group to which the rule belongs if it is a conditional rule
        field:
          type: string
          description: Field to apply this condition to (overrides rule-level field
            if specified)
        pattern:
          type: string
      required:
      - pattern
    LocalizedNestedGroupConditionSerializerForregexTyped:
      allOf:
      - $ref: '#/components/schemas/LocalizedNestedGroupConditionUntyped'
      - $ref: '#/components/schemas/LocalizedNestedGroupConditionSerializerForregex'
    LocalizedNestedGroupConditionSerializerForrequired:
      type: object
      properties:
        negate:
          type: boolean
          default: false
          description: Whether to take the contrary of the rule
        group:
          type: string
          description: Group to which the rule belongs if it is a conditional rule
        field:
          type: string
          description: Field to apply this condition to (overrides rule-level field
            if specified)
    LocalizedNestedGroupConditionSerializerForrequiredTyped:
      allOf:
      - $ref: '#/components/schemas/LocalizedNestedGroupConditionUntyped'
      - $ref: '#/components/schemas/LocalizedNestedGroupConditionSerializerForrequired'
    LocalizedNestedGroupConditionSerializerForrequired_on:
      type: object
      properties:
        negate:
          type: boolean
          default: false
          description: Whether to take the contrary of the rule
        group:
          type: string
          description: Group to which the rule belongs if it is a conditional rule
        field:
          type: string
          description: Field to apply this condition to (overrides rule-level field
            if specified)
        column:
          type: string
        pattern:
          type: string
      required:
      - column
      - pattern
    LocalizedNestedGroupConditionSerializerForrequired_onTyped:
      allOf:
      - $ref: '#/components/schemas/LocalizedNestedGroupConditionUntyped'
      - $ref: '#/components/schemas/LocalizedNestedGroupConditionSerializerForrequired_on'
    LocalizedNestedGroupConditionSerializerForrequired_with:
      type: object
      properties:
        negate:
          type: boolean
          default: false
          description: Whether to take the contrary of the rule
        group:
          type: string
          description: Group to which the rule belongs if it is a conditional rule
        field:
          type: string
          description: Field to apply this condition to (overrides rule-level field
            if specified)
        columns:
          type: array
          items: {}
        which:
          allOf:
          - $ref: '#/components/schemas/Which459Enum'
          default: all
    LocalizedNestedGroupConditionSerializerForrequired_withTyped:
      allOf:
      - $ref: '#/components/schemas/LocalizedNestedGroupConditionUntyped'
      - $ref: '#/components/schemas/LocalizedNestedGroupConditionSerializerForrequired_with'
    LocalizedNestedGroupConditionSerializerForrequired_without:
      type: object
      properties:
        negate:
          type: boolean
          default: false
          description: Whether to take the contrary of the rule
        group:
          type: string
          description: Group to which the rule belongs if it is a conditional rule
        field:
          type: string
          description: Field to apply this condition to (overrides rule-level field
            if specified)
        columns:
          type: array
          items: {}
        which:
          allOf:
          - $ref: '#/components/schemas/Which459Enum'
          default: all
    LocalizedNestedGroupConditionSerializerForrequired_withoutTyped:
      allOf:
      - $ref: '#/components/schemas/LocalizedNestedGroupConditionUntyped'
      - $ref: '#/components/schemas/LocalizedNestedGroupConditionSerializerForrequired_without'
    LocalizedNestedGroupConditionSerializerForsuperior_to:
      type: object
      properties:
        negate:
          type: boolean
          default: false
          description: Whether to take the contrary of the rule
        group:
          type: string
          description: Group to which the rule belongs if it is a conditional rule
        field:
          type: string
          description: Field to apply this condition to (overrides rule-level field
            if specified)
        column:
          type: string
        strict:
          type: boolean
          default: true
      required:
      - column
    LocalizedNestedGroupConditionSerializerForsuperior_toTyped:
      allOf:
      - $ref: '#/components/schemas/LocalizedNestedGroupConditionUntyped'
      - $ref: '#/components/schemas/LocalizedNestedGroupConditionSerializerForsuperior_to'
    LocalizedNestedGroupConditionSerializerForuneditable:
      type: object
      properties:
        negate:
          type: boolean
          default: false
          description: Whether to take the contrary of the rule
        group:
          type: string
          description: Group to which the rule belongs if it is a conditional rule
        field:
          type: string
          description: Field to apply this condition to (overrides rule-level field
            if specified)
    LocalizedNestedGroupConditionSerializerForuneditableTyped:
      allOf:
      - $ref: '#/components/schemas/LocalizedNestedGroupConditionUntyped'
      - $ref: '#/components/schemas/LocalizedNestedGroupConditionSerializerForuneditable'
    LocalizedNestedGroupConditionSerializerForunique:
      type: object
      properties:
        negate:
          type: boolean
          default: false
          description: Whether to take the contrary of the rule
        group:
          type: string
          description: Group to which the rule belongs if it is a conditional rule
        field:
          type: string
          description: Field to apply this condition to (overrides rule-level field
            if specified)
    LocalizedNestedGroupConditionSerializerForuniqueTyped:
      allOf:
      - $ref: '#/components/schemas/LocalizedNestedGroupConditionUntyped'
      - $ref: '#/components/schemas/LocalizedNestedGroupConditionSerializerForunique'
    LocalizedNestedGroupConditionSerializerForunique_on:
      type: object
      properties:
        negate:
          type: boolean
          default: false
          description: Whether to take the contrary of the rule
        group:
          type: string
          description: Group to which the rule belongs if it is a conditional rule
        field:
          type: string
          description: Field to apply this condition to (overrides rule-level field
            if specified)
        columns:
          type: array
          items: {}
    LocalizedNestedGroupConditionSerializerForunique_onTyped:
      allOf:
      - $ref: '#/components/schemas/LocalizedNestedGroupConditionUntyped'
      - $ref: '#/components/schemas/LocalizedNestedGroupConditionSerializerForunique_on'
    LocalizedNestedGroupConditionSerializerForunique_with:
      type: object
      properties:
        negate:
          type: boolean
          default: false
          description: Whether to take the contrary of the rule
        group:
          type: string
          description: Group to which the rule belongs if it is a conditional rule
        field:
          type: string
          description: Field to apply this condition to (overrides rule-level field
            if specified)
        column:
          type: string
      required:
      - column
    LocalizedNestedGroupConditionSerializerForunique_withTyped:
      allOf:
      - $ref: '#/components/schemas/LocalizedNestedGroupConditionUntyped'
      - $ref: '#/components/schemas/LocalizedNestedGroupConditionSerializerForunique_with'
    LocalizedNestedGroupConditionUntyped:
      type: object
      description: |-
        A polymorphic serializer, reusing django-rest-polymorphic's serializer
        but adding additional features:
        - data is prevalidated before applying the child serializer validation
            this will avoid errors which could occur for ex if the input value is not a mapping
        - allows to specify a default resource type
        - allows to merge the validated data from the parent serializer and the child serializer
            (the child validated data always takes priority)
            !!!Note this option is currently unsupported in the generated documentation beyond the resource type!!!
      properties:
        name:
          type: string
      required:
      - name
    LocalizedNormalisationField:
      oneOf:
      - $ref: '#/components/schemas/LocalizedNormalisationFieldSerializerForstringTyped'
      - $ref: '#/components/schemas/LocalizedNormalisationFieldSerializerForhtmlTyped'
      - $ref: '#/components/schemas/LocalizedNormalisationFieldSerializerFornumberTyped'
      - $ref: '#/components/schemas/LocalizedNormalisationFieldSerializerForselectTyped'
      - $ref: '#/components/schemas/LocalizedNormalisationFieldSerializerForbooleanTyped'
      - $ref: '#/components/schemas/LocalizedNormalisationFieldSerializerForurlTyped'
      - $ref: '#/components/schemas/LocalizedNormalisationFieldSerializerForimage_urlTyped'
      - $ref: '#/components/schemas/LocalizedNormalisationFieldSerializerFormediaTyped'
      - $ref: '#/components/schemas/LocalizedNormalisationFieldSerializerFordateTyped'
      discriminator:
        propertyName: type
        mapping:
          string: '#/components/schemas/LocalizedNormalisationFieldSerializerForstringTyped'
          html: '#/components/schemas/LocalizedNormalisationFieldSerializerForhtmlTyped'
          number: '#/components/schemas/LocalizedNormalisationFieldSerializerFornumberTyped'
          select: '#/components/schemas/LocalizedNormalisationFieldSerializerForselectTyped'
          boolean: '#/components/schemas/LocalizedNormalisationFieldSerializerForbooleanTyped'
          url: '#/components/schemas/LocalizedNormalisationFieldSerializerForurlTyped'
          image_url: '#/components/schemas/LocalizedNormalisationFieldSerializerForimage_urlTyped'
          media: '#/components/schemas/LocalizedNormalisationFieldSerializerFormediaTyped'
          date: '#/components/schemas/LocalizedNormalisationFieldSerializerFordateTyped'
    LocalizedNormalisationFieldSerializerForboolean:
      type: object
      properties:
        name:
          type: string
          description: The name of the field
        groups:
          type: array
          items:
            type: string
            nullable: true
            description: Group to which the field belongs
        mapping:
          type: object
          additionalProperties:
            type: string
        force_mapping:
          type: boolean
        label:
          type: string
        display_group:
          type: string
          nullable: true
        default:
          description: Value to set if the field is empty or can't be converted
        rules:
          type: array
          items:
            $ref: '#/components/schemas/LocalizedFieldRule'
        warnings:
          type: array
          items:
            $ref: '#/components/schemas/LocalizedFieldRule'
        transformations:
          type: array
          items:
            $ref: '#/components/schemas/LocalizedTransformation'
        requirement_level:
          allOf:
          - $ref: '#/components/schemas/RequirementLevelEnum'
          default: optional
          description: |-
            Requirement levels: required, important, optional (default)

            * `required` - Required
            * `important` - Important
            * `optional` - Optional
      required:
      - label
      - name
    LocalizedNormalisationFieldSerializerForbooleanTyped:
      allOf:
      - $ref: '#/components/schemas/LocalizedNormalisationFieldUntyped'
      - $ref: '#/components/schemas/LocalizedNormalisationFieldSerializerForboolean'
    LocalizedNormalisationFieldSerializerFordate:
      type: object
      properties:
        name:
          type: string
          description: The name of the field
        groups:
          type: array
          items:
            type: string
            nullable: true
            description: Group to which the field belongs
        mapping:
          type: object
          additionalProperties:
            type: string
        force_mapping:
          type: boolean
        label:
          type: string
        display_group:
          type: string
          nullable: true
        default:
          description: Value to set if the field is empty or can't be converted
        rules:
          type: array
          items:
            $ref: '#/components/schemas/LocalizedFieldRule'
        warnings:
          type: array
          items:
            $ref: '#/components/schemas/LocalizedFieldRule'
        transformations:
          type: array
          items:
            $ref: '#/components/schemas/LocalizedTransformation'
        requirement_level:
          allOf:
          - $ref: '#/components/schemas/RequirementLevelEnum'
          default: optional
          description: |-
            Requirement levels: required, important, optional (default)

            * `required` - Required
            * `important` - Important
            * `optional` - Optional
        format:
          type: string
      required:
      - format
      - label
      - name
    LocalizedNormalisationFieldSerializerFordateTyped:
      allOf:
      - $ref: '#/components/schemas/LocalizedNormalisationFieldUntyped'
      - $ref: '#/components/schemas/LocalizedNormalisationFieldSerializerFordate'
    LocalizedNormalisationFieldSerializerForhtml:
      type: object
      properties:
        name:
          type: string
          description: The name of the field
        groups:
          type: array
          items:
            type: string
            nullable: true
            description: Group to which the field belongs
        mapping:
          type: object
          additionalProperties:
            type: string
        force_mapping:
          type: boolean
        label:
          type: string
        display_group:
          type: string
          nullable: true
        default:
          description: Value to set if the field is empty or can't be converted
        rules:
          type: array
          items:
            $ref: '#/components/schemas/LocalizedFieldRule'
        warnings:
          type: array
          items:
            $ref: '#/components/schemas/LocalizedFieldRule'
        transformations:
          type: array
          items:
            $ref: '#/components/schemas/LocalizedTransformation'
        requirement_level:
          allOf:
          - $ref: '#/components/schemas/RequirementLevelEnum'
          default: optional
          description: |-
            Requirement levels: required, important, optional (default)

            * `required` - Required
            * `important` - Important
            * `optional` - Optional
        tag_whitelist:
          type: array
          items:
            type: string
        remove_attributes:
          type: boolean
      required:
      - label
      - name
    LocalizedNormalisationFieldSerializerForhtmlTyped:
      allOf:
      - $ref: '#/components/schemas/LocalizedNormalisationFieldUntyped'
      - $ref: '#/components/schemas/LocalizedNormalisationFieldSerializerForhtml'
    LocalizedNormalisationFieldSerializerForimage_url:
      type: object
      properties:
        name:
          type: string
          description: The name of the field
        groups:
          type: array
          items:
            type: string
            nullable: true
            description: Group to which the field belongs
        mapping:
          type: object
          additionalProperties:
            type: string
        force_mapping:
          type: boolean
        label:
          type: string
        display_group:
          type: string
          nullable: true
        default:
          description: Value to set if the field is empty or can't be converted
        rules:
          type: array
          items:
            $ref: '#/components/schemas/LocalizedFieldRule'
        warnings:
          type: array
          items:
            $ref: '#/components/schemas/LocalizedFieldRule'
        transformations:
          type: array
          items:
            $ref: '#/components/schemas/LocalizedTransformation'
        requirement_level:
          allOf:
          - $ref: '#/components/schemas/RequirementLevelEnum'
          default: optional
          description: |-
            Requirement levels: required, important, optional (default)

            * `required` - Required
            * `important` - Important
            * `optional` - Optional
        multiple:
          type: boolean
          default: false
        separator:
          type: string
          default: ;
        authorized_extensions:
          type: array
          items:
            type: string
      required:
      - label
      - name
    LocalizedNormalisationFieldSerializerForimage_urlTyped:
      allOf:
      - $ref: '#/components/schemas/LocalizedNormalisationFieldUntyped'
      - $ref: '#/components/schemas/LocalizedNormalisationFieldSerializerForimage_url'
    LocalizedNormalisationFieldSerializerFormedia:
      type: object
      properties:
        name:
          type: string
          description: The name of the field
        groups:
          type: array
          items:
            type: string
            nullable: true
            description: Group to which the field belongs
        mapping:
          type: object
          additionalProperties:
            type: string
        force_mapping:
          type: boolean
        label:
          type: string
        display_group:
          type: string
          nullable: true
        default:
          description: Value to set if the field is empty or can't be converted
        rules:
          type: array
          items:
            $ref: '#/components/schemas/LocalizedFieldRule'
        warnings:
          type: array
          items:
            $ref: '#/components/schemas/LocalizedFieldRule'
        transformations:
          type: array
          items:
            $ref: '#/components/schemas/LocalizedTransformation'
        requirement_level:
          allOf:
          - $ref: '#/components/schemas/RequirementLevelEnum'
          default: optional
          description: |-
            Requirement levels: required, important, optional (default)

            * `required` - Required
            * `important` - Important
            * `optional` - Optional
        supported_media_types:
          type: array
          items:
            $ref: '#/components/schemas/SupportedMediaTypesEnum'
        separator:
          type: string
          default: ;
        max_file_size_in_kb:
          type: integer
          minimum: 0
          nullable: true
      required:
      - label
      - name
    LocalizedNormalisationFieldSerializerFormediaTyped:
      allOf:
      - $ref: '#/components/schemas/LocalizedNormalisationFieldUntyped'
      - $ref: '#/components/schemas/LocalizedNormalisationFieldSerializerFormedia'
    LocalizedNormalisationFieldSerializerFornumber:
      type: object
      properties:
        name:
          type: string
          description: The name of the field
        groups:
          type: array
          items:
            type: string
            nullable: true
            description: Group to which the field belongs
        mapping:
          type: object
          additionalProperties:
            type: string
        force_mapping:
          type: boolean
        label:
          type: string
        display_group:
          type: string
          nullable: true
        default:
          description: Value to set if the field is empty or can't be converted
        rules:
          type: array
          items:
            $ref: '#/components/schemas/LocalizedFieldRule'
        warnings:
          type: array
          items:
            $ref: '#/components/schemas/LocalizedFieldRule'
        transformations:
          type: array
          items:
            $ref: '#/components/schemas/LocalizedTransformation'
        requirement_level:
          allOf:
          - $ref: '#/components/schemas/RequirementLevelEnum'
          default: optional
          description: |-
            Requirement levels: required, important, optional (default)

            * `required` - Required
            * `important` - Important
            * `optional` - Optional
        decimals:
          type: integer
          nullable: true
        number_pattern:
          type: string
          nullable: true
        number_substitution:
          type: string
          nullable: true
      required:
      - label
      - name
    LocalizedNormalisationFieldSerializerFornumberTyped:
      allOf:
      - $ref: '#/components/schemas/LocalizedNormalisationFieldUntyped'
      - $ref: '#/components/schemas/LocalizedNormalisationFieldSerializerFornumber'
    LocalizedNormalisationFieldSerializerForselect:
      type: object
      properties:
        options_collection_name:
          type: string
        name:
          type: string
          description: The name of the field
        groups:
          type: array
          items:
            type: string
            nullable: true
            description: Group to which the field belongs
        mapping:
          type: object
          additionalProperties:
            type: string
        force_mapping:
          type: boolean
        label:
          type: string
        display_group:
          type: string
          nullable: true
        default:
          description: Value to set if the field is empty or can't be converted
        rules:
          type: array
          items:
            $ref: '#/components/schemas/LocalizedFieldRule'
        warnings:
          type: array
          items:
            $ref: '#/components/schemas/LocalizedFieldRule'
        transformations:
          type: array
          items:
            $ref: '#/components/schemas/LocalizedTransformation'
        requirement_level:
          allOf:
          - $ref: '#/components/schemas/RequirementLevelEnum'
          default: optional
          description: |-
            Requirement levels: required, important, optional (default)

            * `required` - Required
            * `important` - Important
            * `optional` - Optional
        multiple:
          type: boolean
          default: false
        separator:
          type: string
          default: ;
        max_choices:
          type: integer
          nullable: true
      required:
      - label
      - name
      - options_collection_name
    LocalizedNormalisationFieldSerializerForselectTyped:
      allOf:
      - $ref: '#/components/schemas/LocalizedNormalisationFieldUntyped'
      - $ref: '#/components/schemas/LocalizedNormalisationFieldSerializerForselect'
    LocalizedNormalisationFieldSerializerForstring:
      type: object
      properties:
        name:
          type: string
          description: The name of the field
        groups:
          type: array
          items:
            type: string
            nullable: true
            description: Group to which the field belongs
        mapping:
          type: object
          additionalProperties:
            type: string
        force_mapping:
          type: boolean
        label:
          type: string
        display_group:
          type: string
          nullable: true
        default:
          description: Value to set if the field is empty or can't be converted
        rules:
          type: array
          items:
            $ref: '#/components/schemas/LocalizedFieldRule'
        warnings:
          type: array
          items:
            $ref: '#/components/schemas/LocalizedFieldRule'
        transformations:
          type: array
          items:
            $ref: '#/components/schemas/LocalizedTransformation'
        requirement_level:
          allOf:
          - $ref: '#/components/schemas/RequirementLevelEnum'
          default: optional
          description: |-
            Requirement levels: required, important, optional (default)

            * `required` - Required
            * `important` - Important
            * `optional` - Optional
      required:
      - label
      - name
    LocalizedNormalisationFieldSerializerForstringTyped:
      allOf:
      - $ref: '#/components/schemas/LocalizedNormalisationFieldUntyped'
      - $ref: '#/components/schemas/LocalizedNormalisationFieldSerializerForstring'
    LocalizedNormalisationFieldSerializerForurl:
      type: object
      properties:
        name:
          type: string
          description: The name of the field
        groups:
          type: array
          items:
            type: string
            nullable: true
            description: Group to which the field belongs
        mapping:
          type: object
          additionalProperties:
            type: string
        force_mapping:
          type: boolean
        label:
          type: string
        display_group:
          type: string
          nullable: true
        default:
          description: Value to set if the field is empty or can't be converted
        rules:
          type: array
          items:
            $ref: '#/components/schemas/LocalizedFieldRule'
        warnings:
          type: array
          items:
            $ref: '#/components/schemas/LocalizedFieldRule'
        transformations:
          type: array
          items:
            $ref: '#/components/schemas/LocalizedTransformation'
        requirement_level:
          allOf:
          - $ref: '#/components/schemas/RequirementLevelEnum'
          default: optional
          description: |-
            Requirement levels: required, important, optional (default)

            * `required` - Required
            * `important` - Important
            * `optional` - Optional
        multiple:
          type: boolean
          default: false
        separator:
          type: string
          default: ;
      required:
      - label
      - name
    LocalizedNormalisationFieldSerializerForurlTyped:
      allOf:
      - $ref: '#/components/schemas/LocalizedNormalisationFieldUntyped'
      - $ref: '#/components/schemas/LocalizedNormalisationFieldSerializerForurl'
    LocalizedNormalisationFieldUntyped:
      type: object
      description: |-
        A polymorphic serializer, reusing django-rest-polymorphic's serializer
        but adding additional features:
        - data is prevalidated before applying the child serializer validation
            this will avoid errors which could occur for ex if the input value is not a mapping
        - allows to specify a default resource type
        - allows to merge the validated data from the parent serializer and the child serializer
            (the child validated data always takes priority)
            !!!Note this option is currently unsupported in the generated documentation beyond the resource type!!!
      properties:
        type:
          type: string
      required:
      - type
    LocalizedNormalisationParams:
      type: object
      properties:
        keep_excluded_fields:
          type: boolean
          default: true
        sources:
          type: array
          items:
            type: string
        fields:
          type: array
          items:
            $ref: '#/components/schemas/LocalizedNormalisationField'
        groups:
          type: array
          items:
            $ref: '#/components/schemas/LocalizedGroup'
        include_fields:
          type: array
          items:
            $ref: '#/components/schemas/LocalizedFieldFilter'
        exclude_fields:
          type: array
          items:
            $ref: '#/components/schemas/LocalizedFieldFilter'
        max_requirement_level:
          allOf:
          - $ref: '#/components/schemas/MaxRequirementLevelEnum'
          default: required
          description: |-
            Max requirement levels: required, important, optional

            * `required` - Required
            * `important` - Important
            * `optional` - Optional
    LocalizedRecursiveFieldRule:
      type: object
      properties:
        conditions:
          type: array
          items:
            $ref: '#/components/schemas/FieldRule'
    LocalizedRecursiveNestedGroupCondition:
      type: object
      properties:
        conditions:
          type: array
          items:
            $ref: '#/components/schemas/NestedGroupCondition'
    LocalizedTransformation:
      oneOf:
      - $ref: '#/components/schemas/LocalizedTransformationSerializerForcapitalizeTyped'
      - $ref: '#/components/schemas/LocalizedTransformationSerializerFortrim_whitespacesTyped'
      - $ref: '#/components/schemas/LocalizedTransformationSerializerForregexTyped'
      - $ref: '#/components/schemas/LocalizedTransformationSerializerForpadTyped'
      discriminator:
        propertyName: name
        mapping:
          capitalize: '#/components/schemas/LocalizedTransformationSerializerForcapitalizeTyped'
          trim_whitespaces: '#/components/schemas/LocalizedTransformationSerializerFortrim_whitespacesTyped'
          regex: '#/components/schemas/LocalizedTransformationSerializerForregexTyped'
          pad: '#/components/schemas/LocalizedTransformationSerializerForpadTyped'
    LocalizedTransformationSerializerForcapitalize:
      type: object
      properties:
        which:
          allOf:
          - $ref: '#/components/schemas/Which07dEnum'
          default: sentences
        mode:
          allOf:
          - $ref: '#/components/schemas/Mode845Enum'
          default: loose
    LocalizedTransformationSerializerForcapitalizeTyped:
      allOf:
      - $ref: '#/components/schemas/LocalizedTransformationUntyped'
      - $ref: '#/components/schemas/LocalizedTransformationSerializerForcapitalize'
    LocalizedTransformationSerializerForpad:
      type: object
      properties:
        fill:
          type: string
          default: '-'
        direction:
          allOf:
          - $ref: '#/components/schemas/DirectionEnum'
          default: left
        length:
          type: integer
          default: 0
    LocalizedTransformationSerializerForpadTyped:
      allOf:
      - $ref: '#/components/schemas/LocalizedTransformationUntyped'
      - $ref: '#/components/schemas/LocalizedTransformationSerializerForpad'
    LocalizedTransformationSerializerForregex:
      type: object
      properties:
        pattern:
          type: string
        substitution:
          type: string
        flags:
          type: array
          items:
            $ref: '#/components/schemas/FlagsEnum'
        force:
          type: boolean
          default: false
      required:
      - pattern
      - substitution
    LocalizedTransformationSerializerForregexTyped:
      allOf:
      - $ref: '#/components/schemas/LocalizedTransformationUntyped'
      - $ref: '#/components/schemas/LocalizedTransformationSerializerForregex'
    LocalizedTransformationSerializerFortrim_whitespaces:
      type: object
      properties:
        multiple:
          type: boolean
          default: false
    LocalizedTransformationSerializerFortrim_whitespacesTyped:
      allOf:
      - $ref: '#/components/schemas/LocalizedTransformationUntyped'
      - $ref: '#/components/schemas/LocalizedTransformationSerializerFortrim_whitespaces'
    LocalizedTransformationUntyped:
      type: object
      description: |-
        A polymorphic serializer, reusing django-rest-polymorphic's serializer
        but adding additional features:
        - data is prevalidated before applying the child serializer validation
            this will avoid errors which could occur for ex if the input value is not a mapping
        - allows to specify a default resource type
        - allows to merge the validated data from the parent serializer and the child serializer
            (the child validated data always takes priority)
            !!!Note this option is currently unsupported in the generated documentation beyond the resource type!!!
      properties:
        name:
          type: string
      required:
      - name
    LocalizedTyped:
      $ref: '#/components/schemas/LocalizedCategorisationParamsSerializerForJobUntyped'
    LocalizedValueMappingField:
      oneOf:
      - $ref: '#/components/schemas/LocalizedValueMappingFieldSerializerForselectTyped'
      - $ref: '#/components/schemas/LocalizedValueMappingFieldSerializerForbooleanTyped'
      discriminator:
        propertyName: type
        mapping:
          select: '#/components/schemas/LocalizedValueMappingFieldSerializerForselectTyped'
          boolean: '#/components/schemas/LocalizedValueMappingFieldSerializerForbooleanTyped'
    LocalizedValueMappingFieldSerializerForboolean:
      type: object
      properties:
        name:
          type: string
          description: The name of the field
        groups:
          type: array
          items:
            type: string
            nullable: true
            description: Group to which the field belongs
        max_distance:
          type: integer
          minimum: 0
          default: 0
        label:
          type: string
        display_group:
          type: string
          nullable: true
        default:
          description: Value to set if the field is empty or can't be converted
        transformations:
          type: array
          items:
            $ref: '#/components/schemas/LocalizedTransformation'
        description:
          type: string
        requirement_level:
          allOf:
          - $ref: '#/components/schemas/RequirementLevelEnum'
          default: optional
          description: |-
            Requirement levels: required, important, optional (default)

            * `required` - Required
            * `important` - Important
            * `optional` - Optional
      required:
      - description
      - label
      - name
    LocalizedValueMappingFieldSerializerForbooleanTyped:
      allOf:
      - $ref: '#/components/schemas/LocalizedValueMappingFieldUntyped'
      - $ref: '#/components/schemas/LocalizedValueMappingFieldSerializerForboolean'
    LocalizedValueMappingFieldSerializerForselect:
      type: object
      properties:
        options_collection_name:
          type: string
        name:
          type: string
          description: The name of the field
        groups:
          type: array
          items:
            type: string
            nullable: true
            description: Group to which the field belongs
        max_distance:
          type: integer
          minimum: 0
          default: 0
        label:
          type: string
        display_group:
          type: string
          nullable: true
        default:
          description: Value to set if the field is empty or can't be converted
        transformations:
          type: array
          items:
            $ref: '#/components/schemas/LocalizedTransformation'
        description:
          type: string
        requirement_level:
          allOf:
          - $ref: '#/components/schemas/RequirementLevelEnum'
          default: optional
          description: |-
            Requirement levels: required, important, optional (default)

            * `required` - Required
            * `important` - Important
            * `optional` - Optional
        multiple:
          type: boolean
          default: false
        separator:
          type: string
          default: ;
        max_choices:
          type: integer
          nullable: true
      required:
      - description
      - label
      - name
      - options_collection_name
    LocalizedValueMappingFieldSerializerForselectTyped:
      allOf:
      - $ref: '#/components/schemas/LocalizedValueMappingFieldUntyped'
      - $ref: '#/components/schemas/LocalizedValueMappingFieldSerializerForselect'
    LocalizedValueMappingFieldUntyped:
      type: object
      description: |-
        A polymorphic serializer, reusing django-rest-polymorphic's serializer
        but adding additional features:
        - data is prevalidated before applying the child serializer validation
            this will avoid errors which could occur for ex if the input value is not a mapping
        - allows to specify a default resource type
        - allows to merge the validated data from the parent serializer and the child serializer
            (the child validated data always takes priority)
            !!!Note this option is currently unsupported in the generated documentation beyond the resource type!!!
      properties:
        type:
          type: string
      required:
      - type
    LocalizedValueMappingParams:
      type: object
      properties:
        keep_unmapped:
          type: boolean
          default: false
        map_empty:
          type: boolean
          default: true
        block_learning:
          type: boolean
          default: false
          description: Do not keep learn between each job
        fields:
          type: array
          items:
            $ref: '#/components/schemas/LocalizedValueMappingField'
        groups:
          type: array
          items:
            $ref: '#/components/schemas/LocalizedGroup'
        include_fields:
          type: array
          items:
            $ref: '#/components/schemas/LocalizedFieldFilter'
        exclude_fields:
          type: array
          items:
            $ref: '#/components/schemas/LocalizedFieldFilter'
        max_requirement_level:
          allOf:
          - $ref: '#/components/schemas/MaxRequirementLevelEnum'
          default: required
          description: |-
            Max requirement levels: required, important, optional

            * `required` - Required
            * `important` - Important
            * `optional` - Optional
    LocalizedVariantParams:
      type: object
      properties:
        product_model_name_column:
          $ref: '#/components/schemas/LocalizedNamedLabeledField'
        product_model_head_column:
          $ref: '#/components/schemas/LocalizedNamedLabeledField'
        default_id_column:
          type: string
          nullable: true
        invariant_columns:
          type: array
          items:
            type: string
        unique_columns:
          type: array
          items:
            type: string
        variant_columns:
          type: array
          items:
            type: string
        allow_product_model_without_matching_group:
          type: boolean
          default: true
        export_data:
          type: array
          items:
            $ref: '#/components/schemas/ExportDataEnum'
        output_data:
          type: array
          items:
            $ref: '#/components/schemas/OutputDataEnum'
        matching_groups:
          type: array
          items:
            $ref: '#/components/schemas/LocalizedMatchingGroup'
        automation:
          $ref: '#/components/schemas/LocalizedAutomateGroupin'
    LongJobSettings:
      type: object
      properties:
        active:
          type: boolean
          default: false
        minimum_duration:
          type: integer
          minimum: 1
          default: 960
    MappingDefaultsSample:
      type: object
      properties:
        name:
          type: string
          description: Name of the field with the given default
        pattern:
          type: string
          description: Generic value of the default
        samples:
          type: array
          items:
            type: string
          description: Example values of the default
      required:
      - name
      - pattern
      - samples
    MappingDefaultsSampleRequest:
      type: object
      properties:
        name:
          type: string
          minLength: 1
          description: Name of the field with the given default
        pattern:
          type: string
          minLength: 1
          description: Generic value of the default
        samples:
          type: array
          items:
            type: string
            minLength: 1
          description: Example values of the default
      required:
      - name
      - pattern
      - samples
    MappingField:
      oneOf:
      - $ref: '#/components/schemas/MappingFieldSerializerForstringTyped'
      - $ref: '#/components/schemas/MappingFieldSerializerForhtmlTyped'
      - $ref: '#/components/schemas/MappingFieldSerializerFornumberTyped'
      - $ref: '#/components/schemas/MappingFieldSerializerForselectTyped'
      - $ref: '#/components/schemas/MappingFieldSerializerForbooleanTyped'
      - $ref: '#/components/schemas/MappingFieldSerializerForurlTyped'
      - $ref: '#/components/schemas/MappingFieldSerializerForimage_urlTyped'
      - $ref: '#/components/schemas/MappingFieldSerializerFormediaTyped'
      - $ref: '#/components/schemas/MappingFieldSerializerFordateTyped'
      discriminator:
        propertyName: type
        mapping:
          string: '#/components/schemas/MappingFieldSerializerForstringTyped'
          html: '#/components/schemas/MappingFieldSerializerForhtmlTyped'
          number: '#/components/schemas/MappingFieldSerializerFornumberTyped'
          select: '#/components/schemas/MappingFieldSerializerForselectTyped'
          boolean: '#/components/schemas/MappingFieldSerializerForbooleanTyped'
          url: '#/components/schemas/MappingFieldSerializerForurlTyped'
          image_url: '#/components/schemas/MappingFieldSerializerForimage_urlTyped'
          media: '#/components/schemas/MappingFieldSerializerFormediaTyped'
          date: '#/components/schemas/MappingFieldSerializerFordateTyped'
    MappingFieldDefault:
      type: object
      properties:
        constant:
          type: string
          description: Value of the default
        column:
          type: string
          description: Column to use for the default value
        metadata:
          type: string
          description: Source of the metadata
        type:
          allOf:
          - $ref: '#/components/schemas/TypeA9fEnum'
          default: constant
    MappingFieldDefaultRequest:
      type: object
      properties:
        constant:
          type: string
          description: Value of the default
        column:
          type: string
          minLength: 1
          description: Column to use for the default value
        metadata:
          type: string
          minLength: 1
          description: Source of the metadata
        type:
          allOf:
          - $ref: '#/components/schemas/TypeA9fEnum'
          default: constant
    MappingFieldRequest:
      oneOf:
      - $ref: '#/components/schemas/MappingFieldSerializerForstringTypedRequest'
      - $ref: '#/components/schemas/MappingFieldSerializerForhtmlTypedRequest'
      - $ref: '#/components/schemas/MappingFieldSerializerFornumberTypedRequest'
      - $ref: '#/components/schemas/MappingFieldSerializerForselectTypedRequest'
      - $ref: '#/components/schemas/MappingFieldSerializerForbooleanTypedRequest'
      - $ref: '#/components/schemas/MappingFieldSerializerForurlTypedRequest'
      - $ref: '#/components/schemas/MappingFieldSerializerForimage_urlTypedRequest'
      - $ref: '#/components/schemas/MappingFieldSerializerFormediaTypedRequest'
      - $ref: '#/components/schemas/MappingFieldSerializerFordateTypedRequest'
      discriminator:
        propertyName: type
        mapping:
          string: '#/components/schemas/MappingFieldSerializerForstringTypedRequest'
          html: '#/components/schemas/MappingFieldSerializerForhtmlTypedRequest'
          number: '#/components/schemas/MappingFieldSerializerFornumberTypedRequest'
          select: '#/components/schemas/MappingFieldSerializerForselectTypedRequest'
          boolean: '#/components/schemas/MappingFieldSerializerForbooleanTypedRequest'
          url: '#/components/schemas/MappingFieldSerializerForurlTypedRequest'
          image_url: '#/components/schemas/MappingFieldSerializerForimage_urlTypedRequest'
          media: '#/components/schemas/MappingFieldSerializerFormediaTypedRequest'
          date: '#/components/schemas/MappingFieldSerializerFordateTypedRequest'
    MappingFieldRequestUntyped:
      type: object
      description: |-
        A polymorphic serializer, in which the subdata
        types are inferred from one of the keys in the data.
        The class API is designed to be similar to rest_polymorphic's serializer,
        so the drf_spectacular extension can be used for this serializer too. The main difference
        is that it is not meant to be a model serializer but to work on mappings/dicts.
      properties:
        type:
          type: string
          minLength: 1
      required:
      - type
    MappingFieldSerializerForboolean:
      type: object
      properties:
        name:
          type: string
          description: The name of the field
        groups:
          type: array
          items:
            type: string
            nullable: true
            description: Group to which the field belongs
        default:
          type: array
          items:
            $ref: '#/components/schemas/MappingFieldDefault'
          description: A default value if the field is not sourced from the input
        mode:
          allOf:
          - $ref: '#/components/schemas/Mode63fEnum'
          description: |-
            How to join multiple inputs in this column

            * `join` - Join inputs
            * `first` - Keep first input
        separator:
          type: string
          description: The sepatator to join text when multiple fields are provided
        protected:
          type: boolean
          default: false
          description: A protected field's value cannot be modified from its default
        editable_default:
          type: boolean
          default: false
        template:
          type: string
        label:
          type: object
          additionalProperties:
            type: string
          default: {}
          description: The friendly name of the field, by locale
        display_group:
          type: string
          nullable: true
        description:
          type: object
          additionalProperties:
            type: string
          default: {}
          description: Description of the field
        requirement_level:
          allOf:
          - $ref: '#/components/schemas/RequirementLevelEnum'
          default: optional
          description: |-
            Requirement levels: required, important, optional (default)

            * `required` - Required
            * `important` - Important
            * `optional` - Optional
      required:
      - name
    MappingFieldSerializerForbooleanRequest:
      type: object
      properties:
        name:
          type: string
          minLength: 1
          description: The name of the field
        groups:
          type: array
          items:
            type: string
            nullable: true
            minLength: 1
            description: Group to which the field belongs
        default:
          type: array
          items:
            $ref: '#/components/schemas/MappingFieldDefaultRequest'
          description: A default value if the field is not sourced from the input
        mode:
          allOf:
          - $ref: '#/components/schemas/Mode63fEnum'
          description: |-
            How to join multiple inputs in this column

            * `join` - Join inputs
            * `first` - Keep first input
        separator:
          type: string
          minLength: 1
          description: The sepatator to join text when multiple fields are provided
        protected:
          type: boolean
          default: false
          description: A protected field's value cannot be modified from its default
        editable_default:
          type: boolean
          default: false
        template:
          type: string
          minLength: 1
        label:
          type: object
          additionalProperties:
            type: string
            minLength: 1
          default: {}
          description: The friendly name of the field, by locale
        display_group:
          type: string
          nullable: true
          minLength: 1
        description:
          type: object
          additionalProperties:
            type: string
            minLength: 1
          default: {}
          description: Description of the field
        requirement_level:
          allOf:
          - $ref: '#/components/schemas/RequirementLevelEnum'
          default: optional
          description: |-
            Requirement levels: required, important, optional (default)

            * `required` - Required
            * `important` - Important
            * `optional` - Optional
      required:
      - name
    MappingFieldSerializerForbooleanTyped:
      allOf:
      - $ref: '#/components/schemas/MappingFieldUntyped'
      - $ref: '#/components/schemas/MappingFieldSerializerForboolean'
    MappingFieldSerializerForbooleanTypedRequest:
      allOf:
      - $ref: '#/components/schemas/MappingFieldRequestUntyped'
      - $ref: '#/components/schemas/MappingFieldSerializerForbooleanRequest'
    MappingFieldSerializerFordate:
      type: object
      properties:
        name:
          type: string
          description: The name of the field
        groups:
          type: array
          items:
            type: string
            nullable: true
            description: Group to which the field belongs
        default:
          type: array
          items:
            $ref: '#/components/schemas/MappingFieldDefault'
          description: A default value if the field is not sourced from the input
        mode:
          allOf:
          - $ref: '#/components/schemas/Mode63fEnum'
          description: |-
            How to join multiple inputs in this column

            * `join` - Join inputs
            * `first` - Keep first input
        separator:
          type: string
          description: The sepatator to join text when multiple fields are provided
        protected:
          type: boolean
          default: false
          description: A protected field's value cannot be modified from its default
        editable_default:
          type: boolean
          default: false
        template:
          type: string
        label:
          type: object
          additionalProperties:
            type: string
          default: {}
          description: The friendly name of the field, by locale
        display_group:
          type: string
          nullable: true
        description:
          type: object
          additionalProperties:
            type: string
          default: {}
          description: Description of the field
        requirement_level:
          allOf:
          - $ref: '#/components/schemas/RequirementLevelEnum'
          default: optional
          description: |-
            Requirement levels: required, important, optional (default)

            * `required` - Required
            * `important` - Important
            * `optional` - Optional
      required:
      - name
    MappingFieldSerializerFordateRequest:
      type: object
      properties:
        name:
          type: string
          minLength: 1
          description: The name of the field
        groups:
          type: array
          items:
            type: string
            nullable: true
            minLength: 1
            description: Group to which the field belongs
        default:
          type: array
          items:
            $ref: '#/components/schemas/MappingFieldDefaultRequest'
          description: A default value if the field is not sourced from the input
        mode:
          allOf:
          - $ref: '#/components/schemas/Mode63fEnum'
          description: |-
            How to join multiple inputs in this column

            * `join` - Join inputs
            * `first` - Keep first input
        separator:
          type: string
          minLength: 1
          description: The sepatator to join text when multiple fields are provided
        protected:
          type: boolean
          default: false
          description: A protected field's value cannot be modified from its default
        editable_default:
          type: boolean
          default: false
        template:
          type: string
          minLength: 1
        label:
          type: object
          additionalProperties:
            type: string
            minLength: 1
          default: {}
          description: The friendly name of the field, by locale
        display_group:
          type: string
          nullable: true
          minLength: 1
        description:
          type: object
          additionalProperties:
            type: string
            minLength: 1
          default: {}
          description: Description of the field
        requirement_level:
          allOf:
          - $ref: '#/components/schemas/RequirementLevelEnum'
          default: optional
          description: |-
            Requirement levels: required, important, optional (default)

            * `required` - Required
            * `important` - Important
            * `optional` - Optional
      required:
      - name
    MappingFieldSerializerFordateTyped:
      allOf:
      - $ref: '#/components/schemas/MappingFieldUntyped'
      - $ref: '#/components/schemas/MappingFieldSerializerFordate'
    MappingFieldSerializerFordateTypedRequest:
      allOf:
      - $ref: '#/components/schemas/MappingFieldRequestUntyped'
      - $ref: '#/components/schemas/MappingFieldSerializerFordateRequest'
    MappingFieldSerializerForhtml:
      type: object
      properties:
        name:
          type: string
          description: The name of the field
        groups:
          type: array
          items:
            type: string
            nullable: true
            description: Group to which the field belongs
        default:
          type: array
          items:
            $ref: '#/components/schemas/MappingFieldDefault'
          description: A default value if the field is not sourced from the input
        mode:
          allOf:
          - $ref: '#/components/schemas/Mode63fEnum'
          description: |-
            How to join multiple inputs in this column

            * `join` - Join inputs
            * `first` - Keep first input
        separator:
          type: string
          description: The sepatator to join text when multiple fields are provided
        protected:
          type: boolean
          default: false
          description: A protected field's value cannot be modified from its default
        editable_default:
          type: boolean
          default: false
        template:
          type: string
        label:
          type: object
          additionalProperties:
            type: string
          default: {}
          description: The friendly name of the field, by locale
        display_group:
          type: string
          nullable: true
        description:
          type: object
          additionalProperties:
            type: string
          default: {}
          description: Description of the field
        requirement_level:
          allOf:
          - $ref: '#/components/schemas/RequirementLevelEnum'
          default: optional
          description: |-
            Requirement levels: required, important, optional (default)

            * `required` - Required
            * `important` - Important
            * `optional` - Optional
      required:
      - name
    MappingFieldSerializerForhtmlRequest:
      type: object
      properties:
        name:
          type: string
          minLength: 1
          description: The name of the field
        groups:
          type: array
          items:
            type: string
            nullable: true
            minLength: 1
            description: Group to which the field belongs
        default:
          type: array
          items:
            $ref: '#/components/schemas/MappingFieldDefaultRequest'
          description: A default value if the field is not sourced from the input
        mode:
          allOf:
          - $ref: '#/components/schemas/Mode63fEnum'
          description: |-
            How to join multiple inputs in this column

            * `join` - Join inputs
            * `first` - Keep first input
        separator:
          type: string
          minLength: 1
          description: The sepatator to join text when multiple fields are provided
        protected:
          type: boolean
          default: false
          description: A protected field's value cannot be modified from its default
        editable_default:
          type: boolean
          default: false
        template:
          type: string
          minLength: 1
        label:
          type: object
          additionalProperties:
            type: string
            minLength: 1
          default: {}
          description: The friendly name of the field, by locale
        display_group:
          type: string
          nullable: true
          minLength: 1
        description:
          type: object
          additionalProperties:
            type: string
            minLength: 1
          default: {}
          description: Description of the field
        requirement_level:
          allOf:
          - $ref: '#/components/schemas/RequirementLevelEnum'
          default: optional
          description: |-
            Requirement levels: required, important, optional (default)

            * `required` - Required
            * `important` - Important
            * `optional` - Optional
      required:
      - name
    MappingFieldSerializerForhtmlTyped:
      allOf:
      - $ref: '#/components/schemas/MappingFieldUntyped'
      - $ref: '#/components/schemas/MappingFieldSerializerForhtml'
    MappingFieldSerializerForhtmlTypedRequest:
      allOf:
      - $ref: '#/components/schemas/MappingFieldRequestUntyped'
      - $ref: '#/components/schemas/MappingFieldSerializerForhtmlRequest'
    MappingFieldSerializerForimage_url:
      type: object
      properties:
        name:
          type: string
          description: The name of the field
        groups:
          type: array
          items:
            type: string
            nullable: true
            description: Group to which the field belongs
        default:
          type: array
          items:
            $ref: '#/components/schemas/MappingFieldDefault'
          description: A default value if the field is not sourced from the input
        mode:
          allOf:
          - $ref: '#/components/schemas/Mode63fEnum'
          description: |-
            How to join multiple inputs in this column

            * `join` - Join inputs
            * `first` - Keep first input
        separator:
          type: string
          description: The sepatator to join text when multiple fields are provided
        protected:
          type: boolean
          default: false
          description: A protected field's value cannot be modified from its default
        editable_default:
          type: boolean
          default: false
        template:
          type: string
        label:
          type: object
          additionalProperties:
            type: string
          default: {}
          description: The friendly name of the field, by locale
        display_group:
          type: string
          nullable: true
        description:
          type: object
          additionalProperties:
            type: string
          default: {}
          description: Description of the field
        requirement_level:
          allOf:
          - $ref: '#/components/schemas/RequirementLevelEnum'
          default: optional
          description: |-
            Requirement levels: required, important, optional (default)

            * `required` - Required
            * `important` - Important
            * `optional` - Optional
        multiple:
          type: boolean
          default: false
      required:
      - name
    MappingFieldSerializerForimage_urlRequest:
      type: object
      properties:
        name:
          type: string
          minLength: 1
          description: The name of the field
        groups:
          type: array
          items:
            type: string
            nullable: true
            minLength: 1
            description: Group to which the field belongs
        default:
          type: array
          items:
            $ref: '#/components/schemas/MappingFieldDefaultRequest'
          description: A default value if the field is not sourced from the input
        mode:
          allOf:
          - $ref: '#/components/schemas/Mode63fEnum'
          description: |-
            How to join multiple inputs in this column

            * `join` - Join inputs
            * `first` - Keep first input
        separator:
          type: string
          minLength: 1
          description: The sepatator to join text when multiple fields are provided
        protected:
          type: boolean
          default: false
          description: A protected field's value cannot be modified from its default
        editable_default:
          type: boolean
          default: false
        template:
          type: string
          minLength: 1
        label:
          type: object
          additionalProperties:
            type: string
            minLength: 1
          default: {}
          description: The friendly name of the field, by locale
        display_group:
          type: string
          nullable: true
          minLength: 1
        description:
          type: object
          additionalProperties:
            type: string
            minLength: 1
          default: {}
          description: Description of the field
        requirement_level:
          allOf:
          - $ref: '#/components/schemas/RequirementLevelEnum'
          default: optional
          description: |-
            Requirement levels: required, important, optional (default)

            * `required` - Required
            * `important` - Important
            * `optional` - Optional
        multiple:
          type: boolean
          default: false
      required:
      - name
    MappingFieldSerializerForimage_urlTyped:
      allOf:
      - $ref: '#/components/schemas/MappingFieldUntyped'
      - $ref: '#/components/schemas/MappingFieldSerializerForimage_url'
    MappingFieldSerializerForimage_urlTypedRequest:
      allOf:
      - $ref: '#/components/schemas/MappingFieldRequestUntyped'
      - $ref: '#/components/schemas/MappingFieldSerializerForimage_urlRequest'
    MappingFieldSerializerFormedia:
      type: object
      properties:
        name:
          type: string
          description: The name of the field
        groups:
          type: array
          items:
            type: string
            nullable: true
            description: Group to which the field belongs
        default:
          type: array
          items:
            $ref: '#/components/schemas/MappingFieldDefault'
          description: A default value if the field is not sourced from the input
        mode:
          allOf:
          - $ref: '#/components/schemas/Mode63fEnum'
          description: |-
            How to join multiple inputs in this column

            * `join` - Join inputs
            * `first` - Keep first input
        separator:
          type: string
          description: The sepatator to join text when multiple fields are provided
        protected:
          type: boolean
          default: false
          description: A protected field's value cannot be modified from its default
        editable_default:
          type: boolean
          default: false
        template:
          type: string
        label:
          type: object
          additionalProperties:
            type: string
          default: {}
          description: The friendly name of the field, by locale
        display_group:
          type: string
          nullable: true
        description:
          type: object
          additionalProperties:
            type: string
          default: {}
          description: Description of the field
        requirement_level:
          allOf:
          - $ref: '#/components/schemas/RequirementLevelEnum'
          default: optional
          description: |-
            Requirement levels: required, important, optional (default)

            * `required` - Required
            * `important` - Important
            * `optional` - Optional
      required:
      - name
    MappingFieldSerializerFormediaRequest:
      type: object
      properties:
        name:
          type: string
          minLength: 1
          description: The name of the field
        groups:
          type: array
          items:
            type: string
            nullable: true
            minLength: 1
            description: Group to which the field belongs
        default:
          type: array
          items:
            $ref: '#/components/schemas/MappingFieldDefaultRequest'
          description: A default value if the field is not sourced from the input
        mode:
          allOf:
          - $ref: '#/components/schemas/Mode63fEnum'
          description: |-
            How to join multiple inputs in this column

            * `join` - Join inputs
            * `first` - Keep first input
        separator:
          type: string
          minLength: 1
          description: The sepatator to join text when multiple fields are provided
        protected:
          type: boolean
          default: false
          description: A protected field's value cannot be modified from its default
        editable_default:
          type: boolean
          default: false
        template:
          type: string
          minLength: 1
        label:
          type: object
          additionalProperties:
            type: string
            minLength: 1
          default: {}
          description: The friendly name of the field, by locale
        display_group:
          type: string
          nullable: true
          minLength: 1
        description:
          type: object
          additionalProperties:
            type: string
            minLength: 1
          default: {}
          description: Description of the field
        requirement_level:
          allOf:
          - $ref: '#/components/schemas/RequirementLevelEnum'
          default: optional
          description: |-
            Requirement levels: required, important, optional (default)

            * `required` - Required
            * `important` - Important
            * `optional` - Optional
      required:
      - name
    MappingFieldSerializerFormediaTyped:
      allOf:
      - $ref: '#/components/schemas/MappingFieldUntyped'
      - $ref: '#/components/schemas/MappingFieldSerializerFormedia'
    MappingFieldSerializerFormediaTypedRequest:
      allOf:
      - $ref: '#/components/schemas/MappingFieldRequestUntyped'
      - $ref: '#/components/schemas/MappingFieldSerializerFormediaRequest'
    MappingFieldSerializerFornumber:
      type: object
      properties:
        name:
          type: string
          description: The name of the field
        groups:
          type: array
          items:
            type: string
            nullable: true
            description: Group to which the field belongs
        default:
          type: array
          items:
            $ref: '#/components/schemas/MappingFieldDefault'
          description: A default value if the field is not sourced from the input
        mode:
          allOf:
          - $ref: '#/components/schemas/Mode63fEnum'
          description: |-
            How to join multiple inputs in this column

            * `join` - Join inputs
            * `first` - Keep first input
        separator:
          type: string
          description: The sepatator to join text when multiple fields are provided
        protected:
          type: boolean
          default: false
          description: A protected field's value cannot be modified from its default
        editable_default:
          type: boolean
          default: false
        template:
          type: string
        label:
          type: object
          additionalProperties:
            type: string
          default: {}
          description: The friendly name of the field, by locale
        display_group:
          type: string
          nullable: true
        description:
          type: object
          additionalProperties:
            type: string
          default: {}
          description: Description of the field
        requirement_level:
          allOf:
          - $ref: '#/components/schemas/RequirementLevelEnum'
          default: optional
          description: |-
            Requirement levels: required, important, optional (default)

            * `required` - Required
            * `important` - Important
            * `optional` - Optional
      required:
      - name
    MappingFieldSerializerFornumberRequest:
      type: object
      properties:
        name:
          type: string
          minLength: 1
          description: The name of the field
        groups:
          type: array
          items:
            type: string
            nullable: true
            minLength: 1
            description: Group to which the field belongs
        default:
          type: array
          items:
            $ref: '#/components/schemas/MappingFieldDefaultRequest'
          description: A default value if the field is not sourced from the input
        mode:
          allOf:
          - $ref: '#/components/schemas/Mode63fEnum'
          description: |-
            How to join multiple inputs in this column

            * `join` - Join inputs
            * `first` - Keep first input
        separator:
          type: string
          minLength: 1
          description: The sepatator to join text when multiple fields are provided
        protected:
          type: boolean
          default: false
          description: A protected field's value cannot be modified from its default
        editable_default:
          type: boolean
          default: false
        template:
          type: string
          minLength: 1
        label:
          type: object
          additionalProperties:
            type: string
            minLength: 1
          default: {}
          description: The friendly name of the field, by locale
        display_group:
          type: string
          nullable: true
          minLength: 1
        description:
          type: object
          additionalProperties:
            type: string
            minLength: 1
          default: {}
          description: Description of the field
        requirement_level:
          allOf:
          - $ref: '#/components/schemas/RequirementLevelEnum'
          default: optional
          description: |-
            Requirement levels: required, important, optional (default)

            * `required` - Required
            * `important` - Important
            * `optional` - Optional
      required:
      - name
    MappingFieldSerializerFornumberTyped:
      allOf:
      - $ref: '#/components/schemas/MappingFieldUntyped'
      - $ref: '#/components/schemas/MappingFieldSerializerFornumber'
    MappingFieldSerializerFornumberTypedRequest:
      allOf:
      - $ref: '#/components/schemas/MappingFieldRequestUntyped'
      - $ref: '#/components/schemas/MappingFieldSerializerFornumberRequest'
    MappingFieldSerializerForselect:
      type: object
      properties:
        default:
          type: array
          items:
            $ref: '#/components/schemas/MappingFieldDefault'
          description: A default value if the field is not sourced from the input
        options_collection_name:
          type: string
          nullable: true
        name:
          type: string
          description: The name of the field
        groups:
          type: array
          items:
            type: string
            nullable: true
            description: Group to which the field belongs
        mode:
          allOf:
          - $ref: '#/components/schemas/Mode63fEnum'
          description: |-
            How to join multiple inputs in this column

            * `join` - Join inputs
            * `first` - Keep first input
        separator:
          type: string
          description: The sepatator to join text when multiple fields are provided
        protected:
          type: boolean
          default: false
          description: A protected field's value cannot be modified from its default
        editable_default:
          type: boolean
          default: false
        template:
          type: string
        label:
          type: object
          additionalProperties:
            type: string
          default: {}
          description: The friendly name of the field, by locale
        display_group:
          type: string
          nullable: true
        description:
          type: object
          additionalProperties:
            type: string
          default: {}
          description: Description of the field
        requirement_level:
          allOf:
          - $ref: '#/components/schemas/RequirementLevelEnum'
          default: optional
          description: |-
            Requirement levels: required, important, optional (default)

            * `required` - Required
            * `important` - Important
            * `optional` - Optional
        multiple:
          type: boolean
          default: false
      required:
      - name
    MappingFieldSerializerForselectRequest:
      type: object
      properties:
        default:
          type: array
          items:
            $ref: '#/components/schemas/MappingFieldDefaultRequest'
          description: A default value if the field is not sourced from the input
        options_collection_name:
          type: string
          nullable: true
          minLength: 1
        name:
          type: string
          minLength: 1
          description: The name of the field
        groups:
          type: array
          items:
            type: string
            nullable: true
            minLength: 1
            description: Group to which the field belongs
        mode:
          allOf:
          - $ref: '#/components/schemas/Mode63fEnum'
          description: |-
            How to join multiple inputs in this column

            * `join` - Join inputs
            * `first` - Keep first input
        separator:
          type: string
          minLength: 1
          description: The sepatator to join text when multiple fields are provided
        protected:
          type: boolean
          default: false
          description: A protected field's value cannot be modified from its default
        editable_default:
          type: boolean
          default: false
        template:
          type: string
          minLength: 1
        label:
          type: object
          additionalProperties:
            type: string
            minLength: 1
          default: {}
          description: The friendly name of the field, by locale
        display_group:
          type: string
          nullable: true
          minLength: 1
        description:
          type: object
          additionalProperties:
            type: string
            minLength: 1
          default: {}
          description: Description of the field
        requirement_level:
          allOf:
          - $ref: '#/components/schemas/RequirementLevelEnum'
          default: optional
          description: |-
            Requirement levels: required, important, optional (default)

            * `required` - Required
            * `important` - Important
            * `optional` - Optional
        multiple:
          type: boolean
          default: false
      required:
      - name
    MappingFieldSerializerForselectTyped:
      allOf:
      - $ref: '#/components/schemas/MappingFieldUntyped'
      - $ref: '#/components/schemas/MappingFieldSerializerForselect'
    MappingFieldSerializerForselectTypedRequest:
      allOf:
      - $ref: '#/components/schemas/MappingFieldRequestUntyped'
      - $ref: '#/components/schemas/MappingFieldSerializerForselectRequest'
    MappingFieldSerializerForstring:
      type: object
      properties:
        name:
          type: string
          description: The name of the field
        groups:
          type: array
          items:
            type: string
            nullable: true
            description: Group to which the field belongs
        default:
          type: array
          items:
            $ref: '#/components/schemas/MappingFieldDefault'
          description: A default value if the field is not sourced from the input
        mode:
          allOf:
          - $ref: '#/components/schemas/Mode63fEnum'
          description: |-
            How to join multiple inputs in this column

            * `join` - Join inputs
            * `first` - Keep first input
        separator:
          type: string
          description: The sepatator to join text when multiple fields are provided
        protected:
          type: boolean
          default: false
          description: A protected field's value cannot be modified from its default
        editable_default:
          type: boolean
          default: false
        template:
          type: string
        label:
          type: object
          additionalProperties:
            type: string
          default: {}
          description: The friendly name of the field, by locale
        display_group:
          type: string
          nullable: true
        description:
          type: object
          additionalProperties:
            type: string
          default: {}
          description: Description of the field
        requirement_level:
          allOf:
          - $ref: '#/components/schemas/RequirementLevelEnum'
          default: optional
          description: |-
            Requirement levels: required, important, optional (default)

            * `required` - Required
            * `important` - Important
            * `optional` - Optional
      required:
      - name
    MappingFieldSerializerForstringRequest:
      type: object
      properties:
        name:
          type: string
          minLength: 1
          description: The name of the field
        groups:
          type: array
          items:
            type: string
            nullable: true
            minLength: 1
            description: Group to which the field belongs
        default:
          type: array
          items:
            $ref: '#/components/schemas/MappingFieldDefaultRequest'
          description: A default value if the field is not sourced from the input
        mode:
          allOf:
          - $ref: '#/components/schemas/Mode63fEnum'
          description: |-
            How to join multiple inputs in this column

            * `join` - Join inputs
            * `first` - Keep first input
        separator:
          type: string
          minLength: 1
          description: The sepatator to join text when multiple fields are provided
        protected:
          type: boolean
          default: false
          description: A protected field's value cannot be modified from its default
        editable_default:
          type: boolean
          default: false
        template:
          type: string
          minLength: 1
        label:
          type: object
          additionalProperties:
            type: string
            minLength: 1
          default: {}
          description: The friendly name of the field, by locale
        display_group:
          type: string
          nullable: true
          minLength: 1
        description:
          type: object
          additionalProperties:
            type: string
            minLength: 1
          default: {}
          description: Description of the field
        requirement_level:
          allOf:
          - $ref: '#/components/schemas/RequirementLevelEnum'
          default: optional
          description: |-
            Requirement levels: required, important, optional (default)

            * `required` - Required
            * `important` - Important
            * `optional` - Optional
      required:
      - name
    MappingFieldSerializerForstringTyped:
      allOf:
      - $ref: '#/components/schemas/MappingFieldUntyped'
      - $ref: '#/components/schemas/MappingFieldSerializerForstring'
    MappingFieldSerializerForstringTypedRequest:
      allOf:
      - $ref: '#/components/schemas/MappingFieldRequestUntyped'
      - $ref: '#/components/schemas/MappingFieldSerializerForstringRequest'
    MappingFieldSerializerForurl:
      type: object
      properties:
        name:
          type: string
          description: The name of the field
        groups:
          type: array
          items:
            type: string
            nullable: true
            description: Group to which the field belongs
        default:
          type: array
          items:
            $ref: '#/components/schemas/MappingFieldDefault'
          description: A default value if the field is not sourced from the input
        mode:
          allOf:
          - $ref: '#/components/schemas/Mode63fEnum'
          description: |-
            How to join multiple inputs in this column

            * `join` - Join inputs
            * `first` - Keep first input
        separator:
          type: string
          description: The sepatator to join text when multiple fields are provided
        protected:
          type: boolean
          default: false
          description: A protected field's value cannot be modified from its default
        editable_default:
          type: boolean
          default: false
        template:
          type: string
        label:
          type: object
          additionalProperties:
            type: string
          default: {}
          description: The friendly name of the field, by locale
        display_group:
          type: string
          nullable: true
        description:
          type: object
          additionalProperties:
            type: string
          default: {}
          description: Description of the field
        requirement_level:
          allOf:
          - $ref: '#/components/schemas/RequirementLevelEnum'
          default: optional
          description: |-
            Requirement levels: required, important, optional (default)

            * `required` - Required
            * `important` - Important
            * `optional` - Optional
        multiple:
          type: boolean
          default: false
      required:
      - name
    MappingFieldSerializerForurlRequest:
      type: object
      properties:
        name:
          type: string
          minLength: 1
          description: The name of the field
        groups:
          type: array
          items:
            type: string
            nullable: true
            minLength: 1
            description: Group to which the field belongs
        default:
          type: array
          items:
            $ref: '#/components/schemas/MappingFieldDefaultRequest'
          description: A default value if the field is not sourced from the input
        mode:
          allOf:
          - $ref: '#/components/schemas/Mode63fEnum'
          description: |-
            How to join multiple inputs in this column

            * `join` - Join inputs
            * `first` - Keep first input
        separator:
          type: string
          minLength: 1
          description: The sepatator to join text when multiple fields are provided
        protected:
          type: boolean
          default: false
          description: A protected field's value cannot be modified from its default
        editable_default:
          type: boolean
          default: false
        template:
          type: string
          minLength: 1
        label:
          type: object
          additionalProperties:
            type: string
            minLength: 1
          default: {}
          description: The friendly name of the field, by locale
        display_group:
          type: string
          nullable: true
          minLength: 1
        description:
          type: object
          additionalProperties:
            type: string
            minLength: 1
          default: {}
          description: Description of the field
        requirement_level:
          allOf:
          - $ref: '#/components/schemas/RequirementLevelEnum'
          default: optional
          description: |-
            Requirement levels: required, important, optional (default)

            * `required` - Required
            * `important` - Important
            * `optional` - Optional
        multiple:
          type: boolean
          default: false
      required:
      - name
    MappingFieldSerializerForurlTyped:
      allOf:
      - $ref: '#/components/schemas/MappingFieldUntyped'
      - $ref: '#/components/schemas/MappingFieldSerializerForurl'
    MappingFieldSerializerForurlTypedRequest:
      allOf:
      - $ref: '#/components/schemas/MappingFieldRequestUntyped'
      - $ref: '#/components/schemas/MappingFieldSerializerForurlRequest'
    MappingFieldUntyped:
      type: object
      description: |-
        A polymorphic serializer, in which the subdata
        types are inferred from one of the keys in the data.
        The class API is designed to be similar to rest_polymorphic's serializer,
        so the drf_spectacular extension can be used for this serializer too. The main difference
        is that it is not meant to be a model serializer but to work on mappings/dicts.
      properties:
        type:
          type: string
      required:
      - type
    MappingParams:
      type: object
      properties:
        default_join_separator:
          type: string
          default: ' | '
          description: The default sepatator to join text when multiple fields are
            provided
        block_learning:
          type: boolean
          default: false
          description: Do not keep learn between each job
        fields:
          type: array
          items:
            $ref: '#/components/schemas/MappingField'
          default: []
        groups:
          type: array
          items:
            $ref: '#/components/schemas/Group'
          default: []
        include_fields:
          type: array
          items:
            $ref: '#/components/schemas/FieldFilter'
        exclude_fields:
          type: array
          items:
            $ref: '#/components/schemas/FieldFilter'
        max_requirement_level:
          allOf:
          - $ref: '#/components/schemas/MaxRequirementLevelEnum'
          default: required
          description: |-
            Max requirement levels: required, important, optional

            * `required` - Required
            * `important` - Important
            * `optional` - Optional
    MappingProposition:
      type: object
      properties:
        new:
          type: string
          description: New name for the column
        group:
          type: string
          nullable: true
          description: Group to which the new column belongs
        old:
          type: array
          items:
            type: string
            description: Name of the column in the input file
        edited_default:
          type: string
          description: New default value imputed during manual verification
      required:
      - new
      - old
    MappingPropositionRequest:
      type: object
      properties:
        new:
          type: string
          minLength: 1
          description: New name for the column
        group:
          type: string
          nullable: true
          minLength: 1
          description: Group to which the new column belongs
        old:
          type: array
          items:
            type: string
            minLength: 1
            description: Name of the column in the input file
        edited_default:
          type: string
          minLength: 1
          description: New default value imputed during manual verification
      required:
      - new
      - old
    MappingSample:
      type: object
      properties:
        name:
          type: string
          description: Name of the column in the input file
        samples:
          type: array
          items:
            type: string
            nullable: true
          readOnly: true
          description: Example values in the input column
        missing_percent:
          type: number
          format: double
          maximum: 1
          minimum: 0
          readOnly: true
          description: Share of missing value in the input column
        missing_count:
          type: integer
          minimum: 0
          readOnly: true
          description: Count of missing value in the input column
      required:
      - missing_count
      - missing_percent
      - name
      - samples
    MappingSampleRequest:
      type: object
      properties:
        name:
          type: string
          minLength: 1
          description: Name of the column in the input file
      required:
      - name
    MatchHistoryEnrichment:
      type: object
      properties:
        reference_base:
          type: string
        record_list:
          type: array
          items:
            type: object
            additionalProperties:
              nullable: true
          description: List of records (key/value) that will be used to filter or
            enrich. If filled, unique_keys is required
        unique_keys:
          type: array
          items:
            type: string
          description: Keys that will be used to get values from record_list
        override:
          type: boolean
          default: true
        columns:
          type: array
          items:
            type: string
    MatchHistoryEnrichmentRequest:
      type: object
      properties:
        reference_base:
          type: string
          minLength: 1
        record_list:
          type: array
          items:
            type: object
            additionalProperties:
              nullable: true
          description: List of records (key/value) that will be used to filter or
            enrich. If filled, unique_keys is required
        unique_keys:
          type: array
          items:
            type: string
            minLength: 1
          description: Keys that will be used to get values from record_list
        override:
          type: boolean
          default: true
        columns:
          type: array
          items:
            type: string
            minLength: 1
    MatchHistoryFilter:
      type: object
      properties:
        reference_base:
          type: string
        record_list:
          type: array
          items:
            type: object
            additionalProperties:
              nullable: true
          description: List of records (key/value) that will be used to filter or
            enrich. If filled, unique_keys is required
        unique_keys:
          type: array
          items:
            type: string
          description: Keys that will be used to get values from record_list
        mode:
          allOf:
          - $ref: '#/components/schemas/ModeE18Enum'
          default: blacklist
    MatchHistoryFilterRequest:
      type: object
      properties:
        reference_base:
          type: string
          minLength: 1
        record_list:
          type: array
          items:
            type: object
            additionalProperties:
              nullable: true
          description: List of records (key/value) that will be used to filter or
            enrich. If filled, unique_keys is required
        unique_keys:
          type: array
          items:
            type: string
            minLength: 1
          description: Keys that will be used to get values from record_list
        mode:
          allOf:
          - $ref: '#/components/schemas/ModeE18Enum'
          default: blacklist
    MatchHistoryImport:
      type: object
      properties:
        reference_base:
          type: string
        which:
          allOf:
          - $ref: '#/components/schemas/WhichB33Enum'
          default: kept
    MatchHistoryImportRequest:
      type: object
      properties:
        reference_base:
          type: string
          minLength: 1
        which:
          allOf:
          - $ref: '#/components/schemas/WhichB33Enum'
          default: kept
    MatchhistoryParams:
      type: object
      properties:
        filter_mode:
          allOf:
          - $ref: '#/components/schemas/FilterModeEnum'
          default: and
        filters:
          type: array
          items:
            $ref: '#/components/schemas/MatchHistoryFilter'
        enrichments:
          type: array
          items:
            $ref: '#/components/schemas/MatchHistoryEnrichment'
        imports:
          type: array
          items:
            $ref: '#/components/schemas/MatchHistoryImport'
    MatchingGroup:
      type: object
      properties:
        name:
          type: string
          description: The name of the field
        conditions:
          type: array
          items:
            $ref: '#/components/schemas/GroupCondition'
          default: []
        label:
          type: object
          additionalProperties:
            type: string
          default: {}
          description: The friendly name of the field, by locale
        invariant_columns:
          type: array
          items:
            type: string
        variant_columns:
          type: array
          items:
            type: string
        unique_columns:
          type: array
          items:
            type: string
      required:
      - invariant_columns
      - name
      - variant_columns
    MatchingGroupDetailsResponse:
      type: object
      properties:
        name:
          type: string
        rows:
          type: integer
        product_model:
          type: integer
        independent:
          type: integer
        grouped:
          type: integer
        to_group:
          type: integer
      required:
      - grouped
      - independent
      - name
      - product_model
      - rows
      - to_group
    MatchingGroupRequest:
      type: object
      properties:
        name:
          type: string
          minLength: 1
          description: The name of the field
        conditions:
          type: array
          items:
            $ref: '#/components/schemas/GroupConditionRequest'
          default: []
        label:
          type: object
          additionalProperties:
            type: string
            minLength: 1
          default: {}
          description: The friendly name of the field, by locale
        invariant_columns:
          type: array
          items:
            type: string
            minLength: 1
        variant_columns:
          type: array
          items:
            type: string
            minLength: 1
        unique_columns:
          type: array
          items:
            type: string
            minLength: 1
      required:
      - invariant_columns
      - name
      - variant_columns
    MatchingGroupsDetailsResponse:
      type: object
      properties:
        matching_groups:
          type: array
          items:
            $ref: '#/components/schemas/MatchingGroupDetailsResponse'
      required:
      - matching_groups
    MaxRequirementLevelEnum:
      enum:
      - required
      - important
      - optional
      type: string
      description: |-
        * `required` - Required
        * `important` - Important
        * `optional` - Optional
    Media:
      type: object
      properties:
        id:
          type: string
          format: uuid
          readOnly: true
        uploaded_for_job:
          type: string
          format: uuid
          nullable: true
        original_filename:
          type: string
          readOnly: true
        creation_date:
          type: string
          format: date-time
          readOnly: true
        mime_type:
          type: string
          readOnly: true
        size_in_kb:
          type: integer
          readOnly: true
        url:
          type: string
          format: uri
          readOnly: true
        url_small:
          type: string
          format: uri
          readOnly: true
        url_medium:
          type: string
          format: uri
          readOnly: true
        url_large:
          type: string
          format: uri
          readOnly: true
      required:
      - creation_date
      - id
      - mime_type
      - original_filename
      - size_in_kb
      - uploaded_for_job
      - url
      - url_large
      - url_medium
      - url_small
    MediaRequest:
      type: object
      properties:
        media_file:
          type: string
          format: binary
          writeOnly: true
        uploaded_for_job:
          type: string
          format: uuid
          nullable: true
      required:
      - media_file
      - uploaded_for_job
    Metrics:
      type: object
      properties:
        nb_jobs:
          type: integer
        processing_time:
          type: string
        cpu_time:
          type: string
        session_time:
          type: string
        total_actions:
          type: integer
        automated_actions:
          type: integer
        completed_actions:
          type: integer
        awaiting_actions:
          type: integer
        total_rows:
          type: integer
        automated_rows:
          type: integer
        completed_rows:
          type: integer
        awaiting_rows:
          type: integer
      required:
      - automated_actions
      - automated_rows
      - awaiting_actions
      - awaiting_rows
      - completed_actions
      - completed_rows
      - cpu_time
      - nb_jobs
      - processing_time
      - session_time
      - total_actions
      - total_rows
    Misc:
      type: object
      properties:
        allow:
          type: boolean
          default: false
        multiple:
          type: boolean
        separator:
          type: string
    Mode63fEnum:
      enum:
      - join
      - first
      type: string
      description: |-
        * `join` - Join inputs
        * `first` - Keep first input
    Mode845Enum:
      enum:
      - strict
      - loose
      type: string
      description: |-
        * `strict` - strict
        * `loose` - loose
    ModeE18Enum:
      enum:
      - whitelist
      - blacklist
      type: string
      description: |-
        * `whitelist` - whitelist
        * `blacklist` - blacklist
    ModelCapabilityEnum:
      enum:
      - cost_effective
      - most_capable
      type: string
      description: |-
        * `cost_effective` - Cost effective
        * `most_capable` - Most capable
    ModelTypeEnum:
      enum:
      - trained
      - zero_shot
      type: string
      description: |-
        * `trained` - Classification using CoreAI API
        * `zero_shot` - Classification using CoreAI API (zero-shot)
    NameModeEnum:
      enum:
      - join
      - last
      type: string
      description: |-
        * `join` - join
        * `last` - last
    NamedLabeledField:
      type: object
      properties:
        name:
          type: string
          description: The name of the field
        label:
          type: object
          additionalProperties:
            type: string
          default: {}
          description: The friendly name of the field, by locale
      required:
      - name
    NamedLabeledFieldRequest:
      type: object
      properties:
        name:
          type: string
          minLength: 1
          description: The name of the field
        label:
          type: object
          additionalProperties:
            type: string
            minLength: 1
          default: {}
          description: The friendly name of the field, by locale
      required:
      - name
    NestedGroupCondition:
      oneOf:
      - $ref: '#/components/schemas/NestedGroupConditionSerializerForrequiredTyped'
      - $ref: '#/components/schemas/NestedGroupConditionSerializerForrequired_withTyped'
      - $ref: '#/components/schemas/NestedGroupConditionSerializerForrequired_withoutTyped'
      - $ref: '#/components/schemas/NestedGroupConditionSerializerForrequired_onTyped'
      - $ref: '#/components/schemas/NestedGroupConditionSerializerForregexTyped'
      - $ref: '#/components/schemas/NestedGroupConditionSerializerForis_trueTyped'
      - $ref: '#/components/schemas/NestedGroupConditionSerializerForuniqueTyped'
      - $ref: '#/components/schemas/NestedGroupConditionSerializerForunique_withTyped'
      - $ref: '#/components/schemas/NestedGroupConditionSerializerForunique_onTyped'
      - $ref: '#/components/schemas/NestedGroupConditionSerializerForisinTyped'
      - $ref: '#/components/schemas/NestedGroupConditionSerializerFormax_lengthTyped'
      - $ref: '#/components/schemas/NestedGroupConditionSerializerFormax_valueTyped'
      - $ref: '#/components/schemas/NestedGroupConditionSerializerFormin_valueTyped'
      - $ref: '#/components/schemas/NestedGroupConditionSerializerForsuperior_toTyped'
      - $ref: '#/components/schemas/NestedGroupConditionSerializerForinferior_toTyped'
      - $ref: '#/components/schemas/NestedGroupConditionSerializerForuneditableTyped'
      - $ref: '#/components/schemas/NestedGroupConditionSerializerForequal_toTyped'
      - $ref: '#/components/schemas/NestedGroupConditionSerializerFormin_dateTyped'
      - $ref: '#/components/schemas/NestedGroupConditionSerializerFormax_dateTyped'
      - $ref: '#/components/schemas/NestedGroupConditionSerializerForany_ofTyped'
      discriminator:
        propertyName: name
        mapping:
          required: '#/components/schemas/NestedGroupConditionSerializerForrequiredTyped'
          required_with: '#/components/schemas/NestedGroupConditionSerializerForrequired_withTyped'
          required_without: '#/components/schemas/NestedGroupConditionSerializerForrequired_withoutTyped'
          required_on: '#/components/schemas/NestedGroupConditionSerializerForrequired_onTyped'
          regex: '#/components/schemas/NestedGroupConditionSerializerForregexTyped'
          is_true: '#/components/schemas/NestedGroupConditionSerializerForis_trueTyped'
          unique: '#/components/schemas/NestedGroupConditionSerializerForuniqueTyped'
          unique_with: '#/components/schemas/NestedGroupConditionSerializerForunique_withTyped'
          unique_on: '#/components/schemas/NestedGroupConditionSerializerForunique_onTyped'
          isin: '#/components/schemas/NestedGroupConditionSerializerForisinTyped'
          max_length: '#/components/schemas/NestedGroupConditionSerializerFormax_lengthTyped'
          max_value: '#/components/schemas/NestedGroupConditionSerializerFormax_valueTyped'
          min_value: '#/components/schemas/NestedGroupConditionSerializerFormin_valueTyped'
          superior_to: '#/components/schemas/NestedGroupConditionSerializerForsuperior_toTyped'
          inferior_to: '#/components/schemas/NestedGroupConditionSerializerForinferior_toTyped'
          uneditable: '#/components/schemas/NestedGroupConditionSerializerForuneditableTyped'
          equal_to: '#/components/schemas/NestedGroupConditionSerializerForequal_toTyped'
          min_date: '#/components/schemas/NestedGroupConditionSerializerFormin_dateTyped'
          max_date: '#/components/schemas/NestedGroupConditionSerializerFormax_dateTyped'
          any_of: '#/components/schemas/NestedGroupConditionSerializerForany_ofTyped'
    NestedGroupConditionCase:
      type: object
      properties:
        conditions:
          type: array
          items:
            $ref: '#/components/schemas/NestedGroupCondition'
      required:
      - conditions
    NestedGroupConditionCaseRequest:
      type: object
      properties:
        conditions:
          type: array
          items:
            $ref: '#/components/schemas/NestedGroupConditionRequest'
      required:
      - conditions
    NestedGroupConditionRequest:
      oneOf:
      - $ref: '#/components/schemas/NestedGroupConditionSerializerForrequiredTypedRequest'
      - $ref: '#/components/schemas/NestedGroupConditionSerializerForrequired_withTypedRequest'
      - $ref: '#/components/schemas/NestedGroupConditionSerializerForrequired_withoutTypedRequest'
      - $ref: '#/components/schemas/NestedGroupConditionSerializerForrequired_onTypedRequest'
      - $ref: '#/components/schemas/NestedGroupConditionSerializerForregexTypedRequest'
      - $ref: '#/components/schemas/NestedGroupConditionSerializerForis_trueTypedRequest'
      - $ref: '#/components/schemas/NestedGroupConditionSerializerForuniqueTypedRequest'
      - $ref: '#/components/schemas/NestedGroupConditionSerializerForunique_withTypedRequest'
      - $ref: '#/components/schemas/NestedGroupConditionSerializerForunique_onTypedRequest'
      - $ref: '#/components/schemas/NestedGroupConditionSerializerForisinTypedRequest'
      - $ref: '#/components/schemas/NestedGroupConditionSerializerFormax_lengthTypedRequest'
      - $ref: '#/components/schemas/NestedGroupConditionSerializerFormax_valueTypedRequest'
      - $ref: '#/components/schemas/NestedGroupConditionSerializerFormin_valueTypedRequest'
      - $ref: '#/components/schemas/NestedGroupConditionSerializerForsuperior_toTypedRequest'
      - $ref: '#/components/schemas/NestedGroupConditionSerializerForinferior_toTypedRequest'
      - $ref: '#/components/schemas/NestedGroupConditionSerializerForuneditableTypedRequest'
      - $ref: '#/components/schemas/NestedGroupConditionSerializerForequal_toTypedRequest'
      - $ref: '#/components/schemas/NestedGroupConditionSerializerFormin_dateTypedRequest'
      - $ref: '#/components/schemas/NestedGroupConditionSerializerFormax_dateTypedRequest'
      - $ref: '#/components/schemas/NestedGroupConditionSerializerForany_ofTypedRequest'
      discriminator:
        propertyName: name
        mapping:
          required: '#/components/schemas/NestedGroupConditionSerializerForrequiredTypedRequest'
          required_with: '#/components/schemas/NestedGroupConditionSerializerForrequired_withTypedRequest'
          required_without: '#/components/schemas/NestedGroupConditionSerializerForrequired_withoutTypedRequest'
          required_on: '#/components/schemas/NestedGroupConditionSerializerForrequired_onTypedRequest'
          regex: '#/components/schemas/NestedGroupConditionSerializerForregexTypedRequest'
          is_true: '#/components/schemas/NestedGroupConditionSerializerForis_trueTypedRequest'
          unique: '#/components/schemas/NestedGroupConditionSerializerForuniqueTypedRequest'
          unique_with: '#/components/schemas/NestedGroupConditionSerializerForunique_withTypedRequest'
          unique_on: '#/components/schemas/NestedGroupConditionSerializerForunique_onTypedRequest'
          isin: '#/components/schemas/NestedGroupConditionSerializerForisinTypedRequest'
          max_length: '#/components/schemas/NestedGroupConditionSerializerFormax_lengthTypedRequest'
          max_value: '#/components/schemas/NestedGroupConditionSerializerFormax_valueTypedRequest'
          min_value: '#/components/schemas/NestedGroupConditionSerializerFormin_valueTypedRequest'
          superior_to: '#/components/schemas/NestedGroupConditionSerializerForsuperior_toTypedRequest'
          inferior_to: '#/components/schemas/NestedGroupConditionSerializerForinferior_toTypedRequest'
          uneditable: '#/components/schemas/NestedGroupConditionSerializerForuneditableTypedRequest'
          equal_to: '#/components/schemas/NestedGroupConditionSerializerForequal_toTypedRequest'
          min_date: '#/components/schemas/NestedGroupConditionSerializerFormin_dateTypedRequest'
          max_date: '#/components/schemas/NestedGroupConditionSerializerFormax_dateTypedRequest'
          any_of: '#/components/schemas/NestedGroupConditionSerializerForany_ofTypedRequest'
    NestedGroupConditionRequestUntyped:
      type: object
      description: |-
        A polymorphic serializer, in which the subdata
        types are inferred from one of the keys in the data.
        The class API is designed to be similar to rest_polymorphic's serializer,
        so the drf_spectacular extension can be used for this serializer too. The main difference
        is that it is not meant to be a model serializer but to work on mappings/dicts.
      properties:
        name:
          type: string
          minLength: 1
      required:
      - name
    NestedGroupConditionSerializerForany_of:
      type: object
      properties:
        negate:
          type: boolean
          default: false
          description: Whether to take the contrary of the rule
        group:
          type: string
          description: Group to which the rule belongs if it is a conditional rule
        field:
          type: string
          description: Field to apply this condition to (overrides rule-level field
            if specified)
        cases:
          type: array
          items:
            $ref: '#/components/schemas/RecursiveNestedGroupCondition'
          default: []
    NestedGroupConditionSerializerForany_ofRequest:
      type: object
      properties:
        negate:
          type: boolean
          default: false
          description: Whether to take the contrary of the rule
        group:
          type: string
          minLength: 1
          description: Group to which the rule belongs if it is a conditional rule
        field:
          type: string
          minLength: 1
          description: Field to apply this condition to (overrides rule-level field
            if specified)
        cases:
          type: array
          items:
            $ref: '#/components/schemas/RecursiveNestedGroupConditionRequest'
          default: []
    NestedGroupConditionSerializerForany_ofTyped:
      allOf:
      - $ref: '#/components/schemas/NestedGroupConditionUntyped'
      - $ref: '#/components/schemas/NestedGroupConditionSerializerForany_of'
    NestedGroupConditionSerializerForany_ofTypedRequest:
      allOf:
      - $ref: '#/components/schemas/NestedGroupConditionRequestUntyped'
      - $ref: '#/components/schemas/NestedGroupConditionSerializerForany_ofRequest'
    NestedGroupConditionSerializerForequal_to:
      type: object
      properties:
        negate:
          type: boolean
          default: false
          description: Whether to take the contrary of the rule
        group:
          type: string
          description: Group to which the rule belongs if it is a conditional rule
        field:
          type: string
          description: Field to apply this condition to (overrides rule-level field
            if specified)
        column:
          type: string
      required:
      - column
    NestedGroupConditionSerializerForequal_toRequest:
      type: object
      properties:
        negate:
          type: boolean
          default: false
          description: Whether to take the contrary of the rule
        group:
          type: string
          minLength: 1
          description: Group to which the rule belongs if it is a conditional rule
        field:
          type: string
          minLength: 1
          description: Field to apply this condition to (overrides rule-level field
            if specified)
        column:
          type: string
          minLength: 1
      required:
      - column
    NestedGroupConditionSerializerForequal_toTyped:
      allOf:
      - $ref: '#/components/schemas/NestedGroupConditionUntyped'
      - $ref: '#/components/schemas/NestedGroupConditionSerializerForequal_to'
    NestedGroupConditionSerializerForequal_toTypedRequest:
      allOf:
      - $ref: '#/components/schemas/NestedGroupConditionRequestUntyped'
      - $ref: '#/components/schemas/NestedGroupConditionSerializerForequal_toRequest'
    NestedGroupConditionSerializerForinferior_to:
      type: object
      properties:
        negate:
          type: boolean
          default: false
          description: Whether to take the contrary of the rule
        group:
          type: string
          description: Group to which the rule belongs if it is a conditional rule
        field:
          type: string
          description: Field to apply this condition to (overrides rule-level field
            if specified)
        column:
          type: string
        strict:
          type: boolean
          default: true
      required:
      - column
    NestedGroupConditionSerializerForinferior_toRequest:
      type: object
      properties:
        negate:
          type: boolean
          default: false
          description: Whether to take the contrary of the rule
        group:
          type: string
          minLength: 1
          description: Group to which the rule belongs if it is a conditional rule
        field:
          type: string
          minLength: 1
          description: Field to apply this condition to (overrides rule-level field
            if specified)
        column:
          type: string
          minLength: 1
        strict:
          type: boolean
          default: true
      required:
      - column
    NestedGroupConditionSerializerForinferior_toTyped:
      allOf:
      - $ref: '#/components/schemas/NestedGroupConditionUntyped'
      - $ref: '#/components/schemas/NestedGroupConditionSerializerForinferior_to'
    NestedGroupConditionSerializerForinferior_toTypedRequest:
      allOf:
      - $ref: '#/components/schemas/NestedGroupConditionRequestUntyped'
      - $ref: '#/components/schemas/NestedGroupConditionSerializerForinferior_toRequest'
    NestedGroupConditionSerializerForis_true:
      type: object
      properties:
        negate:
          type: boolean
          default: false
          description: Whether to take the contrary of the rule
        group:
          type: string
          description: Group to which the rule belongs if it is a conditional rule
        field:
          type: string
          description: Field to apply this condition to (overrides rule-level field
            if specified)
    NestedGroupConditionSerializerForis_trueRequest:
      type: object
      properties:
        negate:
          type: boolean
          default: false
          description: Whether to take the contrary of the rule
        group:
          type: string
          minLength: 1
          description: Group to which the rule belongs if it is a conditional rule
        field:
          type: string
          minLength: 1
          description: Field to apply this condition to (overrides rule-level field
            if specified)
    NestedGroupConditionSerializerForis_trueTyped:
      allOf:
      - $ref: '#/components/schemas/NestedGroupConditionUntyped'
      - $ref: '#/components/schemas/NestedGroupConditionSerializerForis_true'
    NestedGroupConditionSerializerForis_trueTypedRequest:
      allOf:
      - $ref: '#/components/schemas/NestedGroupConditionRequestUntyped'
      - $ref: '#/components/schemas/NestedGroupConditionSerializerForis_trueRequest'
    NestedGroupConditionSerializerForisin:
      type: object
      properties:
        negate:
          type: boolean
          default: false
          description: Whether to take the contrary of the rule
        group:
          type: string
          description: Group to which the rule belongs if it is a conditional rule
        field:
          type: string
          description: Field to apply this condition to (overrides rule-level field
            if specified)
        values:
          type: array
          items:
            type: string
            nullable: true
          default: []
    NestedGroupConditionSerializerForisinRequest:
      type: object
      properties:
        negate:
          type: boolean
          default: false
          description: Whether to take the contrary of the rule
        group:
          type: string
          minLength: 1
          description: Group to which the rule belongs if it is a conditional rule
        field:
          type: string
          minLength: 1
          description: Field to apply this condition to (overrides rule-level field
            if specified)
        values:
          type: array
          items:
            type: string
            nullable: true
          default: []
    NestedGroupConditionSerializerForisinTyped:
      allOf:
      - $ref: '#/components/schemas/NestedGroupConditionUntyped'
      - $ref: '#/components/schemas/NestedGroupConditionSerializerForisin'
    NestedGroupConditionSerializerForisinTypedRequest:
      allOf:
      - $ref: '#/components/schemas/NestedGroupConditionRequestUntyped'
      - $ref: '#/components/schemas/NestedGroupConditionSerializerForisinRequest'
    NestedGroupConditionSerializerFormax_date:
      type: object
      properties:
        negate:
          type: boolean
          default: false
          description: Whether to take the contrary of the rule
        group:
          type: string
          description: Group to which the rule belongs if it is a conditional rule
        field:
          type: string
          description: Field to apply this condition to (overrides rule-level field
            if specified)
        max_date:
          type: string
      required:
      - max_date
    NestedGroupConditionSerializerFormax_dateRequest:
      type: object
      properties:
        negate:
          type: boolean
          default: false
          description: Whether to take the contrary of the rule
        group:
          type: string
          minLength: 1
          description: Group to which the rule belongs if it is a conditional rule
        field:
          type: string
          minLength: 1
          description: Field to apply this condition to (overrides rule-level field
            if specified)
        max_date:
          type: string
          minLength: 1
      required:
      - max_date
    NestedGroupConditionSerializerFormax_dateTyped:
      allOf:
      - $ref: '#/components/schemas/NestedGroupConditionUntyped'
      - $ref: '#/components/schemas/NestedGroupConditionSerializerFormax_date'
    NestedGroupConditionSerializerFormax_dateTypedRequest:
      allOf:
      - $ref: '#/components/schemas/NestedGroupConditionRequestUntyped'
      - $ref: '#/components/schemas/NestedGroupConditionSerializerFormax_dateRequest'
    NestedGroupConditionSerializerFormax_length:
      type: object
      properties:
        negate:
          type: boolean
          default: false
          description: Whether to take the contrary of the rule
        group:
          type: string
          description: Group to which the rule belongs if it is a conditional rule
        field:
          type: string
          description: Field to apply this condition to (overrides rule-level field
            if specified)
        threshold:
          type: number
          format: double
        strict:
          type: boolean
          default: true
    NestedGroupConditionSerializerFormax_lengthRequest:
      type: object
      properties:
        negate:
          type: boolean
          default: false
          description: Whether to take the contrary of the rule
        group:
          type: string
          minLength: 1
          description: Group to which the rule belongs if it is a conditional rule
        field:
          type: string
          minLength: 1
          description: Field to apply this condition to (overrides rule-level field
            if specified)
        threshold:
          type: number
          format: double
        strict:
          type: boolean
          default: true
    NestedGroupConditionSerializerFormax_lengthTyped:
      allOf:
      - $ref: '#/components/schemas/NestedGroupConditionUntyped'
      - $ref: '#/components/schemas/NestedGroupConditionSerializerFormax_length'
    NestedGroupConditionSerializerFormax_lengthTypedRequest:
      allOf:
      - $ref: '#/components/schemas/NestedGroupConditionRequestUntyped'
      - $ref: '#/components/schemas/NestedGroupConditionSerializerFormax_lengthRequest'
    NestedGroupConditionSerializerFormax_value:
      type: object
      properties:
        negate:
          type: boolean
          default: false
          description: Whether to take the contrary of the rule
        group:
          type: string
          description: Group to which the rule belongs if it is a conditional rule
        field:
          type: string
          description: Field to apply this condition to (overrides rule-level field
            if specified)
        threshold:
          type: number
          format: double
        strict:
          type: boolean
          default: true
    NestedGroupConditionSerializerFormax_valueRequest:
      type: object
      properties:
        negate:
          type: boolean
          default: false
          description: Whether to take the contrary of the rule
        group:
          type: string
          minLength: 1
          description: Group to which the rule belongs if it is a conditional rule
        field:
          type: string
          minLength: 1
          description: Field to apply this condition to (overrides rule-level field
            if specified)
        threshold:
          type: number
          format: double
        strict:
          type: boolean
          default: true
    NestedGroupConditionSerializerFormax_valueTyped:
      allOf:
      - $ref: '#/components/schemas/NestedGroupConditionUntyped'
      - $ref: '#/components/schemas/NestedGroupConditionSerializerFormax_value'
    NestedGroupConditionSerializerFormax_valueTypedRequest:
      allOf:
      - $ref: '#/components/schemas/NestedGroupConditionRequestUntyped'
      - $ref: '#/components/schemas/NestedGroupConditionSerializerFormax_valueRequest'
    NestedGroupConditionSerializerFormin_date:
      type: object
      properties:
        negate:
          type: boolean
          default: false
          description: Whether to take the contrary of the rule
        group:
          type: string
          description: Group to which the rule belongs if it is a conditional rule
        field:
          type: string
          description: Field to apply this condition to (overrides rule-level field
            if specified)
        min_date:
          type: string
      required:
      - min_date
    NestedGroupConditionSerializerFormin_dateRequest:
      type: object
      properties:
        negate:
          type: boolean
          default: false
          description: Whether to take the contrary of the rule
        group:
          type: string
          minLength: 1
          description: Group to which the rule belongs if it is a conditional rule
        field:
          type: string
          minLength: 1
          description: Field to apply this condition to (overrides rule-level field
            if specified)
        min_date:
          type: string
          minLength: 1
      required:
      - min_date
    NestedGroupConditionSerializerFormin_dateTyped:
      allOf:
      - $ref: '#/components/schemas/NestedGroupConditionUntyped'
      - $ref: '#/components/schemas/NestedGroupConditionSerializerFormin_date'
    NestedGroupConditionSerializerFormin_dateTypedRequest:
      allOf:
      - $ref: '#/components/schemas/NestedGroupConditionRequestUntyped'
      - $ref: '#/components/schemas/NestedGroupConditionSerializerFormin_dateRequest'
    NestedGroupConditionSerializerFormin_value:
      type: object
      properties:
        negate:
          type: boolean
          default: false
          description: Whether to take the contrary of the rule
        group:
          type: string
          description: Group to which the rule belongs if it is a conditional rule
        field:
          type: string
          description: Field to apply this condition to (overrides rule-level field
            if specified)
        threshold:
          type: number
          format: double
        strict:
          type: boolean
          default: true
    NestedGroupConditionSerializerFormin_valueRequest:
      type: object
      properties:
        negate:
          type: boolean
          default: false
          description: Whether to take the contrary of the rule
        group:
          type: string
          minLength: 1
          description: Group to which the rule belongs if it is a conditional rule
        field:
          type: string
          minLength: 1
          description: Field to apply this condition to (overrides rule-level field
            if specified)
        threshold:
          type: number
          format: double
        strict:
          type: boolean
          default: true
    NestedGroupConditionSerializerFormin_valueTyped:
      allOf:
      - $ref: '#/components/schemas/NestedGroupConditionUntyped'
      - $ref: '#/components/schemas/NestedGroupConditionSerializerFormin_value'
    NestedGroupConditionSerializerFormin_valueTypedRequest:
      allOf:
      - $ref: '#/components/schemas/NestedGroupConditionRequestUntyped'
      - $ref: '#/components/schemas/NestedGroupConditionSerializerFormin_valueRequest'
    NestedGroupConditionSerializerForregex:
      type: object
      properties:
        negate:
          type: boolean
          default: false
          description: Whether to take the contrary of the rule
        group:
          type: string
          description: Group to which the rule belongs if it is a conditional rule
        field:
          type: string
          description: Field to apply this condition to (overrides rule-level field
            if specified)
        pattern:
          type: string
      required:
      - pattern
    NestedGroupConditionSerializerForregexRequest:
      type: object
      properties:
        negate:
          type: boolean
          default: false
          description: Whether to take the contrary of the rule
        group:
          type: string
          minLength: 1
          description: Group to which the rule belongs if it is a conditional rule
        field:
          type: string
          minLength: 1
          description: Field to apply this condition to (overrides rule-level field
            if specified)
        pattern:
          type: string
      required:
      - pattern
    NestedGroupConditionSerializerForregexTyped:
      allOf:
      - $ref: '#/components/schemas/NestedGroupConditionUntyped'
      - $ref: '#/components/schemas/NestedGroupConditionSerializerForregex'
    NestedGroupConditionSerializerForregexTypedRequest:
      allOf:
      - $ref: '#/components/schemas/NestedGroupConditionRequestUntyped'
      - $ref: '#/components/schemas/NestedGroupConditionSerializerForregexRequest'
    NestedGroupConditionSerializerForrequired:
      type: object
      properties:
        negate:
          type: boolean
          default: false
          description: Whether to take the contrary of the rule
        group:
          type: string
          description: Group to which the rule belongs if it is a conditional rule
        field:
          type: string
          description: Field to apply this condition to (overrides rule-level field
            if specified)
    NestedGroupConditionSerializerForrequiredRequest:
      type: object
      properties:
        negate:
          type: boolean
          default: false
          description: Whether to take the contrary of the rule
        group:
          type: string
          minLength: 1
          description: Group to which the rule belongs if it is a conditional rule
        field:
          type: string
          minLength: 1
          description: Field to apply this condition to (overrides rule-level field
            if specified)
    NestedGroupConditionSerializerForrequiredTyped:
      allOf:
      - $ref: '#/components/schemas/NestedGroupConditionUntyped'
      - $ref: '#/components/schemas/NestedGroupConditionSerializerForrequired'
    NestedGroupConditionSerializerForrequiredTypedRequest:
      allOf:
      - $ref: '#/components/schemas/NestedGroupConditionRequestUntyped'
      - $ref: '#/components/schemas/NestedGroupConditionSerializerForrequiredRequest'
    NestedGroupConditionSerializerForrequired_on:
      type: object
      properties:
        negate:
          type: boolean
          default: false
          description: Whether to take the contrary of the rule
        group:
          type: string
          description: Group to which the rule belongs if it is a conditional rule
        field:
          type: string
          description: Field to apply this condition to (overrides rule-level field
            if specified)
        column:
          type: string
        pattern:
          type: string
      required:
      - column
      - pattern
    NestedGroupConditionSerializerForrequired_onRequest:
      type: object
      properties:
        negate:
          type: boolean
          default: false
          description: Whether to take the contrary of the rule
        group:
          type: string
          minLength: 1
          description: Group to which the rule belongs if it is a conditional rule
        field:
          type: string
          minLength: 1
          description: Field to apply this condition to (overrides rule-level field
            if specified)
        column:
          type: string
          minLength: 1
        pattern:
          type: string
      required:
      - column
      - pattern
    NestedGroupConditionSerializerForrequired_onTyped:
      allOf:
      - $ref: '#/components/schemas/NestedGroupConditionUntyped'
      - $ref: '#/components/schemas/NestedGroupConditionSerializerForrequired_on'
    NestedGroupConditionSerializerForrequired_onTypedRequest:
      allOf:
      - $ref: '#/components/schemas/NestedGroupConditionRequestUntyped'
      - $ref: '#/components/schemas/NestedGroupConditionSerializerForrequired_onRequest'
    NestedGroupConditionSerializerForrequired_with:
      type: object
      properties:
        negate:
          type: boolean
          default: false
          description: Whether to take the contrary of the rule
        group:
          type: string
          description: Group to which the rule belongs if it is a conditional rule
        field:
          type: string
          description: Field to apply this condition to (overrides rule-level field
            if specified)
        columns:
          type: array
          items: {}
        which:
          allOf:
          - $ref: '#/components/schemas/Which459Enum'
          default: all
    NestedGroupConditionSerializerForrequired_withRequest:
      type: object
      properties:
        negate:
          type: boolean
          default: false
          description: Whether to take the contrary of the rule
        group:
          type: string
          minLength: 1
          description: Group to which the rule belongs if it is a conditional rule
        field:
          type: string
          minLength: 1
          description: Field to apply this condition to (overrides rule-level field
            if specified)
        columns:
          type: array
          items: {}
        which:
          allOf:
          - $ref: '#/components/schemas/Which459Enum'
          default: all
    NestedGroupConditionSerializerForrequired_withTyped:
      allOf:
      - $ref: '#/components/schemas/NestedGroupConditionUntyped'
      - $ref: '#/components/schemas/NestedGroupConditionSerializerForrequired_with'
    NestedGroupConditionSerializerForrequired_withTypedRequest:
      allOf:
      - $ref: '#/components/schemas/NestedGroupConditionRequestUntyped'
      - $ref: '#/components/schemas/NestedGroupConditionSerializerForrequired_withRequest'
    NestedGroupConditionSerializerForrequired_without:
      type: object
      properties:
        negate:
          type: boolean
          default: false
          description: Whether to take the contrary of the rule
        group:
          type: string
          description: Group to which the rule belongs if it is a conditional rule
        field:
          type: string
          description: Field to apply this condition to (overrides rule-level field
            if specified)
        columns:
          type: array
          items: {}
        which:
          allOf:
          - $ref: '#/components/schemas/Which459Enum'
          default: all
    NestedGroupConditionSerializerForrequired_withoutRequest:
      type: object
      properties:
        negate:
          type: boolean
          default: false
          description: Whether to take the contrary of the rule
        group:
          type: string
          minLength: 1
          description: Group to which the rule belongs if it is a conditional rule
        field:
          type: string
          minLength: 1
          description: Field to apply this condition to (overrides rule-level field
            if specified)
        columns:
          type: array
          items: {}
        which:
          allOf:
          - $ref: '#/components/schemas/Which459Enum'
          default: all
    NestedGroupConditionSerializerForrequired_withoutTyped:
      allOf:
      - $ref: '#/components/schemas/NestedGroupConditionUntyped'
      - $ref: '#/components/schemas/NestedGroupConditionSerializerForrequired_without'
    NestedGroupConditionSerializerForrequired_withoutTypedRequest:
      allOf:
      - $ref: '#/components/schemas/NestedGroupConditionRequestUntyped'
      - $ref: '#/components/schemas/NestedGroupConditionSerializerForrequired_withoutRequest'
    NestedGroupConditionSerializerForsuperior_to:
      type: object
      properties:
        negate:
          type: boolean
          default: false
          description: Whether to take the contrary of the rule
        group:
          type: string
          description: Group to which the rule belongs if it is a conditional rule
        field:
          type: string
          description: Field to apply this condition to (overrides rule-level field
            if specified)
        column:
          type: string
        strict:
          type: boolean
          default: true
      required:
      - column
    NestedGroupConditionSerializerForsuperior_toRequest:
      type: object
      properties:
        negate:
          type: boolean
          default: false
          description: Whether to take the contrary of the rule
        group:
          type: string
          minLength: 1
          description: Group to which the rule belongs if it is a conditional rule
        field:
          type: string
          minLength: 1
          description: Field to apply this condition to (overrides rule-level field
            if specified)
        column:
          type: string
          minLength: 1
        strict:
          type: boolean
          default: true
      required:
      - column
    NestedGroupConditionSerializerForsuperior_toTyped:
      allOf:
      - $ref: '#/components/schemas/NestedGroupConditionUntyped'
      - $ref: '#/components/schemas/NestedGroupConditionSerializerForsuperior_to'
    NestedGroupConditionSerializerForsuperior_toTypedRequest:
      allOf:
      - $ref: '#/components/schemas/NestedGroupConditionRequestUntyped'
      - $ref: '#/components/schemas/NestedGroupConditionSerializerForsuperior_toRequest'
    NestedGroupConditionSerializerForuneditable:
      type: object
      properties:
        negate:
          type: boolean
          default: false
          description: Whether to take the contrary of the rule
        group:
          type: string
          description: Group to which the rule belongs if it is a conditional rule
        field:
          type: string
          description: Field to apply this condition to (overrides rule-level field
            if specified)
    NestedGroupConditionSerializerForuneditableRequest:
      type: object
      properties:
        negate:
          type: boolean
          default: false
          description: Whether to take the contrary of the rule
        group:
          type: string
          minLength: 1
          description: Group to which the rule belongs if it is a conditional rule
        field:
          type: string
          minLength: 1
          description: Field to apply this condition to (overrides rule-level field
            if specified)
    NestedGroupConditionSerializerForuneditableTyped:
      allOf:
      - $ref: '#/components/schemas/NestedGroupConditionUntyped'
      - $ref: '#/components/schemas/NestedGroupConditionSerializerForuneditable'
    NestedGroupConditionSerializerForuneditableTypedRequest:
      allOf:
      - $ref: '#/components/schemas/NestedGroupConditionRequestUntyped'
      - $ref: '#/components/schemas/NestedGroupConditionSerializerForuneditableRequest'
    NestedGroupConditionSerializerForunique:
      type: object
      properties:
        negate:
          type: boolean
          default: false
          description: Whether to take the contrary of the rule
        group:
          type: string
          description: Group to which the rule belongs if it is a conditional rule
        field:
          type: string
          description: Field to apply this condition to (overrides rule-level field
            if specified)
    NestedGroupConditionSerializerForuniqueRequest:
      type: object
      properties:
        negate:
          type: boolean
          default: false
          description: Whether to take the contrary of the rule
        group:
          type: string
          minLength: 1
          description: Group to which the rule belongs if it is a conditional rule
        field:
          type: string
          minLength: 1
          description: Field to apply this condition to (overrides rule-level field
            if specified)
    NestedGroupConditionSerializerForuniqueTyped:
      allOf:
      - $ref: '#/components/schemas/NestedGroupConditionUntyped'
      - $ref: '#/components/schemas/NestedGroupConditionSerializerForunique'
    NestedGroupConditionSerializerForuniqueTypedRequest:
      allOf:
      - $ref: '#/components/schemas/NestedGroupConditionRequestUntyped'
      - $ref: '#/components/schemas/NestedGroupConditionSerializerForuniqueRequest'
    NestedGroupConditionSerializerForunique_on:
      type: object
      properties:
        negate:
          type: boolean
          default: false
          description: Whether to take the contrary of the rule
        group:
          type: string
          description: Group to which the rule belongs if it is a conditional rule
        field:
          type: string
          description: Field to apply this condition to (overrides rule-level field
            if specified)
        columns:
          type: array
          items: {}
    NestedGroupConditionSerializerForunique_onRequest:
      type: object
      properties:
        negate:
          type: boolean
          default: false
          description: Whether to take the contrary of the rule
        group:
          type: string
          minLength: 1
          description: Group to which the rule belongs if it is a conditional rule
        field:
          type: string
          minLength: 1
          description: Field to apply this condition to (overrides rule-level field
            if specified)
        columns:
          type: array
          items: {}
    NestedGroupConditionSerializerForunique_onTyped:
      allOf:
      - $ref: '#/components/schemas/NestedGroupConditionUntyped'
      - $ref: '#/components/schemas/NestedGroupConditionSerializerForunique_on'
    NestedGroupConditionSerializerForunique_onTypedRequest:
      allOf:
      - $ref: '#/components/schemas/NestedGroupConditionRequestUntyped'
      - $ref: '#/components/schemas/NestedGroupConditionSerializerForunique_onRequest'
    NestedGroupConditionSerializerForunique_with:
      type: object
      properties:
        negate:
          type: boolean
          default: false
          description: Whether to take the contrary of the rule
        group:
          type: string
          description: Group to which the rule belongs if it is a conditional rule
        field:
          type: string
          description: Field to apply this condition to (overrides rule-level field
            if specified)
        column:
          type: string
      required:
      - column
    NestedGroupConditionSerializerForunique_withRequest:
      type: object
      properties:
        negate:
          type: boolean
          default: false
          description: Whether to take the contrary of the rule
        group:
          type: string
          minLength: 1
          description: Group to which the rule belongs if it is a conditional rule
        field:
          type: string
          minLength: 1
          description: Field to apply this condition to (overrides rule-level field
            if specified)
        column:
          type: string
          minLength: 1
      required:
      - column
    NestedGroupConditionSerializerForunique_withTyped:
      allOf:
      - $ref: '#/components/schemas/NestedGroupConditionUntyped'
      - $ref: '#/components/schemas/NestedGroupConditionSerializerForunique_with'
    NestedGroupConditionSerializerForunique_withTypedRequest:
      allOf:
      - $ref: '#/components/schemas/NestedGroupConditionRequestUntyped'
      - $ref: '#/components/schemas/NestedGroupConditionSerializerForunique_withRequest'
    NestedGroupConditionUntyped:
      type: object
      description: |-
        A polymorphic serializer, in which the subdata
        types are inferred from one of the keys in the data.
        The class API is designed to be similar to rest_polymorphic's serializer,
        so the drf_spectacular extension can be used for this serializer too. The main difference
        is that it is not meant to be a model serializer but to work on mappings/dicts.
      properties:
        name:
          type: string
      required:
      - name
    NormalisationField:
      oneOf:
      - $ref: '#/components/schemas/NormalisationFieldSerializerForstringTyped'
      - $ref: '#/components/schemas/NormalisationFieldSerializerForhtmlTyped'
      - $ref: '#/components/schemas/NormalisationFieldSerializerFornumberTyped'
      - $ref: '#/components/schemas/NormalisationFieldSerializerForselectTyped'
      - $ref: '#/components/schemas/NormalisationFieldSerializerForbooleanTyped'
      - $ref: '#/components/schemas/NormalisationFieldSerializerForurlTyped'
      - $ref: '#/components/schemas/NormalisationFieldSerializerForimage_urlTyped'
      - $ref: '#/components/schemas/NormalisationFieldSerializerFormediaTyped'
      - $ref: '#/components/schemas/NormalisationFieldSerializerFordateTyped'
      discriminator:
        propertyName: type
        mapping:
          string: '#/components/schemas/NormalisationFieldSerializerForstringTyped'
          html: '#/components/schemas/NormalisationFieldSerializerForhtmlTyped'
          number: '#/components/schemas/NormalisationFieldSerializerFornumberTyped'
          select: '#/components/schemas/NormalisationFieldSerializerForselectTyped'
          boolean: '#/components/schemas/NormalisationFieldSerializerForbooleanTyped'
          url: '#/components/schemas/NormalisationFieldSerializerForurlTyped'
          image_url: '#/components/schemas/NormalisationFieldSerializerForimage_urlTyped'
          media: '#/components/schemas/NormalisationFieldSerializerFormediaTyped'
          date: '#/components/schemas/NormalisationFieldSerializerFordateTyped'
    NormalisationFieldRequest:
      oneOf:
      - $ref: '#/components/schemas/NormalisationFieldSerializerForstringTypedRequest'
      - $ref: '#/components/schemas/NormalisationFieldSerializerForhtmlTypedRequest'
      - $ref: '#/components/schemas/NormalisationFieldSerializerFornumberTypedRequest'
      - $ref: '#/components/schemas/NormalisationFieldSerializerForselectTypedRequest'
      - $ref: '#/components/schemas/NormalisationFieldSerializerForbooleanTypedRequest'
      - $ref: '#/components/schemas/NormalisationFieldSerializerForurlTypedRequest'
      - $ref: '#/components/schemas/NormalisationFieldSerializerForimage_urlTypedRequest'
      - $ref: '#/components/schemas/NormalisationFieldSerializerFormediaTypedRequest'
      - $ref: '#/components/schemas/NormalisationFieldSerializerFordateTypedRequest'
      discriminator:
        propertyName: type
        mapping:
          string: '#/components/schemas/NormalisationFieldSerializerForstringTypedRequest'
          html: '#/components/schemas/NormalisationFieldSerializerForhtmlTypedRequest'
          number: '#/components/schemas/NormalisationFieldSerializerFornumberTypedRequest'
          select: '#/components/schemas/NormalisationFieldSerializerForselectTypedRequest'
          boolean: '#/components/schemas/NormalisationFieldSerializerForbooleanTypedRequest'
          url: '#/components/schemas/NormalisationFieldSerializerForurlTypedRequest'
          image_url: '#/components/schemas/NormalisationFieldSerializerForimage_urlTypedRequest'
          media: '#/components/schemas/NormalisationFieldSerializerFormediaTypedRequest'
          date: '#/components/schemas/NormalisationFieldSerializerFordateTypedRequest'
    NormalisationFieldRequestUntyped:
      type: object
      description: |-
        A polymorphic serializer, in which the subdata
        types are inferred from one of the keys in the data.
        The class API is designed to be similar to rest_polymorphic's serializer,
        so the drf_spectacular extension can be used for this serializer too. The main difference
        is that it is not meant to be a model serializer but to work on mappings/dicts.
      properties:
        type:
          type: string
          minLength: 1
      required:
      - type
    NormalisationFieldSerializerForboolean:
      type: object
      properties:
        name:
          type: string
          description: The name of the field
        groups:
          type: array
          items:
            type: string
            nullable: true
            description: Group to which the field belongs
        mapping:
          type: object
          additionalProperties:
            type: string
        force_mapping:
          type: boolean
        label:
          type: object
          additionalProperties:
            type: string
          default: {}
          description: The friendly name of the field, by locale
        display_group:
          type: string
          nullable: true
        default:
          description: Value to set if the field is empty or can't be converted
        rules:
          type: array
          items:
            $ref: '#/components/schemas/FieldRule'
          default: []
          description: List of rules to validate field value. All the rules must be
            valid to move on to the next step
        warnings:
          type: array
          items:
            $ref: '#/components/schemas/FieldRule'
          description: List of warnings to validate field value. Unlike rules, warnings
            are not blocking
        transformations:
          type: array
          items:
            $ref: '#/components/schemas/Transformation'
          description: List of transformations that are applied to the field
        requirement_level:
          allOf:
          - $ref: '#/components/schemas/RequirementLevelEnum'
          default: optional
          description: |-
            Requirement levels: required, important, optional (default)

            * `required` - Required
            * `important` - Important
            * `optional` - Optional
      required:
      - name
    NormalisationFieldSerializerForbooleanRequest:
      type: object
      properties:
        name:
          type: string
          minLength: 1
          description: The name of the field
        groups:
          type: array
          items:
            type: string
            nullable: true
            minLength: 1
            description: Group to which the field belongs
        mapping:
          type: object
          additionalProperties:
            type: string
        force_mapping:
          type: boolean
        label:
          type: object
          additionalProperties:
            type: string
            minLength: 1
          default: {}
          description: The friendly name of the field, by locale
        display_group:
          type: string
          nullable: true
          minLength: 1
        default:
          description: Value to set if the field is empty or can't be converted
        rules:
          type: array
          items:
            $ref: '#/components/schemas/FieldRuleRequest'
          default: []
          description: List of rules to validate field value. All the rules must be
            valid to move on to the next step
        warnings:
          type: array
          items:
            $ref: '#/components/schemas/FieldRuleRequest'
          description: List of warnings to validate field value. Unlike rules, warnings
            are not blocking
        transformations:
          type: array
          items:
            $ref: '#/components/schemas/TransformationRequest'
          description: List of transformations that are applied to the field
        requirement_level:
          allOf:
          - $ref: '#/components/schemas/RequirementLevelEnum'
          default: optional
          description: |-
            Requirement levels: required, important, optional (default)

            * `required` - Required
            * `important` - Important
            * `optional` - Optional
      required:
      - name
    NormalisationFieldSerializerForbooleanTyped:
      allOf:
      - $ref: '#/components/schemas/NormalisationFieldUntyped'
      - $ref: '#/components/schemas/NormalisationFieldSerializerForboolean'
    NormalisationFieldSerializerForbooleanTypedRequest:
      allOf:
      - $ref: '#/components/schemas/NormalisationFieldRequestUntyped'
      - $ref: '#/components/schemas/NormalisationFieldSerializerForbooleanRequest'
    NormalisationFieldSerializerFordate:
      type: object
      properties:
        name:
          type: string
          description: The name of the field
        groups:
          type: array
          items:
            type: string
            nullable: true
            description: Group to which the field belongs
        mapping:
          type: object
          additionalProperties:
            type: string
        force_mapping:
          type: boolean
        label:
          type: object
          additionalProperties:
            type: string
          default: {}
          description: The friendly name of the field, by locale
        display_group:
          type: string
          nullable: true
        default:
          description: Value to set if the field is empty or can't be converted
        rules:
          type: array
          items:
            $ref: '#/components/schemas/FieldRule'
          default: []
          description: List of rules to validate field value. All the rules must be
            valid to move on to the next step
        warnings:
          type: array
          items:
            $ref: '#/components/schemas/FieldRule'
          description: List of warnings to validate field value. Unlike rules, warnings
            are not blocking
        transformations:
          type: array
          items:
            $ref: '#/components/schemas/Transformation'
          description: List of transformations that are applied to the field
        requirement_level:
          allOf:
          - $ref: '#/components/schemas/RequirementLevelEnum'
          default: optional
          description: |-
            Requirement levels: required, important, optional (default)

            * `required` - Required
            * `important` - Important
            * `optional` - Optional
        format:
          type: string
      required:
      - format
      - name
    NormalisationFieldSerializerFordateRequest:
      type: object
      properties:
        name:
          type: string
          minLength: 1
          description: The name of the field
        groups:
          type: array
          items:
            type: string
            nullable: true
            minLength: 1
            description: Group to which the field belongs
        mapping:
          type: object
          additionalProperties:
            type: string
        force_mapping:
          type: boolean
        label:
          type: object
          additionalProperties:
            type: string
            minLength: 1
          default: {}
          description: The friendly name of the field, by locale
        display_group:
          type: string
          nullable: true
          minLength: 1
        default:
          description: Value to set if the field is empty or can't be converted
        rules:
          type: array
          items:
            $ref: '#/components/schemas/FieldRuleRequest'
          default: []
          description: List of rules to validate field value. All the rules must be
            valid to move on to the next step
        warnings:
          type: array
          items:
            $ref: '#/components/schemas/FieldRuleRequest'
          description: List of warnings to validate field value. Unlike rules, warnings
            are not blocking
        transformations:
          type: array
          items:
            $ref: '#/components/schemas/TransformationRequest'
          description: List of transformations that are applied to the field
        requirement_level:
          allOf:
          - $ref: '#/components/schemas/RequirementLevelEnum'
          default: optional
          description: |-
            Requirement levels: required, important, optional (default)

            * `required` - Required
            * `important` - Important
            * `optional` - Optional
        format:
          type: string
          minLength: 1
      required:
      - format
      - name
    NormalisationFieldSerializerFordateTyped:
      allOf:
      - $ref: '#/components/schemas/NormalisationFieldUntyped'
      - $ref: '#/components/schemas/NormalisationFieldSerializerFordate'
    NormalisationFieldSerializerFordateTypedRequest:
      allOf:
      - $ref: '#/components/schemas/NormalisationFieldRequestUntyped'
      - $ref: '#/components/schemas/NormalisationFieldSerializerFordateRequest'
    NormalisationFieldSerializerForhtml:
      type: object
      properties:
        name:
          type: string
          description: The name of the field
        groups:
          type: array
          items:
            type: string
            nullable: true
            description: Group to which the field belongs
        mapping:
          type: object
          additionalProperties:
            type: string
        force_mapping:
          type: boolean
        label:
          type: object
          additionalProperties:
            type: string
          default: {}
          description: The friendly name of the field, by locale
        display_group:
          type: string
          nullable: true
        default:
          description: Value to set if the field is empty or can't be converted
        rules:
          type: array
          items:
            $ref: '#/components/schemas/FieldRule'
          default: []
          description: List of rules to validate field value. All the rules must be
            valid to move on to the next step
        warnings:
          type: array
          items:
            $ref: '#/components/schemas/FieldRule'
          description: List of warnings to validate field value. Unlike rules, warnings
            are not blocking
        transformations:
          type: array
          items:
            $ref: '#/components/schemas/Transformation'
          description: List of transformations that are applied to the field
        requirement_level:
          allOf:
          - $ref: '#/components/schemas/RequirementLevelEnum'
          default: optional
          description: |-
            Requirement levels: required, important, optional (default)

            * `required` - Required
            * `important` - Important
            * `optional` - Optional
        tag_whitelist:
          type: array
          items:
            type: string
          default: []
        remove_attributes:
          type: boolean
      required:
      - name
    NormalisationFieldSerializerForhtmlRequest:
      type: object
      properties:
        name:
          type: string
          minLength: 1
          description: The name of the field
        groups:
          type: array
          items:
            type: string
            nullable: true
            minLength: 1
            description: Group to which the field belongs
        mapping:
          type: object
          additionalProperties:
            type: string
        force_mapping:
          type: boolean
        label:
          type: object
          additionalProperties:
            type: string
            minLength: 1
          default: {}
          description: The friendly name of the field, by locale
        display_group:
          type: string
          nullable: true
          minLength: 1
        default:
          description: Value to set if the field is empty or can't be converted
        rules:
          type: array
          items:
            $ref: '#/components/schemas/FieldRuleRequest'
          default: []
          description: List of rules to validate field value. All the rules must be
            valid to move on to the next step
        warnings:
          type: array
          items:
            $ref: '#/components/schemas/FieldRuleRequest'
          description: List of warnings to validate field value. Unlike rules, warnings
            are not blocking
        transformations:
          type: array
          items:
            $ref: '#/components/schemas/TransformationRequest'
          description: List of transformations that are applied to the field
        requirement_level:
          allOf:
          - $ref: '#/components/schemas/RequirementLevelEnum'
          default: optional
          description: |-
            Requirement levels: required, important, optional (default)

            * `required` - Required
            * `important` - Important
            * `optional` - Optional
        tag_whitelist:
          type: array
          items:
            type: string
            minLength: 1
          default: []
        remove_attributes:
          type: boolean
      required:
      - name
    NormalisationFieldSerializerForhtmlTyped:
      allOf:
      - $ref: '#/components/schemas/NormalisationFieldUntyped'
      - $ref: '#/components/schemas/NormalisationFieldSerializerForhtml'
    NormalisationFieldSerializerForhtmlTypedRequest:
      allOf:
      - $ref: '#/components/schemas/NormalisationFieldRequestUntyped'
      - $ref: '#/components/schemas/NormalisationFieldSerializerForhtmlRequest'
    NormalisationFieldSerializerForimage_url:
      type: object
      properties:
        name:
          type: string
          description: The name of the field
        groups:
          type: array
          items:
            type: string
            nullable: true
            description: Group to which the field belongs
        mapping:
          type: object
          additionalProperties:
            type: string
        force_mapping:
          type: boolean
        label:
          type: object
          additionalProperties:
            type: string
          default: {}
          description: The friendly name of the field, by locale
        display_group:
          type: string
          nullable: true
        default:
          description: Value to set if the field is empty or can't be converted
        rules:
          type: array
          items:
            $ref: '#/components/schemas/FieldRule'
          default: []
          description: List of rules to validate field value. All the rules must be
            valid to move on to the next step
        warnings:
          type: array
          items:
            $ref: '#/components/schemas/FieldRule'
          description: List of warnings to validate field value. Unlike rules, warnings
            are not blocking
        transformations:
          type: array
          items:
            $ref: '#/components/schemas/Transformation'
          description: List of transformations that are applied to the field
        requirement_level:
          allOf:
          - $ref: '#/components/schemas/RequirementLevelEnum'
          default: optional
          description: |-
            Requirement levels: required, important, optional (default)

            * `required` - Required
            * `important` - Important
            * `optional` - Optional
        multiple:
          type: boolean
          default: false
        separator:
          type: string
          default: ;
        authorized_extensions:
          type: array
          items:
            type: string
          default:
          - .jpg
          - .jpeg
          - .png
          - .gif
      required:
      - name
    NormalisationFieldSerializerForimage_urlRequest:
      type: object
      properties:
        name:
          type: string
          minLength: 1
          description: The name of the field
        groups:
          type: array
          items:
            type: string
            nullable: true
            minLength: 1
            description: Group to which the field belongs
        mapping:
          type: object
          additionalProperties:
            type: string
        force_mapping:
          type: boolean
        label:
          type: object
          additionalProperties:
            type: string
            minLength: 1
          default: {}
          description: The friendly name of the field, by locale
        display_group:
          type: string
          nullable: true
          minLength: 1
        default:
          description: Value to set if the field is empty or can't be converted
        rules:
          type: array
          items:
            $ref: '#/components/schemas/FieldRuleRequest'
          default: []
          description: List of rules to validate field value. All the rules must be
            valid to move on to the next step
        warnings:
          type: array
          items:
            $ref: '#/components/schemas/FieldRuleRequest'
          description: List of warnings to validate field value. Unlike rules, warnings
            are not blocking
        transformations:
          type: array
          items:
            $ref: '#/components/schemas/TransformationRequest'
          description: List of transformations that are applied to the field
        requirement_level:
          allOf:
          - $ref: '#/components/schemas/RequirementLevelEnum'
          default: optional
          description: |-
            Requirement levels: required, important, optional (default)

            * `required` - Required
            * `important` - Important
            * `optional` - Optional
        multiple:
          type: boolean
          default: false
        separator:
          type: string
          minLength: 1
          default: ;
        authorized_extensions:
          type: array
          items:
            type: string
            minLength: 1
          default:
          - .jpg
          - .jpeg
          - .png
          - .gif
      required:
      - name
    NormalisationFieldSerializerForimage_urlTyped:
      allOf:
      - $ref: '#/components/schemas/NormalisationFieldUntyped'
      - $ref: '#/components/schemas/NormalisationFieldSerializerForimage_url'
    NormalisationFieldSerializerForimage_urlTypedRequest:
      allOf:
      - $ref: '#/components/schemas/NormalisationFieldRequestUntyped'
      - $ref: '#/components/schemas/NormalisationFieldSerializerForimage_urlRequest'
    NormalisationFieldSerializerFormedia:
      type: object
      properties:
        name:
          type: string
          description: The name of the field
        groups:
          type: array
          items:
            type: string
            nullable: true
            description: Group to which the field belongs
        mapping:
          type: object
          additionalProperties:
            type: string
        force_mapping:
          type: boolean
        label:
          type: object
          additionalProperties:
            type: string
          default: {}
          description: The friendly name of the field, by locale
        display_group:
          type: string
          nullable: true
        default:
          description: Value to set if the field is empty or can't be converted
        rules:
          type: array
          items:
            $ref: '#/components/schemas/FieldRule'
          default: []
          description: List of rules to validate field value. All the rules must be
            valid to move on to the next step
        warnings:
          type: array
          items:
            $ref: '#/components/schemas/FieldRule'
          description: List of warnings to validate field value. Unlike rules, warnings
            are not blocking
        transformations:
          type: array
          items:
            $ref: '#/components/schemas/Transformation'
          description: List of transformations that are applied to the field
        requirement_level:
          allOf:
          - $ref: '#/components/schemas/RequirementLevelEnum'
          default: optional
          description: |-
            Requirement levels: required, important, optional (default)

            * `required` - Required
            * `important` - Important
            * `optional` - Optional
        supported_media_types:
          type: array
          items:
            $ref: '#/components/schemas/SupportedMediaTypesEnum'
        separator:
          type: string
          default: ;
        max_file_size_in_kb:
          type: integer
          minimum: 0
          nullable: true
      required:
      - name
      - supported_media_types
    NormalisationFieldSerializerFormediaRequest:
      type: object
      properties:
        name:
          type: string
          minLength: 1
          description: The name of the field
        groups:
          type: array
          items:
            type: string
            nullable: true
            minLength: 1
            description: Group to which the field belongs
        mapping:
          type: object
          additionalProperties:
            type: string
        force_mapping:
          type: boolean
        label:
          type: object
          additionalProperties:
            type: string
            minLength: 1
          default: {}
          description: The friendly name of the field, by locale
        display_group:
          type: string
          nullable: true
          minLength: 1
        default:
          description: Value to set if the field is empty or can't be converted
        rules:
          type: array
          items:
            $ref: '#/components/schemas/FieldRuleRequest'
          default: []
          description: List of rules to validate field value. All the rules must be
            valid to move on to the next step
        warnings:
          type: array
          items:
            $ref: '#/components/schemas/FieldRuleRequest'
          description: List of warnings to validate field value. Unlike rules, warnings
            are not blocking
        transformations:
          type: array
          items:
            $ref: '#/components/schemas/TransformationRequest'
          description: List of transformations that are applied to the field
        requirement_level:
          allOf:
          - $ref: '#/components/schemas/RequirementLevelEnum'
          default: optional
          description: |-
            Requirement levels: required, important, optional (default)

            * `required` - Required
            * `important` - Important
            * `optional` - Optional
        supported_media_types:
          type: array
          items:
            $ref: '#/components/schemas/SupportedMediaTypesEnum'
        separator:
          type: string
          minLength: 1
          default: ;
        max_file_size_in_kb:
          type: integer
          minimum: 0
          nullable: true
      required:
      - name
      - supported_media_types
    NormalisationFieldSerializerFormediaTyped:
      allOf:
      - $ref: '#/components/schemas/NormalisationFieldUntyped'
      - $ref: '#/components/schemas/NormalisationFieldSerializerFormedia'
    NormalisationFieldSerializerFormediaTypedRequest:
      allOf:
      - $ref: '#/components/schemas/NormalisationFieldRequestUntyped'
      - $ref: '#/components/schemas/NormalisationFieldSerializerFormediaRequest'
    NormalisationFieldSerializerFornumber:
      type: object
      properties:
        name:
          type: string
          description: The name of the field
        groups:
          type: array
          items:
            type: string
            nullable: true
            description: Group to which the field belongs
        mapping:
          type: object
          additionalProperties:
            type: string
        force_mapping:
          type: boolean
        label:
          type: object
          additionalProperties:
            type: string
          default: {}
          description: The friendly name of the field, by locale
        display_group:
          type: string
          nullable: true
        default:
          description: Value to set if the field is empty or can't be converted
        rules:
          type: array
          items:
            $ref: '#/components/schemas/FieldRule'
          default: []
          description: List of rules to validate field value. All the rules must be
            valid to move on to the next step
        warnings:
          type: array
          items:
            $ref: '#/components/schemas/FieldRule'
          description: List of warnings to validate field value. Unlike rules, warnings
            are not blocking
        transformations:
          type: array
          items:
            $ref: '#/components/schemas/Transformation'
          description: List of transformations that are applied to the field
        requirement_level:
          allOf:
          - $ref: '#/components/schemas/RequirementLevelEnum'
          default: optional
          description: |-
            Requirement levels: required, important, optional (default)

            * `required` - Required
            * `important` - Important
            * `optional` - Optional
        decimals:
          type: integer
          nullable: true
        number_pattern:
          type: string
          nullable: true
        number_substitution:
          type: string
          nullable: true
      required:
      - name
    NormalisationFieldSerializerFornumberRequest:
      type: object
      properties:
        name:
          type: string
          minLength: 1
          description: The name of the field
        groups:
          type: array
          items:
            type: string
            nullable: true
            minLength: 1
            description: Group to which the field belongs
        mapping:
          type: object
          additionalProperties:
            type: string
        force_mapping:
          type: boolean
        label:
          type: object
          additionalProperties:
            type: string
            minLength: 1
          default: {}
          description: The friendly name of the field, by locale
        display_group:
          type: string
          nullable: true
          minLength: 1
        default:
          description: Value to set if the field is empty or can't be converted
        rules:
          type: array
          items:
            $ref: '#/components/schemas/FieldRuleRequest'
          default: []
          description: List of rules to validate field value. All the rules must be
            valid to move on to the next step
        warnings:
          type: array
          items:
            $ref: '#/components/schemas/FieldRuleRequest'
          description: List of warnings to validate field value. Unlike rules, warnings
            are not blocking
        transformations:
          type: array
          items:
            $ref: '#/components/schemas/TransformationRequest'
          description: List of transformations that are applied to the field
        requirement_level:
          allOf:
          - $ref: '#/components/schemas/RequirementLevelEnum'
          default: optional
          description: |-
            Requirement levels: required, important, optional (default)

            * `required` - Required
            * `important` - Important
            * `optional` - Optional
        decimals:
          type: integer
          nullable: true
        number_pattern:
          type: string
          nullable: true
        number_substitution:
          type: string
          nullable: true
      required:
      - name
    NormalisationFieldSerializerFornumberTyped:
      allOf:
      - $ref: '#/components/schemas/NormalisationFieldUntyped'
      - $ref: '#/components/schemas/NormalisationFieldSerializerFornumber'
    NormalisationFieldSerializerFornumberTypedRequest:
      allOf:
      - $ref: '#/components/schemas/NormalisationFieldRequestUntyped'
      - $ref: '#/components/schemas/NormalisationFieldSerializerFornumberRequest'
    NormalisationFieldSerializerForselect:
      type: object
      properties:
        options_collection_name:
          type: string
        name:
          type: string
          description: The name of the field
        groups:
          type: array
          items:
            type: string
            nullable: true
            description: Group to which the field belongs
        mapping:
          type: object
          additionalProperties:
            type: string
        force_mapping:
          type: boolean
        label:
          type: object
          additionalProperties:
            type: string
          default: {}
          description: The friendly name of the field, by locale
        display_group:
          type: string
          nullable: true
        default:
          description: Value to set if the field is empty or can't be converted
        rules:
          type: array
          items:
            $ref: '#/components/schemas/FieldRule'
          default: []
          description: List of rules to validate field value. All the rules must be
            valid to move on to the next step
        warnings:
          type: array
          items:
            $ref: '#/components/schemas/FieldRule'
          description: List of warnings to validate field value. Unlike rules, warnings
            are not blocking
        transformations:
          type: array
          items:
            $ref: '#/components/schemas/Transformation'
          description: List of transformations that are applied to the field
        requirement_level:
          allOf:
          - $ref: '#/components/schemas/RequirementLevelEnum'
          default: optional
          description: |-
            Requirement levels: required, important, optional (default)

            * `required` - Required
            * `important` - Important
            * `optional` - Optional
        multiple:
          type: boolean
          default: false
        separator:
          type: string
          default: ;
        max_choices:
          type: integer
          nullable: true
      required:
      - name
      - options_collection_name
    NormalisationFieldSerializerForselectRequest:
      type: object
      properties:
        options_collection_name:
          type: string
          minLength: 1
        name:
          type: string
          minLength: 1
          description: The name of the field
        groups:
          type: array
          items:
            type: string
            nullable: true
            minLength: 1
            description: Group to which the field belongs
        mapping:
          type: object
          additionalProperties:
            type: string
        force_mapping:
          type: boolean
        label:
          type: object
          additionalProperties:
            type: string
            minLength: 1
          default: {}
          description: The friendly name of the field, by locale
        display_group:
          type: string
          nullable: true
          minLength: 1
        default:
          description: Value to set if the field is empty or can't be converted
        rules:
          type: array
          items:
            $ref: '#/components/schemas/FieldRuleRequest'
          default: []
          description: List of rules to validate field value. All the rules must be
            valid to move on to the next step
        warnings:
          type: array
          items:
            $ref: '#/components/schemas/FieldRuleRequest'
          description: List of warnings to validate field value. Unlike rules, warnings
            are not blocking
        transformations:
          type: array
          items:
            $ref: '#/components/schemas/TransformationRequest'
          description: List of transformations that are applied to the field
        requirement_level:
          allOf:
          - $ref: '#/components/schemas/RequirementLevelEnum'
          default: optional
          description: |-
            Requirement levels: required, important, optional (default)

            * `required` - Required
            * `important` - Important
            * `optional` - Optional
        multiple:
          type: boolean
          default: false
        separator:
          type: string
          minLength: 1
          default: ;
        max_choices:
          type: integer
          nullable: true
      required:
      - name
      - options_collection_name
    NormalisationFieldSerializerForselectTyped:
      allOf:
      - $ref: '#/components/schemas/NormalisationFieldUntyped'
      - $ref: '#/components/schemas/NormalisationFieldSerializerForselect'
    NormalisationFieldSerializerForselectTypedRequest:
      allOf:
      - $ref: '#/components/schemas/NormalisationFieldRequestUntyped'
      - $ref: '#/components/schemas/NormalisationFieldSerializerForselectRequest'
    NormalisationFieldSerializerForstring:
      type: object
      properties:
        name:
          type: string
          description: The name of the field
        groups:
          type: array
          items:
            type: string
            nullable: true
            description: Group to which the field belongs
        mapping:
          type: object
          additionalProperties:
            type: string
        force_mapping:
          type: boolean
        label:
          type: object
          additionalProperties:
            type: string
          default: {}
          description: The friendly name of the field, by locale
        display_group:
          type: string
          nullable: true
        default:
          description: Value to set if the field is empty or can't be converted
        rules:
          type: array
          items:
            $ref: '#/components/schemas/FieldRule'
          default: []
          description: List of rules to validate field value. All the rules must be
            valid to move on to the next step
        warnings:
          type: array
          items:
            $ref: '#/components/schemas/FieldRule'
          description: List of warnings to validate field value. Unlike rules, warnings
            are not blocking
        transformations:
          type: array
          items:
            $ref: '#/components/schemas/Transformation'
          description: List of transformations that are applied to the field
        requirement_level:
          allOf:
          - $ref: '#/components/schemas/RequirementLevelEnum'
          default: optional
          description: |-
            Requirement levels: required, important, optional (default)

            * `required` - Required
            * `important` - Important
            * `optional` - Optional
      required:
      - name
    NormalisationFieldSerializerForstringRequest:
      type: object
      properties:
        name:
          type: string
          minLength: 1
          description: The name of the field
        groups:
          type: array
          items:
            type: string
            nullable: true
            minLength: 1
            description: Group to which the field belongs
        mapping:
          type: object
          additionalProperties:
            type: string
        force_mapping:
          type: boolean
        label:
          type: object
          additionalProperties:
            type: string
            minLength: 1
          default: {}
          description: The friendly name of the field, by locale
        display_group:
          type: string
          nullable: true
          minLength: 1
        default:
          description: Value to set if the field is empty or can't be converted
        rules:
          type: array
          items:
            $ref: '#/components/schemas/FieldRuleRequest'
          default: []
          description: List of rules to validate field value. All the rules must be
            valid to move on to the next step
        warnings:
          type: array
          items:
            $ref: '#/components/schemas/FieldRuleRequest'
          description: List of warnings to validate field value. Unlike rules, warnings
            are not blocking
        transformations:
          type: array
          items:
            $ref: '#/components/schemas/TransformationRequest'
          description: List of transformations that are applied to the field
        requirement_level:
          allOf:
          - $ref: '#/components/schemas/RequirementLevelEnum'
          default: optional
          description: |-
            Requirement levels: required, important, optional (default)

            * `required` - Required
            * `important` - Important
            * `optional` - Optional
      required:
      - name
    NormalisationFieldSerializerForstringTyped:
      allOf:
      - $ref: '#/components/schemas/NormalisationFieldUntyped'
      - $ref: '#/components/schemas/NormalisationFieldSerializerForstring'
    NormalisationFieldSerializerForstringTypedRequest:
      allOf:
      - $ref: '#/components/schemas/NormalisationFieldRequestUntyped'
      - $ref: '#/components/schemas/NormalisationFieldSerializerForstringRequest'
    NormalisationFieldSerializerForurl:
      type: object
      properties:
        name:
          type: string
          description: The name of the field
        groups:
          type: array
          items:
            type: string
            nullable: true
            description: Group to which the field belongs
        mapping:
          type: object
          additionalProperties:
            type: string
        force_mapping:
          type: boolean
        label:
          type: object
          additionalProperties:
            type: string
          default: {}
          description: The friendly name of the field, by locale
        display_group:
          type: string
          nullable: true
        default:
          description: Value to set if the field is empty or can't be converted
        rules:
          type: array
          items:
            $ref: '#/components/schemas/FieldRule'
          default: []
          description: List of rules to validate field value. All the rules must be
            valid to move on to the next step
        warnings:
          type: array
          items:
            $ref: '#/components/schemas/FieldRule'
          description: List of warnings to validate field value. Unlike rules, warnings
            are not blocking
        transformations:
          type: array
          items:
            $ref: '#/components/schemas/Transformation'
          description: List of transformations that are applied to the field
        requirement_level:
          allOf:
          - $ref: '#/components/schemas/RequirementLevelEnum'
          default: optional
          description: |-
            Requirement levels: required, important, optional (default)

            * `required` - Required
            * `important` - Important
            * `optional` - Optional
        multiple:
          type: boolean
          default: false
        separator:
          type: string
          default: ;
      required:
      - name
    NormalisationFieldSerializerForurlRequest:
      type: object
      properties:
        name:
          type: string
          minLength: 1
          description: The name of the field
        groups:
          type: array
          items:
            type: string
            nullable: true
            minLength: 1
            description: Group to which the field belongs
        mapping:
          type: object
          additionalProperties:
            type: string
        force_mapping:
          type: boolean
        label:
          type: object
          additionalProperties:
            type: string
            minLength: 1
          default: {}
          description: The friendly name of the field, by locale
        display_group:
          type: string
          nullable: true
          minLength: 1
        default:
          description: Value to set if the field is empty or can't be converted
        rules:
          type: array
          items:
            $ref: '#/components/schemas/FieldRuleRequest'
          default: []
          description: List of rules to validate field value. All the rules must be
            valid to move on to the next step
        warnings:
          type: array
          items:
            $ref: '#/components/schemas/FieldRuleRequest'
          description: List of warnings to validate field value. Unlike rules, warnings
            are not blocking
        transformations:
          type: array
          items:
            $ref: '#/components/schemas/TransformationRequest'
          description: List of transformations that are applied to the field
        requirement_level:
          allOf:
          - $ref: '#/components/schemas/RequirementLevelEnum'
          default: optional
          description: |-
            Requirement levels: required, important, optional (default)

            * `required` - Required
            * `important` - Important
            * `optional` - Optional
        multiple:
          type: boolean
          default: false
        separator:
          type: string
          minLength: 1
          default: ;
      required:
      - name
    NormalisationFieldSerializerForurlTyped:
      allOf:
      - $ref: '#/components/schemas/NormalisationFieldUntyped'
      - $ref: '#/components/schemas/NormalisationFieldSerializerForurl'
    NormalisationFieldSerializerForurlTypedRequest:
      allOf:
      - $ref: '#/components/schemas/NormalisationFieldRequestUntyped'
      - $ref: '#/components/schemas/NormalisationFieldSerializerForurlRequest'
    NormalisationFieldUntyped:
      type: object
      description: |-
        A polymorphic serializer, in which the subdata
        types are inferred from one of the keys in the data.
        The class API is designed to be similar to rest_polymorphic's serializer,
        so the drf_spectacular extension can be used for this serializer too. The main difference
        is that it is not meant to be a model serializer but to work on mappings/dicts.
      properties:
        type:
          type: string
      required:
      - type
    NormalisationStats:
      type: object
      properties:
        total:
          type: integer
          minimum: 0
        validated:
          type: integer
          minimum: 0
        corrected:
          type: integer
          minimum: 0
        to_correct:
          type: integer
          minimum: 0
      required:
      - corrected
      - to_correct
      - total
      - validated
    NullEnum:
      enum:
      - null
    ObtainTokenRequest:
      type: object
      properties:
        password:
          type: string
          minLength: 1
          description: Your password
        token_name:
          type: string
          minLength: 1
          description: Name of the token
        email:
          type: string
          minLength: 1
          description: Your email
      required:
      - email
      - password
      - token_name
    OperationTypeEnum:
      enum:
      - connect
      - create_steps
      - fetch
      - pull
      - push
      type: string
      description: |-
        * `connect` - Connect
        * `create_steps` - Create Steps
        * `fetch` - Fetch
        * `pull` - Pull
        * `push` - Push
    OperatorEnum:
      enum:
      - isin
      - search
      type: string
      description: |-
        * `isin` - Check if value in list
        * `search` - Check if value contains search
    Option:
      type: object
      description: Base class for model serializers containing generic utility. Use
        this instead of serializers.ModelSerializer.
      properties:
        name:
          type: string
          description: The name of the field
        label:
          type: object
          additionalProperties:
            type: string
          default: {}
          description: The friendly name of the field, by locale
      required:
      - name
    OptionRequest:
      type: object
      description: Base class for model serializers containing generic utility. Use
        this instead of serializers.ModelSerializer.
      properties:
        name:
          type: string
          minLength: 1
          description: The name of the field
        label:
          type: object
          additionalProperties:
            type: string
            minLength: 1
          default: {}
          description: The friendly name of the field, by locale
      required:
      - name
    OptionsCollection:
      type: object
      description: Base class for model serializers containing generic utility. Use
        this instead of serializers.ModelSerializer.
      properties:
        id:
          type: integer
          readOnly: true
        name:
          type: string
        project:
          type: integer
      required:
      - id
      - name
      - project
    Organization:
      type: object
      properties:
        id:
          type: integer
          readOnly: true
        name:
          type: string
          maxLength: 128
        akeneo_customer_id:
          type: string
          format: uuid
          nullable: true
      required:
      - id
      - name
    OrganizationRequest:
      type: object
      properties:
        name:
          type: string
          minLength: 1
          maxLength: 128
        akeneo_customer_id:
          type: string
          format: uuid
          nullable: true
      required:
      - name
    OriginEnum:
      enum:
      - user_modified
      - model
      - step_input
      - user_created
      type: string
      description: |-
        * `user_modified` - user_modified
        * `model` - model
        * `step_input` - step_input
        * `user_created` - user_created
    OutputDataEnum:
      enum:
      - parent
      - child
      - independent
      type: string
      description: |-
        * `parent` - List of all Parent
        * `child` - List of all Child
        * `independent` - List of all Independent
    OutputFormat:
      type: object
      properties:
        id:
          type: integer
          readOnly: true
        step_number:
          type: integer
          readOnly: true
        sheets:
          type: array
          items:
            $ref: '#/components/schemas/OutputFormatSheet'
        name:
          type: string
          maxLength: 128
        format:
          $ref: '#/components/schemas/FormatEnum'
        encoding:
          $ref: '#/components/schemas/EncodingEnum'
        separator:
          type: string
          maxLength: 1
        source:
          type: string
          maxLength: 256
        project:
          type: integer
          readOnly: true
        step:
          type: integer
      required:
      - format
      - id
      - name
      - project
      - sheets
      - step
      - step_number
    OutputFormatField:
      type: object
      properties:
        type:
          $ref: '#/components/schemas/TypeEcaEnum'
        value:
          type: string
        name:
          type: string
          nullable: true
        created_at_step:
          type: integer
        exclude:
          type: array
          items:
            type: string
          description: If name=null, you may choose fields to exclude from catchall
        required:
          type: boolean
          default: false
        sources:
          type: array
          items:
            $ref: '#/components/schemas/OutputFormatFieldSource'
        mode:
          $ref: '#/components/schemas/OutputFormatFieldModeEnum'
        sep:
          type: string
        template:
          type: string
        columns_name:
          type: string
    OutputFormatFieldModeEnum:
      enum:
      - first
      - join
      - split
      type: string
      description: |-
        * `first` - Keep first non empty source
        * `join` - Join sources with separator
        * `split` - Create one record per source
    OutputFormatFieldSource:
      type: object
      properties:
        type:
          $ref: '#/components/schemas/TypeEcaEnum'
        value:
          type: string
        name:
          type: string
          nullable: true
        created_at_step:
          type: integer
        exclude:
          type: array
          items:
            type: string
          description: If name=null, you may choose fields to exclude from catchall
    OutputFormatSheet:
      type: object
      properties:
        name:
          type: string
          maxLength: 31
        fields:
          type: array
          items:
            $ref: '#/components/schemas/OutputFormatField'
      required:
      - fields
    PaginatedBaseConnectionList:
      type: object
      required:
      - count
      - results
      properties:
        count:
          type: integer
          example: 123
        next:
          type: string
          nullable: true
          format: uri
          example: http://api.example.org/accounts/?page=4
        previous:
          type: string
          nullable: true
          format: uri
          example: http://api.example.org/accounts/?page=2
        results:
          type: array
          items:
            $ref: '#/components/schemas/BaseConnection'
    PaginatedConnectionOperationLogList:
      type: object
      required:
      - count
      - results
      properties:
        count:
          type: integer
          example: 123
        next:
          type: string
          nullable: true
          format: uri
          example: http://api.example.org/accounts/?page=4
        previous:
          type: string
          nullable: true
          format: uri
          example: http://api.example.org/accounts/?page=2
        results:
          type: array
          items:
            $ref: '#/components/schemas/ConnectionOperationLog'
    PaginatedExternalAccessPortalList:
      type: object
      required:
      - count
      - results
      properties:
        count:
          type: integer
          example: 123
        next:
          type: string
          nullable: true
          format: uri
          example: http://api.example.org/accounts/?page=4
        previous:
          type: string
          nullable: true
          format: uri
          example: http://api.example.org/accounts/?page=2
        results:
          type: array
          items:
            $ref: '#/components/schemas/ExternalAccessPortal'
    PaginatedFileList:
      type: object
      required:
      - count
      - results
      properties:
        count:
          type: integer
          example: 123
        next:
          type: string
          nullable: true
          format: uri
          example: http://api.example.org/accounts/?page=4
        previous:
          type: string
          nullable: true
          format: uri
          example: http://api.example.org/accounts/?page=2
        results:
          type: array
          items:
            $ref: '#/components/schemas/File'
    PaginatedInputFormatList:
      type: object
      required:
      - count
      - results
      properties:
        count:
          type: integer
          example: 123
        next:
          type: string
          nullable: true
          format: uri
          example: http://api.example.org/accounts/?page=4
        previous:
          type: string
          nullable: true
          format: uri
          example: http://api.example.org/accounts/?page=2
        results:
          type: array
          items:
            $ref: '#/components/schemas/InputFormat'
    PaginatedInvitationList:
      type: object
      required:
      - count
      - results
      properties:
        count:
          type: integer
          example: 123
        next:
          type: string
          nullable: true
          format: uri
          example: http://api.example.org/accounts/?page=4
        previous:
          type: string
          nullable: true
          format: uri
          example: http://api.example.org/accounts/?page=2
        results:
          type: array
          items:
            $ref: '#/components/schemas/Invitation'
    PaginatedJobList:
      type: object
      required:
      - count
      - results
      properties:
        count:
          type: integer
          example: 123
        next:
          type: string
          nullable: true
          format: uri
          example: http://api.example.org/accounts/?page=4
        previous:
          type: string
          nullable: true
          format: uri
          example: http://api.example.org/accounts/?page=2
        results:
          type: array
          items:
            $ref: '#/components/schemas/Job'
    PaginatedJobMediaArchiveList:
      type: object
      required:
      - count
      - results
      properties:
        count:
          type: integer
          example: 123
        next:
          type: string
          nullable: true
          format: uri
          example: http://api.example.org/accounts/?page=4
        previous:
          type: string
          nullable: true
          format: uri
          example: http://api.example.org/accounts/?page=2
        results:
          type: array
          items:
            $ref: '#/components/schemas/JobMediaArchive'
    PaginatedMetricsList:
      type: object
      required:
      - count
      - results
      properties:
        count:
          type: integer
          example: 123
        next:
          type: string
          nullable: true
          format: uri
          example: http://api.example.org/accounts/?page=4
        previous:
          type: string
          nullable: true
          format: uri
          example: http://api.example.org/accounts/?page=2
        results:
          type: array
          items:
            $ref: '#/components/schemas/Metrics'
    PaginatedOptionList:
      type: object
      required:
      - count
      - results
      properties:
        count:
          type: integer
          example: 123
        next:
          type: string
          nullable: true
          format: uri
          example: http://api.example.org/accounts/?page=4
        previous:
          type: string
          nullable: true
          format: uri
          example: http://api.example.org/accounts/?page=2
        results:
          type: array
          items:
            $ref: '#/components/schemas/Option'
    PaginatedOptionsCollectionList:
      type: object
      required:
      - count
      - results
      properties:
        count:
          type: integer
          example: 123
        next:
          type: string
          nullable: true
          format: uri
          example: http://api.example.org/accounts/?page=4
        previous:
          type: string
          nullable: true
          format: uri
          example: http://api.example.org/accounts/?page=2
        results:
          type: array
          items:
            $ref: '#/components/schemas/OptionsCollection'
    PaginatedProjectOverviewList:
      type: object
      required:
      - count
      - results
      properties:
        count:
          type: integer
          example: 123
        next:
          type: string
          nullable: true
          format: uri
          example: http://api.example.org/accounts/?page=4
        previous:
          type: string
          nullable: true
          format: uri
          example: http://api.example.org/accounts/?page=2
        results:
          type: array
          items:
            $ref: '#/components/schemas/ProjectOverview'
    PaginatedReferenceBaseList:
      type: object
      required:
      - count
      - results
      properties:
        count:
          type: integer
          example: 123
        next:
          type: string
          nullable: true
          format: uri
          example: http://api.example.org/accounts/?page=4
        previous:
          type: string
          nullable: true
          format: uri
          example: http://api.example.org/accounts/?page=2
        results:
          type: array
          items:
            $ref: '#/components/schemas/ReferenceBase'
    PaginatedSmallOutputFormatList:
      type: object
      required:
      - count
      - results
      properties:
        count:
          type: integer
          example: 123
        next:
          type: string
          nullable: true
          format: uri
          example: http://api.example.org/accounts/?page=4
        previous:
          type: string
          nullable: true
          format: uri
          example: http://api.example.org/accounts/?page=2
        results:
          type: array
          items:
            $ref: '#/components/schemas/SmallOutputFormat'
    PaginatedUserList:
      type: object
      required:
      - count
      - results
      properties:
        count:
          type: integer
          example: 123
        next:
          type: string
          nullable: true
          format: uri
          example: http://api.example.org/accounts/?page=4
        previous:
          type: string
          nullable: true
          format: uri
          example: http://api.example.org/accounts/?page=2
        results:
          type: array
          items:
            $ref: '#/components/schemas/User'
    PasswordReset:
      type: object
      properties:
        user:
          allOf:
          - $ref: '#/components/schemas/User'
          readOnly: true
      required:
      - user
    PatchedBaseNormalisationParamsRequest:
      type: object
      properties:
        keep_excluded_fields:
          type: boolean
          default: true
        sources:
          type: array
          items:
            type: string
            minLength: 1
        fields:
          type: array
          items:
            $ref: '#/components/schemas/NormalisationFieldRequest'
          default: []
        groups:
          type: array
          items:
            $ref: '#/components/schemas/GroupRequest'
          default: []
        include_fields:
          type: array
          items:
            $ref: '#/components/schemas/FieldFilterRequest'
        exclude_fields:
          type: array
          items:
            $ref: '#/components/schemas/FieldFilterRequest'
        max_requirement_level:
          allOf:
          - $ref: '#/components/schemas/MaxRequirementLevelEnum'
          default: required
          description: |-
            Max requirement levels: required, important, optional

            * `required` - Required
            * `important` - Important
            * `optional` - Optional
    PatchedCategorisationParamsRequest:
      type: object
      properties:
        categorisation_fields:
          type: array
          items:
            $ref: '#/components/schemas/CategorisationFieldRequest'
          default: []
        groupby:
          type: array
          items:
            type: string
            minLength: 1
          default: []
          description: The columns used to group rows with the same classification
            to avoid duplicate work.
        automated_audit_rate:
          type: number
          format: double
          default: 0.0
          description: The percentage of rows to audit automatically, between 0 and
            1 (0% and 100%)
        truth_store:
          type: string
          minLength: 1
          description: The name of the reference base to use as a reference to skip
            classification computation if the row is the same
    PatchedCompositionRequest:
      type: object
      properties:
        composition_fields:
          type: array
          items:
            $ref: '#/components/schemas/CompositionFieldRequest'
    PatchedExternalAccessPortalRequest:
      type: object
      properties:
        project_id:
          type: integer
          writeOnly: true
        last_accessible_step_id:
          type: integer
          writeOnly: true
        assignee_id:
          type: integer
          writeOnly: true
        notified_users_ids:
          type: array
          items:
            type: integer
            writeOnly: true
          writeOnly: true
        contributor_emails:
          type: array
          items:
            type: string
            format: email
            minLength: 1
          writeOnly: true
        help_config:
          $ref: '#/components/schemas/PortalHelpConfigRequest'
        name:
          type: string
          minLength: 1
          maxLength: 128
        last_access_date:
          type: string
          format: date-time
          nullable: true
        is_active:
          type: boolean
        uploaded_documents:
          type: array
          items:
            type: string
            format: binary
          writeOnly: true
        deleted_documents:
          type: array
          items:
            type: string
            format: uuid
          writeOnly: true
    PatchedJobMappingRequest:
      type: object
      properties:
        mapping:
          type: array
          items:
            $ref: '#/components/schemas/MappingPropositionRequest'
    PatchedJobRequest:
      type: object
      properties:
        file_id:
          type: integer
          writeOnly: true
        additional_info:
          type: object
          additionalProperties:
            type: string
            minLength: 1
            maxLength: 256
        name:
          type: string
          minLength: 1
          maxLength: 128
        model_version:
          type: integer
          maximum: 2147483647
          minimum: 0
        completion_date:
          type: string
          format: date-time
          nullable: true
        deletion_date:
          type: string
          format: date-time
          nullable: true
        project:
          type: integer
    PatchedJobValueMappingRequest:
      type: object
      properties:
        mapping:
          type: array
          items:
            $ref: '#/components/schemas/ValueMappingPropositionRequest'
    PatchedMappingParamsRequest:
      type: object
      properties:
        default_join_separator:
          type: string
          minLength: 1
          default: ' | '
          description: The default sepatator to join text when multiple fields are
            provided
        block_learning:
          type: boolean
          default: false
          description: Do not keep learn between each job
        fields:
          type: array
          items:
            $ref: '#/components/schemas/MappingFieldRequest'
          default: []
        groups:
          type: array
          items:
            $ref: '#/components/schemas/GroupRequest'
          default: []
        include_fields:
          type: array
          items:
            $ref: '#/components/schemas/FieldFilterRequest'
        exclude_fields:
          type: array
          items:
            $ref: '#/components/schemas/FieldFilterRequest'
        max_requirement_level:
          allOf:
          - $ref: '#/components/schemas/MaxRequirementLevelEnum'
          default: required
          description: |-
            Max requirement levels: required, important, optional

            * `required` - Required
            * `important` - Important
            * `optional` - Optional
    PatchedMatchhistoryParamsRequest:
      type: object
      properties:
        filter_mode:
          allOf:
          - $ref: '#/components/schemas/FilterModeEnum'
          default: and
        filters:
          type: array
          items:
            $ref: '#/components/schemas/MatchHistoryFilterRequest'
        enrichments:
          type: array
          items:
            $ref: '#/components/schemas/MatchHistoryEnrichmentRequest'
        imports:
          type: array
          items:
            $ref: '#/components/schemas/MatchHistoryImportRequest'
    PatchedMultiPatchJobCategorisationRequest:
      type: object
      properties:
        values:
          type: array
          items:
            type: object
            additionalProperties:
              type: string
              nullable: true
    PatchedOptionsCollectionAddWithConnectorRequest:
      type: object
      description: |-
        Serializer for adding options to an options collection with external connector integration.

        This serializer:
        1. Validates the options data
        2. Pushes options to all connected external systems (source of truth)
        3. Only saves to SDM database if external systems accept the changes
        4. Returns detailed results of the push operations
      properties:
        upsert_options:
          type: array
          items:
            $ref: '#/components/schemas/OptionRequest'
          description: List of options to add to the collection
    PatchedOptionsCollectionUpdateRequest:
      type: object
      description: |-
        Serializer for adding options to an options collection.
        Only accepts upsert_options field, designed specifically for the add_options endpoint.
      properties:
        upsert_options:
          type: array
          items:
            $ref: '#/components/schemas/OptionRequest'
          description: List of options to add to the collection
        delete_options:
          type: array
          items:
            type: string
            minLength: 1
        delete_all:
          type: boolean
          default: false
    PatchedPatchJobCategorisationRequest:
      type: object
      properties:
        ids:
          type: array
          items:
            type: integer
        filters:
          type: array
          items:
            $ref: '#/components/schemas/FilterRequest'
        values:
          type: object
          additionalProperties:
            type: string
            nullable: true
    PatchedPatchJobCompositionRequest:
      type: object
      properties:
        ids:
          type: array
          items:
            type: integer
            minimum: 0
        values:
          type: object
          additionalProperties:
            type: array
            items:
              $ref: '#/components/schemas/SingleCompositionRequest'
    PatchedPatchJobMatchhistoryRequest:
      type: object
      properties:
        ids:
          type: array
          items:
            type: integer
        filters:
          type: array
          items:
            $ref: '#/components/schemas/FilterRequest'
        value:
          type: boolean
          default: false
          description: Whether mark the row to skip next steps
    PatchedPatchJobNormalisationRequest:
      type: object
      properties:
        ids:
          type: array
          items:
            type: integer
        filters:
          type: array
          items:
            $ref: '#/components/schemas/FilterRequest'
        values:
          type: object
          additionalProperties: {}
          default: {}
        ignore_warnings:
          type: boolean
          default: false
    PatchedProjectRequest:
      type: object
      description: Base class for model serializers containing generic utility. Use
        this instead of serializers.ModelSerializer.
      properties:
        help_config:
          $ref: '#/components/schemas/ProjectHelpConfigRequest'
        available_locales:
          type: array
          items:
            type: string
            minLength: 1
          default: []
          description: List of available locales for labels of this project
        name:
          type: string
          minLength: 1
          maxLength: 128
        description:
          type: string
        uploaded_documents:
          type: array
          items:
            type: string
            format: binary
          writeOnly: true
        deleted_documents:
          type: array
          items:
            type: string
            format: uuid
          writeOnly: true
    PatchedRowExtractionRequest:
      type: object
      properties:
        tags:
          type: array
          items:
            $ref: '#/components/schemas/ExtractionTagRequest'
    PatchedUserRequest:
      type: object
      properties:
        first_name:
          type: string
          maxLength: 150
        last_name:
          type: string
          maxLength: 150
        is_organization_admin:
          type: boolean
        previous_password:
          type: string
          writeOnly: true
          minLength: 1
        password:
          type: string
          writeOnly: true
          minLength: 1
    PatchedValueMappingParamsRequest:
      type: object
      properties:
        keep_unmapped:
          type: boolean
          default: false
        map_empty:
          type: boolean
          default: true
        block_learning:
          type: boolean
          default: false
          description: Do not keep learn between each job
        fields:
          type: array
          items:
            $ref: '#/components/schemas/ValueMappingFieldRequest'
          default: []
        groups:
          type: array
          items:
            $ref: '#/components/schemas/GroupRequest'
          default: []
        include_fields:
          type: array
          items:
            $ref: '#/components/schemas/FieldFilterRequest'
        exclude_fields:
          type: array
          items:
            $ref: '#/components/schemas/FieldFilterRequest'
        max_requirement_level:
          allOf:
          - $ref: '#/components/schemas/MaxRequirementLevelEnum'
          default: required
          description: |-
            Max requirement levels: required, important, optional

            * `required` - Required
            * `important` - Important
            * `optional` - Optional
    PatchedVariantParamsRequest:
      type: object
      properties:
        product_model_name_column:
          allOf:
          - $ref: '#/components/schemas/NamedLabeledFieldRequest'
          default:
            name: akeneo_parent_id
            label:
              pt: connectors.akeneo.akeneo_parent_id
              es: connectors.akeneo.akeneo_parent_id
              pl: connectors.akeneo.akeneo_parent_id
              en: connectors.akeneo.akeneo_parent_id
              nl: connectors.akeneo.akeneo_parent_id
              it: connectors.akeneo.akeneo_parent_id
              cs: connectors.akeneo.akeneo_parent_id
              de: connectors.akeneo.akeneo_parent_id
              fr: connectors.akeneo.akeneo_parent_id
        product_model_head_column:
          allOf:
          - $ref: '#/components/schemas/NamedLabeledFieldRequest'
          default:
            name: is_parent
            label:
              pt: connectors.akeneo.is_parent
              es: connectors.akeneo.is_parent
              pl: connectors.akeneo.is_parent
              en: connectors.akeneo.is_parent
              nl: connectors.akeneo.is_parent
              it: connectors.akeneo.is_parent
              cs: connectors.akeneo.is_parent
              de: connectors.akeneo.is_parent
              fr: connectors.akeneo.is_parent
        default_id_column:
          type: string
          nullable: true
          minLength: 1
        invariant_columns:
          type: array
          items:
            type: string
            minLength: 1
          default: []
        unique_columns:
          type: array
          items:
            type: string
            minLength: 1
        variant_columns:
          type: array
          items:
            type: string
            minLength: 1
          default: []
        allow_product_model_without_matching_group:
          type: boolean
          default: true
        export_data:
          type: array
          items:
            $ref: '#/components/schemas/ExportDataEnum'
          default:
          - parent
          - child
          - independent
        output_data:
          type: array
          items:
            $ref: '#/components/schemas/OutputDataEnum'
          default:
          - parent
          - independent
        matching_groups:
          type: array
          items:
            $ref: '#/components/schemas/MatchingGroupRequest'
          default: []
        automation:
          allOf:
          - $ref: '#/components/schemas/AutomateGroupinRequest'
          default:
            enabled: false
            grouping_columns: []
            group_empty_columns: false
    PortalHelpConfig:
      type: object
      properties:
        suppliers_welcome_text:
          type: string
          maxLength: 500
        hide_project_config:
          type: boolean
          default: false
    PortalHelpConfigRequest:
      type: object
      properties:
        suppliers_welcome_text:
          type: string
          maxLength: 500
        hide_project_config:
          type: boolean
          default: false
    PostPasswordResetRequest:
      type: object
      properties:
        email:
          type: string
          format: email
          writeOnly: true
          minLength: 1
      required:
      - email
    Project:
      type: object
      description: Base class for model serializers containing generic utility. Use
        this instead of serializers.ModelSerializer.
      properties:
        id:
          type: integer
          readOnly: true
        steps:
          type: array
          items:
            $ref: '#/components/schemas/SimpleStep'
          readOnly: true
        last_job_date:
          type: string
          format: date-time
          readOnly: true
        last_sync_date:
          type: string
          format: date-time
          readOnly: true
        help_config:
          $ref: '#/components/schemas/ProjectHelpConfig'
        available_locales:
          type: array
          items:
            type: string
          default: []
          description: List of available locales for labels of this project
        name:
          type: string
          maxLength: 128
        description:
          type: string
        creation_date:
          type: string
          format: date-time
          readOnly: true
        model_version:
          type: integer
          readOnly: true
        allow_media:
          type: boolean
          readOnly: true
        organization:
          type: integer
          readOnly: true
        documents:
          type: array
          items:
            $ref: '#/components/schemas/ProjectDocument'
          readOnly: true
        task:
          type: string
          format: uuid
          readOnly: true
          nullable: true
      required:
      - allow_media
      - creation_date
      - documents
      - id
      - last_job_date
      - last_sync_date
      - model_version
      - name
      - organization
      - steps
      - task
    ProjectDocument:
      type: object
      properties:
        id:
          type: string
          format: uuid
          readOnly: true
        original_filename:
          type: string
          readOnly: true
        filepath:
          type: string
          readOnly: true
        creation_date:
          type: string
          format: date-time
          readOnly: true
        mime_type:
          type: string
          readOnly: true
        size_in_kb:
          type: integer
          readOnly: true
        download_url:
          type: string
          readOnly: true
        deletion_date:
          type: string
          format: date-time
          readOnly: true
          nullable: true
      required:
      - creation_date
      - deletion_date
      - download_url
      - filepath
      - id
      - mime_type
      - original_filename
      - size_in_kb
    ProjectHelpConfig:
      type: object
      properties:
        portal_video_url:
          type: object
          additionalProperties:
            type: string
            format: uri
        suppliers_welcome_text:
          type: string
          maxLength: 500
    ProjectHelpConfigRequest:
      type: object
      properties:
        portal_video_url:
          type: object
          additionalProperties:
            type: string
            format: uri
        suppliers_welcome_text:
          type: string
          maxLength: 500
    ProjectOverview:
      type: object
      properties:
        id:
          type: integer
          readOnly: true
        organization:
          type: integer
        name:
          type: string
          maxLength: 128
        description:
          type: string
        help_config:
          $ref: '#/components/schemas/ProjectHelpConfig'
        model_version:
          type: integer
          maximum: 2147483647
          minimum: 0
        creation_date:
          type: string
          format: date-time
          readOnly: true
        last_training_date:
          type: string
          format: date-time
          nullable: true
        last_job_date:
          type: string
          format: date-time
      required:
      - creation_date
      - help_config
      - id
      - last_job_date
      - name
      - organization
    ProjectRequest:
      type: object
      description: Base class for model serializers containing generic utility. Use
        this instead of serializers.ModelSerializer.
      properties:
        help_config:
          $ref: '#/components/schemas/ProjectHelpConfigRequest'
        available_locales:
          type: array
          items:
            type: string
            minLength: 1
          default: []
          description: List of available locales for labels of this project
        name:
          type: string
          minLength: 1
          maxLength: 128
        description:
          type: string
        uploaded_documents:
          type: array
          items:
            type: string
            format: binary
          writeOnly: true
        deleted_documents:
          type: array
          items:
            type: string
            format: uuid
          writeOnly: true
      required:
      - name
    RecursiveFieldRule:
      type: object
      properties:
        conditions:
          type: array
          items:
            $ref: '#/components/schemas/FieldRule'
      required:
      - conditions
    RecursiveFieldRuleRequest:
      type: object
      properties:
        conditions:
          type: array
          items:
            $ref: '#/components/schemas/FieldRuleRequest'
      required:
      - conditions
    RecursiveNestedGroupCondition:
      type: object
      properties:
        conditions:
          type: array
          items:
            $ref: '#/components/schemas/NestedGroupCondition'
      required:
      - conditions
    RecursiveNestedGroupConditionRequest:
      type: object
      properties:
        conditions:
          type: array
          items:
            $ref: '#/components/schemas/NestedGroupConditionRequest'
      required:
      - conditions
    ReferenceBase:
      type: object
      properties:
        id:
          type: integer
          readOnly: true
        columns:
          type: array
          items: {}
        name:
          type: string
          maxLength: 255
        description:
          type: string
        unique_columns:
          type: array
          items:
            type: string
            maxLength: 256
        organization:
          type: integer
          readOnly: true
      required:
      - id
      - name
      - organization
      - unique_columns
    ReferenceBaseRequest:
      type: object
      properties:
        init_file:
          type: integer
          minimum: 1
          writeOnly: true
          description: The id of the file used to initialize the db
        columns:
          type: array
          items: {}
        name:
          type: string
          minLength: 1
          maxLength: 255
        description:
          type: string
        unique_columns:
          type: array
          items:
            type: string
            minLength: 1
            maxLength: 256
      required:
      - init_file
      - name
      - unique_columns
    ReferenceBaseUpdate:
      type: object
      properties:
        created:
          type: integer
          readOnly: true
          description: Number of rows created in the base
        updated:
          type: integer
          readOnly: true
          description: Number of rows updated in the base
      required:
      - created
      - updated
    ReferenceBaseUpdateRequest:
      type: object
      properties:
        file:
          type: integer
          minimum: 1
          writeOnly: true
          description: The id of the file used to initialize the db
        diff_scope:
          type: object
          additionalProperties:
            type: string
            minLength: 1
          writeOnly: true
          description: The diff query if row deletions is desired
    RequirementLevelEnum:
      enum:
      - required
      - important
      - optional
      type: string
      description: |-
        * `required` - Required
        * `important` - Important
        * `optional` - Optional
    RowExtraction:
      type: object
      properties:
        tags:
          type: array
          items:
            $ref: '#/components/schemas/ExtractionTag'
        sources:
          type: object
          additionalProperties:
            $ref: '#/components/schemas/ExtractionSourceValue'
          readOnly: true
        additional_information:
          type: object
          additionalProperties:
            $ref: '#/components/schemas/ExtractionSourceValue'
          readOnly: true
      required:
      - additional_information
      - sources
      - tags
    RunModeEnum:
      enum:
      - manual
      - fast
      type: string
      description: |-
        * `manual` - Manual
        * `fast` - Fast
    SimpleExternalAccessPortal:
      type: object
      properties:
        id:
          type: integer
          readOnly: true
        name:
          type: string
          readOnly: true
        last_accessible_step:
          $ref: '#/components/schemas/SimpleStep'
        creation_date:
          type: string
          format: date-time
          readOnly: true
        assignee:
          $ref: '#/components/schemas/SimpleUser'
        token:
          type: string
          format: uuid
          readOnly: true
        contributors:
          type: string
          readOnly: true
        last_access_date:
          type: string
          format: date-time
          readOnly: true
          nullable: true
        documents:
          type: array
          items:
            $ref: '#/components/schemas/ExternalAccessPortalDocument'
          readOnly: true
        help_config:
          $ref: '#/components/schemas/PortalHelpConfig'
      required:
      - assignee
      - contributors
      - creation_date
      - documents
      - help_config
      - id
      - last_access_date
      - last_accessible_step
      - name
      - token
    SimpleExternalAccessPortalRequest:
      type: object
      properties:
        last_accessible_step:
          $ref: '#/components/schemas/SimpleStepRequest'
        assignee:
          $ref: '#/components/schemas/SimpleUserRequest'
        help_config:
          $ref: '#/components/schemas/PortalHelpConfigRequest'
      required:
      - assignee
      - help_config
      - last_accessible_step
    SimpleStep:
      type: object
      properties:
        id:
          type: integer
          readOnly: true
        name:
          type: string
          maxLength: 128
        type:
          type: string
          readOnly: true
        number:
          type: integer
          maximum: 32767
          minimum: 0
          nullable: true
        run_mode:
          allOf:
          - $ref: '#/components/schemas/RunModeEnum'
          readOnly: true
        help_config:
          $ref: '#/components/schemas/StepHelpConfig'
      required:
      - id
      - name
      - run_mode
      - type
    SimpleStepRequest:
      type: object
      properties:
        name:
          type: string
          minLength: 1
          maxLength: 128
        number:
          type: integer
          maximum: 32767
          minimum: 0
          nullable: true
        help_config:
          $ref: '#/components/schemas/StepHelpConfigRequest'
      required:
      - name
    SimpleUser:
      type: object
      properties:
        id:
          type: integer
          readOnly: true
        email:
          type: string
          format: email
          maxLength: 254
        first_name:
          type: string
          maxLength: 150
        last_name:
          type: string
          maxLength: 150
      required:
      - email
      - id
    SimpleUserRequest:
      type: object
      properties:
        email:
          type: string
          format: email
          minLength: 1
          maxLength: 254
        first_name:
          type: string
          maxLength: 150
        last_name:
          type: string
          maxLength: 150
      required:
      - email
    SingleCompositionRequest:
      type: object
      properties:
        percent:
          type: number
          format: double
        material:
          type: string
          minLength: 1
      required:
      - material
      - percent
    SmallOutputFormat:
      type: object
      properties:
        id:
          type: integer
          readOnly: true
        step_number:
          type: integer
          readOnly: true
        name:
          type: string
          maxLength: 128
        format:
          $ref: '#/components/schemas/FormatEnum'
        encoding:
          $ref: '#/components/schemas/EncodingEnum'
        separator:
          type: string
          maxLength: 1
        source:
          type: string
          maxLength: 256
        project:
          type: integer
          readOnly: true
        step:
          type: integer
      required:
      - format
      - id
      - name
      - project
      - step
      - step_number
    SpecificExcelFormat:
      type: object
      properties:
        id:
          type: integer
          readOnly: true
        params:
          $ref: '#/components/schemas/SpecificExcelFormatParams'
        organization:
          type: integer
        name:
          type: string
          maxLength: 128
      required:
      - id
      - name
      - params
    SpecificExcelFormatColumn:
      type: object
      properties:
        name:
          type: string
        name_from:
          type: string
        value_from:
          type: string
    SpecificExcelFormatColumnRequest:
      type: object
      properties:
        name:
          type: string
          minLength: 1
        name_from:
          type: string
          minLength: 1
        value_from:
          type: string
          minLength: 1
    SpecificExcelFormatParams:
      type: object
      properties:
        sheets:
          type: array
          items:
            $ref: '#/components/schemas/SpecificExcelFormatSheet'
        unique_columns:
          type: array
          items:
            type: string
          nullable: true
      required:
      - sheets
    SpecificExcelFormatParamsRequest:
      type: object
      properties:
        sheets:
          type: array
          items:
            $ref: '#/components/schemas/SpecificExcelFormatSheetRequest'
        unique_columns:
          type: array
          items:
            type: string
            minLength: 1
          nullable: true
      required:
      - sheets
    SpecificExcelFormatRequest:
      type: object
      properties:
        params:
          $ref: '#/components/schemas/SpecificExcelFormatParamsRequest'
        organization:
          type: integer
        template:
          allOf:
          - $ref: '#/components/schemas/TemplateEnum'
          writeOnly: true
          description: |-
            Which template is used as the base for creation

            * `fabdis` - FAB-DIS
        name:
          type: string
          minLength: 1
          maxLength: 128
      required:
      - name
      - params
    SpecificExcelFormatSheet:
      type: object
      properties:
        name:
          type: string
        columns:
          type: array
          items:
            $ref: '#/components/schemas/SpecificExcelFormatColumn'
        skip_rows:
          type: integer
        drop_duplicated_columns:
          type: boolean
          default: false
        join:
          $ref: '#/components/schemas/SpecificExcelFormatSheetJoin'
        required:
          type: boolean
          default: true
      required:
      - columns
      - name
    SpecificExcelFormatSheetJoin:
      type: object
      properties:
        'on':
          type: array
          items:
            type: string
        how:
          allOf:
          - $ref: '#/components/schemas/HowEnum'
          default: inner
        suffixes:
          type: array
          items:
            type: string
          maxItems: 2
          minItems: 2
      required:
      - 'on'
    SpecificExcelFormatSheetJoinRequest:
      type: object
      properties:
        'on':
          type: array
          items:
            type: string
            minLength: 1
        how:
          allOf:
          - $ref: '#/components/schemas/HowEnum'
          default: inner
        suffixes:
          type: array
          items:
            type: string
            minLength: 1
          maxItems: 2
          minItems: 2
      required:
      - 'on'
    SpecificExcelFormatSheetRequest:
      type: object
      properties:
        name:
          type: string
          minLength: 1
        columns:
          type: array
          items:
            $ref: '#/components/schemas/SpecificExcelFormatColumnRequest'
        skip_rows:
          type: integer
        drop_duplicated_columns:
          type: boolean
          default: false
        join:
          $ref: '#/components/schemas/SpecificExcelFormatSheetJoinRequest'
        required:
          type: boolean
          default: true
      required:
      - columns
      - name
    SpecificExcelFormatTyped:
      allOf:
      - $ref: '#/components/schemas/InputFormatUntyped'
      - $ref: '#/components/schemas/SpecificExcelFormat'
    SpecificExcelFormatTypedRequest:
      allOf:
      - $ref: '#/components/schemas/InputFormatRequestUntyped'
      - $ref: '#/components/schemas/SpecificExcelFormatRequest'
    SpecificXMLFormat:
      type: object
      properties:
        id:
          type: integer
          readOnly: true
        organization:
          type: integer
        params:
          $ref: '#/components/schemas/SpecificXMLFormatParams'
        name:
          type: string
          maxLength: 128
      required:
      - id
      - name
      - params
    SpecificXMLFormatColumn:
      type: object
      properties:
        name_mode:
          allOf:
          - $ref: '#/components/schemas/NameModeEnum'
          description: |-
            How to handle column names, default: join

            * `join` - join
            * `last` - last
        name_separator:
          type: string
          description: 'Separator to use between tags in column names, default: /'
          maxLength: 5
          minLength: 1
        name_with_attributes:
          type: boolean
          description: 'Whether to include attributes in column names, default: False'
        attributes_template:
          type: string
          description: 'Template to use for attributes in column names, default: _{name}:{value}'
        path:
          type: array
          items:
            type: string
            nullable: true
            description: Valid XML tag or None to match any tag
        name:
          type: string
          nullable: true
        name_from:
          type: array
          items:
            type: string
            description: Valid XML tag or None to match any tag
        value_from:
          type: array
          items:
            type: string
            description: Valid XML tag or None to match any tag
      required:
      - path
    SpecificXMLFormatColumnRequest:
      type: object
      properties:
        name_mode:
          allOf:
          - $ref: '#/components/schemas/NameModeEnum'
          description: |-
            How to handle column names, default: join

            * `join` - join
            * `last` - last
        name_separator:
          type: string
          minLength: 1
          description: 'Separator to use between tags in column names, default: /'
          maxLength: 5
        name_with_attributes:
          type: boolean
          description: 'Whether to include attributes in column names, default: False'
        attributes_template:
          type: string
          minLength: 1
          description: 'Template to use for attributes in column names, default: _{name}:{value}'
        path:
          type: array
          items:
            type: string
            nullable: true
            minLength: 1
            description: Valid XML tag or None to match any tag
        name:
          type: string
          nullable: true
          minLength: 1
        name_from:
          type: array
          items:
            type: string
            minLength: 1
            description: Valid XML tag or None to match any tag
        value_from:
          type: array
          items:
            type: string
            minLength: 1
            description: Valid XML tag or None to match any tag
      required:
      - path
    SpecificXMLFormatParams:
      type: object
      properties:
        sources:
          type: array
          items:
            $ref: '#/components/schemas/SpecificXMLFormatSource'
      required:
      - sources
    SpecificXMLFormatParamsRequest:
      type: object
      properties:
        sources:
          type: array
          items:
            $ref: '#/components/schemas/SpecificXMLFormatSourceRequest'
      required:
      - sources
    SpecificXMLFormatRequest:
      type: object
      properties:
        organization:
          type: integer
        params:
          $ref: '#/components/schemas/SpecificXMLFormatParamsRequest'
        name:
          type: string
          minLength: 1
          maxLength: 128
      required:
      - name
      - params
    SpecificXMLFormatSource:
      type: object
      properties:
        name_mode:
          allOf:
          - $ref: '#/components/schemas/NameModeEnum'
          description: |-
            How to handle column names, default: join

            * `join` - join
            * `last` - last
        name_separator:
          type: string
          description: 'Separator to use between tags in column names, default: /'
          maxLength: 5
          minLength: 1
        name_with_attributes:
          type: boolean
          description: 'Whether to include attributes in column names, default: False'
        attributes_template:
          type: string
          description: 'Template to use for attributes in column names, default: _{name}:{value}'
        root_paths:
          type: array
          items:
            type: array
            items:
              type: string
              nullable: true
              description: Valid XML tag or None to match any tag
          description: for xml files, list of tag paths to find product listings
        exclude:
          type: array
          items:
            type: array
            items:
              type: string
              nullable: true
              description: Valid XML tag or None to match any tag
          default: []
          description: for xml files, list of tag paths to exclude from parsing
        remove_ns:
          type: boolean
          default: false
          description: 'Whether to remove XML namespaces before parsing (default:
            False)'
        columns:
          type: array
          items:
            $ref: '#/components/schemas/SpecificXMLFormatColumn'
      required:
      - columns
    SpecificXMLFormatSourceRequest:
      type: object
      properties:
        name_mode:
          allOf:
          - $ref: '#/components/schemas/NameModeEnum'
          description: |-
            How to handle column names, default: join

            * `join` - join
            * `last` - last
        name_separator:
          type: string
          minLength: 1
          description: 'Separator to use between tags in column names, default: /'
          maxLength: 5
        name_with_attributes:
          type: boolean
          description: 'Whether to include attributes in column names, default: False'
        attributes_template:
          type: string
          minLength: 1
          description: 'Template to use for attributes in column names, default: _{name}:{value}'
        root_paths:
          type: array
          items:
            type: array
            items:
              type: string
              nullable: true
              minLength: 1
              description: Valid XML tag or None to match any tag
          description: for xml files, list of tag paths to find product listings
        exclude:
          type: array
          items:
            type: array
            items:
              type: string
              nullable: true
              minLength: 1
              description: Valid XML tag or None to match any tag
          default: []
          description: for xml files, list of tag paths to exclude from parsing
        remove_ns:
          type: boolean
          default: false
          description: 'Whether to remove XML namespaces before parsing (default:
            False)'
        columns:
          type: array
          items:
            $ref: '#/components/schemas/SpecificXMLFormatColumnRequest'
      required:
      - columns
    SpecificXMLFormatTyped:
      allOf:
      - $ref: '#/components/schemas/InputFormatUntyped'
      - $ref: '#/components/schemas/SpecificXMLFormat'
    SpecificXMLFormatTypedRequest:
      allOf:
      - $ref: '#/components/schemas/InputFormatRequestUntyped'
      - $ref: '#/components/schemas/SpecificXMLFormatRequest'
    StepHelpConfig:
      type: object
      properties:
        video_url:
          type: object
          additionalProperties:
            type: string
            format: uri
        description:
          type: object
          additionalProperties:
            type: string
            maxLength: 300
    StepHelpConfigRequest:
      type: object
      properties:
        video_url:
          type: object
          additionalProperties:
            type: string
            format: uri
        description:
          type: object
          additionalProperties:
            type: string
            minLength: 1
            maxLength: 300
    SupportedMediaTypesEnum:
      enum:
      - image/gif
      - image/jpeg
      - image/png
      - image/svg
      - image/svg+xml
      - image/webp
      - application/pdf
      type: string
      description: |-
        * `image/gif` - image/gif
        * `image/jpeg` - image/jpeg
        * `image/png` - image/png
        * `image/svg` - image/svg
        * `image/svg+xml` - image/svg+xml
        * `image/webp` - image/webp
        * `application/pdf` - application/pdf
    TemplateEnum:
      enum:
      - fabdis
      type: string
      description: '* `fabdis` - FAB-DIS'
    Token:
      type: object
      properties:
        name:
          type: string
          title: The token's name
          maxLength: 64
        key:
          type: string
          maxLength: 40
      required:
      - key
      - name
    Transformation:
      oneOf:
      - $ref: '#/components/schemas/TransformationSerializerForcapitalizeTyped'
      - $ref: '#/components/schemas/TransformationSerializerFortrim_whitespacesTyped'
      - $ref: '#/components/schemas/TransformationSerializerForregexTyped'
      - $ref: '#/components/schemas/TransformationSerializerForpadTyped'
      discriminator:
        propertyName: name
        mapping:
          capitalize: '#/components/schemas/TransformationSerializerForcapitalizeTyped'
          trim_whitespaces: '#/components/schemas/TransformationSerializerFortrim_whitespacesTyped'
          regex: '#/components/schemas/TransformationSerializerForregexTyped'
          pad: '#/components/schemas/TransformationSerializerForpadTyped'
    TransformationRequest:
      oneOf:
      - $ref: '#/components/schemas/TransformationSerializerForcapitalizeTypedRequest'
      - $ref: '#/components/schemas/TransformationSerializerFortrim_whitespacesTypedRequest'
      - $ref: '#/components/schemas/TransformationSerializerForregexTypedRequest'
      - $ref: '#/components/schemas/TransformationSerializerForpadTypedRequest'
      discriminator:
        propertyName: name
        mapping:
          capitalize: '#/components/schemas/TransformationSerializerForcapitalizeTypedRequest'
          trim_whitespaces: '#/components/schemas/TransformationSerializerFortrim_whitespacesTypedRequest'
          regex: '#/components/schemas/TransformationSerializerForregexTypedRequest'
          pad: '#/components/schemas/TransformationSerializerForpadTypedRequest'
    TransformationRequestUntyped:
      type: object
      description: |-
        A polymorphic serializer, in which the subdata
        types are inferred from one of the keys in the data.
        The class API is designed to be similar to rest_polymorphic's serializer,
        so the drf_spectacular extension can be used for this serializer too. The main difference
        is that it is not meant to be a model serializer but to work on mappings/dicts.
      properties:
        name:
          type: string
          minLength: 1
      required:
      - name
    TransformationSerializerForcapitalize:
      type: object
      properties:
        which:
          allOf:
          - $ref: '#/components/schemas/Which07dEnum'
          default: sentences
        mode:
          allOf:
          - $ref: '#/components/schemas/Mode845Enum'
          default: loose
    TransformationSerializerForcapitalizeRequest:
      type: object
      properties:
        which:
          allOf:
          - $ref: '#/components/schemas/Which07dEnum'
          default: sentences
        mode:
          allOf:
          - $ref: '#/components/schemas/Mode845Enum'
          default: loose
    TransformationSerializerForcapitalizeTyped:
      allOf:
      - $ref: '#/components/schemas/TransformationUntyped'
      - $ref: '#/components/schemas/TransformationSerializerForcapitalize'
    TransformationSerializerForcapitalizeTypedRequest:
      allOf:
      - $ref: '#/components/schemas/TransformationRequestUntyped'
      - $ref: '#/components/schemas/TransformationSerializerForcapitalizeRequest'
    TransformationSerializerForpad:
      type: object
      properties:
        fill:
          type: string
          default: '-'
        direction:
          allOf:
          - $ref: '#/components/schemas/DirectionEnum'
          default: left
        length:
          type: integer
          default: 0
    TransformationSerializerForpadRequest:
      type: object
      properties:
        fill:
          type: string
          minLength: 1
          default: '-'
        direction:
          allOf:
          - $ref: '#/components/schemas/DirectionEnum'
          default: left
        length:
          type: integer
          default: 0
    TransformationSerializerForpadTyped:
      allOf:
      - $ref: '#/components/schemas/TransformationUntyped'
      - $ref: '#/components/schemas/TransformationSerializerForpad'
    TransformationSerializerForpadTypedRequest:
      allOf:
      - $ref: '#/components/schemas/TransformationRequestUntyped'
      - $ref: '#/components/schemas/TransformationSerializerForpadRequest'
    TransformationSerializerForregex:
      type: object
      properties:
        pattern:
          type: string
        substitution:
          type: string
        flags:
          type: array
          items:
            $ref: '#/components/schemas/FlagsEnum'
          default: []
        force:
          type: boolean
          default: false
      required:
      - pattern
      - substitution
    TransformationSerializerForregexRequest:
      type: object
      properties:
        pattern:
          type: string
        substitution:
          type: string
        flags:
          type: array
          items:
            $ref: '#/components/schemas/FlagsEnum'
          default: []
        force:
          type: boolean
          default: false
      required:
      - pattern
      - substitution
    TransformationSerializerForregexTyped:
      allOf:
      - $ref: '#/components/schemas/TransformationUntyped'
      - $ref: '#/components/schemas/TransformationSerializerForregex'
    TransformationSerializerForregexTypedRequest:
      allOf:
      - $ref: '#/components/schemas/TransformationRequestUntyped'
      - $ref: '#/components/schemas/TransformationSerializerForregexRequest'
    TransformationSerializerFortrim_whitespaces:
      type: object
      properties:
        multiple:
          type: boolean
          default: false
    TransformationSerializerFortrim_whitespacesRequest:
      type: object
      properties:
        multiple:
          type: boolean
          default: false
    TransformationSerializerFortrim_whitespacesTyped:
      allOf:
      - $ref: '#/components/schemas/TransformationUntyped'
      - $ref: '#/components/schemas/TransformationSerializerFortrim_whitespaces'
    TransformationSerializerFortrim_whitespacesTypedRequest:
      allOf:
      - $ref: '#/components/schemas/TransformationRequestUntyped'
      - $ref: '#/components/schemas/TransformationSerializerFortrim_whitespacesRequest'
    TransformationUntyped:
      type: object
      description: |-
        A polymorphic serializer, in which the subdata
        types are inferred from one of the keys in the data.
        The class API is designed to be similar to rest_polymorphic's serializer,
        so the drf_spectacular extension can be used for this serializer too. The main difference
        is that it is not meant to be a model serializer but to work on mappings/dicts.
      properties:
        name:
          type: string
      required:
      - name
    TypeA9fEnum:
      enum:
      - constant
      - column
      - metadata
      type: string
      description: |-
        * `constant` - Set the field to a constant value
        * `column` - Set the field to an existing column value
        * `metadata` - Set the field to a metadata sourced from the current mapping status
    TypeEcaEnum:
      enum:
      - column
      - constant
      type: string
      description: |-
        * `column` - Use a column as source for all rows of the ouput
        * `constant` - Set a constant (defined in value) as source for all rows of the ouput
    UseModelEnum:
      enum:
      - coreai_api
      - demo
      - test_mock
      type: string
      description: |-
        * `coreai_api` - Classification using CoreAI API
        * `demo` - Classification in demo mode
        * `test_mock` - Classification in tests
    UsePasswordReset:
      type: object
      properties:
        password:
          type: string
      required:
      - password
    UsePasswordResetRequest:
      type: object
      properties:
        password:
          type: string
          minLength: 1
      required:
      - password
    User:
      type: object
      properties:
        id:
          type: integer
          readOnly: true
        email:
          type: string
          format: email
          readOnly: true
        first_name:
          type: string
          maxLength: 150
        last_name:
          type: string
          maxLength: 150
        last_login:
          type: string
          format: date-time
          readOnly: true
          nullable: true
        organization:
          allOf:
          - $ref: '#/components/schemas/Organization'
          readOnly: true
        is_organization_admin:
          type: boolean
      required:
      - email
      - id
      - last_login
      - organization
    UserCreation:
      type: object
      properties:
        first_name:
          type: string
          maxLength: 150
        last_name:
          type: string
          maxLength: 150
    UserCreationRequest:
      type: object
      properties:
        first_name:
          type: string
          maxLength: 150
        last_name:
          type: string
          maxLength: 150
        password:
          type: string
          writeOnly: true
          minLength: 1
      required:
      - password
    UserNotificationSettings:
      type: object
      properties:
        portal_upload:
          type: boolean
          default: true
        portal_exit:
          type: boolean
          default: true
        long_jobs:
          $ref: '#/components/schemas/LongJobSettings'
        ftp_errors:
          type: boolean
          default: true
    UserSettings:
      type: object
      properties:
        notification_settings:
          $ref: '#/components/schemas/UserNotificationSettings'
        ui_settings:
          $ref: '#/components/schemas/UserUISettings'
      required:
      - notification_settings
      - ui_settings
    UserUISettings:
      type: object
      properties:
        preferred_locale:
          type: string
          default: en-US
    ValueMappingCount:
      type: object
      properties:
        name:
          type: string
          description: The name of the field
        group:
          type: string
          description: Group to which the field belongs
        row_mapped:
          type: integer
          minimum: 0
        row_total:
          type: integer
          minimum: 0
        value_mapped:
          type: integer
          minimum: 0
        value_total:
          type: integer
          minimum: 0
      required:
      - name
      - row_mapped
      - row_total
      - value_mapped
      - value_total
    ValueMappingCountRequest:
      type: object
      properties:
        name:
          type: string
          minLength: 1
          description: The name of the field
        group:
          type: string
          minLength: 1
          description: Group to which the field belongs
        row_mapped:
          type: integer
          minimum: 0
        row_total:
          type: integer
          minimum: 0
        value_mapped:
          type: integer
          minimum: 0
        value_total:
          type: integer
          minimum: 0
      required:
      - name
      - row_mapped
      - row_total
      - value_mapped
      - value_total
    ValueMappingField:
      oneOf:
      - $ref: '#/components/schemas/ValueMappingFieldSerializerForselectTyped'
      - $ref: '#/components/schemas/ValueMappingFieldSerializerForbooleanTyped'
      discriminator:
        propertyName: type
        mapping:
          select: '#/components/schemas/ValueMappingFieldSerializerForselectTyped'
          boolean: '#/components/schemas/ValueMappingFieldSerializerForbooleanTyped'
    ValueMappingFieldRequest:
      oneOf:
      - $ref: '#/components/schemas/ValueMappingFieldSerializerForselectTypedRequest'
      - $ref: '#/components/schemas/ValueMappingFieldSerializerForbooleanTypedRequest'
      discriminator:
        propertyName: type
        mapping:
          select: '#/components/schemas/ValueMappingFieldSerializerForselectTypedRequest'
          boolean: '#/components/schemas/ValueMappingFieldSerializerForbooleanTypedRequest'
    ValueMappingFieldRequestUntyped:
      type: object
      description: |-
        A polymorphic serializer, in which the subdata
        types are inferred from one of the keys in the data.
        The class API is designed to be similar to rest_polymorphic's serializer,
        so the drf_spectacular extension can be used for this serializer too. The main difference
        is that it is not meant to be a model serializer but to work on mappings/dicts.
      properties:
        type:
          type: string
          minLength: 1
      required:
      - type
    ValueMappingFieldSerializerForboolean:
      type: object
      properties:
        name:
          type: string
          description: The name of the field
        groups:
          type: array
          items:
            type: string
            nullable: true
            description: Group to which the field belongs
        max_distance:
          type: integer
          minimum: 0
          default: 0
        label:
          type: object
          additionalProperties:
            type: string
          default: {}
          description: The friendly name of the field, by locale
        display_group:
          type: string
          nullable: true
        default:
          description: Value to set if the field is empty or can't be converted
        transformations:
          type: array
          items:
            $ref: '#/components/schemas/Transformation'
          description: List of transformations that are applied to the field
        description:
          type: object
          additionalProperties:
            type: string
          default: {}
          description: Description of the field
        requirement_level:
          allOf:
          - $ref: '#/components/schemas/RequirementLevelEnum'
          default: optional
          description: |-
            Requirement levels: required, important, optional (default)

            * `required` - Required
            * `important` - Important
            * `optional` - Optional
      required:
      - name
    ValueMappingFieldSerializerForbooleanRequest:
      type: object
      properties:
        name:
          type: string
          minLength: 1
          description: The name of the field
        groups:
          type: array
          items:
            type: string
            nullable: true
            minLength: 1
            description: Group to which the field belongs
        max_distance:
          type: integer
          minimum: 0
          default: 0
        label:
          type: object
          additionalProperties:
            type: string
            minLength: 1
          default: {}
          description: The friendly name of the field, by locale
        display_group:
          type: string
          nullable: true
          minLength: 1
        default:
          description: Value to set if the field is empty or can't be converted
        transformations:
          type: array
          items:
            $ref: '#/components/schemas/TransformationRequest'
          description: List of transformations that are applied to the field
        description:
          type: object
          additionalProperties:
            type: string
            minLength: 1
          default: {}
          description: Description of the field
        requirement_level:
          allOf:
          - $ref: '#/components/schemas/RequirementLevelEnum'
          default: optional
          description: |-
            Requirement levels: required, important, optional (default)

            * `required` - Required
            * `important` - Important
            * `optional` - Optional
      required:
      - name
    ValueMappingFieldSerializerForbooleanTyped:
      allOf:
      - $ref: '#/components/schemas/ValueMappingFieldUntyped'
      - $ref: '#/components/schemas/ValueMappingFieldSerializerForboolean'
    ValueMappingFieldSerializerForbooleanTypedRequest:
      allOf:
      - $ref: '#/components/schemas/ValueMappingFieldRequestUntyped'
      - $ref: '#/components/schemas/ValueMappingFieldSerializerForbooleanRequest'
    ValueMappingFieldSerializerForselect:
      type: object
      properties:
        options_collection_name:
          type: string
        name:
          type: string
          description: The name of the field
        groups:
          type: array
          items:
            type: string
            nullable: true
            description: Group to which the field belongs
        max_distance:
          type: integer
          minimum: 0
          default: 0
        label:
          type: object
          additionalProperties:
            type: string
          default: {}
          description: The friendly name of the field, by locale
        display_group:
          type: string
          nullable: true
        default:
          description: Value to set if the field is empty or can't be converted
        transformations:
          type: array
          items:
            $ref: '#/components/schemas/Transformation'
          description: List of transformations that are applied to the field
        description:
          type: object
          additionalProperties:
            type: string
          default: {}
          description: Description of the field
        requirement_level:
          allOf:
          - $ref: '#/components/schemas/RequirementLevelEnum'
          default: optional
          description: |-
            Requirement levels: required, important, optional (default)

            * `required` - Required
            * `important` - Important
            * `optional` - Optional
        multiple:
          type: boolean
          default: false
        separator:
          type: string
          default: ;
        max_choices:
          type: integer
          nullable: true
      required:
      - name
      - options_collection_name
    ValueMappingFieldSerializerForselectRequest:
      type: object
      properties:
        options_collection_name:
          type: string
          minLength: 1
        name:
          type: string
          minLength: 1
          description: The name of the field
        groups:
          type: array
          items:
            type: string
            nullable: true
            minLength: 1
            description: Group to which the field belongs
        max_distance:
          type: integer
          minimum: 0
          default: 0
        label:
          type: object
          additionalProperties:
            type: string
            minLength: 1
          default: {}
          description: The friendly name of the field, by locale
        display_group:
          type: string
          nullable: true
          minLength: 1
        default:
          description: Value to set if the field is empty or can't be converted
        transformations:
          type: array
          items:
            $ref: '#/components/schemas/TransformationRequest'
          description: List of transformations that are applied to the field
        description:
          type: object
          additionalProperties:
            type: string
            minLength: 1
          default: {}
          description: Description of the field
        requirement_level:
          allOf:
          - $ref: '#/components/schemas/RequirementLevelEnum'
          default: optional
          description: |-
            Requirement levels: required, important, optional (default)

            * `required` - Required
            * `important` - Important
            * `optional` - Optional
        multiple:
          type: boolean
          default: false
        separator:
          type: string
          minLength: 1
          default: ;
        max_choices:
          type: integer
          nullable: true
      required:
      - name
      - options_collection_name
    ValueMappingFieldSerializerForselectTyped:
      allOf:
      - $ref: '#/components/schemas/ValueMappingFieldUntyped'
      - $ref: '#/components/schemas/ValueMappingFieldSerializerForselect'
    ValueMappingFieldSerializerForselectTypedRequest:
      allOf:
      - $ref: '#/components/schemas/ValueMappingFieldRequestUntyped'
      - $ref: '#/components/schemas/ValueMappingFieldSerializerForselectRequest'
    ValueMappingFieldUntyped:
      type: object
      description: |-
        A polymorphic serializer, in which the subdata
        types are inferred from one of the keys in the data.
        The class API is designed to be similar to rest_polymorphic's serializer,
        so the drf_spectacular extension can be used for this serializer too. The main difference
        is that it is not meant to be a model serializer but to work on mappings/dicts.
      properties:
        type:
          type: string
      required:
      - type
    ValueMappingOriginal:
      type: object
      properties:
        name:
          type: string
          description: The name of the field
        group:
          type: string
          description: Group to which the field belongs
        values:
          type: array
          items:
            $ref: '#/components/schemas/ValueMappingOriginalValue'
      required:
      - name
      - values
    ValueMappingOriginalRequest:
      type: object
      properties:
        name:
          type: string
          minLength: 1
          description: The name of the field
        group:
          type: string
          minLength: 1
          description: Group to which the field belongs
        values:
          type: array
          items:
            $ref: '#/components/schemas/ValueMappingOriginalValueRequest'
      required:
      - name
      - values
    ValueMappingOriginalValue:
      type: object
      properties:
        value:
          type: string
        count:
          type: integer
      required:
      - count
      - value
    ValueMappingOriginalValueRequest:
      type: object
      properties:
        value:
          type: string
          minLength: 1
        count:
          type: integer
      required:
      - count
      - value
    ValueMappingParams:
      type: object
      properties:
        keep_unmapped:
          type: boolean
          default: false
        map_empty:
          type: boolean
          default: true
        block_learning:
          type: boolean
          default: false
          description: Do not keep learn between each job
        fields:
          type: array
          items:
            $ref: '#/components/schemas/ValueMappingField'
          default: []
        groups:
          type: array
          items:
            $ref: '#/components/schemas/Group'
          default: []
        include_fields:
          type: array
          items:
            $ref: '#/components/schemas/FieldFilter'
        exclude_fields:
          type: array
          items:
            $ref: '#/components/schemas/FieldFilter'
        max_requirement_level:
          allOf:
          - $ref: '#/components/schemas/MaxRequirementLevelEnum'
          default: required
          description: |-
            Max requirement levels: required, important, optional

            * `required` - Required
            * `important` - Important
            * `optional` - Optional
    ValueMappingProposition:
      type: object
      properties:
        name:
          type: string
          description: The name of the field
        group:
          type: string
          description: Group to which the field belongs
        mappings:
          type: object
          additionalProperties:
            type: array
            items:
              type: string
              nullable: true
      required:
      - mappings
      - name
    ValueMappingPropositionRequest:
      type: object
      properties:
        name:
          type: string
          minLength: 1
          description: The name of the field
        group:
          type: string
          minLength: 1
          description: Group to which the field belongs
        mappings:
          type: object
          additionalProperties:
            type: array
            items:
              type: string
              nullable: true
              minLength: 1
      required:
      - mappings
      - name
    VariantParams:
      type: object
      properties:
        product_model_name_column:
          allOf:
          - $ref: '#/components/schemas/NamedLabeledField'
          default:
            name: akeneo_parent_id
            label:
              pt: connectors.akeneo.akeneo_parent_id
              es: connectors.akeneo.akeneo_parent_id
              pl: connectors.akeneo.akeneo_parent_id
              en: connectors.akeneo.akeneo_parent_id
              nl: connectors.akeneo.akeneo_parent_id
              it: connectors.akeneo.akeneo_parent_id
              cs: connectors.akeneo.akeneo_parent_id
              de: connectors.akeneo.akeneo_parent_id
              fr: connectors.akeneo.akeneo_parent_id
        product_model_head_column:
          allOf:
          - $ref: '#/components/schemas/NamedLabeledField'
          default:
            name: is_parent
            label:
              pt: connectors.akeneo.is_parent
              es: connectors.akeneo.is_parent
              pl: connectors.akeneo.is_parent
              en: connectors.akeneo.is_parent
              nl: connectors.akeneo.is_parent
              it: connectors.akeneo.is_parent
              cs: connectors.akeneo.is_parent
              de: connectors.akeneo.is_parent
              fr: connectors.akeneo.is_parent
        default_id_column:
          type: string
          nullable: true
        invariant_columns:
          type: array
          items:
            type: string
          default: []
        unique_columns:
          type: array
          items:
            type: string
        variant_columns:
          type: array
          items:
            type: string
          default: []
        allow_product_model_without_matching_group:
          type: boolean
          default: true
        export_data:
          type: array
          items:
            $ref: '#/components/schemas/ExportDataEnum'
          default:
          - parent
          - child
          - independent
        output_data:
          type: array
          items:
            $ref: '#/components/schemas/OutputDataEnum'
          default:
          - parent
          - independent
        matching_groups:
          type: array
          items:
            $ref: '#/components/schemas/MatchingGroup'
          default: []
        automation:
          allOf:
          - $ref: '#/components/schemas/AutomateGroupin'
          default:
            enabled: false
            grouping_columns: []
            group_empty_columns: false
    VariantStats:
      type: object
      properties:
        total:
          type: integer
          minimum: 0
        grouped:
          type: integer
          minimum: 0
        to_check:
          type: integer
          minimum: 0
        independent:
          type: integer
          minimum: 0
      required:
      - grouped
      - independent
      - to_check
      - total
    Which07dEnum:
      enum:
      - start
      - sentences
      - words
      - all
      - none
      type: string
      description: |-
        * `start` - start
        * `sentences` - sentences
        * `words` - words
        * `all` - all
        * `none` - none
    Which459Enum:
      enum:
      - all
      - any
      type: string
      description: |-
        * `all` - all
        * `any` - any
    WhichB33Enum:
      enum:
      - kept
      - dropped
      - all
      type: string
      description: |-
        * `kept` - Kept
        * `dropped` - Dropped
        * `all` - All
    _ExtractionBaseParams:
      type: object
      properties:
        additional_information:
          type: array
          items:
            type: string
          default: []
        misc:
          allOf:
          - $ref: '#/components/schemas/Misc'
          default:
            allow: false
        automated_audit_rate:
          type: number
          format: double
        replace_existing:
          type: boolean
          default: false
          description: Override data in the extraction if it is already in the dataset
        max_options:
          type: integer
          maximum: 1000
          minimum: 1
        fields:
          type: array
          items:
            $ref: '#/components/schemas/ExtractionField'
          default: []
        groups:
          type: array
          items:
            $ref: '#/components/schemas/Group'
          default: []
        include_fields:
          type: array
          items:
            $ref: '#/components/schemas/FieldFilter'
        exclude_fields:
          type: array
          items:
            $ref: '#/components/schemas/FieldFilter'
        max_requirement_level:
          allOf:
          - $ref: '#/components/schemas/MaxRequirementLevelEnum'
          default: required
          description: |-
            Max requirement levels: required, important, optional

            * `required` - Required
            * `important` - Important
            * `optional` - Optional
  securitySchemes:
    tokenAuth:
      type: apiKey
      in: header
      name: Authorization
      description: Token-based authentication with required prefix "Token"
