openapi: 3.0.3
info:
  title: InvenTree API
  version: '407'
  description: API for InvenTree - the intuitive open source inventory management
    system
  license:
    name: MIT
    url: https://github.com/inventree/InvenTree/blob/master/LICENSE
paths:
  /api/:
    get:
      operationId: root_retrieve
      description: Serve current server information.
      security:
      - tokenAuth: []
      - basicAuth: []
      - cookieAuth: []
      - oauth2:
        - g:read
      responses:
        '200':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/InfoApi'
          description: InvenTree server information
  /api/action/:
    post:
      operationId: action_create
      description: This function checks if all required info was submitted and then
        performs a plugin_action or returns an error.
      tags:
      - action
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/ActionPlugin'
          application/x-www-form-urlencoded:
            schema:
              $ref: '#/components/schemas/ActionPlugin'
          multipart/form-data:
            schema:
              $ref: '#/components/schemas/ActionPlugin'
        required: true
      security:
      - tokenAuth: []
      - basicAuth: []
      - cookieAuth: []
      - oauth2:
        - g:read
      responses:
        '200':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ActionPlugin'
          description: ''
        '400':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ActionPluginError'
          description: No action specified
        '404':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ActionPluginError'
          description: No matching action found
  /api/admin/config/:
    get:
      operationId: admin_config_list
      description: List view for all accessed configurations.
      tags:
      - admin
      security:
      - tokenAuth: []
      - basicAuth: []
      - cookieAuth: []
      - oauth2:
        - a:superuser
      responses:
        '200':
          content:
            application/json:
              schema:
                type: array
                items:
                  $ref: '#/components/schemas/Config'
          description: ''
  /api/admin/config/{key}/:
    get:
      operationId: admin_config_retrieve
      description: Detail view for an individual configuration.
      parameters:
      - in: path
        name: key
        schema:
          type: string
        required: true
      tags:
      - admin
      security:
      - tokenAuth: []
      - basicAuth: []
      - cookieAuth: []
      - oauth2:
        - a:superuser
      responses:
        '200':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Config'
          description: ''
  /api/admin/email/:
    get:
      operationId: admin_email_list
      description: List view for email objects.
      parameters:
      - name: limit
        required: true
        in: query
        description: Number of results to return per page.
        schema:
          type: integer
      - name: offset
        required: false
        in: query
        description: The initial index from which to return the results.
        schema:
          type: integer
      - name: ordering
        required: false
        in: query
        description: 'Which field to use when ordering the results. Possible fields:
          created, subject, to, sender, status, timestamp, direction.'
        schema:
          type: string
      - name: search
        required: false
        in: query
        description: 'A search term. Searched fields: global_id, message_id_key, sender,
          subject, thread_id_key, to.'
        schema:
          type: string
      tags:
      - admin
      security:
      - tokenAuth: []
      - basicAuth: []
      - cookieAuth: []
      - oauth2:
        - a:superuser
      responses:
        '200':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/PaginatedEmailMessageList'
          description: ''
    delete:
      operationId: admin_email_bulk_destroy
      description: |-
        Perform a DELETE operation against this list endpoint.

        Note that the typical DRF list endpoint does not support DELETE,
        so this method is provided as a custom implementation.
      tags:
      - admin
      security:
      - tokenAuth: []
      - basicAuth: []
      - cookieAuth: []
      - oauth2:
        - a:superuser
      responses:
        '204':
          description: No response body
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/BulkRequest'
          application/x-www-form-urlencoded:
            schema:
              $ref: '#/components/schemas/BulkRequest'
          multipart/form-data:
            schema:
              $ref: '#/components/schemas/BulkRequest'
        required: true
  /api/admin/email/{global_id}/:
    get:
      operationId: admin_email_retrieve
      description: Detail view for an email object.
      parameters:
      - in: path
        name: global_id
        schema:
          type: string
          format: uuid
          description: Unique identifier for this message
        required: true
      tags:
      - admin
      security:
      - tokenAuth: []
      - basicAuth: []
      - cookieAuth: []
      - oauth2:
        - a:superuser
      responses:
        '200':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/EmailMessage'
          description: ''
    delete:
      operationId: admin_email_destroy
      description: Detail view for an email object.
      parameters:
      - in: path
        name: global_id
        schema:
          type: string
          format: uuid
          description: Unique identifier for this message
        required: true
      tags:
      - admin
      security:
      - tokenAuth: []
      - basicAuth: []
      - cookieAuth: []
      - oauth2:
        - a:superuser
      responses:
        '204':
          description: No response body
  /api/admin/email/test/:
    post:
      operationId: admin_email_test_create
      description: Send a test email.
      tags:
      - admin
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/TestEmail'
          application/x-www-form-urlencoded:
            schema:
              $ref: '#/components/schemas/TestEmail'
          multipart/form-data:
            schema:
              $ref: '#/components/schemas/TestEmail'
        required: true
      security:
      - tokenAuth: []
      - basicAuth: []
      - cookieAuth: []
      - oauth2:
        - a:superuser
      responses:
        '201':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/TestEmail'
          description: ''
  /api/attachment/:
    get:
      operationId: attachment_list
      description: List API endpoint for Attachment objects.
      parameters:
      - in: query
        name: is_file
        schema:
          type: boolean
        description: Is File
      - in: query
        name: is_link
        schema:
          type: boolean
        description: Is Link
      - name: limit
        required: true
        in: query
        description: Number of results to return per page.
        schema:
          type: integer
      - in: query
        name: model_id
        schema:
          type: integer
      - in: query
        name: model_type
        schema:
          type: string
      - name: offset
        required: false
        in: query
        description: The initial index from which to return the results.
        schema:
          type: integer
      - name: ordering
        required: false
        in: query
        description: 'Which field to use when ordering the results. Possible fields:
          model_id, model_type, upload_date, file_size.'
        schema:
          type: string
      - name: search
        required: false
        in: query
        description: 'A search term. Searched fields: comment, model_id, model_type.'
        schema:
          type: string
      - in: query
        name: upload_user
        schema:
          type: integer
      tags:
      - attachment
      security:
      - tokenAuth: []
      - basicAuth: []
      - cookieAuth: []
      - oauth2:
        - g:read
      responses:
        '200':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/PaginatedAttachmentList'
          description: ''
    post:
      operationId: attachment_create
      description: List API endpoint for Attachment objects.
      tags:
      - attachment
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/Attachment'
          application/x-www-form-urlencoded:
            schema:
              $ref: '#/components/schemas/Attachment'
          multipart/form-data:
            schema:
              $ref: '#/components/schemas/Attachment'
        required: true
      security:
      - tokenAuth: []
      - basicAuth: []
      - cookieAuth: []
      - oauth2:
        - g:read
      responses:
        '201':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Attachment'
          description: ''
    delete:
      operationId: attachment_bulk_destroy
      description: |-
        Perform a DELETE operation against this list endpoint.

        Note that the typical DRF list endpoint does not support DELETE,
        so this method is provided as a custom implementation.
      tags:
      - attachment
      security:
      - tokenAuth: []
      - basicAuth: []
      - cookieAuth: []
      - oauth2:
        - g:read
      responses:
        '204':
          description: No response body
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/BulkRequest'
          application/x-www-form-urlencoded:
            schema:
              $ref: '#/components/schemas/BulkRequest'
          multipart/form-data:
            schema:
              $ref: '#/components/schemas/BulkRequest'
        required: true
  /api/attachment/{id}/:
    get:
      operationId: attachment_retrieve
      description: Detail API endpoint for Attachment objects.
      parameters:
      - in: path
        name: id
        schema:
          type: integer
        required: true
      tags:
      - attachment
      security:
      - tokenAuth: []
      - basicAuth: []
      - cookieAuth: []
      - oauth2:
        - g:read
      responses:
        '200':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Attachment'
          description: ''
    put:
      operationId: attachment_update
      description: Detail API endpoint for Attachment objects.
      parameters:
      - in: path
        name: id
        schema:
          type: integer
        required: true
      tags:
      - attachment
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/Attachment'
          application/x-www-form-urlencoded:
            schema:
              $ref: '#/components/schemas/Attachment'
          multipart/form-data:
            schema:
              $ref: '#/components/schemas/Attachment'
        required: true
      security:
      - tokenAuth: []
      - basicAuth: []
      - cookieAuth: []
      - oauth2:
        - g:read
      responses:
        '200':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Attachment'
          description: ''
    patch:
      operationId: attachment_partial_update
      description: Detail API endpoint for Attachment objects.
      parameters:
      - in: path
        name: id
        schema:
          type: integer
        required: true
      tags:
      - attachment
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/PatchedAttachment'
          application/x-www-form-urlencoded:
            schema:
              $ref: '#/components/schemas/PatchedAttachment'
          multipart/form-data:
            schema:
              $ref: '#/components/schemas/PatchedAttachment'
      security:
      - tokenAuth: []
      - basicAuth: []
      - cookieAuth: []
      - oauth2:
        - g:read
      responses:
        '200':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Attachment'
          description: ''
    delete:
      operationId: attachment_destroy
      description: Detail API endpoint for Attachment objects.
      parameters:
      - in: path
        name: id
        schema:
          type: integer
        required: true
      tags:
      - attachment
      security:
      - tokenAuth: []
      - basicAuth: []
      - cookieAuth: []
      - oauth2:
        - g:read
      responses:
        '204':
          description: No response body
  /api/attachment/{id}/metadata/:
    get:
      operationId: attachment_metadata_retrieve
      description: Generic API endpoint for reading and editing metadata for a model.
      parameters:
      - in: path
        name: id
        schema:
          type: integer
        required: true
      tags:
      - attachment
      security:
      - tokenAuth: []
      - basicAuth: []
      - cookieAuth: []
      - oauth2:
        - g:read
      responses:
        '200':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Metadata'
          description: ''
    put:
      operationId: attachment_metadata_update
      description: Generic API endpoint for reading and editing metadata for a model.
      parameters:
      - in: path
        name: id
        schema:
          type: integer
        required: true
      tags:
      - attachment
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/Metadata'
          application/x-www-form-urlencoded:
            schema:
              $ref: '#/components/schemas/Metadata'
          multipart/form-data:
            schema:
              $ref: '#/components/schemas/Metadata'
        required: true
      security:
      - tokenAuth: []
      - basicAuth: []
      - cookieAuth: []
      - oauth2:
        - g:read
      responses:
        '200':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Metadata'
          description: ''
    patch:
      operationId: attachment_metadata_partial_update
      description: Generic API endpoint for reading and editing metadata for a model.
      parameters:
      - in: path
        name: id
        schema:
          type: integer
        required: true
      tags:
      - attachment
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/PatchedMetadata'
          application/x-www-form-urlencoded:
            schema:
              $ref: '#/components/schemas/PatchedMetadata'
          multipart/form-data:
            schema:
              $ref: '#/components/schemas/PatchedMetadata'
      security:
      - tokenAuth: []
      - basicAuth: []
      - cookieAuth: []
      - oauth2:
        - g:read
      responses:
        '200':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Metadata'
          description: ''
  /api/background-task/:
    get:
      operationId: background_task_retrieve
      description: Return information about the current status of the background task
        queue.
      tags:
      - background-task
      security:
      - tokenAuth: []
      - basicAuth: []
      - cookieAuth: []
      - oauth2:
        - g:read
      responses:
        '200':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/TaskOverview'
          description: ''
  /api/background-task/failed/:
    get:
      operationId: background_task_failed_list
      description: Provides a read-only list of currently failed tasks.
      parameters:
      - name: limit
        required: true
        in: query
        description: Number of results to return per page.
        schema:
          type: integer
      - name: offset
        required: false
        in: query
        description: The initial index from which to return the results.
        schema:
          type: integer
      - name: ordering
        required: false
        in: query
        description: 'Which field to use when ordering the results. Possible fields:
          pk, func, started, stopped.'
        schema:
          type: string
      - name: search
        required: false
        in: query
        description: 'A search term. Searched fields: func.'
        schema:
          type: string
      tags:
      - background-task
      security:
      - tokenAuth: []
      - basicAuth: []
      - cookieAuth: []
      - oauth2:
        - g:read
      responses:
        '200':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/PaginatedFailedTaskList'
          description: ''
    delete:
      operationId: background_task_failed_bulk_destroy
      description: |-
        Perform a DELETE operation against this list endpoint.

        Note that the typical DRF list endpoint does not support DELETE,
        so this method is provided as a custom implementation.
      tags:
      - background-task
      security:
      - tokenAuth: []
      - basicAuth: []
      - cookieAuth: []
      - oauth2:
        - g:read
      responses:
        '204':
          description: No response body
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/BulkRequest'
          application/x-www-form-urlencoded:
            schema:
              $ref: '#/components/schemas/BulkRequest'
          multipart/form-data:
            schema:
              $ref: '#/components/schemas/BulkRequest'
        required: true
  /api/background-task/pending/:
    get:
      operationId: background_task_pending_list
      description: Provides a read-only list of currently pending tasks.
      parameters:
      - name: limit
        required: true
        in: query
        description: Number of results to return per page.
        schema:
          type: integer
      - name: offset
        required: false
        in: query
        description: The initial index from which to return the results.
        schema:
          type: integer
      tags:
      - background-task
      security:
      - tokenAuth: []
      - basicAuth: []
      - cookieAuth: []
      - oauth2:
        - g:read
      responses:
        '200':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/PaginatedPendingTaskList'
          description: ''
    delete:
      operationId: background_task_pending_bulk_destroy
      description: |-
        Perform a DELETE operation against this list endpoint.

        Note that the typical DRF list endpoint does not support DELETE,
        so this method is provided as a custom implementation.
      tags:
      - background-task
      security:
      - tokenAuth: []
      - basicAuth: []
      - cookieAuth: []
      - oauth2:
        - g:read
      responses:
        '204':
          description: No response body
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/BulkRequest'
          application/x-www-form-urlencoded:
            schema:
              $ref: '#/components/schemas/BulkRequest'
          multipart/form-data:
            schema:
              $ref: '#/components/schemas/BulkRequest'
        required: true
  /api/background-task/scheduled/:
    get:
      operationId: background_task_scheduled_list
      description: Provides a read-only list of currently scheduled tasks.
      parameters:
      - name: limit
        required: true
        in: query
        description: Number of results to return per page.
        schema:
          type: integer
      - name: offset
        required: false
        in: query
        description: The initial index from which to return the results.
        schema:
          type: integer
      - name: ordering
        required: false
        in: query
        description: 'Which field to use when ordering the results. Possible fields:
          pk, func, last_run, next_run.'
        schema:
          type: string
      - name: search
        required: false
        in: query
        description: 'A search term. Searched fields: func.'
        schema:
          type: string
      tags:
      - background-task
      security:
      - tokenAuth: []
      - basicAuth: []
      - cookieAuth: []
      - oauth2:
        - g:read
      responses:
        '200':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/PaginatedScheduledTaskList'
          description: ''
  /api/barcode/:
    post:
      operationId: barcode_create
      description: |-
        Endpoint for handling generic barcode scan requests.

        Barcode data are decoded by the client application,
        and sent to this endpoint (as a JSON object) for validation.

        A barcode could follow the internal InvenTree barcode format,
        or it could match to a third-party barcode format (e.g. Digikey).
      tags:
      - barcode
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/Barcode'
          application/x-www-form-urlencoded:
            schema:
              $ref: '#/components/schemas/Barcode'
          multipart/form-data:
            schema:
              $ref: '#/components/schemas/Barcode'
        required: true
      security:
      - tokenAuth: []
      - basicAuth: []
      - cookieAuth: []
      - oauth2:
        - g:read
      responses:
        '201':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Barcode'
          description: ''
  /api/barcode/generate/:
    post:
      operationId: barcode_generate_create
      description: |-
        Endpoint for generating a barcode for a database object.

        The barcode is generated by the selected barcode plugin.
      tags:
      - barcode
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/BarcodeGenerate'
          application/x-www-form-urlencoded:
            schema:
              $ref: '#/components/schemas/BarcodeGenerate'
          multipart/form-data:
            schema:
              $ref: '#/components/schemas/BarcodeGenerate'
        required: true
      security:
      - tokenAuth: []
      - basicAuth: []
      - cookieAuth: []
      - oauth2:
        - g:read
      responses:
        '200':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Barcode'
          description: ''
  /api/barcode/history/:
    get:
      operationId: barcode_history_list
      description: List API endpoint for BarcodeScan objects.
      parameters:
      - name: limit
        required: true
        in: query
        description: Number of results to return per page.
        schema:
          type: integer
      - name: offset
        required: false
        in: query
        description: The initial index from which to return the results.
        schema:
          type: integer
      - name: ordering
        required: false
        in: query
        description: 'Which field to use when ordering the results. Possible fields:
          user, plugin, timestamp, endpoint, result.'
        schema:
          type: string
      - in: query
        name: result
        schema:
          type: boolean
      - name: search
        required: false
        in: query
        description: 'A search term. Searched fields: plugin.'
        schema:
          type: string
      - in: query
        name: user
        schema:
          type: integer
      tags:
      - barcode
      security:
      - tokenAuth: []
      - basicAuth: []
      - cookieAuth: []
      - oauth2:
        - g:read
      responses:
        '200':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/PaginatedBarcodeScanResultList'
          description: ''
    delete:
      operationId: barcode_history_bulk_destroy
      description: |-
        Perform a DELETE operation against this list endpoint.

        Note that the typical DRF list endpoint does not support DELETE,
        so this method is provided as a custom implementation.
      tags:
      - barcode
      security:
      - tokenAuth: []
      - basicAuth: []
      - cookieAuth: []
      - oauth2:
        - a:staff
      responses:
        '204':
          description: No response body
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/BulkRequest'
          application/x-www-form-urlencoded:
            schema:
              $ref: '#/components/schemas/BulkRequest'
          multipart/form-data:
            schema:
              $ref: '#/components/schemas/BulkRequest'
        required: true
  /api/barcode/history/{id}/:
    get:
      operationId: barcode_history_retrieve
      description: Detail endpoint for a BarcodeScan object.
      parameters:
      - in: path
        name: id
        schema:
          type: integer
        required: true
      tags:
      - barcode
      security:
      - tokenAuth: []
      - basicAuth: []
      - cookieAuth: []
      - oauth2:
        - g:read
      responses:
        '200':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/BarcodeScanResult'
          description: ''
    delete:
      operationId: barcode_history_destroy
      description: Detail endpoint for a BarcodeScan object.
      parameters:
      - in: path
        name: id
        schema:
          type: integer
        required: true
      tags:
      - barcode
      security:
      - tokenAuth: []
      - basicAuth: []
      - cookieAuth: []
      - oauth2:
        - a:staff
      responses:
        '204':
          description: No response body
  /api/barcode/link/:
    post:
      operationId: barcode_link_create
      description: |-
        Endpoint for assigning a barcode to a stock item.

        - This only works if the barcode is not already associated with an object in the database
        - If the barcode does not match an object, then the barcode hash is assigned to the StockItem
      tags:
      - barcode
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/BarcodeAssign'
          application/x-www-form-urlencoded:
            schema:
              $ref: '#/components/schemas/BarcodeAssign'
          multipart/form-data:
            schema:
              $ref: '#/components/schemas/BarcodeAssign'
        required: true
      security:
      - tokenAuth: []
      - basicAuth: []
      - cookieAuth: []
      - oauth2:
        - g:read
      responses:
        '201':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/BarcodeAssign'
          description: ''
  /api/barcode/po-allocate/:
    post:
      operationId: barcode_po_allocate_create
      description: |-
        Endpoint for allocating parts to a purchase order by scanning their barcode.

        Note that the scanned barcode may point to:

        - A Part object
        - A ManufacturerPart object
        - A SupplierPart object
      tags:
      - barcode
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/BarcodePOAllocate'
          application/x-www-form-urlencoded:
            schema:
              $ref: '#/components/schemas/BarcodePOAllocate'
          multipart/form-data:
            schema:
              $ref: '#/components/schemas/BarcodePOAllocate'
        required: true
      security:
      - tokenAuth: []
      - basicAuth: []
      - cookieAuth: []
      - oauth2:
        - g:read
      responses:
        '201':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/BarcodePOAllocate'
          description: ''
  /api/barcode/po-receive/:
    post:
      operationId: barcode_po_receive_create
      description: |-
        Endpoint for handling receiving parts by scanning their barcode.

        Barcode data are decoded by the client application,
        and sent to this endpoint (as a JSON object) for validation.

        The barcode should follow a third-party barcode format (e.g. Digikey)
        and ideally contain order_number and quantity information.

        The following parameters are available:

        - barcode: The raw barcode data (required)
        - purchase_order: The purchase order containing the item to receive (optional)
        - location: The destination location for the received item (optional)
      tags:
      - barcode
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/BarcodePOReceive'
          application/x-www-form-urlencoded:
            schema:
              $ref: '#/components/schemas/BarcodePOReceive'
          multipart/form-data:
            schema:
              $ref: '#/components/schemas/BarcodePOReceive'
        required: true
      security:
      - tokenAuth: []
      - basicAuth: []
      - cookieAuth: []
      - oauth2:
        - g:read
      responses:
        '201':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/BarcodePOReceive'
          description: ''
  /api/barcode/so-allocate/:
    post:
      operationId: barcode_so_allocate_create
      description: |-
        Endpoint for allocating stock to a sales order, by scanning barcode.

        The scanned barcode should map to a StockItem object.

        Additional fields can be passed to the endpoint:

        - SalesOrder (Required)
        - Line Item
        - Shipment
        - Quantity
      tags:
      - barcode
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/BarcodeSOAllocate'
          application/x-www-form-urlencoded:
            schema:
              $ref: '#/components/schemas/BarcodeSOAllocate'
          multipart/form-data:
            schema:
              $ref: '#/components/schemas/BarcodeSOAllocate'
        required: true
      security:
      - tokenAuth: []
      - basicAuth: []
      - cookieAuth: []
      - oauth2:
        - g:read
      responses:
        '201':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/BarcodeSOAllocate'
          description: ''
  /api/barcode/unlink/:
    post:
      operationId: barcode_unlink_create
      description: Endpoint for unlinking / unassigning a custom barcode from a database
        object.
      tags:
      - barcode
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/BarcodeUnassign'
          application/x-www-form-urlencoded:
            schema:
              $ref: '#/components/schemas/BarcodeUnassign'
          multipart/form-data:
            schema:
              $ref: '#/components/schemas/BarcodeUnassign'
      security:
      - tokenAuth: []
      - basicAuth: []
      - cookieAuth: []
      - oauth2:
        - g:read
      responses:
        '201':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/BarcodeUnassign'
          description: ''
  /api/bom/:
    get:
      operationId: bom_list
      description: Override the GET method to determine export options.
      parameters:
      - in: query
        name: allow_variants
        schema:
          type: boolean
      - in: query
        name: available_stock
        schema:
          type: boolean
        description: Has available stock
      - in: query
        name: can_build
        schema:
          type: boolean
          default: true
      - in: query
        name: category
        schema:
          type: integer
      - in: query
        name: consumable
        schema:
          type: boolean
      - in: query
        name: has_pricing
        schema:
          type: boolean
        description: Has Pricing
      - in: query
        name: inherited
        schema:
          type: boolean
      - name: limit
        required: true
        in: query
        description: Number of results to return per page.
        schema:
          type: integer
      - name: offset
        required: false
        in: query
        description: The initial index from which to return the results.
        schema:
          type: integer
      - in: query
        name: on_order
        schema:
          type: boolean
        description: On order
      - in: query
        name: optional
        schema:
          type: boolean
      - name: ordering
        required: false
        in: query
        description: 'Which field to use when ordering the results. Possible fields:
          can_build, quantity, setup_quantity, attrition, rounding_multiple, sub_part,
          available_stock, allow_variants, inherited, optional, consumable, reference,
          validated, pricing_min, pricing_max, pricing_min_total, pricing_max_total,
          pricing_updated.'
        schema:
          type: string
      - in: query
        name: part
        schema:
          type: integer
      - in: query
        name: part_active
        schema:
          type: boolean
        description: Assembly part is active
      - in: query
        name: part_detail
        schema:
          type: boolean
          default: false
        description: Include detailed information about the related part in the response
      - in: query
        name: part_testable
        schema:
          type: boolean
        description: Assembly part is testable
      - in: query
        name: part_trackable
        schema:
          type: boolean
        description: Assembly part is trackable
      - name: search
        required: false
        in: query
        description: 'A search term. Searched fields: reference, sub_part__IPN, sub_part__category__name,
          sub_part__description, sub_part__keywords, sub_part__name, sub_part__revision.'
        schema:
          type: string
      - in: query
        name: sub_part_assembly
        schema:
          type: boolean
        description: Component part is an assembly
      - in: query
        name: sub_part_detail
        schema:
          type: boolean
          default: false
      - in: query
        name: sub_part_testable
        schema:
          type: boolean
        description: Component part is testable
      - in: query
        name: sub_part_trackable
        schema:
          type: boolean
        description: Component part is trackable
      - in: query
        name: sub_part_virtual
        schema:
          type: boolean
        description: Component part is virtual
      - in: query
        name: uses
        schema:
          type: integer
      - in: query
        name: validated
        schema:
          type: boolean
      tags:
      - bom
      security:
      - tokenAuth: []
      - basicAuth: []
      - cookieAuth: []
      - oauth2:
        - r:view:part
        - r:view:build
      responses:
        '200':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/PaginatedBomItemList'
          description: ''
    post:
      operationId: bom_create
      description: |-
        API endpoint for accessing a list of BomItem objects.

        - GET: Return list of BomItem objects
        - POST: Create a new BomItem object
      tags:
      - bom
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/BomItem'
          application/x-www-form-urlencoded:
            schema:
              $ref: '#/components/schemas/BomItem'
          multipart/form-data:
            schema:
              $ref: '#/components/schemas/BomItem'
        required: true
      security:
      - tokenAuth: []
      - basicAuth: []
      - cookieAuth: []
      - oauth2:
        - r:add:part
        - r:add:build
      responses:
        '201':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/BomItem'
          description: ''
    delete:
      operationId: bom_bulk_destroy
      description: |-
        Perform a DELETE operation against this list endpoint.

        Note that the typical DRF list endpoint does not support DELETE,
        so this method is provided as a custom implementation.
      tags:
      - bom
      security:
      - tokenAuth: []
      - basicAuth: []
      - cookieAuth: []
      - oauth2:
        - r:delete:part
        - r:delete:build
      responses:
        '204':
          description: No response body
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/BulkRequest'
          application/x-www-form-urlencoded:
            schema:
              $ref: '#/components/schemas/BulkRequest'
          multipart/form-data:
            schema:
              $ref: '#/components/schemas/BulkRequest'
        required: true
  /api/bom/{id}/:
    get:
      operationId: bom_retrieve
      description: API endpoint for detail view of a single BomItem object.
      parameters:
      - in: query
        name: can_build
        schema:
          type: boolean
          default: true
      - in: path
        name: id
        schema:
          type: integer
        required: true
      - in: query
        name: part_detail
        schema:
          type: boolean
          default: false
        description: Include detailed information about the related part in the response
      - in: query
        name: sub_part_detail
        schema:
          type: boolean
          default: false
      tags:
      - bom
      security:
      - tokenAuth: []
      - basicAuth: []
      - cookieAuth: []
      - oauth2:
        - r:view:part
        - r:view:build
      responses:
        '200':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/BomItem'
          description: ''
    put:
      operationId: bom_update
      description: API endpoint for detail view of a single BomItem object.
      parameters:
      - in: path
        name: id
        schema:
          type: integer
        required: true
      tags:
      - bom
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/BomItem'
          application/x-www-form-urlencoded:
            schema:
              $ref: '#/components/schemas/BomItem'
          multipart/form-data:
            schema:
              $ref: '#/components/schemas/BomItem'
        required: true
      security:
      - tokenAuth: []
      - basicAuth: []
      - cookieAuth: []
      - oauth2:
        - r:change:part
        - r:change:build
      responses:
        '200':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/BomItem'
          description: ''
    patch:
      operationId: bom_partial_update
      description: API endpoint for detail view of a single BomItem object.
      parameters:
      - in: path
        name: id
        schema:
          type: integer
        required: true
      tags:
      - bom
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/PatchedBomItem'
          application/x-www-form-urlencoded:
            schema:
              $ref: '#/components/schemas/PatchedBomItem'
          multipart/form-data:
            schema:
              $ref: '#/components/schemas/PatchedBomItem'
      security:
      - tokenAuth: []
      - basicAuth: []
      - cookieAuth: []
      - oauth2:
        - r:change:part
        - r:change:build
      responses:
        '200':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/BomItem'
          description: ''
    delete:
      operationId: bom_destroy
      description: API endpoint for detail view of a single BomItem object.
      parameters:
      - in: path
        name: id
        schema:
          type: integer
        required: true
      tags:
      - bom
      security:
      - tokenAuth: []
      - basicAuth: []
      - cookieAuth: []
      - oauth2:
        - r:delete:part
        - r:delete:build
      responses:
        '204':
          description: No response body
  /api/bom/{id}/metadata/:
    get:
      operationId: bom_metadata_retrieve
      description: Generic API endpoint for reading and editing metadata for a model.
      parameters:
      - in: path
        name: id
        schema:
          type: integer
        required: true
      tags:
      - bom
      security:
      - tokenAuth: []
      - basicAuth: []
      - cookieAuth: []
      - oauth2:
        - r:view:part
        - r:view:build
      responses:
        '200':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Metadata'
          description: ''
    put:
      operationId: bom_metadata_update
      description: Generic API endpoint for reading and editing metadata for a model.
      parameters:
      - in: path
        name: id
        schema:
          type: integer
        required: true
      tags:
      - bom
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/Metadata'
          application/x-www-form-urlencoded:
            schema:
              $ref: '#/components/schemas/Metadata'
          multipart/form-data:
            schema:
              $ref: '#/components/schemas/Metadata'
        required: true
      security:
      - tokenAuth: []
      - basicAuth: []
      - cookieAuth: []
      - oauth2:
        - r:change:part
        - r:change:build
      responses:
        '200':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Metadata'
          description: ''
    patch:
      operationId: bom_metadata_partial_update
      description: Generic API endpoint for reading and editing metadata for a model.
      parameters:
      - in: path
        name: id
        schema:
          type: integer
        required: true
      tags:
      - bom
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/PatchedMetadata'
          application/x-www-form-urlencoded:
            schema:
              $ref: '#/components/schemas/PatchedMetadata'
          multipart/form-data:
            schema:
              $ref: '#/components/schemas/PatchedMetadata'
      security:
      - tokenAuth: []
      - basicAuth: []
      - cookieAuth: []
      - oauth2:
        - r:change:part
        - r:change:build
      responses:
        '200':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Metadata'
          description: ''
  /api/bom/{id}/validate/:
    put:
      operationId: bom_validate_update
      description: API endpoint for validating a BomItem.
      parameters:
      - in: path
        name: id
        schema:
          type: integer
        required: true
      tags:
      - bom
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/BomItemValidation'
          application/x-www-form-urlencoded:
            schema:
              $ref: '#/components/schemas/BomItemValidation'
          multipart/form-data:
            schema:
              $ref: '#/components/schemas/BomItemValidation'
      security:
      - tokenAuth: []
      - basicAuth: []
      - cookieAuth: []
      - oauth2:
        - g:read
      responses:
        '200':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/BomItemValidation'
          description: ''
    patch:
      operationId: bom_validate_partial_update
      description: API endpoint for validating a BomItem.
      parameters:
      - in: path
        name: id
        schema:
          type: integer
        required: true
      tags:
      - bom
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/PatchedBomItemValidation'
          application/x-www-form-urlencoded:
            schema:
              $ref: '#/components/schemas/PatchedBomItemValidation'
          multipart/form-data:
            schema:
              $ref: '#/components/schemas/PatchedBomItemValidation'
      security:
      - tokenAuth: []
      - basicAuth: []
      - cookieAuth: []
      - oauth2:
        - g:read
      responses:
        '200':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/BomItemValidation'
          description: ''
  /api/bom/substitute/:
    get:
      operationId: bom_substitute_list
      description: API endpoint for accessing a list of BomItemSubstitute objects.
      parameters:
      - in: query
        name: bom_item
        schema:
          type: integer
      - name: limit
        required: true
        in: query
        description: Number of results to return per page.
        schema:
          type: integer
      - name: offset
        required: false
        in: query
        description: The initial index from which to return the results.
        schema:
          type: integer
      - name: ordering
        required: false
        in: query
        description: Which field to use when ordering the results.
        schema:
          type: string
      - in: query
        name: part
        schema:
          type: integer
      - name: search
        required: false
        in: query
        description: A search term.
        schema:
          type: string
      tags:
      - bom
      security:
      - tokenAuth: []
      - basicAuth: []
      - cookieAuth: []
      - oauth2:
        - r:view:part
        - r:view:build
      responses:
        '200':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/PaginatedBomItemSubstituteList'
          description: ''
    post:
      operationId: bom_substitute_create
      description: API endpoint for accessing a list of BomItemSubstitute objects.
      tags:
      - bom
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/BomItemSubstitute'
          application/x-www-form-urlencoded:
            schema:
              $ref: '#/components/schemas/BomItemSubstitute'
          multipart/form-data:
            schema:
              $ref: '#/components/schemas/BomItemSubstitute'
        required: true
      security:
      - tokenAuth: []
      - basicAuth: []
      - cookieAuth: []
      - oauth2:
        - r:add:part
        - r:add:build
      responses:
        '201':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/BomItemSubstitute'
          description: ''
  /api/bom/substitute/{id}/:
    get:
      operationId: bom_substitute_retrieve
      description: API endpoint for detail view of a single BomItemSubstitute object.
      parameters:
      - in: path
        name: id
        schema:
          type: integer
        required: true
      tags:
      - bom
      security:
      - tokenAuth: []
      - basicAuth: []
      - cookieAuth: []
      - oauth2:
        - r:view:part
        - r:view:build
      responses:
        '200':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/BomItemSubstitute'
          description: ''
    put:
      operationId: bom_substitute_update
      description: API endpoint for detail view of a single BomItemSubstitute object.
      parameters:
      - in: path
        name: id
        schema:
          type: integer
        required: true
      tags:
      - bom
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/BomItemSubstitute'
          application/x-www-form-urlencoded:
            schema:
              $ref: '#/components/schemas/BomItemSubstitute'
          multipart/form-data:
            schema:
              $ref: '#/components/schemas/BomItemSubstitute'
        required: true
      security:
      - tokenAuth: []
      - basicAuth: []
      - cookieAuth: []
      - oauth2:
        - r:change:part
        - r:change:build
      responses:
        '200':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/BomItemSubstitute'
          description: ''
    patch:
      operationId: bom_substitute_partial_update
      description: API endpoint for detail view of a single BomItemSubstitute object.
      parameters:
      - in: path
        name: id
        schema:
          type: integer
        required: true
      tags:
      - bom
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/PatchedBomItemSubstitute'
          application/x-www-form-urlencoded:
            schema:
              $ref: '#/components/schemas/PatchedBomItemSubstitute'
          multipart/form-data:
            schema:
              $ref: '#/components/schemas/PatchedBomItemSubstitute'
      security:
      - tokenAuth: []
      - basicAuth: []
      - cookieAuth: []
      - oauth2:
        - r:change:part
        - r:change:build
      responses:
        '200':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/BomItemSubstitute'
          description: ''
    delete:
      operationId: bom_substitute_destroy
      description: API endpoint for detail view of a single BomItemSubstitute object.
      parameters:
      - in: path
        name: id
        schema:
          type: integer
        required: true
      tags:
      - bom
      security:
      - tokenAuth: []
      - basicAuth: []
      - cookieAuth: []
      - oauth2:
        - r:delete:part
        - r:delete:build
      responses:
        '204':
          description: No response body
  /api/bom/substitute/{id}/metadata/:
    get:
      operationId: bom_substitute_metadata_retrieve
      description: Generic API endpoint for reading and editing metadata for a model.
      parameters:
      - in: path
        name: id
        schema:
          type: integer
        required: true
      tags:
      - bom
      security:
      - tokenAuth: []
      - basicAuth: []
      - cookieAuth: []
      - oauth2:
        - r:view:part
        - r:view:build
      responses:
        '200':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Metadata'
          description: ''
    put:
      operationId: bom_substitute_metadata_update
      description: Generic API endpoint for reading and editing metadata for a model.
      parameters:
      - in: path
        name: id
        schema:
          type: integer
        required: true
      tags:
      - bom
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/Metadata'
          application/x-www-form-urlencoded:
            schema:
              $ref: '#/components/schemas/Metadata'
          multipart/form-data:
            schema:
              $ref: '#/components/schemas/Metadata'
        required: true
      security:
      - tokenAuth: []
      - basicAuth: []
      - cookieAuth: []
      - oauth2:
        - r:change:part
        - r:change:build
      responses:
        '200':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Metadata'
          description: ''
    patch:
      operationId: bom_substitute_metadata_partial_update
      description: Generic API endpoint for reading and editing metadata for a model.
      parameters:
      - in: path
        name: id
        schema:
          type: integer
        required: true
      tags:
      - bom
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/PatchedMetadata'
          application/x-www-form-urlencoded:
            schema:
              $ref: '#/components/schemas/PatchedMetadata'
          multipart/form-data:
            schema:
              $ref: '#/components/schemas/PatchedMetadata'
      security:
      - tokenAuth: []
      - basicAuth: []
      - cookieAuth: []
      - oauth2:
        - r:change:part
        - r:change:build
      responses:
        '200':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Metadata'
          description: ''
  /api/build/:
    get:
      operationId: build_list
      description: Override the GET method to determine export options.
      parameters:
      - in: query
        name: active
        schema:
          type: boolean
        description: Build is active
      - in: query
        name: ancestor
        schema:
          type: integer
        description: Ancestor Build
      - in: query
        name: assigned_to
        schema:
          type: integer
        description: Assigned To
      - in: query
        name: assigned_to_me
        schema:
          type: boolean
        description: Assigned to me
      - in: query
        name: category
        schema:
          type: integer
        description: Category
      - in: query
        name: completed_after
        schema:
          type: string
          format: date
        description: Completed after
      - in: query
        name: completed_before
        schema:
          type: string
          format: date
        description: Completed before
      - in: query
        name: created_after
        schema:
          type: string
          format: date
        description: Created after
      - in: query
        name: created_before
        schema:
          type: string
          format: date
        description: Created before
      - in: query
        name: exclude_tree
        schema:
          type: integer
        description: Exclude Tree
      - in: query
        name: external
        schema:
          type: boolean
      - in: query
        name: has_project_code
        schema:
          type: boolean
        description: has_project_code
      - in: query
        name: has_start_date
        schema:
          type: boolean
        description: Has start date
      - in: query
        name: has_target_date
        schema:
          type: boolean
        description: Has target date
      - in: query
        name: include_variants
        schema:
          type: boolean
        description: Include Variants
      - in: query
        name: issued_by
        schema:
          type: integer
      - name: limit
        required: true
        in: query
        description: Number of results to return per page.
        schema:
          type: integer
      - in: query
        name: max_date
        schema:
          type: string
          format: date
        description: Max Date
      - in: query
        name: min_date
        schema:
          type: string
          format: date
        description: Min Date
      - name: offset
        required: false
        in: query
        description: The initial index from which to return the results.
        schema:
          type: integer
      - name: ordering
        required: false
        in: query
        description: 'Which field to use when ordering the results. Possible fields:
          reference, part__name, status, creation_date, start_date, target_date, completion_date,
          quantity, completed, issued_by, responsible, project_code, priority, level,
          external.'
        schema:
          type: string
      - in: query
        name: outstanding
        schema:
          type: boolean
        description: Build is outstanding
      - in: query
        name: overdue
        schema:
          type: boolean
        description: Build is overdue
      - in: query
        name: parent
        schema:
          type: integer
        description: Parent Build
      - in: query
        name: part
        schema:
          type: integer
        description: Part
      - in: query
        name: part_detail
        schema:
          type: boolean
          default: true
        description: Include detailed information about the related part in the response
      - in: query
        name: project_code
        schema:
          type: integer
      - in: query
        name: reference
        schema:
          type: string
        description: Filter by exact reference
      - in: query
        name: sales_order
        schema:
          type: integer
      - name: search
        required: false
        in: query
        description: 'A search term. Searched fields: part__IPN, part__description,
          part__name, priority, project_code__code, reference, title.'
        schema:
          type: string
      - in: query
        name: start_date_after
        schema:
          type: string
          format: date
        description: Start date after
      - in: query
        name: start_date_before
        schema:
          type: string
          format: date
        description: Start date before
      - in: query
        name: status
        schema:
          type: integer
        description: Order Status
      - in: query
        name: target_date_after
        schema:
          type: string
          format: date
        description: Target date after
      - in: query
        name: target_date_before
        schema:
          type: string
          format: date
        description: Target date before
      tags:
      - build
      security:
      - tokenAuth: []
      - basicAuth: []
      - cookieAuth: []
      - oauth2:
        - r:view:build
      responses:
        '200':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/PaginatedBuildList'
          description: ''
    post:
      operationId: build_create
      description: |-
        API endpoint for accessing a list of Build objects.

        - GET: Return list of objects (with filters)
        - POST: Create a new Build object
      tags:
      - build
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/Build'
          application/x-www-form-urlencoded:
            schema:
              $ref: '#/components/schemas/Build'
          multipart/form-data:
            schema:
              $ref: '#/components/schemas/Build'
        required: true
      security:
      - tokenAuth: []
      - basicAuth: []
      - cookieAuth: []
      - oauth2:
        - r:add:build
      responses:
        '201':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Build'
          description: ''
  /api/build/{id}/:
    get:
      operationId: build_retrieve
      description: API endpoint for detail view of a Build object.
      parameters:
      - in: path
        name: id
        schema:
          type: integer
        required: true
      tags:
      - build
      security:
      - tokenAuth: []
      - basicAuth: []
      - cookieAuth: []
      - oauth2:
        - r:view:build
      responses:
        '200':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Build'
          description: ''
    put:
      operationId: build_update
      description: API endpoint for detail view of a Build object.
      parameters:
      - in: path
        name: id
        schema:
          type: integer
        required: true
      tags:
      - build
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/Build'
          application/x-www-form-urlencoded:
            schema:
              $ref: '#/components/schemas/Build'
          multipart/form-data:
            schema:
              $ref: '#/components/schemas/Build'
        required: true
      security:
      - tokenAuth: []
      - basicAuth: []
      - cookieAuth: []
      - oauth2:
        - r:change:build
      responses:
        '200':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Build'
          description: ''
    patch:
      operationId: build_partial_update
      description: API endpoint for detail view of a Build object.
      parameters:
      - in: path
        name: id
        schema:
          type: integer
        required: true
      tags:
      - build
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/PatchedBuild'
          application/x-www-form-urlencoded:
            schema:
              $ref: '#/components/schemas/PatchedBuild'
          multipart/form-data:
            schema:
              $ref: '#/components/schemas/PatchedBuild'
      security:
      - tokenAuth: []
      - basicAuth: []
      - cookieAuth: []
      - oauth2:
        - r:change:build
      responses:
        '200':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Build'
          description: ''
    delete:
      operationId: build_destroy
      description: API endpoint for detail view of a Build object.
      parameters:
      - in: path
        name: id
        schema:
          type: integer
        required: true
      tags:
      - build
      security:
      - tokenAuth: []
      - basicAuth: []
      - cookieAuth: []
      - oauth2:
        - r:delete:build
      responses:
        '204':
          description: No response body
  /api/build/{id}/allocate/:
    post:
      operationId: build_allocate_create
      description: |-
        API endpoint to allocate stock items to a build order.

        - The BuildOrder object is specified by the URL
        - Items to allocate are specified as a list called "items" with the following options:
            - bom_item: pk value of a given BomItem object (must match the part associated with this build)
            - stock_item: pk value of a given StockItem object
            - quantity: quantity to allocate
            - output: StockItem (build order output) to allocate stock against (optional)
      parameters:
      - in: path
        name: id
        schema:
          type: integer
        required: true
      tags:
      - build
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/BuildAllocation'
          application/x-www-form-urlencoded:
            schema:
              $ref: '#/components/schemas/BuildAllocation'
          multipart/form-data:
            schema:
              $ref: '#/components/schemas/BuildAllocation'
        required: true
      security:
      - tokenAuth: []
      - basicAuth: []
      - cookieAuth: []
      - oauth2:
        - g:read
      responses:
        '201':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/BuildAllocation'
          description: ''
  /api/build/{id}/auto-allocate/:
    post:
      operationId: build_auto_allocate_create
      description: |-
        API endpoint for 'automatically' allocating stock against a build order.

        - Only looks at 'untracked' parts
        - If stock exists in a single location, easy!
        - If user decides that stock items are "fungible", allocate against multiple stock items
        - If the user wants to, allocate substitute parts if the primary parts are not available.
      parameters:
      - in: path
        name: id
        schema:
          type: integer
        required: true
      tags:
      - build
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/BuildAutoAllocation'
          application/x-www-form-urlencoded:
            schema:
              $ref: '#/components/schemas/BuildAutoAllocation'
          multipart/form-data:
            schema:
              $ref: '#/components/schemas/BuildAutoAllocation'
      security:
      - tokenAuth: []
      - basicAuth: []
      - cookieAuth: []
      - oauth2:
        - g:read
      responses:
        '201':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/BuildAutoAllocation'
          description: ''
  /api/build/{id}/cancel/:
    post:
      operationId: build_cancel_create
      description: API endpoint for cancelling a BuildOrder.
      parameters:
      - in: path
        name: id
        schema:
          type: integer
        required: true
      tags:
      - build
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/BuildCancel'
          application/x-www-form-urlencoded:
            schema:
              $ref: '#/components/schemas/BuildCancel'
          multipart/form-data:
            schema:
              $ref: '#/components/schemas/BuildCancel'
      security:
      - tokenAuth: []
      - basicAuth: []
      - cookieAuth: []
      - oauth2:
        - g:read
      responses:
        '201':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/BuildCancel'
          description: ''
  /api/build/{id}/complete/:
    post:
      operationId: build_complete_create
      description: API endpoint for completing build outputs.
      parameters:
      - in: path
        name: id
        schema:
          type: integer
        required: true
      tags:
      - build
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/BuildOutputComplete'
          application/x-www-form-urlencoded:
            schema:
              $ref: '#/components/schemas/BuildOutputComplete'
          multipart/form-data:
            schema:
              $ref: '#/components/schemas/BuildOutputComplete'
        required: true
      security:
      - tokenAuth: []
      - basicAuth: []
      - cookieAuth: []
      - oauth2:
        - g:read
      responses:
        '201':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/BuildOutputComplete'
          description: ''
  /api/build/{id}/consume/:
    post:
      operationId: build_consume_create
      description: API endpoint to consume stock against a build order.
      parameters:
      - in: path
        name: id
        schema:
          type: integer
        required: true
      tags:
      - build
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/BuildConsume'
          application/x-www-form-urlencoded:
            schema:
              $ref: '#/components/schemas/BuildConsume'
          multipart/form-data:
            schema:
              $ref: '#/components/schemas/BuildConsume'
      security:
      - tokenAuth: []
      - basicAuth: []
      - cookieAuth: []
      - oauth2:
        - g:read
      responses:
        '201':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/BuildConsume'
          description: ''
  /api/build/{id}/create-output/:
    post:
      operationId: build_create_output_create
      description: API endpoint for creating new build output(s).
      parameters:
      - in: path
        name: id
        schema:
          type: integer
        required: true
      tags:
      - build
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/BuildOutputCreate'
          application/x-www-form-urlencoded:
            schema:
              $ref: '#/components/schemas/BuildOutputCreate'
          multipart/form-data:
            schema:
              $ref: '#/components/schemas/BuildOutputCreate'
        required: true
      security:
      - tokenAuth: []
      - basicAuth: []
      - cookieAuth: []
      - oauth2:
        - g:read
      responses:
        '201':
          content:
            application/json:
              schema:
                type: array
                items:
                  $ref: '#/components/schemas/StockItem'
          description: ''
  /api/build/{id}/delete-outputs/:
    post:
      operationId: build_delete_outputs_create
      description: API endpoint for deleting multiple build outputs.
      parameters:
      - in: path
        name: id
        schema:
          type: integer
        required: true
      tags:
      - build
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/BuildOutputDelete'
          application/x-www-form-urlencoded:
            schema:
              $ref: '#/components/schemas/BuildOutputDelete'
          multipart/form-data:
            schema:
              $ref: '#/components/schemas/BuildOutputDelete'
        required: true
      security:
      - tokenAuth: []
      - basicAuth: []
      - cookieAuth: []
      - oauth2:
        - g:read
      responses:
        '201':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/BuildOutputDelete'
          description: ''
  /api/build/{id}/finish/:
    post:
      operationId: build_finish_create
      description: API endpoint for marking a build as finished (completed).
      parameters:
      - in: path
        name: id
        schema:
          type: integer
        required: true
      tags:
      - build
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/BuildComplete'
          application/x-www-form-urlencoded:
            schema:
              $ref: '#/components/schemas/BuildComplete'
          multipart/form-data:
            schema:
              $ref: '#/components/schemas/BuildComplete'
      security:
      - tokenAuth: []
      - basicAuth: []
      - cookieAuth: []
      - oauth2:
        - g:read
      responses:
        '201':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/BuildComplete'
          description: ''
  /api/build/{id}/hold/:
    post:
      operationId: build_hold_create
      description: API endpoint for placing a BuildOrder on hold.
      parameters:
      - in: path
        name: id
        schema:
          type: integer
        required: true
      tags:
      - build
      security:
      - tokenAuth: []
      - basicAuth: []
      - cookieAuth: []
      - oauth2:
        - g:read
      responses:
        '201':
          description: No response body
  /api/build/{id}/issue/:
    post:
      operationId: build_issue_create
      description: API endpoint for issuing a BuildOrder.
      parameters:
      - in: path
        name: id
        schema:
          type: integer
        required: true
      tags:
      - build
      security:
      - tokenAuth: []
      - basicAuth: []
      - cookieAuth: []
      - oauth2:
        - g:read
      responses:
        '201':
          description: No response body
  /api/build/{id}/metadata/:
    get:
      operationId: build_metadata_retrieve
      description: Generic API endpoint for reading and editing metadata for a model.
      parameters:
      - in: path
        name: id
        schema:
          type: integer
        required: true
      tags:
      - build
      security:
      - tokenAuth: []
      - basicAuth: []
      - cookieAuth: []
      - oauth2:
        - r:view:build
      responses:
        '200':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Metadata'
          description: ''
    put:
      operationId: build_metadata_update
      description: Generic API endpoint for reading and editing metadata for a model.
      parameters:
      - in: path
        name: id
        schema:
          type: integer
        required: true
      tags:
      - build
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/Metadata'
          application/x-www-form-urlencoded:
            schema:
              $ref: '#/components/schemas/Metadata'
          multipart/form-data:
            schema:
              $ref: '#/components/schemas/Metadata'
        required: true
      security:
      - tokenAuth: []
      - basicAuth: []
      - cookieAuth: []
      - oauth2:
        - r:change:build
      responses:
        '200':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Metadata'
          description: ''
    patch:
      operationId: build_metadata_partial_update
      description: Generic API endpoint for reading and editing metadata for a model.
      parameters:
      - in: path
        name: id
        schema:
          type: integer
        required: true
      tags:
      - build
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/PatchedMetadata'
          application/x-www-form-urlencoded:
            schema:
              $ref: '#/components/schemas/PatchedMetadata'
          multipart/form-data:
            schema:
              $ref: '#/components/schemas/PatchedMetadata'
      security:
      - tokenAuth: []
      - basicAuth: []
      - cookieAuth: []
      - oauth2:
        - r:change:build
      responses:
        '200':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Metadata'
          description: ''
  /api/build/{id}/scrap-outputs/:
    post:
      operationId: build_scrap_outputs_create
      description: API endpoint for scrapping build output(s).
      parameters:
      - in: path
        name: id
        schema:
          type: integer
        required: true
      tags:
      - build
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/BuildOutputScrap'
          application/x-www-form-urlencoded:
            schema:
              $ref: '#/components/schemas/BuildOutputScrap'
          multipart/form-data:
            schema:
              $ref: '#/components/schemas/BuildOutputScrap'
        required: true
      security:
      - tokenAuth: []
      - basicAuth: []
      - cookieAuth: []
      - oauth2:
        - g:read
      responses:
        '201':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/BuildOutputScrap'
          description: ''
  /api/build/{id}/unallocate/:
    post:
      operationId: build_unallocate_create
      description: |-
        API endpoint for unallocating stock items from a build order.

        - The BuildOrder object is specified by the URL
        - "output" (StockItem) can optionally be specified
        - "bom_item" can optionally be specified
      parameters:
      - in: path
        name: id
        schema:
          type: integer
        required: true
      tags:
      - build
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/BuildUnallocation'
          application/x-www-form-urlencoded:
            schema:
              $ref: '#/components/schemas/BuildUnallocation'
          multipart/form-data:
            schema:
              $ref: '#/components/schemas/BuildUnallocation'
      security:
      - tokenAuth: []
      - basicAuth: []
      - cookieAuth: []
      - oauth2:
        - g:read
      responses:
        '201':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/BuildUnallocation'
          description: ''
  /api/build/item/:
    get:
      operationId: build_item_list
      description: Override the GET method to determine export options.
      parameters:
      - in: query
        name: build
        schema:
          type: integer
        description: Build Order
      - in: query
        name: build_detail
        schema:
          type: boolean
          default: false
      - in: query
        name: build_line
        schema:
          type: integer
      - in: query
        name: include_variants
        schema:
          type: boolean
        description: Include Variants
      - in: query
        name: install_into
        schema:
          type: integer
      - name: limit
        required: true
        in: query
        description: Number of results to return per page.
        schema:
          type: integer
      - in: query
        name: location
        schema:
          type: integer
        description: Location
      - in: query
        name: location_detail
        schema:
          type: boolean
          default: false
        description: Include detailed information about the stock location in the
          response
      - name: offset
        required: false
        in: query
        description: The initial index from which to return the results.
        schema:
          type: integer
      - name: ordering
        required: false
        in: query
        description: 'Which field to use when ordering the results. Possible fields:
          part, sku, quantity, location, reference, IPN.'
        schema:
          type: string
      - in: query
        name: output
        schema:
          type: integer
        description: Filter by output stock item ID. Use 'null' to find uninstalled
          build items.
      - in: query
        name: part
        schema:
          type: integer
        description: Part
      - in: query
        name: part_detail
        schema:
          type: boolean
          default: false
        description: Include detailed information about the related part in the response
      - name: search
        required: false
        in: query
        description: 'A search term. Searched fields: build_line__bom_item__reference,
          stock_item__part__IPN, stock_item__part__name, stock_item__supplier_part__SKU.'
        schema:
          type: string
      - in: query
        name: stock_detail
        schema:
          type: boolean
          default: false
      - in: query
        name: stock_item
        schema:
          type: integer
      - in: query
        name: tracked
        schema:
          type: boolean
        description: Tracked
      tags:
      - build
      security:
      - tokenAuth: []
      - basicAuth: []
      - cookieAuth: []
      - oauth2:
        - r:view:build
      responses:
        '200':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/PaginatedBuildItemList'
          description: ''
    post:
      operationId: build_item_create
      description: |-
        API endpoint for accessing a list of BuildItem objects.

        - GET: Return list of objects
        - POST: Create a new BuildItem object
      tags:
      - build
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/BuildItem'
          application/x-www-form-urlencoded:
            schema:
              $ref: '#/components/schemas/BuildItem'
          multipart/form-data:
            schema:
              $ref: '#/components/schemas/BuildItem'
        required: true
      security:
      - tokenAuth: []
      - basicAuth: []
      - cookieAuth: []
      - oauth2:
        - r:add:build
      responses:
        '201':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/BuildItem'
          description: ''
    delete:
      operationId: build_item_bulk_destroy
      description: |-
        Perform a DELETE operation against this list endpoint.

        Note that the typical DRF list endpoint does not support DELETE,
        so this method is provided as a custom implementation.
      tags:
      - build
      security:
      - tokenAuth: []
      - basicAuth: []
      - cookieAuth: []
      - oauth2:
        - r:delete:build
      responses:
        '204':
          description: No response body
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/BulkRequest'
          application/x-www-form-urlencoded:
            schema:
              $ref: '#/components/schemas/BulkRequest'
          multipart/form-data:
            schema:
              $ref: '#/components/schemas/BulkRequest'
        required: true
  /api/build/item/{id}/:
    get:
      operationId: build_item_retrieve
      description: API endpoint for detail view of a BuildItem object.
      parameters:
      - in: path
        name: id
        schema:
          type: integer
        required: true
      tags:
      - build
      security:
      - tokenAuth: []
      - basicAuth: []
      - cookieAuth: []
      - oauth2:
        - r:view:build
      responses:
        '200':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/BuildItem'
          description: ''
    put:
      operationId: build_item_update
      description: API endpoint for detail view of a BuildItem object.
      parameters:
      - in: path
        name: id
        schema:
          type: integer
        required: true
      tags:
      - build
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/BuildItem'
          application/x-www-form-urlencoded:
            schema:
              $ref: '#/components/schemas/BuildItem'
          multipart/form-data:
            schema:
              $ref: '#/components/schemas/BuildItem'
        required: true
      security:
      - tokenAuth: []
      - basicAuth: []
      - cookieAuth: []
      - oauth2:
        - r:change:build
      responses:
        '200':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/BuildItem'
          description: ''
    patch:
      operationId: build_item_partial_update
      description: API endpoint for detail view of a BuildItem object.
      parameters:
      - in: path
        name: id
        schema:
          type: integer
        required: true
      tags:
      - build
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/PatchedBuildItem'
          application/x-www-form-urlencoded:
            schema:
              $ref: '#/components/schemas/PatchedBuildItem'
          multipart/form-data:
            schema:
              $ref: '#/components/schemas/PatchedBuildItem'
      security:
      - tokenAuth: []
      - basicAuth: []
      - cookieAuth: []
      - oauth2:
        - r:change:build
      responses:
        '200':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/BuildItem'
          description: ''
    delete:
      operationId: build_item_destroy
      description: API endpoint for detail view of a BuildItem object.
      parameters:
      - in: path
        name: id
        schema:
          type: integer
        required: true
      tags:
      - build
      security:
      - tokenAuth: []
      - basicAuth: []
      - cookieAuth: []
      - oauth2:
        - r:delete:build
      responses:
        '204':
          description: No response body
  /api/build/item/{id}/metadata/:
    get:
      operationId: build_item_metadata_retrieve
      description: Generic API endpoint for reading and editing metadata for a model.
      parameters:
      - in: path
        name: id
        schema:
          type: integer
        required: true
      tags:
      - build
      security:
      - tokenAuth: []
      - basicAuth: []
      - cookieAuth: []
      - oauth2:
        - r:view:build
      responses:
        '200':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Metadata'
          description: ''
    put:
      operationId: build_item_metadata_update
      description: Generic API endpoint for reading and editing metadata for a model.
      parameters:
      - in: path
        name: id
        schema:
          type: integer
        required: true
      tags:
      - build
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/Metadata'
          application/x-www-form-urlencoded:
            schema:
              $ref: '#/components/schemas/Metadata'
          multipart/form-data:
            schema:
              $ref: '#/components/schemas/Metadata'
        required: true
      security:
      - tokenAuth: []
      - basicAuth: []
      - cookieAuth: []
      - oauth2:
        - r:change:build
      responses:
        '200':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Metadata'
          description: ''
    patch:
      operationId: build_item_metadata_partial_update
      description: Generic API endpoint for reading and editing metadata for a model.
      parameters:
      - in: path
        name: id
        schema:
          type: integer
        required: true
      tags:
      - build
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/PatchedMetadata'
          application/x-www-form-urlencoded:
            schema:
              $ref: '#/components/schemas/PatchedMetadata'
          multipart/form-data:
            schema:
              $ref: '#/components/schemas/PatchedMetadata'
      security:
      - tokenAuth: []
      - basicAuth: []
      - cookieAuth: []
      - oauth2:
        - r:change:build
      responses:
        '200':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Metadata'
          description: ''
  /api/build/line/:
    get:
      operationId: build_line_list
      description: Override the GET method to determine export options.
      parameters:
      - in: query
        name: allocated
        schema:
          type: boolean
        description: Allocated
      - in: query
        name: allocations
        schema:
          type: boolean
          default: true
        description: Include allocation details showing which stock items are allocated
          to this build line.
      - in: query
        name: assembly
        schema:
          type: boolean
        description: Assembly
      - in: query
        name: assembly_detail
        schema:
          type: boolean
          default: true
        description: Include brief details of the assembly (parent part) related to
          the BOM item in this build line.
      - in: query
        name: available
        schema:
          type: boolean
        description: Available
      - in: query
        name: bom_item
        schema:
          type: integer
      - in: query
        name: bom_item_detail
        schema:
          type: boolean
          default: true
        description: Include detailed information about the BOM item linked to this
          build line.
      - in: query
        name: build
        schema:
          type: integer
      - in: query
        name: build_detail
        schema:
          type: boolean
          default: false
        description: Include detailed information about the associated build order.
      - in: query
        name: consumable
        schema:
          type: boolean
        description: Consumable
      - in: query
        name: consumed
        schema:
          type: boolean
        description: Consumed
      - name: limit
        required: true
        in: query
        description: Number of results to return per page.
        schema:
          type: integer
      - name: offset
        required: false
        in: query
        description: The initial index from which to return the results.
        schema:
          type: integer
      - in: query
        name: optional
        schema:
          type: boolean
        description: Optional
      - in: query
        name: order_outstanding
        schema:
          type: boolean
        description: Order Outstanding
      - name: ordering
        required: false
        in: query
        description: 'Which field to use when ordering the results. Possible fields:
          part, allocated, consumed, reference, quantity, consumable, optional, unit_quantity,
          available_stock, trackable, allow_variants, inherited.'
        schema:
          type: string
      - in: query
        name: part
        schema:
          type: integer
        description: Part
      - in: query
        name: part_detail
        schema:
          type: boolean
          default: true
        description: Include detailed information about the specific part being built
          or consumed in this build line.
      - name: search
        required: false
        in: query
        description: 'A search term. Searched fields: bom_item__reference, bom_item__sub_part__IPN,
          bom_item__sub_part__description, bom_item__sub_part__name.'
        schema:
          type: string
      - in: query
        name: testable
        schema:
          type: boolean
        description: Testable
      - in: query
        name: tracked
        schema:
          type: boolean
        description: Tracked
      tags:
      - build
      security:
      - tokenAuth: []
      - basicAuth: []
      - cookieAuth: []
      - oauth2:
        - r:view:build
      responses:
        '200':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/PaginatedBuildLineList'
          description: ''
    post:
      operationId: build_line_create
      description: API endpoint for accessing a list of BuildLine objects.
      tags:
      - build
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/BuildLine'
          application/x-www-form-urlencoded:
            schema:
              $ref: '#/components/schemas/BuildLine'
          multipart/form-data:
            schema:
              $ref: '#/components/schemas/BuildLine'
        required: true
      security:
      - tokenAuth: []
      - basicAuth: []
      - cookieAuth: []
      - oauth2:
        - r:add:build
      responses:
        '201':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/BuildLine'
          description: ''
  /api/build/line/{id}/:
    get:
      operationId: build_line_retrieve
      description: API endpoint for detail view of a BuildLine object.
      parameters:
      - in: query
        name: allocations
        schema:
          type: boolean
          default: true
        description: Include allocation details showing which stock items are allocated
          to this build line.
      - in: query
        name: assembly_detail
        schema:
          type: boolean
          default: true
        description: Include brief details of the assembly (parent part) related to
          the BOM item in this build line.
      - in: query
        name: bom_item_detail
        schema:
          type: boolean
          default: true
        description: Include detailed information about the BOM item linked to this
          build line.
      - in: query
        name: build_detail
        schema:
          type: boolean
          default: false
        description: Include detailed information about the associated build order.
      - in: path
        name: id
        schema:
          type: integer
        required: true
      - in: query
        name: part_detail
        schema:
          type: boolean
          default: true
        description: Include detailed information about the specific part being built
          or consumed in this build line.
      tags:
      - build
      security:
      - tokenAuth: []
      - basicAuth: []
      - cookieAuth: []
      - oauth2:
        - r:view:build
      responses:
        '200':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/BuildLine'
          description: ''
    put:
      operationId: build_line_update
      description: API endpoint for detail view of a BuildLine object.
      parameters:
      - in: path
        name: id
        schema:
          type: integer
        required: true
      tags:
      - build
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/BuildLine'
          application/x-www-form-urlencoded:
            schema:
              $ref: '#/components/schemas/BuildLine'
          multipart/form-data:
            schema:
              $ref: '#/components/schemas/BuildLine'
        required: true
      security:
      - tokenAuth: []
      - basicAuth: []
      - cookieAuth: []
      - oauth2:
        - r:change:build
      responses:
        '200':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/BuildLine'
          description: ''
    patch:
      operationId: build_line_partial_update
      description: API endpoint for detail view of a BuildLine object.
      parameters:
      - in: path
        name: id
        schema:
          type: integer
        required: true
      tags:
      - build
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/PatchedBuildLine'
          application/x-www-form-urlencoded:
            schema:
              $ref: '#/components/schemas/PatchedBuildLine'
          multipart/form-data:
            schema:
              $ref: '#/components/schemas/PatchedBuildLine'
      security:
      - tokenAuth: []
      - basicAuth: []
      - cookieAuth: []
      - oauth2:
        - r:change:build
      responses:
        '200':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/BuildLine'
          description: ''
    delete:
      operationId: build_line_destroy
      description: API endpoint for detail view of a BuildLine object.
      parameters:
      - in: path
        name: id
        schema:
          type: integer
        required: true
      tags:
      - build
      security:
      - tokenAuth: []
      - basicAuth: []
      - cookieAuth: []
      - oauth2:
        - r:delete:build
      responses:
        '204':
          description: No response body
  /api/build/status/:
    get:
      operationId: build_status_retrieve
      description: Retrieve information about a specific status code
      tags:
      - build
      security:
      - tokenAuth: []
      - basicAuth: []
      - cookieAuth: []
      - oauth2:
        - g:read
      responses:
        '200':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/GenericStateClass'
          description: ''
        '400':
          description: Invalid request
  /api/company/:
    get:
      operationId: company_list
      description: Override the GET method to determine export options.
      parameters:
      - in: query
        name: active
        schema:
          type: boolean
      - in: query
        name: is_customer
        schema:
          type: boolean
      - in: query
        name: is_manufacturer
        schema:
          type: boolean
      - in: query
        name: is_supplier
        schema:
          type: boolean
      - name: limit
        required: true
        in: query
        description: Number of results to return per page.
        schema:
          type: integer
      - in: query
        name: name
        schema:
          type: string
      - name: offset
        required: false
        in: query
        description: The initial index from which to return the results.
        schema:
          type: integer
      - name: ordering
        required: false
        in: query
        description: 'Which field to use when ordering the results. Possible fields:
          active, name, parts_supplied, parts_manufactured.'
        schema:
          type: string
      - name: search
        required: false
        in: query
        description: 'A search term. Searched fields: description, name, tax_id, website.'
        schema:
          type: string
      tags:
      - company
      security:
      - tokenAuth: []
      - basicAuth: []
      - cookieAuth: []
      - oauth2:
        - r:view:purchase_order
        - r:view:sales_order
        - r:view:return_order
      responses:
        '200':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/PaginatedCompanyList'
          description: ''
    post:
      operationId: company_create
      description: |-
        API endpoint for accessing a list of Company objects.

        Provides two methods:

        - GET: Return list of objects
        - POST: Create a new Company object
      tags:
      - company
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/Company'
          application/x-www-form-urlencoded:
            schema:
              $ref: '#/components/schemas/Company'
          multipart/form-data:
            schema:
              $ref: '#/components/schemas/Company'
        required: true
      security:
      - tokenAuth: []
      - basicAuth: []
      - cookieAuth: []
      - oauth2:
        - r:add:purchase_order
        - r:add:sales_order
        - r:add:return_order
      responses:
        '201':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Company'
          description: ''
  /api/company/{id}/:
    get:
      operationId: company_retrieve
      description: API endpoint for detail of a single Company object.
      parameters:
      - in: path
        name: id
        schema:
          type: integer
        required: true
      tags:
      - company
      security:
      - tokenAuth: []
      - basicAuth: []
      - cookieAuth: []
      - oauth2:
        - r:view:purchase_order
        - r:view:sales_order
        - r:view:return_order
      responses:
        '200':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Company'
          description: ''
    put:
      operationId: company_update
      description: API endpoint for detail of a single Company object.
      parameters:
      - in: path
        name: id
        schema:
          type: integer
        required: true
      tags:
      - company
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/Company'
          application/x-www-form-urlencoded:
            schema:
              $ref: '#/components/schemas/Company'
          multipart/form-data:
            schema:
              $ref: '#/components/schemas/Company'
        required: true
      security:
      - tokenAuth: []
      - basicAuth: []
      - cookieAuth: []
      - oauth2:
        - r:change:purchase_order
        - r:change:sales_order
        - r:change:return_order
      responses:
        '200':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Company'
          description: ''
    patch:
      operationId: company_partial_update
      description: API endpoint for detail of a single Company object.
      parameters:
      - in: path
        name: id
        schema:
          type: integer
        required: true
      tags:
      - company
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/PatchedCompany'
          application/x-www-form-urlencoded:
            schema:
              $ref: '#/components/schemas/PatchedCompany'
          multipart/form-data:
            schema:
              $ref: '#/components/schemas/PatchedCompany'
      security:
      - tokenAuth: []
      - basicAuth: []
      - cookieAuth: []
      - oauth2:
        - r:change:purchase_order
        - r:change:sales_order
        - r:change:return_order
      responses:
        '200':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Company'
          description: ''
    delete:
      operationId: company_destroy
      description: API endpoint for detail of a single Company object.
      parameters:
      - in: path
        name: id
        schema:
          type: integer
        required: true
      tags:
      - company
      security:
      - tokenAuth: []
      - basicAuth: []
      - cookieAuth: []
      - oauth2:
        - r:delete:purchase_order
        - r:delete:sales_order
        - r:delete:return_order
      responses:
        '204':
          description: No response body
  /api/company/{id}/metadata/:
    get:
      operationId: company_metadata_retrieve
      description: Generic API endpoint for reading and editing metadata for a model.
      parameters:
      - in: path
        name: id
        schema:
          type: integer
        required: true
      tags:
      - company
      security:
      - tokenAuth: []
      - basicAuth: []
      - cookieAuth: []
      - oauth2:
        - r:view:purchase_order
        - r:view:sales_order
        - r:view:return_order
      responses:
        '200':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Metadata'
          description: ''
    put:
      operationId: company_metadata_update
      description: Generic API endpoint for reading and editing metadata for a model.
      parameters:
      - in: path
        name: id
        schema:
          type: integer
        required: true
      tags:
      - company
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/Metadata'
          application/x-www-form-urlencoded:
            schema:
              $ref: '#/components/schemas/Metadata'
          multipart/form-data:
            schema:
              $ref: '#/components/schemas/Metadata'
        required: true
      security:
      - tokenAuth: []
      - basicAuth: []
      - cookieAuth: []
      - oauth2:
        - r:change:purchase_order
        - r:change:sales_order
        - r:change:return_order
      responses:
        '200':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Metadata'
          description: ''
    patch:
      operationId: company_metadata_partial_update
      description: Generic API endpoint for reading and editing metadata for a model.
      parameters:
      - in: path
        name: id
        schema:
          type: integer
        required: true
      tags:
      - company
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/PatchedMetadata'
          application/x-www-form-urlencoded:
            schema:
              $ref: '#/components/schemas/PatchedMetadata'
          multipart/form-data:
            schema:
              $ref: '#/components/schemas/PatchedMetadata'
      security:
      - tokenAuth: []
      - basicAuth: []
      - cookieAuth: []
      - oauth2:
        - r:change:purchase_order
        - r:change:sales_order
        - r:change:return_order
      responses:
        '200':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Metadata'
          description: ''
  /api/company/address/:
    get:
      operationId: company_address_list
      description: Override the GET method to determine export options.
      parameters:
      - in: query
        name: company
        schema:
          type: integer
      - name: limit
        required: true
        in: query
        description: Number of results to return per page.
        schema:
          type: integer
      - name: offset
        required: false
        in: query
        description: The initial index from which to return the results.
        schema:
          type: integer
      - name: ordering
        required: false
        in: query
        description: 'Which field to use when ordering the results. Possible fields:
          title.'
        schema:
          type: string
      - name: search
        required: false
        in: query
        description: A search term.
        schema:
          type: string
      tags:
      - company
      security:
      - tokenAuth: []
      - basicAuth: []
      - cookieAuth: []
      - oauth2:
        - r:view:purchase_order
        - r:view:sales_order
        - r:view:return_order
      responses:
        '200':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/PaginatedAddressList'
          description: ''
    post:
      operationId: company_address_create
      description: API endpoint for list view of Address model.
      tags:
      - company
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/Address'
          application/x-www-form-urlencoded:
            schema:
              $ref: '#/components/schemas/Address'
          multipart/form-data:
            schema:
              $ref: '#/components/schemas/Address'
        required: true
      security:
      - tokenAuth: []
      - basicAuth: []
      - cookieAuth: []
      - oauth2:
        - r:add:purchase_order
        - r:add:sales_order
        - r:add:return_order
      responses:
        '201':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Address'
          description: ''
    delete:
      operationId: company_address_bulk_destroy
      description: |-
        Perform a DELETE operation against this list endpoint.

        Note that the typical DRF list endpoint does not support DELETE,
        so this method is provided as a custom implementation.
      tags:
      - company
      security:
      - tokenAuth: []
      - basicAuth: []
      - cookieAuth: []
      - oauth2:
        - r:delete:purchase_order
        - r:delete:sales_order
        - r:delete:return_order
      responses:
        '204':
          description: No response body
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/BulkRequest'
          application/x-www-form-urlencoded:
            schema:
              $ref: '#/components/schemas/BulkRequest'
          multipart/form-data:
            schema:
              $ref: '#/components/schemas/BulkRequest'
        required: true
  /api/company/address/{id}/:
    get:
      operationId: company_address_retrieve
      description: API endpoint for a single Address object.
      parameters:
      - in: path
        name: id
        schema:
          type: integer
        required: true
      tags:
      - company
      security:
      - tokenAuth: []
      - basicAuth: []
      - cookieAuth: []
      - oauth2:
        - r:view:purchase_order
        - r:view:sales_order
        - r:view:return_order
      responses:
        '200':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Address'
          description: ''
    put:
      operationId: company_address_update
      description: API endpoint for a single Address object.
      parameters:
      - in: path
        name: id
        schema:
          type: integer
        required: true
      tags:
      - company
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/Address'
          application/x-www-form-urlencoded:
            schema:
              $ref: '#/components/schemas/Address'
          multipart/form-data:
            schema:
              $ref: '#/components/schemas/Address'
        required: true
      security:
      - tokenAuth: []
      - basicAuth: []
      - cookieAuth: []
      - oauth2:
        - r:change:purchase_order
        - r:change:sales_order
        - r:change:return_order
      responses:
        '200':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Address'
          description: ''
    patch:
      operationId: company_address_partial_update
      description: API endpoint for a single Address object.
      parameters:
      - in: path
        name: id
        schema:
          type: integer
        required: true
      tags:
      - company
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/PatchedAddress'
          application/x-www-form-urlencoded:
            schema:
              $ref: '#/components/schemas/PatchedAddress'
          multipart/form-data:
            schema:
              $ref: '#/components/schemas/PatchedAddress'
      security:
      - tokenAuth: []
      - basicAuth: []
      - cookieAuth: []
      - oauth2:
        - r:change:purchase_order
        - r:change:sales_order
        - r:change:return_order
      responses:
        '200':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Address'
          description: ''
    delete:
      operationId: company_address_destroy
      description: API endpoint for a single Address object.
      parameters:
      - in: path
        name: id
        schema:
          type: integer
        required: true
      tags:
      - company
      security:
      - tokenAuth: []
      - basicAuth: []
      - cookieAuth: []
      - oauth2:
        - r:delete:purchase_order
        - r:delete:sales_order
        - r:delete:return_order
      responses:
        '204':
          description: No response body
  /api/company/contact/:
    get:
      operationId: company_contact_list
      description: Override the GET method to determine export options.
      parameters:
      - in: query
        name: company
        schema:
          type: integer
      - name: limit
        required: true
        in: query
        description: Number of results to return per page.
        schema:
          type: integer
      - name: offset
        required: false
        in: query
        description: The initial index from which to return the results.
        schema:
          type: integer
      - name: ordering
        required: false
        in: query
        description: 'Which field to use when ordering the results. Possible fields:
          name.'
        schema:
          type: string
      - name: search
        required: false
        in: query
        description: 'A search term. Searched fields: company__name, name.'
        schema:
          type: string
      tags:
      - company
      security:
      - tokenAuth: []
      - basicAuth: []
      - cookieAuth: []
      - oauth2:
        - r:view:purchase_order
        - r:view:sales_order
        - r:view:return_order
      responses:
        '200':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/PaginatedContactList'
          description: ''
    post:
      operationId: company_contact_create
      description: API endpoint for list view of Company model.
      tags:
      - company
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/Contact'
          application/x-www-form-urlencoded:
            schema:
              $ref: '#/components/schemas/Contact'
          multipart/form-data:
            schema:
              $ref: '#/components/schemas/Contact'
        required: true
      security:
      - tokenAuth: []
      - basicAuth: []
      - cookieAuth: []
      - oauth2:
        - r:add:purchase_order
        - r:add:sales_order
        - r:add:return_order
      responses:
        '201':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Contact'
          description: ''
    delete:
      operationId: company_contact_bulk_destroy
      description: |-
        Perform a DELETE operation against this list endpoint.

        Note that the typical DRF list endpoint does not support DELETE,
        so this method is provided as a custom implementation.
      tags:
      - company
      security:
      - tokenAuth: []
      - basicAuth: []
      - cookieAuth: []
      - oauth2:
        - r:delete:purchase_order
        - r:delete:sales_order
        - r:delete:return_order
      responses:
        '204':
          description: No response body
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/BulkRequest'
          application/x-www-form-urlencoded:
            schema:
              $ref: '#/components/schemas/BulkRequest'
          multipart/form-data:
            schema:
              $ref: '#/components/schemas/BulkRequest'
        required: true
  /api/company/contact/{id}/:
    get:
      operationId: company_contact_retrieve
      description: Detail endpoint for Company model.
      parameters:
      - in: path
        name: id
        schema:
          type: integer
        required: true
      tags:
      - company
      security:
      - tokenAuth: []
      - basicAuth: []
      - cookieAuth: []
      - oauth2:
        - r:view:purchase_order
        - r:view:sales_order
        - r:view:return_order
      responses:
        '200':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Contact'
          description: ''
    put:
      operationId: company_contact_update
      description: Detail endpoint for Company model.
      parameters:
      - in: path
        name: id
        schema:
          type: integer
        required: true
      tags:
      - company
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/Contact'
          application/x-www-form-urlencoded:
            schema:
              $ref: '#/components/schemas/Contact'
          multipart/form-data:
            schema:
              $ref: '#/components/schemas/Contact'
        required: true
      security:
      - tokenAuth: []
      - basicAuth: []
      - cookieAuth: []
      - oauth2:
        - r:change:purchase_order
        - r:change:sales_order
        - r:change:return_order
      responses:
        '200':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Contact'
          description: ''
    patch:
      operationId: company_contact_partial_update
      description: Detail endpoint for Company model.
      parameters:
      - in: path
        name: id
        schema:
          type: integer
        required: true
      tags:
      - company
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/PatchedContact'
          application/x-www-form-urlencoded:
            schema:
              $ref: '#/components/schemas/PatchedContact'
          multipart/form-data:
            schema:
              $ref: '#/components/schemas/PatchedContact'
      security:
      - tokenAuth: []
      - basicAuth: []
      - cookieAuth: []
      - oauth2:
        - r:change:purchase_order
        - r:change:sales_order
        - r:change:return_order
      responses:
        '200':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Contact'
          description: ''
    delete:
      operationId: company_contact_destroy
      description: Detail endpoint for Company model.
      parameters:
      - in: path
        name: id
        schema:
          type: integer
        required: true
      tags:
      - company
      security:
      - tokenAuth: []
      - basicAuth: []
      - cookieAuth: []
      - oauth2:
        - r:delete:purchase_order
        - r:delete:sales_order
        - r:delete:return_order
      responses:
        '204':
          description: No response body
  /api/company/contact/{id}/metadata/:
    get:
      operationId: company_contact_metadata_retrieve
      description: Generic API endpoint for reading and editing metadata for a model.
      parameters:
      - in: path
        name: id
        schema:
          type: integer
        required: true
      tags:
      - company
      security:
      - tokenAuth: []
      - basicAuth: []
      - cookieAuth: []
      - oauth2:
        - r:view:purchase_order
        - r:view:sales_order
        - r:view:return_order
      responses:
        '200':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Metadata'
          description: ''
    put:
      operationId: company_contact_metadata_update
      description: Generic API endpoint for reading and editing metadata for a model.
      parameters:
      - in: path
        name: id
        schema:
          type: integer
        required: true
      tags:
      - company
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/Metadata'
          application/x-www-form-urlencoded:
            schema:
              $ref: '#/components/schemas/Metadata'
          multipart/form-data:
            schema:
              $ref: '#/components/schemas/Metadata'
        required: true
      security:
      - tokenAuth: []
      - basicAuth: []
      - cookieAuth: []
      - oauth2:
        - r:change:purchase_order
        - r:change:sales_order
        - r:change:return_order
      responses:
        '200':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Metadata'
          description: ''
    patch:
      operationId: company_contact_metadata_partial_update
      description: Generic API endpoint for reading and editing metadata for a model.
      parameters:
      - in: path
        name: id
        schema:
          type: integer
        required: true
      tags:
      - company
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/PatchedMetadata'
          application/x-www-form-urlencoded:
            schema:
              $ref: '#/components/schemas/PatchedMetadata'
          multipart/form-data:
            schema:
              $ref: '#/components/schemas/PatchedMetadata'
      security:
      - tokenAuth: []
      - basicAuth: []
      - cookieAuth: []
      - oauth2:
        - r:change:purchase_order
        - r:change:sales_order
        - r:change:return_order
      responses:
        '200':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Metadata'
          description: ''
  /api/company/part/:
    get:
      operationId: company_part_list
      description: Override the GET method to determine export options.
      parameters:
      - in: query
        name: MPN
        schema:
          type: string
        description: Manufacturer Part Number
      - in: query
        name: SKU
        schema:
          type: string
      - in: query
        name: active
        schema:
          type: boolean
        description: Supplier Part is Active
      - in: query
        name: company
        schema:
          type: integer
        description: Company
      - in: query
        name: has_stock
        schema:
          type: boolean
        description: Has Stock
      - name: limit
        required: true
        in: query
        description: Number of results to return per page.
        schema:
          type: integer
      - in: query
        name: manufacturer
        schema:
          type: integer
        description: Manufacturer
      - in: query
        name: manufacturer_detail
        schema:
          type: boolean
          default: false
        description: Include detailed information about the Manufacturer in the response
      - in: query
        name: manufacturer_part
        schema:
          type: integer
      - name: offset
        required: false
        in: query
        description: The initial index from which to return the results.
        schema:
          type: integer
      - name: ordering
        required: false
        in: query
        description: 'Which field to use when ordering the results. Possible fields:
          SKU, part, supplier, manufacturer, active, MPN, packaging, pack_quantity,
          in_stock, updated.'
        schema:
          type: string
      - in: query
        name: part
        schema:
          type: integer
      - in: query
        name: part_active
        schema:
          type: boolean
        description: Internal Part is Active
      - in: query
        name: part_detail
        schema:
          type: boolean
          default: false
        description: Include detailed information about the linked Part in the response
      - in: query
        name: pretty
        schema:
          type: boolean
          default: false
        description: Format the output with a more readable (pretty) name
      - name: search
        required: false
        in: query
        description: 'A search term. Searched fields: SKU, description, manufacturer_part__MPN,
          manufacturer_part__manufacturer__name, part__IPN, part__description, part__keywords,
          part__name, supplier__name, tags__name, tags__slug.'
        schema:
          type: string
      - in: query
        name: supplier
        schema:
          type: integer
      - in: query
        name: supplier_active
        schema:
          type: boolean
        description: Supplier is Active
      - in: query
        name: supplier_detail
        schema:
          type: boolean
          default: true
        description: Include detailed information about the Supplier in the response
      - in: query
        name: tags__name
        schema:
          type: string
      - in: query
        name: tags__slug
        schema:
          type: string
      tags:
      - company
      security:
      - tokenAuth: []
      - basicAuth: []
      - cookieAuth: []
      - oauth2:
        - r:view:part
        - r:view:purchase_order
      responses:
        '200':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/PaginatedSupplierPartList'
          description: ''
    post:
      operationId: company_part_create
      description: |-
        API endpoint for list view of SupplierPart object.

        - GET: Return list of SupplierPart objects
        - POST: Create a new SupplierPart object
      tags:
      - company
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/SupplierPart'
          application/x-www-form-urlencoded:
            schema:
              $ref: '#/components/schemas/SupplierPart'
          multipart/form-data:
            schema:
              $ref: '#/components/schemas/SupplierPart'
        required: true
      security:
      - tokenAuth: []
      - basicAuth: []
      - cookieAuth: []
      - oauth2:
        - r:add:part
        - r:add:purchase_order
      responses:
        '201':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/SupplierPart'
          description: ''
    delete:
      operationId: company_part_bulk_destroy
      description: |-
        Perform a DELETE operation against this list endpoint.

        Note that the typical DRF list endpoint does not support DELETE,
        so this method is provided as a custom implementation.
      tags:
      - company
      security:
      - tokenAuth: []
      - basicAuth: []
      - cookieAuth: []
      - oauth2:
        - r:delete:part
        - r:delete:purchase_order
      responses:
        '204':
          description: No response body
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/BulkRequest'
          application/x-www-form-urlencoded:
            schema:
              $ref: '#/components/schemas/BulkRequest'
          multipart/form-data:
            schema:
              $ref: '#/components/schemas/BulkRequest'
        required: true
  /api/company/part/{id}/:
    get:
      operationId: company_part_retrieve
      description: |-
        API endpoint for detail view of SupplierPart object.

        - GET: Retrieve detail view
        - PATCH: Update object
        - DELETE: Delete object
      parameters:
      - in: path
        name: id
        schema:
          type: integer
        required: true
      - in: query
        name: manufacturer_detail
        schema:
          type: boolean
          default: false
        description: Include detailed information about the Manufacturer in the response
      - in: query
        name: part_detail
        schema:
          type: boolean
          default: false
        description: Include detailed information about the linked Part in the response
      - in: query
        name: pretty
        schema:
          type: boolean
          default: false
        description: Format the output with a more readable (pretty) name
      - in: query
        name: supplier_detail
        schema:
          type: boolean
          default: true
        description: Include detailed information about the Supplier in the response
      tags:
      - company
      security:
      - tokenAuth: []
      - basicAuth: []
      - cookieAuth: []
      - oauth2:
        - r:view:part
        - r:view:purchase_order
      responses:
        '200':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/SupplierPart'
          description: ''
    put:
      operationId: company_part_update
      description: |-
        API endpoint for detail view of SupplierPart object.

        - GET: Retrieve detail view
        - PATCH: Update object
        - DELETE: Delete object
      parameters:
      - in: path
        name: id
        schema:
          type: integer
        required: true
      tags:
      - company
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/SupplierPart'
          application/x-www-form-urlencoded:
            schema:
              $ref: '#/components/schemas/SupplierPart'
          multipart/form-data:
            schema:
              $ref: '#/components/schemas/SupplierPart'
        required: true
      security:
      - tokenAuth: []
      - basicAuth: []
      - cookieAuth: []
      - oauth2:
        - r:change:part
        - r:change:purchase_order
      responses:
        '200':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/SupplierPart'
          description: ''
    patch:
      operationId: company_part_partial_update
      description: |-
        API endpoint for detail view of SupplierPart object.

        - GET: Retrieve detail view
        - PATCH: Update object
        - DELETE: Delete object
      parameters:
      - in: path
        name: id
        schema:
          type: integer
        required: true
      tags:
      - company
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/PatchedSupplierPart'
          application/x-www-form-urlencoded:
            schema:
              $ref: '#/components/schemas/PatchedSupplierPart'
          multipart/form-data:
            schema:
              $ref: '#/components/schemas/PatchedSupplierPart'
      security:
      - tokenAuth: []
      - basicAuth: []
      - cookieAuth: []
      - oauth2:
        - r:change:part
        - r:change:purchase_order
      responses:
        '200':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/SupplierPart'
          description: ''
    delete:
      operationId: company_part_destroy
      description: |-
        API endpoint for detail view of SupplierPart object.

        - GET: Retrieve detail view
        - PATCH: Update object
        - DELETE: Delete object
      parameters:
      - in: path
        name: id
        schema:
          type: integer
        required: true
      tags:
      - company
      security:
      - tokenAuth: []
      - basicAuth: []
      - cookieAuth: []
      - oauth2:
        - r:delete:part
        - r:delete:purchase_order
      responses:
        '204':
          description: No response body
  /api/company/part/{id}/metadata/:
    get:
      operationId: company_part_metadata_retrieve
      description: Generic API endpoint for reading and editing metadata for a model.
      parameters:
      - in: path
        name: id
        schema:
          type: integer
        required: true
      tags:
      - company
      security:
      - tokenAuth: []
      - basicAuth: []
      - cookieAuth: []
      - oauth2:
        - r:view:part
        - r:view:purchase_order
      responses:
        '200':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Metadata'
          description: ''
    put:
      operationId: company_part_metadata_update
      description: Generic API endpoint for reading and editing metadata for a model.
      parameters:
      - in: path
        name: id
        schema:
          type: integer
        required: true
      tags:
      - company
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/Metadata'
          application/x-www-form-urlencoded:
            schema:
              $ref: '#/components/schemas/Metadata'
          multipart/form-data:
            schema:
              $ref: '#/components/schemas/Metadata'
        required: true
      security:
      - tokenAuth: []
      - basicAuth: []
      - cookieAuth: []
      - oauth2:
        - r:change:part
        - r:change:purchase_order
      responses:
        '200':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Metadata'
          description: ''
    patch:
      operationId: company_part_metadata_partial_update
      description: Generic API endpoint for reading and editing metadata for a model.
      parameters:
      - in: path
        name: id
        schema:
          type: integer
        required: true
      tags:
      - company
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/PatchedMetadata'
          application/x-www-form-urlencoded:
            schema:
              $ref: '#/components/schemas/PatchedMetadata'
          multipart/form-data:
            schema:
              $ref: '#/components/schemas/PatchedMetadata'
      security:
      - tokenAuth: []
      - basicAuth: []
      - cookieAuth: []
      - oauth2:
        - r:change:part
        - r:change:purchase_order
      responses:
        '200':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Metadata'
          description: ''
  /api/company/part/manufacturer/:
    get:
      operationId: company_part_manufacturer_list
      description: Override the GET method to determine export options.
      parameters:
      - in: query
        name: MPN
        schema:
          type: string
      - name: limit
        required: true
        in: query
        description: Number of results to return per page.
        schema:
          type: integer
      - in: query
        name: manufacturer
        schema:
          type: integer
      - in: query
        name: manufacturer_active
        schema:
          type: boolean
        description: Manufacturer is Active
      - in: query
        name: manufacturer_detail
        schema:
          type: boolean
          default: false
        description: Include detailed information about the Manufacturer in the response
      - name: offset
        required: false
        in: query
        description: The initial index from which to return the results.
        schema:
          type: integer
      - name: ordering
        required: false
        in: query
        description: Which field to use when ordering the results.
        schema:
          type: string
      - in: query
        name: part
        schema:
          type: integer
      - in: query
        name: part_active
        schema:
          type: boolean
        description: Part is Active
      - in: query
        name: part_detail
        schema:
          type: boolean
          default: false
        description: Include detailed information about the linked Part in the response
      - in: query
        name: pretty
        schema:
          type: boolean
          default: false
        description: Format the output with a more readable (pretty) name
      - name: search
        required: false
        in: query
        description: 'A search term. Searched fields: MPN, description, manufacturer__name,
          part__IPN, part__description, part__name, tags__name, tags__slug.'
        schema:
          type: string
      - in: query
        name: tags__name
        schema:
          type: string
      - in: query
        name: tags__slug
        schema:
          type: string
      tags:
      - company
      security:
      - tokenAuth: []
      - basicAuth: []
      - cookieAuth: []
      - oauth2:
        - r:view:part
        - r:view:purchase_order
      responses:
        '200':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/PaginatedManufacturerPartList'
          description: ''
    post:
      operationId: company_part_manufacturer_create
      description: |-
        API endpoint for list view of ManufacturerPart object.

        - GET: Return list of ManufacturerPart objects
        - POST: Create a new ManufacturerPart object
      tags:
      - company
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/ManufacturerPart'
          application/x-www-form-urlencoded:
            schema:
              $ref: '#/components/schemas/ManufacturerPart'
          multipart/form-data:
            schema:
              $ref: '#/components/schemas/ManufacturerPart'
        required: true
      security:
      - tokenAuth: []
      - basicAuth: []
      - cookieAuth: []
      - oauth2:
        - r:add:part
        - r:add:purchase_order
      responses:
        '201':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ManufacturerPart'
          description: ''
    delete:
      operationId: company_part_manufacturer_bulk_destroy
      description: |-
        Perform a DELETE operation against this list endpoint.

        Note that the typical DRF list endpoint does not support DELETE,
        so this method is provided as a custom implementation.
      tags:
      - company
      security:
      - tokenAuth: []
      - basicAuth: []
      - cookieAuth: []
      - oauth2:
        - r:delete:part
        - r:delete:purchase_order
      responses:
        '204':
          description: No response body
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/BulkRequest'
          application/x-www-form-urlencoded:
            schema:
              $ref: '#/components/schemas/BulkRequest'
          multipart/form-data:
            schema:
              $ref: '#/components/schemas/BulkRequest'
        required: true
  /api/company/part/manufacturer/{id}/:
    get:
      operationId: company_part_manufacturer_retrieve
      description: |-
        API endpoint for detail view of ManufacturerPart object.

        - GET: Retrieve detail view
        - PATCH: Update object
        - DELETE: Delete object
      parameters:
      - in: path
        name: id
        schema:
          type: integer
        required: true
      tags:
      - company
      security:
      - tokenAuth: []
      - basicAuth: []
      - cookieAuth: []
      - oauth2:
        - r:view:part
        - r:view:purchase_order
      responses:
        '200':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ManufacturerPart'
          description: ''
    put:
      operationId: company_part_manufacturer_update
      description: |-
        API endpoint for detail view of ManufacturerPart object.

        - GET: Retrieve detail view
        - PATCH: Update object
        - DELETE: Delete object
      parameters:
      - in: path
        name: id
        schema:
          type: integer
        required: true
      tags:
      - company
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/ManufacturerPart'
          application/x-www-form-urlencoded:
            schema:
              $ref: '#/components/schemas/ManufacturerPart'
          multipart/form-data:
            schema:
              $ref: '#/components/schemas/ManufacturerPart'
        required: true
      security:
      - tokenAuth: []
      - basicAuth: []
      - cookieAuth: []
      - oauth2:
        - r:change:part
        - r:change:purchase_order
      responses:
        '200':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ManufacturerPart'
          description: ''
    patch:
      operationId: company_part_manufacturer_partial_update
      description: |-
        API endpoint for detail view of ManufacturerPart object.

        - GET: Retrieve detail view
        - PATCH: Update object
        - DELETE: Delete object
      parameters:
      - in: path
        name: id
        schema:
          type: integer
        required: true
      tags:
      - company
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/PatchedManufacturerPart'
          application/x-www-form-urlencoded:
            schema:
              $ref: '#/components/schemas/PatchedManufacturerPart'
          multipart/form-data:
            schema:
              $ref: '#/components/schemas/PatchedManufacturerPart'
      security:
      - tokenAuth: []
      - basicAuth: []
      - cookieAuth: []
      - oauth2:
        - r:change:part
        - r:change:purchase_order
      responses:
        '200':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ManufacturerPart'
          description: ''
    delete:
      operationId: company_part_manufacturer_destroy
      description: |-
        API endpoint for detail view of ManufacturerPart object.

        - GET: Retrieve detail view
        - PATCH: Update object
        - DELETE: Delete object
      parameters:
      - in: path
        name: id
        schema:
          type: integer
        required: true
      tags:
      - company
      security:
      - tokenAuth: []
      - basicAuth: []
      - cookieAuth: []
      - oauth2:
        - r:delete:part
        - r:delete:purchase_order
      responses:
        '204':
          description: No response body
  /api/company/part/manufacturer/{id}/metadata/:
    get:
      operationId: company_part_manufacturer_metadata_retrieve
      description: Generic API endpoint for reading and editing metadata for a model.
      parameters:
      - in: path
        name: id
        schema:
          type: integer
        required: true
      tags:
      - company
      security:
      - tokenAuth: []
      - basicAuth: []
      - cookieAuth: []
      - oauth2:
        - r:view:part
        - r:view:purchase_order
      responses:
        '200':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Metadata'
          description: ''
    put:
      operationId: company_part_manufacturer_metadata_update
      description: Generic API endpoint for reading and editing metadata for a model.
      parameters:
      - in: path
        name: id
        schema:
          type: integer
        required: true
      tags:
      - company
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/Metadata'
          application/x-www-form-urlencoded:
            schema:
              $ref: '#/components/schemas/Metadata'
          multipart/form-data:
            schema:
              $ref: '#/components/schemas/Metadata'
        required: true
      security:
      - tokenAuth: []
      - basicAuth: []
      - cookieAuth: []
      - oauth2:
        - r:change:part
        - r:change:purchase_order
      responses:
        '200':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Metadata'
          description: ''
    patch:
      operationId: company_part_manufacturer_metadata_partial_update
      description: Generic API endpoint for reading and editing metadata for a model.
      parameters:
      - in: path
        name: id
        schema:
          type: integer
        required: true
      tags:
      - company
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/PatchedMetadata'
          application/x-www-form-urlencoded:
            schema:
              $ref: '#/components/schemas/PatchedMetadata'
          multipart/form-data:
            schema:
              $ref: '#/components/schemas/PatchedMetadata'
      security:
      - tokenAuth: []
      - basicAuth: []
      - cookieAuth: []
      - oauth2:
        - r:change:part
        - r:change:purchase_order
      responses:
        '200':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Metadata'
          description: ''
  /api/company/part/manufacturer/parameter/:
    get:
      operationId: company_part_manufacturer_parameter_list
      description: API endpoint for list view of ManufacturerPartParamater model.
      parameters:
      - name: limit
        required: true
        in: query
        description: Number of results to return per page.
        schema:
          type: integer
      - in: query
        name: manufacturer
        schema:
          type: integer
      - in: query
        name: manufacturer_part
        schema:
          type: integer
      - in: query
        name: manufacturer_part_detail
        schema:
          type: boolean
          default: false
        description: Include detailed information about the linked ManufacturerPart
          in the response
      - in: query
        name: name
        schema:
          type: string
      - name: offset
        required: false
        in: query
        description: The initial index from which to return the results.
        schema:
          type: integer
      - name: ordering
        required: false
        in: query
        description: Which field to use when ordering the results.
        schema:
          type: string
      - in: query
        name: part
        schema:
          type: integer
      - name: search
        required: false
        in: query
        description: 'A search term. Searched fields: name, units, value.'
        schema:
          type: string
      - in: query
        name: units
        schema:
          type: string
      - in: query
        name: value
        schema:
          type: string
      tags:
      - company
      security:
      - tokenAuth: []
      - basicAuth: []
      - cookieAuth: []
      - oauth2:
        - r:view:part
        - r:view:purchase_order
      responses:
        '200':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/PaginatedManufacturerPartParameterList'
          description: ''
    post:
      operationId: company_part_manufacturer_parameter_create
      description: API endpoint for list view of ManufacturerPartParamater model.
      tags:
      - company
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/ManufacturerPartParameter'
          application/x-www-form-urlencoded:
            schema:
              $ref: '#/components/schemas/ManufacturerPartParameter'
          multipart/form-data:
            schema:
              $ref: '#/components/schemas/ManufacturerPartParameter'
        required: true
      security:
      - tokenAuth: []
      - basicAuth: []
      - cookieAuth: []
      - oauth2:
        - r:add:part
        - r:add:purchase_order
      responses:
        '201':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ManufacturerPartParameter'
          description: ''
    delete:
      operationId: company_part_manufacturer_parameter_bulk_destroy
      description: |-
        Perform a DELETE operation against this list endpoint.

        Note that the typical DRF list endpoint does not support DELETE,
        so this method is provided as a custom implementation.
      tags:
      - company
      security:
      - tokenAuth: []
      - basicAuth: []
      - cookieAuth: []
      - oauth2:
        - r:delete:part
        - r:delete:purchase_order
      responses:
        '204':
          description: No response body
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/BulkRequest'
          application/x-www-form-urlencoded:
            schema:
              $ref: '#/components/schemas/BulkRequest'
          multipart/form-data:
            schema:
              $ref: '#/components/schemas/BulkRequest'
        required: true
  /api/company/part/manufacturer/parameter/{id}/:
    get:
      operationId: company_part_manufacturer_parameter_retrieve
      description: API endpoint for detail view of ManufacturerPartParameter model.
      parameters:
      - in: path
        name: id
        schema:
          type: integer
        required: true
      tags:
      - company
      security:
      - tokenAuth: []
      - basicAuth: []
      - cookieAuth: []
      - oauth2:
        - r:view:part
        - r:view:purchase_order
      responses:
        '200':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ManufacturerPartParameter'
          description: ''
    put:
      operationId: company_part_manufacturer_parameter_update
      description: API endpoint for detail view of ManufacturerPartParameter model.
      parameters:
      - in: path
        name: id
        schema:
          type: integer
        required: true
      tags:
      - company
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/ManufacturerPartParameter'
          application/x-www-form-urlencoded:
            schema:
              $ref: '#/components/schemas/ManufacturerPartParameter'
          multipart/form-data:
            schema:
              $ref: '#/components/schemas/ManufacturerPartParameter'
        required: true
      security:
      - tokenAuth: []
      - basicAuth: []
      - cookieAuth: []
      - oauth2:
        - r:change:part
        - r:change:purchase_order
      responses:
        '200':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ManufacturerPartParameter'
          description: ''
    patch:
      operationId: company_part_manufacturer_parameter_partial_update
      description: API endpoint for detail view of ManufacturerPartParameter model.
      parameters:
      - in: path
        name: id
        schema:
          type: integer
        required: true
      tags:
      - company
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/PatchedManufacturerPartParameter'
          application/x-www-form-urlencoded:
            schema:
              $ref: '#/components/schemas/PatchedManufacturerPartParameter'
          multipart/form-data:
            schema:
              $ref: '#/components/schemas/PatchedManufacturerPartParameter'
      security:
      - tokenAuth: []
      - basicAuth: []
      - cookieAuth: []
      - oauth2:
        - r:change:part
        - r:change:purchase_order
      responses:
        '200':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ManufacturerPartParameter'
          description: ''
    delete:
      operationId: company_part_manufacturer_parameter_destroy
      description: API endpoint for detail view of ManufacturerPartParameter model.
      parameters:
      - in: path
        name: id
        schema:
          type: integer
        required: true
      tags:
      - company
      security:
      - tokenAuth: []
      - basicAuth: []
      - cookieAuth: []
      - oauth2:
        - r:delete:part
        - r:delete:purchase_order
      responses:
        '204':
          description: No response body
  /api/company/price-break/:
    get:
      operationId: company_price_break_list
      description: |-
        API endpoint for list view of SupplierPriceBreak object.

        - GET: Retrieve list of SupplierPriceBreak objects
        - POST: Create a new SupplierPriceBreak object
      parameters:
      - in: query
        name: base_part
        schema:
          type: integer
        description: Base Part
      - name: limit
        required: true
        in: query
        description: Number of results to return per page.
        schema:
          type: integer
      - name: offset
        required: false
        in: query
        description: The initial index from which to return the results.
        schema:
          type: integer
      - name: ordering
        required: false
        in: query
        description: 'Which field to use when ordering the results. Possible fields:
          quantity, supplier, SKU, price.'
        schema:
          type: string
      - in: query
        name: part
        schema:
          type: integer
      - in: query
        name: part_detail
        schema:
          type: boolean
          default: false
        description: Include detailed information about the linked Part in the response
      - in: query
        name: quantity
        schema:
          type: number
      - name: search
        required: false
        in: query
        description: 'A search term. Searched fields: part__SKU, part__supplier__name.'
        schema:
          type: string
      - in: query
        name: supplier
        schema:
          type: integer
        description: Supplier
      - in: query
        name: supplier_detail
        schema:
          type: boolean
          default: false
        description: Include detailed information about the Supplier in the response
      tags:
      - company
      security:
      - tokenAuth: []
      - basicAuth: []
      - cookieAuth: []
      - oauth2:
        - r:view:purchase_order
      responses:
        '200':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/PaginatedSupplierPriceBreakList'
          description: ''
    post:
      operationId: company_price_break_create
      description: |-
        API endpoint for list view of SupplierPriceBreak object.

        - GET: Retrieve list of SupplierPriceBreak objects
        - POST: Create a new SupplierPriceBreak object
      tags:
      - company
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/SupplierPriceBreak'
          application/x-www-form-urlencoded:
            schema:
              $ref: '#/components/schemas/SupplierPriceBreak'
          multipart/form-data:
            schema:
              $ref: '#/components/schemas/SupplierPriceBreak'
        required: true
      security:
      - tokenAuth: []
      - basicAuth: []
      - cookieAuth: []
      - oauth2:
        - r:add:purchase_order
      responses:
        '201':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/SupplierPriceBreak'
          description: ''
  /api/company/price-break/{id}/:
    get:
      operationId: company_price_break_retrieve
      description: Detail endpoint for SupplierPriceBreak object.
      parameters:
      - in: path
        name: id
        schema:
          type: integer
        required: true
      tags:
      - company
      security:
      - tokenAuth: []
      - basicAuth: []
      - cookieAuth: []
      - oauth2:
        - r:view:purchase_order
      responses:
        '200':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/SupplierPriceBreak'
          description: ''
    put:
      operationId: company_price_break_update
      description: Detail endpoint for SupplierPriceBreak object.
      parameters:
      - in: path
        name: id
        schema:
          type: integer
        required: true
      tags:
      - company
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/SupplierPriceBreak'
          application/x-www-form-urlencoded:
            schema:
              $ref: '#/components/schemas/SupplierPriceBreak'
          multipart/form-data:
            schema:
              $ref: '#/components/schemas/SupplierPriceBreak'
        required: true
      security:
      - tokenAuth: []
      - basicAuth: []
      - cookieAuth: []
      - oauth2:
        - r:change:purchase_order
      responses:
        '200':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/SupplierPriceBreak'
          description: ''
    patch:
      operationId: company_price_break_partial_update
      description: Detail endpoint for SupplierPriceBreak object.
      parameters:
      - in: path
        name: id
        schema:
          type: integer
        required: true
      tags:
      - company
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/PatchedSupplierPriceBreak'
          application/x-www-form-urlencoded:
            schema:
              $ref: '#/components/schemas/PatchedSupplierPriceBreak'
          multipart/form-data:
            schema:
              $ref: '#/components/schemas/PatchedSupplierPriceBreak'
      security:
      - tokenAuth: []
      - basicAuth: []
      - cookieAuth: []
      - oauth2:
        - r:change:purchase_order
      responses:
        '200':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/SupplierPriceBreak'
          description: ''
    delete:
      operationId: company_price_break_destroy
      description: Detail endpoint for SupplierPriceBreak object.
      parameters:
      - in: path
        name: id
        schema:
          type: integer
        required: true
      tags:
      - company
      security:
      - tokenAuth: []
      - basicAuth: []
      - cookieAuth: []
      - oauth2:
        - r:delete:purchase_order
      responses:
        '204':
          description: No response body
  /api/contenttype/:
    get:
      operationId: contenttype_list
      description: List view for ContentTypes.
      parameters:
      - name: limit
        required: true
        in: query
        description: Number of results to return per page.
        schema:
          type: integer
      - name: offset
        required: false
        in: query
        description: The initial index from which to return the results.
        schema:
          type: integer
      - name: ordering
        required: false
        in: query
        description: Which field to use when ordering the results.
        schema:
          type: string
      - name: search
        required: false
        in: query
        description: 'A search term. Searched fields: app_label, model.'
        schema:
          type: string
      tags:
      - contenttype
      security:
      - tokenAuth: []
      - basicAuth: []
      - cookieAuth: []
      - oauth2:
        - g:read
      responses:
        '200':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/PaginatedContentTypeList'
          description: ''
  /api/contenttype/{id}/:
    get:
      operationId: contenttype_retrieve
      description: Detail view for a ContentType model.
      parameters:
      - in: path
        name: id
        schema:
          type: integer
        required: true
      tags:
      - contenttype
      security:
      - tokenAuth: []
      - basicAuth: []
      - cookieAuth: []
      - oauth2:
        - g:read
      responses:
        '200':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ContentType'
          description: ''
  /api/contenttype/model/{model}/:
    get:
      operationId: contenttype_retrieve_model
      description: Detail view for a ContentType model.
      parameters:
      - in: path
        name: model
        schema:
          type: string
        required: true
      tags:
      - contenttype
      security:
      - tokenAuth: []
      - basicAuth: []
      - cookieAuth: []
      - oauth2:
        - g:read
      responses:
        '200':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ContentType'
          description: ''
  /api/currency/exchange/:
    get:
      operationId: currency_exchange_retrieve
      description: Return information on available currency conversions.
      tags:
      - currency
      security:
      - tokenAuth: []
      - basicAuth: []
      - cookieAuth: []
      - oauth2:
        - g:read
      responses:
        '200':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/CurrencyExchange'
          description: ''
  /api/currency/refresh/:
    post:
      operationId: currency_refresh_create
      description: Performing a POST request will update currency exchange rates.
      tags:
      - currency
      security:
      - tokenAuth: []
      - basicAuth: []
      - cookieAuth: []
      - oauth2:
        - g:read
      responses:
        '200':
          description: No response body
  /api/data-output/:
    get:
      operationId: data_output_list
      description: List view for DataOutput objects.
      parameters:
      - name: limit
        required: true
        in: query
        description: Number of results to return per page.
        schema:
          type: integer
      - name: offset
        required: false
        in: query
        description: The initial index from which to return the results.
        schema:
          type: integer
      - name: ordering
        required: false
        in: query
        description: 'Which field to use when ordering the results. Possible fields:
          pk, user, plugin, output_type, created.'
        schema:
          type: string
      - name: search
        required: false
        in: query
        description: A search term.
        schema:
          type: string
      - in: query
        name: user
        schema:
          type: integer
      tags:
      - data-output
      security:
      - tokenAuth: []
      - basicAuth: []
      - cookieAuth: []
      - oauth2:
        - g:read
      responses:
        '200':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/PaginatedDataOutputList'
          description: ''
    delete:
      operationId: data_output_bulk_destroy
      description: |-
        Perform a DELETE operation against this list endpoint.

        Note that the typical DRF list endpoint does not support DELETE,
        so this method is provided as a custom implementation.
      tags:
      - data-output
      security:
      - tokenAuth: []
      - basicAuth: []
      - cookieAuth: []
      - oauth2:
        - g:read
      responses:
        '204':
          description: No response body
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/BulkRequest'
          application/x-www-form-urlencoded:
            schema:
              $ref: '#/components/schemas/BulkRequest'
          multipart/form-data:
            schema:
              $ref: '#/components/schemas/BulkRequest'
        required: true
  /api/data-output/{id}/:
    get:
      operationId: data_output_retrieve
      description: Detail view for a DataOutput object.
      parameters:
      - in: path
        name: id
        schema:
          type: integer
        required: true
      tags:
      - data-output
      security:
      - tokenAuth: []
      - basicAuth: []
      - cookieAuth: []
      - oauth2:
        - g:read
      responses:
        '200':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/DataOutput'
          description: ''
    delete:
      operationId: data_output_destroy
      description: Detail view for a DataOutput object.
      parameters:
      - in: path
        name: id
        schema:
          type: integer
        required: true
      tags:
      - data-output
      security:
      - tokenAuth: []
      - basicAuth: []
      - cookieAuth: []
      - oauth2:
        - g:read
      responses:
        '204':
          description: No response body
  /api/email/generate/:
    post:
      operationId: email_generate_create
      description: Get the token for the current user or fail.
      tags:
      - email
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/GetSimpleLogin'
          application/x-www-form-urlencoded:
            schema:
              $ref: '#/components/schemas/GetSimpleLogin'
          multipart/form-data:
            schema:
              $ref: '#/components/schemas/GetSimpleLogin'
        required: true
      security:
      - tokenAuth: []
      - basicAuth: []
      - cookieAuth: []
      responses:
        '200':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/GetSimpleLogin'
          description: ''
  /api/error-report/:
    get:
      operationId: error_report_list
      description: List view for server error messages.
      parameters:
      - name: limit
        required: true
        in: query
        description: Number of results to return per page.
        schema:
          type: integer
      - name: offset
        required: false
        in: query
        description: The initial index from which to return the results.
        schema:
          type: integer
      - name: ordering
        required: false
        in: query
        description: 'Which field to use when ordering the results. Possible fields:
          when, info.'
        schema:
          type: string
      - name: search
        required: false
        in: query
        description: 'A search term. Searched fields: data, info.'
        schema:
          type: string
      tags:
      - error-report
      security:
      - tokenAuth: []
      - basicAuth: []
      - cookieAuth: []
      - oauth2:
        - g:read
      responses:
        '200':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/PaginatedErrorMessageList'
          description: ''
    delete:
      operationId: error_report_bulk_destroy
      description: |-
        Perform a DELETE operation against this list endpoint.

        Note that the typical DRF list endpoint does not support DELETE,
        so this method is provided as a custom implementation.
      tags:
      - error-report
      security:
      - tokenAuth: []
      - basicAuth: []
      - cookieAuth: []
      - oauth2:
        - g:read
      responses:
        '204':
          description: No response body
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/BulkRequest'
          application/x-www-form-urlencoded:
            schema:
              $ref: '#/components/schemas/BulkRequest'
          multipart/form-data:
            schema:
              $ref: '#/components/schemas/BulkRequest'
        required: true
  /api/error-report/{id}/:
    get:
      operationId: error_report_retrieve
      description: Detail view for a single error message.
      parameters:
      - in: path
        name: id
        schema:
          type: integer
        required: true
      tags:
      - error-report
      security:
      - tokenAuth: []
      - basicAuth: []
      - cookieAuth: []
      - oauth2:
        - g:read
      responses:
        '200':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorMessage'
          description: ''
    put:
      operationId: error_report_update
      description: Detail view for a single error message.
      parameters:
      - in: path
        name: id
        schema:
          type: integer
        required: true
      tags:
      - error-report
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/ErrorMessage'
          application/x-www-form-urlencoded:
            schema:
              $ref: '#/components/schemas/ErrorMessage'
          multipart/form-data:
            schema:
              $ref: '#/components/schemas/ErrorMessage'
      security:
      - tokenAuth: []
      - basicAuth: []
      - cookieAuth: []
      - oauth2:
        - g:read
      responses:
        '200':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorMessage'
          description: ''
    patch:
      operationId: error_report_partial_update
      description: Detail view for a single error message.
      parameters:
      - in: path
        name: id
        schema:
          type: integer
        required: true
      tags:
      - error-report
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/PatchedErrorMessage'
          application/x-www-form-urlencoded:
            schema:
              $ref: '#/components/schemas/PatchedErrorMessage'
          multipart/form-data:
            schema:
              $ref: '#/components/schemas/PatchedErrorMessage'
      security:
      - tokenAuth: []
      - basicAuth: []
      - cookieAuth: []
      - oauth2:
        - g:read
      responses:
        '200':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorMessage'
          description: ''
    delete:
      operationId: error_report_destroy
      description: Detail view for a single error message.
      parameters:
      - in: path
        name: id
        schema:
          type: integer
        required: true
      tags:
      - error-report
      security:
      - tokenAuth: []
      - basicAuth: []
      - cookieAuth: []
      - oauth2:
        - g:read
      responses:
        '204':
          description: No response body
  /api/flags/:
    get:
      operationId: flags_list
      description: List view for feature flags.
      tags:
      - flags
      security:
      - tokenAuth: []
      - basicAuth: []
      - cookieAuth: []
      - oauth2:
        - g:read
      responses:
        '200':
          content:
            application/json:
              schema:
                type: array
                items:
                  $ref: '#/components/schemas/Flag'
          description: ''
  /api/flags/{key}/:
    get:
      operationId: flags_retrieve
      description: Detail view for an individual feature flag.
      parameters:
      - in: path
        name: key
        schema:
          type: string
        required: true
      tags:
      - flags
      security:
      - tokenAuth: []
      - basicAuth: []
      - cookieAuth: []
      - oauth2:
        - g:read
      responses:
        '200':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Flag'
          description: ''
  /api/generate/batch-code/:
    post:
      operationId: generate_batch_code_create
      description: Generate a new batch code.
      tags:
      - generate
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/GenerateBatchCode'
          application/x-www-form-urlencoded:
            schema:
              $ref: '#/components/schemas/GenerateBatchCode'
          multipart/form-data:
            schema:
              $ref: '#/components/schemas/GenerateBatchCode'
      security:
      - tokenAuth: []
      - basicAuth: []
      - cookieAuth: []
      - oauth2:
        - g:read
      responses:
        '200':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/GenerateBatchCode'
          description: ''
  /api/generate/serial-number/:
    post:
      operationId: generate_serial_number_create
      description: Generate a new serial number.
      tags:
      - generate
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/GenerateSerialNumber'
          application/x-www-form-urlencoded:
            schema:
              $ref: '#/components/schemas/GenerateSerialNumber'
          multipart/form-data:
            schema:
              $ref: '#/components/schemas/GenerateSerialNumber'
      security:
      - tokenAuth: []
      - basicAuth: []
      - cookieAuth: []
      - oauth2:
        - g:read
      responses:
        '200':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/GenerateSerialNumber'
          description: ''
  /api/generic/status/:
    get:
      operationId: generic_status_retrieve_all
      description: Perform a GET request to learn information about status codes.
      tags:
      - generic
      security:
      - tokenAuth: []
      - basicAuth: []
      - cookieAuth: []
      - oauth2:
        - g:read
      responses:
        '200':
          content:
            application/json:
              schema:
                type: object
                additionalProperties: {}
          description: Mapping from class name to GenericStateClass data
  /api/generic/status/{statusmodel}/:
    get:
      operationId: generic_status_retrieve
      description: Retrieve information about a specific status code
      parameters:
      - in: path
        name: statusmodel
        schema:
          type: string
        required: true
      tags:
      - generic
      security:
      - tokenAuth: []
      - basicAuth: []
      - cookieAuth: []
      - oauth2:
        - g:read
      responses:
        '200':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/GenericStateClass'
          description: ''
        '400':
          description: Invalid request
  /api/generic/status/custom/:
    get:
      operationId: generic_status_custom_list
      description: Override the GET method to determine export options.
      parameters:
      - name: limit
        required: true
        in: query
        description: Number of results to return per page.
        schema:
          type: integer
      - in: query
        name: model
        schema:
          type: integer
      - name: offset
        required: false
        in: query
        description: The initial index from which to return the results.
        schema:
          type: integer
      - name: ordering
        required: false
        in: query
        description: 'Which field to use when ordering the results. Possible fields:
          key.'
        schema:
          type: string
      - in: query
        name: reference_status
        schema:
          type: string
      - name: search
        required: false
        in: query
        description: 'A search term. Searched fields: key, label, name, reference_status.'
        schema:
          type: string
      tags:
      - generic
      security:
      - tokenAuth: []
      - basicAuth: []
      - cookieAuth: []
      - oauth2:
        - g:read
      responses:
        '200':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/PaginatedCustomStateList'
          description: ''
    post:
      operationId: generic_status_custom_create
      description: List view for all custom states.
      tags:
      - generic
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/CustomState'
          application/x-www-form-urlencoded:
            schema:
              $ref: '#/components/schemas/CustomState'
          multipart/form-data:
            schema:
              $ref: '#/components/schemas/CustomState'
        required: true
      security:
      - tokenAuth: []
      - basicAuth: []
      - cookieAuth: []
      - oauth2:
        - a:staff
      responses:
        '201':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/CustomState'
          description: ''
  /api/generic/status/custom/{id}/:
    get:
      operationId: generic_status_custom_retrieve
      description: Detail view for a particular custom states.
      parameters:
      - in: path
        name: id
        schema:
          type: integer
        required: true
      tags:
      - generic
      security:
      - tokenAuth: []
      - basicAuth: []
      - cookieAuth: []
      - oauth2:
        - g:read
      responses:
        '200':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/CustomState'
          description: ''
    put:
      operationId: generic_status_custom_update
      description: Detail view for a particular custom states.
      parameters:
      - in: path
        name: id
        schema:
          type: integer
        required: true
      tags:
      - generic
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/CustomState'
          application/x-www-form-urlencoded:
            schema:
              $ref: '#/components/schemas/CustomState'
          multipart/form-data:
            schema:
              $ref: '#/components/schemas/CustomState'
        required: true
      security:
      - tokenAuth: []
      - basicAuth: []
      - cookieAuth: []
      - oauth2:
        - a:staff
      responses:
        '200':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/CustomState'
          description: ''
    patch:
      operationId: generic_status_custom_partial_update
      description: Detail view for a particular custom states.
      parameters:
      - in: path
        name: id
        schema:
          type: integer
        required: true
      tags:
      - generic
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/PatchedCustomState'
          application/x-www-form-urlencoded:
            schema:
              $ref: '#/components/schemas/PatchedCustomState'
          multipart/form-data:
            schema:
              $ref: '#/components/schemas/PatchedCustomState'
      security:
      - tokenAuth: []
      - basicAuth: []
      - cookieAuth: []
      - oauth2:
        - a:staff
      responses:
        '200':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/CustomState'
          description: ''
    delete:
      operationId: generic_status_custom_destroy
      description: Detail view for a particular custom states.
      parameters:
      - in: path
        name: id
        schema:
          type: integer
        required: true
      tags:
      - generic
      security:
      - tokenAuth: []
      - basicAuth: []
      - cookieAuth: []
      - oauth2:
        - a:staff
      responses:
        '204':
          description: No response body
  /api/icons/:
    get:
      operationId: icons_list
      description: List view for available icon packages.
      parameters:
      - name: limit
        required: true
        in: query
        description: Number of results to return per page.
        schema:
          type: integer
      - name: offset
        required: false
        in: query
        description: The initial index from which to return the results.
        schema:
          type: integer
      tags:
      - icons
      security:
      - tokenAuth: []
      - basicAuth: []
      - cookieAuth: []
      - oauth2:
        - g:read
      responses:
        '200':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/PaginatedIconPackageList'
          description: ''
  /api/importer/column-mapping/:
    get:
      operationId: importer_column_mapping_list
      description: API endpoint for accessing a list of DataImportColumnMap objects.
      parameters:
      - name: limit
        required: true
        in: query
        description: Number of results to return per page.
        schema:
          type: integer
      - name: offset
        required: false
        in: query
        description: The initial index from which to return the results.
        schema:
          type: integer
      - name: ordering
        required: false
        in: query
        description: Which field to use when ordering the results.
        schema:
          type: string
      - name: search
        required: false
        in: query
        description: A search term.
        schema:
          type: string
      - in: query
        name: session
        schema:
          type: integer
      tags:
      - importer
      security:
      - tokenAuth: []
      - basicAuth: []
      - cookieAuth: []
      - oauth2:
        - g:read
      responses:
        '200':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/PaginatedDataImportColumnMapList'
          description: ''
  /api/importer/column-mapping/{id}/:
    get:
      operationId: importer_column_mapping_retrieve
      description: Detail endpoint for a single DataImportColumnMap object.
      parameters:
      - in: path
        name: id
        schema:
          type: integer
        required: true
      tags:
      - importer
      security:
      - tokenAuth: []
      - basicAuth: []
      - cookieAuth: []
      - oauth2:
        - g:read
      responses:
        '200':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/DataImportColumnMap'
          description: ''
    put:
      operationId: importer_column_mapping_update
      description: Detail endpoint for a single DataImportColumnMap object.
      parameters:
      - in: path
        name: id
        schema:
          type: integer
        required: true
      tags:
      - importer
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/DataImportColumnMap'
          application/x-www-form-urlencoded:
            schema:
              $ref: '#/components/schemas/DataImportColumnMap'
          multipart/form-data:
            schema:
              $ref: '#/components/schemas/DataImportColumnMap'
      security:
      - tokenAuth: []
      - basicAuth: []
      - cookieAuth: []
      - oauth2:
        - g:read
      responses:
        '200':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/DataImportColumnMap'
          description: ''
    patch:
      operationId: importer_column_mapping_partial_update
      description: Detail endpoint for a single DataImportColumnMap object.
      parameters:
      - in: path
        name: id
        schema:
          type: integer
        required: true
      tags:
      - importer
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/PatchedDataImportColumnMap'
          application/x-www-form-urlencoded:
            schema:
              $ref: '#/components/schemas/PatchedDataImportColumnMap'
          multipart/form-data:
            schema:
              $ref: '#/components/schemas/PatchedDataImportColumnMap'
      security:
      - tokenAuth: []
      - basicAuth: []
      - cookieAuth: []
      - oauth2:
        - g:read
      responses:
        '200':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/DataImportColumnMap'
          description: ''
  /api/importer/models/:
    get:
      operationId: importer_models_list
      description: Return a list of models available for import.
      tags:
      - importer
      security:
      - tokenAuth: []
      - basicAuth: []
      - cookieAuth: []
      - oauth2:
        - g:read
      responses:
        '200':
          content:
            application/json:
              schema:
                type: array
                items:
                  $ref: '#/components/schemas/DataImporterModel'
          description: ''
  /api/importer/row/:
    get:
      operationId: importer_row_list
      description: API endpoint for accessing a list of DataImportRow objects.
      parameters:
      - in: query
        name: complete
        schema:
          type: boolean
      - name: limit
        required: true
        in: query
        description: Number of results to return per page.
        schema:
          type: integer
      - name: offset
        required: false
        in: query
        description: The initial index from which to return the results.
        schema:
          type: integer
      - name: ordering
        required: false
        in: query
        description: 'Which field to use when ordering the results. Possible fields:
          pk, row_index, valid.'
        schema:
          type: string
      - name: search
        required: false
        in: query
        description: A search term.
        schema:
          type: string
      - in: query
        name: session
        schema:
          type: integer
      - in: query
        name: valid
        schema:
          type: boolean
      tags:
      - importer
      security:
      - tokenAuth: []
      - basicAuth: []
      - cookieAuth: []
      - oauth2:
        - g:read
      responses:
        '200':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/PaginatedDataImportRowList'
          description: ''
    delete:
      operationId: importer_row_bulk_destroy
      description: |-
        Perform a DELETE operation against this list endpoint.

        Note that the typical DRF list endpoint does not support DELETE,
        so this method is provided as a custom implementation.
      tags:
      - importer
      security:
      - tokenAuth: []
      - basicAuth: []
      - cookieAuth: []
      - oauth2:
        - g:read
      responses:
        '204':
          description: No response body
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/BulkRequest'
          application/x-www-form-urlencoded:
            schema:
              $ref: '#/components/schemas/BulkRequest'
          multipart/form-data:
            schema:
              $ref: '#/components/schemas/BulkRequest'
        required: true
  /api/importer/row/{id}/:
    get:
      operationId: importer_row_retrieve
      description: Detail endpoint for a single DataImportRow object.
      parameters:
      - in: path
        name: id
        schema:
          type: integer
        required: true
      tags:
      - importer
      security:
      - tokenAuth: []
      - basicAuth: []
      - cookieAuth: []
      - oauth2:
        - g:read
      responses:
        '200':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/DataImportRow'
          description: ''
    put:
      operationId: importer_row_update
      description: Detail endpoint for a single DataImportRow object.
      parameters:
      - in: path
        name: id
        schema:
          type: integer
        required: true
      tags:
      - importer
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/DataImportRow'
          application/x-www-form-urlencoded:
            schema:
              $ref: '#/components/schemas/DataImportRow'
          multipart/form-data:
            schema:
              $ref: '#/components/schemas/DataImportRow'
      security:
      - tokenAuth: []
      - basicAuth: []
      - cookieAuth: []
      - oauth2:
        - g:read
      responses:
        '200':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/DataImportRow'
          description: ''
    patch:
      operationId: importer_row_partial_update
      description: Detail endpoint for a single DataImportRow object.
      parameters:
      - in: path
        name: id
        schema:
          type: integer
        required: true
      tags:
      - importer
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/PatchedDataImportRow'
          application/x-www-form-urlencoded:
            schema:
              $ref: '#/components/schemas/PatchedDataImportRow'
          multipart/form-data:
            schema:
              $ref: '#/components/schemas/PatchedDataImportRow'
      security:
      - tokenAuth: []
      - basicAuth: []
      - cookieAuth: []
      - oauth2:
        - g:read
      responses:
        '200':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/DataImportRow'
          description: ''
    delete:
      operationId: importer_row_destroy
      description: Detail endpoint for a single DataImportRow object.
      parameters:
      - in: path
        name: id
        schema:
          type: integer
        required: true
      tags:
      - importer
      security:
      - tokenAuth: []
      - basicAuth: []
      - cookieAuth: []
      - oauth2:
        - g:read
      responses:
        '204':
          description: No response body
  /api/importer/session/:
    get:
      operationId: importer_session_list
      description: API endpoint for accessing a list of DataImportSession objects.
      parameters:
      - name: limit
        required: true
        in: query
        description: Number of results to return per page.
        schema:
          type: integer
      - in: query
        name: model_type
        schema:
          type: string
      - name: offset
        required: false
        in: query
        description: The initial index from which to return the results.
        schema:
          type: integer
      - name: ordering
        required: false
        in: query
        description: 'Which field to use when ordering the results. Possible fields:
          timestamp, status, model_type.'
        schema:
          type: string
      - name: search
        required: false
        in: query
        description: A search term.
        schema:
          type: string
      - in: query
        name: status
        schema:
          type: integer
          enum:
          - 0
          - 10
          - 20
          - 30
          - 40
        description: |-
          Import status

          * `0` - Initializing
          * `10` - Mapping Columns
          * `20` - Importing Data
          * `30` - Processing Data
          * `40` - Complete
      - in: query
        name: user
        schema:
          type: integer
      tags:
      - importer
      security:
      - tokenAuth: []
      - basicAuth: []
      - cookieAuth: []
      - oauth2:
        - g:read
      responses:
        '200':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/PaginatedDataImportSessionList'
          description: ''
    post:
      operationId: importer_session_create
      description: API endpoint for accessing a list of DataImportSession objects.
      tags:
      - importer
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/DataImportSession'
          application/x-www-form-urlencoded:
            schema:
              $ref: '#/components/schemas/DataImportSession'
          multipart/form-data:
            schema:
              $ref: '#/components/schemas/DataImportSession'
        required: true
      security:
      - tokenAuth: []
      - basicAuth: []
      - cookieAuth: []
      - oauth2:
        - r:change:admin
        - r:change:part_category
        - r:change:part
        - r:change:stock_location
        - r:change:stock
        - r:change:build
        - r:change:purchase_order
        - r:change:sales_order
        - r:change:return_order
      responses:
        '201':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/DataImportSession'
          description: ''
    delete:
      operationId: importer_session_bulk_destroy
      description: |-
        Perform a DELETE operation against this list endpoint.

        Note that the typical DRF list endpoint does not support DELETE,
        so this method is provided as a custom implementation.
      tags:
      - importer
      security:
      - tokenAuth: []
      - basicAuth: []
      - cookieAuth: []
      - oauth2:
        - r:change:admin
        - r:change:part_category
        - r:change:part
        - r:change:stock_location
        - r:change:stock
        - r:change:build
        - r:change:purchase_order
        - r:change:sales_order
        - r:change:return_order
      responses:
        '204':
          description: No response body
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/BulkRequest'
          application/x-www-form-urlencoded:
            schema:
              $ref: '#/components/schemas/BulkRequest'
          multipart/form-data:
            schema:
              $ref: '#/components/schemas/BulkRequest'
        required: true
  /api/importer/session/{id}/:
    get:
      operationId: importer_session_retrieve
      description: Detail endpoint for a single DataImportSession object.
      parameters:
      - in: path
        name: id
        schema:
          type: integer
        required: true
      tags:
      - importer
      security:
      - tokenAuth: []
      - basicAuth: []
      - cookieAuth: []
      - oauth2:
        - g:read
      responses:
        '200':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/DataImportSession'
          description: ''
    put:
      operationId: importer_session_update
      description: Detail endpoint for a single DataImportSession object.
      parameters:
      - in: path
        name: id
        schema:
          type: integer
        required: true
      tags:
      - importer
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/DataImportSession'
          application/x-www-form-urlencoded:
            schema:
              $ref: '#/components/schemas/DataImportSession'
          multipart/form-data:
            schema:
              $ref: '#/components/schemas/DataImportSession'
        required: true
      security:
      - tokenAuth: []
      - basicAuth: []
      - cookieAuth: []
      - oauth2:
        - r:change:admin
        - r:change:part_category
        - r:change:part
        - r:change:stock_location
        - r:change:stock
        - r:change:build
        - r:change:purchase_order
        - r:change:sales_order
        - r:change:return_order
      responses:
        '200':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/DataImportSession'
          description: ''
    patch:
      operationId: importer_session_partial_update
      description: Detail endpoint for a single DataImportSession object.
      parameters:
      - in: path
        name: id
        schema:
          type: integer
        required: true
      tags:
      - importer
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/PatchedDataImportSession'
          application/x-www-form-urlencoded:
            schema:
              $ref: '#/components/schemas/PatchedDataImportSession'
          multipart/form-data:
            schema:
              $ref: '#/components/schemas/PatchedDataImportSession'
      security:
      - tokenAuth: []
      - basicAuth: []
      - cookieAuth: []
      - oauth2:
        - r:change:admin
        - r:change:part_category
        - r:change:part
        - r:change:stock_location
        - r:change:stock
        - r:change:build
        - r:change:purchase_order
        - r:change:sales_order
        - r:change:return_order
      responses:
        '200':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/DataImportSession'
          description: ''
    delete:
      operationId: importer_session_destroy
      description: Detail endpoint for a single DataImportSession object.
      parameters:
      - in: path
        name: id
        schema:
          type: integer
        required: true
      tags:
      - importer
      security:
      - tokenAuth: []
      - basicAuth: []
      - cookieAuth: []
      - oauth2:
        - r:change:admin
        - r:change:part_category
        - r:change:part
        - r:change:stock_location
        - r:change:stock
        - r:change:build
        - r:change:purchase_order
        - r:change:sales_order
        - r:change:return_order
      responses:
        '204':
          description: No response body
  /api/importer/session/{id}/accept_fields/:
    post:
      operationId: importer_session_accept_fields_create
      description: Accept the field mapping for a DataImportSession.
      parameters:
      - in: path
        name: id
        schema:
          type: integer
        required: true
      tags:
      - importer
      security:
      - tokenAuth: []
      - basicAuth: []
      - cookieAuth: []
      - oauth2:
        - g:read
      responses:
        '200':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/DataImportSession'
          description: ''
  /api/importer/session/{id}/accept_rows/:
    post:
      operationId: importer_session_accept_rows_create
      description: API endpoint to accept the rows for a DataImportSession.
      parameters:
      - in: path
        name: id
        schema:
          type: integer
        required: true
      tags:
      - importer
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/DataImportAcceptRow'
          application/x-www-form-urlencoded:
            schema:
              $ref: '#/components/schemas/DataImportAcceptRow'
          multipart/form-data:
            schema:
              $ref: '#/components/schemas/DataImportAcceptRow'
        required: true
      security:
      - tokenAuth: []
      - basicAuth: []
      - cookieAuth: []
      - oauth2:
        - g:read
      responses:
        '201':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/DataImportAcceptRow'
          description: ''
  /api/label/print/:
    post:
      operationId: label_print_create
      description: POST action for printing labels.
      tags:
      - label
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/LabelPrint'
          application/x-www-form-urlencoded:
            schema:
              $ref: '#/components/schemas/LabelPrint'
          multipart/form-data:
            schema:
              $ref: '#/components/schemas/LabelPrint'
        required: true
      security:
      - tokenAuth: []
      - basicAuth: []
      - cookieAuth: []
      - oauth2:
        - g:read
      responses:
        '200':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/LabelPrint'
          description: ''
  /api/label/template/:
    get:
      operationId: label_template_list
      description: API endpoint for viewing list of LabelTemplate objects.
      parameters:
      - in: query
        name: enabled
        schema:
          type: boolean
      - in: query
        name: items
        schema:
          type: string
        description: Items
      - name: limit
        required: true
        in: query
        description: Number of results to return per page.
        schema:
          type: integer
      - in: query
        name: model_type
        schema:
          type: string
          enum:
          - build
          - buildline
          - company
          - part
          - purchaseorder
          - returnorder
          - salesorder
          - salesordershipment
          - stockitem
          - stocklocation
        description: |-
          Model Type

          * `build` - Build Order
          * `buildline` - Build Order Line Item
          * `company` - Company
          * `purchaseorder` - Purchase Order
          * `salesorder` - Sales Order
          * `salesordershipment` - Sales Order Shipment
          * `returnorder` - Return Order
          * `part` - Part
          * `stockitem` - Stock Item
          * `stocklocation` - Stock Location
      - name: offset
        required: false
        in: query
        description: The initial index from which to return the results.
        schema:
          type: integer
      - name: search
        required: false
        in: query
        description: 'A search term. Searched fields: description, name.'
        schema:
          type: string
      tags:
      - label
      security:
      - tokenAuth: []
      - basicAuth: []
      - cookieAuth: []
      - oauth2:
        - g:read
      responses:
        '200':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/PaginatedLabelTemplateList'
          description: ''
    post:
      operationId: label_template_create
      description: API endpoint for viewing list of LabelTemplate objects.
      tags:
      - label
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/LabelTemplate'
          application/x-www-form-urlencoded:
            schema:
              $ref: '#/components/schemas/LabelTemplate'
          multipart/form-data:
            schema:
              $ref: '#/components/schemas/LabelTemplate'
        required: true
      security:
      - tokenAuth: []
      - basicAuth: []
      - cookieAuth: []
      - oauth2:
        - a:staff
      responses:
        '201':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/LabelTemplate'
          description: ''
  /api/label/template/{id}/:
    get:
      operationId: label_template_retrieve
      description: Detail API endpoint for label template model.
      parameters:
      - in: path
        name: id
        schema:
          type: integer
        required: true
      tags:
      - label
      security:
      - tokenAuth: []
      - basicAuth: []
      - cookieAuth: []
      - oauth2:
        - g:read
      responses:
        '200':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/LabelTemplate'
          description: ''
    put:
      operationId: label_template_update
      description: Detail API endpoint for label template model.
      parameters:
      - in: path
        name: id
        schema:
          type: integer
        required: true
      tags:
      - label
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/LabelTemplate'
          application/x-www-form-urlencoded:
            schema:
              $ref: '#/components/schemas/LabelTemplate'
          multipart/form-data:
            schema:
              $ref: '#/components/schemas/LabelTemplate'
        required: true
      security:
      - tokenAuth: []
      - basicAuth: []
      - cookieAuth: []
      - oauth2:
        - a:staff
      responses:
        '200':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/LabelTemplate'
          description: ''
    patch:
      operationId: label_template_partial_update
      description: Detail API endpoint for label template model.
      parameters:
      - in: path
        name: id
        schema:
          type: integer
        required: true
      tags:
      - label
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/PatchedLabelTemplate'
          application/x-www-form-urlencoded:
            schema:
              $ref: '#/components/schemas/PatchedLabelTemplate'
          multipart/form-data:
            schema:
              $ref: '#/components/schemas/PatchedLabelTemplate'
      security:
      - tokenAuth: []
      - basicAuth: []
      - cookieAuth: []
      - oauth2:
        - a:staff
      responses:
        '200':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/LabelTemplate'
          description: ''
    delete:
      operationId: label_template_destroy
      description: Detail API endpoint for label template model.
      parameters:
      - in: path
        name: id
        schema:
          type: integer
        required: true
      tags:
      - label
      security:
      - tokenAuth: []
      - basicAuth: []
      - cookieAuth: []
      - oauth2:
        - a:staff
      responses:
        '204':
          description: No response body
  /api/label/template/{id}/metadata/:
    get:
      operationId: label_template_metadata_retrieve
      description: Generic API endpoint for reading and editing metadata for a model.
      parameters:
      - in: path
        name: id
        schema:
          type: integer
        required: true
      tags:
      - label
      security:
      - tokenAuth: []
      - basicAuth: []
      - cookieAuth: []
      - oauth2:
        - r:view:admin
      responses:
        '200':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Metadata'
          description: ''
    put:
      operationId: label_template_metadata_update
      description: Generic API endpoint for reading and editing metadata for a model.
      parameters:
      - in: path
        name: id
        schema:
          type: integer
        required: true
      tags:
      - label
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/Metadata'
          application/x-www-form-urlencoded:
            schema:
              $ref: '#/components/schemas/Metadata'
          multipart/form-data:
            schema:
              $ref: '#/components/schemas/Metadata'
        required: true
      security:
      - tokenAuth: []
      - basicAuth: []
      - cookieAuth: []
      - oauth2:
        - r:change:admin
      responses:
        '200':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Metadata'
          description: ''
    patch:
      operationId: label_template_metadata_partial_update
      description: Generic API endpoint for reading and editing metadata for a model.
      parameters:
      - in: path
        name: id
        schema:
          type: integer
        required: true
      tags:
      - label
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/PatchedMetadata'
          application/x-www-form-urlencoded:
            schema:
              $ref: '#/components/schemas/PatchedMetadata'
          multipart/form-data:
            schema:
              $ref: '#/components/schemas/PatchedMetadata'
      security:
      - tokenAuth: []
      - basicAuth: []
      - cookieAuth: []
      - oauth2:
        - r:change:admin
      responses:
        '200':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Metadata'
          description: ''
  /api/license/:
    get:
      operationId: license_retrieve
      description: Return information about the InvenTree server.
      tags:
      - license
      security:
      - tokenAuth: []
      - basicAuth: []
      - cookieAuth: []
      - oauth2:
        - g:read
      responses:
        '200':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/LicenseView'
          description: ''
  /api/locate/:
    post:
      operationId: locate_create
      description: Identify or 'locate' a stock item or location with a plugin.
      tags:
      - locate
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/LocatePlugin'
          application/x-www-form-urlencoded:
            schema:
              $ref: '#/components/schemas/LocatePlugin'
          multipart/form-data:
            schema:
              $ref: '#/components/schemas/LocatePlugin'
        required: true
      security:
      - tokenAuth: []
      - basicAuth: []
      - cookieAuth: []
      - oauth2:
        - g:read
      responses:
        '200':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/LocatePlugin'
          description: ''
  /api/machine/:
    get:
      operationId: machine_list
      description: |-
        API endpoint for list of Machine objects.

        - GET: Return a list of all Machine objects
        - POST: create a MachineConfig
      parameters:
      - in: query
        name: active
        schema:
          type: boolean
      - in: query
        name: driver
        schema:
          type: string
      - name: limit
        required: true
        in: query
        description: Number of results to return per page.
        schema:
          type: integer
      - in: query
        name: machine_type
        schema:
          type: string
      - name: offset
        required: false
        in: query
        description: The initial index from which to return the results.
        schema:
          type: integer
      - name: ordering
        required: false
        in: query
        description: 'Which field to use when ordering the results. Possible fields:
          name, machine_type, driver, active.'
        schema:
          type: string
      - name: search
        required: false
        in: query
        description: 'A search term. Searched fields: name.'
        schema:
          type: string
      tags:
      - machine
      security:
      - tokenAuth: []
      - basicAuth: []
      - cookieAuth: []
      - oauth2:
        - r:view:admin
      responses:
        '200':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/PaginatedMachineConfigList'
          description: ''
    post:
      operationId: machine_create
      description: |-
        API endpoint for list of Machine objects.

        - GET: Return a list of all Machine objects
        - POST: create a MachineConfig
      tags:
      - machine
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/MachineConfigCreate'
          application/x-www-form-urlencoded:
            schema:
              $ref: '#/components/schemas/MachineConfigCreate'
          multipart/form-data:
            schema:
              $ref: '#/components/schemas/MachineConfigCreate'
        required: true
      security:
      - tokenAuth: []
      - basicAuth: []
      - cookieAuth: []
      - oauth2:
        - r:add:admin
      responses:
        '201':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/MachineConfigCreate'
          description: ''
  /api/machine/{id}/:
    get:
      operationId: machine_retrieve
      description: |-
        API detail endpoint for MachineConfig object.

        - GET: return a single MachineConfig
        - PUT: update a MachineConfig
        - PATCH: partial update a MachineConfig
        - DELETE: delete a MachineConfig
      parameters:
      - in: path
        name: id
        schema:
          type: string
          format: uuid
        required: true
      tags:
      - machine
      security:
      - tokenAuth: []
      - basicAuth: []
      - cookieAuth: []
      - oauth2:
        - r:view:admin
      responses:
        '200':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/MachineConfig'
          description: ''
    put:
      operationId: machine_update
      description: |-
        API detail endpoint for MachineConfig object.

        - GET: return a single MachineConfig
        - PUT: update a MachineConfig
        - PATCH: partial update a MachineConfig
        - DELETE: delete a MachineConfig
      parameters:
      - in: path
        name: id
        schema:
          type: string
          format: uuid
        required: true
      tags:
      - machine
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/MachineConfig'
          application/x-www-form-urlencoded:
            schema:
              $ref: '#/components/schemas/MachineConfig'
          multipart/form-data:
            schema:
              $ref: '#/components/schemas/MachineConfig'
        required: true
      security:
      - tokenAuth: []
      - basicAuth: []
      - cookieAuth: []
      - oauth2:
        - r:change:admin
      responses:
        '200':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/MachineConfig'
          description: ''
    patch:
      operationId: machine_partial_update
      description: |-
        API detail endpoint for MachineConfig object.

        - GET: return a single MachineConfig
        - PUT: update a MachineConfig
        - PATCH: partial update a MachineConfig
        - DELETE: delete a MachineConfig
      parameters:
      - in: path
        name: id
        schema:
          type: string
          format: uuid
        required: true
      tags:
      - machine
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/PatchedMachineConfig'
          application/x-www-form-urlencoded:
            schema:
              $ref: '#/components/schemas/PatchedMachineConfig'
          multipart/form-data:
            schema:
              $ref: '#/components/schemas/PatchedMachineConfig'
      security:
      - tokenAuth: []
      - basicAuth: []
      - cookieAuth: []
      - oauth2:
        - r:change:admin
      responses:
        '200':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/MachineConfig'
          description: ''
    delete:
      operationId: machine_destroy
      description: |-
        API detail endpoint for MachineConfig object.

        - GET: return a single MachineConfig
        - PUT: update a MachineConfig
        - PATCH: partial update a MachineConfig
        - DELETE: delete a MachineConfig
      parameters:
      - in: path
        name: id
        schema:
          type: string
          format: uuid
        required: true
      tags:
      - machine
      security:
      - tokenAuth: []
      - basicAuth: []
      - cookieAuth: []
      - oauth2:
        - r:delete:admin
      responses:
        '204':
          description: No response body
  /api/machine/{id}/restart/:
    post:
      operationId: machine_restart_create
      description: Restart machine by pk.
      parameters:
      - in: path
        name: id
        schema:
          type: string
          format: uuid
        required: true
      tags:
      - machine
      security:
      - tokenAuth: []
      - basicAuth: []
      - cookieAuth: []
      - oauth2:
        - g:read
      responses:
        '200':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/MachineRestart'
          description: ''
  /api/machine/{id}/settings/:
    get:
      operationId: machine_settings_list
      description: Return all settings for a machine config.
      parameters:
      - in: path
        name: id
        schema:
          type: string
          format: uuid
        required: true
      tags:
      - machine
      security:
      - tokenAuth: []
      - basicAuth: []
      - cookieAuth: []
      - oauth2:
        - g:read
      responses:
        '200':
          content:
            application/json:
              schema:
                type: array
                items:
                  $ref: '#/components/schemas/MachineSetting'
          description: ''
  /api/machine/{id}/settings/{config_type}/{key}/:
    get:
      operationId: machine_settings_retrieve
      description: |-
        Detail endpoint for a machine-specific setting.

        - GET: Get machine setting detail
        - PUT: Update machine setting
        - PATCH: Update machine setting

        (Note that these cannot be created or deleted via API)
      parameters:
      - in: path
        name: config_type
        schema:
          type: string
          pattern: ^M|D$
        required: true
      - in: path
        name: id
        schema:
          type: string
          format: uuid
        required: true
      - in: path
        name: key
        schema:
          type: string
          pattern: ^\w+$
        required: true
      tags:
      - machine
      security:
      - tokenAuth: []
      - basicAuth: []
      - cookieAuth: []
      - oauth2:
        - g:read
      responses:
        '200':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/MachineSetting'
          description: ''
    put:
      operationId: machine_settings_update
      description: |-
        Detail endpoint for a machine-specific setting.

        - GET: Get machine setting detail
        - PUT: Update machine setting
        - PATCH: Update machine setting

        (Note that these cannot be created or deleted via API)
      parameters:
      - in: path
        name: config_type
        schema:
          type: string
          pattern: ^M|D$
        required: true
      - in: path
        name: id
        schema:
          type: string
          format: uuid
        required: true
      - in: path
        name: key
        schema:
          type: string
          pattern: ^\w+$
        required: true
      tags:
      - machine
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/MachineSetting'
          application/x-www-form-urlencoded:
            schema:
              $ref: '#/components/schemas/MachineSetting'
          multipart/form-data:
            schema:
              $ref: '#/components/schemas/MachineSetting'
        required: true
      security:
      - tokenAuth: []
      - basicAuth: []
      - cookieAuth: []
      - oauth2:
        - g:read
      responses:
        '200':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/MachineSetting'
          description: ''
    patch:
      operationId: machine_settings_partial_update
      description: |-
        Detail endpoint for a machine-specific setting.

        - GET: Get machine setting detail
        - PUT: Update machine setting
        - PATCH: Update machine setting

        (Note that these cannot be created or deleted via API)
      parameters:
      - in: path
        name: config_type
        schema:
          type: string
          pattern: ^M|D$
        required: true
      - in: path
        name: id
        schema:
          type: string
          format: uuid
        required: true
      - in: path
        name: key
        schema:
          type: string
          pattern: ^\w+$
        required: true
      tags:
      - machine
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/PatchedMachineSetting'
          application/x-www-form-urlencoded:
            schema:
              $ref: '#/components/schemas/PatchedMachineSetting'
          multipart/form-data:
            schema:
              $ref: '#/components/schemas/PatchedMachineSetting'
      security:
      - tokenAuth: []
      - basicAuth: []
      - cookieAuth: []
      - oauth2:
        - g:read
      responses:
        '200':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/MachineSetting'
          description: ''
  /api/machine/drivers/:
    get:
      operationId: machine_drivers_list
      description: List all machine drivers.
      tags:
      - machine
      security:
      - tokenAuth: []
      - basicAuth: []
      - cookieAuth: []
      - oauth2:
        - g:read
      responses:
        '200':
          content:
            application/json:
              schema:
                type: array
                items:
                  $ref: '#/components/schemas/MachineDriver'
          description: ''
  /api/machine/status/:
    get:
      operationId: machine_status_retrieve
      description: Provide status data for the machine registry.
      tags:
      - machine
      security:
      - tokenAuth: []
      - basicAuth: []
      - cookieAuth: []
      - oauth2:
        - g:read
      responses:
        '200':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/MachineRegistryStatus'
          description: ''
  /api/machine/types/:
    get:
      operationId: machine_types_list
      description: List all machine types.
      tags:
      - machine
      security:
      - tokenAuth: []
      - basicAuth: []
      - cookieAuth: []
      - oauth2:
        - g:read
      responses:
        '200':
          content:
            application/json:
              schema:
                type: array
                items:
                  $ref: '#/components/schemas/MachineType'
          description: ''
  /api/news/:
    get:
      operationId: news_list
      description: List view for all news items.
      parameters:
      - name: limit
        required: true
        in: query
        description: Number of results to return per page.
        schema:
          type: integer
      - name: offset
        required: false
        in: query
        description: The initial index from which to return the results.
        schema:
          type: integer
      - name: ordering
        required: false
        in: query
        description: 'Which field to use when ordering the results. Possible fields:
          published, author, read.'
        schema:
          type: string
      - in: query
        name: read
        schema:
          type: boolean
      tags:
      - news
      security:
      - tokenAuth: []
      - basicAuth: []
      - cookieAuth: []
      - oauth2:
        - a:staff
      responses:
        '200':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/PaginatedNewsFeedEntryList'
          description: ''
    delete:
      operationId: news_bulk_destroy
      description: |-
        Perform a DELETE operation against this list endpoint.

        Note that the typical DRF list endpoint does not support DELETE,
        so this method is provided as a custom implementation.
      tags:
      - news
      security:
      - tokenAuth: []
      - basicAuth: []
      - cookieAuth: []
      - oauth2:
        - a:staff
      responses:
        '204':
          description: No response body
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/BulkRequest'
          application/x-www-form-urlencoded:
            schema:
              $ref: '#/components/schemas/BulkRequest'
          multipart/form-data:
            schema:
              $ref: '#/components/schemas/BulkRequest'
        required: true
  /api/news/{id}/:
    get:
      operationId: news_retrieve
      description: Detail view for an individual news feed object.
      parameters:
      - in: path
        name: id
        schema:
          type: integer
        required: true
      tags:
      - news
      security:
      - tokenAuth: []
      - basicAuth: []
      - cookieAuth: []
      - oauth2:
        - a:staff
      responses:
        '200':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/NewsFeedEntry'
          description: ''
    put:
      operationId: news_update
      description: Detail view for an individual news feed object.
      parameters:
      - in: path
        name: id
        schema:
          type: integer
        required: true
      tags:
      - news
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/NewsFeedEntry'
          application/x-www-form-urlencoded:
            schema:
              $ref: '#/components/schemas/NewsFeedEntry'
          multipart/form-data:
            schema:
              $ref: '#/components/schemas/NewsFeedEntry'
        required: true
      security:
      - tokenAuth: []
      - basicAuth: []
      - cookieAuth: []
      - oauth2:
        - a:staff
      responses:
        '200':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/NewsFeedEntry'
          description: ''
    patch:
      operationId: news_partial_update
      description: Detail view for an individual news feed object.
      parameters:
      - in: path
        name: id
        schema:
          type: integer
        required: true
      tags:
      - news
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/PatchedNewsFeedEntry'
          application/x-www-form-urlencoded:
            schema:
              $ref: '#/components/schemas/PatchedNewsFeedEntry'
          multipart/form-data:
            schema:
              $ref: '#/components/schemas/PatchedNewsFeedEntry'
      security:
      - tokenAuth: []
      - basicAuth: []
      - cookieAuth: []
      - oauth2:
        - a:staff
      responses:
        '200':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/NewsFeedEntry'
          description: ''
    delete:
      operationId: news_destroy
      description: Detail view for an individual news feed object.
      parameters:
      - in: path
        name: id
        schema:
          type: integer
        required: true
      tags:
      - news
      security:
      - tokenAuth: []
      - basicAuth: []
      - cookieAuth: []
      - oauth2:
        - a:staff
      responses:
        '204':
          description: No response body
  /api/notes-image-upload/:
    get:
      operationId: notes_image_upload_list
      description: List view for all notes images.
      parameters:
      - name: limit
        required: true
        in: query
        description: Number of results to return per page.
        schema:
          type: integer
      - name: offset
        required: false
        in: query
        description: The initial index from which to return the results.
        schema:
          type: integer
      - name: ordering
        required: false
        in: query
        description: Which field to use when ordering the results.
        schema:
          type: string
      - name: search
        required: false
        in: query
        description: 'A search term. Searched fields: model_id, model_type, user.'
        schema:
          type: string
      tags:
      - notes-image-upload
      security:
      - tokenAuth: []
      - basicAuth: []
      - cookieAuth: []
      - oauth2:
        - g:read
      responses:
        '200':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/PaginatedNotesImageList'
          description: ''
    post:
      operationId: notes_image_upload_create
      description: List view for all notes images.
      tags:
      - notes-image-upload
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/NotesImage'
          application/x-www-form-urlencoded:
            schema:
              $ref: '#/components/schemas/NotesImage'
          multipart/form-data:
            schema:
              $ref: '#/components/schemas/NotesImage'
        required: true
      security:
      - tokenAuth: []
      - basicAuth: []
      - cookieAuth: []
      - oauth2:
        - g:read
      responses:
        '201':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/NotesImage'
          description: ''
  /api/notifications/:
    get:
      operationId: notifications_list
      description: List view for all notifications of the current user.
      parameters:
      - in: query
        name: category
        schema:
          type: string
      - name: limit
        required: true
        in: query
        description: Number of results to return per page.
        schema:
          type: integer
      - name: offset
        required: false
        in: query
        description: The initial index from which to return the results.
        schema:
          type: integer
      - name: ordering
        required: false
        in: query
        description: 'Which field to use when ordering the results. Possible fields:
          category, name, read, creation.'
        schema:
          type: string
      - in: query
        name: read
        schema:
          type: boolean
      - name: search
        required: false
        in: query
        description: 'A search term. Searched fields: message, name.'
        schema:
          type: string
      tags:
      - notifications
      security:
      - tokenAuth: []
      - basicAuth: []
      - cookieAuth: []
      - oauth2:
        - g:read
      responses:
        '200':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/PaginatedNotificationMessageList'
          description: ''
    delete:
      operationId: notifications_bulk_destroy
      description: |-
        Perform a DELETE operation against this list endpoint.

        Note that the typical DRF list endpoint does not support DELETE,
        so this method is provided as a custom implementation.
      tags:
      - notifications
      security:
      - tokenAuth: []
      - basicAuth: []
      - cookieAuth: []
      - oauth2:
        - g:read
      responses:
        '204':
          description: No response body
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/BulkRequest'
          application/x-www-form-urlencoded:
            schema:
              $ref: '#/components/schemas/BulkRequest'
          multipart/form-data:
            schema:
              $ref: '#/components/schemas/BulkRequest'
        required: true
  /api/notifications/{id}/:
    get:
      operationId: notifications_retrieve
      description: |-
        Detail view for an individual notification object.

        - User can only view / delete their own notification objects
      parameters:
      - in: path
        name: id
        schema:
          type: integer
        required: true
      tags:
      - notifications
      security:
      - tokenAuth: []
      - basicAuth: []
      - cookieAuth: []
      - oauth2:
        - g:read
      responses:
        '200':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/NotificationMessage'
          description: ''
    put:
      operationId: notifications_update
      description: |-
        Detail view for an individual notification object.

        - User can only view / delete their own notification objects
      parameters:
      - in: path
        name: id
        schema:
          type: integer
        required: true
      tags:
      - notifications
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/NotificationMessage'
          application/x-www-form-urlencoded:
            schema:
              $ref: '#/components/schemas/NotificationMessage'
          multipart/form-data:
            schema:
              $ref: '#/components/schemas/NotificationMessage'
        required: true
      security:
      - tokenAuth: []
      - basicAuth: []
      - cookieAuth: []
      - oauth2:
        - g:read
      responses:
        '200':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/NotificationMessage'
          description: ''
    patch:
      operationId: notifications_partial_update
      description: |-
        Detail view for an individual notification object.

        - User can only view / delete their own notification objects
      parameters:
      - in: path
        name: id
        schema:
          type: integer
        required: true
      tags:
      - notifications
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/PatchedNotificationMessage'
          application/x-www-form-urlencoded:
            schema:
              $ref: '#/components/schemas/PatchedNotificationMessage'
          multipart/form-data:
            schema:
              $ref: '#/components/schemas/PatchedNotificationMessage'
      security:
      - tokenAuth: []
      - basicAuth: []
      - cookieAuth: []
      - oauth2:
        - g:read
      responses:
        '200':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/NotificationMessage'
          description: ''
    delete:
      operationId: notifications_destroy
      description: |-
        Detail view for an individual notification object.

        - User can only view / delete their own notification objects
      parameters:
      - in: path
        name: id
        schema:
          type: integer
        required: true
      tags:
      - notifications
      security:
      - tokenAuth: []
      - basicAuth: []
      - cookieAuth: []
      - oauth2:
        - g:read
      responses:
        '204':
          description: No response body
  /api/notifications/readall/:
    get:
      operationId: notifications_readall_retrieve
      description: Set all messages for the current user as read.
      tags:
      - notifications
      security:
      - tokenAuth: []
      - basicAuth: []
      - cookieAuth: []
      - oauth2:
        - g:read
      responses:
        '200':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/NotificationMessage'
          description: ''
  /api/order/po/:
    get:
      operationId: order_po_list
      description: Override the GET method to determine export options.
      parameters:
      - in: query
        name: assigned_to
        schema:
          type: integer
        description: Responsible
      - in: query
        name: assigned_to_me
        schema:
          type: boolean
        description: Assigned to me
      - in: query
        name: completed_after
        schema:
          type: string
          format: date
        description: Completed After
      - in: query
        name: completed_before
        schema:
          type: string
          format: date
        description: Completed Before
      - in: query
        name: created_after
        schema:
          type: string
          format: date
        description: Created After
      - in: query
        name: created_before
        schema:
          type: string
          format: date
        description: Created Before
      - in: query
        name: created_by
        schema:
          type: integer
        description: Created By
      - in: query
        name: external_build
        schema:
          type: integer
        description: External Build Order
      - in: query
        name: has_project_code
        schema:
          type: boolean
        description: Has Project Code
      - in: query
        name: has_start_date
        schema:
          type: boolean
        description: Has Start Date
      - in: query
        name: has_target_date
        schema:
          type: boolean
        description: Has Target Date
      - name: limit
        required: true
        in: query
        description: Number of results to return per page.
        schema:
          type: integer
      - in: query
        name: max_date
        schema:
          type: string
          format: date
        description: Max Date
      - in: query
        name: min_date
        schema:
          type: string
          format: date
        description: Min Date
      - name: offset
        required: false
        in: query
        description: The initial index from which to return the results.
        schema:
          type: integer
      - name: ordering
        required: false
        in: query
        description: 'Which field to use when ordering the results. Possible fields:
          creation_date, created_by, reference, supplier__name, start_date, target_date,
          complete_date, line_items, status, responsible, total_price, project_code.'
        schema:
          type: string
      - in: query
        name: outstanding
        schema:
          type: boolean
        description: Outstanding
      - in: query
        name: overdue
        schema:
          type: boolean
        description: overdue
      - in: query
        name: part
        schema:
          type: integer
        description: Part
      - in: query
        name: project_code
        schema:
          type: integer
        description: Project Code
      - in: query
        name: reference
        schema:
          type: string
        description: Order Reference
      - name: search
        required: false
        in: query
        description: 'A search term. Searched fields: description, project_code__code,
          reference, supplier__name, supplier_reference.'
        schema:
          type: string
      - in: query
        name: start_date_after
        schema:
          type: string
          format: date
        description: Start Date After
      - in: query
        name: start_date_before
        schema:
          type: string
          format: date
        description: Start Date Before
      - in: query
        name: status
        schema:
          type: integer
        description: Order Status
      - in: query
        name: supplier
        schema:
          type: integer
      - in: query
        name: supplier_detail
        schema:
          type: boolean
          default: false
        description: Include detailed information about the supplier in the response
      - in: query
        name: supplier_part
        schema:
          type: integer
        description: Supplier Part
      - in: query
        name: target_date_after
        schema:
          type: string
          format: date
        description: Target Date After
      - in: query
        name: target_date_before
        schema:
          type: string
          format: date
        description: Target Date Before
      tags:
      - order
      security:
      - tokenAuth: []
      - basicAuth: []
      - cookieAuth: []
      - oauth2:
        - r:view:purchase_order
      responses:
        '200':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/PaginatedPurchaseOrderList'
          description: ''
    post:
      operationId: order_po_create
      description: |-
        API endpoint for accessing a list of PurchaseOrder objects.

        - GET: Return list of PurchaseOrder objects (with filters)
        - POST: Create a new PurchaseOrder object
      tags:
      - order
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/PurchaseOrder'
          application/x-www-form-urlencoded:
            schema:
              $ref: '#/components/schemas/PurchaseOrder'
          multipart/form-data:
            schema:
              $ref: '#/components/schemas/PurchaseOrder'
        required: true
      security:
      - tokenAuth: []
      - basicAuth: []
      - cookieAuth: []
      - oauth2:
        - r:add:purchase_order
      responses:
        '201':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/PurchaseOrder'
          description: ''
  /api/order/po-extra-line/:
    get:
      operationId: order_po_extra_line_list
      description: Override the GET method to determine export options.
      parameters:
      - name: limit
        required: true
        in: query
        description: Number of results to return per page.
        schema:
          type: integer
      - name: offset
        required: false
        in: query
        description: The initial index from which to return the results.
        schema:
          type: integer
      - in: query
        name: order
        schema:
          type: integer
      - in: query
        name: order_detail
        schema:
          type: boolean
          default: false
        description: Include detailed information about the sales order in the response
      - name: ordering
        required: false
        in: query
        description: 'Which field to use when ordering the results. Possible fields:
          quantity, notes, reference.'
        schema:
          type: string
      - name: search
        required: false
        in: query
        description: 'A search term. Searched fields: description, notes, quantity,
          reference.'
        schema:
          type: string
      tags:
      - order
      security:
      - tokenAuth: []
      - basicAuth: []
      - cookieAuth: []
      - oauth2:
        - r:view:purchase_order
      responses:
        '200':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/PaginatedPurchaseOrderExtraLineList'
          description: ''
    post:
      operationId: order_po_extra_line_create
      description: API endpoint for accessing a list of PurchaseOrderExtraLine objects.
      tags:
      - order
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/PurchaseOrderExtraLine'
          application/x-www-form-urlencoded:
            schema:
              $ref: '#/components/schemas/PurchaseOrderExtraLine'
          multipart/form-data:
            schema:
              $ref: '#/components/schemas/PurchaseOrderExtraLine'
        required: true
      security:
      - tokenAuth: []
      - basicAuth: []
      - cookieAuth: []
      - oauth2:
        - r:add:purchase_order
      responses:
        '201':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/PurchaseOrderExtraLine'
          description: ''
  /api/order/po-extra-line/{id}/:
    get:
      operationId: order_po_extra_line_retrieve
      description: API endpoint for detail view of a PurchaseOrderExtraLine object.
      parameters:
      - in: path
        name: id
        schema:
          type: integer
        required: true
      tags:
      - order
      security:
      - tokenAuth: []
      - basicAuth: []
      - cookieAuth: []
      - oauth2:
        - r:view:purchase_order
      responses:
        '200':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/PurchaseOrderExtraLine'
          description: ''
    put:
      operationId: order_po_extra_line_update
      description: API endpoint for detail view of a PurchaseOrderExtraLine object.
      parameters:
      - in: path
        name: id
        schema:
          type: integer
        required: true
      tags:
      - order
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/PurchaseOrderExtraLine'
          application/x-www-form-urlencoded:
            schema:
              $ref: '#/components/schemas/PurchaseOrderExtraLine'
          multipart/form-data:
            schema:
              $ref: '#/components/schemas/PurchaseOrderExtraLine'
        required: true
      security:
      - tokenAuth: []
      - basicAuth: []
      - cookieAuth: []
      - oauth2:
        - r:change:purchase_order
      responses:
        '200':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/PurchaseOrderExtraLine'
          description: ''
    patch:
      operationId: order_po_extra_line_partial_update
      description: API endpoint for detail view of a PurchaseOrderExtraLine object.
      parameters:
      - in: path
        name: id
        schema:
          type: integer
        required: true
      tags:
      - order
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/PatchedPurchaseOrderExtraLine'
          application/x-www-form-urlencoded:
            schema:
              $ref: '#/components/schemas/PatchedPurchaseOrderExtraLine'
          multipart/form-data:
            schema:
              $ref: '#/components/schemas/PatchedPurchaseOrderExtraLine'
      security:
      - tokenAuth: []
      - basicAuth: []
      - cookieAuth: []
      - oauth2:
        - r:change:purchase_order
      responses:
        '200':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/PurchaseOrderExtraLine'
          description: ''
    delete:
      operationId: order_po_extra_line_destroy
      description: API endpoint for detail view of a PurchaseOrderExtraLine object.
      parameters:
      - in: path
        name: id
        schema:
          type: integer
        required: true
      tags:
      - order
      security:
      - tokenAuth: []
      - basicAuth: []
      - cookieAuth: []
      - oauth2:
        - r:delete:purchase_order
      responses:
        '204':
          description: No response body
  /api/order/po-extra-line/{id}/metadata/:
    get:
      operationId: order_po_extra_line_metadata_retrieve
      description: Generic API endpoint for reading and editing metadata for a model.
      parameters:
      - in: path
        name: id
        schema:
          type: integer
        required: true
      tags:
      - order
      security:
      - tokenAuth: []
      - basicAuth: []
      - cookieAuth: []
      - oauth2:
        - r:view:purchase_order
      responses:
        '200':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Metadata'
          description: ''
    put:
      operationId: order_po_extra_line_metadata_update
      description: Generic API endpoint for reading and editing metadata for a model.
      parameters:
      - in: path
        name: id
        schema:
          type: integer
        required: true
      tags:
      - order
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/Metadata'
          application/x-www-form-urlencoded:
            schema:
              $ref: '#/components/schemas/Metadata'
          multipart/form-data:
            schema:
              $ref: '#/components/schemas/Metadata'
        required: true
      security:
      - tokenAuth: []
      - basicAuth: []
      - cookieAuth: []
      - oauth2:
        - r:change:purchase_order
      responses:
        '200':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Metadata'
          description: ''
    patch:
      operationId: order_po_extra_line_metadata_partial_update
      description: Generic API endpoint for reading and editing metadata for a model.
      parameters:
      - in: path
        name: id
        schema:
          type: integer
        required: true
      tags:
      - order
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/PatchedMetadata'
          application/x-www-form-urlencoded:
            schema:
              $ref: '#/components/schemas/PatchedMetadata'
          multipart/form-data:
            schema:
              $ref: '#/components/schemas/PatchedMetadata'
      security:
      - tokenAuth: []
      - basicAuth: []
      - cookieAuth: []
      - oauth2:
        - r:change:purchase_order
      responses:
        '200':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Metadata'
          description: ''
  /api/order/po-line/:
    get:
      operationId: order_po_line_list
      description: Override the GET method to determine export options.
      parameters:
      - in: query
        name: base_part
        schema:
          type: integer
        description: Internal Part
      - in: query
        name: has_pricing
        schema:
          type: boolean
        description: Has Pricing
      - in: query
        name: include_variants
        schema:
          type: boolean
        description: Include Variants
      - name: limit
        required: true
        in: query
        description: Number of results to return per page.
        schema:
          type: integer
      - name: offset
        required: false
        in: query
        description: The initial index from which to return the results.
        schema:
          type: integer
      - in: query
        name: order
        schema:
          type: integer
        description: Order
      - in: query
        name: order_complete
        schema:
          type: boolean
        description: Order Complete
      - in: query
        name: order_detail
        schema:
          type: boolean
          default: false
        description: Include detailed information about the sales order in the response
      - in: query
        name: order_status
        schema:
          type: integer
        description: Order Status
      - name: ordering
        required: false
        in: query
        description: 'Which field to use when ordering the results. Possible fields:
          MPN, part_name, purchase_price, quantity, received, reference, SKU, IPN,
          total_price, target_date, order, status, complete_date.'
        schema:
          type: string
      - in: query
        name: part
        schema:
          type: integer
        description: Supplier Part
      - in: query
        name: part_detail
        schema:
          type: boolean
          default: false
        description: Include detailed information about the related part in the response
      - in: query
        name: pending
        schema:
          type: boolean
        description: Order Pending
      - in: query
        name: received
        schema:
          type: boolean
        description: Items Received
      - name: search
        required: false
        in: query
        description: 'A search term. Searched fields: part__SKU, part__manufacturer_part__MPN,
          part__part__description, part__part__name, reference.'
        schema:
          type: string
      tags:
      - order
      security:
      - tokenAuth: []
      - basicAuth: []
      - cookieAuth: []
      - oauth2:
        - r:view:purchase_order
      responses:
        '200':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/PaginatedPurchaseOrderLineItemList'
          description: ''
    post:
      operationId: order_po_line_create
      description: |-
        API endpoint for accessing a list of PurchaseOrderLineItem objects.

        - GET: Return a list of PurchaseOrder Line Item objects
        - POST: Create a new PurchaseOrderLineItem object
      tags:
      - order
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/PurchaseOrderLineItem'
          application/x-www-form-urlencoded:
            schema:
              $ref: '#/components/schemas/PurchaseOrderLineItem'
          multipart/form-data:
            schema:
              $ref: '#/components/schemas/PurchaseOrderLineItem'
        required: true
      security:
      - tokenAuth: []
      - basicAuth: []
      - cookieAuth: []
      - oauth2:
        - r:add:purchase_order
      responses:
        '201':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/PurchaseOrderLineItem'
          description: ''
    delete:
      operationId: order_po_line_bulk_destroy
      description: |-
        Perform a DELETE operation against this list endpoint.

        Note that the typical DRF list endpoint does not support DELETE,
        so this method is provided as a custom implementation.
      tags:
      - order
      security:
      - tokenAuth: []
      - basicAuth: []
      - cookieAuth: []
      - oauth2:
        - r:delete:purchase_order
      responses:
        '204':
          description: No response body
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/BulkRequest'
          application/x-www-form-urlencoded:
            schema:
              $ref: '#/components/schemas/BulkRequest'
          multipart/form-data:
            schema:
              $ref: '#/components/schemas/BulkRequest'
        required: true
  /api/order/po-line/{id}/:
    get:
      operationId: order_po_line_retrieve
      description: Detail API endpoint for PurchaseOrderLineItem object.
      parameters:
      - in: path
        name: id
        schema:
          type: integer
        required: true
      - in: query
        name: order_detail
        schema:
          type: boolean
          default: false
        description: Include detailed information about the sales order in the response
      - in: query
        name: part_detail
        schema:
          type: boolean
          default: false
        description: Include detailed information about the related part in the response
      tags:
      - order
      security:
      - tokenAuth: []
      - basicAuth: []
      - cookieAuth: []
      - oauth2:
        - r:view:purchase_order
      responses:
        '200':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/PurchaseOrderLineItem'
          description: ''
    put:
      operationId: order_po_line_update
      description: Detail API endpoint for PurchaseOrderLineItem object.
      parameters:
      - in: path
        name: id
        schema:
          type: integer
        required: true
      tags:
      - order
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/PurchaseOrderLineItem'
          application/x-www-form-urlencoded:
            schema:
              $ref: '#/components/schemas/PurchaseOrderLineItem'
          multipart/form-data:
            schema:
              $ref: '#/components/schemas/PurchaseOrderLineItem'
        required: true
      security:
      - tokenAuth: []
      - basicAuth: []
      - cookieAuth: []
      - oauth2:
        - r:change:purchase_order
      responses:
        '200':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/PurchaseOrderLineItem'
          description: ''
    patch:
      operationId: order_po_line_partial_update
      description: Detail API endpoint for PurchaseOrderLineItem object.
      parameters:
      - in: path
        name: id
        schema:
          type: integer
        required: true
      tags:
      - order
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/PatchedPurchaseOrderLineItem'
          application/x-www-form-urlencoded:
            schema:
              $ref: '#/components/schemas/PatchedPurchaseOrderLineItem'
          multipart/form-data:
            schema:
              $ref: '#/components/schemas/PatchedPurchaseOrderLineItem'
      security:
      - tokenAuth: []
      - basicAuth: []
      - cookieAuth: []
      - oauth2:
        - r:change:purchase_order
      responses:
        '200':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/PurchaseOrderLineItem'
          description: ''
    delete:
      operationId: order_po_line_destroy
      description: Detail API endpoint for PurchaseOrderLineItem object.
      parameters:
      - in: path
        name: id
        schema:
          type: integer
        required: true
      tags:
      - order
      security:
      - tokenAuth: []
      - basicAuth: []
      - cookieAuth: []
      - oauth2:
        - r:delete:purchase_order
      responses:
        '204':
          description: No response body
  /api/order/po-line/{id}/metadata/:
    get:
      operationId: order_po_line_metadata_retrieve
      description: Generic API endpoint for reading and editing metadata for a model.
      parameters:
      - in: path
        name: id
        schema:
          type: integer
        required: true
      tags:
      - order
      security:
      - tokenAuth: []
      - basicAuth: []
      - cookieAuth: []
      - oauth2:
        - r:view:purchase_order
      responses:
        '200':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Metadata'
          description: ''
    put:
      operationId: order_po_line_metadata_update
      description: Generic API endpoint for reading and editing metadata for a model.
      parameters:
      - in: path
        name: id
        schema:
          type: integer
        required: true
      tags:
      - order
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/Metadata'
          application/x-www-form-urlencoded:
            schema:
              $ref: '#/components/schemas/Metadata'
          multipart/form-data:
            schema:
              $ref: '#/components/schemas/Metadata'
        required: true
      security:
      - tokenAuth: []
      - basicAuth: []
      - cookieAuth: []
      - oauth2:
        - r:change:purchase_order
      responses:
        '200':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Metadata'
          description: ''
    patch:
      operationId: order_po_line_metadata_partial_update
      description: Generic API endpoint for reading and editing metadata for a model.
      parameters:
      - in: path
        name: id
        schema:
          type: integer
        required: true
      tags:
      - order
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/PatchedMetadata'
          application/x-www-form-urlencoded:
            schema:
              $ref: '#/components/schemas/PatchedMetadata'
          multipart/form-data:
            schema:
              $ref: '#/components/schemas/PatchedMetadata'
      security:
      - tokenAuth: []
      - basicAuth: []
      - cookieAuth: []
      - oauth2:
        - r:change:purchase_order
      responses:
        '200':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Metadata'
          description: ''
  /api/order/po/{id}/:
    get:
      operationId: order_po_retrieve
      description: API endpoint for detail view of a PurchaseOrder object.
      parameters:
      - in: path
        name: id
        schema:
          type: integer
        required: true
      - in: query
        name: supplier_detail
        schema:
          type: boolean
          default: false
        description: Include detailed information about the supplier in the response
      tags:
      - order
      security:
      - tokenAuth: []
      - basicAuth: []
      - cookieAuth: []
      - oauth2:
        - r:view:purchase_order
      responses:
        '200':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/PurchaseOrder'
          description: ''
    put:
      operationId: order_po_update
      description: API endpoint for detail view of a PurchaseOrder object.
      parameters:
      - in: path
        name: id
        schema:
          type: integer
        required: true
      tags:
      - order
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/PurchaseOrder'
          application/x-www-form-urlencoded:
            schema:
              $ref: '#/components/schemas/PurchaseOrder'
          multipart/form-data:
            schema:
              $ref: '#/components/schemas/PurchaseOrder'
        required: true
      security:
      - tokenAuth: []
      - basicAuth: []
      - cookieAuth: []
      - oauth2:
        - r:change:purchase_order
      responses:
        '200':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/PurchaseOrder'
          description: ''
    patch:
      operationId: order_po_partial_update
      description: API endpoint for detail view of a PurchaseOrder object.
      parameters:
      - in: path
        name: id
        schema:
          type: integer
        required: true
      tags:
      - order
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/PatchedPurchaseOrder'
          application/x-www-form-urlencoded:
            schema:
              $ref: '#/components/schemas/PatchedPurchaseOrder'
          multipart/form-data:
            schema:
              $ref: '#/components/schemas/PatchedPurchaseOrder'
      security:
      - tokenAuth: []
      - basicAuth: []
      - cookieAuth: []
      - oauth2:
        - r:change:purchase_order
      responses:
        '200':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/PurchaseOrder'
          description: ''
    delete:
      operationId: order_po_destroy
      description: API endpoint for detail view of a PurchaseOrder object.
      parameters:
      - in: path
        name: id
        schema:
          type: integer
        required: true
      tags:
      - order
      security:
      - tokenAuth: []
      - basicAuth: []
      - cookieAuth: []
      - oauth2:
        - r:delete:purchase_order
      responses:
        '204':
          description: No response body
  /api/order/po/{id}/cancel/:
    post:
      operationId: order_po_cancel_create
      description: |-
        API endpoint to 'cancel' a purchase order.

        The purchase order must be in a state which can be cancelled
      parameters:
      - in: path
        name: id
        schema:
          type: integer
        required: true
      tags:
      - order
      security:
      - tokenAuth: []
      - basicAuth: []
      - cookieAuth: []
      - oauth2:
        - g:read
      responses:
        '201':
          description: No response body
  /api/order/po/{id}/complete/:
    post:
      operationId: order_po_complete_create
      description: API endpoint to 'complete' a purchase order.
      parameters:
      - in: path
        name: id
        schema:
          type: integer
        required: true
      tags:
      - order
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/PurchaseOrderComplete'
          application/x-www-form-urlencoded:
            schema:
              $ref: '#/components/schemas/PurchaseOrderComplete'
          multipart/form-data:
            schema:
              $ref: '#/components/schemas/PurchaseOrderComplete'
      security:
      - tokenAuth: []
      - basicAuth: []
      - cookieAuth: []
      - oauth2:
        - g:read
      responses:
        '201':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/PurchaseOrderComplete'
          description: ''
  /api/order/po/{id}/hold/:
    post:
      operationId: order_po_hold_create
      description: API endpoint to place a PurchaseOrder on hold.
      parameters:
      - in: path
        name: id
        schema:
          type: integer
        required: true
      tags:
      - order
      security:
      - tokenAuth: []
      - basicAuth: []
      - cookieAuth: []
      - oauth2:
        - g:read
      responses:
        '201':
          description: No response body
  /api/order/po/{id}/issue/:
    post:
      operationId: order_po_issue_create
      description: API endpoint to 'issue' (place) a PurchaseOrder.
      parameters:
      - in: path
        name: id
        schema:
          type: integer
        required: true
      tags:
      - order
      security:
      - tokenAuth: []
      - basicAuth: []
      - cookieAuth: []
      - oauth2:
        - g:read
      responses:
        '201':
          description: No response body
  /api/order/po/{id}/metadata/:
    get:
      operationId: order_po_metadata_retrieve
      description: Generic API endpoint for reading and editing metadata for a model.
      parameters:
      - in: path
        name: id
        schema:
          type: integer
        required: true
      tags:
      - order
      security:
      - tokenAuth: []
      - basicAuth: []
      - cookieAuth: []
      - oauth2:
        - r:view:purchase_order
      responses:
        '200':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Metadata'
          description: ''
    put:
      operationId: order_po_metadata_update
      description: Generic API endpoint for reading and editing metadata for a model.
      parameters:
      - in: path
        name: id
        schema:
          type: integer
        required: true
      tags:
      - order
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/Metadata'
          application/x-www-form-urlencoded:
            schema:
              $ref: '#/components/schemas/Metadata'
          multipart/form-data:
            schema:
              $ref: '#/components/schemas/Metadata'
        required: true
      security:
      - tokenAuth: []
      - basicAuth: []
      - cookieAuth: []
      - oauth2:
        - r:change:purchase_order
      responses:
        '200':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Metadata'
          description: ''
    patch:
      operationId: order_po_metadata_partial_update
      description: Generic API endpoint for reading and editing metadata for a model.
      parameters:
      - in: path
        name: id
        schema:
          type: integer
        required: true
      tags:
      - order
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/PatchedMetadata'
          application/x-www-form-urlencoded:
            schema:
              $ref: '#/components/schemas/PatchedMetadata'
          multipart/form-data:
            schema:
              $ref: '#/components/schemas/PatchedMetadata'
      security:
      - tokenAuth: []
      - basicAuth: []
      - cookieAuth: []
      - oauth2:
        - r:change:purchase_order
      responses:
        '200':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Metadata'
          description: ''
  /api/order/po/{id}/receive/:
    post:
      operationId: order_po_receive_create
      description: |-
        API endpoint to receive stock items against a PurchaseOrder.

        - The purchase order is specified in the URL.
        - Items to receive are specified as a list called "items" with the following options:
            - line_item: pk of the PO Line item
            - supplier_part: pk value of the supplier part
            - quantity: quantity to receive
            - status: stock item status
            - expiry_date: stock item expiry date (optional)
            - location: destination for stock item (optional)
            - batch_code: the batch code for this stock item
            - serial_numbers: serial numbers for this stock item
        - A global location must also be specified. This is used when no locations are specified for items, and no location is given in the PO line item
      parameters:
      - in: path
        name: id
        schema:
          type: integer
        required: true
      tags:
      - order
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/PurchaseOrderReceive'
          application/x-www-form-urlencoded:
            schema:
              $ref: '#/components/schemas/PurchaseOrderReceive'
          multipart/form-data:
            schema:
              $ref: '#/components/schemas/PurchaseOrderReceive'
        required: true
      security:
      - tokenAuth: []
      - basicAuth: []
      - cookieAuth: []
      - oauth2:
        - g:read
      responses:
        '201':
          content:
            application/json:
              schema:
                type: array
                items:
                  $ref: '#/components/schemas/StockItem'
          description: ''
  /api/order/po/status/:
    get:
      operationId: order_po_status_retrieve
      description: Retrieve information about a specific status code
      tags:
      - order
      security:
      - tokenAuth: []
      - basicAuth: []
      - cookieAuth: []
      - oauth2:
        - g:read
      responses:
        '200':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/GenericStateClass'
          description: ''
        '400':
          description: Invalid request
  /api/order/ro/:
    get:
      operationId: order_ro_list
      description: Override the GET method to determine export options.
      parameters:
      - in: query
        name: assigned_to
        schema:
          type: integer
        description: Responsible
      - in: query
        name: assigned_to_me
        schema:
          type: boolean
        description: Assigned to me
      - in: query
        name: completed_after
        schema:
          type: string
          format: date
        description: Completed After
      - in: query
        name: completed_before
        schema:
          type: string
          format: date
        description: Completed Before
      - in: query
        name: created_after
        schema:
          type: string
          format: date
        description: Created After
      - in: query
        name: created_before
        schema:
          type: string
          format: date
        description: Created Before
      - in: query
        name: created_by
        schema:
          type: integer
        description: Created By
      - in: query
        name: customer
        schema:
          type: integer
      - in: query
        name: customer_detail
        schema:
          type: boolean
          default: false
        description: Include detailed information about the customer in the response
      - in: query
        name: has_project_code
        schema:
          type: boolean
        description: Has Project Code
      - in: query
        name: has_start_date
        schema:
          type: boolean
        description: Has Start Date
      - in: query
        name: has_target_date
        schema:
          type: boolean
        description: Has Target Date
      - in: query
        name: include_variants
        schema:
          type: boolean
        description: Include Variants
      - name: limit
        required: true
        in: query
        description: Number of results to return per page.
        schema:
          type: integer
      - in: query
        name: max_date
        schema:
          type: string
          format: date
        description: Max Date
      - in: query
        name: min_date
        schema:
          type: string
          format: date
        description: Min Date
      - name: offset
        required: false
        in: query
        description: The initial index from which to return the results.
        schema:
          type: integer
      - name: ordering
        required: false
        in: query
        description: 'Which field to use when ordering the results. Possible fields:
          creation_date, created_by, reference, customer__name, customer_reference,
          line_items, status, start_date, target_date, complete_date, project_code.'
        schema:
          type: string
      - in: query
        name: outstanding
        schema:
          type: boolean
        description: Outstanding
      - in: query
        name: overdue
        schema:
          type: boolean
        description: overdue
      - in: query
        name: part
        schema:
          type: integer
      - in: query
        name: project_code
        schema:
          type: integer
        description: Project Code
      - in: query
        name: reference
        schema:
          type: string
        description: Order Reference
      - name: search
        required: false
        in: query
        description: 'A search term. Searched fields: customer__name, customer_reference,
          description, project_code__code, reference.'
        schema:
          type: string
      - in: query
        name: start_date_after
        schema:
          type: string
          format: date
        description: Start Date After
      - in: query
        name: start_date_before
        schema:
          type: string
          format: date
        description: Start Date Before
      - in: query
        name: status
        schema:
          type: integer
        description: Order Status
      - in: query
        name: target_date_after
        schema:
          type: string
          format: date
        description: Target Date After
      - in: query
        name: target_date_before
        schema:
          type: string
          format: date
        description: Target Date Before
      tags:
      - order
      security:
      - tokenAuth: []
      - basicAuth: []
      - cookieAuth: []
      - oauth2:
        - r:view:return_order
      responses:
        '200':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/PaginatedReturnOrderList'
          description: ''
    post:
      operationId: order_ro_create
      description: API endpoint for accessing a list of ReturnOrder objects.
      tags:
      - order
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/ReturnOrder'
          application/x-www-form-urlencoded:
            schema:
              $ref: '#/components/schemas/ReturnOrder'
          multipart/form-data:
            schema:
              $ref: '#/components/schemas/ReturnOrder'
        required: true
      security:
      - tokenAuth: []
      - basicAuth: []
      - cookieAuth: []
      - oauth2:
        - r:add:return_order
      responses:
        '201':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ReturnOrder'
          description: ''
  /api/order/ro-extra-line/:
    get:
      operationId: order_ro_extra_line_list
      description: Override the GET method to determine export options.
      parameters:
      - name: limit
        required: true
        in: query
        description: Number of results to return per page.
        schema:
          type: integer
      - name: offset
        required: false
        in: query
        description: The initial index from which to return the results.
        schema:
          type: integer
      - in: query
        name: order
        schema:
          type: integer
      - in: query
        name: order_detail
        schema:
          type: boolean
          default: false
        description: Include detailed information about the sales order in the response
      - name: ordering
        required: false
        in: query
        description: 'Which field to use when ordering the results. Possible fields:
          quantity, notes, reference.'
        schema:
          type: string
      - name: search
        required: false
        in: query
        description: 'A search term. Searched fields: description, notes, quantity,
          reference.'
        schema:
          type: string
      tags:
      - order
      security:
      - tokenAuth: []
      - basicAuth: []
      - cookieAuth: []
      - oauth2:
        - r:view:return_order
      responses:
        '200':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/PaginatedReturnOrderExtraLineList'
          description: ''
    post:
      operationId: order_ro_extra_line_create
      description: API endpoint for accessing a list of ReturnOrderExtraLine objects.
      tags:
      - order
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/ReturnOrderExtraLine'
          application/x-www-form-urlencoded:
            schema:
              $ref: '#/components/schemas/ReturnOrderExtraLine'
          multipart/form-data:
            schema:
              $ref: '#/components/schemas/ReturnOrderExtraLine'
        required: true
      security:
      - tokenAuth: []
      - basicAuth: []
      - cookieAuth: []
      - oauth2:
        - r:add:return_order
      responses:
        '201':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ReturnOrderExtraLine'
          description: ''
  /api/order/ro-extra-line/{id}/:
    get:
      operationId: order_ro_extra_line_retrieve
      description: API endpoint for detail view of a ReturnOrderExtraLine object.
      parameters:
      - in: path
        name: id
        schema:
          type: integer
        required: true
      tags:
      - order
      security:
      - tokenAuth: []
      - basicAuth: []
      - cookieAuth: []
      - oauth2:
        - r:view:return_order
      responses:
        '200':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ReturnOrderExtraLine'
          description: ''
    put:
      operationId: order_ro_extra_line_update
      description: API endpoint for detail view of a ReturnOrderExtraLine object.
      parameters:
      - in: path
        name: id
        schema:
          type: integer
        required: true
      tags:
      - order
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/ReturnOrderExtraLine'
          application/x-www-form-urlencoded:
            schema:
              $ref: '#/components/schemas/ReturnOrderExtraLine'
          multipart/form-data:
            schema:
              $ref: '#/components/schemas/ReturnOrderExtraLine'
        required: true
      security:
      - tokenAuth: []
      - basicAuth: []
      - cookieAuth: []
      - oauth2:
        - r:change:return_order
      responses:
        '200':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ReturnOrderExtraLine'
          description: ''
    patch:
      operationId: order_ro_extra_line_partial_update
      description: API endpoint for detail view of a ReturnOrderExtraLine object.
      parameters:
      - in: path
        name: id
        schema:
          type: integer
        required: true
      tags:
      - order
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/PatchedReturnOrderExtraLine'
          application/x-www-form-urlencoded:
            schema:
              $ref: '#/components/schemas/PatchedReturnOrderExtraLine'
          multipart/form-data:
            schema:
              $ref: '#/components/schemas/PatchedReturnOrderExtraLine'
      security:
      - tokenAuth: []
      - basicAuth: []
      - cookieAuth: []
      - oauth2:
        - r:change:return_order
      responses:
        '200':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ReturnOrderExtraLine'
          description: ''
    delete:
      operationId: order_ro_extra_line_destroy
      description: API endpoint for detail view of a ReturnOrderExtraLine object.
      parameters:
      - in: path
        name: id
        schema:
          type: integer
        required: true
      tags:
      - order
      security:
      - tokenAuth: []
      - basicAuth: []
      - cookieAuth: []
      - oauth2:
        - r:delete:return_order
      responses:
        '204':
          description: No response body
  /api/order/ro-extra-line/{id}/metadata/:
    get:
      operationId: order_ro_extra_line_metadata_retrieve
      description: Generic API endpoint for reading and editing metadata for a model.
      parameters:
      - in: path
        name: id
        schema:
          type: integer
        required: true
      tags:
      - order
      security:
      - tokenAuth: []
      - basicAuth: []
      - cookieAuth: []
      - oauth2:
        - r:view:return_order
      responses:
        '200':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Metadata'
          description: ''
    put:
      operationId: order_ro_extra_line_metadata_update
      description: Generic API endpoint for reading and editing metadata for a model.
      parameters:
      - in: path
        name: id
        schema:
          type: integer
        required: true
      tags:
      - order
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/Metadata'
          application/x-www-form-urlencoded:
            schema:
              $ref: '#/components/schemas/Metadata'
          multipart/form-data:
            schema:
              $ref: '#/components/schemas/Metadata'
        required: true
      security:
      - tokenAuth: []
      - basicAuth: []
      - cookieAuth: []
      - oauth2:
        - r:change:return_order
      responses:
        '200':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Metadata'
          description: ''
    patch:
      operationId: order_ro_extra_line_metadata_partial_update
      description: Generic API endpoint for reading and editing metadata for a model.
      parameters:
      - in: path
        name: id
        schema:
          type: integer
        required: true
      tags:
      - order
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/PatchedMetadata'
          application/x-www-form-urlencoded:
            schema:
              $ref: '#/components/schemas/PatchedMetadata'
          multipart/form-data:
            schema:
              $ref: '#/components/schemas/PatchedMetadata'
      security:
      - tokenAuth: []
      - basicAuth: []
      - cookieAuth: []
      - oauth2:
        - r:change:return_order
      responses:
        '200':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Metadata'
          description: ''
  /api/order/ro-line/:
    get:
      operationId: order_ro_line_list
      description: Override the GET method to determine export options.
      parameters:
      - in: query
        name: has_pricing
        schema:
          type: boolean
        description: Has Pricing
      - in: query
        name: item
        schema:
          type: integer
      - in: query
        name: item_detail
        schema:
          type: boolean
          default: true
        description: Include detailed information about the item in the response
      - name: limit
        required: true
        in: query
        description: Number of results to return per page.
        schema:
          type: integer
      - name: offset
        required: false
        in: query
        description: The initial index from which to return the results.
        schema:
          type: integer
      - in: query
        name: order
        schema:
          type: integer
      - in: query
        name: order_detail
        schema:
          type: boolean
          default: false
        description: Include detailed information about the sales order in the response
      - in: query
        name: order_status
        schema:
          type: integer
        description: Order Status
      - name: ordering
        required: false
        in: query
        description: 'Which field to use when ordering the results. Possible fields:
          reference, target_date, received_date.'
        schema:
          type: string
      - in: query
        name: outcome
        schema:
          type: integer
        description: outcome
      - in: query
        name: part_detail
        schema:
          type: boolean
          default: false
        description: Include detailed information about the related part in the response
      - in: query
        name: received
        schema:
          type: boolean
        description: received
      - name: search
        required: false
        in: query
        description: 'A search term. Searched fields: item__part__description, item__part__name,
          item__serial, reference.'
        schema:
          type: string
      tags:
      - order
      security:
      - tokenAuth: []
      - basicAuth: []
      - cookieAuth: []
      - oauth2:
        - r:view:return_order
      responses:
        '200':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/PaginatedReturnOrderLineItemList'
          description: ''
    post:
      operationId: order_ro_line_create
      description: API endpoint for accessing a list of ReturnOrderLineItemList objects.
      tags:
      - order
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/ReturnOrderLineItem'
          application/x-www-form-urlencoded:
            schema:
              $ref: '#/components/schemas/ReturnOrderLineItem'
          multipart/form-data:
            schema:
              $ref: '#/components/schemas/ReturnOrderLineItem'
        required: true
      security:
      - tokenAuth: []
      - basicAuth: []
      - cookieAuth: []
      - oauth2:
        - r:add:return_order
      responses:
        '201':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ReturnOrderLineItem'
          description: ''
  /api/order/ro-line/{id}/:
    get:
      operationId: order_ro_line_retrieve
      description: API endpoint for detail view of a ReturnOrderLineItem object.
      parameters:
      - in: path
        name: id
        schema:
          type: integer
        required: true
      - in: query
        name: item_detail
        schema:
          type: boolean
          default: true
        description: Include detailed information about the item in the response
      - in: query
        name: order_detail
        schema:
          type: boolean
          default: false
        description: Include detailed information about the sales order in the response
      - in: query
        name: part_detail
        schema:
          type: boolean
          default: false
        description: Include detailed information about the related part in the response
      tags:
      - order
      security:
      - tokenAuth: []
      - basicAuth: []
      - cookieAuth: []
      - oauth2:
        - r:view:return_order
      responses:
        '200':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ReturnOrderLineItem'
          description: ''
    put:
      operationId: order_ro_line_update
      description: API endpoint for detail view of a ReturnOrderLineItem object.
      parameters:
      - in: path
        name: id
        schema:
          type: integer
        required: true
      tags:
      - order
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/ReturnOrderLineItem'
          application/x-www-form-urlencoded:
            schema:
              $ref: '#/components/schemas/ReturnOrderLineItem'
          multipart/form-data:
            schema:
              $ref: '#/components/schemas/ReturnOrderLineItem'
        required: true
      security:
      - tokenAuth: []
      - basicAuth: []
      - cookieAuth: []
      - oauth2:
        - r:change:return_order
      responses:
        '200':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ReturnOrderLineItem'
          description: ''
    patch:
      operationId: order_ro_line_partial_update
      description: API endpoint for detail view of a ReturnOrderLineItem object.
      parameters:
      - in: path
        name: id
        schema:
          type: integer
        required: true
      tags:
      - order
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/PatchedReturnOrderLineItem'
          application/x-www-form-urlencoded:
            schema:
              $ref: '#/components/schemas/PatchedReturnOrderLineItem'
          multipart/form-data:
            schema:
              $ref: '#/components/schemas/PatchedReturnOrderLineItem'
      security:
      - tokenAuth: []
      - basicAuth: []
      - cookieAuth: []
      - oauth2:
        - r:change:return_order
      responses:
        '200':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ReturnOrderLineItem'
          description: ''
    delete:
      operationId: order_ro_line_destroy
      description: API endpoint for detail view of a ReturnOrderLineItem object.
      parameters:
      - in: path
        name: id
        schema:
          type: integer
        required: true
      tags:
      - order
      security:
      - tokenAuth: []
      - basicAuth: []
      - cookieAuth: []
      - oauth2:
        - r:delete:return_order
      responses:
        '204':
          description: No response body
  /api/order/ro-line/{id}/metadata/:
    get:
      operationId: order_ro_line_metadata_retrieve
      description: Generic API endpoint for reading and editing metadata for a model.
      parameters:
      - in: path
        name: id
        schema:
          type: integer
        required: true
      tags:
      - order
      security:
      - tokenAuth: []
      - basicAuth: []
      - cookieAuth: []
      - oauth2:
        - r:view:return_order
      responses:
        '200':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Metadata'
          description: ''
    put:
      operationId: order_ro_line_metadata_update
      description: Generic API endpoint for reading and editing metadata for a model.
      parameters:
      - in: path
        name: id
        schema:
          type: integer
        required: true
      tags:
      - order
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/Metadata'
          application/x-www-form-urlencoded:
            schema:
              $ref: '#/components/schemas/Metadata'
          multipart/form-data:
            schema:
              $ref: '#/components/schemas/Metadata'
        required: true
      security:
      - tokenAuth: []
      - basicAuth: []
      - cookieAuth: []
      - oauth2:
        - r:change:return_order
      responses:
        '200':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Metadata'
          description: ''
    patch:
      operationId: order_ro_line_metadata_partial_update
      description: Generic API endpoint for reading and editing metadata for a model.
      parameters:
      - in: path
        name: id
        schema:
          type: integer
        required: true
      tags:
      - order
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/PatchedMetadata'
          application/x-www-form-urlencoded:
            schema:
              $ref: '#/components/schemas/PatchedMetadata'
          multipart/form-data:
            schema:
              $ref: '#/components/schemas/PatchedMetadata'
      security:
      - tokenAuth: []
      - basicAuth: []
      - cookieAuth: []
      - oauth2:
        - r:change:return_order
      responses:
        '200':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Metadata'
          description: ''
  /api/order/ro-line/status/:
    get:
      operationId: order_ro_line_status_retrieve
      description: Retrieve information about a specific status code
      tags:
      - order
      security:
      - tokenAuth: []
      - basicAuth: []
      - cookieAuth: []
      - oauth2:
        - g:read
      responses:
        '200':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/GenericStateClass'
          description: ''
        '400':
          description: Invalid request
  /api/order/ro/{id}/:
    get:
      operationId: order_ro_retrieve
      description: API endpoint for detail view of a single ReturnOrder object.
      parameters:
      - in: query
        name: customer_detail
        schema:
          type: boolean
          default: false
        description: Include detailed information about the customer in the response
      - in: path
        name: id
        schema:
          type: integer
        required: true
      tags:
      - order
      security:
      - tokenAuth: []
      - basicAuth: []
      - cookieAuth: []
      - oauth2:
        - r:view:return_order
      responses:
        '200':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ReturnOrder'
          description: ''
    put:
      operationId: order_ro_update
      description: API endpoint for detail view of a single ReturnOrder object.
      parameters:
      - in: path
        name: id
        schema:
          type: integer
        required: true
      tags:
      - order
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/ReturnOrder'
          application/x-www-form-urlencoded:
            schema:
              $ref: '#/components/schemas/ReturnOrder'
          multipart/form-data:
            schema:
              $ref: '#/components/schemas/ReturnOrder'
        required: true
      security:
      - tokenAuth: []
      - basicAuth: []
      - cookieAuth: []
      - oauth2:
        - r:change:return_order
      responses:
        '200':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ReturnOrder'
          description: ''
    patch:
      operationId: order_ro_partial_update
      description: API endpoint for detail view of a single ReturnOrder object.
      parameters:
      - in: path
        name: id
        schema:
          type: integer
        required: true
      tags:
      - order
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/PatchedReturnOrder'
          application/x-www-form-urlencoded:
            schema:
              $ref: '#/components/schemas/PatchedReturnOrder'
          multipart/form-data:
            schema:
              $ref: '#/components/schemas/PatchedReturnOrder'
      security:
      - tokenAuth: []
      - basicAuth: []
      - cookieAuth: []
      - oauth2:
        - r:change:return_order
      responses:
        '200':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ReturnOrder'
          description: ''
    delete:
      operationId: order_ro_destroy
      description: API endpoint for detail view of a single ReturnOrder object.
      parameters:
      - in: path
        name: id
        schema:
          type: integer
        required: true
      tags:
      - order
      security:
      - tokenAuth: []
      - basicAuth: []
      - cookieAuth: []
      - oauth2:
        - r:delete:return_order
      responses:
        '204':
          description: No response body
  /api/order/ro/{id}/cancel/:
    post:
      operationId: order_ro_cancel_create
      description: API endpoint to cancel a ReturnOrder.
      parameters:
      - in: path
        name: id
        schema:
          type: integer
        required: true
      tags:
      - order
      security:
      - tokenAuth: []
      - basicAuth: []
      - cookieAuth: []
      - oauth2:
        - g:read
      responses:
        '201':
          description: No response body
  /api/order/ro/{id}/complete/:
    post:
      operationId: order_ro_complete_create
      description: API endpoint to complete a ReturnOrder.
      parameters:
      - in: path
        name: id
        schema:
          type: integer
        required: true
      tags:
      - order
      security:
      - tokenAuth: []
      - basicAuth: []
      - cookieAuth: []
      - oauth2:
        - g:read
      responses:
        '201':
          description: No response body
  /api/order/ro/{id}/hold/:
    post:
      operationId: order_ro_hold_create
      description: API endpoint to hold a ReturnOrder.
      parameters:
      - in: path
        name: id
        schema:
          type: integer
        required: true
      tags:
      - order
      security:
      - tokenAuth: []
      - basicAuth: []
      - cookieAuth: []
      - oauth2:
        - g:read
      responses:
        '201':
          description: No response body
  /api/order/ro/{id}/issue/:
    post:
      operationId: order_ro_issue_create
      description: API endpoint to issue (place) a ReturnOrder.
      parameters:
      - in: path
        name: id
        schema:
          type: integer
        required: true
      tags:
      - order
      security:
      - tokenAuth: []
      - basicAuth: []
      - cookieAuth: []
      - oauth2:
        - g:read
      responses:
        '201':
          description: No response body
  /api/order/ro/{id}/metadata/:
    get:
      operationId: order_ro_metadata_retrieve
      description: Generic API endpoint for reading and editing metadata for a model.
      parameters:
      - in: path
        name: id
        schema:
          type: integer
        required: true
      tags:
      - order
      security:
      - tokenAuth: []
      - basicAuth: []
      - cookieAuth: []
      - oauth2:
        - r:view:return_order
      responses:
        '200':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Metadata'
          description: ''
    put:
      operationId: order_ro_metadata_update
      description: Generic API endpoint for reading and editing metadata for a model.
      parameters:
      - in: path
        name: id
        schema:
          type: integer
        required: true
      tags:
      - order
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/Metadata'
          application/x-www-form-urlencoded:
            schema:
              $ref: '#/components/schemas/Metadata'
          multipart/form-data:
            schema:
              $ref: '#/components/schemas/Metadata'
        required: true
      security:
      - tokenAuth: []
      - basicAuth: []
      - cookieAuth: []
      - oauth2:
        - r:change:return_order
      responses:
        '200':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Metadata'
          description: ''
    patch:
      operationId: order_ro_metadata_partial_update
      description: Generic API endpoint for reading and editing metadata for a model.
      parameters:
      - in: path
        name: id
        schema:
          type: integer
        required: true
      tags:
      - order
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/PatchedMetadata'
          application/x-www-form-urlencoded:
            schema:
              $ref: '#/components/schemas/PatchedMetadata'
          multipart/form-data:
            schema:
              $ref: '#/components/schemas/PatchedMetadata'
      security:
      - tokenAuth: []
      - basicAuth: []
      - cookieAuth: []
      - oauth2:
        - r:change:return_order
      responses:
        '200':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Metadata'
          description: ''
  /api/order/ro/{id}/receive/:
    post:
      operationId: order_ro_receive_create
      description: API endpoint to receive items against a ReturnOrder.
      parameters:
      - in: path
        name: id
        schema:
          type: integer
        required: true
      tags:
      - order
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/ReturnOrderReceive'
          application/x-www-form-urlencoded:
            schema:
              $ref: '#/components/schemas/ReturnOrderReceive'
          multipart/form-data:
            schema:
              $ref: '#/components/schemas/ReturnOrderReceive'
        required: true
      security:
      - tokenAuth: []
      - basicAuth: []
      - cookieAuth: []
      - oauth2:
        - g:read
      responses:
        '201':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ReturnOrderReceive'
          description: ''
  /api/order/ro/status/:
    get:
      operationId: order_ro_status_retrieve
      description: Retrieve information about a specific status code
      tags:
      - order
      security:
      - tokenAuth: []
      - basicAuth: []
      - cookieAuth: []
      - oauth2:
        - g:read
      responses:
        '200':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/GenericStateClass'
          description: ''
        '400':
          description: Invalid request
  /api/order/so/:
    get:
      operationId: order_so_list
      description: Override the GET method to determine export options.
      parameters:
      - in: query
        name: assigned_to
        schema:
          type: integer
        description: Responsible
      - in: query
        name: assigned_to_me
        schema:
          type: boolean
        description: Assigned to me
      - in: query
        name: completed_after
        schema:
          type: string
          format: date
        description: Completed After
      - in: query
        name: completed_before
        schema:
          type: string
          format: date
        description: Completed Before
      - in: query
        name: created_after
        schema:
          type: string
          format: date
        description: Created After
      - in: query
        name: created_before
        schema:
          type: string
          format: date
        description: Created Before
      - in: query
        name: created_by
        schema:
          type: integer
        description: Created By
      - in: query
        name: customer
        schema:
          type: integer
      - in: query
        name: customer_detail
        schema:
          type: boolean
          default: false
        description: Include detailed information about the customer in the response
      - in: query
        name: has_project_code
        schema:
          type: boolean
        description: Has Project Code
      - in: query
        name: has_start_date
        schema:
          type: boolean
        description: Has Start Date
      - in: query
        name: has_target_date
        schema:
          type: boolean
        description: Has Target Date
      - in: query
        name: include_variants
        schema:
          type: boolean
        description: Include Variants
      - name: limit
        required: true
        in: query
        description: Number of results to return per page.
        schema:
          type: integer
      - in: query
        name: max_date
        schema:
          type: string
          format: date
        description: Max Date
      - in: query
        name: min_date
        schema:
          type: string
          format: date
        description: Min Date
      - name: offset
        required: false
        in: query
        description: The initial index from which to return the results.
        schema:
          type: integer
      - name: ordering
        required: false
        in: query
        description: 'Which field to use when ordering the results. Possible fields:
          creation_date, created_by, reference, customer__name, customer_reference,
          status, start_date, target_date, line_items, shipment_date, total_price,
          project_code.'
        schema:
          type: string
      - in: query
        name: outstanding
        schema:
          type: boolean
        description: Outstanding
      - in: query
        name: overdue
        schema:
          type: boolean
        description: overdue
      - in: query
        name: part
        schema:
          type: integer
      - in: query
        name: project_code
        schema:
          type: integer
        description: Project Code
      - in: query
        name: reference
        schema:
          type: string
        description: Order Reference
      - name: search
        required: false
        in: query
        description: 'A search term. Searched fields: customer__name, customer_reference,
          description, project_code__code, reference.'
        schema:
          type: string
      - in: query
        name: start_date_after
        schema:
          type: string
          format: date
        description: Start Date After
      - in: query
        name: start_date_before
        schema:
          type: string
          format: date
        description: Start Date Before
      - in: query
        name: status
        schema:
          type: integer
        description: Order Status
      - in: query
        name: target_date_after
        schema:
          type: string
          format: date
        description: Target Date After
      - in: query
        name: target_date_before
        schema:
          type: string
          format: date
        description: Target Date Before
      tags:
      - order
      security:
      - tokenAuth: []
      - basicAuth: []
      - cookieAuth: []
      - oauth2:
        - r:view:sales_order
      responses:
        '200':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/PaginatedSalesOrderList'
          description: ''
    post:
      operationId: order_so_create
      description: |-
        API endpoint for accessing a list of SalesOrder objects.

        - GET: Return list of SalesOrder objects (with filters)
        - POST: Create a new SalesOrder
      tags:
      - order
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/SalesOrder'
          application/x-www-form-urlencoded:
            schema:
              $ref: '#/components/schemas/SalesOrder'
          multipart/form-data:
            schema:
              $ref: '#/components/schemas/SalesOrder'
        required: true
      security:
      - tokenAuth: []
      - basicAuth: []
      - cookieAuth: []
      - oauth2:
        - r:add:sales_order
      responses:
        '201':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/SalesOrder'
          description: ''
  /api/order/so-allocation/:
    get:
      operationId: order_so_allocation_list
      description: API endpoint for listing SalesOrderAllocation objects.
      parameters:
      - in: query
        name: assigned_to_shipment
        schema:
          type: boolean
        description: Has Shipment
      - in: query
        name: customer_detail
        schema:
          type: boolean
          default: false
        description: Include detailed information about the customer in the response
      - in: query
        name: include_variants
        schema:
          type: boolean
        description: Include Variants
      - in: query
        name: item
        schema:
          type: integer
      - in: query
        name: item_detail
        schema:
          type: boolean
          default: false
        description: Include detailed information about the item in the response
      - name: limit
        required: true
        in: query
        description: Number of results to return per page.
        schema:
          type: integer
      - in: query
        name: line
        schema:
          type: integer
      - in: query
        name: location
        schema:
          type: integer
        description: Location
      - in: query
        name: location_detail
        schema:
          type: boolean
          default: false
        description: Include detailed information about the stock location in the
          response
      - name: offset
        required: false
        in: query
        description: The initial index from which to return the results.
        schema:
          type: integer
      - in: query
        name: order
        schema:
          type: integer
        description: Order
      - in: query
        name: order_detail
        schema:
          type: boolean
          default: false
        description: Include detailed information about the sales order in the response
      - name: ordering
        required: false
        in: query
        description: 'Which field to use when ordering the results. Possible fields:
          quantity, part, serial, IPN, batch, location, order, shipment_date.'
        schema:
          type: string
      - in: query
        name: outstanding
        schema:
          type: boolean
        description: Outstanding
      - in: query
        name: part
        schema:
          type: integer
        description: Part
      - in: query
        name: part_detail
        schema:
          type: boolean
          default: false
        description: Include detailed information about the related part in the response
      - name: search
        required: false
        in: query
        description: 'A search term. Searched fields: item__batch, item__part__IPN,
          item__part__name, item__serial.'
        schema:
          type: string
      - in: query
        name: shipment
        schema:
          type: integer
      tags:
      - order
      security:
      - tokenAuth: []
      - basicAuth: []
      - cookieAuth: []
      - oauth2:
        - r:view:sales_order
      responses:
        '200':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/PaginatedSalesOrderAllocationList'
          description: ''
    put:
      operationId: order_so_allocation_bulk_update
      description: |-
        Perform a PUT operation against this list endpoint.

        Simply redirects to the PATCH method.
      tags:
      - order
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/SalesOrderAllocation'
          application/x-www-form-urlencoded:
            schema:
              $ref: '#/components/schemas/SalesOrderAllocation'
          multipart/form-data:
            schema:
              $ref: '#/components/schemas/SalesOrderAllocation'
        required: true
      security:
      - tokenAuth: []
      - basicAuth: []
      - cookieAuth: []
      - oauth2:
        - r:change:sales_order
      responses:
        '200':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/SalesOrderAllocation'
          description: ''
    patch:
      operationId: order_so_allocation_bulk_partial_update
      description: |-
        Perform a PATCH operation against this list endpoint.

        Note that the typical DRF list endpoint does not support PATCH,
        so this method is provided as a custom implementation.
      tags:
      - order
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/PatchedSalesOrderAllocation'
          application/x-www-form-urlencoded:
            schema:
              $ref: '#/components/schemas/PatchedSalesOrderAllocation'
          multipart/form-data:
            schema:
              $ref: '#/components/schemas/PatchedSalesOrderAllocation'
      security:
      - tokenAuth: []
      - basicAuth: []
      - cookieAuth: []
      - oauth2:
        - r:change:sales_order
      responses:
        '200':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/SalesOrderAllocation'
          description: ''
  /api/order/so-allocation/{id}/:
    get:
      operationId: order_so_allocation_retrieve
      description: API endpoint for detali view of a SalesOrderAllocation object.
      parameters:
      - in: path
        name: id
        schema:
          type: integer
        required: true
      tags:
      - order
      security:
      - tokenAuth: []
      - basicAuth: []
      - cookieAuth: []
      - oauth2:
        - r:view:sales_order
      responses:
        '200':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/SalesOrderAllocation'
          description: ''
    put:
      operationId: order_so_allocation_update
      description: API endpoint for detali view of a SalesOrderAllocation object.
      parameters:
      - in: path
        name: id
        schema:
          type: integer
        required: true
      tags:
      - order
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/SalesOrderAllocation'
          application/x-www-form-urlencoded:
            schema:
              $ref: '#/components/schemas/SalesOrderAllocation'
          multipart/form-data:
            schema:
              $ref: '#/components/schemas/SalesOrderAllocation'
        required: true
      security:
      - tokenAuth: []
      - basicAuth: []
      - cookieAuth: []
      - oauth2:
        - r:change:sales_order
      responses:
        '200':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/SalesOrderAllocation'
          description: ''
    patch:
      operationId: order_so_allocation_partial_update
      description: API endpoint for detali view of a SalesOrderAllocation object.
      parameters:
      - in: path
        name: id
        schema:
          type: integer
        required: true
      tags:
      - order
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/PatchedSalesOrderAllocation'
          application/x-www-form-urlencoded:
            schema:
              $ref: '#/components/schemas/PatchedSalesOrderAllocation'
          multipart/form-data:
            schema:
              $ref: '#/components/schemas/PatchedSalesOrderAllocation'
      security:
      - tokenAuth: []
      - basicAuth: []
      - cookieAuth: []
      - oauth2:
        - r:change:sales_order
      responses:
        '200':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/SalesOrderAllocation'
          description: ''
    delete:
      operationId: order_so_allocation_destroy
      description: API endpoint for detali view of a SalesOrderAllocation object.
      parameters:
      - in: path
        name: id
        schema:
          type: integer
        required: true
      tags:
      - order
      security:
      - tokenAuth: []
      - basicAuth: []
      - cookieAuth: []
      - oauth2:
        - r:delete:sales_order
      responses:
        '204':
          description: No response body
  /api/order/so-extra-line/:
    get:
      operationId: order_so_extra_line_list
      description: Override the GET method to determine export options.
      parameters:
      - name: limit
        required: true
        in: query
        description: Number of results to return per page.
        schema:
          type: integer
      - name: offset
        required: false
        in: query
        description: The initial index from which to return the results.
        schema:
          type: integer
      - in: query
        name: order
        schema:
          type: integer
      - in: query
        name: order_detail
        schema:
          type: boolean
          default: false
        description: Include detailed information about the sales order in the response
      - name: ordering
        required: false
        in: query
        description: 'Which field to use when ordering the results. Possible fields:
          quantity, notes, reference.'
        schema:
          type: string
      - name: search
        required: false
        in: query
        description: 'A search term. Searched fields: description, notes, quantity,
          reference.'
        schema:
          type: string
      tags:
      - order
      security:
      - tokenAuth: []
      - basicAuth: []
      - cookieAuth: []
      - oauth2:
        - r:view:sales_order
      responses:
        '200':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/PaginatedSalesOrderExtraLineList'
          description: ''
    post:
      operationId: order_so_extra_line_create
      description: API endpoint for accessing a list of SalesOrderExtraLine objects.
      tags:
      - order
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/SalesOrderExtraLine'
          application/x-www-form-urlencoded:
            schema:
              $ref: '#/components/schemas/SalesOrderExtraLine'
          multipart/form-data:
            schema:
              $ref: '#/components/schemas/SalesOrderExtraLine'
        required: true
      security:
      - tokenAuth: []
      - basicAuth: []
      - cookieAuth: []
      - oauth2:
        - r:add:sales_order
      responses:
        '201':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/SalesOrderExtraLine'
          description: ''
  /api/order/so-extra-line/{id}/:
    get:
      operationId: order_so_extra_line_retrieve
      description: API endpoint for detail view of a SalesOrderExtraLine object.
      parameters:
      - in: path
        name: id
        schema:
          type: integer
        required: true
      tags:
      - order
      security:
      - tokenAuth: []
      - basicAuth: []
      - cookieAuth: []
      - oauth2:
        - r:view:sales_order
      responses:
        '200':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/SalesOrderExtraLine'
          description: ''
    put:
      operationId: order_so_extra_line_update
      description: API endpoint for detail view of a SalesOrderExtraLine object.
      parameters:
      - in: path
        name: id
        schema:
          type: integer
        required: true
      tags:
      - order
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/SalesOrderExtraLine'
          application/x-www-form-urlencoded:
            schema:
              $ref: '#/components/schemas/SalesOrderExtraLine'
          multipart/form-data:
            schema:
              $ref: '#/components/schemas/SalesOrderExtraLine'
        required: true
      security:
      - tokenAuth: []
      - basicAuth: []
      - cookieAuth: []
      - oauth2:
        - r:change:sales_order
      responses:
        '200':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/SalesOrderExtraLine'
          description: ''
    patch:
      operationId: order_so_extra_line_partial_update
      description: API endpoint for detail view of a SalesOrderExtraLine object.
      parameters:
      - in: path
        name: id
        schema:
          type: integer
        required: true
      tags:
      - order
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/PatchedSalesOrderExtraLine'
          application/x-www-form-urlencoded:
            schema:
              $ref: '#/components/schemas/PatchedSalesOrderExtraLine'
          multipart/form-data:
            schema:
              $ref: '#/components/schemas/PatchedSalesOrderExtraLine'
      security:
      - tokenAuth: []
      - basicAuth: []
      - cookieAuth: []
      - oauth2:
        - r:change:sales_order
      responses:
        '200':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/SalesOrderExtraLine'
          description: ''
    delete:
      operationId: order_so_extra_line_destroy
      description: API endpoint for detail view of a SalesOrderExtraLine object.
      parameters:
      - in: path
        name: id
        schema:
          type: integer
        required: true
      tags:
      - order
      security:
      - tokenAuth: []
      - basicAuth: []
      - cookieAuth: []
      - oauth2:
        - r:delete:sales_order
      responses:
        '204':
          description: No response body
  /api/order/so-extra-line/{id}/metadata/:
    get:
      operationId: order_so_extra_line_metadata_retrieve
      description: Generic API endpoint for reading and editing metadata for a model.
      parameters:
      - in: path
        name: id
        schema:
          type: integer
        required: true
      tags:
      - order
      security:
      - tokenAuth: []
      - basicAuth: []
      - cookieAuth: []
      - oauth2:
        - r:view:sales_order
      responses:
        '200':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Metadata'
          description: ''
    put:
      operationId: order_so_extra_line_metadata_update
      description: Generic API endpoint for reading and editing metadata for a model.
      parameters:
      - in: path
        name: id
        schema:
          type: integer
        required: true
      tags:
      - order
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/Metadata'
          application/x-www-form-urlencoded:
            schema:
              $ref: '#/components/schemas/Metadata'
          multipart/form-data:
            schema:
              $ref: '#/components/schemas/Metadata'
        required: true
      security:
      - tokenAuth: []
      - basicAuth: []
      - cookieAuth: []
      - oauth2:
        - r:change:sales_order
      responses:
        '200':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Metadata'
          description: ''
    patch:
      operationId: order_so_extra_line_metadata_partial_update
      description: Generic API endpoint for reading and editing metadata for a model.
      parameters:
      - in: path
        name: id
        schema:
          type: integer
        required: true
      tags:
      - order
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/PatchedMetadata'
          application/x-www-form-urlencoded:
            schema:
              $ref: '#/components/schemas/PatchedMetadata'
          multipart/form-data:
            schema:
              $ref: '#/components/schemas/PatchedMetadata'
      security:
      - tokenAuth: []
      - basicAuth: []
      - cookieAuth: []
      - oauth2:
        - r:change:sales_order
      responses:
        '200':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Metadata'
          description: ''
  /api/order/so-line/:
    get:
      operationId: order_so_line_list
      description: Override the GET method to determine export options.
      parameters:
      - in: query
        name: allocated
        schema:
          type: boolean
        description: Allocated
      - in: query
        name: completed
        schema:
          type: boolean
        description: Completed
      - in: query
        name: customer_detail
        schema:
          type: boolean
          default: false
        description: Include detailed information about the customer in the response
      - in: query
        name: has_pricing
        schema:
          type: boolean
        description: Has Pricing
      - name: limit
        required: true
        in: query
        description: Number of results to return per page.
        schema:
          type: integer
      - name: offset
        required: false
        in: query
        description: The initial index from which to return the results.
        schema:
          type: integer
      - in: query
        name: order
        schema:
          type: integer
        description: Order
      - in: query
        name: order_complete
        schema:
          type: boolean
        description: Order Complete
      - in: query
        name: order_detail
        schema:
          type: boolean
          default: false
        description: Include detailed information about the sales order in the response
      - in: query
        name: order_outstanding
        schema:
          type: boolean
        description: Order Outstanding
      - in: query
        name: order_status
        schema:
          type: integer
        description: Order Status
      - name: ordering
        required: false
        in: query
        description: 'Which field to use when ordering the results. Possible fields:
          customer, order, part, part__name, quantity, allocated, shipped, reference,
          sale_price, target_date.'
        schema:
          type: string
      - in: query
        name: part
        schema:
          type: integer
      - in: query
        name: part_detail
        schema:
          type: boolean
          default: false
        description: Include detailed information about the related part in the response
      - name: search
        required: false
        in: query
        description: 'A search term. Searched fields: part__name, quantity, reference.'
        schema:
          type: string
      tags:
      - order
      security:
      - tokenAuth: []
      - basicAuth: []
      - cookieAuth: []
      - oauth2:
        - r:view:sales_order
      responses:
        '200':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/PaginatedSalesOrderLineItemList'
          description: ''
    post:
      operationId: order_so_line_create
      description: API endpoint for accessing a list of SalesOrderLineItem objects.
      tags:
      - order
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/SalesOrderLineItem'
          application/x-www-form-urlencoded:
            schema:
              $ref: '#/components/schemas/SalesOrderLineItem'
          multipart/form-data:
            schema:
              $ref: '#/components/schemas/SalesOrderLineItem'
        required: true
      security:
      - tokenAuth: []
      - basicAuth: []
      - cookieAuth: []
      - oauth2:
        - r:add:sales_order
      responses:
        '201':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/SalesOrderLineItem'
          description: ''
  /api/order/so-line/{id}/:
    get:
      operationId: order_so_line_retrieve
      description: API endpoint for detail view of a SalesOrderLineItem object.
      parameters:
      - in: query
        name: customer_detail
        schema:
          type: boolean
          default: false
        description: Include detailed information about the customer in the response
      - in: path
        name: id
        schema:
          type: integer
        required: true
      - in: query
        name: order_detail
        schema:
          type: boolean
          default: false
        description: Include detailed information about the sales order in the response
      - in: query
        name: part_detail
        schema:
          type: boolean
          default: false
        description: Include detailed information about the related part in the response
      tags:
      - order
      security:
      - tokenAuth: []
      - basicAuth: []
      - cookieAuth: []
      - oauth2:
        - r:view:sales_order
      responses:
        '200':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/SalesOrderLineItem'
          description: ''
    put:
      operationId: order_so_line_update
      description: API endpoint for detail view of a SalesOrderLineItem object.
      parameters:
      - in: path
        name: id
        schema:
          type: integer
        required: true
      tags:
      - order
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/SalesOrderLineItem'
          application/x-www-form-urlencoded:
            schema:
              $ref: '#/components/schemas/SalesOrderLineItem'
          multipart/form-data:
            schema:
              $ref: '#/components/schemas/SalesOrderLineItem'
        required: true
      security:
      - tokenAuth: []
      - basicAuth: []
      - cookieAuth: []
      - oauth2:
        - r:change:sales_order
      responses:
        '200':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/SalesOrderLineItem'
          description: ''
    patch:
      operationId: order_so_line_partial_update
      description: API endpoint for detail view of a SalesOrderLineItem object.
      parameters:
      - in: path
        name: id
        schema:
          type: integer
        required: true
      tags:
      - order
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/PatchedSalesOrderLineItem'
          application/x-www-form-urlencoded:
            schema:
              $ref: '#/components/schemas/PatchedSalesOrderLineItem'
          multipart/form-data:
            schema:
              $ref: '#/components/schemas/PatchedSalesOrderLineItem'
      security:
      - tokenAuth: []
      - basicAuth: []
      - cookieAuth: []
      - oauth2:
        - r:change:sales_order
      responses:
        '200':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/SalesOrderLineItem'
          description: ''
    delete:
      operationId: order_so_line_destroy
      description: API endpoint for detail view of a SalesOrderLineItem object.
      parameters:
      - in: path
        name: id
        schema:
          type: integer
        required: true
      tags:
      - order
      security:
      - tokenAuth: []
      - basicAuth: []
      - cookieAuth: []
      - oauth2:
        - r:delete:sales_order
      responses:
        '204':
          description: No response body
  /api/order/so-line/{id}/metadata/:
    get:
      operationId: order_so_line_metadata_retrieve
      description: Generic API endpoint for reading and editing metadata for a model.
      parameters:
      - in: path
        name: id
        schema:
          type: integer
        required: true
      tags:
      - order
      security:
      - tokenAuth: []
      - basicAuth: []
      - cookieAuth: []
      - oauth2:
        - r:view:sales_order
      responses:
        '200':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Metadata'
          description: ''
    put:
      operationId: order_so_line_metadata_update
      description: Generic API endpoint for reading and editing metadata for a model.
      parameters:
      - in: path
        name: id
        schema:
          type: integer
        required: true
      tags:
      - order
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/Metadata'
          application/x-www-form-urlencoded:
            schema:
              $ref: '#/components/schemas/Metadata'
          multipart/form-data:
            schema:
              $ref: '#/components/schemas/Metadata'
        required: true
      security:
      - tokenAuth: []
      - basicAuth: []
      - cookieAuth: []
      - oauth2:
        - r:change:sales_order
      responses:
        '200':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Metadata'
          description: ''
    patch:
      operationId: order_so_line_metadata_partial_update
      description: Generic API endpoint for reading and editing metadata for a model.
      parameters:
      - in: path
        name: id
        schema:
          type: integer
        required: true
      tags:
      - order
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/PatchedMetadata'
          application/x-www-form-urlencoded:
            schema:
              $ref: '#/components/schemas/PatchedMetadata'
          multipart/form-data:
            schema:
              $ref: '#/components/schemas/PatchedMetadata'
      security:
      - tokenAuth: []
      - basicAuth: []
      - cookieAuth: []
      - oauth2:
        - r:change:sales_order
      responses:
        '200':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Metadata'
          description: ''
  /api/order/so/{id}/:
    get:
      operationId: order_so_retrieve
      description: API endpoint for detail view of a SalesOrder object.
      parameters:
      - in: query
        name: customer_detail
        schema:
          type: boolean
          default: false
        description: Include detailed information about the customer in the response
      - in: path
        name: id
        schema:
          type: integer
        required: true
      tags:
      - order
      security:
      - tokenAuth: []
      - basicAuth: []
      - cookieAuth: []
      - oauth2:
        - r:view:sales_order
      responses:
        '200':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/SalesOrder'
          description: ''
    put:
      operationId: order_so_update
      description: API endpoint for detail view of a SalesOrder object.
      parameters:
      - in: path
        name: id
        schema:
          type: integer
        required: true
      tags:
      - order
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/SalesOrder'
          application/x-www-form-urlencoded:
            schema:
              $ref: '#/components/schemas/SalesOrder'
          multipart/form-data:
            schema:
              $ref: '#/components/schemas/SalesOrder'
        required: true
      security:
      - tokenAuth: []
      - basicAuth: []
      - cookieAuth: []
      - oauth2:
        - r:change:sales_order
      responses:
        '200':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/SalesOrder'
          description: ''
    patch:
      operationId: order_so_partial_update
      description: API endpoint for detail view of a SalesOrder object.
      parameters:
      - in: path
        name: id
        schema:
          type: integer
        required: true
      tags:
      - order
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/PatchedSalesOrder'
          application/x-www-form-urlencoded:
            schema:
              $ref: '#/components/schemas/PatchedSalesOrder'
          multipart/form-data:
            schema:
              $ref: '#/components/schemas/PatchedSalesOrder'
      security:
      - tokenAuth: []
      - basicAuth: []
      - cookieAuth: []
      - oauth2:
        - r:change:sales_order
      responses:
        '200':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/SalesOrder'
          description: ''
    delete:
      operationId: order_so_destroy
      description: API endpoint for detail view of a SalesOrder object.
      parameters:
      - in: path
        name: id
        schema:
          type: integer
        required: true
      tags:
      - order
      security:
      - tokenAuth: []
      - basicAuth: []
      - cookieAuth: []
      - oauth2:
        - r:delete:sales_order
      responses:
        '204':
          description: No response body
  /api/order/so/{id}/allocate/:
    post:
      operationId: order_so_allocate_create
      description: |-
        API endpoint to allocate stock items against a SalesOrder.

        - The SalesOrder is specified in the URL
        - See the SalesOrderShipmentAllocationSerializer class
      parameters:
      - in: path
        name: id
        schema:
          type: integer
        required: true
      tags:
      - order
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/SalesOrderShipmentAllocation'
          application/x-www-form-urlencoded:
            schema:
              $ref: '#/components/schemas/SalesOrderShipmentAllocation'
          multipart/form-data:
            schema:
              $ref: '#/components/schemas/SalesOrderShipmentAllocation'
        required: true
      security:
      - tokenAuth: []
      - basicAuth: []
      - cookieAuth: []
      - oauth2:
        - g:read
      responses:
        '201':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/SalesOrderShipmentAllocation'
          description: ''
  /api/order/so/{id}/allocate-serials/:
    post:
      operationId: order_so_allocate_serials_create
      description: API endpoint to allocation stock items against a SalesOrder, by
        specifying serial numbers.
      parameters:
      - in: path
        name: id
        schema:
          type: integer
        required: true
      tags:
      - order
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/SalesOrderSerialAllocation'
          application/x-www-form-urlencoded:
            schema:
              $ref: '#/components/schemas/SalesOrderSerialAllocation'
          multipart/form-data:
            schema:
              $ref: '#/components/schemas/SalesOrderSerialAllocation'
        required: true
      security:
      - tokenAuth: []
      - basicAuth: []
      - cookieAuth: []
      - oauth2:
        - g:read
      responses:
        '201':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/SalesOrderSerialAllocation'
          description: ''
  /api/order/so/{id}/cancel/:
    post:
      operationId: order_so_cancel_create
      description: API endpoint to cancel a SalesOrder.
      parameters:
      - in: path
        name: id
        schema:
          type: integer
        required: true
      tags:
      - order
      security:
      - tokenAuth: []
      - basicAuth: []
      - cookieAuth: []
      - oauth2:
        - g:read
      responses:
        '201':
          description: No response body
  /api/order/so/{id}/complete/:
    post:
      operationId: order_so_complete_create
      description: API endpoint for manually marking a SalesOrder as "complete".
      parameters:
      - in: path
        name: id
        schema:
          type: integer
        required: true
      tags:
      - order
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/SalesOrderComplete'
          application/x-www-form-urlencoded:
            schema:
              $ref: '#/components/schemas/SalesOrderComplete'
          multipart/form-data:
            schema:
              $ref: '#/components/schemas/SalesOrderComplete'
      security:
      - tokenAuth: []
      - basicAuth: []
      - cookieAuth: []
      - oauth2:
        - g:read
      responses:
        '201':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/SalesOrderComplete'
          description: ''
  /api/order/so/{id}/hold/:
    post:
      operationId: order_so_hold_create
      description: API endpoint to place a SalesOrder on hold.
      parameters:
      - in: path
        name: id
        schema:
          type: integer
        required: true
      tags:
      - order
      security:
      - tokenAuth: []
      - basicAuth: []
      - cookieAuth: []
      - oauth2:
        - g:read
      responses:
        '201':
          description: No response body
  /api/order/so/{id}/issue/:
    post:
      operationId: order_so_issue_create
      description: API endpoint to issue a SalesOrder.
      parameters:
      - in: path
        name: id
        schema:
          type: integer
        required: true
      tags:
      - order
      security:
      - tokenAuth: []
      - basicAuth: []
      - cookieAuth: []
      - oauth2:
        - g:read
      responses:
        '201':
          description: No response body
  /api/order/so/{id}/metadata/:
    get:
      operationId: order_so_metadata_retrieve
      description: Generic API endpoint for reading and editing metadata for a model.
      parameters:
      - in: path
        name: id
        schema:
          type: integer
        required: true
      tags:
      - order
      security:
      - tokenAuth: []
      - basicAuth: []
      - cookieAuth: []
      - oauth2:
        - r:view:sales_order
      responses:
        '200':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Metadata'
          description: ''
    put:
      operationId: order_so_metadata_update
      description: Generic API endpoint for reading and editing metadata for a model.
      parameters:
      - in: path
        name: id
        schema:
          type: integer
        required: true
      tags:
      - order
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/Metadata'
          application/x-www-form-urlencoded:
            schema:
              $ref: '#/components/schemas/Metadata'
          multipart/form-data:
            schema:
              $ref: '#/components/schemas/Metadata'
        required: true
      security:
      - tokenAuth: []
      - basicAuth: []
      - cookieAuth: []
      - oauth2:
        - r:change:sales_order
      responses:
        '200':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Metadata'
          description: ''
    patch:
      operationId: order_so_metadata_partial_update
      description: Generic API endpoint for reading and editing metadata for a model.
      parameters:
      - in: path
        name: id
        schema:
          type: integer
        required: true
      tags:
      - order
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/PatchedMetadata'
          application/x-www-form-urlencoded:
            schema:
              $ref: '#/components/schemas/PatchedMetadata'
          multipart/form-data:
            schema:
              $ref: '#/components/schemas/PatchedMetadata'
      security:
      - tokenAuth: []
      - basicAuth: []
      - cookieAuth: []
      - oauth2:
        - r:change:sales_order
      responses:
        '200':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Metadata'
          description: ''
  /api/order/so/shipment/:
    get:
      operationId: order_so_shipment_list
      description: API list endpoint for SalesOrderShipment model.
      parameters:
      - in: query
        name: delivered
        schema:
          type: boolean
        description: delivered
      - name: limit
        required: true
        in: query
        description: Number of results to return per page.
        schema:
          type: integer
      - name: offset
        required: false
        in: query
        description: The initial index from which to return the results.
        schema:
          type: integer
      - in: query
        name: order
        schema:
          type: integer
      - name: ordering
        required: false
        in: query
        description: 'Which field to use when ordering the results. Possible fields:
          reference, delivery_date, shipment_date, allocated_items.'
        schema:
          type: string
      - name: search
        required: false
        in: query
        description: 'A search term. Searched fields: invoice_number, order__reference,
          reference, tracking_number.'
        schema:
          type: string
      - in: query
        name: shipped
        schema:
          type: boolean
        description: shipped
      tags:
      - order
      security:
      - tokenAuth: []
      - basicAuth: []
      - cookieAuth: []
      - oauth2:
        - r:view:sales_order
      responses:
        '200':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/PaginatedSalesOrderShipmentList'
          description: ''
    post:
      operationId: order_so_shipment_create
      description: API list endpoint for SalesOrderShipment model.
      tags:
      - order
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/SalesOrderShipment'
          application/x-www-form-urlencoded:
            schema:
              $ref: '#/components/schemas/SalesOrderShipment'
          multipart/form-data:
            schema:
              $ref: '#/components/schemas/SalesOrderShipment'
        required: true
      security:
      - tokenAuth: []
      - basicAuth: []
      - cookieAuth: []
      - oauth2:
        - r:add:sales_order
      responses:
        '201':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/SalesOrderShipment'
          description: ''
  /api/order/so/shipment/{id}/:
    get:
      operationId: order_so_shipment_retrieve
      description: API detail endpooint for SalesOrderShipment model.
      parameters:
      - in: path
        name: id
        schema:
          type: integer
        required: true
      tags:
      - order
      security:
      - tokenAuth: []
      - basicAuth: []
      - cookieAuth: []
      - oauth2:
        - r:view:sales_order
      responses:
        '200':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/SalesOrderShipment'
          description: ''
    put:
      operationId: order_so_shipment_update
      description: API detail endpooint for SalesOrderShipment model.
      parameters:
      - in: path
        name: id
        schema:
          type: integer
        required: true
      tags:
      - order
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/SalesOrderShipment'
          application/x-www-form-urlencoded:
            schema:
              $ref: '#/components/schemas/SalesOrderShipment'
          multipart/form-data:
            schema:
              $ref: '#/components/schemas/SalesOrderShipment'
        required: true
      security:
      - tokenAuth: []
      - basicAuth: []
      - cookieAuth: []
      - oauth2:
        - r:change:sales_order
      responses:
        '200':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/SalesOrderShipment'
          description: ''
    patch:
      operationId: order_so_shipment_partial_update
      description: API detail endpooint for SalesOrderShipment model.
      parameters:
      - in: path
        name: id
        schema:
          type: integer
        required: true
      tags:
      - order
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/PatchedSalesOrderShipment'
          application/x-www-form-urlencoded:
            schema:
              $ref: '#/components/schemas/PatchedSalesOrderShipment'
          multipart/form-data:
            schema:
              $ref: '#/components/schemas/PatchedSalesOrderShipment'
      security:
      - tokenAuth: []
      - basicAuth: []
      - cookieAuth: []
      - oauth2:
        - r:change:sales_order
      responses:
        '200':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/SalesOrderShipment'
          description: ''
    delete:
      operationId: order_so_shipment_destroy
      description: API detail endpooint for SalesOrderShipment model.
      parameters:
      - in: path
        name: id
        schema:
          type: integer
        required: true
      tags:
      - order
      security:
      - tokenAuth: []
      - basicAuth: []
      - cookieAuth: []
      - oauth2:
        - r:delete:sales_order
      responses:
        '204':
          description: No response body
  /api/order/so/shipment/{id}/metadata/:
    get:
      operationId: order_so_shipment_metadata_retrieve
      description: Generic API endpoint for reading and editing metadata for a model.
      parameters:
      - in: path
        name: id
        schema:
          type: integer
        required: true
      tags:
      - order
      security:
      - tokenAuth: []
      - basicAuth: []
      - cookieAuth: []
      - oauth2:
        - r:view:sales_order
      responses:
        '200':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Metadata'
          description: ''
    put:
      operationId: order_so_shipment_metadata_update
      description: Generic API endpoint for reading and editing metadata for a model.
      parameters:
      - in: path
        name: id
        schema:
          type: integer
        required: true
      tags:
      - order
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/Metadata'
          application/x-www-form-urlencoded:
            schema:
              $ref: '#/components/schemas/Metadata'
          multipart/form-data:
            schema:
              $ref: '#/components/schemas/Metadata'
        required: true
      security:
      - tokenAuth: []
      - basicAuth: []
      - cookieAuth: []
      - oauth2:
        - r:change:sales_order
      responses:
        '200':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Metadata'
          description: ''
    patch:
      operationId: order_so_shipment_metadata_partial_update
      description: Generic API endpoint for reading and editing metadata for a model.
      parameters:
      - in: path
        name: id
        schema:
          type: integer
        required: true
      tags:
      - order
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/PatchedMetadata'
          application/x-www-form-urlencoded:
            schema:
              $ref: '#/components/schemas/PatchedMetadata'
          multipart/form-data:
            schema:
              $ref: '#/components/schemas/PatchedMetadata'
      security:
      - tokenAuth: []
      - basicAuth: []
      - cookieAuth: []
      - oauth2:
        - r:change:sales_order
      responses:
        '200':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Metadata'
          description: ''
  /api/order/so/shipment/{id}/ship/:
    post:
      operationId: order_so_shipment_ship_create
      description: API endpoint for completing (shipping) a SalesOrderShipment.
      parameters:
      - in: path
        name: id
        schema:
          type: integer
        required: true
      tags:
      - order
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/SalesOrderShipmentComplete'
          application/x-www-form-urlencoded:
            schema:
              $ref: '#/components/schemas/SalesOrderShipmentComplete'
          multipart/form-data:
            schema:
              $ref: '#/components/schemas/SalesOrderShipmentComplete'
      security:
      - tokenAuth: []
      - basicAuth: []
      - cookieAuth: []
      - oauth2:
        - r:add:sales_order
      responses:
        '201':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/SalesOrderShipmentComplete'
          description: ''
  /api/order/so/status/:
    get:
      operationId: order_so_status_retrieve
      description: Retrieve information about a specific status code
      tags:
      - order
      security:
      - tokenAuth: []
      - basicAuth: []
      - cookieAuth: []
      - oauth2:
        - g:read
      responses:
        '200':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/GenericStateClass'
          description: ''
        '400':
          description: Invalid request
  /api/part/:
    get:
      operationId: part_list
      description: Override the GET method to determine export options.
      parameters:
      - in: query
        name: IPN
        schema:
          type: string
        description: Filter by exact IPN (internal part number)
      - in: query
        name: IPN_regex
        schema:
          type: string
        description: Filter by regex on IPN (internal part number)
      - in: query
        name: active
        schema:
          type: boolean
      - in: query
        name: ancestor
        schema:
          type: integer
      - in: query
        name: assembly
        schema:
          type: boolean
      - in: query
        name: bom_valid
        schema:
          type: boolean
        description: BOM Valid
      - in: query
        name: cascade
        schema:
          type: boolean
        description: If true, include items in child categories of the given category
      - in: query
        name: category
        schema:
          type: integer
        description: Filter by numeric category ID or the literal 'null'
      - in: query
        name: category_detail
        schema:
          type: boolean
          default: false
      - in: query
        name: component
        schema:
          type: boolean
      - in: query
        name: convert_from
        schema:
          type: integer
      - in: query
        name: created_after
        schema:
          type: string
          format: date
        description: Updated after
      - in: query
        name: created_before
        schema:
          type: string
          format: date
        description: Updated before
      - in: query
        name: default_location
        schema:
          type: integer
        description: Default Location
      - in: query
        name: depleted_stock
        schema:
          type: boolean
        description: Depleted Stock
      - in: query
        name: exclude_id
        schema:
          type: array
          items:
            type: integer
        description: Exclude parts with these IDs (comma-separated)
        explode: false
        style: form
      - in: query
        name: exclude_related
        schema:
          type: number
        description: Exclude parts related to this part ID
      - in: query
        name: exclude_tree
        schema:
          type: integer
      - in: query
        name: has_ipn
        schema:
          type: boolean
        description: Has IPN
      - in: query
        name: has_pricing
        schema:
          type: boolean
        description: Has Pricing
      - in: query
        name: has_revisions
        schema:
          type: boolean
        description: Has Revisions
      - in: query
        name: has_stock
        schema:
          type: boolean
        description: Has stock
      - in: query
        name: has_units
        schema:
          type: boolean
        description: Has units
      - in: query
        name: in_bom_for
        schema:
          type: integer
      - in: query
        name: is_revision
        schema:
          type: boolean
        description: Is Revision
      - in: query
        name: is_template
        schema:
          type: boolean
      - in: query
        name: is_variant
        schema:
          type: boolean
        description: Is Variant
      - name: limit
        required: true
        in: query
        description: Number of results to return per page.
        schema:
          type: integer
      - in: query
        name: location_detail
        schema:
          type: boolean
          default: false
        description: Include detailed information about the stock location in the
          response
      - in: query
        name: locked
        schema:
          type: boolean
      - in: query
        name: low_stock
        schema:
          type: boolean
        description: Low stock
      - in: query
        name: name_regex
        schema:
          type: string
        description: Filter by name (regex)
      - name: offset
        required: false
        in: query
        description: The initial index from which to return the results.
        schema:
          type: integer
      - name: ordering
        required: false
        in: query
        description: 'Which field to use when ordering the results. Possible fields:
          name, creation_date, IPN, in_stock, total_in_stock, unallocated_stock, category,
          default_location, units, pricing_min, pricing_max, pricing_updated, revision,
          revision_count.'
        schema:
          type: string
      - in: query
        name: parameters
        schema:
          type: boolean
          default: false
        description: Include part parameters in response
      - in: query
        name: path_detail
        schema:
          type: boolean
          default: false
      - in: query
        name: purchaseable
        schema:
          type: boolean
      - in: query
        name: related
        schema:
          type: number
        description: Show parts related to this part ID
      - in: query
        name: revision_of
        schema:
          type: integer
      - in: query
        name: salable
        schema:
          type: boolean
      - name: search
        required: false
        in: query
        description: 'A search term. Searched fields: IPN, category__name, description,
          keywords, manufacturer_parts__MPN, name, revision, supplier_parts__SKU,
          tags__name, tags__slug.'
        schema:
          type: string
      - in: query
        name: starred
        schema:
          type: boolean
        description: Starred
      - in: query
        name: stock_to_build
        schema:
          type: boolean
        description: Required for Build Order
      - in: query
        name: tags_name
        schema:
          type: string
      - in: query
        name: tags_slug
        schema:
          type: string
      - in: query
        name: testable
        schema:
          type: boolean
      - in: query
        name: trackable
        schema:
          type: boolean
      - in: query
        name: unallocated_stock
        schema:
          type: boolean
        description: Unallocated stock
      - in: query
        name: variant_of
        schema:
          type: integer
        description: Variant Of
      - in: query
        name: virtual
        schema:
          type: boolean
      tags:
      - part
      security:
      - tokenAuth: []
      - basicAuth: []
      - cookieAuth: []
      - oauth2:
        - r:view:part
        - r:view:build
      responses:
        '200':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/PaginatedPartList'
          description: ''
    post:
      operationId: part_create
      description: API endpoint for accessing a list of Part objects, or creating
        a new Part instance.
      tags:
      - part
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/Part'
          application/x-www-form-urlencoded:
            schema:
              $ref: '#/components/schemas/Part'
          multipart/form-data:
            schema:
              $ref: '#/components/schemas/Part'
        required: true
      security:
      - tokenAuth: []
      - basicAuth: []
      - cookieAuth: []
      - oauth2:
        - r:add:part
        - r:add:build
      responses:
        '201':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Part'
          description: ''
    put:
      operationId: part_bulk_update
      description: |-
        Perform a PUT operation against this list endpoint.

        Simply redirects to the PATCH method.
      tags:
      - part
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/Part'
          application/x-www-form-urlencoded:
            schema:
              $ref: '#/components/schemas/Part'
          multipart/form-data:
            schema:
              $ref: '#/components/schemas/Part'
        required: true
      security:
      - tokenAuth: []
      - basicAuth: []
      - cookieAuth: []
      - oauth2:
        - r:change:part
        - r:change:build
      responses:
        '200':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Part'
          description: ''
    patch:
      operationId: part_bulk_partial_update
      description: |-
        Perform a PATCH operation against this list endpoint.

        Note that the typical DRF list endpoint does not support PATCH,
        so this method is provided as a custom implementation.
      tags:
      - part
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/PatchedPart'
          application/x-www-form-urlencoded:
            schema:
              $ref: '#/components/schemas/PatchedPart'
          multipart/form-data:
            schema:
              $ref: '#/components/schemas/PatchedPart'
      security:
      - tokenAuth: []
      - basicAuth: []
      - cookieAuth: []
      - oauth2:
        - r:change:part
        - r:change:build
      responses:
        '200':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Part'
          description: ''
  /api/part/{id}/:
    get:
      operationId: part_retrieve
      description: API endpoint for detail view of a single Part object.
      parameters:
      - in: query
        name: category_detail
        schema:
          type: boolean
          default: false
      - in: path
        name: id
        schema:
          type: integer
        required: true
      - in: query
        name: location_detail
        schema:
          type: boolean
          default: false
        description: Include detailed information about the stock location in the
          response
      - in: query
        name: parameters
        schema:
          type: boolean
          default: false
        description: Include part parameters in response
      - in: query
        name: path_detail
        schema:
          type: boolean
          default: false
      tags:
      - part
      security:
      - tokenAuth: []
      - basicAuth: []
      - cookieAuth: []
      - oauth2:
        - r:view:part
        - r:view:build
      responses:
        '200':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Part'
          description: ''
    put:
      operationId: part_update
      description: API endpoint for detail view of a single Part object.
      parameters:
      - in: path
        name: id
        schema:
          type: integer
        required: true
      tags:
      - part
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/Part'
          application/x-www-form-urlencoded:
            schema:
              $ref: '#/components/schemas/Part'
          multipart/form-data:
            schema:
              $ref: '#/components/schemas/Part'
        required: true
      security:
      - tokenAuth: []
      - basicAuth: []
      - cookieAuth: []
      - oauth2:
        - r:change:part
        - r:change:build
      responses:
        '200':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Part'
          description: ''
    patch:
      operationId: part_partial_update
      description: API endpoint for detail view of a single Part object.
      parameters:
      - in: path
        name: id
        schema:
          type: integer
        required: true
      tags:
      - part
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/PatchedPart'
          application/x-www-form-urlencoded:
            schema:
              $ref: '#/components/schemas/PatchedPart'
          multipart/form-data:
            schema:
              $ref: '#/components/schemas/PatchedPart'
      security:
      - tokenAuth: []
      - basicAuth: []
      - cookieAuth: []
      - oauth2:
        - r:change:part
        - r:change:build
      responses:
        '200':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Part'
          description: ''
    delete:
      operationId: part_destroy
      description: API endpoint for detail view of a single Part object.
      parameters:
      - in: path
        name: id
        schema:
          type: integer
        required: true
      tags:
      - part
      security:
      - tokenAuth: []
      - basicAuth: []
      - cookieAuth: []
      - oauth2:
        - r:delete:part
        - r:delete:build
      responses:
        '204':
          description: No response body
  /api/part/{id}/bom-copy/:
    post:
      operationId: part_bom_copy_create
      description: API endpoint for duplicating a BOM.
      parameters:
      - in: path
        name: id
        schema:
          type: integer
        required: true
      tags:
      - part
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/PartCopyBOM'
          application/x-www-form-urlencoded:
            schema:
              $ref: '#/components/schemas/PartCopyBOM'
          multipart/form-data:
            schema:
              $ref: '#/components/schemas/PartCopyBOM'
        required: true
      security:
      - tokenAuth: []
      - basicAuth: []
      - cookieAuth: []
      - oauth2:
        - g:read
      responses:
        '201':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/PartCopyBOM'
          description: ''
  /api/part/{id}/bom-validate/:
    get:
      operationId: part_bom_validate_retrieve
      description: API endpoint for 'validating' the BOM for a given Part.
      parameters:
      - in: path
        name: id
        schema:
          type: integer
        required: true
      tags:
      - part
      security:
      - tokenAuth: []
      - basicAuth: []
      - cookieAuth: []
      - oauth2:
        - r:view:part
        - r:view:build
      responses:
        '200':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/PartBomValidate'
          description: ''
    put:
      operationId: part_bom_validate_update
      description: API endpoint for 'validating' the BOM for a given Part.
      parameters:
      - in: path
        name: id
        schema:
          type: integer
        required: true
      tags:
      - part
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/PartBomValidate'
          application/x-www-form-urlencoded:
            schema:
              $ref: '#/components/schemas/PartBomValidate'
          multipart/form-data:
            schema:
              $ref: '#/components/schemas/PartBomValidate'
      security:
      - tokenAuth: []
      - basicAuth: []
      - cookieAuth: []
      - oauth2:
        - r:change:part
        - r:change:build
      responses:
        '200':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/PartBomValidate'
          description: ''
    patch:
      operationId: part_bom_validate_partial_update
      description: API endpoint for 'validating' the BOM for a given Part.
      parameters:
      - in: path
        name: id
        schema:
          type: integer
        required: true
      tags:
      - part
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/PatchedPartBomValidate'
          application/x-www-form-urlencoded:
            schema:
              $ref: '#/components/schemas/PatchedPartBomValidate'
          multipart/form-data:
            schema:
              $ref: '#/components/schemas/PatchedPartBomValidate'
      security:
      - tokenAuth: []
      - basicAuth: []
      - cookieAuth: []
      - oauth2:
        - r:change:part
        - r:change:build
      responses:
        '200':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/PartBomValidate'
          description: ''
  /api/part/{id}/metadata/:
    get:
      operationId: part_metadata_retrieve
      description: Generic API endpoint for reading and editing metadata for a model.
      parameters:
      - in: path
        name: id
        schema:
          type: integer
        required: true
      tags:
      - part
      security:
      - tokenAuth: []
      - basicAuth: []
      - cookieAuth: []
      - oauth2:
        - r:view:part
        - r:view:build
      responses:
        '200':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Metadata'
          description: ''
    put:
      operationId: part_metadata_update
      description: Generic API endpoint for reading and editing metadata for a model.
      parameters:
      - in: path
        name: id
        schema:
          type: integer
        required: true
      tags:
      - part
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/Metadata'
          application/x-www-form-urlencoded:
            schema:
              $ref: '#/components/schemas/Metadata'
          multipart/form-data:
            schema:
              $ref: '#/components/schemas/Metadata'
        required: true
      security:
      - tokenAuth: []
      - basicAuth: []
      - cookieAuth: []
      - oauth2:
        - r:change:part
        - r:change:build
      responses:
        '200':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Metadata'
          description: ''
    patch:
      operationId: part_metadata_partial_update
      description: Generic API endpoint for reading and editing metadata for a model.
      parameters:
      - in: path
        name: id
        schema:
          type: integer
        required: true
      tags:
      - part
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/PatchedMetadata'
          application/x-www-form-urlencoded:
            schema:
              $ref: '#/components/schemas/PatchedMetadata'
          multipart/form-data:
            schema:
              $ref: '#/components/schemas/PatchedMetadata'
      security:
      - tokenAuth: []
      - basicAuth: []
      - cookieAuth: []
      - oauth2:
        - r:change:part
        - r:change:build
      responses:
        '200':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Metadata'
          description: ''
  /api/part/{id}/pricing/:
    get:
      operationId: part_pricing_retrieve
      description: API endpoint for viewing part pricing data.
      parameters:
      - in: path
        name: id
        schema:
          type: integer
        required: true
      tags:
      - part
      security:
      - tokenAuth: []
      - basicAuth: []
      - cookieAuth: []
      - oauth2:
        - r:view:part
      responses:
        '200':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/PartPricing'
          description: ''
    put:
      operationId: part_pricing_update
      description: API endpoint for viewing part pricing data.
      parameters:
      - in: path
        name: id
        schema:
          type: integer
        required: true
      tags:
      - part
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/PartPricing'
          application/x-www-form-urlencoded:
            schema:
              $ref: '#/components/schemas/PartPricing'
          multipart/form-data:
            schema:
              $ref: '#/components/schemas/PartPricing'
      security:
      - tokenAuth: []
      - basicAuth: []
      - cookieAuth: []
      - oauth2:
        - r:change:part
      responses:
        '200':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/PartPricing'
          description: ''
    patch:
      operationId: part_pricing_partial_update
      description: API endpoint for viewing part pricing data.
      parameters:
      - in: path
        name: id
        schema:
          type: integer
        required: true
      tags:
      - part
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/PatchedPartPricing'
          application/x-www-form-urlencoded:
            schema:
              $ref: '#/components/schemas/PatchedPartPricing'
          multipart/form-data:
            schema:
              $ref: '#/components/schemas/PatchedPartPricing'
      security:
      - tokenAuth: []
      - basicAuth: []
      - cookieAuth: []
      - oauth2:
        - r:change:part
      responses:
        '200':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/PartPricing'
          description: ''
  /api/part/{id}/requirements/:
    get:
      operationId: part_requirements_retrieve
      description: |-
        API endpoint detailing 'requirements' information for a particular part.

        This endpoint returns information on upcoming requirements for:

        - Sales Orders
        - Build Orders
        - Total requirements
        - How many of this part can be assembled with available stock

        As this data is somewhat complex to calculate, is it not included in the default API
      parameters:
      - in: path
        name: id
        schema:
          type: integer
        required: true
      tags:
      - part
      security:
      - tokenAuth: []
      - basicAuth: []
      - cookieAuth: []
      - oauth2:
        - r:view:part
        - r:view:build
      responses:
        '200':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/PartRequirements'
          description: ''
  /api/part/{id}/serial-numbers/:
    get:
      operationId: part_serial_numbers_retrieve
      description: API endpoint for returning extra serial number information about
        a particular part.
      parameters:
      - in: path
        name: id
        schema:
          type: integer
        required: true
      tags:
      - part
      security:
      - tokenAuth: []
      - basicAuth: []
      - cookieAuth: []
      - oauth2:
        - r:view:part
        - r:view:build
      responses:
        '200':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/PartSerialNumber'
          description: ''
  /api/part/category/:
    get:
      operationId: part_category_list
      description: Override the GET method to determine export options.
      parameters:
      - in: query
        name: cascade
        schema:
          type: boolean
        description: Include sub-categories in filtered results
      - in: query
        name: depth
        schema:
          type: number
        description: Filter by category depth
      - in: query
        name: exclude_tree
        schema:
          type: integer
      - name: limit
        required: true
        in: query
        description: Number of results to return per page.
        schema:
          type: integer
      - in: query
        name: name
        schema:
          type: string
      - name: offset
        required: false
        in: query
        description: The initial index from which to return the results.
        schema:
          type: integer
      - name: ordering
        required: false
        in: query
        description: 'Which field to use when ordering the results. Possible fields:
          name, pathstring, level, tree_id, lft, part_count.'
        schema:
          type: string
      - in: query
        name: parent
        schema:
          type: integer
        description: Filter by parent category
      - in: query
        name: path_detail
        schema:
          type: boolean
          default: false
      - name: search
        required: false
        in: query
        description: 'A search term. Searched fields: description, name, pathstring.'
        schema:
          type: string
      - in: query
        name: starred
        schema:
          type: boolean
        description: Filter by starred categories
      - in: query
        name: structural
        schema:
          type: boolean
      - in: query
        name: top_level
        schema:
          type: boolean
        description: Filter by top-level categories
      tags:
      - part
      security:
      - tokenAuth: []
      - basicAuth: []
      - cookieAuth: []
      - oauth2:
        - r:view:part_category
        - r:view:build
      responses:
        '200':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/PaginatedCategoryList'
          description: ''
    post:
      operationId: part_category_create
      description: |-
        API endpoint for accessing a list of PartCategory objects.

        - GET: Return a list of PartCategory objects
        - POST: Create a new PartCategory object
      tags:
      - part
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/Category'
          application/x-www-form-urlencoded:
            schema:
              $ref: '#/components/schemas/Category'
          multipart/form-data:
            schema:
              $ref: '#/components/schemas/Category'
        required: true
      security:
      - tokenAuth: []
      - basicAuth: []
      - cookieAuth: []
      - oauth2:
        - r:add:part_category
        - r:add:build
      responses:
        '201':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Category'
          description: ''
    put:
      operationId: part_category_bulk_update
      description: |-
        Perform a PUT operation against this list endpoint.

        Simply redirects to the PATCH method.
      tags:
      - part
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/Category'
          application/x-www-form-urlencoded:
            schema:
              $ref: '#/components/schemas/Category'
          multipart/form-data:
            schema:
              $ref: '#/components/schemas/Category'
        required: true
      security:
      - tokenAuth: []
      - basicAuth: []
      - cookieAuth: []
      - oauth2:
        - r:change:part_category
        - r:change:build
      responses:
        '200':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Category'
          description: ''
    patch:
      operationId: part_category_bulk_partial_update
      description: |-
        Perform a PATCH operation against this list endpoint.

        Note that the typical DRF list endpoint does not support PATCH,
        so this method is provided as a custom implementation.
      tags:
      - part
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/PatchedCategory'
          application/x-www-form-urlencoded:
            schema:
              $ref: '#/components/schemas/PatchedCategory'
          multipart/form-data:
            schema:
              $ref: '#/components/schemas/PatchedCategory'
      security:
      - tokenAuth: []
      - basicAuth: []
      - cookieAuth: []
      - oauth2:
        - r:change:part_category
        - r:change:build
      responses:
        '200':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Category'
          description: ''
  /api/part/category/{id}/:
    get:
      operationId: part_category_retrieve
      description: Custom get method to pass kwargs.
      parameters:
      - in: path
        name: id
        schema:
          type: integer
        required: true
      - in: query
        name: path_detail
        schema:
          type: boolean
          default: false
      tags:
      - part
      security:
      - tokenAuth: []
      - basicAuth: []
      - cookieAuth: []
      - oauth2:
        - r:view:part_category
        - r:view:build
      responses:
        '200':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Category'
          description: ''
    put:
      operationId: part_category_update
      description: Custom put method to pass kwargs.
      parameters:
      - in: path
        name: id
        schema:
          type: integer
        required: true
      tags:
      - part
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/Category'
          application/x-www-form-urlencoded:
            schema:
              $ref: '#/components/schemas/Category'
          multipart/form-data:
            schema:
              $ref: '#/components/schemas/Category'
        required: true
      security:
      - tokenAuth: []
      - basicAuth: []
      - cookieAuth: []
      - oauth2:
        - r:change:part_category
        - r:change:build
      responses:
        '200':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Category'
          description: ''
    patch:
      operationId: part_category_partial_update
      description: Custom patch method to pass kwargs.
      parameters:
      - in: path
        name: id
        schema:
          type: integer
        required: true
      tags:
      - part
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/PatchedCategory'
          application/x-www-form-urlencoded:
            schema:
              $ref: '#/components/schemas/PatchedCategory'
          multipart/form-data:
            schema:
              $ref: '#/components/schemas/PatchedCategory'
      security:
      - tokenAuth: []
      - basicAuth: []
      - cookieAuth: []
      - oauth2:
        - r:change:part_category
        - r:change:build
      responses:
        '200':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Category'
          description: ''
    delete:
      operationId: part_category_destroy
      description: Custom delete method to pass kwargs.
      parameters:
      - in: path
        name: id
        schema:
          type: integer
        required: true
      tags:
      - part
      security:
      - tokenAuth: []
      - basicAuth: []
      - cookieAuth: []
      - oauth2:
        - r:delete:part_category
        - r:delete:build
      responses:
        '204':
          description: No response body
  /api/part/category/{id}/metadata/:
    get:
      operationId: part_category_metadata_retrieve
      description: Generic API endpoint for reading and editing metadata for a model.
      parameters:
      - in: path
        name: id
        schema:
          type: integer
        required: true
      tags:
      - part
      security:
      - tokenAuth: []
      - basicAuth: []
      - cookieAuth: []
      - oauth2:
        - r:view:part_category
        - r:view:build
      responses:
        '200':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Metadata'
          description: ''
    put:
      operationId: part_category_metadata_update
      description: Generic API endpoint for reading and editing metadata for a model.
      parameters:
      - in: path
        name: id
        schema:
          type: integer
        required: true
      tags:
      - part
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/Metadata'
          application/x-www-form-urlencoded:
            schema:
              $ref: '#/components/schemas/Metadata'
          multipart/form-data:
            schema:
              $ref: '#/components/schemas/Metadata'
        required: true
      security:
      - tokenAuth: []
      - basicAuth: []
      - cookieAuth: []
      - oauth2:
        - r:change:part_category
        - r:change:build
      responses:
        '200':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Metadata'
          description: ''
    patch:
      operationId: part_category_metadata_partial_update
      description: Generic API endpoint for reading and editing metadata for a model.
      parameters:
      - in: path
        name: id
        schema:
          type: integer
        required: true
      tags:
      - part
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/PatchedMetadata'
          application/x-www-form-urlencoded:
            schema:
              $ref: '#/components/schemas/PatchedMetadata'
          multipart/form-data:
            schema:
              $ref: '#/components/schemas/PatchedMetadata'
      security:
      - tokenAuth: []
      - basicAuth: []
      - cookieAuth: []
      - oauth2:
        - r:change:part_category
        - r:change:build
      responses:
        '200':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Metadata'
          description: ''
  /api/part/category/parameters/:
    get:
      operationId: part_category_parameters_list
      description: Override the GET method to determine export options.
      parameters:
      - name: limit
        required: true
        in: query
        description: Number of results to return per page.
        schema:
          type: integer
      - name: offset
        required: false
        in: query
        description: The initial index from which to return the results.
        schema:
          type: integer
      tags:
      - part
      security:
      - tokenAuth: []
      - basicAuth: []
      - cookieAuth: []
      - oauth2:
        - r:view:part_category
      responses:
        '200':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/PaginatedCategoryParameterTemplateList'
          description: ''
    post:
      operationId: part_category_parameters_create
      description: |-
        API endpoint for accessing a list of PartCategoryParameterTemplate objects.

        - GET: Return a list of PartCategoryParameterTemplate objects
      tags:
      - part
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/CategoryParameterTemplate'
          application/x-www-form-urlencoded:
            schema:
              $ref: '#/components/schemas/CategoryParameterTemplate'
          multipart/form-data:
            schema:
              $ref: '#/components/schemas/CategoryParameterTemplate'
        required: true
      security:
      - tokenAuth: []
      - basicAuth: []
      - cookieAuth: []
      - oauth2:
        - r:add:part_category
      responses:
        '201':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/CategoryParameterTemplate'
          description: ''
  /api/part/category/parameters/{id}/:
    get:
      operationId: part_category_parameters_retrieve
      description: Detail endpoint for the PartCategoryParameterTemplate model.
      parameters:
      - in: path
        name: id
        schema:
          type: integer
        required: true
      tags:
      - part
      security:
      - tokenAuth: []
      - basicAuth: []
      - cookieAuth: []
      - oauth2:
        - r:view:part_category
      responses:
        '200':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/CategoryParameterTemplate'
          description: ''
    put:
      operationId: part_category_parameters_update
      description: Detail endpoint for the PartCategoryParameterTemplate model.
      parameters:
      - in: path
        name: id
        schema:
          type: integer
        required: true
      tags:
      - part
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/CategoryParameterTemplate'
          application/x-www-form-urlencoded:
            schema:
              $ref: '#/components/schemas/CategoryParameterTemplate'
          multipart/form-data:
            schema:
              $ref: '#/components/schemas/CategoryParameterTemplate'
        required: true
      security:
      - tokenAuth: []
      - basicAuth: []
      - cookieAuth: []
      - oauth2:
        - r:change:part_category
      responses:
        '200':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/CategoryParameterTemplate'
          description: ''
    patch:
      operationId: part_category_parameters_partial_update
      description: Detail endpoint for the PartCategoryParameterTemplate model.
      parameters:
      - in: path
        name: id
        schema:
          type: integer
        required: true
      tags:
      - part
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/PatchedCategoryParameterTemplate'
          application/x-www-form-urlencoded:
            schema:
              $ref: '#/components/schemas/PatchedCategoryParameterTemplate'
          multipart/form-data:
            schema:
              $ref: '#/components/schemas/PatchedCategoryParameterTemplate'
      security:
      - tokenAuth: []
      - basicAuth: []
      - cookieAuth: []
      - oauth2:
        - r:change:part_category
      responses:
        '200':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/CategoryParameterTemplate'
          description: ''
    delete:
      operationId: part_category_parameters_destroy
      description: Detail endpoint for the PartCategoryParameterTemplate model.
      parameters:
      - in: path
        name: id
        schema:
          type: integer
        required: true
      tags:
      - part
      security:
      - tokenAuth: []
      - basicAuth: []
      - cookieAuth: []
      - oauth2:
        - r:delete:part_category
      responses:
        '204':
          description: No response body
  /api/part/category/parameters/{id}/metadata/:
    get:
      operationId: part_category_parameters_metadata_retrieve
      description: Generic API endpoint for reading and editing metadata for a model.
      parameters:
      - in: path
        name: id
        schema:
          type: integer
        required: true
      tags:
      - part
      security:
      - tokenAuth: []
      - basicAuth: []
      - cookieAuth: []
      - oauth2:
        - r:view:part_category
      responses:
        '200':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Metadata'
          description: ''
    put:
      operationId: part_category_parameters_metadata_update
      description: Generic API endpoint for reading and editing metadata for a model.
      parameters:
      - in: path
        name: id
        schema:
          type: integer
        required: true
      tags:
      - part
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/Metadata'
          application/x-www-form-urlencoded:
            schema:
              $ref: '#/components/schemas/Metadata'
          multipart/form-data:
            schema:
              $ref: '#/components/schemas/Metadata'
        required: true
      security:
      - tokenAuth: []
      - basicAuth: []
      - cookieAuth: []
      - oauth2:
        - r:change:part_category
      responses:
        '200':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Metadata'
          description: ''
    patch:
      operationId: part_category_parameters_metadata_partial_update
      description: Generic API endpoint for reading and editing metadata for a model.
      parameters:
      - in: path
        name: id
        schema:
          type: integer
        required: true
      tags:
      - part
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/PatchedMetadata'
          application/x-www-form-urlencoded:
            schema:
              $ref: '#/components/schemas/PatchedMetadata'
          multipart/form-data:
            schema:
              $ref: '#/components/schemas/PatchedMetadata'
      security:
      - tokenAuth: []
      - basicAuth: []
      - cookieAuth: []
      - oauth2:
        - r:change:part_category
      responses:
        '200':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Metadata'
          description: ''
  /api/part/category/tree/:
    get:
      operationId: part_category_tree_list
      description: API endpoint for accessing a list of PartCategory objects ready
        for rendering a tree.
      parameters:
      - name: limit
        required: true
        in: query
        description: Number of results to return per page.
        schema:
          type: integer
      - name: offset
        required: false
        in: query
        description: The initial index from which to return the results.
        schema:
          type: integer
      - name: ordering
        required: false
        in: query
        description: 'Which field to use when ordering the results. Possible fields:
          level, name, subcategories.'
        schema:
          type: string
      tags:
      - part
      security:
      - tokenAuth: []
      - basicAuth: []
      - cookieAuth: []
      - oauth2:
        - r:view:part_category
        - r:view:build
      responses:
        '200':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/PaginatedCategoryTreeList'
          description: ''
  /api/part/internal-price/:
    get:
      operationId: part_internal_price_list
      description: Override the GET method to determine export options.
      parameters:
      - name: limit
        required: true
        in: query
        description: Number of results to return per page.
        schema:
          type: integer
      - name: offset
        required: false
        in: query
        description: The initial index from which to return the results.
        schema:
          type: integer
      - name: ordering
        required: false
        in: query
        description: 'Which field to use when ordering the results. Possible fields:
          quantity, price.'
        schema:
          type: string
      - in: query
        name: part
        schema:
          type: integer
      - name: search
        required: false
        in: query
        description: A search term.
        schema:
          type: string
      tags:
      - part
      security:
      - tokenAuth: []
      - basicAuth: []
      - cookieAuth: []
      - oauth2:
        - r:view:part
      responses:
        '200':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/PaginatedPartInternalPriceList'
          description: ''
    post:
      operationId: part_internal_price_create
      description: API endpoint for list view of PartInternalPriceBreak model.
      tags:
      - part
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/PartInternalPrice'
          application/x-www-form-urlencoded:
            schema:
              $ref: '#/components/schemas/PartInternalPrice'
          multipart/form-data:
            schema:
              $ref: '#/components/schemas/PartInternalPrice'
        required: true
      security:
      - tokenAuth: []
      - basicAuth: []
      - cookieAuth: []
      - oauth2:
        - r:add:part
      responses:
        '201':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/PartInternalPrice'
          description: ''
  /api/part/internal-price/{id}/:
    get:
      operationId: part_internal_price_retrieve
      description: Detail endpoint for PartInternalPriceBreak model.
      parameters:
      - in: path
        name: id
        schema:
          type: integer
        required: true
      tags:
      - part
      security:
      - tokenAuth: []
      - basicAuth: []
      - cookieAuth: []
      - oauth2:
        - r:view:part
      responses:
        '200':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/PartInternalPrice'
          description: ''
    put:
      operationId: part_internal_price_update
      description: Detail endpoint for PartInternalPriceBreak model.
      parameters:
      - in: path
        name: id
        schema:
          type: integer
        required: true
      tags:
      - part
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/PartInternalPrice'
          application/x-www-form-urlencoded:
            schema:
              $ref: '#/components/schemas/PartInternalPrice'
          multipart/form-data:
            schema:
              $ref: '#/components/schemas/PartInternalPrice'
        required: true
      security:
      - tokenAuth: []
      - basicAuth: []
      - cookieAuth: []
      - oauth2:
        - r:change:part
      responses:
        '200':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/PartInternalPrice'
          description: ''
    patch:
      operationId: part_internal_price_partial_update
      description: Detail endpoint for PartInternalPriceBreak model.
      parameters:
      - in: path
        name: id
        schema:
          type: integer
        required: true
      tags:
      - part
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/PatchedPartInternalPrice'
          application/x-www-form-urlencoded:
            schema:
              $ref: '#/components/schemas/PatchedPartInternalPrice'
          multipart/form-data:
            schema:
              $ref: '#/components/schemas/PatchedPartInternalPrice'
      security:
      - tokenAuth: []
      - basicAuth: []
      - cookieAuth: []
      - oauth2:
        - r:change:part
      responses:
        '200':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/PartInternalPrice'
          description: ''
    delete:
      operationId: part_internal_price_destroy
      description: Detail endpoint for PartInternalPriceBreak model.
      parameters:
      - in: path
        name: id
        schema:
          type: integer
        required: true
      tags:
      - part
      security:
      - tokenAuth: []
      - basicAuth: []
      - cookieAuth: []
      - oauth2:
        - r:delete:part
      responses:
        '204':
          description: No response body
  /api/part/parameter/:
    get:
      operationId: part_parameter_list
      description: Override the GET method to determine export options.
      parameters:
      - name: limit
        required: true
        in: query
        description: Number of results to return per page.
        schema:
          type: integer
      - name: offset
        required: false
        in: query
        description: The initial index from which to return the results.
        schema:
          type: integer
      - name: ordering
        required: false
        in: query
        description: 'Which field to use when ordering the results. Possible fields:
          name, data, part, template, updated, updated_by.'
        schema:
          type: string
      - in: query
        name: part
        schema:
          type: integer
      - in: query
        name: part_detail
        schema:
          type: boolean
          default: false
        description: Include detailed information about the related part in the response
      - name: search
        required: false
        in: query
        description: 'A search term. Searched fields: data, template__description,
          template__name, template__units.'
        schema:
          type: string
      - in: query
        name: template
        schema:
          type: integer
      - in: query
        name: template_detail
        schema:
          type: boolean
          default: true
        description: Include detailed information about the part parameter template.
      - in: query
        name: updated_by
        schema:
          type: integer
      tags:
      - part
      security:
      - tokenAuth: []
      - basicAuth: []
      - cookieAuth: []
      - oauth2:
        - r:view:part
      responses:
        '200':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/PaginatedPartParameterList'
          description: ''
    post:
      operationId: part_parameter_create
      description: |-
        API endpoint for accessing a list of PartParameter objects.

        - GET: Return list of PartParameter objects
        - POST: Create a new PartParameter object
      tags:
      - part
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/PartParameter'
          application/x-www-form-urlencoded:
            schema:
              $ref: '#/components/schemas/PartParameter'
          multipart/form-data:
            schema:
              $ref: '#/components/schemas/PartParameter'
        required: true
      security:
      - tokenAuth: []
      - basicAuth: []
      - cookieAuth: []
      - oauth2:
        - r:add:part
      responses:
        '201':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/PartParameter'
          description: ''
  /api/part/parameter/{id}/:
    get:
      operationId: part_parameter_retrieve
      description: API endpoint for detail view of a single PartParameter object.
      parameters:
      - in: path
        name: id
        schema:
          type: integer
        required: true
      - in: query
        name: part_detail
        schema:
          type: boolean
          default: false
        description: Include detailed information about the related part in the response
      - in: query
        name: template_detail
        schema:
          type: boolean
          default: true
        description: Include detailed information about the part parameter template.
      tags:
      - part
      security:
      - tokenAuth: []
      - basicAuth: []
      - cookieAuth: []
      - oauth2:
        - r:view:part
      responses:
        '200':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/PartParameter'
          description: ''
    put:
      operationId: part_parameter_update
      description: API endpoint for detail view of a single PartParameter object.
      parameters:
      - in: path
        name: id
        schema:
          type: integer
        required: true
      tags:
      - part
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/PartParameter'
          application/x-www-form-urlencoded:
            schema:
              $ref: '#/components/schemas/PartParameter'
          multipart/form-data:
            schema:
              $ref: '#/components/schemas/PartParameter'
        required: true
      security:
      - tokenAuth: []
      - basicAuth: []
      - cookieAuth: []
      - oauth2:
        - r:change:part
      responses:
        '200':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/PartParameter'
          description: ''
    patch:
      operationId: part_parameter_partial_update
      description: API endpoint for detail view of a single PartParameter object.
      parameters:
      - in: path
        name: id
        schema:
          type: integer
        required: true
      tags:
      - part
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/PatchedPartParameter'
          application/x-www-form-urlencoded:
            schema:
              $ref: '#/components/schemas/PatchedPartParameter'
          multipart/form-data:
            schema:
              $ref: '#/components/schemas/PatchedPartParameter'
      security:
      - tokenAuth: []
      - basicAuth: []
      - cookieAuth: []
      - oauth2:
        - r:change:part
      responses:
        '200':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/PartParameter'
          description: ''
    delete:
      operationId: part_parameter_destroy
      description: API endpoint for detail view of a single PartParameter object.
      parameters:
      - in: path
        name: id
        schema:
          type: integer
        required: true
      tags:
      - part
      security:
      - tokenAuth: []
      - basicAuth: []
      - cookieAuth: []
      - oauth2:
        - r:delete:part
      responses:
        '204':
          description: No response body
  /api/part/parameter/{id}/metadata/:
    get:
      operationId: part_parameter_metadata_retrieve
      description: Generic API endpoint for reading and editing metadata for a model.
      parameters:
      - in: path
        name: id
        schema:
          type: integer
        required: true
      tags:
      - part
      security:
      - tokenAuth: []
      - basicAuth: []
      - cookieAuth: []
      - oauth2:
        - r:view:part
      responses:
        '200':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Metadata'
          description: ''
    put:
      operationId: part_parameter_metadata_update
      description: Generic API endpoint for reading and editing metadata for a model.
      parameters:
      - in: path
        name: id
        schema:
          type: integer
        required: true
      tags:
      - part
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/Metadata'
          application/x-www-form-urlencoded:
            schema:
              $ref: '#/components/schemas/Metadata'
          multipart/form-data:
            schema:
              $ref: '#/components/schemas/Metadata'
        required: true
      security:
      - tokenAuth: []
      - basicAuth: []
      - cookieAuth: []
      - oauth2:
        - r:change:part
      responses:
        '200':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Metadata'
          description: ''
    patch:
      operationId: part_parameter_metadata_partial_update
      description: Generic API endpoint for reading and editing metadata for a model.
      parameters:
      - in: path
        name: id
        schema:
          type: integer
        required: true
      tags:
      - part
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/PatchedMetadata'
          application/x-www-form-urlencoded:
            schema:
              $ref: '#/components/schemas/PatchedMetadata'
          multipart/form-data:
            schema:
              $ref: '#/components/schemas/PatchedMetadata'
      security:
      - tokenAuth: []
      - basicAuth: []
      - cookieAuth: []
      - oauth2:
        - r:change:part
      responses:
        '200':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Metadata'
          description: ''
  /api/part/parameter/template/:
    get:
      operationId: part_parameter_template_list
      description: Override the GET method to determine export options.
      parameters:
      - in: query
        name: category
        schema:
          type: integer
      - in: query
        name: checkbox
        schema:
          type: boolean
      - in: query
        name: has_choices
        schema:
          type: boolean
        description: Has Choice
      - in: query
        name: has_units
        schema:
          type: boolean
        description: Has Units
      - name: limit
        required: true
        in: query
        description: Number of results to return per page.
        schema:
          type: integer
      - in: query
        name: name
        schema:
          type: string
      - name: offset
        required: false
        in: query
        description: The initial index from which to return the results.
        schema:
          type: integer
      - name: ordering
        required: false
        in: query
        description: 'Which field to use when ordering the results. Possible fields:
          name, units, checkbox, parts.'
        schema:
          type: string
      - in: query
        name: part
        schema:
          type: integer
      - name: search
        required: false
        in: query
        description: 'A search term. Searched fields: description, name.'
        schema:
          type: string
      - in: query
        name: units
        schema:
          type: string
      tags:
      - part
      security:
      - tokenAuth: []
      - basicAuth: []
      - cookieAuth: []
      - oauth2:
        - r:view:part
      responses:
        '200':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/PaginatedPartParameterTemplateList'
          description: ''
    post:
      operationId: part_parameter_template_create
      description: |-
        API endpoint for accessing a list of PartParameterTemplate objects.

        - GET: Return list of PartParameterTemplate objects
        - POST: Create a new PartParameterTemplate object
      tags:
      - part
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/PartParameterTemplate'
          application/x-www-form-urlencoded:
            schema:
              $ref: '#/components/schemas/PartParameterTemplate'
          multipart/form-data:
            schema:
              $ref: '#/components/schemas/PartParameterTemplate'
        required: true
      security:
      - tokenAuth: []
      - basicAuth: []
      - cookieAuth: []
      - oauth2:
        - r:add:part
      responses:
        '201':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/PartParameterTemplate'
          description: ''
  /api/part/parameter/template/{id}/:
    get:
      operationId: part_parameter_template_retrieve
      description: API endpoint for accessing the detail view for a PartParameterTemplate
        object.
      parameters:
      - in: path
        name: id
        schema:
          type: integer
        required: true
      tags:
      - part
      security:
      - tokenAuth: []
      - basicAuth: []
      - cookieAuth: []
      - oauth2:
        - r:view:part
      responses:
        '200':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/PartParameterTemplate'
          description: ''
    put:
      operationId: part_parameter_template_update
      description: API endpoint for accessing the detail view for a PartParameterTemplate
        object.
      parameters:
      - in: path
        name: id
        schema:
          type: integer
        required: true
      tags:
      - part
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/PartParameterTemplate'
          application/x-www-form-urlencoded:
            schema:
              $ref: '#/components/schemas/PartParameterTemplate'
          multipart/form-data:
            schema:
              $ref: '#/components/schemas/PartParameterTemplate'
        required: true
      security:
      - tokenAuth: []
      - basicAuth: []
      - cookieAuth: []
      - oauth2:
        - r:change:part
      responses:
        '200':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/PartParameterTemplate'
          description: ''
    patch:
      operationId: part_parameter_template_partial_update
      description: API endpoint for accessing the detail view for a PartParameterTemplate
        object.
      parameters:
      - in: path
        name: id
        schema:
          type: integer
        required: true
      tags:
      - part
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/PatchedPartParameterTemplate'
          application/x-www-form-urlencoded:
            schema:
              $ref: '#/components/schemas/PatchedPartParameterTemplate'
          multipart/form-data:
            schema:
              $ref: '#/components/schemas/PatchedPartParameterTemplate'
      security:
      - tokenAuth: []
      - basicAuth: []
      - cookieAuth: []
      - oauth2:
        - r:change:part
      responses:
        '200':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/PartParameterTemplate'
          description: ''
    delete:
      operationId: part_parameter_template_destroy
      description: API endpoint for accessing the detail view for a PartParameterTemplate
        object.
      parameters:
      - in: path
        name: id
        schema:
          type: integer
        required: true
      tags:
      - part
      security:
      - tokenAuth: []
      - basicAuth: []
      - cookieAuth: []
      - oauth2:
        - r:delete:part
      responses:
        '204':
          description: No response body
  /api/part/parameter/template/{id}/metadata/:
    get:
      operationId: part_parameter_template_metadata_retrieve
      description: Generic API endpoint for reading and editing metadata for a model.
      parameters:
      - in: path
        name: id
        schema:
          type: integer
        required: true
      tags:
      - part
      security:
      - tokenAuth: []
      - basicAuth: []
      - cookieAuth: []
      - oauth2:
        - r:view:part
      responses:
        '200':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Metadata'
          description: ''
    put:
      operationId: part_parameter_template_metadata_update
      description: Generic API endpoint for reading and editing metadata for a model.
      parameters:
      - in: path
        name: id
        schema:
          type: integer
        required: true
      tags:
      - part
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/Metadata'
          application/x-www-form-urlencoded:
            schema:
              $ref: '#/components/schemas/Metadata'
          multipart/form-data:
            schema:
              $ref: '#/components/schemas/Metadata'
        required: true
      security:
      - tokenAuth: []
      - basicAuth: []
      - cookieAuth: []
      - oauth2:
        - r:change:part
      responses:
        '200':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Metadata'
          description: ''
    patch:
      operationId: part_parameter_template_metadata_partial_update
      description: Generic API endpoint for reading and editing metadata for a model.
      parameters:
      - in: path
        name: id
        schema:
          type: integer
        required: true
      tags:
      - part
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/PatchedMetadata'
          application/x-www-form-urlencoded:
            schema:
              $ref: '#/components/schemas/PatchedMetadata'
          multipart/form-data:
            schema:
              $ref: '#/components/schemas/PatchedMetadata'
      security:
      - tokenAuth: []
      - basicAuth: []
      - cookieAuth: []
      - oauth2:
        - r:change:part
      responses:
        '200':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Metadata'
          description: ''
  /api/part/related/:
    get:
      operationId: part_related_list
      description: API endpoint for accessing a list of PartRelated objects.
      parameters:
      - name: limit
        required: true
        in: query
        description: Number of results to return per page.
        schema:
          type: integer
      - name: offset
        required: false
        in: query
        description: The initial index from which to return the results.
        schema:
          type: integer
      - name: ordering
        required: false
        in: query
        description: Which field to use when ordering the results.
        schema:
          type: string
      - in: query
        name: part
        schema:
          type: integer
        description: Part
      - in: query
        name: part_1
        schema:
          type: integer
      - in: query
        name: part_2
        schema:
          type: integer
      - name: search
        required: false
        in: query
        description: 'A search term. Searched fields: part_1__name, part_2__name.'
        schema:
          type: string
      tags:
      - part
      security:
      - tokenAuth: []
      - basicAuth: []
      - cookieAuth: []
      - oauth2:
        - r:view:part
      responses:
        '200':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/PaginatedPartRelationList'
          description: ''
    post:
      operationId: part_related_create
      description: API endpoint for accessing a list of PartRelated objects.
      tags:
      - part
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/PartRelation'
          application/x-www-form-urlencoded:
            schema:
              $ref: '#/components/schemas/PartRelation'
          multipart/form-data:
            schema:
              $ref: '#/components/schemas/PartRelation'
        required: true
      security:
      - tokenAuth: []
      - basicAuth: []
      - cookieAuth: []
      - oauth2:
        - r:add:part
      responses:
        '201':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/PartRelation'
          description: ''
  /api/part/related/{id}/:
    get:
      operationId: part_related_retrieve
      description: API endpoint for accessing detail view of a PartRelated object.
      parameters:
      - in: path
        name: id
        schema:
          type: integer
        required: true
      tags:
      - part
      security:
      - tokenAuth: []
      - basicAuth: []
      - cookieAuth: []
      - oauth2:
        - r:view:part
      responses:
        '200':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/PartRelation'
          description: ''
    put:
      operationId: part_related_update
      description: API endpoint for accessing detail view of a PartRelated object.
      parameters:
      - in: path
        name: id
        schema:
          type: integer
        required: true
      tags:
      - part
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/PartRelation'
          application/x-www-form-urlencoded:
            schema:
              $ref: '#/components/schemas/PartRelation'
          multipart/form-data:
            schema:
              $ref: '#/components/schemas/PartRelation'
        required: true
      security:
      - tokenAuth: []
      - basicAuth: []
      - cookieAuth: []
      - oauth2:
        - r:change:part
      responses:
        '200':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/PartRelation'
          description: ''
    patch:
      operationId: part_related_partial_update
      description: API endpoint for accessing detail view of a PartRelated object.
      parameters:
      - in: path
        name: id
        schema:
          type: integer
        required: true
      tags:
      - part
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/PatchedPartRelation'
          application/x-www-form-urlencoded:
            schema:
              $ref: '#/components/schemas/PatchedPartRelation'
          multipart/form-data:
            schema:
              $ref: '#/components/schemas/PatchedPartRelation'
      security:
      - tokenAuth: []
      - basicAuth: []
      - cookieAuth: []
      - oauth2:
        - r:change:part
      responses:
        '200':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/PartRelation'
          description: ''
    delete:
      operationId: part_related_destroy
      description: API endpoint for accessing detail view of a PartRelated object.
      parameters:
      - in: path
        name: id
        schema:
          type: integer
        required: true
      tags:
      - part
      security:
      - tokenAuth: []
      - basicAuth: []
      - cookieAuth: []
      - oauth2:
        - r:delete:part
      responses:
        '204':
          description: No response body
  /api/part/related/{id}/metadata/:
    get:
      operationId: part_related_metadata_retrieve
      description: Generic API endpoint for reading and editing metadata for a model.
      parameters:
      - in: path
        name: id
        schema:
          type: integer
        required: true
      tags:
      - part
      security:
      - tokenAuth: []
      - basicAuth: []
      - cookieAuth: []
      - oauth2:
        - r:view:part
      responses:
        '200':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Metadata'
          description: ''
    put:
      operationId: part_related_metadata_update
      description: Generic API endpoint for reading and editing metadata for a model.
      parameters:
      - in: path
        name: id
        schema:
          type: integer
        required: true
      tags:
      - part
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/Metadata'
          application/x-www-form-urlencoded:
            schema:
              $ref: '#/components/schemas/Metadata'
          multipart/form-data:
            schema:
              $ref: '#/components/schemas/Metadata'
        required: true
      security:
      - tokenAuth: []
      - basicAuth: []
      - cookieAuth: []
      - oauth2:
        - r:change:part
      responses:
        '200':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Metadata'
          description: ''
    patch:
      operationId: part_related_metadata_partial_update
      description: Generic API endpoint for reading and editing metadata for a model.
      parameters:
      - in: path
        name: id
        schema:
          type: integer
        required: true
      tags:
      - part
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/PatchedMetadata'
          application/x-www-form-urlencoded:
            schema:
              $ref: '#/components/schemas/PatchedMetadata'
          multipart/form-data:
            schema:
              $ref: '#/components/schemas/PatchedMetadata'
      security:
      - tokenAuth: []
      - basicAuth: []
      - cookieAuth: []
      - oauth2:
        - r:change:part
      responses:
        '200':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Metadata'
          description: ''
  /api/part/sale-price/:
    get:
      operationId: part_sale_price_list
      description: Override the GET method to determine export options.
      parameters:
      - name: limit
        required: true
        in: query
        description: Number of results to return per page.
        schema:
          type: integer
      - name: offset
        required: false
        in: query
        description: The initial index from which to return the results.
        schema:
          type: integer
      - name: ordering
        required: false
        in: query
        description: 'Which field to use when ordering the results. Possible fields:
          quantity, price.'
        schema:
          type: string
      - in: query
        name: part
        schema:
          type: integer
      - name: search
        required: false
        in: query
        description: A search term.
        schema:
          type: string
      tags:
      - part
      security:
      - tokenAuth: []
      - basicAuth: []
      - cookieAuth: []
      - oauth2:
        - r:view:part
      responses:
        '200':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/PaginatedPartSalePriceList'
          description: ''
    post:
      operationId: part_sale_price_create
      description: API endpoint for list view of PartSalePriceBreak model.
      tags:
      - part
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/PartSalePrice'
          application/x-www-form-urlencoded:
            schema:
              $ref: '#/components/schemas/PartSalePrice'
          multipart/form-data:
            schema:
              $ref: '#/components/schemas/PartSalePrice'
        required: true
      security:
      - tokenAuth: []
      - basicAuth: []
      - cookieAuth: []
      - oauth2:
        - r:add:part
      responses:
        '201':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/PartSalePrice'
          description: ''
  /api/part/sale-price/{id}/:
    get:
      operationId: part_sale_price_retrieve
      description: Detail endpoint for PartSellPriceBreak model.
      parameters:
      - in: path
        name: id
        schema:
          type: integer
        required: true
      tags:
      - part
      security:
      - tokenAuth: []
      - basicAuth: []
      - cookieAuth: []
      - oauth2:
        - r:view:part
      responses:
        '200':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/PartSalePrice'
          description: ''
    put:
      operationId: part_sale_price_update
      description: Detail endpoint for PartSellPriceBreak model.
      parameters:
      - in: path
        name: id
        schema:
          type: integer
        required: true
      tags:
      - part
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/PartSalePrice'
          application/x-www-form-urlencoded:
            schema:
              $ref: '#/components/schemas/PartSalePrice'
          multipart/form-data:
            schema:
              $ref: '#/components/schemas/PartSalePrice'
        required: true
      security:
      - tokenAuth: []
      - basicAuth: []
      - cookieAuth: []
      - oauth2:
        - r:change:part
      responses:
        '200':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/PartSalePrice'
          description: ''
    patch:
      operationId: part_sale_price_partial_update
      description: Detail endpoint for PartSellPriceBreak model.
      parameters:
      - in: path
        name: id
        schema:
          type: integer
        required: true
      tags:
      - part
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/PatchedPartSalePrice'
          application/x-www-form-urlencoded:
            schema:
              $ref: '#/components/schemas/PatchedPartSalePrice'
          multipart/form-data:
            schema:
              $ref: '#/components/schemas/PatchedPartSalePrice'
      security:
      - tokenAuth: []
      - basicAuth: []
      - cookieAuth: []
      - oauth2:
        - r:change:part
      responses:
        '200':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/PartSalePrice'
          description: ''
    delete:
      operationId: part_sale_price_destroy
      description: Detail endpoint for PartSellPriceBreak model.
      parameters:
      - in: path
        name: id
        schema:
          type: integer
        required: true
      tags:
      - part
      security:
      - tokenAuth: []
      - basicAuth: []
      - cookieAuth: []
      - oauth2:
        - r:delete:part
      responses:
        '204':
          description: No response body
  /api/part/stocktake/:
    get:
      operationId: part_stocktake_list
      description: API endpoint for listing part stocktake information.
      parameters:
      - name: limit
        required: true
        in: query
        description: Number of results to return per page.
        schema:
          type: integer
      - name: offset
        required: false
        in: query
        description: The initial index from which to return the results.
        schema:
          type: integer
      - name: ordering
        required: false
        in: query
        description: 'Which field to use when ordering the results. Possible fields:
          part, item_count, quantity, date, user, pk.'
        schema:
          type: string
      - in: query
        name: part
        schema:
          type: integer
      tags:
      - part
      security:
      - tokenAuth: []
      - basicAuth: []
      - cookieAuth: []
      - oauth2:
        - r:view:part
      responses:
        '200':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/PaginatedPartStocktakeList'
          description: ''
    post:
      operationId: part_stocktake_create
      description: API endpoint for listing part stocktake information.
      tags:
      - part
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/PartStocktake'
          application/x-www-form-urlencoded:
            schema:
              $ref: '#/components/schemas/PartStocktake'
          multipart/form-data:
            schema:
              $ref: '#/components/schemas/PartStocktake'
        required: true
      security:
      - tokenAuth: []
      - basicAuth: []
      - cookieAuth: []
      - oauth2:
        - r:add:part
      responses:
        '201':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/PartStocktake'
          description: ''
    delete:
      operationId: part_stocktake_bulk_destroy
      description: |-
        Perform a DELETE operation against this list endpoint.

        Note that the typical DRF list endpoint does not support DELETE,
        so this method is provided as a custom implementation.
      tags:
      - part
      security:
      - tokenAuth: []
      - basicAuth: []
      - cookieAuth: []
      - oauth2:
        - r:delete:part
      responses:
        '204':
          description: No response body
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/BulkRequest'
          application/x-www-form-urlencoded:
            schema:
              $ref: '#/components/schemas/BulkRequest'
          multipart/form-data:
            schema:
              $ref: '#/components/schemas/BulkRequest'
        required: true
  /api/part/stocktake/{id}/:
    get:
      operationId: part_stocktake_retrieve
      description: |-
        Detail API endpoint for a single PartStocktake instance.

        Note: Only staff (admin) users can access this endpoint.
      parameters:
      - in: path
        name: id
        schema:
          type: integer
        required: true
      tags:
      - part
      security:
      - tokenAuth: []
      - basicAuth: []
      - cookieAuth: []
      - oauth2:
        - r:view:part
      responses:
        '200':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/PartStocktake'
          description: ''
    put:
      operationId: part_stocktake_update
      description: |-
        Detail API endpoint for a single PartStocktake instance.

        Note: Only staff (admin) users can access this endpoint.
      parameters:
      - in: path
        name: id
        schema:
          type: integer
        required: true
      tags:
      - part
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/PartStocktake'
          application/x-www-form-urlencoded:
            schema:
              $ref: '#/components/schemas/PartStocktake'
          multipart/form-data:
            schema:
              $ref: '#/components/schemas/PartStocktake'
        required: true
      security:
      - tokenAuth: []
      - basicAuth: []
      - cookieAuth: []
      - oauth2:
        - r:change:part
      responses:
        '200':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/PartStocktake'
          description: ''
    patch:
      operationId: part_stocktake_partial_update
      description: |-
        Detail API endpoint for a single PartStocktake instance.

        Note: Only staff (admin) users can access this endpoint.
      parameters:
      - in: path
        name: id
        schema:
          type: integer
        required: true
      tags:
      - part
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/PatchedPartStocktake'
          application/x-www-form-urlencoded:
            schema:
              $ref: '#/components/schemas/PatchedPartStocktake'
          multipart/form-data:
            schema:
              $ref: '#/components/schemas/PatchedPartStocktake'
      security:
      - tokenAuth: []
      - basicAuth: []
      - cookieAuth: []
      - oauth2:
        - r:change:part
      responses:
        '200':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/PartStocktake'
          description: ''
    delete:
      operationId: part_stocktake_destroy
      description: |-
        Detail API endpoint for a single PartStocktake instance.

        Note: Only staff (admin) users can access this endpoint.
      parameters:
      - in: path
        name: id
        schema:
          type: integer
        required: true
      tags:
      - part
      security:
      - tokenAuth: []
      - basicAuth: []
      - cookieAuth: []
      - oauth2:
        - r:delete:part
      responses:
        '204':
          description: No response body
  /api/part/test-template/:
    get:
      operationId: part_test_template_list
      description: Override the GET method to determine export options.
      parameters:
      - in: query
        name: enabled
        schema:
          type: boolean
      - in: query
        name: has_results
        schema:
          type: boolean
        description: Has Results
      - in: query
        name: key
        schema:
          type: string
      - name: limit
        required: true
        in: query
        description: Number of results to return per page.
        schema:
          type: integer
      - name: offset
        required: false
        in: query
        description: The initial index from which to return the results.
        schema:
          type: integer
      - name: ordering
        required: false
        in: query
        description: 'Which field to use when ordering the results. Possible fields:
          enabled, required, requires_value, requires_attachment, results, test_name.'
        schema:
          type: string
      - in: query
        name: part
        schema:
          type: integer
        description: Part
      - in: query
        name: required
        schema:
          type: boolean
      - in: query
        name: requires_attachment
        schema:
          type: boolean
      - in: query
        name: requires_value
        schema:
          type: boolean
      - name: search
        required: false
        in: query
        description: 'A search term. Searched fields: description, test_name.'
        schema:
          type: string
      tags:
      - part
      security:
      - tokenAuth: []
      - basicAuth: []
      - cookieAuth: []
      - oauth2:
        - r:view:part
      responses:
        '200':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/PaginatedPartTestTemplateList'
          description: ''
    post:
      operationId: part_test_template_create
      description: API endpoint for listing (and creating) a PartTestTemplate.
      tags:
      - part
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/PartTestTemplate'
          application/x-www-form-urlencoded:
            schema:
              $ref: '#/components/schemas/PartTestTemplate'
          multipart/form-data:
            schema:
              $ref: '#/components/schemas/PartTestTemplate'
        required: true
      security:
      - tokenAuth: []
      - basicAuth: []
      - cookieAuth: []
      - oauth2:
        - r:add:part
      responses:
        '201':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/PartTestTemplate'
          description: ''
  /api/part/test-template/{id}/:
    get:
      operationId: part_test_template_retrieve
      description: Detail endpoint for PartTestTemplate model.
      parameters:
      - in: path
        name: id
        schema:
          type: integer
        required: true
      tags:
      - part
      security:
      - tokenAuth: []
      - basicAuth: []
      - cookieAuth: []
      - oauth2:
        - r:view:part
      responses:
        '200':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/PartTestTemplate'
          description: ''
    put:
      operationId: part_test_template_update
      description: Detail endpoint for PartTestTemplate model.
      parameters:
      - in: path
        name: id
        schema:
          type: integer
        required: true
      tags:
      - part
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/PartTestTemplate'
          application/x-www-form-urlencoded:
            schema:
              $ref: '#/components/schemas/PartTestTemplate'
          multipart/form-data:
            schema:
              $ref: '#/components/schemas/PartTestTemplate'
        required: true
      security:
      - tokenAuth: []
      - basicAuth: []
      - cookieAuth: []
      - oauth2:
        - r:change:part
      responses:
        '200':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/PartTestTemplate'
          description: ''
    patch:
      operationId: part_test_template_partial_update
      description: Detail endpoint for PartTestTemplate model.
      parameters:
      - in: path
        name: id
        schema:
          type: integer
        required: true
      tags:
      - part
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/PatchedPartTestTemplate'
          application/x-www-form-urlencoded:
            schema:
              $ref: '#/components/schemas/PatchedPartTestTemplate'
          multipart/form-data:
            schema:
              $ref: '#/components/schemas/PatchedPartTestTemplate'
      security:
      - tokenAuth: []
      - basicAuth: []
      - cookieAuth: []
      - oauth2:
        - r:change:part
      responses:
        '200':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/PartTestTemplate'
          description: ''
    delete:
      operationId: part_test_template_destroy
      description: Detail endpoint for PartTestTemplate model.
      parameters:
      - in: path
        name: id
        schema:
          type: integer
        required: true
      tags:
      - part
      security:
      - tokenAuth: []
      - basicAuth: []
      - cookieAuth: []
      - oauth2:
        - r:delete:part
      responses:
        '204':
          description: No response body
  /api/part/test-template/{id}/metadata/:
    get:
      operationId: part_test_template_metadata_retrieve
      description: Generic API endpoint for reading and editing metadata for a model.
      parameters:
      - in: path
        name: id
        schema:
          type: integer
        required: true
      tags:
      - part
      security:
      - tokenAuth: []
      - basicAuth: []
      - cookieAuth: []
      - oauth2:
        - r:view:part
      responses:
        '200':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Metadata'
          description: ''
    put:
      operationId: part_test_template_metadata_update
      description: Generic API endpoint for reading and editing metadata for a model.
      parameters:
      - in: path
        name: id
        schema:
          type: integer
        required: true
      tags:
      - part
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/Metadata'
          application/x-www-form-urlencoded:
            schema:
              $ref: '#/components/schemas/Metadata'
          multipart/form-data:
            schema:
              $ref: '#/components/schemas/Metadata'
        required: true
      security:
      - tokenAuth: []
      - basicAuth: []
      - cookieAuth: []
      - oauth2:
        - r:change:part
      responses:
        '200':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Metadata'
          description: ''
    patch:
      operationId: part_test_template_metadata_partial_update
      description: Generic API endpoint for reading and editing metadata for a model.
      parameters:
      - in: path
        name: id
        schema:
          type: integer
        required: true
      tags:
      - part
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/PatchedMetadata'
          application/x-www-form-urlencoded:
            schema:
              $ref: '#/components/schemas/PatchedMetadata'
          multipart/form-data:
            schema:
              $ref: '#/components/schemas/PatchedMetadata'
      security:
      - tokenAuth: []
      - basicAuth: []
      - cookieAuth: []
      - oauth2:
        - r:change:part
      responses:
        '200':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Metadata'
          description: ''
  /api/part/thumbs/:
    get:
      operationId: part_thumbs_list
      description: API endpoint for retrieving information on available Part thumbnails.
      parameters:
      - name: limit
        required: true
        in: query
        description: Number of results to return per page.
        schema:
          type: integer
      - name: offset
        required: false
        in: query
        description: The initial index from which to return the results.
        schema:
          type: integer
      - name: search
        required: false
        in: query
        description: 'A search term. Searched fields: IPN, category__name, description,
          keywords, name, revision.'
        schema:
          type: string
      tags:
      - part
      security:
      - tokenAuth: []
      - basicAuth: []
      - cookieAuth: []
      - oauth2:
        - g:read
      responses:
        '200':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/PaginatedPartThumbList'
          description: ''
  /api/part/thumbs/{id}/:
    get:
      operationId: part_thumbs_retrieve
      description: API endpoint for updating Part thumbnails.
      parameters:
      - in: path
        name: id
        schema:
          type: integer
        required: true
      tags:
      - part
      security:
      - tokenAuth: []
      - basicAuth: []
      - cookieAuth: []
      - oauth2:
        - r:view:part
        - r:view:build
      responses:
        '200':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/PartThumbSerializerUpdate'
          description: ''
    put:
      operationId: part_thumbs_update
      description: API endpoint for updating Part thumbnails.
      parameters:
      - in: path
        name: id
        schema:
          type: integer
        required: true
      tags:
      - part
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/PartThumbSerializerUpdate'
          application/x-www-form-urlencoded:
            schema:
              $ref: '#/components/schemas/PartThumbSerializerUpdate'
          multipart/form-data:
            schema:
              $ref: '#/components/schemas/PartThumbSerializerUpdate'
        required: true
      security:
      - tokenAuth: []
      - basicAuth: []
      - cookieAuth: []
      - oauth2:
        - r:change:part
        - r:change:build
      responses:
        '200':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/PartThumbSerializerUpdate'
          description: ''
    patch:
      operationId: part_thumbs_partial_update
      description: API endpoint for updating Part thumbnails.
      parameters:
      - in: path
        name: id
        schema:
          type: integer
        required: true
      tags:
      - part
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/PatchedPartThumbSerializerUpdate'
          application/x-www-form-urlencoded:
            schema:
              $ref: '#/components/schemas/PatchedPartThumbSerializerUpdate'
          multipart/form-data:
            schema:
              $ref: '#/components/schemas/PatchedPartThumbSerializerUpdate'
      security:
      - tokenAuth: []
      - basicAuth: []
      - cookieAuth: []
      - oauth2:
        - r:change:part
        - r:change:build
      responses:
        '200':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/PartThumbSerializerUpdate'
          description: ''
  /api/plugins/:
    get:
      operationId: plugins_list
      description: |-
        API endpoint for list of PluginConfig objects.

        - GET: Return a list of all PluginConfig objects
      parameters:
      - in: query
        name: active
        schema:
          type: boolean
      - in: query
        name: builtin
        schema:
          type: boolean
        description: Builtin
      - in: query
        name: installed
        schema:
          type: boolean
        description: Installed
      - name: limit
        required: true
        in: query
        description: Number of results to return per page.
        schema:
          type: integer
      - in: query
        name: mandatory
        schema:
          type: boolean
        description: Mandatory
      - in: query
        name: mixin
        schema:
          type: string
        description: Mixin
      - name: offset
        required: false
        in: query
        description: The initial index from which to return the results.
        schema:
          type: integer
      - name: ordering
        required: false
        in: query
        description: 'Which field to use when ordering the results. Possible fields:
          key, name, active.'
        schema:
          type: string
      - in: query
        name: sample
        schema:
          type: boolean
        description: Sample
      - name: search
        required: false
        in: query
        description: 'A search term. Searched fields: key, name.'
        schema:
          type: string
      tags:
      - plugins
      security:
      - tokenAuth: []
      - basicAuth: []
      - cookieAuth: []
      - oauth2:
        - g:read
      responses:
        '200':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/PaginatedPluginConfigList'
          description: ''
  /api/plugins/{plugin}/:
    get:
      operationId: plugins_retrieve
      description: |-
        API detail endpoint for PluginConfig object.

        get:
        Return a single PluginConfig object

        post:
        Update a PluginConfig

        delete:
        Remove a PluginConfig
      parameters:
      - in: path
        name: plugin
        schema:
          type: string
        required: true
      tags:
      - plugins
      security:
      - tokenAuth: []
      - basicAuth: []
      - cookieAuth: []
      - oauth2:
        - g:read
      responses:
        '200':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/PluginConfig'
          description: ''
    delete:
      operationId: plugins_destroy
      description: |-
        Handle DELETE request for a PluginConfig instance.

        We only allow plugin deletion if the plugin is not active.
      parameters:
      - in: path
        name: plugin
        schema:
          type: string
        required: true
      tags:
      - plugins
      security:
      - tokenAuth: []
      - basicAuth: []
      - cookieAuth: []
      - oauth2:
        - a:superuser
      responses:
        '204':
          description: No response body
  /api/plugins/{plugin}/activate/:
    put:
      operationId: plugins_activate_update
      description: |-
        Endpoint for activating a plugin.

        - PATCH: Activate a plugin

        Pass a boolean value for the 'active' field.
        If not provided, it is assumed to be True,
        and the plugin will be activated.
      parameters:
      - in: path
        name: plugin
        schema:
          type: string
        required: true
      tags:
      - plugins
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/PluginActivate'
          application/x-www-form-urlencoded:
            schema:
              $ref: '#/components/schemas/PluginActivate'
          multipart/form-data:
            schema:
              $ref: '#/components/schemas/PluginActivate'
      security:
      - tokenAuth: []
      - basicAuth: []
      - cookieAuth: []
      - oauth2:
        - a:superuser
      responses:
        '200':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/PluginActivate'
          description: ''
    patch:
      operationId: plugins_activate_partial_update
      description: |-
        Endpoint for activating a plugin.

        - PATCH: Activate a plugin

        Pass a boolean value for the 'active' field.
        If not provided, it is assumed to be True,
        and the plugin will be activated.
      parameters:
      - in: path
        name: plugin
        schema:
          type: string
        required: true
      tags:
      - plugins
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/PatchedPluginActivate'
          application/x-www-form-urlencoded:
            schema:
              $ref: '#/components/schemas/PatchedPluginActivate'
          multipart/form-data:
            schema:
              $ref: '#/components/schemas/PatchedPluginActivate'
      security:
      - tokenAuth: []
      - basicAuth: []
      - cookieAuth: []
      - oauth2:
        - a:superuser
      responses:
        '200':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/PluginActivate'
          description: ''
  /api/plugins/{plugin}/admin/:
    get:
      operationId: plugins_admin_retrieve
      description: |-
        Endpoint for viewing admin integration plugin details.

        This endpoint is used to view the available admin integration options for a plugin.
      parameters:
      - in: path
        name: plugin
        schema:
          type: string
        required: true
      tags:
      - plugins
      security:
      - tokenAuth: []
      - basicAuth: []
      - cookieAuth: []
      - oauth2:
        - r:view:admin
      responses:
        '200':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/PluginAdminDetail'
          description: ''
  /api/plugins/{plugin}/metadata/:
    get:
      operationId: plugins_metadata_retrieve
      description: Metadata API endpoint for the PluginConfig model.
      parameters:
      - in: path
        name: plugin
        schema:
          type: string
        required: true
      tags:
      - plugins
      security:
      - tokenAuth: []
      - basicAuth: []
      - cookieAuth: []
      - oauth2:
        - r:view:admin
      responses:
        '200':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Metadata'
          description: ''
    put:
      operationId: plugins_metadata_update
      description: Metadata API endpoint for the PluginConfig model.
      parameters:
      - in: path
        name: plugin
        schema:
          type: string
        required: true
      tags:
      - plugins
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/Metadata'
          application/x-www-form-urlencoded:
            schema:
              $ref: '#/components/schemas/Metadata'
          multipart/form-data:
            schema:
              $ref: '#/components/schemas/Metadata'
        required: true
      security:
      - tokenAuth: []
      - basicAuth: []
      - cookieAuth: []
      - oauth2:
        - r:change:admin
      responses:
        '200':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Metadata'
          description: ''
    patch:
      operationId: plugins_metadata_partial_update
      description: Metadata API endpoint for the PluginConfig model.
      parameters:
      - in: path
        name: plugin
        schema:
          type: string
        required: true
      tags:
      - plugins
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/PatchedMetadata'
          application/x-www-form-urlencoded:
            schema:
              $ref: '#/components/schemas/PatchedMetadata'
          multipart/form-data:
            schema:
              $ref: '#/components/schemas/PatchedMetadata'
      security:
      - tokenAuth: []
      - basicAuth: []
      - cookieAuth: []
      - oauth2:
        - r:change:admin
      responses:
        '200':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Metadata'
          description: ''
  /api/plugins/{plugin}/settings/:
    get:
      operationId: plugins_settings_list
      description: Get all settings for a plugin config.
      parameters:
      - in: path
        name: plugin
        schema:
          type: string
        required: true
      tags:
      - plugins
      security:
      - tokenAuth: []
      - basicAuth: []
      - cookieAuth: []
      - oauth2:
        - g:read
      responses:
        '200':
          content:
            application/json:
              schema:
                type: array
                items:
                  $ref: '#/components/schemas/PluginSetting'
          description: ''
  /api/plugins/{plugin}/settings/{key}/:
    get:
      operationId: plugins_settings_retrieve
      description: Detail endpoint for a plugin-specific setting.
      parameters:
      - in: path
        name: key
        schema:
          type: string
          pattern: ^\w+$
        required: true
      - in: path
        name: plugin
        schema:
          type: string
        required: true
      tags:
      - plugins
      security:
      - tokenAuth: []
      - basicAuth: []
      - cookieAuth: []
      - oauth2:
        - g:read
      responses:
        '200':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/PluginSetting'
          description: ''
    put:
      operationId: plugins_settings_update
      description: Detail endpoint for a plugin-specific setting.
      parameters:
      - in: path
        name: key
        schema:
          type: string
          pattern: ^\w+$
        required: true
      - in: path
        name: plugin
        schema:
          type: string
        required: true
      tags:
      - plugins
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/PluginSetting'
          application/x-www-form-urlencoded:
            schema:
              $ref: '#/components/schemas/PluginSetting'
          multipart/form-data:
            schema:
              $ref: '#/components/schemas/PluginSetting'
        required: true
      security:
      - tokenAuth: []
      - basicAuth: []
      - cookieAuth: []
      - oauth2:
        - a:staff
      responses:
        '200':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/PluginSetting'
          description: ''
    patch:
      operationId: plugins_settings_partial_update
      description: Detail endpoint for a plugin-specific setting.
      parameters:
      - in: path
        name: key
        schema:
          type: string
          pattern: ^\w+$
        required: true
      - in: path
        name: plugin
        schema:
          type: string
        required: true
      tags:
      - plugins
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/PatchedPluginSetting'
          application/x-www-form-urlencoded:
            schema:
              $ref: '#/components/schemas/PatchedPluginSetting'
          multipart/form-data:
            schema:
              $ref: '#/components/schemas/PatchedPluginSetting'
      security:
      - tokenAuth: []
      - basicAuth: []
      - cookieAuth: []
      - oauth2:
        - a:staff
      responses:
        '200':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/PluginSetting'
          description: ''
  /api/plugins/{plugin}/uninstall/:
    put:
      operationId: plugins_uninstall_update
      description: Endpoint for uninstalling a single plugin.
      parameters:
      - in: path
        name: plugin
        schema:
          type: string
        required: true
      tags:
      - plugins
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/PluginUninstall'
          application/x-www-form-urlencoded:
            schema:
              $ref: '#/components/schemas/PluginUninstall'
          multipart/form-data:
            schema:
              $ref: '#/components/schemas/PluginUninstall'
      security:
      - tokenAuth: []
      - basicAuth: []
      - cookieAuth: []
      - oauth2:
        - a:superuser
      responses:
        '200':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/PluginUninstall'
          description: ''
    patch:
      operationId: plugins_uninstall_partial_update
      description: Endpoint for uninstalling a single plugin.
      parameters:
      - in: path
        name: plugin
        schema:
          type: string
        required: true
      tags:
      - plugins
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/PatchedPluginUninstall'
          application/x-www-form-urlencoded:
            schema:
              $ref: '#/components/schemas/PatchedPluginUninstall'
          multipart/form-data:
            schema:
              $ref: '#/components/schemas/PatchedPluginUninstall'
      security:
      - tokenAuth: []
      - basicAuth: []
      - cookieAuth: []
      - oauth2:
        - a:superuser
      responses:
        '200':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/PluginUninstall'
          description: ''
  /api/plugins/{plugin}/user-settings/:
    get:
      operationId: plugins_user_settings_list
      description: Get all user settings for a plugin config.
      parameters:
      - in: path
        name: plugin
        schema:
          type: string
        required: true
      tags:
      - plugins
      security:
      - tokenAuth: []
      - basicAuth: []
      - cookieAuth: []
      - oauth2:
        - g:read
      responses:
        '200':
          content:
            application/json:
              schema:
                type: array
                items:
                  $ref: '#/components/schemas/PluginUserSetting'
          description: ''
  /api/plugins/{plugin}/user-settings/{key}/:
    get:
      operationId: plugins_user_settings_retrieve
      description: Detail endpoint for a plugin-specific user setting.
      parameters:
      - in: path
        name: key
        schema:
          type: string
          pattern: ^\w+$
        required: true
      - in: path
        name: plugin
        schema:
          type: string
        required: true
      tags:
      - plugins
      security:
      - tokenAuth: []
      - basicAuth: []
      - cookieAuth: []
      - oauth2:
        - g:read
      responses:
        '200':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/PluginUserSetting'
          description: ''
    put:
      operationId: plugins_user_settings_update
      description: Detail endpoint for a plugin-specific user setting.
      parameters:
      - in: path
        name: key
        schema:
          type: string
          pattern: ^\w+$
        required: true
      - in: path
        name: plugin
        schema:
          type: string
        required: true
      tags:
      - plugins
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/PluginUserSetting'
          application/x-www-form-urlencoded:
            schema:
              $ref: '#/components/schemas/PluginUserSetting'
          multipart/form-data:
            schema:
              $ref: '#/components/schemas/PluginUserSetting'
        required: true
      security:
      - tokenAuth: []
      - basicAuth: []
      - cookieAuth: []
      - oauth2:
        - g:read
      responses:
        '200':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/PluginUserSetting'
          description: ''
    patch:
      operationId: plugins_user_settings_partial_update
      description: Detail endpoint for a plugin-specific user setting.
      parameters:
      - in: path
        name: key
        schema:
          type: string
          pattern: ^\w+$
        required: true
      - in: path
        name: plugin
        schema:
          type: string
        required: true
      tags:
      - plugins
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/PatchedPluginUserSetting'
          application/x-www-form-urlencoded:
            schema:
              $ref: '#/components/schemas/PatchedPluginUserSetting'
          multipart/form-data:
            schema:
              $ref: '#/components/schemas/PatchedPluginUserSetting'
      security:
      - tokenAuth: []
      - basicAuth: []
      - cookieAuth: []
      - oauth2:
        - g:read
      responses:
        '200':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/PluginUserSetting'
          description: ''
  /api/plugins/install/:
    post:
      operationId: plugins_install_create
      description: Endpoint for installing a new plugin.
      tags:
      - plugins
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/PluginConfigInstall'
          application/x-www-form-urlencoded:
            schema:
              $ref: '#/components/schemas/PluginConfigInstall'
          multipart/form-data:
            schema:
              $ref: '#/components/schemas/PluginConfigInstall'
        required: true
      security:
      - tokenAuth: []
      - basicAuth: []
      - cookieAuth: []
      - oauth2:
        - g:read
      responses:
        '201':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/PluginConfigInstall'
          description: ''
  /api/plugins/reload/:
    post:
      operationId: plugins_reload_create
      description: Endpoint for reloading all plugins.
      tags:
      - plugins
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/PluginReload'
          application/x-www-form-urlencoded:
            schema:
              $ref: '#/components/schemas/PluginReload'
          multipart/form-data:
            schema:
              $ref: '#/components/schemas/PluginReload'
      security:
      - tokenAuth: []
      - basicAuth: []
      - cookieAuth: []
      - oauth2:
        - a:superuser
      responses:
        '201':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/PluginReload'
          description: ''
  /api/plugins/settings/:
    get:
      operationId: plugins_settings_list_all
      description: |-
        List endpoint for all plugin related settings.

        - read only
        - only accessible by staff users
      parameters:
      - name: limit
        required: true
        in: query
        description: Number of results to return per page.
        schema:
          type: integer
      - name: offset
        required: false
        in: query
        description: The initial index from which to return the results.
        schema:
          type: integer
      - in: query
        name: plugin__active
        schema:
          type: boolean
      - in: query
        name: plugin__key
        schema:
          type: string
      tags:
      - plugins
      security:
      - tokenAuth: []
      - basicAuth: []
      - cookieAuth: []
      - oauth2:
        - g:read
      responses:
        '200':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/PaginatedPluginSettingList'
          description: ''
  /api/plugins/status/:
    get:
      operationId: plugins_status_retrieve
      description: Show plugin registry status information.
      tags:
      - plugins
      security:
      - tokenAuth: []
      - basicAuth: []
      - cookieAuth: []
      - oauth2:
        - a:superuser
      responses:
        '200':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/PluginRegistryStatus'
          description: ''
  /api/plugins/ui/features/{feature}/:
    get:
      operationId: plugins_ui_features_list
      description: Show available plugin ui features.
      parameters:
      - in: path
        name: feature
        schema:
          type: string
        required: true
      tags:
      - plugins
      security:
      - tokenAuth: []
      - basicAuth: []
      - cookieAuth: []
      - oauth2:
        - g:read
      responses:
        '200':
          content:
            application/json:
              schema:
                type: array
                items:
                  $ref: '#/components/schemas/PluginUIFeature'
          description: ''
  /api/project-code/:
    get:
      operationId: project_code_list
      description: Override the GET method to determine export options.
      parameters:
      - name: limit
        required: true
        in: query
        description: Number of results to return per page.
        schema:
          type: integer
      - name: offset
        required: false
        in: query
        description: The initial index from which to return the results.
        schema:
          type: integer
      - name: ordering
        required: false
        in: query
        description: 'Which field to use when ordering the results. Possible fields:
          code.'
        schema:
          type: string
      - name: search
        required: false
        in: query
        description: 'A search term. Searched fields: code, description.'
        schema:
          type: string
      tags:
      - project-code
      security:
      - tokenAuth: []
      - basicAuth: []
      - cookieAuth: []
      - oauth2:
        - g:read
      responses:
        '200':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/PaginatedProjectCodeList'
          description: ''
    post:
      operationId: project_code_create
      description: List view for all project codes.
      tags:
      - project-code
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/ProjectCode'
          application/x-www-form-urlencoded:
            schema:
              $ref: '#/components/schemas/ProjectCode'
          multipart/form-data:
            schema:
              $ref: '#/components/schemas/ProjectCode'
        required: true
      security:
      - tokenAuth: []
      - basicAuth: []
      - cookieAuth: []
      - oauth2:
        - a:staff
      responses:
        '201':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ProjectCode'
          description: ''
  /api/project-code/{id}/:
    get:
      operationId: project_code_retrieve
      description: Detail view for a particular project code.
      parameters:
      - in: path
        name: id
        schema:
          type: integer
        required: true
      tags:
      - project-code
      security:
      - tokenAuth: []
      - basicAuth: []
      - cookieAuth: []
      - oauth2:
        - g:read
      responses:
        '200':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ProjectCode'
          description: ''
    put:
      operationId: project_code_update
      description: Detail view for a particular project code.
      parameters:
      - in: path
        name: id
        schema:
          type: integer
        required: true
      tags:
      - project-code
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/ProjectCode'
          application/x-www-form-urlencoded:
            schema:
              $ref: '#/components/schemas/ProjectCode'
          multipart/form-data:
            schema:
              $ref: '#/components/schemas/ProjectCode'
        required: true
      security:
      - tokenAuth: []
      - basicAuth: []
      - cookieAuth: []
      - oauth2:
        - a:staff
      responses:
        '200':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ProjectCode'
          description: ''
    patch:
      operationId: project_code_partial_update
      description: Detail view for a particular project code.
      parameters:
      - in: path
        name: id
        schema:
          type: integer
        required: true
      tags:
      - project-code
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/PatchedProjectCode'
          application/x-www-form-urlencoded:
            schema:
              $ref: '#/components/schemas/PatchedProjectCode'
          multipart/form-data:
            schema:
              $ref: '#/components/schemas/PatchedProjectCode'
      security:
      - tokenAuth: []
      - basicAuth: []
      - cookieAuth: []
      - oauth2:
        - a:staff
      responses:
        '200':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ProjectCode'
          description: ''
    delete:
      operationId: project_code_destroy
      description: Detail view for a particular project code.
      parameters:
      - in: path
        name: id
        schema:
          type: integer
        required: true
      tags:
      - project-code
      security:
      - tokenAuth: []
      - basicAuth: []
      - cookieAuth: []
      - oauth2:
        - a:staff
      responses:
        '204':
          description: No response body
  /api/project-code/{id}/metadata/:
    get:
      operationId: project_code_metadata_retrieve
      description: Generic API endpoint for reading and editing metadata for a model.
      parameters:
      - in: path
        name: id
        schema:
          type: integer
        required: true
      tags:
      - project-code
      security:
      - tokenAuth: []
      - basicAuth: []
      - cookieAuth: []
      - oauth2:
        - g:read
      responses:
        '200':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Metadata'
          description: ''
    put:
      operationId: project_code_metadata_update
      description: Generic API endpoint for reading and editing metadata for a model.
      parameters:
      - in: path
        name: id
        schema:
          type: integer
        required: true
      tags:
      - project-code
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/Metadata'
          application/x-www-form-urlencoded:
            schema:
              $ref: '#/components/schemas/Metadata'
          multipart/form-data:
            schema:
              $ref: '#/components/schemas/Metadata'
        required: true
      security:
      - tokenAuth: []
      - basicAuth: []
      - cookieAuth: []
      - oauth2:
        - a:staff
      responses:
        '200':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Metadata'
          description: ''
    patch:
      operationId: project_code_metadata_partial_update
      description: Generic API endpoint for reading and editing metadata for a model.
      parameters:
      - in: path
        name: id
        schema:
          type: integer
        required: true
      tags:
      - project-code
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/PatchedMetadata'
          application/x-www-form-urlencoded:
            schema:
              $ref: '#/components/schemas/PatchedMetadata'
          multipart/form-data:
            schema:
              $ref: '#/components/schemas/PatchedMetadata'
      security:
      - tokenAuth: []
      - basicAuth: []
      - cookieAuth: []
      - oauth2:
        - a:staff
      responses:
        '200':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Metadata'
          description: ''
  /api/report/asset/:
    get:
      operationId: report_asset_list
      description: API endpoint for listing ReportAsset objects.
      parameters:
      - name: limit
        required: true
        in: query
        description: Number of results to return per page.
        schema:
          type: integer
      - name: offset
        required: false
        in: query
        description: The initial index from which to return the results.
        schema:
          type: integer
      tags:
      - report
      security:
      - tokenAuth: []
      - basicAuth: []
      - cookieAuth: []
      - oauth2:
        - g:read
      responses:
        '200':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/PaginatedReportAssetList'
          description: ''
    post:
      operationId: report_asset_create
      description: API endpoint for listing ReportAsset objects.
      tags:
      - report
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/ReportAsset'
          application/x-www-form-urlencoded:
            schema:
              $ref: '#/components/schemas/ReportAsset'
          multipart/form-data:
            schema:
              $ref: '#/components/schemas/ReportAsset'
        required: true
      security:
      - tokenAuth: []
      - basicAuth: []
      - cookieAuth: []
      - oauth2:
        - a:staff
      responses:
        '201':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ReportAsset'
          description: ''
  /api/report/asset/{id}/:
    get:
      operationId: report_asset_retrieve
      description: API endpoint for a single ReportAsset object.
      parameters:
      - in: path
        name: id
        schema:
          type: integer
        required: true
      tags:
      - report
      security:
      - tokenAuth: []
      - basicAuth: []
      - cookieAuth: []
      - oauth2:
        - g:read
      responses:
        '200':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ReportAsset'
          description: ''
    put:
      operationId: report_asset_update
      description: API endpoint for a single ReportAsset object.
      parameters:
      - in: path
        name: id
        schema:
          type: integer
        required: true
      tags:
      - report
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/ReportAsset'
          application/x-www-form-urlencoded:
            schema:
              $ref: '#/components/schemas/ReportAsset'
          multipart/form-data:
            schema:
              $ref: '#/components/schemas/ReportAsset'
        required: true
      security:
      - tokenAuth: []
      - basicAuth: []
      - cookieAuth: []
      - oauth2:
        - a:staff
      responses:
        '200':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ReportAsset'
          description: ''
    patch:
      operationId: report_asset_partial_update
      description: API endpoint for a single ReportAsset object.
      parameters:
      - in: path
        name: id
        schema:
          type: integer
        required: true
      tags:
      - report
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/PatchedReportAsset'
          application/x-www-form-urlencoded:
            schema:
              $ref: '#/components/schemas/PatchedReportAsset'
          multipart/form-data:
            schema:
              $ref: '#/components/schemas/PatchedReportAsset'
      security:
      - tokenAuth: []
      - basicAuth: []
      - cookieAuth: []
      - oauth2:
        - a:staff
      responses:
        '200':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ReportAsset'
          description: ''
    delete:
      operationId: report_asset_destroy
      description: API endpoint for a single ReportAsset object.
      parameters:
      - in: path
        name: id
        schema:
          type: integer
        required: true
      tags:
      - report
      security:
      - tokenAuth: []
      - basicAuth: []
      - cookieAuth: []
      - oauth2:
        - a:staff
      responses:
        '204':
          description: No response body
  /api/report/print/:
    post:
      operationId: report_print_create
      description: POST action for printing a report.
      tags:
      - report
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/ReportPrint'
          application/x-www-form-urlencoded:
            schema:
              $ref: '#/components/schemas/ReportPrint'
          multipart/form-data:
            schema:
              $ref: '#/components/schemas/ReportPrint'
        required: true
      security:
      - tokenAuth: []
      - basicAuth: []
      - cookieAuth: []
      - oauth2:
        - g:read
      responses:
        '200':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ReportPrint'
          description: ''
  /api/report/snippet/:
    get:
      operationId: report_snippet_list
      description: API endpoint for listing ReportSnippet objects.
      parameters:
      - name: limit
        required: true
        in: query
        description: Number of results to return per page.
        schema:
          type: integer
      - name: offset
        required: false
        in: query
        description: The initial index from which to return the results.
        schema:
          type: integer
      tags:
      - report
      security:
      - tokenAuth: []
      - basicAuth: []
      - cookieAuth: []
      - oauth2:
        - g:read
      responses:
        '200':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/PaginatedReportSnippetList'
          description: ''
    post:
      operationId: report_snippet_create
      description: API endpoint for listing ReportSnippet objects.
      tags:
      - report
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/ReportSnippet'
          application/x-www-form-urlencoded:
            schema:
              $ref: '#/components/schemas/ReportSnippet'
          multipart/form-data:
            schema:
              $ref: '#/components/schemas/ReportSnippet'
        required: true
      security:
      - tokenAuth: []
      - basicAuth: []
      - cookieAuth: []
      - oauth2:
        - a:staff
      responses:
        '201':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ReportSnippet'
          description: ''
  /api/report/snippet/{id}/:
    get:
      operationId: report_snippet_retrieve
      description: API endpoint for a single ReportSnippet object.
      parameters:
      - in: path
        name: id
        schema:
          type: integer
        required: true
      tags:
      - report
      security:
      - tokenAuth: []
      - basicAuth: []
      - cookieAuth: []
      - oauth2:
        - g:read
      responses:
        '200':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ReportSnippet'
          description: ''
    put:
      operationId: report_snippet_update
      description: API endpoint for a single ReportSnippet object.
      parameters:
      - in: path
        name: id
        schema:
          type: integer
        required: true
      tags:
      - report
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/ReportSnippet'
          application/x-www-form-urlencoded:
            schema:
              $ref: '#/components/schemas/ReportSnippet'
          multipart/form-data:
            schema:
              $ref: '#/components/schemas/ReportSnippet'
        required: true
      security:
      - tokenAuth: []
      - basicAuth: []
      - cookieAuth: []
      - oauth2:
        - a:staff
      responses:
        '200':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ReportSnippet'
          description: ''
    patch:
      operationId: report_snippet_partial_update
      description: API endpoint for a single ReportSnippet object.
      parameters:
      - in: path
        name: id
        schema:
          type: integer
        required: true
      tags:
      - report
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/PatchedReportSnippet'
          application/x-www-form-urlencoded:
            schema:
              $ref: '#/components/schemas/PatchedReportSnippet'
          multipart/form-data:
            schema:
              $ref: '#/components/schemas/PatchedReportSnippet'
      security:
      - tokenAuth: []
      - basicAuth: []
      - cookieAuth: []
      - oauth2:
        - a:staff
      responses:
        '200':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ReportSnippet'
          description: ''
    delete:
      operationId: report_snippet_destroy
      description: API endpoint for a single ReportSnippet object.
      parameters:
      - in: path
        name: id
        schema:
          type: integer
        required: true
      tags:
      - report
      security:
      - tokenAuth: []
      - basicAuth: []
      - cookieAuth: []
      - oauth2:
        - a:staff
      responses:
        '204':
          description: No response body
  /api/report/template/:
    get:
      operationId: report_template_list
      description: API endpoint for viewing list of ReportTemplate objects.
      parameters:
      - in: query
        name: enabled
        schema:
          type: boolean
      - in: query
        name: items
        schema:
          type: string
        description: Items
      - in: query
        name: landscape
        schema:
          type: boolean
      - name: limit
        required: true
        in: query
        description: Number of results to return per page.
        schema:
          type: integer
      - in: query
        name: model_type
        schema:
          type: string
          enum:
          - build
          - buildline
          - company
          - part
          - purchaseorder
          - returnorder
          - salesorder
          - salesordershipment
          - stockitem
          - stocklocation
        description: |-
          Model Type

          * `build` - Build Order
          * `buildline` - Build Order Line Item
          * `company` - Company
          * `purchaseorder` - Purchase Order
          * `salesorder` - Sales Order
          * `salesordershipment` - Sales Order Shipment
          * `returnorder` - Return Order
          * `part` - Part
          * `stockitem` - Stock Item
          * `stocklocation` - Stock Location
      - name: offset
        required: false
        in: query
        description: The initial index from which to return the results.
        schema:
          type: integer
      - name: search
        required: false
        in: query
        description: 'A search term. Searched fields: description, name.'
        schema:
          type: string
      tags:
      - report
      security:
      - tokenAuth: []
      - basicAuth: []
      - cookieAuth: []
      - oauth2:
        - g:read
      responses:
        '200':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/PaginatedReportTemplateList'
          description: ''
    post:
      operationId: report_template_create
      description: API endpoint for viewing list of ReportTemplate objects.
      tags:
      - report
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/ReportTemplate'
          application/x-www-form-urlencoded:
            schema:
              $ref: '#/components/schemas/ReportTemplate'
          multipart/form-data:
            schema:
              $ref: '#/components/schemas/ReportTemplate'
        required: true
      security:
      - tokenAuth: []
      - basicAuth: []
      - cookieAuth: []
      - oauth2:
        - a:staff
      responses:
        '201':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ReportTemplate'
          description: ''
  /api/report/template/{id}/:
    get:
      operationId: report_template_retrieve
      description: Detail API endpoint for report template model.
      parameters:
      - in: path
        name: id
        schema:
          type: integer
        required: true
      tags:
      - report
      security:
      - tokenAuth: []
      - basicAuth: []
      - cookieAuth: []
      - oauth2:
        - g:read
      responses:
        '200':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ReportTemplate'
          description: ''
    put:
      operationId: report_template_update
      description: Detail API endpoint for report template model.
      parameters:
      - in: path
        name: id
        schema:
          type: integer
        required: true
      tags:
      - report
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/ReportTemplate'
          application/x-www-form-urlencoded:
            schema:
              $ref: '#/components/schemas/ReportTemplate'
          multipart/form-data:
            schema:
              $ref: '#/components/schemas/ReportTemplate'
        required: true
      security:
      - tokenAuth: []
      - basicAuth: []
      - cookieAuth: []
      - oauth2:
        - a:staff
      responses:
        '200':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ReportTemplate'
          description: ''
    patch:
      operationId: report_template_partial_update
      description: Detail API endpoint for report template model.
      parameters:
      - in: path
        name: id
        schema:
          type: integer
        required: true
      tags:
      - report
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/PatchedReportTemplate'
          application/x-www-form-urlencoded:
            schema:
              $ref: '#/components/schemas/PatchedReportTemplate'
          multipart/form-data:
            schema:
              $ref: '#/components/schemas/PatchedReportTemplate'
      security:
      - tokenAuth: []
      - basicAuth: []
      - cookieAuth: []
      - oauth2:
        - a:staff
      responses:
        '200':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ReportTemplate'
          description: ''
    delete:
      operationId: report_template_destroy
      description: Detail API endpoint for report template model.
      parameters:
      - in: path
        name: id
        schema:
          type: integer
        required: true
      tags:
      - report
      security:
      - tokenAuth: []
      - basicAuth: []
      - cookieAuth: []
      - oauth2:
        - a:staff
      responses:
        '204':
          description: No response body
  /api/report/template/{id}/metadata/:
    get:
      operationId: report_template_metadata_retrieve
      description: Generic API endpoint for reading and editing metadata for a model.
      parameters:
      - in: path
        name: id
        schema:
          type: integer
        required: true
      tags:
      - report
      security:
      - tokenAuth: []
      - basicAuth: []
      - cookieAuth: []
      - oauth2:
        - r:view:admin
      responses:
        '200':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Metadata'
          description: ''
    put:
      operationId: report_template_metadata_update
      description: Generic API endpoint for reading and editing metadata for a model.
      parameters:
      - in: path
        name: id
        schema:
          type: integer
        required: true
      tags:
      - report
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/Metadata'
          application/x-www-form-urlencoded:
            schema:
              $ref: '#/components/schemas/Metadata'
          multipart/form-data:
            schema:
              $ref: '#/components/schemas/Metadata'
        required: true
      security:
      - tokenAuth: []
      - basicAuth: []
      - cookieAuth: []
      - oauth2:
        - r:change:admin
      responses:
        '200':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Metadata'
          description: ''
    patch:
      operationId: report_template_metadata_partial_update
      description: Generic API endpoint for reading and editing metadata for a model.
      parameters:
      - in: path
        name: id
        schema:
          type: integer
        required: true
      tags:
      - report
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/PatchedMetadata'
          application/x-www-form-urlencoded:
            schema:
              $ref: '#/components/schemas/PatchedMetadata'
          multipart/form-data:
            schema:
              $ref: '#/components/schemas/PatchedMetadata'
      security:
      - tokenAuth: []
      - basicAuth: []
      - cookieAuth: []
      - oauth2:
        - r:change:admin
      responses:
        '200':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Metadata'
          description: ''
  /api/search/:
    post:
      operationId: search_create
      description: Perform search query against available models.
      tags:
      - search
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/APISearchView'
          application/x-www-form-urlencoded:
            schema:
              $ref: '#/components/schemas/APISearchView'
          multipart/form-data:
            schema:
              $ref: '#/components/schemas/APISearchView'
        required: true
      security:
      - tokenAuth: []
      - basicAuth: []
      - cookieAuth: []
      - oauth2:
        - g:read
      responses:
        '200':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/APISearchView'
          description: ''
  /api/selection/:
    get:
      operationId: selection_list
      description: List view for SelectionList objects.
      parameters:
      - name: limit
        required: true
        in: query
        description: Number of results to return per page.
        schema:
          type: integer
      - name: offset
        required: false
        in: query
        description: The initial index from which to return the results.
        schema:
          type: integer
      tags:
      - selection
      security:
      - tokenAuth: []
      - basicAuth: []
      - cookieAuth: []
      - oauth2:
        - g:read
      responses:
        '200':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/PaginatedSelectionListList'
          description: ''
    post:
      operationId: selection_create
      description: List view for SelectionList objects.
      tags:
      - selection
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/SelectionList'
          application/x-www-form-urlencoded:
            schema:
              $ref: '#/components/schemas/SelectionList'
          multipart/form-data:
            schema:
              $ref: '#/components/schemas/SelectionList'
        required: true
      security:
      - tokenAuth: []
      - basicAuth: []
      - cookieAuth: []
      - oauth2:
        - g:read
      responses:
        '201':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/SelectionList'
          description: ''
  /api/selection/{id}/:
    get:
      operationId: selection_retrieve
      description: Detail view for a SelectionList object.
      parameters:
      - in: path
        name: id
        schema:
          type: integer
        required: true
      tags:
      - selection
      security:
      - tokenAuth: []
      - basicAuth: []
      - cookieAuth: []
      - oauth2:
        - g:read
      responses:
        '200':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/SelectionList'
          description: ''
    put:
      operationId: selection_update
      description: Detail view for a SelectionList object.
      parameters:
      - in: path
        name: id
        schema:
          type: integer
        required: true
      tags:
      - selection
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/SelectionList'
          application/x-www-form-urlencoded:
            schema:
              $ref: '#/components/schemas/SelectionList'
          multipart/form-data:
            schema:
              $ref: '#/components/schemas/SelectionList'
        required: true
      security:
      - tokenAuth: []
      - basicAuth: []
      - cookieAuth: []
      - oauth2:
        - g:read
      responses:
        '200':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/SelectionList'
          description: ''
    patch:
      operationId: selection_partial_update
      description: Detail view for a SelectionList object.
      parameters:
      - in: path
        name: id
        schema:
          type: integer
        required: true
      tags:
      - selection
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/PatchedSelectionList'
          application/x-www-form-urlencoded:
            schema:
              $ref: '#/components/schemas/PatchedSelectionList'
          multipart/form-data:
            schema:
              $ref: '#/components/schemas/PatchedSelectionList'
      security:
      - tokenAuth: []
      - basicAuth: []
      - cookieAuth: []
      - oauth2:
        - g:read
      responses:
        '200':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/SelectionList'
          description: ''
    delete:
      operationId: selection_destroy
      description: Detail view for a SelectionList object.
      parameters:
      - in: path
        name: id
        schema:
          type: integer
        required: true
      tags:
      - selection
      security:
      - tokenAuth: []
      - basicAuth: []
      - cookieAuth: []
      - oauth2:
        - g:read
      responses:
        '204':
          description: No response body
  /api/selection/{id}/entry/:
    get:
      operationId: selection_entry_list
      description: List view for SelectionEntry objects.
      parameters:
      - in: path
        name: id
        schema:
          type: integer
        required: true
      - name: limit
        required: true
        in: query
        description: Number of results to return per page.
        schema:
          type: integer
      - name: offset
        required: false
        in: query
        description: The initial index from which to return the results.
        schema:
          type: integer
      tags:
      - selection
      security:
      - tokenAuth: []
      - basicAuth: []
      - cookieAuth: []
      - oauth2:
        - g:read
      responses:
        '200':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/PaginatedSelectionEntryList'
          description: ''
    post:
      operationId: selection_entry_create
      description: List view for SelectionEntry objects.
      parameters:
      - in: path
        name: id
        schema:
          type: integer
        required: true
      tags:
      - selection
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/SelectionEntry'
          application/x-www-form-urlencoded:
            schema:
              $ref: '#/components/schemas/SelectionEntry'
          multipart/form-data:
            schema:
              $ref: '#/components/schemas/SelectionEntry'
        required: true
      security:
      - tokenAuth: []
      - basicAuth: []
      - cookieAuth: []
      - oauth2:
        - g:read
      responses:
        '201':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/SelectionEntry'
          description: ''
  /api/selection/{id}/entry/{entrypk}/:
    get:
      operationId: selection_entry_retrieve
      description: Detail view for a SelectionEntry object.
      parameters:
      - in: path
        name: entrypk
        schema:
          type: integer
        required: true
      - in: path
        name: id
        schema:
          type: integer
        required: true
      tags:
      - selection
      security:
      - tokenAuth: []
      - basicAuth: []
      - cookieAuth: []
      - oauth2:
        - g:read
      responses:
        '200':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/SelectionEntry'
          description: ''
    put:
      operationId: selection_entry_update
      description: Detail view for a SelectionEntry object.
      parameters:
      - in: path
        name: entrypk
        schema:
          type: integer
        required: true
      - in: path
        name: id
        schema:
          type: integer
        required: true
      tags:
      - selection
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/SelectionEntry'
          application/x-www-form-urlencoded:
            schema:
              $ref: '#/components/schemas/SelectionEntry'
          multipart/form-data:
            schema:
              $ref: '#/components/schemas/SelectionEntry'
        required: true
      security:
      - tokenAuth: []
      - basicAuth: []
      - cookieAuth: []
      - oauth2:
        - g:read
      responses:
        '200':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/SelectionEntry'
          description: ''
    patch:
      operationId: selection_entry_partial_update
      description: Detail view for a SelectionEntry object.
      parameters:
      - in: path
        name: entrypk
        schema:
          type: integer
        required: true
      - in: path
        name: id
        schema:
          type: integer
        required: true
      tags:
      - selection
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/PatchedSelectionEntry'
          application/x-www-form-urlencoded:
            schema:
              $ref: '#/components/schemas/PatchedSelectionEntry'
          multipart/form-data:
            schema:
              $ref: '#/components/schemas/PatchedSelectionEntry'
      security:
      - tokenAuth: []
      - basicAuth: []
      - cookieAuth: []
      - oauth2:
        - g:read
      responses:
        '200':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/SelectionEntry'
          description: ''
    delete:
      operationId: selection_entry_destroy
      description: Detail view for a SelectionEntry object.
      parameters:
      - in: path
        name: entrypk
        schema:
          type: integer
        required: true
      - in: path
        name: id
        schema:
          type: integer
        required: true
      tags:
      - selection
      security:
      - tokenAuth: []
      - basicAuth: []
      - cookieAuth: []
      - oauth2:
        - g:read
      responses:
        '204':
          description: No response body
  /api/settings/global/:
    get:
      operationId: settings_global_list
      description: API endpoint for accessing a list of global settings objects.
      parameters:
      - name: limit
        required: true
        in: query
        description: Number of results to return per page.
        schema:
          type: integer
      - name: offset
        required: false
        in: query
        description: The initial index from which to return the results.
        schema:
          type: integer
      - name: ordering
        required: false
        in: query
        description: 'Which field to use when ordering the results. Possible fields:
          pk, key, name.'
        schema:
          type: string
      - name: search
        required: false
        in: query
        description: 'A search term. Searched fields: key.'
        schema:
          type: string
      tags:
      - settings
      security:
      - tokenAuth: []
      - basicAuth: []
      - cookieAuth: []
      - oauth2:
        - g:read
      responses:
        '200':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/PaginatedGlobalSettingsList'
          description: ''
  /api/settings/global/{key}/:
    get:
      operationId: settings_global_retrieve
      description: |-
        Detail view for an individual "global setting" object.

        - User must have 'staff' status to view / edit
      parameters:
      - in: path
        name: key
        schema:
          type: string
          pattern: ^\w+$
        required: true
      tags:
      - settings
      security:
      - tokenAuth: []
      - basicAuth: []
      - cookieAuth: []
      - oauth2:
        - g:read
      responses:
        '200':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/GlobalSettings'
          description: ''
    put:
      operationId: settings_global_update
      description: |-
        Detail view for an individual "global setting" object.

        - User must have 'staff' status to view / edit
      parameters:
      - in: path
        name: key
        schema:
          type: string
          pattern: ^\w+$
        required: true
      tags:
      - settings
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/GlobalSettings'
          application/x-www-form-urlencoded:
            schema:
              $ref: '#/components/schemas/GlobalSettings'
          multipart/form-data:
            schema:
              $ref: '#/components/schemas/GlobalSettings'
        required: true
      security:
      - tokenAuth: []
      - basicAuth: []
      - cookieAuth: []
      - oauth2:
        - a:staff
      responses:
        '200':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/GlobalSettings'
          description: ''
    patch:
      operationId: settings_global_partial_update
      description: |-
        Detail view for an individual "global setting" object.

        - User must have 'staff' status to view / edit
      parameters:
      - in: path
        name: key
        schema:
          type: string
          pattern: ^\w+$
        required: true
      tags:
      - settings
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/PatchedGlobalSettings'
          application/x-www-form-urlencoded:
            schema:
              $ref: '#/components/schemas/PatchedGlobalSettings'
          multipart/form-data:
            schema:
              $ref: '#/components/schemas/PatchedGlobalSettings'
      security:
      - tokenAuth: []
      - basicAuth: []
      - cookieAuth: []
      - oauth2:
        - a:staff
      responses:
        '200':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/GlobalSettings'
          description: ''
  /api/settings/user/:
    get:
      operationId: settings_user_list
      description: API endpoint for accessing a list of user settings objects.
      parameters:
      - name: limit
        required: true
        in: query
        description: Number of results to return per page.
        schema:
          type: integer
      - name: offset
        required: false
        in: query
        description: The initial index from which to return the results.
        schema:
          type: integer
      - name: ordering
        required: false
        in: query
        description: 'Which field to use when ordering the results. Possible fields:
          pk, key, name.'
        schema:
          type: string
      - name: search
        required: false
        in: query
        description: 'A search term. Searched fields: key.'
        schema:
          type: string
      tags:
      - settings
      security:
      - tokenAuth: []
      - basicAuth: []
      - cookieAuth: []
      - oauth2:
        - g:read
      responses:
        '200':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/PaginatedUserSettingsList'
          description: ''
  /api/settings/user/{key}/:
    get:
      operationId: settings_user_retrieve
      description: |-
        Detail view for an individual "user setting" object.

        - User can only view / edit settings their own settings objects
      parameters:
      - in: path
        name: key
        schema:
          type: string
          pattern: ^\w+$
        required: true
      tags:
      - settings
      security:
      - tokenAuth: []
      - basicAuth: []
      - cookieAuth: []
      - oauth2:
        - g:read
      responses:
        '200':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/UserSettings'
          description: ''
    put:
      operationId: settings_user_update
      description: |-
        Detail view for an individual "user setting" object.

        - User can only view / edit settings their own settings objects
      parameters:
      - in: path
        name: key
        schema:
          type: string
          pattern: ^\w+$
        required: true
      tags:
      - settings
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/UserSettings'
          application/x-www-form-urlencoded:
            schema:
              $ref: '#/components/schemas/UserSettings'
          multipart/form-data:
            schema:
              $ref: '#/components/schemas/UserSettings'
        required: true
      security:
      - tokenAuth: []
      - basicAuth: []
      - cookieAuth: []
      - oauth2:
        - g:read
      responses:
        '200':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/UserSettings'
          description: ''
    patch:
      operationId: settings_user_partial_update
      description: |-
        Detail view for an individual "user setting" object.

        - User can only view / edit settings their own settings objects
      parameters:
      - in: path
        name: key
        schema:
          type: string
          pattern: ^\w+$
        required: true
      tags:
      - settings
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/PatchedUserSettings'
          application/x-www-form-urlencoded:
            schema:
              $ref: '#/components/schemas/PatchedUserSettings'
          multipart/form-data:
            schema:
              $ref: '#/components/schemas/PatchedUserSettings'
      security:
      - tokenAuth: []
      - basicAuth: []
      - cookieAuth: []
      - oauth2:
        - g:read
      responses:
        '200':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/UserSettings'
          description: ''
  /api/stock/:
    get:
      operationId: stock_list
      description: Override the GET method to determine export options.
      parameters:
      - in: query
        name: IPN
        schema:
          type: string
        description: Part IPN (case insensitive)
      - in: query
        name: IPN_contains
        schema:
          type: string
        description: Part IPN contains (case insensitive)
      - in: query
        name: IPN_regex
        schema:
          type: string
        description: Part IPN (regex)
      - in: query
        name: active
        schema:
          type: boolean
        description: Active
      - in: query
        name: allocated
        schema:
          type: boolean
        description: Is Allocated
      - in: query
        name: ancestor
        schema:
          type: integer
      - in: query
        name: assembly
        schema:
          type: boolean
        description: Assembly
      - in: query
        name: available
        schema:
          type: boolean
        description: Available
      - in: query
        name: batch
        schema:
          type: string
        description: Batch code filter (case insensitive)
      - in: query
        name: batch_regex
        schema:
          type: string
        description: Batch code filter (regex)
      - in: query
        name: belongs_to
        schema:
          type: integer
      - in: query
        name: bom_item
        schema:
          type: integer
      - in: query
        name: build
        schema:
          type: integer
      - in: query
        name: cascade
        schema:
          type: boolean
        description: If true, include items in child locations of the given location
      - in: query
        name: category
        schema:
          type: integer
      - in: query
        name: company
        schema:
          type: integer
      - in: query
        name: consumed
        schema:
          type: boolean
        description: Consumed by Build Order
      - in: query
        name: consumed_by
        schema:
          type: integer
      - in: query
        name: customer
        schema:
          type: integer
      - in: query
        name: depleted
        schema:
          type: boolean
        description: Depleted
      - in: query
        name: exclude_tree
        schema:
          type: number
        description: Provide a StockItem PK to exclude that item and all its descendants
      - in: query
        name: expired
        schema:
          type: boolean
        description: Expired
      - in: query
        name: expiry_after
        schema:
          type: string
          format: date
        description: Expiry date after
      - in: query
        name: expiry_before
        schema:
          type: string
          format: date
        description: Expiry date before
      - in: query
        name: external
        schema:
          type: boolean
        description: External Location
      - in: query
        name: has_batch
        schema:
          type: boolean
        description: Has batch code
      - in: query
        name: has_child_items
        schema:
          type: boolean
        description: Has child items
      - in: query
        name: has_installed_items
        schema:
          type: boolean
        description: Has installed items
      - in: query
        name: has_purchase_price
        schema:
          type: boolean
        description: Has purchase price
      - in: query
        name: in_stock
        schema:
          type: boolean
        description: In Stock
      - in: query
        name: include_variants
        schema:
          type: boolean
        description: Include Variants
      - in: query
        name: installed
        schema:
          type: boolean
        description: Installed in other stock item
      - in: query
        name: is_building
        schema:
          type: boolean
        description: In production
      - name: limit
        required: true
        in: query
        description: Number of results to return per page.
        schema:
          type: integer
      - in: query
        name: location
        schema:
          type: integer
        description: Filter by numeric Location ID or the literal 'null'
      - in: query
        name: location_detail
        schema:
          type: boolean
          default: false
        description: Include detailed information about the stock location in the
          response
      - in: query
        name: manufacturer
        schema:
          type: integer
      - in: query
        name: max_stock
        schema:
          type: number
        description: Maximum stock
      - in: query
        name: min_stock
        schema:
          type: number
        description: Minimum stock
      - in: query
        name: name
        schema:
          type: string
        description: Part name (case insensitive)
      - in: query
        name: name_contains
        schema:
          type: string
        description: Part name contains (case insensitive)
      - in: query
        name: name_regex
        schema:
          type: string
        description: Part name (regex)
      - name: offset
        required: false
        in: query
        description: The initial index from which to return the results.
        schema:
          type: integer
      - name: ordering
        required: false
        in: query
        description: 'Which field to use when ordering the results. Possible fields:
          batch, location, part__name, part__IPN, updated, stocktake_date, expiry_date,
          packaging, quantity, stock, status, SKU, MPN.'
        schema:
          type: string
      - in: query
        name: part
        schema:
          type: integer
        description: Part
      - in: query
        name: part_detail
        schema:
          type: boolean
          default: true
        description: Include detailed information about the related part in the response
      - in: query
        name: part_tree
        schema:
          type: integer
      - in: query
        name: path_detail
        schema:
          type: boolean
          default: false
      - in: query
        name: purchase_order
        schema:
          type: integer
      - in: query
        name: salable
        schema:
          type: boolean
        description: Salable
      - in: query
        name: sales_order
        schema:
          type: integer
      - name: search
        required: false
        in: query
        description: 'A search term. Searched fields: batch, location__name, part__IPN,
          part__description, part__name, serial, tags__name, tags__slug.'
        schema:
          type: string
      - in: query
        name: sent_to_customer
        schema:
          type: boolean
        description: Sent to customer
      - in: query
        name: serial
        schema:
          type: string
        description: Serial number
      - in: query
        name: serial_gte
        schema:
          type: integer
        description: Serial number GTE
      - in: query
        name: serial_lte
        schema:
          type: integer
        description: Serial number LTE
      - in: query
        name: serialized
        schema:
          type: boolean
        description: Has serial number
      - in: query
        name: stale
        schema:
          type: boolean
        description: Stale
      - in: query
        name: status
        schema:
          type: integer
        description: Status Code
      - in: query
        name: stocktake_after
        schema:
          type: string
          format: date
        description: Stocktake After
      - in: query
        name: stocktake_before
        schema:
          type: string
          format: date
        description: Stocktake Before
      - in: query
        name: supplier
        schema:
          type: integer
        description: Supplier
      - in: query
        name: supplier_part
        schema:
          type: integer
      - in: query
        name: supplier_part_detail
        schema:
          type: boolean
          default: false
      - in: query
        name: tags__name
        schema:
          type: string
      - in: query
        name: tags__slug
        schema:
          type: string
      - in: query
        name: tests
        schema:
          type: boolean
          default: false
      - in: query
        name: tracked
        schema:
          type: boolean
        description: Tracked
      - in: query
        name: updated_after
        schema:
          type: string
          format: date
        description: Updated after
      - in: query
        name: updated_before
        schema:
          type: string
          format: date
        description: Updated before
      tags:
      - stock
      security:
      - tokenAuth: []
      - basicAuth: []
      - cookieAuth: []
      - oauth2:
        - r:view:stock
        - r:view:build
      responses:
        '200':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/PaginatedStockItemList'
          description: ''
    post:
      operationId: stock_create
      description: |-
        API endpoint for list view of Stock objects.

        - GET: Return a list of all StockItem objects (with optional query filters)
        - POST: Create a new StockItem
        - DELETE: Delete multiple StockItem objects
      tags:
      - stock
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/StockItem'
          application/x-www-form-urlencoded:
            schema:
              $ref: '#/components/schemas/StockItem'
          multipart/form-data:
            schema:
              $ref: '#/components/schemas/StockItem'
        required: true
      security:
      - tokenAuth: []
      - basicAuth: []
      - cookieAuth: []
      - oauth2:
        - r:add:stock
        - r:add:build
      responses:
        '201':
          content:
            application/json:
              schema:
                type: array
                items:
                  $ref: '#/components/schemas/StockItem'
          description: ''
    delete:
      operationId: stock_bulk_destroy
      description: |-
        Perform a DELETE operation against this list endpoint.

        Note that the typical DRF list endpoint does not support DELETE,
        so this method is provided as a custom implementation.
      tags:
      - stock
      security:
      - tokenAuth: []
      - basicAuth: []
      - cookieAuth: []
      - oauth2:
        - r:delete:stock
        - r:delete:build
      responses:
        '204':
          description: No response body
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/BulkRequest'
          application/x-www-form-urlencoded:
            schema:
              $ref: '#/components/schemas/BulkRequest'
          multipart/form-data:
            schema:
              $ref: '#/components/schemas/BulkRequest'
        required: true
  /api/stock/{id}/:
    get:
      operationId: stock_retrieve
      description: API detail endpoint for a single StockItem instance.
      parameters:
      - in: path
        name: id
        schema:
          type: integer
        required: true
      - in: query
        name: location_detail
        schema:
          type: boolean
          default: false
        description: Include detailed information about the stock location in the
          response
      - in: query
        name: part_detail
        schema:
          type: boolean
          default: true
        description: Include detailed information about the related part in the response
      - in: query
        name: path_detail
        schema:
          type: boolean
          default: false
      - in: query
        name: supplier_part_detail
        schema:
          type: boolean
          default: false
      - in: query
        name: tests
        schema:
          type: boolean
          default: false
      tags:
      - stock
      security:
      - tokenAuth: []
      - basicAuth: []
      - cookieAuth: []
      - oauth2:
        - r:view:stock
        - r:view:build
      responses:
        '200':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/StockItem'
          description: ''
    put:
      operationId: stock_update
      description: API detail endpoint for a single StockItem instance.
      parameters:
      - in: path
        name: id
        schema:
          type: integer
        required: true
      tags:
      - stock
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/StockItem'
          application/x-www-form-urlencoded:
            schema:
              $ref: '#/components/schemas/StockItem'
          multipart/form-data:
            schema:
              $ref: '#/components/schemas/StockItem'
        required: true
      security:
      - tokenAuth: []
      - basicAuth: []
      - cookieAuth: []
      - oauth2:
        - r:change:stock
        - r:change:build
      responses:
        '200':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/StockItem'
          description: ''
    patch:
      operationId: stock_partial_update
      description: API detail endpoint for a single StockItem instance.
      parameters:
      - in: path
        name: id
        schema:
          type: integer
        required: true
      tags:
      - stock
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/PatchedStockItem'
          application/x-www-form-urlencoded:
            schema:
              $ref: '#/components/schemas/PatchedStockItem'
          multipart/form-data:
            schema:
              $ref: '#/components/schemas/PatchedStockItem'
      security:
      - tokenAuth: []
      - basicAuth: []
      - cookieAuth: []
      - oauth2:
        - r:change:stock
        - r:change:build
      responses:
        '200':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/StockItem'
          description: ''
    delete:
      operationId: stock_destroy
      description: API detail endpoint for a single StockItem instance.
      parameters:
      - in: path
        name: id
        schema:
          type: integer
        required: true
      tags:
      - stock
      security:
      - tokenAuth: []
      - basicAuth: []
      - cookieAuth: []
      - oauth2:
        - r:delete:stock
        - r:delete:build
      responses:
        '204':
          description: No response body
  /api/stock/{id}/convert/:
    post:
      operationId: stock_convert_create
      description: API endpoint for converting a stock item to a variant part.
      parameters:
      - in: path
        name: id
        schema:
          type: integer
        required: true
      tags:
      - stock
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/ConvertStockItem'
          application/x-www-form-urlencoded:
            schema:
              $ref: '#/components/schemas/ConvertStockItem'
          multipart/form-data:
            schema:
              $ref: '#/components/schemas/ConvertStockItem'
        required: true
      security:
      - tokenAuth: []
      - basicAuth: []
      - cookieAuth: []
      - oauth2:
        - g:read
      responses:
        '201':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ConvertStockItem'
          description: ''
  /api/stock/{id}/install/:
    post:
      operationId: stock_install_create
      description: |-
        API endpoint for installing a particular stock item into this stock item.

        - stock_item.part must be in the BOM for this part
        - stock_item must currently be "in stock"
        - stock_item must be serialized (and not belong to another item)
      parameters:
      - in: path
        name: id
        schema:
          type: integer
        required: true
      tags:
      - stock
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/InstallStockItem'
          application/x-www-form-urlencoded:
            schema:
              $ref: '#/components/schemas/InstallStockItem'
          multipart/form-data:
            schema:
              $ref: '#/components/schemas/InstallStockItem'
        required: true
      security:
      - tokenAuth: []
      - basicAuth: []
      - cookieAuth: []
      - oauth2:
        - g:read
      responses:
        '201':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/InstallStockItem'
          description: ''
  /api/stock/{id}/metadata/:
    get:
      operationId: stock_metadata_retrieve
      description: Generic API endpoint for reading and editing metadata for a model.
      parameters:
      - in: path
        name: id
        schema:
          type: integer
        required: true
      tags:
      - stock
      security:
      - tokenAuth: []
      - basicAuth: []
      - cookieAuth: []
      - oauth2:
        - r:view:stock
        - r:view:build
      responses:
        '200':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Metadata'
          description: ''
    put:
      operationId: stock_metadata_update
      description: Generic API endpoint for reading and editing metadata for a model.
      parameters:
      - in: path
        name: id
        schema:
          type: integer
        required: true
      tags:
      - stock
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/Metadata'
          application/x-www-form-urlencoded:
            schema:
              $ref: '#/components/schemas/Metadata'
          multipart/form-data:
            schema:
              $ref: '#/components/schemas/Metadata'
        required: true
      security:
      - tokenAuth: []
      - basicAuth: []
      - cookieAuth: []
      - oauth2:
        - r:change:stock
        - r:change:build
      responses:
        '200':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Metadata'
          description: ''
    patch:
      operationId: stock_metadata_partial_update
      description: Generic API endpoint for reading and editing metadata for a model.
      parameters:
      - in: path
        name: id
        schema:
          type: integer
        required: true
      tags:
      - stock
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/PatchedMetadata'
          application/x-www-form-urlencoded:
            schema:
              $ref: '#/components/schemas/PatchedMetadata'
          multipart/form-data:
            schema:
              $ref: '#/components/schemas/PatchedMetadata'
      security:
      - tokenAuth: []
      - basicAuth: []
      - cookieAuth: []
      - oauth2:
        - r:change:stock
        - r:change:build
      responses:
        '200':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Metadata'
          description: ''
  /api/stock/{id}/serial-numbers/:
    get:
      operationId: stock_serial_numbers_retrieve
      description: |-
        View extra serial number information for a given stock item.

        Provides information on the "previous" and "next" stock items,
        based on the serial number of the given stock item.
      parameters:
      - in: path
        name: id
        schema:
          type: integer
        required: true
      tags:
      - stock
      security:
      - tokenAuth: []
      - basicAuth: []
      - cookieAuth: []
      - oauth2:
        - r:view:stock
        - r:view:build
      responses:
        '200':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/StockItemSerialNumbers'
          description: ''
  /api/stock/{id}/serialize/:
    post:
      operationId: stock_serialize_create
      description: API endpoint for serializing a stock item.
      parameters:
      - in: path
        name: id
        schema:
          type: integer
        required: true
      tags:
      - stock
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/SerializeStockItem'
          application/x-www-form-urlencoded:
            schema:
              $ref: '#/components/schemas/SerializeStockItem'
          multipart/form-data:
            schema:
              $ref: '#/components/schemas/SerializeStockItem'
        required: true
      security:
      - tokenAuth: []
      - basicAuth: []
      - cookieAuth: []
      - oauth2:
        - g:read
      responses:
        '201':
          content:
            application/json:
              schema:
                type: array
                items:
                  $ref: '#/components/schemas/StockItem'
          description: ''
  /api/stock/{id}/uninstall/:
    post:
      operationId: stock_uninstall_create
      description: API endpoint for removing (uninstalling) items from this item.
      parameters:
      - in: path
        name: id
        schema:
          type: integer
        required: true
      tags:
      - stock
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/UninstallStockItem'
          application/x-www-form-urlencoded:
            schema:
              $ref: '#/components/schemas/UninstallStockItem'
          multipart/form-data:
            schema:
              $ref: '#/components/schemas/UninstallStockItem'
        required: true
      security:
      - tokenAuth: []
      - basicAuth: []
      - cookieAuth: []
      - oauth2:
        - g:read
      responses:
        '201':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/UninstallStockItem'
          description: ''
  /api/stock/add/:
    post:
      operationId: stock_add_create
      description: Endpoint for adding a quantity of stock to an existing StockItem.
      tags:
      - stock
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/StockAdd'
          application/x-www-form-urlencoded:
            schema:
              $ref: '#/components/schemas/StockAdd'
          multipart/form-data:
            schema:
              $ref: '#/components/schemas/StockAdd'
        required: true
      security:
      - tokenAuth: []
      - basicAuth: []
      - cookieAuth: []
      - oauth2:
        - g:read
      responses:
        '201':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/StockAdd'
          description: ''
  /api/stock/assign/:
    post:
      operationId: stock_assign_create
      description: API endpoint for assigning stock to a particular customer.
      tags:
      - stock
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/StockAssignment'
          application/x-www-form-urlencoded:
            schema:
              $ref: '#/components/schemas/StockAssignment'
          multipart/form-data:
            schema:
              $ref: '#/components/schemas/StockAssignment'
        required: true
      security:
      - tokenAuth: []
      - basicAuth: []
      - cookieAuth: []
      - oauth2:
        - g:read
      responses:
        '201':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/StockAssignment'
          description: ''
  /api/stock/change_status/:
    post:
      operationId: stock_change_status_create
      description: API endpoint to change the status code of multiple StockItem objects.
      tags:
      - stock
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/StockChangeStatus'
          application/x-www-form-urlencoded:
            schema:
              $ref: '#/components/schemas/StockChangeStatus'
          multipart/form-data:
            schema:
              $ref: '#/components/schemas/StockChangeStatus'
        required: true
      security:
      - tokenAuth: []
      - basicAuth: []
      - cookieAuth: []
      - oauth2:
        - g:read
      responses:
        '201':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/StockChangeStatus'
          description: ''
  /api/stock/count/:
    post:
      operationId: stock_count_create
      description: Endpoint for counting stock (performing a stocktake).
      tags:
      - stock
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/StockCount'
          application/x-www-form-urlencoded:
            schema:
              $ref: '#/components/schemas/StockCount'
          multipart/form-data:
            schema:
              $ref: '#/components/schemas/StockCount'
        required: true
      security:
      - tokenAuth: []
      - basicAuth: []
      - cookieAuth: []
      - oauth2:
        - g:read
      responses:
        '201':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/StockCount'
          description: ''
  /api/stock/location/:
    get:
      operationId: stock_location_list
      description: Override the GET method to determine export options.
      parameters:
      - in: query
        name: cascade
        schema:
          type: boolean
        description: Include sub-locations in filtered results
      - in: query
        name: depth
        schema:
          type: number
        description: Filter by location depth
      - in: query
        name: external
        schema:
          type: boolean
      - in: query
        name: has_location_type
        schema:
          type: boolean
        description: has_location_type
      - name: limit
        required: true
        in: query
        description: Number of results to return per page.
        schema:
          type: integer
      - in: query
        name: location_type
        schema:
          type: integer
      - in: query
        name: name
        schema:
          type: string
      - name: offset
        required: false
        in: query
        description: The initial index from which to return the results.
        schema:
          type: integer
      - name: ordering
        required: false
        in: query
        description: 'Which field to use when ordering the results. Possible fields:
          name, pathstring, items, level, tree_id, lft.'
        schema:
          type: string
      - in: query
        name: parent
        schema:
          type: integer
        description: Filter by parent location
      - in: query
        name: path_detail
        schema:
          type: boolean
          default: false
        description: Include detailed information about the BOM item linked to this
          build line.
      - name: search
        required: false
        in: query
        description: 'A search term. Searched fields: description, name, pathstring,
          tags__name, tags__slug.'
        schema:
          type: string
      - in: query
        name: structural
        schema:
          type: boolean
      - in: query
        name: top_level
        schema:
          type: boolean
        description: Filter by top-level locations
      tags:
      - stock
      security:
      - tokenAuth: []
      - basicAuth: []
      - cookieAuth: []
      - oauth2:
        - r:view:stock_location
        - r:view:build
      responses:
        '200':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/PaginatedLocationList'
          description: ''
    post:
      operationId: stock_location_create
      description: |-
        API endpoint for list view of StockLocation objects.

        - GET: Return list of StockLocation objects
        - POST: Create a new StockLocation
      tags:
      - stock
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/Location'
          application/x-www-form-urlencoded:
            schema:
              $ref: '#/components/schemas/Location'
          multipart/form-data:
            schema:
              $ref: '#/components/schemas/Location'
        required: true
      security:
      - tokenAuth: []
      - basicAuth: []
      - cookieAuth: []
      - oauth2:
        - r:add:stock_location
        - r:add:build
      responses:
        '201':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Location'
          description: ''
    put:
      operationId: stock_location_bulk_update
      description: |-
        Perform a PUT operation against this list endpoint.

        Simply redirects to the PATCH method.
      tags:
      - stock
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/Location'
          application/x-www-form-urlencoded:
            schema:
              $ref: '#/components/schemas/Location'
          multipart/form-data:
            schema:
              $ref: '#/components/schemas/Location'
        required: true
      security:
      - tokenAuth: []
      - basicAuth: []
      - cookieAuth: []
      - oauth2:
        - r:change:stock_location
        - r:change:build
      responses:
        '200':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Location'
          description: ''
    patch:
      operationId: stock_location_bulk_partial_update
      description: |-
        Perform a PATCH operation against this list endpoint.

        Note that the typical DRF list endpoint does not support PATCH,
        so this method is provided as a custom implementation.
      tags:
      - stock
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/PatchedLocation'
          application/x-www-form-urlencoded:
            schema:
              $ref: '#/components/schemas/PatchedLocation'
          multipart/form-data:
            schema:
              $ref: '#/components/schemas/PatchedLocation'
      security:
      - tokenAuth: []
      - basicAuth: []
      - cookieAuth: []
      - oauth2:
        - r:change:stock_location
        - r:change:build
      responses:
        '200':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Location'
          description: ''
  /api/stock/location-type/:
    get:
      operationId: stock_location_type_list
      description: |-
        API endpoint for a list of StockLocationType objects.

        - GET: Return a list of all StockLocationType objects
        - POST: Create a StockLocationType
      parameters:
      - name: limit
        required: true
        in: query
        description: Number of results to return per page.
        schema:
          type: integer
      - name: offset
        required: false
        in: query
        description: The initial index from which to return the results.
        schema:
          type: integer
      - name: ordering
        required: false
        in: query
        description: 'Which field to use when ordering the results. Possible fields:
          name, location_count, icon.'
        schema:
          type: string
      - name: search
        required: false
        in: query
        description: 'A search term. Searched fields: name.'
        schema:
          type: string
      tags:
      - stock
      security:
      - tokenAuth: []
      - basicAuth: []
      - cookieAuth: []
      - oauth2:
        - r:view:stock_location
      responses:
        '200':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/PaginatedStockLocationTypeList'
          description: ''
    post:
      operationId: stock_location_type_create
      description: |-
        API endpoint for a list of StockLocationType objects.

        - GET: Return a list of all StockLocationType objects
        - POST: Create a StockLocationType
      tags:
      - stock
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/StockLocationType'
          application/x-www-form-urlencoded:
            schema:
              $ref: '#/components/schemas/StockLocationType'
          multipart/form-data:
            schema:
              $ref: '#/components/schemas/StockLocationType'
        required: true
      security:
      - tokenAuth: []
      - basicAuth: []
      - cookieAuth: []
      - oauth2:
        - r:add:stock_location
      responses:
        '201':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/StockLocationType'
          description: ''
  /api/stock/location-type/{id}/:
    get:
      operationId: stock_location_type_retrieve
      description: |-
        API detail endpoint for a StockLocationType object.

        - GET: return a single StockLocationType
        - PUT: update a StockLocationType
        - PATCH: partial update a StockLocationType
        - DELETE: delete a StockLocationType
      parameters:
      - in: path
        name: id
        schema:
          type: integer
        required: true
      tags:
      - stock
      security:
      - tokenAuth: []
      - basicAuth: []
      - cookieAuth: []
      - oauth2:
        - r:view:stock_location
      responses:
        '200':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/StockLocationType'
          description: ''
    put:
      operationId: stock_location_type_update
      description: |-
        API detail endpoint for a StockLocationType object.

        - GET: return a single StockLocationType
        - PUT: update a StockLocationType
        - PATCH: partial update a StockLocationType
        - DELETE: delete a StockLocationType
      parameters:
      - in: path
        name: id
        schema:
          type: integer
        required: true
      tags:
      - stock
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/StockLocationType'
          application/x-www-form-urlencoded:
            schema:
              $ref: '#/components/schemas/StockLocationType'
          multipart/form-data:
            schema:
              $ref: '#/components/schemas/StockLocationType'
        required: true
      security:
      - tokenAuth: []
      - basicAuth: []
      - cookieAuth: []
      - oauth2:
        - r:change:stock_location
      responses:
        '200':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/StockLocationType'
          description: ''
    patch:
      operationId: stock_location_type_partial_update
      description: |-
        API detail endpoint for a StockLocationType object.

        - GET: return a single StockLocationType
        - PUT: update a StockLocationType
        - PATCH: partial update a StockLocationType
        - DELETE: delete a StockLocationType
      parameters:
      - in: path
        name: id
        schema:
          type: integer
        required: true
      tags:
      - stock
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/PatchedStockLocationType'
          application/x-www-form-urlencoded:
            schema:
              $ref: '#/components/schemas/PatchedStockLocationType'
          multipart/form-data:
            schema:
              $ref: '#/components/schemas/PatchedStockLocationType'
      security:
      - tokenAuth: []
      - basicAuth: []
      - cookieAuth: []
      - oauth2:
        - r:change:stock_location
      responses:
        '200':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/StockLocationType'
          description: ''
    delete:
      operationId: stock_location_type_destroy
      description: |-
        API detail endpoint for a StockLocationType object.

        - GET: return a single StockLocationType
        - PUT: update a StockLocationType
        - PATCH: partial update a StockLocationType
        - DELETE: delete a StockLocationType
      parameters:
      - in: path
        name: id
        schema:
          type: integer
        required: true
      tags:
      - stock
      security:
      - tokenAuth: []
      - basicAuth: []
      - cookieAuth: []
      - oauth2:
        - r:delete:stock_location
      responses:
        '204':
          description: No response body
  /api/stock/location-type/{id}/metadata/:
    get:
      operationId: stock_location_type_metadata_retrieve
      description: Generic API endpoint for reading and editing metadata for a model.
      parameters:
      - in: path
        name: id
        schema:
          type: integer
        required: true
      tags:
      - stock
      security:
      - tokenAuth: []
      - basicAuth: []
      - cookieAuth: []
      - oauth2:
        - r:view:stock_location
      responses:
        '200':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Metadata'
          description: ''
    put:
      operationId: stock_location_type_metadata_update
      description: Generic API endpoint for reading and editing metadata for a model.
      parameters:
      - in: path
        name: id
        schema:
          type: integer
        required: true
      tags:
      - stock
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/Metadata'
          application/x-www-form-urlencoded:
            schema:
              $ref: '#/components/schemas/Metadata'
          multipart/form-data:
            schema:
              $ref: '#/components/schemas/Metadata'
        required: true
      security:
      - tokenAuth: []
      - basicAuth: []
      - cookieAuth: []
      - oauth2:
        - r:change:stock_location
      responses:
        '200':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Metadata'
          description: ''
    patch:
      operationId: stock_location_type_metadata_partial_update
      description: Generic API endpoint for reading and editing metadata for a model.
      parameters:
      - in: path
        name: id
        schema:
          type: integer
        required: true
      tags:
      - stock
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/PatchedMetadata'
          application/x-www-form-urlencoded:
            schema:
              $ref: '#/components/schemas/PatchedMetadata'
          multipart/form-data:
            schema:
              $ref: '#/components/schemas/PatchedMetadata'
      security:
      - tokenAuth: []
      - basicAuth: []
      - cookieAuth: []
      - oauth2:
        - r:change:stock_location
      responses:
        '200':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Metadata'
          description: ''
  /api/stock/location/{id}/:
    get:
      operationId: stock_location_retrieve
      description: Custom get method to pass kwargs.
      parameters:
      - in: path
        name: id
        schema:
          type: integer
        required: true
      - in: query
        name: path_detail
        schema:
          type: boolean
          default: false
        description: Include detailed information about the BOM item linked to this
          build line.
      tags:
      - stock
      security:
      - tokenAuth: []
      - basicAuth: []
      - cookieAuth: []
      - oauth2:
        - r:view:stock_location
        - r:view:build
      responses:
        '200':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Location'
          description: ''
    put:
      operationId: stock_location_update
      description: Custom put method to pass kwargs.
      parameters:
      - in: path
        name: id
        schema:
          type: integer
        required: true
      tags:
      - stock
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/Location'
          application/x-www-form-urlencoded:
            schema:
              $ref: '#/components/schemas/Location'
          multipart/form-data:
            schema:
              $ref: '#/components/schemas/Location'
        required: true
      security:
      - tokenAuth: []
      - basicAuth: []
      - cookieAuth: []
      - oauth2:
        - r:change:stock_location
        - r:change:build
      responses:
        '200':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Location'
          description: ''
    patch:
      operationId: stock_location_partial_update
      description: Custom patch method to pass kwargs.
      parameters:
      - in: path
        name: id
        schema:
          type: integer
        required: true
      tags:
      - stock
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/PatchedLocation'
          application/x-www-form-urlencoded:
            schema:
              $ref: '#/components/schemas/PatchedLocation'
          multipart/form-data:
            schema:
              $ref: '#/components/schemas/PatchedLocation'
      security:
      - tokenAuth: []
      - basicAuth: []
      - cookieAuth: []
      - oauth2:
        - r:change:stock_location
        - r:change:build
      responses:
        '200':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Location'
          description: ''
    delete:
      operationId: stock_location_destroy
      description: Custom delete method to pass kwargs.
      parameters:
      - in: path
        name: id
        schema:
          type: integer
        required: true
      tags:
      - stock
      security:
      - tokenAuth: []
      - basicAuth: []
      - cookieAuth: []
      - oauth2:
        - r:delete:stock_location
        - r:delete:build
      responses:
        '204':
          description: No response body
  /api/stock/location/{id}/metadata/:
    get:
      operationId: stock_location_metadata_retrieve
      description: Generic API endpoint for reading and editing metadata for a model.
      parameters:
      - in: path
        name: id
        schema:
          type: integer
        required: true
      tags:
      - stock
      security:
      - tokenAuth: []
      - basicAuth: []
      - cookieAuth: []
      - oauth2:
        - r:view:stock_location
        - r:view:build
      responses:
        '200':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Metadata'
          description: ''
    put:
      operationId: stock_location_metadata_update
      description: Generic API endpoint for reading and editing metadata for a model.
      parameters:
      - in: path
        name: id
        schema:
          type: integer
        required: true
      tags:
      - stock
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/Metadata'
          application/x-www-form-urlencoded:
            schema:
              $ref: '#/components/schemas/Metadata'
          multipart/form-data:
            schema:
              $ref: '#/components/schemas/Metadata'
        required: true
      security:
      - tokenAuth: []
      - basicAuth: []
      - cookieAuth: []
      - oauth2:
        - r:change:stock_location
        - r:change:build
      responses:
        '200':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Metadata'
          description: ''
    patch:
      operationId: stock_location_metadata_partial_update
      description: Generic API endpoint for reading and editing metadata for a model.
      parameters:
      - in: path
        name: id
        schema:
          type: integer
        required: true
      tags:
      - stock
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/PatchedMetadata'
          application/x-www-form-urlencoded:
            schema:
              $ref: '#/components/schemas/PatchedMetadata'
          multipart/form-data:
            schema:
              $ref: '#/components/schemas/PatchedMetadata'
      security:
      - tokenAuth: []
      - basicAuth: []
      - cookieAuth: []
      - oauth2:
        - r:change:stock_location
        - r:change:build
      responses:
        '200':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Metadata'
          description: ''
  /api/stock/location/tree/:
    get:
      operationId: stock_location_tree_list
      description: API endpoint for accessing a list of StockLocation objects, ready
        for rendering as a tree.
      parameters:
      - name: limit
        required: true
        in: query
        description: Number of results to return per page.
        schema:
          type: integer
      - name: offset
        required: false
        in: query
        description: The initial index from which to return the results.
        schema:
          type: integer
      - name: ordering
        required: false
        in: query
        description: 'Which field to use when ordering the results. Possible fields:
          level, name, sublocations.'
        schema:
          type: string
      tags:
      - stock
      security:
      - tokenAuth: []
      - basicAuth: []
      - cookieAuth: []
      - oauth2:
        - r:view:stock_location
        - r:view:build
      responses:
        '200':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/PaginatedLocationTreeList'
          description: ''
  /api/stock/merge/:
    post:
      operationId: stock_merge_create
      description: API endpoint for merging multiple stock items.
      tags:
      - stock
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/StockMerge'
          application/x-www-form-urlencoded:
            schema:
              $ref: '#/components/schemas/StockMerge'
          multipart/form-data:
            schema:
              $ref: '#/components/schemas/StockMerge'
        required: true
      security:
      - tokenAuth: []
      - basicAuth: []
      - cookieAuth: []
      - oauth2:
        - g:read
      responses:
        '201':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/StockMerge'
          description: ''
  /api/stock/remove/:
    post:
      operationId: stock_remove_create
      description: Endpoint for removing a quantity of stock from an existing StockItem.
      tags:
      - stock
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/StockRemove'
          application/x-www-form-urlencoded:
            schema:
              $ref: '#/components/schemas/StockRemove'
          multipart/form-data:
            schema:
              $ref: '#/components/schemas/StockRemove'
        required: true
      security:
      - tokenAuth: []
      - basicAuth: []
      - cookieAuth: []
      - oauth2:
        - g:read
      responses:
        '201':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/StockRemove'
          description: ''
  /api/stock/return/:
    post:
      operationId: stock_return_create
      description: |-
        API endpoint for returning items into stock.

        This API endpoint is for items that are initially considered "not in stock",
        and the user wants to return them to stock, marking them as
        "available" for further consumption or sale.
      tags:
      - stock
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/StockReturn'
          application/x-www-form-urlencoded:
            schema:
              $ref: '#/components/schemas/StockReturn'
          multipart/form-data:
            schema:
              $ref: '#/components/schemas/StockReturn'
        required: true
      security:
      - tokenAuth: []
      - basicAuth: []
      - cookieAuth: []
      - oauth2:
        - g:read
      responses:
        '201':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/StockReturn'
          description: ''
  /api/stock/status/:
    get:
      operationId: stock_status_retrieve
      description: Retrieve information about a specific status code
      tags:
      - stock
      security:
      - tokenAuth: []
      - basicAuth: []
      - cookieAuth: []
      - oauth2:
        - g:read
      responses:
        '200':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/GenericStateClass'
          description: ''
        '400':
          description: Invalid request
  /api/stock/test/:
    get:
      operationId: stock_test_list
      description: API endpoint for listing (and creating) a StockItemTestResult object.
      parameters:
      - in: query
        name: build
        schema:
          type: integer
        description: Build
      - in: query
        name: enabled
        schema:
          type: boolean
        description: Enabled
      - in: query
        name: include_installed
        schema:
          type: boolean
        description: If true, include test results for items installed underneath
          the given stock item
      - name: limit
        required: true
        in: query
        description: Number of results to return per page.
        schema:
          type: integer
      - name: offset
        required: false
        in: query
        description: The initial index from which to return the results.
        schema:
          type: integer
      - name: ordering
        required: false
        in: query
        description: 'Which field to use when ordering the results. Possible fields:
          date, result.'
        schema:
          type: string
      - in: query
        name: part
        schema:
          type: integer
        description: Part
      - in: query
        name: required
        schema:
          type: boolean
        description: Required
      - in: query
        name: result
        schema:
          type: boolean
      - name: search
        required: false
        in: query
        description: A search term.
        schema:
          type: string
      - in: query
        name: stock_item
        schema:
          type: integer
        description: Filter by numeric Stock Item ID
      - in: query
        name: template
        schema:
          type: integer
      - in: query
        name: template_detail
        schema:
          type: boolean
          default: false
      - in: query
        name: test
        schema:
          type: string
        description: Test name (case insensitive)
      - in: query
        name: user
        schema:
          type: integer
      - in: query
        name: user_detail
        schema:
          type: boolean
          default: false
      - in: query
        name: value
        schema:
          type: string
      tags:
      - stock
      security:
      - tokenAuth: []
      - basicAuth: []
      - cookieAuth: []
      - oauth2:
        - r:view:stock
      responses:
        '200':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/PaginatedStockItemTestResultList'
          description: ''
    post:
      operationId: stock_test_create
      description: API endpoint for listing (and creating) a StockItemTestResult object.
      tags:
      - stock
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/StockItemTestResult'
          application/x-www-form-urlencoded:
            schema:
              $ref: '#/components/schemas/StockItemTestResult'
          multipart/form-data:
            schema:
              $ref: '#/components/schemas/StockItemTestResult'
        required: true
      security:
      - tokenAuth: []
      - basicAuth: []
      - cookieAuth: []
      - oauth2:
        - r:add:stock
      responses:
        '201':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/StockItemTestResult'
          description: ''
    delete:
      operationId: stock_test_bulk_destroy
      description: |-
        Perform a DELETE operation against this list endpoint.

        Note that the typical DRF list endpoint does not support DELETE,
        so this method is provided as a custom implementation.
      tags:
      - stock
      security:
      - tokenAuth: []
      - basicAuth: []
      - cookieAuth: []
      - oauth2:
        - r:delete:stock
      responses:
        '204':
          description: No response body
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/BulkRequest'
          application/x-www-form-urlencoded:
            schema:
              $ref: '#/components/schemas/BulkRequest'
          multipart/form-data:
            schema:
              $ref: '#/components/schemas/BulkRequest'
        required: true
  /api/stock/test/{id}/:
    get:
      operationId: stock_test_retrieve
      description: Detail endpoint for StockItemTestResult.
      parameters:
      - in: path
        name: id
        schema:
          type: integer
        required: true
      - in: query
        name: template_detail
        schema:
          type: boolean
          default: false
      - in: query
        name: user_detail
        schema:
          type: boolean
          default: false
      tags:
      - stock
      security:
      - tokenAuth: []
      - basicAuth: []
      - cookieAuth: []
      - oauth2:
        - r:view:stock
      responses:
        '200':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/StockItemTestResult'
          description: ''
    put:
      operationId: stock_test_update
      description: Detail endpoint for StockItemTestResult.
      parameters:
      - in: path
        name: id
        schema:
          type: integer
        required: true
      tags:
      - stock
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/StockItemTestResult'
          application/x-www-form-urlencoded:
            schema:
              $ref: '#/components/schemas/StockItemTestResult'
          multipart/form-data:
            schema:
              $ref: '#/components/schemas/StockItemTestResult'
        required: true
      security:
      - tokenAuth: []
      - basicAuth: []
      - cookieAuth: []
      - oauth2:
        - r:change:stock
      responses:
        '200':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/StockItemTestResult'
          description: ''
    patch:
      operationId: stock_test_partial_update
      description: Detail endpoint for StockItemTestResult.
      parameters:
      - in: path
        name: id
        schema:
          type: integer
        required: true
      tags:
      - stock
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/PatchedStockItemTestResult'
          application/x-www-form-urlencoded:
            schema:
              $ref: '#/components/schemas/PatchedStockItemTestResult'
          multipart/form-data:
            schema:
              $ref: '#/components/schemas/PatchedStockItemTestResult'
      security:
      - tokenAuth: []
      - basicAuth: []
      - cookieAuth: []
      - oauth2:
        - r:change:stock
      responses:
        '200':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/StockItemTestResult'
          description: ''
    delete:
      operationId: stock_test_destroy
      description: Detail endpoint for StockItemTestResult.
      parameters:
      - in: path
        name: id
        schema:
          type: integer
        required: true
      tags:
      - stock
      security:
      - tokenAuth: []
      - basicAuth: []
      - cookieAuth: []
      - oauth2:
        - r:delete:stock
      responses:
        '204':
          description: No response body
  /api/stock/test/{id}/metadata/:
    get:
      operationId: stock_test_metadata_retrieve
      description: Generic API endpoint for reading and editing metadata for a model.
      parameters:
      - in: path
        name: id
        schema:
          type: integer
        required: true
      tags:
      - stock
      security:
      - tokenAuth: []
      - basicAuth: []
      - cookieAuth: []
      - oauth2:
        - r:view:stock
      responses:
        '200':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Metadata'
          description: ''
    put:
      operationId: stock_test_metadata_update
      description: Generic API endpoint for reading and editing metadata for a model.
      parameters:
      - in: path
        name: id
        schema:
          type: integer
        required: true
      tags:
      - stock
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/Metadata'
          application/x-www-form-urlencoded:
            schema:
              $ref: '#/components/schemas/Metadata'
          multipart/form-data:
            schema:
              $ref: '#/components/schemas/Metadata'
        required: true
      security:
      - tokenAuth: []
      - basicAuth: []
      - cookieAuth: []
      - oauth2:
        - r:change:stock
      responses:
        '200':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Metadata'
          description: ''
    patch:
      operationId: stock_test_metadata_partial_update
      description: Generic API endpoint for reading and editing metadata for a model.
      parameters:
      - in: path
        name: id
        schema:
          type: integer
        required: true
      tags:
      - stock
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/PatchedMetadata'
          application/x-www-form-urlencoded:
            schema:
              $ref: '#/components/schemas/PatchedMetadata'
          multipart/form-data:
            schema:
              $ref: '#/components/schemas/PatchedMetadata'
      security:
      - tokenAuth: []
      - basicAuth: []
      - cookieAuth: []
      - oauth2:
        - r:change:stock
      responses:
        '200':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Metadata'
          description: ''
  /api/stock/track/:
    get:
      operationId: stock_track_list
      description: Override the GET method to determine export options.
      parameters:
      - in: query
        name: item
        schema:
          type: integer
      - in: query
        name: item_detail
        schema:
          type: boolean
          default: false
        description: Include detailed information about the item in the response
      - name: limit
        required: true
        in: query
        description: Number of results to return per page.
        schema:
          type: integer
      - name: offset
        required: false
        in: query
        description: The initial index from which to return the results.
        schema:
          type: integer
      - name: ordering
        required: false
        in: query
        description: 'Which field to use when ordering the results. Possible fields:
          date.'
        schema:
          type: string
      - name: search
        required: false
        in: query
        description: 'A search term. Searched fields: notes.'
        schema:
          type: string
      - in: query
        name: user
        schema:
          type: integer
      - in: query
        name: user_detail
        schema:
          type: boolean
          default: false
      tags:
      - stock
      security:
      - tokenAuth: []
      - basicAuth: []
      - cookieAuth: []
      - oauth2:
        - r:view:stock
      responses:
        '200':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/PaginatedStockTrackingList'
          description: ''
  /api/stock/track/{id}/:
    get:
      operationId: stock_track_retrieve
      description: Detail API endpoint for StockItemTracking model.
      parameters:
      - in: path
        name: id
        schema:
          type: integer
        required: true
      tags:
      - stock
      security:
      - tokenAuth: []
      - basicAuth: []
      - cookieAuth: []
      - oauth2:
        - r:view:stock
      responses:
        '200':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/StockTracking'
          description: ''
  /api/stock/track/status/:
    get:
      operationId: stock_track_status_retrieve
      description: Retrieve information about a specific status code
      tags:
      - stock
      security:
      - tokenAuth: []
      - basicAuth: []
      - cookieAuth: []
      - oauth2:
        - g:read
      responses:
        '200':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/GenericStateClass'
          description: ''
        '400':
          description: Invalid request
  /api/stock/transfer/:
    post:
      operationId: stock_transfer_create
      description: API endpoint for performing stock movements.
      tags:
      - stock
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/StockTransfer'
          application/x-www-form-urlencoded:
            schema:
              $ref: '#/components/schemas/StockTransfer'
          multipart/form-data:
            schema:
              $ref: '#/components/schemas/StockTransfer'
        required: true
      security:
      - tokenAuth: []
      - basicAuth: []
      - cookieAuth: []
      - oauth2:
        - g:read
      responses:
        '201':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/StockTransfer'
          description: ''
  /api/units/:
    get:
      operationId: units_list
      description: Override the GET method to determine export options.
      parameters:
      - name: limit
        required: true
        in: query
        description: Number of results to return per page.
        schema:
          type: integer
      - name: offset
        required: false
        in: query
        description: The initial index from which to return the results.
        schema:
          type: integer
      - name: ordering
        required: false
        in: query
        description: Which field to use when ordering the results.
        schema:
          type: string
      - name: search
        required: false
        in: query
        description: A search term.
        schema:
          type: string
      tags:
      - units
      security:
      - tokenAuth: []
      - basicAuth: []
      - cookieAuth: []
      - oauth2:
        - g:read
      responses:
        '200':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/PaginatedCustomUnitList'
          description: ''
    post:
      operationId: units_create
      description: List view for custom units.
      tags:
      - units
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/CustomUnit'
          application/x-www-form-urlencoded:
            schema:
              $ref: '#/components/schemas/CustomUnit'
          multipart/form-data:
            schema:
              $ref: '#/components/schemas/CustomUnit'
        required: true
      security:
      - tokenAuth: []
      - basicAuth: []
      - cookieAuth: []
      - oauth2:
        - a:staff
      responses:
        '201':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/CustomUnit'
          description: ''
  /api/units/{id}/:
    get:
      operationId: units_retrieve
      description: Detail view for a particular custom unit.
      parameters:
      - in: path
        name: id
        schema:
          type: integer
        required: true
      tags:
      - units
      security:
      - tokenAuth: []
      - basicAuth: []
      - cookieAuth: []
      - oauth2:
        - g:read
      responses:
        '200':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/CustomUnit'
          description: ''
    put:
      operationId: units_update
      description: Detail view for a particular custom unit.
      parameters:
      - in: path
        name: id
        schema:
          type: integer
        required: true
      tags:
      - units
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/CustomUnit'
          application/x-www-form-urlencoded:
            schema:
              $ref: '#/components/schemas/CustomUnit'
          multipart/form-data:
            schema:
              $ref: '#/components/schemas/CustomUnit'
        required: true
      security:
      - tokenAuth: []
      - basicAuth: []
      - cookieAuth: []
      - oauth2:
        - a:staff
      responses:
        '200':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/CustomUnit'
          description: ''
    patch:
      operationId: units_partial_update
      description: Detail view for a particular custom unit.
      parameters:
      - in: path
        name: id
        schema:
          type: integer
        required: true
      tags:
      - units
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/PatchedCustomUnit'
          application/x-www-form-urlencoded:
            schema:
              $ref: '#/components/schemas/PatchedCustomUnit'
          multipart/form-data:
            schema:
              $ref: '#/components/schemas/PatchedCustomUnit'
      security:
      - tokenAuth: []
      - basicAuth: []
      - cookieAuth: []
      - oauth2:
        - a:staff
      responses:
        '200':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/CustomUnit'
          description: ''
    delete:
      operationId: units_destroy
      description: Detail view for a particular custom unit.
      parameters:
      - in: path
        name: id
        schema:
          type: integer
        required: true
      tags:
      - units
      security:
      - tokenAuth: []
      - basicAuth: []
      - cookieAuth: []
      - oauth2:
        - a:staff
      responses:
        '204':
          description: No response body
  /api/units/all/:
    get:
      operationId: units_all_retrieve
      description: Return a list of all available units.
      tags:
      - units
      security:
      - tokenAuth: []
      - basicAuth: []
      - cookieAuth: []
      - oauth2:
        - g:read
      responses:
        '200':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/AllUnitListResponse'
          description: ''
  /api/user/:
    get:
      operationId: user_list
      description: |-
        List endpoint for detail on all users.

        Permissions:
        - Staff users (who also have the 'admin' role) can perform write operations
        - Otherwise authenticated users have read-only access
      parameters:
      - in: query
        name: is_active
        schema:
          type: boolean
      - in: query
        name: is_staff
        schema:
          type: boolean
      - in: query
        name: is_superuser
        schema:
          type: boolean
      - name: limit
        required: true
        in: query
        description: Number of results to return per page.
        schema:
          type: integer
      - name: offset
        required: false
        in: query
        description: The initial index from which to return the results.
        schema:
          type: integer
      - name: ordering
        required: false
        in: query
        description: 'Which field to use when ordering the results. Possible fields:
          email, username, first_name, last_name, is_staff, is_superuser, is_active.'
        schema:
          type: string
      - name: search
        required: false
        in: query
        description: 'A search term. Searched fields: first_name, last_name, username.'
        schema:
          type: string
      tags:
      - user
      security:
      - tokenAuth: []
      - basicAuth: []
      - cookieAuth: []
      - oauth2:
        - g:read
      responses:
        '200':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/PaginatedUserCreateList'
          description: ''
    post:
      operationId: user_create
      description: |-
        List endpoint for detail on all users.

        Permissions:
        - Staff users (who also have the 'admin' role) can perform write operations
        - Otherwise authenticated users have read-only access
      tags:
      - user
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/UserCreate'
          application/x-www-form-urlencoded:
            schema:
              $ref: '#/components/schemas/UserCreate'
          multipart/form-data:
            schema:
              $ref: '#/components/schemas/UserCreate'
        required: true
      security:
      - tokenAuth: []
      - basicAuth: []
      - cookieAuth: []
      - oauth2:
        - a:staff
      responses:
        '201':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/UserCreate'
          description: ''
  /api/user/{id}/:
    get:
      operationId: user_retrieve
      description: |-
        Detail endpoint for a single user.

        Permissions:
        - Staff users (who also have the 'admin' role) can perform write operations
        - Otherwise authenticated users have read-only access
      parameters:
      - in: path
        name: id
        schema:
          type: integer
        required: true
      tags:
      - user
      security:
      - tokenAuth: []
      - basicAuth: []
      - cookieAuth: []
      - oauth2:
        - g:read
      responses:
        '200':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ExtendedUser'
          description: ''
    put:
      operationId: user_update
      description: |-
        Detail endpoint for a single user.

        Permissions:
        - Staff users (who also have the 'admin' role) can perform write operations
        - Otherwise authenticated users have read-only access
      parameters:
      - in: path
        name: id
        schema:
          type: integer
        required: true
      tags:
      - user
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/ExtendedUser'
          application/x-www-form-urlencoded:
            schema:
              $ref: '#/components/schemas/ExtendedUser'
          multipart/form-data:
            schema:
              $ref: '#/components/schemas/ExtendedUser'
        required: true
      security:
      - tokenAuth: []
      - basicAuth: []
      - cookieAuth: []
      - oauth2:
        - a:staff
      responses:
        '200':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ExtendedUser'
          description: ''
    patch:
      operationId: user_partial_update
      description: |-
        Detail endpoint for a single user.

        Permissions:
        - Staff users (who also have the 'admin' role) can perform write operations
        - Otherwise authenticated users have read-only access
      parameters:
      - in: path
        name: id
        schema:
          type: integer
        required: true
      tags:
      - user
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/PatchedExtendedUser'
          application/x-www-form-urlencoded:
            schema:
              $ref: '#/components/schemas/PatchedExtendedUser'
          multipart/form-data:
            schema:
              $ref: '#/components/schemas/PatchedExtendedUser'
      security:
      - tokenAuth: []
      - basicAuth: []
      - cookieAuth: []
      - oauth2:
        - a:staff
      responses:
        '200':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ExtendedUser'
          description: ''
    delete:
      operationId: user_destroy
      description: |-
        Detail endpoint for a single user.

        Permissions:
        - Staff users (who also have the 'admin' role) can perform write operations
        - Otherwise authenticated users have read-only access
      parameters:
      - in: path
        name: id
        schema:
          type: integer
        required: true
      tags:
      - user
      security:
      - tokenAuth: []
      - basicAuth: []
      - cookieAuth: []
      - oauth2:
        - a:staff
      responses:
        '204':
          description: No response body
  /api/user/{id}/set-password/:
    put:
      operationId: user_set_password_update
      description: Allows superusers to set the password for a user.
      parameters:
      - in: path
        name: id
        schema:
          type: integer
        required: true
      tags:
      - user
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/UserSetPassword'
          application/x-www-form-urlencoded:
            schema:
              $ref: '#/components/schemas/UserSetPassword'
          multipart/form-data:
            schema:
              $ref: '#/components/schemas/UserSetPassword'
        required: true
      security:
      - tokenAuth: []
      - basicAuth: []
      - cookieAuth: []
      - oauth2:
        - a:superuser
      responses:
        '200':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/UserSetPassword'
          description: ''
    patch:
      operationId: user_set_password_partial_update
      description: Allows superusers to set the password for a user.
      parameters:
      - in: path
        name: id
        schema:
          type: integer
        required: true
      tags:
      - user
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/PatchedUserSetPassword'
          application/x-www-form-urlencoded:
            schema:
              $ref: '#/components/schemas/PatchedUserSetPassword'
          multipart/form-data:
            schema:
              $ref: '#/components/schemas/PatchedUserSetPassword'
      security:
      - tokenAuth: []
      - basicAuth: []
      - cookieAuth: []
      - oauth2:
        - a:superuser
      responses:
        '200':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/UserSetPassword'
          description: ''
  /api/user/group/:
    get:
      operationId: user_group_list
      description: List endpoint for all auth groups.
      parameters:
      - name: limit
        required: true
        in: query
        description: Number of results to return per page.
        schema:
          type: integer
      - name: offset
        required: false
        in: query
        description: The initial index from which to return the results.
        schema:
          type: integer
      - name: ordering
        required: false
        in: query
        description: 'Which field to use when ordering the results. Possible fields:
          name.'
        schema:
          type: string
      - in: query
        name: permission_detail
        schema:
          type: boolean
          default: false
        description: Include permission details
      - in: query
        name: role_detail
        schema:
          type: boolean
          default: true
        description: Include role details
      - name: search
        required: false
        in: query
        description: 'A search term. Searched fields: name.'
        schema:
          type: string
      - in: query
        name: user_detail
        schema:
          type: boolean
          default: false
        description: Include user details
      tags:
      - user
      security:
      - tokenAuth: []
      - basicAuth: []
      - cookieAuth: []
      - oauth2:
        - g:read
      responses:
        '200':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/PaginatedGroupList'
          description: ''
    post:
      operationId: user_group_create
      description: List endpoint for all auth groups.
      tags:
      - user
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/Group'
          application/x-www-form-urlencoded:
            schema:
              $ref: '#/components/schemas/Group'
          multipart/form-data:
            schema:
              $ref: '#/components/schemas/Group'
        required: true
      security:
      - tokenAuth: []
      - basicAuth: []
      - cookieAuth: []
      - oauth2:
        - a:staff
      responses:
        '201':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Group'
          description: ''
  /api/user/group/{id}/:
    get:
      operationId: user_group_retrieve
      description: Detail endpoint for a particular auth group.
      parameters:
      - in: path
        name: id
        schema:
          type: integer
        required: true
      - in: query
        name: permission_detail
        schema:
          type: boolean
          default: false
        description: Include permission details
      - in: query
        name: role_detail
        schema:
          type: boolean
          default: true
        description: Include role details
      - in: query
        name: user_detail
        schema:
          type: boolean
          default: false
        description: Include user details
      tags:
      - user
      security:
      - tokenAuth: []
      - basicAuth: []
      - cookieAuth: []
      - oauth2:
        - g:read
      responses:
        '200':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Group'
          description: ''
    put:
      operationId: user_group_update
      description: Detail endpoint for a particular auth group.
      parameters:
      - in: path
        name: id
        schema:
          type: integer
        required: true
      tags:
      - user
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/Group'
          application/x-www-form-urlencoded:
            schema:
              $ref: '#/components/schemas/Group'
          multipart/form-data:
            schema:
              $ref: '#/components/schemas/Group'
        required: true
      security:
      - tokenAuth: []
      - basicAuth: []
      - cookieAuth: []
      - oauth2:
        - a:staff
      responses:
        '200':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Group'
          description: ''
    patch:
      operationId: user_group_partial_update
      description: Detail endpoint for a particular auth group.
      parameters:
      - in: path
        name: id
        schema:
          type: integer
        required: true
      tags:
      - user
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/PatchedGroup'
          application/x-www-form-urlencoded:
            schema:
              $ref: '#/components/schemas/PatchedGroup'
          multipart/form-data:
            schema:
              $ref: '#/components/schemas/PatchedGroup'
      security:
      - tokenAuth: []
      - basicAuth: []
      - cookieAuth: []
      - oauth2:
        - a:staff
      responses:
        '200':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Group'
          description: ''
    delete:
      operationId: user_group_destroy
      description: Detail endpoint for a particular auth group.
      parameters:
      - in: path
        name: id
        schema:
          type: integer
        required: true
      tags:
      - user
      security:
      - tokenAuth: []
      - basicAuth: []
      - cookieAuth: []
      - oauth2:
        - a:staff
      responses:
        '204':
          description: No response body
  /api/user/me/:
    get:
      operationId: user_me_retrieve
      description: |-
        Detail endpoint for current user.

        Permissions:
        - User can edit their own details via this endpoint
        - Only a subset of fields are available here
      tags:
      - user
      security:
      - tokenAuth: []
      - basicAuth: []
      - cookieAuth: []
      - oauth2:
        - g:read
      responses:
        '200':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/MeUser'
          description: ''
    put:
      operationId: user_me_update
      description: |-
        Detail endpoint for current user.

        Permissions:
        - User can edit their own details via this endpoint
        - Only a subset of fields are available here
      tags:
      - user
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/MeUser'
          application/x-www-form-urlencoded:
            schema:
              $ref: '#/components/schemas/MeUser'
          multipart/form-data:
            schema:
              $ref: '#/components/schemas/MeUser'
        required: true
      security:
      - tokenAuth: []
      - basicAuth: []
      - cookieAuth: []
      - oauth2:
        - g:read
      responses:
        '200':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/MeUser'
          description: ''
    patch:
      operationId: user_me_partial_update
      description: |-
        Detail endpoint for current user.

        Permissions:
        - User can edit their own details via this endpoint
        - Only a subset of fields are available here
      tags:
      - user
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/PatchedMeUser'
          application/x-www-form-urlencoded:
            schema:
              $ref: '#/components/schemas/PatchedMeUser'
          multipart/form-data:
            schema:
              $ref: '#/components/schemas/PatchedMeUser'
      security:
      - tokenAuth: []
      - basicAuth: []
      - cookieAuth: []
      - oauth2:
        - g:read
      responses:
        '200':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/MeUser'
          description: ''
    delete:
      operationId: user_me_destroy
      description: |-
        Detail endpoint for current user.

        Permissions:
        - User can edit their own details via this endpoint
        - Only a subset of fields are available here
      tags:
      - user
      security:
      - tokenAuth: []
      - basicAuth: []
      - cookieAuth: []
      - oauth2:
        - g:read
      responses:
        '204':
          description: No response body
  /api/user/owner/:
    get:
      operationId: user_owner_list
      description: |-
        List API endpoint for Owner model.

        Cannot create a new Owner object via the API, but can view existing instances.
      parameters:
      - in: query
        name: is_active
        schema:
          type: boolean
      - name: limit
        required: true
        in: query
        description: Number of results to return per page.
        schema:
          type: integer
      - name: offset
        required: false
        in: query
        description: The initial index from which to return the results.
        schema:
          type: integer
      - name: ordering
        required: false
        in: query
        description: Which field to use when ordering the results.
        schema:
          type: string
      - name: search
        required: false
        in: query
        description: A search term.
        schema:
          type: string
      tags:
      - user
      security:
      - tokenAuth: []
      - basicAuth: []
      - cookieAuth: []
      - oauth2:
        - g:read
      responses:
        '200':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/PaginatedOwnerList'
          description: ''
  /api/user/owner/{id}/:
    get:
      operationId: user_owner_retrieve
      description: |-
        Detail API endpoint for Owner model.

        Cannot edit or delete
      parameters:
      - in: path
        name: id
        schema:
          type: integer
        required: true
      tags:
      - user
      security:
      - tokenAuth: []
      - basicAuth: []
      - cookieAuth: []
      - oauth2:
        - g:read
      responses:
        '200':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Owner'
          description: ''
  /api/user/profile/:
    get:
      operationId: user_profile_retrieve
      description: |-
        Detail endpoint for the user profile.

        Permissions:
        - Any authenticated user has write access against this endpoint
        - The endpoint always returns the profile associated with the current user
      tags:
      - user
      security:
      - tokenAuth: []
      - basicAuth: []
      - cookieAuth: []
      - oauth2:
        - g:read
      responses:
        '200':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/UserProfile'
          description: ''
    put:
      operationId: user_profile_update
      description: |-
        Detail endpoint for the user profile.

        Permissions:
        - Any authenticated user has write access against this endpoint
        - The endpoint always returns the profile associated with the current user
      tags:
      - user
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/UserProfile'
          application/x-www-form-urlencoded:
            schema:
              $ref: '#/components/schemas/UserProfile'
          multipart/form-data:
            schema:
              $ref: '#/components/schemas/UserProfile'
      security:
      - tokenAuth: []
      - basicAuth: []
      - cookieAuth: []
      - oauth2:
        - g:read
      responses:
        '200':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/UserProfile'
          description: ''
    patch:
      operationId: user_profile_partial_update
      description: |-
        Detail endpoint for the user profile.

        Permissions:
        - Any authenticated user has write access against this endpoint
        - The endpoint always returns the profile associated with the current user
      tags:
      - user
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/PatchedUserProfile'
          application/x-www-form-urlencoded:
            schema:
              $ref: '#/components/schemas/PatchedUserProfile'
          multipart/form-data:
            schema:
              $ref: '#/components/schemas/PatchedUserProfile'
      security:
      - tokenAuth: []
      - basicAuth: []
      - cookieAuth: []
      - oauth2:
        - g:read
      responses:
        '200':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/UserProfile'
          description: ''
  /api/user/roles/:
    get:
      operationId: user_roles_retrieve
      description: API endpoint which lists the available role permissions for the
        current user.
      tags:
      - user
      security:
      - tokenAuth: []
      - basicAuth: []
      - cookieAuth: []
      - oauth2:
        - g:read
      responses:
        '200':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Role'
          description: ''
  /api/user/ruleset/:
    get:
      operationId: user_ruleset_list
      description: List endpoint for all RuleSet instances.
      parameters:
      - in: query
        name: group
        schema:
          type: integer
      - name: limit
        required: true
        in: query
        description: Number of results to return per page.
        schema:
          type: integer
      - in: query
        name: name
        schema:
          type: string
          enum:
          - admin
          - build
          - part
          - part_category
          - purchase_order
          - return_order
          - sales_order
          - stock
          - stock_location
        description: |-
          Permission set

          * `admin` - Admin
          * `part_category` - Part Categories
          * `part` - Parts
          * `stock_location` - Stock Locations
          * `stock` - Stock Items
          * `build` - Build Orders
          * `purchase_order` - Purchase Orders
          * `sales_order` - Sales Orders
          * `return_order` - Return Orders
      - name: offset
        required: false
        in: query
        description: The initial index from which to return the results.
        schema:
          type: integer
      - name: ordering
        required: false
        in: query
        description: 'Which field to use when ordering the results. Possible fields:
          name.'
        schema:
          type: string
      - name: search
        required: false
        in: query
        description: 'A search term. Searched fields: name.'
        schema:
          type: string
      tags:
      - user
      security:
      - tokenAuth: []
      - basicAuth: []
      - cookieAuth: []
      - oauth2:
        - g:read
      responses:
        '200':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/PaginatedRuleSetList'
          description: ''
  /api/user/ruleset/{id}/:
    get:
      operationId: user_ruleset_retrieve
      description: Detail endpoint for a particular RuleSet instance.
      parameters:
      - in: path
        name: id
        schema:
          type: integer
        required: true
      tags:
      - user
      security:
      - tokenAuth: []
      - basicAuth: []
      - cookieAuth: []
      - oauth2:
        - g:read
      responses:
        '200':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/RuleSet'
          description: ''
    put:
      operationId: user_ruleset_update
      description: Detail endpoint for a particular RuleSet instance.
      parameters:
      - in: path
        name: id
        schema:
          type: integer
        required: true
      tags:
      - user
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/RuleSet'
          application/x-www-form-urlencoded:
            schema:
              $ref: '#/components/schemas/RuleSet'
          multipart/form-data:
            schema:
              $ref: '#/components/schemas/RuleSet'
      security:
      - tokenAuth: []
      - basicAuth: []
      - cookieAuth: []
      - oauth2:
        - a:staff
      responses:
        '200':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/RuleSet'
          description: ''
    patch:
      operationId: user_ruleset_partial_update
      description: Detail endpoint for a particular RuleSet instance.
      parameters:
      - in: path
        name: id
        schema:
          type: integer
        required: true
      tags:
      - user
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/PatchedRuleSet'
          application/x-www-form-urlencoded:
            schema:
              $ref: '#/components/schemas/PatchedRuleSet'
          multipart/form-data:
            schema:
              $ref: '#/components/schemas/PatchedRuleSet'
      security:
      - tokenAuth: []
      - basicAuth: []
      - cookieAuth: []
      - oauth2:
        - a:staff
      responses:
        '200':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/RuleSet'
          description: ''
    delete:
      operationId: user_ruleset_destroy
      description: Detail endpoint for a particular RuleSet instance.
      parameters:
      - in: path
        name: id
        schema:
          type: integer
        required: true
      tags:
      - user
      security:
      - tokenAuth: []
      - basicAuth: []
      - cookieAuth: []
      - oauth2:
        - a:staff
      responses:
        '204':
          description: No response body
  /api/user/token/:
    get:
      operationId: user_token_retrieve
      description: |-
        Return an API token if the user is authenticated.

        - If the user already has a matching token, delete it and create a new one
        - Existing tokens are *never* exposed again via the API
        - Once the token is provided, it can be used for auth until it expires
      parameters:
      - in: query
        name: name
        schema:
          type: string
        description: Name of the token
      tags:
      - user
      security:
      - tokenAuth: []
      - basicAuth: []
      - cookieAuth: []
      - oauth2:
        - g:read
      responses:
        '200':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/GetAuthToken'
          description: ''
  /api/user/tokens/:
    get:
      operationId: user_tokens_list
      description: List of user tokens for current user.
      parameters:
      - name: limit
        required: true
        in: query
        description: Number of results to return per page.
        schema:
          type: integer
      - name: offset
        required: false
        in: query
        description: The initial index from which to return the results.
        schema:
          type: integer
      - name: ordering
        required: false
        in: query
        description: 'Which field to use when ordering the results. Possible fields:
          created, expiry, last_seen, user, name, revoked, revoked.'
        schema:
          type: string
      - in: query
        name: revoked
        schema:
          type: boolean
      - name: search
        required: false
        in: query
        description: 'A search term. Searched fields: key, name.'
        schema:
          type: string
      - in: query
        name: user
        schema:
          type: integer
      tags:
      - user
      security:
      - tokenAuth: []
      - basicAuth: []
      - cookieAuth: []
      - oauth2:
        - g:read
      responses:
        '200':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/PaginatedApiTokenList'
          description: ''
    post:
      operationId: user_tokens_create
      description: List of user tokens for current user.
      tags:
      - user
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/ApiToken'
          application/x-www-form-urlencoded:
            schema:
              $ref: '#/components/schemas/ApiToken'
          multipart/form-data:
            schema:
              $ref: '#/components/schemas/ApiToken'
      security:
      - tokenAuth: []
      - basicAuth: []
      - cookieAuth: []
      - oauth2:
        - g:read
      responses:
        '201':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ApiToken'
          description: ''
  /api/user/tokens/{id}/:
    get:
      operationId: user_tokens_retrieve
      description: Details for a user token.
      parameters:
      - in: query
        name: all_users
        schema:
          type: boolean
        description: Display tokens for all users (superuser only)
      - in: path
        name: id
        schema:
          type: integer
        required: true
      tags:
      - user
      security:
      - tokenAuth: []
      - basicAuth: []
      - cookieAuth: []
      - oauth2:
        - g:read
      responses:
        '200':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ApiToken'
          description: ''
    delete:
      operationId: user_tokens_destroy
      description: Details for a user token.
      parameters:
      - in: path
        name: id
        schema:
          type: integer
        required: true
      tags:
      - user
      security:
      - tokenAuth: []
      - basicAuth: []
      - cookieAuth: []
      - oauth2:
        - g:read
      responses:
        '204':
          description: No response body
  /api/version/:
    get:
      operationId: version_retrieve
      description: Return information about the InvenTree server.
      tags:
      - version
      security:
      - tokenAuth: []
      - basicAuth: []
      - cookieAuth: []
      - oauth2:
        - a:staff
      responses:
        '200':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/VersionView'
          description: ''
  /api/version-text:
    get:
      operationId: version_text_list
      description: Simple JSON endpoint for InvenTree version text.
      parameters:
      - in: query
        name: start_version
        schema:
          type: integer
        description: First version to report. Defaults to return the latest {versions}
          versions.
      - in: query
        name: versions
        schema:
          type: integer
          default: 10
        description: Number of versions to return.
      tags:
      - version-text
      security:
      - tokenAuth: []
      - basicAuth: []
      - cookieAuth: []
      - oauth2:
        - a:staff
      responses:
        '200':
          content:
            application/json:
              schema:
                type: array
                items:
                  $ref: '#/components/schemas/VersionInformation'
          description: ''
  /api/webhook/{endpoint}/:
    post:
      operationId: webhook_create
      description: Process incoming webhook.
      parameters:
      - in: path
        name: endpoint
        schema:
          type: string
        required: true
      tags:
      - webhook
      responses:
        '200':
          description: Any data can be posted to the endpoint - everything will be
            passed to the WebhookEndpoint model.
  /api/auth/v1/config:
    get:
      summary: Get configuration
      tags:
      - Configuration
      description: |
        There are many configuration options that alter the functionality
        and behavior of django-allauth, some of which can also impact the
        frontend. Therefore, relevant configuration options are exposed via
        this endpoint. The data returned is not user/authentication
        dependent. Hence, it suffices to only fetch this data once at boot
        time of your application.
      parameters: []
      responses:
        '200':
          $ref: '#/components/responses/allauth.Configuration'
      operationId: allauth_config_get
  /api/auth/v1/auth/login:
    post:
      tags:
      - 'Authentication: Account'
      summary: Login
      description: |
        Login using a username-password or email-password combination.
      parameters: []
      requestBody:
        $ref: '#/components/requestBodies/allauth.Login'
      responses:
        '200':
          $ref: '#/components/responses/allauth.AuthenticatedByPassword'
        '400':
          description: An input error occurred.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/allauth.ErrorResponse'
              examples:
                invalid_email:
                  $ref: '#/components/examples/allauth.InvalidEmail'
                password_mismatch:
                  $ref: '#/components/examples/allauth.PasswordMismatch'
        '401':
          description: |
            Not authenticated.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/allauth.AuthenticationResponse'
              examples:
                pending_email:
                  $ref: '#/components/examples/allauth.UnauthenticatedPendingEmailVerification'
                pending_2fa:
                  $ref: '#/components/examples/allauth.UnauthenticatedPending2FA'
        '409':
          description: |
            Conflict. For example, when logging in when a user is already logged in.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/allauth.ConflictResponse'
      operationId: allauth_auth_login_post
  /api/auth/v1/auth/signup:
    post:
      tags:
      - 'Authentication: Account'
      summary: Signup
      description: |
        Whether or not `username`, `email`, `phone` or combination of those are
        required depends on the configuration of django-allauth. Additionally,
        if a custom signup form is used there may be other custom properties
        required.
      parameters: []
      requestBody:
        $ref: '#/components/requestBodies/allauth.Signup'
      responses:
        '200':
          $ref: '#/components/responses/allauth.AuthenticatedByPassword'
        '400':
          description: |
            An input error occurred.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/allauth.ErrorResponse'
              examples:
                invalid_email:
                  $ref: '#/components/examples/allauth.InvalidEmail'
        '401':
          description: |
            Not authenticated.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/allauth.AuthenticationResponse'
              examples:
                pending_email:
                  $ref: '#/components/examples/allauth.UnauthenticatedPendingEmailVerification'
        '403':
          description: |
            Forbidden. For example, when signup is closed.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/allauth.ForbiddenResponse'
        '409':
          description: |
            Conflict. For example, when signing up while user is logged in.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/allauth.ConflictResponse'
      operationId: allauth_auth_signup_post
  /api/auth/v1/auth/email/verify:
    get:
      tags:
      - 'Authentication: Account'
      summary: Get email verification information
      description: |
        Obtain email verification information, given the token that was sent to
        the user by email.
      parameters:
      - $ref: '#/components/parameters/allauth.EmailVerificationKey'
      responses:
        '200':
          $ref: '#/components/responses/allauth.EmailVerificationInfo'
        '400':
          description: |
            An input error occurred.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/allauth.ErrorResponse'
              examples:
                invalid_email:
                  $ref: '#/components/examples/allauth.InvalidEmailVerificationKey'
        '409':
          description: |
            Conflict. The email verification (by code) flow is not pending.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/allauth.ConflictResponse'
      operationId: allauth_auth_email_verify_get
    post:
      tags:
      - 'Authentication: Account'
      summary: Verify an email
      description: |
        Complete the email verification process. Depending on the configuration,
        email addresses are either verified by opening a link that is sent to
        their email address, or, by inputting a code that is sent. On the API,
        both cases are handled identically. Meaning, the required key is either
        the one from the link, or, the code itself.

        Note that a status code of 401 does not imply failure. It indicates that
        the email verification was successful, yet, the user is still not signed
        in. For example, in case `ACCOUNT_LOGIN_ON_EMAIL_CONFIRMATION` is set to
        `False`, a 401 is returned when verifying as part of login/signup.
      parameters: []
      requestBody:
        $ref: '#/components/requestBodies/allauth.VerifyEmail'
      responses:
        '200':
          $ref: '#/components/responses/allauth.Authenticated'
        '400':
          description: |
            An input error occurred.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/allauth.ErrorResponse'
              examples:
                invalid_email:
                  $ref: '#/components/examples/allauth.InvalidEmailVerificationKey'
        '401':
          $ref: '#/components/responses/allauth.Unauthenticated'
        '409':
          description: |
            Conflict. The email verification (by code) flow is not pending.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/allauth.ConflictResponse'
      operationId: allauth_auth_email_verify_post
  /api/auth/v1/auth/email/verify/resend:
    post:
      tags:
      - 'Authentication: Account'
      summary: Resend email verification code
      description: |
        Requests a new email verification code.
        Requires `ACCOUNT_EMAIL_VERIFICATION_SUPPORTS_RESEND = True`.
      parameters: []
      responses:
        '200':
          $ref: '#/components/responses/allauth.StatusOK'
        '409':
          description: |
            Conflict. The email verification (by code) flow is not pending.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/allauth.ConflictResponse'
        '429':
          $ref: '#/components/responses/allauth.TooManyRequests'
      operationId: allauth_auth_email_verify_resend_post
  /api/auth/v1/auth/phone/verify:
    post:
      tags:
      - 'Authentication: Account'
      summary: Verify a phone number
      description: |
        Complete the phone number verification process. Note that a status code
        of 401 does not imply failure. It merely indicates that the phone number
        verification was successful, yet, the user is still not signed in.
      parameters: []
      requestBody:
        $ref: '#/components/requestBodies/allauth.VerifyPhone'
      responses:
        '200':
          $ref: '#/components/responses/allauth.Authenticated'
        '400':
          description: |
            An input error occurred.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/allauth.ErrorResponse'
        '401':
          $ref: '#/components/responses/allauth.Unauthenticated'
        '409':
          description: |
            Conflict. The phone verification flow is not pending.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/allauth.ConflictResponse'
      operationId: allauth_auth_phone_verify_post
  /api/auth/v1/auth/phone/verify/resend:
    post:
      tags:
      - 'Authentication: Account'
      summary: Resend phone number verification code
      description: |
        Requests a new phone number verification code.
        Requires `ACCOUNT_PHONE_VERIFICATION_SUPPORTS_RESEND = True`.
      parameters: []
      responses:
        '200':
          $ref: '#/components/responses/allauth.StatusOK'
        '409':
          description: |
            Conflict. The phone verification flow is not pending.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/allauth.ConflictResponse'
        '429':
          $ref: '#/components/responses/allauth.TooManyRequests'
      operationId: allauth_auth_phone_verify_resend_post
  /api/auth/v1/auth/reauthenticate:
    post:
      tags:
      - 'Authentication: Account'
      summary: Reauthenticate
      description: |
        In order to safeguard the account, some actions require the user to be
        recently authenticated.  If you try to perform such an action without
        having been recently authenticated, a `401` status is returned, listing
        flows that can be performed to reauthenticate. One such flow is the flow
        with ID `reauthenticate`, which allows for the user to input the
        password. This is the endpoint related towards that flow.
      parameters: []
      requestBody:
        $ref: '#/components/requestBodies/allauth.Reauthenticate'
      responses:
        '200':
          $ref: '#/components/responses/allauth.AuthenticatedByPassword'
        '400':
          description: An input error occurred.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/allauth.ErrorResponse'
              examples:
                invalid_email:
                  $ref: '#/components/examples/allauth.IncorrectPassword'
      operationId: allauth_auth_reauthenticate_post
  /api/auth/v1/auth/password/request:
    post:
      summary: Request password
      description: |
        Initiates the password reset procedure. Depending on whether or not
        `ACCOUNT_PASSWORD_RESET_BY_CODE_ENABLED` is `True`, the procedure is
        either stateless or stateful.

        In case codes are used, it is stateful, and a new
        `password_reset_by_code` flow is started. In this case, on a successful
        password reset request, you will receive a 401 indicating the pending
        status of this flow.

        In case password reset is configured to use (stateless) links, you will
        receive a 200 on a successful password reset request.
      tags:
      - 'Authentication: Password Reset'
      parameters: []
      requestBody:
        $ref: '#/components/requestBodies/allauth.RequestPassword'
      responses:
        '200':
          $ref: '#/components/responses/allauth.StatusOK'
        '400':
          description: |
            An input error occurred.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/allauth.ErrorResponse'
              examples:
                invalid_email:
                  $ref: '#/components/examples/allauth.InvalidEmail'
        '401':
          $ref: '#/components/responses/allauth.Authentication'
      operationId: allauth_auth_password_request_post
  /api/auth/v1/auth/password/reset:
    get:
      summary: Get password reset information
      description: |
        Used to obtain information on and validate a password reset key.  The
        key passed is either the key encoded in the password reset URL that the
        user has received per email, or, the password reset code in case of
        `ACCOUNT_PASSWORD_RESET_BY_CODE_ENABLED`. Note that in case of a code,
        the number of requests you can make is limited (by
        `ACCOUNT_PASSWORD_RESET_BY_CODE_MAX_ATTEMPTS`).
      tags:
      - 'Authentication: Password Reset'
      parameters:
      - $ref: '#/components/parameters/allauth.PasswordResetKey'
      responses:
        '200':
          $ref: '#/components/responses/allauth.PasswordResetInfo'
        '400':
          description: |
            An input error occurred.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/allauth.ErrorResponse'
              examples:
                password_reset_key_invalid:
                  $ref: '#/components/examples/allauth.InvalidPasswordResetKey'
        '409':
          description: |
            Conflict. There is no password reset (by code) flow pending.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/allauth.ConflictResponse'
      operationId: allauth_auth_password_reset_get
    post:
      summary: Reset password
      description: |
        Perform the password reset, by handing over the password reset key and
        the new password. After successfully completing the password reset, the
        user is either logged in (in case `ACCOUNT_LOGIN_ON_PASSWORD_RESET` is
        `True`), or, the user will need to proceed to the login page.  In case
        of the former, a `200` status code is returned, in case of the latter a
        401.
      tags:
      - 'Authentication: Password Reset'
      parameters: []
      requestBody:
        $ref: '#/components/requestBodies/allauth.ResetPassword'
      responses:
        '200':
          $ref: '#/components/responses/allauth.AuthenticatedByPassword'
        '400':
          description: An input error occurred.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/allauth.ErrorResponse'
              examples:
                invalid_email:
                  $ref: '#/components/examples/allauth.InvalidEmail'
        '401':
          $ref: '#/components/responses/allauth.Authentication'
        '409':
          description: |
            Conflict. There is no password reset (by code) flow pending.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/allauth.ConflictResponse'
      operationId: allauth_auth_password_reset_post
  /api/auth/v1/auth/provider/redirect:
    post:
      tags:
      - 'Authentication: Providers'
      summary: Provider redirect
      description: |
        Initiates the third-party provider authentication redirect flow. As calling
        this endpoint results in a user facing redirect (302), this call is only
        available in a browser, and must be called in a synchronous (non-XHR)
        manner.
      requestBody:
        $ref: '#/components/requestBodies/allauth.ProviderRedirect'
      responses:
        '302':
          description: The provider authorization URL to which the client should be
            redirected.
          headers:
            location:
              schema:
                type: string
              description: The redirect URL.
      operationId: allauth_auth_provider_redirect_post
  /api/auth/v1/auth/provider/token:
    post:
      tags:
      - 'Authentication: Providers'
      summary: Provider token
      description: |
        Authenticates with a third-party provider using provider tokens received
        by other means. For example, in case of a mobile app, the authentication
        flow runs completely on the device itself, without any interaction with
        the API. Then, when the (device) authentication completes and the mobile
        app receives an access and/or ID token, it can hand over these tokens
        via this endpoint to authenticate on the server.
      parameters: []
      requestBody:
        $ref: '#/components/requestBodies/allauth.ProviderToken'
      responses:
        '200':
          $ref: '#/components/responses/allauth.Authenticated'
        '400':
          description: An input error occurred.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/allauth.ErrorResponse'
              examples:
                invalid_token:
                  $ref: '#/components/examples/allauth.InvalidProviderToken'
        '401':
          description: Not authenticated, more steps are required to be completed.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/allauth.AuthenticationResponse'
              examples:
                unauthenticated_pending_2fa:
                  $ref: '#/components/examples/allauth.UnauthenticatedPending2FA'
                unauthenticated_pending_email_verification:
                  $ref: '#/components/examples/allauth.UnauthenticatedPendingEmailVerification'
        '403':
          description: |
            Forbidden. For example, when signup is closed.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/allauth.ForbiddenResponse'
      operationId: allauth_auth_provider_token_post
  /api/auth/v1/auth/provider/signup:
    get:
      tags:
      - 'Authentication: Providers'
      summary: Provider signup information
      description: |
        If, while signing up using a third-party provider account, there is
        insufficient information received from the provider to automatically
        complete the signup process, an additional step is needed to complete
        the missing data before the user is fully signed up and authenticated.
        The information available so far, such as the pending provider account,
        can be retrieved via this endpoint.
      parameters: []
      responses:
        '200':
          $ref: '#/components/responses/allauth.ProviderSignup'
        '409':
          description: |
            Conflict. The provider signup flow is not pending.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/allauth.ConflictResponse'
      operationId: allauth_auth_provider_signup_get
    post:
      tags:
      - 'Authentication: Providers'
      summary: Provider signup
      description: |
        If, while signing up using a third-party provider account, there is
        insufficient information received from the provider to automatically
        complete the signup process, an additional step is needed to complete
        the missing data before the user is fully signed up and authenticated.
      parameters: []
      requestBody:
        $ref: '#/components/requestBodies/allauth.ProviderSignup'
      responses:
        '200':
          $ref: '#/components/responses/allauth.Authenticated'
        '400':
          description: An input error occurred.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/allauth.ErrorResponse'
              examples:
                invalid_email:
                  $ref: '#/components/examples/allauth.InvalidEmail'
        '401':
          description: Not authenticated, more steps are required to be completed.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/allauth.AuthenticationResponse'
              examples:
                unauthenticated_pending_email_verification:
                  $ref: '#/components/examples/allauth.UnauthenticatedPendingEmailVerification'
        '403':
          description: |
            Forbidden. For example, when signup is closed.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/allauth.ForbiddenResponse'
        '409':
          description: |
            Conflict. The provider signup flow is not pending.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/allauth.ConflictResponse'
      operationId: allauth_auth_provider_signup_post
  /api/auth/v1/auth/2fa/authenticate:
    post:
      tags:
      - 'Authentication: 2FA'
      summary: Two-factor authentication
      description: |
        If, during authentication,  a response with status 401 is encountered where one of the pending
        flows has ID `mfa_authenticate`, that indicates that the Two-Factor Authentication stage needs to
        be completed.
      parameters: []
      requestBody:
        $ref: '#/components/requestBodies/allauth.MFAAuthenticate'
      responses:
        '200':
          $ref: '#/components/responses/allauth.AuthenticatedByPasswordAnd2FA'
        '400':
          description: An input error occurred.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/allauth.ErrorResponse'
              examples:
                invalid_code:
                  $ref: '#/components/examples/allauth.InvalidAuthenticatorCode'
        '401':
          $ref: '#/components/responses/allauth.Authentication'
      operationId: allauth_auth_2fa_authenticate_post
  /api/auth/v1/auth/2fa/reauthenticate:
    post:
      tags:
      - 'Authentication: 2FA'
      summary: Reauthenticate using 2FA
      description: |
        In order to safeguard the account, some actions require the user to be
        recently authenticated.  If you try to perform such an action without
        having been recently authenticated, a `401` status is returned, listing
        flows that can be performed to reauthenticate. One such flow is the flow
        with ID `mfa_reauthenticate`, which allows for the user to input an
        authenticator code (e.g. TOTP or recovery code). This is the endpoint
        related towards that flow.
      parameters: []
      responses:
        '200':
          $ref: '#/components/responses/allauth.AuthenticatedByPasswordAnd2FA'
        '400':
          description: An input error occurred.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/allauth.ErrorResponse'
              examples:
                invalid_code:
                  $ref: '#/components/examples/allauth.InvalidAuthenticatorCode'
      operationId: allauth_auth_2fa_reauthenticate_post
  /api/auth/v1/auth/2fa/trust:
    post:
      tags:
      - 'Authentication: 2FA'
      summary: Trust this browser
      description: |
        If "Trust this browser?" is enabled (`MFA_TRUST_ENABLED`), the
        `mfa_trust` flow activates after the user completes the MFA
        authentication flow, offering to skip MFA for this particular
        browser. This endpoint is used to complete the `mfa_trust` flow.
      parameters: []
      requestBody:
        $ref: '#/components/requestBodies/allauth.MFATrust'
      responses:
        '200':
          $ref: '#/components/responses/allauth.AuthenticatedByPasswordAnd2FA'
        '400':
          description: An input error occurred.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/allauth.ErrorResponse'
      operationId: allauth_auth_2fa_trust_post
  /api/auth/v1/auth/webauthn/authenticate:
    get:
      tags:
      - 'Authentication: WebAuthn: Login'
      summary: Get WebAuthn credential request options for 2FA
      parameters: []
      description: |
        Returns the WebAuthn credential request options, that can be
        processed using `parseRequestOptionsFromJSON()` on the frontend.
      responses:
        '200':
          $ref: '#/components/responses/allauth.WebAuthnRequestOptionsResponse'
      operationId: allauth_auth_webauthn_authenticate_get
    post:
      tags:
      - 'Authentication: WebAuthn: Login'
      summary: Perform 2FA using WebAuthn
      parameters: []
      description: |
        Perform Two-Factor Authentication using a WebAuthn credential.
      requestBody:
        $ref: '#/components/requestBodies/allauth.AuthenticateWebAuthn'
      responses:
        '200':
          $ref: '#/components/responses/allauth.Authenticated'
        '400':
          description: An input error occurred.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/allauth.ErrorResponse'
      operationId: allauth_auth_webauthn_authenticate_post
  /api/auth/v1/auth/webauthn/reauthenticate:
    get:
      tags:
      - 'Authentication: WebAuthn: Login'
      summary: Get WebAuthn credential request options for reauthentication
      parameters: []
      description: |
        Returns the WebAuthn credential request options, that can be
        processed using `parseRequestOptionsFromJSON()` on the frontend.
      responses:
        '200':
          $ref: '#/components/responses/allauth.WebAuthnRequestOptionsResponse'
      operationId: allauth_auth_webauthn_reauthenticate_get
    post:
      tags:
      - 'Authentication: WebAuthn: Login'
      summary: Reauthenticate using WebAuthn
      parameters: []
      description: |
        Reauthenticate the user using a WebAuthn credential.
      requestBody:
        $ref: '#/components/requestBodies/allauth.ReauthenticateWebAuthn'
      responses:
        '200':
          $ref: '#/components/responses/allauth.Authenticated'
        '400':
          description: An input error occurred.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/allauth.ErrorResponse'
      operationId: allauth_auth_webauthn_reauthenticate_post
  /api/auth/v1/auth/webauthn/login:
    get:
      tags:
      - 'Authentication: WebAuthn: Login'
      summary: Get WebAuthn credential request options for login
      parameters: []
      description: |
        Returns the WebAuthn credential request options, that can be
        processed using `parseRequestOptionsFromJSON()` on the frontend.
      responses:
        '200':
          $ref: '#/components/responses/allauth.WebAuthnRequestOptionsResponse'
      operationId: allauth_auth_webauthn_login_get
    post:
      tags:
      - 'Authentication: WebAuthn: Login'
      summary: Login using WebAuthn
      parameters: []
      description: |
        Login using a WebAuthn credential (Passkey). Both 200 and 401 can be
        expected after a successful request.  The 401 can, for example, occur
        when the credential passed was valid, but the email attached to the
        account still requires verification.
      requestBody:
        $ref: '#/components/requestBodies/allauth.LoginWebAuthn'
      responses:
        '200':
          $ref: '#/components/responses/allauth.Authenticated'
        '400':
          description: An input error occurred.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/allauth.ErrorResponse'
        '401':
          description: |
            Not authenticated.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/allauth.AuthenticationResponse'
              examples:
                pending_email:
                  $ref: '#/components/examples/allauth.UnauthenticatedPendingEmailVerification'
      operationId: allauth_auth_webauthn_login_post
  /api/auth/v1/auth/webauthn/signup:
    post:
      tags:
      - 'Authentication: WebAuthn: Signup'
      summary: Initiate the passkey signup flow
      parameters: []
      description: |
        You initiate the passkey signup flow by inputting (`POST`) the required properties (e.g. email)
        similar to the regular account signup, except that the `password` is to be left out.
        The user will then be required to verify the email address, after which WebAuthn credential
        creation options can be retrieved (`GET`) and used to actualy complete (`PUT`) the flow.
      requestBody:
        $ref: '#/components/requestBodies/allauth.PasskeySignup'
      responses:
        '400':
          description: |
            An input error occurred.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/allauth.ErrorResponse'
              examples:
                invalid_email:
                  $ref: '#/components/examples/allauth.InvalidEmail'
        '401':
          description: |
            Not authenticated, email verification pending.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/allauth.AuthenticationResponse'
              examples:
                pending_email:
                  $ref: '#/components/examples/allauth.UnauthenticatedPendingEmailVerification'
        '403':
          description: |
            Forbidden. For example, when signup is closed.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/allauth.ForbiddenResponse'
        '409':
          description: |
            Conflict. For example, when signing up while user is logged in.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/allauth.ConflictResponse'
      operationId: allauth_auth_webauthn_signup_post
    get:
      tags:
      - 'Authentication: WebAuthn: Signup'
      summary: Get passkey credential request options
      parameters: []
      description: |
        Returns the WebAuthn credential request options, that can be
        processed using `parseRequestOptionsFromJSON()` on the frontend.
      responses:
        '200':
          $ref: '#/components/responses/allauth.WebAuthnRequestOptionsResponse'
        '409':
          description: |
            Conflict. For example, when the passkey signup flow is not pending.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/allauth.ConflictResponse'
      operationId: allauth_auth_webauthn_signup_get
    put:
      tags:
      - 'Authentication: WebAuthn: Signup'
      summary: Complete the passkey signup flow
      parameters: []
      description: |
        Complete the passkey signup flow by handing over the WebAuthn credential.
      requestBody:
        $ref: '#/components/requestBodies/allauth.AddWebAuthnAuthenticator'
      responses:
        '200':
          $ref: '#/components/responses/allauth.Authenticated'
        '400':
          description: An input error occurred.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/allauth.ErrorResponse'
        '401':
          description: |
            Not authenticated.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/allauth.AuthenticationResponse'
              examples:
                pending_email:
                  $ref: '#/components/examples/allauth.UnauthenticatedPendingEmailVerification'
        '409':
          description: |
            Conflict. For example, when the passkey signup flow is not pending.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/allauth.ConflictResponse'
      operationId: allauth_auth_webauthn_signup_put
  /api/auth/v1/auth/code/request:
    post:
      tags:
      - 'Authentication: Login By Code'
      summary: Request login code
      description: |
        Request a "special" login code that is sent to the user by email.
      parameters: []
      requestBody:
        $ref: '#/components/requestBodies/allauth.RequestLoginCode'
      responses:
        '400':
          description: An input error occurred.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/allauth.ErrorResponse'
              examples:
                invalid_email:
                  $ref: '#/components/examples/allauth.InvalidEmail'
        '401':
          description: |
            Not authenticated.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/allauth.AuthenticationResponse'
              examples:
                pending_login_by_code:
                  $ref: '#/components/examples/allauth.UnauthenticatedPendingLoginByCode'
      operationId: allauth_auth_code_request_post
  /api/auth/v1/auth/code/confirm:
    post:
      tags:
      - 'Authentication: Login By Code'
      summary: Confirm login code
      description: |
        Use this endpoint to pass along the received "special" login code.
      parameters: []
      requestBody:
        $ref: '#/components/requestBodies/allauth.ConfirmLoginCode'
      responses:
        '200':
          $ref: '#/components/responses/allauth.AuthenticatedByCode'
        '400':
          description: An input error occurred.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/allauth.ErrorResponse'
              examples:
                invalid_code:
                  $ref: '#/components/examples/allauth.InvalidAuthenticatorCode'
        '401':
          description: |
            Not authenticated.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/allauth.AuthenticationResponse'
              examples:
                unauthenticated_pending_2fa:
                  $ref: '#/components/examples/allauth.UnauthenticatedPending2FA'
        '409':
          description: |
            Conflict. The "login by code" flow is not pending.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/allauth.ConflictResponse'
      operationId: allauth_auth_code_confirm_post
  /api/auth/v1/account/providers:
    get:
      tags:
      - 'Account: Providers'
      summary: List the connected third-party provider accounts
      parameters: []
      responses:
        '200':
          $ref: '#/components/responses/allauth.ProviderAccounts'
      operationId: allauth_account_providers_get
    delete:
      tags:
      - 'Account: Providers'
      summary: |
        Disconnect a third-party provider account
      description: |
        Disconnect a third-party provider account, returning the remaining
        accounts that are still connected. The disconnect is not allowed if it
        would leave the account unusable. For example, if no password was
        set up yet.
      parameters: []
      requestBody:
        $ref: '#/components/requestBodies/allauth.ProviderAccount'
      responses:
        '200':
          $ref: '#/components/responses/allauth.ProviderAccounts'
        '400':
          description: An input error occurred.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/allauth.ErrorResponse'
              examples:
                no_password:
                  $ref: '#/components/examples/allauth.DisconnectNotAllowedNoPassword'
                no_email:
                  $ref: '#/components/examples/allauth.DisconnectNotAllowedNoVerifiedEmail'
      operationId: allauth_account_providers_delete
  /api/auth/v1/account/email:
    get:
      tags:
      - 'Account: Email'
      summary: List email addresses
      description: |
        Retrieves the list of email addreses of the account.
      parameters: []
      responses:
        '200':
          $ref: '#/components/responses/allauth.EmailAddresses'
        '401':
          $ref: '#/components/responses/allauth.Authentication'
      operationId: allauth_account_email_get
    post:
      tags:
      - 'Account: Email'
      summary: |
        Add/Change email address
      description: |
        The following functionality is available:

          - Adding a new email address for an already signed in user (`ACCOUNT_CHANGE_EMAIL = False`).
          - Change to a new email address for an already signed in user   (`ACCOUNT_CHANGE_EMAIL = True`).
          - Change to a new email address during the email verification process at signup (`ACCOUNT_EMAIL_VERIFICATION_SUPPORTS_CHANGE = True`).

        In all cases, an email verification mail will be sent containing a link or code that needs to be verified.
      parameters: []
      requestBody:
        $ref: '#/components/requestBodies/allauth.Email'
      responses:
        '200':
          $ref: '#/components/responses/allauth.EmailAddresses'
        '400':
          description: An input error occurred.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/allauth.ErrorResponse'
              examples:
                invalid_code:
                  $ref: '#/components/examples/allauth.InvalidEmail'
        '401':
          $ref: '#/components/responses/allauth.AuthenticationOrReauthentication'
        '409':
          description: |
            Conflict. For example, when no user is authenticated and no email verification flow is pending.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/allauth.ConflictResponse'
      operationId: allauth_account_email_post
    put:
      tags:
      - 'Account: Email'
      summary: Request email verification
      description: |
        Requests for (another) email verification email to be sent. Note that
        sending emails is rate limited, so when you send too many requests the
        email will not be sent.
      parameters: []
      requestBody:
        $ref: '#/components/requestBodies/allauth.Email'
      responses:
        '200':
          $ref: '#/components/responses/allauth.StatusOK'
        '400':
          description: An input error occurred.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/allauth.ErrorResponse'
              examples:
                invalid_code:
                  $ref: '#/components/examples/allauth.InvalidEmail'
        '403':
          description: |
            Too many email verification mails were already sent.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/allauth.ForbiddenResponse'
      operationId: allauth_account_email_put
    patch:
      tags:
      - 'Account: Email'
      summary: Change primary email address
      description: |
        Used to change primary email address to a different one. Note that only verified email addresses
        can be marked as primary.
      parameters: []
      requestBody:
        $ref: '#/components/requestBodies/allauth.MarkPrimaryEmail'
      responses:
        '200':
          $ref: '#/components/responses/allauth.EmailAddresses'
        '400':
          description: An input error occurred.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/allauth.ErrorResponse'
              examples:
                invalid_code:
                  $ref: '#/components/examples/allauth.InvalidEmail'
      operationId: allauth_account_email_patch
    delete:
      tags:
      - 'Account: Email'
      summary: Remove an email address
      description: |
        Used to remove an email address.
      parameters: []
      requestBody:
        $ref: '#/components/requestBodies/allauth.Email'
      responses:
        '200':
          $ref: '#/components/responses/allauth.EmailAddresses'
        '400':
          description: An input error occurred.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/allauth.ErrorResponse'
              examples:
                invalid_code:
                  $ref: '#/components/examples/allauth.InvalidEmail'
      operationId: allauth_account_email_delete
  /api/auth/v1/account/phone:
    get:
      tags:
      - 'Account: Phone'
      summary: Get the phone number
      description: |
        Retrieves the phone number of the account, if any. Note that while the
        endpoint returns a list of phone numbers, at most one entry is returned.
      parameters: []
      responses:
        '200':
          $ref: '#/components/responses/allauth.PhoneNumbers'
        '401':
          $ref: '#/components/responses/allauth.Authentication'
      operationId: allauth_account_phone_get
    post:
      tags:
      - 'Account: Phone'
      summary: |
        Change the phone number
      description: |
        The following functionality is available:

        - Initiate the phone number change process for signed in users.
        - Change to a new phone number during the phone number verification
          process at signup for unauthenticated users. Note that this requires:
          `ACCOUNT_PHONE_VERIFICATION_SUPPORTS_CHANGE = True`.

        In both cases, after posting a new phone number, proceed with the phone
        verification endpoint to confirm the change of the phone number by
        posting the verification code.
      parameters: []
      requestBody:
        $ref: '#/components/requestBodies/allauth.Phone'
      responses:
        '202':
          description: Phone number change process initiated.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/allauth.PhoneNumberChangeResponse'
        '400':
          description: An input error occurred.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/allauth.ErrorResponse'
        '401':
          $ref: '#/components/responses/allauth.AuthenticationOrReauthentication'
        '409':
          description: |
            Conflict. For example, when no user is authenticated and no phone verification flow is pending.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/allauth.ConflictResponse'
      operationId: allauth_account_phone_post
  /api/auth/v1/account/authenticators:
    get:
      tags:
      - 'Account: 2FA'
      summary: List authenticators
      parameters: []
      responses:
        '200':
          $ref: '#/components/responses/allauth.Authenticators'
        '401':
          $ref: '#/components/responses/allauth.Authentication'
        '410':
          $ref: '#/components/responses/allauth.SessionGone'
      operationId: allauth_account_authenticators_get
  /api/auth/v1/account/authenticators/totp:
    get:
      tags:
      - 'Account: 2FA'
      summary: TOTP authenticator status
      description: |
        Retrieve the information about the current TOTP authenticator, if any.
      parameters: []
      responses:
        '404':
          $ref: '#/components/responses/allauth.TOTPAuthenticatorNotFound'
        '200':
          $ref: '#/components/responses/allauth.TOTPAuthenticator'
        '409':
          $ref: '#/components/responses/allauth.AddAuthenticatorConflict'
      operationId: allauth_account_authenticators_totp_get
    post:
      tags:
      - 'Account: 2FA'
      summary: Activate TOTP
      description: |
        The code should be provided from the consuming TOTP authenticator
        application which was generated using the TOTP authenticator secret
        retrieved from the TOTP authenticator status endpoint.
      parameters: []
      requestBody:
        $ref: '#/components/requestBodies/allauth.SetupTOTP'
      responses:
        '200':
          $ref: '#/components/responses/allauth.TOTPAuthenticator'
        '400':
          description: An input error occurred.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/allauth.ErrorResponse'
              examples:
                invalid_code:
                  $ref: '#/components/examples/allauth.InvalidAuthenticatorCode'
        '409':
          $ref: '#/components/responses/allauth.AddAuthenticatorConflict'
      operationId: allauth_account_authenticators_totp_post
    delete:
      tags:
      - 'Account: 2FA'
      summary: Deactivate TOTP
      description: |
        Deactivates TOTP authentication. If the user authentication is not
        sufficiently recent, a reauthentication flow (`401`) will is presented.
      parameters: []
      responses:
        '200':
          $ref: '#/components/responses/allauth.StatusOK'
        '401':
          $ref: '#/components/responses/allauth.ReauthenticationRequired'
      operationId: allauth_account_authenticators_totp_delete
  /api/auth/v1/account/authenticators/recovery-codes:
    get:
      tags:
      - 'Account: 2FA'
      summary: List recovery codes
      description: |
        List recovery codes.
      parameters: []
      responses:
        '200':
          $ref: '#/components/responses/allauth.RecoveryCodes'
        '401':
          $ref: '#/components/responses/allauth.ReauthenticationRequired'
        '404':
          $ref: '#/components/responses/allauth.NotFound'
      operationId: allauth_account_authenticators_recovery-codes_get
    post:
      tags:
      - 'Account: 2FA'
      summary: Regenerate recovery codes
      parameters: []
      responses:
        '400':
          description: An input error occurred.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/allauth.ErrorResponse'
              examples:
                invalid_code:
                  $ref: '#/components/examples/allauth.CannotGenerateRecoveryCodes'
        '401':
          $ref: '#/components/responses/allauth.ReauthenticationRequired'
      operationId: allauth_account_authenticators_recovery-codes_post
  /api/auth/v1/account/authenticators/webauthn:
    get:
      tags:
      - 'Account: WebAuthn'
      summary: |
        Get WebAuthn credential creation options
      parameters: []
      description: |
        Returns the WebAuthn credential creation options, that can be
        processed using `parseCreationOptionsFromJSON()` on the frontend.
      responses:
        '200':
          $ref: '#/components/responses/allauth.WebAuthnCreationOptionsResponse'
        '401':
          $ref: '#/components/responses/allauth.ReauthenticationRequired'
        '409':
          $ref: '#/components/responses/allauth.AddAuthenticatorConflict'
      operationId: allauth_account_authenticators_webauthn_get
    put:
      tags:
      - 'Account: WebAuthn'
      summary: |
        Rename a WebAuthn credential
      description: |
        You can alter the name of a WebAuthn credential by PUT'ting the ID and
        name of the authenticator representing that credential. You can obtain
        the credentials via the "List authenticators" endpoint.
      parameters: []
      requestBody:
        $ref: '#/components/requestBodies/allauth.UpdateWebAuthn'
      responses:
        '200':
          $ref: '#/components/responses/allauth.WebAuthnAuthenticator'
        '401':
          $ref: '#/components/responses/allauth.ReauthenticationRequired'
      operationId: allauth_account_authenticators_webauthn_put
    delete:
      tags:
      - 'Account: WebAuthn'
      summary: |
        Delete a WebAuthn credential
      parameters: []
      requestBody:
        $ref: '#/components/requestBodies/allauth.DeleteWebAuthn'
      responses:
        '200':
          $ref: '#/components/responses/allauth.StatusOK'
        '401':
          $ref: '#/components/responses/allauth.ReauthenticationRequired'
      operationId: allauth_account_authenticators_webauthn_delete
    post:
      tags:
      - 'Account: WebAuthn'
      summary: |
        Add a WebAuthn credential
      parameters: []
      requestBody:
        $ref: '#/components/requestBodies/allauth.AddWebAuthnAuthenticator'
      responses:
        '200':
          $ref: '#/components/responses/allauth.AddWebAuthnAuthenticator'
        '401':
          $ref: '#/components/responses/allauth.ReauthenticationRequired'
        '409':
          $ref: '#/components/responses/allauth.AddAuthenticatorConflict'
      operationId: allauth_account_authenticators_webauthn_post
  /api/auth/v1/auth/session:
    get:
      tags:
      - 'Authentication: Current Session'
      summary: |
        Get authentication status
      description: |
        Retrieve information about the authentication status for the current
        session.
      parameters: []
      responses:
        '200':
          $ref: '#/components/responses/allauth.Authenticated'
        '401':
          $ref: '#/components/responses/allauth.Authentication'
        '410':
          $ref: '#/components/responses/allauth.SessionGone'
      operationId: allauth_auth_session_get
    delete:
      tags:
      - 'Authentication: Current Session'
      summary: Logout
      description: |
        Logs out the user from the current session.
      parameters: []
      responses:
        '401':
          $ref: '#/components/responses/allauth.Unauthenticated'
      operationId: allauth_auth_session_delete
  /api/auth/v1/account/password/change:
    post:
      tags:
      - 'Account: Password'
      summary: Change password
      description: |
        In order to change the password of an account, the current and new
        password must be provider.  However, accounts that were created by
        signing up using a third-party provider do not have a password set. In
        that case, the current password is not required.
      parameters: []
      requestBody:
        $ref: '#/components/requestBodies/allauth.ChangePassword'
      responses:
        '400':
          $ref: '#/components/responses/allauth.Error'
        '401':
          $ref: '#/components/responses/allauth.Authentication'
      operationId: allauth_account_password_change_post
  /api/auth/v1/auth/sessions:
    get:
      tags:
      - Sessions
      summary: List sessions
      parameters: []
      responses:
        '200':
          $ref: '#/components/responses/allauth.Sessions'
      operationId: allauth_auth_sessions_get
    delete:
      tags:
      - Sessions
      summary: End one or more sessions
      parameters: []
      requestBody:
        $ref: '#/components/requestBodies/allauth.EndSessions'
      responses:
        '200':
          $ref: '#/components/responses/allauth.Sessions'
        '401':
          $ref: '#/components/responses/allauth.Authentication'
      operationId: allauth_auth_sessions_delete
components:
  examples:
    allauth.AuthenticatedByCode:
      summary: |
        Authenticated by code.
      value:
        status: 200
        data:
          user:
            id: 123
            display: Magic Wizard
            has_usable_password: true
            email: email@domain.org
            username: wizard
          methods:
          - method: code
            at: 1711555057.065702
            email: email@domain.org
        meta:
          is_authenticated: true
          session_token: ufwcig0zen9skyd545jc0fkq813ghar2
          access_token: eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJzdW
    allauth.AuthenticatedByPassword:
      summary: |
        Authenticated by password.
      value:
        status: 200
        data:
          user:
            id: 123
            display: Magic Wizard
            has_usable_password: true
            email: email@domain.org
            username: wizard
          methods:
          - method: password
            at: 1711555057.065702
            email: email@domain.org
        meta:
          is_authenticated: true
          session_token: ufwcig0zen9skyd545jc0fkq813ghar2
          access_token: eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJzdW
    allauth.AuthenticatedByPasswordAnd2FA:
      summary: |
        Fully authenticated using by password and 2FA.
      value:
        status: 200
        data:
          user:
            id: 123
            display: Magic Wizard
            has_usable_password: true
            email: email@domain.org
            username: wizard
          methods:
          - method: password
            at: 1711555057.065702
            email: email@domain.org
          - method: mfa
            at: 1711555060.9375854
            id: 66
            type: totp
        meta:
          is_authenticated: true
          session_token: ufwcig0zen9skyd545jc0fkq813ghar2
          access_token: eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJzdW
    allauth.CannotGenerateRecoveryCodes:
      summary: |
        Unable to generate recovery codes.
      value:
        status: 400
        errors:
        - message: |
            You cannot deactivate two-factor authentication.
            code: cannot_generate_recovery_codes
    allauth.DisconnectNotAllowedNoPassword:
      summary: Account without a password.
      value:
        status: 400
        errors:
        - message: Your account has no password set up.
          code: no_password
          param: account
    allauth.DisconnectNotAllowedNoVerifiedEmail:
      summary: Account without a verified email.
      value:
        status: 400
        errors:
        - message: Your account has no verified email address.
          code: no_verified_email
          param: account
    allauth.IncorrectPassword:
      value:
        status: 400
        errors:
        - message: Incorrect password.
          param: password
          code: incorrect_password
    allauth.InvalidAuthenticatorCode:
      summary: |
        An error response indicating that the provided code is incorrect.
      value:
        status: 400
        errors:
        - message: Incorrect code.
          code: incorrect_code
          param: code
    allauth.InvalidEmail:
      value:
        status: 400
        errors:
        - message: Enter a valid email address.
          code: invalid
          param: email
    allauth.InvalidEmailVerificationKey:
      summary: |
        Email verification key invalid.
      value:
        status: 400
        errors:
        - message: Invalid or expired key.
          code: invalid
          param: key
    allauth.InvalidPasswordResetKey:
      summary: |
        Password reset key invalid.
      value:
        status: 400
        errors:
        - message: The password reset token was invalid.
          code: token_invalid
          param: key
    allauth.InvalidProviderToken:
      summary: |
        Provider token invalid.
      value:
        status: 400
        errors:
        - message: The token was invalid.
          code: invalid
          param: token
    allauth.PasswordMismatch:
      value:
        status: 400
        errors:
        - message: The email address and/or password you specified are not correct.
          code: email_password_mismatch
          param: password
    allauth.ReauthenticationRequired:
      summary: |
        Reauthentication required
      value:
        status: 401
        data:
          user:
            id: 123
            display: Magic Wizard
            has_usable_password: true
            email: email@domain.org
            username: wizard
          methods:
          - method: password
            at: 1711555057.065702
            email: email@domain.org
          - method: mfa
            at: 1711555060.9375854
            id: 66
            type: totp
          flows:
          - id: reauthenticate
          - id: mfa_reauthenticate
        meta:
          is_authenticated: true
    allauth.UnauthenticatedInitial:
      summary: |
        Unauthenticated: Initial
      value:
        status: 401
        data:
          flows:
          - id: login
          - id: signup
          - id: provider_redirect
            providers:
            - facebook
            - google
            - telegram
          - id: provider_token
            providers:
            - google
        meta:
          is_authenticated: false
    allauth.UnauthenticatedPending2FA:
      summary: |
        Unauthenticated: pending 2FA
      value:
        status: 401
        data:
          flows:
          - id: login
          - id: signup
          - id: provider_redirect
            providers:
            - facebook
            - google
            - telegram
          - id: provider_token
            providers:
            - google
          - id: mfa_authenticate
            is_pending: true
        meta:
          is_authenticated: false
    allauth.UnauthenticatedPendingEmailVerification:
      summary: |
        Unauthenticated: pending email verification
      value:
        status: 401
        data:
          flows:
          - id: login
          - id: signup
          - id: provider_redirect
            providers:
            - facebook
            - google
            - telegram
          - id: provider_token
            providers:
            - google
          - id: verify_email
            is_pending: true
        meta:
          is_authenticated: false
    allauth.UnauthenticatedPendingLoginByCode:
      summary: |
        Unauthenticated: pending login by code
      value:
        status: 401
        data:
          flows:
          - id: login
          - id: signup
          - id: provider_redirect
            providers:
            - facebook
            - google
            - telegram
          - id: provider_token
            providers:
            - google
          - id: mfa_authenticate
          - id: login_by_code
            is_pending: true
        meta:
          is_authenticated: false
    allauth.UnauthenticatedPendingProviderSignup:
      summary: |
        Unauthenticated: pending provider signup
      value:
        status: 401
        data:
          flows:
          - id: login
          - id: signup
          - id: provider_redirect
            providers:
            - facebook
            - google
            - telegram
          - id: provider_token
            providers:
            - google
          - id: provider_signup
            provider:
              id: google
              name: Google
              client_id: 123.apps.googleusercontent.com
              flows:
              - provider_redirect
              - provider_token
            is_pending: true
        meta:
          is_authenticated: false
    allauth.User:
      value:
        id: 123
        display: Magic Wizard
        has_usable_password: true
        email: email@domain.org
        username: wizard
  parameters:
    allauth.EmailVerificationKey:
      in: header
      name: X-Email-Verification-Key
      schema:
        type: string
      required: true
      description: The email verification key
    allauth.PasswordResetKey:
      in: header
      name: X-Password-Reset-Key
      schema:
        type: string
      required: true
      description: The password reset key
  requestBodies:
    allauth.AddWebAuthnAuthenticator:
      content:
        application/json:
          schema:
            type: object
            properties:
              name:
                type: string
                example: Master key
              credential:
                $ref: '#/components/schemas/allauth.WebAuthnCredential'
            required:
            - credential
    allauth.AuthenticateWebAuthn:
      description: Authenticate using WebAuthn.
      required: true
      content:
        application/json:
          schema:
            type: object
            properties:
              credential:
                $ref: '#/components/schemas/allauth.WebAuthnCredential'
            required:
            - credential
    allauth.ChangePassword:
      content:
        application/json:
          schema:
            type: object
            properties:
              current_password:
                $ref: '#/components/schemas/allauth.Password'
              new_password:
                type: string
                description: |
                  The current password.
                example: Aberto!
            required:
            - new_password
    allauth.ConfirmLoginCode:
      required: true
      content:
        application/json:
          schema:
            $ref: '#/components/schemas/allauth.ConfirmLoginCode'
    allauth.DeleteWebAuthn:
      content:
        application/json:
          schema:
            type: object
            properties:
              authenticators:
                description: |
                  The IDs of the authenticator that are to be deleted.
                type: array
                items:
                  $ref: '#/components/schemas/allauth.AuthenticatorID'
            required:
            - authenticators
    allauth.Email:
      content:
        application/json:
          schema:
            type: object
            properties:
              email:
                type: string
                description: |
                  An email address.
                example: email@domain.org
            required:
            - email
    allauth.EndSessions:
      required: true
      content:
        application/json:
          schema:
            $ref: '#/components/schemas/allauth.EndSessions'
    allauth.Login:
      description: Login.
      required: true
      content:
        application/json:
          schema:
            $ref: '#/components/schemas/allauth.Login'
    allauth.LoginWebAuthn:
      description: Login using WebAuthn.
      required: true
      content:
        application/json:
          schema:
            type: object
            properties:
              credential:
                $ref: '#/components/schemas/allauth.WebAuthnCredential'
            required:
            - credential
    allauth.MFAAuthenticate:
      required: true
      content:
        application/json:
          schema:
            $ref: '#/components/schemas/allauth.MFAAuthenticate'
    allauth.MFATrust:
      required: true
      content:
        application/json:
          schema:
            $ref: '#/components/schemas/allauth.MFATrust'
    allauth.MarkPrimaryEmail:
      content:
        application/json:
          schema:
            type: object
            properties:
              email:
                type: string
                description: |
                  An email address.
                example: email@domain.org
              primary:
                type: boolean
                enum:
                - true
                description: |
                  Primary flag.
            required:
            - email
            - primary
    allauth.PasskeySignup:
      description: Signup using a passkey
      required: true
      content:
        application/json:
          schema:
            $ref: '#/components/schemas/allauth.PasskeySignup'
    allauth.Phone:
      content:
        application/json:
          schema:
            type: object
            properties:
              phone:
                type: string
                example: '+314159265359'
            required:
            - phone
    allauth.ProviderAccount:
      content:
        application/json:
          schema:
            type: object
            properties:
              provider:
                $ref: '#/components/schemas/allauth.ProviderID'
              account:
                $ref: '#/components/schemas/allauth.ProviderAccountID'
            required:
            - account
            - provider
    allauth.ProviderRedirect:
      required: true
      description: |
        Initiate the provider redirect flow.
      content:
        application/x-www-form-urlencoded:
          schema:
            $ref: '#/components/schemas/allauth.ProviderRedirect'
    allauth.ProviderSignup:
      description: Provider signup.
      required: true
      content:
        application/json:
          schema:
            $ref: '#/components/schemas/allauth.ProviderSignup'
    allauth.ProviderToken:
      required: true
      content:
        application/json:
          schema:
            $ref: '#/components/schemas/allauth.ProviderToken'
    allauth.Reauthenticate:
      description: Reauthenticate.
      required: true
      content:
        application/json:
          schema:
            $ref: '#/components/schemas/allauth.Reauthenticate'
    allauth.ReauthenticateWebAuthn:
      description: Reauthenticate using WebAuthn.
      required: true
      content:
        application/json:
          schema:
            type: object
            properties:
              credential:
                $ref: '#/components/schemas/allauth.WebAuthnCredential'
            required:
            - credential
    allauth.RequestLoginCode:
      description: Request a login code.
      required: true
      content:
        application/json:
          schema:
            $ref: '#/components/schemas/allauth.RequestLoginCode'
    allauth.RequestPassword:
      description: Request password.
      required: true
      content:
        application/json:
          schema:
            $ref: '#/components/schemas/allauth.RequestPassword'
    allauth.ResetPassword:
      content:
        application/json:
          schema:
            $ref: '#/components/schemas/allauth.ResetPassword'
    allauth.SetupTOTP:
      content:
        application/json:
          schema:
            type: object
            properties:
              code:
                $ref: '#/components/schemas/allauth.AuthenticatorCode'
            required:
            - code
    allauth.Signup:
      description: Signup
      required: true
      content:
        application/json:
          schema:
            $ref: '#/components/schemas/allauth.Signup'
    allauth.UpdateWebAuthn:
      content:
        application/json:
          schema:
            type: object
            properties:
              id:
                $ref: '#/components/schemas/allauth.AuthenticatorID'
              name:
                type: string
                example: Master key
    allauth.VerifyEmail:
      content:
        application/json:
          schema:
            $ref: '#/components/schemas/allauth.VerifyEmail'
    allauth.VerifyPhone:
      content:
        application/json:
          schema:
            $ref: '#/components/schemas/allauth.VerifyPhone'
  responses:
    allauth.AddAuthenticatorConflict:
      description: |
        The account prohibits adding an authenticator, e.g. because of an unverified email address.
      content:
        application/json:
          schema:
            $ref: '#/components/schemas/allauth.ConflictResponse'
    allauth.AddWebAuthnAuthenticator:
      description: A WebAuthn authenticator.
      content:
        application/json:
          schema:
            type: object
            properties:
              status:
                $ref: '#/components/schemas/allauth.StatusOK'
              data:
                $ref: '#/components/schemas/allauth.WebAuthnAuthenticator'
              meta:
                type: object
                properties:
                  recovery_codes_generated:
                    type: boolean
                    description: |
                      Whether or not recovery codes where generated automatically.
            required:
            - status
            - data
            - meta
    allauth.Authenticated:
      description: The user is authenticated.
      content:
        application/json:
          schema:
            $ref: '#/components/schemas/allauth.AuthenticatedResponse'
    allauth.AuthenticatedByCode:
      description: |
        Authenticated by code.
      content:
        application/json:
          schema:
            $ref: '#/components/schemas/allauth.AuthenticatedResponse'
          examples:
            authenticated:
              $ref: '#/components/examples/allauth.AuthenticatedByCode'
    allauth.AuthenticatedByPassword:
      description: |
        Authenticated by password.
      content:
        application/json:
          schema:
            $ref: '#/components/schemas/allauth.AuthenticatedResponse'
          examples:
            authenticated:
              $ref: '#/components/examples/allauth.AuthenticatedByPassword'
    allauth.AuthenticatedByPasswordAnd2FA:
      description: |
        Authenticated by password and 2FA.
      content:
        application/json:
          schema:
            $ref: '#/components/schemas/allauth.AuthenticatedResponse'
          examples:
            authenticated:
              $ref: '#/components/examples/allauth.AuthenticatedByPasswordAnd2FA'
    allauth.Authentication:
      description: Not authenticated.
      content:
        application/json:
          schema:
            $ref: '#/components/schemas/allauth.AuthenticationResponse'
          examples:
            unauthenticated_initial:
              $ref: '#/components/examples/allauth.UnauthenticatedInitial'
            unauthenticated_pending_2fa:
              $ref: '#/components/examples/allauth.UnauthenticatedPending2FA'
            unauthenticated_pending_provider_signup:
              $ref: '#/components/examples/allauth.UnauthenticatedPendingProviderSignup'
            unauthenticated_pending_email_verification:
              $ref: '#/components/examples/allauth.UnauthenticatedPendingEmailVerification'
            reauthentication_required:
              $ref: '#/components/examples/allauth.ReauthenticationRequired'
    allauth.AuthenticationOrReauthentication:
      description: |
        The response indicates authentication or re-authentication is required.
      content:
        application/json:
          schema:
            oneOf:
            - $ref: '#/components/schemas/allauth.AuthenticationResponse'
            - $ref: '#/components/schemas/allauth.ReauthenticationResponse'
    allauth.Authenticators:
      description: |
        List of authenticators.
      content:
        application/json:
          schema:
            type: object
            properties:
              status:
                $ref: '#/components/schemas/allauth.StatusOK'
              data:
                $ref: '#/components/schemas/allauth.AuthenticatorList'
            required:
            - status
            - data
    allauth.Configuration:
      description: |
        The django-allauth configuration.
      content:
        application/json:
          schema:
            $ref: '#/components/schemas/allauth.ConfigurationResponse'
    allauth.EmailAddresses:
      description: |
        List of email addresses.
      content:
        application/json:
          schema:
            type: object
            properties:
              status:
                $ref: '#/components/schemas/allauth.StatusOK'
              data:
                type: array
                items:
                  $ref: '#/components/schemas/allauth.EmailAddress'
            required:
            - status
            - data
    allauth.EmailVerificationInfo:
      description: Email verification information.
      content:
        application/json:
          schema:
            $ref: '#/components/schemas/allauth.EmailVerificationInfo'
    allauth.Error:
      description: An input error occurred.
      content:
        application/json:
          schema:
            $ref: '#/components/schemas/allauth.ErrorResponse'
    allauth.Forbidden:
      description: |
        A forbidden response.
      content:
        application/json:
          schema:
            $ref: '#/components/schemas/allauth.ForbiddenResponse'
    allauth.NotFound:
      description: |
        Not found.
      content:
        application/json:
          schema:
            type: object
            properties:
              status:
                type: integer
                enum:
                - 404
            required:
            - status
    allauth.PasswordResetInfo:
      description: Information about the password reset key.
      content:
        application/json:
          schema:
            type: object
            properties:
              status:
                $ref: '#/components/schemas/allauth.StatusOK'
              data:
                type: object
                properties:
                  user:
                    $ref: '#/components/schemas/allauth.User'
            required:
            - status
            - data
    allauth.PhoneNumbers:
      description: |
        List of phone numbers.
      content:
        application/json:
          schema:
            $ref: '#/components/schemas/allauth.PhoneNumbersResponse'
    allauth.ProviderAccounts:
      description: |
        List of third-party provider accounts.
      content:
        application/json:
          schema:
            type: object
            properties:
              status:
                $ref: '#/components/schemas/allauth.StatusOK'
              data:
                type: array
                items:
                  $ref: '#/components/schemas/allauth.ProviderAccount'
            required:
            - status
            - data
    allauth.ProviderSignup:
      description: |
        Information relating to the pending provider signup.
      content:
        application/json:
          schema:
            type: object
            properties:
              status:
                $ref: '#/components/schemas/allauth.StatusOK'
              data:
                type: object
                properties:
                  email:
                    type: array
                    items:
                      $ref: '#/components/schemas/allauth.EmailAddress'
                  account:
                    $ref: '#/components/schemas/allauth.ProviderAccount'
                  user:
                    $ref: '#/components/schemas/allauth.User'
                required:
                - email
                - account
                - user
            required:
            - status
            - data
    allauth.ReauthenticationRequired:
      description: |
        The response indicates reauthentication is required.
      content:
        application/json:
          examples:
            reauthentication_required:
              summary: |
                Reauthentication required
              value:
                status: 401
                data:
                  user:
                    id: 123
                    display: Magic Wizard
                    has_usable_password: true
                    email: email@domain.org
                    username: wizard
                  methods:
                  - method: password
                    at: 1711555057.065702
                    email: email@domain.org
                  - method: mfa
                    at: 1711555060.9375854
                    id: 66
                    type: totp
                  flows:
                  - id: reauthenticate
                  - id: mfa_reauthenticate
                meta:
                  is_authenticated: true
    allauth.RecoveryCodes:
      description: |
        Information on the recovery codes.
      content:
        application/json:
          schema:
            type: object
            properties:
              status:
                $ref: '#/components/schemas/allauth.StatusOK'
              data:
                $ref: '#/components/schemas/allauth.SensitiveRecoveryCodesAuthenticator'
            required:
            - status
            - data
    allauth.SessionGone:
      description: |
        The response indicates session is invalid or no longer exists.
      content:
        application/json:
          schema:
            $ref: '#/components/schemas/allauth.SessionGoneResponse'
          examples:
            unauth:
              $ref: '#/components/examples/allauth.UnauthenticatedInitial'
    allauth.Sessions:
      description: |
        List of sessions.
      content:
        application/json:
          schema:
            type: object
            properties:
              status:
                $ref: '#/components/schemas/allauth.StatusOK'
              data:
                type: array
                items:
                  $ref: '#/components/schemas/allauth.Session'
            required:
            - status
            - data
    allauth.StatusOK:
      description: |
        A success response.
      content:
        application/json:
          schema:
            type: object
            properties:
              status:
                $ref: '#/components/schemas/allauth.StatusOK'
            required:
            - status
    allauth.TOTPAuthenticator:
      description: |
        Information on the TOTP authenticator.
      content:
        application/json:
          schema:
            type: object
            properties:
              status:
                $ref: '#/components/schemas/allauth.StatusOK'
              data:
                $ref: '#/components/schemas/allauth.TOTPAuthenticator'
            required:
            - status
            - data
    allauth.TOTPAuthenticatorNotFound:
      description: |
        No TOTP authenticator has been set up.
      content:
        application/json:
          schema:
            type: object
            properties:
              status:
                type: integer
                enum:
                - 404
              meta:
                type: object
                properties:
                  secret:
                    type: string
                    description: |
                      A TOTP secret that can be used to setup a new authenticator.
                    example: J4ZKKXTK7NOVU7EPUVY23LCDV4T2QZYM
                  totp_url:
                    type: string
                    description: |
                      otpauth URI from which a QR code can be generated and scanned by OTP clients.
                    example: otpauth://totp/Example:alice@fsf.org?secret=JBSWY3DPEHPK3PXP&issuer=Example
                required:
                - secret
                - totp_url
            required:
            - status
            - meta
    allauth.TooManyRequests:
      description: |
        Too many requests.
      content:
        application/json:
          schema:
            type: object
            properties:
              status:
                type: integer
                enum:
                - 429
            required:
            - status
    allauth.Unauthenticated:
      description: |
        There is no authenticated session.
      content:
        application/json:
          schema:
            $ref: '#/components/schemas/allauth.AuthenticationResponse'
          examples:
            unauth:
              $ref: '#/components/examples/allauth.UnauthenticatedInitial'
    allauth.WebAuthnAuthenticator:
      description: A WebAuthn authenticator.
      content:
        application/json:
          schema:
            type: object
            properties:
              status:
                $ref: '#/components/schemas/allauth.StatusOK'
              data:
                $ref: '#/components/schemas/allauth.WebAuthnAuthenticator'
            required:
            - status
            - data
    allauth.WebAuthnCreationOptionsResponse:
      description: WebAuthn credential creation options.
      content:
        application/json:
          schema:
            type: object
            properties:
              status:
                $ref: '#/components/schemas/allauth.StatusOK'
              data:
                $ref: '#/components/schemas/allauth.WebAuthnCredentialCreationOptions'
            required:
            - status
            - data
    allauth.WebAuthnRequestOptionsResponse:
      description: WebAuthn credential request options.
      content:
        application/json:
          schema:
            type: object
            properties:
              status:
                $ref: '#/components/schemas/allauth.StatusOK'
              data:
                $ref: '#/components/schemas/allauth.WebAuthnCredentialRequestOptions'
            required:
            - status
            - data
  schemas:
    APISearchView:
      type: object
      description: Serializer for the APISearchView.
      properties:
        search:
          type: string
        search_regex:
          type: boolean
          default: false
        search_whole:
          type: boolean
          default: false
        search_notes:
          type: boolean
          default: false
        limit:
          type: integer
          default: 1
        offset:
          type: integer
          default: 0
      required:
      - search
    AcceptOverallocatedEnum:
      enum:
      - reject
      - accept
      - trim
      type: string
      description: |-
        * `reject` - Not permitted
        * `accept` - Accept as consumed by this build order
        * `trim` - Deallocate before completing this build order
    ActionPlugin:
      type: object
      description: Serializer for the ActionPluginView responses.
      properties:
        action:
          type: string
        data:
          type: object
          additionalProperties: {}
      required:
      - action
      - data
    ActionPluginError:
      type: object
      description: Serializer for the ActionPluginView error responses.
      properties:
        error:
          type: string
        action:
          type: string
      required:
      - error
    Address:
      type: object
      description: Serializer for the Address Model.
      properties:
        pk:
          type: integer
          readOnly: true
          title: ID
        company:
          type: integer
          description: Select company
        title:
          type: string
          title: Address title
          description: Title describing the address entry
          maxLength: 100
        primary:
          type: boolean
          title: Primary address
          description: Set as primary address
        line1:
          type: string
          title: Line 1
          description: Address line 1
          maxLength: 50
        line2:
          type: string
          title: Line 2
          description: Address line 2
          maxLength: 50
        postal_code:
          type: string
          description: Postal code
          maxLength: 10
        postal_city:
          type: string
          title: City/Region
          description: Postal code city/region
          maxLength: 50
        province:
          type: string
          title: State/Province
          description: State or province
          maxLength: 50
        country:
          type: string
          description: Address country
          maxLength: 50
        shipping_notes:
          type: string
          title: Courier shipping notes
          description: Notes for shipping courier
          maxLength: 100
        internal_shipping_notes:
          type: string
          description: Shipping notes for internal use
          maxLength: 100
        link:
          type: string
          format: uri
          description: Link to address information (external)
          maxLength: 2000
      required:
      - company
      - pk
      - title
    AddressBrief:
      type: object
      description: Serializer for Address Model (limited).
      properties:
        pk:
          type: integer
          readOnly: true
          title: ID
        line1:
          type: string
          title: Line 1
          description: Address line 1
          maxLength: 50
        line2:
          type: string
          title: Line 2
          description: Address line 2
          maxLength: 50
        postal_code:
          type: string
          description: Postal code
          maxLength: 10
        postal_city:
          type: string
          title: City/Region
          description: Postal code city/region
          maxLength: 50
        province:
          type: string
          title: State/Province
          description: State or province
          maxLength: 50
        country:
          type: string
          description: Address country
          maxLength: 50
        shipping_notes:
          type: string
          title: Courier shipping notes
          description: Notes for shipping courier
          maxLength: 100
        internal_shipping_notes:
          type: string
          description: Shipping notes for internal use
          maxLength: 100
      required:
      - pk
    AllUnitListResponse:
      type: object
      description: Serializer for the AllUnitList.
      properties:
        default_system:
          type: string
        available_systems:
          type: array
          items:
            type: string
        available_units:
          type: object
          additionalProperties:
            $ref: '#/components/schemas/Unit'
      required:
      - available_systems
      - available_units
      - default_system
    Allauth.AuthenticationMethodMethodEnum:
      type: string
      enum:
      - password
    Allauth.ConflictResponseStatusEnum:
      type: integer
      enum:
      - 409
    Allauth.ErrorResponseStatusEnum:
      type: integer
      enum:
      - 400
    Allauth.ForbiddenResponseStatusEnum:
      type: integer
      enum:
      - 403
    Allauth.RecoveryCodesAuthenticatorTypeEnum:
      type: string
      enum:
      - recovery_codes
    Allauth.SessionGoneResponseStatusEnum:
      type: integer
      enum:
      - 410
    Allauth.TOTPAuthenticatorTypeEnum:
      type: string
      enum:
      - totp
    Allauth.WebAuthnAuthenticatorTypeEnum:
      type: string
      enum:
      - webauthn
    ApiToken:
      type: object
      description: Serializer for the ApiToken model.
      properties:
        created:
          type: string
          format: date-time
          readOnly: true
        expiry:
          type: string
          format: date
          title: Expiry Date
          description: Token expiry date
        id:
          type: integer
          readOnly: true
        last_seen:
          type: string
          format: date
          nullable: true
          description: Last time the token was used
        name:
          type: string
          title: Token Name
          description: Custom token name
          maxLength: 100
        token:
          type: string
          description: |-
            Provide a redacted version of the token.

            The *raw* key value should never be displayed anywhere!
          readOnly: true
        active:
          type: boolean
          description: Test if this token is active.
          readOnly: true
        revoked:
          type: boolean
          description: Token has been revoked
        user:
          type: integer
        user_detail:
          allOf:
          - $ref: '#/components/schemas/User'
          readOnly: true
        in_use:
          type: boolean
          description: Return True if the token is currently used to call the endpoint.
          readOnly: true
      required:
      - active
      - created
      - id
      - in_use
      - token
      - user_detail
    Attachment:
      type: object
      description: Serializer class for the Attachment model.
      properties:
        pk:
          type: integer
          readOnly: true
          title: ID
        attachment:
          type: string
          format: uri
          nullable: true
        filename:
          type: string
        link:
          type: string
          format: uri
          nullable: true
          description: Link to external URL
          maxLength: 2000
        comment:
          type: string
          description: Attachment comment
          maxLength: 250
        upload_date:
          type: string
          format: date
          readOnly: true
        upload_user:
          type: integer
          readOnly: true
          nullable: true
          title: User
          description: User
        user_detail:
          allOf:
          - $ref: '#/components/schemas/User'
          readOnly: true
        file_size:
          type: integer
          readOnly: true
          description: File size in bytes
        model_type:
          $ref: '#/components/schemas/AttachmentModelTypeEnum'
        model_id:
          type: integer
        tags:
          type: array
          items:
            type: string
      required:
      - file_size
      - model_id
      - model_type
      - pk
      - upload_date
      - user_detail
    AttachmentModelTypeEnum:
      enum:
      - build
      - company
      - manufacturerpart
      - purchaseorder
      - salesorder
      - salesordershipment
      - returnorder
      - part
      - stockitem
      type: string
      description: |-
        * `build` - Build Order
        * `company` - Company
        * `manufacturerpart` - Manufacturer Part
        * `purchaseorder` - Purchase Order
        * `salesorder` - Sales Order
        * `salesordershipment` - Sales Order Shipment
        * `returnorder` - Return Order
        * `part` - Part
        * `stockitem` - Stock Item
    Barcode:
      type: object
      description: Generic serializer for receiving barcode data.
      properties:
        barcode:
          type: string
          description: Scanned barcode data
          maxLength: 4095
      required:
      - barcode
    BarcodeAssign:
      type: object
      description: Serializer class for linking a barcode to an internal model.
      properties:
        barcode:
          type: string
          description: Scanned barcode data
          maxLength: 4095
        build:
          type: integer
          nullable: true
          title: Build Order
        supplierpart:
          type: integer
          nullable: true
          title: Supplier Part
        manufacturerpart:
          type: integer
          nullable: true
          title: Manufacturer Part
        purchaseorder:
          type: integer
          nullable: true
          title: Purchase Order
        salesorder:
          type: integer
          nullable: true
          title: Sales Order
        salesordershipment:
          type: integer
          nullable: true
          title: Sales Order Shipment
        returnorder:
          type: integer
          nullable: true
          title: Return Order
        part:
          type: integer
          nullable: true
        stockitem:
          type: integer
          nullable: true
          title: Stock Item
        stocklocation:
          type: integer
          nullable: true
          title: Stock Location
      required:
      - barcode
    BarcodeGenerate:
      type: object
      description: Serializer for generating a barcode.
      properties:
        model:
          type: string
          description: Model name to generate barcode for
        pk:
          type: integer
          description: Primary key of model object to generate barcode for
      required:
      - model
      - pk
    BarcodePOAllocate:
      type: object
      description: |-
        Serializer for allocating items against a purchase order.

        The scanned barcode could be a Part, ManufacturerPart or SupplierPart object
      properties:
        barcode:
          type: string
          description: Scanned barcode data
          maxLength: 4095
        purchase_order:
          type: integer
          description: Purchase Order to allocate items against
      required:
      - barcode
      - purchase_order
    BarcodePOReceive:
      type: object
      description: |-
        Serializer for receiving items against a purchase order.

        The following additional fields may be specified:

        - purchase_order: PurchaseOrder object to receive items against
        - location: Location to receive items into
      properties:
        barcode:
          type: string
          description: Scanned barcode data
          maxLength: 4095
        supplier:
          type: integer
          nullable: true
          description: Supplier to receive items from
        purchase_order:
          type: integer
          nullable: true
          description: PurchaseOrder to receive items against
        location:
          type: integer
          nullable: true
          description: Location to receive items into
        line_item:
          type: integer
          nullable: true
          description: Purchase order line item to receive items against
        auto_allocate:
          type: boolean
          default: true
          description: Automatically allocate stock items to the purchase order
      required:
      - barcode
    BarcodeSOAllocate:
      type: object
      description: |-
        Serializr for allocating stock items to a sales order.

        The scanned barcode must map to a StockItem object
      properties:
        barcode:
          type: string
          description: Scanned barcode data
          maxLength: 4095
        sales_order:
          type: integer
          description: Sales Order to allocate items against
        line:
          type: integer
          nullable: true
          description: Sales order line item to allocate items against
        shipment:
          type: integer
          nullable: true
          description: Sales order shipment to allocate items against
        quantity:
          type: integer
          description: Quantity to allocate
      required:
      - barcode
      - sales_order
    BarcodeScanResult:
      type: object
      description: Serializer for barcode scan results.
      properties:
        pk:
          type: integer
          readOnly: true
          title: ID
        data:
          type: string
          readOnly: true
          description: Barcode data
        timestamp:
          type: string
          format: date-time
          readOnly: true
          description: Date and time of the barcode scan
        endpoint:
          type: string
          readOnly: true
          nullable: true
          title: Path
          description: URL endpoint which processed the barcode
        context:
          readOnly: true
          nullable: true
          description: Context data for the barcode scan
        response:
          readOnly: true
          nullable: true
          description: Response data from the barcode scan
        result:
          type: boolean
          readOnly: true
          description: Was the barcode scan successful?
        user:
          type: integer
          readOnly: true
          nullable: true
          description: User who scanned the barcode
        user_detail:
          allOf:
          - $ref: '#/components/schemas/User'
          readOnly: true
      required:
      - data
      - pk
      - result
      - timestamp
      - user_detail
    BarcodeUnassign:
      type: object
      description: Serializer class for unlinking a barcode from an internal model.
      properties:
        build:
          type: integer
          nullable: true
          title: Build Order
        supplierpart:
          type: integer
          nullable: true
          title: Supplier Part
        manufacturerpart:
          type: integer
          nullable: true
          title: Manufacturer Part
        purchaseorder:
          type: integer
          nullable: true
          title: Purchase Order
        salesorder:
          type: integer
          nullable: true
          title: Sales Order
        salesordershipment:
          type: integer
          nullable: true
          title: Sales Order Shipment
        returnorder:
          type: integer
          nullable: true
          title: Return Order
        part:
          type: integer
          nullable: true
        stockitem:
          type: integer
          nullable: true
          title: Stock Item
        stocklocation:
          type: integer
          nullable: true
          title: Stock Location
    BlankEnum:
      enum:
      - ''
    BomItem:
      type: object
      description: Serializer for BomItem object.
      properties:
        part:
          type: integer
          title: Assembly
          description: Select the parent assembly
        sub_part:
          type: integer
          title: Component
          description: Select the component part
        reference:
          type: string
          description: BOM item reference
          maxLength: 5000
        quantity:
          type: number
          format: double
        allow_variants:
          type: boolean
          description: Stock items for variant parts can be used for this BOM item
        inherited:
          type: boolean
          title: Gets inherited
          description: This BOM item is inherited by BOMs for variant parts
        optional:
          type: boolean
          description: This BOM item is optional
        consumable:
          type: boolean
          description: This BOM item is consumable (it is not tracked in build orders)
        setup_quantity:
          type: number
          format: double
        attrition:
          type: number
          format: double
        rounding_multiple:
          type: number
          format: double
          nullable: true
        note:
          type: string
          description: BOM item notes
          maxLength: 500
        pk:
          type: integer
          readOnly: true
          title: ID
        part_detail:
          allOf:
          - $ref: '#/components/schemas/PartBrief'
          readOnly: true
          nullable: true
          title: Assembly
        pricing_min:
          type: string
          format: decimal
          pattern: ^-?\d{0,13}(?:\.\d{0,6})?$
          readOnly: true
          nullable: true
        pricing_max:
          type: string
          format: decimal
          pattern: ^-?\d{0,13}(?:\.\d{0,6})?$
          readOnly: true
          nullable: true
        pricing_min_total:
          type: string
          format: decimal
          pattern: ^-?\d{0,13}(?:\.\d{0,6})?$
          readOnly: true
          nullable: true
        pricing_max_total:
          type: string
          format: decimal
          pattern: ^-?\d{0,13}(?:\.\d{0,6})?$
          readOnly: true
          nullable: true
        pricing_updated:
          type: string
          format: date-time
          readOnly: true
          nullable: true
        sub_part_detail:
          allOf:
          - $ref: '#/components/schemas/PartBrief'
          readOnly: true
          nullable: true
          title: Component
        substitutes:
          type: array
          items:
            $ref: '#/components/schemas/BomItemSubstitute'
          readOnly: true
          nullable: true
        validated:
          type: boolean
          description: This BOM item has been validated
        available_stock:
          type: number
          format: double
          readOnly: true
          nullable: true
        available_substitute_stock:
          type: number
          format: double
          readOnly: true
          nullable: true
        available_variant_stock:
          type: number
          format: double
          readOnly: true
          nullable: true
        external_stock:
          type: number
          format: double
          readOnly: true
          nullable: true
        on_order:
          type: number
          format: double
          readOnly: true
          nullable: true
        building:
          type: number
          format: double
          readOnly: true
          nullable: true
          title: In Production
        can_build:
          type: number
          format: double
          readOnly: true
          nullable: true
      required:
      - part
      - pk
      - quantity
      - sub_part
    BomItemSubstitute:
      type: object
      description: Serializer for the BomItemSubstitute class.
      properties:
        pk:
          type: integer
          readOnly: true
          title: ID
        bom_item:
          type: integer
          description: Parent BOM item
        part:
          type: integer
          description: Substitute part
        part_detail:
          allOf:
          - $ref: '#/components/schemas/PartBrief'
          readOnly: true
      required:
      - bom_item
      - part
      - part_detail
      - pk
    BomItemValidation:
      type: object
      description: Simple serializer for passing a single boolean field.
      properties:
        valid:
          type: boolean
          default: false
    BriefUserProfile:
      type: object
      description: Brief serializer for the UserProfile model.
      properties:
        displayname:
          type: string
          nullable: true
          title: Display Name
          description: Chosen display name for the user
          maxLength: 255
        position:
          type: string
          nullable: true
          description: Main job title or position
          maxLength: 255
        status:
          type: string
          nullable: true
          description: User status message
          maxLength: 2000
        location:
          type: string
          nullable: true
          description: User location information
          maxLength: 2000
        active:
          type: boolean
          description: User is actively using the system
        contact:
          type: string
          nullable: true
          description: Preferred contact information for the user
          maxLength: 255
        type:
          allOf:
          - $ref: '#/components/schemas/UserTypeEnum'
          title: User Type
          description: |-
            Which type of user is this?

            * `bot` - Bot
            * `internal` - Internal
            * `external` - External
            * `guest` - Guest
        organisation:
          type: string
          nullable: true
          description: Users primary organisation/affiliation
          maxLength: 255
        primary_group:
          type: integer
          nullable: true
          description: Primary group for the user
    Build:
      type: object
      description: Serializes a Build object.
      properties:
        pk:
          type: integer
          readOnly: true
          title: ID
        title:
          type: string
          title: Description
          description: Brief description of the build (optional)
          maxLength: 100
        barcode_hash:
          type: string
          readOnly: true
        batch:
          type: string
          nullable: true
          title: Batch Code
          description: Batch code for this build output
          maxLength: 100
        creation_date:
          type: string
          format: date
          readOnly: true
        completed:
          type: integer
          readOnly: true
          title: Completed items
          description: Number of stock items which have been completed
        completion_date:
          type: string
          format: date
          nullable: true
        destination:
          type: integer
          nullable: true
          title: Destination Location
          description: Select location where the completed items will be stored
        external:
          type: boolean
          title: External Build
          description: This build order is fulfilled externally
        parent:
          type: integer
          nullable: true
          title: Parent Build
          description: BuildOrder to which this build is allocated
        part:
          type: integer
          description: Select part to build
        part_name:
          type: string
          readOnly: true
        part_detail:
          allOf:
          - $ref: '#/components/schemas/PartBrief'
          readOnly: true
        project_code:
          type: integer
          nullable: true
          description: Project code for this build order
        project_code_label:
          type: string
          readOnly: true
          nullable: true
        project_code_detail:
          allOf:
          - $ref: '#/components/schemas/ProjectCode'
          readOnly: true
          nullable: true
        overdue:
          type: boolean
          readOnly: true
          default: false
        reference:
          type: string
        sales_order:
          type: integer
          nullable: true
          title: Sales Order Reference
          description: SalesOrder to which this build is allocated
        quantity:
          type: number
          format: double
        start_date:
          type: string
          format: date
          nullable: true
          title: Build start date
          description: Scheduled start date for this build order
        status:
          allOf:
          - $ref: '#/components/schemas/BuildStatusEnum'
          readOnly: true
          title: Build Status
          description: |-
            Build status code

            * `10` - Pending
            * `20` - Production
            * `25` - On Hold
            * `30` - Cancelled
            * `40` - Complete
        status_text:
          type: string
          readOnly: true
        status_custom_key:
          type: integer
          readOnly: true
          nullable: true
          title: Custom status key
          description: |-
            Additional status information for this item

            * `10` - Pending
            * `20` - Production
            * `25` - On Hold
            * `30` - Cancelled
            * `40` - Complete

            Additional custom status keys may be retrieved from the corresponding 'status_retrieve' call.
        target_date:
          type: string
          format: date
          nullable: true
          title: Target completion date
          description: Target date for build completion. Build will be overdue after
            this date.
        take_from:
          type: integer
          nullable: true
          title: Source Location
          description: Select location to take stock from for this build (leave blank
            to take from any stock location)
        notes:
          type: string
          nullable: true
          description: Markdown notes (optional)
          maxLength: 50000
        link:
          type: string
          format: uri
          title: External Link
          description: Link to external URL
          maxLength: 2000
        issued_by:
          type: integer
          nullable: true
          description: User who issued this build order
        issued_by_detail:
          allOf:
          - $ref: '#/components/schemas/User'
          readOnly: true
        responsible:
          type: integer
          nullable: true
          description: User or group responsible for this build order
        responsible_detail:
          allOf:
          - $ref: '#/components/schemas/Owner'
          readOnly: true
          nullable: true
        priority:
          type: integer
          minimum: 0
          title: Build Priority
          description: Priority of this build order
        level:
          type: integer
          readOnly: true
          title: Build Level
      required:
      - barcode_hash
      - completed
      - creation_date
      - issued_by_detail
      - level
      - overdue
      - part
      - part_detail
      - part_name
      - pk
      - quantity
      - reference
      - status
      - status_text
    BuildAllocation:
      type: object
      description: Serializer for allocating stock items against a build order.
      properties:
        items:
          type: array
          items:
            $ref: '#/components/schemas/BuildAllocationItem'
      required:
      - items
    BuildAllocationItem:
      type: object
      description: A serializer for allocating a single stock item against a build
        order.
      properties:
        build_line:
          type: integer
          title: Build Line Item
        stock_item:
          type: integer
        quantity:
          type: string
          format: decimal
          pattern: ^-?\d{0,10}(?:\.\d{0,5})?$
        output:
          type: integer
          nullable: true
          title: Build Output
      required:
      - build_line
      - quantity
      - stock_item
    BuildAutoAllocation:
      type: object
      description: DRF serializer for auto allocating stock items against a build
        order.
      properties:
        location:
          type: integer
          nullable: true
          title: Source Location
          description: Stock location where parts are to be sourced (leave blank to
            take from any location)
        exclude_location:
          type: integer
          nullable: true
          description: Exclude stock items from this selected location
        interchangeable:
          type: boolean
          default: false
          title: Interchangeable Stock
          description: Stock items in multiple locations can be used interchangeably
        substitutes:
          type: boolean
          default: true
          title: Substitute Stock
          description: Allow allocation of substitute parts
        optional_items:
          type: boolean
          default: false
          description: Allocate optional BOM items to build order
    BuildCancel:
      type: object
      description: Cancel an active BuildOrder.
      properties:
        remove_allocated_stock:
          type: boolean
          default: false
          title: Consume Allocated Stock
          description: Consume any stock which has already been allocated to this
            build
        remove_incomplete_outputs:
          type: boolean
          default: false
          description: Delete any build outputs which have not been completed
    BuildComplete:
      type: object
      description: DRF serializer for marking a BuildOrder as complete.
      properties:
        accept_overallocated:
          allOf:
          - $ref: '#/components/schemas/AcceptOverallocatedEnum'
          default: reject
          title: Overallocated Stock
          description: |-
            How do you want to handle extra stock items assigned to the build order

            * `reject` - Not permitted
            * `accept` - Accept as consumed by this build order
            * `trim` - Deallocate before completing this build order
        accept_unallocated:
          type: boolean
          default: false
          description: Accept that stock items have not been fully allocated to this
            build order
        accept_incomplete:
          type: boolean
          default: false
          description: Accept that the required number of build outputs have not been
            completed
    BuildConsume:
      type: object
      description: |-
        Serializer for consuming allocations against a BuildOrder.

        - Consumes allocated stock items, increasing the 'consumed' field for each BuildLine.
        - Stock can be consumed by passing either a list of BuildItem objects, or a list of BuildLine objects.
      properties:
        items:
          type: array
          items:
            $ref: '#/components/schemas/BuildConsumeAllocation'
        lines:
          type: array
          items:
            $ref: '#/components/schemas/BuildConsumeLineItem'
        notes:
          type: string
          description: Optional notes for the stock consumption
    BuildConsumeAllocation:
      type: object
      description: Serializer for an individual BuildItem to be consumed against a
        BuildOrder.
      properties:
        build_item:
          type: integer
        quantity:
          type: string
          format: decimal
          pattern: ^-?\d{0,10}(?:\.\d{0,5})?$
      required:
      - build_item
      - quantity
    BuildConsumeLineItem:
      type: object
      description: Serializer for an individual BuildLine to be consumed against a
        BuildOrder.
      properties:
        build_line:
          type: integer
      required:
      - build_line
    BuildItem:
      type: object
      description: Serializes a BuildItem object, which is an allocation of a stock
        item against a build order.
      properties:
        pk:
          type: integer
          readOnly: true
          title: ID
        build:
          type: integer
          readOnly: true
        build_line:
          type: integer
          nullable: true
        install_into:
          type: integer
          nullable: true
          description: Destination stock item
        stock_item:
          type: integer
          description: Source stock item
        quantity:
          type: number
          format: double
          title: Allocated Quantity
        location:
          type: integer
          readOnly: true
        build_detail:
          allOf:
          - $ref: '#/components/schemas/Build'
          readOnly: true
          nullable: true
          title: Build
        location_detail:
          allOf:
          - $ref: '#/components/schemas/LocationBrief'
          readOnly: true
          nullable: true
          title: Location
        part_detail:
          allOf:
          - $ref: '#/components/schemas/PartBrief'
          readOnly: true
          nullable: true
          title: Part
        stock_item_detail:
          allOf:
          - $ref: '#/components/schemas/StockItem'
          readOnly: true
          nullable: true
          title: Stock Item
        supplier_part_detail:
          allOf:
          - $ref: '#/components/schemas/SupplierPart'
          readOnly: true
          nullable: true
          title: Supplier Part
        bom_reference:
          type: string
          readOnly: true
      required:
      - bom_reference
      - build
      - location
      - pk
      - quantity
      - stock_item
    BuildLine:
      type: object
      description: Serializer for a BuildItem object.
      properties:
        pk:
          type: integer
          readOnly: true
          title: ID
        build:
          type: integer
          readOnly: true
          description: Build object
        bom_item:
          type: integer
          readOnly: true
        quantity:
          type: number
          format: double
        consumed:
          type: number
          format: double
        allocations:
          type: array
          items:
            $ref: '#/components/schemas/BuildItem'
          readOnly: true
        part:
          type: integer
          readOnly: true
        build_reference:
          type: string
          readOnly: true
        reference:
          type: string
          readOnly: true
        consumable:
          type: boolean
          readOnly: true
        optional:
          type: boolean
          readOnly: true
        testable:
          type: boolean
          readOnly: true
        trackable:
          type: boolean
          readOnly: true
        inherited:
          type: boolean
          readOnly: true
        allow_variants:
          type: boolean
          readOnly: true
        allocated:
          type: number
          format: double
          readOnly: true
        in_production:
          type: number
          format: double
          readOnly: true
        scheduled_to_build:
          type: number
          format: double
          readOnly: true
        on_order:
          type: number
          format: double
          readOnly: true
        available_stock:
          type: number
          format: double
          readOnly: true
        available_substitute_stock:
          type: number
          format: double
          readOnly: true
        available_variant_stock:
          type: number
          format: double
          readOnly: true
        external_stock:
          type: number
          format: double
          readOnly: true
        bom_item_detail:
          allOf:
          - $ref: '#/components/schemas/BomItem'
          readOnly: true
          title: BOM Item
        assembly_detail:
          allOf:
          - $ref: '#/components/schemas/PartBrief'
          readOnly: true
          nullable: true
          title: Assembly
        part_detail:
          allOf:
          - $ref: '#/components/schemas/PartBrief'
          readOnly: true
          title: Part
        build_detail:
          allOf:
          - $ref: '#/components/schemas/Build'
          readOnly: true
          nullable: true
          title: Build
      required:
      - allocated
      - allocations
      - allow_variants
      - available_stock
      - available_substitute_stock
      - available_variant_stock
      - bom_item
      - bom_item_detail
      - build
      - build_reference
      - consumable
      - consumed
      - external_stock
      - in_production
      - inherited
      - on_order
      - optional
      - part
      - part_detail
      - pk
      - quantity
      - reference
      - scheduled_to_build
      - testable
      - trackable
    BuildOutput:
      type: object
      description: |-
        Serializer for a "BuildOutput".

        Note that a "BuildOutput" is really just a StockItem which is "in production"!
      properties:
        output:
          type: integer
          title: Build Output
      required:
      - output
    BuildOutputComplete:
      type: object
      description: DRF serializer for completing one or more build outputs.
      properties:
        outputs:
          type: array
          items:
            $ref: '#/components/schemas/BuildOutputQuantity'
        location:
          type: integer
          description: Location for completed build outputs
        status_custom_key:
          type: integer
          description: |-
            Stock item status code

            * `10` - OK
            * `50` - Attention needed
            * `55` - Damaged
            * `60` - Destroyed
            * `65` - Rejected
            * `70` - Lost
            * `75` - Quarantined
            * `85` - Returned

            Additional custom status keys may be retrieved from the 'stock_status_retrieve' call.
          default: 10
          title: Status
        accept_incomplete_allocation:
          type: boolean
          default: false
          description: Complete outputs if stock has not been fully allocated
        notes:
          type: string
      required:
      - location
      - outputs
    BuildOutputCreate:
      type: object
      description: |-
        Serializer for creating a new BuildOutput against a BuildOrder.

        URL pattern is "/api/build/<pk>/create-output/", where <pk> is the PK of a Build.

        The Build object is provided to the serializer context.
      properties:
        quantity:
          type: string
          format: decimal
          pattern: ^-?\d{0,10}(?:\.\d{0,5})?$
          description: Enter quantity for build output
        batch_code:
          type: string
          description: Batch code for this build output
        serial_numbers:
          type: string
          description: Enter serial numbers for build outputs
        location:
          type: integer
          nullable: true
          description: Stock location for build output
        auto_allocate:
          type: boolean
          nullable: true
          default: false
          title: Auto Allocate Serial Numbers
          description: Automatically allocate required items with matching serial
            numbers
      required:
      - quantity
    BuildOutputDelete:
      type: object
      description: DRF serializer for deleting (cancelling) one or more build outputs.
      properties:
        outputs:
          type: array
          items:
            $ref: '#/components/schemas/BuildOutput'
      required:
      - outputs
    BuildOutputQuantity:
      type: object
      description: Build output with quantity field.
      properties:
        output:
          type: integer
          title: Build Output
        quantity:
          type: string
          format: decimal
          pattern: ^-?\d{0,10}(?:\.\d{0,5})?$
          description: Enter quantity for build output
      required:
      - output
    BuildOutputScrap:
      type: object
      description: Scrapping one or more build outputs.
      properties:
        outputs:
          type: array
          items:
            $ref: '#/components/schemas/BuildOutputQuantity'
        location:
          type: integer
          description: Stock location for scrapped outputs
        discard_allocations:
          type: boolean
          default: false
          description: Discard any stock allocations for scrapped outputs
        notes:
          type: string
          description: Reason for scrapping build output(s)
      required:
      - location
      - notes
      - outputs
    BuildStatusEnum:
      enum:
      - 10
      - 20
      - 25
      - 30
      - 40
      type: integer
      description: |-
        * `10` - Pending
        * `20` - Production
        * `25` - On Hold
        * `30` - Cancelled
        * `40` - Complete
    BuildUnallocation:
      type: object
      description: |-
        DRF serializer for unallocating stock from a BuildOrder.

        Allocated stock can be unallocated with a number of filters:

        - output: Filter against a particular build output (blank = untracked stock)
        - bom_item: Filter against a particular BOM line item
      properties:
        build_line:
          type: integer
          nullable: true
        output:
          type: integer
          nullable: true
          title: Build output
    BulkRequest:
      type: object
      description: Parameters for selecting items for bulk operations.
      properties:
        items:
          type: array
          items:
            type: integer
          title: A list of primary key values
        filters:
          type: object
          additionalProperties: {}
          title: A dictionary of filter values
    Category:
      type: object
      description: Serializer for PartCategory.
      properties:
        pk:
          type: integer
          readOnly: true
          title: ID
        name:
          type: string
          description: Name
          maxLength: 100
        description:
          type: string
          description: Description (optional)
          maxLength: 250
        default_location:
          type: integer
          nullable: true
          description: Default location for parts in this category
        default_keywords:
          type: string
          nullable: true
          description: Default keywords for parts in this category
          maxLength: 250
        level:
          type: integer
          readOnly: true
        parent:
          type: integer
          nullable: true
          title: Parent Category
          description: Parent part category
        part_count:
          type: integer
          readOnly: true
          nullable: true
          title: Parts
        subcategories:
          type: integer
          readOnly: true
          nullable: true
        pathstring:
          type: string
          readOnly: true
          title: Path
          description: Path
        path:
          type: array
          items:
            type: object
            additionalProperties: {}
          readOnly: true
          nullable: true
        starred:
          type: boolean
          description: Return True if the category is directly "starred" by the current
            user.
          readOnly: true
        structural:
          type: boolean
          description: Parts may not be directly assigned to a structural category,
            but may be assigned to child categories.
        icon:
          type: string
          nullable: true
          description: Icon (optional)
          maxLength: 100
        parent_default_location:
          type: integer
          readOnly: true
          nullable: true
      required:
      - level
      - name
      - pathstring
      - pk
      - starred
    CategoryParameterTemplate:
      type: object
      description: Serializer for the PartCategoryParameterTemplate model.
      properties:
        pk:
          type: integer
          readOnly: true
          title: ID
        category:
          type: integer
          description: Part Category
        category_detail:
          allOf:
          - $ref: '#/components/schemas/Category'
          readOnly: true
          nullable: true
        parameter_template:
          type: integer
          description: Parameter Template
        parameter_template_detail:
          allOf:
          - $ref: '#/components/schemas/PartParameterTemplate'
          readOnly: true
        default_value:
          type: string
          description: Default Parameter Value
          maxLength: 500
      required:
      - category
      - parameter_template
      - parameter_template_detail
      - pk
    CategoryTree:
      type: object
      description: Serializer for PartCategory tree.
      properties:
        pk:
          type: integer
          readOnly: true
          title: ID
        name:
          type: string
          description: Name
          maxLength: 100
        parent:
          type: integer
          nullable: true
        icon:
          type: string
          description: Icon (optional)
          maxLength: 100
        structural:
          type: boolean
          description: Parts may not be directly assigned to a structural category,
            but may be assigned to child categories.
        subcategories:
          type: integer
          readOnly: true
      required:
      - name
      - pk
      - subcategories
    ColorEnum:
      enum:
      - primary
      - secondary
      - success
      - danger
      - warning
      - info
      - dark
      type: string
      description: |-
        * `primary` - primary
        * `secondary` - secondary
        * `success` - success
        * `danger` - danger
        * `warning` - warning
        * `info` - info
        * `dark` - dark
    Company:
      type: object
      description: Serializer for Company object (full detail).
      properties:
        pk:
          type: integer
          readOnly: true
          title: ID
        name:
          type: string
          title: Company name
          description: Company name
          maxLength: 100
        description:
          type: string
          title: Company description
          description: Description of the company
          maxLength: 500
        website:
          type: string
          format: uri
          description: Company website URL
          maxLength: 2000
        phone:
          type: string
          title: Phone number
          description: Contact phone number
          maxLength: 50
        address:
          type: string
          readOnly: true
          nullable: true
          title: Return the string representation for the primary address. This property
            exists for backwards compatibility.
        email:
          type: string
          format: email
          nullable: true
          default: ''
        currency:
          type: string
          description: |-
            Default currency used for this supplier

            * `AUD` - AUD - Australian Dollar
            * `CNY` - CNY - Chinese Yuan
            * `EUR` - EUR - Euro
            * `USD` - USD - US Dollar

            Other valid currencies may be found in the 'CURRENCY_CODES' global setting.
        contact:
          type: string
          description: Point of contact
          maxLength: 100
        link:
          type: string
          format: uri
          description: Link to external company information
          maxLength: 2000
        image:
          type: string
          format: uri
          nullable: true
        active:
          type: boolean
          description: Is this company active?
        is_customer:
          type: boolean
          description: Do you sell items to this company?
        is_manufacturer:
          type: boolean
          description: Does this company manufacture parts?
        is_supplier:
          type: boolean
          description: Do you purchase items from this company?
        notes:
          type: string
          nullable: true
          description: Markdown notes (optional)
          maxLength: 50000
        parts_supplied:
          type: integer
          readOnly: true
        parts_manufactured:
          type: integer
          readOnly: true
        remote_image:
          type: string
          format: uri
          writeOnly: true
          description: URL of remote image file
        address_count:
          type: integer
          readOnly: true
        primary_address:
          allOf:
          - $ref: '#/components/schemas/Address'
          readOnly: true
          nullable: true
        tax_id:
          type: string
          description: Company Tax ID
          maxLength: 50
      required:
      - address_count
      - currency
      - name
      - parts_manufactured
      - parts_supplied
      - pk
    CompanyBrief:
      type: object
      description: Serializer for Company object (limited detail).
      properties:
        pk:
          type: integer
          readOnly: true
          title: ID
        active:
          type: boolean
          description: Is this company active?
        name:
          type: string
          title: Company name
          description: Company name
          maxLength: 100
        description:
          type: string
          title: Company description
          description: Description of the company
          maxLength: 500
        image:
          type: string
          format: uri
          readOnly: true
        thumbnail:
          type: string
          readOnly: true
        currency:
          type: string
          readOnly: true
          description: Default currency used for this company
        tax_id:
          type: string
          description: Company Tax ID
          maxLength: 50
      required:
      - currency
      - image
      - name
      - pk
      - thumbnail
    Config:
      type: object
      description: |-
        Serializer for the InvenTree configuration.

        This is a read-only serializer.
      properties:
        key:
          type: string
          readOnly: true
        env_var:
          type: string
          readOnly: true
          nullable: true
        config_key:
          type: string
          readOnly: true
          nullable: true
        source:
          type: string
          readOnly: true
        accessed:
          type: string
          format: date-time
          readOnly: true
      required:
      - accessed
      - key
      - source
    ConfigTypeEnum:
      enum:
      - M
      - D
      type: string
      description: |-
        * `M` - Machine
        * `D` - Driver
    Contact:
      type: object
      description: Serializer class for the Contact model.
      properties:
        pk:
          type: integer
          readOnly: true
          title: ID
        company:
          type: integer
        company_name:
          type: string
          readOnly: true
        name:
          type: string
          maxLength: 100
        phone:
          type: string
          maxLength: 100
        email:
          type: string
          format: email
          maxLength: 254
        role:
          type: string
          maxLength: 100
      required:
      - company
      - company_name
      - name
      - pk
    ContentType:
      type: object
      description: Serializer for ContentType models.
      properties:
        pk:
          type: integer
          readOnly: true
        app_label:
          type: string
          readOnly: true
        model:
          type: string
          readOnly: true
        app_labeled_name:
          type: string
          readOnly: true
        is_plugin:
          type: boolean
          description: Return True if the model is a plugin model.
          readOnly: true
      required:
      - app_label
      - app_labeled_name
      - is_plugin
      - model
      - pk
    ConvertStockItem:
      type: object
      description: DRF serializer class for converting a StockItem to a valid variant
        part.
      properties:
        part:
          type: integer
          description: Select part to convert stock item into
      required:
      - part
    CurrencyExchange:
      type: object
      description: |-
        Serializer for a Currency Exchange request.

        It's only purpose is describing the results correctly in the API schema right now.
      properties:
        base_currency:
          type: string
          readOnly: true
        exchange_rates:
          type: object
          additionalProperties:
            type: number
            format: double
        updated:
          type: string
          format: date-time
          readOnly: true
      required:
      - base_currency
      - exchange_rates
      - updated
    CustomState:
      type: object
      description: Serializer for the custom state model.
      properties:
        pk:
          type: integer
          readOnly: true
          title: ID
        key:
          type: integer
          title: Value
          description: Numerical value that will be saved in the models database
        name:
          type: string
          description: Name of the state
          maxLength: 250
        label:
          type: string
          description: Label that will be displayed in the frontend
          maxLength: 250
        color:
          allOf:
          - $ref: '#/components/schemas/ColorEnum'
          description: |-
            Color that will be displayed in the frontend

            * `primary` - primary
            * `secondary` - secondary
            * `success` - success
            * `danger` - danger
            * `warning` - warning
            * `info` - info
            * `dark` - dark
        logical_key:
          type: integer
          description: State logical key that is equal to this custom state in business
            logic
        model:
          type: integer
          nullable: true
          description: Model this state is associated with
        model_name:
          type: string
          readOnly: true
        reference_status:
          $ref: '#/components/schemas/ReferenceStatusEnum'
      required:
      - key
      - label
      - logical_key
      - model_name
      - name
      - pk
      - reference_status
    CustomUnit:
      type: object
      description: DRF serializer for CustomUnit model.
      properties:
        pk:
          type: integer
          readOnly: true
          title: ID
        name:
          type: string
          description: Unit name
          maxLength: 50
        symbol:
          type: string
          description: Optional unit symbol
          maxLength: 10
        definition:
          type: string
          description: Unit definition
          maxLength: 50
      required:
      - definition
      - name
      - pk
    Customize:
      type: object
      description: Serializer for customize field.
      properties:
        logo:
          type: string
        splash:
          type: string
        login_message:
          type: string
          nullable: true
        navbar_message:
          type: string
          nullable: true
      required:
      - login_message
      - logo
      - navbar_message
      - splash
    DataImportAcceptRow:
      type: object
      description: Serializer for accepting rows of data.
      properties:
        rows:
          type: array
          items:
            type: integer
            title: Rows
          description: List of row IDs to accept
      required:
      - rows
    DataImportColumnMap:
      type: object
      description: Serializer for the DataImportColumnMap model.
      properties:
        pk:
          type: integer
          readOnly: true
          title: ID
        session:
          type: integer
          readOnly: true
          title: Import Session
        column:
          type: string
          maxLength: 100
        field:
          type: string
          readOnly: true
        label:
          type: string
          readOnly: true
        description:
          type: string
          readOnly: true
      required:
      - description
      - field
      - label
      - pk
      - session
    DataImportRow:
      type: object
      description: Serializer for the DataImportRow model.
      properties:
        pk:
          type: integer
          readOnly: true
          title: ID
        session:
          type: integer
          readOnly: true
          title: Import Session
        row_index:
          type: integer
          readOnly: true
        row_data:
          readOnly: true
          nullable: true
          title: Original row data
        data:
          nullable: true
        errors:
          readOnly: true
          nullable: true
        valid:
          type: boolean
          readOnly: true
        complete:
          type: boolean
          readOnly: true
      required:
      - complete
      - pk
      - row_index
      - session
      - valid
    DataImportSession:
      type: object
      description: Serializer for the DataImportSession model.
      properties:
        pk:
          type: integer
          readOnly: true
          title: ID
        timestamp:
          type: string
          format: date-time
          readOnly: true
        data_file:
          type: string
          format: uri
        update_records:
          type: boolean
          title: Update Existing Records
          description: If enabled, existing records will be updated with new data
        model_type:
          $ref: '#/components/schemas/DataImportSessionModelTypeEnum'
        available_fields:
          readOnly: true
        status:
          allOf:
          - $ref: '#/components/schemas/DataImportSessionStatusEnum'
          readOnly: true
          description: |-
            Import status

            * `0` - Initializing
            * `10` - Mapping Columns
            * `20` - Importing Data
            * `30` - Processing Data
            * `40` - Complete
        user:
          type: integer
          readOnly: true
          nullable: true
        user_detail:
          allOf:
          - $ref: '#/components/schemas/User'
          readOnly: true
        columns:
          readOnly: true
          nullable: true
        column_mappings:
          type: array
          items:
            $ref: '#/components/schemas/DataImportColumnMap'
          readOnly: true
        field_defaults:
          nullable: true
        field_overrides:
          nullable: true
        field_filters:
          nullable: true
        row_count:
          type: integer
          readOnly: true
        completed_row_count:
          type: integer
          readOnly: true
      required:
      - available_fields
      - column_mappings
      - completed_row_count
      - data_file
      - model_type
      - pk
      - row_count
      - status
      - timestamp
      - user_detail
    DataImportSessionModelTypeEnum:
      enum:
      - partcategory
      - parttesttemplate
      - partsellpricebreak
      - partparametertemplate
      - partparameter
      - part
      - bomitem
      - partcategoryparametertemplate
      - address
      - company
      - contact
      - manufacturerpart
      - manufacturerpartparameter
      - supplierpart
      - supplierpricebreak
      - projectcode
      - inventreecustomuserstatemodel
      - customunit
      - stockitemtestresult
      - stockitem
      - stocklocation
      - stockitemtracking
      - purchaseorder
      - purchaseorderlineitem
      - purchaseorderextraline
      - salesorder
      - salesorderlineitem
      - salesorderextraline
      - returnorder
      - returnorderlineitem
      - returnorderextraline
      type: string
      description: |-
        * `partcategory` - Part Category
        * `parttesttemplate` - Part Test Template
        * `partsellpricebreak` - Part Sale Price Break
        * `partparametertemplate` - Part Parameter Template
        * `partparameter` - Part Parameter
        * `part` - Part
        * `bomitem` - BOM Item
        * `partcategoryparametertemplate` - Part Category Parameter Template
        * `address` - Address
        * `company` - Company
        * `contact` - Contact
        * `manufacturerpart` - Manufacturer Part
        * `manufacturerpartparameter` - Manufacturer Part Parameter
        * `supplierpart` - Supplier Part
        * `supplierpricebreak` - Supplier Price Break
        * `projectcode` - Project Code
        * `inventreecustomuserstatemodel` - Custom State
        * `customunit` - Custom Unit
        * `stockitemtestresult` - Stock Item Test Result
        * `stockitem` - Stock Item
        * `stocklocation` - Stock Location
        * `stockitemtracking` - Stock Item Tracking
        * `purchaseorder` - Purchase Order
        * `purchaseorderlineitem` - Purchase Order Line Item
        * `purchaseorderextraline` - Purchase Order Extra Line
        * `salesorder` - Sales Order
        * `salesorderlineitem` - Sales Order Line Item
        * `salesorderextraline` - Sales Order Extra Line
        * `returnorder` - Return Order
        * `returnorderlineitem` - Return Order Line Item
        * `returnorderextraline` - Return Order Extra Line
    DataImportSessionStatusEnum:
      enum:
      - 0
      - 10
      - 20
      - 30
      - 40
      type: integer
      description: |-
        * `0` - Initializing
        * `10` - Mapping Columns
        * `20` - Importing Data
        * `30` - Processing Data
        * `40` - Complete
    DataImporterModel:
      type: object
      description: Model references to map info that might get imported.
      properties:
        serializer:
          type: string
          readOnly: true
        model_type:
          type: string
          readOnly: true
        api_url:
          type: string
          format: uri
          readOnly: true
          nullable: true
      required:
      - model_type
      - serializer
    DataOutput:
      type: object
      description: Serializer for the DataOutput model.
      properties:
        pk:
          type: integer
          readOnly: true
          title: ID
        created:
          type: string
          format: date
          readOnly: true
        user:
          type: integer
          nullable: true
        user_detail:
          allOf:
          - $ref: '#/components/schemas/User'
          readOnly: true
        total:
          type: integer
        progress:
          type: integer
        complete:
          type: boolean
        output_type:
          type: string
          nullable: true
          maxLength: 100
        template_name:
          type: string
          nullable: true
          maxLength: 100
        plugin:
          type: string
          nullable: true
          maxLength: 100
        output:
          type: string
          format: uri
          readOnly: true
          nullable: true
        errors:
          nullable: true
      required:
      - created
      - pk
      - user_detail
    DefaultLocation:
      type: object
      description: |-
        Brief serializer for a StockLocation object.

        Defined here, rather than stock.serializers, to negotiate circular imports.
      properties:
        pk:
          type: integer
          readOnly: true
          title: ID
        name:
          type: string
          description: Name
          maxLength: 100
        pathstring:
          type: string
          title: Path
          description: Path
          maxLength: 250
      required:
      - name
      - pk
    DirectionEnum:
      enum:
      - I
      - O
      type: string
      description: |-
        * `I` - Inbound
        * `O` - Outbound
    DuplicateOrder:
      type: object
      description: Serializer for specifying options when duplicating an order.
      properties:
        order_id:
          type: integer
          description: ID of the order to duplicate
        copy_lines:
          type: boolean
          default: true
          description: Copy line items from the original order
        copy_extra_lines:
          type: boolean
          default: true
          description: Copy extra line items from the original order
      required:
      - order_id
    DuplicatePart:
      type: object
      description: |-
        Serializer for specifying options when duplicating a Part.

        The fields in this serializer control how the Part is duplicated.
      properties:
        part:
          type: integer
          title: Original Part
          description: Select original part to duplicate
        copy_image:
          type: boolean
          default: false
          description: Copy image from original part
        copy_bom:
          type: boolean
          default: false
          description: Copy bill of materials from original part
        copy_parameters:
          type: boolean
          default: false
          description: Copy parameter data from original part
        copy_notes:
          type: boolean
          default: true
          description: Copy notes from original part
        copy_tests:
          type: boolean
          default: false
          description: Copy test templates from original part
      required:
      - part
    EmailMessage:
      type: object
      description: Serializer for the EmailMessage model.
      properties:
        pk:
          type: string
          format: uuid
          readOnly: true
          title: Global ID
          description: Unique identifier for this message
        global_id:
          type: string
          format: uuid
          readOnly: true
          description: Unique identifier for this message
        message_id_key:
          type: string
          nullable: true
          title: Message ID
          description: Identifier for this message (might be supplied by external
            system)
          maxLength: 250
        thread_id_key:
          type: string
          nullable: true
          title: Thread ID
          description: Identifier for this message thread (might be supplied by external
            system)
          maxLength: 250
        thread:
          type: string
          format: uuid
          description: Linked thread for this message
          nullable: true
        subject:
          type: string
          maxLength: 250
        body:
          type: string
        to:
          type: string
          format: email
          maxLength: 254
        sender:
          type: string
          format: email
          maxLength: 254
        status:
          nullable: true
          oneOf:
          - $ref: '#/components/schemas/EmailMessageStatusEnum'
          - $ref: '#/components/schemas/BlankEnum'
          - $ref: '#/components/schemas/NullEnum'
        timestamp:
          type: string
          format: date-time
          readOnly: true
        headers:
          nullable: true
        full_message:
          type: string
          nullable: true
        direction:
          nullable: true
          oneOf:
          - $ref: '#/components/schemas/DirectionEnum'
          - $ref: '#/components/schemas/BlankEnum'
          - $ref: '#/components/schemas/NullEnum'
        priority:
          allOf:
          - $ref: '#/components/schemas/PriorityEnum'
          title: Prioriy
        error_code:
          type: string
          nullable: true
          maxLength: 50
        error_message:
          type: string
          nullable: true
        error_timestamp:
          type: string
          format: date-time
          nullable: true
        delivery_options:
          nullable: true
      required:
      - body
      - global_id
      - pk
      - priority
      - sender
      - subject
      - timestamp
      - to
    EmailMessageStatusEnum:
      enum:
      - A
      - S
      - F
      - D
      - R
      - C
      type: string
      description: |-
        * `A` - Announced
        * `S` - Sent
        * `F` - Failed
        * `D` - Delivered
        * `R` - Read
        * `C` - Confirmed
    ErrorMessage:
      type: object
      description: DRF serializer for server error messages.
      properties:
        when:
          type: string
          format: date-time
          readOnly: true
        info:
          type: string
          readOnly: true
        data:
          type: string
          readOnly: true
          nullable: true
        path:
          type: string
          format: uri
          readOnly: true
          nullable: true
          maxLength: 200
        pk:
          type: integer
          readOnly: true
          title: ID
      required:
      - info
      - pk
      - when
    ExtendedUser:
      type: object
      description: Serializer for a User with a bit more info.
      properties:
        pk:
          type: integer
          readOnly: true
          title: ID
        username:
          type: string
          description: Username
        first_name:
          type: string
          description: First name of the user
        last_name:
          type: string
          description: Last name of the user
        email:
          type: string
          format: email
          description: Email address of the user
        groups:
          type: array
          items:
            $ref: '#/components/schemas/Group'
          readOnly: true
        group_ids:
          type: array
          items:
            type: integer
            writeOnly: true
          writeOnly: true
        is_staff:
          type: boolean
          title: Staff
          description: Does this user have staff permissions
        is_superuser:
          type: boolean
          title: Superuser
          description: Is this user a superuser
        is_active:
          type: boolean
          title: Active
          description: Is this user account active
        profile:
          allOf:
          - $ref: '#/components/schemas/BriefUserProfile'
          readOnly: true
      required:
      - email
      - first_name
      - groups
      - last_name
      - pk
      - profile
      - username
    FailedTask:
      type: object
      description: Serializer for an individual failed task object.
      properties:
        pk:
          type: string
          readOnly: true
        name:
          type: string
          readOnly: true
        func:
          type: string
          maxLength: 256
        args:
          type: string
          readOnly: true
          nullable: true
        kwargs:
          type: string
          readOnly: true
          nullable: true
        started:
          type: string
          format: date-time
          readOnly: true
        stopped:
          type: string
          format: date-time
          readOnly: true
        attempt_count:
          type: integer
        result:
          type: string
      required:
      - func
      - name
      - pk
      - result
      - started
      - stopped
    Flag:
      type: object
      description: Serializer for feature flags.
      properties:
        key:
          type: string
          readOnly: true
        state:
          type: string
          readOnly: true
        conditions:
          type: array
          items:
            type: object
            additionalProperties: {}
          readOnly: true
          nullable: true
      required:
      - key
      - state
    FlowsEnum:
      type: string
      enum:
      - provider_redirect
      - provider_token
    GenerateBatchCode:
      type: object
      description: |-
        Serializer for generating a batch code.

        Any of the provided write-only fields can be used for additional context.
      properties:
        batch_code:
          type: string
          readOnly: true
          description: Generated batch code
        build_order:
          type: integer
          nullable: true
          description: Select build order
        item:
          type: integer
          nullable: true
          title: Stock Item
          description: Select stock item to generate batch code for
        location:
          type: integer
          nullable: true
          description: Select location to generate batch code for
        part:
          type: integer
          nullable: true
          description: Select part to generate batch code for
        purchase_order:
          type: integer
          nullable: true
          description: Select purchase order
        quantity:
          type: number
          format: double
          nullable: true
          description: Enter quantity for batch code
      required:
      - batch_code
    GenerateSerialNumber:
      type: object
      description: |-
        Serializer for generating one or multiple serial numbers.

        Any of the provided write-only fields can be used for additional context.

        Note that in the case where multiple serial numbers are required,
        the "serial_number" field will return a string with multiple serial numbers
        separated by a comma.
      properties:
        serial_number:
          type: string
          readOnly: true
          nullable: true
          description: Generated serial number
        part:
          type: integer
          nullable: true
          description: Select part to generate serial number for
        quantity:
          type: integer
          default: 1
          description: Quantity of serial numbers to generate
    GenericStateClass:
      type: object
      description: API serializer for generic state class information.
      properties:
        status_class:
          type: string
          readOnly: true
          title: Class
        values:
          type: object
          additionalProperties:
            $ref: '#/components/schemas/GenericStateValue'
      required:
      - status_class
      - values
    GenericStateValue:
      type: object
      description: API serializer for generic state information.
      properties:
        key:
          type: integer
        logical_key:
          type: string
        name:
          type: string
        label:
          type: string
        color:
          type: string
        custom:
          type: boolean
      required:
      - key
      - label
      - name
    GetAuthToken:
      type: object
      description: Serializer for the GetAuthToken API endpoint.
      properties:
        token:
          type: string
          readOnly: true
        name:
          type: string
        expiry:
          type: string
          format: date
          readOnly: true
      required:
      - expiry
      - name
      - token
    GetSimpleLogin:
      type: object
      description: Serializer for the simple login view.
      properties:
        email:
          type: string
      required:
      - email
    GlobalSettings:
      type: object
      description: Serializer for the InvenTreeSetting model.
      properties:
        pk:
          type: integer
          readOnly: true
          title: ID
        key:
          type: string
          readOnly: true
        value:
          type: string
          nullable: true
        name:
          type: string
          readOnly: true
        description:
          type: string
          readOnly: true
        type:
          type: string
          readOnly: true
        units:
          type: string
          readOnly: true
        choices:
          type: array
          items: {}
          description: Returns the choices available for a given item.
          readOnly: true
        model_name:
          type: string
          readOnly: true
          nullable: true
        api_url:
          type: string
          readOnly: true
          nullable: true
        typ:
          type: string
          readOnly: true
        read_only:
          type: boolean
          description: Indicates if the setting is overridden by an environment variable
          readOnly: true
          title: Override
      required:
      - choices
      - description
      - key
      - name
      - pk
      - read_only
      - typ
      - type
      - units
      - value
    Group:
      type: object
      description: Serializer for a 'Group'.
      properties:
        pk:
          type: integer
          readOnly: true
          title: ID
        name:
          type: string
          maxLength: 150
        permissions:
          type: object
          additionalProperties: {}
          description: Return a list of permissions associated with the group.
          readOnly: true
          nullable: true
        roles:
          type: array
          items:
            $ref: '#/components/schemas/RuleSet'
          readOnly: true
          nullable: true
        users:
          type: array
          items:
            $ref: '#/components/schemas/User'
          readOnly: true
          nullable: true
      required:
      - name
      - pk
    Icon:
      type: object
      description: Serializer for an icon.
      properties:
        name:
          type: string
        category:
          type: string
        tags:
          type: array
          items:
            type: string
        variants:
          type: object
          additionalProperties:
            type: string
      required:
      - category
      - name
      - tags
      - variants
    IconPackage:
      type: object
      description: Serializer for a list of icons.
      properties:
        name:
          type: string
        prefix:
          type: string
        fonts:
          type: object
          additionalProperties:
            type: string
        icons:
          type: object
          additionalProperties:
            $ref: '#/components/schemas/Icon'
      required:
      - fonts
      - icons
      - name
      - prefix
    IdEnum:
      type: string
      enum:
      - login
      - mfa_authenticate
      - mfa_reauthenticate
      - provider_redirect
      - provider_signup
      - provider_token
      - reauthenticate
      - signup
      - verify_email
      - verify_phone
    InfoApi:
      type: object
      description: InvenTree server information - some information might be blanked
        if called without elevated credentials.
      properties:
        server:
          type: string
          readOnly: true
        id:
          type: string
          readOnly: true
          nullable: true
        version:
          type: string
          readOnly: true
        instance:
          type: string
          readOnly: true
        apiVersion:
          type: integer
          readOnly: true
        worker_running:
          type: boolean
          readOnly: true
        worker_count:
          type: integer
          readOnly: true
        worker_pending_tasks:
          type: integer
          readOnly: true
        plugins_enabled:
          type: boolean
          readOnly: true
        plugins_install_disabled:
          type: boolean
          readOnly: true
        active_plugins:
          readOnly: true
        email_configured:
          type: boolean
          readOnly: true
        debug_mode:
          type: boolean
          readOnly: true
        docker_mode:
          type: boolean
          readOnly: true
        default_locale:
          type: string
          readOnly: true
        customize:
          allOf:
          - $ref: '#/components/schemas/Customize'
          readOnly: true
        system_health:
          type: boolean
          readOnly: true
        database:
          type: string
          readOnly: true
        platform:
          type: string
          readOnly: true
        installer:
          type: string
          readOnly: true
        target:
          type: string
          readOnly: true
          nullable: true
        django_admin:
          type: string
          readOnly: true
        settings:
          allOf:
          - $ref: '#/components/schemas/Settings'
          readOnly: true
      required:
      - active_plugins
      - apiVersion
      - customize
      - database
      - debug_mode
      - default_locale
      - django_admin
      - docker_mode
      - email_configured
      - installer
      - instance
      - platform
      - plugins_enabled
      - plugins_install_disabled
      - server
      - settings
      - system_health
      - version
      - worker_count
      - worker_pending_tasks
      - worker_running
    InitialStock:
      type: object
      description: Serializer for creating initial stock quantity.
      properties:
        quantity:
          type: string
          format: decimal
          pattern: ^-?\d{0,10}(?:\.\d{0,5})?$
          title: Initial Stock Quantity
          description: Specify initial stock quantity for this Part. If quantity is
            zero, no stock is added.
        location:
          type: integer
          nullable: true
          title: Initial Stock Location
          description: Specify initial stock location for this Part
      required:
      - quantity
    InitialSupplier:
      type: object
      description: Serializer for adding initial supplier / manufacturer information.
      properties:
        supplier:
          type: integer
          nullable: true
          description: Select supplier (or leave blank to skip)
        sku:
          type: string
          description: Supplier stock keeping unit
          maxLength: 100
        manufacturer:
          type: integer
          nullable: true
          description: Select manufacturer (or leave blank to skip)
        mpn:
          type: string
          description: Manufacturer part number
          maxLength: 100
    InstallStockItem:
      type: object
      description: Serializer for installing a stock item into a given part.
      properties:
        stock_item:
          type: integer
          description: Select stock item to install
        quantity:
          type: integer
          minimum: 1
          default: 1
          title: Quantity to Install
          description: Enter the quantity of items to install
        note:
          type: string
          description: Add transaction note (optional)
      required:
      - stock_item
    IsTrueEnum:
      type: boolean
      enum:
      - true
    LabelPrint:
      type: object
      description: Serializer class for printing a label.
      properties:
        template:
          type: integer
          description: Select label template
        plugin:
          type: string
          title: Printing Plugin
          description: Select plugin to use for label printing
        items:
          type: array
          items:
            type: integer
          description: List of item primary keys to include in the report
      required:
      - items
      - template
    LabelTemplate:
      type: object
      description: Serializer class for label template model.
      properties:
        pk:
          type: integer
          readOnly: true
          title: ID
        name:
          type: string
          description: Template name
          maxLength: 100
        description:
          type: string
          description: Template description
          maxLength: 250
        model_type:
          $ref: '#/components/schemas/TemplateModelTypeEnum'
        template:
          type: string
          format: uri
        filters:
          type: string
          description: Template query filters (comma-separated list of key=value pairs)
          maxLength: 250
        filename_pattern:
          type: string
          description: Pattern for generating filenames
          maxLength: 100
        enabled:
          type: boolean
          description: Template is enabled
        revision:
          type: integer
          readOnly: true
        attach_to_model:
          type: boolean
          title: Attach to Model on Print
          description: Save report output as an attachment against linked model instance
            when printing
        width:
          type: number
          format: double
          minimum: 2
          title: Width [mm]
          description: Label width, specified in mm
        height:
          type: number
          format: double
          minimum: 2
          title: Height [mm]
          description: Label height, specified in mm
      required:
      - description
      - model_type
      - name
      - pk
      - revision
      - template
    LicenseView:
      type: object
      description: Serializer for license information.
      properties:
        backend:
          type: array
          items: {}
          readOnly: true
          description: Backend licenses texts
        frontend:
          type: array
          items: {}
          readOnly: true
          description: Frontend licenses texts
      required:
      - backend
      - frontend
    Link:
      type: object
      description: Serializer for all possible links.
      properties:
        doc:
          type: string
          format: uri
        code:
          type: string
          format: uri
        app:
          type: string
          format: uri
        bug:
          type: string
          format: uri
      required:
      - app
      - bug
      - code
      - doc
    LocatePlugin:
      type: object
      description: Serializer for the LocatePluginView API endpoint.
      properties:
        plugin:
          type: string
          description: Plugin to use for location identification
        item:
          type: integer
          description: StockItem to identify
        location:
          type: integer
          description: StockLocation to identify
      required:
      - plugin
    Location:
      type: object
      description: Detailed information about a stock location.
      properties:
        pk:
          type: integer
          readOnly: true
          title: ID
        barcode_hash:
          type: string
          readOnly: true
          description: Unique hash of barcode data
        name:
          type: string
          description: Name
          maxLength: 100
        level:
          type: integer
          readOnly: true
        description:
          type: string
          description: Description (optional)
          maxLength: 250
        parent:
          type: integer
          nullable: true
          title: Parent Location
          description: Parent stock location
        pathstring:
          type: string
          readOnly: true
          title: Path
          description: Path
        path:
          type: array
          items:
            type: object
            additionalProperties: {}
          readOnly: true
          nullable: true
        items:
          type: integer
          readOnly: true
          title: Stock Items
        sublocations:
          type: integer
          readOnly: true
        owner:
          type: integer
          nullable: true
          description: Select Owner
        icon:
          type: string
          readOnly: true
        custom_icon:
          type: string
          nullable: true
          title: Icon
          description: Icon (optional)
          maxLength: 100
        structural:
          type: boolean
          description: Stock items may not be directly located into a structural stock
            locations, but may be located to child locations.
        external:
          type: boolean
          description: This is an external stock location
        location_type:
          type: integer
          nullable: true
          description: Stock location type of this location
        location_type_detail:
          allOf:
          - $ref: '#/components/schemas/StockLocationType'
          readOnly: true
          nullable: true
        tags:
          type: array
          items:
            type: string
      required:
      - barcode_hash
      - icon
      - items
      - level
      - name
      - pathstring
      - pk
      - sublocations
    LocationBrief:
      type: object
      description: Provides a brief serializer for a StockLocation object.
      properties:
        pk:
          type: integer
          readOnly: true
          title: ID
        name:
          type: string
          description: Name
          maxLength: 100
        pathstring:
          type: string
          title: Path
          description: Path
          maxLength: 250
      required:
      - name
      - pk
    LocationTree:
      type: object
      description: Serializer for a simple tree view.
      properties:
        pk:
          type: integer
          readOnly: true
          title: ID
        name:
          type: string
          description: Name
          maxLength: 100
        parent:
          type: integer
          nullable: true
        icon:
          type: string
          description: |-
            Get the current icon used for this location.

            The icon field on this model takes precedences over the possibly assigned stock location type
          readOnly: true
        structural:
          type: boolean
          description: Stock items may not be directly located into a structural stock
            locations, but may be located to child locations.
        sublocations:
          type: integer
          readOnly: true
      required:
      - icon
      - name
      - pk
      - sublocations
    LoginMethodsEnum:
      type: string
      enum:
      - email
      - username
    MachineConfig:
      type: object
      description: Serializer for a MachineConfig.
      properties:
        pk:
          type: string
          format: uuid
          readOnly: true
          title: Id
        name:
          type: string
          description: Name of machine
          maxLength: 255
        machine_type:
          type: string
          readOnly: true
          description: Type of machine
        driver:
          type: string
          readOnly: true
          description: Driver used for the machine
        initialized:
          type: boolean
          description: Serializer method for the initialized field.
          readOnly: true
        active:
          type: boolean
          description: Machines can be disabled
        status:
          type: integer
          description: Serializer method for the status field.
          readOnly: true
        status_model:
          type: string
          nullable: true
          description: Serializer method for the status model field.
          readOnly: true
        status_text:
          type: string
          description: Serializer method for the status text field.
          readOnly: true
        machine_errors:
          type: array
          items:
            type: string
          description: Serializer method for the errors field.
          readOnly: true
        is_driver_available:
          type: boolean
          description: Serializer method for the is_driver_available field.
          readOnly: true
        restart_required:
          type: boolean
          description: Serializer method for the restart_required field.
          readOnly: true
        properties:
          type: array
          items:
            $ref: '#/components/schemas/MachineProperty'
          readOnly: true
          default: []
      required:
      - driver
      - initialized
      - is_driver_available
      - machine_errors
      - machine_type
      - name
      - pk
      - properties
      - restart_required
      - status
      - status_text
    MachineConfigCreate:
      type: object
      description: Serializer for creating a MachineConfig.
      properties:
        pk:
          type: string
          format: uuid
          readOnly: true
          title: Id
        name:
          type: string
          description: Name of machine
          maxLength: 255
        machine_type:
          type: string
          description: Type of machine
          maxLength: 255
        driver:
          type: string
          description: Driver used for the machine
          maxLength: 255
        initialized:
          type: boolean
          description: Serializer method for the initialized field.
          readOnly: true
        active:
          type: boolean
          description: Machines can be disabled
        status:
          type: integer
          description: Serializer method for the status field.
          readOnly: true
        status_model:
          type: string
          nullable: true
          description: Serializer method for the status model field.
          readOnly: true
        status_text:
          type: string
          description: Serializer method for the status text field.
          readOnly: true
        machine_errors:
          type: array
          items:
            type: string
          description: Serializer method for the errors field.
          readOnly: true
        is_driver_available:
          type: boolean
          description: Serializer method for the is_driver_available field.
          readOnly: true
        restart_required:
          type: boolean
          description: Serializer method for the restart_required field.
          readOnly: true
        properties:
          type: array
          items:
            $ref: '#/components/schemas/MachineProperty'
          readOnly: true
          default: []
      required:
      - driver
      - initialized
      - is_driver_available
      - machine_errors
      - machine_type
      - name
      - pk
      - properties
      - restart_required
      - status
      - status_text
    MachineDriver:
      type: object
      description: Serializer for a BaseMachineDriver class.
      properties:
        slug:
          type: string
          pattern: ^[-a-zA-Z0-9_]+$
        name:
          type: string
        description:
          type: string
        provider_file:
          type: string
          description: Serializer method for the provider_file field.
          readOnly: true
        provider_plugin:
          type: object
          additionalProperties: {}
          nullable: true
          description: Serializer method for the provider_plugin field.
          readOnly: true
        is_builtin:
          type: boolean
          description: Serializer method for the is_builtin field.
          readOnly: true
        machine_type:
          type: string
          readOnly: true
          pattern: ^[-a-zA-Z0-9_]+$
        driver_errors:
          type: array
          items:
            type: string
          description: Serializer method for the errors field.
          readOnly: true
      required:
      - description
      - driver_errors
      - is_builtin
      - machine_type
      - name
      - provider_file
      - slug
    MachineProperty:
      type: object
      description: Serializer for a MachineProperty.
      properties:
        key:
          type: string
        value:
          type: string
        group:
          type: string
        type:
          type: string
        max_progress:
          type: integer
      required:
      - group
      - key
      - max_progress
      - type
      - value
    MachineRegistryError:
      type: object
      description: Serializer for a machine registry error.
      properties:
        message:
          type: string
      required:
      - message
    MachineRegistryStatus:
      type: object
      description: Serializer for machine registry status.
      properties:
        registry_errors:
          type: array
          items:
            $ref: '#/components/schemas/MachineRegistryError'
      required:
      - registry_errors
    MachineRestart:
      type: object
      description: Serializer for the machine restart response.
      properties:
        ok:
          type: boolean
      required:
      - ok
    MachineSetting:
      type: object
      description: Serializer for the MachineSetting model.
      properties:
        pk:
          type: integer
          readOnly: true
          title: ID
        key:
          type: string
          readOnly: true
        value:
          type: string
          nullable: true
        name:
          type: string
          readOnly: true
        description:
          type: string
          readOnly: true
        type:
          type: string
          readOnly: true
        choices:
          type: array
          items: {}
          description: Returns the choices available for a given item.
          readOnly: true
        model_name:
          type: string
          readOnly: true
          nullable: true
        model_filters:
          type: object
          additionalProperties: {}
          readOnly: true
        api_url:
          type: string
          readOnly: true
          nullable: true
        typ:
          type: string
          readOnly: true
        units:
          type: string
          readOnly: true
        required:
          type: boolean
          readOnly: true
        config_type:
          allOf:
          - $ref: '#/components/schemas/ConfigTypeEnum'
          readOnly: true
      required:
      - choices
      - config_type
      - description
      - key
      - model_filters
      - name
      - pk
      - required
      - typ
      - type
      - units
      - value
    MachineType:
      type: object
      description: Serializer for a BaseMachineType class.
      properties:
        slug:
          type: string
          pattern: ^[-a-zA-Z0-9_]+$
        name:
          type: string
        description:
          type: string
        provider_file:
          type: string
          description: Serializer method for the provider_file field.
          readOnly: true
        provider_plugin:
          type: object
          additionalProperties: {}
          nullable: true
          description: Serializer method for the provider_plugin field.
          readOnly: true
        is_builtin:
          type: boolean
          description: Serializer method for the is_builtin field.
          readOnly: true
      required:
      - description
      - is_builtin
      - name
      - provider_file
      - slug
    ManufacturerPart:
      type: object
      description: Serializer for ManufacturerPart object.
      properties:
        pk:
          type: integer
          readOnly: true
          title: ID
        part:
          type: integer
          title: Base Part
          description: Select part
        part_detail:
          allOf:
          - $ref: '#/components/schemas/PartBrief'
          readOnly: true
          nullable: true
        pretty_name:
          type: string
          readOnly: true
          nullable: true
        manufacturer:
          type: integer
        manufacturer_detail:
          allOf:
          - $ref: '#/components/schemas/CompanyBrief'
          readOnly: true
          nullable: true
        description:
          type: string
          nullable: true
          description: Manufacturer part description
          maxLength: 250
        MPN:
          type: string
          nullable: true
          description: Manufacturer Part Number
          maxLength: 100
        link:
          type: string
          format: uri
          nullable: true
          description: URL for external manufacturer part link
          maxLength: 2000
        barcode_hash:
          type: string
          description: Unique hash of barcode data
          maxLength: 128
        notes:
          type: string
          nullable: true
          description: Markdown notes (optional)
          maxLength: 50000
        tags:
          type: array
          items:
            type: string
      required:
      - manufacturer
      - part
      - pk
    ManufacturerPartParameter:
      type: object
      description: Serializer for the ManufacturerPartParameter model.
      properties:
        pk:
          type: integer
          readOnly: true
          title: ID
        manufacturer_part:
          type: integer
        manufacturer_part_detail:
          allOf:
          - $ref: '#/components/schemas/ManufacturerPart'
          readOnly: true
          nullable: true
        name:
          type: string
          description: Parameter name
          maxLength: 500
        value:
          type: string
          description: Parameter value
          maxLength: 500
        units:
          type: string
          nullable: true
          description: Parameter units
          maxLength: 64
      required:
      - manufacturer_part
      - name
      - pk
      - value
    MeUser:
      type: object
      description: API serializer specifically for the 'me' endpoint.
      properties:
        pk:
          type: integer
          readOnly: true
          title: ID
        username:
          type: string
          description: Username
        first_name:
          type: string
          description: First name of the user
        last_name:
          type: string
          description: Last name of the user
        email:
          type: string
          format: email
          description: Email address of the user
        groups:
          type: array
          items:
            $ref: '#/components/schemas/Group'
          readOnly: true
        group_ids:
          type: array
          items:
            type: integer
            writeOnly: true
          writeOnly: true
        is_staff:
          type: boolean
          title: Staff
          description: Does this user have staff permissions
        is_superuser:
          type: boolean
          title: Superuser
          description: Is this user a superuser
        is_active:
          type: boolean
          title: Active
          description: Is this user account active
        profile:
          allOf:
          - $ref: '#/components/schemas/UserProfile'
          readOnly: true
      required:
      - email
      - first_name
      - groups
      - last_name
      - pk
      - profile
      - username
    Metadata:
      type: object
      description: Serializer class for model metadata API access.
      properties:
        metadata: {}
      required:
      - metadata
    NameEnum:
      enum:
      - admin
      - part_category
      - part
      - stock_location
      - stock
      - build
      - purchase_order
      - sales_order
      - return_order
      type: string
      description: |-
        * `admin` - Admin
        * `part_category` - Part Categories
        * `part` - Parts
        * `stock_location` - Stock Locations
        * `stock` - Stock Items
        * `build` - Build Orders
        * `purchase_order` - Purchase Orders
        * `sales_order` - Sales Orders
        * `return_order` - Return Orders
    NewsFeedEntry:
      type: object
      description: Serializer for the NewsFeedEntry model.
      properties:
        pk:
          type: integer
          readOnly: true
          title: ID
        feed_id:
          type: string
          title: Id
          maxLength: 250
        title:
          type: string
          maxLength: 250
        link:
          type: string
          format: uri
          maxLength: 250
        published:
          type: string
          format: date-time
        author:
          type: string
          maxLength: 250
        summary:
          type: string
          maxLength: 250
        read:
          type: boolean
      required:
      - author
      - feed_id
      - link
      - pk
      - published
      - read
      - summary
      - title
    NotesImage:
      type: object
      description: Serializer for the NotesImage model.
      properties:
        pk:
          type: integer
          readOnly: true
          title: ID
        image:
          type: string
          format: uri
        user:
          type: integer
          readOnly: true
          nullable: true
        date:
          type: string
          format: date-time
          readOnly: true
        model_type:
          type: string
          nullable: true
          description: Target model type for this image
          maxLength: 100
        model_id:
          type: integer
          nullable: true
          description: Target model ID for this image
      required:
      - date
      - image
      - pk
    NotificationMessage:
      type: object
      description: Serializer for the InvenTreeUserSetting model.
      properties:
        pk:
          type: integer
          readOnly: true
          title: ID
        target:
          type: object
          additionalProperties: {}
          description: Function to resolve generic object reference to target.
          readOnly: true
        source:
          type: object
          additionalProperties: {}
          description: Function to resolve generic object reference to source.
          readOnly: true
        user:
          type: integer
          readOnly: true
        category:
          type: string
          readOnly: true
        name:
          type: string
          readOnly: true
        message:
          type: string
          readOnly: true
          nullable: true
        creation:
          type: string
          format: date-time
          readOnly: true
        age:
          type: integer
          description: Age of the message in seconds.
          readOnly: true
        age_human:
          type: string
          description: Humanized age.
          readOnly: true
        read:
          type: boolean
      required:
      - age
      - age_human
      - category
      - creation
      - name
      - pk
      - read
      - source
      - target
      - user
    NullEnum:
      enum:
      - null
    OutcomeEnum:
      enum:
      - 10
      - 20
      - 30
      - 40
      - 50
      - 60
      type: integer
      description: |-
        * `10` - Pending
        * `20` - Return
        * `30` - Repair
        * `40` - Replace
        * `50` - Refund
        * `60` - Reject
    Owner:
      type: object
      description: Serializer for an "Owner" (either a "user" or a "group").
      properties:
        pk:
          type: integer
          readOnly: true
          title: ID
        owner_id:
          type: integer
          nullable: true
        owner_model:
          type: string
          readOnly: true
        name:
          type: string
          readOnly: true
        label:
          type: string
          readOnly: true
      required:
      - label
      - name
      - owner_model
      - pk
    PageSizeEnum:
      enum:
      - A4
      - A3
      - Legal
      - Letter
      type: string
      description: |-
        * `A4` - A4
        * `A3` - A3
        * `Legal` - Legal
        * `Letter` - Letter
    PaginatedAddressList:
      type: object
      required:
      - count
      - results
      properties:
        count:
          type: integer
          example: 123
        next:
          type: string
          nullable: true
          format: uri
          example: http://api.example.org/accounts/?offset=400&limit=100
        previous:
          type: string
          nullable: true
          format: uri
          example: http://api.example.org/accounts/?offset=200&limit=100
        results:
          type: array
          items:
            $ref: '#/components/schemas/Address'
    PaginatedApiTokenList:
      type: object
      required:
      - count
      - results
      properties:
        count:
          type: integer
          example: 123
        next:
          type: string
          nullable: true
          format: uri
          example: http://api.example.org/accounts/?offset=400&limit=100
        previous:
          type: string
          nullable: true
          format: uri
          example: http://api.example.org/accounts/?offset=200&limit=100
        results:
          type: array
          items:
            $ref: '#/components/schemas/ApiToken'
    PaginatedAttachmentList:
      type: object
      required:
      - count
      - results
      properties:
        count:
          type: integer
          example: 123
        next:
          type: string
          nullable: true
          format: uri
          example: http://api.example.org/accounts/?offset=400&limit=100
        previous:
          type: string
          nullable: true
          format: uri
          example: http://api.example.org/accounts/?offset=200&limit=100
        results:
          type: array
          items:
            $ref: '#/components/schemas/Attachment'
    PaginatedBarcodeScanResultList:
      type: object
      required:
      - count
      - results
      properties:
        count:
          type: integer
          example: 123
        next:
          type: string
          nullable: true
          format: uri
          example: http://api.example.org/accounts/?offset=400&limit=100
        previous:
          type: string
          nullable: true
          format: uri
          example: http://api.example.org/accounts/?offset=200&limit=100
        results:
          type: array
          items:
            $ref: '#/components/schemas/BarcodeScanResult'
    PaginatedBomItemList:
      type: object
      required:
      - count
      - results
      properties:
        count:
          type: integer
          example: 123
        next:
          type: string
          nullable: true
          format: uri
          example: http://api.example.org/accounts/?offset=400&limit=100
        previous:
          type: string
          nullable: true
          format: uri
          example: http://api.example.org/accounts/?offset=200&limit=100
        results:
          type: array
          items:
            $ref: '#/components/schemas/BomItem'
    PaginatedBomItemSubstituteList:
      type: object
      required:
      - count
      - results
      properties:
        count:
          type: integer
          example: 123
        next:
          type: string
          nullable: true
          format: uri
          example: http://api.example.org/accounts/?offset=400&limit=100
        previous:
          type: string
          nullable: true
          format: uri
          example: http://api.example.org/accounts/?offset=200&limit=100
        results:
          type: array
          items:
            $ref: '#/components/schemas/BomItemSubstitute'
    PaginatedBuildItemList:
      type: object
      required:
      - count
      - results
      properties:
        count:
          type: integer
          example: 123
        next:
          type: string
          nullable: true
          format: uri
          example: http://api.example.org/accounts/?offset=400&limit=100
        previous:
          type: string
          nullable: true
          format: uri
          example: http://api.example.org/accounts/?offset=200&limit=100
        results:
          type: array
          items:
            $ref: '#/components/schemas/BuildItem'
    PaginatedBuildLineList:
      type: object
      required:
      - count
      - results
      properties:
        count:
          type: integer
          example: 123
        next:
          type: string
          nullable: true
          format: uri
          example: http://api.example.org/accounts/?offset=400&limit=100
        previous:
          type: string
          nullable: true
          format: uri
          example: http://api.example.org/accounts/?offset=200&limit=100
        results:
          type: array
          items:
            $ref: '#/components/schemas/BuildLine'
    PaginatedBuildList:
      type: object
      required:
      - count
      - results
      properties:
        count:
          type: integer
          example: 123
        next:
          type: string
          nullable: true
          format: uri
          example: http://api.example.org/accounts/?offset=400&limit=100
        previous:
          type: string
          nullable: true
          format: uri
          example: http://api.example.org/accounts/?offset=200&limit=100
        results:
          type: array
          items:
            $ref: '#/components/schemas/Build'
    PaginatedCategoryList:
      type: object
      required:
      - count
      - results
      properties:
        count:
          type: integer
          example: 123
        next:
          type: string
          nullable: true
          format: uri
          example: http://api.example.org/accounts/?offset=400&limit=100
        previous:
          type: string
          nullable: true
          format: uri
          example: http://api.example.org/accounts/?offset=200&limit=100
        results:
          type: array
          items:
            $ref: '#/components/schemas/Category'
    PaginatedCategoryParameterTemplateList:
      type: object
      required:
      - count
      - results
      properties:
        count:
          type: integer
          example: 123
        next:
          type: string
          nullable: true
          format: uri
          example: http://api.example.org/accounts/?offset=400&limit=100
        previous:
          type: string
          nullable: true
          format: uri
          example: http://api.example.org/accounts/?offset=200&limit=100
        results:
          type: array
          items:
            $ref: '#/components/schemas/CategoryParameterTemplate'
    PaginatedCategoryTreeList:
      type: object
      required:
      - count
      - results
      properties:
        count:
          type: integer
          example: 123
        next:
          type: string
          nullable: true
          format: uri
          example: http://api.example.org/accounts/?offset=400&limit=100
        previous:
          type: string
          nullable: true
          format: uri
          example: http://api.example.org/accounts/?offset=200&limit=100
        results:
          type: array
          items:
            $ref: '#/components/schemas/CategoryTree'
    PaginatedCompanyList:
      type: object
      required:
      - count
      - results
      properties:
        count:
          type: integer
          example: 123
        next:
          type: string
          nullable: true
          format: uri
          example: http://api.example.org/accounts/?offset=400&limit=100
        previous:
          type: string
          nullable: true
          format: uri
          example: http://api.example.org/accounts/?offset=200&limit=100
        results:
          type: array
          items:
            $ref: '#/components/schemas/Company'
    PaginatedContactList:
      type: object
      required:
      - count
      - results
      properties:
        count:
          type: integer
          example: 123
        next:
          type: string
          nullable: true
          format: uri
          example: http://api.example.org/accounts/?offset=400&limit=100
        previous:
          type: string
          nullable: true
          format: uri
          example: http://api.example.org/accounts/?offset=200&limit=100
        results:
          type: array
          items:
            $ref: '#/components/schemas/Contact'
    PaginatedContentTypeList:
      type: object
      required:
      - count
      - results
      properties:
        count:
          type: integer
          example: 123
        next:
          type: string
          nullable: true
          format: uri
          example: http://api.example.org/accounts/?offset=400&limit=100
        previous:
          type: string
          nullable: true
          format: uri
          example: http://api.example.org/accounts/?offset=200&limit=100
        results:
          type: array
          items:
            $ref: '#/components/schemas/ContentType'
    PaginatedCustomStateList:
      type: object
      required:
      - count
      - results
      properties:
        count:
          type: integer
          example: 123
        next:
          type: string
          nullable: true
          format: uri
          example: http://api.example.org/accounts/?offset=400&limit=100
        previous:
          type: string
          nullable: true
          format: uri
          example: http://api.example.org/accounts/?offset=200&limit=100
        results:
          type: array
          items:
            $ref: '#/components/schemas/CustomState'
    PaginatedCustomUnitList:
      type: object
      required:
      - count
      - results
      properties:
        count:
          type: integer
          example: 123
        next:
          type: string
          nullable: true
          format: uri
          example: http://api.example.org/accounts/?offset=400&limit=100
        previous:
          type: string
          nullable: true
          format: uri
          example: http://api.example.org/accounts/?offset=200&limit=100
        results:
          type: array
          items:
            $ref: '#/components/schemas/CustomUnit'
    PaginatedDataImportColumnMapList:
      type: object
      required:
      - count
      - results
      properties:
        count:
          type: integer
          example: 123
        next:
          type: string
          nullable: true
          format: uri
          example: http://api.example.org/accounts/?offset=400&limit=100
        previous:
          type: string
          nullable: true
          format: uri
          example: http://api.example.org/accounts/?offset=200&limit=100
        results:
          type: array
          items:
            $ref: '#/components/schemas/DataImportColumnMap'
    PaginatedDataImportRowList:
      type: object
      required:
      - count
      - results
      properties:
        count:
          type: integer
          example: 123
        next:
          type: string
          nullable: true
          format: uri
          example: http://api.example.org/accounts/?offset=400&limit=100
        previous:
          type: string
          nullable: true
          format: uri
          example: http://api.example.org/accounts/?offset=200&limit=100
        results:
          type: array
          items:
            $ref: '#/components/schemas/DataImportRow'
    PaginatedDataImportSessionList:
      type: object
      required:
      - count
      - results
      properties:
        count:
          type: integer
          example: 123
        next:
          type: string
          nullable: true
          format: uri
          example: http://api.example.org/accounts/?offset=400&limit=100
        previous:
          type: string
          nullable: true
          format: uri
          example: http://api.example.org/accounts/?offset=200&limit=100
        results:
          type: array
          items:
            $ref: '#/components/schemas/DataImportSession'
    PaginatedDataOutputList:
      type: object
      required:
      - count
      - results
      properties:
        count:
          type: integer
          example: 123
        next:
          type: string
          nullable: true
          format: uri
          example: http://api.example.org/accounts/?offset=400&limit=100
        previous:
          type: string
          nullable: true
          format: uri
          example: http://api.example.org/accounts/?offset=200&limit=100
        results:
          type: array
          items:
            $ref: '#/components/schemas/DataOutput'
    PaginatedEmailMessageList:
      type: object
      required:
      - count
      - results
      properties:
        count:
          type: integer
          example: 123
        next:
          type: string
          nullable: true
          format: uri
          example: http://api.example.org/accounts/?offset=400&limit=100
        previous:
          type: string
          nullable: true
          format: uri
          example: http://api.example.org/accounts/?offset=200&limit=100
        results:
          type: array
          items:
            $ref: '#/components/schemas/EmailMessage'
    PaginatedErrorMessageList:
      type: object
      required:
      - count
      - results
      properties:
        count:
          type: integer
          example: 123
        next:
          type: string
          nullable: true
          format: uri
          example: http://api.example.org/accounts/?offset=400&limit=100
        previous:
          type: string
          nullable: true
          format: uri
          example: http://api.example.org/accounts/?offset=200&limit=100
        results:
          type: array
          items:
            $ref: '#/components/schemas/ErrorMessage'
    PaginatedFailedTaskList:
      type: object
      required:
      - count
      - results
      properties:
        count:
          type: integer
          example: 123
        next:
          type: string
          nullable: true
          format: uri
          example: http://api.example.org/accounts/?offset=400&limit=100
        previous:
          type: string
          nullable: true
          format: uri
          example: http://api.example.org/accounts/?offset=200&limit=100
        results:
          type: array
          items:
            $ref: '#/components/schemas/FailedTask'
    PaginatedGlobalSettingsList:
      type: object
      required:
      - count
      - results
      properties:
        count:
          type: integer
          example: 123
        next:
          type: string
          nullable: true
          format: uri
          example: http://api.example.org/accounts/?offset=400&limit=100
        previous:
          type: string
          nullable: true
          format: uri
          example: http://api.example.org/accounts/?offset=200&limit=100
        results:
          type: array
          items:
            $ref: '#/components/schemas/GlobalSettings'
    PaginatedGroupList:
      type: object
      required:
      - count
      - results
      properties:
        count:
          type: integer
          example: 123
        next:
          type: string
          nullable: true
          format: uri
          example: http://api.example.org/accounts/?offset=400&limit=100
        previous:
          type: string
          nullable: true
          format: uri
          example: http://api.example.org/accounts/?offset=200&limit=100
        results:
          type: array
          items:
            $ref: '#/components/schemas/Group'
    PaginatedIconPackageList:
      type: object
      required:
      - count
      - results
      properties:
        count:
          type: integer
          example: 123
        next:
          type: string
          nullable: true
          format: uri
          example: http://api.example.org/accounts/?offset=400&limit=100
        previous:
          type: string
          nullable: true
          format: uri
          example: http://api.example.org/accounts/?offset=200&limit=100
        results:
          type: array
          items:
            $ref: '#/components/schemas/IconPackage'
    PaginatedLabelTemplateList:
      type: object
      required:
      - count
      - results
      properties:
        count:
          type: integer
          example: 123
        next:
          type: string
          nullable: true
          format: uri
          example: http://api.example.org/accounts/?offset=400&limit=100
        previous:
          type: string
          nullable: true
          format: uri
          example: http://api.example.org/accounts/?offset=200&limit=100
        results:
          type: array
          items:
            $ref: '#/components/schemas/LabelTemplate'
    PaginatedLocationList:
      type: object
      required:
      - count
      - results
      properties:
        count:
          type: integer
          example: 123
        next:
          type: string
          nullable: true
          format: uri
          example: http://api.example.org/accounts/?offset=400&limit=100
        previous:
          type: string
          nullable: true
          format: uri
          example: http://api.example.org/accounts/?offset=200&limit=100
        results:
          type: array
          items:
            $ref: '#/components/schemas/Location'
    PaginatedLocationTreeList:
      type: object
      required:
      - count
      - results
      properties:
        count:
          type: integer
          example: 123
        next:
          type: string
          nullable: true
          format: uri
          example: http://api.example.org/accounts/?offset=400&limit=100
        previous:
          type: string
          nullable: true
          format: uri
          example: http://api.example.org/accounts/?offset=200&limit=100
        results:
          type: array
          items:
            $ref: '#/components/schemas/LocationTree'
    PaginatedMachineConfigList:
      type: object
      required:
      - count
      - results
      properties:
        count:
          type: integer
          example: 123
        next:
          type: string
          nullable: true
          format: uri
          example: http://api.example.org/accounts/?offset=400&limit=100
        previous:
          type: string
          nullable: true
          format: uri
          example: http://api.example.org/accounts/?offset=200&limit=100
        results:
          type: array
          items:
            $ref: '#/components/schemas/MachineConfig'
    PaginatedManufacturerPartList:
      type: object
      required:
      - count
      - results
      properties:
        count:
          type: integer
          example: 123
        next:
          type: string
          nullable: true
          format: uri
          example: http://api.example.org/accounts/?offset=400&limit=100
        previous:
          type: string
          nullable: true
          format: uri
          example: http://api.example.org/accounts/?offset=200&limit=100
        results:
          type: array
          items:
            $ref: '#/components/schemas/ManufacturerPart'
    PaginatedManufacturerPartParameterList:
      type: object
      required:
      - count
      - results
      properties:
        count:
          type: integer
          example: 123
        next:
          type: string
          nullable: true
          format: uri
          example: http://api.example.org/accounts/?offset=400&limit=100
        previous:
          type: string
          nullable: true
          format: uri
          example: http://api.example.org/accounts/?offset=200&limit=100
        results:
          type: array
          items:
            $ref: '#/components/schemas/ManufacturerPartParameter'
    PaginatedNewsFeedEntryList:
      type: object
      required:
      - count
      - results
      properties:
        count:
          type: integer
          example: 123
        next:
          type: string
          nullable: true
          format: uri
          example: http://api.example.org/accounts/?offset=400&limit=100
        previous:
          type: string
          nullable: true
          format: uri
          example: http://api.example.org/accounts/?offset=200&limit=100
        results:
          type: array
          items:
            $ref: '#/components/schemas/NewsFeedEntry'
    PaginatedNotesImageList:
      type: object
      required:
      - count
      - results
      properties:
        count:
          type: integer
          example: 123
        next:
          type: string
          nullable: true
          format: uri
          example: http://api.example.org/accounts/?offset=400&limit=100
        previous:
          type: string
          nullable: true
          format: uri
          example: http://api.example.org/accounts/?offset=200&limit=100
        results:
          type: array
          items:
            $ref: '#/components/schemas/NotesImage'
    PaginatedNotificationMessageList:
      type: object
      required:
      - count
      - results
      properties:
        count:
          type: integer
          example: 123
        next:
          type: string
          nullable: true
          format: uri
          example: http://api.example.org/accounts/?offset=400&limit=100
        previous:
          type: string
          nullable: true
          format: uri
          example: http://api.example.org/accounts/?offset=200&limit=100
        results:
          type: array
          items:
            $ref: '#/components/schemas/NotificationMessage'
    PaginatedOwnerList:
      type: object
      required:
      - count
      - results
      properties:
        count:
          type: integer
          example: 123
        next:
          type: string
          nullable: true
          format: uri
          example: http://api.example.org/accounts/?offset=400&limit=100
        previous:
          type: string
          nullable: true
          format: uri
          example: http://api.example.org/accounts/?offset=200&limit=100
        results:
          type: array
          items:
            $ref: '#/components/schemas/Owner'
    PaginatedPartInternalPriceList:
      type: object
      required:
      - count
      - results
      properties:
        count:
          type: integer
          example: 123
        next:
          type: string
          nullable: true
          format: uri
          example: http://api.example.org/accounts/?offset=400&limit=100
        previous:
          type: string
          nullable: true
          format: uri
          example: http://api.example.org/accounts/?offset=200&limit=100
        results:
          type: array
          items:
            $ref: '#/components/schemas/PartInternalPrice'
    PaginatedPartList:
      type: object
      required:
      - count
      - results
      properties:
        count:
          type: integer
          example: 123
        next:
          type: string
          nullable: true
          format: uri
          example: http://api.example.org/accounts/?offset=400&limit=100
        previous:
          type: string
          nullable: true
          format: uri
          example: http://api.example.org/accounts/?offset=200&limit=100
        results:
          type: array
          items:
            $ref: '#/components/schemas/Part'
    PaginatedPartParameterList:
      type: object
      required:
      - count
      - results
      properties:
        count:
          type: integer
          example: 123
        next:
          type: string
          nullable: true
          format: uri
          example: http://api.example.org/accounts/?offset=400&limit=100
        previous:
          type: string
          nullable: true
          format: uri
          example: http://api.example.org/accounts/?offset=200&limit=100
        results:
          type: array
          items:
            $ref: '#/components/schemas/PartParameter'
    PaginatedPartParameterTemplateList:
      type: object
      required:
      - count
      - results
      properties:
        count:
          type: integer
          example: 123
        next:
          type: string
          nullable: true
          format: uri
          example: http://api.example.org/accounts/?offset=400&limit=100
        previous:
          type: string
          nullable: true
          format: uri
          example: http://api.example.org/accounts/?offset=200&limit=100
        results:
          type: array
          items:
            $ref: '#/components/schemas/PartParameterTemplate'
    PaginatedPartRelationList:
      type: object
      required:
      - count
      - results
      properties:
        count:
          type: integer
          example: 123
        next:
          type: string
          nullable: true
          format: uri
          example: http://api.example.org/accounts/?offset=400&limit=100
        previous:
          type: string
          nullable: true
          format: uri
          example: http://api.example.org/accounts/?offset=200&limit=100
        results:
          type: array
          items:
            $ref: '#/components/schemas/PartRelation'
    PaginatedPartSalePriceList:
      type: object
      required:
      - count
      - results
      properties:
        count:
          type: integer
          example: 123
        next:
          type: string
          nullable: true
          format: uri
          example: http://api.example.org/accounts/?offset=400&limit=100
        previous:
          type: string
          nullable: true
          format: uri
          example: http://api.example.org/accounts/?offset=200&limit=100
        results:
          type: array
          items:
            $ref: '#/components/schemas/PartSalePrice'
    PaginatedPartStocktakeList:
      type: object
      required:
      - count
      - results
      properties:
        count:
          type: integer
          example: 123
        next:
          type: string
          nullable: true
          format: uri
          example: http://api.example.org/accounts/?offset=400&limit=100
        previous:
          type: string
          nullable: true
          format: uri
          example: http://api.example.org/accounts/?offset=200&limit=100
        results:
          type: array
          items:
            $ref: '#/components/schemas/PartStocktake'
    PaginatedPartTestTemplateList:
      type: object
      required:
      - count
      - results
      properties:
        count:
          type: integer
          example: 123
        next:
          type: string
          nullable: true
          format: uri
          example: http://api.example.org/accounts/?offset=400&limit=100
        previous:
          type: string
          nullable: true
          format: uri
          example: http://api.example.org/accounts/?offset=200&limit=100
        results:
          type: array
          items:
            $ref: '#/components/schemas/PartTestTemplate'
    PaginatedPartThumbList:
      type: object
      required:
      - count
      - results
      properties:
        count:
          type: integer
          example: 123
        next:
          type: string
          nullable: true
          format: uri
          example: http://api.example.org/accounts/?offset=400&limit=100
        previous:
          type: string
          nullable: true
          format: uri
          example: http://api.example.org/accounts/?offset=200&limit=100
        results:
          type: array
          items:
            $ref: '#/components/schemas/PartThumb'
    PaginatedPendingTaskList:
      type: object
      required:
      - count
      - results
      properties:
        count:
          type: integer
          example: 123
        next:
          type: string
          nullable: true
          format: uri
          example: http://api.example.org/accounts/?offset=400&limit=100
        previous:
          type: string
          nullable: true
          format: uri
          example: http://api.example.org/accounts/?offset=200&limit=100
        results:
          type: array
          items:
            $ref: '#/components/schemas/PendingTask'
    PaginatedPluginConfigList:
      type: object
      required:
      - count
      - results
      properties:
        count:
          type: integer
          example: 123
        next:
          type: string
          nullable: true
          format: uri
          example: http://api.example.org/accounts/?offset=400&limit=100
        previous:
          type: string
          nullable: true
          format: uri
          example: http://api.example.org/accounts/?offset=200&limit=100
        results:
          type: array
          items:
            $ref: '#/components/schemas/PluginConfig'
    PaginatedPluginSettingList:
      type: object
      required:
      - count
      - results
      properties:
        count:
          type: integer
          example: 123
        next:
          type: string
          nullable: true
          format: uri
          example: http://api.example.org/accounts/?offset=400&limit=100
        previous:
          type: string
          nullable: true
          format: uri
          example: http://api.example.org/accounts/?offset=200&limit=100
        results:
          type: array
          items:
            $ref: '#/components/schemas/PluginSetting'
    PaginatedProjectCodeList:
      type: object
      required:
      - count
      - results
      properties:
        count:
          type: integer
          example: 123
        next:
          type: string
          nullable: true
          format: uri
          example: http://api.example.org/accounts/?offset=400&limit=100
        previous:
          type: string
          nullable: true
          format: uri
          example: http://api.example.org/accounts/?offset=200&limit=100
        results:
          type: array
          items:
            $ref: '#/components/schemas/ProjectCode'
    PaginatedPurchaseOrderExtraLineList:
      type: object
      required:
      - count
      - results
      properties:
        count:
          type: integer
          example: 123
        next:
          type: string
          nullable: true
          format: uri
          example: http://api.example.org/accounts/?offset=400&limit=100
        previous:
          type: string
          nullable: true
          format: uri
          example: http://api.example.org/accounts/?offset=200&limit=100
        results:
          type: array
          items:
            $ref: '#/components/schemas/PurchaseOrderExtraLine'
    PaginatedPurchaseOrderLineItemList:
      type: object
      required:
      - count
      - results
      properties:
        count:
          type: integer
          example: 123
        next:
          type: string
          nullable: true
          format: uri
          example: http://api.example.org/accounts/?offset=400&limit=100
        previous:
          type: string
          nullable: true
          format: uri
          example: http://api.example.org/accounts/?offset=200&limit=100
        results:
          type: array
          items:
            $ref: '#/components/schemas/PurchaseOrderLineItem'
    PaginatedPurchaseOrderList:
      type: object
      required:
      - count
      - results
      properties:
        count:
          type: integer
          example: 123
        next:
          type: string
          nullable: true
          format: uri
          example: http://api.example.org/accounts/?offset=400&limit=100
        previous:
          type: string
          nullable: true
          format: uri
          example: http://api.example.org/accounts/?offset=200&limit=100
        results:
          type: array
          items:
            $ref: '#/components/schemas/PurchaseOrder'
    PaginatedReportAssetList:
      type: object
      required:
      - count
      - results
      properties:
        count:
          type: integer
          example: 123
        next:
          type: string
          nullable: true
          format: uri
          example: http://api.example.org/accounts/?offset=400&limit=100
        previous:
          type: string
          nullable: true
          format: uri
          example: http://api.example.org/accounts/?offset=200&limit=100
        results:
          type: array
          items:
            $ref: '#/components/schemas/ReportAsset'
    PaginatedReportSnippetList:
      type: object
      required:
      - count
      - results
      properties:
        count:
          type: integer
          example: 123
        next:
          type: string
          nullable: true
          format: uri
          example: http://api.example.org/accounts/?offset=400&limit=100
        previous:
          type: string
          nullable: true
          format: uri
          example: http://api.example.org/accounts/?offset=200&limit=100
        results:
          type: array
          items:
            $ref: '#/components/schemas/ReportSnippet'
    PaginatedReportTemplateList:
      type: object
      required:
      - count
      - results
      properties:
        count:
          type: integer
          example: 123
        next:
          type: string
          nullable: true
          format: uri
          example: http://api.example.org/accounts/?offset=400&limit=100
        previous:
          type: string
          nullable: true
          format: uri
          example: http://api.example.org/accounts/?offset=200&limit=100
        results:
          type: array
          items:
            $ref: '#/components/schemas/ReportTemplate'
    PaginatedReturnOrderExtraLineList:
      type: object
      required:
      - count
      - results
      properties:
        count:
          type: integer
          example: 123
        next:
          type: string
          nullable: true
          format: uri
          example: http://api.example.org/accounts/?offset=400&limit=100
        previous:
          type: string
          nullable: true
          format: uri
          example: http://api.example.org/accounts/?offset=200&limit=100
        results:
          type: array
          items:
            $ref: '#/components/schemas/ReturnOrderExtraLine'
    PaginatedReturnOrderLineItemList:
      type: object
      required:
      - count
      - results
      properties:
        count:
          type: integer
          example: 123
        next:
          type: string
          nullable: true
          format: uri
          example: http://api.example.org/accounts/?offset=400&limit=100
        previous:
          type: string
          nullable: true
          format: uri
          example: http://api.example.org/accounts/?offset=200&limit=100
        results:
          type: array
          items:
            $ref: '#/components/schemas/ReturnOrderLineItem'
    PaginatedReturnOrderList:
      type: object
      required:
      - count
      - results
      properties:
        count:
          type: integer
          example: 123
        next:
          type: string
          nullable: true
          format: uri
          example: http://api.example.org/accounts/?offset=400&limit=100
        previous:
          type: string
          nullable: true
          format: uri
          example: http://api.example.org/accounts/?offset=200&limit=100
        results:
          type: array
          items:
            $ref: '#/components/schemas/ReturnOrder'
    PaginatedRuleSetList:
      type: object
      required:
      - count
      - results
      properties:
        count:
          type: integer
          example: 123
        next:
          type: string
          nullable: true
          format: uri
          example: http://api.example.org/accounts/?offset=400&limit=100
        previous:
          type: string
          nullable: true
          format: uri
          example: http://api.example.org/accounts/?offset=200&limit=100
        results:
          type: array
          items:
            $ref: '#/components/schemas/RuleSet'
    PaginatedSalesOrderAllocationList:
      type: object
      required:
      - count
      - results
      properties:
        count:
          type: integer
          example: 123
        next:
          type: string
          nullable: true
          format: uri
          example: http://api.example.org/accounts/?offset=400&limit=100
        previous:
          type: string
          nullable: true
          format: uri
          example: http://api.example.org/accounts/?offset=200&limit=100
        results:
          type: array
          items:
            $ref: '#/components/schemas/SalesOrderAllocation'
    PaginatedSalesOrderExtraLineList:
      type: object
      required:
      - count
      - results
      properties:
        count:
          type: integer
          example: 123
        next:
          type: string
          nullable: true
          format: uri
          example: http://api.example.org/accounts/?offset=400&limit=100
        previous:
          type: string
          nullable: true
          format: uri
          example: http://api.example.org/accounts/?offset=200&limit=100
        results:
          type: array
          items:
            $ref: '#/components/schemas/SalesOrderExtraLine'
    PaginatedSalesOrderLineItemList:
      type: object
      required:
      - count
      - results
      properties:
        count:
          type: integer
          example: 123
        next:
          type: string
          nullable: true
          format: uri
          example: http://api.example.org/accounts/?offset=400&limit=100
        previous:
          type: string
          nullable: true
          format: uri
          example: http://api.example.org/accounts/?offset=200&limit=100
        results:
          type: array
          items:
            $ref: '#/components/schemas/SalesOrderLineItem'
    PaginatedSalesOrderList:
      type: object
      required:
      - count
      - results
      properties:
        count:
          type: integer
          example: 123
        next:
          type: string
          nullable: true
          format: uri
          example: http://api.example.org/accounts/?offset=400&limit=100
        previous:
          type: string
          nullable: true
          format: uri
          example: http://api.example.org/accounts/?offset=200&limit=100
        results:
          type: array
          items:
            $ref: '#/components/schemas/SalesOrder'
    PaginatedSalesOrderShipmentList:
      type: object
      required:
      - count
      - results
      properties:
        count:
          type: integer
          example: 123
        next:
          type: string
          nullable: true
          format: uri
          example: http://api.example.org/accounts/?offset=400&limit=100
        previous:
          type: string
          nullable: true
          format: uri
          example: http://api.example.org/accounts/?offset=200&limit=100
        results:
          type: array
          items:
            $ref: '#/components/schemas/SalesOrderShipment'
    PaginatedScheduledTaskList:
      type: object
      required:
      - count
      - results
      properties:
        count:
          type: integer
          example: 123
        next:
          type: string
          nullable: true
          format: uri
          example: http://api.example.org/accounts/?offset=400&limit=100
        previous:
          type: string
          nullable: true
          format: uri
          example: http://api.example.org/accounts/?offset=200&limit=100
        results:
          type: array
          items:
            $ref: '#/components/schemas/ScheduledTask'
    PaginatedSelectionEntryList:
      type: object
      required:
      - count
      - results
      properties:
        count:
          type: integer
          example: 123
        next:
          type: string
          nullable: true
          format: uri
          example: http://api.example.org/accounts/?offset=400&limit=100
        previous:
          type: string
          nullable: true
          format: uri
          example: http://api.example.org/accounts/?offset=200&limit=100
        results:
          type: array
          items:
            $ref: '#/components/schemas/SelectionEntry'
    PaginatedSelectionListList:
      type: object
      required:
      - count
      - results
      properties:
        count:
          type: integer
          example: 123
        next:
          type: string
          nullable: true
          format: uri
          example: http://api.example.org/accounts/?offset=400&limit=100
        previous:
          type: string
          nullable: true
          format: uri
          example: http://api.example.org/accounts/?offset=200&limit=100
        results:
          type: array
          items:
            $ref: '#/components/schemas/SelectionList'
    PaginatedStockItemList:
      type: object
      required:
      - count
      - results
      properties:
        count:
          type: integer
          example: 123
        next:
          type: string
          nullable: true
          format: uri
          example: http://api.example.org/accounts/?offset=400&limit=100
        previous:
          type: string
          nullable: true
          format: uri
          example: http://api.example.org/accounts/?offset=200&limit=100
        results:
          type: array
          items:
            $ref: '#/components/schemas/StockItem'
    PaginatedStockItemTestResultList:
      type: object
      required:
      - count
      - results
      properties:
        count:
          type: integer
          example: 123
        next:
          type: string
          nullable: true
          format: uri
          example: http://api.example.org/accounts/?offset=400&limit=100
        previous:
          type: string
          nullable: true
          format: uri
          example: http://api.example.org/accounts/?offset=200&limit=100
        results:
          type: array
          items:
            $ref: '#/components/schemas/StockItemTestResult'
    PaginatedStockLocationTypeList:
      type: object
      required:
      - count
      - results
      properties:
        count:
          type: integer
          example: 123
        next:
          type: string
          nullable: true
          format: uri
          example: http://api.example.org/accounts/?offset=400&limit=100
        previous:
          type: string
          nullable: true
          format: uri
          example: http://api.example.org/accounts/?offset=200&limit=100
        results:
          type: array
          items:
            $ref: '#/components/schemas/StockLocationType'
    PaginatedStockTrackingList:
      type: object
      required:
      - count
      - results
      properties:
        count:
          type: integer
          example: 123
        next:
          type: string
          nullable: true
          format: uri
          example: http://api.example.org/accounts/?offset=400&limit=100
        previous:
          type: string
          nullable: true
          format: uri
          example: http://api.example.org/accounts/?offset=200&limit=100
        results:
          type: array
          items:
            $ref: '#/components/schemas/StockTracking'
    PaginatedSupplierPartList:
      type: object
      required:
      - count
      - results
      properties:
        count:
          type: integer
          example: 123
        next:
          type: string
          nullable: true
          format: uri
          example: http://api.example.org/accounts/?offset=400&limit=100
        previous:
          type: string
          nullable: true
          format: uri
          example: http://api.example.org/accounts/?offset=200&limit=100
        results:
          type: array
          items:
            $ref: '#/components/schemas/SupplierPart'
    PaginatedSupplierPriceBreakList:
      type: object
      required:
      - count
      - results
      properties:
        count:
          type: integer
          example: 123
        next:
          type: string
          nullable: true
          format: uri
          example: http://api.example.org/accounts/?offset=400&limit=100
        previous:
          type: string
          nullable: true
          format: uri
          example: http://api.example.org/accounts/?offset=200&limit=100
        results:
          type: array
          items:
            $ref: '#/components/schemas/SupplierPriceBreak'
    PaginatedUserCreateList:
      type: object
      required:
      - count
      - results
      properties:
        count:
          type: integer
          example: 123
        next:
          type: string
          nullable: true
          format: uri
          example: http://api.example.org/accounts/?offset=400&limit=100
        previous:
          type: string
          nullable: true
          format: uri
          example: http://api.example.org/accounts/?offset=200&limit=100
        results:
          type: array
          items:
            $ref: '#/components/schemas/UserCreate'
    PaginatedUserSettingsList:
      type: object
      required:
      - count
      - results
      properties:
        count:
          type: integer
          example: 123
        next:
          type: string
          nullable: true
          format: uri
          example: http://api.example.org/accounts/?offset=400&limit=100
        previous:
          type: string
          nullable: true
          format: uri
          example: http://api.example.org/accounts/?offset=200&limit=100
        results:
          type: array
          items:
            $ref: '#/components/schemas/UserSettings'
    Part:
      type: object
      description: |-
        Serializer for complete detail information of a part.

        Used when displaying all details of a single component.
      properties:
        active:
          type: boolean
          description: Is this part active?
        assembly:
          type: boolean
          description: Can this part be built from other parts?
        barcode_hash:
          type: string
          readOnly: true
          description: Unique hash of barcode data
        category:
          type: integer
          nullable: true
        category_detail:
          allOf:
          - $ref: '#/components/schemas/Category'
          readOnly: true
          nullable: true
        category_path:
          type: array
          items:
            type: object
            additionalProperties: {}
          readOnly: true
          nullable: true
        category_name:
          type: string
          readOnly: true
        component:
          type: boolean
          description: Can this part be used to build other parts?
        creation_date:
          type: string
          format: date
          readOnly: true
          nullable: true
        creation_user:
          type: integer
          nullable: true
        default_expiry:
          type: integer
          minimum: 0
          description: Expiry time (in days) for stock items of this part
        default_location:
          type: integer
          nullable: true
          description: Where is this item normally stored?
        default_location_detail:
          allOf:
          - $ref: '#/components/schemas/DefaultLocation'
          readOnly: true
          nullable: true
        default_supplier:
          type: integer
          nullable: true
          description: Default supplier part
        description:
          type: string
          description: Part description (optional)
          maxLength: 250
        full_name:
          type: string
          description: Format a 'full name' for this Part based on the format PART_NAME_FORMAT
            defined in InvenTree settings.
          readOnly: true
        image:
          type: string
          format: uri
          nullable: true
        remote_image:
          type: string
          format: uri
          writeOnly: true
          description: URL of remote image file
        existing_image:
          type: string
          writeOnly: true
          description: Filename of an existing part image
        IPN:
          type: string
          default: ''
          maxLength: 100
        is_template:
          type: boolean
          description: Is this part a template part?
        keywords:
          type: string
          nullable: true
          description: Part keywords to improve visibility in search results
          maxLength: 250
        link:
          type: string
          format: uri
          nullable: true
          description: Link to external URL
          maxLength: 2000
        locked:
          type: boolean
          description: Locked parts cannot be edited
        minimum_stock:
          type: number
          format: double
          default: 0.0
        name:
          type: string
          description: Part name
          maxLength: 100
        notes:
          type: string
          nullable: true
          description: Markdown notes (optional)
          maxLength: 50000
        parameters:
          type: array
          items:
            $ref: '#/components/schemas/PartParameter'
          readOnly: true
          nullable: true
        pk:
          type: integer
          readOnly: true
          title: ID
        purchaseable:
          type: boolean
          description: Can this part be purchased from external suppliers?
        revision:
          type: string
          nullable: true
          default: ''
          maxLength: 100
        revision_of:
          type: integer
          nullable: true
          description: Is this part a revision of another part?
        revision_count:
          type: integer
          readOnly: true
          nullable: true
          title: Revisions
        salable:
          type: boolean
          description: Can this part be sold to customers?
        starred:
          type: boolean
          description: Return "true" if the part is starred by the current user.
          readOnly: true
        thumbnail:
          type: string
          readOnly: true
        testable:
          type: boolean
          description: Can this part have test results recorded against it?
        trackable:
          type: boolean
          description: Does this part have tracking for unique items?
        units:
          type: string
          nullable: true
          description: Units of measure for this part
          maxLength: 20
        variant_of:
          type: integer
          nullable: true
          description: Is this part a variant of another part?
        virtual:
          type: boolean
          description: Is this a virtual part, such as a software product or license?
        pricing_min:
          type: string
          format: decimal
          pattern: ^-?\d{0,13}(?:\.\d{0,6})?$
          readOnly: true
          nullable: true
        pricing_max:
          type: string
          format: decimal
          pattern: ^-?\d{0,13}(?:\.\d{0,6})?$
          readOnly: true
          nullable: true
        pricing_updated:
          type: string
          format: date-time
          readOnly: true
          nullable: true
        responsible:
          type: integer
          nullable: true
        allocated_to_build_orders:
          type: number
          format: double
          readOnly: true
          nullable: true
        allocated_to_sales_orders:
          type: number
          format: double
          readOnly: true
          nullable: true
        building:
          type: number
          format: double
          readOnly: true
          nullable: true
          description: Quantity of this part currently being in production
        scheduled_to_build:
          type: number
          format: double
          readOnly: true
          nullable: true
          description: Outstanding quantity of this part scheduled to be built
        category_default_location:
          type: integer
          readOnly: true
          nullable: true
        in_stock:
          type: number
          format: double
          readOnly: true
          nullable: true
        ordering:
          type: number
          format: double
          readOnly: true
          nullable: true
          title: On Order
        required_for_build_orders:
          type: integer
          readOnly: true
          nullable: true
        required_for_sales_orders:
          type: integer
          readOnly: true
          nullable: true
        stock_item_count:
          type: integer
          readOnly: true
          nullable: true
          title: Stock Items
        suppliers:
          type: integer
          readOnly: true
          nullable: true
        total_in_stock:
          type: number
          format: double
          readOnly: true
          nullable: true
          title: Total Stock
        external_stock:
          type: number
          format: double
          readOnly: true
          nullable: true
        unallocated_stock:
          type: number
          format: double
          readOnly: true
          nullable: true
        variant_stock:
          type: number
          format: double
          readOnly: true
          nullable: true
        duplicate:
          allOf:
          - $ref: '#/components/schemas/DuplicatePart'
          writeOnly: true
          title: Duplicate Part
          description: Copy initial data from another Part
        initial_stock:
          allOf:
          - $ref: '#/components/schemas/InitialStock'
          writeOnly: true
          description: Create Part with initial stock quantity
        initial_supplier:
          allOf:
          - $ref: '#/components/schemas/InitialSupplier'
          writeOnly: true
          title: Supplier Information
          description: Add initial supplier information for this part
        copy_category_parameters:
          type: boolean
          default: true
          description: Copy parameter templates from selected part category
        tags:
          type: array
          items:
            type: string
      required:
      - barcode_hash
      - category_name
      - full_name
      - name
      - pk
      - starred
      - thumbnail
    PartBomValidate:
      type: object
      description: Serializer for Part BOM information.
      properties:
        pk:
          type: integer
          readOnly: true
          title: ID
        bom_validated:
          type: boolean
          readOnly: true
          description: Is the BOM for this part valid?
        bom_checksum:
          type: string
          readOnly: true
          description: Stored BOM checksum
        bom_checked_by:
          type: integer
          readOnly: true
          nullable: true
        bom_checked_by_detail:
          allOf:
          - $ref: '#/components/schemas/User'
          readOnly: true
          nullable: true
        bom_checked_date:
          type: string
          format: date
          readOnly: true
          nullable: true
        valid:
          type: boolean
          writeOnly: true
          default: false
          description: Validate entire Bill of Materials
      required:
      - bom_checksum
      - bom_validated
      - pk
    PartBrief:
      type: object
      description: Serializer for Part (brief detail).
      properties:
        pk:
          type: integer
          readOnly: true
          title: ID
        IPN:
          type: string
          nullable: true
          description: Internal Part Number
          maxLength: 100
        barcode_hash:
          type: string
          readOnly: true
          description: Unique hash of barcode data
        category_default_location:
          type: integer
          readOnly: true
          nullable: true
        default_location:
          type: integer
          nullable: true
          description: Where is this item normally stored?
        default_expiry:
          type: integer
          minimum: 0
          description: Expiry time (in days) for stock items of this part
        name:
          type: string
          description: Part name
          maxLength: 100
        revision:
          type: string
          nullable: true
          default: ''
          maxLength: 100
        full_name:
          type: string
          description: Format a 'full name' for this Part based on the format PART_NAME_FORMAT
            defined in InvenTree settings.
          readOnly: true
        description:
          type: string
          description: Part description (optional)
          maxLength: 250
        image:
          type: string
          format: uri
          readOnly: true
          nullable: true
        thumbnail:
          type: string
          readOnly: true
        active:
          type: boolean
          description: Is this part active?
        locked:
          type: boolean
          description: Locked parts cannot be edited
        assembly:
          type: boolean
          description: Can this part be built from other parts?
        component:
          type: boolean
          description: Can this part be used to build other parts?
        minimum_stock:
          type: string
          format: decimal
          pattern: ^-?\d{0,13}(?:\.\d{0,6})?$
          description: Minimum allowed stock level
        is_template:
          type: boolean
          description: Is this part a template part?
        purchaseable:
          type: boolean
          description: Can this part be purchased from external suppliers?
        salable:
          type: boolean
          description: Can this part be sold to customers?
        testable:
          type: boolean
          description: Can this part have test results recorded against it?
        trackable:
          type: boolean
          description: Does this part have tracking for unique items?
        virtual:
          type: boolean
          description: Is this a virtual part, such as a software product or license?
        units:
          type: string
          nullable: true
          description: Units of measure for this part
          maxLength: 20
        pricing_min:
          type: string
          format: decimal
          pattern: ^-?\d{0,13}(?:\.\d{0,6})?$
          readOnly: true
          nullable: true
        pricing_max:
          type: string
          format: decimal
          pattern: ^-?\d{0,13}(?:\.\d{0,6})?$
          readOnly: true
          nullable: true
      required:
      - barcode_hash
      - full_name
      - name
      - pk
      - thumbnail
    PartCopyBOM:
      type: object
      description: Serializer for copying a BOM from another part.
      properties:
        part:
          type: integer
          description: Select part to copy BOM from
        remove_existing:
          type: boolean
          default: true
          title: Remove Existing Data
          description: Remove existing BOM items before copying
        include_inherited:
          type: boolean
          default: false
          description: Include BOM items which are inherited from templated parts
        skip_invalid:
          type: boolean
          default: false
          title: Skip Invalid Rows
          description: Enable this option to skip invalid rows
        copy_substitutes:
          type: boolean
          default: true
          title: Copy Substitute Parts
          description: Copy substitute parts when duplicate BOM items
      required:
      - part
    PartInternalPrice:
      type: object
      description: Serializer for internal prices for Part model.
      properties:
        pk:
          type: integer
          readOnly: true
          title: ID
        part:
          type: integer
        quantity:
          type: number
          format: double
        price:
          type: string
          format: decimal
          pattern: ^-?\d{0,13}(?:\.\d{0,6})?$
          nullable: true
        price_currency:
          type: string
          title: Currency
          description: |-
            Purchase currency of this stock item

            * `AUD` - AUD - Australian Dollar
            * `CNY` - CNY - Chinese Yuan
            * `EUR` - EUR - Euro
            * `USD` - USD - US Dollar

            Other valid currencies may be found in the 'CURRENCY_CODES' global setting.
      required:
      - part
      - pk
      - quantity
    PartParameter:
      type: object
      description: JSON serializers for the PartParameter model.
      properties:
        pk:
          type: integer
          readOnly: true
          title: ID
        part:
          type: integer
          description: Parent Part
        part_detail:
          allOf:
          - $ref: '#/components/schemas/PartBrief'
          readOnly: true
          nullable: true
        template:
          type: integer
          description: Parameter Template
        template_detail:
          allOf:
          - $ref: '#/components/schemas/PartParameterTemplate'
          readOnly: true
          nullable: true
        data:
          type: string
          description: Parameter Value
          maxLength: 500
          minLength: 1
        data_numeric:
          type: number
          format: double
          nullable: true
        note:
          type: string
          description: Optional note field
          maxLength: 500
        updated:
          type: string
          format: date-time
          readOnly: true
          nullable: true
          description: Timestamp of last update
        updated_by:
          type: integer
          readOnly: true
          nullable: true
          title: Update By
          description: User who last updated this object
        updated_by_detail:
          allOf:
          - $ref: '#/components/schemas/User'
          readOnly: true
          nullable: true
      required:
      - data
      - part
      - pk
      - template
    PartParameterTemplate:
      type: object
      description: JSON serializer for the PartParameterTemplate model.
      properties:
        pk:
          type: integer
          readOnly: true
          title: ID
        name:
          type: string
          description: Parameter Name
          maxLength: 100
        units:
          type: string
          description: Physical units for this parameter
          maxLength: 25
        description:
          type: string
          description: Parameter description
          maxLength: 250
        parts:
          type: integer
          readOnly: true
          nullable: true
          description: Number of parts using this template
        checkbox:
          type: boolean
          description: Is this parameter a checkbox?
        choices:
          type: string
          description: Valid choices for this parameter (comma-separated)
          maxLength: 5000
        selectionlist:
          type: integer
          nullable: true
          title: Selection List
          description: Selection list for this parameter
      required:
      - name
      - pk
    PartPricing:
      type: object
      description: Serializer for Part pricing information.
      properties:
        currency:
          type: string
          readOnly: true
          nullable: true
        updated:
          type: string
          format: date-time
          readOnly: true
          nullable: true
        scheduled_for_update:
          type: boolean
          readOnly: true
        bom_cost_min:
          type: string
          format: decimal
          pattern: ^-?\d{0,13}(?:\.\d{0,6})?$
          readOnly: true
          nullable: true
        bom_cost_max:
          type: string
          format: decimal
          pattern: ^-?\d{0,13}(?:\.\d{0,6})?$
          readOnly: true
          nullable: true
        purchase_cost_min:
          type: string
          format: decimal
          pattern: ^-?\d{0,13}(?:\.\d{0,6})?$
          readOnly: true
          nullable: true
        purchase_cost_max:
          type: string
          format: decimal
          pattern: ^-?\d{0,13}(?:\.\d{0,6})?$
          readOnly: true
          nullable: true
        internal_cost_min:
          type: string
          format: decimal
          pattern: ^-?\d{0,13}(?:\.\d{0,6})?$
          readOnly: true
          nullable: true
        internal_cost_max:
          type: string
          format: decimal
          pattern: ^-?\d{0,13}(?:\.\d{0,6})?$
          readOnly: true
          nullable: true
        supplier_price_min:
          type: string
          format: decimal
          pattern: ^-?\d{0,13}(?:\.\d{0,6})?$
          readOnly: true
          nullable: true
        supplier_price_max:
          type: string
          format: decimal
          pattern: ^-?\d{0,13}(?:\.\d{0,6})?$
          readOnly: true
          nullable: true
        variant_cost_min:
          type: string
          format: decimal
          pattern: ^-?\d{0,13}(?:\.\d{0,6})?$
          readOnly: true
          nullable: true
        variant_cost_max:
          type: string
          format: decimal
          pattern: ^-?\d{0,13}(?:\.\d{0,6})?$
          readOnly: true
          nullable: true
        override_min:
          type: string
          format: decimal
          pattern: ^-?\d{0,13}(?:\.\d{0,6})?$
          nullable: true
          title: Minimum Price
          description: Override calculated value for minimum price
        override_min_currency:
          type: string
          description: |-
            Select currency from available options

            * `AUD` - AUD - Australian Dollar
            * `CNY` - CNY - Chinese Yuan
            * `EUR` - EUR - Euro
            * `USD` - USD - US Dollar

            Other valid currencies may be found in the 'CURRENCY_CODES' global setting.
          title: Minimum price currency
        override_max:
          type: string
          format: decimal
          pattern: ^-?\d{0,13}(?:\.\d{0,6})?$
          nullable: true
          title: Maximum Price
          description: Override calculated value for maximum price
        override_max_currency:
          type: string
          description: |-
            Select currency from available options

            * `AUD` - AUD - Australian Dollar
            * `CNY` - CNY - Chinese Yuan
            * `EUR` - EUR - Euro
            * `USD` - USD - US Dollar

            Other valid currencies may be found in the 'CURRENCY_CODES' global setting.
          title: Maximum price currency
        overall_min:
          type: string
          format: decimal
          pattern: ^-?\d{0,13}(?:\.\d{0,6})?$
          readOnly: true
          nullable: true
        overall_max:
          type: string
          format: decimal
          pattern: ^-?\d{0,13}(?:\.\d{0,6})?$
          readOnly: true
          nullable: true
        sale_price_min:
          type: string
          format: decimal
          pattern: ^-?\d{0,13}(?:\.\d{0,6})?$
          readOnly: true
          nullable: true
        sale_price_max:
          type: string
          format: decimal
          pattern: ^-?\d{0,13}(?:\.\d{0,6})?$
          readOnly: true
          nullable: true
        sale_history_min:
          type: string
          format: decimal
          pattern: ^-?\d{0,13}(?:\.\d{0,6})?$
          readOnly: true
          nullable: true
        sale_history_max:
          type: string
          format: decimal
          pattern: ^-?\d{0,13}(?:\.\d{0,6})?$
          readOnly: true
          nullable: true
        update:
          type: boolean
          writeOnly: true
          nullable: true
          default: false
          description: Update pricing for this part
      required:
      - scheduled_for_update
    PartRelation:
      type: object
      description: Serializer for a PartRelated model.
      properties:
        pk:
          type: integer
          readOnly: true
          title: ID
        part_1:
          type: integer
        part_1_detail:
          allOf:
          - $ref: '#/components/schemas/Part'
          readOnly: true
        part_2:
          type: integer
          description: Select Related Part
        part_2_detail:
          allOf:
          - $ref: '#/components/schemas/Part'
          readOnly: true
        note:
          type: string
          description: Note for this relationship
          maxLength: 500
      required:
      - part_1
      - part_1_detail
      - part_2
      - part_2_detail
      - pk
    PartRequirements:
      type: object
      description: Serializer for Part requirements.
      properties:
        total_stock:
          type: number
          format: double
          readOnly: true
        unallocated_stock:
          type: number
          format: double
          readOnly: true
          title: Available Stock
        can_build:
          type: number
          format: double
          readOnly: true
        ordering:
          type: number
          format: double
          readOnly: true
          title: On Order
        building:
          type: number
          format: double
          readOnly: true
          title: In Production
        scheduled_to_build:
          type: integer
          readOnly: true
        required_for_build_orders:
          type: number
          format: double
          readOnly: true
        allocated_to_build_orders:
          type: number
          format: double
          readOnly: true
        required_for_sales_orders:
          type: number
          format: double
          readOnly: true
        allocated_to_sales_orders:
          type: number
          format: double
          description: Return the allocated sales order quantity.
          readOnly: true
      required:
      - allocated_to_build_orders
      - allocated_to_sales_orders
      - building
      - can_build
      - ordering
      - required_for_build_orders
      - required_for_sales_orders
      - scheduled_to_build
      - total_stock
      - unallocated_stock
    PartSalePrice:
      type: object
      description: Serializer for sale prices for Part model.
      properties:
        pk:
          type: integer
          readOnly: true
          title: ID
        part:
          type: integer
        quantity:
          type: number
          format: double
        price:
          type: string
          format: decimal
          pattern: ^-?\d{0,13}(?:\.\d{0,6})?$
          nullable: true
        price_currency:
          type: string
          title: Currency
          description: |-
            Purchase currency of this stock item

            * `AUD` - AUD - Australian Dollar
            * `CNY` - CNY - Chinese Yuan
            * `EUR` - EUR - Euro
            * `USD` - USD - US Dollar

            Other valid currencies may be found in the 'CURRENCY_CODES' global setting.
      required:
      - part
      - pk
      - quantity
    PartSerialNumber:
      type: object
      description: Serializer for Part serial number information.
      properties:
        latest:
          type: string
          readOnly: true
          nullable: true
        next:
          type: string
          readOnly: true
      required:
      - next
    PartStocktake:
      type: object
      description: Serializer for the PartStocktake model.
      properties:
        pk:
          type: integer
          readOnly: true
          title: ID
        date:
          type: string
          format: date
          readOnly: true
          description: Date stocktake was performed
        part:
          type: integer
          description: Part for stocktake
        item_count:
          type: integer
          description: Number of individual stock entries at time of stocktake
        quantity:
          type: number
          format: double
        cost_min:
          type: string
          format: decimal
          pattern: ^-?\d{0,13}(?:\.\d{0,6})?$
          nullable: true
        cost_min_currency:
          type: string
          title: Currency
          description: |-
            Select currency from available options

            * `AUD` - AUD - Australian Dollar
            * `CNY` - CNY - Chinese Yuan
            * `EUR` - EUR - Euro
            * `USD` - USD - US Dollar

            Other valid currencies may be found in the 'CURRENCY_CODES' global setting.
        cost_max:
          type: string
          format: decimal
          pattern: ^-?\d{0,13}(?:\.\d{0,6})?$
          nullable: true
        cost_max_currency:
          type: string
          title: Currency
          description: |-
            Select currency from available options

            * `AUD` - AUD - Australian Dollar
            * `CNY` - CNY - Chinese Yuan
            * `EUR` - EUR - Euro
            * `USD` - USD - US Dollar

            Other valid currencies may be found in the 'CURRENCY_CODES' global setting.
      required:
      - date
      - part
      - pk
      - quantity
    PartTestTemplate:
      type: object
      description: Serializer for the PartTestTemplate class.
      properties:
        pk:
          type: integer
          readOnly: true
          title: ID
        key:
          type: string
          readOnly: true
        part:
          type: integer
        test_name:
          type: string
          description: Enter a name for the test
          maxLength: 100
        description:
          type: string
          nullable: true
          title: Test Description
          description: Enter description for this test
          maxLength: 100
        enabled:
          type: boolean
          description: Is this test enabled?
        required:
          type: boolean
          description: Is this test required to pass?
        requires_value:
          type: boolean
          description: Does this test require a value when adding a test result?
        requires_attachment:
          type: boolean
          description: Does this test require a file attachment when adding a test
            result?
        results:
          type: integer
          readOnly: true
          description: Number of results recorded against this template
        choices:
          type: string
          description: Valid choices for this test (comma-separated)
          maxLength: 5000
      required:
      - key
      - part
      - pk
      - results
      - test_name
    PartThumb:
      type: object
      description: |-
        Serializer for the 'image' field of the Part model.

        Used to serve and display existing Part images.
      properties:
        image:
          type: string
          format: uri
          readOnly: true
        count:
          type: integer
          readOnly: true
      required:
      - count
      - image
    PartThumbSerializerUpdate:
      type: object
      description: Serializer for updating Part thumbnail.
      properties:
        image:
          type: string
          format: uri
      required:
      - image
    PatchedAddress:
      type: object
      description: Serializer for the Address Model.
      properties:
        pk:
          type: integer
          readOnly: true
          title: ID
        company:
          type: integer
          description: Select company
        title:
          type: string
          title: Address title
          description: Title describing the address entry
          maxLength: 100
        primary:
          type: boolean
          title: Primary address
          description: Set as primary address
        line1:
          type: string
          title: Line 1
          description: Address line 1
          maxLength: 50
        line2:
          type: string
          title: Line 2
          description: Address line 2
          maxLength: 50
        postal_code:
          type: string
          description: Postal code
          maxLength: 10
        postal_city:
          type: string
          title: City/Region
          description: Postal code city/region
          maxLength: 50
        province:
          type: string
          title: State/Province
          description: State or province
          maxLength: 50
        country:
          type: string
          description: Address country
          maxLength: 50
        shipping_notes:
          type: string
          title: Courier shipping notes
          description: Notes for shipping courier
          maxLength: 100
        internal_shipping_notes:
          type: string
          description: Shipping notes for internal use
          maxLength: 100
        link:
          type: string
          format: uri
          description: Link to address information (external)
          maxLength: 2000
    PatchedAttachment:
      type: object
      description: Serializer class for the Attachment model.
      properties:
        pk:
          type: integer
          readOnly: true
          title: ID
        attachment:
          type: string
          format: uri
          nullable: true
        filename:
          type: string
        link:
          type: string
          format: uri
          nullable: true
          description: Link to external URL
          maxLength: 2000
        comment:
          type: string
          description: Attachment comment
          maxLength: 250
        upload_date:
          type: string
          format: date
          readOnly: true
        upload_user:
          type: integer
          readOnly: true
          nullable: true
          title: User
          description: User
        user_detail:
          allOf:
          - $ref: '#/components/schemas/User'
          readOnly: true
        file_size:
          type: integer
          readOnly: true
          description: File size in bytes
        model_type:
          $ref: '#/components/schemas/AttachmentModelTypeEnum'
        model_id:
          type: integer
        tags:
          type: array
          items:
            type: string
    PatchedBomItem:
      type: object
      description: Serializer for BomItem object.
      properties:
        part:
          type: integer
          title: Assembly
          description: Select the parent assembly
        sub_part:
          type: integer
          title: Component
          description: Select the component part
        reference:
          type: string
          description: BOM item reference
          maxLength: 5000
        quantity:
          type: number
          format: double
        allow_variants:
          type: boolean
          description: Stock items for variant parts can be used for this BOM item
        inherited:
          type: boolean
          title: Gets inherited
          description: This BOM item is inherited by BOMs for variant parts
        optional:
          type: boolean
          description: This BOM item is optional
        consumable:
          type: boolean
          description: This BOM item is consumable (it is not tracked in build orders)
        setup_quantity:
          type: number
          format: double
        attrition:
          type: number
          format: double
        rounding_multiple:
          type: number
          format: double
          nullable: true
        note:
          type: string
          description: BOM item notes
          maxLength: 500
        pk:
          type: integer
          readOnly: true
          title: ID
        part_detail:
          allOf:
          - $ref: '#/components/schemas/PartBrief'
          readOnly: true
          nullable: true
          title: Assembly
        pricing_min:
          type: string
          format: decimal
          pattern: ^-?\d{0,13}(?:\.\d{0,6})?$
          readOnly: true
          nullable: true
        pricing_max:
          type: string
          format: decimal
          pattern: ^-?\d{0,13}(?:\.\d{0,6})?$
          readOnly: true
          nullable: true
        pricing_min_total:
          type: string
          format: decimal
          pattern: ^-?\d{0,13}(?:\.\d{0,6})?$
          readOnly: true
          nullable: true
        pricing_max_total:
          type: string
          format: decimal
          pattern: ^-?\d{0,13}(?:\.\d{0,6})?$
          readOnly: true
          nullable: true
        pricing_updated:
          type: string
          format: date-time
          readOnly: true
          nullable: true
        sub_part_detail:
          allOf:
          - $ref: '#/components/schemas/PartBrief'
          readOnly: true
          nullable: true
          title: Component
        substitutes:
          type: array
          items:
            $ref: '#/components/schemas/BomItemSubstitute'
          readOnly: true
          nullable: true
        validated:
          type: boolean
          description: This BOM item has been validated
        available_stock:
          type: number
          format: double
          readOnly: true
          nullable: true
        available_substitute_stock:
          type: number
          format: double
          readOnly: true
          nullable: true
        available_variant_stock:
          type: number
          format: double
          readOnly: true
          nullable: true
        external_stock:
          type: number
          format: double
          readOnly: true
          nullable: true
        on_order:
          type: number
          format: double
          readOnly: true
          nullable: true
        building:
          type: number
          format: double
          readOnly: true
          nullable: true
          title: In Production
        can_build:
          type: number
          format: double
          readOnly: true
          nullable: true
    PatchedBomItemSubstitute:
      type: object
      description: Serializer for the BomItemSubstitute class.
      properties:
        pk:
          type: integer
          readOnly: true
          title: ID
        bom_item:
          type: integer
          description: Parent BOM item
        part:
          type: integer
          description: Substitute part
        part_detail:
          allOf:
          - $ref: '#/components/schemas/PartBrief'
          readOnly: true
    PatchedBomItemValidation:
      type: object
      description: Simple serializer for passing a single boolean field.
      properties:
        valid:
          type: boolean
          default: false
    PatchedBuild:
      type: object
      description: Serializes a Build object.
      properties:
        pk:
          type: integer
          readOnly: true
          title: ID
        title:
          type: string
          title: Description
          description: Brief description of the build (optional)
          maxLength: 100
        barcode_hash:
          type: string
          readOnly: true
        batch:
          type: string
          nullable: true
          title: Batch Code
          description: Batch code for this build output
          maxLength: 100
        creation_date:
          type: string
          format: date
          readOnly: true
        completed:
          type: integer
          readOnly: true
          title: Completed items
          description: Number of stock items which have been completed
        completion_date:
          type: string
          format: date
          nullable: true
        destination:
          type: integer
          nullable: true
          title: Destination Location
          description: Select location where the completed items will be stored
        external:
          type: boolean
          title: External Build
          description: This build order is fulfilled externally
        parent:
          type: integer
          nullable: true
          title: Parent Build
          description: BuildOrder to which this build is allocated
        part:
          type: integer
          description: Select part to build
        part_name:
          type: string
          readOnly: true
        part_detail:
          allOf:
          - $ref: '#/components/schemas/PartBrief'
          readOnly: true
        project_code:
          type: integer
          nullable: true
          description: Project code for this build order
        project_code_label:
          type: string
          readOnly: true
          nullable: true
        project_code_detail:
          allOf:
          - $ref: '#/components/schemas/ProjectCode'
          readOnly: true
          nullable: true
        overdue:
          type: boolean
          readOnly: true
          default: false
        reference:
          type: string
        sales_order:
          type: integer
          nullable: true
          title: Sales Order Reference
          description: SalesOrder to which this build is allocated
        quantity:
          type: number
          format: double
        start_date:
          type: string
          format: date
          nullable: true
          title: Build start date
          description: Scheduled start date for this build order
        status:
          allOf:
          - $ref: '#/components/schemas/BuildStatusEnum'
          readOnly: true
          title: Build Status
          description: |-
            Build status code

            * `10` - Pending
            * `20` - Production
            * `25` - On Hold
            * `30` - Cancelled
            * `40` - Complete
        status_text:
          type: string
          readOnly: true
        status_custom_key:
          type: integer
          readOnly: true
          nullable: true
          title: Custom status key
          description: |-
            Additional status information for this item

            * `10` - Pending
            * `20` - Production
            * `25` - On Hold
            * `30` - Cancelled
            * `40` - Complete

            Additional custom status keys may be retrieved from the corresponding 'status_retrieve' call.
        target_date:
          type: string
          format: date
          nullable: true
          title: Target completion date
          description: Target date for build completion. Build will be overdue after
            this date.
        take_from:
          type: integer
          nullable: true
          title: Source Location
          description: Select location to take stock from for this build (leave blank
            to take from any stock location)
        notes:
          type: string
          nullable: true
          description: Markdown notes (optional)
          maxLength: 50000
        link:
          type: string
          format: uri
          title: External Link
          description: Link to external URL
          maxLength: 2000
        issued_by:
          type: integer
          nullable: true
          description: User who issued this build order
        issued_by_detail:
          allOf:
          - $ref: '#/components/schemas/User'
          readOnly: true
        responsible:
          type: integer
          nullable: true
          description: User or group responsible for this build order
        responsible_detail:
          allOf:
          - $ref: '#/components/schemas/Owner'
          readOnly: true
          nullable: true
        priority:
          type: integer
          minimum: 0
          title: Build Priority
          description: Priority of this build order
        level:
          type: integer
          readOnly: true
          title: Build Level
    PatchedBuildItem:
      type: object
      description: Serializes a BuildItem object, which is an allocation of a stock
        item against a build order.
      properties:
        pk:
          type: integer
          readOnly: true
          title: ID
        build:
          type: integer
          readOnly: true
        build_line:
          type: integer
          nullable: true
        install_into:
          type: integer
          nullable: true
          description: Destination stock item
        stock_item:
          type: integer
          description: Source stock item
        quantity:
          type: number
          format: double
          title: Allocated Quantity
        location:
          type: integer
          readOnly: true
        build_detail:
          allOf:
          - $ref: '#/components/schemas/Build'
          readOnly: true
          nullable: true
          title: Build
        location_detail:
          allOf:
          - $ref: '#/components/schemas/LocationBrief'
          readOnly: true
          nullable: true
          title: Location
        part_detail:
          allOf:
          - $ref: '#/components/schemas/PartBrief'
          readOnly: true
          nullable: true
          title: Part
        stock_item_detail:
          allOf:
          - $ref: '#/components/schemas/StockItem'
          readOnly: true
          nullable: true
          title: Stock Item
        supplier_part_detail:
          allOf:
          - $ref: '#/components/schemas/SupplierPart'
          readOnly: true
          nullable: true
          title: Supplier Part
        bom_reference:
          type: string
          readOnly: true
    PatchedBuildLine:
      type: object
      description: Serializer for a BuildItem object.
      properties:
        pk:
          type: integer
          readOnly: true
          title: ID
        build:
          type: integer
          readOnly: true
          description: Build object
        bom_item:
          type: integer
          readOnly: true
        quantity:
          type: number
          format: double
        consumed:
          type: number
          format: double
        allocations:
          type: array
          items:
            $ref: '#/components/schemas/BuildItem'
          readOnly: true
        part:
          type: integer
          readOnly: true
        build_reference:
          type: string
          readOnly: true
        reference:
          type: string
          readOnly: true
        consumable:
          type: boolean
          readOnly: true
        optional:
          type: boolean
          readOnly: true
        testable:
          type: boolean
          readOnly: true
        trackable:
          type: boolean
          readOnly: true
        inherited:
          type: boolean
          readOnly: true
        allow_variants:
          type: boolean
          readOnly: true
        allocated:
          type: number
          format: double
          readOnly: true
        in_production:
          type: number
          format: double
          readOnly: true
        scheduled_to_build:
          type: number
          format: double
          readOnly: true
        on_order:
          type: number
          format: double
          readOnly: true
        available_stock:
          type: number
          format: double
          readOnly: true
        available_substitute_stock:
          type: number
          format: double
          readOnly: true
        available_variant_stock:
          type: number
          format: double
          readOnly: true
        external_stock:
          type: number
          format: double
          readOnly: true
        bom_item_detail:
          allOf:
          - $ref: '#/components/schemas/BomItem'
          readOnly: true
          title: BOM Item
        assembly_detail:
          allOf:
          - $ref: '#/components/schemas/PartBrief'
          readOnly: true
          nullable: true
          title: Assembly
        part_detail:
          allOf:
          - $ref: '#/components/schemas/PartBrief'
          readOnly: true
          title: Part
        build_detail:
          allOf:
          - $ref: '#/components/schemas/Build'
          readOnly: true
          nullable: true
          title: Build
    PatchedCategory:
      type: object
      description: Serializer for PartCategory.
      properties:
        pk:
          type: integer
          readOnly: true
          title: ID
        name:
          type: string
          description: Name
          maxLength: 100
        description:
          type: string
          description: Description (optional)
          maxLength: 250
        default_location:
          type: integer
          nullable: true
          description: Default location for parts in this category
        default_keywords:
          type: string
          nullable: true
          description: Default keywords for parts in this category
          maxLength: 250
        level:
          type: integer
          readOnly: true
        parent:
          type: integer
          nullable: true
          title: Parent Category
          description: Parent part category
        part_count:
          type: integer
          readOnly: true
          nullable: true
          title: Parts
        subcategories:
          type: integer
          readOnly: true
          nullable: true
        pathstring:
          type: string
          readOnly: true
          title: Path
          description: Path
        path:
          type: array
          items:
            type: object
            additionalProperties: {}
          readOnly: true
          nullable: true
        starred:
          type: boolean
          description: Return True if the category is directly "starred" by the current
            user.
          readOnly: true
        structural:
          type: boolean
          description: Parts may not be directly assigned to a structural category,
            but may be assigned to child categories.
        icon:
          type: string
          nullable: true
          description: Icon (optional)
          maxLength: 100
        parent_default_location:
          type: integer
          readOnly: true
          nullable: true
    PatchedCategoryParameterTemplate:
      type: object
      description: Serializer for the PartCategoryParameterTemplate model.
      properties:
        pk:
          type: integer
          readOnly: true
          title: ID
        category:
          type: integer
          description: Part Category
        category_detail:
          allOf:
          - $ref: '#/components/schemas/Category'
          readOnly: true
          nullable: true
        parameter_template:
          type: integer
          description: Parameter Template
        parameter_template_detail:
          allOf:
          - $ref: '#/components/schemas/PartParameterTemplate'
          readOnly: true
        default_value:
          type: string
          description: Default Parameter Value
          maxLength: 500
    PatchedCompany:
      type: object
      description: Serializer for Company object (full detail).
      properties:
        pk:
          type: integer
          readOnly: true
          title: ID
        name:
          type: string
          title: Company name
          description: Company name
          maxLength: 100
        description:
          type: string
          title: Company description
          description: Description of the company
          maxLength: 500
        website:
          type: string
          format: uri
          description: Company website URL
          maxLength: 2000
        phone:
          type: string
          title: Phone number
          description: Contact phone number
          maxLength: 50
        address:
          type: string
          readOnly: true
          nullable: true
          title: Return the string representation for the primary address. This property
            exists for backwards compatibility.
        email:
          type: string
          format: email
          nullable: true
          default: ''
        currency:
          type: string
          description: |-
            Default currency used for this supplier

            * `AUD` - AUD - Australian Dollar
            * `CNY` - CNY - Chinese Yuan
            * `EUR` - EUR - Euro
            * `USD` - USD - US Dollar

            Other valid currencies may be found in the 'CURRENCY_CODES' global setting.
        contact:
          type: string
          description: Point of contact
          maxLength: 100
        link:
          type: string
          format: uri
          description: Link to external company information
          maxLength: 2000
        image:
          type: string
          format: uri
          nullable: true
        active:
          type: boolean
          description: Is this company active?
        is_customer:
          type: boolean
          description: Do you sell items to this company?
        is_manufacturer:
          type: boolean
          description: Does this company manufacture parts?
        is_supplier:
          type: boolean
          description: Do you purchase items from this company?
        notes:
          type: string
          nullable: true
          description: Markdown notes (optional)
          maxLength: 50000
        parts_supplied:
          type: integer
          readOnly: true
        parts_manufactured:
          type: integer
          readOnly: true
        remote_image:
          type: string
          format: uri
          writeOnly: true
          description: URL of remote image file
        address_count:
          type: integer
          readOnly: true
        primary_address:
          allOf:
          - $ref: '#/components/schemas/Address'
          readOnly: true
          nullable: true
        tax_id:
          type: string
          description: Company Tax ID
          maxLength: 50
    PatchedContact:
      type: object
      description: Serializer class for the Contact model.
      properties:
        pk:
          type: integer
          readOnly: true
          title: ID
        company:
          type: integer
        company_name:
          type: string
          readOnly: true
        name:
          type: string
          maxLength: 100
        phone:
          type: string
          maxLength: 100
        email:
          type: string
          format: email
          maxLength: 254
        role:
          type: string
          maxLength: 100
    PatchedCustomState:
      type: object
      description: Serializer for the custom state model.
      properties:
        pk:
          type: integer
          readOnly: true
          title: ID
        key:
          type: integer
          title: Value
          description: Numerical value that will be saved in the models database
        name:
          type: string
          description: Name of the state
          maxLength: 250
        label:
          type: string
          description: Label that will be displayed in the frontend
          maxLength: 250
        color:
          allOf:
          - $ref: '#/components/schemas/ColorEnum'
          description: |-
            Color that will be displayed in the frontend

            * `primary` - primary
            * `secondary` - secondary
            * `success` - success
            * `danger` - danger
            * `warning` - warning
            * `info` - info
            * `dark` - dark
        logical_key:
          type: integer
          description: State logical key that is equal to this custom state in business
            logic
        model:
          type: integer
          nullable: true
          description: Model this state is associated with
        model_name:
          type: string
          readOnly: true
        reference_status:
          $ref: '#/components/schemas/ReferenceStatusEnum'
    PatchedCustomUnit:
      type: object
      description: DRF serializer for CustomUnit model.
      properties:
        pk:
          type: integer
          readOnly: true
          title: ID
        name:
          type: string
          description: Unit name
          maxLength: 50
        symbol:
          type: string
          description: Optional unit symbol
          maxLength: 10
        definition:
          type: string
          description: Unit definition
          maxLength: 50
    PatchedDataImportColumnMap:
      type: object
      description: Serializer for the DataImportColumnMap model.
      properties:
        pk:
          type: integer
          readOnly: true
          title: ID
        session:
          type: integer
          readOnly: true
          title: Import Session
        column:
          type: string
          maxLength: 100
        field:
          type: string
          readOnly: true
        label:
          type: string
          readOnly: true
        description:
          type: string
          readOnly: true
    PatchedDataImportRow:
      type: object
      description: Serializer for the DataImportRow model.
      properties:
        pk:
          type: integer
          readOnly: true
          title: ID
        session:
          type: integer
          readOnly: true
          title: Import Session
        row_index:
          type: integer
          readOnly: true
        row_data:
          readOnly: true
          nullable: true
          title: Original row data
        data:
          nullable: true
        errors:
          readOnly: true
          nullable: true
        valid:
          type: boolean
          readOnly: true
        complete:
          type: boolean
          readOnly: true
    PatchedDataImportSession:
      type: object
      description: Serializer for the DataImportSession model.
      properties:
        pk:
          type: integer
          readOnly: true
          title: ID
        timestamp:
          type: string
          format: date-time
          readOnly: true
        data_file:
          type: string
          format: uri
        update_records:
          type: boolean
          title: Update Existing Records
          description: If enabled, existing records will be updated with new data
        model_type:
          $ref: '#/components/schemas/DataImportSessionModelTypeEnum'
        available_fields:
          readOnly: true
        status:
          allOf:
          - $ref: '#/components/schemas/DataImportSessionStatusEnum'
          readOnly: true
          description: |-
            Import status

            * `0` - Initializing
            * `10` - Mapping Columns
            * `20` - Importing Data
            * `30` - Processing Data
            * `40` - Complete
        user:
          type: integer
          readOnly: true
          nullable: true
        user_detail:
          allOf:
          - $ref: '#/components/schemas/User'
          readOnly: true
        columns:
          readOnly: true
          nullable: true
        column_mappings:
          type: array
          items:
            $ref: '#/components/schemas/DataImportColumnMap'
          readOnly: true
        field_defaults:
          nullable: true
        field_overrides:
          nullable: true
        field_filters:
          nullable: true
        row_count:
          type: integer
          readOnly: true
        completed_row_count:
          type: integer
          readOnly: true
    PatchedErrorMessage:
      type: object
      description: DRF serializer for server error messages.
      properties:
        when:
          type: string
          format: date-time
          readOnly: true
        info:
          type: string
          readOnly: true
        data:
          type: string
          readOnly: true
          nullable: true
        path:
          type: string
          format: uri
          readOnly: true
          nullable: true
          maxLength: 200
        pk:
          type: integer
          readOnly: true
          title: ID
    PatchedExtendedUser:
      type: object
      description: Serializer for a User with a bit more info.
      properties:
        pk:
          type: integer
          readOnly: true
          title: ID
        username:
          type: string
          description: Username
        first_name:
          type: string
          description: First name of the user
        last_name:
          type: string
          description: Last name of the user
        email:
          type: string
          format: email
          description: Email address of the user
        groups:
          type: array
          items:
            $ref: '#/components/schemas/Group'
          readOnly: true
        group_ids:
          type: array
          items:
            type: integer
            writeOnly: true
          writeOnly: true
        is_staff:
          type: boolean
          title: Staff
          description: Does this user have staff permissions
        is_superuser:
          type: boolean
          title: Superuser
          description: Is this user a superuser
        is_active:
          type: boolean
          title: Active
          description: Is this user account active
        profile:
          allOf:
          - $ref: '#/components/schemas/BriefUserProfile'
          readOnly: true
    PatchedGlobalSettings:
      type: object
      description: Serializer for the InvenTreeSetting model.
      properties:
        pk:
          type: integer
          readOnly: true
          title: ID
        key:
          type: string
          readOnly: true
        value:
          type: string
          nullable: true
        name:
          type: string
          readOnly: true
        description:
          type: string
          readOnly: true
        type:
          type: string
          readOnly: true
        units:
          type: string
          readOnly: true
        choices:
          type: array
          items: {}
          description: Returns the choices available for a given item.
          readOnly: true
        model_name:
          type: string
          readOnly: true
          nullable: true
        api_url:
          type: string
          readOnly: true
          nullable: true
        typ:
          type: string
          readOnly: true
        read_only:
          type: boolean
          description: Indicates if the setting is overridden by an environment variable
          readOnly: true
          title: Override
    PatchedGroup:
      type: object
      description: Serializer for a 'Group'.
      properties:
        pk:
          type: integer
          readOnly: true
          title: ID
        name:
          type: string
          maxLength: 150
        permissions:
          type: object
          additionalProperties: {}
          description: Return a list of permissions associated with the group.
          readOnly: true
          nullable: true
        roles:
          type: array
          items:
            $ref: '#/components/schemas/RuleSet'
          readOnly: true
          nullable: true
        users:
          type: array
          items:
            $ref: '#/components/schemas/User'
          readOnly: true
          nullable: true
    PatchedLabelTemplate:
      type: object
      description: Serializer class for label template model.
      properties:
        pk:
          type: integer
          readOnly: true
          title: ID
        name:
          type: string
          description: Template name
          maxLength: 100
        description:
          type: string
          description: Template description
          maxLength: 250
        model_type:
          $ref: '#/components/schemas/TemplateModelTypeEnum'
        template:
          type: string
          format: uri
        filters:
          type: string
          description: Template query filters (comma-separated list of key=value pairs)
          maxLength: 250
        filename_pattern:
          type: string
          description: Pattern for generating filenames
          maxLength: 100
        enabled:
          type: boolean
          description: Template is enabled
        revision:
          type: integer
          readOnly: true
        attach_to_model:
          type: boolean
          title: Attach to Model on Print
          description: Save report output as an attachment against linked model instance
            when printing
        width:
          type: number
          format: double
          minimum: 2
          title: Width [mm]
          description: Label width, specified in mm
        height:
          type: number
          format: double
          minimum: 2
          title: Height [mm]
          description: Label height, specified in mm
    PatchedLocation:
      type: object
      description: Detailed information about a stock location.
      properties:
        pk:
          type: integer
          readOnly: true
          title: ID
        barcode_hash:
          type: string
          readOnly: true
          description: Unique hash of barcode data
        name:
          type: string
          description: Name
          maxLength: 100
        level:
          type: integer
          readOnly: true
        description:
          type: string
          description: Description (optional)
          maxLength: 250
        parent:
          type: integer
          nullable: true
          title: Parent Location
          description: Parent stock location
        pathstring:
          type: string
          readOnly: true
          title: Path
          description: Path
        path:
          type: array
          items:
            type: object
            additionalProperties: {}
          readOnly: true
          nullable: true
        items:
          type: integer
          readOnly: true
          title: Stock Items
        sublocations:
          type: integer
          readOnly: true
        owner:
          type: integer
          nullable: true
          description: Select Owner
        icon:
          type: string
          readOnly: true
        custom_icon:
          type: string
          nullable: true
          title: Icon
          description: Icon (optional)
          maxLength: 100
        structural:
          type: boolean
          description: Stock items may not be directly located into a structural stock
            locations, but may be located to child locations.
        external:
          type: boolean
          description: This is an external stock location
        location_type:
          type: integer
          nullable: true
          description: Stock location type of this location
        location_type_detail:
          allOf:
          - $ref: '#/components/schemas/StockLocationType'
          readOnly: true
          nullable: true
        tags:
          type: array
          items:
            type: string
    PatchedMachineConfig:
      type: object
      description: Serializer for a MachineConfig.
      properties:
        pk:
          type: string
          format: uuid
          readOnly: true
          title: Id
        name:
          type: string
          description: Name of machine
          maxLength: 255
        machine_type:
          type: string
          readOnly: true
          description: Type of machine
        driver:
          type: string
          readOnly: true
          description: Driver used for the machine
        initialized:
          type: boolean
          description: Serializer method for the initialized field.
          readOnly: true
        active:
          type: boolean
          description: Machines can be disabled
        status:
          type: integer
          description: Serializer method for the status field.
          readOnly: true
        status_model:
          type: string
          nullable: true
          description: Serializer method for the status model field.
          readOnly: true
        status_text:
          type: string
          description: Serializer method for the status text field.
          readOnly: true
        machine_errors:
          type: array
          items:
            type: string
          description: Serializer method for the errors field.
          readOnly: true
        is_driver_available:
          type: boolean
          description: Serializer method for the is_driver_available field.
          readOnly: true
        restart_required:
          type: boolean
          description: Serializer method for the restart_required field.
          readOnly: true
        properties:
          type: array
          items:
            $ref: '#/components/schemas/MachineProperty'
          readOnly: true
          default: []
    PatchedMachineSetting:
      type: object
      description: Serializer for the MachineSetting model.
      properties:
        pk:
          type: integer
          readOnly: true
          title: ID
        key:
          type: string
          readOnly: true
        value:
          type: string
          nullable: true
        name:
          type: string
          readOnly: true
        description:
          type: string
          readOnly: true
        type:
          type: string
          readOnly: true
        choices:
          type: array
          items: {}
          description: Returns the choices available for a given item.
          readOnly: true
        model_name:
          type: string
          readOnly: true
          nullable: true
        model_filters:
          type: object
          additionalProperties: {}
          readOnly: true
        api_url:
          type: string
          readOnly: true
          nullable: true
        typ:
          type: string
          readOnly: true
        units:
          type: string
          readOnly: true
        required:
          type: boolean
          readOnly: true
        config_type:
          allOf:
          - $ref: '#/components/schemas/ConfigTypeEnum'
          readOnly: true
    PatchedManufacturerPart:
      type: object
      description: Serializer for ManufacturerPart object.
      properties:
        pk:
          type: integer
          readOnly: true
          title: ID
        part:
          type: integer
          title: Base Part
          description: Select part
        part_detail:
          allOf:
          - $ref: '#/components/schemas/PartBrief'
          readOnly: true
          nullable: true
        pretty_name:
          type: string
          readOnly: true
          nullable: true
        manufacturer:
          type: integer
        manufacturer_detail:
          allOf:
          - $ref: '#/components/schemas/CompanyBrief'
          readOnly: true
          nullable: true
        description:
          type: string
          nullable: true
          description: Manufacturer part description
          maxLength: 250
        MPN:
          type: string
          nullable: true
          description: Manufacturer Part Number
          maxLength: 100
        link:
          type: string
          format: uri
          nullable: true
          description: URL for external manufacturer part link
          maxLength: 2000
        barcode_hash:
          type: string
          description: Unique hash of barcode data
          maxLength: 128
        notes:
          type: string
          nullable: true
          description: Markdown notes (optional)
          maxLength: 50000
        tags:
          type: array
          items:
            type: string
    PatchedManufacturerPartParameter:
      type: object
      description: Serializer for the ManufacturerPartParameter model.
      properties:
        pk:
          type: integer
          readOnly: true
          title: ID
        manufacturer_part:
          type: integer
        manufacturer_part_detail:
          allOf:
          - $ref: '#/components/schemas/ManufacturerPart'
          readOnly: true
          nullable: true
        name:
          type: string
          description: Parameter name
          maxLength: 500
        value:
          type: string
          description: Parameter value
          maxLength: 500
        units:
          type: string
          nullable: true
          description: Parameter units
          maxLength: 64
    PatchedMeUser:
      type: object
      description: API serializer specifically for the 'me' endpoint.
      properties:
        pk:
          type: integer
          readOnly: true
          title: ID
        username:
          type: string
          description: Username
        first_name:
          type: string
          description: First name of the user
        last_name:
          type: string
          description: Last name of the user
        email:
          type: string
          format: email
          description: Email address of the user
        groups:
          type: array
          items:
            $ref: '#/components/schemas/Group'
          readOnly: true
        group_ids:
          type: array
          items:
            type: integer
            writeOnly: true
          writeOnly: true
        is_staff:
          type: boolean
          title: Staff
          description: Does this user have staff permissions
        is_superuser:
          type: boolean
          title: Superuser
          description: Is this user a superuser
        is_active:
          type: boolean
          title: Active
          description: Is this user account active
        profile:
          allOf:
          - $ref: '#/components/schemas/UserProfile'
          readOnly: true
    PatchedMetadata:
      type: object
      description: Serializer class for model metadata API access.
      properties:
        metadata: {}
    PatchedNewsFeedEntry:
      type: object
      description: Serializer for the NewsFeedEntry model.
      properties:
        pk:
          type: integer
          readOnly: true
          title: ID
        feed_id:
          type: string
          title: Id
          maxLength: 250
        title:
          type: string
          maxLength: 250
        link:
          type: string
          format: uri
          maxLength: 250
        published:
          type: string
          format: date-time
        author:
          type: string
          maxLength: 250
        summary:
          type: string
          maxLength: 250
        read:
          type: boolean
    PatchedNotificationMessage:
      type: object
      description: Serializer for the InvenTreeUserSetting model.
      properties:
        pk:
          type: integer
          readOnly: true
          title: ID
        target:
          type: object
          additionalProperties: {}
          description: Function to resolve generic object reference to target.
          readOnly: true
        source:
          type: object
          additionalProperties: {}
          description: Function to resolve generic object reference to source.
          readOnly: true
        user:
          type: integer
          readOnly: true
        category:
          type: string
          readOnly: true
        name:
          type: string
          readOnly: true
        message:
          type: string
          readOnly: true
          nullable: true
        creation:
          type: string
          format: date-time
          readOnly: true
        age:
          type: integer
          description: Age of the message in seconds.
          readOnly: true
        age_human:
          type: string
          description: Humanized age.
          readOnly: true
        read:
          type: boolean
    PatchedPart:
      type: object
      description: |-
        Serializer for complete detail information of a part.

        Used when displaying all details of a single component.
      properties:
        active:
          type: boolean
          description: Is this part active?
        assembly:
          type: boolean
          description: Can this part be built from other parts?
        barcode_hash:
          type: string
          readOnly: true
          description: Unique hash of barcode data
        category:
          type: integer
          nullable: true
        category_detail:
          allOf:
          - $ref: '#/components/schemas/Category'
          readOnly: true
          nullable: true
        category_path:
          type: array
          items:
            type: object
            additionalProperties: {}
          readOnly: true
          nullable: true
        category_name:
          type: string
          readOnly: true
        component:
          type: boolean
          description: Can this part be used to build other parts?
        creation_date:
          type: string
          format: date
          readOnly: true
          nullable: true
        creation_user:
          type: integer
          nullable: true
        default_expiry:
          type: integer
          minimum: 0
          description: Expiry time (in days) for stock items of this part
        default_location:
          type: integer
          nullable: true
          description: Where is this item normally stored?
        default_location_detail:
          allOf:
          - $ref: '#/components/schemas/DefaultLocation'
          readOnly: true
          nullable: true
        default_supplier:
          type: integer
          nullable: true
          description: Default supplier part
        description:
          type: string
          description: Part description (optional)
          maxLength: 250
        full_name:
          type: string
          description: Format a 'full name' for this Part based on the format PART_NAME_FORMAT
            defined in InvenTree settings.
          readOnly: true
        image:
          type: string
          format: uri
          nullable: true
        remote_image:
          type: string
          format: uri
          writeOnly: true
          description: URL of remote image file
        existing_image:
          type: string
          writeOnly: true
          description: Filename of an existing part image
        IPN:
          type: string
          default: ''
          maxLength: 100
        is_template:
          type: boolean
          description: Is this part a template part?
        keywords:
          type: string
          nullable: true
          description: Part keywords to improve visibility in search results
          maxLength: 250
        link:
          type: string
          format: uri
          nullable: true
          description: Link to external URL
          maxLength: 2000
        locked:
          type: boolean
          description: Locked parts cannot be edited
        minimum_stock:
          type: number
          format: double
          default: 0.0
        name:
          type: string
          description: Part name
          maxLength: 100
        notes:
          type: string
          nullable: true
          description: Markdown notes (optional)
          maxLength: 50000
        parameters:
          type: array
          items:
            $ref: '#/components/schemas/PartParameter'
          readOnly: true
          nullable: true
        pk:
          type: integer
          readOnly: true
          title: ID
        purchaseable:
          type: boolean
          description: Can this part be purchased from external suppliers?
        revision:
          type: string
          nullable: true
          default: ''
          maxLength: 100
        revision_of:
          type: integer
          nullable: true
          description: Is this part a revision of another part?
        revision_count:
          type: integer
          readOnly: true
          nullable: true
          title: Revisions
        salable:
          type: boolean
          description: Can this part be sold to customers?
        starred:
          type: boolean
          description: Return "true" if the part is starred by the current user.
          readOnly: true
        thumbnail:
          type: string
          readOnly: true
        testable:
          type: boolean
          description: Can this part have test results recorded against it?
        trackable:
          type: boolean
          description: Does this part have tracking for unique items?
        units:
          type: string
          nullable: true
          description: Units of measure for this part
          maxLength: 20
        variant_of:
          type: integer
          nullable: true
          description: Is this part a variant of another part?
        virtual:
          type: boolean
          description: Is this a virtual part, such as a software product or license?
        pricing_min:
          type: string
          format: decimal
          pattern: ^-?\d{0,13}(?:\.\d{0,6})?$
          readOnly: true
          nullable: true
        pricing_max:
          type: string
          format: decimal
          pattern: ^-?\d{0,13}(?:\.\d{0,6})?$
          readOnly: true
          nullable: true
        pricing_updated:
          type: string
          format: date-time
          readOnly: true
          nullable: true
        responsible:
          type: integer
          nullable: true
        allocated_to_build_orders:
          type: number
          format: double
          readOnly: true
          nullable: true
        allocated_to_sales_orders:
          type: number
          format: double
          readOnly: true
          nullable: true
        building:
          type: number
          format: double
          readOnly: true
          nullable: true
          description: Quantity of this part currently being in production
        scheduled_to_build:
          type: number
          format: double
          readOnly: true
          nullable: true
          description: Outstanding quantity of this part scheduled to be built
        category_default_location:
          type: integer
          readOnly: true
          nullable: true
        in_stock:
          type: number
          format: double
          readOnly: true
          nullable: true
        ordering:
          type: number
          format: double
          readOnly: true
          nullable: true
          title: On Order
        required_for_build_orders:
          type: integer
          readOnly: true
          nullable: true
        required_for_sales_orders:
          type: integer
          readOnly: true
          nullable: true
        stock_item_count:
          type: integer
          readOnly: true
          nullable: true
          title: Stock Items
        suppliers:
          type: integer
          readOnly: true
          nullable: true
        total_in_stock:
          type: number
          format: double
          readOnly: true
          nullable: true
          title: Total Stock
        external_stock:
          type: number
          format: double
          readOnly: true
          nullable: true
        unallocated_stock:
          type: number
          format: double
          readOnly: true
          nullable: true
        variant_stock:
          type: number
          format: double
          readOnly: true
          nullable: true
        duplicate:
          allOf:
          - $ref: '#/components/schemas/DuplicatePart'
          writeOnly: true
          title: Duplicate Part
          description: Copy initial data from another Part
        initial_stock:
          allOf:
          - $ref: '#/components/schemas/InitialStock'
          writeOnly: true
          description: Create Part with initial stock quantity
        initial_supplier:
          allOf:
          - $ref: '#/components/schemas/InitialSupplier'
          writeOnly: true
          title: Supplier Information
          description: Add initial supplier information for this part
        copy_category_parameters:
          type: boolean
          default: true
          description: Copy parameter templates from selected part category
        tags:
          type: array
          items:
            type: string
    PatchedPartBomValidate:
      type: object
      description: Serializer for Part BOM information.
      properties:
        pk:
          type: integer
          readOnly: true
          title: ID
        bom_validated:
          type: boolean
          readOnly: true
          description: Is the BOM for this part valid?
        bom_checksum:
          type: string
          readOnly: true
          description: Stored BOM checksum
        bom_checked_by:
          type: integer
          readOnly: true
          nullable: true
        bom_checked_by_detail:
          allOf:
          - $ref: '#/components/schemas/User'
          readOnly: true
          nullable: true
        bom_checked_date:
          type: string
          format: date
          readOnly: true
          nullable: true
        valid:
          type: boolean
          writeOnly: true
          default: false
          description: Validate entire Bill of Materials
    PatchedPartInternalPrice:
      type: object
      description: Serializer for internal prices for Part model.
      properties:
        pk:
          type: integer
          readOnly: true
          title: ID
        part:
          type: integer
        quantity:
          type: number
          format: double
        price:
          type: string
          format: decimal
          pattern: ^-?\d{0,13}(?:\.\d{0,6})?$
          nullable: true
        price_currency:
          type: string
          title: Currency
          description: |-
            Purchase currency of this stock item

            * `AUD` - AUD - Australian Dollar
            * `CNY` - CNY - Chinese Yuan
            * `EUR` - EUR - Euro
            * `USD` - USD - US Dollar

            Other valid currencies may be found in the 'CURRENCY_CODES' global setting.
    PatchedPartParameter:
      type: object
      description: JSON serializers for the PartParameter model.
      properties:
        pk:
          type: integer
          readOnly: true
          title: ID
        part:
          type: integer
          description: Parent Part
        part_detail:
          allOf:
          - $ref: '#/components/schemas/PartBrief'
          readOnly: true
          nullable: true
        template:
          type: integer
          description: Parameter Template
        template_detail:
          allOf:
          - $ref: '#/components/schemas/PartParameterTemplate'
          readOnly: true
          nullable: true
        data:
          type: string
          description: Parameter Value
          maxLength: 500
          minLength: 1
        data_numeric:
          type: number
          format: double
          nullable: true
        note:
          type: string
          description: Optional note field
          maxLength: 500
        updated:
          type: string
          format: date-time
          readOnly: true
          nullable: true
          description: Timestamp of last update
        updated_by:
          type: integer
          readOnly: true
          nullable: true
          title: Update By
          description: User who last updated this object
        updated_by_detail:
          allOf:
          - $ref: '#/components/schemas/User'
          readOnly: true
          nullable: true
    PatchedPartParameterTemplate:
      type: object
      description: JSON serializer for the PartParameterTemplate model.
      properties:
        pk:
          type: integer
          readOnly: true
          title: ID
        name:
          type: string
          description: Parameter Name
          maxLength: 100
        units:
          type: string
          description: Physical units for this parameter
          maxLength: 25
        description:
          type: string
          description: Parameter description
          maxLength: 250
        parts:
          type: integer
          readOnly: true
          nullable: true
          description: Number of parts using this template
        checkbox:
          type: boolean
          description: Is this parameter a checkbox?
        choices:
          type: string
          description: Valid choices for this parameter (comma-separated)
          maxLength: 5000
        selectionlist:
          type: integer
          nullable: true
          title: Selection List
          description: Selection list for this parameter
    PatchedPartPricing:
      type: object
      description: Serializer for Part pricing information.
      properties:
        currency:
          type: string
          readOnly: true
          nullable: true
        updated:
          type: string
          format: date-time
          readOnly: true
          nullable: true
        scheduled_for_update:
          type: boolean
          readOnly: true
        bom_cost_min:
          type: string
          format: decimal
          pattern: ^-?\d{0,13}(?:\.\d{0,6})?$
          readOnly: true
          nullable: true
        bom_cost_max:
          type: string
          format: decimal
          pattern: ^-?\d{0,13}(?:\.\d{0,6})?$
          readOnly: true
          nullable: true
        purchase_cost_min:
          type: string
          format: decimal
          pattern: ^-?\d{0,13}(?:\.\d{0,6})?$
          readOnly: true
          nullable: true
        purchase_cost_max:
          type: string
          format: decimal
          pattern: ^-?\d{0,13}(?:\.\d{0,6})?$
          readOnly: true
          nullable: true
        internal_cost_min:
          type: string
          format: decimal
          pattern: ^-?\d{0,13}(?:\.\d{0,6})?$
          readOnly: true
          nullable: true
        internal_cost_max:
          type: string
          format: decimal
          pattern: ^-?\d{0,13}(?:\.\d{0,6})?$
          readOnly: true
          nullable: true
        supplier_price_min:
          type: string
          format: decimal
          pattern: ^-?\d{0,13}(?:\.\d{0,6})?$
          readOnly: true
          nullable: true
        supplier_price_max:
          type: string
          format: decimal
          pattern: ^-?\d{0,13}(?:\.\d{0,6})?$
          readOnly: true
          nullable: true
        variant_cost_min:
          type: string
          format: decimal
          pattern: ^-?\d{0,13}(?:\.\d{0,6})?$
          readOnly: true
          nullable: true
        variant_cost_max:
          type: string
          format: decimal
          pattern: ^-?\d{0,13}(?:\.\d{0,6})?$
          readOnly: true
          nullable: true
        override_min:
          type: string
          format: decimal
          pattern: ^-?\d{0,13}(?:\.\d{0,6})?$
          nullable: true
          title: Minimum Price
          description: Override calculated value for minimum price
        override_min_currency:
          type: string
          description: |-
            Select currency from available options

            * `AUD` - AUD - Australian Dollar
            * `CNY` - CNY - Chinese Yuan
            * `EUR` - EUR - Euro
            * `USD` - USD - US Dollar

            Other valid currencies may be found in the 'CURRENCY_CODES' global setting.
          title: Minimum price currency
        override_max:
          type: string
          format: decimal
          pattern: ^-?\d{0,13}(?:\.\d{0,6})?$
          nullable: true
          title: Maximum Price
          description: Override calculated value for maximum price
        override_max_currency:
          type: string
          description: |-
            Select currency from available options

            * `AUD` - AUD - Australian Dollar
            * `CNY` - CNY - Chinese Yuan
            * `EUR` - EUR - Euro
            * `USD` - USD - US Dollar

            Other valid currencies may be found in the 'CURRENCY_CODES' global setting.
          title: Maximum price currency
        overall_min:
          type: string
          format: decimal
          pattern: ^-?\d{0,13}(?:\.\d{0,6})?$
          readOnly: true
          nullable: true
        overall_max:
          type: string
          format: decimal
          pattern: ^-?\d{0,13}(?:\.\d{0,6})?$
          readOnly: true
          nullable: true
        sale_price_min:
          type: string
          format: decimal
          pattern: ^-?\d{0,13}(?:\.\d{0,6})?$
          readOnly: true
          nullable: true
        sale_price_max:
          type: string
          format: decimal
          pattern: ^-?\d{0,13}(?:\.\d{0,6})?$
          readOnly: true
          nullable: true
        sale_history_min:
          type: string
          format: decimal
          pattern: ^-?\d{0,13}(?:\.\d{0,6})?$
          readOnly: true
          nullable: true
        sale_history_max:
          type: string
          format: decimal
          pattern: ^-?\d{0,13}(?:\.\d{0,6})?$
          readOnly: true
          nullable: true
        update:
          type: boolean
          writeOnly: true
          nullable: true
          default: false
          description: Update pricing for this part
    PatchedPartRelation:
      type: object
      description: Serializer for a PartRelated model.
      properties:
        pk:
          type: integer
          readOnly: true
          title: ID
        part_1:
          type: integer
        part_1_detail:
          allOf:
          - $ref: '#/components/schemas/Part'
          readOnly: true
        part_2:
          type: integer
          description: Select Related Part
        part_2_detail:
          allOf:
          - $ref: '#/components/schemas/Part'
          readOnly: true
        note:
          type: string
          description: Note for this relationship
          maxLength: 500
    PatchedPartSalePrice:
      type: object
      description: Serializer for sale prices for Part model.
      properties:
        pk:
          type: integer
          readOnly: true
          title: ID
        part:
          type: integer
        quantity:
          type: number
          format: double
        price:
          type: string
          format: decimal
          pattern: ^-?\d{0,13}(?:\.\d{0,6})?$
          nullable: true
        price_currency:
          type: string
          title: Currency
          description: |-
            Purchase currency of this stock item

            * `AUD` - AUD - Australian Dollar
            * `CNY` - CNY - Chinese Yuan
            * `EUR` - EUR - Euro
            * `USD` - USD - US Dollar

            Other valid currencies may be found in the 'CURRENCY_CODES' global setting.
    PatchedPartStocktake:
      type: object
      description: Serializer for the PartStocktake model.
      properties:
        pk:
          type: integer
          readOnly: true
          title: ID
        date:
          type: string
          format: date
          readOnly: true
          description: Date stocktake was performed
        part:
          type: integer
          description: Part for stocktake
        item_count:
          type: integer
          description: Number of individual stock entries at time of stocktake
        quantity:
          type: number
          format: double
        cost_min:
          type: string
          format: decimal
          pattern: ^-?\d{0,13}(?:\.\d{0,6})?$
          nullable: true
        cost_min_currency:
          type: string
          title: Currency
          description: |-
            Select currency from available options

            * `AUD` - AUD - Australian Dollar
            * `CNY` - CNY - Chinese Yuan
            * `EUR` - EUR - Euro
            * `USD` - USD - US Dollar

            Other valid currencies may be found in the 'CURRENCY_CODES' global setting.
        cost_max:
          type: string
          format: decimal
          pattern: ^-?\d{0,13}(?:\.\d{0,6})?$
          nullable: true
        cost_max_currency:
          type: string
          title: Currency
          description: |-
            Select currency from available options

            * `AUD` - AUD - Australian Dollar
            * `CNY` - CNY - Chinese Yuan
            * `EUR` - EUR - Euro
            * `USD` - USD - US Dollar

            Other valid currencies may be found in the 'CURRENCY_CODES' global setting.
    PatchedPartTestTemplate:
      type: object
      description: Serializer for the PartTestTemplate class.
      properties:
        pk:
          type: integer
          readOnly: true
          title: ID
        key:
          type: string
          readOnly: true
        part:
          type: integer
        test_name:
          type: string
          description: Enter a name for the test
          maxLength: 100
        description:
          type: string
          nullable: true
          title: Test Description
          description: Enter description for this test
          maxLength: 100
        enabled:
          type: boolean
          description: Is this test enabled?
        required:
          type: boolean
          description: Is this test required to pass?
        requires_value:
          type: boolean
          description: Does this test require a value when adding a test result?
        requires_attachment:
          type: boolean
          description: Does this test require a file attachment when adding a test
            result?
        results:
          type: integer
          readOnly: true
          description: Number of results recorded against this template
        choices:
          type: string
          description: Valid choices for this test (comma-separated)
          maxLength: 5000
    PatchedPartThumbSerializerUpdate:
      type: object
      description: Serializer for updating Part thumbnail.
      properties:
        image:
          type: string
          format: uri
    PatchedPluginActivate:
      type: object
      description: Serializer for activating or deactivating a plugin.
      properties:
        active:
          type: boolean
          default: true
          title: Activate Plugin
          description: Activate this plugin
    PatchedPluginSetting:
      type: object
      description: Serializer for the PluginSetting model.
      properties:
        pk:
          type: integer
          readOnly: true
          title: ID
        key:
          type: string
          readOnly: true
        value:
          type: string
          nullable: true
        name:
          type: string
          readOnly: true
        description:
          type: string
          readOnly: true
        type:
          type: string
          readOnly: true
        choices:
          type: array
          items: {}
          description: Returns the choices available for a given item.
          readOnly: true
        model_name:
          type: string
          readOnly: true
          nullable: true
        model_filters:
          type: object
          additionalProperties: {}
          readOnly: true
        api_url:
          type: string
          readOnly: true
          nullable: true
        typ:
          type: string
          readOnly: true
        units:
          type: string
          readOnly: true
        required:
          type: boolean
          readOnly: true
        plugin:
          type: string
          readOnly: true
    PatchedPluginUninstall:
      type: object
      description: Serializer for uninstalling a plugin.
      properties:
        delete_config:
          type: boolean
          default: true
          title: Delete configuration
          description: Delete the plugin configuration from the database
    PatchedPluginUserSetting:
      type: object
      description: Serializer for the PluginUserSetting model.
      properties:
        pk:
          type: integer
          readOnly: true
          title: ID
        key:
          type: string
          readOnly: true
        value:
          type: string
          nullable: true
        name:
          type: string
          readOnly: true
        description:
          type: string
          readOnly: true
        type:
          type: string
          readOnly: true
        choices:
          type: array
          items: {}
          description: Returns the choices available for a given item.
          readOnly: true
        model_name:
          type: string
          readOnly: true
          nullable: true
        model_filters:
          type: object
          additionalProperties: {}
          readOnly: true
        api_url:
          type: string
          readOnly: true
          nullable: true
        typ:
          type: string
          readOnly: true
        units:
          type: string
          readOnly: true
        required:
          type: boolean
          readOnly: true
        plugin:
          type: string
          readOnly: true
        user:
          type: integer
          readOnly: true
          description: The user for which this setting applies
    PatchedProjectCode:
      type: object
      description: Serializer for the ProjectCode model.
      properties:
        pk:
          type: integer
          readOnly: true
          title: ID
        code:
          type: string
          title: Project Code
          description: Unique project code
          maxLength: 50
        description:
          type: string
          description: Project description
          maxLength: 200
        responsible:
          type: integer
          nullable: true
          description: User or group responsible for this project
        responsible_detail:
          allOf:
          - $ref: '#/components/schemas/Owner'
          readOnly: true
          nullable: true
    PatchedPurchaseOrder:
      type: object
      description: Serializer for a PurchaseOrder object.
      properties:
        pk:
          type: integer
          readOnly: true
          title: ID
        created_by:
          allOf:
          - $ref: '#/components/schemas/User'
          readOnly: true
        creation_date:
          type: string
          format: date
          nullable: true
        issue_date:
          type: string
          format: date
          readOnly: true
          nullable: true
          description: Date order was issued
        start_date:
          type: string
          format: date
          nullable: true
          description: Scheduled start date for this order
        target_date:
          type: string
          format: date
          nullable: true
          description: Expected date for order delivery. Order will be overdue after
            this date.
        description:
          type: string
          description: Order description (optional)
          maxLength: 250
        line_items:
          type: integer
          readOnly: true
          nullable: true
        completed_lines:
          type: integer
          readOnly: true
          nullable: true
        link:
          type: string
          format: uri
          description: Link to external page
          maxLength: 2000
        project_code:
          type: integer
          nullable: true
          description: Select project code for this order
        project_code_label:
          type: string
          readOnly: true
          nullable: true
        project_code_detail:
          allOf:
          - $ref: '#/components/schemas/ProjectCode'
          readOnly: true
          nullable: true
        reference:
          type: string
        responsible:
          type: integer
          nullable: true
          description: User or group responsible for this order
        responsible_detail:
          allOf:
          - $ref: '#/components/schemas/Owner'
          readOnly: true
          nullable: true
        contact:
          type: integer
          nullable: true
          description: Point of contact for this order
        contact_detail:
          allOf:
          - $ref: '#/components/schemas/Contact'
          readOnly: true
          nullable: true
        address:
          type: integer
          nullable: true
          description: Company address for this order
        address_detail:
          allOf:
          - $ref: '#/components/schemas/AddressBrief'
          readOnly: true
          nullable: true
        status:
          type: integer
          readOnly: true
          title: Order Status
        status_text:
          type: string
          readOnly: true
        status_custom_key:
          type: integer
          readOnly: true
          nullable: true
          title: Custom status key
          description: |-
            Additional status information for this item

            * `10` - Pending
            * `20` - Placed
            * `25` - On Hold
            * `30` - Complete
            * `40` - Cancelled
            * `50` - Lost
            * `60` - Returned

            Additional custom status keys may be retrieved from the corresponding 'status_retrieve' call.
        notes:
          type: string
          nullable: true
          description: Markdown notes (optional)
          maxLength: 50000
        barcode_hash:
          type: string
          readOnly: true
        overdue:
          type: boolean
          readOnly: true
          nullable: true
        duplicate:
          allOf:
          - $ref: '#/components/schemas/DuplicateOrder'
          writeOnly: true
          title: Duplicate Order
          description: Specify options for duplicating this order
        complete_date:
          type: string
          format: date
          readOnly: true
          nullable: true
          title: Completion Date
          description: Date order was completed
        supplier:
          type: integer
          nullable: true
          description: Company from which the items are being ordered
        supplier_detail:
          allOf:
          - $ref: '#/components/schemas/CompanyBrief'
          readOnly: true
          nullable: true
        supplier_reference:
          type: string
          description: Supplier order reference code
          maxLength: 64
        supplier_name:
          type: string
          readOnly: true
        total_price:
          type: string
          format: decimal
          pattern: ^-?\d{0,13}(?:\.\d{0,6})?$
          readOnly: true
          nullable: true
        order_currency:
          type: string
          nullable: true
          description: |-
            Currency for this order (leave blank to use company default)

            * `` - ---------
            * `AUD` - AUD - Australian Dollar
            * `CNY` - CNY - Chinese Yuan
            * `EUR` - EUR - Euro
            * `USD` - USD - US Dollar

            Other valid currencies may be found in the 'CURRENCY_CODES' global setting.
        destination:
          type: integer
          nullable: true
          description: Destination for received items
    PatchedPurchaseOrderExtraLine:
      type: object
      description: Serializer for a PurchaseOrderExtraLine object.
      properties:
        pk:
          type: integer
          readOnly: true
          title: ID
        description:
          type: string
          description: Line item description (optional)
          maxLength: 250
        quantity:
          type: number
          format: double
        reference:
          type: string
          description: Line item reference
          maxLength: 100
        notes:
          type: string
          description: Line item notes
          maxLength: 500
        context:
          nullable: true
          description: Additional context for this line
        order:
          type: integer
          description: Purchase Order
        order_detail:
          allOf:
          - $ref: '#/components/schemas/PurchaseOrder'
          readOnly: true
          nullable: true
        price:
          type: string
          format: decimal
          pattern: ^-?\d{0,13}(?:\.\d{0,6})?$
          nullable: true
        price_currency:
          type: string
          title: Currency
          description: |-
            Select currency from available options

            * `AUD` - AUD - Australian Dollar
            * `CNY` - CNY - Chinese Yuan
            * `EUR` - EUR - Euro
            * `USD` - USD - US Dollar

            Other valid currencies may be found in the 'CURRENCY_CODES' global setting.
        link:
          type: string
          format: uri
          description: Link to external page
          maxLength: 2000
    PatchedPurchaseOrderLineItem:
      type: object
      description: Serializer class for the PurchaseOrderLineItem model.
      properties:
        pk:
          type: integer
          readOnly: true
          title: ID
        part:
          type: integer
          nullable: true
          title: Supplier Part
        quantity:
          type: number
          format: double
          minimum: 0
        reference:
          type: string
          description: Line item reference
          maxLength: 100
        notes:
          type: string
          description: Line item notes
          maxLength: 500
        order:
          type: integer
          description: Purchase Order
        order_detail:
          allOf:
          - $ref: '#/components/schemas/PurchaseOrder'
          readOnly: true
          nullable: true
        build_order:
          type: integer
          nullable: true
          description: External Build Order to be fulfilled by this line item
        build_order_detail:
          allOf:
          - $ref: '#/components/schemas/Build'
          readOnly: true
          nullable: true
        overdue:
          type: boolean
          readOnly: true
          nullable: true
        part_detail:
          allOf:
          - $ref: '#/components/schemas/PartBrief'
          readOnly: true
          nullable: true
        supplier_part_detail:
          allOf:
          - $ref: '#/components/schemas/SupplierPart'
          readOnly: true
          nullable: true
        received:
          type: number
          format: double
          readOnly: true
          default: 0.0
        purchase_price:
          type: string
          format: decimal
          pattern: ^-?\d{0,13}(?:\.\d{0,6})?$
          nullable: true
        purchase_price_currency:
          type: string
          title: Currency
          description: |-
            Purchase price currency

            * `AUD` - AUD - Australian Dollar
            * `CNY` - CNY - Chinese Yuan
            * `EUR` - EUR - Euro
            * `USD` - USD - US Dollar

            Other valid currencies may be found in the 'CURRENCY_CODES' global setting.
        auto_pricing:
          type: boolean
          default: true
          description: Automatically calculate purchase price based on supplier part
            data
        destination:
          type: integer
          nullable: true
          description: Destination for received items
        destination_detail:
          allOf:
          - $ref: '#/components/schemas/LocationBrief'
          readOnly: true
          nullable: true
        target_date:
          type: string
          format: date
          nullable: true
          description: Target date for this line item (leave blank to use the target
            date from the order)
        total_price:
          type: number
          format: double
          readOnly: true
        link:
          type: string
          format: uri
          description: Link to external page
          maxLength: 2000
        merge_items:
          type: boolean
          writeOnly: true
          default: true
          description: Merge items with the same part, destination and target date
            into one line item
        sku:
          type: string
          readOnly: true
          nullable: true
        mpn:
          type: string
          readOnly: true
          nullable: true
        ipn:
          type: string
          readOnly: true
          nullable: true
          title: Internal Part Number
        internal_part:
          type: integer
          readOnly: true
        internal_part_name:
          type: string
          readOnly: true
    PatchedReportAsset:
      type: object
      description: Serializer class for the ReportAsset model.
      properties:
        pk:
          type: integer
          readOnly: true
          title: ID
        asset:
          type: string
          format: uri
        description:
          type: string
          description: Asset file description
          maxLength: 250
    PatchedReportSnippet:
      type: object
      description: Serializer class for the ReportSnippet model.
      properties:
        pk:
          type: integer
          readOnly: true
          title: ID
        snippet:
          type: string
          format: uri
        description:
          type: string
          description: Snippet file description
          maxLength: 250
    PatchedReportTemplate:
      type: object
      description: Serializer class for report template model.
      properties:
        pk:
          type: integer
          readOnly: true
          title: ID
        name:
          type: string
          description: Template name
          maxLength: 100
        description:
          type: string
          description: Template description
          maxLength: 250
        model_type:
          $ref: '#/components/schemas/TemplateModelTypeEnum'
        template:
          type: string
          format: uri
        filters:
          type: string
          description: Template query filters (comma-separated list of key=value pairs)
          maxLength: 250
        filename_pattern:
          type: string
          description: Pattern for generating filenames
          maxLength: 100
        enabled:
          type: boolean
          description: Template is enabled
        revision:
          type: integer
          readOnly: true
        attach_to_model:
          type: boolean
          title: Attach to Model on Print
          description: Save report output as an attachment against linked model instance
            when printing
        page_size:
          allOf:
          - $ref: '#/components/schemas/PageSizeEnum'
          default: A4
        landscape:
          type: boolean
          description: Render report in landscape orientation
        merge:
          type: boolean
          description: Render a single report against selected items
    PatchedReturnOrder:
      type: object
      description: Serializer for the ReturnOrder model class.
      properties:
        pk:
          type: integer
          readOnly: true
          title: ID
        created_by:
          allOf:
          - $ref: '#/components/schemas/User'
          readOnly: true
        creation_date:
          type: string
          format: date
          nullable: true
        issue_date:
          type: string
          format: date
          nullable: true
          description: Date order was issued
        start_date:
          type: string
          format: date
          nullable: true
          description: Scheduled start date for this order
        target_date:
          type: string
          format: date
          nullable: true
          description: Expected date for order delivery. Order will be overdue after
            this date.
        description:
          type: string
          description: Order description (optional)
          maxLength: 250
        line_items:
          type: integer
          readOnly: true
          nullable: true
        completed_lines:
          type: integer
          readOnly: true
          nullable: true
        link:
          type: string
          format: uri
          description: Link to external page
          maxLength: 2000
        project_code:
          type: integer
          nullable: true
          description: Select project code for this order
        project_code_label:
          type: string
          readOnly: true
          nullable: true
        project_code_detail:
          allOf:
          - $ref: '#/components/schemas/ProjectCode'
          readOnly: true
          nullable: true
        reference:
          type: string
        responsible:
          type: integer
          nullable: true
          description: User or group responsible for this order
        responsible_detail:
          allOf:
          - $ref: '#/components/schemas/Owner'
          readOnly: true
          nullable: true
        contact:
          type: integer
          nullable: true
          description: Point of contact for this order
        contact_detail:
          allOf:
          - $ref: '#/components/schemas/Contact'
          readOnly: true
          nullable: true
        address:
          type: integer
          nullable: true
          description: Company address for this order
        address_detail:
          allOf:
          - $ref: '#/components/schemas/AddressBrief'
          readOnly: true
          nullable: true
        status:
          type: integer
          readOnly: true
          title: Order Status
        status_text:
          type: string
          readOnly: true
        status_custom_key:
          type: integer
          readOnly: true
          nullable: true
          title: Custom status key
          description: |-
            Additional status information for this item

            * `10` - Pending
            * `20` - In Progress
            * `25` - On Hold
            * `30` - Complete
            * `40` - Cancelled

            Additional custom status keys may be retrieved from the corresponding 'status_retrieve' call.
        notes:
          type: string
          nullable: true
          description: Markdown notes (optional)
          maxLength: 50000
        barcode_hash:
          type: string
          readOnly: true
        overdue:
          type: boolean
          readOnly: true
          nullable: true
        duplicate:
          allOf:
          - $ref: '#/components/schemas/DuplicateOrder'
          writeOnly: true
          title: Duplicate Order
          description: Specify options for duplicating this order
        complete_date:
          type: string
          format: date
          nullable: true
          title: Completion Date
          description: Date order was completed
        customer:
          type: integer
          nullable: true
          description: Company from which items are being returned
        customer_detail:
          allOf:
          - $ref: '#/components/schemas/CompanyBrief'
          readOnly: true
          nullable: true
        customer_reference:
          type: string
          description: Customer order reference code
          maxLength: 64
        order_currency:
          type: string
          nullable: true
          description: |-
            Currency for this order (leave blank to use company default)

            * `` - ---------
            * `AUD` - AUD - Australian Dollar
            * `CNY` - CNY - Chinese Yuan
            * `EUR` - EUR - Euro
            * `USD` - USD - US Dollar

            Other valid currencies may be found in the 'CURRENCY_CODES' global setting.
        total_price:
          type: string
          format: decimal
          pattern: ^-?\d{0,13}(?:\.\d{0,6})?$
          readOnly: true
          nullable: true
    PatchedReturnOrderExtraLine:
      type: object
      description: Serializer for a ReturnOrderExtraLine object.
      properties:
        pk:
          type: integer
          readOnly: true
          title: ID
        description:
          type: string
          description: Line item description (optional)
          maxLength: 250
        quantity:
          type: number
          format: double
        reference:
          type: string
          description: Line item reference
          maxLength: 100
        notes:
          type: string
          description: Line item notes
          maxLength: 500
        context:
          nullable: true
          description: Additional context for this line
        order:
          type: integer
          description: Return Order
        order_detail:
          allOf:
          - $ref: '#/components/schemas/ReturnOrder'
          readOnly: true
          nullable: true
        price:
          type: string
          format: decimal
          pattern: ^-?\d{0,13}(?:\.\d{0,6})?$
          nullable: true
        price_currency:
          type: string
          title: Currency
          description: |-
            Select currency from available options

            * `AUD` - AUD - Australian Dollar
            * `CNY` - CNY - Chinese Yuan
            * `EUR` - EUR - Euro
            * `USD` - USD - US Dollar

            Other valid currencies may be found in the 'CURRENCY_CODES' global setting.
        link:
          type: string
          format: uri
          description: Link to external page
          maxLength: 2000
    PatchedReturnOrderLineItem:
      type: object
      description: Serializer for a ReturnOrderLineItem object.
      properties:
        pk:
          type: integer
          readOnly: true
          title: ID
        order:
          type: integer
          description: Return Order
        order_detail:
          allOf:
          - $ref: '#/components/schemas/ReturnOrder'
          readOnly: true
          nullable: true
        item:
          type: integer
          description: Select item to return from customer
        item_detail:
          allOf:
          - $ref: '#/components/schemas/StockItem'
          readOnly: true
          nullable: true
        quantity:
          type: number
          format: double
          description: Quantity to return
        received_date:
          type: string
          format: date
          nullable: true
          description: The date this this return item was received
        outcome:
          allOf:
          - $ref: '#/components/schemas/OutcomeEnum'
          description: |-
            Outcome for this line item

            * `10` - Pending
            * `20` - Return
            * `30` - Repair
            * `40` - Replace
            * `50` - Refund
            * `60` - Reject
        part_detail:
          allOf:
          - $ref: '#/components/schemas/PartBrief'
          readOnly: true
          nullable: true
        price:
          type: string
          format: decimal
          pattern: ^-?\d{0,13}(?:\.\d{0,6})?$
          nullable: true
        price_currency:
          type: string
          title: Currency
          description: |-
            Line price currency

            * `AUD` - AUD - Australian Dollar
            * `CNY` - CNY - Chinese Yuan
            * `EUR` - EUR - Euro
            * `USD` - USD - US Dollar

            Other valid currencies may be found in the 'CURRENCY_CODES' global setting.
        link:
          type: string
          format: uri
          description: Link to external page
          maxLength: 2000
        reference:
          type: string
          description: Line item reference
          maxLength: 100
        notes:
          type: string
          description: Line item notes
          maxLength: 500
        target_date:
          type: string
          format: date
          nullable: true
          description: Target date for this line item (leave blank to use the target
            date from the order)
    PatchedRuleSet:
      type: object
      description: Serializer for a RuleSet.
      properties:
        pk:
          type: integer
          readOnly: true
          title: ID
        name:
          allOf:
          - $ref: '#/components/schemas/NameEnum'
          readOnly: true
          description: |-
            Permission set

            * `admin` - Admin
            * `part_category` - Part Categories
            * `part` - Parts
            * `stock_location` - Stock Locations
            * `stock` - Stock Items
            * `build` - Build Orders
            * `purchase_order` - Purchase Orders
            * `sales_order` - Sales Orders
            * `return_order` - Return Orders
        label:
          type: string
          description: Return the translated label for this ruleset.
          readOnly: true
        group:
          type: integer
          readOnly: true
          description: Group
        can_view:
          type: boolean
          title: View
          description: Permission to view items
        can_add:
          type: boolean
          title: Add
          description: Permission to add items
        can_change:
          type: boolean
          title: Change
          description: Permissions to edit items
        can_delete:
          type: boolean
          title: Delete
          description: Permission to delete items
    PatchedSalesOrder:
      type: object
      description: Serializer for the SalesOrder model class.
      properties:
        pk:
          type: integer
          readOnly: true
          title: ID
        created_by:
          allOf:
          - $ref: '#/components/schemas/User'
          readOnly: true
        creation_date:
          type: string
          format: date
          nullable: true
        issue_date:
          type: string
          format: date
          nullable: true
          description: Date order was issued
        start_date:
          type: string
          format: date
          nullable: true
          description: Scheduled start date for this order
        target_date:
          type: string
          format: date
          nullable: true
          description: Expected date for order delivery. Order will be overdue after
            this date.
        description:
          type: string
          description: Order description (optional)
          maxLength: 250
        line_items:
          type: integer
          readOnly: true
          nullable: true
        completed_lines:
          type: integer
          readOnly: true
          nullable: true
        link:
          type: string
          format: uri
          description: Link to external page
          maxLength: 2000
        project_code:
          type: integer
          nullable: true
          description: Select project code for this order
        project_code_label:
          type: string
          readOnly: true
          nullable: true
        project_code_detail:
          allOf:
          - $ref: '#/components/schemas/ProjectCode'
          readOnly: true
          nullable: true
        reference:
          type: string
        responsible:
          type: integer
          nullable: true
          description: User or group responsible for this order
        responsible_detail:
          allOf:
          - $ref: '#/components/schemas/Owner'
          readOnly: true
          nullable: true
        contact:
          type: integer
          nullable: true
          description: Point of contact for this order
        contact_detail:
          allOf:
          - $ref: '#/components/schemas/Contact'
          readOnly: true
          nullable: true
        address:
          type: integer
          nullable: true
          description: Company address for this order
        address_detail:
          allOf:
          - $ref: '#/components/schemas/AddressBrief'
          readOnly: true
          nullable: true
        status:
          type: integer
          readOnly: true
          title: Order Status
        status_text:
          type: string
          readOnly: true
        status_custom_key:
          type: integer
          readOnly: true
          nullable: true
          title: Custom status key
          description: |-
            Additional status information for this item

            * `10` - Pending
            * `15` - In Progress
            * `20` - Shipped
            * `25` - On Hold
            * `30` - Complete
            * `40` - Cancelled
            * `50` - Lost
            * `60` - Returned

            Additional custom status keys may be retrieved from the corresponding 'status_retrieve' call.
        notes:
          type: string
          nullable: true
          description: Markdown notes (optional)
          maxLength: 50000
        barcode_hash:
          type: string
          readOnly: true
        overdue:
          type: boolean
          readOnly: true
          nullable: true
        duplicate:
          allOf:
          - $ref: '#/components/schemas/DuplicateOrder'
          writeOnly: true
          title: Duplicate Order
          description: Specify options for duplicating this order
        customer:
          type: integer
          nullable: true
          description: Company to which the items are being sold
        customer_detail:
          allOf:
          - $ref: '#/components/schemas/CompanyBrief'
          readOnly: true
          nullable: true
        customer_reference:
          type: string
          description: Customer order reference code
          maxLength: 64
        shipment_date:
          type: string
          format: date
          readOnly: true
          nullable: true
        total_price:
          type: string
          format: decimal
          pattern: ^-?\d{0,13}(?:\.\d{0,6})?$
          readOnly: true
          nullable: true
        order_currency:
          type: string
          nullable: true
          description: |-
            Currency for this order (leave blank to use company default)

            * `` - ---------
            * `AUD` - AUD - Australian Dollar
            * `CNY` - CNY - Chinese Yuan
            * `EUR` - EUR - Euro
            * `USD` - USD - US Dollar

            Other valid currencies may be found in the 'CURRENCY_CODES' global setting.
        shipments_count:
          type: integer
          readOnly: true
          nullable: true
          title: Shipments
        completed_shipments_count:
          type: integer
          readOnly: true
          nullable: true
          title: Completed Shipments
    PatchedSalesOrderAllocation:
      type: object
      description: |-
        Serializer for the SalesOrderAllocation model.

        This includes some fields from the related model objects.
      properties:
        pk:
          type: integer
          readOnly: true
          title: ID
        item:
          type: integer
          description: Select stock item to allocate
        quantity:
          type: number
          format: double
        shipment:
          type: integer
          nullable: true
          description: Sales order shipment reference
        line:
          type: integer
          readOnly: true
        part:
          type: integer
          readOnly: true
        order:
          type: integer
          readOnly: true
        serial:
          type: string
          readOnly: true
          nullable: true
        location:
          type: integer
          readOnly: true
        item_detail:
          allOf:
          - $ref: '#/components/schemas/StockItem'
          readOnly: true
          nullable: true
        part_detail:
          allOf:
          - $ref: '#/components/schemas/PartBrief'
          readOnly: true
          nullable: true
        order_detail:
          allOf:
          - $ref: '#/components/schemas/SalesOrder'
          readOnly: true
          nullable: true
        customer_detail:
          allOf:
          - $ref: '#/components/schemas/CompanyBrief'
          readOnly: true
          nullable: true
        location_detail:
          allOf:
          - $ref: '#/components/schemas/LocationBrief'
          readOnly: true
          nullable: true
        shipment_detail:
          allOf:
          - $ref: '#/components/schemas/SalesOrderShipment'
          readOnly: true
          nullable: true
    PatchedSalesOrderExtraLine:
      type: object
      description: Serializer for a SalesOrderExtraLine object.
      properties:
        pk:
          type: integer
          readOnly: true
          title: ID
        description:
          type: string
          description: Line item description (optional)
          maxLength: 250
        quantity:
          type: number
          format: double
        reference:
          type: string
          description: Line item reference
          maxLength: 100
        notes:
          type: string
          description: Line item notes
          maxLength: 500
        context:
          nullable: true
          description: Additional context for this line
        order:
          type: integer
          description: Sales Order
        order_detail:
          allOf:
          - $ref: '#/components/schemas/SalesOrder'
          readOnly: true
          nullable: true
        price:
          type: string
          format: decimal
          pattern: ^-?\d{0,13}(?:\.\d{0,6})?$
          nullable: true
        price_currency:
          type: string
          title: Currency
          description: |-
            Select currency from available options

            * `AUD` - AUD - Australian Dollar
            * `CNY` - CNY - Chinese Yuan
            * `EUR` - EUR - Euro
            * `USD` - USD - US Dollar

            Other valid currencies may be found in the 'CURRENCY_CODES' global setting.
        link:
          type: string
          format: uri
          description: Link to external page
          maxLength: 2000
    PatchedSalesOrderLineItem:
      type: object
      description: Serializer for a SalesOrderLineItem object.
      properties:
        pk:
          type: integer
          readOnly: true
          title: ID
        allocated:
          type: number
          format: double
          readOnly: true
        customer_detail:
          allOf:
          - $ref: '#/components/schemas/CompanyBrief'
          readOnly: true
          nullable: true
        quantity:
          type: number
          format: double
        reference:
          type: string
          description: Line item reference
          maxLength: 100
        notes:
          type: string
          description: Line item notes
          maxLength: 500
        order:
          type: integer
          description: Sales Order
        order_detail:
          allOf:
          - $ref: '#/components/schemas/SalesOrder'
          readOnly: true
          nullable: true
        overdue:
          type: boolean
          readOnly: true
          nullable: true
        part:
          type: integer
          nullable: true
          description: Part
        part_detail:
          allOf:
          - $ref: '#/components/schemas/PartBrief'
          readOnly: true
          nullable: true
        sale_price:
          type: string
          format: decimal
          pattern: ^-?\d{0,13}(?:\.\d{0,6})?$
          nullable: true
        sale_price_currency:
          type: string
          title: Currency
          description: |-
            Sale price currency

            * `AUD` - AUD - Australian Dollar
            * `CNY` - CNY - Chinese Yuan
            * `EUR` - EUR - Euro
            * `USD` - USD - US Dollar

            Other valid currencies may be found in the 'CURRENCY_CODES' global setting.
        shipped:
          type: number
          format: double
          readOnly: true
        target_date:
          type: string
          format: date
          nullable: true
          description: Target date for this line item (leave blank to use the target
            date from the order)
        link:
          type: string
          format: uri
          description: Link to external page
          maxLength: 2000
        available_stock:
          type: number
          format: double
          readOnly: true
        available_variant_stock:
          type: number
          format: double
          readOnly: true
        building:
          type: number
          format: double
          readOnly: true
          title: In Production
        on_order:
          type: number
          format: double
          readOnly: true
    PatchedSalesOrderShipment:
      type: object
      description: Serializer for the SalesOrderShipment class.
      properties:
        pk:
          type: integer
          readOnly: true
          title: ID
        order:
          type: integer
          description: Sales Order
        order_detail:
          allOf:
          - $ref: '#/components/schemas/SalesOrder'
          readOnly: true
          nullable: true
        allocated_items:
          type: integer
          readOnly: true
          nullable: true
        shipment_date:
          type: string
          format: date
          nullable: true
          description: Date of shipment
        delivery_date:
          type: string
          format: date
          nullable: true
          description: Date of delivery of shipment
        checked_by:
          type: integer
          nullable: true
          description: User who checked this shipment
        reference:
          type: string
          default: '1'
          title: Shipment
          description: Shipment number
          maxLength: 100
        tracking_number:
          type: string
          description: Shipment tracking information
          maxLength: 100
        invoice_number:
          type: string
          description: Reference number for associated invoice
          maxLength: 100
        barcode_hash:
          type: string
          description: Unique hash of barcode data
          maxLength: 128
        link:
          type: string
          format: uri
          description: Link to external page
          maxLength: 2000
        notes:
          type: string
          nullable: true
          description: Markdown notes (optional)
          maxLength: 50000
    PatchedSelectionEntry:
      type: object
      description: Serializer for a selection entry.
      properties:
        id:
          type: integer
          readOnly: true
        value:
          type: string
          description: Value of the selection list entry
          maxLength: 255
        label:
          type: string
          description: Label for the selection list entry
          maxLength: 255
        description:
          type: string
          description: Description of the selection list entry
          maxLength: 250
        active:
          type: boolean
          description: Is this selection list entry active?
        list:
          type: integer
          nullable: true
          title: Selection List
          description: Selection list to which this entry belongs
    PatchedSelectionList:
      type: object
      description: Serializer for a selection list.
      properties:
        pk:
          type: integer
          readOnly: true
          title: ID
        name:
          type: string
          description: Name of the selection list
          maxLength: 100
        description:
          type: string
          description: Description of the selection list
          maxLength: 250
        active:
          type: boolean
          description: Can this selection list be used?
        locked:
          type: boolean
          description: Is this selection list locked?
        source_plugin:
          type: integer
          nullable: true
          description: Plugin which provides the selection list
        source_string:
          type: string
          description: Optional string identifying the source used for this list
          maxLength: 1000
        default:
          allOf:
          - $ref: '#/components/schemas/SelectionEntry'
          readOnly: true
        created:
          type: string
          format: date-time
          readOnly: true
          description: Date and time that the selection list was created
        last_updated:
          type: string
          format: date-time
          readOnly: true
          description: Date and time that the selection list was last updated
        choices:
          type: array
          items:
            $ref: '#/components/schemas/SelectionEntry'
        entry_count:
          type: integer
          readOnly: true
    PatchedStockItem:
      type: object
      description: |-
        Serializer for a StockItem.

        - Includes serialization for the linked part
        - Includes serialization for the item location
      properties:
        pk:
          type: integer
          readOnly: true
          title: ID
        part:
          type: integer
          description: Base Part
        quantity:
          type: number
          format: double
        serial:
          type: string
          nullable: true
          title: Serial Number
          description: Serial number for this item
          maxLength: 100
        batch:
          type: string
          nullable: true
          title: Batch Code
          description: Batch code for this stock item
          maxLength: 100
        location:
          type: integer
          nullable: true
          title: Stock Location
          description: Where is this stock item located?
        belongs_to:
          type: integer
          nullable: true
          title: Installed In
          description: Is this item installed in another item?
        build:
          type: integer
          nullable: true
          title: Source Build
          description: Build for this stock item
        consumed_by:
          type: integer
          nullable: true
          description: Build order which consumed this stock item
        customer:
          type: integer
          nullable: true
          description: Customer
        delete_on_deplete:
          type: boolean
          description: Delete this Stock Item when stock is depleted
        expiry_date:
          type: string
          format: date
          nullable: true
          description: Expiry date for stock item. Stock will be considered expired
            after this date
        in_stock:
          type: boolean
          readOnly: true
        is_building:
          type: boolean
        link:
          type: string
          format: uri
          title: External Link
          description: Link to external URL
          maxLength: 2000
        notes:
          type: string
          nullable: true
          description: Markdown notes (optional)
          maxLength: 50000
        owner:
          type: integer
          nullable: true
          description: Select Owner
        packaging:
          type: string
          nullable: true
          description: Packaging this stock item is stored in
          maxLength: 50
        parent:
          type: integer
          readOnly: true
          title: Parent Item
          description: Parent stock item
        purchase_order:
          type: integer
          nullable: true
          title: Source Purchase Order
          description: Purchase order for this stock item
        purchase_order_reference:
          type: string
          readOnly: true
          nullable: true
        sales_order:
          type: integer
          nullable: true
          title: Destination Sales Order
        sales_order_reference:
          type: string
          readOnly: true
          nullable: true
        status:
          allOf:
          - $ref: '#/components/schemas/StockItemStatusEnum'
          minimum: 0
        status_text:
          type: string
          readOnly: true
          title: Status
        status_custom_key:
          type: integer
          nullable: true
          title: Custom status key
          description: |-
            Additional status information for this item

            * `10` - OK
            * `50` - Attention needed
            * `55` - Damaged
            * `60` - Destroyed
            * `65` - Rejected
            * `70` - Lost
            * `75` - Quarantined
            * `85` - Returned

            Additional custom status keys may be retrieved from the corresponding 'status_retrieve' call.
        supplier_part:
          type: integer
          nullable: true
          description: Select a matching supplier part for this stock item
        SKU:
          type: string
          readOnly: true
          nullable: true
          title: Supplier Part Number
        MPN:
          type: string
          readOnly: true
          nullable: true
          title: Manufacturer Part Number
        barcode_hash:
          type: string
          readOnly: true
          description: Unique hash of barcode data
        updated:
          type: string
          format: date-time
          readOnly: true
          nullable: true
          description: Timestamp of last update
        stocktake_date:
          type: string
          format: date
          readOnly: true
          nullable: true
        purchase_price:
          type: string
          format: decimal
          pattern: ^-?\d{0,13}(?:\.\d{0,6})?$
          nullable: true
          description: Purchase price of this stock item, per unit or pack
        purchase_price_currency:
          type: string
          title: Currency
          description: |-
            Purchase currency of this stock item

            * `AUD` - AUD - Australian Dollar
            * `CNY` - CNY - Chinese Yuan
            * `EUR` - EUR - Euro
            * `USD` - USD - US Dollar

            Other valid currencies may be found in the 'CURRENCY_CODES' global setting.
        use_pack_size:
          type: boolean
          writeOnly: true
          nullable: true
          description: 'Use pack size when adding: the quantity defined is the number
            of packs'
        serial_numbers:
          type: string
          writeOnly: true
          nullable: true
          description: Enter serial numbers for new items
        tests:
          type: array
          items:
            $ref: '#/components/schemas/StockItemTestResult'
          readOnly: true
          nullable: true
        allocated:
          type: number
          format: double
          readOnly: true
          nullable: true
          title: Allocated Quantity
        expired:
          type: boolean
          readOnly: true
          nullable: true
        installed_items:
          type: integer
          readOnly: true
          nullable: true
        child_items:
          type: integer
          readOnly: true
          nullable: true
        location_path:
          type: array
          items:
            type: object
            additionalProperties: {}
          readOnly: true
          nullable: true
        stale:
          type: boolean
          readOnly: true
          nullable: true
        tracking_items:
          type: integer
          readOnly: true
          nullable: true
        tags:
          type: array
          items:
            type: string
        supplier_part_detail:
          allOf:
          - $ref: '#/components/schemas/SupplierPart'
          readOnly: true
          nullable: true
          title: Supplier Part
        part_detail:
          allOf:
          - $ref: '#/components/schemas/PartBrief'
          readOnly: true
          nullable: true
          title: Part
        location_detail:
          allOf:
          - $ref: '#/components/schemas/LocationBrief'
          readOnly: true
          nullable: true
          title: Location
    PatchedStockItemTestResult:
      type: object
      description: Serializer for the StockItemTestResult model.
      properties:
        pk:
          type: integer
          readOnly: true
          title: ID
        stock_item:
          type: integer
        result:
          type: boolean
          description: Test result
        value:
          type: string
          description: Test output value
          maxLength: 500
        attachment:
          type: string
          format: uri
          nullable: true
          description: Test result attachment
        notes:
          type: string
          description: Test notes
          maxLength: 500
        test_station:
          type: string
          description: The identifier of the test station where the test was performed
          maxLength: 500
        started_datetime:
          type: string
          format: date-time
          nullable: true
          title: Started
          description: The timestamp of the test start
        finished_datetime:
          type: string
          format: date-time
          nullable: true
          title: Finished
          description: The timestamp of the test finish
        user:
          type: integer
          readOnly: true
          nullable: true
        user_detail:
          allOf:
          - $ref: '#/components/schemas/User'
          readOnly: true
          nullable: true
        date:
          type: string
          format: date-time
          readOnly: true
        template:
          type: integer
          nullable: true
          title: Test template for this result
          description: Template
        template_detail:
          allOf:
          - $ref: '#/components/schemas/PartTestTemplate'
          readOnly: true
          nullable: true
    PatchedStockLocationType:
      type: object
      description: Serializer for StockLocationType model.
      properties:
        pk:
          type: integer
          readOnly: true
          title: ID
        name:
          type: string
          description: Name
          maxLength: 100
        description:
          type: string
          description: Description (optional)
          maxLength: 250
        icon:
          type: string
          description: Default icon for all locations that have no icon set (optional)
          maxLength: 100
        location_count:
          type: integer
          readOnly: true
          nullable: true
    PatchedSupplierPart:
      type: object
      description: Serializer for SupplierPart object.
      properties:
        available:
          type: number
          format: double
        availability_updated:
          type: string
          format: date-time
          readOnly: true
          nullable: true
          description: Date of last update of availability data
        description:
          type: string
          nullable: true
          description: Supplier part description
          maxLength: 250
        in_stock:
          type: number
          format: double
          readOnly: true
          nullable: true
        on_order:
          type: number
          format: double
          readOnly: true
          nullable: true
        link:
          type: string
          format: uri
          nullable: true
          description: URL for external supplier part link
          maxLength: 2000
        active:
          type: boolean
          description: Is this supplier part active?
        manufacturer_detail:
          allOf:
          - $ref: '#/components/schemas/CompanyBrief'
          readOnly: true
          nullable: true
          title: Manufacturer
        manufacturer_part:
          type: integer
          nullable: true
          description: Select manufacturer part
        manufacturer_part_detail:
          allOf:
          - $ref: '#/components/schemas/ManufacturerPart'
          readOnly: true
          nullable: true
          title: Manufacturer Part
        MPN:
          type: string
          readOnly: true
          nullable: true
        note:
          type: string
          nullable: true
          description: Notes
          maxLength: 100
        pk:
          type: integer
          readOnly: true
          title: ID
        barcode_hash:
          type: string
          readOnly: true
          description: Unique hash of barcode data
        packaging:
          type: string
          nullable: true
          description: Part packaging
          maxLength: 50
        pack_quantity:
          type: string
          description: Total quantity supplied in a single pack. Leave empty for single
            items.
          maxLength: 25
        pack_quantity_native:
          type: number
          format: double
          readOnly: true
        part:
          type: integer
          title: Base Part
          description: Select part
        part_detail:
          allOf:
          - $ref: '#/components/schemas/PartBrief'
          readOnly: true
          nullable: true
          title: Part
        pretty_name:
          type: string
          readOnly: true
          nullable: true
        SKU:
          type: string
          description: Supplier stock keeping unit
          maxLength: 100
        supplier:
          type: integer
        supplier_detail:
          allOf:
          - $ref: '#/components/schemas/CompanyBrief'
          readOnly: true
          nullable: true
          title: Supplier
        updated:
          type: string
          format: date-time
          readOnly: true
          nullable: true
        notes:
          type: string
          nullable: true
          description: Markdown notes (optional)
          maxLength: 50000
        tags:
          type: array
          items:
            type: string
    PatchedSupplierPriceBreak:
      type: object
      description: Serializer for SupplierPriceBreak object.
      properties:
        pk:
          type: integer
          readOnly: true
          title: ID
        part:
          type: integer
        part_detail:
          allOf:
          - $ref: '#/components/schemas/SupplierPart'
          readOnly: true
          nullable: true
        quantity:
          type: number
          format: double
        price:
          type: string
          format: decimal
          pattern: ^-?\d{0,13}(?:\.\d{0,6})?$
          nullable: true
        price_currency:
          type: string
          title: Currency
          description: |-
            Select currency from available options

            * `AUD` - AUD - Australian Dollar
            * `CNY` - CNY - Chinese Yuan
            * `EUR` - EUR - Euro
            * `USD` - USD - US Dollar

            Other valid currencies may be found in the 'CURRENCY_CODES' global setting.
        supplier:
          type: integer
          readOnly: true
        supplier_detail:
          allOf:
          - $ref: '#/components/schemas/CompanyBrief'
          readOnly: true
          nullable: true
        updated:
          type: string
          format: date-time
          readOnly: true
          nullable: true
          description: Timestamp of last update
    PatchedUserProfile:
      type: object
      description: Serializer for the UserProfile model.
      properties:
        language:
          type: string
          nullable: true
          description: Preferred language for the user
          maxLength: 10
        theme:
          nullable: true
          description: Settings for the web UI as JSON - do not edit manually!
        widgets:
          nullable: true
          description: Settings for the dashboard widgets as JSON - do not edit manually!
        displayname:
          type: string
          nullable: true
          title: Display Name
          description: Chosen display name for the user
          maxLength: 255
        position:
          type: string
          nullable: true
          description: Main job title or position
          maxLength: 255
        status:
          type: string
          nullable: true
          description: User status message
          maxLength: 2000
        location:
          type: string
          nullable: true
          description: User location information
          maxLength: 2000
        active:
          type: boolean
          description: User is actively using the system
        contact:
          type: string
          nullable: true
          description: Preferred contact information for the user
          maxLength: 255
        type:
          allOf:
          - $ref: '#/components/schemas/UserTypeEnum'
          title: User Type
          description: |-
            Which type of user is this?

            * `bot` - Bot
            * `internal` - Internal
            * `external` - External
            * `guest` - Guest
        organisation:
          type: string
          nullable: true
          description: Users primary organisation/affiliation
          maxLength: 255
        primary_group:
          type: integer
          nullable: true
          description: Primary group for the user
    PatchedUserSetPassword:
      type: object
      description: Serializer for setting a password for a user.
      properties:
        password:
          type: string
          writeOnly: true
          description: Password for the user
        override_warning:
          type: boolean
          writeOnly: true
          description: Override the warning about password rules
    PatchedUserSettings:
      type: object
      description: Serializer for the InvenTreeUserSetting model.
      properties:
        pk:
          type: integer
          readOnly: true
          title: ID
        key:
          type: string
          readOnly: true
        value:
          type: string
          nullable: true
        name:
          type: string
          readOnly: true
        description:
          type: string
          readOnly: true
        user:
          type: integer
          readOnly: true
        type:
          type: string
          readOnly: true
        units:
          type: string
          readOnly: true
        choices:
          type: array
          items: {}
          description: Returns the choices available for a given item.
          readOnly: true
        model_name:
          type: string
          readOnly: true
          nullable: true
        api_url:
          type: string
          readOnly: true
          nullable: true
        typ:
          type: string
          readOnly: true
    PendingTask:
      type: object
      description: Serializer for an individual pending task object.
      properties:
        pk:
          type: integer
          readOnly: true
          title: ID
        key:
          type: string
          description: Name of the target cluster
          maxLength: 100
        lock:
          type: string
          format: date-time
          description: Lock time
        task_id:
          type: string
          description: Unique task ID
        name:
          type: string
          description: Task name
        func:
          type: string
          title: Function
          description: Function name
        args:
          type: string
          title: Arguments
          description: Task arguments
        kwargs:
          type: string
          title: Keyword Arguments
          description: Task keyword arguments
      required:
      - args
      - func
      - key
      - kwargs
      - lock
      - name
      - pk
      - task_id
    PluginActivate:
      type: object
      description: Serializer for activating or deactivating a plugin.
      properties:
        active:
          type: boolean
          default: true
          title: Activate Plugin
          description: Activate this plugin
    PluginAdminDetail:
      type: object
      description: Serializer for a PluginConfig with admin details.
      properties:
        source:
          type: string
          nullable: true
          title: Source File
          description: Path to the source file for admin integration
        context:
          nullable: true
          description: Optional context data for the admin integration
      required:
      - context
      - source
    PluginConfig:
      type: object
      description: Serializer for a PluginConfig.
      properties:
        pk:
          type: integer
          readOnly: true
          title: ID
        key:
          type: string
          readOnly: true
          description: Key of plugin
        name:
          type: string
          nullable: true
          description: PluginName of the plugin
          maxLength: 255
        package_name:
          type: string
          nullable: true
          description: Name of the installed package, if the plugin was installed
            via PIP
          maxLength: 255
        active:
          type: boolean
          description: Is the plugin active
        meta:
          type: object
          additionalProperties: {}
          readOnly: true
        mixins:
          type: object
          additionalProperties: {}
          readOnly: true
        is_builtin:
          type: boolean
          description: Return True if this is a 'builtin' plugin.
          readOnly: true
        is_sample:
          type: boolean
          description: Is this plugin a sample app?
          readOnly: true
        is_installed:
          type: boolean
          description: |-
            Simple check to determine if this plugin is installed.

            A plugin might not be installed if it has been removed from the system,
            but the PluginConfig associated with it still exists.
          readOnly: true
        is_package:
          type: boolean
          description: Return True if this is a 'package' plugin.
          readOnly: true
        is_mandatory:
          type: boolean
          readOnly: true
      required:
      - is_builtin
      - is_installed
      - is_mandatory
      - is_package
      - is_sample
      - key
      - meta
      - mixins
      - pk
    PluginConfigInstall:
      type: object
      description: Serializer for installing a new plugin.
      properties:
        url:
          type: string
          title: Source URL
          description: Source for the package - this can be a custom registry or a
            VCS path
        packagename:
          type: string
          title: Package Name
          description: Name for the Plugin Package - can also contain a version indicator
        version:
          type: string
          description: Version specifier for the plugin. Leave blank for latest version.
        confirm:
          type: boolean
          title: Confirm plugin installation
          description: This will install this plugin now into the current instance.
            The instance will go into maintenance.
      required:
      - confirm
    PluginRegistryError:
      type: object
      description: Serializer for a plugin registry error.
      properties:
        stage:
          type: string
        name:
          type: string
        message:
          type: string
      required:
      - message
      - name
      - stage
    PluginRegistryStatus:
      type: object
      description: Serializer for plugin registry status.
      properties:
        active_plugins:
          type: integer
          readOnly: true
        registry_errors:
          type: array
          items:
            $ref: '#/components/schemas/PluginRegistryError'
      required:
      - active_plugins
      - registry_errors
    PluginReload:
      type: object
      description: Serializer for remotely forcing plugin registry reload.
      properties:
        full_reload:
          type: boolean
          default: false
          description: Perform a full reload of the plugin registry
        force_reload:
          type: boolean
          default: false
          description: Force a reload of the plugin registry, even if it is already
            loaded
        collect_plugins:
          type: boolean
          default: false
          description: Collect plugins and add them to the registry
    PluginSetting:
      type: object
      description: Serializer for the PluginSetting model.
      properties:
        pk:
          type: integer
          readOnly: true
          title: ID
        key:
          type: string
          readOnly: true
        value:
          type: string
          nullable: true
        name:
          type: string
          readOnly: true
        description:
          type: string
          readOnly: true
        type:
          type: string
          readOnly: true
        choices:
          type: array
          items: {}
          description: Returns the choices available for a given item.
          readOnly: true
        model_name:
          type: string
          readOnly: true
          nullable: true
        model_filters:
          type: object
          additionalProperties: {}
          readOnly: true
        api_url:
          type: string
          readOnly: true
          nullable: true
        typ:
          type: string
          readOnly: true
        units:
          type: string
          readOnly: true
        required:
          type: boolean
          readOnly: true
        plugin:
          type: string
          readOnly: true
      required:
      - choices
      - description
      - key
      - model_filters
      - name
      - pk
      - plugin
      - required
      - typ
      - type
      - units
      - value
    PluginUIFeature:
      type: object
      description: Serializer for a plugin ui feature.
      properties:
        plugin_name:
          type: string
        feature_type:
          type: string
        key:
          type: string
          title: Feature Label
        title:
          type: string
          title: Feature Title
        description:
          type: string
          title: Feature Description
        icon:
          type: string
          title: Feature Icon
        options:
          type: object
          additionalProperties: {}
          title: Feature Options
        context:
          type: object
          additionalProperties: {}
          title: Feature Context
        source:
          type: string
          title: Feature Source (javascript)
      required:
      - feature_type
      - key
      - plugin_name
    PluginUninstall:
      type: object
      description: Serializer for uninstalling a plugin.
      properties:
        delete_config:
          type: boolean
          default: true
          title: Delete configuration
          description: Delete the plugin configuration from the database
    PluginUserSetting:
      type: object
      description: Serializer for the PluginUserSetting model.
      properties:
        pk:
          type: integer
          readOnly: true
          title: ID
        key:
          type: string
          readOnly: true
        value:
          type: string
          nullable: true
        name:
          type: string
          readOnly: true
        description:
          type: string
          readOnly: true
        type:
          type: string
          readOnly: true
        choices:
          type: array
          items: {}
          description: Returns the choices available for a given item.
          readOnly: true
        model_name:
          type: string
          readOnly: true
          nullable: true
        model_filters:
          type: object
          additionalProperties: {}
          readOnly: true
        api_url:
          type: string
          readOnly: true
          nullable: true
        typ:
          type: string
          readOnly: true
        units:
          type: string
          readOnly: true
        required:
          type: boolean
          readOnly: true
        plugin:
          type: string
          readOnly: true
        user:
          type: integer
          readOnly: true
          description: The user for which this setting applies
      required:
      - choices
      - description
      - key
      - model_filters
      - name
      - pk
      - plugin
      - required
      - typ
      - type
      - units
      - user
      - value
    PriorityEnum:
      enum:
      - 0
      - 1
      - 2
      - 3
      - 4
      - 5
      type: integer
      description: |-
        * `0` - None
        * `1` - Very High
        * `2` - High
        * `3` - Normal
        * `4` - Low
        * `5` - Very Low
    ProjectCode:
      type: object
      description: Serializer for the ProjectCode model.
      properties:
        pk:
          type: integer
          readOnly: true
          title: ID
        code:
          type: string
          title: Project Code
          description: Unique project code
          maxLength: 50
        description:
          type: string
          description: Project description
          maxLength: 200
        responsible:
          type: integer
          nullable: true
          description: User or group responsible for this project
        responsible_detail:
          allOf:
          - $ref: '#/components/schemas/Owner'
          readOnly: true
          nullable: true
      required:
      - code
      - pk
    PurchaseOrder:
      type: object
      description: Serializer for a PurchaseOrder object.
      properties:
        pk:
          type: integer
          readOnly: true
          title: ID
        created_by:
          allOf:
          - $ref: '#/components/schemas/User'
          readOnly: true
        creation_date:
          type: string
          format: date
          nullable: true
        issue_date:
          type: string
          format: date
          readOnly: true
          nullable: true
          description: Date order was issued
        start_date:
          type: string
          format: date
          nullable: true
          description: Scheduled start date for this order
        target_date:
          type: string
          format: date
          nullable: true
          description: Expected date for order delivery. Order will be overdue after
            this date.
        description:
          type: string
          description: Order description (optional)
          maxLength: 250
        line_items:
          type: integer
          readOnly: true
          nullable: true
        completed_lines:
          type: integer
          readOnly: true
          nullable: true
        link:
          type: string
          format: uri
          description: Link to external page
          maxLength: 2000
        project_code:
          type: integer
          nullable: true
          description: Select project code for this order
        project_code_label:
          type: string
          readOnly: true
          nullable: true
        project_code_detail:
          allOf:
          - $ref: '#/components/schemas/ProjectCode'
          readOnly: true
          nullable: true
        reference:
          type: string
        responsible:
          type: integer
          nullable: true
          description: User or group responsible for this order
        responsible_detail:
          allOf:
          - $ref: '#/components/schemas/Owner'
          readOnly: true
          nullable: true
        contact:
          type: integer
          nullable: true
          description: Point of contact for this order
        contact_detail:
          allOf:
          - $ref: '#/components/schemas/Contact'
          readOnly: true
          nullable: true
        address:
          type: integer
          nullable: true
          description: Company address for this order
        address_detail:
          allOf:
          - $ref: '#/components/schemas/AddressBrief'
          readOnly: true
          nullable: true
        status:
          type: integer
          readOnly: true
          title: Order Status
        status_text:
          type: string
          readOnly: true
        status_custom_key:
          type: integer
          readOnly: true
          nullable: true
          title: Custom status key
          description: |-
            Additional status information for this item

            * `10` - Pending
            * `20` - Placed
            * `25` - On Hold
            * `30` - Complete
            * `40` - Cancelled
            * `50` - Lost
            * `60` - Returned

            Additional custom status keys may be retrieved from the corresponding 'status_retrieve' call.
        notes:
          type: string
          nullable: true
          description: Markdown notes (optional)
          maxLength: 50000
        barcode_hash:
          type: string
          readOnly: true
        overdue:
          type: boolean
          readOnly: true
          nullable: true
        duplicate:
          allOf:
          - $ref: '#/components/schemas/DuplicateOrder'
          writeOnly: true
          title: Duplicate Order
          description: Specify options for duplicating this order
        complete_date:
          type: string
          format: date
          readOnly: true
          nullable: true
          title: Completion Date
          description: Date order was completed
        supplier:
          type: integer
          nullable: true
          description: Company from which the items are being ordered
        supplier_detail:
          allOf:
          - $ref: '#/components/schemas/CompanyBrief'
          readOnly: true
          nullable: true
        supplier_reference:
          type: string
          description: Supplier order reference code
          maxLength: 64
        supplier_name:
          type: string
          readOnly: true
        total_price:
          type: string
          format: decimal
          pattern: ^-?\d{0,13}(?:\.\d{0,6})?$
          readOnly: true
          nullable: true
        order_currency:
          type: string
          nullable: true
          description: |-
            Currency for this order (leave blank to use company default)

            * `` - ---------
            * `AUD` - AUD - Australian Dollar
            * `CNY` - CNY - Chinese Yuan
            * `EUR` - EUR - Euro
            * `USD` - USD - US Dollar

            Other valid currencies may be found in the 'CURRENCY_CODES' global setting.
        destination:
          type: integer
          nullable: true
          description: Destination for received items
      required:
      - barcode_hash
      - created_by
      - pk
      - reference
      - status
      - status_text
      - supplier
      - supplier_name
    PurchaseOrderComplete:
      type: object
      description: Serializer for completing a purchase order.
      properties:
        accept_incomplete:
          type: boolean
          default: false
          description: Allow order to be closed with incomplete line items
    PurchaseOrderExtraLine:
      type: object
      description: Serializer for a PurchaseOrderExtraLine object.
      properties:
        pk:
          type: integer
          readOnly: true
          title: ID
        description:
          type: string
          description: Line item description (optional)
          maxLength: 250
        quantity:
          type: number
          format: double
        reference:
          type: string
          description: Line item reference
          maxLength: 100
        notes:
          type: string
          description: Line item notes
          maxLength: 500
        context:
          nullable: true
          description: Additional context for this line
        order:
          type: integer
          description: Purchase Order
        order_detail:
          allOf:
          - $ref: '#/components/schemas/PurchaseOrder'
          readOnly: true
          nullable: true
        price:
          type: string
          format: decimal
          pattern: ^-?\d{0,13}(?:\.\d{0,6})?$
          nullable: true
        price_currency:
          type: string
          title: Currency
          description: |-
            Select currency from available options

            * `AUD` - AUD - Australian Dollar
            * `CNY` - CNY - Chinese Yuan
            * `EUR` - EUR - Euro
            * `USD` - USD - US Dollar

            Other valid currencies may be found in the 'CURRENCY_CODES' global setting.
        link:
          type: string
          format: uri
          description: Link to external page
          maxLength: 2000
      required:
      - order
      - pk
      - quantity
    PurchaseOrderLineItem:
      type: object
      description: Serializer class for the PurchaseOrderLineItem model.
      properties:
        pk:
          type: integer
          readOnly: true
          title: ID
        part:
          type: integer
          nullable: true
          title: Supplier Part
        quantity:
          type: number
          format: double
          minimum: 0
        reference:
          type: string
          description: Line item reference
          maxLength: 100
        notes:
          type: string
          description: Line item notes
          maxLength: 500
        order:
          type: integer
          description: Purchase Order
        order_detail:
          allOf:
          - $ref: '#/components/schemas/PurchaseOrder'
          readOnly: true
          nullable: true
        build_order:
          type: integer
          nullable: true
          description: External Build Order to be fulfilled by this line item
        build_order_detail:
          allOf:
          - $ref: '#/components/schemas/Build'
          readOnly: true
          nullable: true
        overdue:
          type: boolean
          readOnly: true
          nullable: true
        part_detail:
          allOf:
          - $ref: '#/components/schemas/PartBrief'
          readOnly: true
          nullable: true
        supplier_part_detail:
          allOf:
          - $ref: '#/components/schemas/SupplierPart'
          readOnly: true
          nullable: true
        received:
          type: number
          format: double
          readOnly: true
          default: 0.0
        purchase_price:
          type: string
          format: decimal
          pattern: ^-?\d{0,13}(?:\.\d{0,6})?$
          nullable: true
        purchase_price_currency:
          type: string
          title: Currency
          description: |-
            Purchase price currency

            * `AUD` - AUD - Australian Dollar
            * `CNY` - CNY - Chinese Yuan
            * `EUR` - EUR - Euro
            * `USD` - USD - US Dollar

            Other valid currencies may be found in the 'CURRENCY_CODES' global setting.
        auto_pricing:
          type: boolean
          default: true
          description: Automatically calculate purchase price based on supplier part
            data
        destination:
          type: integer
          nullable: true
          description: Destination for received items
        destination_detail:
          allOf:
          - $ref: '#/components/schemas/LocationBrief'
          readOnly: true
          nullable: true
        target_date:
          type: string
          format: date
          nullable: true
          description: Target date for this line item (leave blank to use the target
            date from the order)
        total_price:
          type: number
          format: double
          readOnly: true
        link:
          type: string
          format: uri
          description: Link to external page
          maxLength: 2000
        merge_items:
          type: boolean
          writeOnly: true
          default: true
          description: Merge items with the same part, destination and target date
            into one line item
        sku:
          type: string
          readOnly: true
          nullable: true
        mpn:
          type: string
          readOnly: true
          nullable: true
        ipn:
          type: string
          readOnly: true
          nullable: true
          title: Internal Part Number
        internal_part:
          type: integer
          readOnly: true
        internal_part_name:
          type: string
          readOnly: true
      required:
      - internal_part
      - internal_part_name
      - order
      - part
      - pk
      - quantity
      - received
      - total_price
    PurchaseOrderLineItemReceive:
      type: object
      description: A serializer for receiving a single purchase order line item against
        a purchase order.
      properties:
        line_item:
          type: integer
        location:
          type: integer
          nullable: true
          description: Select destination location for received items
        quantity:
          type: string
          format: decimal
          pattern: ^-?\d{0,10}(?:\.\d{0,5})?$
        batch_code:
          type: string
          default: ''
          description: Enter batch code for incoming stock items
        expiry_date:
          type: string
          format: date
          nullable: true
          description: Enter expiry date for incoming stock items
        serial_numbers:
          type: string
          default: ''
          description: Enter serial numbers for incoming stock items
        status:
          type: integer
          description: |-
            Stock item status code

            * `10` - OK
            * `50` - Attention needed
            * `55` - Damaged
            * `60` - Destroyed
            * `65` - Rejected
            * `70` - Lost
            * `75` - Quarantined
            * `85` - Returned

            Additional custom status keys may be retrieved from the 'stock_status_retrieve' call.
          default: 10
        packaging:
          type: string
          default: ''
          description: Override packaging information for incoming stock items
        note:
          type: string
          default: ''
          description: Additional note for incoming stock items
        barcode:
          type: string
          nullable: true
          default: ''
          description: Scanned barcode
      required:
      - line_item
      - quantity
    PurchaseOrderReceive:
      type: object
      description: Serializer for receiving items against a PurchaseOrder.
      properties:
        items:
          type: array
          items:
            $ref: '#/components/schemas/PurchaseOrderLineItemReceive'
        location:
          type: integer
          nullable: true
          description: Select destination location for received items
      required:
      - items
    ReferenceStatusEnum:
      enum:
      - BuildStatus
      - DataImportStatusCode
      - LabelPrinterStatus
      - MachineStatus
      - PurchaseOrderStatus
      - ReturnOrderLineStatus
      - ReturnOrderStatus
      - SalesOrderStatus
      - StockHistoryCode
      - StockStatus
      type: string
      description: |-
        * `BuildStatus` - BuildStatus
        * `DataImportStatusCode` - DataImportStatusCode
        * `LabelPrinterStatus` - LabelPrinterStatus
        * `MachineStatus` - MachineStatus
        * `PurchaseOrderStatus` - PurchaseOrderStatus
        * `ReturnOrderLineStatus` - ReturnOrderLineStatus
        * `ReturnOrderStatus` - ReturnOrderStatus
        * `SalesOrderStatus` - SalesOrderStatus
        * `StockHistoryCode` - StockHistoryCode
        * `StockStatus` - StockStatus
    ReportAsset:
      type: object
      description: Serializer class for the ReportAsset model.
      properties:
        pk:
          type: integer
          readOnly: true
          title: ID
        asset:
          type: string
          format: uri
        description:
          type: string
          description: Asset file description
          maxLength: 250
      required:
      - asset
      - description
      - pk
    ReportPrint:
      type: object
      description: Serializer class for printing a report.
      properties:
        template:
          type: integer
          description: Select report template
        items:
          type: array
          items:
            type: integer
          description: List of item primary keys to include in the report
      required:
      - items
      - template
    ReportSnippet:
      type: object
      description: Serializer class for the ReportSnippet model.
      properties:
        pk:
          type: integer
          readOnly: true
          title: ID
        snippet:
          type: string
          format: uri
        description:
          type: string
          description: Snippet file description
          maxLength: 250
      required:
      - description
      - pk
      - snippet
    ReportTemplate:
      type: object
      description: Serializer class for report template model.
      properties:
        pk:
          type: integer
          readOnly: true
          title: ID
        name:
          type: string
          description: Template name
          maxLength: 100
        description:
          type: string
          description: Template description
          maxLength: 250
        model_type:
          $ref: '#/components/schemas/TemplateModelTypeEnum'
        template:
          type: string
          format: uri
        filters:
          type: string
          description: Template query filters (comma-separated list of key=value pairs)
          maxLength: 250
        filename_pattern:
          type: string
          description: Pattern for generating filenames
          maxLength: 100
        enabled:
          type: boolean
          description: Template is enabled
        revision:
          type: integer
          readOnly: true
        attach_to_model:
          type: boolean
          title: Attach to Model on Print
          description: Save report output as an attachment against linked model instance
            when printing
        page_size:
          allOf:
          - $ref: '#/components/schemas/PageSizeEnum'
          default: A4
        landscape:
          type: boolean
          description: Render report in landscape orientation
        merge:
          type: boolean
          description: Render a single report against selected items
      required:
      - description
      - model_type
      - name
      - pk
      - revision
      - template
    ReturnOrder:
      type: object
      description: Serializer for the ReturnOrder model class.
      properties:
        pk:
          type: integer
          readOnly: true
          title: ID
        created_by:
          allOf:
          - $ref: '#/components/schemas/User'
          readOnly: true
        creation_date:
          type: string
          format: date
          nullable: true
        issue_date:
          type: string
          format: date
          nullable: true
          description: Date order was issued
        start_date:
          type: string
          format: date
          nullable: true
          description: Scheduled start date for this order
        target_date:
          type: string
          format: date
          nullable: true
          description: Expected date for order delivery. Order will be overdue after
            this date.
        description:
          type: string
          description: Order description (optional)
          maxLength: 250
        line_items:
          type: integer
          readOnly: true
          nullable: true
        completed_lines:
          type: integer
          readOnly: true
          nullable: true
        link:
          type: string
          format: uri
          description: Link to external page
          maxLength: 2000
        project_code:
          type: integer
          nullable: true
          description: Select project code for this order
        project_code_label:
          type: string
          readOnly: true
          nullable: true
        project_code_detail:
          allOf:
          - $ref: '#/components/schemas/ProjectCode'
          readOnly: true
          nullable: true
        reference:
          type: string
        responsible:
          type: integer
          nullable: true
          description: User or group responsible for this order
        responsible_detail:
          allOf:
          - $ref: '#/components/schemas/Owner'
          readOnly: true
          nullable: true
        contact:
          type: integer
          nullable: true
          description: Point of contact for this order
        contact_detail:
          allOf:
          - $ref: '#/components/schemas/Contact'
          readOnly: true
          nullable: true
        address:
          type: integer
          nullable: true
          description: Company address for this order
        address_detail:
          allOf:
          - $ref: '#/components/schemas/AddressBrief'
          readOnly: true
          nullable: true
        status:
          type: integer
          readOnly: true
          title: Order Status
        status_text:
          type: string
          readOnly: true
        status_custom_key:
          type: integer
          readOnly: true
          nullable: true
          title: Custom status key
          description: |-
            Additional status information for this item

            * `10` - Pending
            * `20` - In Progress
            * `25` - On Hold
            * `30` - Complete
            * `40` - Cancelled

            Additional custom status keys may be retrieved from the corresponding 'status_retrieve' call.
        notes:
          type: string
          nullable: true
          description: Markdown notes (optional)
          maxLength: 50000
        barcode_hash:
          type: string
          readOnly: true
        overdue:
          type: boolean
          readOnly: true
          nullable: true
        duplicate:
          allOf:
          - $ref: '#/components/schemas/DuplicateOrder'
          writeOnly: true
          title: Duplicate Order
          description: Specify options for duplicating this order
        complete_date:
          type: string
          format: date
          nullable: true
          title: Completion Date
          description: Date order was completed
        customer:
          type: integer
          nullable: true
          description: Company from which items are being returned
        customer_detail:
          allOf:
          - $ref: '#/components/schemas/CompanyBrief'
          readOnly: true
          nullable: true
        customer_reference:
          type: string
          description: Customer order reference code
          maxLength: 64
        order_currency:
          type: string
          nullable: true
          description: |-
            Currency for this order (leave blank to use company default)

            * `` - ---------
            * `AUD` - AUD - Australian Dollar
            * `CNY` - CNY - Chinese Yuan
            * `EUR` - EUR - Euro
            * `USD` - USD - US Dollar

            Other valid currencies may be found in the 'CURRENCY_CODES' global setting.
        total_price:
          type: string
          format: decimal
          pattern: ^-?\d{0,13}(?:\.\d{0,6})?$
          readOnly: true
          nullable: true
      required:
      - barcode_hash
      - created_by
      - pk
      - reference
      - status
      - status_text
    ReturnOrderExtraLine:
      type: object
      description: Serializer for a ReturnOrderExtraLine object.
      properties:
        pk:
          type: integer
          readOnly: true
          title: ID
        description:
          type: string
          description: Line item description (optional)
          maxLength: 250
        quantity:
          type: number
          format: double
        reference:
          type: string
          description: Line item reference
          maxLength: 100
        notes:
          type: string
          description: Line item notes
          maxLength: 500
        context:
          nullable: true
          description: Additional context for this line
        order:
          type: integer
          description: Return Order
        order_detail:
          allOf:
          - $ref: '#/components/schemas/ReturnOrder'
          readOnly: true
          nullable: true
        price:
          type: string
          format: decimal
          pattern: ^-?\d{0,13}(?:\.\d{0,6})?$
          nullable: true
        price_currency:
          type: string
          title: Currency
          description: |-
            Select currency from available options

            * `AUD` - AUD - Australian Dollar
            * `CNY` - CNY - Chinese Yuan
            * `EUR` - EUR - Euro
            * `USD` - USD - US Dollar

            Other valid currencies may be found in the 'CURRENCY_CODES' global setting.
        link:
          type: string
          format: uri
          description: Link to external page
          maxLength: 2000
      required:
      - order
      - pk
      - quantity
    ReturnOrderLineItem:
      type: object
      description: Serializer for a ReturnOrderLineItem object.
      properties:
        pk:
          type: integer
          readOnly: true
          title: ID
        order:
          type: integer
          description: Return Order
        order_detail:
          allOf:
          - $ref: '#/components/schemas/ReturnOrder'
          readOnly: true
          nullable: true
        item:
          type: integer
          description: Select item to return from customer
        item_detail:
          allOf:
          - $ref: '#/components/schemas/StockItem'
          readOnly: true
          nullable: true
        quantity:
          type: number
          format: double
          description: Quantity to return
        received_date:
          type: string
          format: date
          nullable: true
          description: The date this this return item was received
        outcome:
          allOf:
          - $ref: '#/components/schemas/OutcomeEnum'
          description: |-
            Outcome for this line item

            * `10` - Pending
            * `20` - Return
            * `30` - Repair
            * `40` - Replace
            * `50` - Refund
            * `60` - Reject
        part_detail:
          allOf:
          - $ref: '#/components/schemas/PartBrief'
          readOnly: true
          nullable: true
        price:
          type: string
          format: decimal
          pattern: ^-?\d{0,13}(?:\.\d{0,6})?$
          nullable: true
        price_currency:
          type: string
          title: Currency
          description: |-
            Line price currency

            * `AUD` - AUD - Australian Dollar
            * `CNY` - CNY - Chinese Yuan
            * `EUR` - EUR - Euro
            * `USD` - USD - US Dollar

            Other valid currencies may be found in the 'CURRENCY_CODES' global setting.
        link:
          type: string
          format: uri
          description: Link to external page
          maxLength: 2000
        reference:
          type: string
          description: Line item reference
          maxLength: 100
        notes:
          type: string
          description: Line item notes
          maxLength: 500
        target_date:
          type: string
          format: date
          nullable: true
          description: Target date for this line item (leave blank to use the target
            date from the order)
      required:
      - item
      - order
      - pk
      - quantity
    ReturnOrderLineItemReceive:
      type: object
      description: Serializer for receiving a single line item against a ReturnOrder.
      properties:
        item:
          type: integer
          title: Return order line item
        status:
          type: integer
          description: |-
            Stock item status code

            * `10` - OK
            * `50` - Attention needed
            * `55` - Damaged
            * `60` - Destroyed
            * `65` - Rejected
            * `70` - Lost
            * `75` - Quarantined
            * `85` - Returned

            Additional custom status keys may be retrieved from the 'stock_status_retrieve' call.
      required:
      - item
    ReturnOrderReceive:
      type: object
      description: Serializer for receiving items against a ReturnOrder.
      properties:
        items:
          type: array
          items:
            $ref: '#/components/schemas/ReturnOrderLineItemReceive'
        location:
          type: integer
          description: Select destination location for received items
        note:
          type: string
          default: ''
          description: Additional note for incoming stock items
      required:
      - items
      - location
    Role:
      type: object
      description: Serializer for a roles associated with a given user.
      properties:
        user:
          type: integer
        username:
          type: string
          description: Required. 150 characters or fewer. Letters, digits and @/./+/-/_
            only.
          pattern: ^[\w.@+-]+$
          maxLength: 150
        roles:
          type: object
          additionalProperties: {}
          description: Roles associated with the user.
          readOnly: true
        permissions:
          type: object
          additionalProperties: {}
          description: Permissions associated with the user.
          readOnly: true
          nullable: true
        is_staff:
          type: boolean
          title: Staff status
          description: Designates whether the user can log into this admin site.
        is_superuser:
          type: boolean
          title: Superuser status
          description: Designates that this user has all permissions without explicitly
            assigning them.
      required:
      - roles
      - user
      - username
    RuleSet:
      type: object
      description: Serializer for a RuleSet.
      properties:
        pk:
          type: integer
          readOnly: true
          title: ID
        name:
          allOf:
          - $ref: '#/components/schemas/NameEnum'
          readOnly: true
          description: |-
            Permission set

            * `admin` - Admin
            * `part_category` - Part Categories
            * `part` - Parts
            * `stock_location` - Stock Locations
            * `stock` - Stock Items
            * `build` - Build Orders
            * `purchase_order` - Purchase Orders
            * `sales_order` - Sales Orders
            * `return_order` - Return Orders
        label:
          type: string
          description: Return the translated label for this ruleset.
          readOnly: true
        group:
          type: integer
          readOnly: true
          description: Group
        can_view:
          type: boolean
          title: View
          description: Permission to view items
        can_add:
          type: boolean
          title: Add
          description: Permission to add items
        can_change:
          type: boolean
          title: Change
          description: Permissions to edit items
        can_delete:
          type: boolean
          title: Delete
          description: Permission to delete items
      required:
      - group
      - label
      - name
      - pk
    SalesOrder:
      type: object
      description: Serializer for the SalesOrder model class.
      properties:
        pk:
          type: integer
          readOnly: true
          title: ID
        created_by:
          allOf:
          - $ref: '#/components/schemas/User'
          readOnly: true
        creation_date:
          type: string
          format: date
          nullable: true
        issue_date:
          type: string
          format: date
          nullable: true
          description: Date order was issued
        start_date:
          type: string
          format: date
          nullable: true
          description: Scheduled start date for this order
        target_date:
          type: string
          format: date
          nullable: true
          description: Expected date for order delivery. Order will be overdue after
            this date.
        description:
          type: string
          description: Order description (optional)
          maxLength: 250
        line_items:
          type: integer
          readOnly: true
          nullable: true
        completed_lines:
          type: integer
          readOnly: true
          nullable: true
        link:
          type: string
          format: uri
          description: Link to external page
          maxLength: 2000
        project_code:
          type: integer
          nullable: true
          description: Select project code for this order
        project_code_label:
          type: string
          readOnly: true
          nullable: true
        project_code_detail:
          allOf:
          - $ref: '#/components/schemas/ProjectCode'
          readOnly: true
          nullable: true
        reference:
          type: string
        responsible:
          type: integer
          nullable: true
          description: User or group responsible for this order
        responsible_detail:
          allOf:
          - $ref: '#/components/schemas/Owner'
          readOnly: true
          nullable: true
        contact:
          type: integer
          nullable: true
          description: Point of contact for this order
        contact_detail:
          allOf:
          - $ref: '#/components/schemas/Contact'
          readOnly: true
          nullable: true
        address:
          type: integer
          nullable: true
          description: Company address for this order
        address_detail:
          allOf:
          - $ref: '#/components/schemas/AddressBrief'
          readOnly: true
          nullable: true
        status:
          type: integer
          readOnly: true
          title: Order Status
        status_text:
          type: string
          readOnly: true
        status_custom_key:
          type: integer
          readOnly: true
          nullable: true
          title: Custom status key
          description: |-
            Additional status information for this item

            * `10` - Pending
            * `15` - In Progress
            * `20` - Shipped
            * `25` - On Hold
            * `30` - Complete
            * `40` - Cancelled
            * `50` - Lost
            * `60` - Returned

            Additional custom status keys may be retrieved from the corresponding 'status_retrieve' call.
        notes:
          type: string
          nullable: true
          description: Markdown notes (optional)
          maxLength: 50000
        barcode_hash:
          type: string
          readOnly: true
        overdue:
          type: boolean
          readOnly: true
          nullable: true
        duplicate:
          allOf:
          - $ref: '#/components/schemas/DuplicateOrder'
          writeOnly: true
          title: Duplicate Order
          description: Specify options for duplicating this order
        customer:
          type: integer
          nullable: true
          description: Company to which the items are being sold
        customer_detail:
          allOf:
          - $ref: '#/components/schemas/CompanyBrief'
          readOnly: true
          nullable: true
        customer_reference:
          type: string
          description: Customer order reference code
          maxLength: 64
        shipment_date:
          type: string
          format: date
          readOnly: true
          nullable: true
        total_price:
          type: string
          format: decimal
          pattern: ^-?\d{0,13}(?:\.\d{0,6})?$
          readOnly: true
          nullable: true
        order_currency:
          type: string
          nullable: true
          description: |-
            Currency for this order (leave blank to use company default)

            * `` - ---------
            * `AUD` - AUD - Australian Dollar
            * `CNY` - CNY - Chinese Yuan
            * `EUR` - EUR - Euro
            * `USD` - USD - US Dollar

            Other valid currencies may be found in the 'CURRENCY_CODES' global setting.
        shipments_count:
          type: integer
          readOnly: true
          nullable: true
          title: Shipments
        completed_shipments_count:
          type: integer
          readOnly: true
          nullable: true
          title: Completed Shipments
      required:
      - barcode_hash
      - created_by
      - pk
      - reference
      - status
      - status_text
    SalesOrderAllocation:
      type: object
      description: |-
        Serializer for the SalesOrderAllocation model.

        This includes some fields from the related model objects.
      properties:
        pk:
          type: integer
          readOnly: true
          title: ID
        item:
          type: integer
          description: Select stock item to allocate
        quantity:
          type: number
          format: double
        shipment:
          type: integer
          nullable: true
          description: Sales order shipment reference
        line:
          type: integer
          readOnly: true
        part:
          type: integer
          readOnly: true
        order:
          type: integer
          readOnly: true
        serial:
          type: string
          readOnly: true
          nullable: true
        location:
          type: integer
          readOnly: true
        item_detail:
          allOf:
          - $ref: '#/components/schemas/StockItem'
          readOnly: true
          nullable: true
        part_detail:
          allOf:
          - $ref: '#/components/schemas/PartBrief'
          readOnly: true
          nullable: true
        order_detail:
          allOf:
          - $ref: '#/components/schemas/SalesOrder'
          readOnly: true
          nullable: true
        customer_detail:
          allOf:
          - $ref: '#/components/schemas/CompanyBrief'
          readOnly: true
          nullable: true
        location_detail:
          allOf:
          - $ref: '#/components/schemas/LocationBrief'
          readOnly: true
          nullable: true
        shipment_detail:
          allOf:
          - $ref: '#/components/schemas/SalesOrderShipment'
          readOnly: true
          nullable: true
      required:
      - item
      - line
      - location
      - order
      - part
      - pk
      - quantity
    SalesOrderComplete:
      type: object
      description: DRF serializer for manually marking a sales order as complete.
      properties:
        accept_incomplete:
          type: boolean
          default: false
          description: Allow order to be closed with incomplete line items
    SalesOrderExtraLine:
      type: object
      description: Serializer for a SalesOrderExtraLine object.
      properties:
        pk:
          type: integer
          readOnly: true
          title: ID
        description:
          type: string
          description: Line item description (optional)
          maxLength: 250
        quantity:
          type: number
          format: double
        reference:
          type: string
          description: Line item reference
          maxLength: 100
        notes:
          type: string
          description: Line item notes
          maxLength: 500
        context:
          nullable: true
          description: Additional context for this line
        order:
          type: integer
          description: Sales Order
        order_detail:
          allOf:
          - $ref: '#/components/schemas/SalesOrder'
          readOnly: true
          nullable: true
        price:
          type: string
          format: decimal
          pattern: ^-?\d{0,13}(?:\.\d{0,6})?$
          nullable: true
        price_currency:
          type: string
          title: Currency
          description: |-
            Select currency from available options

            * `AUD` - AUD - Australian Dollar
            * `CNY` - CNY - Chinese Yuan
            * `EUR` - EUR - Euro
            * `USD` - USD - US Dollar

            Other valid currencies may be found in the 'CURRENCY_CODES' global setting.
        link:
          type: string
          format: uri
          description: Link to external page
          maxLength: 2000
      required:
      - order
      - pk
      - quantity
    SalesOrderLineItem:
      type: object
      description: Serializer for a SalesOrderLineItem object.
      properties:
        pk:
          type: integer
          readOnly: true
          title: ID
        allocated:
          type: number
          format: double
          readOnly: true
        customer_detail:
          allOf:
          - $ref: '#/components/schemas/CompanyBrief'
          readOnly: true
          nullable: true
        quantity:
          type: number
          format: double
        reference:
          type: string
          description: Line item reference
          maxLength: 100
        notes:
          type: string
          description: Line item notes
          maxLength: 500
        order:
          type: integer
          description: Sales Order
        order_detail:
          allOf:
          - $ref: '#/components/schemas/SalesOrder'
          readOnly: true
          nullable: true
        overdue:
          type: boolean
          readOnly: true
          nullable: true
        part:
          type: integer
          nullable: true
          description: Part
        part_detail:
          allOf:
          - $ref: '#/components/schemas/PartBrief'
          readOnly: true
          nullable: true
        sale_price:
          type: string
          format: decimal
          pattern: ^-?\d{0,13}(?:\.\d{0,6})?$
          nullable: true
        sale_price_currency:
          type: string
          title: Currency
          description: |-
            Sale price currency

            * `AUD` - AUD - Australian Dollar
            * `CNY` - CNY - Chinese Yuan
            * `EUR` - EUR - Euro
            * `USD` - USD - US Dollar

            Other valid currencies may be found in the 'CURRENCY_CODES' global setting.
        shipped:
          type: number
          format: double
          readOnly: true
        target_date:
          type: string
          format: date
          nullable: true
          description: Target date for this line item (leave blank to use the target
            date from the order)
        link:
          type: string
          format: uri
          description: Link to external page
          maxLength: 2000
        available_stock:
          type: number
          format: double
          readOnly: true
        available_variant_stock:
          type: number
          format: double
          readOnly: true
        building:
          type: number
          format: double
          readOnly: true
          title: In Production
        on_order:
          type: number
          format: double
          readOnly: true
      required:
      - allocated
      - available_stock
      - available_variant_stock
      - building
      - on_order
      - order
      - pk
      - quantity
      - shipped
    SalesOrderSerialAllocation:
      type: object
      description: DRF serializer for allocation of serial numbers against a sales
        order / shipment.
      properties:
        line_item:
          type: integer
        quantity:
          type: integer
          minimum: 1
        serial_numbers:
          type: string
          description: Enter serial numbers to allocate
        shipment:
          type: integer
          nullable: true
      required:
      - line_item
      - quantity
      - serial_numbers
    SalesOrderShipment:
      type: object
      description: Serializer for the SalesOrderShipment class.
      properties:
        pk:
          type: integer
          readOnly: true
          title: ID
        order:
          type: integer
          description: Sales Order
        order_detail:
          allOf:
          - $ref: '#/components/schemas/SalesOrder'
          readOnly: true
          nullable: true
        allocated_items:
          type: integer
          readOnly: true
          nullable: true
        shipment_date:
          type: string
          format: date
          nullable: true
          description: Date of shipment
        delivery_date:
          type: string
          format: date
          nullable: true
          description: Date of delivery of shipment
        checked_by:
          type: integer
          nullable: true
          description: User who checked this shipment
        reference:
          type: string
          default: '1'
          title: Shipment
          description: Shipment number
          maxLength: 100
        tracking_number:
          type: string
          description: Shipment tracking information
          maxLength: 100
        invoice_number:
          type: string
          description: Reference number for associated invoice
          maxLength: 100
        barcode_hash:
          type: string
          description: Unique hash of barcode data
          maxLength: 128
        link:
          type: string
          format: uri
          description: Link to external page
          maxLength: 2000
        notes:
          type: string
          nullable: true
          description: Markdown notes (optional)
          maxLength: 50000
      required:
      - order
      - pk
    SalesOrderShipmentAllocation:
      type: object
      description: DRF serializer for allocation of stock items against a sales order
        / shipment.
      properties:
        items:
          type: array
          items:
            $ref: '#/components/schemas/SalesOrderShipmentAllocationItem'
        shipment:
          type: integer
          nullable: true
      required:
      - items
    SalesOrderShipmentAllocationItem:
      type: object
      description: A serializer for allocating a single stock-item against a SalesOrder
        shipment.
      properties:
        line_item:
          type: integer
          title: Stock Item
        stock_item:
          type: integer
        quantity:
          type: string
          format: decimal
          pattern: ^-?\d{0,10}(?:\.\d{0,5})?$
      required:
      - line_item
      - quantity
      - stock_item
    SalesOrderShipmentComplete:
      type: object
      description: Serializer for completing (shipping) a SalesOrderShipment.
      properties:
        shipment_date:
          type: string
          format: date
          nullable: true
          description: Date of shipment
        delivery_date:
          type: string
          format: date
          nullable: true
          description: Date of delivery of shipment
        tracking_number:
          type: string
          description: Shipment tracking information
          maxLength: 100
        invoice_number:
          type: string
          description: Reference number for associated invoice
          maxLength: 100
        link:
          type: string
          format: uri
          description: Link to external page
          maxLength: 2000
    ScheduleTypeEnum:
      enum:
      - O
      - I
      - H
      - D
      - W
      - BW
      - M
      - BM
      - Q
      - Y
      - C
      type: string
      description: |-
        * `O` - Once
        * `I` - Minutes
        * `H` - Hourly
        * `D` - Daily
        * `W` - Weekly
        * `BW` - Biweekly
        * `M` - Monthly
        * `BM` - Bimonthly
        * `Q` - Quarterly
        * `Y` - Yearly
        * `C` - Cron
    ScheduledTask:
      type: object
      description: Serializer for an individual scheduled task object.
      properties:
        pk:
          type: integer
          readOnly: true
          title: ID
        name:
          type: string
          nullable: true
          maxLength: 100
        func:
          type: string
          description: e.g. module.tasks.function
          maxLength: 256
        args:
          type: string
          nullable: true
          description: e.g. 1, 2, 'John'
        kwargs:
          type: string
          nullable: true
          description: e.g. x=1, y=2, name='John'
        schedule_type:
          $ref: '#/components/schemas/ScheduleTypeEnum'
        repeats:
          type: integer
          description: n = n times, -1 = forever
        last_run:
          type: string
          format: date-time
        next_run:
          type: string
          format: date-time
          nullable: true
        success:
          type: boolean
        task:
          type: string
          readOnly: true
          nullable: true
      required:
      - func
      - last_run
      - pk
      - success
    SelectionEntry:
      type: object
      description: Serializer for a selection entry.
      properties:
        id:
          type: integer
          readOnly: true
        value:
          type: string
          description: Value of the selection list entry
          maxLength: 255
        label:
          type: string
          description: Label for the selection list entry
          maxLength: 255
        description:
          type: string
          description: Description of the selection list entry
          maxLength: 250
        active:
          type: boolean
          description: Is this selection list entry active?
        list:
          type: integer
          nullable: true
          title: Selection List
          description: Selection list to which this entry belongs
      required:
      - id
      - label
      - value
    SelectionList:
      type: object
      description: Serializer for a selection list.
      properties:
        pk:
          type: integer
          readOnly: true
          title: ID
        name:
          type: string
          description: Name of the selection list
          maxLength: 100
        description:
          type: string
          description: Description of the selection list
          maxLength: 250
        active:
          type: boolean
          description: Can this selection list be used?
        locked:
          type: boolean
          description: Is this selection list locked?
        source_plugin:
          type: integer
          nullable: true
          description: Plugin which provides the selection list
        source_string:
          type: string
          description: Optional string identifying the source used for this list
          maxLength: 1000
        default:
          allOf:
          - $ref: '#/components/schemas/SelectionEntry'
          readOnly: true
        created:
          type: string
          format: date-time
          readOnly: true
          description: Date and time that the selection list was created
        last_updated:
          type: string
          format: date-time
          readOnly: true
          description: Date and time that the selection list was last updated
        choices:
          type: array
          items:
            $ref: '#/components/schemas/SelectionEntry'
        entry_count:
          type: integer
          readOnly: true
      required:
      - created
      - default
      - entry_count
      - last_updated
      - name
      - pk
    SerializeStockItem:
      type: object
      description: |-
        A DRF serializer for "serializing" a StockItem.

        (Sorry for the confusing naming...)

        Here, "serializing" means splitting out a single StockItem,
        into multiple single-quantity items with an assigned serial number

        Note: The base StockItem object is provided to the serializer context
      properties:
        quantity:
          type: integer
          minimum: 0
          description: Enter number of stock items to serialize
        serial_numbers:
          type: string
          description: Enter serial numbers for new items
        destination:
          type: integer
          title: Location
          description: Destination stock location
        notes:
          type: string
          description: Optional note field
      required:
      - destination
      - quantity
      - serial_numbers
    Settings:
      type: object
      description: Serializer for InfoApiSerializer.
      properties:
        sso_registration:
          type: boolean
        registration_enabled:
          type: boolean
        password_forgotten_enabled:
          type: boolean
      required:
      - password_forgotten_enabled
      - registration_enabled
      - sso_registration
    StockAdd:
      type: object
      description: Serializer for adding stock to stock item(s).
      properties:
        items:
          type: array
          items:
            $ref: '#/components/schemas/StockAdjustmentItem'
        notes:
          type: string
          description: Stock transaction notes
      required:
      - items
    StockAdjustmentItem:
      type: object
      description: |-
        Serializer for a single StockItem within a stock adjustment request.

        Required Fields:
            - item: StockItem object
            - quantity: Numerical quantity

        Optional Fields (may be used by external tools)
            - status: Change StockItem status code
            - packaging: Change StockItem packaging
            - batch: Change StockItem batch code

        The optional fields can be used to adjust values for individual stock items
      properties:
        pk:
          type: integer
          title: stock_item
          description: StockItem primary key value
        quantity:
          type: string
          format: decimal
          pattern: ^-?\d{0,10}(?:\.\d{0,5})?$
        batch:
          type: string
          title: Batch Code
          description: Batch code for this stock item
          maxLength: 100
        status:
          type: integer
          description: |-
            Stock item status code

            * `None` - No Change
            * `10` - OK
            * `50` - Attention needed
            * `55` - Damaged
            * `60` - Destroyed
            * `65` - Rejected
            * `70` - Lost
            * `75` - Quarantined
            * `85` - Returned

            Additional custom status keys may be retrieved from the 'stock_status_retrieve' call.
        packaging:
          type: string
          description: Packaging this stock item is stored in
          maxLength: 50
      required:
      - pk
      - quantity
    StockAssignment:
      type: object
      description: |-
        Serializer for assigning one (or more) stock items to a customer.

        This is a manual assignment process, separate for (for example) a Sales Order
      properties:
        items:
          type: array
          items:
            $ref: '#/components/schemas/StockAssignmentItem'
        customer:
          type: integer
          description: Customer to assign stock items
        notes:
          type: string
          description: Stock assignment notes
      required:
      - customer
      - items
    StockAssignmentItem:
      type: object
      description: |-
        Serializer for a single StockItem with in StockAssignment request.

        Here, the particular StockItem is being assigned (manually) to a customer

        Fields:
            - item: StockItem object
      properties:
        item:
          type: integer
          title: Stock Item
      required:
      - item
    StockChangeStatus:
      type: object
      description: Serializer for changing status of multiple StockItem objects.
      properties:
        items:
          type: array
          items:
            type: integer
            title: Stock Items
          title: Stock Items
          description: Select stock items to change status
        status:
          type: integer
          description: |-
            Stock item status code

            * `10` - OK
            * `50` - Attention needed
            * `55` - Damaged
            * `60` - Destroyed
            * `65` - Rejected
            * `70` - Lost
            * `75` - Quarantined
            * `85` - Returned

            Additional custom status keys may be retrieved from the 'stock_status_retrieve' call.
          default: 10
        note:
          type: string
          title: Notes
          description: Add transaction note (optional)
      required:
      - items
    StockCount:
      type: object
      description: Serializer for counting stock items.
      properties:
        items:
          type: array
          items:
            $ref: '#/components/schemas/StockAdjustmentItem'
        notes:
          type: string
          description: Stock transaction notes
      required:
      - items
    StockItem:
      type: object
      description: |-
        Serializer for a StockItem.

        - Includes serialization for the linked part
        - Includes serialization for the item location
      properties:
        pk:
          type: integer
          readOnly: true
          title: ID
        part:
          type: integer
          description: Base Part
        quantity:
          type: number
          format: double
        serial:
          type: string
          nullable: true
          title: Serial Number
          description: Serial number for this item
          maxLength: 100
        batch:
          type: string
          nullable: true
          title: Batch Code
          description: Batch code for this stock item
          maxLength: 100
        location:
          type: integer
          nullable: true
          title: Stock Location
          description: Where is this stock item located?
        belongs_to:
          type: integer
          nullable: true
          title: Installed In
          description: Is this item installed in another item?
        build:
          type: integer
          nullable: true
          title: Source Build
          description: Build for this stock item
        consumed_by:
          type: integer
          nullable: true
          description: Build order which consumed this stock item
        customer:
          type: integer
          nullable: true
          description: Customer
        delete_on_deplete:
          type: boolean
          description: Delete this Stock Item when stock is depleted
        expiry_date:
          type: string
          format: date
          nullable: true
          description: Expiry date for stock item. Stock will be considered expired
            after this date
        in_stock:
          type: boolean
          readOnly: true
        is_building:
          type: boolean
        link:
          type: string
          format: uri
          title: External Link
          description: Link to external URL
          maxLength: 2000
        notes:
          type: string
          nullable: true
          description: Markdown notes (optional)
          maxLength: 50000
        owner:
          type: integer
          nullable: true
          description: Select Owner
        packaging:
          type: string
          nullable: true
          description: Packaging this stock item is stored in
          maxLength: 50
        parent:
          type: integer
          readOnly: true
          title: Parent Item
          description: Parent stock item
        purchase_order:
          type: integer
          nullable: true
          title: Source Purchase Order
          description: Purchase order for this stock item
        purchase_order_reference:
          type: string
          readOnly: true
          nullable: true
        sales_order:
          type: integer
          nullable: true
          title: Destination Sales Order
        sales_order_reference:
          type: string
          readOnly: true
          nullable: true
        status:
          allOf:
          - $ref: '#/components/schemas/StockItemStatusEnum'
          minimum: 0
        status_text:
          type: string
          readOnly: true
          title: Status
        status_custom_key:
          type: integer
          nullable: true
          title: Custom status key
          description: |-
            Additional status information for this item

            * `10` - OK
            * `50` - Attention needed
            * `55` - Damaged
            * `60` - Destroyed
            * `65` - Rejected
            * `70` - Lost
            * `75` - Quarantined
            * `85` - Returned

            Additional custom status keys may be retrieved from the corresponding 'status_retrieve' call.
        supplier_part:
          type: integer
          nullable: true
          description: Select a matching supplier part for this stock item
        SKU:
          type: string
          readOnly: true
          nullable: true
          title: Supplier Part Number
        MPN:
          type: string
          readOnly: true
          nullable: true
          title: Manufacturer Part Number
        barcode_hash:
          type: string
          readOnly: true
          description: Unique hash of barcode data
        updated:
          type: string
          format: date-time
          readOnly: true
          nullable: true
          description: Timestamp of last update
        stocktake_date:
          type: string
          format: date
          readOnly: true
          nullable: true
        purchase_price:
          type: string
          format: decimal
          pattern: ^-?\d{0,13}(?:\.\d{0,6})?$
          nullable: true
          description: Purchase price of this stock item, per unit or pack
        purchase_price_currency:
          type: string
          title: Currency
          description: |-
            Purchase currency of this stock item

            * `AUD` - AUD - Australian Dollar
            * `CNY` - CNY - Chinese Yuan
            * `EUR` - EUR - Euro
            * `USD` - USD - US Dollar

            Other valid currencies may be found in the 'CURRENCY_CODES' global setting.
        use_pack_size:
          type: boolean
          writeOnly: true
          nullable: true
          description: 'Use pack size when adding: the quantity defined is the number
            of packs'
        serial_numbers:
          type: string
          writeOnly: true
          nullable: true
          description: Enter serial numbers for new items
        tests:
          type: array
          items:
            $ref: '#/components/schemas/StockItemTestResult'
          readOnly: true
          nullable: true
        allocated:
          type: number
          format: double
          readOnly: true
          nullable: true
          title: Allocated Quantity
        expired:
          type: boolean
          readOnly: true
          nullable: true
        installed_items:
          type: integer
          readOnly: true
          nullable: true
        child_items:
          type: integer
          readOnly: true
          nullable: true
        location_path:
          type: array
          items:
            type: object
            additionalProperties: {}
          readOnly: true
          nullable: true
        stale:
          type: boolean
          readOnly: true
          nullable: true
        tracking_items:
          type: integer
          readOnly: true
          nullable: true
        tags:
          type: array
          items:
            type: string
        supplier_part_detail:
          allOf:
          - $ref: '#/components/schemas/SupplierPart'
          readOnly: true
          nullable: true
          title: Supplier Part
        part_detail:
          allOf:
          - $ref: '#/components/schemas/PartBrief'
          readOnly: true
          nullable: true
          title: Part
        location_detail:
          allOf:
          - $ref: '#/components/schemas/LocationBrief'
          readOnly: true
          nullable: true
          title: Location
      required:
      - barcode_hash
      - in_stock
      - parent
      - part
      - pk
      - quantity
      - status_text
    StockItemSerialNumbers:
      type: object
      description: Serializer for extra serial number information about a stock item.
      properties:
        next:
          allOf:
          - $ref: '#/components/schemas/StockItem'
          readOnly: true
          title: Next Serial Number
        previous:
          allOf:
          - $ref: '#/components/schemas/StockItem'
          readOnly: true
          title: Previous Serial Number
      required:
      - next
      - previous
    StockItemStatusEnum:
      enum:
      - 10
      - 50
      - 55
      - 60
      - 65
      - 70
      - 75
      - 85
      type: integer
      description: |-
        * `10` - OK
        * `50` - Attention needed
        * `55` - Damaged
        * `60` - Destroyed
        * `65` - Rejected
        * `70` - Lost
        * `75` - Quarantined
        * `85` - Returned
    StockItemTestResult:
      type: object
      description: Serializer for the StockItemTestResult model.
      properties:
        pk:
          type: integer
          readOnly: true
          title: ID
        stock_item:
          type: integer
        result:
          type: boolean
          description: Test result
        value:
          type: string
          description: Test output value
          maxLength: 500
        attachment:
          type: string
          format: uri
          nullable: true
          description: Test result attachment
        notes:
          type: string
          description: Test notes
          maxLength: 500
        test_station:
          type: string
          description: The identifier of the test station where the test was performed
          maxLength: 500
        started_datetime:
          type: string
          format: date-time
          nullable: true
          title: Started
          description: The timestamp of the test start
        finished_datetime:
          type: string
          format: date-time
          nullable: true
          title: Finished
          description: The timestamp of the test finish
        user:
          type: integer
          readOnly: true
          nullable: true
        user_detail:
          allOf:
          - $ref: '#/components/schemas/User'
          readOnly: true
          nullable: true
        date:
          type: string
          format: date-time
          readOnly: true
        template:
          type: integer
          nullable: true
          title: Test template for this result
          description: Template
        template_detail:
          allOf:
          - $ref: '#/components/schemas/PartTestTemplate'
          readOnly: true
          nullable: true
      required:
      - date
      - pk
      - stock_item
    StockLocationType:
      type: object
      description: Serializer for StockLocationType model.
      properties:
        pk:
          type: integer
          readOnly: true
          title: ID
        name:
          type: string
          description: Name
          maxLength: 100
        description:
          type: string
          description: Description (optional)
          maxLength: 250
        icon:
          type: string
          description: Default icon for all locations that have no icon set (optional)
          maxLength: 100
        location_count:
          type: integer
          readOnly: true
          nullable: true
      required:
      - name
      - pk
    StockMerge:
      type: object
      description: Serializer for merging two (or more) stock items together.
      properties:
        items:
          type: array
          items:
            $ref: '#/components/schemas/StockMergeItem'
        location:
          type: integer
          description: Destination stock location
        notes:
          type: string
          description: Stock merging notes
        allow_mismatched_suppliers:
          type: boolean
          description: Allow stock items with different supplier parts to be merged
        allow_mismatched_status:
          type: boolean
          description: Allow stock items with different status codes to be merged
      required:
      - items
      - location
    StockMergeItem:
      type: object
      description: |-
        Serializer for a single StockItem within the StockMergeSerializer class.

        Here, the individual StockItem is being checked for merge compatibility.
      properties:
        item:
          type: integer
          title: Stock Item
      required:
      - item
    StockRemove:
      type: object
      description: Serializer for removing stock from stock item(s).
      properties:
        items:
          type: array
          items:
            $ref: '#/components/schemas/StockAdjustmentItem'
        notes:
          type: string
          description: Stock transaction notes
      required:
      - items
    StockReturn:
      type: object
      description: Serializer class for returning stock item(s) into stock.
      properties:
        items:
          type: array
          items:
            $ref: '#/components/schemas/StockAdjustmentItem'
        notes:
          type: string
          description: Stock transaction notes
        location:
          type: integer
          description: Destination stock location
        merge:
          type: boolean
          default: false
          title: Merge into existing stock
          description: Merge returned items into existing stock items if possible
      required:
      - items
      - location
    StockTracking:
      type: object
      description: Serializer for StockItemTracking model.
      properties:
        pk:
          type: integer
          readOnly: true
          title: ID
        item:
          type: integer
        item_detail:
          allOf:
          - $ref: '#/components/schemas/StockItem'
          readOnly: true
          nullable: true
        date:
          type: string
          format: date-time
          readOnly: true
        deltas:
          readOnly: true
        label:
          type: string
          readOnly: true
        notes:
          type: string
          nullable: true
          description: Entry notes
          maxLength: 512
        tracking_type:
          type: integer
          readOnly: true
        user:
          type: integer
          readOnly: true
          nullable: true
        user_detail:
          allOf:
          - $ref: '#/components/schemas/User'
          readOnly: true
          nullable: true
      required:
      - date
      - deltas
      - item
      - label
      - pk
      - tracking_type
    StockTransfer:
      type: object
      description: Serializer for transferring (moving) stock item(s).
      properties:
        items:
          type: array
          items:
            $ref: '#/components/schemas/StockAdjustmentItem'
        notes:
          type: string
          description: Stock transaction notes
        location:
          type: integer
          description: Destination stock location
      required:
      - items
      - location
    SupplierPart:
      type: object
      description: Serializer for SupplierPart object.
      properties:
        available:
          type: number
          format: double
        availability_updated:
          type: string
          format: date-time
          readOnly: true
          nullable: true
          description: Date of last update of availability data
        description:
          type: string
          nullable: true
          description: Supplier part description
          maxLength: 250
        in_stock:
          type: number
          format: double
          readOnly: true
          nullable: true
        on_order:
          type: number
          format: double
          readOnly: true
          nullable: true
        link:
          type: string
          format: uri
          nullable: true
          description: URL for external supplier part link
          maxLength: 2000
        active:
          type: boolean
          description: Is this supplier part active?
        manufacturer_detail:
          allOf:
          - $ref: '#/components/schemas/CompanyBrief'
          readOnly: true
          nullable: true
          title: Manufacturer
        manufacturer_part:
          type: integer
          nullable: true
          description: Select manufacturer part
        manufacturer_part_detail:
          allOf:
          - $ref: '#/components/schemas/ManufacturerPart'
          readOnly: true
          nullable: true
          title: Manufacturer Part
        MPN:
          type: string
          readOnly: true
          nullable: true
        note:
          type: string
          nullable: true
          description: Notes
          maxLength: 100
        pk:
          type: integer
          readOnly: true
          title: ID
        barcode_hash:
          type: string
          readOnly: true
          description: Unique hash of barcode data
        packaging:
          type: string
          nullable: true
          description: Part packaging
          maxLength: 50
        pack_quantity:
          type: string
          description: Total quantity supplied in a single pack. Leave empty for single
            items.
          maxLength: 25
        pack_quantity_native:
          type: number
          format: double
          readOnly: true
        part:
          type: integer
          title: Base Part
          description: Select part
        part_detail:
          allOf:
          - $ref: '#/components/schemas/PartBrief'
          readOnly: true
          nullable: true
          title: Part
        pretty_name:
          type: string
          readOnly: true
          nullable: true
        SKU:
          type: string
          description: Supplier stock keeping unit
          maxLength: 100
        supplier:
          type: integer
        supplier_detail:
          allOf:
          - $ref: '#/components/schemas/CompanyBrief'
          readOnly: true
          nullable: true
          title: Supplier
        updated:
          type: string
          format: date-time
          readOnly: true
          nullable: true
        notes:
          type: string
          nullable: true
          description: Markdown notes (optional)
          maxLength: 50000
        tags:
          type: array
          items:
            type: string
      required:
      - SKU
      - barcode_hash
      - pack_quantity_native
      - part
      - pk
      - supplier
    SupplierPriceBreak:
      type: object
      description: Serializer for SupplierPriceBreak object.
      properties:
        pk:
          type: integer
          readOnly: true
          title: ID
        part:
          type: integer
        part_detail:
          allOf:
          - $ref: '#/components/schemas/SupplierPart'
          readOnly: true
          nullable: true
        quantity:
          type: number
          format: double
        price:
          type: string
          format: decimal
          pattern: ^-?\d{0,13}(?:\.\d{0,6})?$
          nullable: true
        price_currency:
          type: string
          title: Currency
          description: |-
            Select currency from available options

            * `AUD` - AUD - Australian Dollar
            * `CNY` - CNY - Chinese Yuan
            * `EUR` - EUR - Euro
            * `USD` - USD - US Dollar

            Other valid currencies may be found in the 'CURRENCY_CODES' global setting.
        supplier:
          type: integer
          readOnly: true
        supplier_detail:
          allOf:
          - $ref: '#/components/schemas/CompanyBrief'
          readOnly: true
          nullable: true
        updated:
          type: string
          format: date-time
          readOnly: true
          nullable: true
          description: Timestamp of last update
      required:
      - part
      - pk
      - price
      - quantity
      - supplier
    TaskOverview:
      type: object
      description: Serializer for background task overview.
      properties:
        is_running:
          type: boolean
          readOnly: true
          description: Boolean value to indicate if the background worker process
            is running.
        pending_tasks:
          type: integer
          readOnly: true
          description: Number of active background tasks
        scheduled_tasks:
          type: integer
          readOnly: true
          description: Number of scheduled background tasks
        failed_tasks:
          type: integer
          readOnly: true
          description: Number of failed background tasks
      required:
      - failed_tasks
      - is_running
      - pending_tasks
      - scheduled_tasks
    TemplateModelTypeEnum:
      enum:
      - build
      - buildline
      - company
      - purchaseorder
      - salesorder
      - salesordershipment
      - returnorder
      - part
      - stockitem
      - stocklocation
      type: string
      description: |-
        * `build` - Build Order
        * `buildline` - Build Order Line Item
        * `company` - Company
        * `purchaseorder` - Purchase Order
        * `salesorder` - Sales Order
        * `salesordershipment` - Sales Order Shipment
        * `returnorder` - Return Order
        * `part` - Part
        * `stockitem` - Stock Item
        * `stocklocation` - Stock Location
    TestEmail:
      type: object
      description: Serializer to send a test email.
      properties:
        email:
          type: string
          format: email
      required:
      - email
    UnauthorizedStatus:
      type: integer
      enum:
      - 401
    UninstallStockItem:
      type: object
      description: API serializers for uninstalling an installed item from a stock
        item.
      properties:
        location:
          type: integer
          description: Destination location for uninstalled item
        note:
          type: string
          title: Notes
          description: Add transaction note (optional)
      required:
      - location
    Unit:
      type: object
      description: Serializer for the AllUnitListResponseSerializer.
      properties:
        name:
          type: string
        is_alias:
          type: boolean
        compatible_units:
          type: array
          items:
            type: string
        isdimensionless:
          type: boolean
      required:
      - compatible_units
      - is_alias
      - isdimensionless
      - name
    User:
      type: object
      description: Serializer for a User.
      properties:
        pk:
          type: integer
          readOnly: true
          title: ID
        username:
          type: string
          description: Username
        first_name:
          type: string
          description: First name of the user
        last_name:
          type: string
          description: Last name of the user
        email:
          type: string
          format: email
          description: Email address of the user
      required:
      - email
      - first_name
      - last_name
      - pk
      - username
    UserCreate:
      type: object
      description: Serializer for creating a new User.
      properties:
        pk:
          type: integer
          readOnly: true
          title: ID
        username:
          type: string
          description: Username
        first_name:
          type: string
          description: First name of the user
        last_name:
          type: string
          description: Last name of the user
        email:
          type: string
          format: email
          description: Email address of the user
        groups:
          type: array
          items:
            $ref: '#/components/schemas/Group'
          readOnly: true
        group_ids:
          type: array
          items:
            type: integer
            writeOnly: true
          writeOnly: true
        is_staff:
          type: boolean
          title: Staff
          description: Does this user have staff permissions
        is_superuser:
          type: boolean
          title: Superuser
          description: Is this user a superuser
        is_active:
          type: boolean
          title: Active
          description: Is this user account active
        profile:
          allOf:
          - $ref: '#/components/schemas/BriefUserProfile'
          readOnly: true
      required:
      - email
      - first_name
      - groups
      - last_name
      - pk
      - profile
      - username
    UserProfile:
      type: object
      description: Serializer for the UserProfile model.
      properties:
        language:
          type: string
          nullable: true
          description: Preferred language for the user
          maxLength: 10
        theme:
          nullable: true
          description: Settings for the web UI as JSON - do not edit manually!
        widgets:
          nullable: true
          description: Settings for the dashboard widgets as JSON - do not edit manually!
        displayname:
          type: string
          nullable: true
          title: Display Name
          description: Chosen display name for the user
          maxLength: 255
        position:
          type: string
          nullable: true
          description: Main job title or position
          maxLength: 255
        status:
          type: string
          nullable: true
          description: User status message
          maxLength: 2000
        location:
          type: string
          nullable: true
          description: User location information
          maxLength: 2000
        active:
          type: boolean
          description: User is actively using the system
        contact:
          type: string
          nullable: true
          description: Preferred contact information for the user
          maxLength: 255
        type:
          allOf:
          - $ref: '#/components/schemas/UserTypeEnum'
          title: User Type
          description: |-
            Which type of user is this?

            * `bot` - Bot
            * `internal` - Internal
            * `external` - External
            * `guest` - Guest
        organisation:
          type: string
          nullable: true
          description: Users primary organisation/affiliation
          maxLength: 255
        primary_group:
          type: integer
          nullable: true
          description: Primary group for the user
    UserSetPassword:
      type: object
      description: Serializer for setting a password for a user.
      properties:
        password:
          type: string
          writeOnly: true
          description: Password for the user
        override_warning:
          type: boolean
          writeOnly: true
          description: Override the warning about password rules
      required:
      - password
    UserSettings:
      type: object
      description: Serializer for the InvenTreeUserSetting model.
      properties:
        pk:
          type: integer
          readOnly: true
          title: ID
        key:
          type: string
          readOnly: true
        value:
          type: string
          nullable: true
        name:
          type: string
          readOnly: true
        description:
          type: string
          readOnly: true
        user:
          type: integer
          readOnly: true
        type:
          type: string
          readOnly: true
        units:
          type: string
          readOnly: true
        choices:
          type: array
          items: {}
          description: Returns the choices available for a given item.
          readOnly: true
        model_name:
          type: string
          readOnly: true
          nullable: true
        api_url:
          type: string
          readOnly: true
          nullable: true
        typ:
          type: string
          readOnly: true
      required:
      - choices
      - description
      - key
      - name
      - pk
      - typ
      - type
      - units
      - user
      - value
    UserTypeEnum:
      enum:
      - bot
      - internal
      - external
      - guest
      type: string
      description: |-
        * `bot` - Bot
        * `internal` - Internal
        * `external` - External
        * `guest` - Guest
    Version:
      type: object
      description: Serializer for server version.
      properties:
        server:
          type: string
        api:
          type: integer
        commit_hash:
          type: string
        commit_date:
          type: string
        commit_branch:
          type: string
          nullable: true
        python:
          type: string
        django:
          type: string
      required:
      - api
      - commit_branch
      - commit_date
      - commit_hash
      - django
      - python
      - server
    VersionInformation:
      type: object
      description: Serializer for a single version.
      properties:
        version:
          type: string
        date:
          type: string
          format: date
        gh:
          type: string
          nullable: true
        text:
          type: array
          items:
            type: string
        latest:
          type: boolean
      required:
      - date
      - gh
      - latest
      - text
      - version
    VersionView:
      type: object
      description: Serializer for a single version.
      properties:
        dev:
          type: boolean
        up_to_date:
          type: boolean
        version:
          $ref: '#/components/schemas/Version'
        links:
          $ref: '#/components/schemas/Link'
      required:
      - dev
      - links
      - up_to_date
      - version
    allauth.AccountConfiguration:
      type: object
      description: |
        Configuration of the Django `allauth.account` app.
      properties:
        login_methods:
          type: array
          items:
            $ref: '#/components/schemas/LoginMethodsEnum'
        is_open_for_signup:
          type: boolean
        email_verification_by_code_enabled:
          type: boolean
        login_by_code_enabled:
          type: boolean
        password_reset_by_code_enabled:
          type: boolean
      required:
      - authentication_method
      - email_verification_by_code_enabled
      - is_open_for_signup
      - login_by_code_enabled
    allauth.Authenticated:
      type: object
      properties:
        user:
          $ref: '#/components/schemas/allauth.User'
        methods:
          type: array
          description: |
            A list of methods used to authenticate.
          items:
            $ref: '#/components/schemas/allauth.AuthenticationMethod'
      required:
      - user
      - methods
    allauth.AuthenticatedMeta:
      allOf:
      - $ref: '#/components/schemas/allauth.BaseAuthenticationMeta'
      - type: object
        description: |
          Metadata available in an re-authentication related response.
        properties:
          is_authenticated:
            $ref: '#/components/schemas/IsTrueEnum'
        required:
        - is_authenticated
    allauth.AuthenticatedResponse:
      type: object
      properties:
        status:
          $ref: '#/components/schemas/allauth.StatusOK'
        data:
          $ref: '#/components/schemas/allauth.Authenticated'
        meta:
          $ref: '#/components/schemas/allauth.AuthenticationMeta'
      required:
      - status
      - data
      - meta
    allauth.AuthenticationMeta:
      allOf:
      - $ref: '#/components/schemas/allauth.BaseAuthenticationMeta'
      - type: object
        description: |
          Metadata available in an authentication related response.
        properties:
          is_authenticated:
            type: boolean
        required:
        - is_authenticated
    allauth.AuthenticationMethod:
      oneOf:
      - type: object
        title: |
          Authenticated by username/email login
        properties:
          method:
            $ref: '#/components/schemas/Allauth.AuthenticationMethodMethodEnum'
          at:
            $ref: '#/components/schemas/allauth.Timestamp'
          email:
            $ref: '#/components/schemas/allauth.Email'
          username:
            $ref: '#/components/schemas/allauth.Username'
        required:
        - method
        - at
      - type: object
        title: |
          Authenticated after password reset
        properties:
          method:
            $ref: '#/components/schemas/Allauth.AuthenticationMethodMethodEnum'
          at:
            $ref: '#/components/schemas/allauth.Timestamp'
          email:
            $ref: '#/components/schemas/allauth.Email'
        required:
        - at
        - email
        - method
      - type: object
        title: |
          Authenticated by confirming a code sent by email.
        properties:
          method:
            $ref: '#/components/schemas/Allauth.AuthenticationMethodMethodEnum'
          at:
            $ref: '#/components/schemas/allauth.Timestamp'
          email:
            $ref: '#/components/schemas/allauth.Email'
        required:
        - at
        - email
        - method
      - type: object
        title: |
          Authenticated by confirming a code sent by phone.
        properties:
          method:
            $ref: '#/components/schemas/Allauth.AuthenticationMethodMethodEnum'
          at:
            $ref: '#/components/schemas/allauth.Timestamp'
          phone:
            $ref: '#/components/schemas/allauth.Phone'
        required:
        - at
        - method
        - phone
      - type: object
        title: |
          Reauthenticated by password
        properties:
          method:
            $ref: '#/components/schemas/Allauth.AuthenticationMethodMethodEnum'
          at:
            $ref: '#/components/schemas/allauth.Timestamp'
          reauthenticated:
            $ref: '#/components/schemas/IsTrueEnum'
        required:
        - method
        - reauthenticated
        - at
      - type: object
        title: |
          Authenticated by third-party provider
        properties:
          method:
            $ref: '#/components/schemas/Allauth.AuthenticationMethodMethodEnum'
          at:
            $ref: '#/components/schemas/allauth.Timestamp'
          provider:
            $ref: '#/components/schemas/allauth.ProviderID'
          uid:
            $ref: '#/components/schemas/allauth.ProviderAccountID'
        required:
        - method
        - reauthenticated
        - at
        - provider
        - uid
      - type: object
        title: |
          (Re)authenticated by 2FA
        properties:
          method:
            $ref: '#/components/schemas/Allauth.AuthenticationMethodMethodEnum'
          at:
            $ref: '#/components/schemas/allauth.Timestamp'
          type:
            $ref: '#/components/schemas/allauth.AuthenticatorType'
          reauthenticated:
            type: boolean
        required:
        - method
        - at
        - type
    allauth.AuthenticationResponse:
      type: object
      description: |
        An authentication related response.
      properties:
        status:
          $ref: '#/components/schemas/UnauthorizedStatus'
        data:
          type: object
          properties:
            flows:
              type: array
              items:
                $ref: '#/components/schemas/allauth.Flow'
          required:
          - flows
        meta:
          $ref: '#/components/schemas/allauth.AuthenticationMeta'
      required:
      - status
      - data
      - meta
    allauth.AuthenticatorCode:
      type: string
      description: |
        An authenticator code.
      example: '314159'
    allauth.AuthenticatorID:
      type: integer
      description: |
        Authenticator ID.
      example: 123
    allauth.AuthenticatorList:
      type: array
      items:
        oneOf:
        - $ref: '#/components/schemas/allauth.TOTPAuthenticator'
        - $ref: '#/components/schemas/allauth.RecoveryCodesAuthenticator'
        - $ref: '#/components/schemas/allauth.WebAuthnAuthenticator'
    allauth.AuthenticatorType:
      type: string
      enum:
      - recovery_codes
      - totp
      description: |
        The type of authenticator.
    allauth.BaseAuthenticationMeta:
      type: object
      properties:
        session_token:
          type: string
          description: |
            The session token (`app` clients only).
          example: ufwcig0zen9skyd545jc0fkq813ghar2
        access_token:
          type: string
          description: |
            The access token (`app` clients only).
          example: eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJzdW
    allauth.BaseAuthenticator:
      type: object
      properties:
        last_used_at:
          $ref: '#/components/schemas/allauth.OptionalTimestamp'
        created_at:
          $ref: '#/components/schemas/allauth.Timestamp'
      required:
      - created_at
      - last_used_at
    allauth.BaseSignup:
      type: object
      properties:
        email:
          $ref: '#/components/schemas/allauth.Email'
        phone:
          $ref: '#/components/schemas/allauth.Phone'
        username:
          $ref: '#/components/schemas/allauth.Username'
    allauth.ClientID:
      type: string
      description: |
        The client ID (in case of OAuth2 or OpenID Connect based providers)
      example: 123.apps.googleusercontent.com
    allauth.Code:
      type: string
      description: |
        An one-time code.
      example: NQ3TM5
    allauth.ConfigurationResponse:
      type: object
      properties:
        data:
          type: object
          properties:
            account:
              $ref: '#/components/schemas/allauth.AccountConfiguration'
            socialaccount:
              $ref: '#/components/schemas/allauth.SocialAccountConfiguration'
            mfa:
              $ref: '#/components/schemas/allauth.MFAConfiguration'
            usersessions:
              $ref: '#/components/schemas/allauth.UserSessionsConfiguration'
          required:
          - account
        status:
          $ref: '#/components/schemas/allauth.StatusOK'
      required:
      - status
      - data
      example:
        status: 200
        data:
          account:
            authentication_method: email
          socialaccount:
            providers:
            - id: google
              name: Google
              flows:
              - provider_redirect
              - provider_token
              client_id: 123.apps.googleusercontent.com
              openid_configuration_url: https://accounts.google.com/.well-known/openid-configuration
          mfa:
            supported_types:
            - recovery_codes
            - totp
          usersessions:
            track_activity: false
    allauth.ConfirmLoginCode:
      type: object
      properties:
        code:
          $ref: '#/components/schemas/allauth.Code'
      required:
      - code
    allauth.ConflictResponse:
      type: object
      properties:
        status:
          $ref: '#/components/schemas/Allauth.ConflictResponseStatusEnum'
      required:
      - status
    allauth.Email:
      type: string
      description: |
        The email address.
      example: email@domain.org
    allauth.EmailAddress:
      type: object
      properties:
        email:
          $ref: '#/components/schemas/allauth.Email'
        primary:
          type: boolean
          example: true
        verified:
          type: boolean
          example: false
      required:
      - email
      - primary
      - verified
    allauth.EmailVerificationInfo:
      type: object
      properties:
        status:
          $ref: '#/components/schemas/allauth.StatusOK'
        data:
          type: object
          properties:
            email:
              $ref: '#/components/schemas/allauth.Email'
            user:
              $ref: '#/components/schemas/allauth.User'
          required:
          - email
          - user
        meta:
          type: object
          properties:
            is_authenticating:
              type: boolean
          required:
          - is_authenticating
      required:
      - status
      - data
      - meta
    allauth.EndSessions:
      type: object
      properties:
        sessions:
          description: |
            The IDs of the sessions that are to be ended.
          type: array
          items:
            type: integer
            example: 123
      required:
      - sessions
    allauth.ErrorResponse:
      type: object
      properties:
        status:
          allOf:
          - $ref: '#/components/schemas/Allauth.ErrorResponseStatusEnum'
          example: 400
        errors:
          type: array
          items:
            type: object
            properties:
              code:
                type: string
                example: invalid
                description: |
                  An error code.
              param:
                type: string
                example: email
                description: |
                  The name of the input parameter that was incorrect.
              message:
                type: string
                example: Enter a valid email address.
                description: |
                  A human readable error message.
            required:
            - code
            - message
    allauth.Flow:
      type: object
      properties:
        id:
          $ref: '#/components/schemas/IdEnum'
        provider:
          $ref: '#/components/schemas/allauth.Provider'
        is_pending:
          $ref: '#/components/schemas/IsTrueEnum'
      required:
      - id
    allauth.ForbiddenResponse:
      type: object
      properties:
        status:
          $ref: '#/components/schemas/Allauth.ForbiddenResponseStatusEnum'
      required:
      - status
    allauth.Login:
      allOf:
      - type: object
        properties:
          password:
            $ref: '#/components/schemas/allauth.Password'
        required:
        - password
      - anyOf:
        - title: Login by username
          properties:
            username:
              $ref: '#/components/schemas/allauth.Username'
          required:
          - username
        - title: Login by email
          properties:
            email:
              $ref: '#/components/schemas/allauth.Email'
          required:
          - email
        - title: Login by phone
          properties:
            phone:
              $ref: '#/components/schemas/allauth.Phone'
          required:
          - phone
    allauth.MFAAuthenticate:
      type: object
      properties:
        code:
          $ref: '#/components/schemas/allauth.AuthenticatorCode'
      required:
      - code
    allauth.MFAConfiguration:
      type: object
      description: |
        Configuration of the Django `allauth.mfa` app.
      properties:
        supported_types:
          type: array
          description: |
            Matches `settings.MFA_SUPPORTED_TYPES`.
          items:
            $ref: '#/components/schemas/allauth.AuthenticatorType'
      required:
      - supported_types
    allauth.MFATrust:
      type: object
      properties:
        trust:
          type: boolean
      required:
      - trust
    allauth.OptionalTimestamp:
      nullable: true
      $ref: '#/components/schemas/allauth.Timestamp'
    allauth.PasskeySignup:
      allOf:
      - $ref: '#/components/schemas/allauth.BaseSignup'
    allauth.Password:
      type: string
      description: |
        The password.
      example: Alohomora!
    allauth.Phone:
      type: string
      description: |
        The phone number.
      example: '+314159265359'
    allauth.PhoneNumber:
      type: object
      description: |
        A phone number.
      properties:
        phone:
          type: string
          example: '+314159265359'
        verified:
          type: boolean
      required:
      - phone
      - verified
    allauth.PhoneNumberChangeResponse:
      type: object
      properties:
        status:
          $ref: '#/components/schemas/allauth.StatusAccepted'
        data:
          type: array
          items:
            $ref: '#/components/schemas/allauth.PhoneNumber'
      required:
      - status
      - data
      example:
        status: 202
        data:
        - phone: '+314159265359'
          verified: false
    allauth.PhoneNumbersResponse:
      type: object
      properties:
        status:
          $ref: '#/components/schemas/allauth.StatusOK'
        data:
          type: array
          items:
            $ref: '#/components/schemas/allauth.PhoneNumber'
      required:
      - status
      - data
    allauth.Process:
      type: string
      description: |
        The process to be executed when the user successfully
        authenticates. When set to `login`, the user will be logged into the
        account to which the provider account is connected, or if no such
        account exists, a signup will occur. If set to `connect`, the provider
        account will be connected to the list of provider accounts for the
        currently authenticated user.
      enum:
      - login
      - connect
      example: login
    allauth.Provider:
      type: object
      properties:
        id:
          type: string
          example: google
          description: |
            The provider ID.
        name:
          type: string
          description: |
            The name of the provider.
          example: Google
        client_id:
          type: string
          description: |
            The client ID (in case of OAuth2 or OpenID Connect based providers)
          example: 123.apps.googleusercontent.com
        openid_configuration_url:
          type: string
          description: |
            The OIDC discovery or well-known URL (in case of OAuth2 or OpenID Connect based providers)
          example: https://accounts.google.com/.well-known/openid-configuration
        flows:
          type: array
          description: |
            The authentication flows the provider integration supports.
          items:
            $ref: '#/components/schemas/FlowsEnum'
      required:
      - id
      - name
      - flows
    allauth.ProviderAccount:
      type: object
      properties:
        uid:
          $ref: '#/components/schemas/allauth.ProviderAccountID'
        display:
          type: string
          description: |
            A name derived from the third-party provider account data.
          example: Wizzkid
        provider:
          $ref: '#/components/schemas/allauth.Provider'
      required:
      - uid
      - provider
      - display
    allauth.ProviderAccountID:
      type: string
      description: |
        The provider specific account ID.
      example: goo12345
    allauth.ProviderID:
      type: string
      description: |
        The provider ID.
      example: google
    allauth.ProviderList:
      type: array
      items:
        $ref: '#/components/schemas/allauth.Provider'
    allauth.ProviderRedirect:
      type: object
      properties:
        provider:
          $ref: '#/components/schemas/allauth.ProviderID'
        callback_url:
          type: string
          description: |
            The URL to return to after the redirect flow is complete.

            Note that this is not to be mistaken with the callback URL that you
            configure over at the OAuth provider during the OAuth app/client
            setup. The flow is as follows:

              1. Your frontend redirects to the headless provider redirect
                 endpoint in a synchronous (non-XHR) manner, informing allauth
                 (by means of `callback_url`) where to redirect to after the
                 provider handshake is completed.

              2. Headless will redirect to the (OAuth) identity provider to
                 initiate the handshake, passing along a different callback URL
                 to the provider: one that points to an allauth backend URL.
                 This is the URL that you need to have setup at your OAuth
                 app/client configuration. Note that this must be a backend URL
                 as providers can use POST requests to perform their callbacks,
                 which is something a frontend would not be able to handle.

              3. After the authorization at the provider is completed, the
                 provider redirects to the *backend* allauth callback URL, which
                 will then redirect back to the *frontend* callback URL.

              4. Your frontend is now expected to fetch the current session to
                 determine what the next course of action is. The user could be
                 authenticated at this point, or another flow is pending
                 (e.g. email verification, or, provider signup). In case of
                 errors a `?error=` is passed to the frontend callback URL.
          example: https://app.project.org/account/provider/callback
        process:
          $ref: '#/components/schemas/allauth.Process'
      required:
      - provider
      - process
      - callback_url
    allauth.ProviderSignup:
      allOf:
      - $ref: '#/components/schemas/allauth.BaseSignup'
    allauth.ProviderToken:
      type: object
      properties:
        provider:
          $ref: '#/components/schemas/allauth.ProviderID'
        process:
          $ref: '#/components/schemas/allauth.Process'
        token:
          description: |
            The token.
          type: object
          properties:
            client_id:
              $ref: '#/components/schemas/allauth.ClientID'
            id_token:
              type: string
              description: |
                The ID token.
              example: eyJhbGciOiJI
            access_token:
              type: string
              description: |
                The access token.
              example: 36POk6yJV_adQs
          required:
          - client_id
      required:
      - provider
      - process
      - token
    allauth.Reauthenticate:
      type: object
      properties:
        password:
          $ref: '#/components/schemas/allauth.Password'
      required:
      - password
    allauth.ReauthenticationResponse:
      type: object
      description: |
        A response indicating reauthentication is required.
      properties:
        status:
          $ref: '#/components/schemas/UnauthorizedStatus'
        data:
          $ref: '#/components/schemas/allauth.Authenticated'
        meta:
          $ref: '#/components/schemas/allauth.AuthenticatedMeta'
      required:
      - status
      - data
      - meta
    allauth.RecoveryCodesAuthenticator:
      allOf:
      - $ref: '#/components/schemas/allauth.BaseAuthenticator'
      - type: object
        properties:
          type:
            allOf:
            - $ref: '#/components/schemas/Allauth.RecoveryCodesAuthenticatorTypeEnum'
            description: |
              The authenticator type.
          total_code_count:
            type: integer
            description: |
              The total number of recovery codes that initially were available.
            example: 10
          unused_code_count:
            type: integer
            description: |
              The number of recovery codes that are unused.
            example: 7
        required:
        - type
        - total_code_count
        - unused_code_count
    allauth.RequestLoginCode:
      type: object
      anyOf:
      - title: Request login code (phone)
        properties:
          phone:
            $ref: '#/components/schemas/allauth.Phone'
        required:
        - phone
      - title: Request login code (email)
        properties:
          email:
            $ref: '#/components/schemas/allauth.Email'
        required:
        - email
    allauth.RequestPassword:
      type: object
      properties:
        email:
          $ref: '#/components/schemas/allauth.Email'
      required:
      - email
    allauth.ResetPassword:
      type: object
      properties:
        key:
          type: string
          description: The password reset key
          example: 2f-c4nqd4-e07d9bc694f9f28cd4fe92569d495333
        password:
          $ref: '#/components/schemas/allauth.Password'
      required:
      - key
      - password
    allauth.SensitiveRecoveryCodesAuthenticator:
      allOf:
      - $ref: '#/components/schemas/allauth.RecoveryCodesAuthenticator'
      - type: object
        properties:
          unused_codes:
            type: array
            description: |
              The list of unused codes.
            items:
              $ref: '#/components/schemas/allauth.AuthenticatorCode'
        required:
        - unused_codes
    allauth.Session:
      type: object
      properties:
        user_agent:
          type: string
          example: Mozilla Firefox
        ip:
          type: string
          example: 127.2.3.192
        created_at:
          $ref: '#/components/schemas/allauth.Timestamp'
        is_current:
          type: boolean
        id:
          type: integer
          example: 123
        last_seen_at:
          $ref: '#/components/schemas/allauth.Timestamp'
      required:
      - user_agent
      - ip
      - created_at
      - is_current
      - id
    allauth.SessionGoneResponse:
      type: object
      description: |
        The session is expired or invalid.
      properties:
        status:
          $ref: '#/components/schemas/Allauth.SessionGoneResponseStatusEnum'
        data:
          type: object
        meta:
          $ref: '#/components/schemas/allauth.AuthenticationMeta'
      required:
      - status
      - data
      - meta
    allauth.Signup:
      allOf:
      - $ref: '#/components/schemas/allauth.BaseSignup'
      - type: object
        properties:
          password:
            $ref: '#/components/schemas/allauth.Password'
        required:
        - password
    allauth.SocialAccountConfiguration:
      type: object
      description: |
        Configuration of the Django `allauth.socialaccount` app.
      properties:
        providers:
          $ref: '#/components/schemas/allauth.ProviderList'
      required:
      - providers
    allauth.StatusAccepted:
      type: integer
      enum:
      - 202
    allauth.StatusOK:
      type: integer
      enum:
      - 200
    allauth.TOTPAuthenticator:
      allOf:
      - $ref: '#/components/schemas/allauth.BaseAuthenticator'
      - type: object
        properties:
          type:
            $ref: '#/components/schemas/Allauth.TOTPAuthenticatorTypeEnum'
        required:
        - type
    allauth.Timestamp:
      type: number
      description: |
        An epoch based timestamp (trivial to parse using: `new Date(value)*1000`)
      example: 1711555057.065702
    allauth.User:
      type: object
      properties:
        id:
          description: |
            The user ID.
          oneOf:
          - type: integer
            example: 123
          - type: string
            example: 89d3f9a0-51a5-49dd-8b97-7536641958e9
        display:
          type: string
          description: |
            The display name for the user.
          example: Magic Wizard
        has_usable_password:
          type: boolean
          description: |
            Whether or not the account has a password set.
          example: true
        email:
          $ref: '#/components/schemas/allauth.Email'
        username:
          $ref: '#/components/schemas/allauth.Username'
    allauth.UserSessionsConfiguration:
      type: object
      description: |
        Configuration of the Django `allauth.usersessions` app.
      properties:
        track_activity:
          type: boolean
          description: |
            Matches `settings.USERSESSIONS_TRACK_ACTIVITY`.
      required:
      - track_activity
    allauth.Username:
      type: string
      description: |
        The username.
      example: wizard
    allauth.VerifyEmail:
      type: object
      properties:
        key:
          type: string
          description: The email verification key
          example: 2f-c4nqd4-e07d9bc694f9f28cd4fe92569d495333
      required:
      - key
    allauth.VerifyPhone:
      type: object
      properties:
        code:
          type: string
          description: The phone verification code
          example: 4S3H82
      required:
      - code
    allauth.WebAuthnAuthenticator:
      allOf:
      - $ref: '#/components/schemas/allauth.BaseAuthenticator'
      - type: object
        properties:
          type:
            $ref: '#/components/schemas/Allauth.WebAuthnAuthenticatorTypeEnum'
          id:
            $ref: '#/components/schemas/allauth.AuthenticatorID'
          name:
            type: string
            example: Master key
          is_passwordless:
            type: boolean
            description: |
              Whether or not this authenticator represents a passkey. Absent if it is not specified.
        required:
        - type
        - id
        - name
    allauth.WebAuthnCredential:
      type: object
      example:
        credential:
          type: public-key
          id: -J4JNfPfnLyRSMK4R...
          rawId: -J4JNfPfnLyRSMK4R...
          authenticatorAttachment: cross-platform
          response:
            clientDataJSON: eyJjaGFsbGVuZ2UiOi...
            authenticatorData: SZYN5YgO...
            signature: MEUCIE-7sqILygPqGbrRZ4j2nqeqUU...
            userHandle: Mg...
          clientExtensionResults: {}
    allauth.WebAuthnCredentialCreationOptions:
      type: object
      properties:
        creation_options:
          type: object
          example:
            status: 200
            data:
              request_options:
                publicKey:
                  challenge: aOecJJtLA2e-Dj2WU-zbRoJewbQqSUPxoA9EzsUL72o
                  rpId: localhost
                  allowCredentials: []
                  userVerification: preferred
      required:
      - creation_options
    allauth.WebAuthnCredentialRequestOptions:
      type: object
      properties:
        request_options:
          type: object
          example:
            status: 200
            data:
              request_options:
                publicKey:
                  challenge: aOecJJtLA2e-Dj2WU-zbRoJewbQqSUPxoA9EzsUL72o
                  rpId: localhost
                  allowCredentials: []
                  userVerification: preferred
      required:
      - request_options
  securitySchemes:
    basicAuth:
      type: http
      scheme: basic
    cookieAuth:
      type: apiKey
      in: cookie
      name: sessionid
    oauth2:
      type: oauth2
      flows:
        authorizationCode:
          authorizationUrl: /o/authorize/
          tokenUrl: /o/token/
          refreshUrl: /o/revoke_token/
          scopes:
            g:read: General Read scope
            openid: OpenID Connect scope
            a:staff: User Role Staff
            a:superuser: User Role Superuser
            r:view:admin: GET for Role Admin
            r:view:part_category: GET for Role Part Categories
            r:view:part: GET for Role Parts
            r:view:stock_location: GET for Role Stock Locations
            r:view:stock: GET for Role Stock Items
            r:view:build: GET for Role Build Orders
            r:view:purchase_order: GET for Role Purchase Orders
            r:view:sales_order: GET for Role Sales Orders
            r:view:return_order: GET for Role Return Orders
            r:add:admin: POST for Role Admin
            r:add:part_category: POST for Role Part Categories
            r:add:part: POST for Role Parts
            r:add:stock_location: POST for Role Stock Locations
            r:add:stock: POST for Role Stock Items
            r:add:build: POST for Role Build Orders
            r:add:purchase_order: POST for Role Purchase Orders
            r:add:sales_order: POST for Role Sales Orders
            r:add:return_order: POST for Role Return Orders
            r:change:admin: PUT / PATCH for Role Admin
            r:change:part_category: PUT / PATCH for Role Part Categories
            r:change:part: PUT / PATCH for Role Parts
            r:change:stock_location: PUT / PATCH for Role Stock Locations
            r:change:stock: PUT / PATCH for Role Stock Items
            r:change:build: PUT / PATCH for Role Build Orders
            r:change:purchase_order: PUT / PATCH for Role Purchase Orders
            r:change:sales_order: PUT / PATCH for Role Sales Orders
            r:change:return_order: PUT / PATCH for Role Return Orders
            r:delete:admin: DELETE for Role Admin
            r:delete:part_category: DELETE for Role Part Categories
            r:delete:part: DELETE for Role Parts
            r:delete:stock_location: DELETE for Role Stock Locations
            r:delete:stock: DELETE for Role Stock Items
            r:delete:build: DELETE for Role Build Orders
            r:delete:purchase_order: DELETE for Role Purchase Orders
            r:delete:sales_order: DELETE for Role Sales Orders
            r:delete:return_order: DELETE for Role Return Orders
        clientCredentials:
          tokenUrl: /o/token/
          refreshUrl: /o/revoke_token/
          scopes:
            g:read: General Read scope
            openid: OpenID Connect scope
            a:staff: User Role Staff
            a:superuser: User Role Superuser
            r:view:admin: GET for Role Admin
            r:view:part_category: GET for Role Part Categories
            r:view:part: GET for Role Parts
            r:view:stock_location: GET for Role Stock Locations
            r:view:stock: GET for Role Stock Items
            r:view:build: GET for Role Build Orders
            r:view:purchase_order: GET for Role Purchase Orders
            r:view:sales_order: GET for Role Sales Orders
            r:view:return_order: GET for Role Return Orders
            r:add:admin: POST for Role Admin
            r:add:part_category: POST for Role Part Categories
            r:add:part: POST for Role Parts
            r:add:stock_location: POST for Role Stock Locations
            r:add:stock: POST for Role Stock Items
            r:add:build: POST for Role Build Orders
            r:add:purchase_order: POST for Role Purchase Orders
            r:add:sales_order: POST for Role Sales Orders
            r:add:return_order: POST for Role Return Orders
            r:change:admin: PUT / PATCH for Role Admin
            r:change:part_category: PUT / PATCH for Role Part Categories
            r:change:part: PUT / PATCH for Role Parts
            r:change:stock_location: PUT / PATCH for Role Stock Locations
            r:change:stock: PUT / PATCH for Role Stock Items
            r:change:build: PUT / PATCH for Role Build Orders
            r:change:purchase_order: PUT / PATCH for Role Purchase Orders
            r:change:sales_order: PUT / PATCH for Role Sales Orders
            r:change:return_order: PUT / PATCH for Role Return Orders
            r:delete:admin: DELETE for Role Admin
            r:delete:part_category: DELETE for Role Part Categories
            r:delete:part: DELETE for Role Parts
            r:delete:stock_location: DELETE for Role Stock Locations
            r:delete:stock: DELETE for Role Stock Items
            r:delete:build: DELETE for Role Build Orders
            r:delete:purchase_order: DELETE for Role Purchase Orders
            r:delete:sales_order: DELETE for Role Sales Orders
            r:delete:return_order: DELETE for Role Return Orders
    tokenAuth:
      type: apiKey
      in: header
      name: Authorization
      description: Token-based authentication with required prefix "Token"
servers:
- url: http://localhost:8000
externalDocs:
  description: More information about InvenTree in the official docs
  url: https://docs.inventree.org
