Schema URL

Type: object

Schema that defines how to write a connector metadata document when writing connectors for Azure IoT Operations solutions

Properties

name string required

The name of the connector.

version string required

The version of this connector. This must use semantic versioning such as '1.2.3'

Default: "1.0.0"
pattern=^(0|[1-9]\d*)\.(0|[1-9]\d*)\.(0|[1-9]\d*)(?:-((?:0|[1-9]\d*|\d*[a-zA-Z-][0-9a-zA-Z-]*)(?:\.(?:0|[1-9]\d*|\d*[a-zA-Z-][0-9a-zA-Z-]*))*))?(?:\+([0-9a-zA-Z-]+(?:\.[0-9a-zA-Z-]+)*))?$
imageConfigurationSettings object required

The container image details for this connector image.

One of: object object, object object
supportedArchitectures array required

The CPU architectures that this connector image was built for. At least one must be specified.

minItems=1uniqueItems=true
inboundEndpoints array required

The array of inbound endpoints in a device that this connector will be deployed for.

minItems=1
aioConnectorMetadataSchemaVersion string

The version of AIO connector metadata schema that this connector metadata file adheres to.

Default: "6.0-preview"
pattern=^(0|[1-9]\d*)\.(0|[1-9]\d*)(?:-((?:0|[1-9A-Za-z-][0-9A-Za-z-]*)(?:\.(?:0|[1-9A-Za-z-][0-9A-Za-z-]*))*))?(?:\+([0-9A-Za-z-]+(?:\.[0-9A-Za-z-]+)*))?$
description string

A brief (human-readable) description of the connector (preferably in English). This is seen when browsing connectors in the portal.

isPreview boolean

True if this connector is considered a preview version.

Default: "false"
maintainer string

A name and/or email of the maintainer of this connector.

vendor string

A name and/or email of the vendor that distributes this connector.

secrets array

The array of secrets that are required for the connector application to work. The secret will be mounted onto all connector instances deployed for this connector application

minItems=1
storageVolumes array

The array of storage volumes that are required for the connector application to work.

minItems=1
sourceCode object

Details about the source code that compiled this connector

3 nested properties
language string required

The programming language used to write this connector

languageVersion string required

The version of the programming language used to write this connector

sdks object

Details about the versions of the AIO SDKs used to write this connector (if they were used)

4 nested properties
mqttPackageVersion string

The version of the Azure IoT Operations MQTT package

protocolPackageVersion string

The version of the Azure IoT Operations protocol package

servicesPackageVersion string

The version of the Azure IoT Operations services package

connectorPackageVersion string

The version of the Azure IoT Operations connector package

aioMetadata object

The AIO requirements to run this connector

2 nested properties
aioMinVersion string

The minimal (inclusive) version that can run this connector.

aioMaxVersion string

The maximal (inclusive) version that can run this connector. If there is no known exact version, wildcards can be used such as '1..'. Alternatively, not specifying an aioMaxVersion signals no upper bound

connectorConfigurationKeys array

The array of keys in the connector configuration

minItems=1
inboundEndpointAlternativeTypeName object

The alternative name of this type. For example, OPC UA knows "datapoints" as "tags"

2 nested properties
singular string required

The singular form of the name of this type

plural string required

The plural form of the name of this type

endpointsEnabledByDefault boolean

If true, inbound endpoints are enabled by default. Users may still specify in the deployed device definition if each endpoint is enabled or not and that value will override this value.

recommendedAllocationPolicy string

The recommended configuration to use for allocating device inbound endpoints for the connector instances. Only 'bucketized' is currently supported.

Values: "bucketized"
recommendedReplicas integer

The recommended number of replicas to deploy for this connector.

min=1

Definitions

modelLimits object

Describes the limits to this model type that this connector supports. For instance, a connector may support between 0 to 5 datasets.

maximum integer

The maximum number of this model type that this connector supports. If not specified, the default is whatever limits the ADR service itself has.

min=1
minimum integer

The minimum number of this model type that this connector supports.

Default: 0
min=0
mqttDestinationDefaults object

The specific default values that will be used by the connector when publishing telemetry to the MQTT broker.

destination string required
Default: "Mqtt"
Values: "Mqtt"
topic string required

The default MQTT topic that will be published to. Values are allowed to contain deploy-time parameters like 'mqtt/{deviceName}/{inboundEndpointName}/myMessages'. The supported parameter tokens are: {deviceName}, {inboundEndpointName}, {assetName}, {datasetName}, {eventName}, {streamName}, and {kubernetesNamespace}. Dataset/event/stream name tokens are only allowed if the configured destination is for a dataset/event/stream.

qos integer required

The default MQTT quality of service that MQTT messages will be published with

Values: 0 1
ttl integer required

The default time to live that MQTT messages will be published with.

min=0
retain string required

The default retain flag value that MQTT messages will be published with.

Values: "keep" "never"
brokerStateStoreDestinationDefaults object

The broker state store-specific default values that will be used by the connector if not otherwise specified.

destination string required
Default: "BrokerStateStore"
Values: "BrokerStateStore"
key string required

The default broker state store key that will be published to. Values are allowed to contain deploy-time parameters like 'dss/{deviceName}/{inboundEndpointName}'. The supported parameter tokens are: {deviceName}, {inboundEndpointName}, {assetName}, {datasetName}, {eventName}, {streamName}, and {kubernetesNamespace}. Dataset/event/stream name tokens are only allowed if the configured destination is for a dataset/event/stream.

storageDestinationDefaults object

The storage-specific default values that will be used by the connector if not otherwise specified.

destination string required
Default: "Storage"
Values: "Storage"
path string required

The default path that storage will use. Values are allowed to contain deploy-time parameters like 'storage/{deviceName}/{inboundEndpointName}'. The supported parameter tokens are: {deviceName}, {inboundEndpointName}, {assetName}, {datasetName}, {eventName}, {streamName}, and {kubernetesNamespace}. Dataset/event/stream name tokens are only allowed if the configured destination is for a dataset/event/stream.

alternativeTypeName object

The alternative name of this type. For example, OPC UA knows "datapoints" as "tags"

singular string required

The singular form of the name of this type

plural string required

The plural form of the name of this type

fieldNecessity object

Details about if a field is required or not and what shape its value should take

input string required

If this field is relevant to this connector or not. If required, the connector cannot function without this field being provided in the specified shape. If unsupported, the connector will ignore any value provided for this field. If optional, the connector can function with or without this field being provided, but the behavior may vary depending on it.

Values: "required" "unsupported" "optional"
regex string[]

The set of regex that this field's value should adhere to.

exampleValue string

An example value for this field that fits the expected format

description string

Additional user-readable context for this field. May explain how the field is used or explain the validation rules around it.