-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathschedules.schema.json
118 lines (118 loc) · 4.57 KB
/
schedules.schema.json
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
{
"$schema": "https://json-schema.org/draft/2020-12/schema",
"$id": "https://raw.unisontech.org/schema/schedules",
"title": "Schedules",
"description": "The main schedules file",
"type": "object",
"patternProperties": {
"(.*)": {
"type": "object",
"properties": {
"name": {
"type": "string",
"description": "The name of the schedule"
},
"shortName": {
"type": "string",
"description": "The short name of the schedule"
},
"icon": {
"type": "string",
"description": "The Material Design Icons name of the icon for the schedule",
"deprecated": true
},
"color": {
"type": "string",
"description": "The hex color code of the schedule's color"
},
"timezone": {
"type": "string",
"description": "The tzdata name for a given timezone (e.g. America/Los_Angeles)"
},
"schedule": {
"type": "object",
"description": "The actual schedule",
"patternProperties": {
"(SUN|MON|TUE|WED|THU|FRI|SAT)": {
"type": "object",
"patternProperties": {
"(.*)": {
"anyOf": [
{
"$ref": "#/definitions/scheduleItem"
},
{
"type": "object",
"description": "The schedule container",
"properties": {
"times": {
"$ref": "#/definitions/scheduleItem"
},
"allowEditing": {
"type": "boolean",
"description": "If the schedule name can be edited"
}
},
"required": [
"times",
"allowEditing"
]
}
]
}
}
}
},
"minProperties": 1
},
"offDays": {
"type": "object",
"description": "The days the schedule should not be active",
"patternProperties": {
"(.*)": {
"type": "array",
"description": "The dates for the inactive period",
"items": {
"type": "string"
},
"minItems": 1,
"maxItems": 2,
"uniqueItems": true
}
}
},
"overrides": {
"type": "object",
"description": "The days the schedule should switch to a different day",
"patternProperties": {
"(.*)": {
"type": "string",
"description": "The day to use"
}
}
}
},
"required": [
"name",
"shortName",
"color",
"timezone",
"schedule",
"offDays",
"overrides"
]
}
},
"definitions": {
"scheduleItem": {
"type": "array",
"description": "The times for the period",
"items": {
"type": "string"
},
"minItems": 2,
"maxItems": 2,
"uniqueItems": true
}
}
}