openapi: 3.0.3
info:
    title: Documentation
    description: Documentation for the Track and Trace infrastructure
    version: 1.0.5
servers:
    - url: https://api.finboot.io
paths:
    /v1/assets/find:
        get:
            description: get an Asset Id by the display-name
            operationId: assetExistsByDisplayName
            parameters:
                - $ref: '#/components/parameters/DisplayNameValueQuery'
                - $ref: '#/components/parameters/OrgIdQuery'
                - $ref: '#/components/parameters/SupplyIdQuery'
                - $ref: '#/components/parameters/WorkflowIdRequiredQuery'
            responses:
                "200":
                    $ref: '#/components/responses/AssetFindResponse'
                "404":
                    description: Asset not found
            security:
                - bearerAuth: []
            summary: search for an Asset by display-name value and return the trackId if exists.
            tags:
                - Assets
    /v1/assets/list:
        get:
            description: Get a list of Assets by its track ids
            operationId: getAssetsByTrackId
            parameters:
                - $ref: '#/components/parameters/AssetIdsQuery'
                - $ref: '#/components/parameters/OrgIdQuery'
            responses:
                "200":
                    $ref: '#/components/responses/AssetFullDetailsListResponse'
            security:
                - bearerAuth: []
            summary: Get Assets by track ids
            tags:
                - Assets
    /v1/file-upload:
        post:
            description: "This endpoint allows you to upload a file up to `50 Megabytes`. \nThere are some valid extensions to upload such as:\n\n* PDF, DOC, DOCX, XLS, CSV, TXT, JPG, JPEG, PNG and ZIP\n\n\n\nIf the required properties are not provided, a `422` error code will be returned.\n\nIf the request is successful, the API will return an `UploadedFile` object, which includes information about \nthe file that was uploaded."
            operationId: fileUpload
            requestBody:
                content:
                    multipart/form-data:
                        encoding:
                            fileData:
                                contentType: application/pdf, application/msword, application/vnd.openxmlformats-officedocument.wordprocessingml.document, application/zip, application/x-tika-ooxml, text/plain, application/vnd.ms-excel, application/vnd.openxmlformats-officedocument.spreadsheetml.sheet, text/csv, image/png, image/jpeg
                        schema:
                            $ref: '#/components/schemas/UploadFileAction'
                required: true
            responses:
                "200":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/UploadedFile'
                    description: Data for the uploaded file
                "422":
                    description: |-
                        Errors with this error code will occur because one of the following validation issues occurred:

                        * The 'trackId' value is invalid
                        * The 'assetVersion' value is invalid
                        * The 'supplyChainId' value is invalid
                        * The 'workflowDefinitionId' value is invalid
                        * The 'extensionFile' value is invalid
                        * The 'file' value is invalid
            summary: Upload a file
            tags:
                - File Upload
    /v1/inventory/balance:
        get:
            description: Get a list of balances
            operationId: getBalancesList
            parameters:
                - $ref: '#/components/parameters/OrgIdQuery'
                - $ref: '#/components/parameters/InventoryIdQuery'
            responses:
                "200":
                    $ref: '#/components/responses/BalancesResponse'
                "204":
                    $ref: '#/components/responses/EmptyArray'
            security:
                - bearerAuth: []
            summary: Get all balances related to an organization and inventory
            tags:
                - Inventory
    /v1/inventory/event:
        get:
            description: Get a list of inventory events
            operationId: getInventoryEventsList
            parameters:
                - $ref: '#/components/parameters/OrgIdQuery'
                - $ref: '#/components/parameters/ProductIdQuery'
                - $ref: '#/components/parameters/InventoryIdQuery'
                - $ref: '#/components/parameters/DateFromQuery'
                - $ref: '#/components/parameters/DateToQuery'
                - $ref: '#/components/parameters/TagsQuery'
                - $ref: '#/components/parameters/FlowQuery'
                - $ref: '#/components/parameters/PageSizeQuery'
                - $ref: '#/components/parameters/PageQuery'
                - $ref: '#/components/parameters/SortByQuery'
            responses:
                "200":
                    $ref: '#/components/responses/InventoryEventsPageResponse'
            security:
                - bearerAuth: []
            summary: Get all inventory events related to a product and an inventory
            tags:
                - Inventory
    /v1/inventory/product-balance:
        get:
            description: Get the balance of a product
            operationId: getProductBalance
            parameters:
                - $ref: '#/components/parameters/OrgIdQuery'
                - $ref: '#/components/parameters/InventoryIdQuery'
                - $ref: '#/components/parameters/ProductIdQuery'
                - $ref: '#/components/parameters/DateFromQuery'
                - $ref: '#/components/parameters/DateToQuery'
            responses:
                "200":
                    $ref: '#/components/responses/BalanceResponse'
            security:
                - bearerAuth: []
            summary: Get the balance related an specific product
            tags:
                - Inventory
    /v1/qr:
        get:
            description: Generate the QR code to access the Digital Product Passport
            operationId: getQRFile
            parameters:
                - $ref: '#/components/parameters/TokenQuery'
            responses:
                "200":
                    content:
                        application/octet-stream:
                            schema:
                                type: object
                    description: The file with the QR code
            summary: Generate QR code
            tags:
                - DigitalProductPassport
    /v1/step-executions:
        put:
            deprecated: true
            description: "This endpoint allows you to start or update a step in a workflow. To do so, you'll need to provide metadata \nabout the step and its execution in the form of a `StepMetadata` object in the request body.\n\nAs part of the body `StepMetadata` object you can also include the `stepExecutorMetadata` to provide any \nadditional metadata required to run the step. The specific properties required at each endpoint are dynamic \ndepending on what has been configured for this step in a workflow. You can see what properties are required \nby making a GET request to `/v1/step-executions/execution-metadata/{stepDefinitionId}/{workflowDefinitionId}` with the relevant step definition ID. \n\nIf the required properties are not provided, a `422` error code will be returned.\n\nIf the request is successful, the API will return a `StepInstance` object, which includes information about \nthe step instance that was created.\n\nNote that certain error codes may be returned if the required metadata is not provided or if validation issues \nare encountered. More information on these error codes can be found in the responses section below."
            operationId: executeStep
            parameters:
                - $ref: '#/components/parameters/OrganizationIdQuery'
            requestBody:
                content:
                    application/json:
                        schema:
                            $ref: '#/components/schemas/StepMetadata'
                description: Metadata about the step and its execution
                required: true
            responses:
                "200":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/StepInstance'
                    description: Successfully started the step execution process
                "403":
                    description: The identity does not have access to the target Facility
                "404":
                    description: |-
                        Errors with this error code will occur if one of the following does not exist:

                        * Step definition to execute
                        * Workflow definition
                        * Supply chain
                        * Asset
                        * Token for the workflow instance's asset in the ledger
                "409":
                    description: The step execution process has already been started
                "422":
                    description: |-
                        Errors with this error code will occur because one of the following validation issues occurred:

                        * The 'trackId' value is required for the INIT action type
                        * The step definition's action type is invalid
                        * The workflow definition's status is invalid
                        * The asset template is invalid
                        * Unfinished workflow instances were found for the target asset
                        * The step definition's facility does not match the asset custodian
                        * The step definition has already been executed or started
                        * One or more next step definitions have already been executed or started
                        * The previous non-optional step definition has not been started
            security:
                - bearerAuth: []
            summary: Start / Update a step in a workflow
            tags:
                - Step Execution
    /v1/steps/share:
        post:
            description: This endpoint allows the caller to create an access token to access the step instance form and return an URL with the param
            operationId: createAccessTokenForStep
            parameters:
                - $ref: '#/components/parameters/OrganizationIdQuery'
            requestBody:
                content:
                    application/json:
                        schema:
                            $ref: '#/components/schemas/CreateStepShareLinkRequest'
                required: true
            responses:
                "200":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/StepInstanceShared'
                    description: The URL with the param to share with the suppliers
                "400":
                    description: Step instance cannot be shared
                "403":
                    description: Insufficient permissions to share this step
                "409":
                    description: A shared token already exists for this step
            security:
                - bearerAuth: []
            summary: Create a access token for the step
            tags:
                - Step Share
    /v1/workflows/{instanceId}/steps/{definitionId}:
        put:
            description: Executes the specified step in the given workflow instance
            operationId: runStep
            parameters:
                - in: path
                  name: instanceId
                  required: true
                  schema:
                    type: string
                - in: path
                  name: definitionId
                  required: true
                  schema:
                    type: string
                - $ref: '#/components/parameters/OrganizationIdQuery'
            requestBody:
                content:
                    application/json:
                        schema:
                            $ref: '#/components/schemas/StepExecutionRequest'
                required: true
            responses:
                "200":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/StepExecuteResponse'
                    description: Step executed successfully
                "409":
                    description: Invalid workflow state for step execution (usually if the step has already been started)
                "422":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/StepExecutionValidationError'
                    description: Validation error in step execution
            summary: Execute a specific step in a workflow instance
            tags:
                - Workflow Execution
    /v1/workflows/{instanceId}/steps/{definitionId}/retry:
        put:
            description: Allows retrying a failed step with corrected metadata to resolve validation or execution errors
            operationId: retryStep
            parameters:
                - in: path
                  name: instanceId
                  required: true
                  schema:
                    type: string
                - in: path
                  name: definitionId
                  required: true
                  schema:
                    type: string
                - $ref: '#/components/parameters/OrganizationIdQuery'
            requestBody:
                content:
                    application/json:
                        schema:
                            $ref: '#/components/schemas/StepExecutionRequest'
                required: true
            responses:
                "200":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/StepExecuteResponse'
                    description: Step retry executed successfully
                "404":
                    description: Workflow instance or step definition not found
                "409":
                    description: Step cannot be retried (not in failed state or already being retried)
                "422":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/StepExecutionValidationError'
                    description: Validation error in step retry
            summary: Retry a failed step with corrected data
            tags:
                - Workflow Execution
    /v1/workflows/init:
        post:
            description: Creates a new workflow instance and executes its initialization step
            operationId: initWorkflow
            parameters:
                - $ref: '#/components/parameters/OrganizationIdQuery'
            requestBody:
                content:
                    application/json:
                        schema:
                            $ref: '#/components/schemas/WorkflowInitRequest'
                required: true
            responses:
                "201":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/WorkflowInitResponse'
                    description: Workflow instance created and initialized successfully
                "422":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/StepExecutionValidationError'
                    description: Validation error in step execution
            summary: Initialize a workflow instance and run the init step
            tags:
                - Workflow Execution
