openapi: 3.1.0
info:
  title: Interu API
  version: v2_28
tags:
  - name: Outbound Delivery Workflow
  - name: Reports
    description: Apis related to Reports.
  - name: Base Units
    description: Apis related to Base Units.
  - name: Country List
    description: Apis related to Country List.
  - name: Standards
    description: Apis related to Standards.
  - name: Validation
    description: Apis related to Validation.
  - name: Attachments
    description: Apis related to Attachments.
  - name: Document Types
    description: Apis related to Document Types.
  - name: Location Types
    description: Apis related to Location Types.
  - name: Process Types
    description: Apis related to Process Types.
  - name: Deliveries
    description: Apis related to Deliveries.
  - name: Items
    description: Apis related to Items.
  - name: Orders
    description: Apis related to Orders.
  - name: Processes
    description: Apis related to Processes.
  - name: Documents
    description: Apis related to Documents.
  - name: Materials
    description: Apis related to Materials.
  - name: Connections
    description: Apis related to Connections.
  - name: Locations
    description: Apis related to Locations.
  - name: Products
    description: Apis related to Products.
  - name: EUDR
    description: Apis related to EUDR and Due Diligence Statement Submission.
  - name: Outbound Deliveries
    description: Apis related to Workflows for creating Outbound Deliveries.
  - name: Assessment
    description: Apis related to Risk Assessment
