1b8a72a62Sopenharmony_ci{
2b8a72a62Sopenharmony_ci  "title": "JSON schema for app_startup.json",
3b8a72a62Sopenharmony_ci  "$schema": "http://json-schema.org/draft-07/schema#",
4b8a72a62Sopenharmony_ci  "type": "object",
5b8a72a62Sopenharmony_ci  "additionalProperties": false,
6b8a72a62Sopenharmony_ci  "required": [
7b8a72a62Sopenharmony_ci    "startupTasks",
8b8a72a62Sopenharmony_ci    "configEntry"
9b8a72a62Sopenharmony_ci  ],
10b8a72a62Sopenharmony_ci  "propertyNames": {
11b8a72a62Sopenharmony_ci    "enum": [
12b8a72a62Sopenharmony_ci      "startupTasks",
13b8a72a62Sopenharmony_ci      "configEntry"
14b8a72a62Sopenharmony_ci    ]
15b8a72a62Sopenharmony_ci  },
16b8a72a62Sopenharmony_ci  "properties": {
17b8a72a62Sopenharmony_ci    "startupTasks": {
18b8a72a62Sopenharmony_ci      "type": "array",
19b8a72a62Sopenharmony_ci      "uniqueItems": true,
20b8a72a62Sopenharmony_ci      "items": {
21b8a72a62Sopenharmony_ci        "type": "object",
22b8a72a62Sopenharmony_ci        "propertyNames": {
23b8a72a62Sopenharmony_ci          "enum": [
24b8a72a62Sopenharmony_ci            "name",
25b8a72a62Sopenharmony_ci            "srcEntry",
26b8a72a62Sopenharmony_ci            "dependencies",
27b8a72a62Sopenharmony_ci            "excludeFromAutoStart",
28b8a72a62Sopenharmony_ci            "runOnThread",
29b8a72a62Sopenharmony_ci            "waitOnMainThread"
30b8a72a62Sopenharmony_ci          ]
31b8a72a62Sopenharmony_ci        },
32b8a72a62Sopenharmony_ci        "required": [
33b8a72a62Sopenharmony_ci          "name",
34b8a72a62Sopenharmony_ci          "srcEntry"
35b8a72a62Sopenharmony_ci        ],
36b8a72a62Sopenharmony_ci        "properties": {
37b8a72a62Sopenharmony_ci          "name": {
38b8a72a62Sopenharmony_ci            "description": "Indicates the name of the startup task.",
39b8a72a62Sopenharmony_ci            "type": "string",
40b8a72a62Sopenharmony_ci            "pattern": "^[a-zA-Z][0-9a-zA-Z_.]+$",
41b8a72a62Sopenharmony_ci            "maxLength": 127
42b8a72a62Sopenharmony_ci          },
43b8a72a62Sopenharmony_ci          "srcEntry": {
44b8a72a62Sopenharmony_ci            "description": "Indicates the js code path corresponding to the startup task.",
45b8a72a62Sopenharmony_ci            "type": "string",
46b8a72a62Sopenharmony_ci            "maxLength": 127
47b8a72a62Sopenharmony_ci          },
48b8a72a62Sopenharmony_ci          "dependencies": {
49b8a72a62Sopenharmony_ci            "description": "Indicates the dependencies of the startup task.",
50b8a72a62Sopenharmony_ci            "type": "array",
51b8a72a62Sopenharmony_ci            "uniqueItems": true,
52b8a72a62Sopenharmony_ci            "items": {
53b8a72a62Sopenharmony_ci              "type": "string"
54b8a72a62Sopenharmony_ci            },
55b8a72a62Sopenharmony_ci            "default": []
56b8a72a62Sopenharmony_ci          },
57b8a72a62Sopenharmony_ci          "excludeFromAutoStart": {
58b8a72a62Sopenharmony_ci            "description": "Indicates whether the startup task is excluded from automatic start.",
59b8a72a62Sopenharmony_ci            "type": "boolean",
60b8a72a62Sopenharmony_ci            "default": false
61b8a72a62Sopenharmony_ci          },
62b8a72a62Sopenharmony_ci          "runOnThread": {
63b8a72a62Sopenharmony_ci            "description": "Indicates the running thread of the startup task.",
64b8a72a62Sopenharmony_ci            "type": "string",
65b8a72a62Sopenharmony_ci            "enum": [
66b8a72a62Sopenharmony_ci              "mainThread",
67b8a72a62Sopenharmony_ci              "taskPool"
68b8a72a62Sopenharmony_ci            ],
69b8a72a62Sopenharmony_ci            "default": "mainThread"
70b8a72a62Sopenharmony_ci          },
71b8a72a62Sopenharmony_ci          "waitOnMainThread": {
72b8a72a62Sopenharmony_ci            "description": "Indicates whether the startup task block the main thread.",
73b8a72a62Sopenharmony_ci            "type": "boolean",
74b8a72a62Sopenharmony_ci            "default": true
75b8a72a62Sopenharmony_ci          }
76b8a72a62Sopenharmony_ci        }
77b8a72a62Sopenharmony_ci      }
78b8a72a62Sopenharmony_ci    },
79b8a72a62Sopenharmony_ci    "configEntry": {
80b8a72a62Sopenharmony_ci      "description": "Indicates the js code path corresponding to the startup config.",
81b8a72a62Sopenharmony_ci      "type": "string",
82b8a72a62Sopenharmony_ci      "maxLength": 127
83b8a72a62Sopenharmony_ci    }
84b8a72a62Sopenharmony_ci  }
85b8a72a62Sopenharmony_ci}