> ## Documentation Index
> Fetch the complete documentation index at: https://docs.cula.tech/llms.txt
> Use this file to discover all available pages before exploring further.

# Get a specific delivery config version



## OpenAPI

````yaml /openapi.json get /delivery-configs/{id}/versions/{version_id}
openapi: 3.1.0
info:
  title: Cula Tracking API
  version: 0.3.10
servers:
  - url: https://api.demo.cula.earth/tracking/v1
security: []
tags:
  - name: Organisations
    description: ''
  - name: Sites
    description: ''
  - name: Machines
    description: ''
  - name: Machine Variables
    description: ''
  - name: Machine Data Imports
    description: ''
  - name: Delivery Configs
    description: ''
  - name: Deliveries
    description: ''
  - name: Material Sourcing Configs
    description: ''
  - name: Material Sourcings
    description: ''
  - name: Material Conversion Configs
    description: ''
  - name: Material Conversions
    description: ''
  - name: Material Utilization Configs
    description: ''
  - name: Material Utilizations
    description: ''
  - name: Material Batches
    description: ''
  - name: Material Pools
    description: ''
  - name: Material Containers
    description: ''
  - name: Sinks
    description: ''
  - name: Documents
    description: ''
  - name: Webhooks
    description: ''
paths:
  /delivery-configs/{id}/versions/{version_id}:
    get:
      tags:
        - Delivery Configs
      summary: Get a specific delivery config version
      parameters:
        - name: Cula-Organisation-Id
          in: header
          description: >-
            ID of the organisation the request operates on behalf of (e.g.
            `org_...`). Must be an organisation the API client has access to.
          required: true
          schema:
            type: string
            example: org_01k83mfmhgchya944v86ryvhpq
        - name: version_id
          required: true
          in: path
          schema:
            type: string
            example: dlvcv_01kkw6g3ayad6f092rbkbjcaxq
        - name: id
          required: true
          in: path
          schema:
            example: dlvc_01kkygy9cxxqhhr93aw74aycbr
            type: string
      responses:
        '200':
          description: ''
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/DeliveryConfigVersionResponse'
        '400':
          description: Invalid request payload or parameters.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Error'
              example:
                code: bad_request
                message: The field limit must not be greater than 100.
        '401':
          description: Missing or invalid access token.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Error'
              example:
                code: unauthorized
                message: Invalid or expired token
        '404':
          description: Resource not found.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Error'
              example:
                code: not_found
                message: >-
                  Resource with ID xyz_01k56g7aec6dt5zrtamc72vw446 could not be
                  found.
        '500':
          description: Unexpected server error.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Error'
              example:
                code: internal_server_error
                message: Internal server error.
      security:
        - AccessToken: []