paths:
  /common/base-units:
    get:
      operationId: BaseUnits_list
      summary: Retrieve BaseUnit List
      parameters:
        - $ref: '#/components/parameters/Common.BaseUnitQuery.name'
        - $ref: '#/components/parameters/Common.BaseUnitQuery.symbol'
        - $ref: '#/components/parameters/Common.BaseUnitQuery.type'
      responses:
        '200':
          description: The request has succeeded.
          content:
            application/json:
              schema:
                type: array
                items:
                  $ref: '#/components/schemas/Common.BaseUnit'
        '401':
          description: Access is unauthorized.
        '403':
          description: Access is forbidden.
        '429':
          description: Too many requests, wait and try again.
        '500':
          description: Server error
      tags:
        - Base Units
  /common/base-units/{unitId}:
    get:
      operationId: BaseUnits_read
      summary: Retrieve BaseUnit
      parameters:
        - $ref: '#/components/parameters/Common.BaseUnitPathRecord'
      responses:
        '200':
          description: The request has succeeded.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Common.BaseUnit'
        '401':
          description: Access is unauthorized.
        '403':
          description: Access is forbidden.
        '404':
          description: The server cannot find the requested resource.
        '429':
          description: Too many requests, wait and try again.
        '500':
          description: Server error
      tags:
        - Base Units
  /common/countries:
    get:
      operationId: Countries_list
      summary: Retrieve Countries
      parameters:
        - $ref: '#/components/parameters/Common.CountriesQuery'
      responses:
        '200':
          description: The request has succeeded.
          content:
            application/json:
              schema:
                type: array
                items:
                  type: string
        '401':
          description: Access is unauthorized.
        '403':
          description: Access is forbidden.
        '429':
          description: Too many requests, wait and try again.
        '500':
          description: Server error
      tags:
        - Country List
  /common/standards:
    get:
      operationId: Standards_list
      summary: Retrieve Standard List
      parameters:
        - $ref: '#/components/parameters/Common.StandardQuery.name'
        - $ref: '#/components/parameters/Common.StandardQuery.recordState'
        - $ref: '#/components/parameters/Common.Queries.PagedQuery.size'
        - $ref: '#/components/parameters/Common.Queries.PagedQuery.page'
      responses:
        '200':
          description: The request has succeeded.
          content:
            application/json:
              schema:
                type: array
                items:
                  $ref: '#/components/schemas/Common.Standard'
        '401':
          description: Access is unauthorized.
        '403':
          description: Access is forbidden.
        '429':
          description: Too many requests, wait and try again.
        '500':
          description: Server error
      tags:
        - Standards
  /common/standards/{standardId}:
    get:
      operationId: Standards_read
      summary: Retrieve Standard
      parameters:
        - $ref: '#/components/parameters/Common.StandardPathRecord'
      responses:
        '200':
          description: The request has succeeded.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Common.Standard'
        '401':
          description: Access is unauthorized.
        '403':
          description: Access is forbidden.
        '404':
          description: The server cannot find the requested resource.
        '429':
          description: Too many requests, wait and try again.
        '500':
          description: Server error
      tags:
        - Standards
  /common/standards/{standardId}/types:
    get:
      operationId: StandardTypes_list
      summary: Retrieve StandardType List
      parameters:
        - $ref: '#/components/parameters/Common.StandardTypePath'
        - $ref: '#/components/parameters/Common.StandardTypeQuery'
      responses:
        '200':
          description: The request has succeeded.
          content:
            application/json:
              schema:
                type: array
                items:
                  $ref: '#/components/schemas/Common.StandardType'
        '401':
          description: Access is unauthorized.
        '403':
          description: Access is forbidden.
        '429':
          description: Too many requests, wait and try again.
        '500':
          description: Server error
      tags:
        - Standards
  /common/standards/{standardId}/types/{standardTypeId}:
    get:
      operationId: StandardTypes_read
      summary: Retrieve StandardType
      parameters:
        - $ref: '#/components/parameters/Common.StandardTypePathRecord'
        - $ref: '#/components/parameters/Common.StandardTypePath'
      responses:
        '200':
          description: The request has succeeded.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Common.StandardType'
        '401':
          description: Access is unauthorized.
        '403':
          description: Access is forbidden.
        '404':
          description: The server cannot find the requested resource.
        '429':
          description: Too many requests, wait and try again.
        '500':
          description: Server error
      tags:
        - Standards
  /organisations/{orgId}/attachments:
    post:
      operationId: Attachments_post
      summary: Create Attachment
      parameters:
        - $ref: '#/components/parameters/Common.Paths.OrgId'
        - $ref: '#/components/parameters/iov42.Core.Headers.Json'
      responses:
        '201':
          description: >-
            The request has succeeded and will either return the newly created
            resource or where appropriate a record that reflects the success of
            the action.
          headers:
            Location:
              required: false
              description: Location of the created resource
              schema:
                type: string
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Attachment.Attachment'
        '400':
          description: The server could not understand the request due to invalid syntax.
        '401':
          description: Access is unauthorized.
        '403':
          description: Access is forbidden.
        '429':
          description: Too many requests, wait and try again.
        '500':
          description: Server error
      tags:
        - Attachments
      requestBody:
        required: true
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/Attachment.AttachmentCreate'
    get:
      operationId: Attachments_list
      summary: 'Retrieve Attachment List '
      parameters:
        - $ref: '#/components/parameters/Common.Paths.OrgId'
        - $ref: '#/components/parameters/Attachment.AttachmentQuery.attachmentType'
        - $ref: '#/components/parameters/Attachment.AttachmentQuery.targetType'
        - $ref: '#/components/parameters/Attachment.AttachmentQuery.targetUri'
        - $ref: '#/components/parameters/Attachment.AttachmentQuery.attachmentUri'
      responses:
        '200':
          description: The request has succeeded.
          content:
            application/json:
              schema:
                type: array
                items:
                  $ref: '#/components/schemas/Attachment.Attachment'
        '401':
          description: Access is unauthorized.
        '403':
          description: Access is forbidden.
        '429':
          description: Too many requests, wait and try again.
        '500':
          description: Server error
      tags:
        - Attachments
  /organisations/{orgId}/attachments/{attachmentId}:
    get:
      operationId: Attachments_read
      summary: Retrieve Attachment
      parameters:
        - $ref: '#/components/parameters/Attachment.AttachmentPathRecord'
        - $ref: '#/components/parameters/Common.Paths.OrgId'
      responses:
        '200':
          description: The request has succeeded.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Attachment.Attachment'
        '401':
          description: Access is unauthorized.
        '403':
          description: Access is forbidden.
        '404':
          description: The server cannot find the requested resource.
        '429':
          description: Too many requests, wait and try again.
        '500':
          description: Server error
      tags:
        - Attachments
    delete:
      operationId: Attachments_delete
      summary: Delete Attachment
      parameters:
        - $ref: '#/components/parameters/Attachment.AttachmentPathRecord'
        - $ref: '#/components/parameters/Common.Paths.OrgId'
      responses:
        '204':
          description: >-
            There is no content to send for this request, but the headers may be
            useful. 
        '401':
          description: Access is unauthorized.
        '403':
          description: Access is forbidden.
        '404':
          description: The server cannot find the requested resource.
        '429':
          description: Too many requests, wait and try again.
        '500':
          description: Server error
      tags:
        - Attachments
  /organisations/{orgId}/connections:
    post:
      operationId: Connections_post
      summary: Create Connection
      description: Adds a new connection.
      parameters:
        - $ref: '#/components/parameters/Common.Paths.OrgId'
        - $ref: '#/components/parameters/iov42.Core.Headers.Json'
      responses:
        '201':
          description: >-
            The request has succeeded and will either return the newly created
            resource or where appropriate a record that reflects the success of
            the action.
          headers:
            Location:
              required: false
              description: Location of the created resource
              schema:
                type: string
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Static.Connection'
        '400':
          description: The server could not understand the request due to invalid syntax.
        '401':
          description: Access is unauthorized.
        '403':
          description: Access is forbidden.
        '429':
          description: Too many requests, wait and try again.
        '500':
          description: Server error
      tags:
        - Connections
      requestBody:
        required: true
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/Static.ConnectionCreate'
      x-badges:
        - name: UDID
          color: '#0ca272'
    get:
      operationId: Connections_list
      summary: Retrieve Connection List
      description: Gets the list of connections.
      parameters:
        - $ref: '#/components/parameters/Common.Paths.OrgId'
        - $ref: '#/components/parameters/Static.ConnectionQuery.name'
        - $ref: '#/components/parameters/Static.ConnectionQuery.country'
        - $ref: '#/components/parameters/Static.ConnectionQuery.parentUri'
        - $ref: '#/components/parameters/Static.ConnectionQuery.publicUri'
        - $ref: '#/components/parameters/Static.ConnectionQuery.hasPublicUri'
        - $ref: '#/components/parameters/Static.ConnectionQuery.recordState'
        - $ref: '#/components/parameters/Static.ConnectionQuery.connectStatus'
        - $ref: '#/components/parameters/Common.Queries.PagedQuery.size'
        - $ref: '#/components/parameters/Common.Queries.PagedQuery.page'
      responses:
        '200':
          description: The request has succeeded.
          content:
            application/json:
              schema:
                type: object
                required:
                  - content
                  - page
                properties:
                  content:
                    type: array
                    items:
                      $ref: '#/components/schemas/Static.Connection'
                  page:
                    $ref: '#/components/schemas/iov42.Core.Paging.Page'
        '401':
          description: Access is unauthorized.
        '403':
          description: Access is forbidden.
        '429':
          description: Too many requests, wait and try again.
        '500':
          description: Server error
      tags:
        - Connections
  /organisations/{orgId}/connections/{connectionId}:
    get:
      operationId: Connections_read
      summary: Retrieve Connection
      description: Retrieve an existing connection.
      parameters:
        - $ref: '#/components/parameters/Static.ConnectionPathRecord'
        - $ref: '#/components/parameters/Common.Paths.OrgId'
      responses:
        '200':
          description: The request has succeeded.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Static.Connection'
        '401':
          description: Access is unauthorized.
        '403':
          description: Access is forbidden.
        '404':
          description: The server cannot find the requested resource.
        '429':
          description: Too many requests, wait and try again.
        '500':
          description: Server error
      tags:
        - Connections
    put:
      operationId: Connections_update
      summary: Update Connection
      description: Update the details of an existing connection.
      parameters:
        - $ref: '#/components/parameters/Static.ConnectionPathRecord'
        - $ref: '#/components/parameters/Common.Paths.OrgId'
        - $ref: '#/components/parameters/iov42.Core.Headers.Json'
      responses:
        '200':
          description: The request has succeeded.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Static.Connection'
        '400':
          description: The server could not understand the request due to invalid syntax.
        '401':
          description: Access is unauthorized.
        '403':
          description: Access is forbidden.
        '404':
          description: The server cannot find the requested resource.
        '429':
          description: Too many requests, wait and try again.
        '500':
          description: Server error
      tags:
        - Connections
      requestBody:
        required: true
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/Static.UpdateConnection'
    delete:
      operationId: Connections_delete
      summary: Delete Connection
      description: Delete an existing connection.
      parameters:
        - $ref: '#/components/parameters/Static.ConnectionPathRecord'
        - $ref: '#/components/parameters/Common.Paths.OrgId'
      responses:
        '204':
          description: >-
            There is no content to send for this request, but the headers may be
            useful. 
        '401':
          description: Access is unauthorized.
        '403':
          description: Access is forbidden.
        '404':
          description: The server cannot find the requested resource.
        '429':
          description: Too many requests, wait and try again.
        '500':
          description: Server error
      tags:
        - Connections
  /organisations/{orgId}/deliveries:
    post:
      operationId: Deliveries_post
      summary: Create Delivery
      parameters:
        - $ref: '#/components/parameters/Common.Paths.OrgId'
        - $ref: '#/components/parameters/iov42.Core.Headers.Json'
      responses:
        '201':
          description: >-
            The request has succeeded and will either return the newly created
            resource or where appropriate a record that reflects the success of
            the action.
          headers:
            Location:
              required: false
              description: Location of the created resource
              schema:
                type: string
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Transactional.Delivery'
        '400':
          description: The server could not understand the request due to invalid syntax.
        '401':
          description: Access is unauthorized.
        '403':
          description: Access is forbidden.
        '429':
          description: Too many requests, wait and try again.
        '500':
          description: Server error
      tags:
        - Deliveries
      requestBody:
        required: true
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/Transactional.DeliveryCreate'
      x-badges:
        - name: UDID
          color: '#0ca272'
    get:
      operationId: Deliveries_list
      summary: Retrieve Delivery List
      parameters:
        - $ref: '#/components/parameters/Common.Paths.OrgId'
        - $ref: '#/components/parameters/Transactional.DeliveryQuery.deliveryId'
        - $ref: '#/components/parameters/Transactional.DeliveryQuery.recordState'
        - $ref: '#/components/parameters/Transactional.DeliveryQuery.status'
        - $ref: >-
            #/components/parameters/Transactional.DeliveryQuery.purchaseOrderNumber
        - $ref: '#/components/parameters/Common.Queries.PagedQuery.size'
        - $ref: '#/components/parameters/Common.Queries.PagedQuery.page'
      responses:
        '200':
          description: The request has succeeded.
          content:
            application/json:
              schema:
                type: object
                required:
                  - content
                  - page
                properties:
                  content:
                    type: array
                    items:
                      $ref: '#/components/schemas/Transactional.Delivery'
                  page:
                    $ref: '#/components/schemas/iov42.Core.Paging.Page'
        '401':
          description: Access is unauthorized.
        '403':
          description: Access is forbidden.
        '429':
          description: Too many requests, wait and try again.
        '500':
          description: Server error
      tags:
        - Deliveries
  /organisations/{orgId}/deliveries/{deliveryId}:
    get:
      operationId: Deliveries_read
      summary: Retrieve Delivery
      parameters:
        - $ref: '#/components/parameters/Transactional.DeliveryPathRecord'
        - $ref: '#/components/parameters/Common.Paths.OrgId'
      responses:
        '200':
          description: The request has succeeded.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Transactional.Delivery'
        '401':
          description: Access is unauthorized.
        '403':
          description: Access is forbidden.
        '404':
          description: The server cannot find the requested resource.
        '429':
          description: Too many requests, wait and try again.
        '500':
          description: Server error
      tags:
        - Deliveries
    put:
      operationId: Deliveries_update
      summary: Update Delivery
      parameters:
        - $ref: '#/components/parameters/Transactional.DeliveryPathRecord'
        - $ref: '#/components/parameters/Common.Paths.OrgId'
        - $ref: '#/components/parameters/iov42.Core.Headers.Json'
      responses:
        '200':
          description: The request has succeeded.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Transactional.Delivery'
        '400':
          description: The server could not understand the request due to invalid syntax.
        '401':
          description: Access is unauthorized.
        '403':
          description: Access is forbidden.
        '404':
          description: The server cannot find the requested resource.
        '429':
          description: Too many requests, wait and try again.
        '500':
          description: Server error
      tags:
        - Deliveries
      requestBody:
        required: true
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/Transactional.UpdateDelivery'
    delete:
      operationId: Deliveries_delete
      summary: Delete Delivery
      parameters:
        - $ref: '#/components/parameters/Transactional.DeliveryPathRecord'
        - $ref: '#/components/parameters/Common.Paths.OrgId'
      responses:
        '204':
          description: >-
            There is no content to send for this request, but the headers may be
            useful. 
        '401':
          description: Access is unauthorized.
        '403':
          description: Access is forbidden.
        '404':
          description: The server cannot find the requested resource.
        '429':
          description: Too many requests, wait and try again.
        '500':
          description: Server error
      tags:
        - Deliveries
  /organisations/{orgId}/document-types:
    post:
      operationId: DocumentTypes_post
      summary: Create DocumentType
      parameters:
        - $ref: '#/components/parameters/Common.Paths.OrgId'
        - $ref: '#/components/parameters/iov42.Core.Headers.Json'
      responses:
        '201':
          description: >-
            The request has succeeded and will either return the newly created
            resource or where appropriate a record that reflects the success of
            the action.
          headers:
            Location:
              required: false
              description: Location of the created resource
              schema:
                type: string
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Config.DocumentType'
        '400':
          description: The server could not understand the request due to invalid syntax.
        '401':
          description: Access is unauthorized.
        '403':
          description: Access is forbidden.
        '429':
          description: Too many requests, wait and try again.
        '500':
          description: Server error
      tags:
        - Document Types
      requestBody:
        required: true
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/Config.DocumentTypeCreate'
    get:
      operationId: DocumentTypes_list
      summary: Retrieve DocumentType List
      parameters:
        - $ref: '#/components/parameters/Common.Paths.OrgId'
        - $ref: '#/components/parameters/Config.DocumentTypeQuery.name'
        - $ref: '#/components/parameters/Config.DocumentTypeQuery.recordState'
        - $ref: '#/components/parameters/Common.Queries.PagedQuery.size'
        - $ref: '#/components/parameters/Common.Queries.PagedQuery.page'
      responses:
        '200':
          description: The request has succeeded.
          content:
            application/json:
              schema:
                type: object
                required:
                  - content
                  - page
                properties:
                  content:
                    type: array
                    items:
                      $ref: '#/components/schemas/Config.DocumentType'
                  page:
                    $ref: '#/components/schemas/iov42.Core.Paging.Page'
        '401':
          description: Access is unauthorized.
        '403':
          description: Access is forbidden.
        '429':
          description: Too many requests, wait and try again.
        '500':
          description: Server error
      tags:
        - Document Types
  /organisations/{orgId}/document-types/{documentTypeId}:
    get:
      operationId: DocumentTypes_read
      summary: Retrieve DocumentType
      parameters:
        - $ref: '#/components/parameters/Config.DocumentTypePathRecord'
        - $ref: '#/components/parameters/Common.Paths.OrgId'
      responses:
        '200':
          description: The request has succeeded.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Config.DocumentType'
        '401':
          description: Access is unauthorized.
        '403':
          description: Access is forbidden.
        '404':
          description: The server cannot find the requested resource.
        '429':
          description: Too many requests, wait and try again.
        '500':
          description: Server error
      tags:
        - Document Types
    put:
      operationId: DocumentTypes_update
      summary: Update DocumentType
      parameters:
        - $ref: '#/components/parameters/Config.DocumentTypePathRecord'
        - $ref: '#/components/parameters/Common.Paths.OrgId'
        - $ref: '#/components/parameters/iov42.Core.Headers.Json'
      responses:
        '200':
          description: The request has succeeded.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Config.DocumentType'
        '400':
          description: The server could not understand the request due to invalid syntax.
        '401':
          description: Access is unauthorized.
        '403':
          description: Access is forbidden.
        '404':
          description: The server cannot find the requested resource.
        '429':
          description: Too many requests, wait and try again.
        '500':
          description: Server error
      tags:
        - Document Types
      requestBody:
        required: true
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/Config.DocumentTypeUpdate'
    delete:
      operationId: DocumentTypes_delete
      summary: Delete DocumentType
      parameters:
        - $ref: '#/components/parameters/Config.DocumentTypePathRecord'
        - $ref: '#/components/parameters/Common.Paths.OrgId'
      responses:
        '204':
          description: >-
            There is no content to send for this request, but the headers may be
            useful. 
        '401':
          description: Access is unauthorized.
        '403':
          description: Access is forbidden.
        '404':
          description: The server cannot find the requested resource.
        '429':
          description: Too many requests, wait and try again.
        '500':
          description: Server error
      tags:
        - Document Types
  /organisations/{orgId}/documents:
    post:
      operationId: Documents_post
      summary: Create Document
      description: Create a Document
      parameters:
        - $ref: '#/components/parameters/Common.Paths.OrgId'
        - $ref: '#/components/parameters/iov42.Core.Headers.Json'
      responses:
        '201':
          description: >-
            The request has succeeded and will either return the newly created
            resource or where appropriate a record that reflects the success of
            the action.
          headers:
            Location:
              required: false
              description: Location of the created resource
              schema:
                type: string
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Evidence.Document'
        '400':
          description: The server could not understand the request due to invalid syntax.
        '401':
          description: Access is unauthorized.
        '403':
          description: Access is forbidden.
        '429':
          description: Too many requests, wait and try again.
        '500':
          description: Server error
      tags:
        - Documents
      requestBody:
        required: true
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/Evidence.DocumentCreate'
    get:
      operationId: Documents_list
      summary: Retrieve Document List
      description: Retrieve the list of Documents
      parameters:
        - $ref: '#/components/parameters/Common.Paths.OrgId'
        - $ref: '#/components/parameters/Evidence.DocumentQuery.hasContent'
        - $ref: '#/components/parameters/Evidence.DocumentQuery.name'
        - $ref: '#/components/parameters/Evidence.DocumentQuery.typeIds'
        - $ref: '#/components/parameters/Evidence.DocumentQuery.contentHash'
        - $ref: '#/components/parameters/Evidence.DocumentQuery.recordState'
        - $ref: '#/components/parameters/Common.Queries.PagedQuery.size'
        - $ref: '#/components/parameters/Common.Queries.PagedQuery.page'
      responses:
        '200':
          description: The request has succeeded.
          content:
            application/json:
              schema:
                type: object
                required:
                  - content
                  - page
                properties:
                  content:
                    type: array
                    items:
                      $ref: '#/components/schemas/Evidence.Document'
                  page:
                    $ref: '#/components/schemas/iov42.Core.Paging.Page'
        '401':
          description: Access is unauthorized.
        '403':
          description: Access is forbidden.
        '429':
          description: Too many requests, wait and try again.
        '500':
          description: Server error
      tags:
        - Documents
  /organisations/{orgId}/documents/{documentId}:
    get:
      operationId: Documents_read
      summary: Retrieve Document
      description: Retrieve an existing Document
      parameters:
        - $ref: '#/components/parameters/Evidence.DocumentPathRecord'
        - $ref: '#/components/parameters/Common.Paths.OrgId'
      responses:
        '200':
          description: The request has succeeded.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Evidence.Document'
        '401':
          description: Access is unauthorized.
        '403':
          description: Access is forbidden.
        '404':
          description: The server cannot find the requested resource.
        '429':
          description: Too many requests, wait and try again.
        '500':
          description: Server error
      tags:
        - Documents
    put:
      operationId: Documents_update
      summary: Update Document
      description: Update the details of an existing Document
      parameters:
        - $ref: '#/components/parameters/Evidence.DocumentPathRecord'
        - $ref: '#/components/parameters/Common.Paths.OrgId'
        - $ref: '#/components/parameters/iov42.Core.Headers.Json'
      responses:
        '200':
          description: The request has succeeded.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Evidence.Document'
        '400':
          description: The server could not understand the request due to invalid syntax.
        '401':
          description: Access is unauthorized.
        '403':
          description: Access is forbidden.
        '404':
          description: The server cannot find the requested resource.
        '429':
          description: Too many requests, wait and try again.
        '500':
          description: Server error
      tags:
        - Documents
      requestBody:
        required: true
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/Evidence.DocumentCreateOrUpdate'
    delete:
      operationId: Documents_delete
      summary: Delete Document
      parameters:
        - $ref: '#/components/parameters/Evidence.DocumentPathRecord'
        - $ref: '#/components/parameters/Common.Paths.OrgId'
      responses:
        '204':
          description: >-
            There is no content to send for this request, but the headers may be
            useful. 
        '401':
          description: Access is unauthorized.
        '403':
          description: Access is forbidden.
        '404':
          description: The server cannot find the requested resource.
        '429':
          description: Too many requests, wait and try again.
        '500':
          description: Server error
      tags:
        - Documents
  /organisations/{orgId}/documents/{documentId}/content:
    put:
      operationId: Documents_uploadContent
      summary: Upload Document
      description: Upload the contents of a file.
      parameters:
        - $ref: '#/components/parameters/Evidence.DocumentPathRecord'
        - $ref: '#/components/parameters/Common.Paths.OrgId'
      responses:
        '200':
          description: The request has succeeded.
        '400':
          description: The server could not understand the request due to invalid syntax.
        '401':
          description: Access is unauthorized.
        '403':
          description: Access is forbidden.
        '429':
          description: Too many requests, wait and try again.
        '500':
          description: Server error
      tags:
        - Documents
      requestBody:
        required: true
        content:
          application/octet-stream:
            schema:
              contentMediaType: application/octet-stream
    get:
      operationId: Documents_downloadContent
      summary: Download Document
      description: Download the contents of a file.
      parameters:
        - $ref: '#/components/parameters/Evidence.DocumentPathRecord'
        - $ref: '#/components/parameters/Common.Paths.OrgId'
      responses:
        '200':
          description: The request has succeeded.
          content:
            application/octet-stream:
              schema:
                contentMediaType: application/octet-stream
        '400':
          description: The server could not understand the request due to invalid syntax.
        '401':
          description: Access is unauthorized.
        '403':
          description: Access is forbidden.
        '429':
          description: Too many requests, wait and try again.
        '500':
          description: Server error
      tags:
        - Documents
  /organisations/{orgId}/extensions/eudr/credentials:
    post:
      operationId: Credentials_create
      summary: Create Credential
      description: Creates an Traces NT Credential.
      parameters:
        - $ref: '#/components/parameters/Common.Paths.OrgId'
        - $ref: '#/components/parameters/iov42.Core.Headers.Json'
      responses:
        '201':
          description: >-
            The request has succeeded and will either return the newly created
            resource or where appropriate a record that reflects the success of
            the action.
          headers:
            Location:
              required: false
              description: Location of the created resource
              schema:
                type: string
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Integrations.Eudr.Credential'
        '400':
          description: The server could not understand the request due to invalid syntax.
        '401':
          description: Access is unauthorized.
        '403':
          description: Access is forbidden.
        '429':
          description: Too many requests, wait and try again.
        '500':
          description: Server error
      tags:
        - EUDR
      requestBody:
        required: true
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/Integrations.Eudr.CredentialCreate'
    get:
      operationId: Credentials_list
      summary: 'Retrieve Credential List '
      description: Gets the list of Traces NT Credentials for an organisation.
      parameters:
        - $ref: '#/components/parameters/Common.Paths.OrgId'
        - $ref: '#/components/parameters/Common.Queries.PagedQuery.size'
        - $ref: '#/components/parameters/Common.Queries.PagedQuery.page'
      responses:
        '200':
          description: The request has succeeded.
          content:
            application/json:
              schema:
                type: object
                required:
                  - content
                  - page
                properties:
                  content:
                    type: array
                    items:
                      $ref: '#/components/schemas/Integrations.Eudr.Credential'
                  page:
                    $ref: '#/components/schemas/iov42.Core.Paging.Page'
        '401':
          description: Access is unauthorized.
        '403':
          description: Access is forbidden.
        '429':
          description: Too many requests, wait and try again.
        '500':
          description: Server error
      tags:
        - EUDR
  /organisations/{orgId}/extensions/eudr/credentials/{credentialsId}:
    get:
      operationId: Credentials_read
      summary: Retrieve Credential
      description: Retrieves an existing Traces NT Credential.
      parameters:
        - $ref: '#/components/parameters/Integrations.Eudr.CredentialRecordPath'
        - $ref: '#/components/parameters/Common.Paths.OrgId'
      responses:
        '200':
          description: The request has succeeded.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Integrations.Eudr.Credential'
        '401':
          description: Access is unauthorized.
        '403':
          description: Access is forbidden.
        '404':
          description: The server cannot find the requested resource.
        '429':
          description: Too many requests, wait and try again.
        '500':
          description: Server error
      tags:
        - EUDR
    put:
      operationId: Credentials_update
      summary: Update Credential
      description: Updates an existing Traces NT Credential.
      parameters:
        - $ref: '#/components/parameters/Integrations.Eudr.CredentialRecordPath'
        - $ref: '#/components/parameters/Common.Paths.OrgId'
        - $ref: '#/components/parameters/iov42.Core.Headers.Json'
      responses:
        '200':
          description: The request has succeeded.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Integrations.Eudr.Credential'
        '400':
          description: The server could not understand the request due to invalid syntax.
        '401':
          description: Access is unauthorized.
        '403':
          description: Access is forbidden.
        '404':
          description: The server cannot find the requested resource.
        '429':
          description: Too many requests, wait and try again.
        '500':
          description: Server error
      tags:
        - EUDR
      requestBody:
        required: true
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/Integrations.Eudr.CredentialCreateOrUpdate'
    delete:
      operationId: Credentials_delete
      summary: Delete Credential
      description: Deletes a Traces NT Credential.
      parameters:
        - $ref: '#/components/parameters/Integrations.Eudr.CredentialRecordPath'
        - $ref: '#/components/parameters/Common.Paths.OrgId'
      responses:
        '204':
          description: >-
            There is no content to send for this request, but the headers may be
            useful. 
        '401':
          description: Access is unauthorized.
        '403':
          description: Access is forbidden.
        '404':
          description: The server cannot find the requested resource.
        '429':
          description: Too many requests, wait and try again.
        '500':
          description: Server error
      tags:
        - EUDR
  /organisations/{orgId}/extensions/eudr/references:
    post:
      operationId: DDSReferences_create
      summary: Create DDS Reference
      description: Creates an EUDR DDS Reference.
      parameters:
        - $ref: '#/components/parameters/Common.Paths.OrgId'
        - $ref: '#/components/parameters/iov42.Core.Headers.Json'
      responses:
        '201':
          description: >-
            The request has succeeded and will either return the newly created
            resource or where appropriate a record that reflects the success of
            the action.
          headers:
            Location:
              required: false
              description: Location of the created resource
              schema:
                type: string
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Integrations.Eudr.DDSReference'
        '400':
          description: The server could not understand the request due to invalid syntax.
        '401':
          description: Access is unauthorized.
        '403':
          description: Access is forbidden.
        '429':
          description: Too many requests, wait and try again.
        '500':
          description: Server error
      tags:
        - EUDR
      requestBody:
        required: true
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/Integrations.Eudr.CreateDDSReference'
    get:
      operationId: DDSReferences_list
      summary: 'Retrieve DDS Reference List '
      description: Gets the list of DDS References.
      parameters:
        - $ref: '#/components/parameters/Common.Paths.OrgId'
        - $ref: >-
            #/components/parameters/Integrations.Eudr.DDSReferenceQuery.internalReference
        - $ref: '#/components/parameters/Integrations.Eudr.DDSReferenceQuery.status'
        - $ref: >-
            #/components/parameters/Integrations.Eudr.DDSReferenceQuery.sourceResourceType
        - $ref: '#/components/parameters/Common.Queries.PagedQuery.size'
        - $ref: '#/components/parameters/Common.Queries.PagedQuery.page'
      responses:
        '200':
          description: The request has succeeded.
          content:
            application/json:
              schema:
                type: object
                required:
                  - content
                  - page
                properties:
                  content:
                    type: array
                    items:
                      $ref: '#/components/schemas/Integrations.Eudr.DDSReference'
                  page:
                    $ref: '#/components/schemas/iov42.Core.Paging.Page'
        '401':
          description: Access is unauthorized.
        '403':
          description: Access is forbidden.
        '429':
          description: Too many requests, wait and try again.
        '500':
          description: Server error
      tags:
        - EUDR
  /organisations/{orgId}/extensions/eudr/references/find:
    post:
      operationId: FindDDSReferences_find
      summary: Find DDS Reference
      description: Finds DDS Reference for provided record ids.
      parameters:
        - $ref: '#/components/parameters/Common.Paths.OrgId'
        - $ref: '#/components/parameters/iov42.Core.Headers.Json'
      responses:
        '201':
          description: >-
            The request has succeeded and will either return the newly created
            resource or where appropriate a record that reflects the success of
            the action.
          headers:
            Location:
              required: false
              description: Location of the created resource
              schema:
                type: string
          content:
            application/json:
              schema:
                type: array
                items:
                  $ref: '#/components/schemas/Integrations.Eudr.DDSRecord'
        '400':
          description: The server could not understand the request due to invalid syntax.
        '401':
          description: Access is unauthorized.
        '403':
          description: Access is forbidden.
        '429':
          description: Too many requests, wait and try again.
        '500':
          description: Server error
      tags:
        - EUDR
      requestBody:
        required: true
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/Integrations.Eudr.FindDDSReference'
  /organisations/{orgId}/extensions/eudr/references/resolve:
    post:
      operationId: ResolveDDSReferences_resolve
      summary: Resolve DDS Reference
      description: Resolves DDS References for provided record ids.
      parameters:
        - $ref: '#/components/parameters/Common.Paths.OrgId'
        - $ref: '#/components/parameters/iov42.Core.Headers.Json'
      responses:
        '201':
          description: >-
            The request has succeeded and will either return the newly created
            resource or where appropriate a record that reflects the success of
            the action.
          headers:
            Location:
              required: false
              description: Location of the created resource
              schema:
                type: string
          content:
            application/json:
              schema:
                type: array
                items:
                  $ref: '#/components/schemas/Integrations.Eudr.ResolveDDSResult'
        '400':
          description: The server could not understand the request due to invalid syntax.
        '401':
          description: Access is unauthorized.
        '403':
          description: Access is forbidden.
        '429':
          description: Too many requests, wait and try again.
        '500':
          description: Server error
      tags:
        - EUDR
      requestBody:
        required: true
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/Integrations.Eudr.ResolveDDSRequest'
      x-badges:
        - name: Work In Progress
          color: '#0068ff'
  /organisations/{orgId}/extensions/eudr/references/{referenceId}:
    get:
      operationId: DDSReferences_read
      summary: Retrieve DDS Reference
      description: Retrieves an existing EUDR DDS Reference.
      parameters:
        - $ref: '#/components/parameters/Integrations.Eudr.DDSReferencePathRecordPath'
        - $ref: '#/components/parameters/Common.Paths.OrgId'
      responses:
        '200':
          description: The request has succeeded.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Integrations.Eudr.DDSReference'
        '401':
          description: Access is unauthorized.
        '403':
          description: Access is forbidden.
        '404':
          description: The server cannot find the requested resource.
        '429':
          description: Too many requests, wait and try again.
        '500':
          description: Server error
      tags:
        - EUDR
    put:
      operationId: DDSReferences_update
      summary: Update DDS Reference
      description: Updates an existing EUDR DDS Reference.
      parameters:
        - $ref: '#/components/parameters/Integrations.Eudr.DDSReferencePathRecordPath'
        - $ref: '#/components/parameters/Common.Paths.OrgId'
        - $ref: '#/components/parameters/iov42.Core.Headers.Json'
      responses:
        '200':
          description: The request has succeeded.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Integrations.Eudr.DDSReference'
        '400':
          description: The server could not understand the request due to invalid syntax.
        '401':
          description: Access is unauthorized.
        '403':
          description: Access is forbidden.
        '404':
          description: The server cannot find the requested resource.
        '429':
          description: Too many requests, wait and try again.
        '500':
          description: Server error
      tags:
        - EUDR
      requestBody:
        required: true
        content:
          application/json:
            schema:
              $ref: >-
                #/components/schemas/Integrations.Eudr.DDSReferenceCreateOrUpdate
    delete:
      operationId: DDSReferences_delete
      summary: Delete DDS Reference
      description: Deletes an DDS Reference.
      parameters:
        - $ref: '#/components/parameters/Integrations.Eudr.DDSReferencePathRecordPath'
        - $ref: '#/components/parameters/Common.Paths.OrgId'
      responses:
        '204':
          description: >-
            There is no content to send for this request, but the headers may be
            useful. 
        '401':
          description: Access is unauthorized.
        '403':
          description: Access is forbidden.
        '404':
          description: The server cannot find the requested resource.
        '429':
          description: Too many requests, wait and try again.
        '500':
          description: Server error
      tags:
        - EUDR
  /organisations/{orgId}/extensions/eudr/references/{referenceId}/direct-records:
    post:
      operationId: DDSReferenceDirectRecords_create
      summary: Add Direct Record(s)
      description: Creates an EUDR DDS Reference.
      parameters:
        - $ref: '#/components/parameters/Integrations.Eudr.DDSReferencePathRecordPath'
        - $ref: '#/components/parameters/Common.Paths.OrgId'
        - $ref: '#/components/parameters/iov42.Core.Headers.Json'
      responses:
        '201':
          description: >-
            The request has succeeded and will either return the newly created
            resource or where appropriate a record that reflects the success of
            the action.
          headers:
            Location:
              required: false
              description: Location of the created resource
              schema:
                type: string
          content:
            application/json:
              schema:
                type: array
                items:
                  type: string
        '400':
          description: The server could not understand the request due to invalid syntax.
        '401':
          description: Access is unauthorized.
        '403':
          description: Access is forbidden.
        '429':
          description: Too many requests, wait and try again.
        '500':
          description: Server error
      tags:
        - EUDR
      requestBody:
        required: true
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/Integrations.Eudr.DirectRecords'
    delete:
      operationId: DDSReferenceDirectRecords_delete
      summary: Delete Direct Records
      description: Deletes direct records from a DDS Reference.
      parameters:
        - $ref: '#/components/parameters/Integrations.Eudr.DDSReferencePathRecordPath'
        - $ref: '#/components/parameters/Common.Paths.OrgId'
      responses:
        '204':
          description: >-
            There is no content to send for this request, but the headers may be
            useful. 
        '401':
          description: Access is unauthorized.
        '403':
          description: Access is forbidden.
        '404':
          description: The server cannot find the requested resource.
        '429':
          description: Too many requests, wait and try again.
        '500':
          description: Server error
      tags:
        - EUDR
      requestBody:
        required: true
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/Integrations.Eudr.DirectRecords'
    get:
      operationId: DDSReferenceDirectRecords_list
      summary: Retrieve Direct Records
      description: Gets the list of DDS Reference Direct Records.
      parameters:
        - $ref: '#/components/parameters/Integrations.Eudr.DDSReferencePathRecordPath'
        - $ref: '#/components/parameters/Common.Paths.OrgId'
      responses:
        '200':
          description: The request has succeeded.
          content:
            application/json:
              schema:
                type: object
                required:
                  - content
                  - page
                properties:
                  content:
                    type: array
                    items:
                      type: array
                      items:
                        type: string
                  page:
                    $ref: '#/components/schemas/iov42.Core.Paging.Page'
        '401':
          description: Access is unauthorized.
        '403':
          description: Access is forbidden.
        '429':
          description: Too many requests, wait and try again.
        '500':
          description: Server error
      tags:
        - EUDR
  /organisations/{orgId}/extensions/eudr/references/{referenceId}/source-data:
    get:
      operationId: DDSReferenceSourceData_read
      summary: Retrieve Source Data References
      description: Retrieve Source Data for references
      parameters:
        - $ref: '#/components/parameters/Integrations.Eudr.DDSReferencePathRecordPath'
        - $ref: '#/components/parameters/Common.Paths.OrgId'
      responses:
        '200':
          description: The request has succeeded.
          content:
            application/json:
              schema:
                anyOf:
                  - $ref: '#/components/schemas/Create_DDS_From_Products'
                  - $ref: '#/components/schemas/Create_DDS_From_Other'
        '401':
          description: Access is unauthorized.
        '403':
          description: Access is forbidden.
        '404':
          description: The server cannot find the requested resource.
        '429':
          description: Too many requests, wait and try again.
        '500':
          description: Server error
      tags:
        - EUDR
  /organisations/{orgId}/extensions/eudr/references/{referenceId}/statements:
    post:
      operationId: DDStatements_create
      summary: Generate DDS Statement
      description: >-
        Creates a Due Diligence Statement based on the provided parameters and
        the attached records.
      parameters:
        - $ref: '#/components/parameters/Integrations.Eudr.DDSReferencePathRecordPath'
        - $ref: '#/components/parameters/Common.Paths.OrgId'
        - $ref: '#/components/parameters/iov42.Core.Headers.Json'
      responses:
        '201':
          description: >-
            The request has succeeded and will either return the newly created
            resource or where appropriate a record that reflects the success of
            the action.
          headers:
            Location:
              required: false
              description: Location of the created resource
              schema:
                type: string
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Integrations.Eudr.DDStatement'
        '400':
          description: The server could not understand the request due to invalid syntax.
        '401':
          description: Access is unauthorized.
        '403':
          description: Access is forbidden.
        '429':
          description: Too many requests, wait and try again.
        '500':
          description: Server error
      tags:
        - EUDR
      requestBody:
        required: true
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/Integrations.Eudr.DDStatementCreate'
    get:
      operationId: DDStatements_read
      summary: Retrieve Generated/Updated Due Diligence Statement
      description: Retrieves an existing EUDR DDS Statement.
      parameters:
        - $ref: '#/components/parameters/Integrations.Eudr.DDSReferencePathRecordPath'
        - $ref: '#/components/parameters/Common.Paths.OrgId'
      responses:
        '200':
          description: The request has succeeded.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Integrations.Eudr.DDStatement'
        '401':
          description: Access is unauthorized.
        '403':
          description: Access is forbidden.
        '404':
          description: The server cannot find the requested resource.
        '429':
          description: Too many requests, wait and try again.
        '500':
          description: Server error
      tags:
        - EUDR
    patch:
      operationId: DDStatements_update
      summary: Update DDS Statement
      description: Updates the non-derived fields that are part of the DDS Statement.
      parameters:
        - $ref: '#/components/parameters/Integrations.Eudr.DDSReferencePathRecordPath'
        - $ref: '#/components/parameters/Common.Paths.OrgId'
        - $ref: '#/components/parameters/iov42.Core.Headers.Json'
      responses:
        '200':
          description: The request has succeeded.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Integrations.Eudr.DDStatement'
        '400':
          description: The server could not understand the request due to invalid syntax.
        '401':
          description: Access is unauthorized.
        '403':
          description: Access is forbidden.
        '404':
          description: The server cannot find the requested resource.
        '429':
          description: Too many requests, wait and try again.
        '500':
          description: Server error
      tags:
        - EUDR
      requestBody:
        required: true
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/Integrations.Eudr.DDSUpdate'
  /organisations/{orgId}/extensions/eudr/references/{referenceId}/statements/regenerate:
    post:
      operationId: DDStatements_regenerate
      summary: Regenerate Due Diligence Statement
      description: >-
        Regenerate the Due Diligence Statement. It will undo any specific
        updates as it rebuilds from the attached records.
      parameters:
        - $ref: '#/components/parameters/Integrations.Eudr.DDSReferencePathRecordPath'
        - $ref: '#/components/parameters/Common.Paths.OrgId'
      responses:
        '200':
          description: The request has succeeded.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Integrations.Eudr.DDStatement'
        '401':
          description: Access is unauthorized.
        '403':
          description: Access is forbidden.
        '429':
          description: Too many requests, wait and try again.
        '500':
          description: Server error
      tags:
        - EUDR
  /organisations/{orgId}/extensions/eudr/references/{referenceId}/statements/submit:
    post:
      operationId: DDStatements_submit
      summary: Submit Due Diligence Statement
      description: Submit the Due Diligence Statement to the Traces NT System.
      parameters:
        - $ref: '#/components/parameters/Integrations.Eudr.DDSReferencePathRecordPath'
        - $ref: '#/components/parameters/Common.Paths.OrgId'
      responses:
        '200':
          description: The request has succeeded.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Integrations.Eudr.DDSReference'
        '401':
          description: Access is unauthorized.
        '403':
          description: Access is forbidden.
        '429':
          description: Too many requests, wait and try again.
        '500':
          description: Server error
      tags:
        - EUDR
  /organisations/{orgId}/items:
    post:
      operationId: Items_post
      summary: Create Item
      description: Add a stock item to the system.
      parameters:
        - $ref: '#/components/parameters/Common.Paths.OrgId'
        - $ref: '#/components/parameters/iov42.Core.Headers.Json'
      responses:
        '201':
          description: >-
            The request has succeeded and will either return the newly created
            resource or where appropriate a record that reflects the success of
            the action.
          headers:
            Location:
              required: false
              description: Location of the created resource
              schema:
                type: string
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Transactional.Item'
        '400':
          description: The server could not understand the request due to invalid syntax.
        '401':
          description: Access is unauthorized.
        '403':
          description: Access is forbidden.
        '429':
          description: Too many requests, wait and try again.
        '500':
          description: Server error
      tags:
        - Items
      requestBody:
        required: true
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/Transactional.ItemCreate'
      x-badges:
        - name: UDID
          color: '#0ca272'
    get:
      operationId: Items_list
      summary: Retrieve Item List
      parameters:
        - $ref: '#/components/parameters/Common.Paths.OrgId'
        - $ref: '#/components/parameters/Transactional.ItemQuery.currentLocation'
        - $ref: '#/components/parameters/Transactional.ItemQuery.itemId'
        - $ref: '#/components/parameters/Transactional.ItemQuery.productIds'
        - $ref: '#/components/parameters/Transactional.ItemQuery.createdAtLocationIds'
        - $ref: '#/components/parameters/Transactional.ItemQuery.currentLocationIds'
        - $ref: '#/components/parameters/Transactional.ItemQuery.recordState'
        - $ref: '#/components/parameters/Transactional.ItemQuery.batchNumbers'
        - $ref: '#/components/parameters/Common.Queries.PagedQuery.size'
        - $ref: '#/components/parameters/Common.Queries.PagedQuery.page'
      responses:
        '200':
          description: The request has succeeded.
          content:
            application/json:
              schema:
                type: object
                required:
                  - content
                  - page
                properties:
                  content:
                    type: array
                    items:
                      $ref: '#/components/schemas/Transactional.Item'
                  page:
                    $ref: '#/components/schemas/iov42.Core.Paging.Page'
        '401':
          description: Access is unauthorized.
        '403':
          description: Access is forbidden.
        '429':
          description: Too many requests, wait and try again.
        '500':
          description: Server error
      tags:
        - Items
  /organisations/{orgId}/items/{itemId}:
    get:
      operationId: Items_read
      summary: Retrieve Item
      parameters:
        - $ref: '#/components/parameters/Transactional.ItemPathRecord'
        - $ref: '#/components/parameters/Common.Paths.OrgId'
      responses:
        '200':
          description: The request has succeeded.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Transactional.Item'
        '401':
          description: Access is unauthorized.
        '403':
          description: Access is forbidden.
        '404':
          description: The server cannot find the requested resource.
        '429':
          description: Too many requests, wait and try again.
        '500':
          description: Server error
      tags:
        - Items
    put:
      operationId: Items_update
      summary: Update Item
      parameters:
        - $ref: '#/components/parameters/Transactional.ItemPathRecord'
        - $ref: '#/components/parameters/Common.Paths.OrgId'
        - $ref: '#/components/parameters/iov42.Core.Headers.Json'
      responses:
        '200':
          description: The request has succeeded.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Transactional.Item'
        '400':
          description: The server could not understand the request due to invalid syntax.
        '401':
          description: Access is unauthorized.
        '403':
          description: Access is forbidden.
        '404':
          description: The server cannot find the requested resource.
        '429':
          description: Too many requests, wait and try again.
        '500':
          description: Server error
      tags:
        - Items
      requestBody:
        required: true
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/Transactional.UpdateItem'
    delete:
      operationId: Items_delete
      summary: Delete Item
      parameters:
        - $ref: '#/components/parameters/Transactional.ItemPathRecord'
        - $ref: '#/components/parameters/Common.Paths.OrgId'
      responses:
        '204':
          description: >-
            There is no content to send for this request, but the headers may be
            useful. 
        '401':
          description: Access is unauthorized.
        '403':
          description: Access is forbidden.
        '404':
          description: The server cannot find the requested resource.
        '429':
          description: Too many requests, wait and try again.
        '500':
          description: Server error
      tags:
        - Items
  /organisations/{orgId}/location-links:
    post:
      operationId: LocationLinks_post
      summary: Create LocationLink
      description: Add a link between two locations.
      parameters:
        - $ref: '#/components/parameters/Common.Paths.OrgId'
        - $ref: '#/components/parameters/iov42.Core.Headers.Json'
      responses:
        '201':
          description: >-
            The request has succeeded and will either return the newly created
            resource or where appropriate a record that reflects the success of
            the action.
          headers:
            Location:
              required: false
              description: Location of the created resource
              schema:
                type: string
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Static.LocationLink'
        '400':
          description: The server could not understand the request due to invalid syntax.
        '401':
          description: Access is unauthorized.
        '403':
          description: Access is forbidden.
        '429':
          description: Too many requests, wait and try again.
        '500':
          description: Server error
      tags:
        - Locations
      requestBody:
        required: true
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/Static.LocationLinkCreate'
    get:
      operationId: LocationLinks_list
      summary: Retrieve LocationLink List
      description: 'Get list of location links. '
      parameters:
        - $ref: '#/components/parameters/Common.Paths.OrgId'
        - $ref: '#/components/parameters/Static.LocationLinkQuery.locationUri'
        - $ref: '#/components/parameters/Static.LocationLinkQuery.linkDirection'
        - $ref: '#/components/parameters/Common.Queries.PagedQuery.size'
        - $ref: '#/components/parameters/Common.Queries.PagedQuery.page'
      responses:
        '200':
          description: The request has succeeded.
          content:
            application/json:
              schema:
                type: object
                required:
                  - content
                  - page
                properties:
                  content:
                    type: array
                    items:
                      $ref: '#/components/schemas/Static.LocationLink'
                  page:
                    $ref: '#/components/schemas/iov42.Core.Paging.Page'
        '401':
          description: Access is unauthorized.
        '403':
          description: Access is forbidden.
        '429':
          description: Too many requests, wait and try again.
        '500':
          description: Server error
      tags:
        - Locations
  /organisations/{orgId}/location-links/{linkId}:
    get:
      operationId: LocationLinks_read
      summary: Retrieve LocationLink
      description: Retrieve an exisitng link between two locations.
      parameters:
        - $ref: '#/components/parameters/Static.LocationLinkPathRecord'
        - $ref: '#/components/parameters/Common.Paths.OrgId'
      responses:
        '200':
          description: The request has succeeded.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Static.LocationLink'
        '401':
          description: Access is unauthorized.
        '403':
          description: Access is forbidden.
        '404':
          description: The server cannot find the requested resource.
        '429':
          description: Too many requests, wait and try again.
        '500':
          description: Server error
      tags:
        - Locations
    delete:
      operationId: LocationLinks_delete
      summary: Delete LocationLink
      description: Delete a link between two locations.
      parameters:
        - $ref: '#/components/parameters/Static.LocationLinkPathRecord'
        - $ref: '#/components/parameters/Common.Paths.OrgId'
      responses:
        '204':
          description: >-
            There is no content to send for this request, but the headers may be
            useful. 
        '401':
          description: Access is unauthorized.
        '403':
          description: Access is forbidden.
        '404':
          description: The server cannot find the requested resource.
        '429':
          description: Too many requests, wait and try again.
        '500':
          description: Server error
      tags:
        - Locations
  /organisations/{orgId}/location-types:
    post:
      operationId: LocationTypes_post
      summary: Create LocationType
      parameters:
        - $ref: '#/components/parameters/Common.Paths.OrgId'
        - $ref: '#/components/parameters/iov42.Core.Headers.Json'
      responses:
        '201':
          description: >-
            The request has succeeded and will either return the newly created
            resource or where appropriate a record that reflects the success of
            the action.
          headers:
            Location:
              required: false
              description: Location of the created resource
              schema:
                type: string
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Config.LocationType'
        '400':
          description: The server could not understand the request due to invalid syntax.
        '401':
          description: Access is unauthorized.
        '403':
          description: Access is forbidden.
        '429':
          description: Too many requests, wait and try again.
        '500':
          description: Server error
      tags:
        - Location Types
      requestBody:
        required: true
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/Config.LocationTypeCreate'
    get:
      operationId: LocationTypes_list
      summary: Retrieve LocationType List
      parameters:
        - $ref: '#/components/parameters/Common.Paths.OrgId'
        - $ref: '#/components/parameters/Config.LocationTypeQuery.type'
        - $ref: '#/components/parameters/Config.LocationTypeQuery.recordState'
        - $ref: '#/components/parameters/Common.Queries.PagedQuery.size'
        - $ref: '#/components/parameters/Common.Queries.PagedQuery.page'
      responses:
        '200':
          description: The request has succeeded.
          content:
            application/json:
              schema:
                type: object
                required:
                  - content
                  - page
                properties:
                  content:
                    type: array
                    items:
                      $ref: '#/components/schemas/Config.LocationType'
                  page:
                    $ref: '#/components/schemas/iov42.Core.Paging.Page'
        '401':
          description: Access is unauthorized.
        '403':
          description: Access is forbidden.
        '429':
          description: Too many requests, wait and try again.
        '500':
          description: Server error
      tags:
        - Location Types
  /organisations/{orgId}/location-types/{locTypeId}:
    get:
      operationId: LocationTypes_read
      summary: Retrieve LocationType
      parameters:
        - $ref: '#/components/parameters/Config.LocationTypePathRecord'
        - $ref: '#/components/parameters/Common.Paths.OrgId'
      responses:
        '200':
          description: The request has succeeded.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Config.LocationType'
        '401':
          description: Access is unauthorized.
        '403':
          description: Access is forbidden.
        '404':
          description: The server cannot find the requested resource.
        '429':
          description: Too many requests, wait and try again.
        '500':
          description: Server error
      tags:
        - Location Types
    put:
      operationId: LocationTypes_update
      summary: Update LocationType
      parameters:
        - $ref: '#/components/parameters/Config.LocationTypePathRecord'
        - $ref: '#/components/parameters/Common.Paths.OrgId'
        - $ref: '#/components/parameters/iov42.Core.Headers.Json'
      responses:
        '200':
          description: The request has succeeded.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Config.LocationType'
        '400':
          description: The server could not understand the request due to invalid syntax.
        '401':
          description: Access is unauthorized.
        '403':
          description: Access is forbidden.
        '404':
          description: The server cannot find the requested resource.
        '429':
          description: Too many requests, wait and try again.
        '500':
          description: Server error
      tags:
        - Location Types
      requestBody:
        required: true
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/Config.LocationTypeUpdate'
    delete:
      operationId: LocationTypes_delete
      summary: Delete LocationType
      parameters:
        - $ref: '#/components/parameters/Config.LocationTypePathRecord'
        - $ref: '#/components/parameters/Common.Paths.OrgId'
      responses:
        '204':
          description: >-
            There is no content to send for this request, but the headers may be
            useful. 
        '401':
          description: Access is unauthorized.
        '403':
          description: Access is forbidden.
        '404':
          description: The server cannot find the requested resource.
        '429':
          description: Too many requests, wait and try again.
        '500':
          description: Server error
      tags:
        - Location Types
  /organisations/{orgId}/locations:
    post:
      operationId: Locations_post
      summary: Create Location
      description: Adds a new location.
      parameters:
        - $ref: '#/components/parameters/Common.Paths.OrgId'
        - $ref: '#/components/parameters/iov42.Core.Headers.Json'
      responses:
        '201':
          description: >-
            The request has succeeded and will either return the newly created
            resource or where appropriate a record that reflects the success of
            the action.
          headers:
            Location:
              required: false
              description: Location of the created resource
              schema:
                type: string
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Static.Location'
        '400':
          description: The server could not understand the request due to invalid syntax.
        '401':
          description: Access is unauthorized.
        '403':
          description: Access is forbidden.
        '429':
          description: Too many requests, wait and try again.
        '500':
          description: Server error
      tags:
        - Locations
      requestBody:
        required: true
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/Static.LocationCreate'
      x-badges:
        - name: UDID
          color: '#0ca272'
    get:
      operationId: Locations_list
      summary: Retrieve Location List
      description: 'Gets the list of locations. '
      parameters:
        - $ref: '#/components/parameters/Common.Paths.OrgId'
        - $ref: '#/components/parameters/Static.LocationQuery.name'
        - $ref: '#/components/parameters/Static.LocationQuery.countryCodes'
        - $ref: '#/components/parameters/Static.LocationQuery.typeIds'
        - $ref: '#/components/parameters/Static.LocationQuery.recordState'
        - $ref: '#/components/parameters/Common.Queries.PagedQuery.size'
        - $ref: '#/components/parameters/Common.Queries.PagedQuery.page'
      responses:
        '200':
          description: The request has succeeded.
          content:
            application/json:
              schema:
                type: object
                required:
                  - content
                  - page
                properties:
                  content:
                    type: array
                    items:
                      $ref: '#/components/schemas/Static.Location'
                  page:
                    $ref: '#/components/schemas/iov42.Core.Paging.Page'
        '401':
          description: Access is unauthorized.
        '403':
          description: Access is forbidden.
        '429':
          description: Too many requests, wait and try again.
        '500':
          description: Server error
      tags:
        - Locations
  /organisations/{orgId}/locations/{locationId}:
    get:
      operationId: Locations_read
      summary: Retrieve Location
      description: Retrieves an existing location.
      parameters:
        - $ref: '#/components/parameters/Static.LocationPathRecord'
        - $ref: '#/components/parameters/Common.Paths.OrgId'
      responses:
        '200':
          description: The request has succeeded.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Static.Location'
        '401':
          description: Access is unauthorized.
        '403':
          description: Access is forbidden.
        '404':
          description: The server cannot find the requested resource.
        '429':
          description: Too many requests, wait and try again.
        '500':
          description: Server error
      tags:
        - Locations
    put:
      operationId: Locations_update
      summary: Update Location
      description: Updates an existing location.
      parameters:
        - $ref: '#/components/parameters/Static.LocationPathRecord'
        - $ref: '#/components/parameters/Common.Paths.OrgId'
        - $ref: '#/components/parameters/iov42.Core.Headers.Json'
      responses:
        '200':
          description: The request has succeeded.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Static.Location'
        '400':
          description: The server could not understand the request due to invalid syntax.
        '401':
          description: Access is unauthorized.
        '403':
          description: Access is forbidden.
        '404':
          description: The server cannot find the requested resource.
        '429':
          description: Too many requests, wait and try again.
        '500':
          description: Server error
      tags:
        - Locations
      requestBody:
        required: true
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/Static.UpdateLocation'
    delete:
      operationId: Locations_delete
      summary: Delete Location
      description: Delete an existing location.
      parameters:
        - $ref: '#/components/parameters/Static.LocationPathRecord'
        - $ref: '#/components/parameters/Common.Paths.OrgId'
      responses:
        '204':
          description: >-
            There is no content to send for this request, but the headers may be
            useful. 
        '401':
          description: Access is unauthorized.
        '403':
          description: Access is forbidden.
        '404':
          description: The server cannot find the requested resource.
        '429':
          description: Too many requests, wait and try again.
        '500':
          description: Server error
      tags:
        - Locations
  /organisations/{orgId}/materials:
    post:
      operationId: Materials_post
      summary: Create Material
      parameters:
        - $ref: '#/components/parameters/Common.Paths.OrgId'
        - $ref: '#/components/parameters/iov42.Core.Headers.Json'
      responses:
        '201':
          description: >-
            The request has succeeded and will either return the newly created
            resource or where appropriate a record that reflects the success of
            the action.
          headers:
            Location:
              required: false
              description: Location of the created resource
              schema:
                type: string
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Static.Material'
        '400':
          description: The server could not understand the request due to invalid syntax.
        '401':
          description: Access is unauthorized.
        '403':
          description: Access is forbidden.
        '429':
          description: Too many requests, wait and try again.
        '500':
          description: Server error
      tags:
        - Materials
      requestBody:
        required: true
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/Static.MaterialCreate'
      x-badges:
        - name: UDID
          color: '#0ca272'
    get:
      operationId: Materials_list
      summary: Retrieve Material List
      parameters:
        - $ref: '#/components/parameters/Common.Paths.OrgId'
        - $ref: '#/components/parameters/Static.MaterialQuery.name'
        - $ref: '#/components/parameters/Static.MaterialQuery.category'
        - $ref: '#/components/parameters/Static.MaterialQuery.recordState'
        - $ref: '#/components/parameters/Common.Queries.PagedQuery.size'
        - $ref: '#/components/parameters/Common.Queries.PagedQuery.page'
      responses:
        '200':
          description: The request has succeeded.
          content:
            application/json:
              schema:
                type: object
                required:
                  - content
                  - page
                properties:
                  content:
                    type: array
                    items:
                      $ref: '#/components/schemas/Static.Material'
                  page:
                    $ref: '#/components/schemas/iov42.Core.Paging.Page'
        '401':
          description: Access is unauthorized.
        '403':
          description: Access is forbidden.
        '429':
          description: Too many requests, wait and try again.
        '500':
          description: Server error
      tags:
        - Materials
  /organisations/{orgId}/materials/{materialId}:
    get:
      operationId: Materials_read
      summary: Retrieve Material
      parameters:
        - $ref: '#/components/parameters/Static.MaterialPathRecord'
        - $ref: '#/components/parameters/Common.Paths.OrgId'
      responses:
        '200':
          description: The request has succeeded.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Static.Material'
        '401':
          description: Access is unauthorized.
        '403':
          description: Access is forbidden.
        '404':
          description: The server cannot find the requested resource.
        '429':
          description: Too many requests, wait and try again.
        '500':
          description: Server error
      tags:
        - Materials
    put:
      operationId: Materials_update
      summary: Update Material
      parameters:
        - $ref: '#/components/parameters/Static.MaterialPathRecord'
        - $ref: '#/components/parameters/Common.Paths.OrgId'
        - $ref: '#/components/parameters/iov42.Core.Headers.Json'
      responses:
        '200':
          description: The request has succeeded.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Static.Material'
        '400':
          description: The server could not understand the request due to invalid syntax.
        '401':
          description: Access is unauthorized.
        '403':
          description: Access is forbidden.
        '404':
          description: The server cannot find the requested resource.
        '429':
          description: Too many requests, wait and try again.
        '500':
          description: Server error
      tags:
        - Materials
      requestBody:
        required: true
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/Static.UpdateMaterial'
    delete:
      operationId: Materials_delete
      summary: Delete Material
      parameters:
        - $ref: '#/components/parameters/Static.MaterialPathRecord'
        - $ref: '#/components/parameters/Common.Paths.OrgId'
      responses:
        '204':
          description: >-
            There is no content to send for this request, but the headers may be
            useful. 
        '401':
          description: Access is unauthorized.
        '403':
          description: Access is forbidden.
        '404':
          description: The server cannot find the requested resource.
        '429':
          description: Too many requests, wait and try again.
        '500':
          description: Server error
      tags:
        - Materials
  /organisations/{orgId}/process-types:
    post:
      operationId: ProcessTypes_post
      summary: Create ProcessType
      parameters:
        - $ref: '#/components/parameters/Common.Paths.OrgId'
        - $ref: '#/components/parameters/iov42.Core.Headers.Json'
      responses:
        '201':
          description: >-
            The request has succeeded and will either return the newly created
            resource or where appropriate a record that reflects the success of
            the action.
          headers:
            Location:
              required: false
              description: Location of the created resource
              schema:
                type: string
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Config.ProcessType'
        '400':
          description: The server could not understand the request due to invalid syntax.
        '401':
          description: Access is unauthorized.
        '403':
          description: Access is forbidden.
        '429':
          description: Too many requests, wait and try again.
        '500':
          description: Server error
      tags:
        - Process Types
      requestBody:
        required: true
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/Config.ProcessTypeCreate'
    get:
      operationId: ProcessTypes_list
      summary: Retrieve ProcessType List
      parameters:
        - $ref: '#/components/parameters/Common.Paths.OrgId'
        - $ref: '#/components/parameters/Config.ProcessTypeQuery.recordState'
        - $ref: '#/components/parameters/Config.ProcessTypeQuery.name'
        - $ref: '#/components/parameters/Common.Queries.PagedQuery.size'
        - $ref: '#/components/parameters/Common.Queries.PagedQuery.page'
      responses:
        '200':
          description: The request has succeeded.
          content:
            application/json:
              schema:
                type: object
                required:
                  - content
                  - page
                properties:
                  content:
                    type: array
                    items:
                      $ref: '#/components/schemas/Config.ProcessType'
                  page:
                    $ref: '#/components/schemas/iov42.Core.Paging.Page'
        '401':
          description: Access is unauthorized.
        '403':
          description: Access is forbidden.
        '429':
          description: Too many requests, wait and try again.
        '500':
          description: Server error
      tags:
        - Process Types
  /organisations/{orgId}/process-types/{processTypeId}:
    get:
      operationId: ProcessTypes_read
      summary: Retrieve ProcessType
      parameters:
        - $ref: '#/components/parameters/Config.ProcessTypePathRecord'
        - $ref: '#/components/parameters/Common.Paths.OrgId'
      responses:
        '200':
          description: The request has succeeded.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Config.ProcessType'
        '401':
          description: Access is unauthorized.
        '403':
          description: Access is forbidden.
        '404':
          description: The server cannot find the requested resource.
        '429':
          description: Too many requests, wait and try again.
        '500':
          description: Server error
      tags:
        - Process Types
    put:
      operationId: ProcessTypes_update
      summary: Update ProcessType
      parameters:
        - $ref: '#/components/parameters/Config.ProcessTypePathRecord'
        - $ref: '#/components/parameters/Common.Paths.OrgId'
        - $ref: '#/components/parameters/iov42.Core.Headers.Json'
      responses:
        '200':
          description: The request has succeeded.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Config.ProcessType'
        '400':
          description: The server could not understand the request due to invalid syntax.
        '401':
          description: Access is unauthorized.
        '403':
          description: Access is forbidden.
        '404':
          description: The server cannot find the requested resource.
        '429':
          description: Too many requests, wait and try again.
        '500':
          description: Server error
      tags:
        - Process Types
      requestBody:
        required: true
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/Config.ProcessTypeUpdate'
    delete:
      operationId: ProcessTypes_delete
      summary: Delete ProcessType
      parameters:
        - $ref: '#/components/parameters/Config.ProcessTypePathRecord'
        - $ref: '#/components/parameters/Common.Paths.OrgId'
      responses:
        '204':
          description: >-
            There is no content to send for this request, but the headers may be
            useful. 
        '401':
          description: Access is unauthorized.
        '403':
          description: Access is forbidden.
        '404':
          description: The server cannot find the requested resource.
        '429':
          description: Too many requests, wait and try again.
        '500':
          description: Server error
      tags:
        - Process Types
  /organisations/{orgId}/processes:
    post:
      operationId: Processs_post
      summary: Create Process
      parameters:
        - $ref: '#/components/parameters/Common.Paths.OrgId'
        - $ref: '#/components/parameters/iov42.Core.Headers.Json'
      responses:
        '201':
          description: >-
            The request has succeeded and will either return the newly created
            resource or where appropriate a record that reflects the success of
            the action.
          headers:
            Location:
              required: false
              description: Location of the created resource
              schema:
                type: string
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Transactional.Process'
        '400':
          description: The server could not understand the request due to invalid syntax.
        '401':
          description: Access is unauthorized.
        '403':
          description: Access is forbidden.
        '429':
          description: Too many requests, wait and try again.
        '500':
          description: Server error
      tags:
        - Processes
      requestBody:
        required: true
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/Transactional.ProcessCreate'
      x-badges:
        - name: UDID
          color: '#0ca272'
    get:
      operationId: Processs_list
      summary: Retrieve Process List
      parameters:
        - $ref: '#/components/parameters/Common.Paths.OrgId'
        - $ref: '#/components/parameters/Transactional.ProcessQuery.firstInputDate'
        - $ref: '#/components/parameters/Transactional.ProcessQuery.lastOutputDate'
        - $ref: '#/components/parameters/Transactional.ProcessQuery.recordState'
        - $ref: '#/components/parameters/Transactional.ProcessQuery.processId'
        - $ref: '#/components/parameters/Common.Queries.PagedQuery.size'
        - $ref: '#/components/parameters/Common.Queries.PagedQuery.page'
      responses:
        '200':
          description: The request has succeeded.
          content:
            application/json:
              schema:
                type: object
                required:
                  - content
                  - page
                properties:
                  content:
                    type: array
                    items:
                      $ref: '#/components/schemas/Transactional.Process'
                  page:
                    $ref: '#/components/schemas/iov42.Core.Paging.Page'
        '401':
          description: Access is unauthorized.
        '403':
          description: Access is forbidden.
        '429':
          description: Too many requests, wait and try again.
        '500':
          description: Server error
      tags:
        - Processes
  /organisations/{orgId}/processes/{processId}:
    get:
      operationId: Processs_read
      summary: Retrieve Process
      parameters:
        - $ref: '#/components/parameters/Transactional.ProcessPathRecord'
        - $ref: '#/components/parameters/Common.Paths.OrgId'
      responses:
        '200':
          description: The request has succeeded.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Transactional.Process'
        '401':
          description: Access is unauthorized.
        '403':
          description: Access is forbidden.
        '404':
          description: The server cannot find the requested resource.
        '429':
          description: Too many requests, wait and try again.
        '500':
          description: Server error
      tags:
        - Processes
    put:
      operationId: Processs_update
      summary: Update Process
      parameters:
        - $ref: '#/components/parameters/Transactional.ProcessPathRecord'
        - $ref: '#/components/parameters/Common.Paths.OrgId'
        - $ref: '#/components/parameters/iov42.Core.Headers.Json'
      responses:
        '200':
          description: The request has succeeded.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Transactional.Process'
        '400':
          description: The server could not understand the request due to invalid syntax.
        '401':
          description: Access is unauthorized.
        '403':
          description: Access is forbidden.
        '404':
          description: The server cannot find the requested resource.
        '429':
          description: Too many requests, wait and try again.
        '500':
          description: Server error
      tags:
        - Processes
      requestBody:
        required: true
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/Transactional.UpdateProcess'
    delete:
      operationId: Processs_delete
      summary: Delete Process
      parameters:
        - $ref: '#/components/parameters/Transactional.ProcessPathRecord'
        - $ref: '#/components/parameters/Common.Paths.OrgId'
      responses:
        '204':
          description: >-
            There is no content to send for this request, but the headers may be
            useful. 
        '401':
          description: Access is unauthorized.
        '403':
          description: Access is forbidden.
        '404':
          description: The server cannot find the requested resource.
        '429':
          description: Too many requests, wait and try again.
        '500':
          description: Server error
      tags:
        - Processes
  /organisations/{orgId}/processes/{processId}/inputs:
    post:
      operationId: ProcessInputs_post
      summary: Create ProcessInput
      parameters:
        - $ref: '#/components/parameters/Common.Paths.OrgId'
        - $ref: '#/components/parameters/Transactional.ProcessInputPath.processId'
        - $ref: '#/components/parameters/iov42.Core.Headers.Json'
      responses:
        '201':
          description: >-
            The request has succeeded and will either return the newly created
            resource or where appropriate a record that reflects the success of
            the action.
          headers:
            Location:
              required: false
              description: Location of the created resource
              schema:
                type: string
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Transactional.ProcessInput'
        '400':
          description: The server could not understand the request due to invalid syntax.
        '401':
          description: Access is unauthorized.
        '403':
          description: Access is forbidden.
        '429':
          description: Too many requests, wait and try again.
        '500':
          description: Server error
      tags:
        - Processes
      requestBody:
        required: true
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/Transactional.ProcessInputCreate'
    get:
      operationId: ProcessInputs_list
      summary: Retrieve ProcessInput List
      parameters:
        - $ref: '#/components/parameters/Common.Paths.OrgId'
        - $ref: '#/components/parameters/Transactional.ProcessInputPath.processId'
        - $ref: '#/components/parameters/Transactional.ProcessInputQuery.startDate'
        - $ref: '#/components/parameters/Transactional.ProcessInputQuery.endDate'
        - $ref: '#/components/parameters/Common.Queries.PagedQuery.size'
        - $ref: '#/components/parameters/Common.Queries.PagedQuery.page'
      responses:
        '200':
          description: The request has succeeded.
          content:
            application/json:
              schema:
                type: object
                required:
                  - content
                  - page
                properties:
                  content:
                    type: array
                    items:
                      $ref: '#/components/schemas/Transactional.ProcessInput'
                  page:
                    $ref: '#/components/schemas/iov42.Core.Paging.Page'
        '401':
          description: Access is unauthorized.
        '403':
          description: Access is forbidden.
        '429':
          description: Too many requests, wait and try again.
        '500':
          description: Server error
      tags:
        - Processes
  /organisations/{orgId}/processes/{processId}/inputs/{inputId}:
    get:
      operationId: ProcessInputs_read
      summary: Retrieve ProcessInput
      parameters:
        - $ref: '#/components/parameters/Transactional.ProcessInputPathRecord'
        - $ref: '#/components/parameters/Common.Paths.OrgId'
        - $ref: '#/components/parameters/Transactional.ProcessInputPath.processId'
      responses:
        '200':
          description: The request has succeeded.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Transactional.ProcessInput'
        '401':
          description: Access is unauthorized.
        '403':
          description: Access is forbidden.
        '404':
          description: The server cannot find the requested resource.
        '429':
          description: Too many requests, wait and try again.
        '500':
          description: Server error
      tags:
        - Processes
    put:
      operationId: ProcessInputs_update
      summary: Update ProcessInput
      parameters:
        - $ref: '#/components/parameters/Transactional.ProcessInputPathRecord'
        - $ref: '#/components/parameters/Common.Paths.OrgId'
        - $ref: '#/components/parameters/Transactional.ProcessInputPath.processId'
        - $ref: '#/components/parameters/iov42.Core.Headers.Json'
      responses:
        '200':
          description: The request has succeeded.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Transactional.ProcessInput'
        '400':
          description: The server could not understand the request due to invalid syntax.
        '401':
          description: Access is unauthorized.
        '403':
          description: Access is forbidden.
        '404':
          description: The server cannot find the requested resource.
        '429':
          description: Too many requests, wait and try again.
        '500':
          description: Server error
      tags:
        - Processes
      requestBody:
        required: true
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/Transactional.ProcessInputCreateOrUpdate'
    delete:
      operationId: ProcessInputs_delete
      summary: Delete ProcessInput
      parameters:
        - $ref: '#/components/parameters/Transactional.ProcessInputPathRecord'
        - $ref: '#/components/parameters/Common.Paths.OrgId'
        - $ref: '#/components/parameters/Transactional.ProcessInputPath.processId'
      responses:
        '204':
          description: >-
            There is no content to send for this request, but the headers may be
            useful. 
        '401':
          description: Access is unauthorized.
        '403':
          description: Access is forbidden.
        '404':
          description: The server cannot find the requested resource.
        '429':
          description: Too many requests, wait and try again.
        '500':
          description: Server error
      tags:
        - Processes
  /organisations/{orgId}/processes/{processId}/outputs:
    post:
      operationId: ProcessOutputs_post
      summary: Create ProcessOutput
      parameters:
        - $ref: '#/components/parameters/Common.Paths.OrgId'
        - $ref: '#/components/parameters/Transactional.ProcessOutputPath.processId'
        - $ref: '#/components/parameters/iov42.Core.Headers.Json'
      responses:
        '201':
          description: >-
            The request has succeeded and will either return the newly created
            resource or where appropriate a record that reflects the success of
            the action.
          headers:
            Location:
              required: false
              description: Location of the created resource
              schema:
                type: string
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Transactional.ProcessOutput'
        '400':
          description: The server could not understand the request due to invalid syntax.
        '401':
          description: Access is unauthorized.
        '403':
          description: Access is forbidden.
        '429':
          description: Too many requests, wait and try again.
        '500':
          description: Server error
      tags:
        - Processes
      requestBody:
        required: true
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/Transactional.ProcessOutputCreate'
    get:
      operationId: ProcessOutputs_list
      summary: Retrieve ProcessOutput List
      parameters:
        - $ref: '#/components/parameters/Common.Paths.OrgId'
        - $ref: '#/components/parameters/Transactional.ProcessOutputPath.processId'
        - $ref: '#/components/parameters/Transactional.ProcessOutputQuery.startDate'
        - $ref: '#/components/parameters/Transactional.ProcessOutputQuery.endDate'
        - $ref: '#/components/parameters/Common.Queries.PagedQuery.size'
        - $ref: '#/components/parameters/Common.Queries.PagedQuery.page'
      responses:
        '200':
          description: The request has succeeded.
          content:
            application/json:
              schema:
                type: object
                required:
                  - content
                  - page
                properties:
                  content:
                    type: array
                    items:
                      $ref: '#/components/schemas/Transactional.ProcessOutput'
                  page:
                    $ref: '#/components/schemas/iov42.Core.Paging.Page'
        '401':
          description: Access is unauthorized.
        '403':
          description: Access is forbidden.
        '429':
          description: Too many requests, wait and try again.
        '500':
          description: Server error
      tags:
        - Processes
  /organisations/{orgId}/processes/{processId}/outputs/{outputId}:
    get:
      operationId: ProcessOutputs_read
      summary: Retrieve ProcessOutput
      parameters:
        - $ref: '#/components/parameters/Transactional.ProcessOutputPathRecord'
        - $ref: '#/components/parameters/Common.Paths.OrgId'
        - $ref: '#/components/parameters/Transactional.ProcessOutputPath.processId'
      responses:
        '200':
          description: The request has succeeded.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Transactional.ProcessOutput'
        '401':
          description: Access is unauthorized.
        '403':
          description: Access is forbidden.
        '404':
          description: The server cannot find the requested resource.
        '429':
          description: Too many requests, wait and try again.
        '500':
          description: Server error
      tags:
        - Processes
    put:
      operationId: ProcessOutputs_update
      summary: Update ProcessOutput
      parameters:
        - $ref: '#/components/parameters/Transactional.ProcessOutputPathRecord'
        - $ref: '#/components/parameters/Common.Paths.OrgId'
        - $ref: '#/components/parameters/Transactional.ProcessOutputPath.processId'
        - $ref: '#/components/parameters/iov42.Core.Headers.Json'
      responses:
        '200':
          description: The request has succeeded.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Transactional.ProcessOutput'
        '400':
          description: The server could not understand the request due to invalid syntax.
        '401':
          description: Access is unauthorized.
        '403':
          description: Access is forbidden.
        '404':
          description: The server cannot find the requested resource.
        '429':
          description: Too many requests, wait and try again.
        '500':
          description: Server error
      tags:
        - Processes
      requestBody:
        required: true
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/Transactional.ProcessOutputCreateOrUpdate'
    delete:
      operationId: ProcessOutputs_delete
      summary: Delete ProcessOutput
      parameters:
        - $ref: '#/components/parameters/Transactional.ProcessOutputPathRecord'
        - $ref: '#/components/parameters/Common.Paths.OrgId'
        - $ref: '#/components/parameters/Transactional.ProcessOutputPath.processId'
      responses:
        '204':
          description: >-
            There is no content to send for this request, but the headers may be
            useful. 
        '401':
          description: Access is unauthorized.
        '403':
          description: Access is forbidden.
        '404':
          description: The server cannot find the requested resource.
        '429':
          description: Too many requests, wait and try again.
        '500':
          description: Server error
      tags:
        - Processes
  /organisations/{orgId}/products:
    post:
      operationId: Products_post
      summary: Create Product
      description: Add a new product.
      parameters:
        - $ref: '#/components/parameters/Common.Paths.OrgId'
        - $ref: '#/components/parameters/iov42.Core.Headers.Json'
      responses:
        '201':
          description: >-
            The request has succeeded and will either return the newly created
            resource or where appropriate a record that reflects the success of
            the action.
          headers:
            Location:
              required: false
              description: Location of the created resource
              schema:
                type: string
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Static.Product'
        '400':
          description: The server could not understand the request due to invalid syntax.
        '401':
          description: Access is unauthorized.
        '403':
          description: Access is forbidden.
        '429':
          description: Too many requests, wait and try again.
        '500':
          description: Server error
      tags:
        - Products
      requestBody:
        required: true
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/Static.ProductCreate'
      x-badges:
        - name: UDID
          color: '#0ca272'
    get:
      operationId: Products_list
      summary: Retrieve Product List
      description: Gets the list of products.
      parameters:
        - $ref: '#/components/parameters/Common.Paths.OrgId'
        - $ref: '#/components/parameters/Static.ProductQuery.name'
        - $ref: '#/components/parameters/Static.ProductQuery.material'
        - $ref: '#/components/parameters/Static.ProductQuery.category'
        - $ref: '#/components/parameters/Static.ProductQuery.baseUnit'
        - $ref: '#/components/parameters/Static.ProductQuery.baseUnitType'
        - $ref: '#/components/parameters/Static.ProductQuery.recordState'
        - $ref: '#/components/parameters/Common.Queries.PagedQuery.size'
        - $ref: '#/components/parameters/Common.Queries.PagedQuery.page'
      responses:
        '200':
          description: The request has succeeded.
          content:
            application/json:
              schema:
                type: object
                required:
                  - content
                  - page
                properties:
                  content:
                    type: array
                    items:
                      $ref: '#/components/schemas/Static.Product'
                  page:
                    $ref: '#/components/schemas/iov42.Core.Paging.Page'
        '401':
          description: Access is unauthorized.
        '403':
          description: Access is forbidden.
        '429':
          description: Too many requests, wait and try again.
        '500':
          description: Server error
      tags:
        - Products
  /organisations/{orgId}/products/{productId}:
    get:
      operationId: Products_read
      summary: Retrieve Product
      description: Retrieve an existing product.
      parameters:
        - $ref: '#/components/parameters/Static.ProductPathRecord'
        - $ref: '#/components/parameters/Common.Paths.OrgId'
      responses:
        '200':
          description: The request has succeeded.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Static.Product'
        '401':
          description: Access is unauthorized.
        '403':
          description: Access is forbidden.
        '404':
          description: The server cannot find the requested resource.
        '429':
          description: Too many requests, wait and try again.
        '500':
          description: Server error
      tags:
        - Products
    put:
      operationId: Products_update
      summary: Update Product
      description: Update an existing product.
      parameters:
        - $ref: '#/components/parameters/Static.ProductPathRecord'
        - $ref: '#/components/parameters/Common.Paths.OrgId'
        - $ref: '#/components/parameters/iov42.Core.Headers.Json'
      responses:
        '200':
          description: The request has succeeded.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Static.Product'
        '400':
          description: The server could not understand the request due to invalid syntax.
        '401':
          description: Access is unauthorized.
        '403':
          description: Access is forbidden.
        '404':
          description: The server cannot find the requested resource.
        '429':
          description: Too many requests, wait and try again.
        '500':
          description: Server error
      tags:
        - Products
      requestBody:
        required: true
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/Static.UpdateProduct'
    delete:
      operationId: Products_delete
      summary: Delete Product
      description: >-
        Delete a product. This will only work if the product is not referenced
        in any items.
      parameters:
        - $ref: '#/components/parameters/Static.ProductPathRecord'
        - $ref: '#/components/parameters/Common.Paths.OrgId'
      responses:
        '204':
          description: >-
            There is no content to send for this request, but the headers may be
            useful. 
        '401':
          description: Access is unauthorized.
        '403':
          description: Access is forbidden.
        '404':
          description: The server cannot find the requested resource.
        '429':
          description: Too many requests, wait and try again.
        '500':
          description: Server error
      tags:
        - Products
  /organisations/{orgId}/products/{productId}/variants:
    post:
      operationId: Variants_post
      summary: Create Variant
      description: Add a new product variant.
      parameters:
        - $ref: '#/components/parameters/Static.ProductPathRecord'
        - $ref: '#/components/parameters/Common.Paths.OrgId'
        - $ref: '#/components/parameters/iov42.Core.Headers.Json'
      responses:
        '201':
          description: >-
            The request has succeeded and will either return the newly created
            resource or where appropriate a record that reflects the success of
            the action.
          headers:
            Location:
              required: false
              description: Location of the created resource
              schema:
                type: string
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Static.Variant'
        '400':
          description: The server could not understand the request due to invalid syntax.
        '401':
          description: Access is unauthorized.
        '403':
          description: Access is forbidden.
        '429':
          description: Too many requests, wait and try again.
        '500':
          description: Server error
      tags:
        - Products
      requestBody:
        required: true
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/Static.VariantCreate'
    get:
      operationId: Variants_list
      summary: Retrieve Variant List
      description: Gets the list of product variants.
      parameters:
        - $ref: '#/components/parameters/Static.ProductPathRecord'
        - $ref: '#/components/parameters/Common.Paths.OrgId'
        - $ref: '#/components/parameters/Static.VariantQuery.description'
        - $ref: '#/components/parameters/Static.VariantQuery.sku'
        - $ref: '#/components/parameters/Static.VariantQuery.recordState'
        - $ref: '#/components/parameters/Common.Queries.PagedQuery.size'
        - $ref: '#/components/parameters/Common.Queries.PagedQuery.page'
      responses:
        '200':
          description: The request has succeeded.
          content:
            application/json:
              schema:
                type: object
                required:
                  - content
                  - page
                properties:
                  content:
                    type: array
                    items:
                      $ref: '#/components/schemas/Static.Variant'
                  page:
                    $ref: '#/components/schemas/iov42.Core.Paging.Page'
        '401':
          description: Access is unauthorized.
        '403':
          description: Access is forbidden.
        '429':
          description: Too many requests, wait and try again.
        '500':
          description: Server error
      tags:
        - Products
  /organisations/{orgId}/products/{productId}/variants/{variantId}:
    get:
      operationId: Variants_read
      summary: Retrieve Variant
      description: Retrieve an existing product variant.
      parameters:
        - $ref: '#/components/parameters/Static.VariantRecordPath'
        - $ref: '#/components/parameters/Static.ProductPathRecord'
        - $ref: '#/components/parameters/Common.Paths.OrgId'
      responses:
        '200':
          description: The request has succeeded.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Static.Variant'
        '401':
          description: Access is unauthorized.
        '403':
          description: Access is forbidden.
        '404':
          description: The server cannot find the requested resource.
        '429':
          description: Too many requests, wait and try again.
        '500':
          description: Server error
      tags:
        - Products
    put:
      operationId: Variants_update
      summary: Update Variant
      description: Update an existing product.
      parameters:
        - $ref: '#/components/parameters/Static.VariantRecordPath'
        - $ref: '#/components/parameters/Static.ProductPathRecord'
        - $ref: '#/components/parameters/Common.Paths.OrgId'
        - $ref: '#/components/parameters/iov42.Core.Headers.Json'
      responses:
        '200':
          description: The request has succeeded.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Static.Variant'
        '400':
          description: The server could not understand the request due to invalid syntax.
        '401':
          description: Access is unauthorized.
        '403':
          description: Access is forbidden.
        '404':
          description: The server cannot find the requested resource.
        '429':
          description: Too many requests, wait and try again.
        '500':
          description: Server error
      tags:
        - Products
      requestBody:
        required: true
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/Static.UpdateVariant'
    delete:
      operationId: Variants_delete
      summary: Delete Product Variant
      description: >-
        Delete a product. This will only work if the product is not referenced
        in any items.
      parameters:
        - $ref: '#/components/parameters/Static.VariantRecordPath'
        - $ref: '#/components/parameters/Static.ProductPathRecord'
        - $ref: '#/components/parameters/Common.Paths.OrgId'
      responses:
        '204':
          description: >-
            There is no content to send for this request, but the headers may be
            useful. 
        '401':
          description: Access is unauthorized.
        '403':
          description: Access is forbidden.
        '404':
          description: The server cannot find the requested resource.
        '429':
          description: Too many requests, wait and try again.
        '500':
          description: Server error
      tags:
        - Products
  /organisations/{orgId}/purchase-orders:
    post:
      operationId: PurchaseOrders_post
      summary: Create Purchase Order
      parameters:
        - $ref: '#/components/parameters/Common.Paths.OrgId'
        - $ref: '#/components/parameters/iov42.Core.Headers.Json'
      responses:
        '201':
          description: >-
            The request has succeeded and will either return the newly created
            resource or where appropriate a record that reflects the success of
            the action.
          headers:
            Location:
              required: false
              description: Location of the created resource
              schema:
                type: string
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Transactional.PurchaseOrder'
        '400':
          description: The server could not understand the request due to invalid syntax.
        '401':
          description: Access is unauthorized.
        '403':
          description: Access is forbidden.
        '429':
          description: Too many requests, wait and try again.
        '500':
          description: Server error
      tags:
        - Orders
      requestBody:
        required: true
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/Transactional.PurchaseOrderCreate'
      x-badges:
        - name: UDID
          color: '#0ca272'
    get:
      operationId: PurchaseOrders_list
      summary: Retrieve Purchase Order List
      parameters:
        - $ref: '#/components/parameters/Common.Paths.OrgId'
        - $ref: '#/components/parameters/Transactional.POQuery.number'
        - $ref: '#/components/parameters/Transactional.POQuery.supplierUris'
        - $ref: '#/components/parameters/Transactional.POQuery.buyerUris'
        - $ref: '#/components/parameters/Transactional.POQuery.deliverToLocationIds'
        - $ref: '#/components/parameters/Transactional.POQuery.productIds'
        - $ref: '#/components/parameters/Transactional.POQuery.recordState'
        - $ref: '#/components/parameters/Transactional.POQuery.status'
        - $ref: '#/components/parameters/Common.Queries.PagedQuery.size'
        - $ref: '#/components/parameters/Common.Queries.PagedQuery.page'
      responses:
        '200':
          description: The request has succeeded.
          content:
            application/json:
              schema:
                type: object
                required:
                  - content
                  - page
                properties:
                  content:
                    type: array
                    items:
                      $ref: '#/components/schemas/Transactional.PurchaseOrder'
                  page:
                    $ref: '#/components/schemas/iov42.Core.Paging.Page'
        '401':
          description: Access is unauthorized.
        '403':
          description: Access is forbidden.
        '429':
          description: Too many requests, wait and try again.
        '500':
          description: Server error
      tags:
        - Orders
  /organisations/{orgId}/purchase-orders/{purchaseOrderId}:
    get:
      operationId: PurchaseOrders_read
      summary: Retrieve Purchase Order
      parameters:
        - $ref: '#/components/parameters/Transactional.PurchaseOrderPathRecord'
        - $ref: '#/components/parameters/Common.Paths.OrgId'
      responses:
        '200':
          description: The request has succeeded.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Transactional.PurchaseOrder'
        '401':
          description: Access is unauthorized.
        '403':
          description: Access is forbidden.
        '404':
          description: The server cannot find the requested resource.
        '429':
          description: Too many requests, wait and try again.
        '500':
          description: Server error
      tags:
        - Orders
    put:
      operationId: PurchaseOrders_update
      summary: Update Purchase Order
      parameters:
        - $ref: '#/components/parameters/Transactional.PurchaseOrderPathRecord'
        - $ref: '#/components/parameters/Common.Paths.OrgId'
        - $ref: '#/components/parameters/iov42.Core.Headers.Json'
      responses:
        '200':
          description: The request has succeeded.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Transactional.PurchaseOrder'
        '400':
          description: The server could not understand the request due to invalid syntax.
        '401':
          description: Access is unauthorized.
        '403':
          description: Access is forbidden.
        '404':
          description: The server cannot find the requested resource.
        '429':
          description: Too many requests, wait and try again.
        '500':
          description: Server error
      tags:
        - Orders
      requestBody:
        required: true
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/Transactional.UpdatePurchaseOrder'
    delete:
      operationId: PurchaseOrders_delete
      summary: Delete Purchase Order
      parameters:
        - $ref: '#/components/parameters/Transactional.PurchaseOrderPathRecord'
        - $ref: '#/components/parameters/Common.Paths.OrgId'
      responses:
        '204':
          description: >-
            There is no content to send for this request, but the headers may be
            useful. 
        '401':
          description: Access is unauthorized.
        '403':
          description: Access is forbidden.
        '404':
          description: The server cannot find the requested resource.
        '429':
          description: Too many requests, wait and try again.
        '500':
          description: Server error
      tags:
        - Orders
  /organisations/{orgId}/purchase-orders/{purchaseOrderId}/status:
    put:
      operationId: PurchaseOrders_updateStatus
      summary: Update Purchase Order Status
      description: Update the status of a Purchase Order
      parameters:
        - $ref: '#/components/parameters/Transactional.PurchaseOrderPathRecord'
        - $ref: '#/components/parameters/Common.Paths.OrgId'
      responses:
        '200':
          description: The request has succeeded.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/iov42.Core.Responses.NullResponse'
        '400':
          description: The server could not understand the request due to invalid syntax.
        '401':
          description: Access is unauthorized.
        '403':
          description: Access is forbidden.
        '429':
          description: Too many requests, wait and try again.
        '500':
          description: Server error
      tags:
        - Orders
      requestBody:
        required: true
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/Transactional.PurchaseOrderStatusUpdate'
  /organisations/{orgId}/validation/status:
    post:
      operationId: ValidationService_post
      summary: Get Validation Status
      description: Retrieve validation status for given records.
      parameters:
        - $ref: '#/components/parameters/Common.Paths.OrgId'
        - $ref: '#/components/parameters/iov42.Core.Headers.Json'
      responses:
        '201':
          description: >-
            The request has succeeded and will either return the newly created
            resource or where appropriate a record that reflects the success of
            the action.
          headers:
            Location:
              required: false
              description: Location of the created resource
              schema:
                type: string
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Assessment.ValidationResult'
        '400':
          description: The server could not understand the request due to invalid syntax.
        '401':
          description: Access is unauthorized.
        '403':
          description: Access is forbidden.
        '429':
          description: Too many requests, wait and try again.
        '500':
          description: Server error
      tags:
        - Validation
      requestBody:
        required: true
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/Assessment.ValidationRequest'
      x-badges:
        - name: Proposed Endpoint
          color: '#f0c500'
  /organisations/{orgId}/workflows/deliveries:
    post:
      operationId: WorkflowDeliveries_post
      summary: Create Delivery from Inputs
      description: >-
        This allows for the creation of an 'outbound' delivery based on a
        variety of potential inputs and differing outputs.
      parameters:
        - $ref: '#/components/parameters/Common.Paths.OrgId'
        - $ref: '#/components/parameters/iov42.Core.Headers.Json'
      responses:
        '201':
          description: >-
            The request has succeeded and will either return the newly created
            resource or where appropriate a record that reflects the success of
            the action.
          headers:
            Location:
              required: false
              description: Location of the created resource
              schema:
                type: string
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Workflow.WorkflowResult'
        '400':
          description: The server could not understand the request due to invalid syntax.
        '401':
          description: Access is unauthorized.
        '403':
          description: Access is forbidden.
        '429':
          description: Too many requests, wait and try again.
        '500':
          description: Server error
      tags:
        - Outbound Delivery Workflow
      requestBody:
        required: true
        content:
          application/json:
            schema:
              anyOf:
                - $ref: '#/components/schemas/Create_Trade_Delivery_From_Items'
                - $ref: '#/components/schemas/Create_Trade_Delivery_From_Batches'
                - $ref: '#/components/schemas/Create_Trade_Delivery_From_Products'
                - $ref: '#/components/schemas/Create_Production_Delivery_From_Items'
                - $ref: '#/components/schemas/Create_Production_Delivery_From_Batches'
                - $ref: >-
                    #/components/schemas/Create_Production_Delivery_From_Products
