export type ModuleTwin = { type: string; settings: ModuleTwinSettings; }; export type EdgeHubModuleTwin = ModuleTwin & { status: string; restartPolicy: string; }; export type SimulatedTemperatureSensorModuleTwin = ModuleTwin & { version: string; }; export type PortBinding = { HostPort: string; }; export type CreateOptions = { HostConfig?: { Binds?: string[]; PortBindings?: Record; }; Env?: string[]; }; export type ModuleTwinSettings = { image: string; createOptions: string; }; export type RuntimeSettings = { minDockerVersion: string; loggingOptions: string; registryCredentials: Record; }; export type Runtime = { type: string; settings: RuntimeSettings; }; export type EdgeAgentSystemModules = { edgeAgent: ModuleTwin; edgeHub: EdgeHubModuleTwin; }; export type EdgeAgent = { 'properties.desired': { schemaVersion: string; runtime: Runtime; systemModules: EdgeAgentSystemModules; modules: Record; }; }; export type EdgeHubStoreAndForwardConfiguration = { timeToLiveSecs: number; }; export type EdgeHub = { 'properties.desired': { schemaVersion: string; routes: Record; storeAndForwardConfiguration: EdgeHubStoreAndForwardConfiguration; }; }; export type SimulatedTemperatureSensor = { 'properties.desired': { SendData: boolean; SendInterval: number; }; }; export type ModulesContent = { $edgeAgent: EdgeAgent; $edgeHub: EdgeHub; }; export type DeviceConfigModulesContent = ModulesContent & { SimulatedTemperatureSensor?: SimulatedTemperatureSensor; }; export type Content = { modulesContent: DeviceConfigModulesContent; }; export type DeviceConfigJSON = { content: Content; }; export type DeviceConfigTemplateJSON = { '$schema-template': string; modulesContent: ModulesContent; };