---
title: "Create south connector"
method: POST
path: "/api/south"
tags: ["South Connectors"]
---

# Create south connector

`POST /api/south`

Creates a new south connector with the provided configuration

## Query parameters

- `duplicate` string, required

## Request body

- union — Command Data Transfer Object for creating or updating a South connector. Used as the request body for South connector creation/update endpoints.
  - SouthConnectorADSCommandDTO — South connector command for Beckhoff ADS.
    - `name` string, required — The name of the South connector.
    - `type` 'ads', required — The type of the South connector.
    - `description` string, required — Description of the South connector's purpose.
    - `enabled` boolean, required — Whether the South connector should be enabled.
    - `settings` SouthADSSettings, required
      - `netId` string, required
      - `port` number, double, required
      - `routerAddress` string, nullable, required
      - `routerTcpPort` number, double, nullable, required
      - `clientAmsNetId` string, nullable, required
      - `clientAdsPort` number, double, nullable, required
      - `retryInterval` number, double, required
      - `plcName` string, nullable, required
      - `enumAsText` 'text' | 'integer', required
      - `boolAsText` 'text' | 'integer', required
      - `structureFiltering` SouthADSSettingsStructureFiltering[], nullable, required
        - `name` string, required
        - `fields` string, required
    - `items` SouthConnectorADSItemCommandDTO[], required — List of items (data points) to configure for this connector.
      - `id` string, nullable, required — The ID of the item (null when creating a new item).
      - `enabled` boolean, required — Whether this item should be enabled.
      - `name` string, required — The name of the item.
      - `settings` SouthADSItemSettings, required
        - `address` string, required
      - `scanModeId` string, nullable, required — The ID of the scan mode to use for this item. Null when the scan mode should be determined by the system.
      - `scanModeName` string, nullable, required — The name of the scan mode to use when ID is not available. Null when not specifying by name.
      - `groupId` string, nullable, required — The ID of the group this item belongs to. Null when the item is not in any group.
      - `groupName` string, nullable, required — The name of the group this item belongs to. Used when importing from CSV where group IDs are not available. Null when the item is not in any group.
      - `syncWithGroup` boolean, required — Whether this item syncs its historian settings with its group. When true, historian fields are inherited from the group.
      - `maxReadInterval` number, double, nullable, required — Maximum read interval in seconds for historical queries. Only applicable for connectors with historian capabilities. When null and item is in a group, inherits from group settings.
      - `readDelay` number, double, nullable, required — Read delay in milliseconds before querying historical data. Only applicable for connectors with historian capabilities. When null and item is in a group, inherits from group settings.
      - `startTimeOffset` number, double, nullable, required — Offset in milliseconds applied to the start of the history query interval. Only applicable for connectors with historian capabilities. When null and item is in a group, inherits from group settings. Negative values extend the window backwards (equivalent to the old overlap behaviour).
      - `endTimeOffset` number, double, nullable, required — Offset in milliseconds applied to the end of the history query interval. Only applicable for connectors with historian capabilities. When null and item is in a group, inherits from group settings. If the resulting end time is not after the effective start time, the query is skipped.
      - `recoveryStrategy` 'oldest' | 'newest', required — Recovery strategy used when a south connector reconnects after a long disconnection. - 'oldest': fill the gap from oldest to newest (default behaviour). - 'newest': fill the gap from newest to oldest so that recent data arrives first.
    - `groups` SouthItemGroupCommandDTO[], required — List of groups used to gather items
      - `id` string, nullable, required — The ID of the group (null when creating a new group).
      - `standardSettings` object, required
        - `scanModeId` string, required — The ID of the scan mode to use for this group.
        - `name` string, required — The name of the group.
      - `historySettings` object, required
        - `recoveryStrategy` 'oldest' | 'newest', required — Recovery strategy used when a south connector reconnects after a long disconnection. - 'oldest': fill the gap from oldest to newest (default behaviour). - 'newest': fill the gap from newest to oldest so that recent data arrives first.
        - `readDelay` number, double, nullable, required — Read delay in milliseconds before querying historical data.
        - `maxReadInterval` number, double, nullable, required — Maximum read interval in seconds for historical queries.
        - `endTimeOffset` number, double, nullable, required — Offset in milliseconds applied to the end of the history query interval. If the resulting end time is not after the effective start time, the query is skipped.
        - `startTimeOffset` number, double, nullable, required — Offset in milliseconds applied to the start of the history query interval. Negative values extend the window backwards (equivalent to the old overlap behaviour).
  - SouthConnectorFolderScannerCommandDTO — South connector command for the Folder Scanner.
    - `name` string, required — The name of the South connector.
    - `type` 'folder-scanner', required — The type of the South connector.
    - `description` string, required — Description of the South connector's purpose.
    - `enabled` boolean, required — Whether the South connector should be enabled.
    - `settings` SouthFolderScannerSettings, required
      - `inputFolder` string, required
      - `compression` boolean, required
      - `username` string, nullable
      - `password` string, nullable
      - `domain` string, nullable
    - `items` SouthConnectorFolderScannerItemCommandDTO[], required — List of items (data points) to configure for this connector.
      - `id` string, nullable, required — The ID of the item (null when creating a new item).
      - `enabled` boolean, required — Whether this item should be enabled.
      - `name` string, required — The name of the item.
      - `settings` SouthFolderScannerItemSettings, required
        - `regex` string, required
        - `minAge` number, double, required
        - `preserveFiles` boolean, required
        - `ignoreModifiedDate` boolean
        - `maxFiles` number, double, required
        - `maxSize` number, double, required
        - `recursive` boolean, required
      - `scanModeId` string, nullable, required — The ID of the scan mode to use for this item. Null when the scan mode should be determined by the system.
      - `scanModeName` string, nullable, required — The name of the scan mode to use when ID is not available. Null when not specifying by name.
      - `groupId` string, nullable, required — The ID of the group this item belongs to. Null when the item is not in any group.
      - `groupName` string, nullable, required — The name of the group this item belongs to. Used when importing from CSV where group IDs are not available. Null when the item is not in any group.
      - `syncWithGroup` boolean, required — Whether this item syncs its historian settings with its group. When true, historian fields are inherited from the group.
      - `maxReadInterval` number, double, nullable, required — Maximum read interval in seconds for historical queries. Only applicable for connectors with historian capabilities. When null and item is in a group, inherits from group settings.
      - `readDelay` number, double, nullable, required — Read delay in milliseconds before querying historical data. Only applicable for connectors with historian capabilities. When null and item is in a group, inherits from group settings.
      - `startTimeOffset` number, double, nullable, required — Offset in milliseconds applied to the start of the history query interval. Only applicable for connectors with historian capabilities. When null and item is in a group, inherits from group settings. Negative values extend the window backwards (equivalent to the old overlap behaviour).
      - `endTimeOffset` number, double, nullable, required — Offset in milliseconds applied to the end of the history query interval. Only applicable for connectors with historian capabilities. When null and item is in a group, inherits from group settings. If the resulting end time is not after the effective start time, the query is skipped.
      - `recoveryStrategy` 'oldest' | 'newest', required — Recovery strategy used when a south connector reconnects after a long disconnection. - 'oldest': fill the gap from oldest to newest (default behaviour). - 'newest': fill the gap from newest to oldest so that recent data arrives first.
    - `groups` SouthItemGroupCommandDTO[], required — List of groups used to gather items
      - `id` string, nullable, required — The ID of the group (null when creating a new group).
      - `standardSettings` object, required
        - `scanModeId` string, required — The ID of the scan mode to use for this group.
        - `name` string, required — The name of the group.
      - `historySettings` object, required
        - `recoveryStrategy` 'oldest' | 'newest', required — Recovery strategy used when a south connector reconnects after a long disconnection. - 'oldest': fill the gap from oldest to newest (default behaviour). - 'newest': fill the gap from newest to oldest so that recent data arrives first.
        - `readDelay` number, double, nullable, required — Read delay in milliseconds before querying historical data.
        - `maxReadInterval` number, double, nullable, required — Maximum read interval in seconds for historical queries.
        - `endTimeOffset` number, double, nullable, required — Offset in milliseconds applied to the end of the history query interval. If the resulting end time is not after the effective start time, the query is skipped.
        - `startTimeOffset` number, double, nullable, required — Offset in milliseconds applied to the start of the history query interval. Negative values extend the window backwards (equivalent to the old overlap behaviour).
  - SouthConnectorFTPCommandDTO — South connector command for FTP file transfer.
    - `name` string, required — The name of the South connector.
    - `type` 'ftp', required — The type of the South connector.
    - `description` string, required — Description of the South connector's purpose.
    - `enabled` boolean, required — Whether the South connector should be enabled.
    - `settings` SouthFTPSettings, required
      - `host` string, required
      - `port` number, double, required
      - `authentication` 'none' | 'password', required
      - `username` string, nullable
      - `password` string, nullable
      - `compression` boolean, required
      - `retryInterval` number, double, required
    - `items` SouthConnectorFTPItemCommandDTO[], required — List of items (data points) to configure for this connector.
      - `id` string, nullable, required — The ID of the item (null when creating a new item).
      - `enabled` boolean, required — Whether this item should be enabled.
      - `name` string, required — The name of the item.
      - `settings` SouthFTPItemSettings, required
        - `remoteFolder` string, required
        - `regex` string, required
        - `minAge` number, double, required
        - `preserveFiles` boolean, required
        - `ignoreModifiedDate` boolean
        - `maxFiles` number, double, required
        - `maxSize` number, double, required
        - `recursive` boolean, required
      - `scanModeId` string, nullable, required — The ID of the scan mode to use for this item. Null when the scan mode should be determined by the system.
      - `scanModeName` string, nullable, required — The name of the scan mode to use when ID is not available. Null when not specifying by name.
      - `groupId` string, nullable, required — The ID of the group this item belongs to. Null when the item is not in any group.
      - `groupName` string, nullable, required — The name of the group this item belongs to. Used when importing from CSV where group IDs are not available. Null when the item is not in any group.
      - `syncWithGroup` boolean, required — Whether this item syncs its historian settings with its group. When true, historian fields are inherited from the group.
      - `maxReadInterval` number, double, nullable, required — Maximum read interval in seconds for historical queries. Only applicable for connectors with historian capabilities. When null and item is in a group, inherits from group settings.
      - `readDelay` number, double, nullable, required — Read delay in milliseconds before querying historical data. Only applicable for connectors with historian capabilities. When null and item is in a group, inherits from group settings.
      - `startTimeOffset` number, double, nullable, required — Offset in milliseconds applied to the start of the history query interval. Only applicable for connectors with historian capabilities. When null and item is in a group, inherits from group settings. Negative values extend the window backwards (equivalent to the old overlap behaviour).
      - `endTimeOffset` number, double, nullable, required — Offset in milliseconds applied to the end of the history query interval. Only applicable for connectors with historian capabilities. When null and item is in a group, inherits from group settings. If the resulting end time is not after the effective start time, the query is skipped.
      - `recoveryStrategy` 'oldest' | 'newest', required — Recovery strategy used when a south connector reconnects after a long disconnection. - 'oldest': fill the gap from oldest to newest (default behaviour). - 'newest': fill the gap from newest to oldest so that recent data arrives first.
    - `groups` SouthItemGroupCommandDTO[], required — List of groups used to gather items
      - `id` string, nullable, required — The ID of the group (null when creating a new group).
      - `standardSettings` object, required
        - `scanModeId` string, required — The ID of the scan mode to use for this group.
        - `name` string, required — The name of the group.
      - `historySettings` object, required
        - `recoveryStrategy` 'oldest' | 'newest', required — Recovery strategy used when a south connector reconnects after a long disconnection. - 'oldest': fill the gap from oldest to newest (default behaviour). - 'newest': fill the gap from newest to oldest so that recent data arrives first.
        - `readDelay` number, double, nullable, required — Read delay in milliseconds before querying historical data.
        - `maxReadInterval` number, double, nullable, required — Maximum read interval in seconds for historical queries.
        - `endTimeOffset` number, double, nullable, required — Offset in milliseconds applied to the end of the history query interval. If the resulting end time is not after the effective start time, the query is skipped.
        - `startTimeOffset` number, double, nullable, required — Offset in milliseconds applied to the start of the history query interval. Negative values extend the window backwards (equivalent to the old overlap behaviour).
  - SouthConnectorInfluxDBCommandDTO — South connector command for InfluxDB time series database.
    - `name` string, required — The name of the South connector.
    - `type` 'influxdb', required — The type of the South connector.
    - `description` string, required — Description of the South connector's purpose.
    - `enabled` boolean, required — Whether the South connector should be enabled.
    - `settings` SouthInfluxDBSettings, required
      - `version` '1' | '2' | '3', required
      - `host` string
      - `port` number, double
      - `protocol` 'http' | 'https'
      - `database` string
      - `username` string, nullable
      - `password` string, nullable
      - `url` string
      - `token` string, nullable
      - `organisation` string
      - `bucket` string
    - `items` SouthConnectorInfluxDBItemCommandDTO[], required — List of items (data points) to configure for this connector.
      - `id` string, nullable, required — The ID of the item (null when creating a new item).
      - `enabled` boolean, required — Whether this item should be enabled.
      - `name` string, required — The name of the item.
      - `settings` SouthInfluxDBItemSettings, required
        - `query` string, required
        - `requestTimeout` number, double, required
      - `scanModeId` string, nullable, required — The ID of the scan mode to use for this item. Null when the scan mode should be determined by the system.
      - `scanModeName` string, nullable, required — The name of the scan mode to use when ID is not available. Null when not specifying by name.
      - `groupId` string, nullable, required — The ID of the group this item belongs to. Null when the item is not in any group.
      - `groupName` string, nullable, required — The name of the group this item belongs to. Used when importing from CSV where group IDs are not available. Null when the item is not in any group.
      - `syncWithGroup` boolean, required — Whether this item syncs its historian settings with its group. When true, historian fields are inherited from the group.
      - `maxReadInterval` number, double, nullable, required — Maximum read interval in seconds for historical queries. Only applicable for connectors with historian capabilities. When null and item is in a group, inherits from group settings.
      - `readDelay` number, double, nullable, required — Read delay in milliseconds before querying historical data. Only applicable for connectors with historian capabilities. When null and item is in a group, inherits from group settings.
      - `startTimeOffset` number, double, nullable, required — Offset in milliseconds applied to the start of the history query interval. Only applicable for connectors with historian capabilities. When null and item is in a group, inherits from group settings. Negative values extend the window backwards (equivalent to the old overlap behaviour).
      - `endTimeOffset` number, double, nullable, required — Offset in milliseconds applied to the end of the history query interval. Only applicable for connectors with historian capabilities. When null and item is in a group, inherits from group settings. If the resulting end time is not after the effective start time, the query is skipped.
      - `recoveryStrategy` 'oldest' | 'newest', required — Recovery strategy used when a south connector reconnects after a long disconnection. - 'oldest': fill the gap from oldest to newest (default behaviour). - 'newest': fill the gap from newest to oldest so that recent data arrives first.
    - `groups` SouthItemGroupCommandDTO[], required — List of groups used to gather items
      - `id` string, nullable, required — The ID of the group (null when creating a new group).
      - `standardSettings` object, required
        - `scanModeId` string, required — The ID of the scan mode to use for this group.
        - `name` string, required — The name of the group.
      - `historySettings` object, required
        - `recoveryStrategy` 'oldest' | 'newest', required — Recovery strategy used when a south connector reconnects after a long disconnection. - 'oldest': fill the gap from oldest to newest (default behaviour). - 'newest': fill the gap from newest to oldest so that recent data arrives first.
        - `readDelay` number, double, nullable, required — Read delay in milliseconds before querying historical data.
        - `maxReadInterval` number, double, nullable, required — Maximum read interval in seconds for historical queries.
        - `endTimeOffset` number, double, nullable, required — Offset in milliseconds applied to the end of the history query interval. If the resulting end time is not after the effective start time, the query is skipped.
        - `startTimeOffset` number, double, nullable, required — Offset in milliseconds applied to the start of the history query interval. Negative values extend the window backwards (equivalent to the old overlap behaviour).
  - SouthConnectorModbusCommandDTO — South connector command for Modbus.
    - `name` string, required — The name of the South connector.
    - `type` 'modbus', required — The type of the South connector.
    - `description` string, required — Description of the South connector's purpose.
    - `enabled` boolean, required — Whether the South connector should be enabled.
    - `settings` SouthModbusSettings, required
      - `host` string, required
      - `port` number, double, required
      - `connectTimeout` number, double, required
      - `networkTimeout` number, double, required
      - `retryInterval` number, double, required
      - `slaveId` number, double, required
      - `addressOffset` 'modbus' | 'jbus', required
      - `endianness` 'big-endian' | 'little-endian', required
      - `swapBytesInWords` boolean, required
      - `swapWordsInDWords` boolean, required
      - `batchQuery` boolean, required
      - `groupingGap` number, double
    - `items` SouthConnectorModbusItemCommandDTO[], required — List of items (data points) to configure for this connector.
      - `id` string, nullable, required — The ID of the item (null when creating a new item).
      - `enabled` boolean, required — Whether this item should be enabled.
      - `name` string, required — The name of the item.
      - `settings` SouthModbusItemSettings, required
        - `address` string, required
        - `modbusType` 'coil' | 'discrete-input' | 'input-register' | 'holding-register', required
        - `data` SouthModbusItemSettingsData
          - `dataType` 'uint16' | 'int16' | 'uint32' | 'int32' | 'big-uint64' | 'big-int64' | 'float' | 'double' | 'bit', required
          - `bitIndex` number, double
          - `multiplierCoefficient` number, double, required
      - `scanModeId` string, nullable, required — The ID of the scan mode to use for this item. Null when the scan mode should be determined by the system.
      - `scanModeName` string, nullable, required — The name of the scan mode to use when ID is not available. Null when not specifying by name.
      - `groupId` string, nullable, required — The ID of the group this item belongs to. Null when the item is not in any group.
      - `groupName` string, nullable, required — The name of the group this item belongs to. Used when importing from CSV where group IDs are not available. Null when the item is not in any group.
      - `syncWithGroup` boolean, required — Whether this item syncs its historian settings with its group. When true, historian fields are inherited from the group.
      - `maxReadInterval` number, double, nullable, required — Maximum read interval in seconds for historical queries. Only applicable for connectors with historian capabilities. When null and item is in a group, inherits from group settings.
      - `readDelay` number, double, nullable, required — Read delay in milliseconds before querying historical data. Only applicable for connectors with historian capabilities. When null and item is in a group, inherits from group settings.
      - `startTimeOffset` number, double, nullable, required — Offset in milliseconds applied to the start of the history query interval. Only applicable for connectors with historian capabilities. When null and item is in a group, inherits from group settings. Negative values extend the window backwards (equivalent to the old overlap behaviour).
      - `endTimeOffset` number, double, nullable, required — Offset in milliseconds applied to the end of the history query interval. Only applicable for connectors with historian capabilities. When null and item is in a group, inherits from group settings. If the resulting end time is not after the effective start time, the query is skipped.
      - `recoveryStrategy` 'oldest' | 'newest', required — Recovery strategy used when a south connector reconnects after a long disconnection. - 'oldest': fill the gap from oldest to newest (default behaviour). - 'newest': fill the gap from newest to oldest so that recent data arrives first.
    - `groups` SouthItemGroupCommandDTO[], required — List of groups used to gather items
      - `id` string, nullable, required — The ID of the group (null when creating a new group).
      - `standardSettings` object, required
        - `scanModeId` string, required — The ID of the scan mode to use for this group.
        - `name` string, required — The name of the group.
      - `historySettings` object, required
        - `recoveryStrategy` 'oldest' | 'newest', required — Recovery strategy used when a south connector reconnects after a long disconnection. - 'oldest': fill the gap from oldest to newest (default behaviour). - 'newest': fill the gap from newest to oldest so that recent data arrives first.
        - `readDelay` number, double, nullable, required — Read delay in milliseconds before querying historical data.
        - `maxReadInterval` number, double, nullable, required — Maximum read interval in seconds for historical queries.
        - `endTimeOffset` number, double, nullable, required — Offset in milliseconds applied to the end of the history query interval. If the resulting end time is not after the effective start time, the query is skipped.
        - `startTimeOffset` number, double, nullable, required — Offset in milliseconds applied to the start of the history query interval. Negative values extend the window backwards (equivalent to the old overlap behaviour).
  - SouthConnectorMongoDBCommandDTO — South connector command for MongoDB.
    - `name` string, required — The name of the South connector.
    - `type` 'mongodb', required — The type of the South connector.
    - `description` string, required — Description of the South connector's purpose.
    - `enabled` boolean, required — Whether the South connector should be enabled.
    - `settings` SouthMongoDBSettings, required
      - `connectionString` string, required
      - `connectionTimeout` number, double, required
      - `username` string, nullable, required
      - `password` string, nullable, required
    - `items` SouthConnectorMongoDBItemCommandDTO[], required — List of items (data points) to configure for this connector.
      - `id` string, nullable, required — The ID of the item (null when creating a new item).
      - `enabled` boolean, required — Whether this item should be enabled.
      - `name` string, required — The name of the item.
      - `settings` SouthMongoDBItemSettings, required
        - `collection` string, required
        - `queryType` 'find' | 'aggregation', required
        - `query` string, required
        - `sort` string, required
        - `trackingInstant` SouthMongoDBItemSettingsTrackingInstant, required
          - `trackInstant` boolean, required
          - `jsonPath` string
          - `dateTimeInput` SouthMongoDBItemSettingsTrackingInstantDateTimeInput
            - `type` 'string' | 'timestamp' | 'iso-string' | 'unix-epoch' | 'unix-epoch-ms', required
            - `timezone` string — Represents a timezone as an IANA timezone string.
            - `format` string
            - `locale` string
      - `scanModeId` string, nullable, required — The ID of the scan mode to use for this item. Null when the scan mode should be determined by the system.
      - `scanModeName` string, nullable, required — The name of the scan mode to use when ID is not available. Null when not specifying by name.
      - `groupId` string, nullable, required — The ID of the group this item belongs to. Null when the item is not in any group.
      - `groupName` string, nullable, required — The name of the group this item belongs to. Used when importing from CSV where group IDs are not available. Null when the item is not in any group.
      - `syncWithGroup` boolean, required — Whether this item syncs its historian settings with its group. When true, historian fields are inherited from the group.
      - `maxReadInterval` number, double, nullable, required — Maximum read interval in seconds for historical queries. Only applicable for connectors with historian capabilities. When null and item is in a group, inherits from group settings.
      - `readDelay` number, double, nullable, required — Read delay in milliseconds before querying historical data. Only applicable for connectors with historian capabilities. When null and item is in a group, inherits from group settings.
      - `startTimeOffset` number, double, nullable, required — Offset in milliseconds applied to the start of the history query interval. Only applicable for connectors with historian capabilities. When null and item is in a group, inherits from group settings. Negative values extend the window backwards (equivalent to the old overlap behaviour).
      - `endTimeOffset` number, double, nullable, required — Offset in milliseconds applied to the end of the history query interval. Only applicable for connectors with historian capabilities. When null and item is in a group, inherits from group settings. If the resulting end time is not after the effective start time, the query is skipped.
      - `recoveryStrategy` 'oldest' | 'newest', required — Recovery strategy used when a south connector reconnects after a long disconnection. - 'oldest': fill the gap from oldest to newest (default behaviour). - 'newest': fill the gap from newest to oldest so that recent data arrives first.
    - `groups` SouthItemGroupCommandDTO[], required — List of groups used to gather items
      - `id` string, nullable, required — The ID of the group (null when creating a new group).
      - `standardSettings` object, required
        - `scanModeId` string, required — The ID of the scan mode to use for this group.
        - `name` string, required — The name of the group.
      - `historySettings` object, required
        - `recoveryStrategy` 'oldest' | 'newest', required — Recovery strategy used when a south connector reconnects after a long disconnection. - 'oldest': fill the gap from oldest to newest (default behaviour). - 'newest': fill the gap from newest to oldest so that recent data arrives first.
        - `readDelay` number, double, nullable, required — Read delay in milliseconds before querying historical data.
        - `maxReadInterval` number, double, nullable, required — Maximum read interval in seconds for historical queries.
        - `endTimeOffset` number, double, nullable, required — Offset in milliseconds applied to the end of the history query interval. If the resulting end time is not after the effective start time, the query is skipped.
        - `startTimeOffset` number, double, nullable, required — Offset in milliseconds applied to the start of the history query interval. Negative values extend the window backwards (equivalent to the old overlap behaviour).
  - SouthConnectorMQTTCommandDTO — South connector command for MQTT.
    - `name` string, required — The name of the South connector.
    - `type` 'mqtt', required — The type of the South connector.
    - `description` string, required — Description of the South connector's purpose.
    - `enabled` boolean, required — Whether the South connector should be enabled.
    - `settings` SouthMQTTSettings, required
      - `url` string, required
      - `qos` '0' | '1' | '2', required
      - `persistent` boolean
      - `authentication` SouthMQTTSettingsAuthentication, required
        - `type` 'none' | 'basic' | 'cert', required
        - `username` string
        - `password` string, nullable
        - `certFilePath` string
        - `keyFilePath` string
        - `caFilePath` string
      - `rejectUnauthorized` boolean, required
      - `reconnectPeriod` number, double, required
      - `connectTimeout` number, double, required
      - `maxNumberOfMessages` number, double, required
      - `flushMessageTimeout` number, double, required
    - `items` SouthConnectorMQTTItemCommandDTO[], required — List of items (data points) to configure for this connector.
      - `id` string, nullable, required — The ID of the item (null when creating a new item).
      - `enabled` boolean, required — Whether this item should be enabled.
      - `name` string, required — The name of the item.
      - `settings` SouthMQTTItemSettings, required
        - `topic` string, required
      - `scanModeId` string, nullable, required — The ID of the scan mode to use for this item. Null when the scan mode should be determined by the system.
      - `scanModeName` string, nullable, required — The name of the scan mode to use when ID is not available. Null when not specifying by name.
      - `groupId` string, nullable, required — The ID of the group this item belongs to. Null when the item is not in any group.
      - `groupName` string, nullable, required — The name of the group this item belongs to. Used when importing from CSV where group IDs are not available. Null when the item is not in any group.
      - `syncWithGroup` boolean, required — Whether this item syncs its historian settings with its group. When true, historian fields are inherited from the group.
      - `maxReadInterval` number, double, nullable, required — Maximum read interval in seconds for historical queries. Only applicable for connectors with historian capabilities. When null and item is in a group, inherits from group settings.
      - `readDelay` number, double, nullable, required — Read delay in milliseconds before querying historical data. Only applicable for connectors with historian capabilities. When null and item is in a group, inherits from group settings.
      - `startTimeOffset` number, double, nullable, required — Offset in milliseconds applied to the start of the history query interval. Only applicable for connectors with historian capabilities. When null and item is in a group, inherits from group settings. Negative values extend the window backwards (equivalent to the old overlap behaviour).
      - `endTimeOffset` number, double, nullable, required — Offset in milliseconds applied to the end of the history query interval. Only applicable for connectors with historian capabilities. When null and item is in a group, inherits from group settings. If the resulting end time is not after the effective start time, the query is skipped.
      - `recoveryStrategy` 'oldest' | 'newest', required — Recovery strategy used when a south connector reconnects after a long disconnection. - 'oldest': fill the gap from oldest to newest (default behaviour). - 'newest': fill the gap from newest to oldest so that recent data arrives first.
    - `groups` SouthItemGroupCommandDTO[], required — List of groups used to gather items
      - `id` string, nullable, required — The ID of the group (null when creating a new group).
      - `standardSettings` object, required
        - `scanModeId` string, required — The ID of the scan mode to use for this group.
        - `name` string, required — The name of the group.
      - `historySettings` object, required
        - `recoveryStrategy` 'oldest' | 'newest', required — Recovery strategy used when a south connector reconnects after a long disconnection. - 'oldest': fill the gap from oldest to newest (default behaviour). - 'newest': fill the gap from newest to oldest so that recent data arrives first.
        - `readDelay` number, double, nullable, required — Read delay in milliseconds before querying historical data.
        - `maxReadInterval` number, double, nullable, required — Maximum read interval in seconds for historical queries.
        - `endTimeOffset` number, double, nullable, required — Offset in milliseconds applied to the end of the history query interval. If the resulting end time is not after the effective start time, the query is skipped.
        - `startTimeOffset` number, double, nullable, required — Offset in milliseconds applied to the start of the history query interval. Negative values extend the window backwards (equivalent to the old overlap behaviour).
  - SouthConnectorMSSQLCommandDTO — South connector command for Microsoft SQL Server.
    - `name` string, required — The name of the South connector.
    - `type` 'mssql', required — The type of the South connector.
    - `description` string, required — Description of the South connector's purpose.
    - `enabled` boolean, required — Whether the South connector should be enabled.
    - `settings` SouthMSSQLSettings, required
      - `host` string, required
      - `port` number, double, required
      - `connectionTimeout` number, double, required
      - `database` string, required
      - `encryption` boolean, required
      - `trustServerCertificate` boolean, required
      - `username` string, nullable, required
      - `password` string, nullable, required
      - `domain` string, nullable, required
      - `requestTimeout` number, double, required
    - `items` SouthConnectorMSSQLItemCommandDTO[], required — List of items (data points) to configure for this connector.
      - `id` string, nullable, required — The ID of the item (null when creating a new item).
      - `enabled` boolean, required — Whether this item should be enabled.
      - `name` string, required — The name of the item.
      - `settings` SouthMSSQLItemSettings, required
        - `query` string, required
        - `trackingInstant` SouthMSSQLItemSettingsTrackingInstant, required
          - `trackInstant` boolean, required
          - `fieldName` string
          - `dateTimeInput` SouthMSSQLItemSettingsTrackingInstantDateTimeInput
            - `type` 'string' | 'iso-string' | 'unix-epoch' | 'unix-epoch-ms' | 'date' | 'date-time' | 'date-time-2' | 'date-time-offset' | 'small-date-time', required
            - `timezone` string — Represents a timezone as an IANA timezone string.
            - `format` string
            - `locale` string
      - `scanModeId` string, nullable, required — The ID of the scan mode to use for this item. Null when the scan mode should be determined by the system.
      - `scanModeName` string, nullable, required — The name of the scan mode to use when ID is not available. Null when not specifying by name.
      - `groupId` string, nullable, required — The ID of the group this item belongs to. Null when the item is not in any group.
      - `groupName` string, nullable, required — The name of the group this item belongs to. Used when importing from CSV where group IDs are not available. Null when the item is not in any group.
      - `syncWithGroup` boolean, required — Whether this item syncs its historian settings with its group. When true, historian fields are inherited from the group.
      - `maxReadInterval` number, double, nullable, required — Maximum read interval in seconds for historical queries. Only applicable for connectors with historian capabilities. When null and item is in a group, inherits from group settings.
      - `readDelay` number, double, nullable, required — Read delay in milliseconds before querying historical data. Only applicable for connectors with historian capabilities. When null and item is in a group, inherits from group settings.
      - `startTimeOffset` number, double, nullable, required — Offset in milliseconds applied to the start of the history query interval. Only applicable for connectors with historian capabilities. When null and item is in a group, inherits from group settings. Negative values extend the window backwards (equivalent to the old overlap behaviour).
      - `endTimeOffset` number, double, nullable, required — Offset in milliseconds applied to the end of the history query interval. Only applicable for connectors with historian capabilities. When null and item is in a group, inherits from group settings. If the resulting end time is not after the effective start time, the query is skipped.
      - `recoveryStrategy` 'oldest' | 'newest', required — Recovery strategy used when a south connector reconnects after a long disconnection. - 'oldest': fill the gap from oldest to newest (default behaviour). - 'newest': fill the gap from newest to oldest so that recent data arrives first.
    - `groups` SouthItemGroupCommandDTO[], required — List of groups used to gather items
      - `id` string, nullable, required — The ID of the group (null when creating a new group).
      - `standardSettings` object, required
        - `scanModeId` string, required — The ID of the scan mode to use for this group.
        - `name` string, required — The name of the group.
      - `historySettings` object, required
        - `recoveryStrategy` 'oldest' | 'newest', required — Recovery strategy used when a south connector reconnects after a long disconnection. - 'oldest': fill the gap from oldest to newest (default behaviour). - 'newest': fill the gap from newest to oldest so that recent data arrives first.
        - `readDelay` number, double, nullable, required — Read delay in milliseconds before querying historical data.
        - `maxReadInterval` number, double, nullable, required — Maximum read interval in seconds for historical queries.
        - `endTimeOffset` number, double, nullable, required — Offset in milliseconds applied to the end of the history query interval. If the resulting end time is not after the effective start time, the query is skipped.
        - `startTimeOffset` number, double, nullable, required — Offset in milliseconds applied to the start of the history query interval. Negative values extend the window backwards (equivalent to the old overlap behaviour).
  - SouthConnectorMySQLCommandDTO — South connector command for MySQL.
    - `name` string, required — The name of the South connector.
    - `type` 'mysql', required — The type of the South connector.
    - `description` string, required — Description of the South connector's purpose.
    - `enabled` boolean, required — Whether the South connector should be enabled.
    - `settings` SouthMySQLSettings, required
      - `host` string, required
      - `port` number, double, required
      - `connectionTimeout` number, double, required
      - `database` string, required
      - `username` string, nullable, required
      - `password` string, nullable, required
    - `items` SouthConnectorMySQLItemCommandDTO[], required — List of items (data points) to configure for this connector.
      - `id` string, nullable, required — The ID of the item (null when creating a new item).
      - `enabled` boolean, required — Whether this item should be enabled.
      - `name` string, required — The name of the item.
      - `settings` SouthMySQLItemSettings, required
        - `query` string, required
        - `requestTimeout` number, double, required
        - `trackingInstant` SouthMySQLItemSettingsTrackingInstant, required
          - `trackInstant` boolean, required
          - `fieldName` string
          - `dateTimeInput` SouthMySQLItemSettingsTrackingInstantDateTimeInput
            - `type` 'string' | 'iso-string' | 'unix-epoch' | 'unix-epoch-ms' | 'date-time', required
            - `timezone` string — Represents a timezone as an IANA timezone string.
            - `format` string
            - `locale` string
      - `scanModeId` string, nullable, required — The ID of the scan mode to use for this item. Null when the scan mode should be determined by the system.
      - `scanModeName` string, nullable, required — The name of the scan mode to use when ID is not available. Null when not specifying by name.
      - `groupId` string, nullable, required — The ID of the group this item belongs to. Null when the item is not in any group.
      - `groupName` string, nullable, required — The name of the group this item belongs to. Used when importing from CSV where group IDs are not available. Null when the item is not in any group.
      - `syncWithGroup` boolean, required — Whether this item syncs its historian settings with its group. When true, historian fields are inherited from the group.
      - `maxReadInterval` number, double, nullable, required — Maximum read interval in seconds for historical queries. Only applicable for connectors with historian capabilities. When null and item is in a group, inherits from group settings.
      - `readDelay` number, double, nullable, required — Read delay in milliseconds before querying historical data. Only applicable for connectors with historian capabilities. When null and item is in a group, inherits from group settings.
      - `startTimeOffset` number, double, nullable, required — Offset in milliseconds applied to the start of the history query interval. Only applicable for connectors with historian capabilities. When null and item is in a group, inherits from group settings. Negative values extend the window backwards (equivalent to the old overlap behaviour).
      - `endTimeOffset` number, double, nullable, required — Offset in milliseconds applied to the end of the history query interval. Only applicable for connectors with historian capabilities. When null and item is in a group, inherits from group settings. If the resulting end time is not after the effective start time, the query is skipped.
      - `recoveryStrategy` 'oldest' | 'newest', required — Recovery strategy used when a south connector reconnects after a long disconnection. - 'oldest': fill the gap from oldest to newest (default behaviour). - 'newest': fill the gap from newest to oldest so that recent data arrives first.
    - `groups` SouthItemGroupCommandDTO[], required — List of groups used to gather items
      - `id` string, nullable, required — The ID of the group (null when creating a new group).
      - `standardSettings` object, required
        - `scanModeId` string, required — The ID of the scan mode to use for this group.
        - `name` string, required — The name of the group.
      - `historySettings` object, required
        - `recoveryStrategy` 'oldest' | 'newest', required — Recovery strategy used when a south connector reconnects after a long disconnection. - 'oldest': fill the gap from oldest to newest (default behaviour). - 'newest': fill the gap from newest to oldest so that recent data arrives first.
        - `readDelay` number, double, nullable, required — Read delay in milliseconds before querying historical data.
        - `maxReadInterval` number, double, nullable, required — Maximum read interval in seconds for historical queries.
        - `endTimeOffset` number, double, nullable, required — Offset in milliseconds applied to the end of the history query interval. If the resulting end time is not after the effective start time, the query is skipped.
        - `startTimeOffset` number, double, nullable, required — Offset in milliseconds applied to the start of the history query interval. Negative values extend the window backwards (equivalent to the old overlap behaviour).
  - SouthConnectorODBCCommandDTO — South connector command for ODBC.
    - `name` string, required — The name of the South connector.
    - `type` 'odbc', required — The type of the South connector.
    - `description` string, required — Description of the South connector's purpose.
    - `enabled` boolean, required — Whether the South connector should be enabled.
    - `settings` SouthODBCSettings, required
      - `remoteAgent` boolean, required
      - `agentUrl` string
      - `connectionTimeout` number, double, required
      - `retryInterval` number, double, required
      - `requestTimeout` number, double
      - `connectionString` string, required
      - `password` string, nullable, required
    - `items` SouthConnectorODBCItemCommandDTO[], required — List of items (data points) to configure for this connector.
      - `id` string, nullable, required — The ID of the item (null when creating a new item).
      - `enabled` boolean, required — Whether this item should be enabled.
      - `name` string, required — The name of the item.
      - `settings` SouthODBCItemSettings, required
        - `query` string, required
        - `dateTimeFields` SouthODBCItemSettingsDateTimeFields[], nullable, required
          - `fieldName` string, required
          - `useAsReference` boolean, required
          - `type` 'string' | 'iso-string' | 'unix-epoch' | 'unix-epoch-ms', required
          - `timezone` string — Represents a timezone as an IANA timezone string.
          - `format` string
          - `locale` string
        - `serialization` SouthODBCItemSettingsSerialization, required
          - `type` 'csv', required
          - `filename` string, required
          - `delimiter` 'DOT' | 'SEMI_COLON' | 'COLON' | 'COMMA' | 'NON_BREAKING_SPACE' | 'SLASH' | 'TAB' | 'PIPE', required
          - `compression` boolean, required
          - `outputTimestampFormat` string, required
          - `outputTimezone` string, required — Represents a timezone as an IANA timezone string.
      - `scanModeId` string, nullable, required — The ID of the scan mode to use for this item. Null when the scan mode should be determined by the system.
      - `scanModeName` string, nullable, required — The name of the scan mode to use when ID is not available. Null when not specifying by name.
      - `groupId` string, nullable, required — The ID of the group this item belongs to. Null when the item is not in any group.
      - `groupName` string, nullable, required — The name of the group this item belongs to. Used when importing from CSV where group IDs are not available. Null when the item is not in any group.
      - `syncWithGroup` boolean, required — Whether this item syncs its historian settings with its group. When true, historian fields are inherited from the group.
      - `maxReadInterval` number, double, nullable, required — Maximum read interval in seconds for historical queries. Only applicable for connectors with historian capabilities. When null and item is in a group, inherits from group settings.
      - `readDelay` number, double, nullable, required — Read delay in milliseconds before querying historical data. Only applicable for connectors with historian capabilities. When null and item is in a group, inherits from group settings.
      - `startTimeOffset` number, double, nullable, required — Offset in milliseconds applied to the start of the history query interval. Only applicable for connectors with historian capabilities. When null and item is in a group, inherits from group settings. Negative values extend the window backwards (equivalent to the old overlap behaviour).
      - `endTimeOffset` number, double, nullable, required — Offset in milliseconds applied to the end of the history query interval. Only applicable for connectors with historian capabilities. When null and item is in a group, inherits from group settings. If the resulting end time is not after the effective start time, the query is skipped.
      - `recoveryStrategy` 'oldest' | 'newest', required — Recovery strategy used when a south connector reconnects after a long disconnection. - 'oldest': fill the gap from oldest to newest (default behaviour). - 'newest': fill the gap from newest to oldest so that recent data arrives first.
    - `groups` SouthItemGroupCommandDTO[], required — List of groups used to gather items
      - `id` string, nullable, required — The ID of the group (null when creating a new group).
      - `standardSettings` object, required
        - `scanModeId` string, required — The ID of the scan mode to use for this group.
        - `name` string, required — The name of the group.
      - `historySettings` object, required
        - `recoveryStrategy` 'oldest' | 'newest', required — Recovery strategy used when a south connector reconnects after a long disconnection. - 'oldest': fill the gap from oldest to newest (default behaviour). - 'newest': fill the gap from newest to oldest so that recent data arrives first.
        - `readDelay` number, double, nullable, required — Read delay in milliseconds before querying historical data.
        - `maxReadInterval` number, double, nullable, required — Maximum read interval in seconds for historical queries.
        - `endTimeOffset` number, double, nullable, required — Offset in milliseconds applied to the end of the history query interval. If the resulting end time is not after the effective start time, the query is skipped.
        - `startTimeOffset` number, double, nullable, required — Offset in milliseconds applied to the start of the history query interval. Negative values extend the window backwards (equivalent to the old overlap behaviour).
  - SouthConnectorOIAnalyticsCommandDTO — South connector command for OIAnalytics.
    - `name` string, required — The name of the South connector.
    - `type` 'oianalytics', required — The type of the South connector.
    - `description` string, required — Description of the South connector's purpose.
    - `enabled` boolean, required — Whether the South connector should be enabled.
    - `settings` SouthOIAnalyticsSettings, required
      - `useOiaModule` boolean, required
      - `timeout` number, double, required
      - `specificSettings` SouthOIAnalyticsSettingsSpecificSettings
        - `host` string, required
        - `acceptUnauthorized` boolean, required
        - `authentication` 'basic' | 'aad-client-secret' | 'aad-certificate', required
        - `accessKey` string
        - `secretKey` string, nullable
        - `tenantId` string
        - `clientId` string
        - `clientSecret` string, nullable
        - `certificateId` string
        - `scope` string
        - `useProxy` boolean, required
        - `proxyUrl` string
        - `proxyUsername` string
        - `proxyPassword` string, nullable
    - `items` SouthConnectorOIAnalyticsItemCommandDTO[], required — List of items (data points) to configure for this connector.
      - `id` string, nullable, required — The ID of the item (null when creating a new item).
      - `enabled` boolean, required — Whether this item should be enabled.
      - `name` string, required — The name of the item.
      - `settings` SouthOIAnalyticsItemSettings, required
        - `endpoint` string, required
        - `queryParams` SouthOIAnalyticsItemSettingsQueryParams[], required
          - `key` string, required
          - `value` string, required
        - `serialization` SouthOIAnalyticsItemSettingsSerialization, required
          - `type` 'csv', required
          - `filename` string, required
          - `delimiter` 'DOT' | 'SEMI_COLON' | 'COLON' | 'COMMA' | 'NON_BREAKING_SPACE' | 'SLASH' | 'TAB' | 'PIPE', required
          - `compression` boolean, required
          - `outputTimestampFormat` string, required
          - `outputTimezone` string, required — Represents a timezone as an IANA timezone string.
      - `scanModeId` string, nullable, required — The ID of the scan mode to use for this item. Null when the scan mode should be determined by the system.
      - `scanModeName` string, nullable, required — The name of the scan mode to use when ID is not available. Null when not specifying by name.
      - `groupId` string, nullable, required — The ID of the group this item belongs to. Null when the item is not in any group.
      - `groupName` string, nullable, required — The name of the group this item belongs to. Used when importing from CSV where group IDs are not available. Null when the item is not in any group.
      - `syncWithGroup` boolean, required — Whether this item syncs its historian settings with its group. When true, historian fields are inherited from the group.
      - `maxReadInterval` number, double, nullable, required — Maximum read interval in seconds for historical queries. Only applicable for connectors with historian capabilities. When null and item is in a group, inherits from group settings.
      - `readDelay` number, double, nullable, required — Read delay in milliseconds before querying historical data. Only applicable for connectors with historian capabilities. When null and item is in a group, inherits from group settings.
      - `startTimeOffset` number, double, nullable, required — Offset in milliseconds applied to the start of the history query interval. Only applicable for connectors with historian capabilities. When null and item is in a group, inherits from group settings. Negative values extend the window backwards (equivalent to the old overlap behaviour).
      - `endTimeOffset` number, double, nullable, required — Offset in milliseconds applied to the end of the history query interval. Only applicable for connectors with historian capabilities. When null and item is in a group, inherits from group settings. If the resulting end time is not after the effective start time, the query is skipped.
      - `recoveryStrategy` 'oldest' | 'newest', required — Recovery strategy used when a south connector reconnects after a long disconnection. - 'oldest': fill the gap from oldest to newest (default behaviour). - 'newest': fill the gap from newest to oldest so that recent data arrives first.
    - `groups` SouthItemGroupCommandDTO[], required — List of groups used to gather items
      - `id` string, nullable, required — The ID of the group (null when creating a new group).
      - `standardSettings` object, required
        - `scanModeId` string, required — The ID of the scan mode to use for this group.
        - `name` string, required — The name of the group.
      - `historySettings` object, required
        - `recoveryStrategy` 'oldest' | 'newest', required — Recovery strategy used when a south connector reconnects after a long disconnection. - 'oldest': fill the gap from oldest to newest (default behaviour). - 'newest': fill the gap from newest to oldest so that recent data arrives first.
        - `readDelay` number, double, nullable, required — Read delay in milliseconds before querying historical data.
        - `maxReadInterval` number, double, nullable, required — Maximum read interval in seconds for historical queries.
        - `endTimeOffset` number, double, nullable, required — Offset in milliseconds applied to the end of the history query interval. If the resulting end time is not after the effective start time, the query is skipped.
        - `startTimeOffset` number, double, nullable, required — Offset in milliseconds applied to the start of the history query interval. Negative values extend the window backwards (equivalent to the old overlap behaviour).
  - SouthConnectorOLEDBCommandDTO — South connector command for OLE DB.
    - `name` string, required — The name of the South connector.
    - `type` 'oledb', required — The type of the South connector.
    - `description` string, required — Description of the South connector's purpose.
    - `enabled` boolean, required — Whether the South connector should be enabled.
    - `settings` SouthOLEDBSettings, required
      - `agentUrl` string, required
      - `connectionTimeout` number, double, required
      - `retryInterval` number, double, required
      - `requestTimeout` number, double, required
      - `connectionString` string, required
      - `password` string, nullable, required
    - `items` SouthConnectorOLEDBItemCommandDTO[], required — List of items (data points) to configure for this connector.
      - `id` string, nullable, required — The ID of the item (null when creating a new item).
      - `enabled` boolean, required — Whether this item should be enabled.
      - `name` string, required — The name of the item.
      - `settings` SouthOLEDBItemSettings, required
        - `query` string, required
        - `dateTimeFields` SouthOLEDBItemSettingsDateTimeFields[], nullable, required
          - `fieldName` string, required
          - `useAsReference` boolean, required
          - `type` 'string' | 'iso-string' | 'unix-epoch' | 'unix-epoch-ms', required
          - `timezone` string — Represents a timezone as an IANA timezone string.
          - `format` string
          - `locale` string
        - `serialization` SouthOLEDBItemSettingsSerialization, required
          - `type` 'csv', required
          - `filename` string, required
          - `delimiter` 'DOT' | 'SEMI_COLON' | 'COLON' | 'COMMA' | 'NON_BREAKING_SPACE' | 'SLASH' | 'TAB' | 'PIPE', required
          - `compression` boolean, required
          - `outputTimestampFormat` string, required
          - `outputTimezone` string, required — Represents a timezone as an IANA timezone string.
      - `scanModeId` string, nullable, required — The ID of the scan mode to use for this item. Null when the scan mode should be determined by the system.
      - `scanModeName` string, nullable, required — The name of the scan mode to use when ID is not available. Null when not specifying by name.
      - `groupId` string, nullable, required — The ID of the group this item belongs to. Null when the item is not in any group.
      - `groupName` string, nullable, required — The name of the group this item belongs to. Used when importing from CSV where group IDs are not available. Null when the item is not in any group.
      - `syncWithGroup` boolean, required — Whether this item syncs its historian settings with its group. When true, historian fields are inherited from the group.
      - `maxReadInterval` number, double, nullable, required — Maximum read interval in seconds for historical queries. Only applicable for connectors with historian capabilities. When null and item is in a group, inherits from group settings.
      - `readDelay` number, double, nullable, required — Read delay in milliseconds before querying historical data. Only applicable for connectors with historian capabilities. When null and item is in a group, inherits from group settings.
      - `startTimeOffset` number, double, nullable, required — Offset in milliseconds applied to the start of the history query interval. Only applicable for connectors with historian capabilities. When null and item is in a group, inherits from group settings. Negative values extend the window backwards (equivalent to the old overlap behaviour).
      - `endTimeOffset` number, double, nullable, required — Offset in milliseconds applied to the end of the history query interval. Only applicable for connectors with historian capabilities. When null and item is in a group, inherits from group settings. If the resulting end time is not after the effective start time, the query is skipped.
      - `recoveryStrategy` 'oldest' | 'newest', required — Recovery strategy used when a south connector reconnects after a long disconnection. - 'oldest': fill the gap from oldest to newest (default behaviour). - 'newest': fill the gap from newest to oldest so that recent data arrives first.
    - `groups` SouthItemGroupCommandDTO[], required — List of groups used to gather items
      - `id` string, nullable, required — The ID of the group (null when creating a new group).
      - `standardSettings` object, required
        - `scanModeId` string, required — The ID of the scan mode to use for this group.
        - `name` string, required — The name of the group.
      - `historySettings` object, required
        - `recoveryStrategy` 'oldest' | 'newest', required — Recovery strategy used when a south connector reconnects after a long disconnection. - 'oldest': fill the gap from oldest to newest (default behaviour). - 'newest': fill the gap from newest to oldest so that recent data arrives first.
        - `readDelay` number, double, nullable, required — Read delay in milliseconds before querying historical data.
        - `maxReadInterval` number, double, nullable, required — Maximum read interval in seconds for historical queries.
        - `endTimeOffset` number, double, nullable, required — Offset in milliseconds applied to the end of the history query interval. If the resulting end time is not after the effective start time, the query is skipped.
        - `startTimeOffset` number, double, nullable, required — Offset in milliseconds applied to the start of the history query interval. Negative values extend the window backwards (equivalent to the old overlap behaviour).
  - SouthConnectorOPCCommandDTO — South connector command for classic OPC (OLE for Process Control).
    - `name` string, required — The name of the South connector.
    - `type` 'opc', required — The type of the South connector.
    - `description` string, required — Description of the South connector's purpose.
    - `enabled` boolean, required — Whether the South connector should be enabled.
    - `settings` SouthOPCSettings, required
      - `agentUrl` string, required
      - `retryInterval` number, double, required
      - `host` string, required
      - `serverName` string, required
      - `mode` 'hda' | 'da', required
    - `items` SouthConnectorOPCItemCommandDTO[], required — List of items (data points) to configure for this connector.
      - `id` string, nullable, required — The ID of the item (null when creating a new item).
      - `enabled` boolean, required — Whether this item should be enabled.
      - `name` string, required — The name of the item.
      - `settings` SouthOPCItemSettings, required
        - `nodeId` string, required
        - `aggregate` 'raw' | 'interpolative' | 'total' | 'average' | 'time-average' | 'count' | 'stdev' | 'minimum-actual-time' | 'minimum' | 'maximum-actual-time' | 'maximum' | 'start' | 'end' | 'delta' | 'reg-slope' | 'reg-const' | 'reg-dev' | 'variance' | 'range' | 'duration-good' | 'duration-bad' | 'percent-good' | 'percent-bad' | 'worst-quality' | 'annotations', required
        - `resampling` 'none' | '1s' | '10s' | '30s' | '1min' | '1h' | '1d'
      - `scanModeId` string, nullable, required — The ID of the scan mode to use for this item. Null when the scan mode should be determined by the system.
      - `scanModeName` string, nullable, required — The name of the scan mode to use when ID is not available. Null when not specifying by name.
      - `groupId` string, nullable, required — The ID of the group this item belongs to. Null when the item is not in any group.
      - `groupName` string, nullable, required — The name of the group this item belongs to. Used when importing from CSV where group IDs are not available. Null when the item is not in any group.
      - `syncWithGroup` boolean, required — Whether this item syncs its historian settings with its group. When true, historian fields are inherited from the group.
      - `maxReadInterval` number, double, nullable, required — Maximum read interval in seconds for historical queries. Only applicable for connectors with historian capabilities. When null and item is in a group, inherits from group settings.
      - `readDelay` number, double, nullable, required — Read delay in milliseconds before querying historical data. Only applicable for connectors with historian capabilities. When null and item is in a group, inherits from group settings.
      - `startTimeOffset` number, double, nullable, required — Offset in milliseconds applied to the start of the history query interval. Only applicable for connectors with historian capabilities. When null and item is in a group, inherits from group settings. Negative values extend the window backwards (equivalent to the old overlap behaviour).
      - `endTimeOffset` number, double, nullable, required — Offset in milliseconds applied to the end of the history query interval. Only applicable for connectors with historian capabilities. When null and item is in a group, inherits from group settings. If the resulting end time is not after the effective start time, the query is skipped.
      - `recoveryStrategy` 'oldest' | 'newest', required — Recovery strategy used when a south connector reconnects after a long disconnection. - 'oldest': fill the gap from oldest to newest (default behaviour). - 'newest': fill the gap from newest to oldest so that recent data arrives first.
    - `groups` SouthItemGroupCommandDTO[], required — List of groups used to gather items
      - `id` string, nullable, required — The ID of the group (null when creating a new group).
      - `standardSettings` object, required
        - `scanModeId` string, required — The ID of the scan mode to use for this group.
        - `name` string, required — The name of the group.
      - `historySettings` object, required
        - `recoveryStrategy` 'oldest' | 'newest', required — Recovery strategy used when a south connector reconnects after a long disconnection. - 'oldest': fill the gap from oldest to newest (default behaviour). - 'newest': fill the gap from newest to oldest so that recent data arrives first.
        - `readDelay` number, double, nullable, required — Read delay in milliseconds before querying historical data.
        - `maxReadInterval` number, double, nullable, required — Maximum read interval in seconds for historical queries.
        - `endTimeOffset` number, double, nullable, required — Offset in milliseconds applied to the end of the history query interval. If the resulting end time is not after the effective start time, the query is skipped.
        - `startTimeOffset` number, double, nullable, required — Offset in milliseconds applied to the start of the history query interval. Negative values extend the window backwards (equivalent to the old overlap behaviour).
  - SouthConnectorOPCUACommandDTO — South connector command for OPC UA.
    - `name` string, required — The name of the South connector.
    - `type` 'opcua', required — The type of the South connector.
    - `description` string, required — Description of the South connector's purpose.
    - `enabled` boolean, required — Whether the South connector should be enabled.
    - `settings` SouthOPCUASettings, required
      - `url` string, required
      - `keepSessionAlive` boolean, required
      - `readTimeout` number, double, required
      - `retryInterval` number, double, required
      - `maxNumberOfMessages` number, double, required
      - `flushMessageTimeout` number, double, required
      - `securityMode` 'none' | 'sign' | 'sign-and-encrypt', required
      - `securityPolicy` 'none' | 'basic128' | 'basic192' | 'basic256' | 'basic128-rsa15' | 'basic192-rsa15' | 'basic256-rsa15' | 'basic256-sha256' | 'aes128-sha256-rsa-oaep' | 'pub-sub-aes-128-ctr' | 'pub-sub-aes-256-ctr'
      - `maxParallelRun` number, double, required
      - `authentication` SouthOPCUASettingsAuthentication, required
        - `type` 'none' | 'basic' | 'cert', required
        - `username` string
        - `password` string, nullable
        - `certFilePath` string
        - `keyFilePath` string
    - `items` SouthConnectorOPCUAItemCommandDTO[], required — List of items (data points) to configure for this connector.
      - `id` string, nullable, required — The ID of the item (null when creating a new item).
      - `enabled` boolean, required — Whether this item should be enabled.
      - `name` string, required — The name of the item.
      - `settings` SouthOPCUAItemSettings, required
        - `nodeId` string, required
        - `mode` 'da' | 'ha', required
        - `haMode` SouthOPCUAItemSettingsHaMode
          - `aggregate` 'raw' | 'average' | 'count' | 'minimum' | 'maximum', required
          - `resampling` 'none' | '1s' | '10s' | '30s' | '1min' | '1h' | '1d'
        - `timestampOrigin` 'oibus' | 'point' | 'server'
      - `scanModeId` string, nullable, required — The ID of the scan mode to use for this item. Null when the scan mode should be determined by the system.
      - `scanModeName` string, nullable, required — The name of the scan mode to use when ID is not available. Null when not specifying by name.
      - `groupId` string, nullable, required — The ID of the group this item belongs to. Null when the item is not in any group.
      - `groupName` string, nullable, required — The name of the group this item belongs to. Used when importing from CSV where group IDs are not available. Null when the item is not in any group.
      - `syncWithGroup` boolean, required — Whether this item syncs its historian settings with its group. When true, historian fields are inherited from the group.
      - `maxReadInterval` number, double, nullable, required — Maximum read interval in seconds for historical queries. Only applicable for connectors with historian capabilities. When null and item is in a group, inherits from group settings.
      - `readDelay` number, double, nullable, required — Read delay in milliseconds before querying historical data. Only applicable for connectors with historian capabilities. When null and item is in a group, inherits from group settings.
      - `startTimeOffset` number, double, nullable, required — Offset in milliseconds applied to the start of the history query interval. Only applicable for connectors with historian capabilities. When null and item is in a group, inherits from group settings. Negative values extend the window backwards (equivalent to the old overlap behaviour).
      - `endTimeOffset` number, double, nullable, required — Offset in milliseconds applied to the end of the history query interval. Only applicable for connectors with historian capabilities. When null and item is in a group, inherits from group settings. If the resulting end time is not after the effective start time, the query is skipped.
      - `recoveryStrategy` 'oldest' | 'newest', required — Recovery strategy used when a south connector reconnects after a long disconnection. - 'oldest': fill the gap from oldest to newest (default behaviour). - 'newest': fill the gap from newest to oldest so that recent data arrives first.
    - `groups` SouthItemGroupCommandDTO[], required — List of groups used to gather items
      - `id` string, nullable, required — The ID of the group (null when creating a new group).
      - `standardSettings` object, required
        - `scanModeId` string, required — The ID of the scan mode to use for this group.
        - `name` string, required — The name of the group.
      - `historySettings` object, required
        - `recoveryStrategy` 'oldest' | 'newest', required — Recovery strategy used when a south connector reconnects after a long disconnection. - 'oldest': fill the gap from oldest to newest (default behaviour). - 'newest': fill the gap from newest to oldest so that recent data arrives first.
        - `readDelay` number, double, nullable, required — Read delay in milliseconds before querying historical data.
        - `maxReadInterval` number, double, nullable, required — Maximum read interval in seconds for historical queries.
        - `endTimeOffset` number, double, nullable, required — Offset in milliseconds applied to the end of the history query interval. If the resulting end time is not after the effective start time, the query is skipped.
        - `startTimeOffset` number, double, nullable, required — Offset in milliseconds applied to the start of the history query interval. Negative values extend the window backwards (equivalent to the old overlap behaviour).
  - SouthConnectorOracleCommandDTO — South connector command for Oracle Database.
    - `name` string, required — The name of the South connector.
    - `type` 'oracle', required — The type of the South connector.
    - `description` string, required — Description of the South connector's purpose.
    - `enabled` boolean, required — Whether the South connector should be enabled.
    - `settings` SouthOracleSettings, required
      - `thickMode` boolean, required
      - `oracleClient` string
      - `host` string, required
      - `port` number, double, required
      - `connectionTimeout` number, double, required
      - `database` string, required
      - `username` string, nullable, required
      - `password` string, nullable, required
    - `items` SouthConnectorOracleItemCommandDTO[], required — List of items (data points) to configure for this connector.
      - `id` string, nullable, required — The ID of the item (null when creating a new item).
      - `enabled` boolean, required — Whether this item should be enabled.
      - `name` string, required — The name of the item.
      - `settings` SouthOracleItemSettings, required
        - `query` string, required
        - `requestTimeout` number, double, required
        - `trackingInstant` SouthOracleItemSettingsTrackingInstant, required
          - `trackInstant` boolean, required
          - `fieldName` string
          - `dateTimeInput` SouthOracleItemSettingsTrackingInstantDateTimeInput
            - `type` 'string' | 'iso-string' | 'unix-epoch' | 'unix-epoch-ms' | 'date-time', required
            - `timezone` string — Represents a timezone as an IANA timezone string.
            - `format` string
            - `locale` string
      - `scanModeId` string, nullable, required — The ID of the scan mode to use for this item. Null when the scan mode should be determined by the system.
      - `scanModeName` string, nullable, required — The name of the scan mode to use when ID is not available. Null when not specifying by name.
      - `groupId` string, nullable, required — The ID of the group this item belongs to. Null when the item is not in any group.
      - `groupName` string, nullable, required — The name of the group this item belongs to. Used when importing from CSV where group IDs are not available. Null when the item is not in any group.
      - `syncWithGroup` boolean, required — Whether this item syncs its historian settings with its group. When true, historian fields are inherited from the group.
      - `maxReadInterval` number, double, nullable, required — Maximum read interval in seconds for historical queries. Only applicable for connectors with historian capabilities. When null and item is in a group, inherits from group settings.
      - `readDelay` number, double, nullable, required — Read delay in milliseconds before querying historical data. Only applicable for connectors with historian capabilities. When null and item is in a group, inherits from group settings.
      - `startTimeOffset` number, double, nullable, required — Offset in milliseconds applied to the start of the history query interval. Only applicable for connectors with historian capabilities. When null and item is in a group, inherits from group settings. Negative values extend the window backwards (equivalent to the old overlap behaviour).
      - `endTimeOffset` number, double, nullable, required — Offset in milliseconds applied to the end of the history query interval. Only applicable for connectors with historian capabilities. When null and item is in a group, inherits from group settings. If the resulting end time is not after the effective start time, the query is skipped.
      - `recoveryStrategy` 'oldest' | 'newest', required — Recovery strategy used when a south connector reconnects after a long disconnection. - 'oldest': fill the gap from oldest to newest (default behaviour). - 'newest': fill the gap from newest to oldest so that recent data arrives first.
    - `groups` SouthItemGroupCommandDTO[], required — List of groups used to gather items
      - `id` string, nullable, required — The ID of the group (null when creating a new group).
      - `standardSettings` object, required
        - `scanModeId` string, required — The ID of the scan mode to use for this group.
        - `name` string, required — The name of the group.
      - `historySettings` object, required
        - `recoveryStrategy` 'oldest' | 'newest', required — Recovery strategy used when a south connector reconnects after a long disconnection. - 'oldest': fill the gap from oldest to newest (default behaviour). - 'newest': fill the gap from newest to oldest so that recent data arrives first.
        - `readDelay` number, double, nullable, required — Read delay in milliseconds before querying historical data.
        - `maxReadInterval` number, double, nullable, required — Maximum read interval in seconds for historical queries.
        - `endTimeOffset` number, double, nullable, required — Offset in milliseconds applied to the end of the history query interval. If the resulting end time is not after the effective start time, the query is skipped.
        - `startTimeOffset` number, double, nullable, required — Offset in milliseconds applied to the start of the history query interval. Negative values extend the window backwards (equivalent to the old overlap behaviour).
  - SouthConnectorOsisoftPICommandDTO — South connector command for OSIsoft PI System.
    - `name` string, required — The name of the South connector.
    - `type` 'osisoft-pi', required — The type of the South connector.
    - `description` string, required — Description of the South connector's purpose.
    - `enabled` boolean, required — Whether the South connector should be enabled.
    - `settings` SouthPISettings, required
      - `agentUrl` string, required
      - `retryInterval` number, double, required
    - `items` SouthConnectorOsisoftPIItemCommandDTO[], required — List of items (data points) to configure for this connector.
      - `id` string, nullable, required — The ID of the item (null when creating a new item).
      - `enabled` boolean, required — Whether this item should be enabled.
      - `name` string, required — The name of the item.
      - `settings` SouthPIItemSettings, required
        - `type` 'point-id' | 'point-query', required
        - `piPoint` string
        - `piQuery` string
      - `scanModeId` string, nullable, required — The ID of the scan mode to use for this item. Null when the scan mode should be determined by the system.
      - `scanModeName` string, nullable, required — The name of the scan mode to use when ID is not available. Null when not specifying by name.
      - `groupId` string, nullable, required — The ID of the group this item belongs to. Null when the item is not in any group.
      - `groupName` string, nullable, required — The name of the group this item belongs to. Used when importing from CSV where group IDs are not available. Null when the item is not in any group.
      - `syncWithGroup` boolean, required — Whether this item syncs its historian settings with its group. When true, historian fields are inherited from the group.
      - `maxReadInterval` number, double, nullable, required — Maximum read interval in seconds for historical queries. Only applicable for connectors with historian capabilities. When null and item is in a group, inherits from group settings.
      - `readDelay` number, double, nullable, required — Read delay in milliseconds before querying historical data. Only applicable for connectors with historian capabilities. When null and item is in a group, inherits from group settings.
      - `startTimeOffset` number, double, nullable, required — Offset in milliseconds applied to the start of the history query interval. Only applicable for connectors with historian capabilities. When null and item is in a group, inherits from group settings. Negative values extend the window backwards (equivalent to the old overlap behaviour).
      - `endTimeOffset` number, double, nullable, required — Offset in milliseconds applied to the end of the history query interval. Only applicable for connectors with historian capabilities. When null and item is in a group, inherits from group settings. If the resulting end time is not after the effective start time, the query is skipped.
      - `recoveryStrategy` 'oldest' | 'newest', required — Recovery strategy used when a south connector reconnects after a long disconnection. - 'oldest': fill the gap from oldest to newest (default behaviour). - 'newest': fill the gap from newest to oldest so that recent data arrives first.
    - `groups` SouthItemGroupCommandDTO[], required — List of groups used to gather items
      - `id` string, nullable, required — The ID of the group (null when creating a new group).
      - `standardSettings` object, required
        - `scanModeId` string, required — The ID of the scan mode to use for this group.
        - `name` string, required — The name of the group.
      - `historySettings` object, required
        - `recoveryStrategy` 'oldest' | 'newest', required — Recovery strategy used when a south connector reconnects after a long disconnection. - 'oldest': fill the gap from oldest to newest (default behaviour). - 'newest': fill the gap from newest to oldest so that recent data arrives first.
        - `readDelay` number, double, nullable, required — Read delay in milliseconds before querying historical data.
        - `maxReadInterval` number, double, nullable, required — Maximum read interval in seconds for historical queries.
        - `endTimeOffset` number, double, nullable, required — Offset in milliseconds applied to the end of the history query interval. If the resulting end time is not after the effective start time, the query is skipped.
        - `startTimeOffset` number, double, nullable, required — Offset in milliseconds applied to the start of the history query interval. Negative values extend the window backwards (equivalent to the old overlap behaviour).
  - SouthConnectorPostgreSQLCommandDTO — South connector command for PostgreSQL.
    - `name` string, required — The name of the South connector.
    - `type` 'postgresql', required — The type of the South connector.
    - `description` string, required — Description of the South connector's purpose.
    - `enabled` boolean, required — Whether the South connector should be enabled.
    - `settings` SouthPostgreSQLSettings, required
      - `host` string, required
      - `port` number, double, required
      - `sslMode` boolean, required
      - `database` string, required
      - `connectionTimeout` number, double, required
      - `requestTimeout` number, double, required
      - `username` string, nullable, required
      - `password` string, nullable, required
    - `items` SouthConnectorPostgreSQLItemCommandDTO[], required — List of items (data points) to configure for this connector.
      - `id` string, nullable, required — The ID of the item (null when creating a new item).
      - `enabled` boolean, required — Whether this item should be enabled.
      - `name` string, required — The name of the item.
      - `settings` SouthPostgreSQLItemSettings, required
        - `query` string, required
        - `trackingInstant` SouthPostgreSQLItemSettingsTrackingInstant, required
          - `trackInstant` boolean, required
          - `fieldName` string
          - `dateTimeInput` SouthPostgreSQLItemSettingsTrackingInstantDateTimeInput
            - `type` 'string' | 'timestamp' | 'iso-string' | 'unix-epoch' | 'unix-epoch-ms' | 'timestamptz', required
            - `timezone` string — Represents a timezone as an IANA timezone string.
            - `format` string
            - `locale` string
      - `scanModeId` string, nullable, required — The ID of the scan mode to use for this item. Null when the scan mode should be determined by the system.
      - `scanModeName` string, nullable, required — The name of the scan mode to use when ID is not available. Null when not specifying by name.
      - `groupId` string, nullable, required — The ID of the group this item belongs to. Null when the item is not in any group.
      - `groupName` string, nullable, required — The name of the group this item belongs to. Used when importing from CSV where group IDs are not available. Null when the item is not in any group.
      - `syncWithGroup` boolean, required — Whether this item syncs its historian settings with its group. When true, historian fields are inherited from the group.
      - `maxReadInterval` number, double, nullable, required — Maximum read interval in seconds for historical queries. Only applicable for connectors with historian capabilities. When null and item is in a group, inherits from group settings.
      - `readDelay` number, double, nullable, required — Read delay in milliseconds before querying historical data. Only applicable for connectors with historian capabilities. When null and item is in a group, inherits from group settings.
      - `startTimeOffset` number, double, nullable, required — Offset in milliseconds applied to the start of the history query interval. Only applicable for connectors with historian capabilities. When null and item is in a group, inherits from group settings. Negative values extend the window backwards (equivalent to the old overlap behaviour).
      - `endTimeOffset` number, double, nullable, required — Offset in milliseconds applied to the end of the history query interval. Only applicable for connectors with historian capabilities. When null and item is in a group, inherits from group settings. If the resulting end time is not after the effective start time, the query is skipped.
      - `recoveryStrategy` 'oldest' | 'newest', required — Recovery strategy used when a south connector reconnects after a long disconnection. - 'oldest': fill the gap from oldest to newest (default behaviour). - 'newest': fill the gap from newest to oldest so that recent data arrives first.
    - `groups` SouthItemGroupCommandDTO[], required — List of groups used to gather items
      - `id` string, nullable, required — The ID of the group (null when creating a new group).
      - `standardSettings` object, required
        - `scanModeId` string, required — The ID of the scan mode to use for this group.
        - `name` string, required — The name of the group.
      - `historySettings` object, required
        - `recoveryStrategy` 'oldest' | 'newest', required — Recovery strategy used when a south connector reconnects after a long disconnection. - 'oldest': fill the gap from oldest to newest (default behaviour). - 'newest': fill the gap from newest to oldest so that recent data arrives first.
        - `readDelay` number, double, nullable, required — Read delay in milliseconds before querying historical data.
        - `maxReadInterval` number, double, nullable, required — Maximum read interval in seconds for historical queries.
        - `endTimeOffset` number, double, nullable, required — Offset in milliseconds applied to the end of the history query interval. If the resulting end time is not after the effective start time, the query is skipped.
        - `startTimeOffset` number, double, nullable, required — Offset in milliseconds applied to the start of the history query interval. Negative values extend the window backwards (equivalent to the old overlap behaviour).
  - SouthConnectorRESTCommandDTO — South connector command for the REST API.
    - `name` string, required — The name of the South connector.
    - `type` 'rest', required — The type of the South connector.
    - `description` string, required — Description of the South connector's purpose.
    - `enabled` boolean, required — Whether the South connector should be enabled.
    - `settings` SouthRestSettings, required
      - `host` string, required
      - `acceptUnauthorized` boolean, required
      - `timeout` number, double, required
      - `authentication` SouthRestSettingsAuthentication, required
        - `type` 'none' | 'basic' | 'bearer' | 'api-key', required
        - `username` string
        - `password` string, nullable
        - `token` string, nullable
        - `apiKey` string
        - `apiValue` string, nullable
        - `addTo` 'header' | 'query-params'
      - `proxy` SouthRestSettingsProxy, required
        - `useProxy` boolean, required
        - `proxyUrl` string
        - `proxyUsername` string, nullable
        - `proxyPassword` string, nullable
      - `test` SouthRestSettingsTest, required
        - `method` 'GET' | 'POST' | 'PUT', required
        - `endpoint` string, required
        - `successCode` number, double, required
        - `body` string, nullable
    - `items` SouthConnectorRESTItemCommandDTO[], required — List of items (data points) to configure for this connector.
      - `id` string, nullable, required — The ID of the item (null when creating a new item).
      - `enabled` boolean, required — Whether this item should be enabled.
      - `name` string, required — The name of the item.
      - `settings` SouthRestItemSettings, required
        - `method` 'GET' | 'POST' | 'PUT' | 'PATCH' | 'DELETE', required
        - `endpoint` string, required
        - `returnType` 'file' | 'body', required
        - `queryParams` SouthRestItemSettingsQueryParams[], required
          - `key` string, required
          - `value` string, required
          - `dateTimeInput` SouthRestItemSettingsQueryParamsDateTimeInput
            - `type` 'string' | 'iso-string' | 'unix-epoch' | 'unix-epoch-ms', required
            - `timezone` string — Represents a timezone as an IANA timezone string.
            - `format` string, nullable
        - `headers` SouthRestItemSettingsHeaders[], required
          - `key` string, required
          - `value` string, required
          - `dateTimeInput` SouthRestItemSettingsHeadersDateTimeInput
            - `type` 'string' | 'iso-string' | 'unix-epoch' | 'unix-epoch-ms', required
            - `timezone` string — Represents a timezone as an IANA timezone string.
            - `format` string, nullable
        - `body` SouthRestItemSettingsBody
          - `content` string, nullable, required
          - `dateTimeInput` SouthRestItemSettingsBodyDateTimeInput
            - `type` 'string' | 'iso-string' | 'unix-epoch' | 'unix-epoch-ms', required
            - `timezone` string — Represents a timezone as an IANA timezone string.
            - `format` string, nullable
        - `trackingInstant` SouthRestItemSettingsTrackingInstant
          - `trackInstant` boolean, required
          - `jsonPath` string
          - `dateTimeInput` SouthRestItemSettingsTrackingInstantDateTimeInput
            - `type` 'string' | 'iso-string' | 'unix-epoch' | 'unix-epoch-ms', required
            - `timezone` string — Represents a timezone as an IANA timezone string.
            - `format` string
            - `locale` string
      - `scanModeId` string, nullable, required — The ID of the scan mode to use for this item. Null when the scan mode should be determined by the system.
      - `scanModeName` string, nullable, required — The name of the scan mode to use when ID is not available. Null when not specifying by name.
      - `groupId` string, nullable, required — The ID of the group this item belongs to. Null when the item is not in any group.
      - `groupName` string, nullable, required — The name of the group this item belongs to. Used when importing from CSV where group IDs are not available. Null when the item is not in any group.
      - `syncWithGroup` boolean, required — Whether this item syncs its historian settings with its group. When true, historian fields are inherited from the group.
      - `maxReadInterval` number, double, nullable, required — Maximum read interval in seconds for historical queries. Only applicable for connectors with historian capabilities. When null and item is in a group, inherits from group settings.
      - `readDelay` number, double, nullable, required — Read delay in milliseconds before querying historical data. Only applicable for connectors with historian capabilities. When null and item is in a group, inherits from group settings.
      - `startTimeOffset` number, double, nullable, required — Offset in milliseconds applied to the start of the history query interval. Only applicable for connectors with historian capabilities. When null and item is in a group, inherits from group settings. Negative values extend the window backwards (equivalent to the old overlap behaviour).
      - `endTimeOffset` number, double, nullable, required — Offset in milliseconds applied to the end of the history query interval. Only applicable for connectors with historian capabilities. When null and item is in a group, inherits from group settings. If the resulting end time is not after the effective start time, the query is skipped.
      - `recoveryStrategy` 'oldest' | 'newest', required — Recovery strategy used when a south connector reconnects after a long disconnection. - 'oldest': fill the gap from oldest to newest (default behaviour). - 'newest': fill the gap from newest to oldest so that recent data arrives first.
    - `groups` SouthItemGroupCommandDTO[], required — List of groups used to gather items
      - `id` string, nullable, required — The ID of the group (null when creating a new group).
      - `standardSettings` object, required
        - `scanModeId` string, required — The ID of the scan mode to use for this group.
        - `name` string, required — The name of the group.
      - `historySettings` object, required
        - `recoveryStrategy` 'oldest' | 'newest', required — Recovery strategy used when a south connector reconnects after a long disconnection. - 'oldest': fill the gap from oldest to newest (default behaviour). - 'newest': fill the gap from newest to oldest so that recent data arrives first.
        - `readDelay` number, double, nullable, required — Read delay in milliseconds before querying historical data.
        - `maxReadInterval` number, double, nullable, required — Maximum read interval in seconds for historical queries.
        - `endTimeOffset` number, double, nullable, required — Offset in milliseconds applied to the end of the history query interval. If the resulting end time is not after the effective start time, the query is skipped.
        - `startTimeOffset` number, double, nullable, required — Offset in milliseconds applied to the start of the history query interval. Negative values extend the window backwards (equivalent to the old overlap behaviour).
  - SouthConnectorS7CommandDTO — South connector command for Siemens S7.
    - `name` string, required — The name of the South connector.
    - `type` 's7', required — The type of the South connector.
    - `description` string, required — Description of the South connector's purpose.
    - `enabled` boolean, required — Whether the South connector should be enabled.
    - `settings` SouthS7Settings, required
      - `host` string, required
      - `port` number, double, required
      - `connectionType` 'PG' | 'OP' | 'S7Basic', required
      - `rack` number, double, required
      - `slot` number, double, required
      - `connectTimeout` number, double, required
      - `requestTimeout` number, double, required
      - `retryInterval` number, double, required
    - `items` SouthConnectorS7ItemCommandDTO[], required — List of items (data points) to configure for this connector.
      - `id` string, nullable, required — The ID of the item (null when creating a new item).
      - `enabled` boolean, required — Whether this item should be enabled.
      - `name` string, required — The name of the item.
      - `settings` SouthS7ItemSettings, required
        - `address` string, required
      - `scanModeId` string, nullable, required — The ID of the scan mode to use for this item. Null when the scan mode should be determined by the system.
      - `scanModeName` string, nullable, required — The name of the scan mode to use when ID is not available. Null when not specifying by name.
      - `groupId` string, nullable, required — The ID of the group this item belongs to. Null when the item is not in any group.
      - `groupName` string, nullable, required — The name of the group this item belongs to. Used when importing from CSV where group IDs are not available. Null when the item is not in any group.
      - `syncWithGroup` boolean, required — Whether this item syncs its historian settings with its group. When true, historian fields are inherited from the group.
      - `maxReadInterval` number, double, nullable, required — Maximum read interval in seconds for historical queries. Only applicable for connectors with historian capabilities. When null and item is in a group, inherits from group settings.
      - `readDelay` number, double, nullable, required — Read delay in milliseconds before querying historical data. Only applicable for connectors with historian capabilities. When null and item is in a group, inherits from group settings.
      - `startTimeOffset` number, double, nullable, required — Offset in milliseconds applied to the start of the history query interval. Only applicable for connectors with historian capabilities. When null and item is in a group, inherits from group settings. Negative values extend the window backwards (equivalent to the old overlap behaviour).
      - `endTimeOffset` number, double, nullable, required — Offset in milliseconds applied to the end of the history query interval. Only applicable for connectors with historian capabilities. When null and item is in a group, inherits from group settings. If the resulting end time is not after the effective start time, the query is skipped.
      - `recoveryStrategy` 'oldest' | 'newest', required — Recovery strategy used when a south connector reconnects after a long disconnection. - 'oldest': fill the gap from oldest to newest (default behaviour). - 'newest': fill the gap from newest to oldest so that recent data arrives first.
    - `groups` SouthItemGroupCommandDTO[], required — List of groups used to gather items
      - `id` string, nullable, required — The ID of the group (null when creating a new group).
      - `standardSettings` object, required
        - `scanModeId` string, required — The ID of the scan mode to use for this group.
        - `name` string, required — The name of the group.
      - `historySettings` object, required
        - `recoveryStrategy` 'oldest' | 'newest', required — Recovery strategy used when a south connector reconnects after a long disconnection. - 'oldest': fill the gap from oldest to newest (default behaviour). - 'newest': fill the gap from newest to oldest so that recent data arrives first.
        - `readDelay` number, double, nullable, required — Read delay in milliseconds before querying historical data.
        - `maxReadInterval` number, double, nullable, required — Maximum read interval in seconds for historical queries.
        - `endTimeOffset` number, double, nullable, required — Offset in milliseconds applied to the end of the history query interval. If the resulting end time is not after the effective start time, the query is skipped.
        - `startTimeOffset` number, double, nullable, required — Offset in milliseconds applied to the start of the history query interval. Negative values extend the window backwards (equivalent to the old overlap behaviour).
  - SouthConnectorSFTPCommandDTO — South connector command for SFTP file transfer.
    - `name` string, required — The name of the South connector.
    - `type` 'sftp', required — The type of the South connector.
    - `description` string, required — Description of the South connector's purpose.
    - `enabled` boolean, required — Whether the South connector should be enabled.
    - `settings` SouthSFTPSettings, required
      - `host` string, required
      - `port` number, double, required
      - `authentication` 'password' | 'private-key', required
      - `username` string, required
      - `password` string, nullable
      - `privateKey` string
      - `passphrase` string, nullable
      - `compression` boolean, required
      - `retryInterval` number, double, required
    - `items` SouthConnectorSFTPItemCommandDTO[], required — List of items (data points) to configure for this connector.
      - `id` string, nullable, required — The ID of the item (null when creating a new item).
      - `enabled` boolean, required — Whether this item should be enabled.
      - `name` string, required — The name of the item.
      - `settings` SouthSFTPItemSettings, required
        - `remoteFolder` string, required
        - `regex` string, required
        - `minAge` number, double, required
        - `preserveFiles` boolean, required
        - `ignoreModifiedDate` boolean
        - `maxFiles` number, double, required
        - `maxSize` number, double, required
        - `recursive` boolean, required
      - `scanModeId` string, nullable, required — The ID of the scan mode to use for this item. Null when the scan mode should be determined by the system.
      - `scanModeName` string, nullable, required — The name of the scan mode to use when ID is not available. Null when not specifying by name.
      - `groupId` string, nullable, required — The ID of the group this item belongs to. Null when the item is not in any group.
      - `groupName` string, nullable, required — The name of the group this item belongs to. Used when importing from CSV where group IDs are not available. Null when the item is not in any group.
      - `syncWithGroup` boolean, required — Whether this item syncs its historian settings with its group. When true, historian fields are inherited from the group.
      - `maxReadInterval` number, double, nullable, required — Maximum read interval in seconds for historical queries. Only applicable for connectors with historian capabilities. When null and item is in a group, inherits from group settings.
      - `readDelay` number, double, nullable, required — Read delay in milliseconds before querying historical data. Only applicable for connectors with historian capabilities. When null and item is in a group, inherits from group settings.
      - `startTimeOffset` number, double, nullable, required — Offset in milliseconds applied to the start of the history query interval. Only applicable for connectors with historian capabilities. When null and item is in a group, inherits from group settings. Negative values extend the window backwards (equivalent to the old overlap behaviour).
      - `endTimeOffset` number, double, nullable, required — Offset in milliseconds applied to the end of the history query interval. Only applicable for connectors with historian capabilities. When null and item is in a group, inherits from group settings. If the resulting end time is not after the effective start time, the query is skipped.
      - `recoveryStrategy` 'oldest' | 'newest', required — Recovery strategy used when a south connector reconnects after a long disconnection. - 'oldest': fill the gap from oldest to newest (default behaviour). - 'newest': fill the gap from newest to oldest so that recent data arrives first.
    - `groups` SouthItemGroupCommandDTO[], required — List of groups used to gather items
      - `id` string, nullable, required — The ID of the group (null when creating a new group).
      - `standardSettings` object, required
        - `scanModeId` string, required — The ID of the scan mode to use for this group.
        - `name` string, required — The name of the group.
      - `historySettings` object, required
        - `recoveryStrategy` 'oldest' | 'newest', required — Recovery strategy used when a south connector reconnects after a long disconnection. - 'oldest': fill the gap from oldest to newest (default behaviour). - 'newest': fill the gap from newest to oldest so that recent data arrives first.
        - `readDelay` number, double, nullable, required — Read delay in milliseconds before querying historical data.
        - `maxReadInterval` number, double, nullable, required — Maximum read interval in seconds for historical queries.
        - `endTimeOffset` number, double, nullable, required — Offset in milliseconds applied to the end of the history query interval. If the resulting end time is not after the effective start time, the query is skipped.
        - `startTimeOffset` number, double, nullable, required — Offset in milliseconds applied to the start of the history query interval. Negative values extend the window backwards (equivalent to the old overlap behaviour).
  - SouthConnectorSQLiteCommandDTO — South connector command for SQLite.
    - `name` string, required — The name of the South connector.
    - `type` 'sqlite', required — The type of the South connector.
    - `description` string, required — Description of the South connector's purpose.
    - `enabled` boolean, required — Whether the South connector should be enabled.
    - `settings` SouthSQLiteSettings, required
      - `databasePath` string, required
    - `items` SouthConnectorSQLiteItemCommandDTO[], required — List of items (data points) to configure for this connector.
      - `id` string, nullable, required — The ID of the item (null when creating a new item).
      - `enabled` boolean, required — Whether this item should be enabled.
      - `name` string, required — The name of the item.
      - `settings` SouthSQLiteItemSettings, required
        - `query` string, required
        - `trackingInstant` SouthSQLiteItemSettingsTrackingInstant, required
          - `trackInstant` boolean, required
          - `fieldName` string
          - `dateTimeInput` SouthSQLiteItemSettingsTrackingInstantDateTimeInput
            - `type` 'string' | 'iso-string' | 'unix-epoch' | 'unix-epoch-ms', required
            - `timezone` string — Represents a timezone as an IANA timezone string.
            - `format` string
            - `locale` string
      - `scanModeId` string, nullable, required — The ID of the scan mode to use for this item. Null when the scan mode should be determined by the system.
      - `scanModeName` string, nullable, required — The name of the scan mode to use when ID is not available. Null when not specifying by name.
      - `groupId` string, nullable, required — The ID of the group this item belongs to. Null when the item is not in any group.
      - `groupName` string, nullable, required — The name of the group this item belongs to. Used when importing from CSV where group IDs are not available. Null when the item is not in any group.
      - `syncWithGroup` boolean, required — Whether this item syncs its historian settings with its group. When true, historian fields are inherited from the group.
      - `maxReadInterval` number, double, nullable, required — Maximum read interval in seconds for historical queries. Only applicable for connectors with historian capabilities. When null and item is in a group, inherits from group settings.
      - `readDelay` number, double, nullable, required — Read delay in milliseconds before querying historical data. Only applicable for connectors with historian capabilities. When null and item is in a group, inherits from group settings.
      - `startTimeOffset` number, double, nullable, required — Offset in milliseconds applied to the start of the history query interval. Only applicable for connectors with historian capabilities. When null and item is in a group, inherits from group settings. Negative values extend the window backwards (equivalent to the old overlap behaviour).
      - `endTimeOffset` number, double, nullable, required — Offset in milliseconds applied to the end of the history query interval. Only applicable for connectors with historian capabilities. When null and item is in a group, inherits from group settings. If the resulting end time is not after the effective start time, the query is skipped.
      - `recoveryStrategy` 'oldest' | 'newest', required — Recovery strategy used when a south connector reconnects after a long disconnection. - 'oldest': fill the gap from oldest to newest (default behaviour). - 'newest': fill the gap from newest to oldest so that recent data arrives first.
    - `groups` SouthItemGroupCommandDTO[], required — List of groups used to gather items
      - `id` string, nullable, required — The ID of the group (null when creating a new group).
      - `standardSettings` object, required
        - `scanModeId` string, required — The ID of the scan mode to use for this group.
        - `name` string, required — The name of the group.
      - `historySettings` object, required
        - `recoveryStrategy` 'oldest' | 'newest', required — Recovery strategy used when a south connector reconnects after a long disconnection. - 'oldest': fill the gap from oldest to newest (default behaviour). - 'newest': fill the gap from newest to oldest so that recent data arrives first.
        - `readDelay` number, double, nullable, required — Read delay in milliseconds before querying historical data.
        - `maxReadInterval` number, double, nullable, required — Maximum read interval in seconds for historical queries.
        - `endTimeOffset` number, double, nullable, required — Offset in milliseconds applied to the end of the history query interval. If the resulting end time is not after the effective start time, the query is skipped.
        - `startTimeOffset` number, double, nullable, required — Offset in milliseconds applied to the start of the history query interval. Negative values extend the window backwards (equivalent to the old overlap behaviour).

