> ## 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 material conversion config



## OpenAPI

````yaml /openapi.json get /material-conversion-configs/{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:
  /material-conversion-configs/{id}:
    get:
      tags:
        - Material Conversion Configs
      summary: Get a material conversion config
      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: id
          required: true
          in: path
          schema:
            type: string
            example: mcvc_01kyaas94dty6shm2d0j7zw9v8
      responses:
        '200':
          description: Material conversion config with its fully hydrated active version.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/MaterialConversionConfigResponse'
        '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:
    MaterialConversionConfigResponse:
      type: object
      properties:
        id:
          type: string
          example: mcvc_01kyaas94dty6shm2d0j7zw9v8
          description: The ID of the config.
        site:
          description: The site that owns this config.
          allOf:
            - $ref: '#/components/schemas/SiteRef'
        created_at:
          type: string
          format: date-time
          example: '2026-01-15T08:00:00Z'
          description: When this config was created.
        active_version:
          description: >-
            The currently active version of the config, including its full
            configuration.
          allOf:
            - $ref: '#/components/schemas/MaterialConversionConfigVersion'
      required:
        - id
        - site
        - created_at
        - active_version
    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
    SiteRef:
      type: object
      properties:
        id:
          type: string
          example: ste_01k8g7aec6dt5zrtamc72ww446
          description: The ID of the site.
        external_id:
          type: string
          nullable: true
          example: SITE-EXT-0001
          description: Optional external ID of the site.
      description: Reference to a site.
      required:
        - id
        - external_id
    MaterialConversionConfigVersion:
      type: object
      properties:
        id:
          type: string
          example: mcvcv_01krxsm2pxdgygx26jbyv4ztjy
          description: The ID of the config version.
        config_id:
          type: string
          example: mcvc_01kyaas94dty6shm2d0j7zw9v8
          description: The ID of the config this version belongs to.
        name:
          type: string
          example: Pyrolysis
          description: Human-readable name of the config version.
        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 conversion and its containers are configured as one
            unified flow. When `true`, `data_point_configs` spans the whole flow
            (conversion step, input and output containers) and creates take one
            flat `data_points` array. When `false`, `input_configs` and
            `output_configs` list the container configs to describe input and
            output containers against.
        data_point_configs:
          description: >-
            Data points that can be set on conversions created from this config.
            For unified configs this spans the whole flow, including the input
            and output containers' data points.
          type: array
          items:
            $ref: '#/components/schemas/DataPointConfig'
        input_configs:
          description: >-
            Only present when `unified` is `false`: the container configs new
            input containers are described against (via `input_containers` on
            create).
          type: array
          items:
            $ref: '#/components/schemas/ContainerConfig'
        output_configs:
          description: >-
            Only present when `unified` is `false`: the container configs new
            output containers are described against (via `output_containers` on
            create).
          type: array
          items:
            $ref: '#/components/schemas/ContainerConfig'
      required:
        - id
        - config_id
        - name
        - published_at
        - unified
        - data_point_configs
    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
    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.

````