---
openapi: 3.0.0
paths:
  "/api/v1/sessions":
    post:
      summary: Create a token
      tags:
      - Authentication
      parameters: []
      responses:
        '200':
          description: token created
      requestBody:
        content:
          application/json:
            schema:
              "$ref": "#/components/schemas/createSession"
          application/xml:
            schema:
              "$ref": "#/components/schemas/createSession"
        required: true
  "/api/v1/antibodies":
    post:
      summary: Create an antibody
      tags:
      - Antibodies
      description: 'Create an antibody.

        '
      parameters: []
      responses:
        '201':
          description: Created
        '422':
          description: Invalid request
        '401':
          description: 'Error: Unauthorized'
        '500':
          description: 'Error: Internal Server Error'
      requestBody:
        content:
          application/json:
            schema:
              "$ref": "#/components/schemas/createAntibody"
        required: true
    get:
      summary: List all antibodies in your account
      tags:
      - Antibodies
      description: 'List all antibodies.

        '
      parameters:
      - name: token
        in: query
        required: true
        schema:
          type: string
      - name: page
        in: query
        description: The default call is with page = 1
        schema:
          type: integer
      - name: meta
        in: query
        description: Show summarized data information - true/false
        schema:
          type: string
      responses:
        '200':
          description: OK
        '404':
          description: Not found
  "/api/v1/antibodies/{id}":
    put:
      summary: Update an antibody
      tags:
      - Antibodies
      description: 'Update an antibody.

        '
      parameters:
      - name: id
        in: path
        required: true
        description: The ID of the antibody
        schema:
          type: integer
      responses:
        '200':
          description: OK
        '422':
          description: Invalid request
        '401':
          description: 'Error: Unauthorized'
      requestBody:
        content:
          application/json:
            schema:
              "$ref": "#/components/schemas/updateAntibody"
        required: true
    get:
      summary: Get an antibody by ID
      tags:
      - Antibodies
      description: 'Get an antibody by ID.

        '
      parameters:
      - name: token
        in: query
        required: true
        schema:
          type: string
      - name: id
        in: path
        required: true
        description: The ID of the antibody
        schema:
          type: integer
      responses:
        '200':
          description: OK
        '404':
          description: Not Found
    delete:
      summary: Delete antibody
      tags:
      - Antibodies
      parameters:
      - name: token
        in: query
        required: true
        schema:
          type: string
      - name: id
        in: path
        required: true
        description: antibody id
        schema:
          type: integer
      responses:
        '204':
          description: no content
        '404':
          description: not found
  "/api/v1/attachments":
    post:
      summary: Upload file attachment
      tags:
      - Attachments
      description: |+
        This endpoint is used for uploading file attachments to various entities.


        For a detailed guide on uploading files to sections within ELN & Knowledgebase entities, including a step-by-step process and practical examples in **Python**, refer to our article on: [Uploading Files to Experiments via API](https://help.labguru.com/en/articles/9636468-uploading-files-to-experiments-via-api)

      parameters: []
      responses:
        '201':
          description: Created
        '500':
          description: Internal Server Error
        '401':
          description: Unauthorized
      requestBody:
        content:
          multipart/form-data:
            schema:
              "$ref": "#/components/schemas/createAttachment"
  "/api/v1/attachments/{id}":
    put:
      summary: Link an attachment to an attachment element
      tags:
      - Attachments
      description: |
        This endpoint links an existing attachment with a specified attachment element by their IDs.

        **Important Note:**

        An attachment can only be linked with an attachment element on the same page (such as an experiment, protocol, report, or document) where it was initially uploaded.

        Before linking the attachment, ensure that the target section and attachment element are already in place; if not, create them beforehand.

        To do this, use the "Add a section" and "Add element" requests. For further instructions, refer to our article on [Uploading Files to Experiments via API](https://help.labguru.com/en/articles/9636468-uploading-files-to-experiments-via-api) .
      parameters:
      - name: id
        in: path
        required: true
        description: The ID of the attachment to be linked with the attachment element
        schema:
          type: integer
      responses:
        '200':
          description: OK
        '404':
          description: Not Found
      requestBody:
        content:
          application/json:
            schema:
              "$ref": "#/components/schemas/updateAttachment"
        required: true
    get:
      summary: Get an attachment by id
      tags:
      - Attachments
      description: 'Get an attachment by ID.

        '
      parameters:
      - name: token
        in: query
        required: true
        schema:
          type: string
      - name: id
        in: path
        required: true
        description: 'The ID of the attachment '
        schema:
          type: integer
      responses:
        '200':
          description: OK
        '404':
          description: Not Found
    delete:
      summary: Delete attachment
      tags:
      - Attachments
      parameters:
      - name: token
        in: query
        required: true
        schema:
          type: string
      - name: id
        in: path
        required: true
        description: attachment id
        schema:
          type: integer
      responses:
        '204':
          description: no content
        '404':
          description: not found
  "/api/v1/bacteria":
    post:
      summary: Create a bacterium
      tags:
      - Bacteria
      description: 'Create a bacterium.

        '
      parameters: []
      responses:
        '201':
          description: Created
        '422':
          description: Invalid request
        '401':
          description: 'Error: Unauthorized'
      requestBody:
        content:
          application/json:
            schema:
              "$ref": "#/components/schemas/createBacterium"
        required: true
    get:
      summary: List all bacteria in your account
      tags:
      - Bacteria
      description: 'List all bacteria.

        '
      parameters:
      - name: token
        in: query
        required: true
        schema:
          type: string
      - name: page
        in: query
        description: The default call is with page = 1
        schema:
          type: integer
      - name: meta
        in: query
        description: Show summarized data information - true/false
        schema:
          type: string
      responses:
        '200':
          description: OK
        '404':
          description: Not Found
  "/api/v1/bacteria/{id}":
    put:
      summary: Update bacterium
      tags:
      - Bacteria
      description: 'Update bacterium.

        '
      parameters:
      - name: id
        in: path
        required: true
        description: The ID of the bacterium
        schema:
          type: integer
      responses:
        '200':
          description: OK
        '422':
          description: invalid request
        '401':
          description: 'Error: Unauthorized'
      requestBody:
        content:
          application/json:
            schema:
              "$ref": "#/components/schemas/updateBacterium"
        required: true
    get:
      summary: Get bacterium by id
      tags:
      - Bacteria
      description: 'Get a bacterium by ID.

        '
      parameters:
      - name: token
        in: query
        required: true
        schema:
          type: string
      - name: id
        in: path
        required: true
        description: The ID of the bacterium
        schema:
          type: integer
      responses:
        '200':
          description: OK
        '404':
          description: Not Found
    delete:
      summary: Delete bacterium
      tags:
      - Bacteria
      parameters:
      - name: token
        in: query
        required: true
        schema:
          type: string
      - name: id
        in: path
        required: true
        description: The ID of the bacterium
        schema:
          type: integer
      responses:
        '204':
          description: no content
        '404':
          description: not found
  "/api/v1/boxes":
    post:
      summary: Add a box
      tags:
      - Boxes
      parameters: []
      responses:
        '201':
          description: box created
        '422':
          description: invalid request - Name can't be blank
        '401':
          description: 'Error: Unauthorized'
      requestBody:
        content:
          application/json:
            schema:
              "$ref": "#/components/schemas/createBox"
        required: true
    get:
      summary: List all boxes in your account
      tags:
      - Boxes
      parameters:
      - name: token
        in: query
        required: true
        schema:
          type: string
      - name: page
        in: query
        description: the default call is with page = 1
        schema:
          type: integer
      - name: meta
        in: query
        description: " show summarized data information - true/false"
        schema:
          type: string
      responses:
        '200':
          description: success
        '404':
          description: page not found
  "/api/v1/boxes/{id}":
    put:
      summary: Update box attributes
      tags:
      - Boxes
      parameters:
      - name: id
        in: path
        required: true
        description: box id
        schema:
          type: integer
      responses:
        '200':
          description: box updated
        '422':
          description: invalid request
        '401':
          description: 'Error: Unauthorized'
      requestBody:
        content:
          application/json:
            schema:
              "$ref": "#/components/schemas/updateBox"
        required: true
    get:
      summary: Get box by id
      tags:
      - Boxes
      parameters:
      - name: token
        in: query
        required: true
        schema:
          type: string
      - name: id
        in: path
        required: true
        description: box id
        schema:
          type: integer
      responses:
        '200':
          description: success
        '404':
          description: page not found
    delete:
      summary: Delete box
      tags:
      - Boxes
      parameters:
      - name: token
        in: query
        required: true
        schema:
          type: string
      - name: id
        in: path
        required: true
        description: box id
        schema:
          type: integer
      responses:
        '204':
          description: no content
        '404':
          description: not found
  "/api/v1/cell_lines":
    post:
      summary: Create a cell line
      tags:
      - Cell lines
      description: 'Create a cell line.

        '
      parameters: []
      responses:
        '201':
          description: OK
        '422':
          description: Invalid request
        '401':
          description: 'Error: Unauthorized'
      requestBody:
        content:
          application/json:
            schema:
              "$ref": "#/components/schemas/createCellLine"
        required: true
    get:
      summary: List all cell lines in your account
      tags:
      - Cell lines
      description: 'List all cell lines.

        '
      parameters:
      - name: token
        in: query
        required: true
        schema:
          type: string
      - name: page
        in: query
        description: The default call is with page = 1
        schema:
          type: integer
      - name: meta
        in: query
        description: Show summarized data information - true/false
        schema:
          type: string
      responses:
        '200':
          description: OK
        '404':
          description: Not Found
  "/api/v1/cell_lines/{id}":
    put:
      summary: 'Update a cell line '
      tags:
      - Cell lines
      description: 'Update a cell line.

        '
      parameters:
      - name: id
        in: path
        required: true
        description: The ID of the Cell line
        schema:
          type: integer
      responses:
        '200':
          description: OK
        '422':
          description: Invalid request
        '401':
          description: 'Error: Unauthorized'
      requestBody:
        content:
          application/json:
            schema:
              "$ref": "#/components/schemas/updateCellLine"
        required: true
    get:
      summary: Get a cell line by id
      tags:
      - Cell lines
      description: 'Get a cell line by ID.

        '
      parameters:
      - name: token
        in: query
        required: true
        schema:
          type: string
      - name: id
        in: path
        required: true
        description: The ID of the Cell line
        schema:
          type: integer
      responses:
        '200':
          description: OK
        '404':
          description: Not Found
    delete:
      summary: Delete cell line
      tags:
      - Cell lines
      parameters:
      - name: token
        in: query
        required: true
        schema:
          type: string
      - name: id
        in: path
        required: true
        description: cell line id
        schema:
          type: integer
      responses:
        '204':
          description: no content
        '404':
          description: not found
  "/api/v1/comments":
    post:
      summary: Creates a comment
      tags:
      - Comments
      parameters: []
      responses:
        '201':
          description: comment created
        '422':
          description: invalid request - Name can't be blank
        '401':
          description: 'Error: Unauthorized'
      requestBody:
        content:
          application/json:
            schema:
              "$ref": "#/components/schemas/createComment"
        required: true
    get:
      summary: List all comments in your account
      tags:
      - Comments
      parameters:
      - name: token
        in: query
        required: true
        schema:
          type: string
      - name: page
        in: query
        description: the default call is with page = 1
        schema:
          type: integer
      - name: meta
        in: query
        description: " show summarized data information - true/false"
        schema:
          type: string
      responses:
        '200':
          description: success
        '404':
          description: page not found
  "/api/v1/comments/{id}":
    get:
      summary: Get comment by id
      tags:
      - Comments
      parameters:
      - name: token
        in: query
        required: true
        schema:
          type: string
      - name: id
        in: path
        required: true
        description: comment id
        schema:
          type: integer
      responses:
        '200':
          description: success
        '404':
          description: comment not found
    delete:
      summary: Delete comment
      tags:
      - Comments
      parameters:
      - name: token
        in: query
        required: true
        schema:
          type: string
      - name: id
        in: path
        required: true
        description: comment id
        schema:
          type: integer
      responses:
        '204':
          description: no content
        '404':
          description: not found
  "/api/v1/companies":
    post:
      summary: Add a company
      tags:
      - Companies
      parameters: []
      responses:
        '200':
          description: company created
        '422':
          description: Title cannot be blank
        '401':
          description: 'Error: Unauthorized'
      requestBody:
        content:
          application/json:
            schema:
              "$ref": "#/components/schemas/createCompany"
        required: true
    get:
      summary: List all companies in your account
      tags:
      - Companies
      parameters:
      - name: token
        in: query
        required: true
        schema:
          type: string
      - name: page
        in: query
        description: the default call is with page = 1
        schema:
          type: integer
      - name: meta
        in: query
        description: " show summarized data information - true/false"
        schema:
          type: string
      responses:
        '200':
          description: success
        '404':
          description: page not found
  "/api/v1/companies/{id}":
    put:
      summary: Update company attributes
      tags:
      - Companies
      parameters:
      - name: id
        in: path
        required: true
        description: company id
        schema:
          type: integer
      responses:
        '200':
          description: company updated
        '422':
          description: invalid request
        '401':
          description: 'Error: Unauthorized'
      requestBody:
        content:
          application/json:
            schema:
              "$ref": "#/components/schemas/updateCompany"
        required: true
    get:
      summary: Get company by id
      tags:
      - Companies
      parameters:
      - name: token
        in: query
        required: true
        schema:
          type: string
      - name: id
        in: path
        required: true
        description: company id
        schema:
          type: integer
      responses:
        '200':
          description: success
        '404':
          description: company not found
    delete:
      summary: Delete company
      tags:
      - Companies
      parameters:
      - name: token
        in: query
        required: true
        schema:
          type: string
      - name: id
        in: path
        required: true
        description: company id
        schema:
          type: integer
      responses:
        '204':
          description: no content
        '404':
          description: not found
  "/api/v1/compounds":
    post:
      summary: Creates a compound
      tags:
      - Compounds
      parameters: []
      responses:
        '201':
          description: compound created
        '422':
          description: invalid request - Name can't be blank
        '401':
          description: 'Error: Unauthorized'
      requestBody:
        content:
          application/json:
            schema:
              "$ref": "#/components/schemas/createCompound"
        required: true
    get:
      summary: List all compounds in your account
      tags:
      - Compounds
      parameters:
      - name: token
        in: query
        required: true
        schema:
          type: string
      - name: page
        in: query
        description: the default call is with page = 1
        schema:
          type: integer
      - name: meta
        in: query
        description: " show summarized data information - true/false"
        schema:
          type: string
      responses:
        '200':
          description: success
        '404':
          description: page not found
  "/api/v1/compounds/{id}":
    put:
      summary: Update compound attributes
      tags:
      - Compounds
      parameters:
      - name: id
        in: path
        required: true
        description: compound id
        schema:
          type: integer
      responses:
        '200':
          description: compound updated
        '422':
          description: invalid request
        '401':
          description: 'Error: Unauthorized'
      requestBody:
        content:
          application/json:
            schema:
              "$ref": "#/components/schemas/updateCompound"
        required: true
    get:
      summary: Get compound by id
      tags:
      - Compounds
      parameters:
      - name: token
        in: query
        required: true
        schema:
          type: string
      - name: id
        in: path
        required: true
        description: compound id
        schema:
          type: integer
      responses:
        '200':
          description: success
        '404':
          description: compound not found
    delete:
      summary: Delete compound
      tags:
      - Compounds
      parameters:
      - name: token
        in: query
        required: true
        schema:
          type: string
      - name: id
        in: path
        required: true
        description: compound id
        schema:
          type: integer
      responses:
        '204':
          description: no content
        '404':
          description: not found
  "/api/v1/datasets":
    post:
      summary: Creates a dataset
      tags:
      - Datasets
      parameters: []
      responses:
        '201':
          description: dataset created
        '422':
          description: invalid request - data_attachment_id can't be blank
        '401':
          description: 'Error: Unauthorized'
      requestBody:
        content:
          application/json:
            schema:
              "$ref": "#/components/schemas/createDataset"
        required: true
    get:
      summary: List all datasets in your account
      tags:
      - Datasets
      parameters:
      - name: token
        in: query
        required: true
        schema:
          type: string
      - name: page
        in: query
        description: the default call is with page = 1
        schema:
          type: integer
      - name: meta
        in: query
        description: " show summarized data information - true/false"
        schema:
          type: string
      responses:
        '200':
          description: success
        '404':
          description: page not found
  "/api/v1/datasets/{id}":
    get:
      summary: Get dataset by id
      tags:
      - Datasets
      parameters:
      - name: token
        in: query
        required: true
        schema:
          type: string
      - name: id
        in: path
        required: true
        description: dataset id
        schema:
          type: integer
      responses:
        '200':
          description: success
        '404':
          description: page not found
    delete:
      summary: Delete dataset
      tags:
      - Datasets
      parameters:
      - name: token
        in: query
        required: true
        schema:
          type: string
      - name: id
        in: path
        required: true
        description: dataset id
        schema:
          type: integer
      responses:
        '204':
          description: no content
        '404':
          description: not found
  "/api/v1/documents":
    post:
      summary: Creates a document
      tags:
      - Documents
      parameters: []
      responses:
        '201':
          description: document created
        '422':
          description: invalid request - Title cannot be blank
        '401':
          description: 'Error: Unauthorized'
      requestBody:
        content:
          application/json:
            schema:
              "$ref": "#/components/schemas/createDocument"
        required: true
    get:
      summary: List all documents in your account
      tags:
      - Documents
      parameters:
      - name: token
        in: query
        required: true
        schema:
          type: string
      - name: page
        in: query
        description: the default call is with page = 1
        schema:
          type: integer
      - name: meta
        in: query
        description: " show summarized data information - true/false"
        schema:
          type: string
      responses:
        '200':
          description: success
        '404':
          description: page not found
  "/api/v1/documents/{id}":
    put:
      summary: Update document attributes
      tags:
      - Documents
      parameters:
      - name: id
        in: path
        required: true
        description: document id
        schema:
          type: integer
      responses:
        '200':
          description: document updated
        '422':
          description: invalid request
        '401':
          description: 'Error: Unauthorized'
      requestBody:
        content:
          application/json:
            schema:
              "$ref": "#/components/schemas/updateDocument"
        required: true
    get:
      summary: Get document by id
      tags:
      - Documents
      parameters:
      - name: token
        in: query
        required: true
        schema:
          type: string
      - name: id
        in: path
        required: true
        description: document id
        schema:
          type: integer
      responses:
        '200':
          description: success
        '404':
          description: document not found
    delete:
      summary: Delete document
      tags:
      - Documents
      parameters:
      - name: token
        in: query
        required: true
        schema:
          type: string
      - name: id
        in: path
        required: true
        description: document id
        schema:
          type: integer
      responses:
        '204':
          description: no content
        '404':
          description: not found
  "/api/v1/elements":
    post:
      summary: Add element
      tags:
      - Elements
      description: |
        This endpoint creates an element within a specific section of an ELN or knowledgebase item.

        To add an element, specify its type and the corresponding section ID,
        Once created, the element is automatically integrated and displayed in the designated section.
      parameters: []
      responses:
        '201':
          description: Created
        '422':
          description: Invalid request
        '401':
          description: 'Error: Unauthorized'
      requestBody:
        content:
          application/json:
            schema:
              oneOf:
              - "$ref": "#/components/schemas/addElement"
              - "$ref": "#/components/schemas/addPlateElement"
        required: true
  "/api/v1/elements/sort":
    post:
      summary: Rearrange elements
      tags:
      - Elements
      description: 'This endpoint enables you to change the order of elements within
        a chosen section.

        '
      parameters: []
      responses:
        '200':
          description: OK
        '422':
          description: Invalid request
        '401':
          description: 'Error: Unauthorized'
      requestBody:
        content:
          application/json:
            schema:
              type: object
              required:
              - token
              - container_id
              - container_type
              - list
              properties:
                token:
                  type: string
                  example: YOUR TOKEN IS HERE
                container_id:
                  type: integer
                  description: The ID of the section in which the element will be
                    rearranged
                container_type:
                  type: string
                  default: Projects::Experiment
                  description: The type of container in which the elements will be
                    rearranged
                list:
                  type: array
                  items:
                    type: integer
                  description: An array of element IDs that determines the new order
                    in which the elements will be rearranged
                  example:
                  - 112
                  - 110
                  - 111
        required: true
  "/api/v1/elements/{id}":
    put:
      summary: Update element
      tags:
      - Elements
      description: |
        This endpoint updates the content of a specified element by its ID.

        Note: Updating the <code>data</code>/<code>form_json</code> field will replace any existing data.
      parameters:
      - name: id
        in: path
        required: true
        description: The ID of the element
        schema:
          type: integer
      responses:
        '200':
          description: OK
        '422':
          description: Invalid request
        '401':
          description: 'Error: Unauthorized'
      requestBody:
        content:
          application/json:
            schema:
              oneOf:
              - "$ref": "#/components/schemas/updateFormElement"
              - "$ref": "#/components/schemas/updateTextElement"
        required: true
    get:
      summary: Get element by id
      tags:
      - Elements
      parameters:
      - name: token
        in: query
        required: true
        schema:
          type: string
      - name: id
        in: path
        required: true
        description: The ID of the element
        schema:
          type: integer
      description: 'Get an element by ID.

        '
      responses:
        '200':
          description: OK
        '404':
          description: Not Found
    delete:
      summary: Delete element
      tags:
      - Elements
      parameters:
      - name: token
        in: query
        required: true
        schema:
          type: string
      - name: id
        in: path
        required: true
        description: element id
        schema:
          type: integer
      responses:
        '204':
          description: no content
        '404':
          description: not found
  "/api/v1/instruments":
    post:
      summary: Add an equipment
      tags:
      - Equipment
      parameters: []
      responses:
        '201':
          description: equipment created
        '422':
          description: invalid request - Title cannot be blank
        '401':
          description: 'Error: Unauthorized'
      requestBody:
        content:
          application/json:
            schema:
              "$ref": "#/components/schemas/createEquipment"
        required: true
    get:
      summary: List all equipment in your account
      tags:
      - Equipment
      deprecated: true
      description: |
        List all equipment.

        **Note:** An improved version of this endpoint is available in API v2.
         Please visit [API v2 docs](/api-docs/index.html?urls.primaryName=API%20V2%20Docs#/Equipment/get_api_v2_instruments).
      parameters:
      - name: token
        in: query
        required: true
        schema:
          type: string
      - name: page
        in: query
        description: the default call is with page = 1
        schema:
          type: integer
      - name: meta
        in: query
        description: " show summarized data information - true/false"
        schema:
          type: string
      responses:
        '200':
          description: success
        '404':
          description: page not found
  "/api/v1/instruments/{id}":
    put:
      summary: Update equipment attributes
      tags:
      - Equipment
      parameters:
      - name: id
        in: path
        required: true
        description: equipment id
        schema:
          type: integer
      responses:
        '200':
          description: equipment updated
        '422':
          description: invalid request
        '401':
          description: 'Error: Unauthorized'
      requestBody:
        content:
          application/json:
            schema:
              "$ref": "#/components/schemas/updateEquipment"
        required: true
    get:
      summary: Get equipment by id
      tags:
      - Equipment
      parameters:
      - name: token
        in: query
        required: true
        schema:
          type: string
      - name: id
        in: path
        required: true
        description: equipment id
        schema:
          type: integer
      responses:
        '200':
          description: success
        '404':
          description: equipment not found
    delete:
      summary: Delete equipment
      tags:
      - Equipment
      parameters:
      - name: token
        in: query
        required: true
        schema:
          type: string
      - name: id
        in: path
        required: true
        description: equipment id
        schema:
          type: integer
      responses:
        '204':
          description: no content
        '404':
          description: not found
  "/api/v1/events":
    post:
      summary: Add an event
      tags:
      - Events
      parameters: []
      responses:
        '201':
          description: event created
        '422':
          description: Repeats frame should be a number and greater than 0
        '401':
          description: 'Error: Unauthorized'
      requestBody:
        content:
          application/json:
            schema:
              "$ref": "#/components/schemas/createEvent"
        required: true
    get:
      summary: List all event in your account
      tags:
      - Events
      parameters:
      - name: token
        in: query
        required: true
        schema:
          type: string
      - name: page
        in: query
        description: the default call is with page = 1
        schema:
          type: integer
      - name: meta
        in: query
        description: " show summarized data information - true/false"
        schema:
          type: string
      responses:
        '200':
          description: success
        '404':
          description: page not found
  "/api/v1/events/{id}":
    put:
      summary: Update event attributes
      tags:
      - Events
      parameters:
      - name: id
        in: path
        required: true
        description: event id
        schema:
          type: integer
      responses:
        '200':
          description: event updated
        '422':
          description: invalid request
        '401':
          description: 'Error: Unauthorized'
      requestBody:
        content:
          application/json:
            schema:
              "$ref": "#/components/schemas/updateEvent"
        required: true
    get:
      summary: Get event by id
      tags:
      - Events
      parameters:
      - name: token
        in: query
        required: true
        schema:
          type: string
      - name: id
        in: path
        required: true
        description: event id
        schema:
          type: integer
      responses:
        '200':
          description: success
        '404':
          description: event not found
    delete:
      summary: Delete event
      tags:
      - Events
      parameters:
      - name: token
        in: query
        required: true
        schema:
          type: string
      - name: id
        in: path
        required: true
        description: event id
        schema:
          type: integer
      responses:
        '204':
          description: no content
        '404':
          description: page not found
  "/api/v1/experiments":
    post:
      summary: Add an experiment
      tags:
      - Experiments
      parameters: []
      responses:
        '201':
          description: experiment created
        '400':
          description: Bad Request - Invalid input
        '401':
          description: 'Error: Unauthorized'
      requestBody:
        content:
          application/json:
            schema:
              "$ref": "#/components/schemas/addExperiment"
        required: true
    get:
      summary: List all experiments in your account
      tags:
      - Experiments
      deprecated: true
      description: |
        List all experiments.

        **Note:** An improved version of this endpoint is available in API v2.
        Please visit [API v2 docs](/api-docs/index.html?urls.primaryName=API%20V2%20Docs#/Experiments/get_api_v2_experiments).
      parameters:
      - name: token
        in: query
        required: true
        schema:
          type: string
      - name: page
        in: query
        description: the default call is with page = 1
        schema:
          type: integer
      - name: meta
        in: query
        description: show summarized data information - true/false
        schema:
          type: string
      responses:
        '200':
          description: success
        '404':
          description: page not found
  "/api/v1/experiments/{id}":
    put:
      summary: Update an experiment
      tags:
      - Experiments
      parameters:
      - name: id
        in: path
        required: true
        description: experiment id
        schema:
          type: integer
      responses:
        '200':
          description: experiment updated
        '400':
          description: Bad Request
        '401':
          description: 'Error: Unauthorized'
      requestBody:
        content:
          application/json:
            schema:
              "$ref": "#/components/schemas/updateExperiment"
        required: true
    get:
      summary: Get experiment by id
      tags:
      - Experiments
      parameters:
      - name: token
        in: query
        required: true
        schema:
          type: string
      - name: id
        in: path
        required: true
        schema:
          type: integer
      responses:
        '200':
          description: success
        '404':
          description: experiment not found
    delete:
      summary: Delete experiment
      tags:
      - Experiments
      parameters:
      - name: token
        in: query
        required: true
        schema:
          type: string
      - name: id
        in: path
        required: true
        description: experiment id
        schema:
          type: integer
      responses:
        '204':
          description: no content
        '404':
          description: not found
  "/api/v1/experiments/{id}/elements":
    get:
      summary: 'List all elements of an experiment '
      tags:
      - Experiments
      parameters:
      - name: token
        in: query
        required: true
        schema:
          type: string
      - name: id
        in: path
        description: The ID of the experiment
        required: true
        schema:
          type: integer
      - name: element_type
        in: query
        description: |-
          The element type:
          - excel
          - text
          - form
          - attachments
          - samples
          - plate
          - steps
          - equipment
          - sketch
          - compound
          - reaction
          - pdf
        schema:
          type: string
      - name: name
        in: query
        description: The element name - Table 1 / My Samples / Plate - MM D, YYYY
          HH:MM:SS
        schema:
          type: string
      responses:
        '200':
          description: success
  "/api/v1/experiments/{id}/set_flag_as":
    post:
      summary: Add flag to an experiment
      tags:
      - Experiments
      parameters:
      - name: id
        in: path
        description: The ID of the experiment that will be flagged
        required: true
        schema:
          type: integer
      responses:
        '200':
          description: ok
          content:
            application/json:
              schema:
                type: object
                properties:
                  id:
                    type: integer
                    description: The ID of the experiment
                  flag:
                    type: object
                    properties:
                      id:
                        type: integer
                        description: The ID of the flag
                      title:
                        type: string
                      description:
                        type: string
                      color:
                        type: string
                      icon:
                        type: string
                      active:
                        type: boolean
                      default:
                        type: boolean
                  state:
                    type: string
        '401':
          description: Unauthorized
          content:
            application/json:
              schema:
                type: object
                properties:
                  message:
                    type: string
                    example: You are not authorized to perform this action.
      requestBody:
        content:
          application/json:
            schema:
              type: object
              required:
              - token
              - flag_id
              properties:
                token:
                  type: string
                  example: YOUR TOKEN IS HERE
                flag_id:
                  type: integer
                  description: The ID of the flag
        required: true
  "/api/v1/{collection_name}":
    get:
      summary: Filter Biocollections items
      tags:
      - Filters
      parameters:
      - name: token
        in: query
        required: true
        schema:
          type: string
      - name: page
        in: query
        description: the default call is with page = 1
        schema:
          type: integer
          default: 1
      - name: meta
        in: query
        description: show summarized data information - true/false
        schema:
          type: string
          default: 'true'
      - name: kendo
        in: query
        required: true
        schema:
          type: string
          default: 'true'
      - name: collection_name
        in: path
        description: 'the collection name to filter, example: antibodies'
        required: true
        schema:
          type: string
      - name: filter[logic]
        in: query
        required: true
        schema:
          type: string
          default: and
      - name: filter[filters][0][field]
        in: query
        required: true
        description: |+
          Valid fields are:

          - title
          - auto_name(SySID)
          - alternative_name
          - description
          - owner_id

        schema:
          type: string
      - name: filter[filters][0][operator]
        in: query
        required: true
        description: |+
          Valid operators are:

          - contains\doesnotcontain
          - eq\neq
          - startswith\endswith
          - isnullorempty\isnotnullorempty

        schema:
          type: string
      - name: filter[filters][0][value]
        in: query
        description: the filter term
        required: true
        schema:
          type: string
      responses:
        '200':
          description: filtered
  "/api/v1/biocollections/{collection_name}":
    get:
      summary: Filter Custom collections items
      tags:
      - Filters
      parameters:
      - name: token
        in: query
        required: true
        schema:
          type: string
      - name: page
        in: query
        description: the default call is with page = 1
        schema:
          type: integer
          default: 1
      - name: meta
        in: query
        description: show summarized data information - true/false
        schema:
          type: string
          default: 'true'
      - name: kendo
        in: query
        required: true
        schema:
          type: string
          default: 'true'
      - name: collection_name
        in: path
        description: 'the collection name to filter, example: myCollection'
        required: true
        schema:
          type: string
      - name: filter[logic]
        in: query
        required: true
        schema:
          type: string
          default: and
      - name: filter[filters][0][field]
        in: query
        required: true
        description: |+
          Valid fields are:

          - title
          - auto_name(SySID)
          - alternative_name
          - description
          - owner_id

        schema:
          type: string
      - name: filter[filters][0][operator]
        in: query
        required: true
        description: |+
          Valid operators are:

          - contains\doesnotcontain
          - eq\neq
          - startswith\endswith
          - isnullorempty\isnotnullorempty

        schema:
          type: string
      - name: filter[filters][0][value]
        in: query
        description: the filter term
        required: true
        schema:
          type: string
      responses:
        '200':
          description: success
  "/api/v1/{knowledgbase_collection}":
    get:
      summary: Filter knowledgbase items
      tags:
      - Filters
      parameters:
      - name: token
        in: query
        required: true
        schema:
          type: string
      - name: page
        in: query
        description: the default call is with page = 1
        schema:
          type: integer
          default: 1
      - name: meta
        in: query
        description: " show summarized data information - true/false"
        schema:
          type: string
          default: 'true'
      - name: kendo
        in: query
        required: true
        schema:
          type: string
          default: 'true'
      - name: knowledgbase_collection
        in: path
        required: true
        description: |+
          The collection name to filter:

          - projects
          - experiments
          - protocols
          - documents
          - reports
          - datasets
          - recipes
          - papers
          - sops

        schema:
          type: string
      - name: filter[logic]
        in: query
        required: true
        schema:
          type: string
          default: and
      - name: filter[filters][0][field]
        in: query
        required: true
        description: |+
          Valid fields are:

          - title
          - id
          - flag (true for Succesful,false for Failed)
          - projects.title(relevant for experiments)
          - start_date\end_date

        schema:
          type: string
      - name: filter[filters][0][operator]
        in: query
        required: true
        description: |+
          Valid operators are:

          - contains\doesnotcontain
          - eq\neq
          - startswith\endswith
          - isnullorempty\isnotnullorempty

        schema:
          type: string
      - name: filter[filters][0][value]
        in: query
        description: the filter term
        required: true
        schema:
          type: string
      - name: tag_ids
        in: query
        description: tag id
        example: "['3']"
        schema:
          type: string
      responses:
        '200':
          description: success
  "/api/v1/flags":
    post:
      summary: Create a Flag
      tags:
      - Flags
      description: 'Create a flag.

        '
      parameters: []
      responses:
        '200':
          description: ok
          content:
            application/json:
              schema:
                type: object
                properties:
                  flag:
                    type: object
                    properties:
                      id:
                        type: integer
                        description: The ID of the flag
                      title:
                        type: string
                      description:
                        type: string
                      color:
                        type: string
                      icon:
                        type: string
                      active:
                        type: boolean
                      default:
                        type: boolean
                  state:
                    type: string
        '422':
          description: Unprocessable Entity
          content:
            application/json:
              schema:
                type: object
                properties:
                  error_message:
                    type: string
                    example: "'icon2' is not a valid icon / 'Greenn' is not a valid
                      color"
        '401':
          description: Unauthorized
          content:
            application/json:
              schema:
                type: object
                properties:
                  message:
                    type: string
                    example: You are not authorized to perform this action.
      requestBody:
        content:
          application/json:
            schema:
              "$ref": "#/components/schemas/createFlag"
        required: true
    get:
      summary: List all flags in your account
      tags:
      - Flags
      parameters:
      - name: token
        in: query
        required: true
        schema:
          type: string
      - name: page
        in: query
        description: The default call is with page = 1
        schema:
          type: integer
      - name: meta
        in: query
        description: Show summarized data information - true/false
        schema:
          type: string
      description: 'List all flags.

        '
      responses:
        '200':
          description: ok
        '404':
          description: Not Found
          content:
            application/json:
              schema:
                type: object
                properties:
                  error:
                    type: string
                    example: Resource not found
  "/api/v1/flags/{id}":
    put:
      summary: Update a flag
      tags:
      - Flags
      description: 'Update a flag.

        '
      parameters:
      - name: id
        in: path
        required: true
        description: The ID of the flag
        schema:
          type: integer
      responses:
        '200':
          description: OK
        '422':
          description: Unprocessable Entity
          content:
            application/json:
              schema:
                type: object
                properties:
                  error_message:
                    type: string
                    example: 'Validation failed: Title has already been taken, Title
                      Cannot be changed'
        '401':
          description: Unauthorized
          content:
            application/json:
              schema:
                type: object
                properties:
                  message:
                    type: string
                    example: You are not authorized to perform this action.
      requestBody:
        content:
          application/json:
            schema:
              "$ref": "#/components/schemas/updateFlag"
        required: true
    get:
      summary: Get flag by id
      tags:
      - Flags
      parameters:
      - name: token
        in: query
        required: true
        schema:
          type: string
      - name: id
        in: path
        required: true
        description: The ID of the flag
        schema:
          type: integer
      description: 'Get a flag by ID.

        '
      responses:
        '200':
          description: OK
        '404':
          description: Not Found
          content:
            application/json:
              schema:
                type: object
                properties:
                  error:
                    type: string
                    example: Resource not found
        '401':
          description: Unauthorized
          content:
            application/json:
              schema:
                type: object
                properties:
                  message:
                    type: string
                    example: You are not authorized to perform this action.
    delete:
      summary: Delete flag
      tags:
      - Flags
      parameters:
      - name: token
        in: query
        required: true
        schema:
          type: string
      - name: id
        in: path
        required: true
        description: flag id
        schema:
          type: integer
      responses:
        '204':
          description: no content
        '404':
          description: not found
  "/api/v1/flies":
    post:
      summary: Create a Fly
      tags:
      - Flies
      description: 'Create a fly.

        '
      parameters: []
      responses:
        '201':
          description: OK
        '422':
          description: invalid request
        '401':
          description: 'Error: Unauthorized'
      requestBody:
        content:
          application/json:
            schema:
              "$ref": "#/components/schemas/createFly"
        required: true
    get:
      summary: List all flies in your account
      tags:
      - Flies
      parameters:
      - name: token
        in: query
        required: true
        schema:
          type: string
      - name: page
        in: query
        description: The default call is with page = 1
        schema:
          type: integer
      - name: meta
        in: query
        description: Show summarized data information - true/false
        schema:
          type: string
      description: 'List all flies.

        '
      responses:
        '200':
          description: OK
        '404':
          description: Not Found
  "/api/v1/flies/{id}":
    put:
      summary: Update a fly
      tags:
      - Flies
      description: 'Update a fly.

        '
      parameters:
      - name: id
        in: path
        required: true
        description: The ID of the fly
        schema:
          type: integer
      responses:
        '200':
          description: OK
        '422':
          description: invalid request
        '401':
          description: 'Error: Unauthorized'
      requestBody:
        content:
          application/json:
            schema:
              "$ref": "#/components/schemas/updateFly"
        required: true
    get:
      summary: Get fly by id
      tags:
      - Flies
      parameters:
      - name: token
        in: query
        required: true
        schema:
          type: string
      - name: id
        in: path
        required: true
        description: The ID of the fly
        schema:
          type: integer
      description: 'Get a fly by ID.

        '
      responses:
        '200':
          description: OK
        '404':
          description: Not Found
    delete:
      summary: Delete fly
      tags:
      - Flies
      parameters:
      - name: token
        in: query
        required: true
        schema:
          type: string
      - name: id
        in: path
        required: true
        description: fly id
        schema:
          type: integer
      responses:
        '204':
          description: no content
        '404':
          description: not found
  "/api/v1/fungi":
    post:
      summary: Create a fungus
      tags:
      - Fungi
      description: 'Creates a fungus.

        '
      parameters: []
      responses:
        '201':
          description: OK
        '422':
          description: Invalid request
        '401':
          description: 'Error: Unauthorized'
      requestBody:
        content:
          application/json:
            schema:
              "$ref": "#/components/schemas/createFungus"
        required: true
    get:
      summary: List all fungi in your account
      tags:
      - Fungi
      parameters:
      - name: token
        in: query
        required: true
        schema:
          type: string
      - name: page
        in: query
        description: The default call is with page = 1
        schema:
          type: integer
      - name: meta
        in: query
        description: Show summarized data information - true/false
        schema:
          type: string
      description: 'List all fungi.

        '
      responses:
        '200':
          description: OK
        '404':
          description: Not Found
  "/api/v1/fungi/{id}":
    put:
      summary: Update fungus
      tags:
      - Fungi
      description: 'Update a fungus.

        '
      parameters:
      - name: id
        in: path
        required: true
        description: The ID of the fungus
        schema:
          type: integer
      responses:
        '200':
          description: OK
        '422':
          description: Invalid request
        '401':
          description: 'Error: Unauthorized'
      requestBody:
        content:
          application/json:
            schema:
              "$ref": "#/components/schemas/updateFungus"
        required: true
    get:
      summary: Get fungus by id
      tags:
      - Fungi
      parameters:
      - name: token
        in: query
        required: true
        schema:
          type: string
      - name: id
        in: path
        required: true
        description: The ID of the fungus
        schema:
          type: integer
      description: 'Get fungus by id.

        '
      responses:
        '200':
          description: OK
        '404':
          description: Not Found
    delete:
      summary: Delete fungus
      tags:
      - Fungi
      parameters:
      - name: token
        in: query
        required: true
        schema:
          type: string
      - name: id
        in: path
        required: true
        description: The ID of the fungus
        schema:
          type: integer
      responses:
        '204':
          description: no content
        '404':
          description: not found
  "/api/v1/biocollections/{generic_collection_name}":
    post:
      summary: Add a generic item
      tags:
      - Generic Items
      parameters:
      - name: generic_collection_name
        in: path
        required: true
        description: generic collection name
        schema:
          type: string
      responses:
        '201':
          description: generic item created
        '422':
          description: invalid request - name can't be blank
        '401':
          description: 'Error: Unauthorized'
      requestBody:
        content:
          application/json:
            schema:
              "$ref": "#/components/schemas/createGenericItem"
        required: true
    get:
      summary: List all generic items in your account
      tags:
      - Generic Items
      parameters:
      - name: token
        in: query
        required: true
        schema:
          type: string
      - name: generic_collection_name
        in: path
        required: true
        description: generic collection name
        schema:
          type: string
      - name: page
        in: query
        description: the default call is with page = 1
        schema:
          type: integer
      - name: meta
        in: query
        description: " show summarized data information - true/false"
        schema:
          type: string
      responses:
        '200':
          description: success
        '404':
          description: page not found
  "/api/v1/biocollections/{generic_collection_name}/{id}":
    put:
      summary: Update generic item attributes
      tags:
      - Generic Items
      parameters:
      - name: generic_collection_name
        in: path
        required: true
        description: generic collection name
        schema:
          type: string
      - name: id
        in: path
        required: true
        description: generic item id
        schema:
          type: integer
      responses:
        '200':
          description: vector updated
        '422':
          description: invalid request
        '401':
          description: 'Error: Unauthorized'
      requestBody:
        content:
          application/json:
            schema:
              "$ref": "#/components/schemas/updateGenericItem"
        required: true
    get:
      summary: Get generic item by id
      tags:
      - Generic Items
      parameters:
      - name: token
        in: query
        required: true
        schema:
          type: string
      - name: generic_collection_name
        in: path
        required: true
        description: generic collection name
        schema:
          type: string
      - name: id
        in: path
        required: true
        description: generic item id
        schema:
          type: integer
      responses:
        '200':
          description: success
        '404':
          description: generic item not found
    delete:
      summary: Delete generic item
      tags:
      - Generic Items
      parameters:
      - name: token
        in: query
        required: true
        schema:
          type: string
      - name: generic_collection_name
        in: path
        required: true
        description: generic collection name
        schema:
          type: string
      - name: id
        in: path
        required: true
        description: generic item id
        schema:
          type: integer
      responses:
        '204':
          description: no content
        '404':
          description: not found
  "/api/v1/genes":
    post:
      summary: Create a gene
      tags:
      - Genes
      description: 'Create a gene.

        '
      parameters: []
      responses:
        '201':
          description: OK
        '422':
          description: Invalid request
        '401':
          description: 'Error: Unauthorized'
      requestBody:
        content:
          application/json:
            schema:
              "$ref": "#/components/schemas/createGene"
        required: true
    get:
      summary: List all genes in your account
      tags:
      - Genes
      parameters:
      - name: token
        in: query
        required: true
        schema:
          type: string
      - name: page
        in: query
        description: The default call is with page = 1
        schema:
          type: integer
      - name: meta
        in: query
        description: Show summarized data information - true/false
        schema:
          type: string
      description: 'List all genes.

        '
      responses:
        '200':
          description: OK
        '404':
          description: Not found
  "/api/v1/genes/{id}":
    put:
      summary: Update gene
      tags:
      - Genes
      description: 'Update a gene.

        '
      parameters:
      - name: id
        in: path
        required: true
        description: The ID of the gene
        schema:
          type: integer
      responses:
        '200':
          description: OK
        '422':
          description: Invalid request
        '401':
          description: 'Error: Unauthorized'
      requestBody:
        content:
          application/json:
            schema:
              "$ref": "#/components/schemas/updateGene"
        required: true
    get:
      summary: Get gene by id
      tags:
      - Genes
      parameters:
      - name: token
        in: query
        required: true
        schema:
          type: string
      - name: id
        in: path
        required: true
        description: The ID of the gene
        schema:
          type: integer
      description: 'Get a gene by ID.

        '
      responses:
        '200':
          description: OK
        '404':
          description: Not found
    delete:
      summary: Delete gene
      tags:
      - Genes
      parameters:
      - name: token
        in: query
        required: true
        schema:
          type: string
      - name: id
        in: path
        required: true
        description: gene id
        schema:
          type: integer
      responses:
        '204':
          description: no content
        '404':
          description: not found
  "/api/v1/links":
    post:
      summary: Creates a link
      tags:
      - Links
      parameters: []
      responses:
        '201':
          description: Created
        '500':
          description: Internal Server Error
        '401':
          description: Unauthorized
          content:
            application/json:
              schema:
                "$ref": "#/components/schemas/Unauthorized"
      requestBody:
        content:
          application/json:
            schema:
              "$ref": "#/components/schemas/createLink"
        required: true
    get:
      summary: Get link by uuid
      tags:
      - Links
      parameters:
      - name: token
        in: query
        required: true
        schema:
          type: string
      - name: item_uuid
        in: query
        required: true
        description: A unique identifier of the link, Provide a UUID value.
        schema:
          type: string
      responses:
        '200':
          description: OK
        '404':
          description: Not found
          content:
            application/json:
              schema:
                type: object
                properties:
                  error:
                    type: string
                    example: Couldn't find LgUuid
        '401':
          description: Unauthorized
          content:
            application/json:
              schema:
                "$ref": "#/components/schemas/Unauthorized"
  "/api/v1/links/{id}":
    put:
      summary: Update a link
      tags:
      - Links
      parameters:
      - name: id
        in: path
        required: true
        description: link id
        schema:
          type: integer
      responses:
        '200':
          description: OK
        '422':
          description: Unprocessable Entity
          content:
            application/json:
              schema:
                type: object
                properties:
                  error_message:
                    type: string
                    example: Source can't be blank
        '401':
          description: Unauthorized
          content:
            application/json:
              schema:
                "$ref": "#/components/schemas/Unauthorized"
      requestBody:
        content:
          application/json:
            schema:
              "$ref": "#/components/schemas/updateLink"
        required: true
    get:
      summary: Get link by id
      tags:
      - Links
      parameters:
      - name: token
        in: query
        required: true
        schema:
          type: string
      - name: id
        in: path
        required: true
        description: link id
        schema:
          type: integer
      responses:
        '200':
          description: OK
        '404':
          description: Not found
        '401':
          description: Unauthorized
          content:
            application/json:
              schema:
                "$ref": "#/components/schemas/Unauthorized"
    delete:
      summary: Delete link
      tags:
      - Links
      parameters:
      - name: token
        in: query
        required: true
        schema:
          type: string
      - name: id
        in: path
        required: true
        description: link id
        schema:
          type: integer
      responses:
        '204':
          description: no content
        '404':
          description: not found
  "/api/v1/lipids":
    post:
      summary: Create a lipid
      tags:
      - Lipids
      description: 'Create a lipid.

        '
      parameters: []
      responses:
        '201':
          description: Created
        '422':
          description: invalid request
        '401':
          description: 'Error: Unauthorized'
      requestBody:
        content:
          application/json:
            schema:
              "$ref": "#/components/schemas/createLipid"
        required: true
    get:
      summary: List all lipids in your account
      tags:
      - Lipids
      description: 'List all lipids.

        '
      parameters:
      - name: token
        in: query
        required: true
        schema:
          type: string
      - name: page
        in: query
        description: The default call is with page = 1
        schema:
          type: integer
      - name: meta
        in: query
        description: Show summarized data information - true/false
        schema:
          type: string
      responses:
        '200':
          description: OK
        '404':
          description: Not found
        '401':
          description: 'Error: Unauthorized'
  "/api/v1/lipids/{id}":
    put:
      summary: Update lipid
      tags:
      - Lipids
      description: 'Update lipid.

        '
      parameters:
      - name: id
        in: path
        required: true
        description: The ID of the lipid
        schema:
          type: integer
      responses:
        '200':
          description: OK
        '422':
          description: invalid request
        '401':
          description: 'Error: Unauthorized'
      requestBody:
        content:
          application/json:
            schema:
              "$ref": "#/components/schemas/updateLipid"
        required: true
    get:
      summary: Get lipid by ID
      tags:
      - Lipids
      description: 'Get lipid by ID.

        '
      parameters:
      - name: token
        in: query
        required: true
        schema:
          type: string
      - name: id
        in: path
        required: true
        description: The ID of the lipid
        schema:
          type: integer
      responses:
        '200':
          description: OK
        '404':
          description: Not found
        '401':
          description: 'Error: Unauthorized'
    delete:
      summary: Delete lipid
      tags:
      - Lipids
      parameters:
      - name: token
        in: query
        required: true
        schema:
          type: string
      - name: id
        in: path
        required: true
        description: lipid id
        schema:
          type: integer
      responses:
        '204':
          description: no content
        '404':
          description: not found
  "/api/v1/maintenance_events":
    post:
      summary: Creates a Maintenance event
      tags:
      - Maintenance event
      parameters: []
      responses:
        '201':
          description: maintenance event created
        '422':
          description: maintenance id cannot be blank
        '401':
          description: 'Error: Unauthorized'
      requestBody:
        content:
          application/json:
            schema:
              "$ref": "#/components/schemas/createMaintenanceEvent"
        required: true
    get:
      summary: List all maintenance events in your account
      tags:
      - Maintenance event
      parameters:
      - name: token
        in: query
        required: true
        schema:
          type: string
      - name: page
        in: query
        description: the default call is with page = 1
        schema:
          type: integer
      - name: meta
        in: query
        description: " show summarized data information - true/false"
        schema:
          type: string
      responses:
        '200':
          description: success
        '404':
          description: page not found
  "/api/v1/maintenance_events/{id}":
    put:
      summary: Update maintenance event
      tags:
      - Maintenance event
      parameters:
      - name: id
        in: path
        required: true
        description: maintenance event id
        schema:
          type: integer
      responses:
        '200':
          description: maintenance event updated
        '422':
          description: item type cannot be blank
        '401':
          description: 'Error: Unauthorized'
      requestBody:
        content:
          application/json:
            schema:
              "$ref": "#/components/schemas/updateMaintenanceEvent"
        required: true
    get:
      summary: Get maintenance event by id
      tags:
      - Maintenance event
      parameters:
      - name: token
        in: query
        required: true
        schema:
          type: string
      - name: id
        in: path
        required: true
        description: maintenance event id
        schema:
          type: integer
      responses:
        '200':
          description: success
        '404':
          description: maintenance tempalte not found
    delete:
      summary: Delete maintenance event
      tags:
      - Maintenance event
      parameters:
      - name: token
        in: query
        required: true
        schema:
          type: string
      - name: id
        in: path
        required: true
        description: maintenance event id
        schema:
          type: integer
      responses:
        '204':
          description: no content
        '404':
          description: not found
  "/api/v1/maintenance_templates":
    post:
      summary: Creates a Maintenance template
      tags:
      - Maintenance template
      parameters: []
      responses:
        '201':
          description: maintenance template created
        '422':
          description: '"maintenance type id cannot be blank"'
        '401':
          description: 'Error: Unauthorized'
      requestBody:
        content:
          application/json:
            schema:
              "$ref": "#/components/schemas/createMaintenanceTemplate"
        required: true
    get:
      summary: List all maintenance templates in your account
      tags:
      - Maintenance template
      parameters:
      - name: token
        in: query
        required: true
        schema:
          type: string
      - name: page
        in: query
        description: the default call is with page = 1
        schema:
          type: integer
      - name: meta
        in: query
        description: " show summarized data information - true/false"
        schema:
          type: string
      responses:
        '200':
          description: success
        '404':
          description: page not found
  "/api/v1/maintenance_templates/{id}":
    put:
      summary: Update maintenance template
      tags:
      - Maintenance template
      parameters:
      - name: id
        in: path
        required: true
        description: maintenance template id
        schema:
          type: integer
      responses:
        '200':
          description: maintenance template updated
        '422':
          description: maintenance type cannot be blank
        '401':
          description: 'Error: Unauthorized'
      requestBody:
        content:
          application/json:
            schema:
              "$ref": "#/components/schemas/updateMaintenanceTemplate"
        required: true
    get:
      summary: Get maintenance template by id
      tags:
      - Maintenance template
      parameters:
      - name: token
        in: query
        required: true
        schema:
          type: string
      - name: id
        in: path
        required: true
        description: maintenance template id
        schema:
          type: integer
      responses:
        '200':
          description: success
        '404':
          description: maintenance tempalte not found
    delete:
      summary: Delete maintenance template
      tags:
      - Maintenance template
      parameters:
      - name: token
        in: query
        required: true
        schema:
          type: string
      - name: id
        in: path
        required: true
        description: maintenance template id
        schema:
          type: integer
      responses:
        '204':
          description: no content
        '404':
          description: not found
  "/api/v1/maintenance_types":
    post:
      summary: Creates a Maintenance type
      tags:
      - Maintenance types
      parameters: []
      responses:
        '201':
          description: maintenance type created
        '422':
          description: invalid request - Name can't be blank
        '401':
          description: 'Error: Unauthorized'
      requestBody:
        content:
          application/json:
            schema:
              "$ref": "#/components/schemas/createMaintenanceType"
        required: true
    get:
      summary: List all maintenance types in your account
      tags:
      - Maintenance types
      parameters:
      - name: token
        in: query
        required: true
        schema:
          type: string
      - name: page
        in: query
        description: the default call is with page = 1
        schema:
          type: integer
      - name: meta
        in: query
        description: " show summarized data information - true/false"
        schema:
          type: string
      responses:
        '200':
          description: success
        '404':
          description: page not found
  "/api/v1/maintenance_types/{id}":
    put:
      summary: Update maintenance type
      tags:
      - Maintenance types
      parameters:
      - name: id
        in: path
        required: true
        description: maintenance type id
        schema:
          type: integer
      responses:
        '200':
          description: maintenance type updated
        '422':
          description: invalid request
        '401':
          description: 'Error: Unauthorized'
      requestBody:
        content:
          application/json:
            schema:
              "$ref": "#/components/schemas/updateMaintenanceType"
        required: true
    get:
      summary: Get maintenance type by id
      tags:
      - Maintenance types
      parameters:
      - name: token
        in: query
        required: true
        schema:
          type: string
      - name: id
        in: path
        required: true
        description: maintenance type id
        schema:
          type: integer
      responses:
        '200':
          description: success
        '404':
          description: maintenance type not found
    delete:
      summary: Delete maintenance type
      tags:
      - Maintenance types
      parameters:
      - name: token
        in: query
        required: true
        schema:
          type: string
      - name: id
        in: path
        required: true
        description: maintenance type id
        schema:
          type: integer
      responses:
        '204':
          description: no content
        '404':
          description: not found
  "/api/v1/maintenances":
    post:
      summary: Add maintenance to equipment
      tags:
      - Maintenances
      parameters: []
      responses:
        '201':
          description: maintenance created
        '401':
          description: invalid request
      requestBody:
        content:
          application/json:
            schema:
              "$ref": "#/components/schemas/createMaintenance"
        required: true
    get:
      summary: List all maintenances in your account
      tags:
      - Maintenances
      parameters:
      - name: token
        in: query
        required: true
        schema:
          type: string
      - name: page
        in: query
        description: the default call is with page = 1
        schema:
          type: integer
      - name: meta
        in: query
        description: " show summarized data information - true/false"
        schema:
          type: string
      responses:
        '200':
          description: success
        '404':
          description: page not found
  "/api/v1/maintenances/{id}":
    put:
      summary: Update maintenance of equipment
      tags:
      - Maintenances
      parameters:
      - name: id
        in: path
        required: true
        description: maintenance id
        schema:
          type: integer
      responses:
        '200':
          description: maintenance updated
        '401':
          description: 'Error: Unauthorized'
      requestBody:
        content:
          application/json:
            schema:
              "$ref": "#/components/schemas/updateMaintenance"
        required: true
    get:
      summary: Get maintenances by id
      tags:
      - Maintenances
      parameters:
      - name: token
        in: query
        required: true
        schema:
          type: string
      - name: id
        in: path
        required: true
        description: maintenance id
        schema:
          type: integer
      responses:
        '200':
          description: success
        '404':
          description: maintenance not found
    delete:
      summary: Delete maintenance
      tags:
      - Maintenances
      parameters:
      - name: token
        in: query
        required: true
        schema:
          type: string
      - name: id
        in: path
        required: true
        description: maintenance id
        schema:
          type: integer
      responses:
        '204':
          description: no content
        '404':
          description: not found
  "/api/v1/manifests":
    get:
      summary: List the objects that have changed today
      tags:
      - Manifest
      parameters:
      - name: token
        in: query
        required: true
        schema:
          type: string
      - name: page
        in: query
        description: the default call is with page = 1
        schema:
          type: integer
      responses:
        '200':
          description: success
        '404':
          description: page not found
  "/api/v1/manifests/{id}":
    delete:
      summary: Delete manifest
      tags:
      - Manifest
      parameters:
      - name: token
        in: query
        required: true
        schema:
          type: string
      - name: id
        in: path
        required: true
        description: manifest id
        schema:
          type: integer
      responses:
        '204':
          description: no content
        '404':
          description: not found
  "/api/v1/materials":
    post:
      summary: Add consumable
      tags:
      - Consumables
      parameters: []
      responses:
        '201':
          description: consumable created
        '422':
          description: name cannot be blank
        '401':
          description: 'Error: Unauthorized'
      requestBody:
        content:
          application/json:
            schema:
              "$ref": "#/components/schemas/createMaterial"
        required: true
    get:
      summary: List all consumables in your account
      tags:
      - Consumables
      parameters:
      - name: token
        in: query
        required: true
        schema:
          type: string
      - name: page
        in: query
        description: the default call is with page = 1
        schema:
          type: integer
      - name: meta
        in: query
        description: " show summarized data information - true/false"
        schema:
          type: string
      responses:
        '200':
          description: success
        '404':
          description: page not found
  "/api/v1/materials/{id}":
    put:
      summary: Update material attributes
      tags:
      - Consumables
      parameters:
      - name: id
        in: path
        required: true
        description: consumable id
        schema:
          type: integer
      responses:
        '201':
          description: consumable updated
        '422':
          description: invalid request
        '401':
          description: 'Error: Unauthorized'
      requestBody:
        content:
          application/json:
            schema:
              "$ref": "#/components/schemas/updateMaterial"
        required: true
    get:
      summary: Get consumable by id
      tags:
      - Consumables
      parameters:
      - name: token
        in: query
        required: true
        schema:
          type: string
      - name: id
        in: path
        required: true
        description: consumable id
        schema:
          type: integer
      responses:
        '200':
          description: success
        '404':
          description: note not found
    delete:
      summary: Delete material
      tags:
      - Consumables
      parameters:
      - name: token
        in: query
        required: true
        schema:
          type: string
      - name: id
        in: path
        required: true
        description: material id
        schema:
          type: integer
      responses:
        '204':
          description: no content
        '404':
          description: not found
  "/api/v1/measurements":
    post:
      summary: Add measurements
      tags:
      - Measurements
      description: |
        This endpoint allows the submission of measurement data from connected equipment to a specific experiment,

        It accepts a measurement value and populates it into a designated form input field.

        For more information and a detailed example of how to use the ‘Measurement’ endpoint, refer to our article on [How to capture data from instruments using the 'measurement' API endpoint](https://help.labguru.com/en/articles/10300263-how-to-capture-data-from-instruments-using-the-measurement-api-endpoint)
      parameters: []
      responses:
        '201':
          description: OK
        '401':
          description: Unauthorized
          content:
            application/json:
              schema:
                "$ref": "#/components/schemas/Unauthorized"
        '404':
          description: Not Found
          content:
            application/json:
              schema:
                "$ref": "#/components/schemas/NotFound"
      requestBody:
        content:
          application/json:
            schema:
              type: object
              required:
              - token
              properties:
                token:
                  type: string
                  example: YOUR TOKEN IS HERE
                input_name:
                  type: string
                  description: The name of the form input field where the value should
                    be positioned
                experiment_id:
                  type: integer
                  description: The ID of the experiment
                item:
                  type: object
                  required:
                  - measurement
                  - input_name
                  - experiment_id
                  properties:
                    measurement:
                      type: string
                      description: The measurement value received from the connected
                        equipment
        required: true
  "/api/v1/measurements/{id}":
    delete:
      summary: Delete measurement
      tags:
      - Measurements
      parameters:
      - name: token
        in: query
        required: true
        schema:
          type: string
      - name: id
        in: path
        required: true
        description: measurement id
        schema:
          type: integer
      responses:
        '204':
          description: no content
        '404':
          description: not found
  "/api/v1/admin/members":
    get:
      summary: List all members in the account
      tags:
      - Members
      parameters:
      - name: token
        in: query
        required: true
        schema:
          type: string
      - name: filter
        in: query
        description: The name/id of the user in the following format - {"name":"Labuser
          Biodata"} / {"id":11}
        schema:
          type: string
      responses:
        '200':
          description: success
        '404':
          description: page not found
  "/api/v1/milestones":
    post:
      summary: Add a folder
      tags:
      - Folders
      parameters: []
      responses:
        '201':
          description: folder created
        '422':
          description: project_id cannot be blank
        '401':
          description: 'Error: Unauthorized'
      requestBody:
        content:
          application/json:
            schema:
              "$ref": "#/components/schemas/createFolder"
        required: true
    get:
      summary: List all folders in your account
      tags:
      - Folders
      parameters:
      - name: token
        in: query
        required: true
        schema:
          type: string
      - name: period
        in: query
        example: current_milestones
        description: |-
          Filters milestones based on their status:
          - `last_milestones`: Retrieves completed milestones.
          - `current_milestones`: Retrieves milestones currently in progress.
          - `future_milestones`: Retrieves planned milestones.
        schema:
          type: string
      - name: project_id
        in: query
        description: The ID of the project for which milestones are being requested.
        schema:
          type: integer
      responses:
        '200':
          description: success
        '404':
          description: page not found
  "/api/v1/milestones/{id}":
    put:
      summary: Update folder attributes
      tags:
      - Folders
      parameters:
      - name: id
        in: path
        required: true
        description: The ID of the folder
        schema:
          type: integer
      responses:
        '200':
          description: folder updated
        '422':
          description: invalid request
        '401':
          description: 'Error: Unauthorized'
      requestBody:
        content:
          application/json:
            schema:
              "$ref": "#/components/schemas/updateFolder"
        required: true
    get:
      summary: Get folder by id
      tags:
      - Folders
      parameters:
      - name: token
        in: query
        required: true
        schema:
          type: string
      - name: id
        in: path
        required: true
        description: The ID of the folder
        schema:
          type: integer
      responses:
        '200':
          description: success
        '404':
          description: folder not found
    delete:
      summary: Delete folder
      tags:
      - Folders
      parameters:
      - name: token
        in: query
        required: true
        schema:
          type: string
      - name: id
        in: path
        required: true
        description: folder id
        schema:
          type: integer
      responses:
        '204':
          description: no content
        '404':
          description: not found
  "/api/v1/notes":
    post:
      summary: Add a note
      tags:
      - Notes
      parameters: []
      responses:
        '201':
          description: note created
        '422':
          description: Title cannot be blank
        '401':
          description: 'Error: Unauthorized'
      requestBody:
        content:
          application/json:
            schema:
              "$ref": "#/components/schemas/createNote"
        required: true
    get:
      summary: List all notes in your account
      tags:
      - Notes
      parameters:
      - name: token
        in: query
        required: true
        schema:
          type: string
      - name: page
        in: query
        description: the default call is with page = 1
        schema:
          type: integer
      - name: meta
        in: query
        description: " show summarized data information - true/false"
        schema:
          type: string
      responses:
        '200':
          description: success
        '404':
          description: page not found
  "/api/v1/notes/{id}":
    put:
      summary: Update notes attributes
      tags:
      - Notes
      parameters:
      - name: id
        in: path
        required: true
        description: note id
        schema:
          type: integer
      responses:
        '201':
          description: note updated
        '422':
          description: invalid request
        '401':
          description: 'Error: Unauthorized'
      requestBody:
        content:
          application/json:
            schema:
              "$ref": "#/components/schemas/updateNote"
        required: true
    get:
      summary: Get note by id
      tags:
      - Notes
      parameters:
      - name: token
        in: query
        required: true
        schema:
          type: string
      - name: id
        in: path
        required: true
        description: note id
        schema:
          type: integer
      responses:
        '200':
          description: success
        '404':
          description: note not found
    delete:
      summary: Delete note
      tags:
      - Notes
      parameters:
      - name: token
        in: query
        required: true
        schema:
          type: string
      - name: id
        in: path
        required: true
        description: note id
        schema:
          type: integer
      responses:
        '204':
          description: no content
        '404':
          description: not found
  "/api/v1/papers":
    post:
      summary: Add a paper
      tags:
      - Papers
      parameters: []
      responses:
        '201':
          description: paper created
        '422':
          description: Name can't be blank
      requestBody:
        content:
          application/json:
            schema:
              "$ref": "#/components/schemas/createPaper"
        required: true
    get:
      summary: List all papers in your account
      tags:
      - Papers
      parameters:
      - name: token
        in: query
        required: true
        schema:
          type: string
      - name: page
        in: query
        description: the default call is with page = 1
        schema:
          type: integer
      - name: meta
        in: query
        description: " show summarized data information - true/false"
        schema:
          type: string
      responses:
        '200':
          description: success
        '404':
          description: page not found
  "/api/v1/papers/{id}":
    put:
      summary: Update paper attributes
      tags:
      - Papers
      parameters:
      - name: id
        in: path
        required: true
        description: paper id
        schema:
          type: integer
      responses:
        '200':
          description: paper updated
        '422':
          description: 'Error: Unauthorized'
      requestBody:
        content:
          application/json:
            schema:
              "$ref": "#/components/schemas/updatePaper"
        required: true
    get:
      summary: Get paper by id
      tags:
      - Papers
      parameters:
      - name: token
        in: query
        required: true
        schema:
          type: string
      - name: id
        in: path
        required: true
        description: paper id
        schema:
          type: integer
      responses:
        '200':
          description: success
        '404':
          description: paper not found
    delete:
      summary: Delete paper
      tags:
      - Papers
      parameters:
      - name: token
        in: query
        required: true
        schema:
          type: string
      - name: id
        in: path
        required: true
        description: paper id
        schema:
          type: integer
      responses:
        '204':
          description: no content
        '404':
          description: not found
  "/api/v1/plants":
    post:
      summary: Create a plant
      tags:
      - Plants
      description: 'Create a plant.

        '
      parameters: []
      responses:
        '201':
          description: Created
        '422':
          description: Invalid request
        '401':
          description: 'Error: Unauthorized'
      requestBody:
        content:
          application/json:
            schema:
              "$ref": "#/components/schemas/createPlant"
        required: true
    get:
      summary: List all plants in your account
      tags:
      - Plants
      description: 'List all plants.

        '
      parameters:
      - name: token
        in: query
        required: true
        schema:
          type: string
      - name: page
        in: query
        description: The default call is with page = 1
        schema:
          type: integer
      - name: meta
        in: query
        description: Show summarized data information - true/false
        schema:
          type: string
      responses:
        '200':
          description: OK
        '404':
          description: Not found
        '401':
          description: 'Error: Unauthorized'
  "/api/v1/plants/{id}":
    put:
      summary: Update plant
      tags:
      - Plants
      description: 'Update plant.

        '
      parameters:
      - name: id
        in: path
        required: true
        description: The ID of the plant
        schema:
          type: integer
      responses:
        '200':
          description: OK
        '422':
          description: Invalid request
        '401':
          description: 'Error: Unauthorized'
      requestBody:
        content:
          application/json:
            schema:
              "$ref": "#/components/schemas/updatePlant"
        required: true
    get:
      summary: Get a plant by ID
      tags:
      - Plants
      description: 'Get plant by ID.

        '
      parameters:
      - name: token
        in: query
        required: true
        schema:
          type: string
      - name: id
        in: path
        required: true
        description: The ID of the plant
        schema:
          type: integer
      responses:
        '200':
          description: OK
        '404':
          description: Not found
        '401':
          description: 'Error: Unauthorized'
    delete:
      summary: Delete plant
      tags:
      - Plants
      parameters:
      - name: token
        in: query
        required: true
        schema:
          type: string
      - name: id
        in: path
        required: true
        description: plant id
        schema:
          type: integer
      responses:
        '204':
          description: no content
        '404':
          description: not found
  "/api/v1/plasmids":
    post:
      summary: Create a plasmid
      tags:
      - Plasmids
      description: 'Create a plasmid.

        '
      parameters: []
      responses:
        '201':
          description: Created
        '422':
          description: Invalid request
        '401':
          description: 'Error: Unauthorized'
      requestBody:
        content:
          application/json:
            schema:
              "$ref": "#/components/schemas/createPlasmid"
        required: true
    get:
      summary: List all plasmids in your account
      tags:
      - Plasmids
      description: 'List all plasmids.

        '
      parameters:
      - name: token
        in: query
        required: true
        schema:
          type: string
      - name: page
        in: query
        description: The default call is with page = 1
        schema:
          type: integer
      - name: meta
        in: query
        description: Show summarized data information - true/false
        schema:
          type: string
      responses:
        '200':
          description: OK
        '404':
          description: Not found
        '401':
          description: 'Error: Unauthorized'
  "/api/v1/plasmids/{id}":
    put:
      summary: Update a plasmid
      tags:
      - Plasmids
      description: 'Update plasmid.

        '
      parameters:
      - name: id
        in: path
        required: true
        description: The ID of the plasmid
        schema:
          type: integer
      responses:
        '200':
          description: plasmid updated
        '422':
          description: invalid request
        '401':
          description: 'Error: Unauthorized'
      requestBody:
        content:
          application/json:
            schema:
              "$ref": "#/components/schemas/updatePlasmid"
        required: true
    get:
      summary: Get plasmid by ID
      tags:
      - Plasmids
      description: 'Get plasmid by ID.

        '
      parameters:
      - name: token
        in: query
        required: true
        schema:
          type: string
      - name: id
        in: path
        required: true
        description: The ID of the plasmid
        schema:
          type: integer
      responses:
        '200':
          description: success
        '404':
          description: Not found
        '401':
          description: 'Error: Unauthorized'
    delete:
      summary: Delete plasmid
      tags:
      - Plasmids
      parameters:
      - name: token
        in: query
        required: true
        schema:
          type: string
      - name: id
        in: path
        required: true
        description: plasmid id
        schema:
          type: integer
      responses:
        '204':
          description: no content
        '404':
          description: not found
  "/api/v1/plates/{id}/duplicate":
    post:
      summary: Duplicate a master plate
      tags:
      - Plates
      parameters:
      - name: id
        in: path
        required: true
        description: plate id
        schema:
          type: integer
      responses:
        '200':
          description: plate duplicated
        '500':
          description: invalid request - Name can't be blank
        '401':
          description: 'Error: Unauthorized'
      requestBody:
        content:
          application/json:
            schema:
              type: object
              required:
              - token
              properties:
                names:
                  type: array
                  items:
                    type: string
                    example: Plate A
        required: true
  "/api/v1/plates/find_by_name":
    get:
      summary: Find a plate by name
      tags:
      - Plates
      parameters:
      - name: token
        in: query
        required: true
        schema:
          type: string
      - name: name
        in: query
        required: true
        description: plate name
        example: Plate A
        schema:
          type: string
      responses:
        '200':
          description: plate found
        '422':
          description: invalid request
        '401':
          description: 'Error: Unauthorized'
  "/api/v1/plates/{id}":
    get:
      summary: Get plate by id
      tags:
      - Plates
      parameters:
      - name: token
        in: query
        required: true
        schema:
          type: string
      - name: id
        in: path
        required: true
        description: plate id
        schema:
          type: integer
      responses:
        '200':
          description: success
        '404':
          description: page not found
    delete:
      summary: Delete plate
      tags:
      - Plates
      parameters:
      - name: token
        in: query
        required: true
        schema:
          type: string
      - name: id
        in: path
        required: true
        description: plate id
        schema:
          type: integer
      responses:
        '204':
          description: no content
        '404':
          description: not found
  "/api/v1/plates":
    get:
      summary: List all plates in your account
      tags:
      - Plates
      parameters:
      - name: token
        in: query
        required: true
        schema:
          type: string
      - name: page
        in: query
        description: the default call is with page = 1
        schema:
          type: integer
      - name: meta
        in: query
        description: " show summarized data information - true/false"
        schema:
          type: string
      responses:
        '200':
          description: success
        '404':
          description: page not found
  "/api/v1/primers":
    post:
      summary: Creates a primer
      tags:
      - Primers
      description: 'Create a primer.

        '
      parameters: []
      responses:
        '201':
          description: Created
        '422':
          description: invalid request
        '401':
          description: 'Error: Unauthorized'
      requestBody:
        content:
          application/json:
            schema:
              "$ref": "#/components/schemas/createPrimer"
        required: true
    get:
      summary: List all primers in your account
      tags:
      - Primers
      description: 'List all primers.

        '
      parameters:
      - name: token
        in: query
        required: true
        schema:
          type: string
      - name: page
        in: query
        description: The default call is with page = 1
        schema:
          type: integer
      - name: meta
        in: query
        description: Show summarized data information - true/false
        schema:
          type: string
      responses:
        '200':
          description: OK
        '404':
          description: Not found
        '401':
          description: 'Error: Unauthorized'
  "/api/v1/primers/{id}":
    put:
      summary: Update primer
      tags:
      - Primers
      description: 'Update a primer.

        '
      parameters:
      - name: id
        in: path
        required: true
        description: The ID of the primer
        schema:
          type: integer
      responses:
        '200':
          description: OK
        '422':
          description: invalid request
        '401':
          description: 'Error: Unauthorized'
      requestBody:
        content:
          application/json:
            schema:
              "$ref": "#/components/schemas/updatePrimer"
        required: true
    get:
      summary: Get primer by ID
      tags:
      - Primers
      description: 'Get primer by ID.

        '
      parameters:
      - name: token
        in: query
        required: true
        schema:
          type: string
      - name: id
        in: path
        required: true
        description: The ID of the primer
        schema:
          type: integer
      responses:
        '200':
          description: OK
        '404':
          description: Not found
        '401':
          description: 'Error: Unauthorized'
    delete:
      summary: Delete primer
      tags:
      - Primers
      parameters:
      - name: token
        in: query
        required: true
        schema:
          type: string
      - name: id
        in: path
        required: true
        description: primer id
        schema:
          type: integer
      responses:
        '204':
          description: no content
        '404':
          description: not found
  "/api/v1/projects":
    post:
      summary: Create a project
      tags:
      - Projects
      parameters: []
      responses:
        '201':
          description: project created
        '422':
          description: invalid request - Title can't be blank
        '401':
          description: 'Error: Unauthorized'
      requestBody:
        content:
          application/json:
            schema:
              "$ref": "#/components/schemas/createProject"
        required: true
    get:
      summary: List all projects in your account
      tags:
      - Projects
      parameters:
      - name: token
        in: query
        required: true
        schema:
          type: string
      - name: page
        in: query
        description: the default call is with page = 1
        schema:
          type: integer
      - name: meta
        in: query
        description: show summarized data information - true/false
        schema:
          type: string
      responses:
        '200':
          description: success
        '404':
          description: page not found
  "/api/v1/projects/{id}":
    put:
      summary: Update a project
      tags:
      - Projects
      parameters:
      - name: id
        in: path
        required: true
        description: project id
        schema:
          type: integer
      responses:
        '200':
          description: project updated
        '422':
          description: invalid request
        '401':
          description: 'Error: Unauthorized'
      requestBody:
        content:
          application/json:
            schema:
              "$ref": "#/components/schemas/updateProject"
        required: true
    get:
      summary: Get project by id
      tags:
      - Projects
      parameters:
      - name: token
        in: query
        required: true
        schema:
          type: string
      - name: id
        in: path
        required: true
        description: project id
        schema:
          type: integer
      responses:
        '200':
          description: success
        '404':
          description: project not found
  "/api/v1/proteins":
    post:
      summary: Create a protein
      tags:
      - Proteins
      description: 'Create a protein.

        '
      parameters: []
      responses:
        '201':
          description: Created
        '422':
          description: Invalid request
        '401':
          description: 'Error: Unauthorized'
      requestBody:
        content:
          application/json:
            schema:
              "$ref": "#/components/schemas/createProtein"
        required: true
    get:
      summary: List all proteins in your account
      tags:
      - Proteins
      description: 'List all proteins.

        '
      parameters:
      - name: token
        in: query
        required: true
        schema:
          type: string
      - name: page
        in: query
        description: the default call is with page = 1
        schema:
          type: integer
      - name: meta
        in: query
        description: show summarized data information - true/false
        schema:
          type: string
      responses:
        '200':
          description: OK
        '404':
          description: Not found
  "/api/v1/proteins/{id}":
    put:
      summary: Update protein attributes
      tags:
      - Proteins
      description: 'Update a protein.

        '
      parameters:
      - name: id
        in: path
        required: true
        description: The ID of the protein
        schema:
          type: integer
      responses:
        '200':
          description: OK
        '422':
          description: Invalid request
        '401':
          description: 'Error: Unauthorized'
      requestBody:
        content:
          application/json:
            schema:
              "$ref": "#/components/schemas/updateProtein"
        required: true
    get:
      summary: Get a protein by id
      tags:
      - Proteins
      description: 'Get a protein by ID.

        '
      parameters:
      - name: token
        in: query
        required: true
        schema:
          type: string
      - name: id
        in: path
        required: true
        description: The ID of the protein
        schema:
          type: integer
      responses:
        '200':
          description: OK
        '404':
          description: Not Found
    delete:
      summary: Delete protein
      tags:
      - Proteins
      parameters:
      - name: token
        in: query
        required: true
        schema:
          type: string
      - name: id
        in: path
        required: true
        description: protein id
        schema:
          type: integer
      responses:
        '204':
          description: no content
        '404':
          description: not found
  "/api/v1/protocols":
    post:
      summary: Creates a protocol
      tags:
      - Protocols
      parameters: []
      responses:
        '201':
          description: protocol created
        '422':
          description: unprocessable Entity - name cannot be blank
        '401':
          description: 'Error: Unauthorized'
      requestBody:
        content:
          application/json:
            schema:
              "$ref": "#/components/schemas/createProtocol"
        required: true
    get:
      summary: List all protocols in your account
      tags:
      - Protocols
      parameters:
      - name: token
        in: query
        required: true
        schema:
          type: string
      - name: page
        in: query
        description: the default call is with page = 1
        schema:
          type: integer
      - name: meta
        in: query
        description: show summarized data information - true/false
        schema:
          type: string
      responses:
        '200':
          description: success
        '404':
          description: page not found
  "/api/v1/protocols/{id}":
    put:
      summary: Update protocol
      tags:
      - Protocols
      parameters:
      - name: id
        in: path
        required: true
        description: protocol id
        schema:
          type: integer
      responses:
        '200':
          description: protocol updated
        '422':
          description: unprocessable Entity - name cannot be blank
        '401':
          description: 'Error: Unauthorized'
      requestBody:
        content:
          application/json:
            schema:
              "$ref": "#/components/schemas/updateProtocol"
        required: true
    get:
      summary: Get protocol by id
      tags:
      - Protocols
      parameters:
      - name: token
        in: query
        required: true
        schema:
          type: string
      - name: id
        in: path
        required: true
        description: protocol id
        schema:
          type: integer
      responses:
        '200':
          description: success
        '404':
          description: protocol not found
    delete:
      summary: Delete protocol
      tags:
      - Protocols
      parameters:
      - name: token
        in: query
        required: true
        schema:
          type: string
      - name: id
        in: path
        required: true
        description: protocol id
        schema:
          type: integer
      responses:
        '204':
          description: no content
        '404':
          description: not found
  "/api/v1/reports":
    post:
      summary: Add a report
      tags:
      - Reports
      parameters: []
      responses:
        '201':
          description: report created
        '422':
          description: invalid request - Title cannot be blank
        '401':
          description: 'Error: Unauthorized'
      requestBody:
        content:
          application/json:
            schema:
              "$ref": "#/components/schemas/createReport"
        required: true
    get:
      summary: List all reports in your account
      tags:
      - Reports
      parameters:
      - name: token
        in: query
        required: true
        schema:
          type: string
      - name: page
        in: query
        description: the default call is with page = 1
        schema:
          type: integer
      - name: meta
        in: query
        description: " show summarized data information - true/false"
        schema:
          type: string
      responses:
        '200':
          description: success
        '404':
          description: page not found
  "/api/v1/reports/add_section_to_report":
    post:
      summary: Add section to report
      tags:
      - Reports
      parameters: []
      responses:
        '201':
          description: Success! Sections copied to report.
        '500':
          description: Internal server error
        '401':
          description: 'Error: Unauthorized'
      requestBody:
        content:
          application/json:
            schema:
              "$ref": "#/components/schemas/addAnExperimentSectionToReport"
        required: true
  "/api/v1/reports/add_cover_to_report":
    post:
      summary: Add cover to report
      tags:
      - Reports
      parameters: []
      responses:
        '200':
          description: cover page created
        '401':
          description: 'Error: Unauthorized'
      requestBody:
        content:
          application/json:
            schema:
              "$ref": "#/components/schemas/addCoverToReport"
        required: true
  "/api/v1/reports/{id}":
    put:
      summary: Update reports attributes
      tags:
      - Reports
      parameters:
      - name: id
        in: path
        required: true
        description: report id
        schema:
          type: integer
      responses:
        '200':
          description: report updated
        '422':
          description: invalid request
        '401':
          description: 'Error: Unauthorized'
      requestBody:
        content:
          application/json:
            schema:
              "$ref": "#/components/schemas/updateReport"
        required: true
    get:
      summary: Get report by id
      tags:
      - Reports
      parameters:
      - name: token
        in: query
        required: true
        schema:
          type: string
      - name: id
        in: path
        required: true
        description: report id
        schema:
          type: integer
      responses:
        '200':
          description: success
        '404':
          description: report not found
    delete:
      summary: Delete report
      tags:
      - Reports
      parameters:
      - name: token
        in: query
        required: true
        schema:
          type: string
      - name: id
        in: path
        required: true
        description: report id
        schema:
          type: integer
      responses:
        '204':
          description: no content
        '404':
          description: not found
  "/api/v1/requests":
    post:
      summary: Create a request
      tags:
      - Requests
      description: |
        Create a new request based on a specific request template.

        The request will be opened in 'Draft' status.
      parameters: []
      responses:
        '201':
          description: Created
        '404':
          description: Not Found
          content:
            application/json:
              schema:
                type: object
                properties:
                  error:
                    type: string
                    example: Resource not found
        '401':
          description: Unauthorized
          content:
            application/json:
              schema:
                type: object
                properties:
                  message:
                    type: string
                    example: You are not authorized to perform this action.
      requestBody:
        content:
          application/json:
            schema:
              "$ref": "#/components/schemas/createRequest"
        required: true
    get:
      summary: List all requests in your account
      tags:
      - Requests
      description: 'List all requests in your account.

        '
      parameters:
      - name: token
        in: query
        required: true
        schema:
          type: string
      - name: page
        in: query
        default: 1
        description: The default call is with page = 1
        schema:
          type: integer
      - name: meta
        in: query
        default: true
        description: Show summarized data information - true/false
        schema:
          type: string
      responses:
        '200':
          description: OK
        '401':
          description: Unauthorized
          content:
            application/json:
              schema:
                type: object
                properties:
                  message:
                    type: string
                    example: You are not authorized to perform this action.
  "/api/v1/requests/{id}":
    put:
      summary: Update a request 
      tags:
      - Requests
      description: 'Update a request by its ID.

        '
      parameters:
      - name: id
        in: path
        required: true
        description: The request ID
        schema:
          type: integer
      responses:
        '200':
          description: ok
        '422':
          description: Unprocessable Entity
          content:
            application/json:
              schema:
                type: object
                properties:
                  error_message:
                    type: string
                    example: Team not found
        '400':
          description: Bad Request
          content:
            application/json:
              schema:
                type: array
                items:
                  type: string
                example:
                - Owner id does not exist
        '401':
          description: Unauthorized
          content:
            application/json:
              schema:
                type: object
                properties:
                  message:
                    type: string
                    example: You are not authorized to perform this action.
      requestBody:
        content:
          application/json:
            schema:
              "$ref": "#/components/schemas/updateRequest"
        required: true
    get:
      summary: Get request by id
      tags:
      - Requests
      description: 'Get a request by ID.

        '
      parameters:
      - name: token
        in: query
        required: true
        schema:
          type: string
      - name: id
        in: path
        required: true
        description: The request ID
        schema:
          type: integer
      responses:
        '200':
          description: OK
        '404':
          description: Not Found
          content:
            application/json:
              schema:
                type: object
                properties:
                  error:
                    type: string
                    example: Resource not found
        '401':
          description: Unauthorized
          content:
            application/json:
              schema:
                type: object
                properties:
                  message:
                    type: string
                    example: You are not authorized to perform this action.
    delete:
      summary: Delete request
      tags:
      - Requests
      parameters:
      - name: token
        in: query
        required: true
        schema:
          type: string
      - name: id
        in: path
        required: true
        description: request id
        schema:
          type: integer
      responses:
        '204':
          description: no content
        '404':
          description: not found
  "/api/v1/requests/{id}/submit":
    patch:
      summary: Submit a request 
      tags:
      - Requests
      description: |
        This end point allows authorized users to submit a request for approval from the requester’s team leader.

        Draft >> Pending

        - Authorized users: admins and request owner.
      parameters:
      - name: id
        in: path
        required: true
        description: The request ID
        schema:
          type: integer
      responses:
        '200':
          description: OK
        '400':
          description: Bad Request
          content:
            application/json:
              schema:
                type: array
                items:
                  type: string
                example:
                - Owner id does not exist
        '422':
          description: Unprocessable Entity
          content:
            application/json:
              schema:
                type: object
                properties:
                  error_message:
                    type: string
                    example: Team not found / Name can't be blank
        '401':
          description: Unauthorized
          content:
            application/json:
              schema:
                type: object
                properties:
                  message:
                    type: string
                    example: You are not authorized to perform this action.
      requestBody:
        content:
          application/json:
            schema:
              "$ref": "#/components/schemas/submitRequest"
        required: true
  "/api/v1/requests/{id}/approve":
    patch:
      summary: Approve a request 
      tags:
      - Requests
      description: |
        This end point allows authorized users to approve a request which was assigned to them,
        this will automatically move request to be reviewed by the performing team leader.

        Pending >> Approved

        - Authorized users: admins and assignee at the time.
      parameters:
      - name: id
        in: path
        required: true
        description: The request ID
        schema:
          type: integer
      responses:
        '200':
          description: OK
        '422':
          description: Unprocessable Entity
          content:
            application/json:
              schema:
                type: object
                properties:
                  error_message:
                    type: string
                    example: Team not found / Invalid action for request status
        '401':
          description: Unauthorized
          content:
            application/json:
              schema:
                type: object
                properties:
                  message:
                    type: string
                    example: You are not authorized to perform this action.
      requestBody:
        content:
          application/json:
            schema:
              "$ref": "#/components/schemas/approvedRequest"
        required: true
  "/api/v1/requests/{id}/accept":
    patch:
      summary: Accept a request 
      tags:
      - Requests
      description: |
        This end point allows authorized users to accept a request which was assigned to them, and will enable the assignment of a performer from the performing team.

        Approved >> Awaiting Assignment

        - Authorized users: admins and assignee at the time.
      parameters:
      - name: id
        in: path
        required: true
        description: The request ID
        schema:
          type: integer
      responses:
        '200':
          description: OK
        '422':
          description: Unprocessable Entity
          content:
            application/json:
              schema:
                type: object
                properties:
                  error_message:
                    type: string
                    example: Invalid action for request status
        '401':
          description: Unauthorized
          content:
            application/json:
              schema:
                type: object
                properties:
                  message:
                    type: string
                    example: You are not authorized to perform this action.
      requestBody:
        content:
          application/json:
            schema:
              "$ref": "#/components/schemas/acceptRequest"
        required: true
  "/api/v1/requests/{id}/select_performer":
    patch:
      summary: Select performer
      tags:
      - Requests
      description: |
        This end point allows authorized users to assign a performer from the performing team.

        Awaiting Assignment >> Assigned

        - Authorized users: admins and team leader of the performing team.
      parameters:
      - name: id
        in: path
        required: true
        description: The request ID
        schema:
          type: integer
      responses:
        '200':
          description: OK
        '422':
          description: Unprocessable Entity
          content:
            application/json:
              schema:
                type: object
                properties:
                  error_message:
                    type: string
                    example: Invalid action for request status
        '401':
          description: Unauthorized
          content:
            application/json:
              schema:
                type: object
                properties:
                  message:
                    type: string
                    example: You are not authorized to perform this action.
      requestBody:
        content:
          application/json:
            schema:
              "$ref": "#/components/schemas/selectPerformer"
        required: true
  "/api/v1/requests/{id}/start":
    patch:
      summary: Start a request 
      tags:
      - Requests
      description: |2
         This end point allows authorized users to update request status to 'In Progress'.

         Assigned >> In Progress

        - Authorized users: admins and the performer.
      parameters:
      - name: id
        in: path
        required: true
        description: The request ID
        schema:
          type: integer
      responses:
        '200':
          description: OK
        '422':
          description: Unprocessable Entity
          content:
            application/json:
              schema:
                type: object
                properties:
                  error_message:
                    type: string
                    example: Invalid action for request status
        '401':
          description: Unauthorized
          content:
            application/json:
              schema:
                type: object
                properties:
                  message:
                    type: string
                    example: You are not authorized to perform this action.
      requestBody:
        content:
          application/json:
            schema:
              "$ref": "#/components/schemas/startRequest"
        required: true
  "/api/v1/requests/{id}/done":
    patch:
      summary: Complete a request 
      tags:
      - Requests
      description: |2
          This end point allows authorized users to update request status to 'Completed'

          In Progress >> Completed

        - Authorized users: admins and the performer.
      parameters:
      - name: token
        in: query
        required: true
        schema:
          type: string
      - name: id
        in: path
        required: true
        description: The request ID
        schema:
          type: integer
      responses:
        '200':
          description: OK
        '422':
          description: Unprocessable Entity
          content:
            application/json:
              schema:
                type: object
                properties:
                  error_message:
                    type: string
                    example: Invalid action for request status
        '401':
          description: Unauthorized
          content:
            application/json:
              schema:
                type: object
                properties:
                  message:
                    type: string
                    example: You are not authorized to perform this action.
  "/api/v1/requests/{id}/reject":
    patch:
      summary: Reject a request 
      tags:
      - Requests
      description: |
        This end point allows authorized users to reject a request

        Request can be rejected from the following statuses:
          - Pending
          - Approved
          - Assigned


        Authorized users: admins and assignee at the time.
      parameters:
      - name: token
        in: query
        required: true
        schema:
          type: string
      - name: id
        in: path
        required: true
        description: The request ID
        schema:
          type: integer
      responses:
        '200':
          description: OK
        '401':
          description: Unauthorized
          content:
            application/json:
              schema:
                type: object
                properties:
                  message:
                    type: string
                    example: You are not authorized to perform this action.
  "/api/v1/request_templates":
    post:
      summary: Create a request template
      tags:
      - Request templates
      description: Create a request template.
      parameters: []
      responses:
        '201':
          description: Created
        '422':
          description: Unprocessable entity
          content:
            application/json:
              schema:
                type: object
                properties:
                  error_message:
                    type: string
                    example: Cannot create item
        '401':
          description: Unauthorized
          content:
            application/json:
              schema:
                type: object
                properties:
                  message:
                    type: string
                    example: You are not authorized to perform this action.
      requestBody:
        content:
          application/json:
            schema:
              "$ref": "#/components/schemas/createRequestTemplate"
        required: true
    get:
      summary: List all request templates in your account
      tags:
      - Request templates
      description: List all request templates in your account you have visibility
        permissions to.
      parameters:
      - name: token
        in: query
        required: true
        schema:
          type: string
      - name: page
        in: query
        default: 1
        description: The default call is with page = 1
        schema:
          type: integer
      - name: meta
        in: query
        default: true
        description: Show summarized data information
        schema:
          type: string
      responses:
        '200':
          description: OK
        '401':
          description: Unauthorized
          content:
            application/json:
              schema:
                type: object
                properties:
                  message:
                    type: string
                    example: You are not authorized to perform this action.
  "/api/v1/request_templates/{id}":
    put:
      summary: Update request template
      tags:
      - Request templates
      description: Update a request template you have editing permissions to.
      parameters:
      - name: id
        in: path
        required: true
        description: The request template ID
        schema:
          type: integer
      responses:
        '200':
          description: OK
        '422':
          description: Unprocessable entity
          content:
            application/json:
              schema:
                type: object
                properties:
                  error_message:
                    type: string
                    example: Name can't be blank
        '401':
          description: Unauthorized
          content:
            application/json:
              schema:
                type: object
                properties:
                  message:
                    type: string
                    example: You are not authorized to perform this action.
      requestBody:
        content:
          application/json:
            schema:
              "$ref": "#/components/schemas/updateRequestTemplate"
        required: true
    get:
      summary: Get request by id
      tags:
      - Request templates
      description: Get request template by ID that you have access to.
      parameters:
      - name: token
        in: query
        required: true
        schema:
          type: string
      - name: id
        in: path
        required: true
        description: The request template ID
        schema:
          type: integer
      responses:
        '200':
          description: OK
        '404':
          description: Not Found
          content:
            application/json:
              schema:
                type: object
                properties:
                  error_message:
                    type: string
                    example: Cannot find request template
        '401':
          description: Unauthorized
          content:
            application/json:
              schema:
                type: object
                properties:
                  message:
                    type: string
                    example: You are not authorized to perform this action.
    delete:
      summary: Delete request template
      tags:
      - Request templates
      parameters:
      - name: token
        in: query
        required: true
        schema:
          type: string
      - name: id
        in: path
        required: true
        description: request template id
        schema:
          type: integer
      responses:
        '204':
          description: no content
        '404':
          description: not found
  "/api/v1/rodent_cages":
    post:
      summary: Creates a rodent cage
      tags:
      - Rodent cages
      description: 'Create a rodent cage.

        '
      parameters: []
      responses:
        '200':
          description: OK
        '422':
          description: Unprocessable Entity
          content:
            application/json:
              schema:
                type: object
                properties:
                  error_message:
                    type: string
                    example: Name can't be blank
        '401':
          description: Unauthorized
          content:
            application/json:
              schema:
                "$ref": "#/components/schemas/Unauthorized"
      requestBody:
        content:
          application/json:
            schema:
              "$ref": "#/components/schemas/createRodentCage"
        required: true
    get:
      summary: List all rodent cages in your account
      tags:
      - Rodent cages
      deprecated: true
      description: |
        List all rodent cages.

        **Note:** An improved version of this endpoint is available in API v2.
        Please visit [API v2 docs](/api-docs/index.html?urls.primaryName=API%20V2%20Docs#/Rodent%20cages/get_api_v2_rodent_cages).
      parameters:
      - name: token
        in: query
        required: true
        schema:
          type: string
      - name: page
        in: query
        description: the default call is with page = 1
        schema:
          type: integer
      - name: meta
        in: query
        description: show summarized data information - true/false
        schema:
          type: string
      responses:
        '200':
          description: OK
        '404':
          description: Not Found
  "/api/v1/rodent_cages/{id}":
    put:
      summary: Update rodent cage attributes
      tags:
      - Rodent cages
      description: 'Update a rodent cage.

        '
      parameters:
      - name: id
        in: path
        required: true
        description: The ID of the rodent cage
        schema:
          type: integer
      responses:
        '200':
          description: OK
        '422':
          description: Unprocessable Entity
          content:
            application/json:
              schema:
                type: object
                properties:
                  error_message:
                    type: string
                    example: Name can't be blank
        '401':
          description: Unauthorized
          content:
            application/json:
              schema:
                "$ref": "#/components/schemas/Unauthorized"
      requestBody:
        content:
          application/json:
            schema:
              "$ref": "#/components/schemas/updateRodentCage"
        required: true
    get:
      summary: Get rodent cage by id
      tags:
      - Rodent cages
      parameters:
      - name: token
        in: query
        required: true
        schema:
          type: string
      - name: id
        in: path
        required: true
        description: The ID of the rodent cage
        schema:
          type: integer
      description: 'Get a rodent cage by ID.

        '
      responses:
        '200':
          description: OK
        '404':
          description: Not Found
    delete:
      summary: Delete rodent cage
      tags:
      - Rodent cages
      parameters:
      - name: token
        in: query
        required: true
        schema:
          type: string
      - name: id
        in: path
        required: true
        description: rodent cage id
        schema:
          type: integer
      responses:
        '204':
          description: no content
        '404':
          description: not found
  "/api/v1/rodent_specimens":
    post:
      summary: Creates a rodent specimen
      tags:
      - Rodent Specimens
      parameters: []
      responses:
        '201':
          description: rodent specimen created
        '422':
          description: invalid request - Status can't be blank
        '401':
          description: 'Error: Unauthorized'
      requestBody:
        content:
          application/json:
            schema:
              "$ref": "#/components/schemas/createRodentSpecimen"
        required: true
    get:
      summary: List all Rodent Specimens in your account
      tags:
      - Rodent Specimens
      parameters:
      - name: token
        in: query
        required: true
        schema:
          type: string
      - name: page
        in: query
        description: the default call is with page = 1
        schema:
          type: integer
      - name: meta
        in: query
        description: " show summarized data information - true/false"
        schema:
          type: string
      responses:
        '200':
          description: success
        '404':
          description: page not found
  "/api/v1/rodent_specimens/{id}":
    put:
      summary: Update rodent specimen attributes
      tags:
      - Rodent Specimens
      parameters:
      - name: id
        in: path
        required: true
        description: rodent specimen id
        schema:
          type: integer
      responses:
        '200':
          description: rodent specimen updated
        '422':
          description: invalid request
        '401':
          description: 'Error: Unauthorized'
      requestBody:
        content:
          application/json:
            schema:
              "$ref": "#/components/schemas/updateRodentSpecimen"
        required: true
    get:
      summary: Get rodent specimen by id
      tags:
      - Rodent Specimens
      parameters:
      - name: token
        in: query
        required: true
        schema:
          type: string
      - name: id
        in: path
        required: true
        description: rodent specimen id
        schema:
          type: integer
      responses:
        '200':
          description: success
        '404':
          description: rodent specimen not found
    delete:
      summary: Delete rodent specimen
      tags:
      - Rodent Specimens
      parameters:
      - name: token
        in: query
        required: true
        schema:
          type: string
      - name: id
        in: path
        required: true
        description: rodent specimen id
        schema:
          type: integer
      responses:
        '204':
          description: no content
        '404':
          description: not found
  "/api/v1/rodent_strains":
    post:
      summary: Creates a rodent strain
      tags:
      - Rodent Strains
      parameters: []
      responses:
        '201':
          description: rodent strain created
        '422':
          description: invalid request - Name can't be blank
        '401':
          description: 'Error: Unauthorized'
      requestBody:
        content:
          application/json:
            schema:
              "$ref": "#/components/schemas/createRodentStrain"
        required: true
    get:
      summary: List all rodent strains in your account
      tags:
      - Rodent Strains
      parameters:
      - name: token
        in: query
        required: true
        schema:
          type: string
      - name: page
        in: query
        description: the default call is with page = 1
        schema:
          type: integer
      - name: meta
        in: query
        description: " show summarized data information - true/false"
        schema:
          type: string
      responses:
        '200':
          description: success
        '404':
          description: page not found
  "/api/v1/rodent_strains/{id}":
    put:
      summary: Update rodent strain attributes
      tags:
      - Rodent Strains
      parameters:
      - name: id
        in: path
        required: true
        description: rodent strain id
        schema:
          type: integer
      responses:
        '200':
          description: rodent strain updated
        '422':
          description: invalid request
        '401':
          description: 'Error: Unauthorized'
      requestBody:
        content:
          application/json:
            schema:
              "$ref": "#/components/schemas/updateRodentStrain"
        required: true
    get:
      summary: Get rodent strain by id
      tags:
      - Rodent Strains
      parameters:
      - name: token
        in: query
        required: true
        schema:
          type: string
      - name: id
        in: path
        required: true
        description: rodent strain id
        schema:
          type: integer
      responses:
        '200':
          description: success
        '404':
          description: rodent strain not found
    delete:
      summary: Delete rodent strain
      tags:
      - Rodent Strains
      parameters:
      - name: token
        in: query
        required: true
        schema:
          type: string
      - name: id
        in: path
        required: true
        description: rodent strain id
        schema:
          type: integer
      responses:
        '204':
          description: no content
        '404':
          description: not found
  "/api/v1/pool_events":
    post:
      summary: Creates a pool event
      tags:
      - Sample Pooling
      description: |
        This endpoint facilitates the creation of pool events and allows for the aggregation of stocks based on selected logic.

        It supports three methods for pooling:
        1. **Fixed Amount Pooling**: Using the `createFixedSamplePoolingEvent` schema, which draws a fixed amount from all listed stocks.

        2. **Custom Amount Pooling**: Using the `createCustomSamplePoolingEvent` schema, which allows for drawing custom amounts from each stock.
        3. **Total Consumption Pooling**: Using the `createCustomSamplePoolingEvent` schema, which draws and consumes the entire amount from each stock.

        Ensure the request body matches the structure defined in the referenced schemas for successful operation.
      parameters: []
      responses:
        '200':
          description: OK
          content:
            application/json:
              schema:
                type: object
                description: Returns detailed information about the updated pool event.
                properties:
                  id:
                    type: integer
                    example: 7
                    description: The ID of the pool event
                  name:
                    type: string
                    description: The description of pool purpose
                  unit_type:
                    type: string
                    example: volume
                  pool_type:
                    type: string
                    example: fixed
                  unit:
                    type: string
                  initial_amount:
                    type: string
                    example: '2.0'
                  member_id:
                    type: integer
                    description: The initiator of the pool action
                  stock_id:
                    type: integer
                    description: The pooled stock ID
                  stock_name:
                    type: string
                    description: The pooled stock name
                  stock_url:
                    type: string
                    example: "/storage/stocks/620"
        '422':
          description: Unprocessable entity
          content:
            application/json:
              schema:
                type: object
                description: |-
                  Returns when there are validation errors with the input data.
                          Errors include missing stock IDs or duplicate names.
                properties:
                  error:
                    type: string
                    example: 'The following stocks weren''t found: [1291, 1293]]'
        '401':
          description: Unauthorized
          content:
            application/json:
              schema:
                type: object
                properties:
                  message:
                    type: string
                    example: You are not authorized to perform this action.
        '404':
          description: Not Found
          content:
            application/json:
              schema:
                type: object
                properties:
                  error:
                    type: string
                    example: Resource not found
      requestBody:
        content:
          application/json:
            schema:
              oneOf:
              - "$ref": "#/components/schemas/createFixedSamplePoolingEvent"
              - "$ref": "#/components/schemas/createCustomSamplePoolingEvent"
              - "$ref": "#/components/schemas/createConsumeSamplePoolingEvent"
  "/api/v1/searches/global_search":
    get:
      summary: Get search results
      tags:
      - Search
      parameters:
      - name: token
        in: query
        required: true
        schema:
          type: string
      - name: size
        in: query
        description: 'number of results per page example: 20'
        required: true
        schema:
          type: integer
      - name: term
        in: query
        description: 'search term, example: ant'
        required: true
        schema:
          type: string
      - name: model
        in: query
        description: 'filter by model name, example: Antibody'
        schema:
          type: string
      - name: page
        in: query
        description: the default call is with page = 1
        schema:
          type: integer
      - name: meta
        in: query
        description: show summarized data information - true/false
        schema:
          type: string
      responses:
        '200':
          description: success
        '404':
          description: page not found
  "/api/v1/sections":
    post:
      summary: Add a section
      tags:
      - Sections
      parameters: []
      responses:
        '201':
          description: section created
        '422':
          description: container_type cannot be blank
        '401':
          description: 'Error: Unauthorized'
      requestBody:
        content:
          application/json:
            schema:
              "$ref": "#/components/schemas/createSection"
        required: true
  "/api/v1/sections/sort":
    post:
      summary: Sort sections
      tags:
      - Sections
      description: Change the arrangement of sections on a Labguru page
      parameters: []
      responses:
        '201':
          description: section moved
        '422':
          description: container_type cannot be blank
        '401':
          description: 'Error: Unauthorized'
      requestBody:
        content:
          application/json:
            schema:
              "$ref": "#/components/schemas/moveSection"
        required: true
  "/api/v1/sections/{id}":
    put:
      summary: Update section
      tags:
      - Sections
      parameters:
      - name: id
        in: path
        required: true
        description: The ID of the section
        schema:
          type: integer
      responses:
        '200':
          description: section updated
        '422':
          description: container_id cannot be blank
        '401':
          description: 'Error: Unauthorized'
      requestBody:
        content:
          application/json:
            schema:
              "$ref": "#/components/schemas/updateSection"
        required: true
    get:
      summary: Get section by id
      tags:
      - Sections
      parameters:
      - name: token
        in: query
        required: true
        schema:
          type: string
      - name: id
        in: path
        required: true
        description: The ID of the section
        schema:
          type: integer
      responses:
        '200':
          description: success
        '404':
          description: page not found
    delete:
      summary: Delete section
      tags:
      - Sections
      parameters:
      - name: token
        in: query
        required: true
        schema:
          type: string
      - name: id
        in: path
        required: true
        description: section id
        schema:
          type: integer
      responses:
        '204':
          description: no content
        '404':
          description: not found
  "/api/v1/seeds":
    post:
      summary: Creates a seed
      tags:
      - Seeds
      description: 'Create a seed.

        '
      parameters: []
      responses:
        '201':
          description: Created
        '422':
          description: Invalid request
        '401':
          description: 'Error: Unauthorized'
      requestBody:
        content:
          application/json:
            schema:
              "$ref": "#/components/schemas/createSeed"
        required: true
    get:
      summary: List all seeds in your account
      tags:
      - Seeds
      description: 'List all seeds.

        '
      parameters:
      - name: token
        in: query
        required: true
        schema:
          type: string
      - name: page
        in: query
        description: the default call is with page = 1
        schema:
          type: integer
      - name: meta
        in: query
        description: show summarized data information - true/false
        schema:
          type: string
      responses:
        '200':
          description: OK
        '404':
          description: Not found
  "/api/v1/seeds/{id}":
    put:
      summary: Update a seed
      tags:
      - Seeds
      description: 'Update a seed.

        '
      parameters:
      - name: id
        in: path
        required: true
        description: The ID of the seed
        schema:
          type: integer
      responses:
        '200':
          description: OK
        '422':
          description: Invalid request
        '401':
          description: 'Error: Unauthorized'
      requestBody:
        content:
          application/json:
            schema:
              "$ref": "#/components/schemas/updateSeed"
        required: true
    get:
      summary: Get seed by id
      tags:
      - Seeds
      description: 'Get a seed by ID.

        '
      parameters:
      - name: token
        in: query
        required: true
        schema:
          type: string
      - name: id
        in: path
        required: true
        description: The ID of the seed
        schema:
          type: integer
      responses:
        '200':
          description: OK
        '404':
          description: Not Found
    delete:
      summary: Delete seed
      tags:
      - Seeds
      parameters:
      - name: token
        in: query
        required: true
        schema:
          type: string
      - name: id
        in: path
        required: true
        description: seed id
        schema:
          type: integer
      responses:
        '204':
          description: no content
        '404':
          description: not found
  "/api/v1/sequences":
    post:
      summary: Creates a sequence
      tags:
      - Sequences
      description: 'Create a sequence.

        '
      parameters: []
      responses:
        '201':
          description: Created
        '422':
          description: Invalid request
        '401':
          description: 'Error: Unauthorized'
      requestBody:
        content:
          application/json:
            schema:
              "$ref": "#/components/schemas/createSequence"
        required: true
    get:
      summary: List all sequences in your account
      tags:
      - Sequences
      description: 'List all sequences.

        '
      parameters:
      - name: token
        in: query
        required: true
        schema:
          type: string
      - name: page
        in: query
        description: the default call is with page = 1
        schema:
          type: integer
      - name: meta
        in: query
        description: " show summarized data information - true/false"
        schema:
          type: string
      responses:
        '200':
          description: OK
        '404':
          description: Not found
  "/api/v1/sequences/{id}":
    put:
      summary: 'Update a sequence '
      tags:
      - Sequences
      description: 'Update a sequence.

        '
      parameters:
      - name: id
        in: path
        required: true
        description: The ID of the sequence
        schema:
          type: integer
      responses:
        '200':
          description: OK
        '422':
          description: Invalid request
        '401':
          description: 'Error: Unauthorized'
      requestBody:
        content:
          application/json:
            schema:
              "$ref": "#/components/schemas/updateSequence"
        required: true
    get:
      summary: Get sequence by id
      tags:
      - Sequences
      description: 'Get sequence by ID.

        '
      parameters:
      - name: token
        in: query
        required: true
        schema:
          type: string
      - name: id
        in: path
        required: true
        description: The ID of the sequence
        schema:
          type: integer
      responses:
        '200':
          description: OK
        '404':
          description: Not Found
    delete:
      summary: Delete sequence
      tags:
      - Sequences
      parameters:
      - name: token
        in: query
        required: true
        schema:
          type: string
      - name: id
        in: path
        required: true
        description: sequence id
        schema:
          type: integer
      responses:
        '204':
          description: no content
        '404':
          description: not found
  "/api/v1/shopping_list/add_item":
    post:
      summary: Add item
      tags:
      - Shopping list
      description: |
        This endpoint allows for adding standard or custom commercial items to the shopping list. It supports two types of item additions:
        1. **Standard Item Addition**: Using the `addItem` schema for predefined commercial item types.

        2. **Custom Item Addition**: Using the `addCustomItem` schema for user-defined commercial items and collections.

        Ensure the request body matches the structure defined in the referenced schemas for successful operation.
      parameters: []
      responses:
        '200':
          description: OK
          content:
            application/json:
              schema:
                type: object
                properties:
                  success:
                    type: boolean
                    description: Indicates whether the operation was successful.
                    example: true
                  payload:
                    type: string
                    description: A message detailing the outcome of the operation.
                    example: Your order was successfully submitted.
                  lineitem_id:
                    type: integer
                    description: The ID of the order.
                    example: 76
                  item:
                    type: object
                    description: Detailed information about the item, returned as
                      a JSON object.
        '422':
          description: invalid request
          content:
            application/json:
              schema:
                type: object
                properties:
                  errors:
                    type: string
                    example: Collection Item can not be found
        '401':
          description: 'Error: Unauthorized'
          content:
            application/json:
              schema:
                "$ref": "#/components/schemas/Unauthorized"
      requestBody:
        content:
          application/json:
            schema:
              oneOf:
              - "$ref": "#/components/schemas/addItem"
              - "$ref": "#/components/schemas/addCustomItem"
        required: true
  "/api/v1/shopping_list/{id}/approve":
    put:
      summary: Approve order
      tags:
      - Shopping list
      parameters:
      - name: token
        in: query
        required: true
        schema:
          type: string
      - name: id
        in: path
        required: true
        description: The ID of the shopping list item to approve
        schema:
          type: integer
      responses:
        '201':
          description: order approved
        '401':
          description: 'Error: Unauthorized'
  "/api/v1/shopping_list/{id}/cancel":
    put:
      summary: Cancel order
      tags:
      - Shopping list
      parameters:
      - name: token
        in: query
        required: true
        schema:
          type: string
      - name: id
        in: path
        required: true
        description: The ID of the shopping list item to cancel
        schema:
          type: integer
      responses:
        '200':
          description: order canceled
        '401':
          description: 'Error: Unauthorized'
  "/api/v1/shopping_list/{id}/submit":
    put:
      summary: Submit order
      tags:
      - Shopping list
      parameters:
      - name: token
        in: query
        required: true
        schema:
          type: string
      - name: id
        in: path
        required: true
        description: The ID of the shopping list item to submit
        schema:
          type: integer
      responses:
        '200':
          description: order submited
        '401':
          description: 'Error: Unauthorized'
  "/api/v1/shopping_list/{id}":
    put:
      summary: Update order
      tags:
      - Shopping list
      parameters:
      - name: token
        in: query
        required: true
        schema:
          type: string
      - name: id
        in: path
        required: true
        description: The ID of the shopping list item to update
        schema:
          type: integer
      responses:
        '200':
          description: order updated
        '422':
          description: invalid request - quantity cannot be blank
        '401':
          description: 'Error: Unauthorized'
      requestBody:
        content:
          application/json:
            schema:
              "$ref": "#/components/schemas/updateOrder"
        required: true
    get:
      summary: Get order by id
      tags:
      - Shopping list
      parameters:
      - name: token
        in: query
        required: true
        schema:
          type: string
      - name: id
        in: path
        required: true
        description: order id
        schema:
          type: integer
      responses:
        '200':
          description: success
        '404':
          description: order not found
    delete:
      summary: Delete shopping list item
      tags:
      - Shopping list
      parameters:
      - name: token
        in: query
        required: true
        schema:
          type: string
      - name: id
        in: path
        required: true
        description: shopping list item id
        schema:
          type: integer
      responses:
        '204':
          description: no content
        '404':
          description: not found
  "/api/v1/shopping_list":
    get:
      summary: List all orders in your account
      tags:
      - Shopping list
      parameters:
      - name: token
        in: query
        required: true
        schema:
          type: string
      - name: page
        in: query
        description: the default call is with page = 1
        schema:
          type: integer
      - name: meta
        in: query
        description: " show summarized data information - true/false"
        schema:
          type: string
      responses:
        '200':
          description: success
        '404':
          description: page not found
  "/api/v1/sops":
    post:
      summary: Creates a SOP
      tags:
      - SOPs
      parameters: []
      responses:
        '201':
          description: SOP created
        '422':
          description: invalid request - Name can't be blank
        '401':
          description: 'Error: Unauthorized'
      requestBody:
        content:
          application/json:
            schema:
              "$ref": "#/components/schemas/createSOP"
        required: true
    get:
      summary: List all SOPs in your account
      tags:
      - SOPs
      parameters:
      - name: token
        in: query
        required: true
        schema:
          type: string
      - name: page
        in: query
        description: the default call is with page = 1
        schema:
          type: integer
      - name: meta
        in: query
        description: " show summarized data information - true/false"
        schema:
          type: string
      responses:
        '200':
          description: success
        '404':
          description: page not found
  "/api/v1/sops/{id}":
    put:
      summary: Update SOP
      tags:
      - SOPs
      parameters:
      - name: id
        in: path
        required: true
        description: SOPs id
        schema:
          type: integer
      responses:
        '200':
          description: SOP updated
        '422':
          description: invalid request
        '401':
          description: 'Error: Unauthorized'
      requestBody:
        content:
          application/json:
            schema:
              "$ref": "#/components/schemas/updateSOP"
        required: true
    get:
      summary: Get SOP by id
      tags:
      - SOPs
      parameters:
      - name: token
        in: query
        required: true
        schema:
          type: string
      - name: id
        in: path
        required: true
        description: SOP id
        schema:
          type: integer
      responses:
        '200':
          description: success
        '404':
          description: SOP not found
    delete:
      summary: Delete SOP
      tags:
      - SOPs
      parameters:
      - name: token
        in: query
        required: true
        schema:
          type: string
      - name: id
        in: path
        required: true
        description: SOP id
        schema:
          type: integer
      responses:
        '204':
          description: no content
        '404':
          description: not found
  "/api/v1/stocks":
    post:
      summary: Add stock
      tags:
      - Stocks
      parameters: []
      responses:
        '201':
          description: stock created
        '422':
          description: invalid request - Name cannot be blank
        '401':
          description: 'Error: Unauthorized'
      requestBody:
        content:
          application/json:
            schema:
              "$ref": "#/components/schemas/createStock"
        required: true
    get:
      summary: List all stocks in your account
      tags:
      - Stocks
      parameters:
      - name: token
        in: query
        required: true
        schema:
          type: string
      - name: page
        in: query
        description: the default call is with page = 1
        schema:
          type: integer
      - name: meta
        in: query
        description: show summarized data information - true/false
        schema:
          type: string
          default: 'true'
      - name: stockable_type
        in: query
        description: inventory item type(In order to list all stocks of a stockable
          item)
        example: Biocollections::Tissue
        schema:
          type: string
      - name: stockable_id
        in: query
        description: inventory item id (In order to list all stocks of a stockable
          item)
        example: 105
        schema:
          type: integer
      - name: filter
        in: query
        description: |
          **Implementation of the filter necessitates the utilization of all three components: field name, operator, and value**

          **Valid field names are:**

          <table style="border-collapse: collapse; width: 100%;">
            <tr>
              <td style="border: none; padding-right: 15px;">
                <ul>
                  <li>name</li>
                  <li>id</li>
                  <li>volume_to_display</li>
                  <li>weight_to_display</li>
                  <li>storage_location</li>
                  <li>created_at</li>
                  <li>owner_id</li>
                  <li>description</li>
                  <li>stored_on</li>
                  <li>stored_by</li>
                </ul>
              </td>
              <td style="border: none;">
                <ul>
                  <li>privacy</li>
                  <li>container_type</li>
                  <li>units</li>
                  <li>lot</li>
                  <li>expiration_date</li>
                  <li>aliquoted_by</li>
                  <li>aliquoted_on</li>
                  <li>content</li>
                  <li>barcode</li>
                  <li>concentration_to_display</li>
                </ul>
              </td>
            </tr>
          </table>

          **Valid operators are:**
          <table style="border-collapse: collapse; width: 100%;">
            <tr>
              <td style="border: none; padding-right: 15px;">
                <strong style="font-size: 90%;">String operators</strong>
                <ul>
                  <li>contains: contains</li>
                  <li>eq: is equal to</li>
                  <li>neq: is not equal to</li>
                  <li>doesnotcontain: not contains</li>
                  <li>startswith: starts with</li>
                  <li>endswith: ends with</li>
                  <li>isnullorempty: is empty</li>
                  <li>isnotnullorempty: is not empty</li>
                </ul>
              </td>
              <td style="border: none;">
                <strong style="font-size: 90%;">Date & Number operators</strong>
                <ul>
                  <li>_eq: is equal to</li>
                  <li>_neq: is not equal to</li>
                  <li>_gte: is after than or equal to</li>
                  <li>_gt: is after than</li>
                  <li>_lte: is before than or equal to</li>
                  <li>_lt: is before than</li>
                  <li>isnull: is empty</li>
                  <li>isnotnull: is not empty</li>
                </ul>
              </td>
            </tr>
          </table>




          **Value:** The desired search term
        schema:
          "$ref": "#/components/schemas/indexFiltering"
      responses:
        '200':
          description: OK
        '401':
          description: Unauthorized
          content:
            application/json:
              schema:
                "$ref": "#/components/schemas/Unauthorized"
  "/api/v1/stocks/{id}/mark_as_consumed":
    post:
      summary: Marks stock as consumed
      tags:
      - Stocks
      parameters:
      - name: id
        in: path
        required: true
        description: stock id
        schema:
          type: integer
      - name: token
        in: query
        required: true
        schema:
          type: string
      responses:
        '200':
          description: stock marked as consumed
        '401':
          description: 'Error: Unauthorized'
  "/api/v1/stocks/{id}/mark_as_output":
    post:
      summary: Marks stock as output
      tags:
      - Stocks
      parameters:
      - name: id
        in: path
        required: true
        description: stock id
        schema:
          type: integer
      - name: token
        in: query
        required: true
        schema:
          type: string
      responses:
        '200':
          description: stock marked as output
        '401':
          description: 'Error: Unauthorized'
      requestBody:
        content:
          application/json:
            schema:
              type: object
              required:
              - token
              properties:
                exp_id:
                  type: integer
                  description: the experiment id
                  example: 103
        required: true
  "/api/v1/stocks/{id}/unmark_output":
    post:
      summary: Unmarks stock as output
      tags:
      - Stocks
      parameters:
      - name: id
        in: path
        required: true
        description: stock id
        schema:
          type: integer
      - name: token
        in: query
        required: true
        schema:
          type: string
      responses:
        '200':
          description: stock unmarked as output
        '401':
          description: 'Error: Unauthorized'
      requestBody:
        content:
          application/json:
            schema:
              type: object
              required:
              - token
              properties:
                exp_id:
                  type: integer
                  description: the experiment id
                  example: 103
        required: true
  "/api/v1/stocks/{id}/update_stock_amount":
    post:
      summary: Update stock weight/volume for stock in sample element
      tags:
      - Stocks
      parameters:
      - name: token
        in: query
        required: true
        schema:
          type: string
      - name: id
        in: path
        required: true
        description: stock id
        schema:
          type: integer
      responses:
        '200':
          description: stock amount updated
        '401':
          description: 'Error: Unauthorized'
      requestBody:
        content:
          application/json:
            schema:
              "$ref": "#/components/schemas/updateStockAmountInSampleElement"
        required: true
  "/api/v1/stocks/{id}":
    put:
      summary: Update stock attributes
      tags:
      - Stocks
      parameters:
      - name: id
        in: path
        required: true
        description: stock id
        schema:
          type: integer
      responses:
        '200':
          description: stock updated
        '422':
          description: invalid request - Name cannot be blank
        '401':
          description: 'Error: Unauthorized'
      requestBody:
        content:
          application/json:
            schema:
              "$ref": "#/components/schemas/updateStock"
        required: true
    get:
      summary: Get stock by id
      tags:
      - Stocks
      parameters:
      - name: token
        in: query
        required: true
        schema:
          type: string
      - name: id
        in: path
        required: true
        description: stock id
        schema:
          type: integer
      responses:
        '200':
          description: success
        '404':
          description: stock not found
    delete:
      summary: Delete stock
      tags:
      - Stocks
      parameters:
      - name: token
        in: query
        required: true
        schema:
          type: string
      - name: id
        in: path
        required: true
        description: stock id
        schema:
          type: integer
      responses:
        '204':
          description: no content
        '404':
          description: not found
  "/api/v1/stocks/get_stocks_by_barcode":
    get:
      summary: Get stock by barcode/id
      tags:
      - Stocks
      parameters:
      - name: token
        in: query
        required: true
        schema:
          type: string
      - name: input
        in: query
        required: true
        description: 'Stock’s Barcode or Id '
        example: AB-588
        schema:
          type: string
      responses:
        '200':
          description: OK
          content:
            application/json:
              schema:
                "$ref": "#/components/schemas/OK"
        '401':
          description: Unauthorized
          content:
            application/json:
              schema:
                "$ref": "#/components/schemas/Unauthorized"
  "/api/v1/storages":
    post:
      summary: Add a storage
      tags:
      - Storages
      parameters: []
      responses:
        '201':
          description: storage created
        '422':
          description: invalid request - Name can't be blank
        '401':
          description: 'Error: Unauthorized'
      requestBody:
        content:
          application/json:
            schema:
              "$ref": "#/components/schemas/createStorage"
        required: true
    get:
      summary: List all storages in your account
      tags:
      - Storages
      parameters:
      - name: token
        in: query
        required: true
        schema:
          type: string
      - name: page
        in: query
        description: the default call is with page = 1
        schema:
          type: integer
      - name: meta
        in: query
        description: " show summarized data information - true/false"
        schema:
          type: string
      responses:
        '200':
          description: success
        '404':
          description: page not found
  "/api/v1/storages/{id}":
    put:
      summary: Update storage attributes
      tags:
      - Storages
      parameters:
      - name: id
        in: path
        required: true
        description: storage id
        schema:
          type: integer
      responses:
        '200':
          description: storage updated
        '422':
          description: invalid request
        '401':
          description: 'Error: Unauthorized'
      requestBody:
        content:
          application/json:
            schema:
              "$ref": "#/components/schemas/updateStorage"
        required: true
    get:
      summary: Get storage by id
      tags:
      - Storages
      parameters:
      - name: token
        in: query
        required: true
        schema:
          type: string
      - name: id
        in: path
        required: true
        description: storage id
        schema:
          type: integer
      responses:
        '200':
          description: success
        '404':
          description: page not found
    delete:
      summary: Delete storage
      tags:
      - Storages
      parameters:
      - name: token
        in: query
        required: true
        schema:
          type: string
      - name: id
        in: path
        required: true
        description: storage id
        schema:
          type: integer
      responses:
        '201':
          description: storage deleted
        '404':
          description: page not found
  "/api/v1/{biocollection_name}":
    post:
      summary: Add parent to an item
      tags:
      - Submodules
      parameters:
      - name: biocollection_name
        in: path
        required: true
        description: collection name
        schema:
          type: string
      responses:
        '201':
          description: parent created
        '422':
          description: invalid request - Title cannot be blank
        '401':
          description: 'Error: Unauthorized'
      requestBody:
        content:
          application/json:
            schema:
              type: object
              required:
              - token
              properties:
                token:
                  type: string
                  example: YOUR TOKEN IS HERE
                item:
                  properties:
                    title:
                      type: string
                      description: 'the item title to add parent to '
                      example: child
                    parents_uuid:
                      type: array
                      items:
                        type: string
                        example: 85ed5fca-1114-49ec-8661-48563534efb2
        required: true
  "/api/v1/{biocollection_name}/{id}":
    put:
      summary: Update item with a new parent
      tags:
      - Submodules
      parameters:
      - name: id
        in: path
        required: true
        description: item id
        schema:
          type: integer
      - name: biocollection_name
        in: path
        required: true
        description: collection name
        schema:
          type: string
      responses:
        '200':
          description: item updated
        '422':
          description: invalid request - Title cannot be blank
        '401':
          description: 'Error: Unauthorized'
      requestBody:
        content:
          application/json:
            schema:
              type: object
              required:
              - token
              properties:
                token:
                  type: string
                  example: YOUR TOKEN IS HERE
                item:
                  properties:
                    title:
                      type: string
                      description: 'the item title to add parent to '
                      example: child
                    parents_uuid:
                      type: array
                      items:
                        type: string
                        example: 85ed5fca-1114-49ec-8661-48563534efb2
        required: true
  "/api/v1/{biocollection_name}/{id}/get_parents":
    get:
      summary: Get parents of an inventory item
      tags:
      - Submodules
      parameters:
      - name: token
        in: query
        required: true
        schema:
          type: string
      - name: id
        in: path
        required: true
        description: item id
        schema:
          type: integer
      - name: biocollection_name
        in: path
        required: true
        description: collection name
        schema:
          type: string
      responses:
        '200':
          description: success
        '404':
          description: item not found
  "/api/v1/{parent_collection_name}/get_derived_collections":
    get:
      summary: Get the derived collections of a collection
      tags:
      - Submodules
      parameters:
      - name: token
        in: query
        required: true
        schema:
          type: string
      - name: parent_collection_name
        in: path
        required: true
        description: parent collection name
        schema:
          type: string
      responses:
        '200':
          description: success
        '404':
          description: page not found
  "/api/v1/biocollections/{parent_collection_name}/get_derived_collections":
    get:
      summary: Get the derived collections of a generic collection
      tags:
      - Submodules
      parameters:
      - name: token
        in: query
        required: true
        schema:
          type: string
      - name: parent_collection_name
        in: path
        required: true
        description: parent collection name
        schema:
          type: string
      responses:
        '200':
          description: success
        '404':
          description: page not found
  "/api/v1/{parent_collection_name}/{id}/get_derived_items":
    get:
      summary: Get the derived items of a collection item
      tags:
      - Submodules
      parameters:
      - name: token
        in: query
        required: true
        schema:
          type: string
      - name: id
        in: path
        required: true
        description: id of the parent collection item
        schema:
          type: integer
      - name: parent_collection_name
        in: path
        required: true
        description: parent collection name
        schema:
          type: string
      - name: derived_collection_name
        in: query
        required: true
        example: plasmids
        schema:
          type: string
      - name: derived_collection_id
        in: query
        description: id of the derived collection - can be used instead of derived_collection_name
        schema:
          type: integer
      responses:
        '200':
          description: success
        '404':
          description: page not found
  "/api/v1/biocollections/{parent_collection_name}/{id}/get_derived_items":
    get:
      summary: Get the derived items of a generic collection item
      tags:
      - Submodules
      parameters:
      - name: token
        in: query
        required: true
        schema:
          type: string
      - name: id
        in: path
        required: true
        description: id of the parent generic collection item
        schema:
          type: integer
      - name: parent_collection_name
        in: path
        required: true
        description: parent generic collection name
        schema:
          type: string
      - name: derived_collection_name
        in: query
        required: true
        example: plasmids
        schema:
          type: string
      - name: derived_collection_id
        in: query
        description: id of a derived generic collection - can be used instead of derived_collection_name
        schema:
          type: integer
      responses:
        '200':
          description: success
        '404':
          description: page not found
  "/api/v1/tags":
    post:
      summary: Add tag
      tags:
      - Tags
      parameters: []
      responses:
        '201':
          description: tag created
        '404':
          description: invalid request - Item not found
        '401':
          description: 'Error: Unauthorized'
      requestBody:
        content:
          application/json:
            schema:
              "$ref": "#/components/schemas/createTag"
        required: true
    delete:
      summary: Remove tag labels from an item
      tags:
      - Tags
      description: Removes one or more tag labels from a single item. This does not
        delete the tag record itself - use DELETE /api/v1/tags/{id} for that. The
        tag field accepts a comma-separated string to remove multiple labels at once.
      parameters:
      - name: token
        in: query
        required: true
        schema:
          type: string
      responses:
        '201':
          description: success
        '404':
          description: item not found
        '422':
          description: invalid item type
      requestBody:
        content:
          application/json:
            schema:
              type: object
              required:
              - item
              properties:
                item:
                  type: object
                  required:
                  - class_name
                  - item_id
                  - tag
                  properties:
                    class_name:
                      type: string
                      description: The class name of the item to remove the tag from
                        (e.g. Projects::Experiment)
                    item_id:
                      type: integer
                      description: The ID of the item to remove the tag from
                    tag:
                      type: string
                      description: Tag label(s) to remove. Comma-separated for multiple
                        labels (e.g. "draft,wip")
        required: true
  "/api/v1/tags/{id}":
    delete:
      summary: Delete tag
      tags:
      - Tags
      parameters:
      - name: token
        in: query
        required: true
        schema:
          type: string
      - name: id
        in: path
        required: true
        description: tag id
        schema:
          type: integer
      responses:
        '201':
          description: success
        '404':
          description: not found
  "/api/v1/teams/{id}":
    get:
      summary: Get team by id
      tags:
      - Teams
      description: |
        Get a team by ID.

        This endpoint retrieves a team along with a list of all its members.
      parameters:
      - name: token
        in: query
        required: true
        schema:
          type: string
      - name: id
        in: path
        required: true
        description: The ID of the team
        schema:
          type: integer
      responses:
        '200':
          description: OK
        '401':
          description: Unauthorized
          content:
            application/json:
              schema:
                type: object
                properties:
                  message:
                    type: string
                    example: You are not authorized to perform this action.
    delete:
      summary: Delete team
      tags:
      - Teams
      parameters:
      - name: token
        in: query
        required: true
        schema:
          type: string
      - name: id
        in: path
        required: true
        description: team id
        schema:
          type: integer
      responses:
        '204':
          description: no content
        '404':
          description: not found
  "/api/v1/teams":
    get:
      summary: List all teams in your account
      tags:
      - Teams
      description: 'List all teams within the account and their members.

        '
      parameters:
      - name: token
        in: query
        required: true
        schema:
          type: string
      responses:
        '200':
          description: OK
        '401':
          description: Unauthorized
          content:
            application/json:
              schema:
                type: object
                properties:
                  message:
                    type: string
                    example: You are not authorized to perform this action.
  "/api/v1/tissues":
    post:
      summary: Create a tissue
      tags:
      - Tissue
      description: 'Create a tissue.

        '
      parameters: []
      responses:
        '201':
          description: Created
        '422':
          description: Invalid request
        '401':
          description: 'Error: Unauthorized'
      requestBody:
        content:
          application/json:
            schema:
              "$ref": "#/components/schemas/createTissue"
        required: true
    get:
      summary: List all tissues in your account
      tags:
      - Tissue
      description: 'List all tissues.

        '
      parameters:
      - name: token
        in: query
        required: true
        schema:
          type: string
      - name: page
        in: query
        description: the default call is with page = 1
        schema:
          type: integer
      - name: meta
        in: query
        description: show summarized data information - true/false
        schema:
          type: string
      responses:
        '200':
          description: OK
        '404':
          description: Not found
  "/api/v1/tissues/{id}":
    put:
      summary: Update a tissue
      tags:
      - Tissue
      description: 'Update a tissue.

        '
      parameters:
      - name: id
        in: path
        required: true
        description: The ID of the tissue
        schema:
          type: integer
      responses:
        '200':
          description: OK
        '422':
          description: Invalid request
        '401':
          description: 'Error: Unauthorized'
      requestBody:
        content:
          application/json:
            schema:
              "$ref": "#/components/schemas/updateTissue"
        required: true
    get:
      summary: Get tissue by id
      tags:
      - Tissue
      description: 'Get tissue by id.

        '
      parameters:
      - name: token
        in: query
        required: true
        schema:
          type: string
      - name: id
        in: path
        required: true
        description: The ID of the tissue
        schema:
          type: integer
      responses:
        '200':
          description: OK
        '404':
          description: Not Found
    delete:
      summary: Delete tissue
      tags:
      - Tissue
      parameters:
      - name: token
        in: query
        required: true
        schema:
          type: string
      - name: id
        in: path
        required: true
        description: tissue id
        schema:
          type: integer
      responses:
        '204':
          description: no content
        '404':
          description: not found
  "/api/v1/units":
    post:
      summary: Add unit
      tags:
      - Units
      parameters: []
      responses:
        '201':
          description: unit created
        '422':
          description: invalid request - Name can't be blank
        '401':
          description: 'Error: Unauthorized'
      requestBody:
        content:
          application/json:
            schema:
              "$ref": "#/components/schemas/createUnit"
        required: true
    get:
      summary: List all units in your account
      tags:
      - Units
      parameters:
      - name: token
        in: query
        required: true
        schema:
          type: string
      - name: page
        in: query
        description: the default call is with page = 1
        schema:
          type: integer
      - name: meta
        in: query
        description: " show summarized data information - true/false"
        schema:
          type: string
      responses:
        '200':
          description: success
        '404':
          description: page not found
  "/api/v1/units/{id}":
    delete:
      summary: Delete unit
      tags:
      - Units
      parameters:
      - name: id
        in: path
        required: true
        description: unit id
        schema:
          type: integer
      responses:
        '204':
          description: unit deleted
        '422':
          description: invalid request
        '401':
          description: 'Error: Unauthorized'
      requestBody:
        content:
          application/json:
            schema:
              "$ref": "#/components/schemas/deleteUnit"
        required: true
    get:
      summary: Get unit by id
      tags:
      - Units
      parameters:
      - name: token
        in: query
        required: true
        schema:
          type: string
      - name: id
        in: path
        required: true
        description: unit id
        schema:
          type: integer
      responses:
        '200':
          description: success
        '404':
          description: page not found
  "/api/v1/vectors":
    post:
      summary: Creates a vectors
      tags:
      - Vectors
      parameters: []
      responses:
        '201':
          description: vector created
        '422':
          description: invalid request - dataset_id can't be blank
        '401':
          description: 'Error: Unauthorized'
      requestBody:
        content:
          application/json:
            schema:
              "$ref": "#/components/schemas/createVector"
        required: true
    get:
      summary: List all vectors in your account
      tags:
      - Vectors
      parameters:
      - name: token
        in: query
        required: true
        schema:
          type: string
      - name: page
        in: query
        description: the default call is with page = 1
        schema:
          type: integer
      - name: meta
        in: query
        description: " show summarized data information - true/false"
        schema:
          type: string
      responses:
        '200':
          description: success
        '404':
          description: page not found
  "/api/v1/vectors/{id}":
    put:
      summary: Update vector attributes
      tags:
      - Vectors
      parameters:
      - name: id
        in: path
        required: true
        description: vector id
        schema:
          type: integer
      responses:
        '200':
          description: vector updated
        '422':
          description: invalid request
        '401':
          description: 'Error: Unauthorized'
      requestBody:
        content:
          application/json:
            schema:
              "$ref": "#/components/schemas/updateVector"
        required: true
    get:
      summary: Get vector by id
      tags:
      - Vectors
      parameters:
      - name: token
        in: query
        required: true
        schema:
          type: string
      - name: id
        in: path
        required: true
        description: vector id
        schema:
          type: integer
      responses:
        '200':
          description: success
        '404':
          description: vector not found
    delete:
      summary: Delete vector
      tags:
      - Vectors
      parameters:
      - name: token
        in: query
        required: true
        schema:
          type: string
      - name: id
        in: path
        required: true
        description: vector id
        schema:
          type: integer
      responses:
        '204':
          description: no content
        '404':
          description: not found
  "/api/v1/viruses":
    post:
      summary: Create a virus
      tags:
      - Viruses
      description: 'Create a virus.

        '
      parameters: []
      responses:
        '201':
          description: Created
        '422':
          description: Invalid request
        '401':
          description: 'Error: Unauthorized'
      requestBody:
        content:
          application/json:
            schema:
              "$ref": "#/components/schemas/createVirus"
        required: true
    get:
      summary: List all viruses in your account
      tags:
      - Viruses
      description: 'List all viruses.

        '
      parameters:
      - name: token
        in: query
        required: true
        schema:
          type: string
      - name: page
        in: query
        description: the default call is with page = 1
        schema:
          type: integer
      - name: meta
        in: query
        description: show summarized data information - true/false
        schema:
          type: string
      responses:
        '200':
          description: OK
        '404':
          description: Not found
  "/api/v1/viruses/{id}":
    put:
      summary: Update a virus
      tags:
      - Viruses
      description: 'Update a virus.

        '
      parameters:
      - name: id
        in: path
        required: true
        description: The ID of the virus
        schema:
          type: integer
      responses:
        '200':
          description: OK
        '422':
          description: Invalid request
        '401':
          description: 'Error: Unauthorized'
      requestBody:
        content:
          application/json:
            schema:
              "$ref": "#/components/schemas/updateVirus"
        required: true
    get:
      summary: Get virus by id
      tags:
      - Viruses
      parameters:
      - name: token
        in: query
        required: true
        schema:
          type: string
      - name: id
        in: path
        required: true
        description: The ID of the virus
        schema:
          type: integer
      description: 'Get a virus by ID.

        '
      responses:
        '200':
          description: OK
        '404':
          description: Not Found
    delete:
      summary: Delete virus
      tags:
      - Viruses
      parameters:
      - name: token
        in: query
        required: true
        schema:
          type: string
      - name: id
        in: path
        required: true
        description: virus id
        schema:
          type: integer
      responses:
        '204':
          description: no content
        '404':
          description: not found
  "/api/v1/visualizations":
    post:
      summary: add visualization
      tags:
      - Visualizations
      description: |
        This endpoint creates a visualization.

        To add visualization to a dataset, provide a name, the dataset ID it corresponds to, and an attachment ID (the ID of the visualization file uploaded to Labguru).
        Once added, the visualization will appear under the 'Visualizations' tab of a dataset.

        For a detailed guide on creating dataset visualizations, including a step-by-step process and practical examples, refer to our comprehensive article: [How To Create Dataset Visualization](https://help.labguru.com/en/articles/8741020-how-to-create-dataset-visualization).
      parameters: []
      responses:
        '201':
          description: Created
        '401':
          description: Unauthorized
          content:
            application/json:
              schema:
                "$ref": "#/components/schemas/Unauthorized"
      requestBody:
        content:
          application/json:
            schema:
              "$ref": "#/components/schemas/addVisualization"
        required: true
  "/api/v1/visualizations/{id}":
    delete:
      summary: Delete visualization
      tags:
      - Visualizations
      description: 'This endpoint deletes a visualization.

        '
      parameters:
      - name: token
        in: query
        required: true
        schema:
          type: string
      - name: id
        in: path
        required: true
        description: The ID of the visualization
        schema:
          type: integer
      responses:
        '204':
          description: No Content
        '401':
          description: Unauthorized
          content:
            application/json:
              schema:
                "$ref": "#/components/schemas/Unauthorized"
  "/api/v1/webhooks":
    post:
      summary: Create a new webhook subscription
      tags:
      - Webhooks
      parameters: []
      responses:
        '201':
          description: webhook created
        '422':
          description: invalid request - triger_key can't be blank
        '401':
          description: 'Error: Unauthorized'
      requestBody:
        content:
          application/json:
            schema:
              "$ref": "#/components/schemas/createWebhook"
        required: true
    get:
      summary: List all webhooks in your account
      tags:
      - Webhooks
      parameters:
      - name: token
        in: query
        required: true
        schema:
          type: string
      - name: page
        in: query
        description: the default call is with page = 1
        schema:
          type: integer
      - name: meta
        in: query
        description: show summarized data information - true/false
        schema:
          type: string
      responses:
        '200':
          description: success
        '404':
          description: page not found
  "/api/v1/webhooks/{id}":
    put:
      summary: Update webhook attributes
      tags:
      - Webhooks
      parameters:
      - name: id
        in: path
        required: true
        description: webhook id
        schema:
          type: integer
      responses:
        '200':
          description: webhook updated
        '422':
          description: invalid request
        '401':
          description: 'Error: Unauthorized'
      requestBody:
        content:
          application/json:
            schema:
              "$ref": "#/components/schemas/updateWebhook"
        required: true
    get:
      summary: Get webhook by id
      tags:
      - Webhooks
      parameters:
      - name: token
        in: query
        required: true
        schema:
          type: string
      - name: id
        in: path
        required: true
        description: webhook id
        schema:
          type: integer
      responses:
        '200':
          description: success
        '404':
          description: page not found
    delete:
      summary: Delete webhook
      tags:
      - Webhooks
      parameters:
      - name: token
        in: query
        required: true
        schema:
          type: string
      - name: id
        in: path
        required: true
        description: webhook id
        schema:
          type: integer
      responses:
        '204':
          description: no content
        '404':
          description: not found
  "/api/v1/webhooks/list":
    get:
      summary: List all webhooks available
      tags:
      - Webhooks
      parameters:
      - name: token
        in: query
        required: true
        schema:
          type: string
      responses:
        '200':
          description: success
        '404':
          description: page not found
  "/api/v1/workflows/{id}":
    get:
      summary: Get workflow by id
      tags:
      - Workflows
      deprecated: true
      parameters:
      - name: token
        in: query
        required: true
        schema:
          type: string
      - name: id
        in: path
        required: true
        description: workflow id
        schema:
          type: integer
      responses:
        '200':
          description: success
        '404':
          description: page not found
    delete:
      summary: Delete workflow
      tags:
      - Workflows
      parameters:
      - name: token
        in: query
        required: true
        schema:
          type: string
      - name: id
        in: path
        required: true
        description: workflow id
        schema:
          type: integer
      responses:
        '204':
          description: no content
        '404':
          description: not found
  "/api/v1/workflows":
    get:
      summary: List all workflows in your account
      tags:
      - Workflows
      deprecated: true
      parameters:
      - name: token
        in: query
        required: true
        schema:
          type: string
      - name: page
        in: query
        description: the default call is with page = 1
        schema:
          type: integer
      - name: meta
        in: query
        description: show summarized data information - true/false
        schema:
          type: string
      responses:
        '200':
          description: success
        '404':
          description: page not found
  "/api/v1/worms":
    post:
      summary: Create a worm
      tags:
      - Worms
      description: 'Create a worm.

        '
      parameters: []
      responses:
        '201':
          description: Created
        '422':
          description: Invalid request
        '401':
          description: 'Error: Unauthorized'
      requestBody:
        content:
          application/json:
            schema:
              "$ref": "#/components/schemas/createWorm"
        required: true
    get:
      summary: List all worms in your account
      tags:
      - Worms
      description: 'List all worms.

        '
      parameters:
      - name: token
        in: query
        required: true
        schema:
          type: string
      - name: page
        in: query
        description: the default call is with page = 1
        schema:
          type: integer
      - name: meta
        in: query
        description: show summarized data information - true/false
        schema:
          type: string
      responses:
        '200':
          description: OK
        '404':
          description: Not found
  "/api/v1/worms/{id}":
    put:
      summary: Update a worm
      tags:
      - Worms
      description: 'Update a worm.

        '
      parameters:
      - name: id
        in: path
        required: true
        description: The ID of the worm
        schema:
          type: integer
      responses:
        '200':
          description: OK
        '422':
          description: Invalid request
        '401':
          description: 'Error: Unauthorized'
      requestBody:
        content:
          application/json:
            schema:
              "$ref": "#/components/schemas/updateWorm"
        required: true
    get:
      summary: Get worm by id
      tags:
      - Worms
      description: 'Get a worm by ID.

        '
      parameters:
      - name: token
        in: query
        required: true
        schema:
          type: string
      - name: id
        in: path
        required: true
        description: The ID of the worm
        schema:
          type: integer
      responses:
        '200':
          description: OK
        '404':
          description: Not Found
    delete:
      summary: Delete worm
      tags:
      - Worms
      parameters:
      - name: token
        in: query
        required: true
        schema:
          type: string
      - name: id
        in: path
        required: true
        description: worm id
        schema:
          type: integer
      responses:
        '204':
          description: no content
        '404':
          description: not found
  "/api/v1/yeasts":
    post:
      summary: Create a yeast
      tags:
      - Yeasts
      description: 'Create a yeast.

        '
      parameters: []
      responses:
        '201':
          description: Created
        '422':
          description: Invalid request
        '401':
          description: 'Error: Unauthorized'
      requestBody:
        content:
          application/json:
            schema:
              "$ref": "#/components/schemas/createYeast"
        required: true
    get:
      summary: List all yeasts in your account
      tags:
      - Yeasts
      description: 'List all yeasts.

        '
      parameters:
      - name: token
        in: query
        required: true
        schema:
          type: string
      - name: page
        in: query
        description: the default call is with page = 1
        schema:
          type: integer
      - name: meta
        in: query
        description: show summarized data information - true/false
        schema:
          type: string
      responses:
        '200':
          description: OK
        '404':
          description: Not found
  "/api/v1/yeasts/{id}":
    put:
      summary: Update a yeast
      tags:
      - Yeasts
      description: 'Update a yeast.

        '
      parameters:
      - name: id
        in: path
        required: true
        description: The ID of the yeast
        schema:
          type: integer
      responses:
        '200':
          description: OK
        '422':
          description: Invalid request
        '401':
          description: 'Error: Unauthorized'
      requestBody:
        content:
          application/json:
            schema:
              "$ref": "#/components/schemas/updateYeast"
        required: true
    get:
      summary: Get yeast by id
      tags:
      - Yeasts
      description: 'Get a yeast by ID.

        '
      parameters:
      - name: token
        in: query
        required: true
        schema:
          type: string
      - name: id
        in: path
        required: true
        description: The ID of the yeast
        schema:
          type: integer
      responses:
        '200':
          description: OK
        '404':
          description: Not Found
    delete:
      summary: Delete yeast
      tags:
      - Yeasts
      parameters:
      - name: token
        in: query
        required: true
        schema:
          type: string
      - name: id
        in: path
        required: true
        description: yeast id
        schema:
          type: integer
      responses:
        '204':
          description: no content
        '404':
          description: not found
  "/api/v1/zebrafishes/{id}":
    delete:
      summary: Delete zebrafish
      tags:
      - Zebrafishes
      parameters:
      - name: token
        in: query
        required: true
        schema:
          type: string
      - name: id
        in: path
        required: true
        description: zebrafish id
        schema:
          type: integer
      responses:
        '204':
          description: no content
        '404':
          description: not found
  "/api/v1/samples/{sample_id}/instrument_usages/{id}":
    delete:
      summary: Delete instrument usage
      tags:
      - Instrument usages
      parameters:
      - name: token
        in: query
        required: true
        schema:
          type: string
      - name: sample_id
        in: path
        required: true
        description: sample id
        schema:
          type: integer
      - name: id
        in: path
        required: true
        description: instrument usage id
        schema:
          type: integer
      responses:
        '204':
          description: no content
        '404':
          description: not found
  "/api/v1/forms/{id}":
    delete:
      summary: Delete form
      tags:
      - Forms
      parameters:
      - name: token
        in: query
        required: true
        schema:
          type: string
      - name: id
        in: path
        required: true
        description: form id
        schema:
          type: integer
      responses:
        '204':
          description: no content
        '404':
          description: not found
  "/api/v1/recipes/{id}":
    delete:
      summary: Delete recipe
      tags:
      - Recipes
      parameters:
      - name: token
        in: query
        required: true
        schema:
          type: string
      - name: id
        in: path
        required: true
        description: recipe id
        schema:
          type: integer
      responses:
        '204':
          description: no content
        '404':
          description: not found
  "/api/v1/samples/{id}":
    delete:
      summary: Delete sample
      tags:
      - Samples
      parameters:
      - name: token
        in: query
        required: true
        schema:
          type: string
      - name: id
        in: path
        required: true
        description: sample id
        schema:
          type: integer
      responses:
        '204':
          description: no content
        '404':
          description: not found
  "/api/v1/signature_flows/{id}":
    delete:
      summary: Delete signature flow
      tags:
      - Signature flows
      parameters:
      - name: token
        in: query
        required: true
        schema:
          type: string
      - name: id
        in: path
        required: true
        description: signature flow id
        schema:
          type: integer
      responses:
        '204':
          description: no content
        '404':
          description: not found
info:
  title: Labguru API
  description: |-
    Labguru API is a JSON / REST based API, get started by reviewing the documentation below or code samples.<br>
            Join our dedicated [Slack channel](https://join.slack.com/t/labgurus/shared_invite/zt-199glfagl-QZQ_bKl7vLAi8CQSuNrRug)
            to be in direct contact with our API team and be informed about the latest updates.<br>
            ***[API introduction and overview](https://help.labguru.com/en/articles/6149483-api-introduction-and-overview)***
  version: v1
components:
  schemas:
    createSession:
      type: object
      required:
      - login
      - password
      properties:
        login:
          type: string
          description: E-mail
          example: labuser@email.com
        password:
          type: string
          description: password
        account_id:
          type: integer
          description: "(optional) The account id to generate the token for"
    createAttachment:
      type: object
      properties:
        token:
          type: string
        item[attachment]:
          type: string
          format: binary
          description: The file that will be uploaded.
        item[title]:
          type: string
          example: Project_report.pdf
          description: The title of the attachment. <b>This should match the file
            name exactly, including the file extension (.xlsx, .csv, etc.)</b>.
        item[attach_to_uuid]:
          type: string
          description: |-
            The UUID of the object to which the attachment will be linked.<br>
                            If this parameter is not provided, the uploaded file will be stored but not associated with any specific entity (unattached file).
        item[description]:
          type: string
          example: Detailed project report
          description: A brief description of the attachment content.
      required:
      - token
      - item[attachment]
      - item[title]
    updateAttachment:
      type: object
      required:
      - token
      properties:
        token:
          type: string
          example: YOUR TOKEN IS HERE
        item:
          type: object
          required:
          - element_id
          properties:
            element_id:
              type: integer
              description: The ID of the attachment element to which the attachment
                will be linked
    WormBaseRequest:
      type: object
      required:
      - token
      properties:
        token:
          type: string
          example: YOUR TOKEN IS HERE
        item:
          type: object
          properties:
            name:
              type: string
              description: The name of the worm
            alternative_name:
              type: string
              description: An alternative name for the worm
            gene_id:
              type: integer
              description: An ID reference to a gene from your labguru genes collection
            source:
              type: string
              description: Origin of the worm
            genotype:
              type: string
              description: Genetic constitution of the worm
            phenotype:
              type: string
              description: Observable physical or biochemical characteristics of the
                worm
            mutagen:
              type: string
              description: The agent used to induce mutations in the worm
            growth_conditions:
              type: string
              description: Specific conditions under which the worm is maintained
            outcrossed:
              type: integer
              description: Number of times the worm strain has been outcrossed with
                another
            made_by:
              type: string
              description: researcher name input
            dauer_defective:
              type: boolean
              description: |-
                Indicates whether the worm is defective in entering or exiting the dauer stage,
                                    with '1' for yes and '0' for no.
              example: 0
            description:
              type: string
              description: Description of the worm
    createWorm:
      allOf:
      - "$ref": "#/components/schemas/WormBaseRequest"
      - type: object
        properties:
          item:
            type: object
            required:
            - name
    updateWorm:
      allOf:
      - "$ref": "#/components/schemas/WormBaseRequest"
    AntibodyBaseRequest:
      type: object
      required:
      - token
      properties:
        token:
          type: string
          example: YOUR TOKEN IS HERE
        item:
          type: object
          properties:
            title:
              type: string
              description: The name of the antibody
            owner_id:
              type: integer
              description: The ID of the owner - by default it's your member id
            alternative_name:
              type: string
              description: An additional name for the antibody
            antigene:
              type: string
              description: Antigen / immunogen
            tags_fluorophores:
              type: string
              description: Tags / fluorophores
            clone_field:
              type: string
              description: The clone from which the antibody was derived.
            isotype:
              type: string
              description: The class or type of the antibody (e.g., IgG, IgM).
            preparation_date:
              type: string
              format: date
              description: The date on which the antibody was prepared, formatted
                as YYYY-MM-DD.
              example: yyyy-mm-dd
            source:
              type: string
              description: The origin or source from which the antibody was obtained.
            immune:
              type: integer
              description: 'Indicates the antibody''s clonality: "Monoclonal" (immune
                = 1), "Polyclonal" (immune = 0), or "None" (Empty value).'
              example: 1
            organism_id:
              type: integer
              description: The ID for the organism in which the antibody was raised.
                This ID corresponds to specific organisms (e.g., 5 for Mouse, 6 for
                Chicken, etc.).
            reacts_with:
              type: string
              description: Specifies the organism or group the antibody is reactive
                with, chosen from a predefined list of options such as "Mouse", "Human",
                "Chicken", and "Zebrafish", etc.
              example: Mouse
            description:
              type: string
              description: A detailed description of the antibody
    createAntibody:
      allOf:
      - "$ref": "#/components/schemas/AntibodyBaseRequest"
      - type: object
        properties:
          item:
            type: object
            required:
            - title
    updateAntibody:
      allOf:
      - "$ref": "#/components/schemas/AntibodyBaseRequest"
    ExperimentBaseRequest:
      type: object
      required:
      - token
      properties:
        token:
          type: string
          example: YOUR TOKEN IS HERE
        item:
          type: object
          properties:
            title:
              type: string
              description: The experiment title
            project_id:
              type: integer
              description: The project id
            milestone_id:
              type: integer
              description: You can also provide a milestone_name(string) instead of
                milestone_id(integer)
            protocol_id:
              type: integer
              description: 'Start experiment from protocol by providing the protocol
                id '
    addExperiment:
      allOf:
      - "$ref": "#/components/schemas/ExperimentBaseRequest"
      - type: object
        properties:
          item:
            type: object
            required:
            - title
            - project_id
            - milestone_id
    updateExperiment:
      allOf:
      - "$ref": "#/components/schemas/ExperimentBaseRequest"
    PlasmidBaseRequest:
      type: object
      required:
      - token
      properties:
        token:
          type: string
          example: YOUR TOKEN IS HERE
        item:
          type: object
          properties:
            title:
              type: string
              description: The name of the plasmid
            alternative_name:
              type: string
              description: Any alternative name by which the plasmid may be known
            owner_id:
              type: integer
              description: id of the owner - by default it's your member id
            length:
              type: integer
              description: The total number of base pairs (bp) in the plasmid’s DNA
                sequence.
            usage:
              type: string
              description: Intended or common uses of the plasmid (cloning, gene expression,
                etc.)
            host:
              type: string
              description: Typical host organism for the plasmid
            resistance:
              type: string
              description: Antibiotic resistance markers present in the plasmid
            clone_number:
              type: string
              description: Unique identifier or clone number associated with the plasmid
            source:
              type: string
              description: Origin or provider of the plasmid
            sequence:
              type: string
              description: The nucleotide sequence of the plasmid
            description:
              type: string
              description: A detailed description of the plasmid
    createPlasmid:
      allOf:
      - "$ref": "#/components/schemas/PlasmidBaseRequest"
      - type: object
        properties:
          item:
            type: object
            required:
            - title
    updatePlasmid:
      allOf:
      - "$ref": "#/components/schemas/PlasmidBaseRequest"
    SOPBaseRequest:
      type: object
      required:
      - token
      properties:
        token:
          type: string
          example: YOUR TOKEN IS HERE
        item:
          type: object
          properties:
            title:
              type: string
              description: The name of the SOP
    createSOP:
      allOf:
      - "$ref": "#/components/schemas/SOPBaseRequest"
      - type: object
        properties:
          item:
            type: object
            required:
            - title
    updateSOP:
      allOf:
      - "$ref": "#/components/schemas/SOPBaseRequest"
    createComment:
      type: object
      required:
      - token
      properties:
        token:
          type: string
          example: YOUR TOKEN IS HERE
        item:
          type: object
          required:
          - comment
          - commentable_id
          - commentable_type
          properties:
            comment:
              type: string
              description: The text content of the comment
            commentable_id:
              type: integer
              description: The ID of the item to which the comment is being added
            commentable_type:
              type: string
              description: Specifies the class name of the item to which the comment
                is attached, such as Biocollections::Plasmid
    LinkBaseRequest:
      type: object
      required:
      - token
      properties:
        token:
          type: string
          example: YOUR TOKEN IS HERE
        item:
          type: object
          properties:
            source_id:
              type: integer
              description: The ID of the source item
            source_type:
              type: string
              description: Specifies the class name of the source item, such as Biocollections::Plasmid
            target_id:
              type: integer
              description: The ID of the target item
            target_type:
              type: string
              description: Specifies the class name of the target item, such as Biocollections::Antibody
            source_uuid:
              type: string
              description: The UUID of the source item
            target_uuid:
              type: string
              description: The UUID of the target item
    createLink:
      allOf:
      - "$ref": "#/components/schemas/LinkBaseRequest"
      - type: object
        properties:
          item:
            type: object
            required:
            - source_id
            - source_type
            - target_id
            - target_type
            - source_uuid
            - target_uuid
    updateLink:
      allOf:
      - "$ref": "#/components/schemas/LinkBaseRequest"
    CompoundBaseRequest:
      type: object
      required:
      - token
      properties:
        token:
          type: string
          example: YOUR TOKEN IS HERE
        smiles:
          type: string
          example: C(=O)N1CCC(CCCC(=O)c2ccc(Cl)n(Cc3ncc(o3)-c3ccc(Cl)cc3)c2=O)CC1
        item:
          type: object
          properties:
            name:
              type: string
              description: The name of the compound
            description:
              type: string
              description: Updated description of the compound
            structure:
              type: string
              description: Compound structure
              example: C(=O)N1CCC(CCCC(=O)c2ccc(Cl)n(Cc3ncc(o3)-c3ccc(Cl)cc3)c2=O)CC1
            cas:
              type: string
              description: Compound CAS
            formula:
              type: string
              description: Compound formula
            molar_mass:
              type: string
              description: Compound molar mass
            density:
              type: string
              description: Compound density
            boiling_point:
              type: string
              description: Compound boiling point
            melting_point:
              type: string
              description: Compound melting point
            hazards:
              type: string
              description: Compound hazards
    createCompound:
      allOf:
      - "$ref": "#/components/schemas/CompoundBaseRequest"
      - type: object
        properties:
          item:
            type: object
            required:
            - name
    updateCompound:
      allOf:
      - "$ref": "#/components/schemas/CompoundBaseRequest"
    TaskBaseRequest:
      type: object
      required:
      - token
      properties:
        token:
          type: string
          example: YOUR TOKEN IS HERE
        item:
          type: object
          required:
          - name
          properties:
            name:
              type: string
              description: The name of the Task
            start_date:
              type: string
              format: date
              description: Start Date (yyyy-mm-dd)
            assigned_to:
              type: integer
              description: id of assigner
            description:
              type: string
              description: Description of the task
            owner_id:
              type: integer
              description: id of the owner - by default it's your member id
            notify_at:
              type: string
              format: date
              description: notification date & time (yyyy-mm-dd)
    createTask:
      allOf:
      - "$ref": "#/components/schemas/TaskBaseRequest"
      - type: object
        properties:
          item:
            type: object
            required:
            - name
    updateTask:
      allOf:
      - "$ref": "#/components/schemas/TaskBaseRequest"
    RodentCageBaseRequest:
      type: object
      required:
      - token
      properties:
        token:
          type: string
          example: YOUR TOKEN IS HERE
        item:
          type: object
          properties:
            name:
              type: string
              description: The name of the Rodent cage
            breeding:
              type: boolean
              description: Breeding - by default it's true
            parent_id:
              type: integer
              description: The ID of the storage location
            description:
              type: string
              description: Detailed cage information
            owner_id:
              type: integer
              description: id of the owner - by default it's your member id
    createRodentCage:
      allOf:
      - "$ref": "#/components/schemas/RodentCageBaseRequest"
      - type: object
        properties:
          item:
            type: object
            required:
            - name
    updateRodentCage:
      allOf:
      - "$ref": "#/components/schemas/RodentCageBaseRequest"
    GeneBaseRequest:
      type: object
      required:
      - token
      properties:
        token:
          type: string
          example: YOUR TOKEN IS HERE
        item:
          type: object
          properties:
            title:
              type: string
              description: The name of the gene
            alternative_name:
              type: string
              description: Alternative gene name.
            expression_location:
              type: string
              description: Location of gene expression.
            pathway:
              type: string
              description: Involved metabolic pathway.
            sequence:
              type: string
              description: Gene sequence.
              example: ACTGACGACATGGTTCTGACCTGA
            owner_id:
              type: integer
              description: id of the owner - by default it's your member id
            source:
              type: string
              description: The origin or source from which the gene was obtained.
            description:
              type: string
              description: Detailed gene information.
    createGene:
      allOf:
      - "$ref": "#/components/schemas/GeneBaseRequest"
      - type: object
        properties:
          item:
            type: object
            required:
            - title
    updateGene:
      allOf:
      - "$ref": "#/components/schemas/GeneBaseRequest"
    VirusBaseRequest:
      type: object
      required:
      - token
      properties:
        token:
          type: string
          example: YOUR TOKEN IS HERE
        item:
          type: object
          properties:
            name:
              type: string
              description: The name of the virus
            alternative_name:
              type: string
              description: alternative name for the virus
            gene_insert:
              type: string
              description: Specific gene or genetic insert present in the virus
            virus_type:
              type: string
              description: The virus type
            plasmid:
              type: string
              description: The plasmid that is used in the creation or manipulation
                of the virus
            serotype_strain:
              type: string
              description: serotype or strain of the virus
            mutations_deletions:
              type: string
              description: genetic mutations or deletions within the virus details
            tag:
              type: string
              description: Tag
            selectable_marker:
              type: string
              description: Selectable marker
            producer_cell_type:
              type: string
              description: Producer cell type
            viral_coat:
              type: string
              description: Viral coat
            tropism:
              type: string
              description: Tropism
            species:
              type: string
              description: The species from which the virus was isolated or generated
            safety_information:
              type: string
              description: safety information details
            storage_conditions:
              type: string
              description: Conditions under which the virus should be stored
            owner_id:
              type: integer
              description: id of the owner - by default it's your member id
            source:
              type: string
              description: The origin of the virus
            description:
              type: string
              description: Description of the virus
    createVirus:
      allOf:
      - "$ref": "#/components/schemas/VirusBaseRequest"
      - type: object
        properties:
          item:
            type: object
            required:
            - name
    updateVirus:
      allOf:
      - "$ref": "#/components/schemas/VirusBaseRequest"
    LipidBaseRequest:
      type: object
      required:
      - token
      properties:
        token:
          type: string
          example: YOUR TOKEN IS HERE
        item:
          type: object
          properties:
            name:
              type: string
              description: The name of the lipid
            owner_id:
              type: integer
              description: 'ID of the owner (default: your member id)'
            alternative_name:
              type: string
              description: Any alternative name by which the lipid may be known
            molecular_formula:
              type: string
              description: The molecular formula of the lipid
            molecular_weight:
              type: string
              description: Molecular weight of the lipid
            cas_number:
              type: string
              description: The Chemical Abstracts Service number
            stock_solution_prep:
              type: string
              description: Media/solution
            solubility:
              type: string
              description: Solubility information
            conditions_for_use:
              type: string
              description: Recommended conditions under which the lipid should be
                used
            conditions_for_storage:
              type: string
              description: Guidelines for proper storage of the lipid
            safety_information:
              type: string
              description: Safety guidelines and hazard information related to the
                lipid
            impurities:
              type: string
              description: Details of known impurities found in the lipid sample
            source:
              type: string
              description: The origin of the lipid
            description:
              type: string
              description: Detailed description of the lipid
    createLipid:
      allOf:
      - "$ref": "#/components/schemas/LipidBaseRequest"
      - type: object
        properties:
          item:
            type: object
            required:
            - name
    updateLipid:
      allOf:
      - "$ref": "#/components/schemas/LipidBaseRequest"
    YeastBaseRequest:
      type: object
      required:
      - token
      properties:
        token:
          type: string
          example: YOUR TOKEN IS HERE
        item:
          type: object
          properties:
            name:
              type: string
              description: The name of the yeast
            description:
              type: string
              description: Description of the yeast
            reproduction:
              type: string
              description: Details of the mode of reproduction for the yeast
            genetic_background:
              type: string
              description: yeast's genetic lineage or background
            transgenic_features:
              type: string
              description: Transgenic Features
            phenotype:
              type: string
              description: Observable characteristics of the yeast
            source:
              type: string
              description: Origin of the yeast strain
            owner_id:
              type: integer
              description: id of the owner - if omitted, will default to your member
                id
    createYeast:
      allOf:
      - "$ref": "#/components/schemas/YeastBaseRequest"
      - type: object
        properties:
          item:
            type: object
            required:
            - name
    updateYeast:
      allOf:
      - "$ref": "#/components/schemas/YeastBaseRequest"
    ProjectBaseRequest:
      type: object
      required:
      - token
      properties:
        token:
          type: string
          example: YOUR TOKEN IS HERE
        item:
          type: object
          properties:
            title:
              type: string
              description: The name of the project
            description:
              type: string
              description: Description of the project
            start_date:
              type: string
              format: date
              description: Start Date (yyyy-mm-dd)
            closed:
              type: boolean
              description: Archived/Active project flag
            status:
              type: string
              description: Status
            owner_id:
              type: integer
              description: 'ID of the owner (default: your member id)'
    createProject:
      allOf:
      - "$ref": "#/components/schemas/ProjectBaseRequest"
      - type: object
        properties:
          item:
            type: object
            required:
            - title
    updateProject:
      allOf:
      - "$ref": "#/components/schemas/ProjectBaseRequest"
    BacteriumBaseRequest:
      type: object
      required:
      - token
      properties:
        token:
          type: string
          example: YOUR TOKEN IS HERE
        item:
          type: object
          properties:
            name:
              type: string
              description: The name of the bacterium
            sensitivity:
              type: string
              description: Details the bacterium’s sensitivity to antibiotics or other
                agents.
            strain:
              type: string
              description: The specific strain of the bacterium
            source:
              type: string
              description: The origin or isolation source of the bacterium (e.g.,
                environmental, clinical).
            owner_id:
              type: integer
              description: The ID of the owner - by default it's your member id
            description:
              type: string
              description: A detailed description of the bacterium
    createBacterium:
      allOf:
      - "$ref": "#/components/schemas/BacteriumBaseRequest"
      - type: object
        properties:
          item:
            type: object
            required:
            - name
    updateBacterium:
      allOf:
      - "$ref": "#/components/schemas/BacteriumBaseRequest"
    PrimerBaseRequest:
      type: object
      required:
      - token
      properties:
        token:
          type: string
          example: YOUR TOKEN IS HERE
        item:
          type: object
          properties:
            title:
              type: string
              description: The name of the primer
            alternative_name:
              type: string
              description: Any alternative name by which the primer may be known
            owner_id:
              type: integer
              description: id of the owner - if omitted, will default to your member
                id
            sequence:
              type: string
              description: The nucleotide sequence of the primer
            tag:
              type: string
              description: A unique label or tag associated with the primer
            gene_id:
              type: integer
              nullable: true
              description: A reference ID linking the primer to a specific gene in
                your lab
            tm:
              type: string
              description: The melting temperature (Tm) of the primer
              example: 3
            orientation:
              type: string
              description: Indicates the orientation of the primer. Set "1" for forward
                and "0" for reverse. This field is optional and can be left null if
                orientation is not applicable
              nullable: true
              example: '1'
            target_position:
              type: string
              description: The specific binding position of the primer on the target
                DNA
            fragment_size:
              type: string
              description: The size of the DNA fragment that the primer is designed
                to amplify
            organism:
              type: string
              description: The specific organism for which the primer is designed,
                such as "Mouse"
            used_for:
              type: string
              description: The specific applications for which the primer is used
                (pcr / RT / SDM / etc.)
            restriction_site:
              type: string
              description: Information about any restriction enzyme recognition sites
                incorporated into the primer design
            source:
              type: string
              description: The origin or source from which the primer was obtained
            description:
              type: string
              description: A detailed description of the primer
    createPrimer:
      allOf:
      - "$ref": "#/components/schemas/PrimerBaseRequest"
      - type: object
        properties:
          item:
            type: object
            required:
            - title
    updatePrimer:
      allOf:
      - "$ref": "#/components/schemas/PrimerBaseRequest"
    SeedBaseRequest:
      type: object
      required:
      - token
      properties:
        token:
          type: string
          example: YOUR TOKEN IS HERE
        item:
          type: object
          properties:
            name:
              type: string
              description: The name of the seed
            owner_id:
              type: integer
              description: id of the owner - if omitted, will default to your member
                id
            genotype:
              type: string
              description: Genetic makeup of the seed
            phenotype:
              type: string
              description: Observable physical or biochemical characteristics of the
                seed
            generation:
              type: string
              description: Generational stage of the seed
              example: F0
            male_parent_id:
              type: integer
              description: The ID of the male parent plant from your Labguru plants
                collection, if applicable.
            female_parent_id:
              type: integer
              description: The ID of the female parent plant from your Labguru plants
                collection, if applicable.
            source:
              type: string
              description: Origin of the seed
            description:
              type: string
              description: Description of the seed
    createSeed:
      allOf:
      - "$ref": "#/components/schemas/SeedBaseRequest"
      - type: object
        properties:
          item:
            type: object
            required:
            - name
    updateSeed:
      allOf:
      - "$ref": "#/components/schemas/SeedBaseRequest"
    CellLineBaseRequest:
      type: object
      required:
      - token
      properties:
        token:
          type: string
          example: YOUR TOKEN IS HERE
        item:
          type: object
          properties:
            name:
              type: string
              description: The name of the cell line
            owner_id:
              type: integer
              description: The ID of the owner - by default it's your member id
            organism:
              type: string
              description: The organism from which the cells were originated
            tissue:
              type: string
              description: The tissue from which the cells were extracted
            medium_and_serum:
              type: string
              description: A supplement used for cultivating cells
            source:
              type: string
              description: The location or environment from which the cells were originated
            description:
              type: string
              description: A detailed description of the cell line
    createCellLine:
      allOf:
      - "$ref": "#/components/schemas/CellLineBaseRequest"
      - type: object
        properties:
          item:
            type: object
            required:
            - name
    updateCellLine:
      allOf:
      - "$ref": "#/components/schemas/CellLineBaseRequest"
    ProteinBaseRequest:
      type: object
      required:
      - token
      properties:
        token:
          type: string
          example: YOUR TOKEN IS HERE
        item:
          type: object
          properties:
            name:
              type: string
              description: The name of the protein
            owner_id:
              type: integer
              description: ID of the owner - if omitted, will default to your id
            alternative_name:
              type: string
              description: An additional name for the protein
            gene:
              type: string
              description: " The gene from which the protein is derived"
            species:
              type: string
              description: The species from which the protein originates
            lg_mutations:
              type: string
              description: List of mutations in the protein structure
            chemical_modifications:
              type: string
              description: Details any chemical modifications the protein has undergone
            tag:
              type: string
              description: A label or tag attached to the protein
            purification_method:
              type: string
              description: The method used to purify the protein from other biological
                components
            mw:
              type: string
              description: The molecular weight of the protein
            extinction_coefficient_280nm:
              type: string
              description: The extinction coefficient at 280 nm
            storage_buffer:
              type: string
              description: The buffer solution in which the protein is stored
            storage_temperature:
              type: string
              description: The temperature in which the protein is stored
            source:
              type: string
              description: The protein source
            sequence:
              type: string
              description: The amino acid sequence of the protein
            description:
              type: string
              description: A detailed description of the protein
    createProtein:
      allOf:
      - "$ref": "#/components/schemas/ProteinBaseRequest"
      - type: object
        properties:
          item:
            type: object
            required:
            - name
    updateProtein:
      allOf:
      - "$ref": "#/components/schemas/ProteinBaseRequest"
    PlantBaseRequest:
      type: object
      required:
      - token
      properties:
        token:
          type: string
          example: YOUR TOKEN IS HERE
        item:
          type: object
          properties:
            name:
              type: string
              description: The botanical name of the plant.
            owner_id:
              type: integer
              description: ID of the owner - if omitted, will default to your id
            phenotype:
              type: string
              description: Observable physical or biochemical characteristics of the
                plant
            genotype:
              type: string
              description: The genetic makeup of the plant
            generation:
              type: string
              description: Generation of the plant
            harvest_date:
              type: string
              format: date
              description: The date when the plant was harvested, formatted as YYYY-MM-DD
              example: '2021-03-11'
            source:
              type: string
              description: The origin of the plant
            description:
              type: string
              description: Description of the plant
    createPlant:
      allOf:
      - "$ref": "#/components/schemas/PlantBaseRequest"
      - type: object
        properties:
          item:
            type: object
            required:
            - name
    updatePlant:
      allOf:
      - "$ref": "#/components/schemas/PlantBaseRequest"
    FlyBaseRequest:
      type: object
      required:
      - token
      properties:
        token:
          type: string
          example: YOUR TOKEN IS HERE
        item:
          type: object
          properties:
            name:
              type: string
              description: The name of the fly
            owner_id:
              type: integer
              description: id of the owner - by default it's your member id
            source:
              type: string
              description: Origin of the fly.
            genotype:
              type: string
              description: Genetic makeup.
            phenotype:
              type: string
              description: Observable characteristics.
            breakpoints_insertions:
              type: string
              description: Genetic insertion points.
            ch_number:
              type: string
              description: Chromosome number.
            ch_te:
              type: string
              description: Transposable element in chromosome.
            description:
              type: string
              description: Description of the fly
    createFly:
      allOf:
      - "$ref": "#/components/schemas/FlyBaseRequest"
      - type: object
        properties:
          item:
            type: object
            required:
            - name
    updateFly:
      allOf:
      - "$ref": "#/components/schemas/FlyBaseRequest"
    SequenceBaseRequest:
      type: object
      required:
      - token
      properties:
        token:
          type: string
          example: YOUR TOKEN IS HERE
        item:
          type: object
          properties:
            title:
              type: string
              description: The name of the sequence
            owner_id:
              type: integer
              description: id of the owner - by default it's your member id
            seq:
              type: string
              description: The actual sequence data in characters
            kind:
              type: integer
              description: 'sequence type: DNA = 1, CDNA = 2, RNA = 3, PROBE = 4,
                PROTEIN = 5'
              example: 2
            accsesion:
              type: string
              description: The unique accession number assigned to the sequence
            organism:
              type: string
              description: The organism from which the sequence is derived
            description:
              type: string
              description: Description of the sequence
    createSequence:
      allOf:
      - "$ref": "#/components/schemas/SequenceBaseRequest"
      - type: object
        properties:
          item:
            type: object
            required:
            - title
            - seq
    updateSequence:
      allOf:
      - "$ref": "#/components/schemas/SequenceBaseRequest"
    RodentSpecimenBaseRequest:
      type: object
      required:
      - token
      properties:
        token:
          type: string
          example: YOUR TOKEN IS HERE
        item:
          type: object
          properties:
            name:
              type: string
              description: The name of the rodent specimen
            status:
              type: string
              description: 'the status of the rodent: alive, dead, missing, sacrificed'
            description:
              type: string
              description: Description of the rodent specimen
            alternative_name:
              type: string
              description: additional name for the rodent specimen
            owner_id:
              type: integer
              description: id of the owner - by default it's your member id
            genotype:
              type: string
              description: genotype
            phenotype:
              type: string
              description: phenotype
            ear_tag:
              type: string
              description: ear tag
            coat_tag:
              type: string
              description: coat tag
            sex:
              type: string
              description: 'sex of the rodent: male, female, unknown'
            ethics:
              type: string
              description: ethics approval id
            dob:
              type: string
              format: date
              description: Date of birth (yyyy-mm-dd)
            dod:
              type: string
              format: date
              description: Date of death (yyyy-mm-dd)
            source:
              type: string
              description: source
    createRodentSpecimen:
      allOf:
      - "$ref": "#/components/schemas/RodentSpecimenBaseRequest"
      - type: object
        properties:
          item:
            type: object
            required:
            - name
            - status
    updateRodentSpecimen:
      allOf:
      - "$ref": "#/components/schemas/RodentSpecimenBaseRequest"
    createMaintenanceType:
      type: object
      required:
      - token
      properties:
        token:
          type: string
          example: YOUR TOKEN IS HERE
        item:
          type: object
          required:
          - name
          properties:
            name:
              type: string
              description: The name of the maintenance type
    updateMaintenanceType:
      type: object
      required:
      - token
      properties:
        token:
          type: string
          example: YOUR TOKEN IS HERE
        item:
          type: object
          required:
          - name
          properties:
            name:
              type: string
              description: The new name of the maintenance type
    FungusBaseRequest:
      type: object
      required:
      - token
      properties:
        token:
          type: string
          example: YOUR TOKEN IS HERE
        item:
          type: object
          properties:
            name:
              type: string
              description: The name of the fungus
            species:
              type: string
              description: Biological species.
            phenotype:
              type: string
              description: Observable traits.
            genotype:
              type: string
              description: Genetic composition.
            host:
              type: string
              description: Associated host organism.
            virulent:
              type: string
              description: Virulence factor.
            sporulate:
              type: string
              description: Ability to form spores.
            mycelia:
              type: string
              description: Mycelial growth.
            fruiting_bodies:
              type: string
              description: Presence of sporocarps.
            owner_id:
              type: integer
              description: id of the owner - by default it's your member id
            source:
              type: string
              description: The origin or source from which the fungus was obtained.
            description:
              type: string
              description: Description of the fungus
    createFungus:
      allOf:
      - "$ref": "#/components/schemas/FungusBaseRequest"
      - type: object
        properties:
          item:
            type: object
            required:
            - name
    updateFungus:
      allOf:
      - "$ref": "#/components/schemas/FungusBaseRequest"
    TissueBaseRequest:
      type: object
      required:
      - token
      properties:
        token:
          type: string
          example: YOUR TOKEN IS HERE
        item:
          type: object
          properties:
            name:
              type: string
              description: The name of the tissue
            alternative_name:
              type: string
              description: An alternative name for the tissue
            species:
              type: string
              description: The species from which the tissue is derived
            genotype_phenotype:
              type: string
              description: Genotype/phenotype
            animal_details:
              type: string
              description: Detailed information about the animal from which the tissue
                was harvested
            tissue_type:
              type: string
              description: 'The type of the tissue '
            harvest_date:
              type: string
              description: Harvest date - in the following format (yyyy-mm-dd)
              example: '2021-06-21'
            fixation_embedding_procedure:
              type: string
              description: Fixation/embedding procedure
            applications:
              type: string
              description: Applications
            storage_conditions:
              type: string
              description: Storage conditions
            owner_id:
              type: integer
              description: id of the owner - by default it's your member id
            source:
              type: string
              description: The origin of the tissue
            description:
              type: string
              description: Description of the tissue
    createTissue:
      allOf:
      - "$ref": "#/components/schemas/TissueBaseRequest"
      - type: object
        properties:
          item:
            type: object
            required:
            - name
    updateTissue:
      allOf:
      - "$ref": "#/components/schemas/TissueBaseRequest"
    RodentStrainBaseRequest:
      type: object
      required:
      - token
      properties:
        token:
          type: string
          example: YOUR TOKEN IS HERE
        item:
          type: object
          properties:
            name:
              type: string
              description: The name of the strain
            alternative_name:
              type: string
              description: additional name for the strain
            transgene:
              type: string
              description: Transgene
            genotype:
              type: string
              description: Genotype
            phenotype:
              type: string
              description: Phenotype
            owner_id:
              type: integer
              description: id of the owner - by default it's your member id
            source:
              type: string
              description: Source
            description:
              type: string
              description: Description of the strain
    createRodentStrain:
      allOf:
      - "$ref": "#/components/schemas/RodentStrainBaseRequest"
      - type: object
        properties:
          item:
            type: object
            required:
            - name
    updateRodentStrain:
      allOf:
      - "$ref": "#/components/schemas/RodentStrainBaseRequest"
    createProtocol:
      type: object
      required:
      - token
      properties:
        token:
          type: string
          example: YOUR TOKEN IS HERE
        item:
          type: string
          example: '{"name":"A protocol name","experiment_procedures":[],"elements":[]}'
    updateProtocol:
      type: object
      required:
      - token
      properties:
        token:
          type: string
          example: YOUR TOKEN IS HERE
        item:
          type: object
          properties:
            name:
              type: string
              description: The protocol name
    createMaintenance:
      type: object
      required:
      - token
      properties:
        token:
          type: string
          example: YOUR TOKEN IS HERE
        item:
          type: object
          required:
          - item_id
          - item_type
          - maintenance_type_id
          - frequency_period
          - frequency_frame
          properties:
            item_id:
              type: integer
              description: The ID of the equipment
            item_type:
              type: string
              description: the class of the item (System::Instrument)
              example: System::Instrument
            maintenance_type_id:
              type: integer
              description: The ID of the maintenance type
            frequency_period:
              type: integer
              description: the time period in numbers
              example: '1'
            frequency_frame:
              type: string
              description: one of the following time frames - hour/day/week/month/year
              example: year
    updateMaintenance:
      type: object
      required:
      - token
      properties:
        token:
          type: string
          example: YOUR TOKEN IS HERE
        item:
          type: object
          required:
          - item_id
          properties:
            item_id:
              type: integer
              description: The ID of the equipment
            frequency_period:
              type: integer
              description: the time period in numbers
              example: '15'
            frequency_frame:
              type: string
              description: one of the following time frames - hour/day/week/month/year
              example: day
    PaperBaseRequest:
      type: object
      required:
      - token
      properties:
        token:
          type: string
          example: YOUR TOKEN IS HERE
        item:
          type: object
          properties:
            name:
              type: string
              description: 'the papers title '
            journal:
              type: string
              description: the time period in numbers
            authors:
              type: string
              description: ''
            publication_date:
              type: string
              format: date
              description: 'in the following format yyyy-mm-dd '
            volume:
              type: string
              description: volume
            pages:
              type: string
              description: pages
            url:
              type: string
              description: www.link.com
            doi:
              type: string
              description: digital object identifier
              example: 10.1002/aur21
            review:
              type: string
              description: Abstract
    createPaper:
      allOf:
      - "$ref": "#/components/schemas/PaperBaseRequest"
      - type: object
        properties:
          item:
            type: object
            required:
            - name
    updatePaper:
      allOf:
      - "$ref": "#/components/schemas/PaperBaseRequest"
    DocumentBaseRequest:
      type: object
      required:
      - token
      properties:
        token:
          type: string
          example: YOUR TOKEN IS HERE
        item:
          type: object
          properties:
            title:
              type: string
              description: 'the document title '
            description:
              type: string
              description: the document description
    createDocument:
      allOf:
      - "$ref": "#/components/schemas/DocumentBaseRequest"
      - type: object
        properties:
          item:
            type: object
            required:
            - title
    updateDocument:
      allOf:
      - "$ref": "#/components/schemas/DocumentBaseRequest"
    ReportBaseRequest:
      type: object
      required:
      - token
      properties:
        token:
          type: string
          example: YOUR TOKEN IS HERE
        item:
          type: object
          properties:
            title:
              type: string
              description: 'the report title '
    createReport:
      allOf:
      - "$ref": "#/components/schemas/ReportBaseRequest"
      - type: object
        properties:
          item:
            type: object
            required:
            - title
    updateReport:
      allOf:
      - "$ref": "#/components/schemas/ReportBaseRequest"
    addAnExperimentSectionToReport:
      type: object
      required:
      - token
      properties:
        token:
          type: string
          example: YOUR TOKEN IS HERE
        item:
          type: object
          required:
          - report_id
          - section_id
          properties:
            report_id:
              type: integer
              description: the report id
            section_id:
              type: string
              description: the experiment procedure id to copy
              example: '32'
    addCoverToReport:
      type: object
      required:
      - token
      properties:
        token:
          type: string
          example: YOUR TOKEN IS HERE
        item:
          type: object
          required:
          - report_id
          - data
          properties:
            report_id:
              type: integer
              description: the report id
            data:
              type: string
              description: cover page data in HTML format
              example: "<h1>Cover Page Heading</h1>"
    NoteBaseRequest:
      type: object
      required:
      - token
      properties:
        token:
          type: string
          example: YOUR TOKEN IS HERE
        item:
          type: object
          required:
          - title
          - project_id
          properties:
            title:
              type: string
              description: 'the note title '
            body:
              type: string
              description: body description of the note
            project_id:
              type: integer
              description: the project id to add note to
    createNote:
      allOf:
      - "$ref": "#/components/schemas/NoteBaseRequest"
      - type: object
        properties:
          item:
            type: object
            required:
            - title
            - project_id
    updateNote:
      allOf:
      - "$ref": "#/components/schemas/NoteBaseRequest"
    CompanyBaseRequest:
      type: object
      required:
      - token
      properties:
        token:
          type: string
          example: YOUR TOKEN IS HERE
        item:
          type: object
          properties:
            name:
              type: string
              description: the company name
            address:
              type: string
              description: address of the company
            web:
              type: string
              description: 'link to the company web page '
            contact:
              type: string
              description: 'contacts '
            email:
              type: string
              description: 'email '
            fax:
              type: string
              description: 'fax number '
            description:
              type: string
              description: 'general description '
    createCompany:
      allOf:
      - "$ref": "#/components/schemas/CompanyBaseRequest"
      - type: object
        properties:
          item:
            type: object
            required:
            - name
    updateCompany:
      allOf:
      - "$ref": "#/components/schemas/CompanyBaseRequest"
    EquipmentBaseRequest:
      type: object
      required:
      - token
      properties:
        token:
          type: string
          example: YOUR TOKEN IS HERE
        item:
          type: object
          properties:
            name:
              type: string
              description: the equipment name
            model_number:
              type: string
              description: model number of the equipment
            serial_number:
              type: string
              description: 'serial number of the equipment '
            equipment_type:
              type: string
              description: 'equipment type '
            manufacturer:
              type: string
              description: 'manufacturer name '
            purchase_date:
              type: string
              format: date
              description: 'purchase date '
            warranty_expired:
              type: string
              format: date
              description: 'warranty_expired '
            maintenance_information:
              type: string
              description: 'maintenance information '
            description:
              type: string
              description: 'general description '
    createEquipment:
      allOf:
      - "$ref": "#/components/schemas/EquipmentBaseRequest"
      - type: object
        properties:
          item:
            type: object
            required:
            - name
    updateEquipment:
      allOf:
      - "$ref": "#/components/schemas/EquipmentBaseRequest"
    MaintenanceTemplateBaseRequest:
      type: object
      required:
      - token
      properties:
        token:
          type: string
          example: YOUR TOKEN IS HERE
        item:
          type: object
          properties:
            equipment_type:
              type: string
              description: the equipment type
            maintenance_type_id:
              type: integer
              description: maintenance type id
            data:
              type: string
              description: templates fields in the follwing json format
              example: '[{"title":"Detergent","value":"Wateriii:"}]'
    createMaintenanceTemplate:
      allOf:
      - "$ref": "#/components/schemas/MaintenanceTemplateBaseRequest"
      - type: object
        properties:
          item:
            type: object
            required:
            - equipment_type
            - maintenance_type_id
            - data
    updateMaintenanceTemplate:
      allOf:
      - "$ref": "#/components/schemas/MaintenanceTemplateBaseRequest"
    MaintenanceEventBaseRequest:
      type: object
      required:
      - token
      properties:
        token:
          type: string
          example: YOUR TOKEN IS HERE
        item:
          type: object
          properties:
            item_id:
              type: integer
              description: the equipment id
            item_type:
              type: string
              description: equipment class name
              example: System::Instrument
            maintenance_id:
              type: integer
              description: maintenance id
            data:
              type: string
              description: templates fields in the follwing json format
              example: '[{"title":"Detergent","value":"Wateriii:"}]'
            performed_at:
              type: string
              format: date
              description: performance data
            performed_by:
              type: integer
              description: member id
    createMaintenanceEvent:
      allOf:
      - "$ref": "#/components/schemas/MaintenanceEventBaseRequest"
      - type: object
        properties:
          item:
            type: object
            required:
            - item_id
            - item_type
            - maintenance_id
            - data
            - performed_by
            - performed_at
    updateMaintenanceEvent:
      allOf:
      - "$ref": "#/components/schemas/MaintenanceEventBaseRequest"
    createSection:
      type: object
      required:
      - token
      properties:
        token:
          type: string
          example: YOUR TOKEN IS HERE
        item:
          type: object
          required:
          - name
          - container_id
          - container_type
          properties:
            name:
              type: string
              description: the name of the section
            container_id:
              type: integer
              description: The ID of the experiment/protocol/report the section belongs
                to
            container_type:
              type: string
              description: the type of the container - Projects::Experiment | Knowledgebase::Protocol
                | Knowledgebase::AbstractDocument
              example: Projects::Experiment
            position:
              type: integer
              description: the section position
    updateSection:
      type: object
      required:
      - token
      properties:
        token:
          type: string
          example: YOUR TOKEN IS HERE
        item:
          type: object
          properties:
            name:
              type: string
              description: the name of the section
            container_id:
              type: integer
              description: The ID of the experiment/protocol/report the section belongs
                to
            container_type:
              type: string
              description: the type of the container - Projects::Experiment\Knowledgebase::Protocol\Knowledgebase::Report
              example: Projects::Experiment
            position:
              type: integer
              description: the section position
    moveSection:
      type: object
      required:
      - token
      - container_id
      - container_type
      - list
      properties:
        token:
          type: string
          example: YOUR TOKEN IS HERE
        container_id:
          type: integer
          description: The ID of the container
        container_type:
          type: string
          default: Projects::Experiment
          description: The container type of the section
        list:
          type: array
          items:
            type: integer
          description: |-
            An array of section IDs.<br>
                            The order of IDs in this list defines the new arrangement of sections on the page
          example:
          - 110
          - 111
    createFolder:
      type: object
      required:
      - token
      properties:
        token:
          type: string
          example: YOUR TOKEN IS HERE
        item:
          type: object
          required:
          - project_id
          - title
          properties:
            project_id:
              type: integer
              description: The ID of the project
            title:
              type: string
              description: The folder title
    updateFolder:
      type: object
      required:
      - token
      properties:
        token:
          type: string
          example: YOUR TOKEN IS HERE
        item:
          type: object
          properties:
            project_id:
              type: integer
              description: The ID of the project
            title:
              type: string
              description: The folder title
    StorageBaseRequest:
      type: object
      required:
      - token
      properties:
        token:
          type: string
          example: YOUR TOKEN IS HERE
        system_storage_storage:
          type: object
          properties:
            name:
              type: string
              description: Name of the storage unit.
            storage_type_id:
              type: integer
              description: 'The ID of the storage type.<br>Examples include: 1 (Room),
                21 (Shelf), 61 (Closet), 81 (Drawer), 111 (Cage), 120 (Refrigerator),
                121 (Freezer), 201 (Cryo container), 251 (Slide Rack), 322 (Rack),
                321 (Other).'
            description:
              type: string
              description: description of the storage unit
            temperature:
              type: integer
              description: temperature of the storage unit.
    createStorage:
      allOf:
      - "$ref": "#/components/schemas/StorageBaseRequest"
      - type: object
        properties:
          system_storage_storage:
            type: object
            required:
            - name
            - storage_type_id
    updateStorage:
      allOf:
      - "$ref": "#/components/schemas/StorageBaseRequest"
    BoxBaseRequest:
      type: object
      required:
      - token
      properties:
        token:
          type: string
          example: YOUR TOKEN IS HERE
        item:
          type: object
          properties:
            name:
              type: string
              description: 'the box name '
            rows:
              type: integer
              description: number of rows
            cols:
              type: integer
              description: number of columns
            box_type:
              type: integer
              description: 'one of the following: [["Primer", 0], ["General", -1],
                ["Tube", -1], ["Seed", -2], ["Fly", -3], ["Bacterium", -4], ["Cell
                Line", -5], ["Tissue", -6], ["Antibody", -7], ["Plasmid", -8], ["Glycerol",
                -9], ["Enzyme", -10], ["Consumable", -11], ["Yeast", -12], ["Fungus",
                -13], ["Virus", -14], ["Protein", -15], ["Lipid", -16], ["Worm", -17],
                ["Sequence", -18], ["Zebrafish", -19], ["Gene", -20], ["Compound",
                -21]]'
              example: 0
            color:
              type: string
              description: '["pink", "red", "orange", "yellow", "beige", "white",
                "blue", "purple", "green", "brown", "gray", "black"]'
            shared:
              type: boolean
              description: Personal - false/ shared - true(default)
            barcode:
              type: string
              description: the barcode of the box
    createBox:
      allOf:
      - "$ref": "#/components/schemas/BoxBaseRequest"
      - type: object
        properties:
          item:
            type: object
            required:
            - name
    updateBox:
      allOf:
      - "$ref": "#/components/schemas/BoxBaseRequest"
    createTag:
      type: object
      required:
      - token
      properties:
        token:
          type: string
          example: YOUR TOKEN IS HERE
        item:
          type: object
          required:
          - tag
          - class_name
          - item_id
          properties:
            tag:
              type: string
              description: 'the tag name '
            class_name:
              type: string
              description: the item type to tag
              example: Biocollections::Antibody
            item_id:
              type: string
              description: The ID of the item to tag
    deleteTag:
      type: object
      required:
      - token
      properties:
        token:
          type: string
          example: YOUR TOKEN IS HERE
        item:
          type: object
          required:
          - tag
          - class_name
          - item_id
          properties:
            tag:
              type: string
              description: 'the tag name to remove '
            class_name:
              type: string
              description: the item type to remove the tag from
              example: Biocollections::Antibody
            item_id:
              type: string
              description: The ID of the item to remove the tag from
    EventBaseRequest:
      type: object
      required:
      - token
      properties:
        token:
          type: string
          example: YOUR TOKEN IS HERE
        item:
          type: object
          properties:
            name:
              type: string
              description: event title
            start_date:
              type: string
              format: date
              description: the event start date
            end_date:
              type: string
              format: date
              description: the event end date
            description:
              type: string
              description: " text description for this event"
            notify_members:
              type: string
              description: 'who should be notified regarding the event: notify only
                me =[1], notify all participants = [-1], none =[0]'
              example: "[0]"
            notify_at:
              type: string
              format: date
              description: when to notify about the event
            is_fullday_event:
              type: boolean
              description: true/false
            repeats:
              type: integer
              description: 1/0
            repeat_frame:
              type: string
              description: the time frame which the event will be repeated at - Never,
                days, weeks, months
              example: Never
            eventable_id:
              type: integer
              description: the equipment id which the event is related to
            eventable_type:
              type: string
              description: the item class name - System::Instrument
              example: System::Instrument
    createEvent:
      allOf:
      - "$ref": "#/components/schemas/EventBaseRequest"
      - type: object
        properties:
          item:
            type: object
            required:
            - name
            - start_date
            - end_date
    updateEvent:
      allOf:
      - "$ref": "#/components/schemas/EventBaseRequest"
    createWebhook:
      type: object
      required:
      - token
      properties:
        token:
          type: string
          example: YOUR TOKEN IS HERE
        item:
          type: object
          required:
          - trigger_key
          - active
          - url
          properties:
            trigger_key:
              type: string
              description: trigger key
              example: knowledgebase_document.signed
            active:
              type: boolean
              description: by default it's false
              example: false
            url:
              type: string
              description: url
              example: https://prod-flow.labguru.com/flows/1234567/flow_runs.json
    updateWebhook:
      type: object
      required:
      - token
      properties:
        token:
          type: string
          example: YOUR TOKEN IS HERE
        item:
          type: object
          properties:
            trigger_key:
              type: string
              description: trigger key
              example: knowledgebase_document.signed
            active:
              type: boolean
              description: by default it's false
              example: false
            url:
              type: string
              description: url
              example: https://prod-flow.labguru.com/flows/1234567/flow_runs.json
    createDataset:
      type: object
      required:
      - token
      properties:
        token:
          type: string
          example: YOUR TOKEN IS HERE
        item:
          type: object
          required:
          - name
          - data_attachment_id
          properties:
            name:
              type: string
              description: dataset name
            data_attachment_id:
              type: integer
              description: dataset attachment id
            sdf_attachment_id:
              type: integer
              description: SDF attachment id
            description:
              type: string
              description: dataset description
    assignItemToDataset:
      type: object
      required:
      - token
      properties:
        token:
          type: string
          example: YOUR TOKEN IS HERE
        item:
          type: object
          required:
          - item_type
          - item_id
          properties:
            item_type:
              type: string
              description: the item type to attach the dataset to
            item_id:
              type: integer
              description: The ID of the item
    createVisualization:
      type: object
      required:
      - token
      properties:
        token:
          type: string
          example: YOUR TOKEN IS HERE
        item:
          type: object
          required:
          - name
          - dataset_id
          - attachment_id
          properties:
            name:
              type: string
              description: visualization name
            dataset_id:
              type: integer
              description: the dataset id
            attachment_id:
              type: integer
              description: the attachment id
    createVector:
      type: object
      required:
      - token
      - dataset_id
      - vector_data
      properties:
        token:
          type: string
          example: YOUR TOKEN IS HERE
        dataset_id:
          type: integer
          description: the dataset id
        vector_data:
          type: string
          description: 'fields must be same as column headers in the dataset {"data_header":
            "item_name"}'
          example:
            column1: value1
            column2: value2
    updateVector:
      type: object
      required:
      - token
      properties:
        token:
          type: string
          example: YOUR TOKEN IS HERE
        dataset_id:
          type: integer
          description: the dataset id
        vector_data:
          type: string
          description: 'fields must be same as column headers in the dataset - {"data_header":
            "item_name"}'
          example:
            column1: value1
            column2: value2
    GenericItemBaseRequest:
      type: object
      required:
      - token
      properties:
        token:
          type: string
          example: YOUR TOKEN IS HERE
        item:
          type: object
          properties:
            name:
              type: string
              description: generic item name
            description:
              type: string
              description: Text description for this generic item
    createGenericItem:
      allOf:
      - "$ref": "#/components/schemas/GenericItemBaseRequest"
      - type: object
        properties:
          item:
            type: object
            required:
            - name
    updateGenericItem:
      allOf:
      - "$ref": "#/components/schemas/GenericItemBaseRequest"
    addItem:
      title: Add item
      type: object
      required:
      - token
      properties:
        token:
          type: string
          example: YOUR TOKEN IS HERE
        item:
          type: object
          required:
          - collection_type
          - item_id
          - quantity
          properties:
            collection_type:
              type: string
              description: The type of collection, specified in singular form, such
                as - Biocollections::Antibody
            item_id:
              type: integer
              description: The id of the item to be added to the shopping list
            price:
              type: number
              format: float
              description: The price of the item
            currency:
              type: integer
            quantity:
              type: integer
              description: The number of units of the item to be added to the shopping
                list.
            remarks:
              type: string
              description: Additional comments or special instructions related to
                the item.
    addCustomItem:
      title: Add custom item
      type: object
      required:
      - token
      properties:
        token:
          type: string
          example: YOUR TOKEN IS HERE
        item:
          type: object
          required:
          - collection_type
          - collection_id
          - item_id
          - quantity
          properties:
            collection_type:
              type: string
              description: The name of the custom collection to which the item belongs.
            collection_id:
              type: integer
              description: The id of the custom collection within the system.
            item_id:
              type: integer
              description: The id of the item to be added to the shopping list
            price:
              type: number
              format: float
              description: The price of the item
            currency:
              type: integer
            quantity:
              type: integer
              description: The number of units of the item to be added to the shopping
                list.
            remarks:
              type: string
              description: Additional comments or special instructions related to
                the item.
    updateOrder:
      type: object
      required:
      - token
      properties:
        token:
          type: string
          example: YOUR TOKEN IS HERE
        item:
          type: object
          properties:
            price:
              type: number
              format: float
              description: price
            budget:
              type: string
              description: budget
            currency:
              type: integer
              description: '0 = NIS, 1 = DOLLAR, 2 = EURO, 3 = POUND, 4 = NOK '
            quantity:
              type: integer
              description: quantity
            order_number:
              type: integer
              description: order number
            description:
              type: string
              description: description
    MaterialBaseRequest:
      type: object
      required:
      - token
      properties:
        token:
          type: string
          example: YOUR TOKEN IS HERE
        item:
          type: object
          properties:
            name:
              type: string
              description: Material name
            company_id:
              type: integer
              description: "[required] - in case material is commercial"
            produce_by:
              type: string
              description: "[required] - in case material is non commercial"
            description:
              type: string
              description: description
            cas_number:
              type: integer
              description: CAS Registry Number
            mw:
              type: string
              description: mw
            web:
              type: string
              description: url
            materialtype_id:
              type: integer
              description: the material type id
            units:
              type: string
              description: units
            price:
              type: number
              format: float
              description: price
            currency:
              type: integer
              description: '0 = NIS, 1 = DOLLAR, 2 = EURO, 3 = POUND, 4 = NOK '
    createMaterial:
      allOf:
      - "$ref": "#/components/schemas/MaterialBaseRequest"
      - type: object
        properties:
          item:
            type: object
            required:
            - name
    updateMaterial:
      allOf:
      - "$ref": "#/components/schemas/MaterialBaseRequest"
    StockBaseRequest:
      type: object
      required:
      - token
      properties:
        token:
          type: string
          example: YOUR TOKEN IS HERE
        item:
          type: object
          properties:
            name:
              type: string
              description: 'the stock name '
            storage_id:
              type: integer
              description: 'type of storages: 1 - Room, 21 - Shelf, 61 - Closet, 81
                - Drawer, 111 - Cage, 120 - Refrigerator ,121 - Freezer, 181 - Rack
                Cell , 201 - Cryo container, 251 - Slide Rack, 261 - Rack Cell, 322
                - Rack, 323 - Rack Cell, 321 - Other'
            storage_type:
              type: string
              description: 'storage class name - [Box - System::Storage::Box] [all
                other storages type - System::Storage::Storage] '
            stockable_type:
              type: string
              description: 'class name of the stockable item type, such as: Biocollections::Antibody'
            stockable_id:
              type: integer
              description: stockable item id
            location_in_box:
              type: integer
              description: if storage is grid box, indicates numerical location in
                box
            owner_id:
              type: integer
              description: id of the owner - by default it's your member id
            expiration_date:
              type: string
              format: date
              description: 'in the following format: yyyy-mm-dd '
            lot:
              type: string
              description: number of batch
            description:
              type: string
              description: general description
            barcode:
              type: string
              description: 'barcode '
            stored_by:
              type: integer
              description: member id
            concentration:
              type: string
              description: concentration
            concentration_prefix:
              type: string
              description: x10^/E^
              example: E^
            concentration_unit_id:
              type: integer
              description: 9-mg/mL, 10-g/L, 11-M, 12-mM, 13-µM, 14-µg/mL, 15-ng/µL,
                16-ratio, 17-%, 18-g/mL
              example: 9
            concentration_exponent:
              type: integer
              description: concentration exponent
            concentration_remarks:
              type: string
              description: concentration remarks
            volume:
              type: string
              description: volume
            volume_prefix:
              type: string
              description: x10^/E^
              example: E^
            volume_unit_id:
              type: integer
              description: 6-L, 7-mL, 8-µL
              example: 7
            volume_exponent:
              type: integer
              description: volume exponent
            volume_remarks:
              type: string
              description: volume remarks
            weight:
              type: string
              description: weight
            weight_prefix:
              type: string
              description: x10^/E^
              example: E^
            weight_unit_id:
              type: integer
              description: 1 -Kg, 2-g, 3-mg, 4-µg, 5-ng
              example: 3
            weight_exponent:
              type: integer
              description: weight exponent
            weight_remarks:
              type: string
              description: weight remarks
    createStock:
      allOf:
      - "$ref": "#/components/schemas/StockBaseRequest"
      - type: object
        properties:
          item:
            type: object
            required:
            - name
            - storage_id
            - storage_type
            - stockable_type
            - stockable_id
    updateStock:
      allOf:
      - "$ref": "#/components/schemas/StockBaseRequest"
    updateStockAmountInSampleElement:
      type: object
      required:
      - token
      properties:
        token:
          type: string
          example: YOUR TOKEN IS HERE
        unit_type:
          type: string
          description: weight/volume
        element_id:
          type: integer
          description: the samples element id
        amount_used:
          type: string
          description: amount_used
          example: 15
        unit_type_name:
          type: string
          description: unit_type_name
          example: mg
        subtract:
          type: string
          description: 'true'
          example: 'true'
        sample_id:
          type: integer
          description: the sample id
    createUnit:
      type: object
      required:
      - token
      properties:
        token:
          type: string
          example: YOUR TOKEN IS HERE
        item:
          type: object
          required:
          - name
          - type_for
          properties:
            name:
              type: string
              description: 'unit name '
            type_for:
              type: string
              description: weight/volume/concentration
    deleteUnit:
      type: object
      required:
      - token
      - unit_type
      properties:
        token:
          type: string
          example: YOUR TOKEN IS HERE
        unit_type:
          type: string
          description: weight/volume/concentration
          example: weight
    createRequest:
      type: object
      required:
      - token
      properties:
        token:
          type: string
          example: YOUR TOKEN IS HERE
        item:
          type: object
          required:
          - request_template_id
          properties:
            name:
              type: string
              description: The name of the request
            request_template_id:
              type: integer
              description: The ID of the request template to start the request from
            priority:
              type: string
              description: Specifies the priority level of the request. By default
                - Low
              enum:
              - Low
              - Medium
              - High
              - Urgent
              example: Medium
    updateRequest:
      type: object
      required:
      - token
      properties:
        token:
          type: string
          example: YOUR TOKEN IS HERE
        item:
          type: object
          properties:
            name:
              type: string
              description: The name of the request
            team_id:
              type: integer
              description: The performing team ID
            status:
              type: string
              description: The request status, indicating the current state of the
                request.
              enum:
              - Draft
              - Pending
              - Approved
              - Awaiting Assignment
              - Assigned
              - In Progress
              - Completed
              example: Draft
            priority:
              type: string
              description: Specifies the priority level of the request. By default
                - Low
              enum:
              - Low
              - Medium
              - High
              - Urgent
              example: Medium
            due_date:
              type: string
              format: date
              description: Date in the following format - 'YYYY-MM-DD'
              example: '2024-03-11'
    submitRequest:
      type: object
      required:
      - token
      properties:
        token:
          type: string
          example: YOUR TOKEN IS HERE
        item:
          type: object
          properties:
            name:
              type: string
              description: The name of the request
            team_id:
              type: integer
              description: The performing team ID
            due_date:
              type: string
              format: date
              description: Date in the following format - 'YYYY-MM-DD'
              example: '2024-03-11'
    approvedRequest:
      type: object
      required:
      - token
      properties:
        token:
          type: string
          example: YOUR TOKEN IS HERE
        item:
          type: object
          properties:
            team_id:
              type: integer
              description: The performing team ID
            due_date:
              type: string
              format: date
              description: Date in the following format - 'YYYY-MM-DD'
              example: '2024-03-11'
            priority:
              type: string
              description: Specifies the priority level of the request. By default
                - Low
              enum:
              - Low
              - Medium
              - High
              - Urgent
              example: Medium
    acceptRequest:
      type: object
      required:
      - token
      properties:
        token:
          type: string
          example: YOUR TOKEN IS HERE
        item:
          type: object
          properties:
            priority:
              type: string
              description: Specifies the priority level of the request. By default
                - Low
              enum:
              - Low
              - Medium
              - High
              - Urgent
              example: Medium
    selectPerformer:
      type: object
      required:
      - token
      properties:
        token:
          type: string
          example: YOUR TOKEN IS HERE
        item:
          type: object
          required:
          - performed_by
          properties:
            performed_by:
              type: integer
              description: The ID of the member which will perform the request
    startRequest:
      type: object
      required:
      - token
      properties:
        token:
          type: string
          example: YOUR TOKEN IS HERE
        item:
          type: object
          properties:
            performed_by:
              type: integer
              description: The ID of the member which will perform the request
    createRequestTemplate:
      type: object
      required:
      - token
      properties:
        token:
          type: string
          example: YOUR TOKEN IS HERE
        item:
          type: object
          required:
          - request_type
          properties:
            name:
              type: string
              description: The name of the request template
            request_type:
              type: string
              description: The type of request
    updateRequestTemplate:
      type: object
      required:
      - token
      properties:
        token:
          type: string
          example: YOUR TOKEN IS HERE
        item:
          type: object
          properties:
            name:
              type: string
              description: The name of the request template
            request_type:
              type: string
              description: The type of request
    indexFiltering:
      type: object
      required:
      - kendo
      properties:
        kendo:
          type: string
          example: 'true'
        filter:
          type: object
          properties:
            logic:
              type: string
              example: and
              description: Filter logic (e.g., "and" or "or")
            filters:
              type: object
              description: Array of filter objects
              properties:
                '0':
                  type: object
                  description: Filter object
                  properties:
                    field:
                      type: string
                      example: name
                      description: Field name to filter by
                    operator:
                      type: string
                      example: contains
                      description: Filter operator (e.g., "contains")
                    value:
                      type: string
                      example: myValue
                      description: Filter value
                '1':
                  type: object
                  description: Filter object
                  properties:
                    field:
                      type: string
                      example: id
                      description: Field name to filter by
                    operator:
                      type: string
                      example: _eq
                      description: Filter operator (e.g., "_eq")
                    value:
                      type: integer
                      example: '172'
                      description: Filter value
                '2':
                  type: object
                  description: Filter object
                  properties:
                    field:
                      type: string
                      example: stored_on
                      description: Field name to filter by
                    operator:
                      type: string
                      example: _gt
                      description: Filter operator (e.g., "_gt")
                    value:
                      type: string
                      format: date
                      description: Filter value - Date in the following format 'YYYY-MM-DD'
                      example: '2023-01-11'
                '3':
                  type: object
                  description: Filter object
                  properties:
                    field:
                      type: string
                      example: content
                      description: Field name to filter by
                    operator:
                      type: string
                      example: startswith
                      description: Filter operator (e.g., "startswith")
                    value:
                      type: string
                      example: pla
                      description: Filter value
                '4':
                  type: object
                  description: Filter object
                  properties:
                    field:
                      type: string
                      example: stored_by
                      description: Field name to filter by
                    operator:
                      type: string
                      example: contains
                      description: Filter operator (e.g., "contains")
                    value:
                      properties:
                        name:
                          type: string
                          example: User Name
                          description: User name to filter by
                        id:
                          type: string
                          example: "[1]"
                          description: User id in the following format "[1]"
    addVisualization:
      type: object
      required:
      - token
      properties:
        token:
          type: string
          example: YOUR TOKEN IS HERE
        item:
          type: object
          required:
          - name
          - dataset_id
          - attachment_id
          properties:
            name:
              type: string
              description: The name of the visualization
            dataset_id:
              type: integer
              description: The ID of the dataset to which the visualization will be
                linked to
            attachment_id:
              type: integer
              description: The ID of the attachment (image) that will appear under
                the 'Visualization' tab of the dataset
    addElement:
      title: Add element
      type: object
      required:
      - token
      properties:
        token:
          type: string
          example: YOUR TOKEN IS HERE
        item:
          type: object
          required:
          - container_id
          - container_type
          - element_type
          - data
          description: Valid element types are:<br>• samples<br>• equipment<br>• code<br>•
            compound<br>• reaction<br>• text<br>• steps<br>• excel<br>• plate<br>
          properties:
            name:
              type: string
              description: Specifies the name of the element. If not provided, the
                element will be assigned a default name
            container_id:
              type: integer
              description: The ID of the section to which the element will be added
            container_type:
              type: string
              description: The type of container in which the element will be placed
              example: ExperimentProcedure
            element_type:
              type: string
              description: The type of element to be added
            data:
              type: string
              nullable: true
    updateTextElement:
      title: Update text element
      type: object
      required:
      - token
      properties:
        token:
          type: string
          example: YOUR TOKEN IS HERE
        data:
          type: string
          example: The updated text
    updateFormElement:
      title: Update form element
      type: object
      required:
      - token
      properties:
        token:
          type: string
          example: YOUR TOKEN IS HERE
        form_json:
          type: string
          description: |-
            A JSON string containing key-value pairs that specify updates to the form fields.
                              Each key corresponds to a form field name and the value specifies the new content for that field.
          example:
            Field Name: Field Content
    addPlateElement:
      title: Add plate element
      type: object
      required:
      - token
      properties:
        token:
          type: string
          example: YOUR TOKEN IS HERE
        item:
          type: object
          required:
          - container_id
          - container_type
          - element_type
          - data
          - rows
          - cols
          description: Valid plate dimensions are:<br>• 3x2 (6 wells)<br>• 4x3 (12
            wells)<br>• 6x4 (24 wells)<br>• 8x6 (48 wells)<br>• 12x6 (72 wells)<br>•
            12x8 (96 wells)<br>• 24x16 (384 wells)<br>
          properties:
            name:
              type: string
              description: Specifies the name of the element. If not provided, the
                element will be assigned a default name
            container_id:
              type: integer
              description: The ID of the section to which the element will be added
            container_type:
              type: string
              description: The type of container in which the plate element will be
                placed
              example: ExperimentProcedure
            element_type:
              type: string
              description: The type of element to be added
              example: plate
            cols:
              type: integer
              description: the number of columns in the plate layout
            rows:
              type: integer
              description: The number of rows in the plate layout
            data:
              type: string
              nullable: true
    createFixedSamplePoolingEvent:
      title: Create fixed sample pooling event
      type: object
      description: draw a fixed amount from all stocks.
      required:
      - token
      properties:
        token:
          type: string
          example: YOUR TOKEN IS HERE
        item:
          type: object
          required:
          - name
          - pool_type
          - unit
          - unit_type
          - fixed_amount
          - stocks_list
          - pooled_stock_info
          properties:
            name:
              type: string
              description: The description of pool purpose
            unit_type:
              type: string
              description: volume/weight
            pool_type:
              type: string
              example: fixed
            unit:
              type: string
              description: |-
                Valid units of measurement are:

                - For 'volume': 'nL', 'µL', 'mL', 'L'
                - For 'weight': 'ng', 'µg', 'mg', 'g', 'Kg'
              example: µL
            fixed_amount:
              type: integer
              description: Specifies the exact amount to draw
            stocks_list:
              type: array
              description: List of stock IDs from which to draw
              items:
                type: integer
              example:
              - 1291
              - 1293
            pooled_stock_info:
              type: object
              required:
              - name
              - stockable_type
              - stockable_id
              - storage_type
              - storage_id
              description: |-
                Contains all the necessary stock fields for creating a stock during the pooling event.
                                    This object may include all the relevant stock properties.
              properties:
                name:
                  type: string
                stockable_type:
                  type: string
                  description: |-
                    Identifies the class name of the stock item, such as 'Biocollections::Bacterium'.
                                          This indicates the category of the entity and must match valid system-defined class names.
                  example: Biocollections::Bacterium
                stockable_id:
                  type: integer
                storage_type:
                  type: string
                  description: |-
                    Specifies the storage classification, such as 'System::Storage::Storage',
                                            indicating the type of storage facility used for the item.
                  example: System::Storage::Storage
                storage_id:
                  type: integer
    createCustomSamplePoolingEvent:
      title: Create custom sample pooling event
      type: object
      description: draw a custom amount from each stock.
      required:
      - token
      properties:
        token:
          type: string
          example: YOUR TOKEN IS HERE
        item:
          type: object
          required:
          - name
          - unit_type
          - pool_type
          - unit
          - stocks_usage
          - pooled_stock_info
          properties:
            name:
              type: string
              description: The description of pool purpose
            unit_type:
              type: string
              description: volume/weight
            pool_type:
              type: string
              example: custom
            unit:
              type: string
              description: |-
                Valid units of measurement are:

                - For 'volume': 'nL', 'µL', 'mL', 'L'
                - For 'weight': 'ng', 'µg', 'mg', 'g', 'Kg'
              example: µL
            stocks_usage:
              type: object
              description: Hash of stock IDs and the desired amount to pool.
              additionalProperties:
                type: number
                description: Amount to be pooled for the given stock ID.
              example:
                '300': 0.004
                '834': 6
                '45': 5
            pooled_stock_info:
              type: object
              description: |-
                Contains all the necessary stock fields for creating a stock during the pooling event.
                                    This object may include all the relevant stock properties.
              required:
              - name
              - stockable_type
              - stockable_id
              - storage_type
              - storage_id
              properties:
                stockable_type:
                  type: string
                  description: |-
                    Identifies the class name of the stock item, such as 'Biocollections::Bacterium'.
                                            This indicates the category of the entity and must match valid system-defined class names.
                  example: Biocollections::Bacterium
                stockable_id:
                  type: integer
                storage_type:
                  type: string
                  description: |-
                    Specifies the storage classification, such as 'System::Storage::Storage',
                                            indicating the type of storage facility used for the item.
                  example: System::Storage::Storage
                storage_id:
                  type: integer
                name:
                  type: string
    createConsumeSamplePoolingEvent:
      title: Create consume sample pooling event
      type: object
      description: draw the entire amount and consume.
      required:
      - token
      properties:
        token:
          type: string
          example: YOUR TOKEN IS HERE
        item:
          type: object
          required:
          - name
          - unit_type
          - pool_type
          - unit
          - stocks_list
          - pooled_stock_info
          properties:
            name:
              type: string
              description: The description of pool purpose
            unit_type:
              type: string
              description: volume/weight
            pool_type:
              type: string
              example: consume
            unit:
              type: string
              example: µL
              description: |-
                Valid units of measurement are:

                - For 'volume': 'nL', 'µL', 'mL', 'L'
                - For 'weight': 'ng', 'µg', 'mg', 'g', 'Kg'
            stocks_list:
              type: array
              description: List of stock IDs from which to draw
              items:
                type: integer
              example:
              - 1291
              - 1293
            pooled_stock_info:
              type: object
              description: |-
                Contains all the necessary stock fields for creating a stock during the pooling event.
                                    This object may include all the relevant stock properties.
              required:
              - name
              - stockable_type
              - stockable_id
              - storage_type
              - storage_id
              properties:
                stockable_type:
                  type: string
                  description: |-
                    Identifies the class name of the stock item, such as 'Biocollections::Bacterium'.
                                          This indicates the category of the entity and must match valid system-defined class names.
                  example: Biocollections::Bacterium
                stockable_id:
                  type: integer
                storage_type:
                  type: string
                  description: Specifies the storage classification, such as 'System::Storage::Storage',
                    indicating the type of storage facility used for the item.
                  example: System::Storage::Storage
                storage_id:
                  type: integer
                name:
                  type: string
    FlagBaseRequest:
      type: object
      required:
      - token
      properties:
        token:
          type: string
          example: YOUR TOKEN IS HERE
        item:
          type: object
          properties:
            title:
              type: string
              description: Specifies the name of the flag
            icon:
              type: string
              description: The icon of the flag
              enum:
              - star
              - bolt
              - thumbs-up
              - thumbs-down
              - question
              - exclamation
              - bell
              - bell-slash
              - fire
              - sun
              example: star
            color:
              type: string
              description: The color of the flag
              enum:
              - green-light
              - green
              - green-dark
              - red-light
              - red
              - red-dark
              - blue-light
              - blue
              - blue-dark
              - orange-light
              - orange
              - orange-dark
              - grey-light
              - grey
              - grey-dark
              example: green
            description:
              type: string
              description: General description of the flag
    createFlag:
      allOf:
      - "$ref": "#/components/schemas/FlagBaseRequest"
      - type: object
        properties:
          item:
            type: object
            required:
            - title
    updateFlag:
      allOf:
      - "$ref": "#/components/schemas/FlagBaseRequest"
    InvalidRequestError:
      type: object
      properties:
        error_message:
          type: string
        type:
          type: string
          example: invalid_request_error
    UnprocessableEntity:
      type: object
      properties:
        error_message:
          type: string
        type:
          type: string
          example: invalid_request_error
    InternalServerError:
      type: object
      properties:
        error_message:
          type: string
        type:
          type: string
    Unauthorized:
      type: object
      properties:
        message:
          type: string
          example: You are not authorized to perform this action
    OK:
      type: object
      properties:
        message:
          type: string
        type:
          type: string
          example: Created
    NotFound:
      type: object
      properties:
        error:
          type: string
          example: Resource not found
