@bsv/dpp-profiles 0.3.0-beta.1
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/LICENSE +58 -0
- package/README.md +64 -0
- package/dist/applicability.d.ts +96 -0
- package/dist/applicability.d.ts.map +1 -0
- package/dist/applicability.js +181 -0
- package/dist/applicability.js.map +1 -0
- package/dist/combinations.d.ts +30 -0
- package/dist/combinations.d.ts.map +1 -0
- package/dist/combinations.js +103 -0
- package/dist/combinations.js.map +1 -0
- package/dist/evidence-shapes.d.ts +198 -0
- package/dist/evidence-shapes.d.ts.map +1 -0
- package/dist/evidence-shapes.js +123 -0
- package/dist/evidence-shapes.js.map +1 -0
- package/dist/gs1-epc-binary.d.ts +81 -0
- package/dist/gs1-epc-binary.d.ts.map +1 -0
- package/dist/gs1-epc-binary.js +252 -0
- package/dist/gs1-epc-binary.js.map +1 -0
- package/dist/gs1-resolution.d.ts +392 -0
- package/dist/gs1-resolution.d.ts.map +1 -0
- package/dist/gs1-resolution.js +696 -0
- package/dist/gs1-resolution.js.map +1 -0
- package/dist/identifiers.d.ts +57 -0
- package/dist/identifiers.d.ts.map +1 -0
- package/dist/identifiers.js +117 -0
- package/dist/identifiers.js.map +1 -0
- package/dist/index.d.ts +235 -0
- package/dist/index.d.ts.map +1 -0
- package/dist/index.js +124 -0
- package/dist/index.js.map +1 -0
- package/dist/manifest-v2.d.ts +87 -0
- package/dist/manifest-v2.d.ts.map +1 -0
- package/dist/manifest-v2.js +31 -0
- package/dist/manifest-v2.js.map +1 -0
- package/dist/mapping.d.ts +84 -0
- package/dist/mapping.d.ts.map +1 -0
- package/dist/mapping.js +88 -0
- package/dist/mapping.js.map +1 -0
- package/dist/projections.d.ts +233 -0
- package/dist/projections.d.ts.map +1 -0
- package/dist/projections.js +466 -0
- package/dist/projections.js.map +1 -0
- package/frozen.json +42 -0
- package/generated/consumer/battery-v2.json +2248 -0
- package/generated/consumer/battery-v3.json +4354 -0
- package/generated/consumer/general-v1.json +9 -0
- package/generated/consumer/general-v2.json +714 -0
- package/generated/consumer/textile-v1.json +101 -0
- package/generated/consumer/textile-v2.json +1033 -0
- package/generated/consumer/textile-v3.json +2011 -0
- package/generated/index.json +86 -0
- package/generated/mapping/battery@2.md +116 -0
- package/generated/mapping/battery@3.md +130 -0
- package/generated/mapping/general@2.md +50 -0
- package/generated/mapping/textile@2.md +61 -0
- package/generated/mapping/textile@3.md +73 -0
- package/generated/payload-schema/battery@2.public.schema.json +609 -0
- package/generated/payload-schema/battery@2.restricted.schema.json +377 -0
- package/generated/payload-schema/battery@3.public.schema.json +1364 -0
- package/generated/payload-schema/battery@3.restricted.schema.json +1097 -0
- package/generated/payload-schema/general@1.public.schema.json +37 -0
- package/generated/payload-schema/general@1.restricted.schema.json +9 -0
- package/generated/payload-schema/general@2.public.schema.json +352 -0
- package/generated/payload-schema/general@2.restricted.schema.json +52 -0
- package/generated/payload-schema/textile@1.public.schema.json +82 -0
- package/generated/payload-schema/textile@1.restricted.schema.json +22 -0
- package/generated/payload-schema/textile@2.public.schema.json +464 -0
- package/generated/payload-schema/textile@2.restricted.schema.json +78 -0
- package/generated/payload-schema/textile@3.public.schema.json +1299 -0
- package/generated/payload-schema/textile@3.restricted.schema.json +78 -0
- package/manifests/battery@2.json +4047 -0
- package/manifests/battery@3.json +6164 -0
- package/manifests/exchange/untp-0.7.0-jose@1.json +191 -0
- package/manifests/exchange/vc-di-ecdsa-rdfc-2019@1.json +74 -0
- package/manifests/exchange/vsc-draft-compat@0.1.0.json +64 -0
- package/manifests/general@1.json +148 -0
- package/manifests/general@2.json +1266 -0
- package/manifests/interoperability/epcis-json@1.json +69 -0
- package/manifests/interoperability/epcis-vsc@1.json +64 -0
- package/manifests/interoperability/gs1-digital-link@1.json +71 -0
- package/manifests/operator/federated-operators@1.json +54 -0
- package/manifests/operator/single-operator@1.json +52 -0
- package/manifests/textile@1.json +383 -0
- package/manifests/textile@2.json +1682 -0
- package/manifests/textile@3.json +2763 -0
- package/package.json +59 -0
- package/schemas/exchange-profile.schema.json +134 -0
- package/schemas/gs1/NOTICE.md +11 -0
- package/schemas/gs1/resolver-description-file-schema-1.2.0.json +124 -0
- package/schemas/gs1/resolver-linkset-context-1.2.1.jsonld +39 -0
- package/schemas/gs1/resolver-linkset-schema-1.2.1.json +96 -0
- package/schemas/interoperability-profile.schema.json +347 -0
- package/schemas/operator-profile.schema.json +108 -0
- package/schemas/product-identity.schema.json +45 -0
- package/schemas/profile-manifest-v2.schema.json +1087 -0
- package/schemas/profile-manifest.schema.json +291 -0
|
@@ -0,0 +1,1097 @@
|
|
|
1
|
+
{
|
|
2
|
+
"$schema": "https://json-schema.org/draft/2020-12/schema",
|
|
3
|
+
"$id": "urn:bsv:dpp:profile:battery@3:payload-restricted",
|
|
4
|
+
"title": "Battery passport (battery@3), restricted payload",
|
|
5
|
+
"description": "battery@3: the restricted tiers held off chain, encrypted, and committed by field 11. JSON Schema validity is one check; obligation under a condition (needs-review), units, provenance and legal applicability are separate checks.",
|
|
6
|
+
"type": "object",
|
|
7
|
+
"additionalProperties": false,
|
|
8
|
+
"properties": {
|
|
9
|
+
"serviceDate": {
|
|
10
|
+
"type": "string",
|
|
11
|
+
"format": "date",
|
|
12
|
+
"title": "Put into service",
|
|
13
|
+
"description": "required; Annex XIII (4); applicability category-in"
|
|
14
|
+
},
|
|
15
|
+
"status": {
|
|
16
|
+
"enum": [
|
|
17
|
+
"Original",
|
|
18
|
+
"Reused",
|
|
19
|
+
"Repurposed",
|
|
20
|
+
"Remanufactured",
|
|
21
|
+
"Waste"
|
|
22
|
+
],
|
|
23
|
+
"title": "Status",
|
|
24
|
+
"description": "required; Annex XIII 4(c); Art. 77(7)"
|
|
25
|
+
},
|
|
26
|
+
"testReports": {
|
|
27
|
+
"oneOf": [
|
|
28
|
+
{
|
|
29
|
+
"type": "string",
|
|
30
|
+
"format": "uri"
|
|
31
|
+
},
|
|
32
|
+
{
|
|
33
|
+
"type": "object"
|
|
34
|
+
}
|
|
35
|
+
],
|
|
36
|
+
"title": "Test reports",
|
|
37
|
+
"description": "required; Annex XIII (3)"
|
|
38
|
+
},
|
|
39
|
+
"electrodeMaterials": {
|
|
40
|
+
"type": "array",
|
|
41
|
+
"items": {
|
|
42
|
+
"type": "object",
|
|
43
|
+
"additionalProperties": false,
|
|
44
|
+
"properties": {
|
|
45
|
+
"component": {
|
|
46
|
+
"enum": [
|
|
47
|
+
"cathode",
|
|
48
|
+
"anode",
|
|
49
|
+
"electrolyte",
|
|
50
|
+
"separator",
|
|
51
|
+
"casing"
|
|
52
|
+
]
|
|
53
|
+
},
|
|
54
|
+
"material": {
|
|
55
|
+
"type": "string",
|
|
56
|
+
"minLength": 1
|
|
57
|
+
},
|
|
58
|
+
"share": {
|
|
59
|
+
"type": "number",
|
|
60
|
+
"minimum": 0,
|
|
61
|
+
"maximum": 100
|
|
62
|
+
}
|
|
63
|
+
},
|
|
64
|
+
"required": [
|
|
65
|
+
"component",
|
|
66
|
+
"material"
|
|
67
|
+
]
|
|
68
|
+
},
|
|
69
|
+
"title": "Cathode, anode and electrolyte materials",
|
|
70
|
+
"description": "required; Annex XIII (2a)"
|
|
71
|
+
},
|
|
72
|
+
"dismantlingManual": {
|
|
73
|
+
"oneOf": [
|
|
74
|
+
{
|
|
75
|
+
"type": "string",
|
|
76
|
+
"format": "uri"
|
|
77
|
+
},
|
|
78
|
+
{
|
|
79
|
+
"type": "object"
|
|
80
|
+
}
|
|
81
|
+
],
|
|
82
|
+
"title": "Dismantling manual",
|
|
83
|
+
"description": "required; Annex XIII (2c)"
|
|
84
|
+
},
|
|
85
|
+
"partNumbersUrl": {
|
|
86
|
+
"type": "string",
|
|
87
|
+
"format": "uri",
|
|
88
|
+
"title": "Part numbers",
|
|
89
|
+
"description": "required; Annex XIII (2b)"
|
|
90
|
+
},
|
|
91
|
+
"sparePartsAddress": {
|
|
92
|
+
"type": "object",
|
|
93
|
+
"additionalProperties": false,
|
|
94
|
+
"properties": {
|
|
95
|
+
"street": {
|
|
96
|
+
"type": "string",
|
|
97
|
+
"minLength": 1
|
|
98
|
+
},
|
|
99
|
+
"locality": {
|
|
100
|
+
"type": "string",
|
|
101
|
+
"minLength": 1
|
|
102
|
+
},
|
|
103
|
+
"postcode": {
|
|
104
|
+
"type": "string",
|
|
105
|
+
"minLength": 1
|
|
106
|
+
},
|
|
107
|
+
"region": {
|
|
108
|
+
"type": "string",
|
|
109
|
+
"minLength": 1
|
|
110
|
+
},
|
|
111
|
+
"country": {
|
|
112
|
+
"type": "string",
|
|
113
|
+
"pattern": "^[A-Z]{2}$"
|
|
114
|
+
}
|
|
115
|
+
},
|
|
116
|
+
"required": [
|
|
117
|
+
"street",
|
|
118
|
+
"locality",
|
|
119
|
+
"country"
|
|
120
|
+
],
|
|
121
|
+
"title": "Spare parts: postal address",
|
|
122
|
+
"description": "required; Annex XIII (2b)"
|
|
123
|
+
},
|
|
124
|
+
"sparePartsEmail": {
|
|
125
|
+
"type": "string",
|
|
126
|
+
"minLength": 1,
|
|
127
|
+
"maxLength": 254,
|
|
128
|
+
"pattern": "^[^@\\s]+@[^@\\s.]+(\\.[^@\\s.]+)+$",
|
|
129
|
+
"title": "Spare parts: e-mail",
|
|
130
|
+
"description": "required; Annex XIII (2b)"
|
|
131
|
+
},
|
|
132
|
+
"sparePartsUrl": {
|
|
133
|
+
"type": "string",
|
|
134
|
+
"format": "uri",
|
|
135
|
+
"title": "Spare parts: web address",
|
|
136
|
+
"description": "required; Annex XIII (2b)"
|
|
137
|
+
},
|
|
138
|
+
"safetyMeasures": {
|
|
139
|
+
"oneOf": [
|
|
140
|
+
{
|
|
141
|
+
"type": "string",
|
|
142
|
+
"format": "uri"
|
|
143
|
+
},
|
|
144
|
+
{
|
|
145
|
+
"type": "object"
|
|
146
|
+
}
|
|
147
|
+
],
|
|
148
|
+
"title": "Safety measures",
|
|
149
|
+
"description": "required; Annex XIII (2d)"
|
|
150
|
+
},
|
|
151
|
+
"remainingCapacityAh": {
|
|
152
|
+
"type": "number",
|
|
153
|
+
"minimum": 0,
|
|
154
|
+
"title": "Remaining capacity",
|
|
155
|
+
"description": "required; Annex VII Part A(1); applicability any"
|
|
156
|
+
},
|
|
157
|
+
"capacityFade": {
|
|
158
|
+
"type": "number",
|
|
159
|
+
"minimum": 0,
|
|
160
|
+
"maximum": 100,
|
|
161
|
+
"title": "Capacity fade",
|
|
162
|
+
"description": "required; Annex IV Part A(1); applicability any"
|
|
163
|
+
},
|
|
164
|
+
"certifiedEnergyKwh": {
|
|
165
|
+
"type": "number",
|
|
166
|
+
"minimum": 0,
|
|
167
|
+
"title": "Usable energy",
|
|
168
|
+
"description": "recommended; added by the consortium, based on UN GTR No 22; applicability category-in"
|
|
169
|
+
},
|
|
170
|
+
"remainingEnergyKwh": {
|
|
171
|
+
"type": "number",
|
|
172
|
+
"minimum": 0,
|
|
173
|
+
"title": "Remaining usable energy",
|
|
174
|
+
"description": "recommended; added by the consortium, based on UN GTR No 22; applicability category-in"
|
|
175
|
+
},
|
|
176
|
+
"soce": {
|
|
177
|
+
"type": "number",
|
|
178
|
+
"minimum": 0,
|
|
179
|
+
"maximum": 100,
|
|
180
|
+
"title": "State of certified energy",
|
|
181
|
+
"description": "required; UN GTR No 22; applicability category-in"
|
|
182
|
+
},
|
|
183
|
+
"stateOfCharge": {
|
|
184
|
+
"type": "number",
|
|
185
|
+
"minimum": 0,
|
|
186
|
+
"maximum": 100,
|
|
187
|
+
"title": "State of charge",
|
|
188
|
+
"description": "required; Annex XIII 4(d); applicability unresolved"
|
|
189
|
+
},
|
|
190
|
+
"powerRemaining": {
|
|
191
|
+
"type": "integer",
|
|
192
|
+
"minimum": 0,
|
|
193
|
+
"title": "Remaining power",
|
|
194
|
+
"description": "required; Annex VII Part A(2); Annex IV; applicability any"
|
|
195
|
+
},
|
|
196
|
+
"powerFade": {
|
|
197
|
+
"type": "number",
|
|
198
|
+
"minimum": 0,
|
|
199
|
+
"maximum": 100,
|
|
200
|
+
"title": "Power fade",
|
|
201
|
+
"description": "required; Annex IV Part A(2); applicability any"
|
|
202
|
+
},
|
|
203
|
+
"powerToEnergy": {
|
|
204
|
+
"type": "number",
|
|
205
|
+
"minimum": 0,
|
|
206
|
+
"title": "Power to energy ratio",
|
|
207
|
+
"description": "recommended; Annex IV Part B(2)"
|
|
208
|
+
},
|
|
209
|
+
"roundTripRemaining": {
|
|
210
|
+
"type": "number",
|
|
211
|
+
"minimum": 0,
|
|
212
|
+
"maximum": 100,
|
|
213
|
+
"title": "Round trip efficiency, remaining",
|
|
214
|
+
"description": "required; Annex VII Part A(3); applicability any"
|
|
215
|
+
},
|
|
216
|
+
"roundTripFade": {
|
|
217
|
+
"type": "number",
|
|
218
|
+
"minimum": 0,
|
|
219
|
+
"maximum": 100,
|
|
220
|
+
"title": "Round trip efficiency fade",
|
|
221
|
+
"description": "required; Annex IV Part A(4); applicability unresolved"
|
|
222
|
+
},
|
|
223
|
+
"selfDischargeInitial": {
|
|
224
|
+
"type": "number",
|
|
225
|
+
"minimum": 0,
|
|
226
|
+
"title": "Self-discharge, initial",
|
|
227
|
+
"description": "recommended; Annex VII Part A(4); applicability category-in"
|
|
228
|
+
},
|
|
229
|
+
"selfDischargeCurrent": {
|
|
230
|
+
"type": "number",
|
|
231
|
+
"minimum": 0,
|
|
232
|
+
"title": "Self-discharge, current",
|
|
233
|
+
"description": "recommended; Annex VII Part A(4); applicability any"
|
|
234
|
+
},
|
|
235
|
+
"selfDischargeEvolution": {
|
|
236
|
+
"type": "number",
|
|
237
|
+
"minimum": 0,
|
|
238
|
+
"maximum": 100,
|
|
239
|
+
"title": "Self-discharge over time",
|
|
240
|
+
"description": "required; Annex VII Part A(4); applicability any"
|
|
241
|
+
},
|
|
242
|
+
"resistanceIncreasePack": {
|
|
243
|
+
"type": "number",
|
|
244
|
+
"minimum": 0,
|
|
245
|
+
"maximum": 100,
|
|
246
|
+
"title": "Resistance increase, pack",
|
|
247
|
+
"description": "required; Annex IV Part A(3); applicability any"
|
|
248
|
+
},
|
|
249
|
+
"resistanceIncreaseCell": {
|
|
250
|
+
"type": "number",
|
|
251
|
+
"minimum": 0,
|
|
252
|
+
"maximum": 100,
|
|
253
|
+
"title": "Resistance increase, cell",
|
|
254
|
+
"description": "recommended; Annex IV Part A(3)"
|
|
255
|
+
},
|
|
256
|
+
"resistanceIncreaseModule": {
|
|
257
|
+
"type": "number",
|
|
258
|
+
"minimum": 0,
|
|
259
|
+
"maximum": 100,
|
|
260
|
+
"title": "Resistance increase, module",
|
|
261
|
+
"description": "recommended; Annex IV Part A(3)"
|
|
262
|
+
},
|
|
263
|
+
"expectedYears": {
|
|
264
|
+
"type": "number",
|
|
265
|
+
"minimum": 0,
|
|
266
|
+
"title": "Expected life in years",
|
|
267
|
+
"description": "required; Annex IV Part A(5); applicability any"
|
|
268
|
+
},
|
|
269
|
+
"cyclesUsed": {
|
|
270
|
+
"type": "integer",
|
|
271
|
+
"minimum": 0,
|
|
272
|
+
"title": "Cycles so far",
|
|
273
|
+
"description": "required; Annex XIII (4d); applicability unresolved"
|
|
274
|
+
},
|
|
275
|
+
"energyThroughput": {
|
|
276
|
+
"type": "number",
|
|
277
|
+
"minimum": 0,
|
|
278
|
+
"title": "Energy through the battery",
|
|
279
|
+
"description": "required; Annex VII Part B(2); applicability category-in"
|
|
280
|
+
},
|
|
281
|
+
"capacityThroughput": {
|
|
282
|
+
"type": "number",
|
|
283
|
+
"minimum": 0,
|
|
284
|
+
"title": "Capacity through the battery",
|
|
285
|
+
"description": "required; Annex VII Part B(3); applicability category-in"
|
|
286
|
+
},
|
|
287
|
+
"temperatureRecord": {
|
|
288
|
+
"type": "number",
|
|
289
|
+
"minimum": -60,
|
|
290
|
+
"maximum": 150,
|
|
291
|
+
"title": "Temperature record",
|
|
292
|
+
"description": "required; Annex XIII (4d); applicability unresolved"
|
|
293
|
+
},
|
|
294
|
+
"timeAboveRange": {
|
|
295
|
+
"type": "number",
|
|
296
|
+
"minimum": 0,
|
|
297
|
+
"title": "Time above range",
|
|
298
|
+
"description": "required; Annex VII Part B(4); applicability unresolved"
|
|
299
|
+
},
|
|
300
|
+
"timeBelowRange": {
|
|
301
|
+
"type": "number",
|
|
302
|
+
"minimum": 0,
|
|
303
|
+
"title": "Time below range",
|
|
304
|
+
"description": "required; Annex VII Part B(4); applicability unresolved"
|
|
305
|
+
},
|
|
306
|
+
"chargingAboveRange": {
|
|
307
|
+
"type": "number",
|
|
308
|
+
"minimum": 0,
|
|
309
|
+
"title": "Charging above range",
|
|
310
|
+
"description": "required; Annex VII Part B(4); applicability unresolved"
|
|
311
|
+
},
|
|
312
|
+
"chargingBelowRange": {
|
|
313
|
+
"type": "number",
|
|
314
|
+
"minimum": 0,
|
|
315
|
+
"title": "Charging below range",
|
|
316
|
+
"description": "required; Annex VII Part B(4); applicability unresolved"
|
|
317
|
+
},
|
|
318
|
+
"deepDischargeEvents": {
|
|
319
|
+
"type": "integer",
|
|
320
|
+
"minimum": 0,
|
|
321
|
+
"title": "Deep discharges",
|
|
322
|
+
"description": "required; Annex VII; applicability unresolved"
|
|
323
|
+
},
|
|
324
|
+
"overchargeEvents": {
|
|
325
|
+
"type": "integer",
|
|
326
|
+
"minimum": 0,
|
|
327
|
+
"title": "Overcharges",
|
|
328
|
+
"description": "recommended; added by the consortium"
|
|
329
|
+
},
|
|
330
|
+
"accidents": {
|
|
331
|
+
"oneOf": [
|
|
332
|
+
{
|
|
333
|
+
"type": "string",
|
|
334
|
+
"format": "uri"
|
|
335
|
+
},
|
|
336
|
+
{
|
|
337
|
+
"type": "object"
|
|
338
|
+
}
|
|
339
|
+
],
|
|
340
|
+
"title": "Accidents",
|
|
341
|
+
"description": "required; Annex XIII (4d); applicability unresolved"
|
|
342
|
+
},
|
|
343
|
+
"stateOfHealth": {
|
|
344
|
+
"type": "number",
|
|
345
|
+
"minimum": 0,
|
|
346
|
+
"maximum": 100,
|
|
347
|
+
"title": "State of health",
|
|
348
|
+
"description": "recommended; app addition; the spec decomposes SoH into Annex VII Part A parameters"
|
|
349
|
+
},
|
|
350
|
+
"measured": {
|
|
351
|
+
"enum": [
|
|
352
|
+
"manufacturer",
|
|
353
|
+
"authorised-service",
|
|
354
|
+
"independent-lab",
|
|
355
|
+
"operator",
|
|
356
|
+
"repurposer",
|
|
357
|
+
"recycler"
|
|
358
|
+
],
|
|
359
|
+
"title": "Measured by",
|
|
360
|
+
"description": "recommended; app addition"
|
|
361
|
+
},
|
|
362
|
+
"ratedCapacityCurrentAh": {
|
|
363
|
+
"$ref": "#/$defs/measurement",
|
|
364
|
+
"title": "Rated capacity, current",
|
|
365
|
+
"description": "required; Annex XIII 4 (a): the rated capacity as a dynamic value after a change of status; applicability any"
|
|
366
|
+
},
|
|
367
|
+
"resistanceCurrentOhm": {
|
|
368
|
+
"$ref": "#/$defs/measurement",
|
|
369
|
+
"title": "Internal resistance, current",
|
|
370
|
+
"description": "required; Annex XIII 4 (b); Art. 14: the ohmic resistance as state of health information, where possible; applicability any"
|
|
371
|
+
},
|
|
372
|
+
"temperatureSeries": {
|
|
373
|
+
"type": "array",
|
|
374
|
+
"items": {
|
|
375
|
+
"$ref": "#/$defs/measurement"
|
|
376
|
+
},
|
|
377
|
+
"title": "Temperature, periodically recorded",
|
|
378
|
+
"description": "required; Annex XIII 4 (d): periodically recorded information on the operating environmental conditions, including temperature; applicability unresolved"
|
|
379
|
+
},
|
|
380
|
+
"stateOfChargeSeries": {
|
|
381
|
+
"type": "array",
|
|
382
|
+
"items": {
|
|
383
|
+
"$ref": "#/$defs/measurement"
|
|
384
|
+
},
|
|
385
|
+
"title": "State of charge, periodically recorded",
|
|
386
|
+
"description": "required; Annex XIII 4 (d): periodically recorded information on the state of charge; applicability unresolved"
|
|
387
|
+
}
|
|
388
|
+
},
|
|
389
|
+
"required": [
|
|
390
|
+
"dismantlingManual",
|
|
391
|
+
"electrodeMaterials",
|
|
392
|
+
"partNumbersUrl",
|
|
393
|
+
"safetyMeasures",
|
|
394
|
+
"sparePartsAddress",
|
|
395
|
+
"sparePartsEmail",
|
|
396
|
+
"sparePartsUrl"
|
|
397
|
+
],
|
|
398
|
+
"$defs": {
|
|
399
|
+
"datePrecision": {
|
|
400
|
+
"enum": [
|
|
401
|
+
"day",
|
|
402
|
+
"month",
|
|
403
|
+
"year"
|
|
404
|
+
],
|
|
405
|
+
"description": "How precise a date is. A month-precision date is written YYYY-MM and never given a day; a year-precision date is written YYYY."
|
|
406
|
+
},
|
|
407
|
+
"hex64": {
|
|
408
|
+
"type": "string",
|
|
409
|
+
"pattern": "^[0-9a-f]{64}$"
|
|
410
|
+
},
|
|
411
|
+
"dayDate": {
|
|
412
|
+
"type": "string",
|
|
413
|
+
"pattern": "^\\d{4}-(0[1-9]|1[0-2])-(0[1-9]|[12]\\d|3[01])$"
|
|
414
|
+
},
|
|
415
|
+
"monthDate": {
|
|
416
|
+
"type": "string",
|
|
417
|
+
"pattern": "^\\d{4}-(0[1-9]|1[0-2])$"
|
|
418
|
+
},
|
|
419
|
+
"yearDate": {
|
|
420
|
+
"type": "string",
|
|
421
|
+
"pattern": "^\\d{4}$"
|
|
422
|
+
},
|
|
423
|
+
"dateOrDateTime": {
|
|
424
|
+
"type": "string",
|
|
425
|
+
"pattern": "^\\d{4}(-(0[1-9]|1[0-2])(-(0[1-9]|[12]\\d|3[01])(T\\d{2}:\\d{2}:\\d{2}(\\.\\d+)?(Z|[+-]\\d{2}:\\d{2}))?)?)?$",
|
|
426
|
+
"description": "A year, a month, a day or an instant; the precision the shape declares says which is meant."
|
|
427
|
+
},
|
|
428
|
+
"preciseDate": {
|
|
429
|
+
"type": "object",
|
|
430
|
+
"additionalProperties": false,
|
|
431
|
+
"required": [
|
|
432
|
+
"date",
|
|
433
|
+
"precision"
|
|
434
|
+
],
|
|
435
|
+
"properties": {
|
|
436
|
+
"date": {
|
|
437
|
+
"type": "string"
|
|
438
|
+
},
|
|
439
|
+
"precision": {
|
|
440
|
+
"$ref": "#/$defs/datePrecision"
|
|
441
|
+
}
|
|
442
|
+
},
|
|
443
|
+
"allOf": [
|
|
444
|
+
{
|
|
445
|
+
"if": {
|
|
446
|
+
"properties": {
|
|
447
|
+
"precision": {
|
|
448
|
+
"const": "day"
|
|
449
|
+
}
|
|
450
|
+
}
|
|
451
|
+
},
|
|
452
|
+
"then": {
|
|
453
|
+
"properties": {
|
|
454
|
+
"date": {
|
|
455
|
+
"$ref": "#/$defs/dayDate"
|
|
456
|
+
}
|
|
457
|
+
}
|
|
458
|
+
}
|
|
459
|
+
},
|
|
460
|
+
{
|
|
461
|
+
"if": {
|
|
462
|
+
"properties": {
|
|
463
|
+
"precision": {
|
|
464
|
+
"const": "month"
|
|
465
|
+
}
|
|
466
|
+
}
|
|
467
|
+
},
|
|
468
|
+
"then": {
|
|
469
|
+
"properties": {
|
|
470
|
+
"date": {
|
|
471
|
+
"$ref": "#/$defs/monthDate"
|
|
472
|
+
}
|
|
473
|
+
}
|
|
474
|
+
}
|
|
475
|
+
},
|
|
476
|
+
{
|
|
477
|
+
"if": {
|
|
478
|
+
"properties": {
|
|
479
|
+
"precision": {
|
|
480
|
+
"const": "year"
|
|
481
|
+
}
|
|
482
|
+
}
|
|
483
|
+
},
|
|
484
|
+
"then": {
|
|
485
|
+
"properties": {
|
|
486
|
+
"date": {
|
|
487
|
+
"$ref": "#/$defs/yearDate"
|
|
488
|
+
}
|
|
489
|
+
}
|
|
490
|
+
}
|
|
491
|
+
}
|
|
492
|
+
]
|
|
493
|
+
},
|
|
494
|
+
"subjectRef": {
|
|
495
|
+
"type": "object",
|
|
496
|
+
"additionalProperties": false,
|
|
497
|
+
"required": [
|
|
498
|
+
"id",
|
|
499
|
+
"granularity"
|
|
500
|
+
],
|
|
501
|
+
"properties": {
|
|
502
|
+
"id": {
|
|
503
|
+
"type": "string",
|
|
504
|
+
"minLength": 1,
|
|
505
|
+
"maxLength": 512
|
|
506
|
+
},
|
|
507
|
+
"granularity": {
|
|
508
|
+
"enum": [
|
|
509
|
+
"model",
|
|
510
|
+
"batch",
|
|
511
|
+
"item",
|
|
512
|
+
"component"
|
|
513
|
+
]
|
|
514
|
+
},
|
|
515
|
+
"componentRef": {
|
|
516
|
+
"type": "string",
|
|
517
|
+
"minLength": 1,
|
|
518
|
+
"maxLength": 512,
|
|
519
|
+
"description": "The component this evidence covers, when the granularity is component; a component need not have a token."
|
|
520
|
+
}
|
|
521
|
+
}
|
|
522
|
+
},
|
|
523
|
+
"sourceRef": {
|
|
524
|
+
"type": "object",
|
|
525
|
+
"additionalProperties": false,
|
|
526
|
+
"required": [
|
|
527
|
+
"kind",
|
|
528
|
+
"id"
|
|
529
|
+
],
|
|
530
|
+
"properties": {
|
|
531
|
+
"kind": {
|
|
532
|
+
"enum": [
|
|
533
|
+
"source-revision",
|
|
534
|
+
"credential",
|
|
535
|
+
"document"
|
|
536
|
+
]
|
|
537
|
+
},
|
|
538
|
+
"id": {
|
|
539
|
+
"type": "string",
|
|
540
|
+
"minLength": 1
|
|
541
|
+
},
|
|
542
|
+
"revisionId": {
|
|
543
|
+
"type": "string",
|
|
544
|
+
"minLength": 1
|
|
545
|
+
},
|
|
546
|
+
"digest": {
|
|
547
|
+
"$ref": "#/$defs/hex64"
|
|
548
|
+
}
|
|
549
|
+
}
|
|
550
|
+
},
|
|
551
|
+
"relevantTime": {
|
|
552
|
+
"type": "object",
|
|
553
|
+
"additionalProperties": false,
|
|
554
|
+
"required": [
|
|
555
|
+
"precision"
|
|
556
|
+
],
|
|
557
|
+
"properties": {
|
|
558
|
+
"at": {
|
|
559
|
+
"$ref": "#/$defs/dateOrDateTime"
|
|
560
|
+
},
|
|
561
|
+
"from": {
|
|
562
|
+
"$ref": "#/$defs/dateOrDateTime"
|
|
563
|
+
},
|
|
564
|
+
"until": {
|
|
565
|
+
"$ref": "#/$defs/dateOrDateTime"
|
|
566
|
+
},
|
|
567
|
+
"precision": {
|
|
568
|
+
"$ref": "#/$defs/datePrecision"
|
|
569
|
+
}
|
|
570
|
+
}
|
|
571
|
+
},
|
|
572
|
+
"claimEvidence": {
|
|
573
|
+
"type": "object",
|
|
574
|
+
"additionalProperties": false,
|
|
575
|
+
"required": [
|
|
576
|
+
"property",
|
|
577
|
+
"subject",
|
|
578
|
+
"source"
|
|
579
|
+
],
|
|
580
|
+
"properties": {
|
|
581
|
+
"property": {
|
|
582
|
+
"type": "string",
|
|
583
|
+
"pattern": "^/",
|
|
584
|
+
"description": "The JSON pointer of the field the evidence is about."
|
|
585
|
+
},
|
|
586
|
+
"subject": {
|
|
587
|
+
"$ref": "#/$defs/subjectRef"
|
|
588
|
+
},
|
|
589
|
+
"source": {
|
|
590
|
+
"$ref": "#/$defs/sourceRef"
|
|
591
|
+
},
|
|
592
|
+
"reporter": {
|
|
593
|
+
"type": "string",
|
|
594
|
+
"minLength": 1,
|
|
595
|
+
"description": "Who reported the fact, when that is not the issuer of the source."
|
|
596
|
+
},
|
|
597
|
+
"issuer": {
|
|
598
|
+
"type": "string",
|
|
599
|
+
"minLength": 1
|
|
600
|
+
},
|
|
601
|
+
"relevantTime": {
|
|
602
|
+
"$ref": "#/$defs/relevantTime"
|
|
603
|
+
},
|
|
604
|
+
"reportRef": {
|
|
605
|
+
"type": "string",
|
|
606
|
+
"minLength": 1,
|
|
607
|
+
"description": "A verification report the evidence was evaluated in."
|
|
608
|
+
}
|
|
609
|
+
}
|
|
610
|
+
},
|
|
611
|
+
"certification": {
|
|
612
|
+
"type": "object",
|
|
613
|
+
"additionalProperties": false,
|
|
614
|
+
"required": [
|
|
615
|
+
"scheme",
|
|
616
|
+
"certificateId",
|
|
617
|
+
"issuer",
|
|
618
|
+
"subject",
|
|
619
|
+
"verification"
|
|
620
|
+
],
|
|
621
|
+
"description": "A certificate as evidence. The scheme's homepage and the issuer's signature are inputs to a verification; only verification.status says what was established, and unknown is not a pass.",
|
|
622
|
+
"properties": {
|
|
623
|
+
"scheme": {
|
|
624
|
+
"type": "object",
|
|
625
|
+
"additionalProperties": false,
|
|
626
|
+
"required": [
|
|
627
|
+
"id",
|
|
628
|
+
"name"
|
|
629
|
+
],
|
|
630
|
+
"properties": {
|
|
631
|
+
"id": {
|
|
632
|
+
"type": "string",
|
|
633
|
+
"minLength": 1
|
|
634
|
+
},
|
|
635
|
+
"name": {
|
|
636
|
+
"type": "string",
|
|
637
|
+
"minLength": 1
|
|
638
|
+
},
|
|
639
|
+
"version": {
|
|
640
|
+
"type": "string"
|
|
641
|
+
}
|
|
642
|
+
}
|
|
643
|
+
},
|
|
644
|
+
"certificateId": {
|
|
645
|
+
"type": "string",
|
|
646
|
+
"minLength": 1
|
|
647
|
+
},
|
|
648
|
+
"issuer": {
|
|
649
|
+
"type": "string",
|
|
650
|
+
"minLength": 1,
|
|
651
|
+
"description": "The certification body or issuer as named on the certificate."
|
|
652
|
+
},
|
|
653
|
+
"subject": {
|
|
654
|
+
"$ref": "#/$defs/subjectRef"
|
|
655
|
+
},
|
|
656
|
+
"validFrom": {
|
|
657
|
+
"$ref": "#/$defs/dateOrDateTime"
|
|
658
|
+
},
|
|
659
|
+
"validUntil": {
|
|
660
|
+
"$ref": "#/$defs/dateOrDateTime"
|
|
661
|
+
},
|
|
662
|
+
"precision": {
|
|
663
|
+
"$ref": "#/$defs/datePrecision"
|
|
664
|
+
},
|
|
665
|
+
"documentRef": {
|
|
666
|
+
"$ref": "#/$defs/relatedDocument"
|
|
667
|
+
},
|
|
668
|
+
"credentialRef": {
|
|
669
|
+
"type": "object",
|
|
670
|
+
"additionalProperties": false,
|
|
671
|
+
"required": [
|
|
672
|
+
"id"
|
|
673
|
+
],
|
|
674
|
+
"properties": {
|
|
675
|
+
"id": {
|
|
676
|
+
"type": "string",
|
|
677
|
+
"minLength": 1
|
|
678
|
+
},
|
|
679
|
+
"digest": {
|
|
680
|
+
"$ref": "#/$defs/hex64"
|
|
681
|
+
}
|
|
682
|
+
}
|
|
683
|
+
},
|
|
684
|
+
"verification": {
|
|
685
|
+
"type": "object",
|
|
686
|
+
"additionalProperties": false,
|
|
687
|
+
"required": [
|
|
688
|
+
"status"
|
|
689
|
+
],
|
|
690
|
+
"properties": {
|
|
691
|
+
"status": {
|
|
692
|
+
"enum": [
|
|
693
|
+
"verified",
|
|
694
|
+
"failed",
|
|
695
|
+
"unknown",
|
|
696
|
+
"not-checked"
|
|
697
|
+
]
|
|
698
|
+
},
|
|
699
|
+
"checkedAt": {
|
|
700
|
+
"$ref": "#/$defs/dateOrDateTime"
|
|
701
|
+
},
|
|
702
|
+
"reportRef": {
|
|
703
|
+
"type": "string",
|
|
704
|
+
"minLength": 1
|
|
705
|
+
}
|
|
706
|
+
}
|
|
707
|
+
}
|
|
708
|
+
}
|
|
709
|
+
},
|
|
710
|
+
"quantity": {
|
|
711
|
+
"type": "object",
|
|
712
|
+
"additionalProperties": false,
|
|
713
|
+
"required": [
|
|
714
|
+
"value",
|
|
715
|
+
"unit"
|
|
716
|
+
],
|
|
717
|
+
"properties": {
|
|
718
|
+
"value": {
|
|
719
|
+
"type": "number"
|
|
720
|
+
},
|
|
721
|
+
"unit": {
|
|
722
|
+
"type": "string",
|
|
723
|
+
"minLength": 1
|
|
724
|
+
}
|
|
725
|
+
}
|
|
726
|
+
},
|
|
727
|
+
"measurement": {
|
|
728
|
+
"type": "object",
|
|
729
|
+
"additionalProperties": false,
|
|
730
|
+
"required": [
|
|
731
|
+
"property",
|
|
732
|
+
"value",
|
|
733
|
+
"unit",
|
|
734
|
+
"subject"
|
|
735
|
+
],
|
|
736
|
+
"description": "A measured or assessed value with the scope that makes it comparable: the unit, the basis (a fraction is not a percent), the functional unit or denominator, the method and its version, the boundary and conditions, when it was measured and for which subject. A value that is a string carries a basis, because a bare string cannot be compared.",
|
|
737
|
+
"properties": {
|
|
738
|
+
"property": {
|
|
739
|
+
"type": "string",
|
|
740
|
+
"minLength": 1
|
|
741
|
+
},
|
|
742
|
+
"value": {
|
|
743
|
+
"type": [
|
|
744
|
+
"number",
|
|
745
|
+
"string"
|
|
746
|
+
]
|
|
747
|
+
},
|
|
748
|
+
"unit": {
|
|
749
|
+
"type": "string",
|
|
750
|
+
"minLength": 1
|
|
751
|
+
},
|
|
752
|
+
"basis": {
|
|
753
|
+
"$ref": "#/$defs/measurementBasis"
|
|
754
|
+
},
|
|
755
|
+
"functionalUnit": {
|
|
756
|
+
"type": "string",
|
|
757
|
+
"minLength": 1
|
|
758
|
+
},
|
|
759
|
+
"denominator": {
|
|
760
|
+
"$ref": "#/$defs/quantity"
|
|
761
|
+
},
|
|
762
|
+
"method": {
|
|
763
|
+
"type": "object",
|
|
764
|
+
"additionalProperties": false,
|
|
765
|
+
"required": [
|
|
766
|
+
"id"
|
|
767
|
+
],
|
|
768
|
+
"properties": {
|
|
769
|
+
"id": {
|
|
770
|
+
"type": "string",
|
|
771
|
+
"minLength": 1
|
|
772
|
+
},
|
|
773
|
+
"version": {
|
|
774
|
+
"type": "string"
|
|
775
|
+
}
|
|
776
|
+
}
|
|
777
|
+
},
|
|
778
|
+
"boundary": {
|
|
779
|
+
"type": "string",
|
|
780
|
+
"minLength": 1
|
|
781
|
+
},
|
|
782
|
+
"conditions": {
|
|
783
|
+
"type": "string",
|
|
784
|
+
"minLength": 1
|
|
785
|
+
},
|
|
786
|
+
"measuredAt": {
|
|
787
|
+
"$ref": "#/$defs/preciseDate"
|
|
788
|
+
},
|
|
789
|
+
"effective": {
|
|
790
|
+
"type": "object",
|
|
791
|
+
"additionalProperties": false,
|
|
792
|
+
"properties": {
|
|
793
|
+
"from": {
|
|
794
|
+
"$ref": "#/$defs/dateOrDateTime"
|
|
795
|
+
},
|
|
796
|
+
"until": {
|
|
797
|
+
"$ref": "#/$defs/dateOrDateTime"
|
|
798
|
+
}
|
|
799
|
+
}
|
|
800
|
+
},
|
|
801
|
+
"subject": {
|
|
802
|
+
"$ref": "#/$defs/subjectRef"
|
|
803
|
+
},
|
|
804
|
+
"evidence": {
|
|
805
|
+
"type": "array",
|
|
806
|
+
"items": {
|
|
807
|
+
"$ref": "#/$defs/claimEvidence"
|
|
808
|
+
}
|
|
809
|
+
},
|
|
810
|
+
"conversion": {
|
|
811
|
+
"type": "object",
|
|
812
|
+
"additionalProperties": false,
|
|
813
|
+
"required": [
|
|
814
|
+
"fromUnit",
|
|
815
|
+
"toUnit",
|
|
816
|
+
"rule",
|
|
817
|
+
"explicit"
|
|
818
|
+
],
|
|
819
|
+
"description": "Present only when the value was converted from its source unit under a stated rule; a converted value never loses its source unit.",
|
|
820
|
+
"properties": {
|
|
821
|
+
"fromUnit": {
|
|
822
|
+
"type": "string",
|
|
823
|
+
"minLength": 1
|
|
824
|
+
},
|
|
825
|
+
"toUnit": {
|
|
826
|
+
"type": "string",
|
|
827
|
+
"minLength": 1
|
|
828
|
+
},
|
|
829
|
+
"rule": {
|
|
830
|
+
"type": "string",
|
|
831
|
+
"minLength": 1
|
|
832
|
+
},
|
|
833
|
+
"explicit": {
|
|
834
|
+
"const": true
|
|
835
|
+
}
|
|
836
|
+
}
|
|
837
|
+
}
|
|
838
|
+
},
|
|
839
|
+
"allOf": [
|
|
840
|
+
{
|
|
841
|
+
"if": {
|
|
842
|
+
"properties": {
|
|
843
|
+
"value": {
|
|
844
|
+
"type": "string"
|
|
845
|
+
}
|
|
846
|
+
}
|
|
847
|
+
},
|
|
848
|
+
"then": {
|
|
849
|
+
"properties": {
|
|
850
|
+
"basis": {
|
|
851
|
+
"$ref": "#/$defs/measurementBasis"
|
|
852
|
+
}
|
|
853
|
+
},
|
|
854
|
+
"required": [
|
|
855
|
+
"basis"
|
|
856
|
+
]
|
|
857
|
+
}
|
|
858
|
+
}
|
|
859
|
+
]
|
|
860
|
+
},
|
|
861
|
+
"relatedDocument": {
|
|
862
|
+
"type": "object",
|
|
863
|
+
"additionalProperties": false,
|
|
864
|
+
"required": [
|
|
865
|
+
"ref",
|
|
866
|
+
"purpose",
|
|
867
|
+
"retained",
|
|
868
|
+
"access"
|
|
869
|
+
],
|
|
870
|
+
"description": "A document a value points at. A URL is where the document was seen, not a commitment to its content; only retained bytes carry a digest.",
|
|
871
|
+
"properties": {
|
|
872
|
+
"ref": {
|
|
873
|
+
"type": "string",
|
|
874
|
+
"minLength": 1
|
|
875
|
+
},
|
|
876
|
+
"purpose": {
|
|
877
|
+
"type": "string",
|
|
878
|
+
"minLength": 1
|
|
879
|
+
},
|
|
880
|
+
"url": {
|
|
881
|
+
"type": "string",
|
|
882
|
+
"format": "uri"
|
|
883
|
+
},
|
|
884
|
+
"mediaType": {
|
|
885
|
+
"type": "string",
|
|
886
|
+
"minLength": 1
|
|
887
|
+
},
|
|
888
|
+
"language": {
|
|
889
|
+
"type": "string",
|
|
890
|
+
"pattern": "^[A-Za-z]{2,3}(-[A-Za-z0-9]{2,8})*$"
|
|
891
|
+
},
|
|
892
|
+
"revision": {
|
|
893
|
+
"type": "string"
|
|
894
|
+
},
|
|
895
|
+
"date": {
|
|
896
|
+
"$ref": "#/$defs/dateOrDateTime"
|
|
897
|
+
},
|
|
898
|
+
"precision": {
|
|
899
|
+
"$ref": "#/$defs/datePrecision"
|
|
900
|
+
},
|
|
901
|
+
"digest": {
|
|
902
|
+
"$ref": "#/$defs/hex64"
|
|
903
|
+
},
|
|
904
|
+
"byteLength": {
|
|
905
|
+
"type": "integer",
|
|
906
|
+
"minimum": 0
|
|
907
|
+
},
|
|
908
|
+
"retained": {
|
|
909
|
+
"type": "boolean"
|
|
910
|
+
},
|
|
911
|
+
"access": {
|
|
912
|
+
"enum": [
|
|
913
|
+
"public",
|
|
914
|
+
"owner",
|
|
915
|
+
"legitimate",
|
|
916
|
+
"authority"
|
|
917
|
+
]
|
|
918
|
+
}
|
|
919
|
+
},
|
|
920
|
+
"allOf": [
|
|
921
|
+
{
|
|
922
|
+
"if": {
|
|
923
|
+
"properties": {
|
|
924
|
+
"retained": {
|
|
925
|
+
"const": true
|
|
926
|
+
}
|
|
927
|
+
}
|
|
928
|
+
},
|
|
929
|
+
"then": {
|
|
930
|
+
"properties": {
|
|
931
|
+
"digest": {
|
|
932
|
+
"$ref": "#/$defs/hex64"
|
|
933
|
+
},
|
|
934
|
+
"byteLength": {
|
|
935
|
+
"type": "integer",
|
|
936
|
+
"minimum": 0
|
|
937
|
+
}
|
|
938
|
+
},
|
|
939
|
+
"required": [
|
|
940
|
+
"digest",
|
|
941
|
+
"byteLength"
|
|
942
|
+
]
|
|
943
|
+
}
|
|
944
|
+
}
|
|
945
|
+
]
|
|
946
|
+
},
|
|
947
|
+
"localisedText": {
|
|
948
|
+
"type": "object",
|
|
949
|
+
"additionalProperties": false,
|
|
950
|
+
"required": [
|
|
951
|
+
"values"
|
|
952
|
+
],
|
|
953
|
+
"description": "Text in one or more languages as the source supplied it. A reader selects the exact tag, then the base language, then the declared default, and records which; it never rewrites a value as another language.",
|
|
954
|
+
"properties": {
|
|
955
|
+
"values": {
|
|
956
|
+
"type": "array",
|
|
957
|
+
"minItems": 1,
|
|
958
|
+
"items": {
|
|
959
|
+
"type": "object",
|
|
960
|
+
"additionalProperties": false,
|
|
961
|
+
"required": [
|
|
962
|
+
"language",
|
|
963
|
+
"text"
|
|
964
|
+
],
|
|
965
|
+
"properties": {
|
|
966
|
+
"language": {
|
|
967
|
+
"type": "string",
|
|
968
|
+
"pattern": "^[A-Za-z]{2,3}(-[A-Za-z0-9]{2,8})*$"
|
|
969
|
+
},
|
|
970
|
+
"text": {
|
|
971
|
+
"type": "string"
|
|
972
|
+
}
|
|
973
|
+
}
|
|
974
|
+
}
|
|
975
|
+
},
|
|
976
|
+
"returnedLanguage": {
|
|
977
|
+
"type": "string",
|
|
978
|
+
"pattern": "^[A-Za-z]{2,3}(-[A-Za-z0-9]{2,8})*$"
|
|
979
|
+
},
|
|
980
|
+
"selection": {
|
|
981
|
+
"enum": [
|
|
982
|
+
"exact",
|
|
983
|
+
"base",
|
|
984
|
+
"default"
|
|
985
|
+
]
|
|
986
|
+
}
|
|
987
|
+
}
|
|
988
|
+
},
|
|
989
|
+
"warrantyTerms": {
|
|
990
|
+
"type": "object",
|
|
991
|
+
"additionalProperties": false,
|
|
992
|
+
"required": [
|
|
993
|
+
"duration",
|
|
994
|
+
"calendarRule"
|
|
995
|
+
],
|
|
996
|
+
"description": "A model's warranty terms: a duration and the calendar rule that says what the duration counts from. Terms alone give no expiry.",
|
|
997
|
+
"properties": {
|
|
998
|
+
"duration": {
|
|
999
|
+
"type": "object",
|
|
1000
|
+
"additionalProperties": false,
|
|
1001
|
+
"required": [
|
|
1002
|
+
"value",
|
|
1003
|
+
"unit"
|
|
1004
|
+
],
|
|
1005
|
+
"properties": {
|
|
1006
|
+
"value": {
|
|
1007
|
+
"type": "integer",
|
|
1008
|
+
"minimum": 1
|
|
1009
|
+
},
|
|
1010
|
+
"unit": {
|
|
1011
|
+
"enum": [
|
|
1012
|
+
"months",
|
|
1013
|
+
"years"
|
|
1014
|
+
]
|
|
1015
|
+
}
|
|
1016
|
+
}
|
|
1017
|
+
},
|
|
1018
|
+
"calendarRule": {
|
|
1019
|
+
"enum": [
|
|
1020
|
+
"purchase-date",
|
|
1021
|
+
"manufacture-date",
|
|
1022
|
+
"first-use"
|
|
1023
|
+
]
|
|
1024
|
+
},
|
|
1025
|
+
"conditions": {
|
|
1026
|
+
"type": "string"
|
|
1027
|
+
}
|
|
1028
|
+
}
|
|
1029
|
+
},
|
|
1030
|
+
"warrantyExpiry": {
|
|
1031
|
+
"type": "object",
|
|
1032
|
+
"additionalProperties": false,
|
|
1033
|
+
"required": [
|
|
1034
|
+
"start",
|
|
1035
|
+
"terms",
|
|
1036
|
+
"derived"
|
|
1037
|
+
],
|
|
1038
|
+
"description": "An item's derived warranty expiry: the evidenced start, the terms applied and the derived date at the precision the start permits. A month-precision start yields a month, never an invented day.",
|
|
1039
|
+
"properties": {
|
|
1040
|
+
"start": {
|
|
1041
|
+
"type": "object",
|
|
1042
|
+
"additionalProperties": false,
|
|
1043
|
+
"required": [
|
|
1044
|
+
"date",
|
|
1045
|
+
"precision",
|
|
1046
|
+
"evidenceRef"
|
|
1047
|
+
],
|
|
1048
|
+
"properties": {
|
|
1049
|
+
"date": {
|
|
1050
|
+
"type": "string"
|
|
1051
|
+
},
|
|
1052
|
+
"precision": {
|
|
1053
|
+
"$ref": "#/$defs/datePrecision"
|
|
1054
|
+
},
|
|
1055
|
+
"evidenceRef": {
|
|
1056
|
+
"type": "string",
|
|
1057
|
+
"minLength": 1
|
|
1058
|
+
}
|
|
1059
|
+
}
|
|
1060
|
+
},
|
|
1061
|
+
"terms": {
|
|
1062
|
+
"$ref": "#/$defs/warrantyTerms"
|
|
1063
|
+
},
|
|
1064
|
+
"derived": {
|
|
1065
|
+
"type": "object",
|
|
1066
|
+
"additionalProperties": false,
|
|
1067
|
+
"required": [
|
|
1068
|
+
"date",
|
|
1069
|
+
"precision",
|
|
1070
|
+
"rule"
|
|
1071
|
+
],
|
|
1072
|
+
"properties": {
|
|
1073
|
+
"date": {
|
|
1074
|
+
"type": "string"
|
|
1075
|
+
},
|
|
1076
|
+
"precision": {
|
|
1077
|
+
"$ref": "#/$defs/datePrecision"
|
|
1078
|
+
},
|
|
1079
|
+
"rule": {
|
|
1080
|
+
"type": "string",
|
|
1081
|
+
"minLength": 1
|
|
1082
|
+
}
|
|
1083
|
+
}
|
|
1084
|
+
}
|
|
1085
|
+
}
|
|
1086
|
+
},
|
|
1087
|
+
"measurementBasis": {
|
|
1088
|
+
"enum": [
|
|
1089
|
+
"fraction",
|
|
1090
|
+
"percent",
|
|
1091
|
+
"mass",
|
|
1092
|
+
"count",
|
|
1093
|
+
"per-functional-unit"
|
|
1094
|
+
]
|
|
1095
|
+
}
|
|
1096
|
+
}
|
|
1097
|
+
}
|