Output Qualifier
Schema
{
"$id": "https://schemas.highbyte.com/intelligencehub/output/4.5.0.json",
"$defs": {
"CreateType": {
"type": "string",
"enum": [
"off",
"create",
"create_and_update"
]
},
"FilePathSearch": {
"type": "object",
"properties": {
"path": {
"type": "string"
},
"searchType": {
"const": "filePathSearch"
}
}
},
"Interval": {
"type": "object",
"properties": {
"duration": {
"type": "integer",
"description": "The length of the interval."
},
"units": {
"type": "string",
"enum": [
"Milliseconds",
"Seconds",
"Minutes",
"Hours",
"Days"
],
"description": "The unit of time for the interval (e.g., seconds, minutes, hours, days)."
}
},
"description": "Represents a time interval, used for batching and cache lifetime in pipeline configuration."
},
"OpcUaNodeIdentifier": {
"type": "object",
"properties": {
"identifierType": {
"type": "string",
"enum": [
"Invalid",
"Numeric",
"String",
"Guid",
"Opaque"
]
},
"namespaceIndex": {
"type": "string"
},
"value": {
"type": "string"
},
"type": {
"const": "NodeId"
}
},
"required": [
"type"
]
},
"SourceType": {
"type": "string",
"enum": [
"Payload",
"FilePath"
]
},
"WriteOperation": {
"type": "string",
"enum": [
"insert",
"update",
"upsert"
]
}
},
"type": "object",
"properties": {
"description": {
"type": "string",
"description": "Description of the configuration element."
},
"groupAs": {
"type": "string",
"description": "Optional grouping identifier for organizing configuration elements into logical groups."
},
"id": {
"type": "string",
"description": "UUID for the configuration element. If not provided, a random UUID will be generated. This ID is used to track the element across changes and should be stable for the lifetime of the process."
},
"name": {
"type": "string",
"description": "Name of the configuration element."
},
"qualifier": {
"anyOf": [
{
"type": "object",
"properties": {
"breakupArrays": {
"type": "boolean"
},
"dataStream": {
"type": "string",
"description": "The name of the data stream to write to."
},
"filterList": {
"type": "array",
"items": {
"type": "string"
}
},
"partitionKey": {
"type": "string",
"description": "An optional partition key for the data stream. Outputs with a specified partition key all write to the same shard; when omitted, requests are distributed across shards."
}
},
"description": "Settings qualifier for an AWS Kinesis Data Streams output"
},
{
"type": "object",
"properties": {
"breakupArrays": {
"type": "boolean"
},
"deliveryStream": {
"type": "string",
"description": "Name of the Kinesis Data Firehose delivery stream to write to"
},
"filterList": {
"type": "array",
"items": {
"type": "string"
}
}
},
"description": "Settings qualifier for an AWS Kinesis Data Firehose output"
},
{
"type": "object",
"properties": {
"assetName": {
"type": "string",
"description": "Optional asset name for the target asset"
},
"breakupArrays": {
"type": "boolean"
},
"create": {
"type": "boolean",
"description": "When true, creates missing SiteWise assets or measurements"
},
"filterList": {
"type": "array",
"items": {
"type": "string"
}
},
"hierarchyName": {
"type": "string",
"description": "Optional hierarchy name used when creating assets"
},
"modelName": {
"type": "string",
"description": "Optional asset model name for created assets"
},
"parentAssetName": {
"type": "string",
"description": "Optional name of the parent asset in SiteWise"
},
"timestamp": {
"type": "string",
"description": "Optional payload field to use as the SiteWise timestamp"
},
"writePath": {
"type": "string",
"description": "Write path to use when sending data: realtime or buffered"
}
},
"description": "Settings qualifier for an AWS IoT SiteWise output"
},
{
"type": "object",
"properties": {
"breakupArrays": {
"type": "boolean"
},
"bucketName": {
"type": "string",
"description": "The name of the bucket to write output data to. This field supports dynamic output references."
},
"filterList": {
"type": "array",
"items": {
"type": "string"
}
},
"headers": {
"description": "Optional metadata headers (for example Content-Type) to include with the S3 object.",
"type": "array",
"items": {
"type": "object",
"properties": {
"name": {
"type": "string"
},
"value": {
"type": "string"
}
}
}
},
"key": {
"type": "string",
"description": "Specifies the default file name in S3. If left empty the file name is a GUID with a timestamp. This field supports dynamic output references."
},
"payloadReference": {
"type": "string",
"description": "When working with complex payloads, uses a dynamic output to specify the attribute that contains the file payload. If left blank, the entire payload is written out."
},
"sourceFilePath": {
"type": "string",
"description": "Path to the source file for data."
},
"sourceType": {
"$ref": "#/$defs/SourceType",
"description": "Describes if the source of the data is from a file on disk or from a payload"
},
"storageClass": {
"type": "string",
"enum": [
"Standard",
"ReducedRedundancy",
"Glacier",
"StandardInfrequentAccess",
"OneZoneInfrequentAccess",
"IntelligentTiering",
"DeepArchive",
"Outposts",
"GlacierInstantRetrieval"
],
"description": "Specifies the S3 storage class for the objects being written."
},
"utcTimePathPrefix": {
"type": "boolean",
"description": "When enabled a time prefix is added to the key to logically separate files in S3 as yyyy/MM/dd/HH/key."
}
},
"description": "Settings qualifier for an Amazon S3 output"
},
{
"type": "object",
"properties": {
"breakupArrays": {
"type": "boolean"
},
"createOption": {
"type": "string",
"enum": [
"off",
"create",
"create_and_update"
],
"description": "Controls table and namespace creation. Off requires them to exist, Create creates them if they do not exist, and Create & Update also updates the table schema when new attributes appear."
},
"filterList": {
"type": "array",
"items": {
"type": "string"
}
},
"namespace": {
"type": "string",
"description": "The namespace to write to in the table bucket. A table has a single namespace, but a table bucket can contain multiple namespaces."
},
"table": {
"type": "string",
"description": "The name of the table to write to. Table names must follow S3 naming restrictions (for example, no upper case)."
},
"tableBucketARN": {
"type": "string",
"description": "The full ARN of the table bucket to write to, for example arn:aws:s3tables:region:account-id:bucket/name."
}
},
"description": "Settings Qualifier for an S3 Tables Output"
},
{
"type": "object",
"properties": {
"blobName": {
"type": "string",
"description": "The name of the blob. If no name is provided the blob name is a GUID and timestamp. This field supports dynamic references."
},
"breakupArrays": {
"type": "boolean"
},
"containerName": {
"type": "string",
"description": "The name of the storage container to place the data. Supports dynamic references."
},
"filterList": {
"type": "array",
"items": {
"type": "string"
}
},
"payloadReference": {
"type": "string",
"description": "When working with complex payloads, uses a dynamic output to specify the attribute that contains the file payload. If left blank, the entire payload is written out."
},
"utcTimePathPrefix": {
"type": "boolean",
"description": "When enabled a time prefix is added to the blob name to logically separate files as yyyy/MM/dd/HH/blob."
}
},
"description": "Settings qualifier for an Azure Blob Storage output"
},
{
"type": "object",
"properties": {
"breakupArrays": {
"type": "boolean"
},
"filterList": {
"type": "array",
"items": {
"type": "string"
}
},
"template": {
"type": "string",
"description": "Optional payload template used to format events before publishing to Event Hubs"
}
},
"description": "Settings qualifier for an Azure Event Hubs output"
},
{
"type": "object",
"properties": {
"breakupArrays": {
"type": "boolean"
},
"filterList": {
"type": "array",
"items": {
"type": "string"
}
},
"source": {
"type": "string",
"description": "Name of the IoT Edge source or module to publish to"
},
"template": {
"type": "string",
"description": "Optional payload template used to format edge messages"
}
},
"description": "Settings qualifier for an Azure IoT Edge output"
},
{
"type": "object",
"properties": {
"breakupArrays": {
"type": "boolean"
},
"filterList": {
"type": "array",
"items": {
"type": "string"
}
},
"modelComponent": {
"type": "string",
"description": "Optional model component or interface backing the message"
},
"template": {
"type": "string",
"description": "Optional payload template used to format IoT Hub messages"
}
},
"description": "Settings qualifier for an Azure IoT Hub output"
},
{
"type": "object",
"properties": {
"breakupArrays": {
"type": "boolean"
},
"filePath": {
"type": "string",
"description": "The file path to use to place the data. If no name is provided the file name is a GUID and timestamp. This field supports dynamic references."
},
"fileSystemName": {
"type": "string",
"description": "The name of the Gen 2 storage container to place the data. Supports dynamic references."
},
"filterList": {
"type": "array",
"items": {
"type": "string"
}
},
"payloadReference": {
"type": "string",
"description": "When working with complex payloads, uses a dynamic output to specify the attribute that contains the file payload. If left blank, the entire payload is written out."
},
"sourceFilePath": {
"type": "string",
"description": "Path to the source file for data."
},
"sourceType": {
"$ref": "#/$defs/SourceType",
"description": "Describes if the source of the data is from a file on disk or from a payload"
},
"utcTimePathPrefix": {
"type": "boolean",
"description": "When enabled a time prefix is added to the path to logically separate files as yyyy/MM/dd/HH/path."
}
},
"description": "Settings qualifier for an Azure OneLake output"
},
{
"type": "object",
"properties": {
"breakupArrays": {
"type": "boolean"
},
"catalog": {
"type": "string",
"description": "Name of the Unity Catalog to write to."
},
"filterList": {
"type": "array",
"items": {
"type": "string"
}
},
"path": {
"type": "string",
"description": "Relative path within the volume where files will be created."
},
"schema": {
"type": "string",
"description": "Name of the schema within the catalog that contains the volume."
},
"sourceFilePath": {
"type": "string",
"description": "Path to the source file for data."
},
"sourceType": {
"$ref": "#/$defs/SourceType",
"description": "Describes if the source of the data is from a file on disk or from a payload"
},
"volume": {
"type": "string",
"description": "Name of the volume where files will be written."
}
},
"description": "Settings qualifier for a Databricks client output"
},
{
"type": "object",
"properties": {
"breakupArrays": {
"type": "boolean"
},
"catalog": {
"type": "string",
"description": "Name of the Unity Catalog to write to."
},
"createOption": {
"$ref": "#/$defs/CreateType",
"description": "Controls how the table definition is managed: Off, Create, or Create & Update."
},
"filterList": {
"type": "array",
"items": {
"type": "string"
}
},
"schema": {
"type": "string",
"description": "Name of the schema within the catalog."
},
"table": {
"type": "string",
"description": "Name of the destination Zerobus table."
}
},
"description": "Settings qualifier for a Databricks Zerobus output"
},
{
"anyOf": [
{
"type": "object",
"properties": {
"breakupArrays": {
"type": "boolean"
},
"file": {
"$ref": "#/$defs/FilePathSearch",
"description": "The path of the file to delete."
},
"filterList": {
"type": "array",
"items": {
"type": "string"
}
},
"type": {
"const": "delete"
}
},
"description": "Settings qualifier for a file delete output",
"required": [
"type"
]
},
{
"type": "object",
"properties": {
"breakupArrays": {
"type": "boolean"
},
"destination": {
"type": "string",
"description": "Destination path the matching file(s) are moved to. Supports dynamic outputs."
},
"file": {
"anyOf": [
{
"type": "object",
"properties": {
"regex": {
"type": "string"
},
"relativePath": {
"type": "string"
},
"searchType": {
"const": "fileRegexSearch"
}
},
"required": [
"searchType"
],
"description": "Search criteria identifying the source file(s) to move."
},
{
"$ref": "#/$defs/FilePathSearch",
"description": "Search criteria identifying the source file(s) to move."
}
]
},
"filterList": {
"type": "array",
"items": {
"type": "string"
}
},
"type": {
"const": "move"
}
},
"description": "Settings qualifier for a file move output",
"required": [
"type"
]
},
{
"type": "object",
"properties": {
"base64Decoding": {
"type": "boolean",
"description": "When enabled, payloads are Base64 decoded before being written as a file. Used when receiving Base64 encoded file payloads over other connections."
},
"breakupArrays": {
"type": "boolean"
},
"fileName": {
"type": "string",
"description": "Specifies the name of the file to write to, including directories and extension. The file path can include dynamic outputs (for example /{{this.site}}/file.bin)."
},
"filterList": {
"type": "array",
"items": {
"type": "string"
}
},
"payloadReference": {
"type": "string",
"description": "When working with complex payloads, uses a dynamic output to specify the attribute that contains the file payload. If left blank, the connector writes the entire payload out to the file."
},
"relativePath": {
"type": "string",
"description": "The relative path of the starting directory in regard to the connection level File Directory setting."
},
"type": {
"const": "write"
}
},
"description": "Settings qualifier for a generic file output"
}
],
"properties": {}
},
{
"type": "object",
"properties": {
"breakupArrays": {
"type": "boolean"
},
"create": {
"type": "boolean",
"description": "When enabled, the file and directory structure are created if they do not exist. If they do exist, data is appended to the end of the file."
},
"delimiter": {
"type": "string",
"description": "The delimiter to use in the output file. By default this is a comma."
},
"fileName": {
"type": "string",
"description": "Specifies the name of the file to write to, including directories and extension. The file path can include dynamic outputs (for example /{{this.site}}/file.csv)."
},
"filterList": {
"type": "array",
"items": {
"type": "string"
}
},
"relativePath": {
"type": "string",
"description": "The relative path of the starting directory in regard to the connection level File Directory setting."
}
},
"description": "Settings qualifier for a CSV file output"
},
{
"type": "object",
"properties": {
"baseFileName": {
"type": "string",
"description": "The base filename to write out. Supports dynamic outputs and is combined with a timestamp and GUID (yyyy-MM-dd-HH-mm-ss-guid) to ensure uniqueness."
},
"breakupArrays": {
"type": "boolean"
},
"duration": {
"type": "integer",
"description": "Specifies how much data is in each file in minutes. The default duration is 1 minute; each file then contains one minute of data."
},
"filterList": {
"type": "array",
"items": {
"type": "string"
}
},
"relativePath": {
"type": "string",
"description": "The relative path of the starting directory with respect to the connection level File Directory setting."
}
},
"description": "Settings qualifier for a Parquet file output"
},
{
"type": "object",
"properties": {
"breakupArrays": {
"type": "boolean"
},
"filterList": {
"type": "array",
"items": {
"type": "string"
}
},
"topicId": {
"type": "string",
"description": "The Topic ID as defined in the Google Cloud Pub/Sub configuration. This is the topic the output publishes data to."
}
},
"description": "Settings qualifier for a Google Pub/Sub output"
},
{
"type": "object",
"properties": {
"breakupArrays": {
"type": "boolean"
},
"create": {
"type": "boolean",
"description": "When true, creates the tag if it does not exist"
},
"filterList": {
"type": "array",
"items": {
"type": "string"
}
},
"tagAddress": {
"type": "string",
"description": "Ignition tag path to write to"
}
},
"description": "Settings qualifier for an Ignition output"
},
{
"type": "object",
"properties": {
"breakupArrays": {
"type": "boolean"
},
"bucket": {
"type": "string",
"description": "Specifies the InfluxDB bucket to write data to. The bucket must exist and be accessible for the connection token."
},
"filterList": {
"type": "array",
"items": {
"type": "string"
}
},
"measurement": {
"type": "string",
"description": "Specifies the measurement name. If left blank, the model or data type name is used. Supports dynamic outputs."
},
"nameTag": {
"type": "string",
"description": "Specifies the name tag added to the measurement. If left blank, the input or instance name is used. Supports dynamic outputs."
},
"tags": {
"description": "The tags associated with the data written to InfluxDB. Each tag is specified on a separate line and can use dynamic outputs to organize data (for example, into an ISA-95 structure).",
"type": "array",
"items": {
"type": "string"
}
},
"timestamp": {
"type": "string",
"description": "Specifies the timestamp of the data written to InfluxDB. If left blank, the timestamp of the payload is used. Accepts a UTC ISO-8601 timestamp or a UTC epoch value in milliseconds and supports dynamic outputs."
}
},
"description": "Settings qualifier for an InfluxDB output"
},
{
"type": "object",
"properties": {
"breakupArrays": {
"type": "boolean"
},
"createOption": {
"$ref": "#/$defs/CreateType",
"description": "Controls how the table definition is managed: Off, Create, or Create & Update."
},
"filterList": {
"type": "array",
"items": {
"type": "string"
}
},
"logAsJSON": {
"type": "boolean",
"description": "When true, serializes modeled values as a single JSON column instead of expanding to multiple columns."
},
"table": {
"type": "string",
"description": "Name of the database table to write to"
},
"tableCacheInterval": {
"$ref": "#/$defs/Interval",
"description": "Optional interval controlling how long table metadata is cached. Useful when the table schema is managed externally and may change."
},
"whereColumn": {
"type": "string",
"description": "Specifies the body of the WHERE clause used to filter updated records when Write Type is update or upsert. Supports dynamic outputs."
},
"writeType": {
"$ref": "#/$defs/WriteOperation",
"description": "Write operation to perform: insert, update, or upsert."
}
},
"description": "Settings qualifier for a generic SQL/JDBC output"
},
{
"type": "object",
"properties": {
"breakupArrays": {
"type": "boolean"
},
"caseSensitive": {
"type": "boolean",
"description": "When true, treats table and column names as case sensitive"
},
"createOption": {
"$ref": "#/$defs/CreateType",
"description": "Controls how the table definition is managed: Off, Create, or Create & Update."
},
"filterList": {
"type": "array",
"items": {
"type": "string"
}
},
"logAsJSON": {
"type": "boolean",
"description": "When true, serializes modeled values as a single JSON column instead of expanding to multiple columns."
},
"table": {
"type": "string",
"description": "Name of the database table to write to"
},
"tableCacheInterval": {
"$ref": "#/$defs/Interval",
"description": "Optional interval controlling how long table metadata is cached. Useful when the table schema is managed externally and may change."
},
"whereColumn": {
"type": "string",
"description": "Specifies the body of the WHERE clause used to filter updated records when Write Type is update or upsert. Supports dynamic outputs."
},
"writeType": {
"$ref": "#/$defs/WriteOperation",
"description": "Write operation to perform: insert, update, or upsert."
}
},
"description": "Settings qualifier for a Snowflake SQL output"
},
{
"anyOf": [
{
"type": "object",
"properties": {
"breakupArrays": {
"type": "boolean"
},
"createHypertable": {
"type": "boolean",
"description": "When true, creates a TimescaleDB hypertable for the configured table if it does not already exist."
},
"createOption": {
"$ref": "#/$defs/CreateType",
"description": "Controls how the table definition is managed: Off, Create, or Create & Update."
},
"filterList": {
"type": "array",
"items": {
"type": "string"
}
},
"logAsJSON": {
"type": "boolean",
"description": "When true, serializes modeled values as a single JSON column instead of expanding to multiple columns."
},
"partitionBy": {
"type": "string",
"description": "Column used to partition the hypertable."
},
"partitionNumber": {
"type": "integer",
"description": "Number of partitions to create when partitioning by integer space."
},
"primaryKey": {
"type": "string",
"description": "Optional comma-separated list of columns to use as the hypertable primary key."
},
"table": {
"type": "string",
"description": "Name of the database table to write to"
},
"tableCacheInterval": {
"$ref": "#/$defs/Interval",
"description": "Optional interval controlling how long table metadata is cached. Useful when the table schema is managed externally and may change."
},
"whereColumn": {
"type": "string",
"description": "Specifies the body of the WHERE clause used to filter updated records when Write Type is update or upsert. Supports dynamic outputs."
},
"writeType": {
"$ref": "#/$defs/WriteOperation",
"description": "Write operation to perform: insert, update, or upsert."
},
"partitionType": {
"const": "integer"
}
},
"description": "Settings qualifier for a TimescaleDB hypertable partitioned by integer space",
"required": [
"partitionType"
]
},
{
"type": "object",
"properties": {
"breakupArrays": {
"type": "boolean"
},
"createHypertable": {
"type": "boolean",
"description": "When true, creates a TimescaleDB hypertable for the configured table if it does not already exist."
},
"createOption": {
"$ref": "#/$defs/CreateType",
"description": "Controls how the table definition is managed: Off, Create, or Create & Update."
},
"filterList": {
"type": "array",
"items": {
"type": "string"
}
},
"logAsJSON": {
"type": "boolean",
"description": "When true, serializes modeled values as a single JSON column instead of expanding to multiple columns."
},
"partitionBy": {
"type": "string",
"description": "Column used to partition the hypertable."
},
"partitionInterval": {
"$ref": "#/$defs/Interval",
"description": "Time interval per chunk when partitioning by time."
},
"primaryKey": {
"type": "string",
"description": "Optional comma-separated list of columns to use as the hypertable primary key."
},
"table": {
"type": "string",
"description": "Name of the database table to write to"
},
"tableCacheInterval": {
"$ref": "#/$defs/Interval",
"description": "Optional interval controlling how long table metadata is cached. Useful when the table schema is managed externally and may change."
},
"whereColumn": {
"type": "string",
"description": "Specifies the body of the WHERE clause used to filter updated records when Write Type is update or upsert. Supports dynamic outputs."
},
"writeType": {
"$ref": "#/$defs/WriteOperation",
"description": "Write operation to perform: insert, update, or upsert."
},
"partitionType": {
"const": "timespan"
}
},
"description": "Settings qualifier for a TimescaleDB hypertable partitioned by time interval",
"required": [
"partitionType"
]
}
],
"properties": {}
},
{
"type": "object",
"properties": {
"breakupArrays": {
"type": "boolean"
},
"filterList": {
"type": "array",
"items": {
"type": "string"
}
},
"header": {
"description": "Optional list of Kafka headers to attach to each message.",
"type": "array",
"items": {
"type": "object",
"properties": {
"name": {
"type": "string"
},
"value": {
"type": "string"
}
}
}
},
"key": {
"type": "string",
"description": "The key to use for the message (optional). Keys influence partitioning and grouping."
},
"topic": {
"type": "string",
"description": "The Kafka topic to publish messages to."
}
},
"description": "Settings qualifier for a Kafka output"
},
{
"type": "object",
"properties": {
"bitLength": {
"type": "integer",
"description": "Optional bit length per value: 16, 32, or 64"
},
"breakupArrays": {
"type": "boolean"
},
"count": {
"type": "integer",
"description": "Number of consecutive registers or coils to write"
},
"filterList": {
"type": "array",
"items": {
"type": "string"
}
},
"startAddress": {
"type": "string",
"description": "Starting Modbus address to write to"
},
"treatAsSigned": {
"type": "boolean",
"description": "When true, treats numeric values as signed"
},
"unitId": {
"type": "integer",
"description": "Modbus unit identifier (slave id)"
}
},
"description": "Settings qualifier for a Modbus TCP output"
},
{
"type": "object",
"properties": {
"breakupArrays": {
"type": "boolean"
},
"filterList": {
"type": "array",
"items": {
"type": "string"
}
},
"namedRoot": {
"type": "boolean",
"description": "When true, uses the event name as the root object in the payload."
},
"qos": {
"type": "string",
"enum": [
"AtMostOnce",
"AtLeastOnce",
"ExactlyOnce"
],
"description": "Quality of Service level for MQTT messages."
},
"retained": {
"type": "boolean",
"description": "When true, publishes messages as retained."
},
"template": {
"type": "string",
"description": "Optional template used to format the payload."
},
"topic": {
"type": "string",
"description": "MQTT topic to publish messages to."
}
},
"description": "Settings qualifier for an MQTT output"
},
{
"type": "object",
"properties": {
"breakupArrays": {
"type": "boolean"
},
"filterList": {
"type": "array",
"items": {
"type": "string"
}
},
"headers": {
"description": "Optional NATS headers (name/value pairs) to include on each message when headers are enabled.",
"type": "array",
"items": {
"type": "object",
"properties": {
"name": {
"type": "string"
},
"value": {
"type": "string"
}
}
}
},
"includeHeaders": {
"type": "boolean",
"description": "When true, attaches the configured headers to each published message."
},
"streamName": {
"type": "string",
"description": "Optional JetStream stream name. Required when JetStream is enabled and the subject is not already bound to a stream."
},
"subject": {
"type": "string",
"description": "The NATS subject to publish messages to."
},
"useJetStream": {
"type": "boolean",
"description": "When true, publishes via JetStream rather than core NATS."
}
},
"description": "Settings qualifier for a NATS output"
},
{
"type": "object",
"properties": {
"breakupArrays": {
"type": "boolean"
},
"browseVariableNodes": {
"type": "boolean",
"description": "When true, browses variable nodes beneath the identifier when creating writes"
},
"cacheInterval": {
"type": "string",
"description": "Cache interval controlling how often values are refreshed from the OPC UA server"
},
"dataType": {
"type": "string",
"description": "Requested OPC UA data type for the write"
},
"filterList": {
"type": "array",
"items": {
"type": "string"
}
},
"identifier": {
"anyOf": [
{
"$ref": "#/$defs/OpcUaNodeIdentifier",
"description": "OPC UA node identifier for the target tag"
},
{
"type": "object",
"properties": {
"relativePath": {
"type": "array",
"items": {
"type": "object",
"properties": {
"name": {
"type": "string"
},
"uri": {
"type": "string"
}
}
}
},
"startNode": {
"$ref": "#/$defs/OpcUaNodeIdentifier"
},
"type": {
"const": "Path"
}
},
"required": [
"type"
],
"description": "OPC UA node identifier for the target tag"
}
]
},
"maxDepth": {
"type": "integer",
"description": "Maximum branch depth when expanding complex values into OPC UA nodes"
},
"namedRoot": {
"type": "boolean",
"description": "When true, uses the event name as the root node name"
}
},
"description": "Settings qualifier for an OPC UA tag output"
},
{
"type": "object",
"properties": {
"breakupArrays": {
"type": "boolean"
},
"filterList": {
"type": "array",
"items": {
"type": "string"
}
},
"options": {
"type": "object",
"properties": {
"create": {
"type": "boolean",
"description": "When true, creates missing assets or points"
},
"database": {
"type": "string",
"description": "Target PI AFSDK database (for asset writes)"
},
"delimiter": {
"type": "string",
"description": "Optional delimiter for point names in the path"
},
"name": {
"type": "string",
"description": "Optional asset or point name"
},
"path": {
"type": "string",
"description": "Optional PI AFSDK path to the asset or point"
},
"pointSource": {
"type": "string",
"description": "Optional PI point source"
},
"timestamp": {
"type": "string",
"description": "Optional payload field to use as the PI timestamp"
},
"updateOption": {
"type": "string",
"description": "PI AFSDK update option (Insert, Replace, Remove, etc.)"
}
},
"description": "Type-specific PI AFSDK write options"
}
},
"description": "Settings qualifier for an OSIsoft PI AFSDK output"
},
{
"type": "object",
"properties": {
"bodyType": {
"type": "string",
"enum": [
"defaultjson",
"none",
"form_data",
"x_www_form_urlencoded",
"raw",
"binary"
],
"description": "Controls how the data is sent as part of the HTTP request (for example none, form-data, form urlencoded, template, or binary)."
},
"breakupArrays": {
"type": "boolean"
},
"endpointURL": {
"type": "string",
"description": "The endpoint to send the request to (for example /routes/myendpoint). A leading / is not required but recommended."
},
"filterList": {
"type": "array",
"items": {
"type": "string"
}
},
"header": {
"description": "Optional list of HTTP headers to include on each request. These are added to the connection-level headers.",
"type": "array",
"items": {
"type": "object",
"properties": {
"name": {
"type": "string"
},
"value": {
"type": "string"
}
}
}
},
"method": {
"type": "string",
"enum": [
"GET",
"POST",
"PUT",
"PATCH",
"DELETE"
],
"description": "HTTP method to use when sending the request."
},
"template": {
"type": "string",
"description": "Optional template used to build the request body from the event value when Body Type is Template."
}
},
"description": "Settings qualifier for a REST Client output"
},
{
"anyOf": [
{
"type": "object",
"properties": {
"baseLocation": {
"type": "string",
"description": "For Iceberg tables, the base storage location"
},
"breakupArrays": {
"type": "boolean"
},
"caseSensitive": {
"type": "boolean",
"description": "When true, treats table and column names as case sensitive and wraps them in quotes when writing."
},
"catalog": {
"type": "string",
"description": "For Iceberg tables, the catalog name"
},
"createOption": {
"$ref": "#/$defs/CreateType",
"description": "Controls how the table definition is managed: Off, Create, or Create & Update."
},
"externalVolume": {
"type": "string",
"description": "For Iceberg tables, the external volume name"
},
"filterList": {
"type": "array",
"items": {
"type": "string"
}
},
"table": {
"type": "string",
"description": "The name of the table to write to."
},
"type": {
"const": "iceberg"
}
},
"description": "Settings qualifier for a Snowflake-managed Iceberg table output",
"required": [
"type"
]
},
{
"type": "object",
"properties": {
"breakupArrays": {
"type": "boolean"
},
"caseSensitive": {
"type": "boolean",
"description": "When true, treats table and column names as case sensitive and wraps them in quotes when writing."
},
"createOption": {
"$ref": "#/$defs/CreateType",
"description": "Controls how the table definition is managed: Off, Create, or Create & Update."
},
"filterList": {
"type": "array",
"items": {
"type": "string"
}
},
"table": {
"type": "string",
"description": "The name of the table to write to."
},
"type": {
"const": "snowflake"
}
},
"description": "Settings qualifier for a standard Snowflake table output"
}
],
"properties": {}
},
{
"type": "object",
"properties": {
"breakupArrays": {
"type": "boolean"
},
"deviceId": {
"type": "string",
"description": "Optional Sparkplug device id"
},
"edgeNodeId": {
"type": "string",
"description": "Optional Sparkplug edge node id"
},
"filterList": {
"type": "array",
"items": {
"type": "string"
}
},
"groupId": {
"type": "string",
"description": "Optional Sparkplug group id"
},
"messageType": {
"type": "string",
"description": "Sparkplug message type: Data or Cmd"
},
"metricName": {
"type": "string",
"description": "Optional metric name to publish"
},
"publishType": {
"type": "string",
"description": "Publish as a single Tag or as a Template"
},
"template": {
"type": "boolean",
"description": "When true, publishes the metric as a Sparkplug template instead of a single tag"
},
"timestamp": {
"type": "string",
"description": "Optional payload field to use as the metric timestamp"
}
},
"description": "Settings qualifier for a Sparkplug B output"
}
]
},
"type": {
"type": "string"
}
},
"oneOf": [
{"properties": {"type": {"const": "aws.kinesisdatastream"}}},
{"properties": {"type": {"const": "aws.kinesisfirehose"}}},
{"properties": {"type": {"const": "aws.iotsitewise"}}},
{"properties": {"type": {"const": "aws.s3"}}},
{"properties": {"type": {"const": "aws.s3tables"}}},
{"properties": {"type": {"const": "azure.blob"}}},
{"properties": {"type": {"const": "azure.eventhub"}}},
{"properties": {"type": {"const": "azure.iotedge"}}},
{"properties": {"type": {"const": "azure.iothub"}}},
{"properties": {"type": {"const": "azure.onelake"}}},
{"properties": {"type": {"const": "databricks.client"}}},
{"properties": {"type": {"const": "databricks.zerobus"}}},
{"properties": {"type": {"const": "file"}}},
{"properties": {"type": {"const": "file.csv"}}},
{"properties": {"type": {"const": "file.parquet"}}},
{"properties": {"type": {"const": "google.pubsub"}}},
{"properties": {"type": {"const": "inductive.ignition"}}},
{"properties": {"type": {"const": "influxdb"}}},
{"properties": {"type": {"const": "jdbc"}}},
{"properties": {"type": {"const": "jdbc.snowflake"}}},
{"properties": {"type": {"const": "jdbc.timescaledb"}}},
{"properties": {"type": {"const": "kafka"}}},
{"properties": {"type": {"const": "modbus.tcp"}}},
{"properties": {"type": {"const": "mqtt"}}},
{"properties": {"type": {"const": "nats"}}},
{"properties": {"type": {"const": "opc.tcp"}}},
{"properties": {"type": {"const": "osisoft.afsdk"}}},
{"properties": {"type": {"const": "rest.client"}}},
{"properties": {"type": {"const": "snowflake"}}},
{"properties": {"type": {"const": "sparkplug"}}}
]
}