{ "$schema": "http://json-schema.org/draft-07/schema#", "$id": "http://example.com/root.json", "type": "object", "title": "Scan2Deploy Android Schema v1_6_0", "description": "Schema to validate Android JSON files given as input to DL-Config to generate Scan2Deploy barcodes", "properties": { "layout": { "$id": "#/properties/layout", "type": "object", "title": "Layout Schema", "properties": { "description": { "$id": "#/properties/layout/properties/description", "type": "string", "title": "Description Schema", "default": "none", "examples": [ "This is for our Android devices" ], "maxLength": 350 }, "enroll": { "$id": "#/properties/layout/properties/enroll", "type": "boolean", "title": "Enroll Schema", "default": false, "examples": [ true ] } } }, "padlock": { "$id": "#/properties/padlock", "type": "object", "title": "Padlock Schema", "description": "Section used to configure the staging locking feature", "properties": { "valid-until": { "$id": "#/properties/padlock/properties/valid-until", "type": "string", "title": "Valid-Until Schema", "description": "Specifies the expiration date of the barcode sequence. Device date must be synchronized/configured for expiration date to work properly.", "default": "20991231235959", "examples": [ "20991231235959" ] }, "key": { "$id": "#/properties/padlock/properties/key", "type": "string", "title": "Key Schema", "description": "Padlock key to be used. If value doesn't match the device, the barcode is rejected. Empty string means no key.", "default": "", "examples": [ "ihavenomouthandimustscream" ] }, "state": { "$id": "#/properties/padlock/properties/state", "type": "string", "enum": [ "locked", "unlocked" ], "title": "State Schema", "description": "Configures the padlock state", "default": "undefined", "examples": [ "locked" ] }, "hide-from-launcher": { "$id": "#/properties/padlock/properties/hide-from-launcher", "type": "boolean", "title": "Hide-From-Launcher Schema", "description": "Indicates if Scan2Deploy should be disabled after staging is complete. Once disabled, factory reset required to reenable.", "default": false, "examples": [ false ] } } }, "global": { "$id": "#/properties/global", "type": "object", "title": "Global Schema", "description": "Section used to configure application scoped settings", "properties": { "target-path": { "$id": "#/properties/global/properties/target-path", "type": "string", "title": "Target-Path Schema", "description": "Base destination folder where any archive/fill will be inflated/written.", "default" : "/sdcard/Download/scan2deploy", "examples": [ "/mnt/sdcard/airwatch" ] }, "install-path": { "$id": "#/properties/global/properties/install-path", "type": "string", "title": "Install-Path Schema", "description": "Folder where the application expects auto-installed/auto-updated APKs to be found.", "default" : "/sdcard/Download/scan2deploy", "examples": [ "/mnt/sdcard/airwatch" ] }, "update-path": { "$id": "#/properties/global/properties/update-path", "type": "string", "title": "Update-Path Schema", "description": "Folder where the application expects auto-updated OTA packages to be found.", "default" : "/sdcard/Download", "examples": [ "/mnt/sdcard/airwatch" ] }, "purge-target-path": { "$id": "#/properties/global/properties/purge-target-path", "type": "boolean", "title": "Purge-Target-Path Schema", "description": "Indicates if target specified in 'target-path' needs to be purged (deleted) prior to inflation of the deployment archive", "default": true, "examples": [ true ] }, "auto-scan": { "$id": "#/properties/global/properties/auto-scan", "type": "boolean", "title": "Auto-Scan Schema", "description": "Enables/Disables the auto-update of APKs and OTA packages", "default": false, "examples": [ true ] }, "downgrade-preinstalled": { "$id": "#/properties/global/properties/downgrade-preinstalled", "type": "boolean", "title": "Downgrade-Preinstalled Schema", "description": "Used to force the downgrade of pre-installed application (even System app), if required", "default": false, "examples": [ false ] }, "script": { "$id": "#/properties/global/properties/script", "type": [ "string", "array" ], "title": "Script Schema", "description": "A script will be interpreted last in staging process. Provide either a string specifying the absolute/relative path of a file, or a JSON array of strings describing the file content line-by-line. \nDELETE : Recursively deletes files/folders starting from path, only if the name matches the pattern regular-expression. If include is true the matching entries will be deleted, the non-matching otherwise. If folder path is empty at the end of the process it will be deleted, as well.\nDISABLE_APP : Disables the app with the specified `package-name`. There is no longer any way an user could launch the app.\nENABLE_APP : Enable the app with the specified `package-name`. The app becomes user-launchable.\nGRANT [-p permission] [-s grant|deny|default] : Grants or revokes permissions on the specified package. The `-p` and `-s` parameters are optional.\n* `[-p]` If a permission is provided using the `-p` parameter, only that single permission will be affected. If no `-p` is specified, all the permissions declared in the manifest for the given `package-name` package will be affected.\n* `[-s]` The `-s` paramter can be used to specify that the permission be granted (`grant`), denied (`deny`), or user-configurable (`default`). In the caes of `grant` and `deny`, the permission set is no longer user-configurable; if you view the permission in the Settings app on the device, you will see that it can't be modified. The default behavior is to `grant` permission(s).\nINFLATE : Inflates the ZIP archive found at archive-path to target-path folder.\nINSTALL : Installs an application given the path to the containing APK.\nLAUNCH : Starts the launching intent given an application package-name. \nSHELL : Runs an arbitrary shell command, similarly to the ADB shell command.\nUNINSTALL : Uninstalls a previously installed application given its package-name.\nUPDATE : Installs a firmware update from an OTA package.\nWAIT : Suspend the script execution for milliseconds milliseconds.", "items": { "$id": "#/properties/global/properties/script/items", "type": "string", "title": "Items Schema", "pattern": "^BECOME|^BROADCAST|^CLEAR|^COPY|^DELETE|^DISABLE_APP|^DISOWN|^ENABLE_APP|^GRANT|^INFLATE|^INSTALL|^LAUNCH|^OWN|^SHELL|^START|^UNINSTALL|^UPDATE|^WAIT|^\\[Pre-Install\\]$|^\\[Install\\]$|^\\[Post-Install\\]$", "default": "DELETE ", "examples": [ "DELETE ", "DISABLE_APP ", "ENABLE_APP ", "GRANT [-p permission] [-s grant|deny|default] ", "INFLATE ", "INSTALL ", "LAUNCH ", "SHELL ", "UNINSTALL ", "UPDATE ", "WAIT ", "[Pre-Install]", "[Install]", "[Post-Install]" ] }, "default": "", "examples": [ "setup.s" ] }, "action": { "$id": "#/properties/global/properties/action", "type": "string", "pattern": "^(?:intent:|android-app:\\/\\/).+$|none|close|enterprise-reset|factory-reset|reset", "title": "Action Schema", "description": "Specifies the final action performed by the application at the end of the staging process.", "default": "none", "examples": [ "close" ] }, "backup-to-enterprise": { "$id": "#/properties/global/properties/backup-to-enterprise", "type": "boolean", "title": "Backup-To-Enterprise Schema", "description": "Activates the enterprise backup persistence for the staging data, resulting in both the staging script and archive being copied to the enterprise partition", "default": false, "examples": [ true ] }, "oemconfig": { "$id": "#/properties/global/properties/oemconfig", "type": "boolean", "title": "OEMConfig Schema", "description": "Broadcast an intent with OEMConfig settings", "default": false } } }, "settings": { "$id": "#/properties/settings", "type": "object", "title": "Settings Schema", "description": "Section used to control inner device settings that typically need to be changed from the Android defaults", "properties": { "date-time": { "$id": "#/properties/settings/properties/date-time", "type": "string", "title": "Date-Time Schema", "description": "String representation in RFC-1123 format of the date to be set", "default": "null", "examples": [ "Thu, 19 Apr 2018 07:51:37 GMT" ] }, "auto-time": { "$id": "#/properties/settings/properties/auto-time", "type": "boolean", "title": "Auto-Time Schema", "description": "Controls the 'Date & Time' automatic date-time adjustment setting", "default": true, "examples": [ false ] }, "auto-time-zone": { "$id": "#/properties/settings/properties/auto-time-zone", "type": "boolean", "title": "Auto-Time-Zone Schema", "description": "Controls the 'Date & Time' automatic time-zone adjustment setting", "default": true, "examples": [ false ] }, "time-zone": { "$id": "#/properties/settings/properties/time-zone", "type": "string", "title": "Select-Time-Zone Schema", "description": "Specify a valid time zone for the device.", "enum": [ "Africa/Abidjan", "Africa/Accra", "Africa/Addis_Ababa", "Africa/Algiers", "Africa/Asmara", "Africa/Asmera", "Africa/Bamako", "Africa/Bangui", "Africa/Banjul", "Africa/Bissau", "Africa/Blantyre", "Africa/Brazzaville", "Africa/Bujumbura", "Africa/Cairo", "Africa/Casablanca", "Africa/Ceuta", "Africa/Conakry", "Africa/Dakar", "Africa/Dar_es_Salaam", "Africa/Djibouti", "Africa/Douala", "Africa/El_Aaiun", "Africa/Freetown", "Africa/Gaborone", "Africa/Harare", "Africa/Johannesburg", "Africa/Juba", "Africa/Kampala", "Africa/Khartoum", "Africa/Kigali", "Africa/Kinshasa", "Africa/Lagos", "Africa/Libreville", "Africa/Lome", "Africa/Luanda", "Africa/Lubumbashi", "Africa/Lusaka", "Africa/Malabo", "Africa/Maputo", "Africa/Maseru", "Africa/Mbabane", "Africa/Mogadishu", "Africa/Monrovia", "Africa/Nairobi", "Africa/Ndjamena", "Africa/Niamey", "Africa/Nouakchott", "Africa/Ouagadougou", "Africa/Porto-Novo", "Africa/Sao_Tome", "Africa/Timbuktu", "Africa/Tripoli", "Africa/Tunis", "Africa/Windhoek", "America/Adak", "America/Anchorage", "America/Anguilla", "America/Antigua", "America/Araguaina", "America/Argentina/Buenos_Aires", "America/Argentina/Catamarca", "America/Argentina/ComodRivadavia", "America/Argentina/Cordoba", "America/Argentina/Jujuy", "America/Argentina/La_Rioja", "America/Argentina/Mendoza", "America/Argentina/Rio_Gallegos", "America/Argentina/Salta", "America/Argentina/San_Juan", "America/Argentina/San_Luis", "America/Argentina/Tucuman", "America/Argentina/Ushuaia", "America/Aruba", "America/Asuncion", "America/Atikokan", "America/Atka", "America/Bahia", "America/Bahia_Banderas", "America/Barbados", "America/Belem", "America/Belize", "America/Blanc-Sablon", "America/Boa_Vista", "America/Bogota", "America/Boise", "America/Buenos_Aires", "America/Cambridge_Bay", "America/Campo_Grande", "America/Cancun", "America/Caracas", "America/Catamarca", "America/Cayenne", "America/Cayman", "America/Chicago", "America/Chihuahua", "America/Coral_Harbour", "America/Cordoba", "America/Costa_Rica", "America/Creston", "America/Cuiaba", "America/Curacao", "America/Danmarkshavn", "America/Dawson", "America/Dawson_Creek", "America/Denver", "America/Detroit", "America/Dominica", "America/Edmonton", "America/Eirunepe", "America/El_Salvador", "America/Ensenada", "America/Fort_Nelson", "America/Fort_Wayne", "America/Fortaleza", "America/Glace_Bay", "America/Godthab", "America/Goose_Bay", "America/Grand_Turk", "America/Grenada", "America/Guadeloupe", "America/Guatemala", "America/Guayaquil", "America/Guyana", "America/Halifax", "America/Havana", "America/Hermosillo", "America/Indiana/Indianapolis", "America/Indiana/Knox", "America/Indiana/Marengo", "America/Indiana/Petersburg", "America/Indiana/Tell_City", "America/Indiana/Vevay", "America/Indiana/Vincennes", "America/Indiana/Winamac", "America/Indianapolis", "America/Inuvik", "America/Iqaluit", "America/Jamaica", "America/Jujuy", "America/Juneau", "America/Kentucky/Louisville", "America/Kentucky/Monticello", "America/Knox_IN", "America/Kralendijk", "America/La_Paz", "America/Lima", "America/Los_Angeles", "America/Louisville", "America/Lower_Princes", "America/Maceio", "America/Managua", "America/Manaus", "America/Marigot", "America/Martinique", "America/Matamoros", "America/Mazatlan", "America/Mendoza", "America/Menominee", "America/Merida", "America/Metlakatla", "America/Mexico_City", "America/Miquelon", "America/Moncton", "America/Monterrey", "America/Montevideo", "America/Montreal", "America/Montserrat", "America/Nassau", "America/New_York", "America/Nipigon", "America/Nome", "America/Noronha", "America/North_Dakota/Beulah", "America/North_Dakota/Center", "America/North_Dakota/New_Salem", "America/Ojinaga", "America/Panama", "America/Pangnirtung", "America/Paramaribo", "America/Phoenix", "America/Port-au-Prince", "America/Port_of_Spain", "America/Porto_Acre", "America/Porto_Velho", "America/Puerto_Rico", "America/Punta_Arenas", "America/Rainy_River", "America/Rankin_Inlet", "America/Recife", "America/Regina", "America/Resolute", "America/Rio_Branco", "America/Rosario", "America/Santa_Isabel", "America/Santarem", "America/Santiago", "America/Santo_Domingo", "America/Sao_Paulo", "America/Scoresbysund", "America/Shiprock", "America/Sitka", "America/St_Barthelemy", "America/St_Johns", "America/St_Kitts", "America/St_Lucia", "America/St_Thomas", "America/St_Vincent", "America/Swift_Current", "America/Tegucigalpa", "America/Thule", "America/Thunder_Bay", "America/Tijuana", "America/Toronto", "America/Tortola", "America/Vancouver", "America/Virgin", "America/Whitehorse", "America/Winnipeg", "America/Yakutat", "America/Yellowknife", "Antarctica/Casey", "Antarctica/Davis", "Antarctica/DumontDUrville", "Antarctica/Macquarie", "Antarctica/Mawson", "Antarctica/McMurdo", "Antarctica/Palmer", "Antarctica/Rothera", "Antarctica/South_Pole", "Antarctica/Syowa", "Antarctica/Troll", "Antarctica/Vostok", "Arctic/Longyearbyen", "Asia/Aden", "Asia/Almaty", "Asia/Amman", "Asia/Anadyr", "Asia/Aqtau", "Asia/Aqtobe", "Asia/Ashgabat", "Asia/Ashkhabad", "Asia/Atyrau", "Asia/Baghdad", "Asia/Bahrain", "Asia/Baku", "Asia/Bangkok", "Asia/Barnaul", "Asia/Beirut", "Asia/Bishkek", "Asia/Brunei", "Asia/Calcutta", "Asia/Chita", "Asia/Choibalsan", "Asia/Chongqing", "Asia/Chungking", "Asia/Colombo", "Asia/Dacca", "Asia/Damascus", "Asia/Dhaka", "Asia/Dili", "Asia/Dubai", "Asia/Dushanbe", "Asia/Famagusta", "Asia/Gaza", "Asia/Harbin", "Asia/Hebron", "Asia/Ho_Chi_Minh", "Asia/Hong_Kong", "Asia/Hovd", "Asia/Irkutsk", "Asia/Istanbul", "Asia/Jakarta", "Asia/Jayapura", "Asia/Jerusalem", "Asia/Kabul", "Asia/Kamchatka", "Asia/Karachi", "Asia/Kashgar", "Asia/Kathmandu", "Asia/Katmandu", "Asia/Khandyga", "Asia/Kolkata", "Asia/Krasnoyarsk", "Asia/Kuala_Lumpur", "Asia/Kuching", "Asia/Kuwait", "Asia/Macao", "Asia/Macau", "Asia/Magadan", "Asia/Makassar", "Asia/Manila", "Asia/Muscat", "Asia/Nicosia", "Asia/Novokuznetsk", "Asia/Novosibirsk", "Asia/Omsk", "Asia/Oral", "Asia/Phnom_Penh", "Asia/Pontianak", "Asia/Pyongyang", "Asia/Qatar", "Asia/Qyzylorda", "Asia/Rangoon", "Asia/Riyadh", "Asia/Saigon", "Asia/Sakhalin", "Asia/Samarkand", "Asia/Seoul", "Asia/Shanghai", "Asia/Singapore", "Asia/Srednekolymsk", "Asia/Taipei", "Asia/Tashkent", "Asia/Tbilisi", "Asia/Tehran", "Asia/Tel_Aviv", "Asia/Thimbu", "Asia/Thimphu", "Asia/Tokyo", "Asia/Tomsk", "Asia/Ujung_Pandang", "Asia/Ulaanbaatar", "Asia/Ulan_Bator", "Asia/Urumqi", "Asia/Ust-Nera", "Asia/Vientiane", "Asia/Vladivostok", "Asia/Yakutsk", "Asia/Yangon", "Asia/Yekaterinburg", "Asia/Yerevan", "Atlantic/Azores", "Atlantic/Bermuda", "Atlantic/Canary", "Atlantic/Cape_Verde", "Atlantic/Faeroe", "Atlantic/Faroe", "Atlantic/Jan_Mayen", "Atlantic/Madeira", "Atlantic/Reykjavik", "Atlantic/South_Georgia", "Atlantic/St_Helena", "Atlantic/Stanley", "Australia/ACT", "Australia/Adelaide", "Australia/Brisbane", "Australia/Broken_Hill", "Australia/Canberra", "Australia/Currie", "Australia/Darwin", "Australia/Eucla", "Australia/Hobart", "Australia/LHI", "Australia/Lindeman", "Australia/Lord_Howe", "Australia/Melbourne", "Australia/NSW", "Australia/North", "Australia/Perth", "Australia/Queensland", "Australia/South", "Australia/Sydney", "Australia/Tasmania", "Australia/Victoria", "Australia/West", "Australia/Yancowinna", "Brazil/Acre", "Brazil/DeNoronha", "Brazil/East", "Brazil/West", "CET", "CST6CDT", "Canada/Atlantic", "Canada/Central", "Canada/Eastern", "Canada/Mountain", "Canada/Newfoundland", "Canada/Pacific", "Canada/Saskatchewan", "Canada/Yukon", "Chile/Continental", "Chile/EasterIsland", "Cuba", "EET", "EST", "EST5EDT", "Egypt", "Eire", "Etc/GMT", "Etc/GMT+0", "Etc/GMT+1", "Etc/GMT+10", "Etc/GMT+11", "Etc/GMT+12", "Etc/GMT+2", "Etc/GMT+3", "Etc/GMT+4", "Etc/GMT+5", "Etc/GMT+6", "Etc/GMT+7", "Etc/GMT+8", "Etc/GMT+9", "Etc/GMT-0", "Etc/GMT-1", "Etc/GMT-10", "Etc/GMT-11", "Etc/GMT-12", "Etc/GMT-13", "Etc/GMT-14", "Etc/GMT-2", "Etc/GMT-3", "Etc/GMT-4", "Etc/GMT-5", "Etc/GMT-6", "Etc/GMT-7", "Etc/GMT-8", "Etc/GMT-9", "Etc/GMT0", "Etc/Greenwich", "Etc/UCT", "Etc/UTC", "Etc/Universal", "Etc/Zulu", "Europe/Amsterdam", "Europe/Andorra", "Europe/Astrakhan", "Europe/Athens", "Europe/Belfast", "Europe/Belgrade", "Europe/Berlin", "Europe/Bratislava", "Europe/Brussels", "Europe/Bucharest", "Europe/Budapest", "Europe/Busingen", "Europe/Chisinau", "Europe/Copenhagen", "Europe/Dublin", "Europe/Gibraltar", "Europe/Guernsey", "Europe/Helsinki", "Europe/Isle_of_Man", "Europe/Istanbul", "Europe/Jersey", "Europe/Kaliningrad", "Europe/Kiev", "Europe/Kirov", "Europe/Lisbon", "Europe/Ljubljana", "Europe/London", "Europe/Luxembourg", "Europe/Madrid", "Europe/Malta", "Europe/Mariehamn", "Europe/Minsk", "Europe/Monaco", "Europe/Moscow", "Europe/Nicosia", "Europe/Oslo", "Europe/Paris", "Europe/Podgorica", "Europe/Prague", "Europe/Riga", "Europe/Rome", "Europe/Samara", "Europe/San_Marino", "Europe/Sarajevo", "Europe/Saratov", "Europe/Simferopol", "Europe/Skopje", "Europe/Sofia", "Europe/Stockholm", "Europe/Tallinn", "Europe/Tirane", "Europe/Tiraspol", "Europe/Ulyanovsk", "Europe/Uzhgorod", "Europe/Vaduz", "Europe/Vatican", "Europe/Vienna", "Europe/Vilnius", "Europe/Volgograd", "Europe/Warsaw", "Europe/Zagreb", "Europe/Zaporozhye", "Europe/Zurich", "GB", "GB-Eire", "GMT", "GMT+0", "GMT-0", "GMT0", "Greenwich", "HST", "Hongkong", "Iceland", "Indian/Antananarivo", "Indian/Chagos", "Indian/Christmas", "Indian/Cocos", "Indian/Comoro", "Indian/Kerguelen", "Indian/Mahe", "Indian/Maldives", "Indian/Mauritius", "Indian/Mayotte", "Indian/Reunion", "Iran", "Israel", "Jamaica", "Japan", "Kwajalein", "Libya", "MET", "MST", "MST7MDT", "Mexico/BajaNorte", "Mexico/BajaSur", "Mexico/General", "NZ", "NZ-CHAT", "Navajo", "PRC", "PST8PDT", "Pacific/Apia", "Pacific/Auckland", "Pacific/Bougainville", "Pacific/Chatham", "Pacific/Chuuk", "Pacific/Easter", "Pacific/Efate", "Pacific/Enderbury", "Pacific/Fakaofo", "Pacific/Fiji", "Pacific/Funafuti", "Pacific/Galapagos", "Pacific/Gambier", "Pacific/Guadalcanal", "Pacific/Guam", "Pacific/Honolulu", "Pacific/Johnston", "Pacific/Kiritimati", "Pacific/Kosrae", "Pacific/Kwajalein", "Pacific/Majuro", "Pacific/Marquesas", "Pacific/Midway", "Pacific/Nauru", "Pacific/Niue", "Pacific/Norfolk", "Pacific/Noumea", "Pacific/Pago_Pago", "Pacific/Palau", "Pacific/Pitcairn", "Pacific/Pohnpei", "Pacific/Ponape", "Pacific/Port_Moresby", "Pacific/Rarotonga", "Pacific/Saipan", "Pacific/Samoa", "Pacific/Tahiti", "Pacific/Tarawa", "Pacific/Tongatapu", "Pacific/Truk", "Pacific/Wake", "Pacific/Wallis", "Pacific/Yap", "Poland", "Portugal", "ROC", "ROK", "Singapore", "Turkey", "UCT", "US/Alaska", "US/Aleutian", "US/Arizona", "US/Central", "US/East-Indiana", "US/Eastern", "US/Hawaii", "US/Indiana-Starke", "US/Michigan", "US/Mountain", "US/Pacific", "US/Samoa", "UTC", "Universal", "W-SU", "WET", "Zulu" ], "default": "Europe/Sarajevo" }, "auto-time-server": { "$id": "#/properties/settings/properties/auto-time-server", "type": "string", "title": "Auto-Time-Server Schema", "description": "Address of the NTP server to be used for date-time synchronization", "default": "null", "examples": [ "pool.ntp.org" ] }, "debug-bridge": { "$id": "#/properties/settings/properties/debug-bridge", "type": "boolean", "title": "Debug-Bridge Schema", "description": "Controls the state of 'Android Debug Bridge'", "default": false, "examples": [ false ] }, "lock-screen": { "$id": "#/properties/settings/properties/lock-screen", "type": "boolean", "title": " Lock-Screen Schema", "description": "Controls the state of Android's lock-screen, requiring the user to swipe the display to unlock the device", "default": true, "examples": [ false ] }, "status-bar": { "$id": "#/properties/settings/properties/status-bar", "type": "boolean", "title": "Status-Bar Schema", "description": "Controls the display of the top status-bar. Note: hiding the status-bar will make notification disappear.", "default": true, "examples": [ false ] }, "navigation-bar": { "$id": "#/properties/settings/properties/navigation-bar", "type": "boolean", "title": "Navigation-Bar Schema", "description": "Controls the display of the bottom navigation-bar", "default": true, "examples": [ true ] }, "charge-threshold": { "$id": "#/properties/settings/properties/charge-threshold", "type": "integer", "title": "Charge-Threshold Schema", "description": "Indicates the charge threshold a battery exhausted device needs to reach to automatically boot when recharging", "default": 5, "examples": [ 0 ], "minimum": 0, "maximum": 100 }, "usb-profile": { "$id": "#/properties/settings/properties/usb-profile", "type": "string", "enum": [ "NONE", "BOTH", "DATA", "CHARGE" ], "title": "Usb-Profile Schema", "description": "USB communication profile in use", "default": "BOTH", "examples": [ "NONE" ] }, "usb-function": { "$id": "#/properties/settings/properties/usb-function", "type": "string", "title": "Usb-Function Schema", "description": "USB communication function in use", "enum": [ "MTP", "PTP", "CHARGING" ], "default": "CHARGING", "examples": [ "CHARGING" ] }, "default-home": { "$id": "#/properties/settings/properties/default-home", "type": "object", "title": "Default Home Application", "description": "Home application to be set as default", "properties": { "package-name": { "$id": "#/properties/settings/properties/default-home/properties/package-name", "type": "string", "title": "Home App Package Name", "description": "Package name of the home app", "default": "", "examples": [ "com.android.test" ] }, "type": { "$id": "#/properties/settings/properties/default-home/properties/action", "type": "string", "enum": [ "custom-app", "aosp-launcher-app" ], "title": "Home App Type", "description": "Home app type", "default": "aosp-launcher-app", "examples": [ "custom-app" ] } }, "if": { "properties": { "type": { "enum": [ "custom-app" ] } } }, "then": { "required": [ "package-name" ] } } } }, "network": { "$id": "#/properties/network", "type": "object", "title": "Network Schema", "description": "Section used to configure the device Wi-Fi network", "properties": { "essid": { "$id": "#/properties/network/properties/essid", "type": "string", "title": "Essid Schema", "description": "Wireless network ESSID", "default": "", "examples": [ "TESTTKIP" ] }, "hidden": { "$id": "#/properties/network/properties/hidden", "type": "boolean", "title": "Hidden Schema", "description": "Indicates if the wireless network is using a hidden ESSID", "default": false, "examples": [ false ] }, "mode": { "$id": "#/properties/network/properties/mode", "type": "string", "enum": [ "open", "wep-40", "wep-104", "wpa-psk", "wpa2-psk", "wpa-eap", "wpa2-eap" ], "title": "Mode Schema", "description": "Wireless connection mode", "default": "open", "examples": [ "wpa-psk" ] }, "mode-key": { "$id": "#/properties/network/properties/mode-key", "type": "string", "title": "Mode-Key Schema", "description": "Wireless network key, if needed", "default": "", "examples": [ "datalogic" ] }, "mode-key-encrypted": { "$id": "#/properties/network/properties/mode-key-encrypted", "type": "boolean", "title": "Mode-Key-Encrypted Schema", "description": "Indicates if 'mode-key' is written in plain-text or encrypted with a custom encryption algorithm", "default": false, "examples": [ false ] }, "eap-method": { "$id": "#/properties/network/properties/eap-method", "type": "string", "enum": [ "none", "peap", "tls", "ttls", "pwd", "sim", "aka", "aka-prime" ], "title": "Eap-Method Schema", "description": "Configures the EAP authentication method", "default": "none", "examples": [ "none" ] }, "eap-phase2": { "$id": "#/properties/network/properties/eap-phase2", "type": "string", "enum": [ "none", "pap", "mschap", "mschapv2", "gtc" ], "title": "Eap-Phase2 Schema", "description": "Configures the EAP phase 2 authentication method", "default": "none", "examples": [ "none" ] }, "eap-identity": { "$id": "#/properties/network/properties/eap-identity", "type": "string", "title": "Eap-Identity Schema", "description": "Indicates the EAP identity", "default": "", "examples": [ "" ] }, "eap-anonymous-identity": { "$id": "#/properties/network/properties/eap-anonymous-identity", "type": "string", "title": "Eap-Anonymous-Identity Schema", "description": "Indicates the EAP anonymous identity, used as the unencrypted identity with certain EAP types", "default": "", "examples": [ "" ] }, "eap-password": { "$id": "#/properties/network/properties/eap-password", "type": "string", "title": "Eap-Password Schema", "description": "EAP password, if needed", "default": "", "examples": [ "" ] }, "eap-password-encrypted": { "$id": "#/properties/network/properties/eap-password-encrypted", "type": "boolean", "title": "Eap-Password-Encrypted Schema", "description": "Indicates if the 'eap-password' is encrypted with a custom encryption alogrithm", "default": false, "examples": [ false ] }, "eap-certificate": { "$id": "#/properties/network/properties/eap-certificate", "type": "string", "title": "Eap-Certificate Schema", "description": "Base64 representation of the EAP certificate to use", "default": "", "examples": [ "" ] }, "proxy-host": { "$id": "#/properties/network/properties/proxy-host", "type": "string", "title": "Proxy-Host Schema", "description": "Server name or IP address of the proxy to be used for HTTP/HTTPS communications", "default": "", "examples": [ "" ] }, "proxy-port": { "$id": "#/properties/network/properties/proxy-port", "type": "integer", "title": "Proxy-Port Schema", "description": "Server IP port of the proxy for HTTP/HTTPS communications", "default": 0, "examples": [ 0 ], "minimum": 0, "maximum": 65535 }, "purge": { "$id": "#/properties/network/properties/purge", "type": "boolean", "title": "Purge Schema", "description": "Indicates if any currently configured wireless network needs to be removed. Can be useful to avoid profile roaming.", "default": true, "examples": [ true ] }, "reconfigure": { "$id": "#/properties/network/properties/reconfigure", "type": "boolean", "title": "Reconfigure Schema", "description": "If true, will reconfigure any existing and matching network. If false, will leave existing network untouched. Setting used when 'purge' is set to false.", "default": true, "examples": [ false ] }, "sleep-policy": { "$id": "#/properties/network/properties/sleep-policy", "type": "integer", "title": "Sleep-Policy Schema", "description": "Wireless sleep policy for Android's Settings.Global parameter (0-WIFI_SLEEP_POLICY_DEFAULT, 1-WIFI_SLEEP_POLICY_NEVER_WHILE_PLUGGED, 2-WIFI_SLEEP_POLICY_NEVER)", "default": 2, "examples": [ 2 ], "minimum": 0, "maximum": 2 }, "save-to-file": { "$id": "#/properties/network/properties/save-to-file", "type": "string", "title": "Save-To-File Schema", "description": "Absolute path to the file where the current network configuration will be saved, empty string indicates network configuration won't be serialized to a file", "default": "", "examples": [ "" ] }, "ephemeral": { "$id": "#/properties/network/properties/ephemeral", "type": "boolean", "title": "Ephemeral Schema", "description": "If true, wireless connection profile will be used during staging process, then deleted after staging. If false, wireless connection profile will still be present after staging process.", "default": false, "examples": [ false ] }, "wait-for-connection": { "$id": "#/properties/network/properties/wait-for-connection", "type": "boolean", "title": "Wait-For-Connection Schema", "description": "Indicates whether a valid Wi-Fi connection has to be waited once the network configuration is complete. Can be useful when device needs to be configured but a valid Wi-Fi connection is not ready yet.", "default": true, "examples": [ true ] } }, "if": { "properties": { "mode": { "enum": [ "wpa-psk", "wpa2-psk", "wep-40", "wep-104" ] } } }, "then": { "required": [ "mode-key" ] } }, "deployment": { "$id": "#/properties/deployment", "type": "object", "title": "Deployment Schema", "description": "Section can be used to download a ZIP archive from a server and inflate it to the 'target-path' folder", "properties": { "scheme": { "$id": "#/properties/deployment/properties/scheme", "type": "string", "enum": [ "http", "https" ], "title": "Scheme Schema", "description": "Deployment download scheme to use", "default": "http", "examples": [ "http" ] }, "host": { "$id": "#/properties/deployment/properties/host", "type": "string", "title": "Host Schema", "description": "Host-name or internet-protocol address of the server from which the resource is to be fetched", "default": "", "examples": [ "172.19.0.77", "pcname.companyname.net" ] }, "alternate-hosts":{ "$id": "#/properties/deployment/properties/alternate-hosts", "type": "array", "items": { "$id": "#/properties/deployment/properties/alternate-hosts/items", "title": "Items Schema", "type": "string", "default": "", "examples": [ "172.19.0.77", "pcname.companyname.net" ] }, "title": "Alternate Hosts Schema", "description": "Alternate host-names or internet-protocol addresses of the server from which the resource is to be fetched", "default": [], "examples": [ ["198.65.33.20", "pcname.companyname.net"] ] }, "port": { "$id": "#/properties/deployment/properties/port", "type": "integer", "title": "Port Schema", "description": "TCP/IP port to be used to contact the server", "default": 80, "examples": [ 8080 ], "minimum": 0, "maximum": 65535 }, "path": { "$id": "#/properties/deployment/properties/path", "type": "string", "title": "Path Schema", "description": "Path to the server resource to download, complete with query string if needed", "default": "", "examples": [ "/airwatch.zip" ] }, "fetch-timeout": { "$id": "#/properties/deployment/properties/fetch-timeout", "type": "integer", "title": "Fetch-Timeout Schema", "description": "The timeout value (in milliseconds) used when fetching resource from host", "default": 60000, "examples": [ 60000 ] }, "check-timeout": { "$id": "#/properties/deployment/properties/check-timeout", "type": "integer", "title": "Check-Timeout Schema", "description": "The timeout value (in milliseconds) used when attempting to reach the host server", "default": 1000, "examples": [ 1000 ] }, "working-archive": { "$id": "#/properties/deployment/properties/working-archive", "type": "string", "title": "Working-Archive Schema", "description": "String representation of the archive path-file name, once downloaded", "default": "/sdcard/Download/scan2deploy.archive", "examples": [ "/mnt/sdcard/target.tar" ] }, "skip-inflation": { "$id": "#/properties/deployment/properties/skip-inflation", "type": "boolean", "title": "Skip-Inflation Schema", "description": "Instructs the application not to inflate the deployment archive once downloaded, can be useful to speed the OTA update process up", "default": false, "examples": [ true ] } }, "required": [ "host" ] }, "blobs": { "$id": "#/properties/blobs", "type": "array", "title": "Blobs Schema", "description": "Section used to transfer binary data to newly created file on device", "items": { "$id": "#/properties/blobs/items", "type": "object", "title": "Items Schema", "required": [ "file", "content" ], "properties": { "file": { "$id": "#/properties/blobs/items/properties/file", "type": "string", "title": "File Schema", "description": "Path to the file to be created. Can be either absolute or relative to the global/target-path parameter value. During file de-serialization, any required (parent) path is automatically created.", "examples": [ "/mnt/sdcard/airwatch/credentials.bin" ] }, "content": { "$id": "#/properties/blobs/items/properties/content", "type": "string", "title": "Content Schema", "description": "Base64 representation of the actual file content", "examples": [ "fd09B1iL/k4jRWrjrP0/sO44teY+B3UafBLsMsCEqd1KOv6b6JYBXLVv70FmHdZhIVoEOQvHu7O4PUJStpZQ+4PYjPqCO+NQr81M7GOF421Ke8L2u4EYyqDE5qXfLy2shEgaRwRpr2f35/38WZkh6edyiWZQJjyLeZcuI7WiaJPpw7Jcw7ye7mb7Rl+ePNFmfvUrpeRFtN+5kUsx/SbB1v0gDyOOuoep" ] } } } }, "update-scan2deploy": { "$id": "#/properties/update-scan2deploy", "type": "object", "title": "Update Scan2Deploy Schema", "description": "Section can be used to configure self-update settings for Scan2Deploy", "properties": { "update-version": { "$id": "#/properties/update-scan2deploy/properties/update-version", "type": "integer", "title": "Self-Update-Version Schema", "description": "Version code for updating the Scan2Deploy Agent", "default": 0, "examples": [] } } } } }