components:
  schemas:
    DeliveryConfigVersionResponse:
      type: object
      properties:
        id:
          type: string
          example: dlvcv_01kkw6g3ayad6f092rbkbjcaxq
          description: The ID of the delivery config version.
        config_id:
          type: string
          example: dlvc_01kkygy9cxxqhhr93aw74aycbr
          description: The ID of the delivery config that this version belongs to.
        name:
          type: string
          example: Corn Incoming Delivery
          description: Human-readable name of the delivery config version.
        allows_multiple_legs:
          type: boolean
          example: false
          description: Whether deliveries using this config can have more than one leg.
        published_at:
          type: string
          format: date-time
          example: '2026-01-15T08:00:00Z'
          description: When this version was published.
        unified:
          type: boolean
          example: true
          description: >-
            Whether the delivery and its payload are configured as one unified
            flow. When `true`, `data_point_configs` spans the whole flow
            (delivery and payload container) and creates take one flat
            `data_points` array. When `false`, `payload_configs` lists the
            container configs to describe payload containers against.
        data_point_configs:
          description: >-
            Data points that can be set on deliveries created from this config.
            For unified configs this spans the whole flow, including the payload
            container's data points.
          type: array
          items:
            $ref: '#/components/schemas/DataPointConfig'
        payload_configs:
          description: >-
            Only present when `unified` is `false`: the container configs new
            payload containers are described against (via `payload_containers`
            on create).
          type: array
          items:
            $ref: '#/components/schemas/ContainerConfig'
        payload_config:
          deprecated: true
          description: >-
            Use `data_point_configs` (unified configs) or `payload_configs`
            instead.
          allOf:
            - $ref: '#/components/schemas/DeliveryPayloadConfig'
      required:
        - id
        - config_id
        - name
        - allows_multiple_legs
        - published_at
        - unified
        - data_point_configs
        - payload_config
    Error:
      type: object
      properties:
        code:
          type: string
          example: bad_request
        message:
          type: string
          example: The field limit must not be greater than 100.
      required:
        - code
        - message
    DataPointConfig:
      type: object
      properties:
        id:
          type: string
          example: dptc_01jxdp05c8r7dp4xf89pxcw28q
          description: The ID of the data point config.
        active_version:
          oneOf:
            - $ref: '#/components/schemas/ShortTextDataPointConfigVersion'
              title: short_text
            - $ref: '#/components/schemas/LongTextDataPointConfigVersion'
              title: long_text
            - $ref: '#/components/schemas/MultiTextDataPointConfigVersion'
              title: multi_text
            - $ref: '#/components/schemas/NumberDataPointConfigVersion'
              title: number
            - $ref: '#/components/schemas/PercentageDataPointConfigVersion'
              title: percentage
            - $ref: '#/components/schemas/AmountDataPointConfigVersion'
              title: amount
            - $ref: '#/components/schemas/TimestampDataPointConfigVersion'
              title: timestamp
            - $ref: '#/components/schemas/DurationDataPointConfigVersion'
              title: duration
            - $ref: '#/components/schemas/BooleanDataPointConfigVersion'
              title: boolean
            - $ref: '#/components/schemas/MaterialDataPointConfigVersion'
              title: material
            - $ref: '#/components/schemas/MaterialBatchIdDataPointConfigVersion'
              title: material_batch
            - $ref: '#/components/schemas/ContainerTypeDataPointConfigVersion'
              title: container_type
            - $ref: '#/components/schemas/MaterialPoolDataPointConfigVersion'
              title: material_pool
          discriminator:
            propertyName: type
            mapping:
              short_text:
                $ref: '#/components/schemas/ShortTextDataPointConfigVersion'
              long_text:
                $ref: '#/components/schemas/LongTextDataPointConfigVersion'
              multi_text:
                $ref: '#/components/schemas/MultiTextDataPointConfigVersion'
              number:
                $ref: '#/components/schemas/NumberDataPointConfigVersion'
              percentage:
                $ref: '#/components/schemas/PercentageDataPointConfigVersion'
              amount:
                $ref: '#/components/schemas/AmountDataPointConfigVersion'
              timestamp:
                $ref: '#/components/schemas/TimestampDataPointConfigVersion'
              duration:
                $ref: '#/components/schemas/DurationDataPointConfigVersion'
              boolean:
                $ref: '#/components/schemas/BooleanDataPointConfigVersion'
              material:
                $ref: '#/components/schemas/MaterialDataPointConfigVersion'
              material_batch:
                $ref: '#/components/schemas/MaterialBatchIdDataPointConfigVersion'
              container_type:
                $ref: '#/components/schemas/ContainerTypeDataPointConfigVersion'
              material_pool:
                $ref: '#/components/schemas/MaterialPoolDataPointConfigVersion'
      description: A data point config and its active version.
      required:
        - id
        - active_version
    ContainerConfig:
      type: object
      properties:
        id:
          type: string
          example: mcnc_01k102qfrwthwk6dsggr9y8evn
          description: >-
            The ID of the container config. Reference it from `config_id` when
            describing a new container in a create request.
        name:
          type: string
          example: Big Bag
          description: The human-readable name of the container config.
        data_point_configs:
          description: >-
            The data point configs of the config's active version. Containers
            based on this config carry these data points.
          type: array
          items:
            $ref: '#/components/schemas/DataPointConfig'
      description: >-
        A container config: the blueprint containers of a flow are based on,
        including the data points they carry.
      required:
        - id
        - name
        - data_point_configs
    DeliveryPayloadConfig:
      type: object
      properties:
        data_point_configs:
          description: >-
            Data points that will be set on payload containers created by the
            delivery.
          type: array
          items:
            $ref: '#/components/schemas/DataPointConfig'
      required:
        - data_point_configs
    ShortTextDataPointConfigVersion:
      type: object
      properties:
        id:
          type: string
          example: dptcv_01kfxe6xgmw15gsf204jwj90g5
          description: The ID of the data point config version.
        name:
          type: string
          example: Weight gross
          description: The human-readable name of the data point as it appears in the UI.
        is_required:
          type: boolean
          example: true
          description: Whether a value must be provided for this data point.
        accepts_input:
          type: boolean
          example: true
          description: Whether this data point accepts user-submitted values.
        type:
          type: string
          enum:
            - short_text
          description: >-
            The type of the data point. Determines value format, validation
            rules and selectable options.
        validation:
          nullable: true
          description: Validation rules for the data point value.
          type: object
          allOf:
            - $ref: '#/components/schemas/TextValidation'
        options:
          nullable: true
          description: Selectable values and their labels for the data point value.
          type: array
          items:
            $ref: '#/components/schemas/StringSelectOption'
        default_value:
          type: string
          nullable: true
          description: Default value pre-filled if no input is provided.
        default_input_value:
          type: string
          nullable: true
          deprecated: true
          description: >-
            @deprecated Use `default_value` instead. Default value pre-filled if
            no input is provided.
      description: Data point that stores a single line of text.
      required:
        - id
        - name
        - is_required
        - accepts_input
        - type
        - validation
        - options
        - default_value
        - default_input_value
    LongTextDataPointConfigVersion:
      type: object
      properties:
        id:
          type: string
          example: dptcv_01kfxe6xgmw15gsf204jwj90g5
          description: The ID of the data point config version.
        name:
          type: string
          example: Weight gross
          description: The human-readable name of the data point as it appears in the UI.
        is_required:
          type: boolean
          example: true
          description: Whether a value must be provided for this data point.
        accepts_input:
          type: boolean
          example: true
          description: Whether this data point accepts user-submitted values.
        type:
          type: string
          enum:
            - long_text
          description: >-
            The type of the data point. Determines value format, validation
            rules and selectable options.
        validation:
          nullable: true
          description: Validation rules for the data point value.
          type: object
          allOf:
            - $ref: '#/components/schemas/TextValidation'
        default_value:
          type: string
          nullable: true
          description: Default value pre-filled if no input is provided.
        default_input_value:
          type: string
          nullable: true
          deprecated: true
          description: >-
            @deprecated Use `default_value` instead. Default value pre-filled if
            no input is provided.
      description: Data point that stores multiple lines of text.
      required:
        - id
        - name
        - is_required
        - accepts_input
        - type
        - validation
        - default_value
        - default_input_value
    MultiTextDataPointConfigVersion:
      type: object
      properties:
        id:
          type: string
          example: dptcv_01kfxe6xgmw15gsf204jwj90g5
          description: The ID of the data point config version.
        name:
          type: string
          example: Weight gross
          description: The human-readable name of the data point as it appears in the UI.
        is_required:
          type: boolean
          example: true
          description: Whether a value must be provided for this data point.
        accepts_input:
          type: boolean
          example: true
          description: Whether this data point accepts user-submitted values.
        type:
          type: string
          enum:
            - multi_text
          description: >-
            The type of the data point. Determines value format, validation
            rules and selectable options.
        validation:
          nullable: true
          description: Validation rules for the data point value.
          type: object
          allOf:
            - $ref: '#/components/schemas/MultiTextValidation'
        options:
          nullable: true
          description: Selectable values and their labels for the data point value.
          type: array
          items:
            $ref: '#/components/schemas/StringSelectOption'
        default_value:
          nullable: true
          description: Default value pre-filled if no input is provided.
          type: array
          items:
            type: string
        default_input_value:
          nullable: true
          deprecated: true
          description: >-
            @deprecated Use `default_value` instead. Default value pre-filled if
            no input is provided.
          type: array
          items:
            type: string
      description: Data point that stores multiple text items.
      required:
        - id
        - name
        - is_required
        - accepts_input
        - type
        - validation
        - options
        - default_value
        - default_input_value
    NumberDataPointConfigVersion:
      type: object
      properties:
        id:
          type: string
          example: dptcv_01kfxe6xgmw15gsf204jwj90g5
          description: The ID of the data point config version.
        name:
          type: string
          example: Weight gross
          description: The human-readable name of the data point as it appears in the UI.
        is_required:
          type: boolean
          example: true
          description: Whether a value must be provided for this data point.
        accepts_input:
          type: boolean
          example: true
          description: Whether this data point accepts user-submitted values.
        type:
          type: string
          enum:
            - number
          description: >-
            The type of the data point. Determines value format, validation
            rules and selectable options.
        validation:
          nullable: true
          description: Validation rules for the data point value.
          type: object
          allOf:
            - $ref: '#/components/schemas/NumberRangeValidation'
        options:
          nullable: true
          description: Selectable values and their labels for the data point value.
          type: array
          items:
            $ref: '#/components/schemas/NumberSelectOption'
        default_value:
          type: number
          nullable: true
          description: Default value pre-filled if no input is provided.
        default_input_value:
          type: number
          nullable: true
          deprecated: true
          description: >-
            @deprecated Use `default_value` instead. Default value pre-filled if
            no input is provided.
      description: Data point that stores a number.
      required:
        - id
        - name
        - is_required
        - accepts_input
        - type
        - validation
        - options
        - default_value
        - default_input_value
    PercentageDataPointConfigVersion:
      type: object
      properties:
        id:
          type: string
          example: dptcv_01kfxe6xgmw15gsf204jwj90g5
          description: The ID of the data point config version.
        name:
          type: string
          example: Weight gross
          description: The human-readable name of the data point as it appears in the UI.
        is_required:
          type: boolean
          example: true
          description: Whether a value must be provided for this data point.
        accepts_input:
          type: boolean
          example: true
          description: Whether this data point accepts user-submitted values.
        type:
          type: string
          enum:
            - percentage
          description: >-
            The type of the data point. Determines value format, validation
            rules and selectable options.
        validation:
          nullable: true
          description: Validation rules for the data point value.
          type: object
          allOf:
            - $ref: '#/components/schemas/NumberRangeValidation'
        default_value:
          type: number
          nullable: true
          description: Default value pre-filled if no input is provided.
        default_input_value:
          type: number
          nullable: true
          deprecated: true
          description: >-
            @deprecated Use `default_value` instead. Default value pre-filled if
            no input is provided.
      description: Data point that stores a percentage (0..1 scale).
      required:
        - id
        - name
        - is_required
        - accepts_input
        - type
        - validation
        - default_value
        - default_input_value
    AmountDataPointConfigVersion:
      type: object
      properties:
        id:
          type: string
          example: dptcv_01kfxe6xgmw15gsf204jwj90g5
          description: The ID of the data point config version.
        name:
          type: string
          example: Weight gross
          description: The human-readable name of the data point as it appears in the UI.
        is_required:
          type: boolean
          example: true
          description: Whether a value must be provided for this data point.
        accepts_input:
          type: boolean
          example: true
          description: Whether this data point accepts user-submitted values.
        type:
          type: string
          enum:
            - amount
          description: >-
            The type of the data point. Determines value format, validation
            rules and selectable options.
        accepted_units:
          example:
            - kg
            - t
            - lbs
          description: >-
            Units accepted for this amount. A submitted value's `unit` must be
            one of these.
          type: array
          items:
            type: string
        validation:
          nullable: true
          description: Validation rules for the data point value.
          type: object
          allOf:
            - $ref: '#/components/schemas/AmountRangeValidation'
        options:
          nullable: true
          description: Selectable values and their labels for the data point value.
          type: array
          items:
            $ref: '#/components/schemas/AmountSelectOption'
        default_value:
          nullable: true
          description: Default value pre-filled if no input is provided.
          type: object
          allOf:
            - $ref: '#/components/schemas/AmountValue'
        default_input_value:
          nullable: true
          deprecated: true
          description: >-
            @deprecated Use `default_value` instead. Default value pre-filled if
            no input is provided.
          type: object
          allOf:
            - $ref: '#/components/schemas/AmountValue'
      description: >-
        Data point that stores an arbitrary amount, i.e. a combination of a
        value and a unit.
      required:
        - id
        - name
        - is_required
        - accepts_input
        - type
        - accepted_units
        - validation
        - options
        - default_value
        - default_input_value
    TimestampDataPointConfigVersion:
      type: object
      properties:
        id:
          type: string
          example: dptcv_01kfxe6xgmw15gsf204jwj90g5
          description: The ID of the data point config version.
        name:
          type: string
          example: Weight gross
          description: The human-readable name of the data point as it appears in the UI.
        is_required:
          type: boolean
          example: true
          description: Whether a value must be provided for this data point.
        accepts_input:
          type: boolean
          example: true
          description: Whether this data point accepts user-submitted values.
        type:
          type: string
          enum:
            - timestamp
          description: >-
            The type of the data point. Determines value format, validation
            rules and selectable options.
        validation:
          nullable: true
          description: Validation rules for the data point value.
          type: object
          allOf:
            - $ref: '#/components/schemas/TimestampValidation'
        default_value:
          type: string
          format: date-time
          nullable: true
          description: Default value pre-filled if no input is provided.
        default_input_value:
          type: string
          format: date-time
          nullable: true
          deprecated: true
          description: >-
            @deprecated Use `default_value` instead. Default value pre-filled if
            no input is provided.
      description: Data point that stores a timestamp (ISO 8601 string).
      required:
        - id
        - name
        - is_required
        - accepts_input
        - type
        - validation
        - default_value
        - default_input_value
    DurationDataPointConfigVersion:
      type: object
      properties:
        id:
          type: string
          example: dptcv_01kfxe6xgmw15gsf204jwj90g5
          description: The ID of the data point config version.
        name:
          type: string
          example: Weight gross
          description: The human-readable name of the data point as it appears in the UI.
        is_required:
          type: boolean
          example: true
          description: Whether a value must be provided for this data point.
        accepts_input:
          type: boolean
          example: true
          description: Whether this data point accepts user-submitted values.
        type:
          type: string
          enum:
            - duration
          description: >-
            The type of the data point. Determines value format, validation
            rules and selectable options.
        validation:
          nullable: true
          description: Validation rules for the data point value.
          type: object
          allOf:
            - $ref: '#/components/schemas/NumberRangeValidation'
        default_value:
          type: number
          nullable: true
          description: Default value pre-filled if no input is provided.
        default_input_value:
          type: number
          nullable: true
          deprecated: true
          description: >-
            @deprecated Use `default_value` instead. Default value pre-filled if
            no input is provided.
      description: Data point that stores a duration in milliseconds.
      required:
        - id
        - name
        - is_required
        - accepts_input
        - type
        - validation
        - default_value
        - default_input_value
    BooleanDataPointConfigVersion:
      type: object
      properties:
        id:
          type: string
          example: dptcv_01kfxe6xgmw15gsf204jwj90g5
          description: The ID of the data point config version.
        name:
          type: string
          example: Weight gross
          description: The human-readable name of the data point as it appears in the UI.
        is_required:
          type: boolean
          example: true
          description: Whether a value must be provided for this data point.
        accepts_input:
          type: boolean
          example: true
          description: Whether this data point accepts user-submitted values.
        type:
          type: string
          enum:
            - boolean
          description: >-
            The type of the data point. Determines value format, validation
            rules and selectable options.
        validation:
          nullable: true
          description: Validation rules for the data point value.
          type: object
          allOf:
            - $ref: '#/components/schemas/BooleanValidation'
        default_value:
          type: boolean
          nullable: true
          description: Default value pre-filled if no input is provided.
        default_input_value:
          type: boolean
          nullable: true
          deprecated: true
          description: >-
            @deprecated Use `default_value` instead. Default value pre-filled if
            no input is provided.
      description: Data point that stores a boolean value.
      required:
        - id
        - name
        - is_required
        - accepts_input
        - type
        - validation
        - default_value
        - default_input_value
    MaterialDataPointConfigVersion:
      type: object
      properties:
        id:
          type: string
          example: dptcv_01kfxe6xgmw15gsf204jwj90g5
          description: The ID of the data point config version.
        name:
          type: string
          example: Weight gross
          description: The human-readable name of the data point as it appears in the UI.
        is_required:
          type: boolean
          example: true
          description: Whether a value must be provided for this data point.
        accepts_input:
          type: boolean
          example: true
          description: Whether this data point accepts user-submitted values.
        type:
          type: string
          enum:
            - material
          description: >-
            The type of the data point. Determines value format, validation
            rules and selectable options.
        options:
          nullable: true
          description: Selectable values and their labels for the data point value.
          type: array
          items:
            $ref: '#/components/schemas/StringSelectOption'
        default_value:
          type: string
          nullable: true
          description: Default value pre-filled if no input is provided.
        default_input_value:
          type: string
          nullable: true
          deprecated: true
          description: >-
            @deprecated Use `default_value` instead. Default value pre-filled if
            no input is provided.
      description: >-
        Data point that stores a material. Available materials are configured
        within Cula.
      required:
        - id
        - name
        - is_required
        - accepts_input
        - type
        - options
        - default_value
        - default_input_value
    MaterialBatchIdDataPointConfigVersion:
      type: object
      properties:
        id:
          type: string
          example: dptcv_01kfxe6xgmw15gsf204jwj90g5
          description: The ID of the data point config version.
        name:
          type: string
          example: Weight gross
          description: The human-readable name of the data point as it appears in the UI.
        is_required:
          type: boolean
          example: true
          description: Whether a value must be provided for this data point.
        accepts_input:
          type: boolean
          example: true
          description: Whether this data point accepts user-submitted values.
        type:
          type: string
          enum:
            - material_batch
          description: >-
            The type of the data point. Determines value format, validation
            rules and selectable options.
      description: Data point that stores a reference to a material batch.
      required:
        - id
        - name
        - is_required
        - accepts_input
        - type
    ContainerTypeDataPointConfigVersion:
      type: object
      properties:
        id:
          type: string
          example: dptcv_01kfxe6xgmw15gsf204jwj90g5
          description: The ID of the data point config version.
        name:
          type: string
          example: Weight gross
          description: The human-readable name of the data point as it appears in the UI.
        is_required:
          type: boolean
          example: true
          description: Whether a value must be provided for this data point.
        accepts_input:
          type: boolean
          example: true
          description: Whether this data point accepts user-submitted values.
        type:
          type: string
          enum:
            - container_type
          description: >-
            The type of the data point. Determines value format, validation
            rules and selectable options.
        options:
          nullable: true
          description: Selectable values and their labels for the data point value.
          type: array
          items:
            $ref: '#/components/schemas/StringSelectOption'
        default_value:
          type: string
          nullable: true
          description: Default value pre-filled if no input is provided.
        default_input_value:
          type: string
          nullable: true
          deprecated: true
          description: >-
            @deprecated Use `default_value` instead. Default value pre-filled if
            no input is provided.
      description: >-
        Data point that stores a container type. Available container types are
        configured within Cula.
      required:
        - id
        - name
        - is_required
        - accepts_input
        - type
        - options
        - default_value
        - default_input_value
    MaterialPoolDataPointConfigVersion:
      type: object
      properties:
        id:
          type: string
          example: dptcv_01kfxe6xgmw15gsf204jwj90g5
          description: The ID of the data point config version.
        name:
          type: string
          example: Weight gross
          description: The human-readable name of the data point as it appears in the UI.
        is_required:
          type: boolean
          example: true
          description: Whether a value must be provided for this data point.
        accepts_input:
          type: boolean
          example: true
          description: Whether this data point accepts user-submitted values.
        type:
          type: string
          enum:
            - material_pool
          description: >-
            The type of the data point. Determines value format, validation
            rules and selectable options.
        options:
          nullable: true
          description: Selectable values and their labels for the data point value.
          type: array
          items:
            $ref: '#/components/schemas/StringSelectOption'
        default_value:
          type: string
          nullable: true
          description: Default value pre-filled if no input is provided.
      description: >-
        Data point that selects the material pool a container transacts with.
        Selectable pools are the pools of the site the flow executes at.
      required:
        - id
        - name
        - is_required
        - accepts_input
        - type
        - options
        - default_value
    TextValidation:
      type: object
      properties:
        max_length:
          type: integer
          nullable: true
          minimum: 0
          example: 280
          description: Maximum number of characters.
      required:
        - max_length
    StringSelectOption:
      type: object
      properties:
        label:
          type: string
          description: Human-readable label.
        value:
          type: string
          description: Value to submit as input.
      required:
        - label
        - value
    MultiTextValidation:
      type: object
      properties:
        min_number_of_items:
          type: integer
          nullable: true
          minimum: 0
          example: 1
          description: Minimum number of items that must be provided.
      required:
        - min_number_of_items
    NumberRangeValidation:
      type: object
      properties:
        min:
          type: number
          nullable: true
          example: 0
          description: Minimum allowed value (inclusive).
        max:
          type: number
          nullable: true
          example: 1
          description: Maximum allowed value (inclusive).
      required:
        - min
        - max
    NumberSelectOption:
      type: object
      properties:
        label:
          type: string
          description: Human-readable label.
        value:
          type: number
          description: Value to submit as input.
      required:
        - label
        - value
    AmountRangeValidation:
      type: object
      properties:
        min:
          nullable: true
          description: Minimum allowed amount (inclusive).
          type: object
          allOf:
            - $ref: '#/components/schemas/AmountValue'
        max:
          nullable: true
          description: Maximum allowed amount (inclusive).
          type: object
          allOf:
            - $ref: '#/components/schemas/AmountValue'
      required:
        - min
        - max
    AmountSelectOption:
      type: object
      properties:
        label:
          type: string
          description: Human-readable label.
        value:
          description: Value to submit as input.
          allOf:
            - $ref: '#/components/schemas/AmountValue'
      required:
        - label
        - value
    AmountValue:
      type: object
      properties:
        value:
          type: number
          example: 50
        unit:
          type: string
          example: kg
          description: Unit the amount is expressed in.
      required:
        - value
        - unit
    TimestampValidation:
      type: object
      properties:
        min:
          type: string
          format: date-time
          nullable: true
          description: Earliest allowed timestamp (inclusive).
        max:
          type: string
          format: date-time
          nullable: true
          description: Latest allowed timestamp (inclusive).
        must_be_in_the_past:
          type: boolean
          nullable: true
          description: The timestamp must be in the past.
        must_be_in_the_future:
          type: boolean
          nullable: true
          description: The timestamp must be in the future.
      required:
        - min
        - max
        - must_be_in_the_past
        - must_be_in_the_future
    BooleanValidation:
      type: object
      properties:
        must_be_true:
          type: boolean
          nullable: true
          description: The value must be true.
        must_be_false:
          type: boolean
          nullable: true
          description: The value must be false.
      required:
        - must_be_true
        - must_be_false
  securitySchemes:
    AccessToken:
      type: oauth2
      flows:
        clientCredentials:
          tokenUrl: https://auth.demo.cula.earth/oauth2/token
          scopes: {}
      description: >-
        OAuth 2.0 client credentials. Exchange your client_id and client_secret
        for an access token scoped to the organisation that provides data
        access.

````