{"$schema":"http://json-schema.org/draft-04/schema#","type":"object","title":"JSON schema for Azure IoT Edge Deployment Template version 2.0","required":["modulesContent"],"properties":{"modulesContent":{"type":"object","title":"The configuration for all the modules.","required":["$edgeAgent","$edgeHub"],"properties":{"$edgeAgent":{"type":"object","title":"Configuration for the edgeAgent module","required":["properties.desired"],"properties":{"properties.desired":{"type":"object","required":["schemaVersion","runtime","systemModules","modules"],"properties":{"schemaVersion":{"type":"string","examples":["1.0","1.1"]},"runtime":{"type":"object","required":["type","settings"],"properties":{"type":{"$ref":"#/definitions/moduleType"},"settings":{"type":"object","properties":{"minDockerVersion":{"type":"string","examples":["v1.25"]},"loggingOptions":{"type":"string"},"registryCredentials":{"type":"object","patternProperties":{"^[^\\.\\# ]+$":{"type":"object","required":["username","password","address"],"properties":{"username":{"type":"string"},"password":{"type":"string"},"address":{"type":"string","pattern":"^[^\\s]+$"}},"additionalProperties":false}},"additionalProperties":false}},"additionalProperties":false}},"additionalProperties":false},"systemModules":{"type":"object","required":["edgeAgent","edgeHub"],"properties":{"edgeAgent":{"type":"object","required":["type","settings"],"properties":{"type":{"$ref":"#/definitions/moduleType"},"settings":{"$ref":"#/definitions/moduleSettings"},"env":{"$ref":"#/definitions/env"},"imagePullPolicy":{"$ref":"#/definitions/imagePullPolicy"}},"additionalProperties":false},"edgeHub":{"type":"object","title":"The Edgehub Schema","required":["type","settings","status","restartPolicy"],"properties":{"type":{"$ref":"#/definitions/moduleType"},"settings":{"$ref":"#/definitions/moduleSettings"},"env":{"$ref":"#/definitions/env"},"status":{"$ref":"#/definitions/status"},"restartPolicy":{"$ref":"#/definitions/restartPolicy"},"imagePullPolicy":{"$ref":"#/definitions/imagePullPolicy"},"startupOrder":{"$ref":"#/definitions/startupOrder"}},"additionalProperties":false}},"additionalProperties":false},"modules":{"type":"object","patternProperties":{"^[a-zA-Z0-9_-]+$":{"type":"object","required":["type","status","restartPolicy","settings"],"properties":{"version":{"type":"string","examples":["1.0","1.1"]},"type":{"$ref":"#/definitions/moduleType"},"status":{"$ref":"#/definitions/status"},"restartPolicy":{"$ref":"#/definitions/restartPolicy"},"env":{"$ref":"#/definitions/env"},"settings":{"$ref":"#/definitions/moduleSettings"},"imagePullPolicy":{"$ref":"#/definitions/imagePullPolicy"},"startupOrder":{"$ref":"#/definitions/startupOrder"}},"additionalProperties":false}},"additionalProperties":false}},"additionalProperties":false}},"additionalProperties":false},"$edgeHub":{"$ref":"https://json.schemastore.org/azure-iot-edge-deployment-2.0#/properties/modulesContent/properties/$edgeHub"}},"patternProperties":{"^[a-zA-Z0-9_-]+$":{"type":"object","required":["properties.desired"],"properties":{"properties.desired":{"type":"object"}},"additionalProperties":false}},"additionalProperties":false},"$schema-template":{"type":"string"},"$schema":{"type":"string"}},"additionalProperties":false,"definitions":{"moduleType":{"$ref":"https://json.schemastore.org/azure-iot-edge-deployment-2.0#/definitions/moduleType"},"status":{"$ref":"https://json.schemastore.org/azure-iot-edge-deployment-2.0#/definitions/status"},"restartPolicy":{"$ref":"https://json.schemastore.org/azure-iot-edge-deployment-2.0#/definitions/restartPolicy"},"imagePullPolicy":{"$ref":"https://json.schemastore.org/azure-iot-edge-deployment-2.0#/definitions/imagePullPolicy"},"startupOrder":{"$ref":"https://json.schemastore.org/azure-iot-edge-deployment-2.0#/definitions/startupOrder"},"moduleSettings":{"type":"object","required":["image"],"properties":{"image":{"type":"string","examples":["mcr.microsoft.com/azureiotedge-agent:1.0"]},"createOptions":{"$ref":"#/definitions/createOptions"}},"additionalProperties":false},"env":{"$ref":"https://json.schemastore.org/azure-iot-edge-deployment-2.0#/definitions/env"},"createOptions":{"type":["object","string"],"contentMediaType":"application/json"}}}