## Response `201`

Created

- union — Data Transfer Object for a South connector. Contains all configuration details and current state of a South connector.
  - SouthConnectorADSDTO — South connector configuration for Beckhoff ADS.
    - `id` string, required — The unique identifier of the entity.
    - `createdBy` UserInfo, required — Represents the user who performed an action, with a computed display name.
      - `id` string, required — The unique identifier of the user.
      - `friendlyName` string, required — A human-readable display name for the user. "OIAnalytics" for the oianalytics system user, "Admin" for the admin login, or "Firstname Lastname (login)" for regular users.
    - `updatedBy` UserInfo, required — Represents the user who performed an action, with a computed display name.
      - `id` string, required — The unique identifier of the user.
      - `friendlyName` string, required — A human-readable display name for the user. "OIAnalytics" for the oianalytics system user, "Admin" for the admin login, or "Firstname Lastname (login)" for regular users.
    - `createdAt` string, required — Represents an instant in time as an ISO 8601 string.
    - `updatedAt` string, required — Represents an instant in time as an ISO 8601 string.
    - `name` string, required — The name of the South connector.
    - `type` 'ads', required — The type of the South connector.
    - `description` string, required — Description of the South connector's purpose.
    - `enabled` boolean, required — Whether the South connector is enabled and active.
    - `settings` SouthADSSettings, required
      - `netId` string, required
      - `port` number, double, required
      - `routerAddress` string, nullable, required
      - `routerTcpPort` number, double, nullable, required
      - `clientAmsNetId` string, nullable, required
      - `clientAdsPort` number, double, nullable, required
      - `retryInterval` number, double, required
      - `plcName` string, nullable, required
      - `enumAsText` 'text' | 'integer', required
      - `boolAsText` 'text' | 'integer', required
      - `structureFiltering` SouthADSSettingsStructureFiltering[], nullable, required
        - `name` string, required
        - `fields` string, required
    - `items` SouthConnectorADSItemDTO[], required — List of items (data points) configured for this connector.
      - `id` string, required — The unique identifier of the entity.
      - `createdBy` UserInfo, required — Represents the user who performed an action, with a computed display name.
        - `id` string, required — The unique identifier of the user.
        - `friendlyName` string, required — A human-readable display name for the user. "OIAnalytics" for the oianalytics system user, "Admin" for the admin login, or "Firstname Lastname (login)" for regular users.
      - `updatedBy` UserInfo, required — Represents the user who performed an action, with a computed display name.
        - `id` string, required — The unique identifier of the user.
        - `friendlyName` string, required — A human-readable display name for the user. "OIAnalytics" for the oianalytics system user, "Admin" for the admin login, or "Firstname Lastname (login)" for regular users.
      - `createdAt` string, required — Represents an instant in time as an ISO 8601 string.
      - `updatedAt` string, required — Represents an instant in time as an ISO 8601 string.
      - `name` string, required — The name of the item.
      - `enabled` boolean, required — Whether this item is enabled and should be collected.
      - `settings` SouthADSItemSettings, required
        - `address` string, required
      - `scanMode` ScanModeDTO, required — Data Transfer Object for a scan mode. Represents a configured scan mode with its metadata and schedule.
        - `id` string, required — The unique identifier of the entity.
        - `createdBy` UserInfo, required — Represents the user who performed an action, with a computed display name.
          - `id` string, required — The unique identifier of the user.
          - `friendlyName` string, required — A human-readable display name for the user. "OIAnalytics" for the oianalytics system user, "Admin" for the admin login, or "Firstname Lastname (login)" for regular users.
        - `updatedBy` UserInfo, required — Represents the user who performed an action, with a computed display name.
          - `id` string, required — The unique identifier of the user.
          - `friendlyName` string, required — A human-readable display name for the user. "OIAnalytics" for the oianalytics system user, "Admin" for the admin login, or "Firstname Lastname (login)" for regular users.
        - `createdAt` string, required — Represents an instant in time as an ISO 8601 string.
        - `updatedAt` string, required — Represents an instant in time as an ISO 8601 string.
        - `name` string, required — The name of the scan mode.
        - `description` string, required — A description of the scan mode's purpose or behavior.
        - `type` 'cron' | 'interval', required — How a scan mode decides when to tick. - `cron`: driven by a cron expression (the historical behaviour). - `interval`: driven by a fixed period between ticks.
        - `cron` string, required — A cron expression defining the scan schedule. Empty when `type` is `"interval"`.
        - `interval` ScanModeInterval, required — Fixed period between two ticks of an `interval` scan mode.
          - `value` number, double, required — How many `unit`s between two ticks.
          - `unit` 'ms' | 's' | 'min' | 'hour', required
        - `activationWindow` ActivationWindow, required — Optional gate applied on top of the schedule. A tick only fires when it satisfies every configured criterion; the two criteria below are combined with AND. A tick falling outside the window is skipped silently — it is never queued or deferred.
          - `dateRange` ActivationWindowDateRange — Absolute bounds of an activation window. Each side is independently optional: an absent bound means the window is open-ended on that side.
            - `start` string — Represents an instant in time as an ISO 8601 string.
            - `end` string — Represents an instant in time as an ISO 8601 string.
          - `recurring` ActivationWindowRecurring — A civil-time recurrence rule. Unlike the date range, this is not a pair of instants: "Thursday 12:00" shifts by an hour across DST transitions, so the rule carries the IANA timezone it is expressed in and is re-derived at every evaluation.
            - `timezone` string, required — Represents a timezone as an IANA timezone string.
            - `daysOfWeek` number[], nullable — Days on which the window is active, 0 = Sunday … 6 = Saturday. Absent or empty means every day.
            - `timeOfDay` ActivationWindowTimeOfDay — Local time-of-day bounds. `start` is inclusive, `end` is exclusive. When `end` is earlier than `start` the window is overnight and spans into the following day.
              - …
        - `activationWindowExpired` boolean, required — Whether the activation window can never trigger again (for instance its end date is already past). Computed server-side; drives a non-blocking warning in the UI.
      - `group` SouthItemGroupDTO, required — Data Transfer Object for a South item group. Represents a group of items that can share common settings.
        - `id` string, required — The unique identifier of the entity.
        - `createdBy` UserInfo, required — Represents the user who performed an action, with a computed display name.
          - `id` string, required — The unique identifier of the user.
          - `friendlyName` string, required — A human-readable display name for the user. "OIAnalytics" for the oianalytics system user, "Admin" for the admin login, or "Firstname Lastname (login)" for regular users.
        - `updatedBy` UserInfo, required — Represents the user who performed an action, with a computed display name.
          - `id` string, required — The unique identifier of the user.
          - `friendlyName` string, required — A human-readable display name for the user. "OIAnalytics" for the oianalytics system user, "Admin" for the admin login, or "Firstname Lastname (login)" for regular users.
        - `createdAt` string, required — Represents an instant in time as an ISO 8601 string.
        - `updatedAt` string, required — Represents an instant in time as an ISO 8601 string.
        - `standardSettings` object, required
          - `scanMode` ScanModeDTO, required — Data Transfer Object for a scan mode. Represents a configured scan mode with its metadata and schedule.
            - `id` string, required — The unique identifier of the entity.
            - `createdBy` UserInfo, required — Represents the user who performed an action, with a computed display name.
              - …
            - `updatedBy` UserInfo, required — Represents the user who performed an action, with a computed display name.
              - …
            - `createdAt` string, required — Represents an instant in time as an ISO 8601 string.
            - `updatedAt` string, required — Represents an instant in time as an ISO 8601 string.
            - `name` string, required — The name of the scan mode.
            - `description` string, required — A description of the scan mode's purpose or behavior.
            - `type` 'cron' | 'interval', required — How a scan mode decides when to tick. - `cron`: driven by a cron expression (the historical behaviour). - `interval`: driven by a fixed period between ticks.
            - `cron` string, required — A cron expression defining the scan schedule. Empty when `type` is `"interval"`.
            - `interval` ScanModeInterval, required — Fixed period between two ticks of an `interval` scan mode.
              - …
            - `activationWindow` ActivationWindow, required — Optional gate applied on top of the schedule. A tick only fires when it satisfies every configured criterion; the two criteria below are combined with AND. A tick falling outside the window is skipped silently — it is never queued or deferred.
              - …
            - `activationWindowExpired` boolean, required — Whether the activation window can never trigger again (for instance its end date is already past). Computed server-side; drives a non-blocking warning in the UI.
          - `name` string, required — The name of the group.
        - `historySettings` object, required
          - `recoveryStrategy` 'oldest' | 'newest', required — Recovery strategy used when a south connector reconnects after a long disconnection. - 'oldest': fill the gap from oldest to newest (default behaviour). - 'newest': fill the gap from newest to oldest so that recent data arrives first.
          - `readDelay` number, double, nullable, required — Read delay in milliseconds before querying historical data. Only applicable for connectors with historian capabilities.
          - `maxReadInterval` number, double, nullable, required — Maximum read interval in seconds for historical queries. Only applicable for connectors with historian capabilities.
          - `endTimeOffset` number, double, nullable, required — Offset in milliseconds applied to the end of the history query interval. Only applicable for connectors with historian capabilities. If the resulting end time is not after the effective start time, the query is skipped.
          - `startTimeOffset` number, double, nullable, required — Offset in milliseconds applied to the start of the history query interval. Only applicable for connectors with historian capabilities. Negative values extend the window backwards (equivalent to the old overlap behaviour).
      - `syncWithGroup` boolean, required — Whether this item syncs its historian settings with its group. When true, historian fields (maxReadInterval, readDelay, startTimeOffset, endTimeOffset) are inherited from the group.
      - `maxReadInterval` number, double, nullable, required — Maximum read interval in seconds for historical queries. Only applicable for connectors with historian capabilities. When null and item is in a group, inherits from group settings.
      - `readDelay` number, double, nullable, required — Read delay in milliseconds before querying historical data. Only applicable for connectors with historian capabilities. When null and item is in a group, inherits from group settings.
      - `startTimeOffset` number, double, nullable, required — Offset in milliseconds applied to the start of the history query interval. Only applicable for connectors with historian capabilities. When null and item is in a group, inherits from group settings. Negative values extend the window backwards (equivalent to the old overlap behaviour).
      - `endTimeOffset` number, double, nullable, required — Offset in milliseconds applied to the end of the history query interval. Only applicable for connectors with historian capabilities. When null and item is in a group, inherits from group settings. If the resulting end time is not after the effective start time, the query is skipped.
      - `recoveryStrategy` 'oldest' | 'newest', required — Recovery strategy used when a south connector reconnects after a long disconnection. - 'oldest': fill the gap from oldest to newest (default behaviour). - 'newest': fill the gap from newest to oldest so that recent data arrives first.
    - `groups` SouthItemGroupDTO[], required — List of groups attached to this connector
      - `id` string, required — The unique identifier of the entity.
      - `createdBy` UserInfo, required — Represents the user who performed an action, with a computed display name.
        - `id` string, required — The unique identifier of the user.
        - `friendlyName` string, required — A human-readable display name for the user. "OIAnalytics" for the oianalytics system user, "Admin" for the admin login, or "Firstname Lastname (login)" for regular users.
      - `updatedBy` UserInfo, required — Represents the user who performed an action, with a computed display name.
        - `id` string, required — The unique identifier of the user.
        - `friendlyName` string, required — A human-readable display name for the user. "OIAnalytics" for the oianalytics system user, "Admin" for the admin login, or "Firstname Lastname (login)" for regular users.
      - `createdAt` string, required — Represents an instant in time as an ISO 8601 string.
      - `updatedAt` string, required — Represents an instant in time as an ISO 8601 string.
      - `standardSettings` object, required
        - `scanMode` ScanModeDTO, required — Data Transfer Object for a scan mode. Represents a configured scan mode with its metadata and schedule.
          - `id` string, required — The unique identifier of the entity.
          - `createdBy` UserInfo, required — Represents the user who performed an action, with a computed display name.
            - `id` string, required — The unique identifier of the user.
            - `friendlyName` string, required — A human-readable display name for the user. "OIAnalytics" for the oianalytics system user, "Admin" for the admin login, or "Firstname Lastname (login)" for regular users.
          - `updatedBy` UserInfo, required — Represents the user who performed an action, with a computed display name.
            - `id` string, required — The unique identifier of the user.
            - `friendlyName` string, required — A human-readable display name for the user. "OIAnalytics" for the oianalytics system user, "Admin" for the admin login, or "Firstname Lastname (login)" for regular users.
          - `createdAt` string, required — Represents an instant in time as an ISO 8601 string.
          - `updatedAt` string, required — Represents an instant in time as an ISO 8601 string.
          - `name` string, required — The name of the scan mode.
          - `description` string, required — A description of the scan mode's purpose or behavior.
          - `type` 'cron' | 'interval', required — How a scan mode decides when to tick. - `cron`: driven by a cron expression (the historical behaviour). - `interval`: driven by a fixed period between ticks.
          - `cron` string, required — A cron expression defining the scan schedule. Empty when `type` is `"interval"`.
          - `interval` ScanModeInterval, required — Fixed period between two ticks of an `interval` scan mode.
            - `value` number, double, required — How many `unit`s between two ticks.
            - `unit` 'ms' | 's' | 'min' | 'hour', required
          - `activationWindow` ActivationWindow, required — Optional gate applied on top of the schedule. A tick only fires when it satisfies every configured criterion; the two criteria below are combined with AND. A tick falling outside the window is skipped silently — it is never queued or deferred.
            - `dateRange` ActivationWindowDateRange — Absolute bounds of an activation window. Each side is independently optional: an absent bound means the window is open-ended on that side.
              - …
            - `recurring` ActivationWindowRecurring — A civil-time recurrence rule. Unlike the date range, this is not a pair of instants: "Thursday 12:00" shifts by an hour across DST transitions, so the rule carries the IANA timezone it is expressed in and is re-derived at every evaluation.
              - …
          - `activationWindowExpired` boolean, required — Whether the activation window can never trigger again (for instance its end date is already past). Computed server-side; drives a non-blocking warning in the UI.
        - `name` string, required — The name of the group.
      - `historySettings` object, required
        - `recoveryStrategy` 'oldest' | 'newest', required — Recovery strategy used when a south connector reconnects after a long disconnection. - 'oldest': fill the gap from oldest to newest (default behaviour). - 'newest': fill the gap from newest to oldest so that recent data arrives first.
        - `readDelay` number, double, nullable, required — Read delay in milliseconds before querying historical data. Only applicable for connectors with historian capabilities.
        - `maxReadInterval` number, double, nullable, required — Maximum read interval in seconds for historical queries. Only applicable for connectors with historian capabilities.
        - `endTimeOffset` number, double, nullable, required — Offset in milliseconds applied to the end of the history query interval. Only applicable for connectors with historian capabilities. If the resulting end time is not after the effective start time, the query is skipped.
        - `startTimeOffset` number, double, nullable, required — Offset in milliseconds applied to the start of the history query interval. Only applicable for connectors with historian capabilities. Negative values extend the window backwards (equivalent to the old overlap behaviour).
  - SouthConnectorFolderScannerDTO — South connector configuration for the Folder Scanner.
    - `id` string, required — The unique identifier of the entity.
    - `createdBy` UserInfo, required — Represents the user who performed an action, with a computed display name.
      - `id` string, required — The unique identifier of the user.
      - `friendlyName` string, required — A human-readable display name for the user. "OIAnalytics" for the oianalytics system user, "Admin" for the admin login, or "Firstname Lastname (login)" for regular users.
    - `updatedBy` UserInfo, required — Represents the user who performed an action, with a computed display name.
      - `id` string, required — The unique identifier of the user.
      - `friendlyName` string, required — A human-readable display name for the user. "OIAnalytics" for the oianalytics system user, "Admin" for the admin login, or "Firstname Lastname (login)" for regular users.
    - `createdAt` string, required — Represents an instant in time as an ISO 8601 string.
    - `updatedAt` string, required — Represents an instant in time as an ISO 8601 string.
    - `name` string, required — The name of the South connector.
    - `type` 'folder-scanner', required — The type of the South connector.
    - `description` string, required — Description of the South connector's purpose.
    - `enabled` boolean, required — Whether the South connector is enabled and active.
    - `settings` SouthFolderScannerSettings, required
      - `inputFolder` string, required
      - `compression` boolean, required
      - `username` string, nullable
      - `password` string, nullable
      - `domain` string, nullable
    - `items` SouthConnectorFolderScannerItemDTO[], required — List of items (data points) configured for this connector.
      - `id` string, required — The unique identifier of the entity.
      - `createdBy` UserInfo, required — Represents the user who performed an action, with a computed display name.
        - `id` string, required — The unique identifier of the user.
        - `friendlyName` string, required — A human-readable display name for the user. "OIAnalytics" for the oianalytics system user, "Admin" for the admin login, or "Firstname Lastname (login)" for regular users.
      - `updatedBy` UserInfo, required — Represents the user who performed an action, with a computed display name.
        - `id` string, required — The unique identifier of the user.
        - `friendlyName` string, required — A human-readable display name for the user. "OIAnalytics" for the oianalytics system user, "Admin" for the admin login, or "Firstname Lastname (login)" for regular users.
      - `createdAt` string, required — Represents an instant in time as an ISO 8601 string.
      - `updatedAt` string, required — Represents an instant in time as an ISO 8601 string.
      - `name` string, required — The name of the item.
      - `enabled` boolean, required — Whether this item is enabled and should be collected.
      - `settings` SouthFolderScannerItemSettings, required
        - `regex` string, required
        - `minAge` number, double, required
        - `preserveFiles` boolean, required
        - `ignoreModifiedDate` boolean
        - `maxFiles` number, double, required
        - `maxSize` number, double, required
        - `recursive` boolean, required
      - `scanMode` ScanModeDTO, required — Data Transfer Object for a scan mode. Represents a configured scan mode with its metadata and schedule.
        - `id` string, required — The unique identifier of the entity.
        - `createdBy` UserInfo, required — Represents the user who performed an action, with a computed display name.
          - `id` string, required — The unique identifier of the user.
          - `friendlyName` string, required — A human-readable display name for the user. "OIAnalytics" for the oianalytics system user, "Admin" for the admin login, or "Firstname Lastname (login)" for regular users.
        - `updatedBy` UserInfo, required — Represents the user who performed an action, with a computed display name.
          - `id` string, required — The unique identifier of the user.
          - `friendlyName` string, required — A human-readable display name for the user. "OIAnalytics" for the oianalytics system user, "Admin" for the admin login, or "Firstname Lastname (login)" for regular users.
        - `createdAt` string, required — Represents an instant in time as an ISO 8601 string.
        - `updatedAt` string, required — Represents an instant in time as an ISO 8601 string.
        - `name` string, required — The name of the scan mode.
        - `description` string, required — A description of the scan mode's purpose or behavior.
        - `type` 'cron' | 'interval', required — How a scan mode decides when to tick. - `cron`: driven by a cron expression (the historical behaviour). - `interval`: driven by a fixed period between ticks.
        - `cron` string, required — A cron expression defining the scan schedule. Empty when `type` is `"interval"`.
        - `interval` ScanModeInterval, required — Fixed period between two ticks of an `interval` scan mode.
          - `value` number, double, required — How many `unit`s between two ticks.
          - `unit` 'ms' | 's' | 'min' | 'hour', required
        - `activationWindow` ActivationWindow, required — Optional gate applied on top of the schedule. A tick only fires when it satisfies every configured criterion; the two criteria below are combined with AND. A tick falling outside the window is skipped silently — it is never queued or deferred.
          - `dateRange` ActivationWindowDateRange — Absolute bounds of an activation window. Each side is independently optional: an absent bound means the window is open-ended on that side.
            - `start` string — Represents an instant in time as an ISO 8601 string.
            - `end` string — Represents an instant in time as an ISO 8601 string.
          - `recurring` ActivationWindowRecurring — A civil-time recurrence rule. Unlike the date range, this is not a pair of instants: "Thursday 12:00" shifts by an hour across DST transitions, so the rule carries the IANA timezone it is expressed in and is re-derived at every evaluation.
            - `timezone` string, required — Represents a timezone as an IANA timezone string.
            - `daysOfWeek` number[], nullable — Days on which the window is active, 0 = Sunday … 6 = Saturday. Absent or empty means every day.
            - `timeOfDay` ActivationWindowTimeOfDay — Local time-of-day bounds. `start` is inclusive, `end` is exclusive. When `end` is earlier than `start` the window is overnight and spans into the following day.
              - …
        - `activationWindowExpired` boolean, required — Whether the activation window can never trigger again (for instance its end date is already past). Computed server-side; drives a non-blocking warning in the UI.
      - `group` SouthItemGroupDTO, required — Data Transfer Object for a South item group. Represents a group of items that can share common settings.
        - `id` string, required — The unique identifier of the entity.
        - `createdBy` UserInfo, required — Represents the user who performed an action, with a computed display name.
          - `id` string, required — The unique identifier of the user.
          - `friendlyName` string, required — A human-readable display name for the user. "OIAnalytics" for the oianalytics system user, "Admin" for the admin login, or "Firstname Lastname (login)" for regular users.
        - `updatedBy` UserInfo, required — Represents the user who performed an action, with a computed display name.
          - `id` string, required — The unique identifier of the user.
          - `friendlyName` string, required — A human-readable display name for the user. "OIAnalytics" for the oianalytics system user, "Admin" for the admin login, or "Firstname Lastname (login)" for regular users.
        - `createdAt` string, required — Represents an instant in time as an ISO 8601 string.
        - `updatedAt` string, required — Represents an instant in time as an ISO 8601 string.
        - `standardSettings` object, required
          - `scanMode` ScanModeDTO, required — Data Transfer Object for a scan mode. Represents a configured scan mode with its metadata and schedule.
            - `id` string, required — The unique identifier of the entity.
            - `createdBy` UserInfo, required — Represents the user who performed an action, with a computed display name.
              - …
            - `updatedBy` UserInfo, required — Represents the user who performed an action, with a computed display name.
              - …
            - `createdAt` string, required — Represents an instant in time as an ISO 8601 string.
            - `updatedAt` string, required — Represents an instant in time as an ISO 8601 string.
            - `name` string, required — The name of the scan mode.
            - `description` string, required — A description of the scan mode's purpose or behavior.
            - `type` 'cron' | 'interval', required — How a scan mode decides when to tick. - `cron`: driven by a cron expression (the historical behaviour). - `interval`: driven by a fixed period between ticks.
            - `cron` string, required — A cron expression defining the scan schedule. Empty when `type` is `"interval"`.
            - `interval` ScanModeInterval, required — Fixed period between two ticks of an `interval` scan mode.
              - …
            - `activationWindow` ActivationWindow, required — Optional gate applied on top of the schedule. A tick only fires when it satisfies every configured criterion; the two criteria below are combined with AND. A tick falling outside the window is skipped silently — it is never queued or deferred.
              - …
            - `activationWindowExpired` boolean, required — Whether the activation window can never trigger again (for instance its end date is already past). Computed server-side; drives a non-blocking warning in the UI.
          - `name` string, required — The name of the group.
        - `historySettings` object, required
          - `recoveryStrategy` 'oldest' | 'newest', required — Recovery strategy used when a south connector reconnects after a long disconnection. - 'oldest': fill the gap from oldest to newest (default behaviour). - 'newest': fill the gap from newest to oldest so that recent data arrives first.
          - `readDelay` number, double, nullable, required — Read delay in milliseconds before querying historical data. Only applicable for connectors with historian capabilities.
          - `maxReadInterval` number, double, nullable, required — Maximum read interval in seconds for historical queries. Only applicable for connectors with historian capabilities.
          - `endTimeOffset` number, double, nullable, required — Offset in milliseconds applied to the end of the history query interval. Only applicable for connectors with historian capabilities. If the resulting end time is not after the effective start time, the query is skipped.
          - `startTimeOffset` number, double, nullable, required — Offset in milliseconds applied to the start of the history query interval. Only applicable for connectors with historian capabilities. Negative values extend the window backwards (equivalent to the old overlap behaviour).
      - `syncWithGroup` boolean, required — Whether this item syncs its historian settings with its group. When true, historian fields (maxReadInterval, readDelay, startTimeOffset, endTimeOffset) are inherited from the group.
      - `maxReadInterval` number, double, nullable, required — Maximum read interval in seconds for historical queries. Only applicable for connectors with historian capabilities. When null and item is in a group, inherits from group settings.
      - `readDelay` number, double, nullable, required — Read delay in milliseconds before querying historical data. Only applicable for connectors with historian capabilities. When null and item is in a group, inherits from group settings.
      - `startTimeOffset` number, double, nullable, required — Offset in milliseconds applied to the start of the history query interval. Only applicable for connectors with historian capabilities. When null and item is in a group, inherits from group settings. Negative values extend the window backwards (equivalent to the old overlap behaviour).
      - `endTimeOffset` number, double, nullable, required — Offset in milliseconds applied to the end of the history query interval. Only applicable for connectors with historian capabilities. When null and item is in a group, inherits from group settings. If the resulting end time is not after the effective start time, the query is skipped.
      - `recoveryStrategy` 'oldest' | 'newest', required — Recovery strategy used when a south connector reconnects after a long disconnection. - 'oldest': fill the gap from oldest to newest (default behaviour). - 'newest': fill the gap from newest to oldest so that recent data arrives first.
    - `groups` SouthItemGroupDTO[], required — List of groups attached to this connector
      - `id` string, required — The unique identifier of the entity.
      - `createdBy` UserInfo, required — Represents the user who performed an action, with a computed display name.
        - `id` string, required — The unique identifier of the user.
        - `friendlyName` string, required — A human-readable display name for the user. "OIAnalytics" for the oianalytics system user, "Admin" for the admin login, or "Firstname Lastname (login)" for regular users.
      - `updatedBy` UserInfo, required — Represents the user who performed an action, with a computed display name.
        - `id` string, required — The unique identifier of the user.
        - `friendlyName` string, required — A human-readable display name for the user. "OIAnalytics" for the oianalytics system user, "Admin" for the admin login, or "Firstname Lastname (login)" for regular users.
      - `createdAt` string, required — Represents an instant in time as an ISO 8601 string.
      - `updatedAt` string, required — Represents an instant in time as an ISO 8601 string.
      - `standardSettings` object, required
        - `scanMode` ScanModeDTO, required — Data Transfer Object for a scan mode. Represents a configured scan mode with its metadata and schedule.
          - `id` string, required — The unique identifier of the entity.
          - `createdBy` UserInfo, required — Represents the user who performed an action, with a computed display name.
            - `id` string, required — The unique identifier of the user.
            - `friendlyName` string, required — A human-readable display name for the user. "OIAnalytics" for the oianalytics system user, "Admin" for the admin login, or "Firstname Lastname (login)" for regular users.
          - `updatedBy` UserInfo, required — Represents the user who performed an action, with a computed display name.
            - `id` string, required — The unique identifier of the user.
            - `friendlyName` string, required — A human-readable display name for the user. "OIAnalytics" for the oianalytics system user, "Admin" for the admin login, or "Firstname Lastname (login)" for regular users.
          - `createdAt` string, required — Represents an instant in time as an ISO 8601 string.
          - `updatedAt` string, required — Represents an instant in time as an ISO 8601 string.
          - `name` string, required — The name of the scan mode.
          - `description` string, required — A description of the scan mode's purpose or behavior.
          - `type` 'cron' | 'interval', required — How a scan mode decides when to tick. - `cron`: driven by a cron expression (the historical behaviour). - `interval`: driven by a fixed period between ticks.
          - `cron` string, required — A cron expression defining the scan schedule. Empty when `type` is `"interval"`.
          - `interval` ScanModeInterval, required — Fixed period between two ticks of an `interval` scan mode.
            - `value` number, double, required — How many `unit`s between two ticks.
            - `unit` 'ms' | 's' | 'min' | 'hour', required
          - `activationWindow` ActivationWindow, required — Optional gate applied on top of the schedule. A tick only fires when it satisfies every configured criterion; the two criteria below are combined with AND. A tick falling outside the window is skipped silently — it is never queued or deferred.
            - `dateRange` ActivationWindowDateRange — Absolute bounds of an activation window. Each side is independently optional: an absent bound means the window is open-ended on that side.
              - …
            - `recurring` ActivationWindowRecurring — A civil-time recurrence rule. Unlike the date range, this is not a pair of instants: "Thursday 12:00" shifts by an hour across DST transitions, so the rule carries the IANA timezone it is expressed in and is re-derived at every evaluation.
              - …
          - `activationWindowExpired` boolean, required — Whether the activation window can never trigger again (for instance its end date is already past). Computed server-side; drives a non-blocking warning in the UI.
        - `name` string, required — The name of the group.
      - `historySettings` object, required
        - `recoveryStrategy` 'oldest' | 'newest', required — Recovery strategy used when a south connector reconnects after a long disconnection. - 'oldest': fill the gap from oldest to newest (default behaviour). - 'newest': fill the gap from newest to oldest so that recent data arrives first.
        - `readDelay` number, double, nullable, required — Read delay in milliseconds before querying historical data. Only applicable for connectors with historian capabilities.
        - `maxReadInterval` number, double, nullable, required — Maximum read interval in seconds for historical queries. Only applicable for connectors with historian capabilities.
        - `endTimeOffset` number, double, nullable, required — Offset in milliseconds applied to the end of the history query interval. Only applicable for connectors with historian capabilities. If the resulting end time is not after the effective start time, the query is skipped.
        - `startTimeOffset` number, double, nullable, required — Offset in milliseconds applied to the start of the history query interval. Only applicable for connectors with historian capabilities. Negative values extend the window backwards (equivalent to the old overlap behaviour).
  - SouthConnectorFTPDTO — South connector configuration for FTP file transfer.
    - `id` string, required — The unique identifier of the entity.
    - `createdBy` UserInfo, required — Represents the user who performed an action, with a computed display name.
      - `id` string, required — The unique identifier of the user.
      - `friendlyName` string, required — A human-readable display name for the user. "OIAnalytics" for the oianalytics system user, "Admin" for the admin login, or "Firstname Lastname (login)" for regular users.
    - `updatedBy` UserInfo, required — Represents the user who performed an action, with a computed display name.
      - `id` string, required — The unique identifier of the user.
      - `friendlyName` string, required — A human-readable display name for the user. "OIAnalytics" for the oianalytics system user, "Admin" for the admin login, or "Firstname Lastname (login)" for regular users.
    - `createdAt` string, required — Represents an instant in time as an ISO 8601 string.
    - `updatedAt` string, required — Represents an instant in time as an ISO 8601 string.
    - `name` string, required — The name of the South connector.
    - `type` 'ftp', required — The type of the South connector.
    - `description` string, required — Description of the South connector's purpose.
    - `enabled` boolean, required — Whether the South connector is enabled and active.
    - `settings` SouthFTPSettings, required
      - `host` string, required
      - `port` number, double, required
      - `authentication` 'none' | 'password', required
      - `username` string, nullable
      - `password` string, nullable
      - `compression` boolean, required
      - `retryInterval` number, double, required
    - `items` SouthConnectorFTPItemDTO[], required — List of items (data points) configured for this connector.
      - `id` string, required — The unique identifier of the entity.
      - `createdBy` UserInfo, required — Represents the user who performed an action, with a computed display name.
        - `id` string, required — The unique identifier of the user.
        - `friendlyName` string, required — A human-readable display name for the user. "OIAnalytics" for the oianalytics system user, "Admin" for the admin login, or "Firstname Lastname (login)" for regular users.
      - `updatedBy` UserInfo, required — Represents the user who performed an action, with a computed display name.
        - `id` string, required — The unique identifier of the user.
        - `friendlyName` string, required — A human-readable display name for the user. "OIAnalytics" for the oianalytics system user, "Admin" for the admin login, or "Firstname Lastname (login)" for regular users.
      - `createdAt` string, required — Represents an instant in time as an ISO 8601 string.
      - `updatedAt` string, required — Represents an instant in time as an ISO 8601 string.
      - `name` string, required — The name of the item.
      - `enabled` boolean, required — Whether this item is enabled and should be collected.
      - `settings` SouthFTPItemSettings, required
        - `remoteFolder` string, required
        - `regex` string, required
        - `minAge` number, double, required
        - `preserveFiles` boolean, required
        - `ignoreModifiedDate` boolean
        - `maxFiles` number, double, required
        - `maxSize` number, double, required
        - `recursive` boolean, required
      - `scanMode` ScanModeDTO, required — Data Transfer Object for a scan mode. Represents a configured scan mode with its metadata and schedule.
        - `id` string, required — The unique identifier of the entity.
        - `createdBy` UserInfo, required — Represents the user who performed an action, with a computed display name.
          - `id` string, required — The unique identifier of the user.
          - `friendlyName` string, required — A human-readable display name for the user. "OIAnalytics" for the oianalytics system user, "Admin" for the admin login, or "Firstname Lastname (login)" for regular users.
        - `updatedBy` UserInfo, required — Represents the user who performed an action, with a computed display name.
          - `id` string, required — The unique identifier of the user.
          - `friendlyName` string, required — A human-readable display name for the user. "OIAnalytics" for the oianalytics system user, "Admin" for the admin login, or "Firstname Lastname (login)" for regular users.
        - `createdAt` string, required — Represents an instant in time as an ISO 8601 string.
        - `updatedAt` string, required — Represents an instant in time as an ISO 8601 string.
        - `name` string, required — The name of the scan mode.
        - `description` string, required — A description of the scan mode's purpose or behavior.
        - `type` 'cron' | 'interval', required — How a scan mode decides when to tick. - `cron`: driven by a cron expression (the historical behaviour). - `interval`: driven by a fixed period between ticks.
        - `cron` string, required — A cron expression defining the scan schedule. Empty when `type` is `"interval"`.
        - `interval` ScanModeInterval, required — Fixed period between two ticks of an `interval` scan mode.
          - `value` number, double, required — How many `unit`s between two ticks.
          - `unit` 'ms' | 's' | 'min' | 'hour', required
        - `activationWindow` ActivationWindow, required — Optional gate applied on top of the schedule. A tick only fires when it satisfies every configured criterion; the two criteria below are combined with AND. A tick falling outside the window is skipped silently — it is never queued or deferred.
          - `dateRange` ActivationWindowDateRange — Absolute bounds of an activation window. Each side is independently optional: an absent bound means the window is open-ended on that side.
            - `start` string — Represents an instant in time as an ISO 8601 string.
            - `end` string — Represents an instant in time as an ISO 8601 string.
          - `recurring` ActivationWindowRecurring — A civil-time recurrence rule. Unlike the date range, this is not a pair of instants: "Thursday 12:00" shifts by an hour across DST transitions, so the rule carries the IANA timezone it is expressed in and is re-derived at every evaluation.
            - `timezone` string, required — Represents a timezone as an IANA timezone string.
            - `daysOfWeek` number[], nullable — Days on which the window is active, 0 = Sunday … 6 = Saturday. Absent or empty means every day.
            - `timeOfDay` ActivationWindowTimeOfDay — Local time-of-day bounds. `start` is inclusive, `end` is exclusive. When `end` is earlier than `start` the window is overnight and spans into the following day.
              - …
        - `activationWindowExpired` boolean, required — Whether the activation window can never trigger again (for instance its end date is already past). Computed server-side; drives a non-blocking warning in the UI.
      - `group` SouthItemGroupDTO, required — Data Transfer Object for a South item group. Represents a group of items that can share common settings.
        - `id` string, required — The unique identifier of the entity.
        - `createdBy` UserInfo, required — Represents the user who performed an action, with a computed display name.
          - `id` string, required — The unique identifier of the user.
          - `friendlyName` string, required — A human-readable display name for the user. "OIAnalytics" for the oianalytics system user, "Admin" for the admin login, or "Firstname Lastname (login)" for regular users.
        - `updatedBy` UserInfo, required — Represents the user who performed an action, with a computed display name.
          - `id` string, required — The unique identifier of the user.
          - `friendlyName` string, required — A human-readable display name for the user. "OIAnalytics" for the oianalytics system user, "Admin" for the admin login, or "Firstname Lastname (login)" for regular users.
        - `createdAt` string, required — Represents an instant in time as an ISO 8601 string.
        - `updatedAt` string, required — Represents an instant in time as an ISO 8601 string.
        - `standardSettings` object, required
          - `scanMode` ScanModeDTO, required — Data Transfer Object for a scan mode. Represents a configured scan mode with its metadata and schedule.
            - `id` string, required — The unique identifier of the entity.
            - `createdBy` UserInfo, required — Represents the user who performed an action, with a computed display name.
              - …
            - `updatedBy` UserInfo, required — Represents the user who performed an action, with a computed display name.
              - …
            - `createdAt` string, required — Represents an instant in time as an ISO 8601 string.
            - `updatedAt` string, required — Represents an instant in time as an ISO 8601 string.
            - `name` string, required — The name of the scan mode.
            - `description` string, required — A description of the scan mode's purpose or behavior.
            - `type` 'cron' | 'interval', required — How a scan mode decides when to tick. - `cron`: driven by a cron expression (the historical behaviour). - `interval`: driven by a fixed period between ticks.
            - `cron` string, required — A cron expression defining the scan schedule. Empty when `type` is `"interval"`.
            - `interval` ScanModeInterval, required — Fixed period between two ticks of an `interval` scan mode.
              - …
            - `activationWindow` ActivationWindow, required — Optional gate applied on top of the schedule. A tick only fires when it satisfies every configured criterion; the two criteria below are combined with AND. A tick falling outside the window is skipped silently — it is never queued or deferred.
              - …
            - `activationWindowExpired` boolean, required — Whether the activation window can never trigger again (for instance its end date is already past). Computed server-side; drives a non-blocking warning in the UI.
          - `name` string, required — The name of the group.
        - `historySettings` object, required
          - `recoveryStrategy` 'oldest' | 'newest', required — Recovery strategy used when a south connector reconnects after a long disconnection. - 'oldest': fill the gap from oldest to newest (default behaviour). - 'newest': fill the gap from newest to oldest so that recent data arrives first.
          - `readDelay` number, double, nullable, required — Read delay in milliseconds before querying historical data. Only applicable for connectors with historian capabilities.
          - `maxReadInterval` number, double, nullable, required — Maximum read interval in seconds for historical queries. Only applicable for connectors with historian capabilities.
          - `endTimeOffset` number, double, nullable, required — Offset in milliseconds applied to the end of the history query interval. Only applicable for connectors with historian capabilities. If the resulting end time is not after the effective start time, the query is skipped.
          - `startTimeOffset` number, double, nullable, required — Offset in milliseconds applied to the start of the history query interval. Only applicable for connectors with historian capabilities. Negative values extend the window backwards (equivalent to the old overlap behaviour).
      - `syncWithGroup` boolean, required — Whether this item syncs its historian settings with its group. When true, historian fields (maxReadInterval, readDelay, startTimeOffset, endTimeOffset) are inherited from the group.
      - `maxReadInterval` number, double, nullable, required — Maximum read interval in seconds for historical queries. Only applicable for connectors with historian capabilities. When null and item is in a group, inherits from group settings.
      - `readDelay` number, double, nullable, required — Read delay in milliseconds before querying historical data. Only applicable for connectors with historian capabilities. When null and item is in a group, inherits from group settings.
      - `startTimeOffset` number, double, nullable, required — Offset in milliseconds applied to the start of the history query interval. Only applicable for connectors with historian capabilities. When null and item is in a group, inherits from group settings. Negative values extend the window backwards (equivalent to the old overlap behaviour).
      - `endTimeOffset` number, double, nullable, required — Offset in milliseconds applied to the end of the history query interval. Only applicable for connectors with historian capabilities. When null and item is in a group, inherits from group settings. If the resulting end time is not after the effective start time, the query is skipped.
      - `recoveryStrategy` 'oldest' | 'newest', required — Recovery strategy used when a south connector reconnects after a long disconnection. - 'oldest': fill the gap from oldest to newest (default behaviour). - 'newest': fill the gap from newest to oldest so that recent data arrives first.
    - `groups` SouthItemGroupDTO[], required — List of groups attached to this connector
      - `id` string, required — The unique identifier of the entity.
      - `createdBy` UserInfo, required — Represents the user who performed an action, with a computed display name.
        - `id` string, required — The unique identifier of the user.
        - `friendlyName` string, required — A human-readable display name for the user. "OIAnalytics" for the oianalytics system user, "Admin" for the admin login, or "Firstname Lastname (login)" for regular users.
      - `updatedBy` UserInfo, required — Represents the user who performed an action, with a computed display name.
        - `id` string, required — The unique identifier of the user.
        - `friendlyName` string, required — A human-readable display name for the user. "OIAnalytics" for the oianalytics system user, "Admin" for the admin login, or "Firstname Lastname (login)" for regular users.
      - `createdAt` string, required — Represents an instant in time as an ISO 8601 string.
      - `updatedAt` string, required — Represents an instant in time as an ISO 8601 string.
      - `standardSettings` object, required
        - `scanMode` ScanModeDTO, required — Data Transfer Object for a scan mode. Represents a configured scan mode with its metadata and schedule.
          - `id` string, required — The unique identifier of the entity.
          - `createdBy` UserInfo, required — Represents the user who performed an action, with a computed display name.
            - `id` string, required — The unique identifier of the user.
            - `friendlyName` string, required — A human-readable display name for the user. "OIAnalytics" for the oianalytics system user, "Admin" for the admin login, or "Firstname Lastname (login)" for regular users.
          - `updatedBy` UserInfo, required — Represents the user who performed an action, with a computed display name.
            - `id` string, required — The unique identifier of the user.
            - `friendlyName` string, required — A human-readable display name for the user. "OIAnalytics" for the oianalytics system user, "Admin" for the admin login, or "Firstname Lastname (login)" for regular users.
          - `createdAt` string, required — Represents an instant in time as an ISO 8601 string.
          - `updatedAt` string, required — Represents an instant in time as an ISO 8601 string.
          - `name` string, required — The name of the scan mode.
          - `description` string, required — A description of the scan mode's purpose or behavior.
          - `type` 'cron' | 'interval', required — How a scan mode decides when to tick. - `cron`: driven by a cron expression (the historical behaviour). - `interval`: driven by a fixed period between ticks.
          - `cron` string, required — A cron expression defining the scan schedule. Empty when `type` is `"interval"`.
          - `interval` ScanModeInterval, required — Fixed period between two ticks of an `interval` scan mode.
            - `value` number, double, required — How many `unit`s between two ticks.
            - `unit` 'ms' | 's' | 'min' | 'hour', required
          - `activationWindow` ActivationWindow, required — Optional gate applied on top of the schedule. A tick only fires when it satisfies every configured criterion; the two criteria below are combined with AND. A tick falling outside the window is skipped silently — it is never queued or deferred.
            - `dateRange` ActivationWindowDateRange — Absolute bounds of an activation window. Each side is independently optional: an absent bound means the window is open-ended on that side.
              - …
            - `recurring` ActivationWindowRecurring — A civil-time recurrence rule. Unlike the date range, this is not a pair of instants: "Thursday 12:00" shifts by an hour across DST transitions, so the rule carries the IANA timezone it is expressed in and is re-derived at every evaluation.
              - …
          - `activationWindowExpired` boolean, required — Whether the activation window can never trigger again (for instance its end date is already past). Computed server-side; drives a non-blocking warning in the UI.
        - `name` string, required — The name of the group.
      - `historySettings` object, required
        - `recoveryStrategy` 'oldest' | 'newest', required — Recovery strategy used when a south connector reconnects after a long disconnection. - 'oldest': fill the gap from oldest to newest (default behaviour). - 'newest': fill the gap from newest to oldest so that recent data arrives first.
        - `readDelay` number, double, nullable, required — Read delay in milliseconds before querying historical data. Only applicable for connectors with historian capabilities.
        - `maxReadInterval` number, double, nullable, required — Maximum read interval in seconds for historical queries. Only applicable for connectors with historian capabilities.
        - `endTimeOffset` number, double, nullable, required — Offset in milliseconds applied to the end of the history query interval. Only applicable for connectors with historian capabilities. If the resulting end time is not after the effective start time, the query is skipped.
        - `startTimeOffset` number, double, nullable, required — Offset in milliseconds applied to the start of the history query interval. Only applicable for connectors with historian capabilities. Negative values extend the window backwards (equivalent to the old overlap behaviour).
  - SouthConnectorInfluxDBDTO — South connector configuration for InfluxDB time series database.
    - `id` string, required — The unique identifier of the entity.
    - `createdBy` UserInfo, required — Represents the user who performed an action, with a computed display name.
      - `id` string, required — The unique identifier of the user.
      - `friendlyName` string, required — A human-readable display name for the user. "OIAnalytics" for the oianalytics system user, "Admin" for the admin login, or "Firstname Lastname (login)" for regular users.
    - `updatedBy` UserInfo, required — Represents the user who performed an action, with a computed display name.
      - `id` string, required — The unique identifier of the user.
      - `friendlyName` string, required — A human-readable display name for the user. "OIAnalytics" for the oianalytics system user, "Admin" for the admin login, or "Firstname Lastname (login)" for regular users.
    - `createdAt` string, required — Represents an instant in time as an ISO 8601 string.
    - `updatedAt` string, required — Represents an instant in time as an ISO 8601 string.
    - `name` string, required — The name of the South connector.
    - `type` 'influxdb', required — The type of the South connector.
    - `description` string, required — Description of the South connector's purpose.
    - `enabled` boolean, required — Whether the South connector is enabled and active.
    - `settings` SouthInfluxDBSettings, required
      - `version` '1' | '2' | '3', required
      - `host` string
      - `port` number, double
      - `protocol` 'http' | 'https'
      - `database` string
      - `username` string, nullable
      - `password` string, nullable
      - `url` string
      - `token` string, nullable
      - `organisation` string
      - `bucket` string
    - `items` SouthConnectorInfluxDBItemDTO[], required — List of items (data points) configured for this connector.
      - `id` string, required — The unique identifier of the entity.
      - `createdBy` UserInfo, required — Represents the user who performed an action, with a computed display name.
        - `id` string, required — The unique identifier of the user.
        - `friendlyName` string, required — A human-readable display name for the user. "OIAnalytics" for the oianalytics system user, "Admin" for the admin login, or "Firstname Lastname (login)" for regular users.
      - `updatedBy` UserInfo, required — Represents the user who performed an action, with a computed display name.
        - `id` string, required — The unique identifier of the user.
        - `friendlyName` string, required — A human-readable display name for the user. "OIAnalytics" for the oianalytics system user, "Admin" for the admin login, or "Firstname Lastname (login)" for regular users.
      - `createdAt` string, required — Represents an instant in time as an ISO 8601 string.
      - `updatedAt` string, required — Represents an instant in time as an ISO 8601 string.
      - `name` string, required — The name of the item.
      - `enabled` boolean, required — Whether this item is enabled and should be collected.
      - `settings` SouthInfluxDBItemSettings, required
        - `query` string, required
        - `requestTimeout` number, double, required
      - `scanMode` ScanModeDTO, required — Data Transfer Object for a scan mode. Represents a configured scan mode with its metadata and schedule.
        - `id` string, required — The unique identifier of the entity.
        - `createdBy` UserInfo, required — Represents the user who performed an action, with a computed display name.
          - `id` string, required — The unique identifier of the user.
          - `friendlyName` string, required — A human-readable display name for the user. "OIAnalytics" for the oianalytics system user, "Admin" for the admin login, or "Firstname Lastname (login)" for regular users.
        - `updatedBy` UserInfo, required — Represents the user who performed an action, with a computed display name.
          - `id` string, required — The unique identifier of the user.
          - `friendlyName` string, required — A human-readable display name for the user. "OIAnalytics" for the oianalytics system user, "Admin" for the admin login, or "Firstname Lastname (login)" for regular users.
        - `createdAt` string, required — Represents an instant in time as an ISO 8601 string.
        - `updatedAt` string, required — Represents an instant in time as an ISO 8601 string.
        - `name` string, required — The name of the scan mode.
        - `description` string, required — A description of the scan mode's purpose or behavior.
        - `type` 'cron' | 'interval', required — How a scan mode decides when to tick. - `cron`: driven by a cron expression (the historical behaviour). - `interval`: driven by a fixed period between ticks.
        - `cron` string, required — A cron expression defining the scan schedule. Empty when `type` is `"interval"`.
        - `interval` ScanModeInterval, required — Fixed period between two ticks of an `interval` scan mode.
          - `value` number, double, required — How many `unit`s between two ticks.
          - `unit` 'ms' | 's' | 'min' | 'hour', required
        - `activationWindow` ActivationWindow, required — Optional gate applied on top of the schedule. A tick only fires when it satisfies every configured criterion; the two criteria below are combined with AND. A tick falling outside the window is skipped silently — it is never queued or deferred.
          - `dateRange` ActivationWindowDateRange — Absolute bounds of an activation window. Each side is independently optional: an absent bound means the window is open-ended on that side.
            - `start` string — Represents an instant in time as an ISO 8601 string.
            - `end` string — Represents an instant in time as an ISO 8601 string.
          - `recurring` ActivationWindowRecurring — A civil-time recurrence rule. Unlike the date range, this is not a pair of instants: "Thursday 12:00" shifts by an hour across DST transitions, so the rule carries the IANA timezone it is expressed in and is re-derived at every evaluation.
            - `timezone` string, required — Represents a timezone as an IANA timezone string.
            - `daysOfWeek` number[], nullable — Days on which the window is active, 0 = Sunday … 6 = Saturday. Absent or empty means every day.
            - `timeOfDay` ActivationWindowTimeOfDay — Local time-of-day bounds. `start` is inclusive, `end` is exclusive. When `end` is earlier than `start` the window is overnight and spans into the following day.
              - …
        - `activationWindowExpired` boolean, required — Whether the activation window can never trigger again (for instance its end date is already past). Computed server-side; drives a non-blocking warning in the UI.
      - `group` SouthItemGroupDTO, required — Data Transfer Object for a South item group. Represents a group of items that can share common settings.
        - `id` string, required — The unique identifier of the entity.
        - `createdBy` UserInfo, required — Represents the user who performed an action, with a computed display name.
          - `id` string, required — The unique identifier of the user.
          - `friendlyName` string, required — A human-readable display name for the user. "OIAnalytics" for the oianalytics system user, "Admin" for the admin login, or "Firstname Lastname (login)" for regular users.
        - `updatedBy` UserInfo, required — Represents the user who performed an action, with a computed display name.
          - `id` string, required — The unique identifier of the user.
          - `friendlyName` string, required — A human-readable display name for the user. "OIAnalytics" for the oianalytics system user, "Admin" for the admin login, or "Firstname Lastname (login)" for regular users.
        - `createdAt` string, required — Represents an instant in time as an ISO 8601 string.
        - `updatedAt` string, required — Represents an instant in time as an ISO 8601 string.
        - `standardSettings` object, required
          - `scanMode` ScanModeDTO, required — Data Transfer Object for a scan mode. Represents a configured scan mode with its metadata and schedule.
            - `id` string, required — The unique identifier of the entity.
            - `createdBy` UserInfo, required — Represents the user who performed an action, with a computed display name.
              - …
            - `updatedBy` UserInfo, required — Represents the user who performed an action, with a computed display name.
              - …
            - `createdAt` string, required — Represents an instant in time as an ISO 8601 string.
            - `updatedAt` string, required — Represents an instant in time as an ISO 8601 string.
            - `name` string, required — The name of the scan mode.
            - `description` string, required — A description of the scan mode's purpose or behavior.
            - `type` 'cron' | 'interval', required — How a scan mode decides when to tick. - `cron`: driven by a cron expression (the historical behaviour). - `interval`: driven by a fixed period between ticks.
            - `cron` string, required — A cron expression defining the scan schedule. Empty when `type` is `"interval"`.
            - `interval` ScanModeInterval, required — Fixed period between two ticks of an `interval` scan mode.
              - …
            - `activationWindow` ActivationWindow, required — Optional gate applied on top of the schedule. A tick only fires when it satisfies every configured criterion; the two criteria below are combined with AND. A tick falling outside the window is skipped silently — it is never queued or deferred.
              - …
            - `activationWindowExpired` boolean, required — Whether the activation window can never trigger again (for instance its end date is already past). Computed server-side; drives a non-blocking warning in the UI.
          - `name` string, required — The name of the group.
        - `historySettings` object, required
          - `recoveryStrategy` 'oldest' | 'newest', required — Recovery strategy used when a south connector reconnects after a long disconnection. - 'oldest': fill the gap from oldest to newest (default behaviour). - 'newest': fill the gap from newest to oldest so that recent data arrives first.
          - `readDelay` number, double, nullable, required — Read delay in milliseconds before querying historical data. Only applicable for connectors with historian capabilities.
          - `maxReadInterval` number, double, nullable, required — Maximum read interval in seconds for historical queries. Only applicable for connectors with historian capabilities.
          - `endTimeOffset` number, double, nullable, required — Offset in milliseconds applied to the end of the history query interval. Only applicable for connectors with historian capabilities. If the resulting end time is not after the effective start time, the query is skipped.
          - `startTimeOffset` number, double, nullable, required — Offset in milliseconds applied to the start of the history query interval. Only applicable for connectors with historian capabilities. Negative values extend the window backwards (equivalent to the old overlap behaviour).
      - `syncWithGroup` boolean, required — Whether this item syncs its historian settings with its group. When true, historian fields (maxReadInterval, readDelay, startTimeOffset, endTimeOffset) are inherited from the group.
      - `maxReadInterval` number, double, nullable, required — Maximum read interval in seconds for historical queries. Only applicable for connectors with historian capabilities. When null and item is in a group, inherits from group settings.
      - `readDelay` number, double, nullable, required — Read delay in milliseconds before querying historical data. Only applicable for connectors with historian capabilities. When null and item is in a group, inherits from group settings.
      - `startTimeOffset` number, double, nullable, required — Offset in milliseconds applied to the start of the history query interval. Only applicable for connectors with historian capabilities. When null and item is in a group, inherits from group settings. Negative values extend the window backwards (equivalent to the old overlap behaviour).
      - `endTimeOffset` number, double, nullable, required — Offset in milliseconds applied to the end of the history query interval. Only applicable for connectors with historian capabilities. When null and item is in a group, inherits from group settings. If the resulting end time is not after the effective start time, the query is skipped.
      - `recoveryStrategy` 'oldest' | 'newest', required — Recovery strategy used when a south connector reconnects after a long disconnection. - 'oldest': fill the gap from oldest to newest (default behaviour). - 'newest': fill the gap from newest to oldest so that recent data arrives first.
    - `groups` SouthItemGroupDTO[], required — List of groups attached to this connector
      - `id` string, required — The unique identifier of the entity.
      - `createdBy` UserInfo, required — Represents the user who performed an action, with a computed display name.
        - `id` string, required — The unique identifier of the user.
        - `friendlyName` string, required — A human-readable display name for the user. "OIAnalytics" for the oianalytics system user, "Admin" for the admin login, or "Firstname Lastname (login)" for regular users.
      - `updatedBy` UserInfo, required — Represents the user who performed an action, with a computed display name.
        - `id` string, required — The unique identifier of the user.
        - `friendlyName` string, required — A human-readable display name for the user. "OIAnalytics" for the oianalytics system user, "Admin" for the admin login, or "Firstname Lastname (login)" for regular users.
      - `createdAt` string, required — Represents an instant in time as an ISO 8601 string.
      - `updatedAt` string, required — Represents an instant in time as an ISO 8601 string.
      - `standardSettings` object, required
        - `scanMode` ScanModeDTO, required — Data Transfer Object for a scan mode. Represents a configured scan mode with its metadata and schedule.
          - `id` string, required — The unique identifier of the entity.
          - `createdBy` UserInfo, required — Represents the user who performed an action, with a computed display name.
            - `id` string, required — The unique identifier of the user.
            - `friendlyName` string, required — A human-readable display name for the user. "OIAnalytics" for the oianalytics system user, "Admin" for the admin login, or "Firstname Lastname (login)" for regular users.
          - `updatedBy` UserInfo, required — Represents the user who performed an action, with a computed display name.
            - `id` string, required — The unique identifier of the user.
            - `friendlyName` string, required — A human-readable display name for the user. "OIAnalytics" for the oianalytics system user, "Admin" for the admin login, or "Firstname Lastname (login)" for regular users.
          - `createdAt` string, required — Represents an instant in time as an ISO 8601 string.
          - `updatedAt` string, required — Represents an instant in time as an ISO 8601 string.
          - `name` string, required — The name of the scan mode.
          - `description` string, required — A description of the scan mode's purpose or behavior.
          - `type` 'cron' | 'interval', required — How a scan mode decides when to tick. - `cron`: driven by a cron expression (the historical behaviour). - `interval`: driven by a fixed period between ticks.
          - `cron` string, required — A cron expression defining the scan schedule. Empty when `type` is `"interval"`.
          - `interval` ScanModeInterval, required — Fixed period between two ticks of an `interval` scan mode.
            - `value` number, double, required — How many `unit`s between two ticks.
            - `unit` 'ms' | 's' | 'min' | 'hour', required
          - `activationWindow` ActivationWindow, required — Optional gate applied on top of the schedule. A tick only fires when it satisfies every configured criterion; the two criteria below are combined with AND. A tick falling outside the window is skipped silently — it is never queued or deferred.
            - `dateRange` ActivationWindowDateRange — Absolute bounds of an activation window. Each side is independently optional: an absent bound means the window is open-ended on that side.
              - …
            - `recurring` ActivationWindowRecurring — A civil-time recurrence rule. Unlike the date range, this is not a pair of instants: "Thursday 12:00" shifts by an hour across DST transitions, so the rule carries the IANA timezone it is expressed in and is re-derived at every evaluation.
              - …
          - `activationWindowExpired` boolean, required — Whether the activation window can never trigger again (for instance its end date is already past). Computed server-side; drives a non-blocking warning in the UI.
        - `name` string, required — The name of the group.
      - `historySettings` object, required
        - `recoveryStrategy` 'oldest' | 'newest', required — Recovery strategy used when a south connector reconnects after a long disconnection. - 'oldest': fill the gap from oldest to newest (default behaviour). - 'newest': fill the gap from newest to oldest so that recent data arrives first.
        - `readDelay` number, double, nullable, required — Read delay in milliseconds before querying historical data. Only applicable for connectors with historian capabilities.
        - `maxReadInterval` number, double, nullable, required — Maximum read interval in seconds for historical queries. Only applicable for connectors with historian capabilities.
        - `endTimeOffset` number, double, nullable, required — Offset in milliseconds applied to the end of the history query interval. Only applicable for connectors with historian capabilities. If the resulting end time is not after the effective start time, the query is skipped.
        - `startTimeOffset` number, double, nullable, required — Offset in milliseconds applied to the start of the history query interval. Only applicable for connectors with historian capabilities. Negative values extend the window backwards (equivalent to the old overlap behaviour).
  - SouthConnectorModbusDTO — South connector configuration for Modbus.
    - `id` string, required — The unique identifier of the entity.
    - `createdBy` UserInfo, required — Represents the user who performed an action, with a computed display name.
      - `id` string, required — The unique identifier of the user.
      - `friendlyName` string, required — A human-readable display name for the user. "OIAnalytics" for the oianalytics system user, "Admin" for the admin login, or "Firstname Lastname (login)" for regular users.
    - `updatedBy` UserInfo, required — Represents the user who performed an action, with a computed display name.
      - `id` string, required — The unique identifier of the user.
      - `friendlyName` string, required — A human-readable display name for the user. "OIAnalytics" for the oianalytics system user, "Admin" for the admin login, or "Firstname Lastname (login)" for regular users.
    - `createdAt` string, required — Represents an instant in time as an ISO 8601 string.
    - `updatedAt` string, required — Represents an instant in time as an ISO 8601 string.
    - `name` string, required — The name of the South connector.
    - `type` 'modbus', required — The type of the South connector.
    - `description` string, required — Description of the South connector's purpose.
    - `enabled` boolean, required — Whether the South connector is enabled and active.
    - `settings` SouthModbusSettings, required
      - `host` string, required
      - `port` number, double, required
      - `connectTimeout` number, double, required
      - `networkTimeout` number, double, required
      - `retryInterval` number, double, required
      - `slaveId` number, double, required
      - `addressOffset` 'modbus' | 'jbus', required
      - `endianness` 'big-endian' | 'little-endian', required
      - `swapBytesInWords` boolean, required
      - `swapWordsInDWords` boolean, required
      - `batchQuery` boolean, required
      - `groupingGap` number, double
    - `items` SouthConnectorModbusItemDTO[], required — List of items (data points) configured for this connector.
      - `id` string, required — The unique identifier of the entity.
      - `createdBy` UserInfo, required — Represents the user who performed an action, with a computed display name.
        - `id` string, required — The unique identifier of the user.
        - `friendlyName` string, required — A human-readable display name for the user. "OIAnalytics" for the oianalytics system user, "Admin" for the admin login, or "Firstname Lastname (login)" for regular users.
      - `updatedBy` UserInfo, required — Represents the user who performed an action, with a computed display name.
        - `id` string, required — The unique identifier of the user.
        - `friendlyName` string, required — A human-readable display name for the user. "OIAnalytics" for the oianalytics system user, "Admin" for the admin login, or "Firstname Lastname (login)" for regular users.
      - `createdAt` string, required — Represents an instant in time as an ISO 8601 string.
      - `updatedAt` string, required — Represents an instant in time as an ISO 8601 string.
      - `name` string, required — The name of the item.
      - `enabled` boolean, required — Whether this item is enabled and should be collected.
      - `settings` SouthModbusItemSettings, required
        - `address` string, required
        - `modbusType` 'coil' | 'discrete-input' | 'input-register' | 'holding-register', required
        - `data` SouthModbusItemSettingsData
          - `dataType` 'uint16' | 'int16' | 'uint32' | 'int32' | 'big-uint64' | 'big-int64' | 'float' | 'double' | 'bit', required
          - `bitIndex` number, double
          - `multiplierCoefficient` number, double, required
      - `scanMode` ScanModeDTO, required — Data Transfer Object for a scan mode. Represents a configured scan mode with its metadata and schedule.
        - `id` string, required — The unique identifier of the entity.
        - `createdBy` UserInfo, required — Represents the user who performed an action, with a computed display name.
          - `id` string, required — The unique identifier of the user.
          - `friendlyName` string, required — A human-readable display name for the user. "OIAnalytics" for the oianalytics system user, "Admin" for the admin login, or "Firstname Lastname (login)" for regular users.
        - `updatedBy` UserInfo, required — Represents the user who performed an action, with a computed display name.
          - `id` string, required — The unique identifier of the user.
          - `friendlyName` string, required — A human-readable display name for the user. "OIAnalytics" for the oianalytics system user, "Admin" for the admin login, or "Firstname Lastname (login)" for regular users.
        - `createdAt` string, required — Represents an instant in time as an ISO 8601 string.
        - `updatedAt` string, required — Represents an instant in time as an ISO 8601 string.
        - `name` string, required — The name of the scan mode.
        - `description` string, required — A description of the scan mode's purpose or behavior.
        - `type` 'cron' | 'interval', required — How a scan mode decides when to tick. - `cron`: driven by a cron expression (the historical behaviour). - `interval`: driven by a fixed period between ticks.
        - `cron` string, required — A cron expression defining the scan schedule. Empty when `type` is `"interval"`.
        - `interval` ScanModeInterval, required — Fixed period between two ticks of an `interval` scan mode.
          - `value` number, double, required — How many `unit`s between two ticks.
          - `unit` 'ms' | 's' | 'min' | 'hour', required
        - `activationWindow` ActivationWindow, required — Optional gate applied on top of the schedule. A tick only fires when it satisfies every configured criterion; the two criteria below are combined with AND. A tick falling outside the window is skipped silently — it is never queued or deferred.
          - `dateRange` ActivationWindowDateRange — Absolute bounds of an activation window. Each side is independently optional: an absent bound means the window is open-ended on that side.
            - `start` string — Represents an instant in time as an ISO 8601 string.
            - `end` string — Represents an instant in time as an ISO 8601 string.
          - `recurring` ActivationWindowRecurring — A civil-time recurrence rule. Unlike the date range, this is not a pair of instants: "Thursday 12:00" shifts by an hour across DST transitions, so the rule carries the IANA timezone it is expressed in and is re-derived at every evaluation.
            - `timezone` string, required — Represents a timezone as an IANA timezone string.
            - `daysOfWeek` number[], nullable — Days on which the window is active, 0 = Sunday … 6 = Saturday. Absent or empty means every day.
            - `timeOfDay` ActivationWindowTimeOfDay — Local time-of-day bounds. `start` is inclusive, `end` is exclusive. When `end` is earlier than `start` the window is overnight and spans into the following day.
              - …
        - `activationWindowExpired` boolean, required — Whether the activation window can never trigger again (for instance its end date is already past). Computed server-side; drives a non-blocking warning in the UI.
      - `group` SouthItemGroupDTO, required — Data Transfer Object for a South item group. Represents a group of items that can share common settings.
        - `id` string, required — The unique identifier of the entity.
        - `createdBy` UserInfo, required — Represents the user who performed an action, with a computed display name.
          - `id` string, required — The unique identifier of the user.
          - `friendlyName` string, required — A human-readable display name for the user. "OIAnalytics" for the oianalytics system user, "Admin" for the admin login, or "Firstname Lastname (login)" for regular users.
        - `updatedBy` UserInfo, required — Represents the user who performed an action, with a computed display name.
          - `id` string, required — The unique identifier of the user.
          - `friendlyName` string, required — A human-readable display name for the user. "OIAnalytics" for the oianalytics system user, "Admin" for the admin login, or "Firstname Lastname (login)" for regular users.
        - `createdAt` string, required — Represents an instant in time as an ISO 8601 string.
        - `updatedAt` string, required — Represents an instant in time as an ISO 8601 string.
        - `standardSettings` object, required
          - `scanMode` ScanModeDTO, required — Data Transfer Object for a scan mode. Represents a configured scan mode with its metadata and schedule.
            - `id` string, required — The unique identifier of the entity.
            - `createdBy` UserInfo, required — Represents the user who performed an action, with a computed display name.
              - …
            - `updatedBy` UserInfo, required — Represents the user who performed an action, with a computed display name.
              - …
            - `createdAt` string, required — Represents an instant in time as an ISO 8601 string.
            - `updatedAt` string, required — Represents an instant in time as an ISO 8601 string.
            - `name` string, required — The name of the scan mode.
            - `description` string, required — A description of the scan mode's purpose or behavior.
            - `type` 'cron' | 'interval', required — How a scan mode decides when to tick. - `cron`: driven by a cron expression (the historical behaviour). - `interval`: driven by a fixed period between ticks.
            - `cron` string, required — A cron expression defining the scan schedule. Empty when `type` is `"interval"`.
            - `interval` ScanModeInterval, required — Fixed period between two ticks of an `interval` scan mode.
              - …
            - `activationWindow` ActivationWindow, required — Optional gate applied on top of the schedule. A tick only fires when it satisfies every configured criterion; the two criteria below are combined with AND. A tick falling outside the window is skipped silently — it is never queued or deferred.
              - …
            - `activationWindowExpired` boolean, required — Whether the activation window can never trigger again (for instance its end date is already past). Computed server-side; drives a non-blocking warning in the UI.
          - `name` string, required — The name of the group.
        - `historySettings` object, required
          - `recoveryStrategy` 'oldest' | 'newest', required — Recovery strategy used when a south connector reconnects after a long disconnection. - 'oldest': fill the gap from oldest to newest (default behaviour). - 'newest': fill the gap from newest to oldest so that recent data arrives first.
          - `readDelay` number, double, nullable, required — Read delay in milliseconds before querying historical data. Only applicable for connectors with historian capabilities.
          - `maxReadInterval` number, double, nullable, required — Maximum read interval in seconds for historical queries. Only applicable for connectors with historian capabilities.
          - `endTimeOffset` number, double, nullable, required — Offset in milliseconds applied to the end of the history query interval. Only applicable for connectors with historian capabilities. If the resulting end time is not after the effective start time, the query is skipped.
          - `startTimeOffset` number, double, nullable, required — Offset in milliseconds applied to the start of the history query interval. Only applicable for connectors with historian capabilities. Negative values extend the window backwards (equivalent to the old overlap behaviour).
      - `syncWithGroup` boolean, required — Whether this item syncs its historian settings with its group. When true, historian fields (maxReadInterval, readDelay, startTimeOffset, endTimeOffset) are inherited from the group.
      - `maxReadInterval` number, double, nullable, required — Maximum read interval in seconds for historical queries. Only applicable for connectors with historian capabilities. When null and item is in a group, inherits from group settings.
      - `readDelay` number, double, nullable, required — Read delay in milliseconds before querying historical data. Only applicable for connectors with historian capabilities. When null and item is in a group, inherits from group settings.
      - `startTimeOffset` number, double, nullable, required — Offset in milliseconds applied to the start of the history query interval. Only applicable for connectors with historian capabilities. When null and item is in a group, inherits from group settings. Negative values extend the window backwards (equivalent to the old overlap behaviour).
      - `endTimeOffset` number, double, nullable, required — Offset in milliseconds applied to the end of the history query interval. Only applicable for connectors with historian capabilities. When null and item is in a group, inherits from group settings. If the resulting end time is not after the effective start time, the query is skipped.
      - `recoveryStrategy` 'oldest' | 'newest', required — Recovery strategy used when a south connector reconnects after a long disconnection. - 'oldest': fill the gap from oldest to newest (default behaviour). - 'newest': fill the gap from newest to oldest so that recent data arrives first.
    - `groups` SouthItemGroupDTO[], required — List of groups attached to this connector
      - `id` string, required — The unique identifier of the entity.
      - `createdBy` UserInfo, required — Represents the user who performed an action, with a computed display name.
        - `id` string, required — The unique identifier of the user.
        - `friendlyName` string, required — A human-readable display name for the user. "OIAnalytics" for the oianalytics system user, "Admin" for the admin login, or "Firstname Lastname (login)" for regular users.
      - `updatedBy` UserInfo, required — Represents the user who performed an action, with a computed display name.
        - `id` string, required — The unique identifier of the user.
        - `friendlyName` string, required — A human-readable display name for the user. "OIAnalytics" for the oianalytics system user, "Admin" for the admin login, or "Firstname Lastname (login)" for regular users.
      - `createdAt` string, required — Represents an instant in time as an ISO 8601 string.
      - `updatedAt` string, required — Represents an instant in time as an ISO 8601 string.
      - `standardSettings` object, required
        - `scanMode` ScanModeDTO, required — Data Transfer Object for a scan mode. Represents a configured scan mode with its metadata and schedule.
          - `id` string, required — The unique identifier of the entity.
          - `createdBy` UserInfo, required — Represents the user who performed an action, with a computed display name.
            - `id` string, required — The unique identifier of the user.
            - `friendlyName` string, required — A human-readable display name for the user. "OIAnalytics" for the oianalytics system user, "Admin" for the admin login, or "Firstname Lastname (login)" for regular users.
          - `updatedBy` UserInfo, required — Represents the user who performed an action, with a computed display name.
            - `id` string, required — The unique identifier of the user.
            - `friendlyName` string, required — A human-readable display name for the user. "OIAnalytics" for the oianalytics system user, "Admin" for the admin login, or "Firstname Lastname (login)" for regular users.
          - `createdAt` string, required — Represents an instant in time as an ISO 8601 string.
          - `updatedAt` string, required — Represents an instant in time as an ISO 8601 string.
          - `name` string, required — The name of the scan mode.
          - `description` string, required — A description of the scan mode's purpose or behavior.
          - `type` 'cron' | 'interval', required — How a scan mode decides when to tick. - `cron`: driven by a cron expression (the historical behaviour). - `interval`: driven by a fixed period between ticks.
          - `cron` string, required — A cron expression defining the scan schedule. Empty when `type` is `"interval"`.
          - `interval` ScanModeInterval, required — Fixed period between two ticks of an `interval` scan mode.
            - `value` number, double, required — How many `unit`s between two ticks.
            - `unit` 'ms' | 's' | 'min' | 'hour', required
          - `activationWindow` ActivationWindow, required — Optional gate applied on top of the schedule. A tick only fires when it satisfies every configured criterion; the two criteria below are combined with AND. A tick falling outside the window is skipped silently — it is never queued or deferred.
            - `dateRange` ActivationWindowDateRange — Absolute bounds of an activation window. Each side is independently optional: an absent bound means the window is open-ended on that side.
              - …
            - `recurring` ActivationWindowRecurring — A civil-time recurrence rule. Unlike the date range, this is not a pair of instants: "Thursday 12:00" shifts by an hour across DST transitions, so the rule carries the IANA timezone it is expressed in and is re-derived at every evaluation.
              - …
          - `activationWindowExpired` boolean, required — Whether the activation window can never trigger again (for instance its end date is already past). Computed server-side; drives a non-blocking warning in the UI.
        - `name` string, required — The name of the group.
      - `historySettings` object, required
        - `recoveryStrategy` 'oldest' | 'newest', required — Recovery strategy used when a south connector reconnects after a long disconnection. - 'oldest': fill the gap from oldest to newest (default behaviour). - 'newest': fill the gap from newest to oldest so that recent data arrives first.
        - `readDelay` number, double, nullable, required — Read delay in milliseconds before querying historical data. Only applicable for connectors with historian capabilities.
        - `maxReadInterval` number, double, nullable, required — Maximum read interval in seconds for historical queries. Only applicable for connectors with historian capabilities.
        - `endTimeOffset` number, double, nullable, required — Offset in milliseconds applied to the end of the history query interval. Only applicable for connectors with historian capabilities. If the resulting end time is not after the effective start time, the query is skipped.
        - `startTimeOffset` number, double, nullable, required — Offset in milliseconds applied to the start of the history query interval. Only applicable for connectors with historian capabilities. Negative values extend the window backwards (equivalent to the old overlap behaviour).
  - SouthConnectorMongoDBDTO — South connector configuration for MongoDB.
    - `id` string, required — The unique identifier of the entity.
    - `createdBy` UserInfo, required — Represents the user who performed an action, with a computed display name.
      - `id` string, required — The unique identifier of the user.
      - `friendlyName` string, required — A human-readable display name for the user. "OIAnalytics" for the oianalytics system user, "Admin" for the admin login, or "Firstname Lastname (login)" for regular users.
    - `updatedBy` UserInfo, required — Represents the user who performed an action, with a computed display name.
      - `id` string, required — The unique identifier of the user.
      - `friendlyName` string, required — A human-readable display name for the user. "OIAnalytics" for the oianalytics system user, "Admin" for the admin login, or "Firstname Lastname (login)" for regular users.
    - `createdAt` string, required — Represents an instant in time as an ISO 8601 string.
    - `updatedAt` string, required — Represents an instant in time as an ISO 8601 string.
    - `name` string, required — The name of the South connector.
    - `type` 'mongodb', required — The type of the South connector.
    - `description` string, required — Description of the South connector's purpose.
    - `enabled` boolean, required — Whether the South connector is enabled and active.
    - `settings` SouthMongoDBSettings, required
      - `connectionString` string, required
      - `connectionTimeout` number, double, required
      - `username` string, nullable, required
      - `password` string, nullable, required
    - `items` SouthConnectorMongoDBItemDTO[], required — List of items (data points) configured for this connector.
      - `id` string, required — The unique identifier of the entity.
      - `createdBy` UserInfo, required — Represents the user who performed an action, with a computed display name.
        - `id` string, required — The unique identifier of the user.
        - `friendlyName` string, required — A human-readable display name for the user. "OIAnalytics" for the oianalytics system user, "Admin" for the admin login, or "Firstname Lastname (login)" for regular users.
      - `updatedBy` UserInfo, required — Represents the user who performed an action, with a computed display name.
        - `id` string, required — The unique identifier of the user.
        - `friendlyName` string, required — A human-readable display name for the user. "OIAnalytics" for the oianalytics system user, "Admin" for the admin login, or "Firstname Lastname (login)" for regular users.
      - `createdAt` string, required — Represents an instant in time as an ISO 8601 string.
      - `updatedAt` string, required — Represents an instant in time as an ISO 8601 string.
      - `name` string, required — The name of the item.
      - `enabled` boolean, required — Whether this item is enabled and should be collected.
      - `settings` SouthMongoDBItemSettings, required
        - `collection` string, required
        - `queryType` 'find' | 'aggregation', required
        - `query` string, required
        - `sort` string, required
        - `trackingInstant` SouthMongoDBItemSettingsTrackingInstant, required
          - `trackInstant` boolean, required
          - `jsonPath` string
          - `dateTimeInput` SouthMongoDBItemSettingsTrackingInstantDateTimeInput
            - `type` 'string' | 'timestamp' | 'iso-string' | 'unix-epoch' | 'unix-epoch-ms', required
            - `timezone` string — Represents a timezone as an IANA timezone string.
            - `format` string
            - `locale` string
      - `scanMode` ScanModeDTO, required — Data Transfer Object for a scan mode. Represents a configured scan mode with its metadata and schedule.
        - `id` string, required — The unique identifier of the entity.
        - `createdBy` UserInfo, required — Represents the user who performed an action, with a computed display name.
          - `id` string, required — The unique identifier of the user.
          - `friendlyName` string, required — A human-readable display name for the user. "OIAnalytics" for the oianalytics system user, "Admin" for the admin login, or "Firstname Lastname (login)" for regular users.
        - `updatedBy` UserInfo, required — Represents the user who performed an action, with a computed display name.
          - `id` string, required — The unique identifier of the user.
          - `friendlyName` string, required — A human-readable display name for the user. "OIAnalytics" for the oianalytics system user, "Admin" for the admin login, or "Firstname Lastname (login)" for regular users.
        - `createdAt` string, required — Represents an instant in time as an ISO 8601 string.
        - `updatedAt` string, required — Represents an instant in time as an ISO 8601 string.
        - `name` string, required — The name of the scan mode.
        - `description` string, required — A description of the scan mode's purpose or behavior.
        - `type` 'cron' | 'interval', required — How a scan mode decides when to tick. - `cron`: driven by a cron expression (the historical behaviour). - `interval`: driven by a fixed period between ticks.
        - `cron` string, required — A cron expression defining the scan schedule. Empty when `type` is `"interval"`.
        - `interval` ScanModeInterval, required — Fixed period between two ticks of an `interval` scan mode.
          - `value` number, double, required — How many `unit`s between two ticks.
          - `unit` 'ms' | 's' | 'min' | 'hour', required
        - `activationWindow` ActivationWindow, required — Optional gate applied on top of the schedule. A tick only fires when it satisfies every configured criterion; the two criteria below are combined with AND. A tick falling outside the window is skipped silently — it is never queued or deferred.
          - `dateRange` ActivationWindowDateRange — Absolute bounds of an activation window. Each side is independently optional: an absent bound means the window is open-ended on that side.
            - `start` string — Represents an instant in time as an ISO 8601 string.
            - `end` string — Represents an instant in time as an ISO 8601 string.
          - `recurring` ActivationWindowRecurring — A civil-time recurrence rule. Unlike the date range, this is not a pair of instants: "Thursday 12:00" shifts by an hour across DST transitions, so the rule carries the IANA timezone it is expressed in and is re-derived at every evaluation.
            - `timezone` string, required — Represents a timezone as an IANA timezone string.
            - `daysOfWeek` number[], nullable — Days on which the window is active, 0 = Sunday … 6 = Saturday. Absent or empty means every day.
            - `timeOfDay` ActivationWindowTimeOfDay — Local time-of-day bounds. `start` is inclusive, `end` is exclusive. When `end` is earlier than `start` the window is overnight and spans into the following day.
              - …
        - `activationWindowExpired` boolean, required — Whether the activation window can never trigger again (for instance its end date is already past). Computed server-side; drives a non-blocking warning in the UI.
      - `group` SouthItemGroupDTO, required — Data Transfer Object for a South item group. Represents a group of items that can share common settings.
        - `id` string, required — The unique identifier of the entity.
        - `createdBy` UserInfo, required — Represents the user who performed an action, with a computed display name.
          - `id` string, required — The unique identifier of the user.
          - `friendlyName` string, required — A human-readable display name for the user. "OIAnalytics" for the oianalytics system user, "Admin" for the admin login, or "Firstname Lastname (login)" for regular users.
        - `updatedBy` UserInfo, required — Represents the user who performed an action, with a computed display name.
          - `id` string, required — The unique identifier of the user.
          - `friendlyName` string, required — A human-readable display name for the user. "OIAnalytics" for the oianalytics system user, "Admin" for the admin login, or "Firstname Lastname (login)" for regular users.
        - `createdAt` string, required — Represents an instant in time as an ISO 8601 string.
        - `updatedAt` string, required — Represents an instant in time as an ISO 8601 string.
        - `standardSettings` object, required
          - `scanMode` ScanModeDTO, required — Data Transfer Object for a scan mode. Represents a configured scan mode with its metadata and schedule.
            - `id` string, required — The unique identifier of the entity.
            - `createdBy` UserInfo, required — Represents the user who performed an action, with a computed display name.
              - …
            - `updatedBy` UserInfo, required — Represents the user who performed an action, with a computed display name.
              - …
            - `createdAt` string, required — Represents an instant in time as an ISO 8601 string.
            - `updatedAt` string, required — Represents an instant in time as an ISO 8601 string.
            - `name` string, required — The name of the scan mode.
            - `description` string, required — A description of the scan mode's purpose or behavior.
            - `type` 'cron' | 'interval', required — How a scan mode decides when to tick. - `cron`: driven by a cron expression (the historical behaviour). - `interval`: driven by a fixed period between ticks.
            - `cron` string, required — A cron expression defining the scan schedule. Empty when `type` is `"interval"`.
            - `interval` ScanModeInterval, required — Fixed period between two ticks of an `interval` scan mode.
              - …
            - `activationWindow` ActivationWindow, required — Optional gate applied on top of the schedule. A tick only fires when it satisfies every configured criterion; the two criteria below are combined with AND. A tick falling outside the window is skipped silently — it is never queued or deferred.
              - …
            - `activationWindowExpired` boolean, required — Whether the activation window can never trigger again (for instance its end date is already past). Computed server-side; drives a non-blocking warning in the UI.
          - `name` string, required — The name of the group.
        - `historySettings` object, required
          - `recoveryStrategy` 'oldest' | 'newest', required — Recovery strategy used when a south connector reconnects after a long disconnection. - 'oldest': fill the gap from oldest to newest (default behaviour). - 'newest': fill the gap from newest to oldest so that recent data arrives first.
          - `readDelay` number, double, nullable, required — Read delay in milliseconds before querying historical data. Only applicable for connectors with historian capabilities.
          - `maxReadInterval` number, double, nullable, required — Maximum read interval in seconds for historical queries. Only applicable for connectors with historian capabilities.
          - `endTimeOffset` number, double, nullable, required — Offset in milliseconds applied to the end of the history query interval. Only applicable for connectors with historian capabilities. If the resulting end time is not after the effective start time, the query is skipped.
          - `startTimeOffset` number, double, nullable, required — Offset in milliseconds applied to the start of the history query interval. Only applicable for connectors with historian capabilities. Negative values extend the window backwards (equivalent to the old overlap behaviour).
      - `syncWithGroup` boolean, required — Whether this item syncs its historian settings with its group. When true, historian fields (maxReadInterval, readDelay, startTimeOffset, endTimeOffset) are inherited from the group.
      - `maxReadInterval` number, double, nullable, required — Maximum read interval in seconds for historical queries. Only applicable for connectors with historian capabilities. When null and item is in a group, inherits from group settings.
      - `readDelay` number, double, nullable, required — Read delay in milliseconds before querying historical data. Only applicable for connectors with historian capabilities. When null and item is in a group, inherits from group settings.
      - `startTimeOffset` number, double, nullable, required — Offset in milliseconds applied to the start of the history query interval. Only applicable for connectors with historian capabilities. When null and item is in a group, inherits from group settings. Negative values extend the window backwards (equivalent to the old overlap behaviour).
      - `endTimeOffset` number, double, nullable, required — Offset in milliseconds applied to the end of the history query interval. Only applicable for connectors with historian capabilities. When null and item is in a group, inherits from group settings. If the resulting end time is not after the effective start time, the query is skipped.
      - `recoveryStrategy` 'oldest' | 'newest', required — Recovery strategy used when a south connector reconnects after a long disconnection. - 'oldest': fill the gap from oldest to newest (default behaviour). - 'newest': fill the gap from newest to oldest so that recent data arrives first.
    - `groups` SouthItemGroupDTO[], required — List of groups attached to this connector
      - `id` string, required — The unique identifier of the entity.
      - `createdBy` UserInfo, required — Represents the user who performed an action, with a computed display name.
        - `id` string, required — The unique identifier of the user.
        - `friendlyName` string, required — A human-readable display name for the user. "OIAnalytics" for the oianalytics system user, "Admin" for the admin login, or "Firstname Lastname (login)" for regular users.
      - `updatedBy` UserInfo, required — Represents the user who performed an action, with a computed display name.
        - `id` string, required — The unique identifier of the user.
        - `friendlyName` string, required — A human-readable display name for the user. "OIAnalytics" for the oianalytics system user, "Admin" for the admin login, or "Firstname Lastname (login)" for regular users.
      - `createdAt` string, required — Represents an instant in time as an ISO 8601 string.
      - `updatedAt` string, required — Represents an instant in time as an ISO 8601 string.
      - `standardSettings` object, required
        - `scanMode` ScanModeDTO, required — Data Transfer Object for a scan mode. Represents a configured scan mode with its metadata and schedule.
          - `id` string, required — The unique identifier of the entity.
          - `createdBy` UserInfo, required — Represents the user who performed an action, with a computed display name.
            - `id` string, required — The unique identifier of the user.
            - `friendlyName` string, required — A human-readable display name for the user. "OIAnalytics" for the oianalytics system user, "Admin" for the admin login, or "Firstname Lastname (login)" for regular users.
          - `updatedBy` UserInfo, required — Represents the user who performed an action, with a computed display name.
            - `id` string, required — The unique identifier of the user.
            - `friendlyName` string, required — A human-readable display name for the user. "OIAnalytics" for the oianalytics system user, "Admin" for the admin login, or "Firstname Lastname (login)" for regular users.
          - `createdAt` string, required — Represents an instant in time as an ISO 8601 string.
          - `updatedAt` string, required — Represents an instant in time as an ISO 8601 string.
          - `name` string, required — The name of the scan mode.
          - `description` string, required — A description of the scan mode's purpose or behavior.
          - `type` 'cron' | 'interval', required — How a scan mode decides when to tick. - `cron`: driven by a cron expression (the historical behaviour). - `interval`: driven by a fixed period between ticks.
          - `cron` string, required — A cron expression defining the scan schedule. Empty when `type` is `"interval"`.
          - `interval` ScanModeInterval, required — Fixed period between two ticks of an `interval` scan mode.
            - `value` number, double, required — How many `unit`s between two ticks.
            - `unit` 'ms' | 's' | 'min' | 'hour', required
          - `activationWindow` ActivationWindow, required — Optional gate applied on top of the schedule. A tick only fires when it satisfies every configured criterion; the two criteria below are combined with AND. A tick falling outside the window is skipped silently — it is never queued or deferred.
            - `dateRange` ActivationWindowDateRange — Absolute bounds of an activation window. Each side is independently optional: an absent bound means the window is open-ended on that side.
              - …
            - `recurring` ActivationWindowRecurring — A civil-time recurrence rule. Unlike the date range, this is not a pair of instants: "Thursday 12:00" shifts by an hour across DST transitions, so the rule carries the IANA timezone it is expressed in and is re-derived at every evaluation.
              - …
          - `activationWindowExpired` boolean, required — Whether the activation window can never trigger again (for instance its end date is already past). Computed server-side; drives a non-blocking warning in the UI.
        - `name` string, required — The name of the group.
      - `historySettings` object, required
        - `recoveryStrategy` 'oldest' | 'newest', required — Recovery strategy used when a south connector reconnects after a long disconnection. - 'oldest': fill the gap from oldest to newest (default behaviour). - 'newest': fill the gap from newest to oldest so that recent data arrives first.
        - `readDelay` number, double, nullable, required — Read delay in milliseconds before querying historical data. Only applicable for connectors with historian capabilities.
        - `maxReadInterval` number, double, nullable, required — Maximum read interval in seconds for historical queries. Only applicable for connectors with historian capabilities.
        - `endTimeOffset` number, double, nullable, required — Offset in milliseconds applied to the end of the history query interval. Only applicable for connectors with historian capabilities. If the resulting end time is not after the effective start time, the query is skipped.
        - `startTimeOffset` number, double, nullable, required — Offset in milliseconds applied to the start of the history query interval. Only applicable for connectors with historian capabilities. Negative values extend the window backwards (equivalent to the old overlap behaviour).
  - SouthConnectorMQTTDTO — South connector configuration for MQTT.
    - `id` string, required — The unique identifier of the entity.
    - `createdBy` UserInfo, required — Represents the user who performed an action, with a computed display name.
      - `id` string, required — The unique identifier of the user.
      - `friendlyName` string, required — A human-readable display name for the user. "OIAnalytics" for the oianalytics system user, "Admin" for the admin login, or "Firstname Lastname (login)" for regular users.
    - `updatedBy` UserInfo, required — Represents the user who performed an action, with a computed display name.
      - `id` string, required — The unique identifier of the user.
      - `friendlyName` string, required — A human-readable display name for the user. "OIAnalytics" for the oianalytics system user, "Admin" for the admin login, or "Firstname Lastname (login)" for regular users.
    - `createdAt` string, required — Represents an instant in time as an ISO 8601 string.
    - `updatedAt` string, required — Represents an instant in time as an ISO 8601 string.
    - `name` string, required — The name of the South connector.
    - `type` 'mqtt', required — The type of the South connector.
    - `description` string, required — Description of the South connector's purpose.
    - `enabled` boolean, required — Whether the South connector is enabled and active.
    - `settings` SouthMQTTSettings, required
      - `url` string, required
      - `qos` '0' | '1' | '2', required
      - `persistent` boolean
      - `authentication` SouthMQTTSettingsAuthentication, required
        - `type` 'none' | 'basic' | 'cert', required
        - `username` string
        - `password` string, nullable
        - `certFilePath` string
        - `keyFilePath` string
        - `caFilePath` string
      - `rejectUnauthorized` boolean, required
      - `reconnectPeriod` number, double, required
      - `connectTimeout` number, double, required
      - `maxNumberOfMessages` number, double, required
      - `flushMessageTimeout` number, double, required
    - `items` SouthConnectorMQTTItemDTO[], required — List of items (data points) configured for this connector.
      - `id` string, required — The unique identifier of the entity.
      - `createdBy` UserInfo, required — Represents the user who performed an action, with a computed display name.
        - `id` string, required — The unique identifier of the user.
        - `friendlyName` string, required — A human-readable display name for the user. "OIAnalytics" for the oianalytics system user, "Admin" for the admin login, or "Firstname Lastname (login)" for regular users.
      - `updatedBy` UserInfo, required — Represents the user who performed an action, with a computed display name.
        - `id` string, required — The unique identifier of the user.
        - `friendlyName` string, required — A human-readable display name for the user. "OIAnalytics" for the oianalytics system user, "Admin" for the admin login, or "Firstname Lastname (login)" for regular users.
      - `createdAt` string, required — Represents an instant in time as an ISO 8601 string.
      - `updatedAt` string, required — Represents an instant in time as an ISO 8601 string.
      - `name` string, required — The name of the item.
      - `enabled` boolean, required — Whether this item is enabled and should be collected.
      - `settings` SouthMQTTItemSettings, required
        - `topic` string, required
      - `scanMode` ScanModeDTO, required — Data Transfer Object for a scan mode. Represents a configured scan mode with its metadata and schedule.
        - `id` string, required — The unique identifier of the entity.
        - `createdBy` UserInfo, required — Represents the user who performed an action, with a computed display name.
          - `id` string, required — The unique identifier of the user.
          - `friendlyName` string, required — A human-readable display name for the user. "OIAnalytics" for the oianalytics system user, "Admin" for the admin login, or "Firstname Lastname (login)" for regular users.
        - `updatedBy` UserInfo, required — Represents the user who performed an action, with a computed display name.
          - `id` string, required — The unique identifier of the user.
          - `friendlyName` string, required — A human-readable display name for the user. "OIAnalytics" for the oianalytics system user, "Admin" for the admin login, or "Firstname Lastname (login)" for regular users.
        - `createdAt` string, required — Represents an instant in time as an ISO 8601 string.
        - `updatedAt` string, required — Represents an instant in time as an ISO 8601 string.
        - `name` string, required — The name of the scan mode.
        - `description` string, required — A description of the scan mode's purpose or behavior.
        - `type` 'cron' | 'interval', required — How a scan mode decides when to tick. - `cron`: driven by a cron expression (the historical behaviour). - `interval`: driven by a fixed period between ticks.
        - `cron` string, required — A cron expression defining the scan schedule. Empty when `type` is `"interval"`.
        - `interval` ScanModeInterval, required — Fixed period between two ticks of an `interval` scan mode.
          - `value` number, double, required — How many `unit`s between two ticks.
          - `unit` 'ms' | 's' | 'min' | 'hour', required
        - `activationWindow` ActivationWindow, required — Optional gate applied on top of the schedule. A tick only fires when it satisfies every configured criterion; the two criteria below are combined with AND. A tick falling outside the window is skipped silently — it is never queued or deferred.
          - `dateRange` ActivationWindowDateRange — Absolute bounds of an activation window. Each side is independently optional: an absent bound means the window is open-ended on that side.
            - `start` string — Represents an instant in time as an ISO 8601 string.
            - `end` string — Represents an instant in time as an ISO 8601 string.
          - `recurring` ActivationWindowRecurring — A civil-time recurrence rule. Unlike the date range, this is not a pair of instants: "Thursday 12:00" shifts by an hour across DST transitions, so the rule carries the IANA timezone it is expressed in and is re-derived at every evaluation.
            - `timezone` string, required — Represents a timezone as an IANA timezone string.
            - `daysOfWeek` number[], nullable — Days on which the window is active, 0 = Sunday … 6 = Saturday. Absent or empty means every day.
            - `timeOfDay` ActivationWindowTimeOfDay — Local time-of-day bounds. `start` is inclusive, `end` is exclusive. When `end` is earlier than `start` the window is overnight and spans into the following day.
              - …
        - `activationWindowExpired` boolean, required — Whether the activation window can never trigger again (for instance its end date is already past). Computed server-side; drives a non-blocking warning in the UI.
      - `group` SouthItemGroupDTO, required — Data Transfer Object for a South item group. Represents a group of items that can share common settings.
        - `id` string, required — The unique identifier of the entity.
        - `createdBy` UserInfo, required — Represents the user who performed an action, with a computed display name.
          - `id` string, required — The unique identifier of the user.
          - `friendlyName` string, required — A human-readable display name for the user. "OIAnalytics" for the oianalytics system user, "Admin" for the admin login, or "Firstname Lastname (login)" for regular users.
        - `updatedBy` UserInfo, required — Represents the user who performed an action, with a computed display name.
          - `id` string, required — The unique identifier of the user.
          - `friendlyName` string, required — A human-readable display name for the user. "OIAnalytics" for the oianalytics system user, "Admin" for the admin login, or "Firstname Lastname (login)" for regular users.
        - `createdAt` string, required — Represents an instant in time as an ISO 8601 string.
        - `updatedAt` string, required — Represents an instant in time as an ISO 8601 string.
        - `standardSettings` object, required
          - `scanMode` ScanModeDTO, required — Data Transfer Object for a scan mode. Represents a configured scan mode with its metadata and schedule.
            - `id` string, required — The unique identifier of the entity.
            - `createdBy` UserInfo, required — Represents the user who performed an action, with a computed display name.
              - …
            - `updatedBy` UserInfo, required — Represents the user who performed an action, with a computed display name.
              - …
            - `createdAt` string, required — Represents an instant in time as an ISO 8601 string.
            - `updatedAt` string, required — Represents an instant in time as an ISO 8601 string.
            - `name` string, required — The name of the scan mode.
            - `description` string, required — A description of the scan mode's purpose or behavior.
            - `type` 'cron' | 'interval', required — How a scan mode decides when to tick. - `cron`: driven by a cron expression (the historical behaviour). - `interval`: driven by a fixed period between ticks.
            - `cron` string, required — A cron expression defining the scan schedule. Empty when `type` is `"interval"`.
            - `interval` ScanModeInterval, required — Fixed period between two ticks of an `interval` scan mode.
              - …
            - `activationWindow` ActivationWindow, required — Optional gate applied on top of the schedule. A tick only fires when it satisfies every configured criterion; the two criteria below are combined with AND. A tick falling outside the window is skipped silently — it is never queued or deferred.
              - …
            - `activationWindowExpired` boolean, required — Whether the activation window can never trigger again (for instance its end date is already past). Computed server-side; drives a non-blocking warning in the UI.
          - `name` string, required — The name of the group.
        - `historySettings` object, required
          - `recoveryStrategy` 'oldest' | 'newest', required — Recovery strategy used when a south connector reconnects after a long disconnection. - 'oldest': fill the gap from oldest to newest (default behaviour). - 'newest': fill the gap from newest to oldest so that recent data arrives first.
          - `readDelay` number, double, nullable, required — Read delay in milliseconds before querying historical data. Only applicable for connectors with historian capabilities.
          - `maxReadInterval` number, double, nullable, required — Maximum read interval in seconds for historical queries. Only applicable for connectors with historian capabilities.
          - `endTimeOffset` number, double, nullable, required — Offset in milliseconds applied to the end of the history query interval. Only applicable for connectors with historian capabilities. If the resulting end time is not after the effective start time, the query is skipped.
          - `startTimeOffset` number, double, nullable, required — Offset in milliseconds applied to the start of the history query interval. Only applicable for connectors with historian capabilities. Negative values extend the window backwards (equivalent to the old overlap behaviour).
      - `syncWithGroup` boolean, required — Whether this item syncs its historian settings with its group. When true, historian fields (maxReadInterval, readDelay, startTimeOffset, endTimeOffset) are inherited from the group.
      - `maxReadInterval` number, double, nullable, required — Maximum read interval in seconds for historical queries. Only applicable for connectors with historian capabilities. When null and item is in a group, inherits from group settings.
      - `readDelay` number, double, nullable, required — Read delay in milliseconds before querying historical data. Only applicable for connectors with historian capabilities. When null and item is in a group, inherits from group settings.
      - `startTimeOffset` number, double, nullable, required — Offset in milliseconds applied to the start of the history query interval. Only applicable for connectors with historian capabilities. When null and item is in a group, inherits from group settings. Negative values extend the window backwards (equivalent to the old overlap behaviour).
      - `endTimeOffset` number, double, nullable, required — Offset in milliseconds applied to the end of the history query interval. Only applicable for connectors with historian capabilities. When null and item is in a group, inherits from group settings. If the resulting end time is not after the effective start time, the query is skipped.
      - `recoveryStrategy` 'oldest' | 'newest', required — Recovery strategy used when a south connector reconnects after a long disconnection. - 'oldest': fill the gap from oldest to newest (default behaviour). - 'newest': fill the gap from newest to oldest so that recent data arrives first.
    - `groups` SouthItemGroupDTO[], required — List of groups attached to this connector
      - `id` string, required — The unique identifier of the entity.
      - `createdBy` UserInfo, required — Represents the user who performed an action, with a computed display name.
        - `id` string, required — The unique identifier of the user.
        - `friendlyName` string, required — A human-readable display name for the user. "OIAnalytics" for the oianalytics system user, "Admin" for the admin login, or "Firstname Lastname (login)" for regular users.
      - `updatedBy` UserInfo, required — Represents the user who performed an action, with a computed display name.
        - `id` string, required — The unique identifier of the user.
        - `friendlyName` string, required — A human-readable display name for the user. "OIAnalytics" for the oianalytics system user, "Admin" for the admin login, or "Firstname Lastname (login)" for regular users.
      - `createdAt` string, required — Represents an instant in time as an ISO 8601 string.
      - `updatedAt` string, required — Represents an instant in time as an ISO 8601 string.
      - `standardSettings` object, required
        - `scanMode` ScanModeDTO, required — Data Transfer Object for a scan mode. Represents a configured scan mode with its metadata and schedule.
          - `id` string, required — The unique identifier of the entity.
          - `createdBy` UserInfo, required — Represents the user who performed an action, with a computed display name.
            - `id` string, required — The unique identifier of the user.
            - `friendlyName` string, required — A human-readable display name for the user. "OIAnalytics" for the oianalytics system user, "Admin" for the admin login, or "Firstname Lastname (login)" for regular users.
          - `updatedBy` UserInfo, required — Represents the user who performed an action, with a computed display name.
            - `id` string, required — The unique identifier of the user.
            - `friendlyName` string, required — A human-readable display name for the user. "OIAnalytics" for the oianalytics system user, "Admin" for the admin login, or "Firstname Lastname (login)" for regular users.
          - `createdAt` string, required — Represents an instant in time as an ISO 8601 string.
          - `updatedAt` string, required — Represents an instant in time as an ISO 8601 string.
          - `name` string, required — The name of the scan mode.
          - `description` string, required — A description of the scan mode's purpose or behavior.
          - `type` 'cron' | 'interval', required — How a scan mode decides when to tick. - `cron`: driven by a cron expression (the historical behaviour). - `interval`: driven by a fixed period between ticks.
          - `cron` string, required — A cron expression defining the scan schedule. Empty when `type` is `"interval"`.
          - `interval` ScanModeInterval, required — Fixed period between two ticks of an `interval` scan mode.
            - `value` number, double, required — How many `unit`s between two ticks.
            - `unit` 'ms' | 's' | 'min' | 'hour', required
          - `activationWindow` ActivationWindow, required — Optional gate applied on top of the schedule. A tick only fires when it satisfies every configured criterion; the two criteria below are combined with AND. A tick falling outside the window is skipped silently — it is never queued or deferred.
            - `dateRange` ActivationWindowDateRange — Absolute bounds of an activation window. Each side is independently optional: an absent bound means the window is open-ended on that side.
              - …
            - `recurring` ActivationWindowRecurring — A civil-time recurrence rule. Unlike the date range, this is not a pair of instants: "Thursday 12:00" shifts by an hour across DST transitions, so the rule carries the IANA timezone it is expressed in and is re-derived at every evaluation.
              - …
          - `activationWindowExpired` boolean, required — Whether the activation window can never trigger again (for instance its end date is already past). Computed server-side; drives a non-blocking warning in the UI.
        - `name` string, required — The name of the group.
      - `historySettings` object, required
        - `recoveryStrategy` 'oldest' | 'newest', required — Recovery strategy used when a south connector reconnects after a long disconnection. - 'oldest': fill the gap from oldest to newest (default behaviour). - 'newest': fill the gap from newest to oldest so that recent data arrives first.
        - `readDelay` number, double, nullable, required — Read delay in milliseconds before querying historical data. Only applicable for connectors with historian capabilities.
        - `maxReadInterval` number, double, nullable, required — Maximum read interval in seconds for historical queries. Only applicable for connectors with historian capabilities.
        - `endTimeOffset` number, double, nullable, required — Offset in milliseconds applied to the end of the history query interval. Only applicable for connectors with historian capabilities. If the resulting end time is not after the effective start time, the query is skipped.
        - `startTimeOffset` number, double, nullable, required — Offset in milliseconds applied to the start of the history query interval. Only applicable for connectors with historian capabilities. Negative values extend the window backwards (equivalent to the old overlap behaviour).
  - SouthConnectorMSSQLDTO — South connector configuration for Microsoft SQL Server.
    - `id` string, required — The unique identifier of the entity.
    - `createdBy` UserInfo, required — Represents the user who performed an action, with a computed display name.
      - `id` string, required — The unique identifier of the user.
      - `friendlyName` string, required — A human-readable display name for the user. "OIAnalytics" for the oianalytics system user, "Admin" for the admin login, or "Firstname Lastname (login)" for regular users.
    - `updatedBy` UserInfo, required — Represents the user who performed an action, with a computed display name.
      - `id` string, required — The unique identifier of the user.
      - `friendlyName` string, required — A human-readable display name for the user. "OIAnalytics" for the oianalytics system user, "Admin" for the admin login, or "Firstname Lastname (login)" for regular users.
    - `createdAt` string, required — Represents an instant in time as an ISO 8601 string.
    - `updatedAt` string, required — Represents an instant in time as an ISO 8601 string.
    - `name` string, required — The name of the South connector.
    - `type` 'mssql', required — The type of the South connector.
    - `description` string, required — Description of the South connector's purpose.
    - `enabled` boolean, required — Whether the South connector is enabled and active.
    - `settings` SouthMSSQLSettings, required
      - `host` string, required
      - `port` number, double, required
      - `connectionTimeout` number, double, required
      - `database` string, required
      - `encryption` boolean, required
      - `trustServerCertificate` boolean, required
      - `username` string, nullable, required
      - `password` string, nullable, required
      - `domain` string, nullable, required
      - `requestTimeout` number, double, required
    - `items` SouthConnectorMSSQLItemDTO[], required — List of items (data points) configured for this connector.
      - `id` string, required — The unique identifier of the entity.
      - `createdBy` UserInfo, required — Represents the user who performed an action, with a computed display name.
        - `id` string, required — The unique identifier of the user.
        - `friendlyName` string, required — A human-readable display name for the user. "OIAnalytics" for the oianalytics system user, "Admin" for the admin login, or "Firstname Lastname (login)" for regular users.
      - `updatedBy` UserInfo, required — Represents the user who performed an action, with a computed display name.
        - `id` string, required — The unique identifier of the user.
        - `friendlyName` string, required — A human-readable display name for the user. "OIAnalytics" for the oianalytics system user, "Admin" for the admin login, or "Firstname Lastname (login)" for regular users.
      - `createdAt` string, required — Represents an instant in time as an ISO 8601 string.
      - `updatedAt` string, required — Represents an instant in time as an ISO 8601 string.
      - `name` string, required — The name of the item.
      - `enabled` boolean, required — Whether this item is enabled and should be collected.
      - `settings` SouthMSSQLItemSettings, required
        - `query` string, required
        - `trackingInstant` SouthMSSQLItemSettingsTrackingInstant, required
          - `trackInstant` boolean, required
          - `fieldName` string
          - `dateTimeInput` SouthMSSQLItemSettingsTrackingInstantDateTimeInput
            - `type` 'string' | 'iso-string' | 'unix-epoch' | 'unix-epoch-ms' | 'date' | 'date-time' | 'date-time-2' | 'date-time-offset' | 'small-date-time', required
            - `timezone` string — Represents a timezone as an IANA timezone string.
            - `format` string
            - `locale` string
      - `scanMode` ScanModeDTO, required — Data Transfer Object for a scan mode. Represents a configured scan mode with its metadata and schedule.
        - `id` string, required — The unique identifier of the entity.
        - `createdBy` UserInfo, required — Represents the user who performed an action, with a computed display name.
          - `id` string, required — The unique identifier of the user.
          - `friendlyName` string, required — A human-readable display name for the user. "OIAnalytics" for the oianalytics system user, "Admin" for the admin login, or "Firstname Lastname (login)" for regular users.
        - `updatedBy` UserInfo, required — Represents the user who performed an action, with a computed display name.
          - `id` string, required — The unique identifier of the user.
          - `friendlyName` string, required — A human-readable display name for the user. "OIAnalytics" for the oianalytics system user, "Admin" for the admin login, or "Firstname Lastname (login)" for regular users.
        - `createdAt` string, required — Represents an instant in time as an ISO 8601 string.
        - `updatedAt` string, required — Represents an instant in time as an ISO 8601 string.
        - `name` string, required — The name of the scan mode.
        - `description` string, required — A description of the scan mode's purpose or behavior.
        - `type` 'cron' | 'interval', required — How a scan mode decides when to tick. - `cron`: driven by a cron expression (the historical behaviour). - `interval`: driven by a fixed period between ticks.
        - `cron` string, required — A cron expression defining the scan schedule. Empty when `type` is `"interval"`.
        - `interval` ScanModeInterval, required — Fixed period between two ticks of an `interval` scan mode.
          - `value` number, double, required — How many `unit`s between two ticks.
          - `unit` 'ms' | 's' | 'min' | 'hour', required
        - `activationWindow` ActivationWindow, required — Optional gate applied on top of the schedule. A tick only fires when it satisfies every configured criterion; the two criteria below are combined with AND. A tick falling outside the window is skipped silently — it is never queued or deferred.
          - `dateRange` ActivationWindowDateRange — Absolute bounds of an activation window. Each side is independently optional: an absent bound means the window is open-ended on that side.
            - `start` string — Represents an instant in time as an ISO 8601 string.
            - `end` string — Represents an instant in time as an ISO 8601 string.
          - `recurring` ActivationWindowRecurring — A civil-time recurrence rule. Unlike the date range, this is not a pair of instants: "Thursday 12:00" shifts by an hour across DST transitions, so the rule carries the IANA timezone it is expressed in and is re-derived at every evaluation.
            - `timezone` string, required — Represents a timezone as an IANA timezone string.
            - `daysOfWeek` number[], nullable — Days on which the window is active, 0 = Sunday … 6 = Saturday. Absent or empty means every day.
            - `timeOfDay` ActivationWindowTimeOfDay — Local time-of-day bounds. `start` is inclusive, `end` is exclusive. When `end` is earlier than `start` the window is overnight and spans into the following day.
              - …
        - `activationWindowExpired` boolean, required — Whether the activation window can never trigger again (for instance its end date is already past). Computed server-side; drives a non-blocking warning in the UI.
      - `group` SouthItemGroupDTO, required — Data Transfer Object for a South item group. Represents a group of items that can share common settings.
        - `id` string, required — The unique identifier of the entity.
        - `createdBy` UserInfo, required — Represents the user who performed an action, with a computed display name.
          - `id` string, required — The unique identifier of the user.
          - `friendlyName` string, required — A human-readable display name for the user. "OIAnalytics" for the oianalytics system user, "Admin" for the admin login, or "Firstname Lastname (login)" for regular users.
        - `updatedBy` UserInfo, required — Represents the user who performed an action, with a computed display name.
          - `id` string, required — The unique identifier of the user.
          - `friendlyName` string, required — A human-readable display name for the user. "OIAnalytics" for the oianalytics system user, "Admin" for the admin login, or "Firstname Lastname (login)" for regular users.
        - `createdAt` string, required — Represents an instant in time as an ISO 8601 string.
        - `updatedAt` string, required — Represents an instant in time as an ISO 8601 string.
        - `standardSettings` object, required
          - `scanMode` ScanModeDTO, required — Data Transfer Object for a scan mode. Represents a configured scan mode with its metadata and schedule.
            - `id` string, required — The unique identifier of the entity.
            - `createdBy` UserInfo, required — Represents the user who performed an action, with a computed display name.
              - …
            - `updatedBy` UserInfo, required — Represents the user who performed an action, with a computed display name.
              - …
            - `createdAt` string, required — Represents an instant in time as an ISO 8601 string.
            - `updatedAt` string, required — Represents an instant in time as an ISO 8601 string.
            - `name` string, required — The name of the scan mode.
            - `description` string, required — A description of the scan mode's purpose or behavior.
            - `type` 'cron' | 'interval', required — How a scan mode decides when to tick. - `cron`: driven by a cron expression (the historical behaviour). - `interval`: driven by a fixed period between ticks.
            - `cron` string, required — A cron expression defining the scan schedule. Empty when `type` is `"interval"`.
            - `interval` ScanModeInterval, required — Fixed period between two ticks of an `interval` scan mode.
              - …
            - `activationWindow` ActivationWindow, required — Optional gate applied on top of the schedule. A tick only fires when it satisfies every configured criterion; the two criteria below are combined with AND. A tick falling outside the window is skipped silently — it is never queued or deferred.
              - …
            - `activationWindowExpired` boolean, required — Whether the activation window can never trigger again (for instance its end date is already past). Computed server-side; drives a non-blocking warning in the UI.
          - `name` string, required — The name of the group.
        - `historySettings` object, required
          - `recoveryStrategy` 'oldest' | 'newest', required — Recovery strategy used when a south connector reconnects after a long disconnection. - 'oldest': fill the gap from oldest to newest (default behaviour). - 'newest': fill the gap from newest to oldest so that recent data arrives first.
          - `readDelay` number, double, nullable, required — Read delay in milliseconds before querying historical data. Only applicable for connectors with historian capabilities.
          - `maxReadInterval` number, double, nullable, required — Maximum read interval in seconds for historical queries. Only applicable for connectors with historian capabilities.
          - `endTimeOffset` number, double, nullable, required — Offset in milliseconds applied to the end of the history query interval. Only applicable for connectors with historian capabilities. If the resulting end time is not after the effective start time, the query is skipped.
          - `startTimeOffset` number, double, nullable, required — Offset in milliseconds applied to the start of the history query interval. Only applicable for connectors with historian capabilities. Negative values extend the window backwards (equivalent to the old overlap behaviour).
      - `syncWithGroup` boolean, required — Whether this item syncs its historian settings with its group. When true, historian fields (maxReadInterval, readDelay, startTimeOffset, endTimeOffset) are inherited from the group.
      - `maxReadInterval` number, double, nullable, required — Maximum read interval in seconds for historical queries. Only applicable for connectors with historian capabilities. When null and item is in a group, inherits from group settings.
      - `readDelay` number, double, nullable, required — Read delay in milliseconds before querying historical data. Only applicable for connectors with historian capabilities. When null and item is in a group, inherits from group settings.
      - `startTimeOffset` number, double, nullable, required — Offset in milliseconds applied to the start of the history query interval. Only applicable for connectors with historian capabilities. When null and item is in a group, inherits from group settings. Negative values extend the window backwards (equivalent to the old overlap behaviour).
      - `endTimeOffset` number, double, nullable, required — Offset in milliseconds applied to the end of the history query interval. Only applicable for connectors with historian capabilities. When null and item is in a group, inherits from group settings. If the resulting end time is not after the effective start time, the query is skipped.
      - `recoveryStrategy` 'oldest' | 'newest', required — Recovery strategy used when a south connector reconnects after a long disconnection. - 'oldest': fill the gap from oldest to newest (default behaviour). - 'newest': fill the gap from newest to oldest so that recent data arrives first.
    - `groups` SouthItemGroupDTO[], required — List of groups attached to this connector
      - `id` string, required — The unique identifier of the entity.
      - `createdBy` UserInfo, required — Represents the user who performed an action, with a computed display name.
        - `id` string, required — The unique identifier of the user.
        - `friendlyName` string, required — A human-readable display name for the user. "OIAnalytics" for the oianalytics system user, "Admin" for the admin login, or "Firstname Lastname (login)" for regular users.
      - `updatedBy` UserInfo, required — Represents the user who performed an action, with a computed display name.
        - `id` string, required — The unique identifier of the user.
        - `friendlyName` string, required — A human-readable display name for the user. "OIAnalytics" for the oianalytics system user, "Admin" for the admin login, or "Firstname Lastname (login)" for regular users.
      - `createdAt` string, required — Represents an instant in time as an ISO 8601 string.
      - `updatedAt` string, required — Represents an instant in time as an ISO 8601 string.
      - `standardSettings` object, required
        - `scanMode` ScanModeDTO, required — Data Transfer Object for a scan mode. Represents a configured scan mode with its metadata and schedule.
          - `id` string, required — The unique identifier of the entity.
          - `createdBy` UserInfo, required — Represents the user who performed an action, with a computed display name.
            - `id` string, required — The unique identifier of the user.
            - `friendlyName` string, required — A human-readable display name for the user. "OIAnalytics" for the oianalytics system user, "Admin" for the admin login, or "Firstname Lastname (login)" for regular users.
          - `updatedBy` UserInfo, required — Represents the user who performed an action, with a computed display name.
            - `id` string, required — The unique identifier of the user.
            - `friendlyName` string, required — A human-readable display name for the user. "OIAnalytics" for the oianalytics system user, "Admin" for the admin login, or "Firstname Lastname (login)" for regular users.
          - `createdAt` string, required — Represents an instant in time as an ISO 8601 string.
          - `updatedAt` string, required — Represents an instant in time as an ISO 8601 string.
          - `name` string, required — The name of the scan mode.
          - `description` string, required — A description of the scan mode's purpose or behavior.
          - `type` 'cron' | 'interval', required — How a scan mode decides when to tick. - `cron`: driven by a cron expression (the historical behaviour). - `interval`: driven by a fixed period between ticks.
          - `cron` string, required — A cron expression defining the scan schedule. Empty when `type` is `"interval"`.
          - `interval` ScanModeInterval, required — Fixed period between two ticks of an `interval` scan mode.
            - `value` number, double, required — How many `unit`s between two ticks.
            - `unit` 'ms' | 's' | 'min' | 'hour', required
          - `activationWindow` ActivationWindow, required — Optional gate applied on top of the schedule. A tick only fires when it satisfies every configured criterion; the two criteria below are combined with AND. A tick falling outside the window is skipped silently — it is never queued or deferred.
            - `dateRange` ActivationWindowDateRange — Absolute bounds of an activation window. Each side is independently optional: an absent bound means the window is open-ended on that side.
              - …
            - `recurring` ActivationWindowRecurring — A civil-time recurrence rule. Unlike the date range, this is not a pair of instants: "Thursday 12:00" shifts by an hour across DST transitions, so the rule carries the IANA timezone it is expressed in and is re-derived at every evaluation.
              - …
          - `activationWindowExpired` boolean, required — Whether the activation window can never trigger again (for instance its end date is already past). Computed server-side; drives a non-blocking warning in the UI.
        - `name` string, required — The name of the group.
      - `historySettings` object, required
        - `recoveryStrategy` 'oldest' | 'newest', required — Recovery strategy used when a south connector reconnects after a long disconnection. - 'oldest': fill the gap from oldest to newest (default behaviour). - 'newest': fill the gap from newest to oldest so that recent data arrives first.
        - `readDelay` number, double, nullable, required — Read delay in milliseconds before querying historical data. Only applicable for connectors with historian capabilities.
        - `maxReadInterval` number, double, nullable, required — Maximum read interval in seconds for historical queries. Only applicable for connectors with historian capabilities.
        - `endTimeOffset` number, double, nullable, required — Offset in milliseconds applied to the end of the history query interval. Only applicable for connectors with historian capabilities. If the resulting end time is not after the effective start time, the query is skipped.
        - `startTimeOffset` number, double, nullable, required — Offset in milliseconds applied to the start of the history query interval. Only applicable for connectors with historian capabilities. Negative values extend the window backwards (equivalent to the old overlap behaviour).
  - SouthConnectorMySQLDTO — South connector configuration for MySQL.
    - `id` string, required — The unique identifier of the entity.
    - `createdBy` UserInfo, required — Represents the user who performed an action, with a computed display name.
      - `id` string, required — The unique identifier of the user.
      - `friendlyName` string, required — A human-readable display name for the user. "OIAnalytics" for the oianalytics system user, "Admin" for the admin login, or "Firstname Lastname (login)" for regular users.
    - `updatedBy` UserInfo, required — Represents the user who performed an action, with a computed display name.
      - `id` string, required — The unique identifier of the user.
      - `friendlyName` string, required — A human-readable display name for the user. "OIAnalytics" for the oianalytics system user, "Admin" for the admin login, or "Firstname Lastname (login)" for regular users.
    - `createdAt` string, required — Represents an instant in time as an ISO 8601 string.
    - `updatedAt` string, required — Represents an instant in time as an ISO 8601 string.
    - `name` string, required — The name of the South connector.
    - `type` 'mysql', required — The type of the South connector.
    - `description` string, required — Description of the South connector's purpose.
    - `enabled` boolean, required — Whether the South connector is enabled and active.
    - `settings` SouthMySQLSettings, required
      - `host` string, required
      - `port` number, double, required
      - `connectionTimeout` number, double, required
      - `database` string, required
      - `username` string, nullable, required
      - `password` string, nullable, required
    - `items` SouthConnectorMySQLItemDTO[], required — List of items (data points) configured for this connector.
      - `id` string, required — The unique identifier of the entity.
      - `createdBy` UserInfo, required — Represents the user who performed an action, with a computed display name.
        - `id` string, required — The unique identifier of the user.
        - `friendlyName` string, required — A human-readable display name for the user. "OIAnalytics" for the oianalytics system user, "Admin" for the admin login, or "Firstname Lastname (login)" for regular users.
      - `updatedBy` UserInfo, required — Represents the user who performed an action, with a computed display name.
        - `id` string, required — The unique identifier of the user.
        - `friendlyName` string, required — A human-readable display name for the user. "OIAnalytics" for the oianalytics system user, "Admin" for the admin login, or "Firstname Lastname (login)" for regular users.
      - `createdAt` string, required — Represents an instant in time as an ISO 8601 string.
      - `updatedAt` string, required — Represents an instant in time as an ISO 8601 string.
      - `name` string, required — The name of the item.
      - `enabled` boolean, required — Whether this item is enabled and should be collected.
      - `settings` SouthMySQLItemSettings, required
        - `query` string, required
        - `requestTimeout` number, double, required
        - `trackingInstant` SouthMySQLItemSettingsTrackingInstant, required
          - `trackInstant` boolean, required
          - `fieldName` string
          - `dateTimeInput` SouthMySQLItemSettingsTrackingInstantDateTimeInput
            - `type` 'string' | 'iso-string' | 'unix-epoch' | 'unix-epoch-ms' | 'date-time', required
            - `timezone` string — Represents a timezone as an IANA timezone string.
            - `format` string
            - `locale` string
      - `scanMode` ScanModeDTO, required — Data Transfer Object for a scan mode. Represents a configured scan mode with its metadata and schedule.
        - `id` string, required — The unique identifier of the entity.
        - `createdBy` UserInfo, required — Represents the user who performed an action, with a computed display name.
          - `id` string, required — The unique identifier of the user.
          - `friendlyName` string, required — A human-readable display name for the user. "OIAnalytics" for the oianalytics system user, "Admin" for the admin login, or "Firstname Lastname (login)" for regular users.
        - `updatedBy` UserInfo, required — Represents the user who performed an action, with a computed display name.
          - `id` string, required — The unique identifier of the user.
          - `friendlyName` string, required — A human-readable display name for the user. "OIAnalytics" for the oianalytics system user, "Admin" for the admin login, or "Firstname Lastname (login)" for regular users.
        - `createdAt` string, required — Represents an instant in time as an ISO 8601 string.
        - `updatedAt` string, required — Represents an instant in time as an ISO 8601 string.
        - `name` string, required — The name of the scan mode.
        - `description` string, required — A description of the scan mode's purpose or behavior.
        - `type` 'cron' | 'interval', required — How a scan mode decides when to tick. - `cron`: driven by a cron expression (the historical behaviour). - `interval`: driven by a fixed period between ticks.
        - `cron` string, required — A cron expression defining the scan schedule. Empty when `type` is `"interval"`.
        - `interval` ScanModeInterval, required — Fixed period between two ticks of an `interval` scan mode.
          - `value` number, double, required — How many `unit`s between two ticks.
          - `unit` 'ms' | 's' | 'min' | 'hour', required
        - `activationWindow` ActivationWindow, required — Optional gate applied on top of the schedule. A tick only fires when it satisfies every configured criterion; the two criteria below are combined with AND. A tick falling outside the window is skipped silently — it is never queued or deferred.
          - `dateRange` ActivationWindowDateRange — Absolute bounds of an activation window. Each side is independently optional: an absent bound means the window is open-ended on that side.
            - `start` string — Represents an instant in time as an ISO 8601 string.
            - `end` string — Represents an instant in time as an ISO 8601 string.
          - `recurring` ActivationWindowRecurring — A civil-time recurrence rule. Unlike the date range, this is not a pair of instants: "Thursday 12:00" shifts by an hour across DST transitions, so the rule carries the IANA timezone it is expressed in and is re-derived at every evaluation.
            - `timezone` string, required — Represents a timezone as an IANA timezone string.
            - `daysOfWeek` number[], nullable — Days on which the window is active, 0 = Sunday … 6 = Saturday. Absent or empty means every day.
            - `timeOfDay` ActivationWindowTimeOfDay — Local time-of-day bounds. `start` is inclusive, `end` is exclusive. When `end` is earlier than `start` the window is overnight and spans into the following day.
              - …
        - `activationWindowExpired` boolean, required — Whether the activation window can never trigger again (for instance its end date is already past). Computed server-side; drives a non-blocking warning in the UI.
      - `group` SouthItemGroupDTO, required — Data Transfer Object for a South item group. Represents a group of items that can share common settings.
        - `id` string, required — The unique identifier of the entity.
        - `createdBy` UserInfo, required — Represents the user who performed an action, with a computed display name.
          - `id` string, required — The unique identifier of the user.
          - `friendlyName` string, required — A human-readable display name for the user. "OIAnalytics" for the oianalytics system user, "Admin" for the admin login, or "Firstname Lastname (login)" for regular users.
        - `updatedBy` UserInfo, required — Represents the user who performed an action, with a computed display name.
          - `id` string, required — The unique identifier of the user.
          - `friendlyName` string, required — A human-readable display name for the user. "OIAnalytics" for the oianalytics system user, "Admin" for the admin login, or "Firstname Lastname (login)" for regular users.
        - `createdAt` string, required — Represents an instant in time as an ISO 8601 string.
        - `updatedAt` string, required — Represents an instant in time as an ISO 8601 string.
        - `standardSettings` object, required
          - `scanMode` ScanModeDTO, required — Data Transfer Object for a scan mode. Represents a configured scan mode with its metadata and schedule.
            - `id` string, required — The unique identifier of the entity.
            - `createdBy` UserInfo, required — Represents the user who performed an action, with a computed display name.
              - …
            - `updatedBy` UserInfo, required — Represents the user who performed an action, with a computed display name.
              - …
            - `createdAt` string, required — Represents an instant in time as an ISO 8601 string.
            - `updatedAt` string, required — Represents an instant in time as an ISO 8601 string.
            - `name` string, required — The name of the scan mode.
            - `description` string, required — A description of the scan mode's purpose or behavior.
            - `type` 'cron' | 'interval', required — How a scan mode decides when to tick. - `cron`: driven by a cron expression (the historical behaviour). - `interval`: driven by a fixed period between ticks.
            - `cron` string, required — A cron expression defining the scan schedule. Empty when `type` is `"interval"`.
            - `interval` ScanModeInterval, required — Fixed period between two ticks of an `interval` scan mode.
              - …
            - `activationWindow` ActivationWindow, required — Optional gate applied on top of the schedule. A tick only fires when it satisfies every configured criterion; the two criteria below are combined with AND. A tick falling outside the window is skipped silently — it is never queued or deferred.
              - …
            - `activationWindowExpired` boolean, required — Whether the activation window can never trigger again (for instance its end date is already past). Computed server-side; drives a non-blocking warning in the UI.
          - `name` string, required — The name of the group.
        - `historySettings` object, required
          - `recoveryStrategy` 'oldest' | 'newest', required — Recovery strategy used when a south connector reconnects after a long disconnection. - 'oldest': fill the gap from oldest to newest (default behaviour). - 'newest': fill the gap from newest to oldest so that recent data arrives first.
          - `readDelay` number, double, nullable, required — Read delay in milliseconds before querying historical data. Only applicable for connectors with historian capabilities.
          - `maxReadInterval` number, double, nullable, required — Maximum read interval in seconds for historical queries. Only applicable for connectors with historian capabilities.
          - `endTimeOffset` number, double, nullable, required — Offset in milliseconds applied to the end of the history query interval. Only applicable for connectors with historian capabilities. If the resulting end time is not after the effective start time, the query is skipped.
          - `startTimeOffset` number, double, nullable, required — Offset in milliseconds applied to the start of the history query interval. Only applicable for connectors with historian capabilities. Negative values extend the window backwards (equivalent to the old overlap behaviour).
      - `syncWithGroup` boolean, required — Whether this item syncs its historian settings with its group. When true, historian fields (maxReadInterval, readDelay, startTimeOffset, endTimeOffset) are inherited from the group.
      - `maxReadInterval` number, double, nullable, required — Maximum read interval in seconds for historical queries. Only applicable for connectors with historian capabilities. When null and item is in a group, inherits from group settings.
      - `readDelay` number, double, nullable, required — Read delay in milliseconds before querying historical data. Only applicable for connectors with historian capabilities. When null and item is in a group, inherits from group settings.
      - `startTimeOffset` number, double, nullable, required — Offset in milliseconds applied to the start of the history query interval. Only applicable for connectors with historian capabilities. When null and item is in a group, inherits from group settings. Negative values extend the window backwards (equivalent to the old overlap behaviour).
      - `endTimeOffset` number, double, nullable, required — Offset in milliseconds applied to the end of the history query interval. Only applicable for connectors with historian capabilities. When null and item is in a group, inherits from group settings. If the resulting end time is not after the effective start time, the query is skipped.
      - `recoveryStrategy` 'oldest' | 'newest', required — Recovery strategy used when a south connector reconnects after a long disconnection. - 'oldest': fill the gap from oldest to newest (default behaviour). - 'newest': fill the gap from newest to oldest so that recent data arrives first.
    - `groups` SouthItemGroupDTO[], required — List of groups attached to this connector
      - `id` string, required — The unique identifier of the entity.
      - `createdBy` UserInfo, required — Represents the user who performed an action, with a computed display name.
        - `id` string, required — The unique identifier of the user.
        - `friendlyName` string, required — A human-readable display name for the user. "OIAnalytics" for the oianalytics system user, "Admin" for the admin login, or "Firstname Lastname (login)" for regular users.
      - `updatedBy` UserInfo, required — Represents the user who performed an action, with a computed display name.
        - `id` string, required — The unique identifier of the user.
        - `friendlyName` string, required — A human-readable display name for the user. "OIAnalytics" for the oianalytics system user, "Admin" for the admin login, or "Firstname Lastname (login)" for regular users.
      - `createdAt` string, required — Represents an instant in time as an ISO 8601 string.
      - `updatedAt` string, required — Represents an instant in time as an ISO 8601 string.
      - `standardSettings` object, required
        - `scanMode` ScanModeDTO, required — Data Transfer Object for a scan mode. Represents a configured scan mode with its metadata and schedule.
          - `id` string, required — The unique identifier of the entity.
          - `createdBy` UserInfo, required — Represents the user who performed an action, with a computed display name.
            - `id` string, required — The unique identifier of the user.
            - `friendlyName` string, required — A human-readable display name for the user. "OIAnalytics" for the oianalytics system user, "Admin" for the admin login, or "Firstname Lastname (login)" for regular users.
          - `updatedBy` UserInfo, required — Represents the user who performed an action, with a computed display name.
            - `id` string, required — The unique identifier of the user.
            - `friendlyName` string, required — A human-readable display name for the user. "OIAnalytics" for the oianalytics system user, "Admin" for the admin login, or "Firstname Lastname (login)" for regular users.
          - `createdAt` string, required — Represents an instant in time as an ISO 8601 string.
          - `updatedAt` string, required — Represents an instant in time as an ISO 8601 string.
          - `name` string, required — The name of the scan mode.
          - `description` string, required — A description of the scan mode's purpose or behavior.
          - `type` 'cron' | 'interval', required — How a scan mode decides when to tick. - `cron`: driven by a cron expression (the historical behaviour). - `interval`: driven by a fixed period between ticks.
          - `cron` string, required — A cron expression defining the scan schedule. Empty when `type` is `"interval"`.
          - `interval` ScanModeInterval, required — Fixed period between two ticks of an `interval` scan mode.
            - `value` number, double, required — How many `unit`s between two ticks.
            - `unit` 'ms' | 's' | 'min' | 'hour', required
          - `activationWindow` ActivationWindow, required — Optional gate applied on top of the schedule. A tick only fires when it satisfies every configured criterion; the two criteria below are combined with AND. A tick falling outside the window is skipped silently — it is never queued or deferred.
            - `dateRange` ActivationWindowDateRange — Absolute bounds of an activation window. Each side is independently optional: an absent bound means the window is open-ended on that side.
              - …
            - `recurring` ActivationWindowRecurring — A civil-time recurrence rule. Unlike the date range, this is not a pair of instants: "Thursday 12:00" shifts by an hour across DST transitions, so the rule carries the IANA timezone it is expressed in and is re-derived at every evaluation.
              - …
          - `activationWindowExpired` boolean, required — Whether the activation window can never trigger again (for instance its end date is already past). Computed server-side; drives a non-blocking warning in the UI.
        - `name` string, required — The name of the group.
      - `historySettings` object, required
        - `recoveryStrategy` 'oldest' | 'newest', required — Recovery strategy used when a south connector reconnects after a long disconnection. - 'oldest': fill the gap from oldest to newest (default behaviour). - 'newest': fill the gap from newest to oldest so that recent data arrives first.
        - `readDelay` number, double, nullable, required — Read delay in milliseconds before querying historical data. Only applicable for connectors with historian capabilities.
        - `maxReadInterval` number, double, nullable, required — Maximum read interval in seconds for historical queries. Only applicable for connectors with historian capabilities.
        - `endTimeOffset` number, double, nullable, required — Offset in milliseconds applied to the end of the history query interval. Only applicable for connectors with historian capabilities. If the resulting end time is not after the effective start time, the query is skipped.
        - `startTimeOffset` number, double, nullable, required — Offset in milliseconds applied to the start of the history query interval. Only applicable for connectors with historian capabilities. Negative values extend the window backwards (equivalent to the old overlap behaviour).
  - SouthConnectorODBCDTO — South connector configuration for ODBC.
    - `id` string, required — The unique identifier of the entity.
    - `createdBy` UserInfo, required — Represents the user who performed an action, with a computed display name.
      - `id` string, required — The unique identifier of the user.
      - `friendlyName` string, required — A human-readable display name for the user. "OIAnalytics" for the oianalytics system user, "Admin" for the admin login, or "Firstname Lastname (login)" for regular users.
    - `updatedBy` UserInfo, required — Represents the user who performed an action, with a computed display name.
      - `id` string, required — The unique identifier of the user.
      - `friendlyName` string, required — A human-readable display name for the user. "OIAnalytics" for the oianalytics system user, "Admin" for the admin login, or "Firstname Lastname (login)" for regular users.
    - `createdAt` string, required — Represents an instant in time as an ISO 8601 string.
    - `updatedAt` string, required — Represents an instant in time as an ISO 8601 string.
    - `name` string, required — The name of the South connector.
    - `type` 'odbc', required — The type of the South connector.
    - `description` string, required — Description of the South connector's purpose.
    - `enabled` boolean, required — Whether the South connector is enabled and active.
    - `settings` SouthODBCSettings, required
      - `remoteAgent` boolean, required
      - `agentUrl` string
      - `connectionTimeout` number, double, required
      - `retryInterval` number, double, required
      - `requestTimeout` number, double
      - `connectionString` string, required
      - `password` string, nullable, required
    - `items` SouthConnectorODBCItemDTO[], required — List of items (data points) configured for this connector.
      - `id` string, required — The unique identifier of the entity.
      - `createdBy` UserInfo, required — Represents the user who performed an action, with a computed display name.
        - `id` string, required — The unique identifier of the user.
        - `friendlyName` string, required — A human-readable display name for the user. "OIAnalytics" for the oianalytics system user, "Admin" for the admin login, or "Firstname Lastname (login)" for regular users.
      - `updatedBy` UserInfo, required — Represents the user who performed an action, with a computed display name.
        - `id` string, required — The unique identifier of the user.
        - `friendlyName` string, required — A human-readable display name for the user. "OIAnalytics" for the oianalytics system user, "Admin" for the admin login, or "Firstname Lastname (login)" for regular users.
      - `createdAt` string, required — Represents an instant in time as an ISO 8601 string.
      - `updatedAt` string, required — Represents an instant in time as an ISO 8601 string.
      - `name` string, required — The name of the item.
      - `enabled` boolean, required — Whether this item is enabled and should be collected.
      - `settings` SouthODBCItemSettings, required
        - `query` string, required
        - `dateTimeFields` SouthODBCItemSettingsDateTimeFields[], nullable, required
          - `fieldName` string, required
          - `useAsReference` boolean, required
          - `type` 'string' | 'iso-string' | 'unix-epoch' | 'unix-epoch-ms', required
          - `timezone` string — Represents a timezone as an IANA timezone string.
          - `format` string
          - `locale` string
        - `serialization` SouthODBCItemSettingsSerialization, required
          - `type` 'csv', required
          - `filename` string, required
          - `delimiter` 'DOT' | 'SEMI_COLON' | 'COLON' | 'COMMA' | 'NON_BREAKING_SPACE' | 'SLASH' | 'TAB' | 'PIPE', required
          - `compression` boolean, required
          - `outputTimestampFormat` string, required
          - `outputTimezone` string, required — Represents a timezone as an IANA timezone string.
      - `scanMode` ScanModeDTO, required — Data Transfer Object for a scan mode. Represents a configured scan mode with its metadata and schedule.
        - `id` string, required — The unique identifier of the entity.
        - `createdBy` UserInfo, required — Represents the user who performed an action, with a computed display name.
          - `id` string, required — The unique identifier of the user.
          - `friendlyName` string, required — A human-readable display name for the user. "OIAnalytics" for the oianalytics system user, "Admin" for the admin login, or "Firstname Lastname (login)" for regular users.
        - `updatedBy` UserInfo, required — Represents the user who performed an action, with a computed display name.
          - `id` string, required — The unique identifier of the user.
          - `friendlyName` string, required — A human-readable display name for the user. "OIAnalytics" for the oianalytics system user, "Admin" for the admin login, or "Firstname Lastname (login)" for regular users.
        - `createdAt` string, required — Represents an instant in time as an ISO 8601 string.
        - `updatedAt` string, required — Represents an instant in time as an ISO 8601 string.
        - `name` string, required — The name of the scan mode.
        - `description` string, required — A description of the scan mode's purpose or behavior.
        - `type` 'cron' | 'interval', required — How a scan mode decides when to tick. - `cron`: driven by a cron expression (the historical behaviour). - `interval`: driven by a fixed period between ticks.
        - `cron` string, required — A cron expression defining the scan schedule. Empty when `type` is `"interval"`.
        - `interval` ScanModeInterval, required — Fixed period between two ticks of an `interval` scan mode.
          - `value` number, double, required — How many `unit`s between two ticks.
          - `unit` 'ms' | 's' | 'min' | 'hour', required
        - `activationWindow` ActivationWindow, required — Optional gate applied on top of the schedule. A tick only fires when it satisfies every configured criterion; the two criteria below are combined with AND. A tick falling outside the window is skipped silently — it is never queued or deferred.
          - `dateRange` ActivationWindowDateRange — Absolute bounds of an activation window. Each side is independently optional: an absent bound means the window is open-ended on that side.
            - `start` string — Represents an instant in time as an ISO 8601 string.
            - `end` string — Represents an instant in time as an ISO 8601 string.
          - `recurring` ActivationWindowRecurring — A civil-time recurrence rule. Unlike the date range, this is not a pair of instants: "Thursday 12:00" shifts by an hour across DST transitions, so the rule carries the IANA timezone it is expressed in and is re-derived at every evaluation.
            - `timezone` string, required — Represents a timezone as an IANA timezone string.
            - `daysOfWeek` number[], nullable — Days on which the window is active, 0 = Sunday … 6 = Saturday. Absent or empty means every day.
            - `timeOfDay` ActivationWindowTimeOfDay — Local time-of-day bounds. `start` is inclusive, `end` is exclusive. When `end` is earlier than `start` the window is overnight and spans into the following day.
              - …
        - `activationWindowExpired` boolean, required — Whether the activation window can never trigger again (for instance its end date is already past). Computed server-side; drives a non-blocking warning in the UI.
      - `group` SouthItemGroupDTO, required — Data Transfer Object for a South item group. Represents a group of items that can share common settings.
        - `id` string, required — The unique identifier of the entity.
        - `createdBy` UserInfo, required — Represents the user who performed an action, with a computed display name.
          - `id` string, required — The unique identifier of the user.
          - `friendlyName` string, required — A human-readable display name for the user. "OIAnalytics" for the oianalytics system user, "Admin" for the admin login, or "Firstname Lastname (login)" for regular users.
        - `updatedBy` UserInfo, required — Represents the user who performed an action, with a computed display name.
          - `id` string, required — The unique identifier of the user.
          - `friendlyName` string, required — A human-readable display name for the user. "OIAnalytics" for the oianalytics system user, "Admin" for the admin login, or "Firstname Lastname (login)" for regular users.
        - `createdAt` string, required — Represents an instant in time as an ISO 8601 string.
        - `updatedAt` string, required — Represents an instant in time as an ISO 8601 string.
        - `standardSettings` object, required
          - `scanMode` ScanModeDTO, required — Data Transfer Object for a scan mode. Represents a configured scan mode with its metadata and schedule.
            - `id` string, required — The unique identifier of the entity.
            - `createdBy` UserInfo, required — Represents the user who performed an action, with a computed display name.
              - …
            - `updatedBy` UserInfo, required — Represents the user who performed an action, with a computed display name.
              - …
            - `createdAt` string, required — Represents an instant in time as an ISO 8601 string.
            - `updatedAt` string, required — Represents an instant in time as an ISO 8601 string.
            - `name` string, required — The name of the scan mode.
            - `description` string, required — A description of the scan mode's purpose or behavior.
            - `type` 'cron' | 'interval', required — How a scan mode decides when to tick. - `cron`: driven by a cron expression (the historical behaviour). - `interval`: driven by a fixed period between ticks.
            - `cron` string, required — A cron expression defining the scan schedule. Empty when `type` is `"interval"`.
            - `interval` ScanModeInterval, required — Fixed period between two ticks of an `interval` scan mode.
              - …
            - `activationWindow` ActivationWindow, required — Optional gate applied on top of the schedule. A tick only fires when it satisfies every configured criterion; the two criteria below are combined with AND. A tick falling outside the window is skipped silently — it is never queued or deferred.
              - …
            - `activationWindowExpired` boolean, required — Whether the activation window can never trigger again (for instance its end date is already past). Computed server-side; drives a non-blocking warning in the UI.
          - `name` string, required — The name of the group.
        - `historySettings` object, required
          - `recoveryStrategy` 'oldest' | 'newest', required — Recovery strategy used when a south connector reconnects after a long disconnection. - 'oldest': fill the gap from oldest to newest (default behaviour). - 'newest': fill the gap from newest to oldest so that recent data arrives first.
          - `readDelay` number, double, nullable, required — Read delay in milliseconds before querying historical data. Only applicable for connectors with historian capabilities.
