{
	"$schema": "http://json-schema.org/draft-07/schema",
	"$id": "https://apidocs.iqrf.org/openapi/iqrf-gateway-webapp/schemas/installationCheck.json",
	"type": "object",
	"title": "Installation check",
	"required": [
		"allMigrationsExecuted",
		"board",
		"dependencies",
		"gwId",
		"phpModules"
	],
	"properties": {
		"allMigrationsExecuted": {
			"$id": "#/properties/allMigrationsExecuted",
			"type": "boolean",
			"title": "Have all the database migrations been executed?",
			"example": true
		},
		"board": {
			"$id": "#/properties/board",
			"type": "string",
			"title": "Board",
			"example": "MICRORISC s.r.o. IQD-GW04"
		},
		"dependencies": {
			"$id": "#/properties/dependencies",
			"type": "array",
			"title": "Missing dependencies",
			"additionalItems": false,
			"items": {
				"$id": "#/properties/dependencies/items",
				"type": "object",
				"title": "Missing dependency info",
				"required": [
					"command",
					"critical",
					"package",
					"feature"
				],
				"properties": {
					"command": {
						"$id": "#/properties/dependencies/items/properties/command",
						"type": "string",
						"title": "Command name",
						"example": "mender-connect"
					},
					"critical": {
						"$id": "#/properties/dependencies/items/properties/critical",
						"type": "boolean",
						"title": "Is the dependency critical?",
						"example": true
					},
					"package": {
						"$id": "#/properties/dependencies/items/properties/package",
						"type": "string",
						"title": "Package name",
						"example": "mender-connect"
					},
					"feature": {
						"$id": "#/properties/dependencies/items/properties/feature",
						"oneOf": [
							{
								"type": "string"
							},
							{
								"type": "null"
							}
						],
						"title": "Feature name",
						"example": "mender"
					}
				},
				"additionalProperties": false
			}
		},
		"hasUsers": {
			"$id": "#/properties/hasUsers",
			"type": "boolean",
			"title": "Has the webapp created users?",
			"example": true
		},
		"gwId": {
			"$id": "#/properties/gwId",
			"oneOf": [
				{
					"type": "string"
				},
				{
					"type": "null"
				}
			],
			"title": "IQRF Gateway ID",
			"example": "02424D1D2D2E7580"
		},
		"phpModules": {
			"$id": "#/properties/phpModules",
			"type": "object",
			"title": "Webapp PHP modules check",
			"required": [
				"allExtensionsLoaded"
			],
			"properties": {
				"allExtensionsLoaded": {
					"$id": "#/properties/phpModules/properties/allExtensionsLoaded",
					"type": "boolean",
					"title": "Have all the required PHP extensions been loaded?",
					"example": true
				},
				"missing": {
					"$id": "#/properties/phpModules/properties/missing",
					"type": "object",
					"title": "Missing PHP extensions and packages that contain them",
					"required": [
						"extensions"
					],
					"properties": {
						"extensions": {
							"$id": "#/properties/phpModules/properties/missing/properties/extensions",
							"type": "array",
							"title": "Missing PHP extensions",
							"items": {
								"$id": "#/properties/phpModules/properties/missing/properties/extensions/items",
								"type": "string",
								"title": "Missing PHP extension",
								"example": "json"
							},
							"additionalItems": false
						},
						"packages": {
							"$id": "#/properties/phpModules/properties/missing/properties/packages",
							"type": "array",
							"title": "Packages containing missing extensions",
							"items": {
								"$id": "#/properties/phpModules/properties/missing/properties/packages/items",
								"type": "string",
								"title": "Package name",
								"example": "php7.3-json"
							},
							"additionalItems": false
						}
					},
					"additionalProperties": false
				}
			},
			"additionalProperties": false
		},
		"sudo": {
			"$id": "#/properties/sudo",
			"type": "object",
			"title": "Webapp sudo check",
			"required": [
				"user",
				"exists",
				"userSudo"
			],
			"properties": {
				"user": {
					"$id": "#/properties/sudo/properties/user",
					"type": "string",
					"title": "User under which webapp runs",
					"example": "www-data"
				},
				"exists": {
					"$id": "#/properties/sudo/properties/exists",
					"type": "boolean",
					"title": "Does sudo exist?",
					"example": true
				},
				"userSudo": {
					"$id": "#/properties/sudo/properties/webappSudo",
					"type": "boolean",
					"title": "Can webapp user execute commands with sudo?",
					"example": true
				}
			},
			"additionalProperties": false
		}
	},
	"additionalProperties": false
}