security:
  - ApiKeyAuth: []
components:
  parameters:
    Attachment.AttachmentPathRecord:
      name: attachmentId
      in: path
      required: true
      schema:
        type: string
    Attachment.AttachmentQuery.attachmentType:
      name: attachmentType
      in: query
      required: false
      description: The record type of the attachment record.
      schema:
        $ref: '#/components/schemas/Attachment.QueryAttachmentType'
      explode: false
    Attachment.AttachmentQuery.attachmentUri:
      name: attachmentUri
      in: query
      required: false
      description: The URI of the attachment.
      schema:
        type: string
        format: uri
      explode: false
    Attachment.AttachmentQuery.targetType:
      name: targetType
      in: query
      required: false
      description: The record type of the target record.
      schema:
        $ref: '#/components/schemas/Attachment.QueryTargetType'
      explode: false
    Attachment.AttachmentQuery.targetUri:
      name: targetUri
      in: query
      required: false
      description: The target URI that the attachment is being attached to.
      schema:
        type: string
        format: uri
      explode: false
    Common.BaseUnitPathRecord:
      name: unitId
      in: path
      required: true
      schema:
        type: string
    Common.BaseUnitQuery.name:
      name: name
      in: query
      required: false
      schema:
        type: string
      explode: false
    Common.BaseUnitQuery.symbol:
      name: symbol
      in: query
      required: false
      schema:
        type: string
      explode: false
    Common.BaseUnitQuery.type:
      name: type
      in: query
      required: false
      schema:
        $ref: '#/components/schemas/Common.BaseUnitType'
      explode: false
    Common.CountriesQuery:
      name: isEuMember
      in: query
      required: false
      description: Restrict the returned list to EU only country codes.
      schema:
        type: boolean
      explode: false
    Common.Paths.OrgId:
      name: orgId
      in: path
      required: true
      description: The organisation identity
      schema:
        type: string
    Common.Queries.PagedQuery.page:
      name: page
      in: query
      required: false
      description: The pageNo to return. (Zero-based)
      schema:
        type: integer
        format: int32
        minimum: 0
        default: 0
      explode: false
    Common.Queries.PagedQuery.size:
      name: size
      in: query
      required: false
      description: >-
        The number of elements to return in each page. Minimum value must be 1,
        defaults to 20.
      schema:
        type: integer
        format: int32
        minimum: 1
        default: 20
      explode: false
    Common.StandardPathRecord:
      name: standardId
      in: path
      required: true
      schema:
        type: string
    Common.StandardQuery.name:
      name: name
      in: query
      required: false
      schema:
        type: string
      explode: false
    Common.StandardQuery.recordState:
      name: recordState
      in: query
      required: false
      schema:
        $ref: '#/components/schemas/Common.Enums.RecordState'
      explode: false
    Common.StandardTypePath:
      name: standardId
      in: path
      required: true
      schema:
        type: string
    Common.StandardTypePathRecord:
      name: standardTypeId
      in: path
      required: true
      schema:
        type: string
    Common.StandardTypeQuery:
      name: recordState
      in: query
      required: false
      description: The status of the record.
      schema:
        $ref: '#/components/schemas/Common.Enums.RecordState'
      explode: false
    Config.DocumentTypePathRecord:
      name: documentTypeId
      in: path
      required: true
      schema:
        type: string
    Config.DocumentTypeQuery.name:
      name: name
      in: query
      required: false
      schema:
        type: string
      explode: false
    Config.DocumentTypeQuery.recordState:
      name: recordState
      in: query
      required: false
      schema:
        $ref: '#/components/schemas/Common.Enums.RecordState'
      explode: false
    Config.LocationTypePathRecord:
      name: locTypeId
      in: path
      required: true
      schema:
        type: string
    Config.LocationTypeQuery.recordState:
      name: recordState
      in: query
      required: false
      description: The record state to query for.
      schema:
        $ref: '#/components/schemas/Common.Enums.RecordState'
      explode: false
    Config.LocationTypeQuery.type:
      name: type
      in: query
      required: false
      description: Specific location type to query for.
      schema:
        type: string
      explode: false
    Config.ProcessTypePathRecord:
      name: processTypeId
      in: path
      required: true
      schema:
        type: string
    Config.ProcessTypeQuery.name:
      name: name
      in: query
      required: false
      schema:
        type: string
      explode: false
    Config.ProcessTypeQuery.recordState:
      name: recordState
      in: query
      required: false
      schema:
        $ref: '#/components/schemas/Common.Enums.RecordState'
      explode: false
    Evidence.DocumentPathRecord:
      name: documentId
      in: path
      required: true
      schema:
        type: string
    Evidence.DocumentQuery.contentHash:
      name: contentHash
      in: query
      required: false
      schema:
        type: string
      explode: false
    Evidence.DocumentQuery.hasContent:
      name: hasContent
      in: query
      required: false
      schema:
        type: boolean
      explode: false
    Evidence.DocumentQuery.name:
      name: name
      in: query
      required: false
      schema:
        type: string
      explode: false
    Evidence.DocumentQuery.recordState:
      name: recordState
      in: query
      required: false
      schema:
        $ref: '#/components/schemas/Common.Enums.RecordState'
      explode: false
    Evidence.DocumentQuery.typeIds:
      name: typeIds
      in: query
      required: false
      schema:
        type: array
        items:
          type: string
      explode: false
    Integrations.Eudr.CredentialRecordPath:
      name: credentialsId
      in: path
      required: true
      schema:
        type: string
    Integrations.Eudr.DDSReferencePathRecordPath:
      name: referenceId
      in: path
      required: true
      schema:
        type: string
    Integrations.Eudr.DDSReferenceQuery.internalReference:
      name: internalReference
      in: query
      required: false
      description: The internal reference number for the DDS Reference.
      schema:
        type: string
      explode: false
    Integrations.Eudr.DDSReferenceQuery.sourceResourceType:
      name: sourceResourceType
      in: query
      required: true
      description: This is the resource type of the source.
      schema:
        $ref: '#/components/schemas/Integrations.Eudr.SourceResourceType'
      explode: false
    Integrations.Eudr.DDSReferenceQuery.status:
      name: status
      in: query
      required: false
      description: Get the DDS references with the provided status.
      schema:
        $ref: '#/components/schemas/Integrations.Eudr.DDSStatus'
      explode: false
    Static.ConnectionPathRecord:
      name: connectionId
      in: path
      required: true
      schema:
        type: string
    Static.ConnectionQuery.connectStatus:
      name: connectStatus
      in: query
      required: false
      description: >-
        Whether or not the Connection has an established link between their
        Interu account and yours.
      schema:
        $ref: '#/components/schemas/Static.ConnectStatus'
      explode: false
    Static.ConnectionQuery.country:
      name: country
      in: query
      required: false
      description: The country that the Connection is based in.
      schema:
        type: string
      explode: false
    Static.ConnectionQuery.hasPublicUri:
      name: hasPublicUri
      in: query
      required: false
      description: Will return all connections where they have a public URI.
      schema:
        type: boolean
      explode: false
    Static.ConnectionQuery.name:
      name: name
      in: query
      required: false
      description: The name of the Connection.
      schema:
        type: string
      explode: false
    Static.ConnectionQuery.parentUri:
      name: parentUri
      in: query
      required: false
      description: The parent Uri if set.
      schema:
        type: string
      explode: false
    Static.ConnectionQuery.publicUri:
      name: publicUri
      in: query
      required: false
      description: This is the public organisation URI.
      schema:
        type: string
      explode: false
    Static.ConnectionQuery.recordState:
      name: recordState
      in: query
      required: false
      description: The record 'State' of the Connection
      schema:
        $ref: '#/components/schemas/Common.Enums.RecordState'
      explode: false
    Static.LocationLinkPathRecord:
      name: linkId
      in: path
      required: true
      schema:
        type: string
    Static.LocationLinkQuery.linkDirection:
      name: linkDirection
      in: query
      required: false
      schema:
        $ref: '#/components/schemas/Static.QueryLinkDirection'
      explode: false
    Static.LocationLinkQuery.locationUri:
      name: locationUri
      in: query
      required: false
      schema:
        type: string
        format: uri
      explode: false
    Static.LocationPathRecord:
      name: locationId
      in: path
      required: true
      schema:
        type: string
    Static.LocationQuery.countryCodes:
      name: countryCodes
      in: query
      required: false
      schema:
        type: array
        items:
          type: string
      explode: false
    Static.LocationQuery.name:
      name: name
      in: query
      required: false
      schema:
        type: string
      explode: false
    Static.LocationQuery.recordState:
      name: recordState
      in: query
      required: false
      schema:
        $ref: '#/components/schemas/Common.Enums.RecordState'
      explode: false
    Static.LocationQuery.typeIds:
      name: typeIds
      in: query
      required: false
      schema:
        type: array
        items:
          type: string
      explode: false
    Static.MaterialPathRecord:
      name: materialId
      in: path
      required: true
      schema:
        type: string
    Static.MaterialQuery.category:
      name: category
      in: query
      required: false
      schema:
        type: string
      explode: false
    Static.MaterialQuery.name:
      name: name
      in: query
      required: false
      schema:
        type: string
      explode: false
    Static.MaterialQuery.recordState:
      name: recordState
      in: query
      required: false
      schema:
        $ref: '#/components/schemas/Common.Enums.RecordState'
      explode: false
    Static.ProductPathRecord:
      name: productId
      in: path
      required: true
      schema:
        type: string
    Static.ProductQuery.baseUnit:
      name: baseUnit
      in: query
      required: false
      schema:
        type: string
        format: uri
      explode: false
    Static.ProductQuery.baseUnitType:
      name: baseUnitType
      in: query
      required: false
      schema:
        $ref: '#/components/schemas/Common.Enums.BaseUnitType'
      explode: false
    Static.ProductQuery.category:
      name: category
      in: query
      required: false
      schema:
        type: string
      explode: false
    Static.ProductQuery.material:
      name: material
      in: query
      required: false
      schema:
        type: string
      explode: false
    Static.ProductQuery.name:
      name: name
      in: query
      required: false
      schema:
        type: string
      explode: false
    Static.ProductQuery.recordState:
      name: recordState
      in: query
      required: false
      schema:
        $ref: '#/components/schemas/Common.Enums.RecordState'
      explode: false
    Static.VariantQuery.description:
      name: description
      in: query
      required: false
      schema:
        type: string
      explode: false
    Static.VariantQuery.recordState:
      name: recordState
      in: query
      required: false
      schema:
        $ref: '#/components/schemas/Common.Enums.RecordState'
      explode: false
    Static.VariantQuery.sku:
      name: sku
      in: query
      required: false
      schema:
        type: string
      explode: false
    Static.VariantRecordPath:
      name: variantId
      in: path
      required: true
      schema:
        type: string
    Transactional.DeliveryPathRecord:
      name: deliveryId
      in: path
      required: true
      schema:
        type: string
    Transactional.DeliveryQuery.deliveryId:
      name: deliveryId
      in: query
      required: false
      schema:
        type: string
      explode: false
    Transactional.DeliveryQuery.purchaseOrderNumber:
      name: purchaseOrderNumber
      in: query
      required: false
      schema:
        type: string
      explode: false
    Transactional.DeliveryQuery.recordState:
      name: recordState
      in: query
      required: false
      schema:
        $ref: '#/components/schemas/Common.Enums.RecordState'
      explode: false
    Transactional.DeliveryQuery.status:
      name: status
      in: query
      required: false
      schema:
        $ref: '#/components/schemas/Transactional.DeliveryStatus'
      explode: false
    Transactional.ItemPathRecord:
      name: itemId
      in: path
      required: true
      schema:
        type: string
    Transactional.ItemQuery.batchNumbers:
      name: batchNumbers
      in: query
      required: false
      description: Find any items that have the provided batch numbers.
      schema:
        type: array
        items:
          type: string
      explode: false
    Transactional.ItemQuery.createdAtLocationIds:
      name: createdAtLocationIds
      in: query
      required: false
      description: Find items that where created at the provided locations.
      schema:
        type: array
        items:
          type: string
      explode: false
    Transactional.ItemQuery.currentLocation:
      name: currentLocation
      in: query
      required: false
      description: Find items that have the provided location.
      schema:
        type: string
      explode: false
    Transactional.ItemQuery.currentLocationIds:
      name: currentLocationIds
      in: query
      required: false
      description: Find items that are at the current location.
      schema:
        type: array
        items:
          type: string
      explode: false
    Transactional.ItemQuery.itemId:
      name: itemId
      in: query
      required: false
      description: Find item with the given item id.
      schema:
        type: string
      explode: false
    Transactional.ItemQuery.productIds:
      name: productIds
      in: query
      required: false
      description: Find items that have the given product ids.
      schema:
        type: array
        items:
          type: string
      explode: false
    Transactional.ItemQuery.recordState:
      name: recordState
      in: query
      required: false
      schema:
        $ref: '#/components/schemas/Common.Enums.RecordState'
      explode: false
    Transactional.POQuery.buyerUris:
      name: buyerUris
      in: query
      required: false
      schema:
        type: array
        items:
          type: string
      explode: false
    Transactional.POQuery.deliverToLocationIds:
      name: deliverToLocationIds
      in: query
      required: false
      schema:
        type: array
        items:
          type: string
      explode: false
    Transactional.POQuery.number:
      name: number
      in: query
      required: false
      schema:
        type: array
        items:
          type: string
      explode: false
    Transactional.POQuery.productIds:
      name: productIds
      in: query
      required: false
      schema:
        type: array
        items:
          type: string
      explode: false
    Transactional.POQuery.recordState:
      name: recordState
      in: query
      required: false
      schema:
        $ref: '#/components/schemas/Common.Enums.RecordState'
      explode: false
    Transactional.POQuery.status:
      name: status
      in: query
      required: false
      schema:
        type: array
        items:
          $ref: '#/components/schemas/Transactional.PurchaseOrderStatus'
      explode: false
    Transactional.POQuery.supplierUris:
      name: supplierUris
      in: query
      required: false
      schema:
        type: array
        items:
          type: string
      explode: false
    Transactional.ProcessInputPath.processId:
      name: processId
      in: path
      required: true
      schema:
        type: string
    Transactional.ProcessInputPathRecord:
      name: inputId
      in: path
      required: true
      schema:
        type: string
    Transactional.ProcessInputQuery.endDate:
      name: endDate
      in: query
      required: false
      schema:
        type: string
        format: date-time
      explode: false
    Transactional.ProcessInputQuery.startDate:
      name: startDate
      in: query
      required: false
      schema:
        type: string
        format: date-time
      explode: false
    Transactional.ProcessOutputPath.processId:
      name: processId
      in: path
      required: true
      schema:
        type: string
    Transactional.ProcessOutputPathRecord:
      name: outputId
      in: path
      required: true
      schema:
        type: string
    Transactional.ProcessOutputQuery.endDate:
      name: endDate
      in: query
      required: false
      schema:
        type: string
        format: date-time
      explode: false
    Transactional.ProcessOutputQuery.startDate:
      name: startDate
      in: query
      required: false
      schema:
        type: string
        format: date-time
      explode: false
    Transactional.ProcessPathRecord:
      name: processId
      in: path
      required: true
      schema:
        type: string
    Transactional.ProcessQuery.firstInputDate:
      name: firstInputDate
      in: query
      required: false
      schema:
        type: string
        format: date-time
      explode: false
    Transactional.ProcessQuery.lastOutputDate:
      name: lastOutputDate
      in: query
      required: false
      schema:
        type: string
        format: date-time
      explode: false
    Transactional.ProcessQuery.processId:
      name: processId
      in: query
      required: false
      schema:
        type: string
      explode: false
    Transactional.ProcessQuery.recordState:
      name: recordState
      in: query
      required: false
      schema:
        $ref: '#/components/schemas/Common.Enums.RecordState'
      explode: false
    Transactional.PurchaseOrderPathRecord:
      name: purchaseOrderId
      in: path
      required: true
      schema:
        type: string
    iov42.Core.Headers.Json:
      name: contentType
      in: header
      required: true
      schema:
        type: string
        default: application/json
  schemas:
    Address:
      type: object
      required:
        - country
      properties:
        street:
          type: string
          description: The mainline of the address.
        region:
          type: string
          description: Region of the address.
        zipCode:
          type: string
          description: Zip/postal code for the address.
        country:
          allOf:
            - $ref: '#/components/schemas/Shared.CountryCode'
          description: Alpha-2 code of the ISO 3166 Country Codes specification.
      description: A representation of a physical address.
    Assessment.FailingRiskAssessment:
      type: object
      required:
        - recordUri
        - recordName
        - reason
      properties:
        recordUri:
          type: string
          format: uri
          description: The URI of the record that does not have a valid Risk Assessment
          examples:
            - /organisations{orgId}/locations/{locationId}
        recordName:
          type: string
          description: >-
            Contains a user friendly identifier to help recognise the record
            that has the invalid risk assessment. (Location - Name, Organisation
            - Name, Country - Name, Material - Name, Deliveries - Delivery ID)
        reason:
          allOf:
            - $ref: '#/components/schemas/Assessment.FailingRiskAssessmentReason'
          description: Gives the reason for the failure.
    Assessment.FailingRiskAssessmentReason:
      type: string
      enum:
        - EXPIRED
        - MISSING
        - UNACCEPTABLE_RISK
    Assessment.RiskAssessmentType:
      type: string
      enum:
        - COUNTRY
        - DELIVERY
        - LOCATION
        - MATERIAL
        - ORGANISTION
        - PRODUCT
    Assessment.ValidationRequest:
      type: object
      required:
        - records
        - includeRulesets
      properties:
        records:
          type: array
          items:
            type: string
          description: >-
            List of record URIs that you want to confirm are valid based on
            provided Criteria.
        includeRulesets:
          type: boolean
          description: List of criteria to apply for validation.
        includedRiskAssessments:
          type: array
          items:
            $ref: '#/components/schemas/Assessment.RiskAssessmentType'
          description: >-
            If Risk Assessments are included in Criteria, this allows definition
            of which types of Risk Assessment are included in the check. If not
            included then risk assessments will be ignored.
        treatMissingAsError:
          type: boolean
          description: >-
            If this is set to true then if a risk assessment is missing (or has
            expired - effectively missing) then it will cause validation to
            fail.
          default: false
      description: The criteria used to validate records within Interu.
    Assessment.ValidationResult:
      type: object
      required:
        - records
      properties:
        records:
          type: array
          items:
            $ref: '#/components/schemas/Assessment.ValidationStatus'
          description: List of records that have been evaluated.
      description: Contains the validation status of each record that was requested.
    Assessment.ValidationStatus:
      type: object
      required:
        - recordUri
        - validated
      properties:
        recordUri:
          type: string
          format: uri
          description: URI of the record whose status you want to confirm
          examples:
            - /organisations{orgId}/deliveries/{deliveryId}
        validated:
          type: boolean
          description: >-
            The validation status. If true it means that the record passes the
            provided Criteria.
        failingRulesets:
          type: array
          items:
            type: string
          description: >-
            If rulesets applicable to the record have not validated, this
            returns the name of the rulesets that have failed.
        failingRiskAssessments:
          type: array
          items:
            $ref: '#/components/schemas/Assessment.FailingRiskAssessment'
          description: >-
            If Risk Assessments were included in the request then this contains
            the list of risk assessment types that have not passed the
            validation.
    Attachment.Attachment:
      type: object
      required:
        - targetUri
        - attachmentUri
      properties:
        targetUri:
          type: string
          description: The resource that is being attached to.
          examples:
            - /organisations/{orgId}/...path-to-record
        attachmentUri:
          type: string
          format: uri
          description: The resource that is being attached.
          examples:
            - /organisations/{orgId}/...path-to-record
      allOf:
        - $ref: '#/components/schemas/Common.BaseWithoutId'
      description: >-
        This provides the ability to 'attach' resources to other resources. This
        is to allow the association of items without actually changing the
        target items content thus rendering claims & endorsements invalid.
    Attachment.AttachmentCreate:
      type: object
      required:
        - targetUri
        - attachmentUri
      properties:
        targetUri:
          type: string
          description: The resource that is being attached to.
          examples:
            - /organisations/{orgId}/...path-to-record
        attachmentUri:
          type: string
          format: uri
          description: The resource that is being attached.
          examples:
            - /organisations/{orgId}/...path-to-record
      allOf:
        - $ref: '#/components/schemas/Common.BaseWithoutIdCreate'
      description: >-
        This provides the ability to 'attach' resources to other resources. This
        is to allow the association of items without actually changing the
        target items content thus rendering claims & endorsements invalid.
    Attachment.AttachmentCreateOrUpdate:
      type: object
      required:
        - targetUri
        - attachmentUri
      properties:
        targetUri:
          type: string
          description: The resource that is being attached to.
          examples:
            - /organisations/{orgId}/...path-to-record
        attachmentUri:
          type: string
          format: uri
          description: The resource that is being attached.
          examples:
            - /organisations/{orgId}/...path-to-record
      allOf:
        - $ref: '#/components/schemas/Common.BaseWithoutIdCreateOrUpdate'
      description: >-
        This provides the ability to 'attach' resources to other resources. This
        is to allow the association of items without actually changing the
        target items content thus rendering claims & endorsements invalid.
    Attachment.QueryAttachmentType:
      type: string
      enum:
        - DOCUMENT
    Attachment.QueryTargetType:
      type: string
      enum:
        - CERTIFICATE
        - CONNECTION
        - COUNTRY
        - DELIVERY
        - ITEM
        - LOCATION
        - MATERIAL
        - ORGANISATION
        - PROCESS
        - PRODUCT
    Common.Base:
      type: object
      properties:
        createdBy:
          type: string
          description: User who created the record.
        createdTime:
          type: string
          format: date-time
          description: Date & Time that the record was created.
        updatedBy:
          type: string
          description: Last updated by user.
        updatedTime:
          type: string
          format: date-time
          description: Date & Time that the record was last updated.
    Common.BaseCreate:
      type: object
    Common.BaseCreateOrUpdate:
      type: object
    Common.BaseUnit:
      type: object
      required:
        - name
        - symbol
        - precision
        - type
      properties:
        id:
          type: string
          description: System assigned id field.
        name:
          type: string
          description: The name of the base unit.
        symbol:
          type: string
          description: The display symbol for the base unit.
        precision:
          type: integer
          description: The precision required for the base unit.
        type:
          allOf:
            - $ref: '#/components/schemas/Common.Enums.BaseUnitType'
          description: The type of the base unit of measurement.
      description: The extended definition of a base unit of measurement.
    Common.BaseUnitType:
      type: string
      enum:
        - VOLUME
        - MASS
        - AREA
        - LENGTH
        - UNITS
    Common.BaseWithId:
      type: object
      properties:
        id:
          type: string
          description: System assigned or user defined id field.
      allOf:
        - $ref: '#/components/schemas/Common.Base'
    Common.BaseWithIdCreate:
      type: object
      properties:
        id:
          type: string
          description: System assigned or user defined id field.
      allOf:
        - $ref: '#/components/schemas/Common.BaseCreate'
    Common.BaseWithIdCreateOrUpdate:
      type: object
      properties:
        id:
          type: string
          description: System assigned or user defined id field.
      allOf:
        - $ref: '#/components/schemas/Common.BaseCreateOrUpdate'
    Common.BaseWithoutId:
      type: object
      properties:
        id:
          type: string
          description: System assigned id field.
      allOf:
        - $ref: '#/components/schemas/Common.Base'
    Common.BaseWithoutIdCreate:
      type: object
      allOf:
        - $ref: '#/components/schemas/Common.BaseCreate'
    Common.BaseWithoutIdCreateOrUpdate:
      type: object
      allOf:
        - $ref: '#/components/schemas/Common.BaseCreateOrUpdate'
    Common.Enums.BaseUnitType:
      type: string
      enum:
        - VOLUME
        - AREA
        - LENGTH
        - MASS
        - UNITS
    Common.Enums.RecordState:
      type: string
      enum:
        - ACTIVE
        - ARCHIVED
    Common.Standard:
      type: object
      required:
        - id
        - name
      properties:
        id:
          type: string
          description: System assigned id field.
        name:
          type: string
          description: Full name of the standard.
      description: Certification standard record.
    Common.StandardType:
      type: object
      required:
        - fullName
        - shortName
      properties:
        id:
          type: string
          description: System assigned id field.
        fullName:
          type: string
          description: Full name of the standard type.
        shortName:
          type: string
          description: Shortened name of the standard type.
        recordState:
          allOf:
            - $ref: '#/components/schemas/Common.Enums.RecordState'
          description: State of the record.
      description: This is a definition of a standard type
    Config.DocumentType:
      type: object
      required:
        - name
        - private
      properties:
        name:
          type: string
          description: The name of the Document Type.
        private:
          type: boolean
          description: >-
            Determines if documents with this type are to be shared externally
            or not.
        recordState:
          allOf:
            - $ref: '#/components/schemas/Common.Enums.RecordState'
          description: State of the record.
      allOf:
        - $ref: '#/components/schemas/Common.BaseWithId'
      description: Represents the type of a document.
    Config.DocumentTypeCreate:
      type: object
      required:
        - name
        - private
      properties:
        name:
          type: string
          description: The name of the Document Type.
        private:
          type: boolean
          description: >-
            Determines if documents with this type are to be shared externally
            or not.
      allOf:
        - $ref: '#/components/schemas/Common.BaseWithIdCreate'
      description: Represents the type of a document.
    Config.DocumentTypeCreateOrUpdate:
      type: object
      required:
        - name
        - private
      properties:
        name:
          type: string
          description: The name of the Document Type.
        private:
          type: boolean
          description: >-
            Determines if documents with this type are to be shared externally
            or not.
      allOf:
        - $ref: '#/components/schemas/Common.BaseWithIdCreateOrUpdate'
      description: Represents the type of a document.
    Config.DocumentTypeUpdate:
      type: object
      required:
        - name
        - private
      properties:
        name:
          type: string
          description: The name of the Document Type.
        private:
          type: boolean
          description: >-
            Determines if documents with this type are to be shared externally
            or not.
      description: ''
    Config.LocationType:
      type: object
      required:
        - type
        - pointOfOrigin
      properties:
        type:
          type: string
          description: The name for the location type.
        pointOfOrigin:
          type: boolean
          description: Defines if this location type is a Point of Origin.
        recordState:
          allOf:
            - $ref: '#/components/schemas/Common.Enums.RecordState'
          description: State of the record.
      allOf:
        - $ref: '#/components/schemas/Common.BaseWithId'
      description: Represents the type of a location.
    Config.LocationTypeCreate:
      type: object
      required:
        - type
        - pointOfOrigin
      properties:
        type:
          type: string
          description: The name for the location type.
        pointOfOrigin:
          type: boolean
          description: Defines if this location type is a Point of Origin.
      allOf:
        - $ref: '#/components/schemas/Common.BaseWithIdCreate'
      description: Represents the type of a location.
    Config.LocationTypeCreateOrUpdate:
      type: object
      required:
        - type
        - pointOfOrigin
      properties:
        type:
          type: string
          description: The name for the location type.
        pointOfOrigin:
          type: boolean
          description: Defines if this location type is a Point of Origin.
      allOf:
        - $ref: '#/components/schemas/Common.BaseWithIdCreateOrUpdate'
      description: Represents the type of a location.
    Config.LocationTypeUpdate:
      type: object
      required:
        - type
        - pointOfOrigin
      properties:
        type:
          type: string
          description: The name for the location type.
        pointOfOrigin:
          type: boolean
          description: Defines if this location type is a Point of Origin.
      description: ''
    Config.ProcessType:
      type: object
      required:
        - name
      properties:
        id:
          type: string
          description: System or user assigned id field.
        name:
          type: string
          description: The name for the process type.
        recordState:
          allOf:
            - $ref: '#/components/schemas/Common.Enums.RecordState'
          description: State of the record.
      allOf:
        - $ref: '#/components/schemas/Common.Base'
      description: >-
        Record that is used to define internal processes. These connect
        organisation 'inputs' to organisation 'outputs' thus completing the
        end-to-end traceability chain.
    Config.ProcessTypeCreate:
      type: object
      required:
        - name
      properties:
        id:
          type: string
          description: System or user assigned id field.
        name:
          type: string
          description: The name for the process type.
      allOf:
        - $ref: '#/components/schemas/Common.BaseCreate'
      description: >-
        Record that is used to define internal processes. These connect
        organisation 'inputs' to organisation 'outputs' thus completing the
        end-to-end traceability chain.
    Config.ProcessTypeCreateOrUpdate:
      type: object
      required:
        - name
      properties:
        id:
          type: string
          description: System or user assigned id field.
        name:
          type: string
          description: The name for the process type.
      allOf:
        - $ref: '#/components/schemas/Common.BaseCreateOrUpdate'
      description: >-
        Record that is used to define internal processes. These connect
        organisation 'inputs' to organisation 'outputs' thus completing the
        end-to-end traceability chain.
    Config.ProcessTypeUpdate:
      type: object
      required:
        - name
      properties:
        name:
          type: string
          description: The name for the process type.
      description: ''
    CreateDDStatement:
      type: object
      properties:
        operatorType:
          $ref: '#/components/schemas/Integrations.Eudr.OperatorType'
        activityType:
          allOf:
            - $ref: '#/components/schemas/Integrations.Eudr.ActivityType'
          description: The activity type.
        countryOfActivity:
          allOf:
            - $ref: '#/components/schemas/Shared.EuCountryCode'
          description: >-
            This is the country where the economic activity is taking place,
            typically (but not always) this is the operator's place of activity.
        borderCrossCountry:
          allOf:
            - $ref: '#/components/schemas/Shared.EuCountryCode'
          description: This is required for IMPORT or EXPORT activities.
        comment:
          type: string
        geoLocationConfidential:
          type: boolean
          description: >-
            IF this is set to true then downstream consumers of your DDS
            Reference will not have access to the Geo Location information.
        associatedStatements:
          type: array
          items:
            $ref: '#/components/schemas/Integrations.Eudr.AssociatedStatement'
          description: ''
      description: ''
    Create_DDS_From_Other:
      type: object
      required:
        - sourceResourceType
        - sourceUris
      properties:
        sourceResourceType:
          allOf:
            - $ref: '#/components/schemas/Integrations.Eudr.OtherSourceResourceType'
          description: This is the resource type of the source.
        sourceUris:
          type: array
          items:
            type: string
          maxItems: 100
          description: This is the source uris to generate the DDS for.
          examples:
            - - /organisations{orgId}/deliveries/{deliveryId}
              - /organisations/{orgId}/purchase-orders/{purchaseOrderId}
              - /organisations/{orgId}/items/{itemId}
      description: >-
        Create a DDS from deliveries, purchase orders or items. Note you can
        only pick one source type.
    Create_DDS_From_Products:
      type: object
      required:
        - sourceResourceType
        - products
      properties:
        sourceResourceType:
          allOf:
            - $ref: '#/components/schemas/Integrations.Eudr.ProductSourceResourceType'
          description: >-
            This is the resource type of the source. Note that for create a
            Product DDS this can only be PRODUCT
        products:
          type: array
          items:
            $ref: '#/components/schemas/Integrations.Eudr.ProductQuantity'
          maxItems: 100
          description: This is information on the products to generate a DDS for.
      description: >-
        Create a DDS from a product. Requires the specification of a quantity to
        create.
    Create_Production_Delivery_From_Batches:
      type: object
      allOf:
        - type: object
          required:
            - deliveryId
            - from
            - to
            - status
            - lineItems
          properties:
            id:
              type: string
              description: System assigned or user defined id field.
            deliveryId:
              type: string
              description: User-assigned unique identifier for the delivery.
            from:
              type: string
              format: uri
              description: >-
                The URI of the location from which the delivery is being
                delivered from.
              examples:
                - /organisations/{orgId}/locations/{locationId}
            to:
              type: string
              format: uri
              description: >-
                The URI of the location to which the delivery is being delivered
                to.
              examples:
                - /organisations/{orgId}/locations/{locationId}
            status:
              allOf:
                - $ref: '#/components/schemas/Transactional.DeliveryStatus'
              description: The status of the delivery.
            sent:
              type: string
              format: date-time
              description: The date and time of when the delivery has/will been sent.
            delivered:
              type: string
              format: date-time
              description: The date and time of when the delivery has/will been delivered.
            purchaseOrderNumbers:
              type: array
              items:
                type: string
              description: >-
                List of purchase order numbers that you want to associate with
                the delivery.
            agents:
              type: array
              items:
                type: string
              description: List of organisations that act as agents for the delivery.
              examples:
                - - /organisations/{orgId}/connections/{connectionId}
            lineItems:
              type: array
              items:
                type: object
                required:
                  - inputs
                  - outputs
                  - processType
                properties:
                  inputs:
                    type: array
                    items:
                      $ref: '#/components/schemas/Workflow.BatchInput'
                    description: >-
                      Identifies the input items to use in creating the outbound
                      delivery.
                  outputs:
                    type: array
                    items:
                      $ref: '#/components/schemas/Workflow.ProductOutput'
                    description: >-
                      Identifies details of the output items to be created in
                      the outbound delivery.
                  inputDate:
                    type: string
                    format: date-time
                    description: The input date for the created process.
                  outputDate:
                    type: string
                    format: date-time
                    description: The output date for the created process.
                  processType:
                    type: string
                    format: uri
                    description: >-
                      The URI of the Process Type that represents the task of
                      linking inbound to outbound.
                    examples:
                      - /organisations/{orgId}/process-types/{processTypeId}
              description: >-
                The line item definitions for the inputs and outputs for a
                delivery.
      description: >-
        Supports the creation of a delivery with items that are selected by a
        batch number.
    Create_Production_Delivery_From_Items:
      type: object
      allOf:
        - type: object
          required:
            - deliveryId
            - from
            - to
            - status
            - lineItems
          properties:
            id:
              type: string
              description: System assigned or user defined id field.
            deliveryId:
              type: string
              description: User-assigned unique identifier for the delivery.
            from:
              type: string
              format: uri
              description: >-
                The URI of the location from which the delivery is being
                delivered from.
              examples:
                - /organisations/{orgId}/locations/{locationId}
            to:
              type: string
              format: uri
              description: >-
                The URI of the location to which the delivery is being delivered
                to.
              examples:
                - /organisations/{orgId}/locations/{locationId}
            status:
              allOf:
                - $ref: '#/components/schemas/Transactional.DeliveryStatus'
              description: The status of the delivery.
            sent:
              type: string
              format: date-time
              description: The date and time of when the delivery has/will been sent.
            delivered:
              type: string
              format: date-time
              description: The date and time of when the delivery has/will been delivered.
            purchaseOrderNumbers:
              type: array
              items:
                type: string
              description: >-
                List of purchase order numbers that you want to associate with
                the delivery.
            agents:
              type: array
              items:
                type: string
              description: List of organisations that act as agents for the delivery.
              examples:
                - - /organisations/{orgId}/connections/{connectionId}
            lineItems:
              type: array
              items:
                type: object
                required:
                  - inputs
                  - outputs
                  - processType
                properties:
                  inputs:
                    type: array
                    items:
                      $ref: '#/components/schemas/Workflow.ItemsInput'
                    description: >-
                      Identifies the input items to use in creating the outbound
                      delivery.
                  outputs:
                    type: array
                    items:
                      $ref: '#/components/schemas/Workflow.ProductOutput'
                    description: >-
                      Identifies details of the output items to be created in
                      the outbound delivery.
                  inputDate:
                    type: string
                    format: date-time
                    description: The input date for the created process.
                  outputDate:
                    type: string
                    format: date-time
                    description: The output date for the created process.
                  processType:
                    type: string
                    format: uri
                    description: >-
                      The URI of the Process Type that represents the task of
                      linking inbound to outbound.
                    examples:
                      - /organisations/{orgId}/process-types/{processTypeId}
              description: >-
                The line item definitions for the inputs and outputs for a
                delivery.
      description: >-
        Supports the creation of a delivery with items that are selected
        directly from provided input items.
    Create_Production_Delivery_From_Products:
      type: object
      allOf:
        - type: object
          required:
            - deliveryId
            - from
            - to
            - status
            - lineItems
          properties:
            id:
              type: string
              description: System assigned or user defined id field.
            deliveryId:
              type: string
              description: User-assigned unique identifier for the delivery.
            from:
              type: string
              format: uri
              description: >-
                The URI of the location from which the delivery is being
                delivered from.
              examples:
                - /organisations/{orgId}/locations/{locationId}
            to:
              type: string
              format: uri
              description: >-
                The URI of the location to which the delivery is being delivered
                to.
              examples:
                - /organisations/{orgId}/locations/{locationId}
            status:
              allOf:
                - $ref: '#/components/schemas/Transactional.DeliveryStatus'
              description: The status of the delivery.
            sent:
              type: string
              format: date-time
              description: The date and time of when the delivery has/will been sent.
            delivered:
              type: string
              format: date-time
              description: The date and time of when the delivery has/will been delivered.
            purchaseOrderNumbers:
              type: array
              items:
                type: string
              description: >-
                List of purchase order numbers that you want to associate with
                the delivery.
            agents:
              type: array
              items:
                type: string
              description: List of organisations that act as agents for the delivery.
              examples:
                - - /organisations/{orgId}/connections/{connectionId}
            lineItems:
              type: array
              items:
                type: object
                required:
                  - inputs
                  - outputs
                  - processType
                properties:
                  inputs:
                    type: array
                    items:
                      $ref: '#/components/schemas/Workflow.ProductInput'
                    description: >-
                      Identifies the input items to use in creating the outbound
                      delivery.
                  outputs:
                    type: array
                    items:
                      $ref: '#/components/schemas/Workflow.ProductOutput'
                    description: >-
                      Identifies details of the output items to be created in
                      the outbound delivery.
                  inputDate:
                    type: string
                    format: date-time
                    description: The input date for the created process.
                  outputDate:
                    type: string
                    format: date-time
                    description: The output date for the created process.
                  processType:
                    type: string
                    format: uri
                    description: >-
                      The URI of the Process Type that represents the task of
                      linking inbound to outbound.
                    examples:
                      - /organisations/{orgId}/process-types/{processTypeId}
              description: >-
                The line item definitions for the inputs and outputs for a
                delivery.
      description: >-
        Supports the creation of a delivery with items that are selected based
        on a Product and a selection strategy (FIFO|LIFO)
    Create_Trade_Delivery_From_Batches:
      type: object
      allOf:
        - type: object
          required:
            - deliveryId
            - from
            - to
            - status
            - lineItems
          properties:
            id:
              type: string
              description: System assigned or user defined id field.
            deliveryId:
              type: string
              description: User-assigned unique identifier for the delivery.
            from:
              type: string
              format: uri
              description: >-
                The URI of the location from which the delivery is being
                delivered from.
              examples:
                - /organisations/{orgId}/locations/{locationId}
            to:
              type: string
              format: uri
              description: >-
                The URI of the location to which the delivery is being delivered
                to.
              examples:
                - /organisations/{orgId}/locations/{locationId}
            status:
              allOf:
                - $ref: '#/components/schemas/Transactional.DeliveryStatus'
              description: The status of the delivery.
            sent:
              type: string
              format: date-time
              description: The date and time of when the delivery has/will been sent.
            delivered:
              type: string
              format: date-time
              description: The date and time of when the delivery has/will been delivered.
            purchaseOrderNumbers:
              type: array
              items:
                type: string
              description: >-
                List of purchase order numbers that you want to associate with
                the delivery.
            agents:
              type: array
              items:
                type: string
              description: List of organisations that act as agents for the delivery.
              examples:
                - - /organisations/{orgId}/connections/{connectionId}
            lineItems:
              type: array
              items:
                type: object
                required:
                  - inputs
                  - outputs
                  - processType
                properties:
                  inputs:
                    type: array
                    items:
                      $ref: '#/components/schemas/Workflow.BatchInput'
                    description: >-
                      Identifies the input items to use in creating the outbound
                      delivery.
                  outputs:
                    type: array
                    items:
                      $ref: '#/components/schemas/Workflow.ItemOutput'
                    description: >-
                      Identifies details of the output items to be created in
                      the outbound delivery.
                  inputDate:
                    type: string
                    format: date-time
                    description: The input date for the created process.
                  outputDate:
                    type: string
                    format: date-time
                    description: The output date for the created process.
                  processType:
                    type: string
                    format: uri
                    description: >-
                      The URI of the Process Type that represents the task of
                      linking inbound to outbound.
                    examples:
                      - /organisations/{orgId}/process-types/{processTypeId}
              description: >-
                The line item definitions for the inputs and outputs for a
                delivery.
      description: >-
        Supports the creation of a delivery with items that are selected by a
        batch number.
    Create_Trade_Delivery_From_Items:
      type: object
      allOf:
        - type: object
          required:
            - deliveryId
            - from
            - to
            - status
            - lineItems
          properties:
            id:
              type: string
              description: System assigned or user defined id field.
            deliveryId:
              type: string
              description: User-assigned unique identifier for the delivery.
            from:
              type: string
              format: uri
              description: >-
                The URI of the location from which the delivery is being
                delivered from.
              examples:
                - /organisations/{orgId}/locations/{locationId}
            to:
              type: string
              format: uri
              description: >-
                The URI of the location to which the delivery is being delivered
                to.
              examples:
                - /organisations/{orgId}/locations/{locationId}
            status:
              allOf:
                - $ref: '#/components/schemas/Transactional.DeliveryStatus'
              description: The status of the delivery.
            sent:
              type: string
              format: date-time
              description: The date and time of when the delivery has/will been sent.
            delivered:
              type: string
              format: date-time
              description: The date and time of when the delivery has/will been delivered.
            purchaseOrderNumbers:
              type: array
              items:
                type: string
              description: >-
                List of purchase order numbers that you want to associate with
                the delivery.
            agents:
              type: array
              items:
                type: string
              description: List of organisations that act as agents for the delivery.
              examples:
                - - /organisations/{orgId}/connections/{connectionId}
            lineItems:
              type: array
              items:
                type: object
                required:
                  - inputs
                  - outputs
                  - processType
                properties:
                  inputs:
                    type: array
                    items:
                      $ref: '#/components/schemas/Workflow.ItemsInput'
                    description: >-
                      Identifies the input items to use in creating the outbound
                      delivery.
                  outputs:
                    type: array
                    items:
                      $ref: '#/components/schemas/Workflow.ItemOutput'
                    description: >-
                      Identifies details of the output items to be created in
                      the outbound delivery.
                  inputDate:
                    type: string
                    format: date-time
                    description: The input date for the created process.
                  outputDate:
                    type: string
                    format: date-time
                    description: The output date for the created process.
                  processType:
                    type: string
                    format: uri
                    description: >-
                      The URI of the Process Type that represents the task of
                      linking inbound to outbound.
                    examples:
                      - /organisations/{orgId}/process-types/{processTypeId}
              description: >-
                The line item definitions for the inputs and outputs for a
                delivery.
      description: >-
        Supports the creation of a delivery with items that are selected
        directly from provided input items.
    Create_Trade_Delivery_From_Products:
      type: object
      allOf:
        - type: object
          required:
            - deliveryId
            - from
            - to
            - status
            - lineItems
          properties:
            id:
              type: string
              description: System assigned or user defined id field.
            deliveryId:
              type: string
              description: User-assigned unique identifier for the delivery.
            from:
              type: string
              format: uri
              description: >-
                The URI of the location from which the delivery is being
                delivered from.
              examples:
                - /organisations/{orgId}/locations/{locationId}
            to:
              type: string
              format: uri
              description: >-
                The URI of the location to which the delivery is being delivered
                to.
              examples:
                - /organisations/{orgId}/locations/{locationId}
            status:
              allOf:
                - $ref: '#/components/schemas/Transactional.DeliveryStatus'
              description: The status of the delivery.
            sent:
              type: string
              format: date-time
              description: The date and time of when the delivery has/will been sent.
            delivered:
              type: string
              format: date-time
              description: The date and time of when the delivery has/will been delivered.
            purchaseOrderNumbers:
              type: array
              items:
                type: string
              description: >-
                List of purchase order numbers that you want to associate with
                the delivery.
            agents:
              type: array
              items:
                type: string
              description: List of organisations that act as agents for the delivery.
              examples:
                - - /organisations/{orgId}/connections/{connectionId}
            lineItems:
              type: array
              items:
                type: object
                required:
                  - inputs
                  - outputs
                  - processType
                properties:
                  inputs:
                    type: array
                    items:
                      $ref: '#/components/schemas/Workflow.ProductInput'
                    description: >-
                      Identifies the input items to use in creating the outbound
                      delivery.
                  outputs:
                    type: array
                    items:
                      $ref: '#/components/schemas/Workflow.ItemOutput'
                    description: >-
                      Identifies details of the output items to be created in
                      the outbound delivery.
                  inputDate:
                    type: string
                    format: date-time
                    description: The input date for the created process.
                  outputDate:
                    type: string
                    format: date-time
                    description: The output date for the created process.
                  processType:
                    type: string
                    format: uri
                    description: >-
                      The URI of the Process Type that represents the task of
                      linking inbound to outbound.
                    examples:
                      - /organisations/{orgId}/process-types/{processTypeId}
              description: >-
                The line item definitions for the inputs and outputs for a
                delivery.
      description: >-
        Supports the creation of a delivery with items that are selected based
        on a Product and a selection strategy (FIFO|LIFO)
    Evidence.Document:
      type: object
      required:
        - name
        - type
        - issuance
        - validityStart
        - validityEnd
        - contentType
        - contentHash
        - originalHash
        - contentSize
        - private
      properties:
        name:
          type: string
          description: The name of the document. This must be unique.
        type:
          type: string
          format: uri
          description: The URI to the type of document.
          examples:
            - /organisations/{orgId}/document-types/{documentTypeId}
        issuance:
          type: string
          format: date-time
          description: The date and time when this document was issued.
        validityStart:
          type: string
          format: date-time
          description: If the document has a validity period, this is when it starts.
        validityEnd:
          type: string
          format: date-time
          description: If the document has a validity period, this is when it ends.
        contentType:
          type: string
          description: >-
            The type of the content based on rfc4288
            (https://www.rfc-editor.org/rfc/rfc4288)
        contentHash:
          type: string
          description: >-
            Sha256 32-byte, base64 encoded contentHash. This will be empty if
            the document content has not yet been provided.
        originalHash:
          type: string
          description: >-
            Sha256 32-byte, base64 encoded contentHash. For original documents
            this will match contentHash. It will be different for redacted
            documents derived from an original document. This will be empty if
            the document content has not yet been provided.
        contentSize:
          type: integer
          format: int32
          description: The size of the file in bytes.
        private:
          type: boolean
          description: If set to true, the document will not be shared.
        recordState:
          allOf:
            - $ref: '#/components/schemas/Common.Enums.RecordState'
          description: State of the record.
      allOf:
        - $ref: '#/components/schemas/Common.BaseWithoutId'
      description: ''
    Evidence.DocumentCreate:
      type: object
      required:
        - name
        - type
        - issuance
        - validityStart
        - validityEnd
        - contentType
        - contentHash
        - originalHash
        - contentSize
        - private
      properties:
        name:
          type: string
          description: The name of the document. This must be unique.
        type:
          type: string
          format: uri
          description: The URI to the type of document.
          examples:
            - /organisations/{orgId}/document-types/{documentTypeId}
        issuance:
          type: string
          format: date-time
          description: The date and time when this document was issued.
        validityStart:
          type: string
          format: date-time
          description: If the document has a validity period, this is when it starts.
        validityEnd:
          type: string
          format: date-time
          description: If the document has a validity period, this is when it ends.
        contentType:
          type: string
          description: >-
            The type of the content based on rfc4288
            (https://www.rfc-editor.org/rfc/rfc4288)
        contentHash:
          type: string
          description: >-
            Sha256 32-byte, base64 encoded contentHash. This will be empty if
            the document content has not yet been provided.
        originalHash:
          type: string
          description: >-
            Sha256 32-byte, base64 encoded contentHash. For original documents
            this will match contentHash. It will be different for redacted
            documents derived from an original document. This will be empty if
            the document content has not yet been provided.
        contentSize:
          type: integer
          format: int32
          description: The size of the file in bytes.
        private:
          type: boolean
          description: If set to true, the document will not be shared.
      allOf:
        - $ref: '#/components/schemas/Common.BaseWithoutIdCreate'
      description: ''
    Evidence.DocumentCreateOrUpdate:
      type: object
      required:
        - name
        - type
        - issuance
        - validityStart
        - validityEnd
        - contentType
        - contentHash
        - originalHash
        - contentSize
        - private
      properties:
        name:
          type: string
          description: The name of the document. This must be unique.
        type:
          type: string
          format: uri
          description: The URI to the type of document.
          examples:
            - /organisations/{orgId}/document-types/{documentTypeId}
        issuance:
          type: string
          format: date-time
          description: The date and time when this document was issued.
        validityStart:
          type: string
          format: date-time
          description: If the document has a validity period, this is when it starts.
        validityEnd:
          type: string
          format: date-time
          description: If the document has a validity period, this is when it ends.
        contentType:
          type: string
          description: >-
            The type of the content based on rfc4288
            (https://www.rfc-editor.org/rfc/rfc4288)
        contentHash:
          type: string
          description: >-
            Sha256 32-byte, base64 encoded contentHash. This will be empty if
            the document content has not yet been provided.
        originalHash:
          type: string
          description: >-
            Sha256 32-byte, base64 encoded contentHash. For original documents
            this will match contentHash. It will be different for redacted
            documents derived from an original document. This will be empty if
            the document content has not yet been provided.
        contentSize:
          type: integer
          format: int32
          description: The size of the file in bytes.
        private:
          type: boolean
          description: If set to true, the document will not be shared.
      allOf:
        - $ref: '#/components/schemas/Common.BaseWithoutIdCreateOrUpdate'
      description: ''
    Integrations.Eudr.ActivityType:
      type: string
      enum:
        - IMPORT
        - EXPORT
        - DOMESTIC
    Integrations.Eudr.AssociatedStatement:
      type: object
      properties:
        referenceNumber:
          type: string
          description: Associated Due Diligence Reference Number (DDRN)
        verificationNumber:
          type: string
          description: Associated Due Diligence Verification Number (DDVN)
    Integrations.Eudr.Commodity:
      type: object
      required:
        - productUri
        - content
      properties:
        productUri:
          type: string
          format: uri
          description: >-
            This is the URI to the product that is relevant for the Due
            Diligence statement
          examples:
            - /organisations/{orgId}/products/{productId}
        statedVolume:
          type: number
          format: decimal
          description: Set to null to use generated volume
        statedNetWeight:
          type: number
          format: decimal
          description: Set to null to use generated net weight
        content:
          $ref: '#/components/schemas/Integrations.Eudr.Content'
    Integrations.Eudr.CommodityCreateOrUpdateItem:
      type: object
      required:
        - productUri
      properties:
        productUri:
          type: string
          format: uri
          description: >-
            This is the URI to the product that is relevant for the Due
            Diligence statement
          examples:
            - /organisations/{orgId}/products/{productId}
        statedVolume:
          type: number
          format: decimal
          description: Set to null to use generated volume
        statedNetWeight:
          type: number
          format: decimal
          description: Set to null to use generated net weight
    Integrations.Eudr.CommodityUpdateItem:
      type: object
      required:
        - productUri
      properties:
        productUri:
          type: string
          format: uri
          description: >-
            This is the URI to the product that is relevant for the Due
            Diligence statement
          examples:
            - /organisations/{orgId}/products/{productId}
        statedVolume:
          type: number
          format: decimal
          description: Set to null to use generated volume
        statedNetWeight:
          type: number
          format: decimal
          description: Set to null to use generated net weight
    Integrations.Eudr.Content:
      type: object
      required:
        - producers
      properties:
        volume:
          type: number
          format: decimal
        netWeight:
          type: number
          format: decimal
        hsHeading:
          type: string
        descriptionOfGoods:
          type: string
        speciesInfo:
          type: array
          items:
            $ref: '#/components/schemas/SpeciesInfo'
        producers:
          type: array
          items:
            $ref: '#/components/schemas/Producer'
    Integrations.Eudr.CreateDDSReference:
      type: object
      required:
        - type
      properties:
        type:
          allOf:
            - $ref: '#/components/schemas/Integrations.Eudr.Type'
          description: >-
            This is the type of the DDS Reference. If you are generating a new
            DDS Reference then set this to NEW. If you are adding an existing
            Reference then set it to EXISTING.
      discriminator:
        propertyName: type
        mapping:
          NEW: '#/components/schemas/Integrations.Eudr.CreateNewDDSReference'
          EXISTING: '#/components/schemas/Integrations.Eudr.CreateExistingDDSReference'
    Integrations.Eudr.CreateExistingDDSReference:
      type: object
      required:
        - type
        - operatorUri
      properties:
        type:
          type: string
          enum:
            - EXISTING
          description: >-
            This is the type of the DDS Reference. If you are generating a new
            DDS Reference then set this to NEW.
        internalReferenceNumber:
          type: string
          description: >-
            An internal reference number that can be user defined to help
            identify the DDS Reference. If this is the only identifier provided
            then it is a mandatory field.
        referenceNumber:
          type: string
          description: The Reference Number as provided by TracesNT.
        verificationNumber:
          type: string
          description: >-
            The Verification Number provided by Traces NT. It is required if you
            want to reference the related DDS Statement in another DDS
            Statement.
        operatorUri:
          type: string
          description: >-
            This is the url of the organisation or connection from which the
            credentials will be used for submission or retrieval of DDS
            Statements with Traces NT.
      allOf:
        - $ref: '#/components/schemas/Integrations.Eudr.CreateDDSReference'
    Integrations.Eudr.CreateNewDDSReference:
      type: object
      required:
        - type
        - sourceData
      properties:
        type:
          type: string
          enum:
            - NEW
          description: >-
            This is the type of the DDS Reference. If you are generating a new
            DDS Reference then set this to NEW.
        statementData:
          allOf:
            - $ref: '#/components/schemas/CreateDDStatement'
          description: >-
            If creating a NEW Due Diligence Statement then this field is
            required.
        sourceData:
          anyOf:
            - $ref: '#/components/schemas/Create_DDS_From_Products'
            - $ref: '#/components/schemas/Create_DDS_From_Other'
          description: The source data items to base the DDS Statement on.
        internalReferenceNumber:
          type: string
          description: >-
            An internal reference number that can be user defined to help
            identify the DDS Reference. If this is the only identifier provided
            then it is a mandatory field.
      allOf:
        - $ref: '#/components/schemas/Integrations.Eudr.CreateDDSReference'
    Integrations.Eudr.Credential:
      type: object
      properties:
        username:
          type: string
          description: The Traces NT Username.
        authKey:
          type: string
          description: Your Traces NT authentication key.
        operatorUri:
          type: string
          format: uri
          description: The operator
          examples:
            - /organisations/{orgId}/locations/{locationId}
            - /organisations/{orgId}/
      allOf:
        - $ref: '#/components/schemas/Common.BaseWithoutId'
    Integrations.Eudr.CredentialCreate:
      type: object
      properties:
        username:
          type: string
          description: The Traces NT Username.
        authKey:
          type: string
          description: Your Traces NT authentication key.
        operatorUri:
          type: string
          format: uri
          description: The operator
          examples:
            - /organisations/{orgId}/locations/{locationId}
            - /organisations/{orgId}/
      allOf:
        - $ref: '#/components/schemas/Common.BaseWithoutIdCreate'
    Integrations.Eudr.CredentialCreateOrUpdate:
      type: object
      properties:
        username:
          type: string
          description: The Traces NT Username.
        authKey:
          type: string
          description: Your Traces NT authentication key.
        operatorUri:
          type: string
          format: uri
          description: The operator
          examples:
            - /organisations/{orgId}/locations/{locationId}
            - /organisations/{orgId}/
      allOf:
        - $ref: '#/components/schemas/Common.BaseWithoutIdCreateOrUpdate'
    Integrations.Eudr.DDSRecord:
      type: object
      required:
        - recordUri
      properties:
        recordUri:
          type: string
          format: uri
          description: >-
            This is the URI of the the record - i.e the Delivery or the Purchase
            Order.
          examples:
            - /organisations/{orgId}/purchase-orders/{purchaseOrderId}
            - /organisations/{orgId}/deliveries/{deliveryId}
        references:
          type: array
          items:
            $ref: '#/components/schemas/Integrations.Eudr.DDSReferenceDetail'
          description: >-
            The found Due Diligence Statement References. This will only be
            present if References were found.
    Integrations.Eudr.DDSReference:
      type: object
      required:
        - operatorUri
      properties:
        internalReferenceNumber:
          type: string
          description: >-
            An internal reference number that can be user defined to help
            identify the DDS Reference. If this is the only identifier provided
            then it is a mandatory field.
        referenceNumber:
          type: string
          description: The Reference Number as provided by TracesNT.
        verificationNumber:
          type: string
          description: >-
            The Verification Number provided by Traces NT. It is required if you
            want to reference the related DDS Statement in another DDS
            Statement.
        hasStatement:
          type: boolean
          description: >-
            True if there is a DDS Statement associated with this reference
            number. This happens if it is generated or if there is a Reference
            Number and Validation Number and the Statement can be retrieved from
            Traces.
        status:
          allOf:
            - $ref: '#/components/schemas/Integrations.Eudr.DDSStatus'
          description: The status of the Due Diligence Statement.
        operatorUri:
          type: string
          description: >-
            This is the url of the organisation or connection from which the
            credentials will be used for submission or retrieval of DDS
            Statements with Traces NT.
      allOf:
        - $ref: '#/components/schemas/Common.BaseWithoutId'
    Integrations.Eudr.DDSReferenceCreate:
      type: object
      required:
        - operatorUri
      properties:
        internalReferenceNumber:
          type: string
          description: >-
            An internal reference number that can be user defined to help
            identify the DDS Reference. If this is the only identifier provided
            then it is a mandatory field.
        referenceNumber:
          type: string
          description: The Reference Number as provided by TracesNT.
        verificationNumber:
          type: string
          description: >-
            The Verification Number provided by Traces NT. It is required if you
            want to reference the related DDS Statement in another DDS
            Statement.
        operatorUri:
          type: string
          description: >-
            This is the url of the organisation or connection from which the
            credentials will be used for submission or retrieval of DDS
            Statements with Traces NT.
      allOf:
        - $ref: '#/components/schemas/Common.BaseWithoutIdCreate'
    Integrations.Eudr.DDSReferenceCreateOrUpdate:
      type: object
      required:
        - operatorUri
      properties:
        internalReferenceNumber:
          type: string
          description: >-
            An internal reference number that can be user defined to help
            identify the DDS Reference. If this is the only identifier provided
            then it is a mandatory field.
        referenceNumber:
          type: string
          description: The Reference Number as provided by TracesNT.
        verificationNumber:
          type: string
          description: >-
            The Verification Number provided by Traces NT. It is required if you
            want to reference the related DDS Statement in another DDS
            Statement.
        operatorUri:
          type: string
          description: >-
            This is the url of the organisation or connection from which the
            credentials will be used for submission or retrieval of DDS
            Statements with Traces NT.
      allOf:
        - $ref: '#/components/schemas/Common.BaseWithoutIdCreateOrUpdate'
    Integrations.Eudr.DDSReferenceDetail:
      type: object
      required:
        - id
        - hasStatement
      properties:
        id:
          type: string
          description: The id of the reference.
        internalReferenceNumber:
          type: string
          description: >-
            An internal reference number provided by a user to help identify the
            DDS Reference.
        status:
          allOf:
            - $ref: '#/components/schemas/Integrations.Eudr.DDSStatus'
          description: The status of the Due Diligence Statement.
        referenceNumber:
          type: string
          description: The Reference Number as provided by TracesNT.
        verificationNumber:
          type: string
          description: The Verification Number provided by Traces NT.
        hasStatement:
          type: boolean
          description: Whether or not this reference has a statement.
    Integrations.Eudr.DDSStatus:
      type: string
      enum:
        - PENDING
        - SUBMITTED
        - AVAILABLE
        - REJECTED
        - CANCELLED
        - WITHDRAWN
        - ARCHIVED
    Integrations.Eudr.DDSUpdate:
      type: object
      properties:
        countryOfActivity:
          $ref: '#/components/schemas/Shared.EuCountryCode'
        borderCrossCountry:
          $ref: '#/components/schemas/Shared.EuCountryCode'
        commodities:
          type: array
          items:
            $ref: '#/components/schemas/Integrations.Eudr.CommodityUpdateItem'
        comment:
          type: string
        geoLocationConfidential:
          type: boolean
        associatedStatements:
          type: array
          items:
            $ref: '#/components/schemas/Integrations.Eudr.AssociatedStatement'
      description: Updating a DDS statement is required if certain fields change.
    Integrations.Eudr.DDStatement:
      type: object
      required:
        - version
      properties:
        version:
          type: integer
        operatorType:
          $ref: '#/components/schemas/Integrations.Eudr.OperatorType'
        activityType:
          allOf:
            - $ref: '#/components/schemas/Integrations.Eudr.ActivityType'
          description: The activity type.
        countryOfActivity:
          allOf:
            - $ref: '#/components/schemas/Shared.EuCountryCode'
          description: >-
            This is the country where the economic activity is taking place,
            typically (but not always) this is the operator's place of activity.
        borderCrossCountry:
          allOf:
            - $ref: '#/components/schemas/Shared.EuCountryCode'
          description: This is required for IMPORT or EXPORT activities.
        commodities:
          type: array
          items:
            $ref: '#/components/schemas/Integrations.Eudr.Commodity'
        comment:
          type: string
        geoLocationConfidential:
          type: boolean
          description: >-
            IF this is set to true then downstream consumers of your DDS
            Reference will not have access to the Geo Location information.
        associatedStatements:
          type: array
          items:
            $ref: '#/components/schemas/Integrations.Eudr.AssociatedStatement'
          description: ''
      allOf:
        - $ref: '#/components/schemas/Common.BaseWithoutId'
      description: >-
        A EUDR statement defines all the information that the Traces NT system
        requires to be submitted.
    Integrations.Eudr.DDStatementCreate:
      type: object
      properties:
        operatorType:
          $ref: '#/components/schemas/Integrations.Eudr.OperatorType'
        activityType:
          allOf:
            - $ref: '#/components/schemas/Integrations.Eudr.ActivityType'
          description: The activity type.
        countryOfActivity:
          allOf:
            - $ref: '#/components/schemas/Shared.EuCountryCode'
          description: >-
            This is the country where the economic activity is taking place,
            typically (but not always) this is the operator's place of activity.
        borderCrossCountry:
          allOf:
            - $ref: '#/components/schemas/Shared.EuCountryCode'
          description: This is required for IMPORT or EXPORT activities.
        comment:
          type: string
        geoLocationConfidential:
          type: boolean
          description: >-
            IF this is set to true then downstream consumers of your DDS
            Reference will not have access to the Geo Location information.
        associatedStatements:
          type: array
          items:
            $ref: '#/components/schemas/Integrations.Eudr.AssociatedStatement'
          description: ''
      allOf:
        - $ref: '#/components/schemas/Common.BaseWithoutIdCreate'
      description: >-
        A EUDR statement defines all the information that the Traces NT system
        requires to be submitted.
    Integrations.Eudr.DDStatementCreateOrUpdate:
      type: object
      properties:
        operatorType:
          $ref: '#/components/schemas/Integrations.Eudr.OperatorType'
        activityType:
          allOf:
            - $ref: '#/components/schemas/Integrations.Eudr.ActivityType'
          description: The activity type.
        countryOfActivity:
          allOf:
            - $ref: '#/components/schemas/Shared.EuCountryCode'
          description: >-
            This is the country where the economic activity is taking place,
            typically (but not always) this is the operator's place of activity.
        borderCrossCountry:
          allOf:
            - $ref: '#/components/schemas/Shared.EuCountryCode'
          description: This is required for IMPORT or EXPORT activities.
        commodities:
          type: array
          items:
            $ref: '#/components/schemas/Integrations.Eudr.CommodityCreateOrUpdateItem'
        comment:
          type: string
        geoLocationConfidential:
          type: boolean
          description: >-
            IF this is set to true then downstream consumers of your DDS
            Reference will not have access to the Geo Location information.
        associatedStatements:
          type: array
          items:
            $ref: '#/components/schemas/Integrations.Eudr.AssociatedStatement'
          description: ''
      allOf:
        - $ref: '#/components/schemas/Common.BaseWithoutIdCreateOrUpdate'
      description: >-
        A EUDR statement defines all the information that the Traces NT system
        requires to be submitted.
    Integrations.Eudr.DirectRecords:
      type: object
      required:
        - records
      properties:
        records:
          type: array
          items:
            type: string
          maxItems: 100
          description: This is the source uris for the DDS Reference.
          examples:
            - - /organisations{orgId}/deliveries/{deliveryId}
              - /organisations/{orgId}/purchase-orders/{purchaseOrderId}
              - /organisations/{orgId}/items/{itemId}
      description: >-
        Direct Records are those records that will be used to generate a DDS
        from. This can only be accessed for NEW DDS Reference types and if the
        DDS Statement has not been submitted.
    Integrations.Eudr.FindDDSReference:
      type: object
      properties:
        recordUris:
          type: array
          items:
            type: string
          description: The list of Record Uris to look for the DDS Reference for.
          examples:
            - - /organisations/{orgId}/deliveries/{deliveryId}
    Integrations.Eudr.OperatorType:
      type: string
      enum:
        - OPERATOR
    Integrations.Eudr.OtherSourceResourceType:
      type: string
      enum:
        - DELIVERY
        - ITEM
        - PURCHASE_ORDER
    Integrations.Eudr.ProductQuantity:
      type: object
      required:
        - uri
        - totalQuantity
      properties:
        uri:
          type: string
          format: uri
          description: This is the source product URI.
          examples:
            - /organisations/{orgId}/products/{productId}
        totalQuantity:
          type: number
          format: decimal
          description: This is the quantity to create the DDS for.
    Integrations.Eudr.ProductSourceResourceType:
      type: string
      enum:
        - PRODUCT
    Integrations.Eudr.ResolveDDSRequest:
      type: object
      properties:
        items:
          type: array
          items:
            type: string
          description: >-
            The list of Record Uris to resolve DDS References for. This will
            look back through connected items (throw processes etc) to find any
            related DDS References.
          examples:
            - - /organisations/{orgId}/deliveries/{deliveryId}
    Integrations.Eudr.ResolveDDSResult:
      type: object
      required:
        - item
      properties:
        item:
          type: string
          format: uri
          description: >-
            This is the URI of the the record - i.e the Delivery, Purchase Order
            or Item
          examples:
            - /organisations/{orgId}/items/{itemId}
            - /organisations/{orgId}/purchase-orders/{purchaseOrderId}
            - /organisations/{orgId}/deliveries/{deliveryId}
        resolved:
          type: array
          items:
            $ref: '#/components/schemas/Integrations.Eudr.Resolved'
          description: The records and the DDS References that were found.
        unresolved:
          type: array
          items:
            $ref: '#/components/schemas/Integrations.Eudr.UnResolved'
          description: The records where resolution was not possible.
    Integrations.Eudr.Resolved:
      type: object
      required:
        - item
      properties:
        item:
          type: string
          format: uri
          description: >-
            This is the URI of the the record that the DDS was found attached to
            - i.e the Delivery, Purchase Order or Item
          examples:
            - /organisations/{orgId}/items/{itemId}
            - /organisations/{orgId}/purchase-orders/{purchaseOrderId}
            - /organisations/{orgId}/deliveries/{deliveryId}
        references:
          type: array
          items:
            $ref: '#/components/schemas/Integrations.Eudr.ResolvedDDSReference'
          description: The found Due Diligence Statement References.
    Integrations.Eudr.ResolvedDDSReference:
      type: object
      properties:
        internalReferenceNumber:
          type: string
          description: >-
            An internal reference number provided by a user to help identify the
            DDS Reference.
        referenceNumber:
          type: string
          description: The Reference Number as provided by TracesNT.
        verificationNumber:
          type: string
          description: The Verification Number provided by Traces NT.
    Integrations.Eudr.SourceResourceType:
      type: string
      enum:
        - DELIVERY
        - ITEM
        - PRODUCT
        - PURCHASE_ORDER
    Integrations.Eudr.Type:
      type: string
      enum:
        - NEW
        - EXISTING
    Integrations.Eudr.UnResolved:
      type: object
      required:
        - item
      properties:
        item:
          type: string
          format: uri
          description: >-
            This is the URI of the the record that the DDS was found attached to
            - i.e the Delivery, Purchase Order or Item
          examples:
            - /organisations/{orgId}/items/{itemId}
            - /organisations/{orgId}/purchase-orders/{purchaseOrderId}
            - /organisations/{orgId}/deliveries/{deliveryId}
        reason:
          allOf:
            - $ref: '#/components/schemas/Integrations.Eudr.UnresolvedReason'
          description: The reason why DDS Reference was not resolved for the given item.
    Integrations.Eudr.UnresolvedReason:
      type: string
      enum:
        - DDS_DOES_NOT_EXIST
        - SUBMITTED_OR_PENDING_DDS_EXISTS
    Producer:
      type: object
      required:
        - recordUri
      properties:
        recordUri:
          type: string
        country:
          $ref: '#/components/schemas/Shared.CountryCode'
        name:
          type: string
        productionPlaces:
          type: array
          items:
            $ref: '#/components/schemas/ProductionPlace'
    ProductionPlace:
      type: object
      required:
        - locationUri
      properties:
        locationUri:
          type: string
        name:
          type: string
        geoData:
          $ref: '#/components/schemas/iov42.Core.Model.GeoJSON.FeatureCollection'
        areaInHa:
          type: number
          format: decimal
    Shared.CountryCode:
      type: string
      enum:
        - AF
        - AX
        - AL
        - DZ
        - AS
        - AD
        - AO
        - AI
        - AQ
        - AG
        - AR
        - AM
        - AW
        - AU
        - AT
        - AZ
        - BS
        - BH
        - BD
        - BB
        - BY
        - BE
        - BZ
        - BJ
        - BM
        - BT
        - BO
        - BA
        - BW
        - BV
        - BR
        - VG
        - IO
        - BN
        - BG
        - BF
        - BI
        - KH
        - CM
        - CA
        - CV
        - KY
        - CF
        - TD
        - CL
        - CN
        - HK
        - MO
        - CX
        - CC
        - CO
        - KM
        - CG
        - CD
        - CK
        - CR
        - CI
        - HR
        - CU
        - CY
        - CZ
        - DK
        - DJ
        - DM
        - DO
        - EC
        - EG
        - SV
        - GQ
        - ER
        - EE
        - ET
        - FK
        - FO
        - FJ
        - FI
        - FR
        - GF
        - PF
        - TF
        - GA
        - GM
        - GE
        - DE
        - GH
        - GI
        - GR
        - GL
        - GD
        - GP
        - GU
        - GT
        - GG
        - GN
        - GW
        - GY
        - HT
        - HM
        - VA
        - HN
        - HU
        - IS
        - IN
        - ID
        - IR
        - IQ
        - IE
        - IM
        - IL
        - IT
        - JM
        - JP
        - JE
        - JO
        - KZ
        - KE
        - KI
        - KP
        - KR
        - KW
        - KG
        - LA
        - LV
        - LB
        - LS
        - LR
        - LY
        - LI
        - LT
        - LU
        - MK
        - MG
        - MW
        - MY
        - MV
        - ML
        - MT
        - MH
        - MQ
        - MR
        - MU
        - YT
        - MX
        - FM
        - MD
        - MC
        - MN
        - ME
        - MS
        - MA
        - MZ
        - MM
        - NA
        - NR
        - NP
        - NL
        - AN
        - NC
        - NZ
        - NI
        - NE
        - NG
        - NU
        - NF
        - MP
        - 'NO'
        - OM
        - PK
        - PW
        - PS
        - PA
        - PG
        - PY
        - PE
        - PH
        - PN
        - PL
        - PT
        - PR
        - QA
        - RE
        - RO
        - RU
        - RW
        - BL
        - SH
        - KN
        - LC
        - MF
        - PM
        - VC
        - WS
        - SM
        - ST
        - SA
        - SN
        - RS
        - SC
        - SL
        - SG
        - SK
        - SI
        - SB
        - SO
        - ZA
        - GS
        - SS
        - ES
        - LK
        - SD
        - SR
        - SJ
        - SZ
        - SE
        - CH
        - SY
        - TW
        - TJ
        - TZ
        - TH
        - TL
        - TG
        - TK
        - TO
        - TT
        - TN
        - TR
        - TM
        - TC
        - TV
        - UG
        - UA
        - AE
        - GB
        - US
        - UM
        - UY
        - UZ
        - VU
        - VE
        - VN
        - VI
        - WF
        - EH
        - YE
        - ZM
        - ZW
    Shared.EuCountryCode:
      type: string
      enum:
        - AT
        - BE
        - BG
        - HR
        - CY
        - CZ
        - DK
        - EE
        - FI
        - FR
        - DE
        - GR
        - HU
        - IE
        - IT
        - LV
        - LT
        - LU
        - MT
        - NL
        - PL
        - PT
        - RO
        - SK
        - SI
        - ES
        - SE
        - XI
    SpeciesInfo:
      type: object
      required:
        - materialUri
      properties:
        materialUri:
          type: string
        commonName:
          type: string
        scientificName:
          type: string
    Static.AdditionalUnit:
      type: object
      required:
        - baseUnit
        - conversionFactor
      properties:
        baseUnit:
          type: string
          format: uri
          description: >-
            The URI to the base unit of measurement to convert the base qty to.
            So if the product is specified in units and the conversion specifies
            kg then this conversion will provide the per unit mass.
          examples:
            - /common/base-units/{unitId}
            - /common/base-units/{unitId}
        conversionFactor:
          type: number
          format: decimal
          description: >-
            The conversion factor from product base unit to conversion base
            unit.
    Static.ConnectStatus:
      type: string
      enum:
        - CONNECTED
        - DISCONNECTED
    Static.Connection:
      type: object
      required:
        - name
        - address
        - connectStatus
      properties:
        name:
          type: string
          description: The name of the connected organisation.
        publicUri:
          type: string
          description: >-
            This is the public organisation URI. Once organisation is on the
            system as well and are connected then this will be populated. Before
            that happens an organisation can record for themselves but later
            have them linked if a given organisation then signs up.
        parentUri:
          type: string
          description: >-
            If this connection is actually part of your group of companies then
            this should point to your organisation URI.
        website:
          type: string
          description: The corporate website for this organisation.
        email:
          type: string
          description: Contact email address for the organisation.
        address:
          allOf:
            - $ref: '#/components/schemas/Address'
          description: The address of the corporate headquarters.
        connectStatus:
          allOf:
            - $ref: '#/components/schemas/Static.ConnectStatus'
          description: >-
            This is the status of connection to the organisation. In order to
            send records to or receive record from an organisation the two
            organisations must be connected.
        connectStatusUpdatedTime:
          type: string
          format: date-time
          description: The time and date when the connection status was updated.
      allOf:
        - $ref: '#/components/schemas/Common.BaseWithId'
      description: >-
        A connection represents an organisation that has a relationship with the
        current organisation. This might be a supplier, customer or other
        partner. It represents a legal entity.
    Static.ConnectionCreate:
      type: object
      required:
        - name
        - address
      properties:
        name:
          type: string
          description: The name of the connected organisation.
        publicUri:
          type: string
          description: >-
            This is the public organisation URI. Once organisation is on the
            system as well and are connected then this will be populated. Before
            that happens an organisation can record for themselves but later
            have them linked if a given organisation then signs up.
        parentUri:
          type: string
          description: >-
            If this connection is actually part of your group of companies then
            this should point to your organisation URI.
        website:
          type: string
          description: The corporate website for this organisation.
        email:
          type: string
          description: Contact email address for the organisation.
        address:
          allOf:
            - $ref: '#/components/schemas/Address'
          description: The address of the corporate headquarters.
      allOf:
        - $ref: '#/components/schemas/Common.BaseWithIdCreate'
      description: >-
        A connection represents an organisation that has a relationship with the
        current organisation. This might be a supplier, customer or other
        partner. It represents a legal entity.
    Static.ConnectionCreateOrUpdate:
      type: object
      required:
        - name
        - address
      properties:
        name:
          type: string
          description: The name of the connected organisation.
        publicUri:
          type: string
          description: >-
            This is the public organisation URI. Once organisation is on the
            system as well and are connected then this will be populated. Before
            that happens an organisation can record for themselves but later
            have them linked if a given organisation then signs up.
        parentUri:
          type: string
          description: >-
            If this connection is actually part of your group of companies then
            this should point to your organisation URI.
        website:
          type: string
          description: The corporate website for this organisation.
        email:
          type: string
          description: Contact email address for the organisation.
        address:
          allOf:
            - $ref: '#/components/schemas/Address'
          description: The address of the corporate headquarters.
      allOf:
        - $ref: '#/components/schemas/Common.BaseWithIdCreateOrUpdate'
      description: >-
        A connection represents an organisation that has a relationship with the
        current organisation. This might be a supplier, customer or other
        partner. It represents a legal entity.
    Static.Location:
      type: object
      required:
        - name
        - types
        - address
      properties:
        name:
          type: string
          description: The name of the location/site.
        types:
          type: array
          items:
            type: string
          description: The URI(s) of the type(s) of the location/site.
          examples:
            - - /organisations/{orgId}/location-types/{locationTypeId}
        address:
          allOf:
            - $ref: '#/components/schemas/iov42.Core.Model.Geo.Address'
          description: The location/site address.
        recordState:
          allOf:
            - $ref: '#/components/schemas/Common.Enums.RecordState'
          description: State of the record.
      allOf:
        - $ref: '#/components/schemas/Common.BaseWithId'
      description: >-
        > **Locations** (or sites) are an essential part of the Interu
        traceability method. They represent physical locations and areas
        involved in the physical flow of goods. For instance, a manufacturing
        Organisation may have multiple Locations, each one the factory address
        where processing happens.
    Static.LocationCreate:
      type: object
      required:
        - name
        - types
        - address
      properties:
        name:
          type: string
          description: The name of the location/site.
        types:
          type: array
          items:
            type: string
          description: The URI(s) of the type(s) of the location/site.
          examples:
            - - /organisations/{orgId}/location-types/{locationTypeId}
        address:
          allOf:
            - $ref: '#/components/schemas/iov42.Core.Model.Geo.Address'
          description: The location/site address.
      allOf:
        - $ref: '#/components/schemas/Common.BaseWithIdCreate'
      description: >-
        > **Locations** (or sites) are an essential part of the Interu
        traceability method. They represent physical locations and areas
        involved in the physical flow of goods. For instance, a manufacturing
        Organisation may have multiple Locations, each one the factory address
        where processing happens.
    Static.LocationCreateOrUpdate:
      type: object
      required:
        - name
        - types
        - address
      properties:
        name:
          type: string
          description: The name of the location/site.
        types:
          type: array
          items:
            type: string
          description: The URI(s) of the type(s) of the location/site.
          examples:
            - - /organisations/{orgId}/location-types/{locationTypeId}
        address:
          allOf:
            - $ref: '#/components/schemas/iov42.Core.Model.Geo.Address'
          description: The location/site address.
      allOf:
        - $ref: '#/components/schemas/Common.BaseWithIdCreateOrUpdate'
      description: >-
        > **Locations** (or sites) are an essential part of the Interu
        traceability method. They represent physical locations and areas
        involved in the physical flow of goods. For instance, a manufacturing
        Organisation may have multiple Locations, each one the factory address
        where processing happens.
    Static.LocationLink:
      type: object
      required:
        - from
        - to
      properties:
        from:
          type: string
          format: uri
          description: >-
            The URI of the source location. This is the upstream location in the
            supply chain.
          examples:
            - /organisations/{orgId}/locations/{locationId}
        to:
          type: string
          format: uri
          description: >-
            The URI of the target location. This is the downstream location in
            the supply chain.
          examples:
            - /organisations/{orgId}/locations/{locationId}
      allOf:
        - $ref: '#/components/schemas/Common.BaseWithoutId'
      description: >-
        Locations can be linked to represent the flow of goods in the supply
        chain.
    Static.LocationLinkCreate:
      type: object
      required:
        - from
        - to
      properties:
        from:
          type: string
          format: uri
          description: >-
            The URI of the source location. This is the upstream location in the
            supply chain.
          examples:
            - /organisations/{orgId}/locations/{locationId}
        to:
          type: string
          format: uri
          description: >-
            The URI of the target location. This is the downstream location in
            the supply chain.
          examples:
            - /organisations/{orgId}/locations/{locationId}
      allOf:
        - $ref: '#/components/schemas/Common.BaseWithoutIdCreate'
      description: >-
        Locations can be linked to represent the flow of goods in the supply
        chain.
    Static.LocationLinkCreateOrUpdate:
      type: object
      required:
        - from
        - to
      properties:
        from:
          type: string
          format: uri
          description: >-
            The URI of the source location. This is the upstream location in the
            supply chain.
          examples:
            - /organisations/{orgId}/locations/{locationId}
        to:
          type: string
          format: uri
          description: >-
            The URI of the target location. This is the downstream location in
            the supply chain.
          examples:
            - /organisations/{orgId}/locations/{locationId}
      allOf:
        - $ref: '#/components/schemas/Common.BaseWithoutIdCreateOrUpdate'
      description: >-
        Locations can be linked to represent the flow of goods in the supply
        chain.
    Static.Material:
      type: object
      required:
        - name
        - category
      properties:
        name:
          type: string
          description: The name of the material.
        scientificName:
          type: string
          description: >-
            This is the Scientific Name for this material. It is an optional
            field but is required for sbmission to the Traces NT system.
        commonName:
          type: string
          description: >-
            This is a Common Name for this material. It is an optional field but
            is required for sbmission to the Traces NT system.
        category:
          type: string
          description: The category for the material.
        recordState:
          allOf:
            - $ref: '#/components/schemas/Common.Enums.RecordState'
          description: State of the record.
      allOf:
        - $ref: '#/components/schemas/Common.BaseWithId'
      description: The definition of a material.
    Static.MaterialCreate:
      type: object
      required:
        - name
        - category
      properties:
        name:
          type: string
          description: The name of the material.
        scientificName:
          type: string
          description: >-
            This is the Scientific Name for this material. It is an optional
            field but is required for sbmission to the Traces NT system.
        commonName:
          type: string
          description: >-
            This is a Common Name for this material. It is an optional field but
            is required for sbmission to the Traces NT system.
        category:
          type: string
          description: The category for the material.
      allOf:
        - $ref: '#/components/schemas/Common.BaseWithIdCreate'
      description: The definition of a material.
    Static.MaterialCreateOrUpdate:
      type: object
      required:
        - name
        - category
      properties:
        name:
          type: string
          description: The name of the material.
        scientificName:
          type: string
          description: >-
            This is the Scientific Name for this material. It is an optional
            field but is required for sbmission to the Traces NT system.
        commonName:
          type: string
          description: >-
            This is a Common Name for this material. It is an optional field but
            is required for sbmission to the Traces NT system.
        category:
          type: string
          description: The category for the material.
      allOf:
        - $ref: '#/components/schemas/Common.BaseWithIdCreateOrUpdate'
      description: The definition of a material.
    Static.Product:
      type: object
      required:
        - name
        - allowedMaterials
        - baseUnit
        - additionalUnits
      properties:
        name:
          type: string
          description: The name for the product.
        hsCode:
          type: string
          description: >-
            This is the HS (Harmonised Standard) code for the product. This is
            optional unless this product will be part of submission to the
            Traces NT system.
        description:
          type: string
          description: >-
            This is a simple description for the product. This is optional
            unless this product will be part of submission to the Traces NT
            system.
        allowedMaterials:
          type: array
          items:
            type: string
          description: >-
            The URI(s) of the material(s) that are allowed to be used for this
            product.
          examples:
            - - /organisations/{orgId}/materials/{materialId}
        baseUnit:
          type: string
          format: uri
          description: >-
            The URI to the base unit of measurement that this product is
            specified in.
          examples:
            - /common/base-units/{unitId}
        defaultUnit:
          type: string
          format: uri
          description: >-
            The URI to the unit of measurement that you wish to use as the
            default unit of measurement.
          examples:
            - /common/base-units/{unitId}
        additionalUnits:
          type: array
          items:
            $ref: '#/components/schemas/Static.AdditionalUnit'
          description: >-
            A list of additional units that specify the factor for converting
            from the base unit to other base units: e.g. unit to kg
        recordState:
          allOf:
            - $ref: '#/components/schemas/Common.Enums.RecordState'
          description: State of the record.
      allOf:
        - $ref: '#/components/schemas/Common.BaseWithId'
      description: This is a definition of a product. Typically this represents an SKU.
    Static.ProductCreate:
      type: object
      required:
        - name
        - allowedMaterials
        - baseUnit
        - additionalUnits
      properties:
        name:
          type: string
          description: The name for the product.
        hsCode:
          type: string
          description: >-
            This is the HS (Harmonised Standard) code for the product. This is
            optional unless this product will be part of submission to the
            Traces NT system.
        description:
          type: string
          description: >-
            This is a simple description for the product. This is optional
            unless this product will be part of submission to the Traces NT
            system.
        allowedMaterials:
          type: array
          items:
            type: string
          description: >-
            The URI(s) of the material(s) that are allowed to be used for this
            product.
          examples:
            - - /organisations/{orgId}/materials/{materialId}
        baseUnit:
          type: string
          format: uri
          description: >-
            The URI to the base unit of measurement that this product is
            specified in.
          examples:
            - /common/base-units/{unitId}
        defaultUnit:
          type: string
          format: uri
          description: >-
            The URI to the unit of measurement that you wish to use as the
            default unit of measurement.
          examples:
            - /common/base-units/{unitId}
        additionalUnits:
          type: array
          items:
            $ref: '#/components/schemas/Static.AdditionalUnit'
          description: >-
            A list of additional units that specify the factor for converting
            from the base unit to other base units: e.g. unit to kg
      allOf:
        - $ref: '#/components/schemas/Common.BaseWithIdCreate'
      description: This is a definition of a product. Typically this represents an SKU.
    Static.ProductCreateOrUpdate:
      type: object
      required:
        - name
        - allowedMaterials
        - baseUnit
        - additionalUnits
      properties:
        name:
          type: string
          description: The name for the product.
        hsCode:
          type: string
          description: >-
            This is the HS (Harmonised Standard) code for the product. This is
            optional unless this product will be part of submission to the
            Traces NT system.
        description:
          type: string
          description: >-
            This is a simple description for the product. This is optional
            unless this product will be part of submission to the Traces NT
            system.
        allowedMaterials:
          type: array
          items:
            type: string
          description: >-
            The URI(s) of the material(s) that are allowed to be used for this
            product.
          examples:
            - - /organisations/{orgId}/materials/{materialId}
        baseUnit:
          type: string
          format: uri
          description: >-
            The URI to the base unit of measurement that this product is
            specified in.
          examples:
            - /common/base-units/{unitId}
        defaultUnit:
          type: string
          format: uri
          description: >-
            The URI to the unit of measurement that you wish to use as the
            default unit of measurement.
          examples:
            - /common/base-units/{unitId}
        additionalUnits:
          type: array
          items:
            $ref: '#/components/schemas/Static.AdditionalUnit'
          description: >-
            A list of additional units that specify the factor for converting
            from the base unit to other base units: e.g. unit to kg
      allOf:
        - $ref: '#/components/schemas/Common.BaseWithIdCreateOrUpdate'
      description: This is a definition of a product. Typically this represents an SKU.
    Static.QueryLinkDirection:
      type: string
      enum:
        - FROM
        - TO
        - BOTH
    Static.UpdateConnection:
      type: object
      required:
        - name
        - address
      properties:
        name:
          type: string
          description: The name of the connected organisation.
        publicUri:
          type: string
          description: >-
            This is the public organisation URI. Once organisation is on the
            system as well and are connected then this will be populated. Before
            that happens an organisation can record for themselves but later
            have them linked if a given organisation then signs up.
        parentUri:
          type: string
          description: >-
            If this connection is actually part of your group of companies then
            this should point to your organisation URI.
        website:
          type: string
          description: The corporate website for this organisation.
        email:
          type: string
          description: Contact email address for the organisation.
        address:
          allOf:
            - $ref: '#/components/schemas/Address'
          description: The address of the corporate headquarters.
      description: ''
    Static.UpdateLocation:
      type: object
      required:
        - name
        - types
        - address
      properties:
        name:
          type: string
          description: The name of the location/site.
        types:
          type: array
          items:
            type: string
          description: The URI(s) of the type(s) of the location/site.
          examples:
            - - /organisations/{orgId}/location-types/{locationTypeId}
            - - /organisations/{orgId}/location-types/{locationTypeId}
        address:
          allOf:
            - $ref: '#/components/schemas/iov42.Core.Model.Geo.Address'
          description: The location/site address.
      description: ''
    Static.UpdateMaterial:
      type: object
      required:
        - name
        - category
      properties:
        name:
          type: string
          description: The name of the material.
        scientificName:
          type: string
          description: >-
            This is the Scientific Name for this material. It is an optional
            field but is required for sbmission to the Traces NT system.
        commonName:
          type: string
          description: >-
            This is a Common Name for this material. It is an optional field but
            is required for sbmission to the Traces NT system.
        category:
          type: string
          description: The category for the material.
      description: ''
    Static.UpdateProduct:
      type: object
      required:
        - name
        - allowedMaterials
        - baseUnit
        - additionalUnits
      properties:
        name:
          type: string
          description: The name for the product.
        hsCode:
          type: string
          description: >-
            This is the HS (Harmonised Standard) code for the product. This is
            optional unless this product will be part of submission to the
            Traces NT system.
        description:
          type: string
          description: >-
            This is a simple description for the product. This is optional
            unless this product will be part of submission to the Traces NT
            system.
        allowedMaterials:
          type: array
          items:
            type: string
          description: >-
            The URI(s) of the material(s) that are allowed to be used for this
            product.
          examples:
            - - /organisations/{orgId}/materials/{materialId}
            - - /organisations/{orgId}/materials/{materialId}
        baseUnit:
          type: string
          format: uri
          description: >-
            The URI to the base unit of measurement that this product is
            specified in.
          examples:
            - /common/base-units/{unitId}
            - /common/base-units/{unitId}
        defaultUnit:
          type: string
          format: uri
          description: >-
            The URI to the unit of measurement that you wish to use as the
            default unit of measurement.
          examples:
            - /common/base-units/{unitId}
            - /common/base-units/{unitId}
        additionalUnits:
          type: array
          items:
            $ref: '#/components/schemas/Static.AdditionalUnit'
          description: >-
            A list of additional units that specify the factor for converting
            from the base unit to other base units: e.g. unit to kg
      description: ''
    Static.UpdateVariant:
      type: object
      required:
        - description
        - additionalUnits
      properties:
        description:
          type: string
          description: >-
            The identity for of the variant. This needs to be unique in the
            context of the product.
        sku:
          type: string
          description: >-
            If you want to store the SKU number separately from the description
            this field is available.
        additionalUnits:
          type: array
          items:
            $ref: '#/components/schemas/Static.AdditionalUnit'
          description: >-
            A list of additional Units that specify the factor for converting
            from the base unit to other base units: e.g. unit to kg specific to
            this variant.
      description: ''
    Static.Variant:
      type: object
      required:
        - description
        - additionalUnits
      properties:
        id:
          type: string
          description: System assigned or user defined id field.
        description:
          type: string
          description: >-
            The identity for of the variant. This needs to be unique in the
            context of the product.
        sku:
          type: string
          description: >-
            If you want to store the SKU number separately from the description
            this field is available.
        additionalUnits:
          type: array
          items:
            $ref: '#/components/schemas/Static.AdditionalUnit'
          description: >-
            A list of additional Units that specify the factor for converting
            from the base unit to other base units: e.g. unit to kg specific to
            this variant.
        recordState:
          allOf:
            - $ref: '#/components/schemas/Common.Enums.RecordState'
          description: State of the record.
    Static.VariantCreate:
      type: object
      required:
        - description
        - additionalUnits
      properties:
        id:
          type: string
          description: System assigned or user defined id field.
        description:
          type: string
          description: >-
            The identity for of the variant. This needs to be unique in the
            context of the product.
        sku:
          type: string
          description: >-
            If you want to store the SKU number separately from the description
            this field is available.
        additionalUnits:
          type: array
          items:
            $ref: '#/components/schemas/Static.AdditionalUnit'
          description: >-
            A list of additional Units that specify the factor for converting
            from the base unit to other base units: e.g. unit to kg specific to
            this variant.
    Transactional.AdditionalQuantity:
      type: object
      required:
        - baseUnit
        - conversionQuantity
        - overrideQuantity
      properties:
        baseUnit:
          type: string
          description: The additional quantity base unit of measurement.
        conversionQuantity:
          type: number
          format: decimal
          description: >-
            The additional quantity calculated if the product has a conversion
            to that base unit.
        overrideQuantity:
          type: number
          format: decimal
          description: >-
            An override quantity provided irrespective of whether or not there
            is a conversion on the product.
    Transactional.Delivery:
      type: object
      required:
        - deliveryId
        - from
        - to
        - status
      properties:
        deliveryId:
          type: string
          description: User-assigned unique identifier for the delivery.
        from:
          type: string
          format: uri
          description: >-
            The URI of the location from which the delivery is being delivered
            from.
          examples:
            - /organisations/{orgId}/locations/{locationId}
        to:
          type: string
          format: uri
          description: The URI of the location to which the delivery is being delivered to.
          examples:
            - /organisations/{orgId}/locations/{locationId}
        status:
          allOf:
            - $ref: '#/components/schemas/Transactional.DeliveryStatus'
          description: The current status of the delivery.
        sent:
          type: string
          format: date-time
          description: The date and time of when the delivery has been sent.
        delivered:
          type: string
          format: date-time
          description: The date and time of when the delivery has been delivered.
        items:
          type: array
          items:
            $ref: '#/components/schemas/Transactional.DeliveryItem'
          description: List of items included in the delivery.
        agents:
          type: array
          items:
            type: string
          description: >-
            List of agent organisation URIs that are associated with the
            delivery.
        purchaseOrderNumbers:
          type: array
          items:
            type: string
          description: Associated Purchase Orders
      allOf:
        - $ref: '#/components/schemas/Common.BaseWithId'
      description: >-
        Represents a delivery/shipment within a supply chain. This may be
        inbound or outbound for an organisation.
    Transactional.DeliveryCreate:
      type: object
      required:
        - deliveryId
        - from
        - to
        - status
      properties:
        deliveryId:
          type: string
          description: User-assigned unique identifier for the delivery.
        from:
          type: string
          format: uri
          description: >-
            The URI of the location from which the delivery is being delivered
            from.
          examples:
            - /organisations/{orgId}/locations/{locationId}
        to:
          type: string
          format: uri
          description: The URI of the location to which the delivery is being delivered to.
          examples:
            - /organisations/{orgId}/locations/{locationId}
        status:
          allOf:
            - $ref: '#/components/schemas/Transactional.DeliveryStatus'
          description: The current status of the delivery.
        sent:
          type: string
          format: date-time
          description: The date and time of when the delivery has been sent.
        delivered:
          type: string
          format: date-time
          description: The date and time of when the delivery has been delivered.
        items:
          type: array
          items:
            $ref: '#/components/schemas/Transactional.DeliveryItem'
          description: List of items included in the delivery.
        agents:
          type: array
          items:
            type: string
          description: >-
            List of agent organisation URIs that are associated with the
            delivery.
        purchaseOrderNumbers:
          type: array
          items:
            type: string
          description: Associated Purchase Orders
      allOf:
        - $ref: '#/components/schemas/Common.BaseWithIdCreate'
      description: >-
        Represents a delivery/shipment within a supply chain. This may be
        inbound or outbound for an organisation.
    Transactional.DeliveryCreateOrUpdate:
      type: object
      required:
        - deliveryId
        - from
        - to
        - status
      properties:
        deliveryId:
          type: string
          description: User-assigned unique identifier for the delivery.
        from:
          type: string
          format: uri
          description: >-
            The URI of the location from which the delivery is being delivered
            from.
          examples:
            - /organisations/{orgId}/locations/{locationId}
        to:
          type: string
          format: uri
          description: The URI of the location to which the delivery is being delivered to.
          examples:
            - /organisations/{orgId}/locations/{locationId}
        status:
          allOf:
            - $ref: '#/components/schemas/Transactional.DeliveryStatus'
          description: The current status of the delivery.
        sent:
          type: string
          format: date-time
          description: The date and time of when the delivery has been sent.
        delivered:
          type: string
          format: date-time
          description: The date and time of when the delivery has been delivered.
        items:
          type: array
          items:
            $ref: '#/components/schemas/Transactional.DeliveryItem'
          description: List of items included in the delivery.
        agents:
          type: array
          items:
            type: string
          description: >-
            List of agent organisation URIs that are associated with the
            delivery.
        purchaseOrderNumbers:
          type: array
          items:
            type: string
          description: Associated Purchase Orders
      allOf:
        - $ref: '#/components/schemas/Common.BaseWithIdCreateOrUpdate'
      description: >-
        Represents a delivery/shipment within a supply chain. This may be
        inbound or outbound for an organisation.
    Transactional.DeliveryItem:
      type: object
      required:
        - item
        - quantity
      properties:
        item:
          type: string
          format: uri
          description: The URI of the item included in the delivery.
          examples:
            - /organisations/{orgId}/items/{itemId}
            - /organisations/{orgId}/items/{itemId}
        quantity:
          type: number
          format: decimal
          description: The quantity of the item included in the delivery.
      description: Represents an item that is part of the delivery.
    Transactional.DeliveryStatus:
      type: string
      enum:
        - DELIVERED
        - PENDING
        - IN_PROGRESS
    Transactional.Item:
      type: object
      required:
        - itemId
        - product
        - createdAtLocation
        - currentLocation
        - created
        - initialQuantity
        - additionalInitialQuantities
      properties:
        itemId:
          type: string
          description: User defined id for the item.
        product:
          type: string
          format: uri
          description: URI for the product that the item is.
          examples:
            - /organisations/{orgId}/products/{productId}
        createdAtLocation:
          type: string
          format: uri
          description: URI for the location where the product was created.
          examples:
            - /organisations/{orgId}/locations/{locationId}
        materials:
          type: array
          items:
            type: string
          description: List of material URIs that are used within the item.
          examples:
            - - /organisations/{orgId}/materials/{materialId}
        currentLocation:
          type: string
          format: uri
          description: >-
            URI for the location that the item is at or was last at (perhaps it
            no longer exists as it entered a manufacturing process).
          examples:
            - /organisations/{orgId}/locations/{locationId}
        created:
          allOf:
            - $ref: '#/components/schemas/iov42.Core.Model.DateTime.DateOrRange'
          description: The Date or Date Range that the item was created on.
        initialQuantity:
          type: number
          format: decimal
          description: >-
            This quantity contained within this item at the point when it was
            created.
        additionalInitialQuantities:
          type: array
          items:
            $ref: '#/components/schemas/Transactional.AdditionalQuantity'
          description: Additiononal quantities can be specified directly on the item.
        remainingQuantity:
          type: number
          format: decimal
          description: >-
            If an item enters a process then this quantity The remaining
            quantity, some of the item may have been used in a process.
        productVariant:
          type: string
          format: uri
          description: The uri of the product variant if applicable to this item.
          examples:
            - /organisations/{orgId}/products/{productId}/variants/{variantId}
        batchNumbers:
          type: array
          items:
            type: string
          description: >-
            If the item is associated with a particular batch (or multiple
            batches) then you can use this field to record the batch numbers.
        recordState:
          allOf:
            - $ref: '#/components/schemas/Common.Enums.RecordState'
          description: State of the record.
      allOf:
        - $ref: '#/components/schemas/Common.BaseWithId'
      description: >-
        Represents an item within the supply chain. Items can be found in
        deliveries or processes, they represent goods as they flow through the
        supply chain.
    Transactional.ItemCreate:
      type: object
      required:
        - itemId
        - product
        - createdAtLocation
        - currentLocation
        - created
        - initialQuantity
        - additionalInitialQuantities
      properties:
        itemId:
          type: string
          description: User defined id for the item.
        product:
          type: string
          format: uri
          description: URI for the product that the item is.
          examples:
            - /organisations/{orgId}/products/{productId}
        createdAtLocation:
          type: string
          format: uri
          description: URI for the location where the product was created.
          examples:
            - /organisations/{orgId}/locations/{locationId}
        materials:
          type: array
          items:
            type: string
          description: List of material URIs that are used within the item.
          examples:
            - - /organisations/{orgId}/materials/{materialId}
        currentLocation:
          type: string
          format: uri
          description: >-
            URI for the location that the item is at or was last at (perhaps it
            no longer exists as it entered a manufacturing process).
          examples:
            - /organisations/{orgId}/locations/{locationId}
        created:
          allOf:
            - $ref: '#/components/schemas/iov42.Core.Model.DateTime.DateOrRange'
          description: The Date or Date Range that the item was created on.
        initialQuantity:
          type: number
          format: decimal
          description: >-
            This quantity contained within this item at the point when it was
            created.
        additionalInitialQuantities:
          type: array
          items:
            $ref: '#/components/schemas/Transactional.AdditionalQuantity'
          description: Additiononal quantities can be specified directly on the item.
        remainingQuantity:
          type: number
          format: decimal
          description: >-
            If an item enters a process then this quantity The remaining
            quantity, some of the item may have been used in a process.
        productVariant:
          type: string
          format: uri
          description: The uri of the product variant if applicable to this item.
          examples:
            - /organisations/{orgId}/products/{productId}/variants/{variantId}
        batchNumbers:
          type: array
          items:
            type: string
          description: >-
            If the item is associated with a particular batch (or multiple
            batches) then you can use this field to record the batch numbers.
      allOf:
        - $ref: '#/components/schemas/Common.BaseWithIdCreate'
      description: >-
        Represents an item within the supply chain. Items can be found in
        deliveries or processes, they represent goods as they flow through the
        supply chain.
    Transactional.ItemCreateOrUpdate:
      type: object
      required:
        - itemId
        - product
        - createdAtLocation
        - currentLocation
        - created
        - initialQuantity
        - additionalInitialQuantities
      properties:
        itemId:
          type: string
          description: User defined id for the item.
        product:
          type: string
          format: uri
          description: URI for the product that the item is.
          examples:
            - /organisations/{orgId}/products/{productId}
        createdAtLocation:
          type: string
          format: uri
          description: URI for the location where the product was created.
          examples:
            - /organisations/{orgId}/locations/{locationId}
        materials:
          type: array
          items:
            type: string
          description: List of material URIs that are used within the item.
          examples:
            - - /organisations/{orgId}/materials/{materialId}
        currentLocation:
          type: string
          format: uri
          description: >-
            URI for the location that the item is at or was last at (perhaps it
            no longer exists as it entered a manufacturing process).
          examples:
            - /organisations/{orgId}/locations/{locationId}
        created:
          allOf:
            - $ref: '#/components/schemas/iov42.Core.Model.DateTime.DateOrRange'
          description: The Date or Date Range that the item was created on.
        initialQuantity:
          type: number
          format: decimal
          description: >-
            This quantity contained within this item at the point when it was
            created.
        additionalInitialQuantities:
          type: array
          items:
            $ref: '#/components/schemas/Transactional.AdditionalQuantity'
          description: Additiononal quantities can be specified directly on the item.
        remainingQuantity:
          type: number
          format: decimal
          description: >-
            If an item enters a process then this quantity The remaining
            quantity, some of the item may have been used in a process.
        productVariant:
          type: string
          format: uri
          description: The uri of the product variant if applicable to this item.
          examples:
            - /organisations/{orgId}/products/{productId}/variants/{variantId}
        batchNumbers:
          type: array
          items:
            type: string
          description: >-
            If the item is associated with a particular batch (or multiple
            batches) then you can use this field to record the batch numbers.
      allOf:
        - $ref: '#/components/schemas/Common.BaseWithIdCreateOrUpdate'
      description: >-
        Represents an item within the supply chain. Items can be found in
        deliveries or processes, they represent goods as they flow through the
        supply chain.
    Transactional.Process:
      type: object
      required:
        - processId
        - type
        - location
        - state
        - firstInputDate
        - lastOutputDate
      properties:
        processId:
          type: string
          description: The process id.
        type:
          type: string
          format: uri
          description: The URI of the type of process.
          examples:
            - /organisations/{orgId}/process-types/{processTypeId}
        location:
          type: string
          format: uri
          description: The URI of the location that this process was carried out at.
          examples:
            - /organisations/{orgId}/locations/{locationId}
        state:
          allOf:
            - $ref: '#/components/schemas/Transactional.ProcessState'
          description: >-
            Contains the process state. It governs what you can or cannot do
            with the process.
        firstInputDate:
          type: string
          format: date-time
          description: The first date for input.
        lastOutputDate:
          type: string
          format: date-time
          description: The last date for output.
      allOf:
        - $ref: '#/components/schemas/Common.BaseWithId'
      description: >-
        A process represents an activity that occurs within an organisation.
        This may be a conversion from one or more Item types into other Item
        types or a processes such as bundling.
    Transactional.ProcessCreate:
      type: object
      required:
        - processId
        - type
        - location
        - state
        - firstInputDate
        - lastOutputDate
      properties:
        processId:
          type: string
          description: The process id.
        type:
          type: string
          format: uri
          description: The URI of the type of process.
          examples:
            - /organisations/{orgId}/process-types/{processTypeId}
        location:
          type: string
          format: uri
          description: The URI of the location that this process was carried out at.
          examples:
            - /organisations/{orgId}/locations/{locationId}
        state:
          allOf:
            - $ref: '#/components/schemas/Transactional.ProcessState'
          description: >-
            Contains the process state. It governs what you can or cannot do
            with the process.
        firstInputDate:
          type: string
          format: date-time
          description: The first date for input.
        lastOutputDate:
          type: string
          format: date-time
          description: The last date for output.
      allOf:
        - $ref: '#/components/schemas/Common.BaseWithIdCreate'
      description: >-
        A process represents an activity that occurs within an organisation.
        This may be a conversion from one or more Item types into other Item
        types or a processes such as bundling.
    Transactional.ProcessCreateOrUpdate:
      type: object
      required:
        - processId
        - type
        - location
        - state
        - firstInputDate
        - lastOutputDate
      properties:
        processId:
          type: string
          description: The process id.
        type:
          type: string
          format: uri
          description: The URI of the type of process.
          examples:
            - /organisations/{orgId}/process-types/{processTypeId}
        location:
          type: string
          format: uri
          description: The URI of the location that this process was carried out at.
          examples:
            - /organisations/{orgId}/locations/{locationId}
        state:
          allOf:
            - $ref: '#/components/schemas/Transactional.ProcessState'
          description: >-
            Contains the process state. It governs what you can or cannot do
            with the process.
        firstInputDate:
          type: string
          format: date-time
          description: The first date for input.
        lastOutputDate:
          type: string
          format: date-time
          description: The last date for output.
      allOf:
        - $ref: '#/components/schemas/Common.BaseWithIdCreateOrUpdate'
      description: >-
        A process represents an activity that occurs within an organisation.
        This may be a conversion from one or more Item types into other Item
        types or a processes such as bundling.
    Transactional.ProcessInput:
      type: object
      required:
        - date
        - items
        - note
      properties:
        date:
          allOf:
            - $ref: '#/components/schemas/iov42.Core.Model.DateTime.DateOrRange'
          description: The date or date range that the items were added.
        items:
          type: array
          items:
            $ref: '#/components/schemas/Transactional.ProcessInputItem'
          description: The process input items URIs
        note:
          type: string
          description: A note to attach to the particular input.
      allOf:
        - $ref: '#/components/schemas/Common.BaseWithoutId'
      description: >-
        Captures a set of items that were input to a Process and the quantity
        that was used.
    Transactional.ProcessInputCreate:
      type: object
      required:
        - date
        - items
        - note
      properties:
        date:
          allOf:
            - $ref: '#/components/schemas/iov42.Core.Model.DateTime.DateOrRange'
          description: The date or date range that the items were added.
        items:
          type: array
          items:
            $ref: '#/components/schemas/Transactional.ProcessInputItem'
          description: The process input items URIs
        note:
          type: string
          description: A note to attach to the particular input.
      allOf:
        - $ref: '#/components/schemas/Common.BaseWithoutIdCreate'
      description: >-
        Captures a set of items that were input to a Process and the quantity
        that was used.
    Transactional.ProcessInputCreateOrUpdate:
      type: object
      required:
        - date
        - items
        - note
      properties:
        date:
          allOf:
            - $ref: '#/components/schemas/iov42.Core.Model.DateTime.DateOrRange'
          description: The date or date range that the items were added.
        items:
          type: array
          items:
            $ref: '#/components/schemas/Transactional.ProcessInputItem'
          description: The process input items URIs
        note:
          type: string
          description: A note to attach to the particular input.
      allOf:
        - $ref: '#/components/schemas/Common.BaseWithoutIdCreateOrUpdate'
      description: >-
        Captures a set of items that were input to a Process and the quantity
        that was used.
    Transactional.ProcessInputItem:
      type: object
      required:
        - item
        - selectedQuantity
      properties:
        item:
          type: string
          format: uri
          description: The URI of the item that was put into the process.
          examples:
            - /organisations/{orgId}/items/{itemId}
        selectedQuantity:
          type: number
          format: decimal
          description: The quantity of the item that was processed.
      description: The item that was input to a process.
    Transactional.ProcessOutput:
      type: object
      required:
        - date
        - items
        - note
      properties:
        date:
          allOf:
            - $ref: '#/components/schemas/iov42.Core.Model.DateTime.DateOrRange'
          description: The date or date range that the items were output.
        items:
          type: array
          items:
            $ref: '#/components/schemas/Transactional.ProcessOutputItem'
          description: The process output items
        note:
          type: string
          description: A note to attach to the particular output.
      allOf:
        - $ref: '#/components/schemas/Common.BaseWithoutId'
      description: Captures a set of items that were output from a Process.
    Transactional.ProcessOutputCreate:
      type: object
      required:
        - date
        - items
        - note
      properties:
        date:
          allOf:
            - $ref: '#/components/schemas/iov42.Core.Model.DateTime.DateOrRange'
          description: The date or date range that the items were output.
        items:
          type: array
          items:
            $ref: '#/components/schemas/Transactional.ProcessOutputItem'
          description: The process output items
        note:
          type: string
          description: A note to attach to the particular output.
      allOf:
        - $ref: '#/components/schemas/Common.BaseWithoutIdCreate'
      description: Captures a set of items that were output from a Process.
    Transactional.ProcessOutputCreateOrUpdate:
      type: object
      required:
        - date
        - items
        - note
      properties:
        date:
          allOf:
            - $ref: '#/components/schemas/iov42.Core.Model.DateTime.DateOrRange'
          description: The date or date range that the items were output.
        items:
          type: array
          items:
            $ref: '#/components/schemas/Transactional.ProcessOutputItem'
          description: The process output items
        note:
          type: string
          description: A note to attach to the particular output.
      allOf:
        - $ref: '#/components/schemas/Common.BaseWithoutIdCreateOrUpdate'
      description: Captures a set of items that were output from a Process.
    Transactional.ProcessOutputItem:
      type: object
      required:
        - item
      properties:
        item:
          type: string
          format: uri
          description: The URI of the item that was output from the process.
          examples:
            - /organisations/{orgId}/items/{itemId}
      description: The item that was output from a process.
    Transactional.ProcessState:
      type: string
      enum:
        - INPUT_OUTPUT
        - OUTPUT_ONLY
        - CLOSED
    Transactional.PurchaseOrder:
      type: object
      required:
        - number
        - status
        - lineItems
      properties:
        number:
          type: string
          description: The purchase order number.
        status:
          allOf:
            - $ref: '#/components/schemas/Transactional.PurchaseOrderStatus'
          description: The current status of the purchase order.
        orderDate:
          type: string
          format: date-time
          description: The date and time of the purchase order.
        expectedDeliveryDate:
          type: string
          format: date-time
          description: The date and time the delivery is expected to .
        supplier:
          type: string
          format: uri
          description: The URI of the supplier.
          examples:
            - /organisations/{orgId}/connections/{connectionId}
        buyer:
          type: string
          format: uri
          description: The URI of the buyer.
          examples:
            - /organisations/{orgId}/connections/{connectionId}
        deliverToLocation:
          type: string
          format: uri
          description: The URI of the deliver to location.
          examples:
            - /organisations/{orgId}/locations/{locationId}
        lineItems:
          type: array
          items:
            $ref: '#/components/schemas/Transactional.PurchaseOrderItem'
          description: List of items included in the purchase order.
        note:
          type: string
          description: A note to pass any information.
      allOf:
        - $ref: '#/components/schemas/Common.BaseWithId'
      description: Represents a purchase order.
    Transactional.PurchaseOrderCreate:
      type: object
      required:
        - number
        - status
        - lineItems
      properties:
        number:
          type: string
          description: The purchase order number.
        status:
          allOf:
            - $ref: '#/components/schemas/Transactional.PurchaseOrderStatus'
          description: The current status of the purchase order.
        orderDate:
          type: string
          format: date-time
          description: The date and time of the purchase order.
        expectedDeliveryDate:
          type: string
          format: date-time
          description: The date and time the delivery is expected to .
        supplier:
          type: string
          format: uri
          description: The URI of the supplier.
          examples:
            - /organisations/{orgId}/connections/{connectionId}
        buyer:
          type: string
          format: uri
          description: The URI of the buyer.
          examples:
            - /organisations/{orgId}/connections/{connectionId}
        deliverToLocation:
          type: string
          format: uri
          description: The URI of the deliver to location.
          examples:
            - /organisations/{orgId}/locations/{locationId}
        lineItems:
          type: array
          items:
            $ref: '#/components/schemas/Transactional.PurchaseOrderItem'
          description: List of items included in the purchase order.
        note:
          type: string
          description: A note to pass any information.
      allOf:
        - $ref: '#/components/schemas/Common.BaseWithIdCreate'
      description: Represents a purchase order.
    Transactional.PurchaseOrderCreateOrUpdate:
      type: object
      required:
        - number
        - status
        - lineItems
      properties:
        number:
          type: string
          description: The purchase order number.
        status:
          allOf:
            - $ref: '#/components/schemas/Transactional.PurchaseOrderStatus'
          description: The current status of the purchase order.
        orderDate:
          type: string
          format: date-time
          description: The date and time of the purchase order.
        expectedDeliveryDate:
          type: string
          format: date-time
          description: The date and time the delivery is expected to .
        supplier:
          type: string
          format: uri
          description: The URI of the supplier.
          examples:
            - /organisations/{orgId}/connections/{connectionId}
        buyer:
          type: string
          format: uri
          description: The URI of the buyer.
          examples:
            - /organisations/{orgId}/connections/{connectionId}
        deliverToLocation:
          type: string
          format: uri
          description: The URI of the deliver to location.
          examples:
            - /organisations/{orgId}/locations/{locationId}
        lineItems:
          type: array
          items:
            $ref: '#/components/schemas/Transactional.PurchaseOrderItem'
          description: List of items included in the purchase order.
        note:
          type: string
          description: A note to pass any information.
      allOf:
        - $ref: '#/components/schemas/Common.BaseWithIdCreateOrUpdate'
      description: Represents a purchase order.
    Transactional.PurchaseOrderItem:
      type: object
      required:
        - product
        - quantity
        - additionalQuantities
      properties:
        lineItemId:
          type: string
          description: An optional line item id.
        product:
          type: string
          format: uri
          description: >-
            The URI of the product for the line item included in the purchase
            order.
          examples:
            - /organisations/{orgId}/products/{productId}
            - /organisations/{orgId}/products/{productId}
        quantity:
          type: number
          format: decimal
          description: The quantity of the product included in the purchase order.
        note:
          type: string
          description: A note for each line item.
        productVariant:
          type: string
          format: uri
          description: >-
            The uri of the product variant if applicable to this purchase order
            line item.
          examples:
            - /organisations/{orgId}/products/{productId}/variants/{variantId}
            - /organisations/{orgId}/products/{productId}/variants/{variantId}
        additionalQuantities:
          type: array
          items:
            $ref: '#/components/schemas/Transactional.AdditionalQuantity'
          description: Additiononal quantities can be specified directly on the item.
      description: Represents an item that is part of the delivery.
    Transactional.PurchaseOrderStatus:
      type: string
      enum:
        - OPEN
        - APPROVED
        - COMPLETED
        - CANCELLED
    Transactional.PurchaseOrderStatusUpdate:
      type: object
      required:
        - status
      properties:
        status:
          allOf:
            - $ref: '#/components/schemas/Transactional.PurchaseOrderStatus'
          description: The new status of the purchase order.
      description: Update Purchase Order Status
    Transactional.UpdateDelivery:
      type: object
      required:
        - deliveryId
        - from
        - to
        - status
      properties:
        deliveryId:
          type: string
          description: User-assigned unique identifier for the delivery.
        from:
          type: string
          format: uri
          description: >-
            The URI of the location from which the delivery is being delivered
            from.
          examples:
            - /organisations/{orgId}/locations/{locationId}
            - /organisations/{orgId}/locations/{locationId}
        to:
          type: string
          format: uri
          description: The URI of the location to which the delivery is being delivered to.
          examples:
            - /organisations/{orgId}/locations/{locationId}
            - /organisations/{orgId}/locations/{locationId}
        status:
          allOf:
            - $ref: '#/components/schemas/Transactional.DeliveryStatus'
          description: The current status of the delivery.
        sent:
          type: string
          format: date-time
          description: The date and time of when the delivery has been sent.
        delivered:
          type: string
          format: date-time
          description: The date and time of when the delivery has been delivered.
        items:
          type: array
          items:
            $ref: '#/components/schemas/Transactional.DeliveryItem'
          description: List of items included in the delivery.
        agents:
          type: array
          items:
            type: string
          description: >-
            List of agent organisation URIs that are associated with the
            delivery.
        purchaseOrderNumbers:
          type: array
          items:
            type: string
          description: Associated Purchase Orders
      description: ''
    Transactional.UpdateItem:
      type: object
      required:
        - itemId
        - product
        - createdAtLocation
        - currentLocation
        - created
        - initialQuantity
        - additionalInitialQuantities
      properties:
        itemId:
          type: string
          description: User defined id for the item.
        product:
          type: string
          format: uri
          description: URI for the product that the item is.
          examples:
            - /organisations/{orgId}/products/{productId}
            - /organisations/{orgId}/products/{productId}
        createdAtLocation:
          type: string
          format: uri
          description: URI for the location where the product was created.
          examples:
            - /organisations/{orgId}/locations/{locationId}
            - /organisations/{orgId}/locations/{locationId}
        materials:
          type: array
          items:
            type: string
          description: List of material URIs that are used within the item.
          examples:
            - - /organisations/{orgId}/materials/{materialId}
            - - /organisations/{orgId}/materials/{materialId}
        currentLocation:
          type: string
          format: uri
          description: >-
            URI for the location that the item is at or was last at (perhaps it
            no longer exists as it entered a manufacturing process).
          examples:
            - /organisations/{orgId}/locations/{locationId}
            - /organisations/{orgId}/locations/{locationId}
        created:
          allOf:
            - $ref: '#/components/schemas/iov42.Core.Model.DateTime.DateOrRange'
          description: The Date or Date Range that the item was created on.
        initialQuantity:
          type: number
          format: decimal
          description: >-
            This quantity contained within this item at the point when it was
            created.
        additionalInitialQuantities:
          type: array
          items:
            $ref: '#/components/schemas/Transactional.AdditionalQuantity'
          description: Additiononal quantities can be specified directly on the item.
        remainingQuantity:
          type: number
          format: decimal
          description: >-
            If an item enters a process then this quantity The remaining
            quantity, some of the item may have been used in a process.
        productVariant:
          type: string
          format: uri
          description: The uri of the product variant if applicable to this item.
          examples:
            - /organisations/{orgId}/products/{productId}/variants/{variantId}
            - /organisations/{orgId}/products/{productId}/variants/{variantId}
        batchNumbers:
          type: array
          items:
            type: string
          description: >-
            If the item is associated with a particular batch (or multiple
            batches) then you can use this field to record the batch numbers.
      description: ''
    Transactional.UpdateProcess:
      type: object
      required:
        - processId
        - type
        - location
        - state
        - firstInputDate
        - lastOutputDate
      properties:
        processId:
          type: string
          description: The process id.
        type:
          type: string
          format: uri
          description: The URI of the type of process.
          examples:
            - /organisations/{orgId}/process-types/{processTypeId}
            - /organisations/{orgId}/process-types/{processTypeId}
        location:
          type: string
          format: uri
          description: The URI of the location that this process was carried out at.
          examples:
            - /organisations/{orgId}/locations/{locationId}
            - /organisations/{orgId}/locations/{locationId}
        state:
          allOf:
            - $ref: '#/components/schemas/Transactional.ProcessState'
          description: >-
            Contains the process state. It governs what you can or cannot do
            with the process.
        firstInputDate:
          type: string
          format: date-time
          description: The first date for input.
        lastOutputDate:
          type: string
          format: date-time
          description: The last date for output.
      description: ''
    Transactional.UpdatePurchaseOrder:
      type: object
      required:
        - number
        - status
        - lineItems
      properties:
        number:
          type: string
          description: The purchase order number.
        status:
          allOf:
            - $ref: '#/components/schemas/Transactional.PurchaseOrderStatus'
          description: The current status of the purchase order.
        orderDate:
          type: string
          format: date-time
          description: The date and time of the purchase order.
        expectedDeliveryDate:
          type: string
          format: date-time
          description: The date and time the delivery is expected to .
        supplier:
          type: string
          format: uri
          description: The URI of the supplier.
          examples:
            - /organisations/{orgId}/connections/{connectionId}
            - /organisations/{orgId}/connections/{connectionId}
        buyer:
          type: string
          format: uri
          description: The URI of the buyer.
          examples:
            - /organisations/{orgId}/connections/{connectionId}
            - /organisations/{orgId}/connections/{connectionId}
        deliverToLocation:
          type: string
          format: uri
          description: The URI of the deliver to location.
          examples:
            - /organisations/{orgId}/locations/{locationId}
            - /organisations/{orgId}/locations/{locationId}
        lineItems:
          type: array
          items:
            $ref: '#/components/schemas/Transactional.PurchaseOrderItem'
          description: List of items included in the purchase order.
        note:
          type: string
          description: A note to pass any information.
      description: ''
    TypeSpec.Http.NoContentResponse:
      type: object
      description: >-
        There is no content to send for this request, but the headers may be
        useful.
    Workflow.BatchInput:
      type: object
      required:
        - product
        - batchNumber
        - currentLocation
      properties:
        product:
          type: string
          format: uri
          description: The product to use as input.
          examples:
            - /organisations/{orgId}/products/{productId}
        variant:
          type: string
          description: The variant of the product if applicable.
        batchNumber:
          type: string
          description: The batch number to use to identify the input items.
        currentLocation:
          type: string
          format: uri
          description: The current location of the items to select from.
          examples:
            - /organisations/{orgId}/locations/{locationId}
    Workflow.ItemOutput:
      type: object
      required:
        - itemId
        - quantity
      properties:
        id:
          type: string
          description: The record id to assign to the output item.
        itemId:
          type: string
          description: The item id to assign to the output item.
        quantity:
          type: integer
          format: int32
          description: The quantity of item to include in the delivery.
    Workflow.ItemsInput:
      type: object
      required:
        - item
        - currentLocation
      properties:
        item:
          type: string
          format: uri
          description: The item id to use as input.
          examples:
            - /organisations/{orgId}/items/{itemId}
        currentLocation:
          type: string
          format: uri
          description: The current location of the items to select from.
          examples:
            - /organisations/{orgId}/locations/{locationId}
    Workflow.ProductInput:
      type: object
      required:
        - product
        - quantity
        - selectionStrategy
        - currentLocation
      properties:
        product:
          type: string
          format: uri
          description: The product to use as input.
          examples:
            - /organisations/{orgId}/products/{productId}
        variant:
          type: string
          format: uri
          description: The variant of the product if applicable.
          examples:
            - /organisations/{orgId}/products/{productId}/variants/{variantId}
        quantity:
          type: integer
          format: int32
          description: The quantity of product to use.
        selectionStrategy:
          allOf:
            - $ref: '#/components/schemas/Workflow.SelectionStrategy'
          description: >-
            The selection strategy - First In First Out (FIFO) OR Last In First
            Out (LIFO)
        currentLocation:
          type: string
          format: uri
          description: The current location of the items to select from.
          examples:
            - /organisations/{orgId}/locations/{locationId}
    Workflow.ProductOutput:
      type: object
      required:
        - itemId
        - product
        - quantity
        - excludeFromDelivery
      properties:
        id:
          type: string
          description: The record id to assign to the output item.
        itemId:
          type: string
          description: The item id to assign to the output item.
        product:
          type: string
          description: The product that represents the output.
        variant:
          type: string
          description: The variant of the product if applicable.
        quantity:
          type: integer
          format: int32
          description: The quantity of item to include in the delivery.
        excludeFromDelivery:
          type: boolean
          description: >-
            If you have a by-product of a production process that you do not
            want to include in the delivery e.g. waste material then exclude
            this output from the delivery.
      allOf:
        - $ref: '#/components/schemas/Workflow.ItemOutput'
    Workflow.SelectionStrategy:
      type: string
      enum:
        - FIFO
        - LIFO
    Workflow.WorkflowResult:
      type: object
      required:
        - delivery
      properties:
        delivery:
          allOf:
            - $ref: '#/components/schemas/Transactional.Delivery'
          description: This is the delivery that has been created by the workflow.
    iov42.Core.Model.Countries.ISOAlpha2.World:
      type: string
      enum:
        - AF
        - AX
        - AL
        - DZ
        - AS
        - AD
        - AO
        - AI
        - AQ
        - AG
        - AR
        - AM
        - AW
        - AU
        - AT
        - AZ
        - BS
        - BH
        - BD
        - BB
        - BY
        - BE
        - BZ
        - BJ
        - BM
        - BT
        - BO
        - BA
        - BW
        - BV
        - BR
        - VG
        - IO
        - BN
        - BG
        - BF
        - BI
        - KH
        - CM
        - CA
        - CV
        - KY
        - CF
        - TD
        - CL
        - CN
        - HK
        - MO
        - CX
        - CC
        - CO
        - KM
        - CG
        - CD
        - CK
        - CR
        - CI
        - HR
        - CU
        - CY
        - CZ
        - DK
        - DJ
        - DM
        - DO
        - EC
        - EG
        - SV
        - GQ
        - ER
        - EE
        - ET
        - FK
        - FO
        - FJ
        - FI
        - FR
        - GF
        - PF
        - TF
        - GA
        - GM
        - GE
        - DE
        - GH
        - GI
        - GR
        - GL
        - GD
        - GP
        - GU
        - GT
        - GG
        - GN
        - GW
        - GY
        - HT
        - HM
        - VA
        - HN
        - HU
        - IS
        - IN
        - ID
        - IR
        - IQ
        - IE
        - IM
        - IL
        - IT
        - JM
        - JP
        - JE
        - JO
        - KZ
        - KE
        - KI
        - KP
        - KR
        - KW
        - KG
        - LA
        - LV
        - LB
        - LS
        - LR
        - LY
        - LI
        - LT
        - LU
        - MK
        - MG
        - MW
        - MY
        - MV
        - ML
        - MT
        - MH
        - MQ
        - MR
        - MU
        - YT
        - MX
        - FM
        - MD
        - MC
        - MN
        - ME
        - MS
        - MA
        - MZ
        - MM
        - NA
        - NR
        - NP
        - NL
        - AN
        - NC
        - NZ
        - NI
        - NE
        - NG
        - NU
        - NF
        - MP
        - 'NO'
        - OM
        - PK
        - PW
        - PS
        - PA
        - PG
        - PY
        - PE
        - PH
        - PN
        - PL
        - PT
        - PR
        - QA
        - RE
        - RO
        - RU
        - RW
        - BL
        - SH
        - KN
        - LC
        - MF
        - PM
        - VC
        - WS
        - SM
        - ST
        - SA
        - SN
        - RS
        - SC
        - SL
        - SG
        - SK
        - SI
        - SB
        - SO
        - ZA
        - GS
        - SS
        - ES
        - LK
        - SD
        - SR
        - SJ
        - SZ
        - SE
        - CH
        - SY
        - TW
        - TJ
        - TZ
        - TH
        - TL
        - TG
        - TK
        - TO
        - TT
        - TN
        - TR
        - TM
        - TC
        - TV
        - UG
        - UA
        - AE
        - GB
        - US
        - UM
        - UY
        - UZ
        - VU
        - VE
        - VN
        - VI
        - WF
        - EH
        - YE
        - ZM
        - ZW
    iov42.Core.Model.DateTime.DateOrRange:
      type: object
      required:
        - type
      properties:
        type:
          type: string
          enum:
            - EXACT
            - RANGE
          description: The type of captured date.
        'on':
          type: string
          format: date-time
          description: If Type is EXACT then this precise date is used.
        start:
          type: string
          format: date-time
          description: If type is RANGE then this is the start date.
        end:
          type: string
          format: date-time
          description: If type is RANGE then this is the end date.
    iov42.Core.Model.Geo.Address:
      type: object
      required:
        - country
      properties:
        street:
          type: string
          description: The mainline of the address.
        region:
          type: string
          description: Region of the address.
        zipCode:
          type: string
          description: Zip/postal code for the address.
        country:
          allOf:
            - $ref: '#/components/schemas/iov42.Core.Model.Countries.ISOAlpha2.World'
          description: Alpha-2 code of the ISO 3166 Country Codes specification.
      description: Representation of a physical address.
    iov42.Core.Model.GeoJSON.Feature:
      type: object
      required:
        - type
        - geometry
      properties:
        type:
          type: string
          enum:
            - Feature
          description: The type of the GeoJSON object.
        geometry:
          anyOf:
            - $ref: '#/components/schemas/iov42.Core.Model.GeoJSON.Geometry'
            - type: 'null'
          description: The geometry of the feature. Can be null.
        id:
          type: string
          description: An optional identifier for the feature.
      description: A GeoJSON Feature object.
    iov42.Core.Model.GeoJSON.FeatureCollection:
      type: object
      required:
        - type
        - features
      properties:
        type:
          type: string
          enum:
            - FeatureCollection
          description: The type of the GeoJSON object.
        features:
          type: array
          items:
            $ref: '#/components/schemas/iov42.Core.Model.GeoJSON.Feature'
          description: An array of Feature objects.
      description: A collection of GeoJSON Feature objects.
    iov42.Core.Model.GeoJSON.Geometry:
      anyOf:
        - $ref: '#/components/schemas/iov42.Core.Model.GeoJSON.Point'
        - $ref: '#/components/schemas/iov42.Core.Model.GeoJSON.MultiPoint'
        - $ref: '#/components/schemas/iov42.Core.Model.GeoJSON.Polygon'
        - $ref: '#/components/schemas/iov42.Core.Model.GeoJSON.MultiPolygon'
        - $ref: '#/components/schemas/iov42.Core.Model.GeoJSON.LineString'
        - $ref: '#/components/schemas/iov42.Core.Model.GeoJSON.MultiLineString'
        - $ref: '#/components/schemas/iov42.Core.Model.GeoJSON.GeometryCollection'
      description: A union of all possible GeoJSON geometry types.
    iov42.Core.Model.GeoJSON.GeometryCollection:
      type: object
      required:
        - type
        - geometries
      properties:
        type:
          type: string
          enum:
            - GeometryCollection
          description: The type of the geometry collection.
        geometries:
          type: array
          items:
            $ref: '#/components/schemas/iov42.Core.Model.GeoJSON.Geometry'
          description: An array of Geometry objects.
      description: A collection of GeoJSON geometry objects.
    iov42.Core.Model.GeoJSON.LineString:
      type: object
      required:
        - type
        - coordinates
      properties:
        type:
          type: string
          enum:
            - LineString
          description: The type of the geometry.
        coordinates:
          type: array
          items:
            type: array
            items:
              type: number
              format: double
          minItems: 2
          description: An array of two or more positions.
      description: GeoJSON LineString geometry.
    iov42.Core.Model.GeoJSON.MultiLineString:
      type: object
      required:
        - type
        - coordinates
      properties:
        type:
          type: string
          enum:
            - MultiLineString
          description: The type of the geometry.
        coordinates:
          type: array
          items:
            type: array
            items:
              type: array
              items:
                type: number
                format: double
          description: An array of LineString coordinate arrays.
      description: GeoJSON MultiLineString geometry.
    iov42.Core.Model.GeoJSON.MultiPoint:
      type: object
      required:
        - type
        - coordinates
      properties:
        type:
          type: string
          enum:
            - MultiPoint
          description: The type of the geometry.
        coordinates:
          type: array
          items:
            type: array
            items:
              type: number
              format: double
          description: An array of positions.
      description: GeoJSON MultiPoint geometry.
    iov42.Core.Model.GeoJSON.MultiPolygon:
      type: object
      required:
        - type
        - coordinates
      properties:
        type:
          type: string
          enum:
            - MultiPolygon
          description: The type of the geometry.
        coordinates:
          type: array
          items:
            type: array
            items:
              type: array
              items:
                type: array
                items:
                  type: number
                  format: double
          description: An array of Polygon coordinate arrays.
      description: GeoJSON MultiPolygon geometry.
    iov42.Core.Model.GeoJSON.Point:
      type: object
      required:
        - type
        - coordinates
      properties:
        type:
          type: string
          enum:
            - Point
          description: The type of the geometry.
        coordinates:
          type: array
          items:
            type: number
            format: double
          description: A single position.
      description: GeoJSON Point geometry.
    iov42.Core.Model.GeoJSON.Polygon:
      type: object
      required:
        - type
        - coordinates
      properties:
        type:
          type: string
          enum:
            - Polygon
          description: The type of the geometry.
        coordinates:
          type: array
          items:
            type: array
            items:
              type: array
              items:
                type: number
                format: double
          description: An array of linear ring coordinate arrays.
      description: GeoJSON Polygon geometry.
    iov42.Core.Paging.Page:
      type: object
      required:
        - size
        - page
        - totalElements
        - totalPages
      properties:
        size:
          type: integer
          format: int32
        page:
          type: integer
          format: int32
        totalElements:
          type: integer
          format: int32
        totalPages:
          type: integer
          format: int32
    iov42.Core.Responses.NullResponse:
      type: object
      allOf:
        - $ref: '#/components/schemas/TypeSpec.Http.NoContentResponse'
  securitySchemes:
    ApiKeyAuth:
      type: apiKey
      in: header
      name: X-API-Key
servers:
  - url: https://api.uat.interu.io
    description: UAT
    variables: {}
x-tagGroups:
  - name: Assessment
    tags:
      - Validation
  - name: Common
    tags:
      - Base Units
      - Country List
      - Standards
  - name: Config
    tags:
      - Countries
      - Document Types
      - Location Types
      - Process Types
  - name: Evidence
    tags:
      - Attachments
      - Certificates
      - Documents
  - name: Integration
    tags:
      - EUDR
  - name: Static
    tags:
      - Connections
      - Locations
      - Materials
      - Products
  - name: Transactional
    tags:
      - Deliveries
      - Items
      - Orders
      - Processes
  - name: Workflow
    tags:
      - Outbound Delivery Workflow
      - Order Workflow
  - name: Reports
    tags:
      - PointOfOrigin