- … truncated; see the full OpenAPI document linked below

## Changes

- **2026-08-28** `512c91ccaed6` — 162 breaking, 141 warning
  - removed the required property `anyOf[#/components/schemas/SouthConnectorADSDTO]/groups/items/historySettings/cachingStrategy` from the response with the `201` status
  - removed the required property `anyOf[#/components/schemas/SouthConnectorADSDTO]/items/items/cachingStrategy` from the response with the `201` status
  - removed the required property `anyOf[#/components/schemas/SouthConnectorADSDTO]/items/items/group/allOf[#/components/schemas/SouthItemGroupDTO]/historySettings/cachingStrategy` from the response with the `201` status
  - removed the required property `anyOf[#/components/schemas/SouthConnectorADSDTO]/items/items/maxCachingInterval` from the response with the `201` status
  - …299 more
- **2026-08-27** `08f74b792a13` — 141 breaking, 162 info
  - added the new required request property `anyOf[#/components/schemas/SouthConnectorADSCommandDTO]/groups/items/historySettings/cachingStrategy`
  - added the new required request property `anyOf[#/components/schemas/SouthConnectorADSCommandDTO]/items/items/cachingStrategy`
  - added the new required request property `anyOf[#/components/schemas/SouthConnectorADSCommandDTO]/items/items/maxCachingInterval`
  - added the new required request property `anyOf[#/components/schemas/SouthConnectorADSCommandDTO]/items/items/rangeHigh`
  - …299 more
- …earlier changes not shown

[Full history](https://skmtc.dev/optimistiksas/apis/oibus-api/changes/api/south/post.md)

---

[API](https://skmtc.dev/optimistiksas/apis/oibus-api.md) · [All operations](https://skmtc.dev/optimistiksas/apis/oibus-api/llms.txt) · [OpenAPI document](https://skmtc-service-production.skmtc.workers.dev/v1/apis/optimistiksas/oibus-api/revisions/512c91ccaed6/schema)
