@planning-inspectorate/data-model 1.20.0 → 1.21.0
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/docs/README.md +7 -1
- package/docs/pins-inspector-defs-specialism.md +80 -0
- package/docs/pins-inspector-defs.md +3 -0
- package/docs/pins-inspector.md +311 -3
- package/package.json +1 -1
- package/pins_data_model/models/model_appeal_document.py +1 -1
- package/pins_data_model/models/model_appeal_event.py +1 -1
- package/pins_data_model/models/model_appeal_event_estimate.py +1 -1
- package/pins_data_model/models/model_appeal_has.py +1 -1
- package/pins_data_model/models/model_appeal_representation.py +1 -1
- package/pins_data_model/models/model_appeal_s78.py +1 -1
- package/pins_data_model/models/model_dart_response.py +1 -1
- package/pins_data_model/models/model_entraid.py +1 -1
- package/pins_data_model/models/model_folder.py +1 -1
- package/pins_data_model/models/model_gettimesheets_response.py +1 -1
- package/pins_data_model/models/model_listed_building.py +1 -1
- package/pins_data_model/models/model_listed_buildings.py +1 -1
- package/pins_data_model/models/model_nsip_document.py +1 -1
- package/pins_data_model/models/model_nsip_exam_timetable.py +1 -1
- package/pins_data_model/models/model_nsip_project.py +1 -1
- package/pins_data_model/models/model_nsip_project_update.py +1 -1
- package/pins_data_model/models/model_nsip_representation.py +1 -1
- package/pins_data_model/models/model_nsip_subscription.py +1 -1
- package/pins_data_model/models/model_pins_inspector.py +75 -6
- package/pins_data_model/models/model_pins_lpa.py +1 -1
- package/pins_data_model/models/model_s51_advice.py +1 -1
- package/pins_data_model/models/model_service_user.py +1 -1
- package/schemas/pins-inspector.schema.json +108 -3
- package/src/schemas.d.ts +63 -3
package/docs/README.md
CHANGED
|
@@ -34,7 +34,7 @@
|
|
|
34
34
|
|
|
35
35
|
* [NSIP Project Update](./nsip-project-update.md "NSIP Project Update (formerly known as Banners)") – `nsip-project-update.schema.json`
|
|
36
36
|
|
|
37
|
-
* [PINS Inspector](./pins-inspector.md "Inspector
|
|
37
|
+
* [PINS Inspector](./pins-inspector.md "Inspector Details originating from Horizon, SAP HR and Entra") – `pins-inspector.schema.json`
|
|
38
38
|
|
|
39
39
|
* [PINS LPA](./pins-lpa.md "Local Planning Authority (LPA) attributes as per Horizon") – `pins-lpa.schema.json`
|
|
40
40
|
|
|
@@ -64,6 +64,10 @@
|
|
|
64
64
|
|
|
65
65
|
* [Untitled object in NSIP Project](./nsip-project-defs-invoice.md "An invoice related to the project") – `nsip-project.schema.json#/$defs/invoice`
|
|
66
66
|
|
|
67
|
+
* [Untitled object in PINS Inspector](./pins-inspector-properties-address.md) – `pins-inspector.schema.json#/properties/address`
|
|
68
|
+
|
|
69
|
+
* [Untitled object in PINS Inspector](./pins-inspector-defs-specialism.md) – `pins-inspector.schema.json#/$defs/specialism`
|
|
70
|
+
|
|
67
71
|
### Arrays
|
|
68
72
|
|
|
69
73
|
* [Untitled array in Appeal Representation](./appeal-representation-properties-documentids.md "An array of documentIds") – `appeal-representation.schema.json#/properties/documentIds`
|
|
@@ -96,6 +100,8 @@
|
|
|
96
100
|
|
|
97
101
|
* [Untitled array in NSIP Project](./nsip-project-properties-invoices.md "Collection of invoices associated with this project") – `nsip-project.schema.json#/properties/invoices`
|
|
98
102
|
|
|
103
|
+
* [Untitled array in PINS Inspector](./pins-inspector-properties-specialisms.md) – `pins-inspector.schema.json#/properties/specialisms`
|
|
104
|
+
|
|
99
105
|
* [Untitled array in Representation](./nsip-representation-properties-attachmentids.md) – `nsip-representation.schema.json#/properties/attachmentIds`
|
|
100
106
|
|
|
101
107
|
* [Untitled array in S51 Advice](./s51-advice-properties-attachmentids.md) – `s51-advice.schema.json#/properties/attachmentIds`
|
|
@@ -0,0 +1,80 @@
|
|
|
1
|
+
## specialism Type
|
|
2
|
+
|
|
3
|
+
`object` ([Details](pins-inspector-defs-specialism.md))
|
|
4
|
+
|
|
5
|
+
# specialism Properties
|
|
6
|
+
|
|
7
|
+
| Property | Type | Required | Nullable | Defined by |
|
|
8
|
+
| :-------------------------- | :------- | :------- | :------------- | :----------------------------------------------------------------------------------------------------------------------------------------------- |
|
|
9
|
+
| [name](#name) | `string` | Required | cannot be null | [PINS Inspector](pins-inspector-defs-specialism-properties-name.md "pins-inspector.schema.json#/$defs/specialism/properties/name") |
|
|
10
|
+
| [proficiency](#proficiency) | `string` | Required | can be null | [PINS Inspector](pins-inspector-defs-specialism-properties-proficiency.md "pins-inspector.schema.json#/$defs/specialism/properties/proficiency") |
|
|
11
|
+
| [validFrom](#validfrom) | `string` | Required | can be null | [PINS Inspector](pins-inspector-defs-specialism-properties-validfrom.md "pins-inspector.schema.json#/$defs/specialism/properties/validFrom") |
|
|
12
|
+
| Additional Properties | Any | Optional | can be null | |
|
|
13
|
+
|
|
14
|
+
## name
|
|
15
|
+
|
|
16
|
+
Working above band is stored as a specialism
|
|
17
|
+
|
|
18
|
+
`name`
|
|
19
|
+
|
|
20
|
+
* is required
|
|
21
|
+
|
|
22
|
+
* Type: `string`
|
|
23
|
+
|
|
24
|
+
* cannot be null
|
|
25
|
+
|
|
26
|
+
* defined in: [PINS Inspector](pins-inspector-defs-specialism-properties-name.md "pins-inspector.schema.json#/$defs/specialism/properties/name")
|
|
27
|
+
|
|
28
|
+
### name Type
|
|
29
|
+
|
|
30
|
+
`string`
|
|
31
|
+
|
|
32
|
+
## proficiency
|
|
33
|
+
|
|
34
|
+
trained or in-training
|
|
35
|
+
|
|
36
|
+
`proficiency`
|
|
37
|
+
|
|
38
|
+
* is required
|
|
39
|
+
|
|
40
|
+
* Type: `string`
|
|
41
|
+
|
|
42
|
+
* can be null
|
|
43
|
+
|
|
44
|
+
* defined in: [PINS Inspector](pins-inspector-defs-specialism-properties-proficiency.md "pins-inspector.schema.json#/$defs/specialism/properties/proficiency")
|
|
45
|
+
|
|
46
|
+
### proficiency Type
|
|
47
|
+
|
|
48
|
+
`string`
|
|
49
|
+
|
|
50
|
+
## validFrom
|
|
51
|
+
|
|
52
|
+
Date training started or date training was completed.
|
|
53
|
+
|
|
54
|
+
`validFrom`
|
|
55
|
+
|
|
56
|
+
* is required
|
|
57
|
+
|
|
58
|
+
* Type: `string`
|
|
59
|
+
|
|
60
|
+
* can be null
|
|
61
|
+
|
|
62
|
+
* defined in: [PINS Inspector](pins-inspector-defs-specialism-properties-validfrom.md "pins-inspector.schema.json#/$defs/specialism/properties/validFrom")
|
|
63
|
+
|
|
64
|
+
### validFrom Type
|
|
65
|
+
|
|
66
|
+
`string`
|
|
67
|
+
|
|
68
|
+
### validFrom Constraints
|
|
69
|
+
|
|
70
|
+
**date time**: the string must be a date time string, according to [RFC 3339, section 5.6](https://tools.ietf.org/html/rfc3339 "check the specification")
|
|
71
|
+
|
|
72
|
+
### validFrom Examples
|
|
73
|
+
|
|
74
|
+
```json
|
|
75
|
+
"2023-07-27T20:30:00.000Z"
|
|
76
|
+
```
|
|
77
|
+
|
|
78
|
+
## Additional Properties
|
|
79
|
+
|
|
80
|
+
Additional properties are allowed and do not have to follow a specific schema
|
package/docs/pins-inspector.md
CHANGED
|
@@ -6,7 +6,9 @@
|
|
|
6
6
|
|
|
7
7
|
| Property | Type | Required | Nullable | Defined by |
|
|
8
8
|
| :------------------------------------ | :------- | :------- | :------------- | :------------------------------------------------------------------------------------------------------------------------ |
|
|
9
|
-
| [
|
|
9
|
+
| [entraId](#entraid) | `string` | Required | can be null | [PINS Inspector](pins-inspector-properties-entraid.md "pins-inspector.schema.json#/properties/entraId") |
|
|
10
|
+
| [sapId](#sapid) | `string` | Required | can be null | [PINS Inspector](pins-inspector-properties-sapid.md "pins-inspector.schema.json#/properties/sapId") |
|
|
11
|
+
| [horizonId](#horizonid) | `string` | Optional | cannot be null | [PINS Inspector](pins-inspector-properties-horizonid.md "pins-inspector.schema.json#/properties/horizonId") |
|
|
10
12
|
| [firstName](#firstname) | `string` | Required | cannot be null | [PINS Inspector](pins-inspector-properties-firstname.md "pins-inspector.schema.json#/properties/firstName") |
|
|
11
13
|
| [lastName](#lastname) | `string` | Required | cannot be null | [PINS Inspector](pins-inspector-properties-lastname.md "pins-inspector.schema.json#/properties/lastName") |
|
|
12
14
|
| [postName](#postname) | `string` | Optional | can be null | [PINS Inspector](pins-inspector-properties-postname.md "pins-inspector.schema.json#/properties/postName") |
|
|
@@ -15,15 +17,60 @@
|
|
|
15
17
|
| [salutation](#salutation) | `string` | Optional | can be null | [PINS Inspector](pins-inspector-properties-salutation.md "pins-inspector.schema.json#/properties/salutation") |
|
|
16
18
|
| [qualifications](#qualifications) | `string` | Optional | can be null | [PINS Inspector](pins-inspector-properties-qualifications.md "pins-inspector.schema.json#/properties/qualifications") |
|
|
17
19
|
| [email](#email) | `string` | Required | can be null | [PINS Inspector](pins-inspector-properties-email.md "pins-inspector.schema.json#/properties/email") |
|
|
20
|
+
| [grade](#grade) | `string` | Required | cannot be null | [PINS Inspector](pins-inspector-properties-grade.md "pins-inspector.schema.json#/properties/grade") |
|
|
21
|
+
| [fte](#fte) | `number` | Required | cannot be null | [PINS Inspector](pins-inspector-properties-fte.md "pins-inspector.schema.json#/properties/fte") |
|
|
22
|
+
| [unit](#unit) | `string` | Required | cannot be null | [PINS Inspector](pins-inspector-properties-unit.md "pins-inspector.schema.json#/properties/unit") |
|
|
23
|
+
| [service](#service) | `string` | Required | cannot be null | [PINS Inspector](pins-inspector-properties-service.md "pins-inspector.schema.json#/properties/service") |
|
|
24
|
+
| [group](#group) | `string` | Required | cannot be null | [PINS Inspector](pins-inspector-properties-group.md "pins-inspector.schema.json#/properties/group") |
|
|
25
|
+
| [inspectorManager](#inspectormanager) | `string` | Required | cannot be null | [PINS Inspector](pins-inspector-properties-inspectormanager.md "pins-inspector.schema.json#/properties/inspectorManager") |
|
|
26
|
+
| [validFrom](#validfrom) | `string` | Optional | can be null | [PINS Inspector](pins-inspector-properties-validfrom.md "pins-inspector.schema.json#/properties/validFrom") |
|
|
27
|
+
| [address](#address) | `object` | Required | cannot be null | [PINS Inspector](pins-inspector-properties-address.md "pins-inspector.schema.json#/properties/address") |
|
|
28
|
+
| [specialisms](#specialisms) | `array` | Required | cannot be null | [PINS Inspector](pins-inspector-properties-specialisms.md "pins-inspector.schema.json#/properties/specialisms") |
|
|
18
29
|
| Additional Properties | Any | Optional | can be null | |
|
|
19
30
|
|
|
31
|
+
## entraId
|
|
32
|
+
|
|
33
|
+
EntraID of the Inspector if available in ODW.
|
|
34
|
+
|
|
35
|
+
`entraId`
|
|
36
|
+
|
|
37
|
+
* is required
|
|
38
|
+
|
|
39
|
+
* Type: `string`
|
|
40
|
+
|
|
41
|
+
* can be null
|
|
42
|
+
|
|
43
|
+
* defined in: [PINS Inspector](pins-inspector-properties-entraid.md "pins-inspector.schema.json#/properties/entraId")
|
|
44
|
+
|
|
45
|
+
### entraId Type
|
|
46
|
+
|
|
47
|
+
`string`
|
|
48
|
+
|
|
49
|
+
## sapId
|
|
50
|
+
|
|
51
|
+
SAPID of the Inspector if available in ODW.
|
|
52
|
+
|
|
53
|
+
`sapId`
|
|
54
|
+
|
|
55
|
+
* is required
|
|
56
|
+
|
|
57
|
+
* Type: `string`
|
|
58
|
+
|
|
59
|
+
* can be null
|
|
60
|
+
|
|
61
|
+
* defined in: [PINS Inspector](pins-inspector-properties-sapid.md "pins-inspector.schema.json#/properties/sapId")
|
|
62
|
+
|
|
63
|
+
### sapId Type
|
|
64
|
+
|
|
65
|
+
`string`
|
|
66
|
+
|
|
20
67
|
## horizonId
|
|
21
68
|
|
|
22
69
|
The PINS-generated unique horizon ID
|
|
23
70
|
|
|
24
71
|
`horizonId`
|
|
25
72
|
|
|
26
|
-
* is
|
|
73
|
+
* is optional
|
|
27
74
|
|
|
28
75
|
* Type: `string`
|
|
29
76
|
|
|
@@ -163,7 +210,7 @@ The qualifications of the inspector
|
|
|
163
210
|
|
|
164
211
|
## email
|
|
165
212
|
|
|
166
|
-
|
|
213
|
+
PINS Email address for the Inspector
|
|
167
214
|
|
|
168
215
|
`email`
|
|
169
216
|
|
|
@@ -179,6 +226,267 @@ The email address of the inspector
|
|
|
179
226
|
|
|
180
227
|
`string`
|
|
181
228
|
|
|
229
|
+
### email Constraints
|
|
230
|
+
|
|
231
|
+
**email**: the string must be an email address, according to [RFC 5322, section 3.4.1](https://tools.ietf.org/html/rfc5322 "check the specification")
|
|
232
|
+
|
|
233
|
+
## grade
|
|
234
|
+
|
|
235
|
+
Grades as a coded value e.g. B1, B2, B3, FTC-B1, FTC-B2, FTC-B3, PL
|
|
236
|
+
|
|
237
|
+
`grade`
|
|
238
|
+
|
|
239
|
+
* is required
|
|
240
|
+
|
|
241
|
+
* Type: `string`
|
|
242
|
+
|
|
243
|
+
* cannot be null
|
|
244
|
+
|
|
245
|
+
* defined in: [PINS Inspector](pins-inspector-properties-grade.md "pins-inspector.schema.json#/properties/grade")
|
|
246
|
+
|
|
247
|
+
### grade Type
|
|
248
|
+
|
|
249
|
+
`string`
|
|
250
|
+
|
|
251
|
+
## fte
|
|
252
|
+
|
|
253
|
+
FTE Decimal value e.g. 1, 0.5 etc
|
|
254
|
+
|
|
255
|
+
`fte`
|
|
256
|
+
|
|
257
|
+
* is required
|
|
258
|
+
|
|
259
|
+
* Type: `number`
|
|
260
|
+
|
|
261
|
+
* cannot be null
|
|
262
|
+
|
|
263
|
+
* defined in: [PINS Inspector](pins-inspector-properties-fte.md "pins-inspector.schema.json#/properties/fte")
|
|
264
|
+
|
|
265
|
+
### fte Type
|
|
266
|
+
|
|
267
|
+
`number`
|
|
268
|
+
|
|
269
|
+
## unit
|
|
270
|
+
|
|
271
|
+
The personnel area of the Inspector
|
|
272
|
+
|
|
273
|
+
`unit`
|
|
274
|
+
|
|
275
|
+
* is required
|
|
276
|
+
|
|
277
|
+
* Type: `string`
|
|
278
|
+
|
|
279
|
+
* cannot be null
|
|
280
|
+
|
|
281
|
+
* defined in: [PINS Inspector](pins-inspector-properties-unit.md "pins-inspector.schema.json#/properties/unit")
|
|
282
|
+
|
|
283
|
+
### unit Type
|
|
284
|
+
|
|
285
|
+
`string`
|
|
286
|
+
|
|
287
|
+
## service
|
|
288
|
+
|
|
289
|
+
The personnel sub area of the Inspector
|
|
290
|
+
|
|
291
|
+
`service`
|
|
292
|
+
|
|
293
|
+
* is required
|
|
294
|
+
|
|
295
|
+
* Type: `string`
|
|
296
|
+
|
|
297
|
+
* cannot be null
|
|
298
|
+
|
|
299
|
+
* defined in: [PINS Inspector](pins-inspector-properties-service.md "pins-inspector.schema.json#/properties/service")
|
|
300
|
+
|
|
301
|
+
### service Type
|
|
302
|
+
|
|
303
|
+
`string`
|
|
304
|
+
|
|
305
|
+
## group
|
|
306
|
+
|
|
307
|
+
Group of the Inspector
|
|
308
|
+
|
|
309
|
+
`group`
|
|
310
|
+
|
|
311
|
+
* is required
|
|
312
|
+
|
|
313
|
+
* Type: `string`
|
|
314
|
+
|
|
315
|
+
* cannot be null
|
|
316
|
+
|
|
317
|
+
* defined in: [PINS Inspector](pins-inspector-properties-group.md "pins-inspector.schema.json#/properties/group")
|
|
318
|
+
|
|
319
|
+
### group Type
|
|
320
|
+
|
|
321
|
+
`string`
|
|
322
|
+
|
|
323
|
+
## inspectorManager
|
|
324
|
+
|
|
325
|
+
Name of the Inspector's manager.
|
|
326
|
+
|
|
327
|
+
`inspectorManager`
|
|
328
|
+
|
|
329
|
+
* is required
|
|
330
|
+
|
|
331
|
+
* Type: `string`
|
|
332
|
+
|
|
333
|
+
* cannot be null
|
|
334
|
+
|
|
335
|
+
* defined in: [PINS Inspector](pins-inspector-properties-inspectormanager.md "pins-inspector.schema.json#/properties/inspectorManager")
|
|
336
|
+
|
|
337
|
+
### inspectorManager Type
|
|
338
|
+
|
|
339
|
+
`string`
|
|
340
|
+
|
|
341
|
+
## validFrom
|
|
342
|
+
|
|
343
|
+
Date the Inspector record was first recorded.
|
|
344
|
+
|
|
345
|
+
`validFrom`
|
|
346
|
+
|
|
347
|
+
* is optional
|
|
348
|
+
|
|
349
|
+
* Type: `string`
|
|
350
|
+
|
|
351
|
+
* can be null
|
|
352
|
+
|
|
353
|
+
* defined in: [PINS Inspector](pins-inspector-properties-validfrom.md "pins-inspector.schema.json#/properties/validFrom")
|
|
354
|
+
|
|
355
|
+
### validFrom Type
|
|
356
|
+
|
|
357
|
+
`string`
|
|
358
|
+
|
|
359
|
+
### validFrom Constraints
|
|
360
|
+
|
|
361
|
+
**date time**: the string must be a date time string, according to [RFC 3339, section 5.6](https://tools.ietf.org/html/rfc3339 "check the specification")
|
|
362
|
+
|
|
363
|
+
### validFrom Examples
|
|
364
|
+
|
|
365
|
+
```json
|
|
366
|
+
"2023-07-27T20:30:00.000Z"
|
|
367
|
+
```
|
|
368
|
+
|
|
369
|
+
## address
|
|
370
|
+
|
|
371
|
+
|
|
372
|
+
|
|
373
|
+
`address`
|
|
374
|
+
|
|
375
|
+
* is required
|
|
376
|
+
|
|
377
|
+
* Type: `object` ([Details](pins-inspector-properties-address.md))
|
|
378
|
+
|
|
379
|
+
* cannot be null
|
|
380
|
+
|
|
381
|
+
* defined in: [PINS Inspector](pins-inspector-properties-address.md "pins-inspector.schema.json#/properties/address")
|
|
382
|
+
|
|
383
|
+
### address Type
|
|
384
|
+
|
|
385
|
+
`object` ([Details](pins-inspector-properties-address.md))
|
|
386
|
+
|
|
387
|
+
## specialisms
|
|
388
|
+
|
|
389
|
+
|
|
390
|
+
|
|
391
|
+
`specialisms`
|
|
392
|
+
|
|
393
|
+
* is required
|
|
394
|
+
|
|
395
|
+
* Type: `object[]` ([Details](pins-inspector-defs-specialism.md))
|
|
396
|
+
|
|
397
|
+
* cannot be null
|
|
398
|
+
|
|
399
|
+
* defined in: [PINS Inspector](pins-inspector-properties-specialisms.md "pins-inspector.schema.json#/properties/specialisms")
|
|
400
|
+
|
|
401
|
+
### specialisms Type
|
|
402
|
+
|
|
403
|
+
`object[]` ([Details](pins-inspector-defs-specialism.md))
|
|
404
|
+
|
|
182
405
|
## Additional Properties
|
|
183
406
|
|
|
184
407
|
Additional properties are allowed and do not have to follow a specific schema
|
|
408
|
+
|
|
409
|
+
# PINS Inspector Definitions
|
|
410
|
+
|
|
411
|
+
## Definitions group specialism
|
|
412
|
+
|
|
413
|
+
Reference this group by using
|
|
414
|
+
|
|
415
|
+
```json
|
|
416
|
+
{"$ref":"pins-inspector.schema.json#/$defs/specialism"}
|
|
417
|
+
```
|
|
418
|
+
|
|
419
|
+
| Property | Type | Required | Nullable | Defined by |
|
|
420
|
+
| :-------------------------- | :------- | :------- | :------------- | :----------------------------------------------------------------------------------------------------------------------------------------------- |
|
|
421
|
+
| [name](#name) | `string` | Required | cannot be null | [PINS Inspector](pins-inspector-defs-specialism-properties-name.md "pins-inspector.schema.json#/$defs/specialism/properties/name") |
|
|
422
|
+
| [proficiency](#proficiency) | `string` | Required | can be null | [PINS Inspector](pins-inspector-defs-specialism-properties-proficiency.md "pins-inspector.schema.json#/$defs/specialism/properties/proficiency") |
|
|
423
|
+
| [validFrom](#validfrom-1) | `string` | Required | can be null | [PINS Inspector](pins-inspector-defs-specialism-properties-validfrom.md "pins-inspector.schema.json#/$defs/specialism/properties/validFrom") |
|
|
424
|
+
| Additional Properties | Any | Optional | can be null | |
|
|
425
|
+
|
|
426
|
+
### name
|
|
427
|
+
|
|
428
|
+
Working above band is stored as a specialism
|
|
429
|
+
|
|
430
|
+
`name`
|
|
431
|
+
|
|
432
|
+
* is required
|
|
433
|
+
|
|
434
|
+
* Type: `string`
|
|
435
|
+
|
|
436
|
+
* cannot be null
|
|
437
|
+
|
|
438
|
+
* defined in: [PINS Inspector](pins-inspector-defs-specialism-properties-name.md "pins-inspector.schema.json#/$defs/specialism/properties/name")
|
|
439
|
+
|
|
440
|
+
#### name Type
|
|
441
|
+
|
|
442
|
+
`string`
|
|
443
|
+
|
|
444
|
+
### proficiency
|
|
445
|
+
|
|
446
|
+
trained or in-training
|
|
447
|
+
|
|
448
|
+
`proficiency`
|
|
449
|
+
|
|
450
|
+
* is required
|
|
451
|
+
|
|
452
|
+
* Type: `string`
|
|
453
|
+
|
|
454
|
+
* can be null
|
|
455
|
+
|
|
456
|
+
* defined in: [PINS Inspector](pins-inspector-defs-specialism-properties-proficiency.md "pins-inspector.schema.json#/$defs/specialism/properties/proficiency")
|
|
457
|
+
|
|
458
|
+
#### proficiency Type
|
|
459
|
+
|
|
460
|
+
`string`
|
|
461
|
+
|
|
462
|
+
### validFrom
|
|
463
|
+
|
|
464
|
+
Date training started or date training was completed.
|
|
465
|
+
|
|
466
|
+
`validFrom`
|
|
467
|
+
|
|
468
|
+
* is required
|
|
469
|
+
|
|
470
|
+
* Type: `string`
|
|
471
|
+
|
|
472
|
+
* can be null
|
|
473
|
+
|
|
474
|
+
* defined in: [PINS Inspector](pins-inspector-defs-specialism-properties-validfrom.md "pins-inspector.schema.json#/$defs/specialism/properties/validFrom")
|
|
475
|
+
|
|
476
|
+
#### validFrom Type
|
|
477
|
+
|
|
478
|
+
`string`
|
|
479
|
+
|
|
480
|
+
#### validFrom Constraints
|
|
481
|
+
|
|
482
|
+
**date time**: the string must be a date time string, according to [RFC 3339, section 5.6](https://tools.ietf.org/html/rfc3339 "check the specification")
|
|
483
|
+
|
|
484
|
+
#### validFrom Examples
|
|
485
|
+
|
|
486
|
+
```json
|
|
487
|
+
"2023-07-27T20:30:00.000Z"
|
|
488
|
+
```
|
|
489
|
+
|
|
490
|
+
### Additional Properties
|
|
491
|
+
|
|
492
|
+
Additional properties are allowed and do not have to follow a specific schema
|
package/package.json
CHANGED
|
@@ -1,21 +1,58 @@
|
|
|
1
1
|
# generated by datamodel-codegen:
|
|
2
2
|
# filename: pins-inspector.schema.json
|
|
3
|
-
# timestamp: 2025-
|
|
3
|
+
# timestamp: 2025-11-04T12:34:00+00:00
|
|
4
4
|
|
|
5
5
|
from __future__ import annotations
|
|
6
6
|
|
|
7
|
-
from pydantic import BaseModel, ConfigDict
|
|
7
|
+
from pydantic import AwareDatetime, BaseModel, ConfigDict, EmailStr, Field
|
|
8
|
+
|
|
9
|
+
|
|
10
|
+
class Address(BaseModel):
|
|
11
|
+
model_config = ConfigDict(
|
|
12
|
+
extra="allow",
|
|
13
|
+
)
|
|
14
|
+
addressLine1: str | None = None
|
|
15
|
+
addressLine2: str | None = None
|
|
16
|
+
townCity: str | None = None
|
|
17
|
+
county: str | None = None
|
|
18
|
+
postcode: str | None = None
|
|
19
|
+
|
|
20
|
+
|
|
21
|
+
class Specialism(BaseModel):
|
|
22
|
+
model_config = ConfigDict(
|
|
23
|
+
extra="allow",
|
|
24
|
+
)
|
|
25
|
+
name: str = Field(..., examples=["S62A Casework Major"])
|
|
26
|
+
"""
|
|
27
|
+
Working above band is stored as a specialism
|
|
28
|
+
"""
|
|
29
|
+
proficiency: str | None = Field(..., examples=["trained"])
|
|
30
|
+
"""
|
|
31
|
+
trained or in-training
|
|
32
|
+
"""
|
|
33
|
+
validFrom: AwareDatetime | None = Field(..., examples=["2023-07-27T20:30:00.000Z"])
|
|
34
|
+
"""
|
|
35
|
+
Date training started or date training was completed.
|
|
36
|
+
"""
|
|
8
37
|
|
|
9
38
|
|
|
10
39
|
class PinsInspector(BaseModel):
|
|
11
40
|
"""
|
|
12
|
-
Inspector
|
|
41
|
+
Inspector Details originating from Horizon, SAP HR and Entra.
|
|
13
42
|
"""
|
|
14
43
|
|
|
15
44
|
model_config = ConfigDict(
|
|
16
45
|
extra="allow",
|
|
17
46
|
)
|
|
18
|
-
|
|
47
|
+
entraId: str | None = Field(..., examples=["00000000-0000-0000-0000-000000000000"])
|
|
48
|
+
"""
|
|
49
|
+
EntraID of the Inspector if available in ODW.
|
|
50
|
+
"""
|
|
51
|
+
sapId: str | None = Field(..., examples=["12345678"])
|
|
52
|
+
"""
|
|
53
|
+
SAPID of the Inspector if available in ODW.
|
|
54
|
+
"""
|
|
55
|
+
horizonId: str | None = None
|
|
19
56
|
"""
|
|
20
57
|
The PINS-generated unique horizon ID
|
|
21
58
|
"""
|
|
@@ -47,7 +84,39 @@ class PinsInspector(BaseModel):
|
|
|
47
84
|
"""
|
|
48
85
|
The qualifications of the inspector
|
|
49
86
|
"""
|
|
50
|
-
email:
|
|
87
|
+
email: EmailStr | None = Field(
|
|
88
|
+
..., examples=["example@planninginspectorate.gov.uk"]
|
|
89
|
+
)
|
|
90
|
+
"""
|
|
91
|
+
PINS Email address for the Inspector
|
|
92
|
+
"""
|
|
93
|
+
grade: str = Field(..., examples=["B1"])
|
|
94
|
+
"""
|
|
95
|
+
Grades as a coded value e.g. B1, B2, B3, FTC-B1, FTC-B2, FTC-B3, PL
|
|
96
|
+
"""
|
|
97
|
+
fte: float = Field(..., examples=[0.75])
|
|
98
|
+
"""
|
|
99
|
+
FTE Decimal value e.g. 1, 0.5 etc
|
|
100
|
+
"""
|
|
101
|
+
unit: str = Field(..., examples=["Operations"])
|
|
102
|
+
"""
|
|
103
|
+
The personnel area of the Inspector
|
|
104
|
+
"""
|
|
105
|
+
service: str = Field(..., examples=["Planning and Environmental Appeals Service"])
|
|
106
|
+
"""
|
|
107
|
+
The personnel sub area of the Inspector
|
|
108
|
+
"""
|
|
109
|
+
group: str = Field(..., examples=["Enforcement Groups"])
|
|
110
|
+
"""
|
|
111
|
+
Group of the Inspector
|
|
112
|
+
"""
|
|
113
|
+
inspectorManager: str = Field(..., examples=["Dan Brown"])
|
|
114
|
+
"""
|
|
115
|
+
Name of the Inspector's manager.
|
|
116
|
+
"""
|
|
117
|
+
validFrom: AwareDatetime | None = Field(None, examples=["2023-07-27T20:30:00.000Z"])
|
|
51
118
|
"""
|
|
52
|
-
|
|
119
|
+
Date the Inspector record was first recorded.
|
|
53
120
|
"""
|
|
121
|
+
address: Address
|
|
122
|
+
specialisms: list[Specialism]
|
|
@@ -2,11 +2,35 @@
|
|
|
2
2
|
"$schema": "http://json-schema.org/draft-07/schema#",
|
|
3
3
|
"$id": "pins-inspector.schema.json",
|
|
4
4
|
"title": "PINS Inspector",
|
|
5
|
-
"description": "Inspector
|
|
5
|
+
"description": "Inspector Details originating from Horizon, SAP HR and Entra.",
|
|
6
6
|
"type": "object",
|
|
7
7
|
"additionalProperties": true,
|
|
8
|
-
"required": [
|
|
8
|
+
"required": [
|
|
9
|
+
"entraId",
|
|
10
|
+
"sapId",
|
|
11
|
+
"firstName",
|
|
12
|
+
"lastName",
|
|
13
|
+
"email",
|
|
14
|
+
"grade",
|
|
15
|
+
"fte",
|
|
16
|
+
"unit",
|
|
17
|
+
"service",
|
|
18
|
+
"group",
|
|
19
|
+
"inspectorManager",
|
|
20
|
+
"address",
|
|
21
|
+
"specialisms"
|
|
22
|
+
],
|
|
9
23
|
"properties": {
|
|
24
|
+
"entraId": {
|
|
25
|
+
"type": ["string", "null"],
|
|
26
|
+
"description": "EntraID of the Inspector if available in ODW.",
|
|
27
|
+
"example": "00000000-0000-0000-0000-000000000000"
|
|
28
|
+
},
|
|
29
|
+
"sapId": {
|
|
30
|
+
"type": ["string", "null"],
|
|
31
|
+
"description": "SAPID of the Inspector if available in ODW.",
|
|
32
|
+
"example": "12345678"
|
|
33
|
+
},
|
|
10
34
|
"horizonId": {
|
|
11
35
|
"type": "string",
|
|
12
36
|
"description": "The PINS-generated unique horizon ID"
|
|
@@ -41,7 +65,88 @@
|
|
|
41
65
|
},
|
|
42
66
|
"email": {
|
|
43
67
|
"type": ["string", "null"],
|
|
44
|
-
"
|
|
68
|
+
"format": "email",
|
|
69
|
+
"description": "PINS Email address for the Inspector",
|
|
70
|
+
"example": "example@planninginspectorate.gov.uk"
|
|
71
|
+
},
|
|
72
|
+
"grade": {
|
|
73
|
+
"type": "string",
|
|
74
|
+
"description": "Grades as a coded value e.g. B1, B2, B3, FTC-B1, FTC-B2, FTC-B3, PL",
|
|
75
|
+
"example": "B1"
|
|
76
|
+
},
|
|
77
|
+
"fte": {
|
|
78
|
+
"type": "number",
|
|
79
|
+
"description": "FTE Decimal value e.g. 1, 0.5 etc",
|
|
80
|
+
"example": 0.75
|
|
81
|
+
},
|
|
82
|
+
"unit": {
|
|
83
|
+
"type": "string",
|
|
84
|
+
"description": "The personnel area of the Inspector",
|
|
85
|
+
"example": "Operations"
|
|
86
|
+
},
|
|
87
|
+
"service": {
|
|
88
|
+
"type": "string",
|
|
89
|
+
"description": "The personnel sub area of the Inspector",
|
|
90
|
+
"example": "Planning and Environmental Appeals Service"
|
|
91
|
+
},
|
|
92
|
+
"group": {
|
|
93
|
+
"type": "string",
|
|
94
|
+
"description": "Group of the Inspector",
|
|
95
|
+
"example": "Enforcement Groups"
|
|
96
|
+
},
|
|
97
|
+
"inspectorManager": {
|
|
98
|
+
"type": "string",
|
|
99
|
+
"description": "Name of the Inspector's manager.",
|
|
100
|
+
"example": "Dan Brown"
|
|
101
|
+
},
|
|
102
|
+
"validFrom": {
|
|
103
|
+
"type": ["string", "null"],
|
|
104
|
+
"description": "Date the Inspector record was first recorded.",
|
|
105
|
+
"format": "date-time",
|
|
106
|
+
"examples": ["2023-07-27T20:30:00.000Z"]
|
|
107
|
+
},
|
|
108
|
+
"address": {
|
|
109
|
+
"type": "object",
|
|
110
|
+
"additionalProperties": true,
|
|
111
|
+
"required": ["addressLine1", "addressLine2", "townCity", "county", "postcode"],
|
|
112
|
+
"properties": {
|
|
113
|
+
"addressLine1": { "type": ["string", "null"] },
|
|
114
|
+
"addressLine2": { "type": ["string", "null"] },
|
|
115
|
+
"townCity": { "type": ["string", "null"] },
|
|
116
|
+
"county": { "type": ["string", "null"] },
|
|
117
|
+
"postcode": { "type": ["string", "null"] }
|
|
118
|
+
}
|
|
119
|
+
},
|
|
120
|
+
"specialisms": {
|
|
121
|
+
"type": "array",
|
|
122
|
+
"items": {
|
|
123
|
+
"$ref": "#/$defs/specialism"
|
|
124
|
+
}
|
|
125
|
+
}
|
|
126
|
+
},
|
|
127
|
+
"$defs": {
|
|
128
|
+
"specialism": {
|
|
129
|
+
"type": "object",
|
|
130
|
+
"additionalProperties": true,
|
|
131
|
+
"required": ["name", "proficiency", "validFrom"],
|
|
132
|
+
"properties": {
|
|
133
|
+
"name": {
|
|
134
|
+
"type": "string",
|
|
135
|
+
"description": "Working above band is stored as a specialism",
|
|
136
|
+
"example": "S62A Casework Major"
|
|
137
|
+
},
|
|
138
|
+
"proficiency": {
|
|
139
|
+
"type": ["string", "null"],
|
|
140
|
+
"description": "trained or in-training",
|
|
141
|
+
"example": "trained"
|
|
142
|
+
},
|
|
143
|
+
"validFrom": {
|
|
144
|
+
"type": ["string", "null"],
|
|
145
|
+
"description": "Date training started or date training was completed.",
|
|
146
|
+
"format": "date-time",
|
|
147
|
+
"examples": ["2023-07-27T20:30:00.000Z"]
|
|
148
|
+
}
|
|
149
|
+
}
|
|
45
150
|
}
|
|
46
151
|
}
|
|
47
152
|
}
|
package/src/schemas.d.ts
CHANGED
|
@@ -2754,13 +2754,21 @@ export interface NsipSubscription {
|
|
|
2754
2754
|
}
|
|
2755
2755
|
|
|
2756
2756
|
/**
|
|
2757
|
-
* Inspector
|
|
2757
|
+
* Inspector Details originating from Horizon, SAP HR and Entra.
|
|
2758
2758
|
*/
|
|
2759
2759
|
export interface PINSInspector {
|
|
2760
|
+
/**
|
|
2761
|
+
* EntraID of the Inspector if available in ODW.
|
|
2762
|
+
*/
|
|
2763
|
+
entraId: string | null;
|
|
2764
|
+
/**
|
|
2765
|
+
* SAPID of the Inspector if available in ODW.
|
|
2766
|
+
*/
|
|
2767
|
+
sapId: string | null;
|
|
2760
2768
|
/**
|
|
2761
2769
|
* The PINS-generated unique horizon ID
|
|
2762
2770
|
*/
|
|
2763
|
-
horizonId
|
|
2771
|
+
horizonId?: string;
|
|
2764
2772
|
/**
|
|
2765
2773
|
* The first name of the inspector
|
|
2766
2774
|
*/
|
|
@@ -2790,9 +2798,61 @@ export interface PINSInspector {
|
|
|
2790
2798
|
*/
|
|
2791
2799
|
qualifications?: string | null;
|
|
2792
2800
|
/**
|
|
2793
|
-
*
|
|
2801
|
+
* PINS Email address for the Inspector
|
|
2794
2802
|
*/
|
|
2795
2803
|
email: string | null;
|
|
2804
|
+
/**
|
|
2805
|
+
* Grades as a coded value e.g. B1, B2, B3, FTC-B1, FTC-B2, FTC-B3, PL
|
|
2806
|
+
*/
|
|
2807
|
+
grade: string;
|
|
2808
|
+
/**
|
|
2809
|
+
* FTE Decimal value e.g. 1, 0.5 etc
|
|
2810
|
+
*/
|
|
2811
|
+
fte: number;
|
|
2812
|
+
/**
|
|
2813
|
+
* The personnel area of the Inspector
|
|
2814
|
+
*/
|
|
2815
|
+
unit: string;
|
|
2816
|
+
/**
|
|
2817
|
+
* The personnel sub area of the Inspector
|
|
2818
|
+
*/
|
|
2819
|
+
service: string;
|
|
2820
|
+
/**
|
|
2821
|
+
* Group of the Inspector
|
|
2822
|
+
*/
|
|
2823
|
+
group: string;
|
|
2824
|
+
/**
|
|
2825
|
+
* Name of the Inspector's manager.
|
|
2826
|
+
*/
|
|
2827
|
+
inspectorManager: string;
|
|
2828
|
+
/**
|
|
2829
|
+
* Date the Inspector record was first recorded.
|
|
2830
|
+
*/
|
|
2831
|
+
validFrom?: string | null;
|
|
2832
|
+
address: {
|
|
2833
|
+
addressLine1: string | null;
|
|
2834
|
+
addressLine2: string | null;
|
|
2835
|
+
townCity: string | null;
|
|
2836
|
+
county: string | null;
|
|
2837
|
+
postcode: string | null;
|
|
2838
|
+
[k: string]: unknown;
|
|
2839
|
+
};
|
|
2840
|
+
specialisms: Specialism[];
|
|
2841
|
+
[k: string]: unknown;
|
|
2842
|
+
}
|
|
2843
|
+
export interface Specialism {
|
|
2844
|
+
/**
|
|
2845
|
+
* Working above band is stored as a specialism
|
|
2846
|
+
*/
|
|
2847
|
+
name: string;
|
|
2848
|
+
/**
|
|
2849
|
+
* trained or in-training
|
|
2850
|
+
*/
|
|
2851
|
+
proficiency: string | null;
|
|
2852
|
+
/**
|
|
2853
|
+
* Date training started or date training was completed.
|
|
2854
|
+
*/
|
|
2855
|
+
validFrom: string | null;
|
|
2796
2856
|
[k: string]: unknown;
|
|
2797
2857
|
}
|
|
2798
2858
|
|