components:
    schemas:
        ArrayFieldDefinition:
            allOf:
                - $ref: '#/components/schemas/FieldDefinition'
                - properties:
                    itemType:
                        $ref: '#/components/schemas/FieldDefinition'
                        description: Definition of the type of items that can be included in the array
                    maxItems:
                        description: Maximum number of items allowed in the array
                        minimum: 0
                        type: integer
                    minItems:
                        description: Minimum number of items required in the array
                        minimum: 0
                        type: integer
                    uniqueItems:
                        description: Whether all items in the array must be unique
                        type: boolean
                  required:
                    - itemType
                    - minItems
                  type: object
            description: Definition for array type fields that can contain multiple values of a specified type
        AssetDisplayPropertyDTO:
            properties:
                name:
                    type: string
                value:
                    type: string
            type: object
        AssetFullDetailsDTO:
            properties:
                assetTemplateId:
                    type: string
                dateCreated:
                    format: date-time
                    type: string
                dateUpdated:
                    format: date-time
                    type: string
                id:
                    type: string
                metadata:
                    type: string
                organizationId:
                    type: string
                propertiesList:
                    items:
                        $ref: '#/components/schemas/AssetPropertyDetailsDTO'
                    type: array
                snapshotId:
                    type: string
            type: object
        AssetFullDetailsPageDTO:
            allOf:
                - $ref: '#/components/schemas/Page'
            properties:
                pageContent:
                    items:
                        $ref: '#/components/schemas/AssetFullDetailsDTO'
                    type: array
            type: object
        AssetHistory:
            properties:
                assetVersion:
                    example: "1"
                    format: int32
                    type: integer
                dateCreated:
                    example: 1686047572067
                    format: int64
                    type: integer
                isFinished:
                    example: true
                    type: boolean
                status:
                    example: COMPLETED
                    type: string
                supplyChainId:
                    example: supply-chain-id
                    type: string
                supplyChainName:
                    example: Supply test
                    type: string
                trackId:
                    example: track-id
                    type: string
                workflowDefinitionId:
                    example: workflow-definition-id
                    type: string
                workflowName:
                    example: Workflow test
                    type: string
            type: object
        AssetHistoryList:
            allOf:
                - $ref: '#/components/schemas/Page'
            properties:
                pageContent:
                    items:
                        $ref: '#/components/schemas/AssetHistory'
                    type: array
            type: object
        AssetPropertyDetailsDTO:
            properties:
                dateCreated:
                    format: date-time
                    type: string
                name:
                    type: string
                propertyTemplateId:
                    type: string
                type:
                    type: string
                value:
                    type: string
                version:
                    format: int32
                    type: integer
            type: object
        AssetPropertyValueDTO:
            properties:
                metadata:
                    type: string
                name:
                    type: string
                ordinal:
                    format: int32
                    type: integer
                propertyTemplateId:
                    type: string
                type:
                    type: string
                value:
                    type: string
            type: object
        AssetTrackingStatusDTO:
            properties:
                custodian:
                    type: string
                dateUpdated:
                    format: date-time
                    type: string
                displayProperty:
                    $ref: '#/components/schemas/AssetDisplayPropertyDTO'
                properties:
                    items:
                        $ref: '#/components/schemas/AssetPropertyValueDTO'
                    type: array
                status:
                    type: string
                trackId:
                    type: string
            type: object
        AssetTrackingStatusPageDTO:
            allOf:
                - $ref: '#/components/schemas/Page'
            properties:
                pageContent:
                    items:
                        $ref: '#/components/schemas/AssetTrackingStatusDTO'
                    type: array
            type: object
        Balance:
            properties:
                dateUpdated:
                    format: date-time
                    type: string
                income:
                    type: string
                outcome:
                    type: string
                product:
                    $ref: '#/components/schemas/Product'
                quantity:
                    type: string
            type: object
        Block:
            properties:
                blockHash:
                    type: string
                blockchainTransaction:
                    example: a3f5c8d7b6e9f0a1c2d3e4b5a6f7d8c9b0e1f2a3d4c5b6e7f8d9c0a1b2e3f4c5
                    type: string
                id:
                    example: 1
                    type: integer
                snapshot:
                    type: string
            type: object
        BooleanFieldDefinition:
            allOf:
                - $ref: '#/components/schemas/FieldDefinition'
                - properties:
                    defaultValue:
                        description: Default true/false state if no input is provided
                        type: boolean
                  type: object
            description: Definition for boolean type fields, representing true/false values
        ConditionalStep:
            allOf:
                - $ref: '#/components/schemas/StepDefinitionBase'
                - properties:
                    actionType:
                        enum:
                            - CONDITIONAL
                        type: string
                    automatic:
                        default: true
                        type: boolean
                    expression:
                        $ref: '#/components/schemas/Expression'
                  type: object
        ConfiguredValue:
            description: |
                Represents a predefined value set during workflow configuration.
                Used for values that should be set before workflow execution (like API keys or base URLs).
            properties:
                inputValue:
                    description: The actual input value configuration
                    type: object
                isSensitive:
                    default: false
                    description: Indicates if this value should be treated as sensitive data
                    type: boolean
                updatable:
                    default: false
                    description: Indicates if this value can be modified after initial submission
                    type: boolean
            required:
                - inputValue
            type: object
        ConfiguredValueOperationType:
            description: Operations available for managing predefined workflow values (like environment variables or API keys)
            enum:
                - NOOP
                - SET
                - UNSET
            type: string
        ConfiguredValueOperations:
            description: |
                Defines how to modify predefined values for a workflow.
                Similar to managing environment variables in a CI/CD pipeline but used at step execution time.
            properties:
                data:
                    $ref: '#/components/schemas/ConfiguredValue'
                    description: New configuration data (required for SET operation)
                key:
                    description: Identifier for the target input value
                    type: string
                operation:
                    $ref: '#/components/schemas/ConfiguredValueOperationType'
            required:
                - operation
                - key
                - data
        CreateStepShareLinkRequest:
            properties:
                definitionId:
                    description: This is the unique id for the step definition
                    type: string
                instanceId:
                    description: This is the unique id for the workflow instance
                    type: string
            required:
                - instanceId
                - definitionId
            type: object
        DateFieldDefinition:
            allOf:
                - $ref: '#/components/schemas/FieldDefinition'
                - properties:
                    defaultValue:
                        description: Default date/time value in ISO 8601 format
                        format: date-time
                        type: string
                    expectedFormat:
                        default: ISO 8601
                        description: |
                            The expected format for input values. This should be in ISO 8601 format by default.
                            Examples:
                            - For date: 'YYYY-MM-DD'
                            - For time: 'HH:mm:ss'
                            - For date-time: 'YYYY-MM-DDTHH:mm:ss.sssZ'
                            If a different format is required, specify it using standard format strings.
                            Refer to ISO 8601 or Unicode date field symbol table for more options.
                        type: string
                    format:
                        description: Specifies whether this field represents time, date-time, or date
                        enum:
                            - time
                            - date-time
                            - date
                        type: string
                    max:
                        description: |
                            Specifies the maximum allowed date/time value, inclusive.
                            Can be an ISO 8601 date/time string or the keyword 'now'.
                            If 'now' is used, it refers to the current date/time when the validation is performed.
                        type: string
                    min:
                        description: |
                            Specifies the minimum allowed date/time value, inclusive.
                            Can be an ISO 8601 date/time string or the keyword 'now'.
                            If 'now' is used, it refers to the current date/time when the validation is performed.
                        type: string
                    timeZone:
                        default: UTC
                        description: The time zone for this field (e.g., 'UTC', 'America/New_York')
                        type: string
                  required:
                    - format
                  type: object
            description: Definition for date and time input fields with timezone and format support
        DigitalProductPassport:
            properties:
                assetCover:
                    type: string
                assetImage:
                    type: string
                assetName:
                    example: Asset name
                    type: string
                displayNameValue:
                    example: example
                    type: string
                orgId:
                    type: string
                orgLogo:
                    type: string
                theme:
                    type: string
                token:
                    example: d7f2a5c1e4b84a12b569c53e08c73adf3c9a72beeb6c42bfb91f701a62984d3b
                    type: string
                traces:
                    items:
                        $ref: '#/components/schemas/DppTrace'
                    type: array
                trackId:
                    example: asset-track-id
                    type: string
            type: object
        DigitalProductPassportDTO:
            properties:
                assetName:
                    example: Asset Template DPP
                    type: string
                dateCreated:
                    format: int64
                    type: integer
                dateUpdated:
                    format: int64
                    type: integer
                enabled:
                    example: true
                    type: boolean
                name:
                    example: DPP
                    type: string
                organizationId:
                    example: dpp-org
                    type: string
                token:
                    example: d7f2a5c1e4b84a12b569c53e08c73adf3c9a72beeb6c42bfb91f701a62984d3b
                    type: string
                trackId:
                    example: DPP-TRACK-ID
                    type: string
            type: object
        DigitalProductPassportQRImageCreate:
            properties:
                format:
                    enum:
                        - png
                    example: png
                    type: string
                token:
                    example: 8b7fef85-4976-07b0-a048-27e87f3bac5c
                    type: string
            required:
                - token
                - format
            type: object
        DigitalProductPassportToggleEnableAction:
            properties:
                enabled:
                    example: true
                    type: boolean
                name:
                    example: DPP
                    type: string
            type: object
        DppTrace:
            properties:
                block:
                    $ref: '#/components/schemas/Block'
                data:
                    items:
                        $ref: '#/components/schemas/TraceData'
                    type: array
                dateCreated:
                    format: date-time
                    type: string
                eventName:
                    example: Transfer to new facility
                    type: string
                eventType:
                    enum:
                        - PROPERTIES_DECLARATION
                        - TRANSFER
                        - INVENTORY
                        - DOCUMENT
                        - OTHER
                    type: string
                inventoryData:
                    items:
                        $ref: '#/components/schemas/TraceInventoryData'
                    type: array
            type: object
        ExecutableOrganizationWorkflows:
            properties:
                organizationId:
                    type: string
                supplyChainWorkflows:
                    items:
                        $ref: '#/components/schemas/ExecutableSupplyChainWorkflows'
                    type: array
            type: object
        ExecutableStep:
            properties:
                automatic:
                    type: boolean
                facility:
                    properties:
                        id:
                            type: string
                        name:
                            type: string
                        status:
                            type: string
                    type: object
                optional:
                    type: boolean
                ordinal:
                    format: int64
                    type: integer
                stepDefinitionId:
                    type: string
                stepName:
                    type: string
                stepType:
                    type: string
                updatableProperties:
                    type: string
            type: object
        ExecutableSupplyChainWorkflows:
            properties:
                supplyChainId:
                    type: string
                supplyChainName:
                    type: string
                workflows:
                    items:
                        $ref: '#/components/schemas/ExecutableWorkflow'
                    type: array
            type: object
        ExecutableWorkflow:
            properties:
                stepDefinitions:
                    items:
                        $ref: '#/components/schemas/ExecutableStep'
                    type: array
                workflowId:
                    type: string
                workflowName:
                    type: string
            type: object
        ExecutionMetadata:
            example:
                fields: '{name: Amount, type: [null, int]}'
                name: Add Oil
                sample: '{properties: {amount: 2}}'
                type: PropertiesChange
            properties:
                fields:
                    items:
                        $ref: '#/components/schemas/StepField'
                    type: array
                name:
                    type: string
                sample:
                    type: string
                type:
                    type: string
            type: object
        Expression:
            properties:
                expression:
                    type: string
                language:
                    type: string
                type:
                    enum:
                        - expression
                    type: string
                variables:
                    additionalProperties:
                        type: string
                    type: object
            required:
                - language
                - expression
                - type
            type: object
        FieldDefinition:
            description: Union type for all possible field definitions, using type discrimination to determine specific field behavior and validation rules
            discriminator:
                mapping:
                    array: '#/components/schemas/ArrayFieldDefinition'
                    boolean: '#/components/schemas/BooleanFieldDefinition'
                    date: '#/components/schemas/DateFieldDefinition'
                    file: '#/components/schemas/FileFieldDefinition'
                    location: '#/components/schemas/LocationFieldDefinition'
                    map: '#/components/schemas/MapFieldDefinition'
                    number: '#/components/schemas/NumberFieldDefinition'
                    polymorphic: '#/components/schemas/PolymorphicFieldDefinition'
                    select: '#/components/schemas/SelectFieldDefinition'
                    string: '#/components/schemas/StringFieldDefinition'
                propertyName: type
            properties:
                deprecated:
                    description: Indicates if this field is deprecated and should be phased out
                    type: boolean
                description:
                    $ref: '#/components/schemas/LocalizedString'
                    description: Detailed explanation of the field's purpose and expected input
                name:
                    $ref: '#/components/schemas/LocalizedString'
                    description: Human-readable name of the field, displayed in forms and UIs
                type:
                    $ref: '#/components/schemas/FieldType'
                    description: The type identifier for the field, used for validation and UI rendering
            required:
                - type
                - name
                - description
            type: object
        FieldType:
            description: Enumeration of all possible field types supported by the integration system
            enum:
                - string
                - number
                - boolean
                - array
                - file
                - select
                - date
                - location
                - map
                - polymorphic
            type: string
        File:
            description: |
                File object that you want to upload.
            format: binary
            type: string
        FileFieldDefinition:
            allOf:
                - $ref: '#/components/schemas/FieldDefinition'
                - properties:
                    allowedExtensions:
                        description: List of allowed file extensions (e.g., .pdf, .jpg)
                        items:
                            type: string
                        type: array
                    allowedMimeTypes:
                        description: List of allowed MIME types (e.g., application/pdf)
                        items:
                            type: string
                        type: array
                    defaultValue:
                        description: Default file URI if no file is uploaded
                        format: uri
                        type: string
                    maxSize:
                        description: Maximum allowed file size in bytes
                        minimum: 0
                        type: integer
                    multiFile:
                        default: false
                        description: Whether multiple files can be uploaded at once
                        type: boolean
                  type: object
            description: Definition for file type fields, supporting single or multiple file uploads with size and type validation
        FileReference:
            allOf:
                - $ref: '#/components/schemas/InputValue'
                - properties:
                    contentType:
                        description: MIME type of the file
                        type: string
                    fileName:
                        description: Original name of the file
                        type: string
                    hash:
                        description: Integrity hash of the file content
                        type: string
                    size:
                        description: Size of the file in bytes
                        format: int64
                        type: integer
                    uri:
                        description: System URI where the file is stored
                        type: string
                  required:
                    - fileName
                    - contentType
                    - size
                    - uri
                  type: object
            description: "References a file that has already been uploaded to T&T. Used when a file has \nbeen previously allowing us to reference that file again or pass it as a value to a File field.\n"
        FileSubmission:
            allOf:
                - $ref: '#/components/schemas/InputValue'
                - properties:
                    contentType:
                        description: MIME type of the file
                        type: string
                    fieldKey:
                        description: Reference key to locate this file in the multipart form submission
                        type: string
                    fileName:
                        description: Name of the uploaded file
                        type: string
                    size:
                        description: Size of the file in bytes
                        format: int64
                        type: integer
                  required:
                    - fileName
                    - contentType
                    - size
                    - fieldKey
                  type: object
            description: "Specifies metadata for a file that will is being uploaded. The file is sent \nin conjunction with multipart form uploads to handle file inputs.\n"
        FinishStep:
            allOf:
                - $ref: '#/components/schemas/StepDefinitionBase'
                - properties:
                    actionType:
                        enum:
                            - FINISH
                        type: string
                  type: object
        GenericAction:
            properties:
                message:
                    type: string
                success:
                    type: boolean
            type: object
        Identity:
            properties:
                dateCreated:
                    format: date-time
                    type: string
                dateUpdated:
                    format: date-time
                    type: string
                hasConsoleAccess:
                    type: boolean
                id:
                    format: int64
                    type: integer
                marcoId:
                    type: string
                systemManager:
                    type: boolean
            type: object
        InitStep:
            allOf:
                - $ref: '#/components/schemas/StepDefinitionBase'
                - properties:
                    actionType:
                        enum:
                            - INIT
                        type: string
                    facilityId:
                        type: string
                  type: object
        InputField:
            description: Definition of an input field required to run the integration, combining a field definition with input-specific properties
            properties:
                fieldDefinition:
                    $ref: '#/components/schemas/FieldDefinition'
                    description: The base field definition that specifies the field's type and validation rules
                required:
                    default: false
                    description: Indicates if this input is required to run the integration
                    type: boolean
            required:
                - fieldDefinition
            type: object
        InputValue:
            description: Base structure that defines how to handle different input values for executing a workflows step
            discriminator:
                mapping:
                    file_reference: '#/components/schemas/FileReference'
                    file_submission: '#/components/schemas/FileSubmission'
                    polymorphic: '#/components/schemas/PolymorphicValue'
                    redacted: '#/components/schemas/RedactedValue'
                    user_input: '#/components/schemas/UserInput'
                    workflow: '#/components/schemas/WorkflowValue'
                propertyName: type
            properties:
                type:
                    $ref: '#/components/schemas/InputValueType'
            required:
                - type
            type: object
        InputValueType:
            description: Defines different ways values can be provided to workflow steps
            enum:
                - user_input
                - file_submission
                - file_reference
                - polymorphic
                - redacted
                - workflow
            type: string
        Integration:
            allOf:
                - $ref: '#/components/schemas/IntegrationSummary'
                - properties:
                    schema:
                        $ref: '#/components/schemas/IntegrationSchema'
                  required:
                    - schema
                  type: object
            description: Full definition of a specific version of an integration
        IntegrationCatalogEntry:
            allOf:
                - $ref: '#/components/schemas/IntegrationSummary'
                - properties:
                    latestVersion:
                        description: The most recent published integration version definition in use
                        format: int32
                        minimum: 1
                        type: integer
                    versionHistory:
                        description: Historical version definitions of this integration for backwards compatibility
                        items:
                            $ref: '#/components/schemas/IntegrationSchema'
                        minItems: 1
                        type: array
                  type: object
            description: The full definition of the integration that includes all version information
        IntegrationListResponse:
            description: A response containing a list of integration summaries
            properties:
                integrations:
                    description: List of integration summaries
                    items:
                        $ref: '#/components/schemas/IntegrationSummary'
                    type: array
            required:
                - integrations
            type: object
        IntegrationSchema:
            description: The full schema definition for an integration version
            properties:
                description:
                    $ref: '#/components/schemas/LocalizedString'
                inputFields:
                    additionalProperties:
                        $ref: '#/components/schemas/InputField'
                    description: Map of input fields required to run this integration
                    type: object
                name:
                    $ref: '#/components/schemas/LocalizedString'
                outputFields:
                    additionalProperties:
                        $ref: '#/components/schemas/FieldDefinition'
                    description: Map of output fields returned by this integration
                    type: object
                version:
                    description: Version number of this integration schema
                    format: int32
                    minimum: 1
                    type: integer
            required:
                - name
                - version
                - inputFields
                - outputFields
            type: object
        IntegrationStep:
            allOf:
                - $ref: '#/components/schemas/StepDefinitionBase'
                - properties:
                    actionType:
                        enum:
                            - INTEGRATION
                        type: string
                    automatic:
                        default: false
                        type: boolean
                    integrationName:
                        type: string
                    mappings:
                        additionalProperties:
                            type: string
                        type: object
                    optional:
                        default: false
                        type: boolean
                    version:
                        format: int32
                        type: integer
                  type: object
        IntegrationSummary:
            description: A summary of an integration, containing basic information for display in lists
            properties:
                description:
                    $ref: '#/components/schemas/LocalizedString'
                group:
                    $ref: '#/components/schemas/LocalizedString'
                id:
                    description: Unique identifier for the integration
                    type: string
                name:
                    $ref: '#/components/schemas/LocalizedString'
                tags:
                    description: Tags for additional categorization and searchability
                    items:
                        $ref: '#/components/schemas/LocalizedString'
                    type: array
            required:
                - id
                - name
                - description
                - group
            type: object
        Inventory:
            properties:
                active:
                    type: boolean
                dateCreated:
                    format: date-time
                    type: string
                dateUpdated:
                    format: date-time
                    type: string
                description:
                    type: string
                facilityId:
                    type: string
                id:
                    default: 0
                    format: int64
                    type:
                        - integer
                        - "null"
                inventoryId:
                    type:
                        - string
                        - "null"
                name:
                    type: string
                organizationId:
                    type: string
            type: object
        InventoryEvent:
            properties:
                assetEventId:
                    type: integer
                assetId:
                    type: string
                dateCreated:
                    format: date-time
                    type: string
                dateUpdated:
                    format: date-time
                    type: string
                id:
                    default: 0
                    format: int64
                    type:
                        - integer
                        - "null"
                inventory:
                    $ref: '#/components/schemas/Inventory'
                metadata:
                    type: string
                operationMode:
                    type: string
                operationType:
                    type: string
                product:
                    $ref: '#/components/schemas/Product'
                quantity:
                    type: string
                tags:
                    items:
                        type: string
                    type: array
                trackId:
                    type: string
            type: object
        InventoryEventPage:
            allOf:
                - $ref: '#/components/schemas/Page'
            properties:
                pageContent:
                    items:
                        $ref: '#/components/schemas/InventoryEvent'
                    type: array
            type: object
        InventoryStep:
            allOf:
                - $ref: '#/components/schemas/StepDefinitionBase'
                - properties:
                    accessibleInventoryProducts:
                        items:
                            $ref: '#/components/schemas/StepInventoryProducts'
                        type: array
                    actionType:
                        enum:
                            - INVENTORY
                        type: string
                    automatic:
                        default: false
                        type: boolean
                    inventoryDestinationId:
                        type: string
                    inventoryId:
                        type: string
                    operationMode:
                        $ref: '#/components/schemas/OperationModeEnum'
                    operationType:
                        $ref: '#/components/schemas/OperationTypeEnum'
                    optional:
                        default: false
                        type: boolean
                    productDestinationId:
                        type: string
                    productId:
                        type: string
                    propertyTemplateId:
                        type: string
                    propertyTemplateIdTags:
                        items:
                            type: string
                        type: array
                  type: object
        LastStepExecuted:
            example:
                stepInstance:
                    assetTrackId: MY-TRACK-ID-001
                    errorCode: ""
                    errorDetails: ""
                    id: 42
                    message: ""
                    status: COMPLETED
                    stepDefinitionId: my-step-definition-id
                workflow:
                    isFinished: "true"
                    workflowDefinitionId: my-workflow-id
            properties:
                stepInstance:
                    $ref: '#/components/schemas/StepInstance'
                workflow:
                    $ref: '#/components/schemas/WorkflowExecutionStatus'
            type: object
        LocalizedString:
            description: A structure for storing localized strings with a default value and translations
            properties:
                defaultValue:
                    description: The default string value, typically in the primary language
                    type: string
                locales:
                    additionalProperties:
                        type: string
                    description: Map of locale codes to localized strings
                    type: object
            required:
                - defaultValue
            type: object
        LocationFieldDefinition:
            allOf:
                - $ref: '#/components/schemas/FieldDefinition'
                - properties:
                    countries:
                        items:
                            description: ISO 3166-1 alpha-2 country codes
                            type: string
                        type: array
                    defaultValue:
                        description: Default location value if no input is provided
                        type: string
                    format:
                        default: address
                        description: Specifies the format in which the location data should be returned
                        enum:
                            - coordinates
                            - address
                        type: string
                    zipCodes:
                        items:
                            description: Valid postal/zip codes
                            type: string
                        type: array
                  type: object
            description: Definition for location type fields that can store and validate geographical locations
        MapFieldDefinition:
            allOf:
                - $ref: '#/components/schemas/FieldDefinition'
                - properties:
                    properties:
                        additionalProperties:
                            $ref: '#/components/schemas/FieldDefinition'
                        description: Mapping of property names to their field definitions
                        type: object
                  type: object
            description: Definition for map type fields that contain key-value pairs mapping names to field definitions
        NumberFieldDefinition:
            allOf:
                - $ref: '#/components/schemas/FieldDefinition'
                - properties:
                    defaultValue:
                        description: Default numeric value if no input is provided
                        type: number
                    maximum:
                        description: Maximum allowed value (inclusive)
                        type: number
                    minimum:
                        description: Minimum allowed value (inclusive)
                        type: number
                    multipleOf:
                        description: Value must be a multiple of this number (for step validation)
                        type: number
                  type: object
            description: Definition for number type fields, supporting integers and floating-point values with range validation
        OperationModeEnum:
            enum:
                - FIFO
                - LIFO
                - DIRECT_ASSIGNMENT
            type: string
        OperationTypeEnum:
            enum:
                - ADD
                - SUBTRACT
                - TRANSFER
            type: string
        Organization:
            properties:
                dateCreated:
                    format: date-time
                    type: string
                dateUpdated:
                    format: date-time
                    type: string
                id:
                    format: int64
                    type: integer
                name:
                    type: string
                organizationId:
                    type: string
                projectId:
                    type: string
            type: object
        Page:
            description: |
                This object represents a single page of data returned by the API.
            discriminator:
                propertyName: contentType
            properties:
                contentType:
                    description: |
                        A string indicating the type of data returned in this page, e.g. "plugins".
                    type: string
                pageElements:
                    description: |
                        The number of elements returned in this page of data.
                    format: int
                    type: integer
                pageNumber:
                    description: |
                        The page number of this page of data, based on the requested page size.
                    format: int
                    type: integer
                totalElements:
                    description: |
                        The total number of elements available across all pages of data.
                    format: int64
                    type: integer
                totalPages:
                    description: |
                        The total number of pages of data available, based on the requested page size.
                    format: int
                    type: integer
            required:
                - contentType
            type: object
        PagedResult:
            description: |
                This object represents a result set returned by the API that is split into multiple pages.
            discriminator:
                propertyName: contentType
            properties:
                contentType:
                    description: |
                        A string indicating the type of data returned in this page, e.g. "plugins".
                    type: string
                hasMore:
                    description: |
                        A flag indicating whether there are more pages of data available.
                    type: boolean
                nextPage:
                    description: |
                        The number of the next page of data. Will be `null` if there are no more pages.
                    type: integer
                previousPage:
                    description: |
                        The number of the previous page of data. Will be `null` if this is the first page.
                    type: integer
            required:
                - contentType
            type: object
        PolymorphicFieldDefinition:
            allOf:
                - $ref: '#/components/schemas/FieldDefinition'
                - properties:
                    defaultOption:
                        description: The type to use by default if not explicitly specified
                        type: string
                    options:
                        additionalProperties:
                            $ref: '#/components/schemas/FieldDefinition'
                        description: List of field definitions representing the available options for this field
                        type: object
                  required:
                    - options
                    - defaultOption
                  type: object
            description: Definition for polymorphic fields that can accept multiple types of input, allowing dynamic type selection based on context
        PolymorphicValue:
            allOf:
                - $ref: '#/components/schemas/InputValue'
                - properties:
                    option:
                        description: Selected option that determines the input type
                        type: string
                    value:
                        $ref: '#/components/schemas/InputValue'
                  required:
                    - option
                    - value
                  type: object
            description: |
                Shows which option was chosen when an input is expected from a polymorphic FieldDefinition.
                Example: A filed definition might support a String input or a File upload and the user can choose between them
        Product:
            properties:
                dateCreated:
                    format: date-time
                    type:
                        - string
                        - "null"
                dateUpdated:
                    format: date-time
                    type:
                        - string
                        - "null"
                description:
                    type: string
                id:
                    default: 0
                    format: int64
                    type:
                        - integer
                        - "null"
                name:
                    type: string
                organizationId:
                    type: string
                productId:
                    type:
                        - string
                        - "null"
                productUnit:
                    $ref: '#/components/schemas/ProductUnit'
            type: object
        ProductUnit:
            properties:
                dateCreated:
                    format: date-time
                    type:
                        - string
                        - "null"
                dateUpdated:
                    format: date-time
                    type:
                        - string
                        - "null"
                description:
                    type: string
                id:
                    default: 0
                    format: int64
                    type:
                        - integer
                        - "null"
                name:
                    type: string
                organizationId:
                    type: string
                productUnitId:
                    type:
                        - string
                        - "null"
            type: object
        PropertyChangeStep:
            allOf:
                - $ref: '#/components/schemas/StepDefinitionBase'
                - properties:
                    actionType:
                        enum:
                            - PROPERTIES_CHANGE
                        type: string
                    automatic:
                        default: false
                        type: boolean
                    optional:
                        default: false
                        type: boolean
                    shareable:
                        default: false
                        description: Indicates if this step is shareable.
                        type: boolean
                    updatableProperties:
                        additionalProperties:
                            $ref: '#/components/schemas/PropertyChangeType'
                        type: object
                  required:
                    - actionType
                  type: object
        PropertyChangeType:
            discriminator:
                mapping:
                    expression: '#/components/schemas/Expression'
                    user_input: '#/components/schemas/UserInputValue'
                propertyName: type
            oneOf:
                - $ref: '#/components/schemas/UserInputValue'
                - $ref: '#/components/schemas/Expression'
        RedactedValue:
            allOf:
                - $ref: '#/components/schemas/InputValue'
                - properties:
                    isRedacted:
                        default: true
                        description: Indicates this value should be masked in displays and logs
                        type: boolean
                  type: object
            description: |
                This is uses as a placeholder to show that the value was configured at Workflow definition and marked as sensitive.
                Sensitive values are only made available during step execution so is never exposed.
        RemediateStep:
            allOf:
                - $ref: '#/components/schemas/StepDefinitionBase'
                - properties:
                    actionType:
                        enum:
                            - REMEDIATE
                        type: string
                    updatableProperties:
                        additionalProperties:
                            $ref: '#/components/schemas/PropertyChangeType'
                        type: object
                  required:
                    - actionType
                  type: object
        SelectFieldDefinition:
            allOf:
                - $ref: '#/components/schemas/FieldDefinition'
                - properties:
                    defaultValue:
                        description: Default selected option values if no selection is made
                        type: string
                    multiple:
                        default: false
                        description: Whether multiple options can be selected simultaneously
                        type: boolean
                    options:
                        description: List of available options to choose from
                        items:
                            $ref: '#/components/schemas/SelectOption'
                        minItems: 1
                        type: array
                  required:
                    - options
                  type: object
            description: Definition for select type fields that allow choosing from predefined options
        SelectOption:
            description: Defines a single option in a select field's list of choices
            properties:
                label:
                    $ref: '#/components/schemas/LocalizedString'
                    description: The human-readable label displayed for this option in the UI
                value:
                    description: The internal value stored when this option is selected
                    type: string
            type: object
        SharedStepExecutionRequest:
            properties:
                inputValues:
                    $ref: '#/components/schemas/StepExecutionRequest'
                shareToken:
                    example: shareToken123321
                    type: string
            required:
                - shareToken
                - inputValues
            type: object
        StepConfiguredValue:
            allOf:
                - $ref: '#/components/schemas/ConfiguredValue'
                - properties:
                    key:
                        type: string
                  required:
                    - key
                  type: object
        StepDefinition:
            description: Union type for all the different step definitions
            discriminator:
                mapping:
                    CONDITIONAL: '#/components/schemas/ConditionalStep'
                    FINISH: '#/components/schemas/FinishStep'
                    INIT: '#/components/schemas/InitStep'
                    INTEGRATION: '#/components/schemas/IntegrationStep'
                    INVENTORY: '#/components/schemas/InventoryStep'
                    PROPERTIES_CHANGE: '#/components/schemas/PropertyChangeStep'
                    REMEDIATE: '#/components/schemas/RemediateStep'
                    TRANSFER: '#/components/schemas/TransferStep'
                propertyName: actionType
            oneOf:
                - $ref: '#/components/schemas/InitStep'
                - $ref: '#/components/schemas/FinishStep'
                - $ref: '#/components/schemas/IntegrationStep'
                - $ref: '#/components/schemas/PropertyChangeStep'
                - $ref: '#/components/schemas/TransferStep'
                - $ref: '#/components/schemas/InventoryStep'
                - $ref: '#/components/schemas/ConditionalStep'
                - $ref: '#/components/schemas/RemediateStep'
        StepDefinitionBase:
            properties:
                actionType:
                    enum:
                        - INIT
                        - FINISH
                        - INTEGRATION
                        - PROPERTIES_CHANGE
                        - TRANSFER
                        - INVENTORY
                        - CONDITIONAL
                        - REMEDIATE
                    type: string
                configuredValues:
                    items:
                        $ref: '#/components/schemas/StepConfiguredValue'
                    type: array
                createdBy:
                    $ref: '#/components/schemas/Identity'
                definitionId:
                    type: string
                id:
                    format: int64
                    type: integer
                name:
                    type: string
                ordinal:
                    format: int32
                    type: integer
                stepDefinitionId:
                    type: string
            required:
                - id
                - definitionId
                - stepDefinitionId
                - actionType
                - name
                - ordinal
                - createdBy
            type: object
        StepExecuteResponse:
            properties:
                instanceId:
                    description: Unique identifier for the step instance being executed
                    type: string
            required:
                - instanceId
            type: object
        StepExecutionRequest:
            properties:
                executionValues:
                    additionalProperties:
                        type: object
                    description: Map of input field keys to their values for step execution
                    type: object
            required:
                - executionValues
            type: object
        StepExecutionStatus:
            example:
                errorMessage: ""
                metadata: ""
                status: COMPLETED
            properties:
                errorMessage:
                    type: string
                metadata:
                    type: string
                status:
                    type: string
            type: object
        StepExecutionValidationError:
            properties:
                errors:
                    additionalProperties:
                        items:
                            type: string
                        type: array
                    description: Map of field paths to specific error messages
                    example:
                        metadata.assetId:
                            - Asset ID is required
                            - Asset ID must be a valid UUID
                        stepExecutorMetadata.quantity:
                            - Quantity must be greater than 0
                    type: object
                message:
                    description: General error message describing the validation failure
                    example: Invalid workflow initialization request
                    type: string
            required:
                - message
                - errors
            type: object
        StepField:
            properties:
                name:
                    type: string
                type:
                    items:
                        type: string
                    type: array
            type: object
        StepInstance:
            properties:
                assetTrackId:
                    type: string
                errorCode:
                    type: string
                errorDetails:
                    type: string
                id:
                    format: int64
                    type: integer
                message:
                    type: string
                status:
                    type: string
                stepDefinitionId:
                    type: string
                stepInstanceId:
                    type: string
                workflowInstanceId:
                    type: string
            type: object
        StepInstanceShared:
            properties:
                publicUrl:
                    type: string
            type: object
        StepInventoryProducts:
            description: Define a list of product ids belonging to a inventory id
            properties:
                inventoryId:
                    type: string
                productIds:
                    items:
                        type: string
                    type: array
            type: object
        StepMetadata:
            properties:
                assetTrackId:
                    example: assetTrack123
                    type: string
                stepDefinitionId:
                    example: def456
                    type: string
                stepExecutorMetadata:
                    additionalProperties:
                        type: object
                    description: "Additional metadata required to run the step. \nInformation about the properties required for \na specific step is available at geStepExecutionMetadataSchema section\n"
                    example:
                        assetId: asset-id
                        properties:
                            address:
                                city: Anytown
                                state: CA
                                street: 123 Main St
                                zip: "12345"
                            items:
                                - item1
                                - item2
                                - item3
                            price: 5.99
                            quantity: 10
                    type: object
                supplyChainId:
                    example: chain101
                    type: string
                workflowDefinitionId:
                    example: workflow789
                    type: string
            required:
                - stepDefinitionId
                - workflowDefinitionId
                - supplyChainId
            type: object
        StringFieldDefinition:
            allOf:
                - $ref: '#/components/schemas/FieldDefinition'
                - properties:
                    defaultValue:
                        description: Default value for the field if no input is provided
                        type: string
                    format:
                        description: Specific format validation rules for common string types (e.g., email validation, URI format)
                        enum:
                            - email
                            - uuid
                            - uri
                            - hostname
                            - ipv4
                            - ipv6
                            - text
                        type: string
                    maxLength:
                        description: Maximum number of characters allowed in the string
                        minimum: 0
                        type: integer
                    minLength:
                        description: Minimum number of characters required in the string
                        minimum: 0
                        type: integer
                    pattern:
                        description: Regular expression pattern the string must match for validation
                        format: regex
                        type: string
                  type: object
            description: Definition for string type fields, supporting various text formats with validation constraints
        TraceData:
            properties:
                key:
                    type: string
                type:
                    enum:
                        - NUMBER
                        - TEXT
                        - FILE
                        - LIST
                        - DATE
                        - IDENTITY
                        - PARENTS
                        - LOCATION
                        - BOOLEAN
                        - CALCULATED
                        - RELATED_ASSET
                    type: string
                value:
                    type: string
            type: object
        TraceInventoryData:
            properties:
                inventoryName:
                    type: string
                operationType:
                    type: string
                productName:
                    type: string
                productUnit:
                    type: string
                productValue:
                    type: string
                sourceTrackId:
                    type: string
            type: object
        TransferStep:
            allOf:
                - $ref: '#/components/schemas/StepDefinitionBase'
                - properties:
                    actionType:
                        enum:
                            - TRANSFER
                        type: string
                    automatic:
                        default: false
                        type: boolean
                    newFacilityId:
                        type: string
                  type: object
        UploadFileAction:
            properties:
                assetVersion:
                    format: int32
                    type: integer
                extensionFile:
                    type: string
                file:
                    $ref: '#/components/schemas/File'
                supplyChainId:
                    type: string
                trackId:
                    type: string
                workflowDefinitionId:
                    type: string
            type: object
        UploadedFile:
            properties:
                file-hash:
                    type: string
                file-name:
                    type: string
                file-url:
                    type: string
            required:
                - file-name
                - file-url
                - file-hash
            type: object
        UserInput:
            allOf:
                - $ref: '#/components/schemas/InputValue'
                - properties:
                    value:
                        description: The actual input value provided by the user
                        type: object
                        writeOnly: true
                  type: object
            description: Represents a value that is manually entered by a user
        UserInputValue:
            properties:
                required:
                    type: boolean
                type:
                    enum:
                        - user_input
                    type: string
            required:
                - type
                - required
            type: object
        WorkflowExecutionStatus:
            properties:
                isFinished:
                    type: boolean
                workflowDefinitionId:
                    type: string
            type: object
        WorkflowInitRequest:
            properties:
                assetTrackId:
                    description: Unique identifier of the asset. If this field is null, an asset will be created. If a value is provided, an asset will be imported.
                    type:
                        - string
                        - "null"
                definitionId:
                    description: Unique identifier of the workflow definition to initialize
                    type: string
            required:
                - definitionId
                - assetTrackId
            type: object
        WorkflowInitResponse:
            properties:
                instanceId:
                    description: Unique identifier for the workflow instance
                    type: string
            required:
                - instanceId
            type: object
        WorkflowValue:
            allOf:
                - $ref: '#/components/schemas/InputValue'
                - properties:
                    propertyKey:
                        description: Key to lookup the value in the current workflow context
                        type: string
                  required:
                    - propertyKey
                  type: object
            description: |
                References a value from earlier workflow steps or available workflow data.
                Used to chain data between steps (e.g. 'address' or 'trackId')
    parameters:
        ActiveQuery:
            description: The resource is active (true or false)
            in: query
            name: active
            schema:
                type: boolean
        AssetIdsQuery:
            description: Asset List of IDs
            in: query
            name: assetIds
            schema:
                format: set
                items:
                    type: string
                type: array
        AssetVersionQuery:
            description: Asset Version ID
            in: query
            name: assetVersion
            schema:
                type: integer
        CreationDateQuery:
            description: Creation Date for the assets list filter
            in: query
            name: creationDate
            schema:
                format: int64
                type: integer
        DateFromQuery:
            description: date filter from bound
            in: query
            name: dateFrom
            schema:
                format: date
                type: string
        DateToQuery:
            description: date filter to bound
            in: query
            name: dateTo
            schema:
                format: date
                type: string
        DisplayNameValueQuery:
            description: Display Name value
            in: query
            name: displayNameValue
            required: true
            schema:
                type: string
        EnabledQuery:
            description: The resource is enabled (true or false)
            in: query
            name: enabled
            schema:
                type: boolean
        FlowQuery:
            description: filter by flow
            in: query
            name: flow
            schema:
                enum:
                    - INFLOW
                    - OUTFLOW
                type: string
        InventoryEventIdQuery:
            description: inventory Event ID
            in: query
            name: inventoryEventId
            required: true
            schema:
                type: string
        InventoryIdQuery:
            description: Inventory ID
            in: query
            name: inventoryId
            schema:
                type: string
        OrgIdQuery:
            description: Organization Id
            in: query
            name: organizationId
            required: true
            schema:
                type: string
        OrganizationIdQuery:
            description: Organization Id
            in: query
            name: organization-id
            required: true
            schema:
                type: string
        PageNumberQuery:
            description: The page number that you want to return
            in: query
            name: page
            required: false
            schema:
                default: 0
                format: int
                minimum: 0
                type: integer
        PageQuery:
            description: Page of the results
            in: query
            name: page
            schema:
                type: integer
        PageSizeQuery:
            description: The number of items to return per page
            in: query
            name: size
            required: false
            schema:
                default: 20
                format: int
                maximum: 100
                minimum: 5
                type: integer
        ProductIdQuery:
            description: Product ID
            in: query
            name: productId
            schema:
                type: string
        PropertyTemplateIdQuery:
            description: Property template id
            in: query
            name: propertyTemplateId
            schema:
                type: string
        PropertyValueQuery:
            description: Property value
            in: query
            name: propertyValue
            schema:
                type: string
        ResourceIdQuery:
            description: The resourceId of the project that you want to return
            in: query
            name: resourceId
            schema:
                default: ""
                type: string
        SearchQuery:
            description: Search query
            in: query
            name: search
            schema:
                type: string
        SortByQuery:
            description: |
                The sort order that you want to return. You can specify one or more comma-separated sort keys, each followed by
                an optional sort direction of either <code>asc</code> (ascending) or <code>desc</code> (descending).

                If you want to sort in descending order, append <code>,desc</code> to the sort key; otherwise, the default is to sort in
                ascending order. If you want to sort in ascending order, you can optionally append <code>,asc</code>.

                Examples of valid sort query parameters include:

                - <code>sort=name</code>: Sort by name in ascending order
                - <code>sort=name,desc</code>: Sort by name in descending order
                - <code>sort=name,desc,created,asc</code>: Sort by name in descending order, then by created in ascending order
                - <code>sort=name,desc&sort=created,asc</code>: Sort by name in descending order, then by created in ascending order
            explode: true
            in: query
            name: sort
            required: false
            schema:
                format: set
                items:
                    example:
                        - name
                        - name,asc
                        - name,desc
                    type: string
                type: array
            style: form
        StepDefinitionIdQuery:
            description: Step definition ID
            in: query
            name: stepDefinitionId
            schema:
                type: string
        SupplyChainIdQuery:
            description: Supply Chain ID
            in: query
            name: supplyChainId
            schema:
                type: string
        SupplyIdQuery:
            description: Supply Chain ID
            in: query
            name: supplyChainId
            required: true
            schema:
                type: string
        TagsQuery:
            description: Multiple tags filter
            in: query
            name: tags
            schema:
                items:
                    type: string
                type: array
        TokenQuery:
            description: Token
            in: query
            name: token
            schema:
                type: string
        TrackIdQuery:
            description: Track ID for the assets properties list
            in: query
            name: trackId
            required: true
            schema:
                type: string
        WorkflowDefinitionIdQuery:
            description: Workflow definition ID
            in: query
            name: workflowDefinitionId
            schema:
                type: string
        WorkflowIdRequiredQuery:
            description: Workflow ID
            in: query
            name: workflowId
            required: true
            schema:
                type: string
    securitySchemes:
        bearerAuth:
            bearerFormat: JWT
            scheme: bearer
            type: http
    responses:
        AssetFindResponse:
            content:
                application/json:
                    schema:
                        $ref: '#/components/schemas/AssetTrackingStatusDTO'
            description: Returns an Asset object
        AssetFullDetailsListResponse:
            content:
                application/json:
                    schema:
                        items:
                            $ref: '#/components/schemas/AssetFullDetailsDTO'
                        type: array
            description: A List of Asset Properties
        BalanceResponse:
            content:
                application/json:
                    schema:
                        $ref: '#/components/schemas/Balance'
            description: Returns a Balance object
        BalancesResponse:
            content:
                application/json:
                    schema:
                        items:
                            $ref: '#/components/schemas/Balance'
                        type: array
            description: A List of Balances
        EmptyArray:
            content:
                application/json:
                    schema:
                        default: []
                        items:
                            type: object
                        type: array
            description: Returns an empty array
        InventoryEventResponse:
            content:
                application/json:
                    schema:
                        $ref: '#/components/schemas/InventoryEvent'
            description: Returns an Inventory event object
        InventoryEventsPageResponse:
            content:
                application/json:
                    schema:
                        $ref: '#/components/schemas/InventoryEventPage'
            description: List of inventory events paginated
        InventoryEventsResponse:
            content:
                application/json:
                    schema:
                        items:
                            $ref: '#/components/schemas/InventoryEvent'
                        type: array
            description: List of inventory events
