{
  "$schema": "https://json-schema.org/draft/2020-12/schema",
  "$id": "https://catalog.lintel.tools/schemas/schemastore/datalogic-scan2deploy-ce/latest.json",
  "title": "CE-Scan2Deploy Schema",
  "description": "Schema to validate Windows CE JSON files given as input to DL-Config to generate Scan2Deploy barcodes",
  "x-lintel": {
    "source": "https://www.schemastore.org/datalogic-scan2deploy-ce.json",
    "sourceSha256": "fb31f0938dde7d3be824dfaac97a34549f8d7842bc9d9fee0d1adc2861c85f60",
    "fileMatch": [
      ".dlc.json"
    ],
    "parsers": [
      "json"
    ]
  },
  "type": "object",
  "properties": {
    "layout": {
      "properties": {
        "description": {
          "maxLength": 350,
          "type": "string",
          "title": "Description Schema",
          "default": "none",
          "examples": [
            "This is for our WEC7 devices"
          ]
        }
      },
      "type": "object",
      "title": "Layout Schema"
    },
    "global": {
      "properties": {
        "target-path": {
          "examples": [
            "\\FlashDisk"
          ],
          "type": "string",
          "title": "Target-Path Schema",
          "description": "Base destination folder where archive/folder will be inflated",
          "default": "\\FlashDisk"
        },
        "action": {
          "examples": [
            "warm-boot"
          ],
          "type": "string",
          "enum": [
            "stay",
            "close",
            "warm-boot",
            "cold-boot",
            "clean-boot"
          ],
          "title": "Action Schema",
          "description": "Specifies final action performed by the application at the end of the staging process",
          "default": "cold-boot"
        },
        "ping-timeout": {
          "maximum": 4000,
          "type": "integer",
          "title": "Ping-Timeout Schema",
          "description": "The timeout value used when attempting to reach the host server",
          "default": 1000,
          "examples": [
            1000
          ],
          "minimum": 1
        }
      },
      "type": "object",
      "title": "Global-Section Schema",
      "description": "Section used to configure application scoped settings"
    },
    "settings": {
      "properties": {
        "usb-function": {
          "examples": [
            "usblan"
          ],
          "type": "string",
          "enum": [
            "active-sync-usb",
            "active-sync-com",
            "usblan",
            "mass-storage"
          ],
          "title": "USB-Function Schema",
          "description": "USB communication function to use",
          "default": "active-sync-usb"
        }
      },
      "type": "object",
      "title": "Settings-Section Schema",
      "description": "Section used to configure inner device settings"
    },
    "network": {
      "then": {
        "required": [
          "mode-key"
        ]
      },
      "type": "object",
      "title": "Network-Section Schema",
      "description": "Section used to configure device Wi-Fi network",
      "properties": {
        "profile": {
          "examples": [
            "my_fast"
          ],
          "type": "string",
          "title": "Profile Schema",
          "description": "\"Friendly\" name to associate with the network connection",
          "default": "datalogic"
        },
        "essid": {
          "examples": [
            "eapfast"
          ],
          "type": "string",
          "title": "Essid Schema",
          "description": "Wireless network ESSID",
          "default": "tsunami"
        },
        "mode": {
          "examples": [
            "wpa2-aes"
          ],
          "type": "string",
          "enum": [
            "open",
            "wep-40",
            "wep-104",
            "wpa-psk",
            "wpa2-psk",
            "wpa-tkip",
            "wpa2-aes"
          ],
          "title": "Mode Schema",
          "description": "Wireless connection mode",
          "default": "open"
        },
        "mode-key": {
          "maxLength": 63,
          "type": "string",
          "title": "Mode-Key Schema",
          "description": "Wireless network key for 'wep-40', 'wep-104', 'wpa-psk', and 'wpa2-psk' networks",
          "default": "",
          "examples": [
            "0123456789"
          ],
          "minLength": 5
        },
        "index": {
          "maximum": 4,
          "type": "integer",
          "title": "Index Schema",
          "description": "Wireless network key index for 'wep-40' and 'wep-104' networks",
          "default": 1,
          "examples": [
            1
          ],
          "minimum": 1
        },
        "eap-method": {
          "examples": [
            "fast"
          ],
          "type": "string",
          "enum": [
            "none",
            "peap",
            "tls",
            "ttls",
            "fast",
            "leap"
          ],
          "title": "Eap-Method Schema",
          "description": "Configures the EAP authentication method",
          "default": "none"
        },
        "eap-username": {
          "examples": [
            "eapfast"
          ],
          "type": "string",
          "title": "Eap-Username Schema",
          "description": "Username for the EAP method",
          "default": ""
        },
        "eap-password": {
          "examples": [
            "1234567890"
          ],
          "type": "string",
          "title": "Eap-Password Schema",
          "description": "Password for EAP method",
          "default": ""
        },
        "credentials-type": {
          "examples": [
            "password"
          ],
          "type": "string",
          "enum": [
            "password",
            "token",
            "certificate",
            "unknown"
          ],
          "title": "Credentials-Type Schema",
          "description": "Indicates the EAP credentials type",
          "default": "password"
        },
        "credentials-source": {
          "examples": [
            "profile"
          ],
          "type": "string",
          "enum": [
            "user",
            "logon",
            "profile",
            "auto",
            "unknown"
          ],
          "title": "Credentials-Source Schema",
          "description": "Indicates the EAP credentials source",
          "default": "user"
        },
        "validate-server": {
          "examples": [
            false
          ],
          "type": "boolean",
          "title": "Validate-Server Schema",
          "description": "Indicates if the server certificate should be validated",
          "default": false
        },
        "connect-to-server": {
          "examples": [
            false
          ],
          "type": "boolean",
          "title": "Connect-To-Server Schema",
          "description": "Indicates if only the servers listed in the 'connect-to-server-names' list should be connected to",
          "default": false
        },
        "connect-to-server-names": {
          "examples": [
            ""
          ],
          "type": "string",
          "title": "Connect-To-Server-Names Schema",
          "description": "Semi-colon separated list of servers that are valid to connect to during server certificate validation",
          "default": ""
        },
        "server-cert-name": {
          "examples": [
            ""
          ],
          "type": "string",
          "title": "Server-Cert-Name Schema",
          "description": "\"Friendly\" name of the server digital certificate that should be validated",
          "default": ""
        },
        "outer-identity": {
          "examples": [
            ""
          ],
          "type": "string",
          "title": "Outer-Identity Schema",
          "description": "The outer-identity of the EAP method",
          "default": ""
        },
        "fast-reconnect": {
          "examples": [
            false
          ],
          "type": "boolean",
          "title": "Fast-Reconnect Schema",
          "description": "Indicate if fast reconnect should be enabled",
          "default": false
        },
        "inner-method": {
          "examples": [
            "eap-MsChapV2"
          ],
          "type": "string",
          "enum": [
            "eap-tls",
            "eap-MsChapV2",
            "eap-gtc"
          ],
          "title": "Inner-Method Schema",
          "description": "Inner EAP authentication method to use",
          "default": "eap-tls"
        },
        "auto-pac": {
          "examples": [
            true
          ],
          "type": "boolean",
          "title": "Auto-Pac Schema",
          "description": "Indicates if automatic PAC provisioning is used for an EAP-FAST network",
          "default": false
        },
        "pac-file-path": {
          "examples": [
            ""
          ],
          "type": "string",
          "title": "Pac-File-Path Schema",
          "description": "Full path to the PAC file for manual PAC provisioning",
          "default": ""
        },
        "pac-aid-info": {
          "examples": [
            ""
          ],
          "type": "string",
          "title": "Pac-Aid-Info Schema",
          "description": "PAC authority identity (AID) information used to select PAC from a list of PACs on the device",
          "default": ""
        }
      },
      "if": {
        "properties": {
          "mode": {
            "enum": [
              "wpa-psk",
              "wpa2-psk",
              "wep-40",
              "wep-104"
            ]
          }
        }
      }
    },
    "deployment": {
      "required": [
        "host"
      ],
      "type": "object",
      "title": "Deployment-Section Schema",
      "description": "Section used to download a ZIP archive from a server and inflate it to the 'target-path' folder",
      "properties": {
        "scheme": {
          "examples": [
            "http"
          ],
          "type": "string",
          "enum": [
            "http",
            "https"
          ],
          "title": "Scheme Schema",
          "description": "Deployment download scheme to use",
          "default": "http"
        },
        "host": {
          "examples": [
            "10.1.20.123"
          ],
          "type": "string",
          "title": "Host Schema",
          "description": "Host name or internet protocol address of the server from which the resource is to be fetched",
          "default": ""
        },
        "port": {
          "maximum": 65535,
          "type": "integer",
          "title": "Port Schema",
          "description": "TCP/IP port to be used to contact the server",
          "default": 80,
          "examples": [
            8080
          ],
          "minimum": 0
        },
        "path": {
          "examples": [
            "target.zip"
          ],
          "type": "string",
          "title": "Path Schema",
          "description": "Path to server resource to download, complete with query string if needed",
          "default": ""
        }
      }
    },
    "shell": {
      "properties": {
        "cmds": {
          "items": {
            "properties": {
              "app-name": {
                "examples": [
                  "\\windows\\dldxu.exe"
                ],
                "type": "string",
                "title": "App-Name Schema",
                "description": "Full path to the application to be executed",
                "default": ""
              },
              "args": {
                "examples": [
                  "\\FlashDisk\\target\\config.dxu"
                ],
                "type": "string",
                "title": "Args Schema",
                "description": "Command line arguments",
                "default": ""
              }
            },
            "type": "object",
            "title": "Items Schema",
            "required": [
              "app-name"
            ]
          },
          "type": "array",
          "title": "Cmds Schema",
          "description": "Each object in 'cmds' is a shell command to execute in the final phase of staging"
        }
      },
      "type": "object",
      "title": "Shell-Section Schema",
      "description": "Section for executable shell commands to be performed in the final staging phase",
      "required": [
        "cmds"
      ]
    }
  },
  "$defs": {}
}
