@vepler/sdk 2.154.1 → 2.155.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.
Files changed (105) hide show
  1. package/dist/commonjs/lib/config.d.ts +3 -3
  2. package/dist/commonjs/lib/config.js +3 -3
  3. package/dist/commonjs/sdk/models/operations/getschoolbyid.d.ts +142 -1
  4. package/dist/commonjs/sdk/models/operations/getschoolbyid.d.ts.map +1 -1
  5. package/dist/commonjs/sdk/models/operations/getschoolbyid.js +66 -1
  6. package/dist/commonjs/sdk/models/operations/getschoolbyid.js.map +1 -1
  7. package/dist/commonjs/sdk/models/operations/getschoolbysource.d.ts +142 -1
  8. package/dist/commonjs/sdk/models/operations/getschoolbysource.d.ts.map +1 -1
  9. package/dist/commonjs/sdk/models/operations/getschoolbysource.js +66 -1
  10. package/dist/commonjs/sdk/models/operations/getschoolbysource.js.map +1 -1
  11. package/dist/commonjs/sdk/models/operations/queryschools.d.ts +143 -2
  12. package/dist/commonjs/sdk/models/operations/queryschools.d.ts.map +1 -1
  13. package/dist/commonjs/sdk/models/operations/queryschools.js +63 -1
  14. package/dist/commonjs/sdk/models/operations/queryschools.js.map +1 -1
  15. package/dist/commonjs/sdk/models/operations/queryschoolsbysource.d.ts +143 -2
  16. package/dist/commonjs/sdk/models/operations/queryschoolsbysource.d.ts.map +1 -1
  17. package/dist/commonjs/sdk/models/operations/queryschoolsbysource.js +66 -1
  18. package/dist/commonjs/sdk/models/operations/queryschoolsbysource.js.map +1 -1
  19. package/dist/commonjs/sdk/models/shared/councilbranding.d.ts +5 -14
  20. package/dist/commonjs/sdk/models/shared/councilbranding.d.ts.map +1 -1
  21. package/dist/commonjs/sdk/models/shared/councilbranding.js +3 -14
  22. package/dist/commonjs/sdk/models/shared/councilbranding.js.map +1 -1
  23. package/dist/commonjs/sdk/models/shared/index.d.ts +5 -0
  24. package/dist/commonjs/sdk/models/shared/index.d.ts.map +1 -1
  25. package/dist/commonjs/sdk/models/shared/index.js +5 -0
  26. package/dist/commonjs/sdk/models/shared/index.js.map +1 -1
  27. package/dist/commonjs/sdk/models/shared/schoolaccreditation.d.ts +21 -0
  28. package/dist/commonjs/sdk/models/shared/schoolaccreditation.d.ts.map +1 -0
  29. package/dist/commonjs/sdk/models/shared/schoolaccreditation.js +52 -0
  30. package/dist/commonjs/sdk/models/shared/schoolaccreditation.js.map +1 -0
  31. package/dist/commonjs/sdk/models/shared/schoolimage.d.ts +29 -0
  32. package/dist/commonjs/sdk/models/shared/schoolimage.d.ts.map +1 -0
  33. package/dist/commonjs/sdk/models/shared/schoolimage.js +54 -0
  34. package/dist/commonjs/sdk/models/shared/schoolimage.js.map +1 -0
  35. package/dist/commonjs/sdk/models/shared/schooltermdate.d.ts +21 -0
  36. package/dist/commonjs/sdk/models/shared/schooltermdate.d.ts.map +1 -0
  37. package/dist/commonjs/sdk/models/shared/schooltermdate.js +52 -0
  38. package/dist/commonjs/sdk/models/shared/schooltermdate.js.map +1 -0
  39. package/dist/commonjs/sdk/models/shared/schoolvideo.d.ts +52 -0
  40. package/dist/commonjs/sdk/models/shared/schoolvideo.d.ts.map +1 -0
  41. package/dist/commonjs/sdk/models/shared/schoolvideo.js +67 -0
  42. package/dist/commonjs/sdk/models/shared/schoolvideo.js.map +1 -0
  43. package/dist/commonjs/sdk/models/shared/socialmedialinks.d.ts +33 -0
  44. package/dist/commonjs/sdk/models/shared/socialmedialinks.d.ts.map +1 -0
  45. package/dist/commonjs/sdk/models/shared/socialmedialinks.js +55 -0
  46. package/dist/commonjs/sdk/models/shared/socialmedialinks.js.map +1 -0
  47. package/dist/esm/lib/config.d.ts +3 -3
  48. package/dist/esm/lib/config.js +3 -3
  49. package/dist/esm/sdk/models/operations/getschoolbyid.d.ts +142 -1
  50. package/dist/esm/sdk/models/operations/getschoolbyid.d.ts.map +1 -1
  51. package/dist/esm/sdk/models/operations/getschoolbyid.js +60 -0
  52. package/dist/esm/sdk/models/operations/getschoolbyid.js.map +1 -1
  53. package/dist/esm/sdk/models/operations/getschoolbysource.d.ts +142 -1
  54. package/dist/esm/sdk/models/operations/getschoolbysource.d.ts.map +1 -1
  55. package/dist/esm/sdk/models/operations/getschoolbysource.js +60 -0
  56. package/dist/esm/sdk/models/operations/getschoolbysource.js.map +1 -1
  57. package/dist/esm/sdk/models/operations/queryschools.d.ts +143 -2
  58. package/dist/esm/sdk/models/operations/queryschools.d.ts.map +1 -1
  59. package/dist/esm/sdk/models/operations/queryschools.js +57 -0
  60. package/dist/esm/sdk/models/operations/queryschools.js.map +1 -1
  61. package/dist/esm/sdk/models/operations/queryschoolsbysource.d.ts +143 -2
  62. package/dist/esm/sdk/models/operations/queryschoolsbysource.d.ts.map +1 -1
  63. package/dist/esm/sdk/models/operations/queryschoolsbysource.js +60 -0
  64. package/dist/esm/sdk/models/operations/queryschoolsbysource.js.map +1 -1
  65. package/dist/esm/sdk/models/shared/councilbranding.d.ts +5 -14
  66. package/dist/esm/sdk/models/shared/councilbranding.d.ts.map +1 -1
  67. package/dist/esm/sdk/models/shared/councilbranding.js +2 -12
  68. package/dist/esm/sdk/models/shared/councilbranding.js.map +1 -1
  69. package/dist/esm/sdk/models/shared/index.d.ts +5 -0
  70. package/dist/esm/sdk/models/shared/index.d.ts.map +1 -1
  71. package/dist/esm/sdk/models/shared/index.js +5 -0
  72. package/dist/esm/sdk/models/shared/index.js.map +1 -1
  73. package/dist/esm/sdk/models/shared/schoolaccreditation.d.ts +21 -0
  74. package/dist/esm/sdk/models/shared/schoolaccreditation.d.ts.map +1 -0
  75. package/dist/esm/sdk/models/shared/schoolaccreditation.js +15 -0
  76. package/dist/esm/sdk/models/shared/schoolaccreditation.js.map +1 -0
  77. package/dist/esm/sdk/models/shared/schoolimage.d.ts +29 -0
  78. package/dist/esm/sdk/models/shared/schoolimage.d.ts.map +1 -0
  79. package/dist/esm/sdk/models/shared/schoolimage.js +17 -0
  80. package/dist/esm/sdk/models/shared/schoolimage.js.map +1 -0
  81. package/dist/esm/sdk/models/shared/schooltermdate.d.ts +21 -0
  82. package/dist/esm/sdk/models/shared/schooltermdate.d.ts.map +1 -0
  83. package/dist/esm/sdk/models/shared/schooltermdate.js +15 -0
  84. package/dist/esm/sdk/models/shared/schooltermdate.js.map +1 -0
  85. package/dist/esm/sdk/models/shared/schoolvideo.d.ts +52 -0
  86. package/dist/esm/sdk/models/shared/schoolvideo.d.ts.map +1 -0
  87. package/dist/esm/sdk/models/shared/schoolvideo.js +30 -0
  88. package/dist/esm/sdk/models/shared/schoolvideo.js.map +1 -0
  89. package/dist/esm/sdk/models/shared/socialmedialinks.d.ts +33 -0
  90. package/dist/esm/sdk/models/shared/socialmedialinks.d.ts.map +1 -0
  91. package/dist/esm/sdk/models/shared/socialmedialinks.js +18 -0
  92. package/dist/esm/sdk/models/shared/socialmedialinks.js.map +1 -0
  93. package/package.json +1 -1
  94. package/src/lib/config.ts +3 -3
  95. package/src/sdk/models/operations/getschoolbyid.ts +244 -1
  96. package/src/sdk/models/operations/getschoolbysource.ts +254 -1
  97. package/src/sdk/models/operations/queryschools.ts +252 -2
  98. package/src/sdk/models/operations/queryschoolsbysource.ts +256 -2
  99. package/src/sdk/models/shared/councilbranding.ts +9 -36
  100. package/src/sdk/models/shared/index.ts +5 -0
  101. package/src/sdk/models/shared/schoolaccreditation.ts +44 -0
  102. package/src/sdk/models/shared/schoolimage.ts +54 -0
  103. package/src/sdk/models/shared/schooltermdate.ts +44 -0
  104. package/src/sdk/models/shared/schoolvideo.ts +86 -0
  105. package/src/sdk/models/shared/socialmedialinks.ts +59 -0
@@ -12,7 +12,7 @@ import * as shared from "../shared/index.js";
12
12
 
13
13
  export type GetSchoolByIdRequest = {
14
14
  /**
15
- * Comma-separated fields/blocks to return. Default (omitted): the full flat record, no blocks. Aggregate blocks (`inspections`, `identifiers`, `trust`) are additive — requesting only block names keeps the full flat record and adds the blocks; list scalar field names to trim. Performance/census/finance live on `/v1/schools/metrics`.
15
+ * Comma-separated fields/blocks to return. Default (omitted): the full flat record, no blocks. Aggregate blocks (`inspections`, `identifiers`, `trust`, `images`, `branding`, `accreditations`, `videos`, `about`) are additive — requesting only block names keeps the full flat record and adds the blocks; list scalar field names to trim. Performance/census/finance live on `/v1/schools/metrics`.
16
16
  */
17
17
  attributes?: string | undefined;
18
18
  /**
@@ -21,6 +21,78 @@ export type GetSchoolByIdRequest = {
21
21
  id: string;
22
22
  };
23
23
 
24
+ /**
25
+ * Institutional narrative (ethos, welcome, term dates …). Opt-in via `attributes=about`.
26
+ */
27
+ export type About = {
28
+ /**
29
+ * General 'about the school' narrative.
30
+ */
31
+ aboutDescription?: string | null | undefined;
32
+ /**
33
+ * Whether after-school / wraparound care is offered.
34
+ */
35
+ afterSchoolCare?: boolean | null | undefined;
36
+ /**
37
+ * Whether a breakfast club is offered.
38
+ */
39
+ breakfastClub?: boolean | null | undefined;
40
+ /**
41
+ * Extra-curricular clubs description.
42
+ */
43
+ clubsDescription?: string | null | undefined;
44
+ /**
45
+ * Curriculum narrative.
46
+ */
47
+ curriculumDescription?: string | null | undefined;
48
+ /**
49
+ * The school's stated ethos / values.
50
+ */
51
+ ethos?: string | null | undefined;
52
+ /**
53
+ * Facilities description.
54
+ */
55
+ facilitiesDescription?: string | null | undefined;
56
+ /**
57
+ * Headteacher's welcome message.
58
+ */
59
+ headteacherWelcome?: string | null | undefined;
60
+ /**
61
+ * School history narrative.
62
+ */
63
+ historyDescription?: string | null | undefined;
64
+ /**
65
+ * Link to the school prospectus.
66
+ */
67
+ prospectusUrl?: string | null | undefined;
68
+ /**
69
+ * Results / outcomes summary as published.
70
+ */
71
+ resultsSummary?: string | null | undefined;
72
+ /**
73
+ * SEND / inclusion statement.
74
+ */
75
+ sendStatement?: string | null | undefined;
76
+ /**
77
+ * Published term dates.
78
+ */
79
+ termDates?: Array<shared.SchoolTermDate> | undefined;
80
+ /**
81
+ * Named uniform supplier, where stated.
82
+ */
83
+ uniformSupplier?: string | null | undefined;
84
+ };
85
+
86
+ /**
87
+ * Award / kitemark / partner badges. Opt-in via `attributes=accreditations`.
88
+ */
89
+ export type Accreditations = {
90
+ /**
91
+ * Cleared accreditation / award badges.
92
+ */
93
+ accreditations?: Array<shared.SchoolAccreditation> | undefined;
94
+ };
95
+
24
96
  /**
25
97
  * Postal address of the school
26
98
  */
@@ -47,6 +119,25 @@ export type GetSchoolByIdAddress = {
47
119
  town?: string | undefined;
48
120
  };
49
121
 
122
+ /**
123
+ * School branding — logo/crest, colours, social handles. Opt-in via `attributes=branding`.
124
+ */
125
+ export type Branding = {
126
+ /**
127
+ * Public URL to the entity's logo / crest.
128
+ */
129
+ logoUrl?: string | undefined;
130
+ /**
131
+ * Primary brand colour (hex).
132
+ */
133
+ primaryColour?: string | undefined;
134
+ /**
135
+ * Secondary brand colour (hex).
136
+ */
137
+ secondaryColour?: string | undefined;
138
+ socialMedia?: shared.SocialMediaLinks | undefined;
139
+ };
140
+
50
141
  /**
51
142
  * Latest published inspection rating. Native rating from the inspector body that issued it (England: Ofsted; Wales: Estyn; Scotland: Education Scotland; NI: ETI; IE: DES Inspectorate). Rating scales differ by inspector body — do not assume cross-body equivalence.
52
143
  */
@@ -98,6 +189,16 @@ export type Identifiers = {
98
189
  ukprn?: string | null | undefined;
99
190
  };
100
191
 
192
+ /**
193
+ * Facility / building photography, tagged. Opt-in via `attributes=images`.
194
+ */
195
+ export type GetSchoolByIdImages = {
196
+ /**
197
+ * Cleared facility / building photography, newest first.
198
+ */
199
+ images?: Array<shared.SchoolImage> | undefined;
200
+ };
201
+
101
202
  /**
102
203
  * Inspection history. Present only when requested via `attributes=inspections`.
103
204
  */
@@ -194,16 +295,38 @@ export const GetSchoolByIdType = {
194
295
  */
195
296
  export type GetSchoolByIdType = OpenEnum<typeof GetSchoolByIdType>;
196
297
 
298
+ /**
299
+ * Video embeds (metadata only, by reference). Opt-in via `attributes=videos`.
300
+ */
301
+ export type Videos = {
302
+ /**
303
+ * Cleared video embeds.
304
+ */
305
+ videos?: Array<shared.SchoolVideo> | undefined;
306
+ };
307
+
197
308
  /**
198
309
  * Single school response
199
310
  */
200
311
  export type GetSchoolByIdResponseBody = {
312
+ /**
313
+ * Institutional narrative (ethos, welcome, term dates …). Opt-in via `attributes=about`.
314
+ */
315
+ about?: About | null | undefined;
316
+ /**
317
+ * Award / kitemark / partner badges. Opt-in via `attributes=accreditations`.
318
+ */
319
+ accreditations?: Accreditations | null | undefined;
201
320
  /**
202
321
  * Postal address of the school
203
322
  */
204
323
  address?: GetSchoolByIdAddress | undefined;
205
324
  admissionsPolicy?: string | undefined;
206
325
  ageRange?: string | undefined;
326
+ /**
327
+ * School branding — logo/crest, colours, social handles. Opt-in via `attributes=branding`.
328
+ */
329
+ branding?: Branding | null | undefined;
207
330
  capacity?: number | undefined;
208
331
  /**
209
332
  * Catchment match block. Present only when the request included `catchmentReference`. `matchBasis` is empty when the school is only in range (Tier 5 distance fallback); `verdict` is always populated.
@@ -236,6 +359,10 @@ export type GetSchoolByIdResponseBody = {
236
359
  * Cross-register identifiers. Present only when requested via `attributes=identifiers`.
237
360
  */
238
361
  identifiers?: Identifiers | null | undefined;
362
+ /**
363
+ * Facility / building photography, tagged. Opt-in via `attributes=images`.
364
+ */
365
+ images?: GetSchoolByIdImages | null | undefined;
239
366
  /**
240
367
  * Inspection history. Present only when requested via `attributes=inspections`.
241
368
  */
@@ -310,6 +437,10 @@ export type GetSchoolByIdResponseBody = {
310
437
  * ISO 8601 datetime of the most recent update to this record
311
438
  */
312
439
  updatedAt: string;
440
+ /**
441
+ * Video embeds (metadata only, by reference). Opt-in via `attributes=videos`.
442
+ */
443
+ videos?: Videos | null | undefined;
313
444
  website?: string | undefined;
314
445
  };
315
446
 
@@ -337,6 +468,54 @@ export function getSchoolByIdRequestToJSON(
337
468
  );
338
469
  }
339
470
 
471
+ /** @internal */
472
+ export const About$inboundSchema: z.ZodType<About, z.ZodTypeDef, unknown> = z
473
+ .object({
474
+ aboutDescription: z.nullable(z.string()).optional(),
475
+ afterSchoolCare: z.nullable(z.boolean()).optional(),
476
+ breakfastClub: z.nullable(z.boolean()).optional(),
477
+ clubsDescription: z.nullable(z.string()).optional(),
478
+ curriculumDescription: z.nullable(z.string()).optional(),
479
+ ethos: z.nullable(z.string()).optional(),
480
+ facilitiesDescription: z.nullable(z.string()).optional(),
481
+ headteacherWelcome: z.nullable(z.string()).optional(),
482
+ historyDescription: z.nullable(z.string()).optional(),
483
+ prospectusUrl: z.nullable(z.string()).optional(),
484
+ resultsSummary: z.nullable(z.string()).optional(),
485
+ sendStatement: z.nullable(z.string()).optional(),
486
+ termDates: z.array(shared.SchoolTermDate$inboundSchema).optional(),
487
+ uniformSupplier: z.nullable(z.string()).optional(),
488
+ });
489
+
490
+ export function aboutFromJSON(
491
+ jsonString: string,
492
+ ): SafeParseResult<About, SDKValidationError> {
493
+ return safeParse(
494
+ jsonString,
495
+ (x) => About$inboundSchema.parse(JSON.parse(x)),
496
+ `Failed to parse 'About' from JSON`,
497
+ );
498
+ }
499
+
500
+ /** @internal */
501
+ export const Accreditations$inboundSchema: z.ZodType<
502
+ Accreditations,
503
+ z.ZodTypeDef,
504
+ unknown
505
+ > = z.object({
506
+ accreditations: z.array(shared.SchoolAccreditation$inboundSchema).optional(),
507
+ });
508
+
509
+ export function accreditationsFromJSON(
510
+ jsonString: string,
511
+ ): SafeParseResult<Accreditations, SDKValidationError> {
512
+ return safeParse(
513
+ jsonString,
514
+ (x) => Accreditations$inboundSchema.parse(JSON.parse(x)),
515
+ `Failed to parse 'Accreditations' from JSON`,
516
+ );
517
+ }
518
+
340
519
  /** @internal */
341
520
  export const GetSchoolByIdAddress$inboundSchema: z.ZodType<
342
521
  GetSchoolByIdAddress,
@@ -360,6 +539,28 @@ export function getSchoolByIdAddressFromJSON(
360
539
  );
361
540
  }
362
541
 
542
+ /** @internal */
543
+ export const Branding$inboundSchema: z.ZodType<
544
+ Branding,
545
+ z.ZodTypeDef,
546
+ unknown
547
+ > = z.object({
548
+ logoUrl: z.string().optional(),
549
+ primaryColour: z.string().optional(),
550
+ secondaryColour: z.string().optional(),
551
+ socialMedia: shared.SocialMediaLinks$inboundSchema.optional(),
552
+ });
553
+
554
+ export function brandingFromJSON(
555
+ jsonString: string,
556
+ ): SafeParseResult<Branding, SDKValidationError> {
557
+ return safeParse(
558
+ jsonString,
559
+ (x) => Branding$inboundSchema.parse(JSON.parse(x)),
560
+ `Failed to parse 'Branding' from JSON`,
561
+ );
562
+ }
563
+
363
564
  /** @internal */
364
565
  export const CurrentRating$inboundSchema: z.ZodType<
365
566
  CurrentRating,
@@ -389,6 +590,25 @@ export function identifiersFromJSON(
389
590
  );
390
591
  }
391
592
 
593
+ /** @internal */
594
+ export const GetSchoolByIdImages$inboundSchema: z.ZodType<
595
+ GetSchoolByIdImages,
596
+ z.ZodTypeDef,
597
+ unknown
598
+ > = z.object({
599
+ images: z.array(shared.SchoolImage$inboundSchema).optional(),
600
+ });
601
+
602
+ export function getSchoolByIdImagesFromJSON(
603
+ jsonString: string,
604
+ ): SafeParseResult<GetSchoolByIdImages, SDKValidationError> {
605
+ return safeParse(
606
+ jsonString,
607
+ (x) => GetSchoolByIdImages$inboundSchema.parse(JSON.parse(x)),
608
+ `Failed to parse 'GetSchoolByIdImages' from JSON`,
609
+ );
610
+ }
611
+
392
612
  /** @internal */
393
613
  export const Inspections$inboundSchema: z.ZodType<
394
614
  Inspections,
@@ -472,15 +692,35 @@ export const GetSchoolByIdType$inboundSchema: z.ZodType<
472
692
  unknown
473
693
  > = openEnums.inboundSchema(GetSchoolByIdType);
474
694
 
695
+ /** @internal */
696
+ export const Videos$inboundSchema: z.ZodType<Videos, z.ZodTypeDef, unknown> = z
697
+ .object({
698
+ videos: z.array(shared.SchoolVideo$inboundSchema).optional(),
699
+ });
700
+
701
+ export function videosFromJSON(
702
+ jsonString: string,
703
+ ): SafeParseResult<Videos, SDKValidationError> {
704
+ return safeParse(
705
+ jsonString,
706
+ (x) => Videos$inboundSchema.parse(JSON.parse(x)),
707
+ `Failed to parse 'Videos' from JSON`,
708
+ );
709
+ }
710
+
475
711
  /** @internal */
476
712
  export const GetSchoolByIdResponseBody$inboundSchema: z.ZodType<
477
713
  GetSchoolByIdResponseBody,
478
714
  z.ZodTypeDef,
479
715
  unknown
480
716
  > = z.object({
717
+ about: z.nullable(z.lazy(() => About$inboundSchema)).optional(),
718
+ accreditations: z.nullable(z.lazy(() => Accreditations$inboundSchema))
719
+ .optional(),
481
720
  address: z.lazy(() => GetSchoolByIdAddress$inboundSchema).optional(),
482
721
  admissionsPolicy: z.string().optional(),
483
722
  ageRange: z.string().optional(),
723
+ branding: z.nullable(z.lazy(() => Branding$inboundSchema)).optional(),
484
724
  capacity: z.number().int().optional(),
485
725
  catchment: shared.SchoolCatchmentBlock$inboundSchema.optional(),
486
726
  country: z.string().default("GB"),
@@ -492,6 +732,8 @@ export const GetSchoolByIdResponseBody$inboundSchema: z.ZodType<
492
732
  headteacher: z.string().optional(),
493
733
  id: z.number().int(),
494
734
  identifiers: z.nullable(z.lazy(() => Identifiers$inboundSchema)).optional(),
735
+ images: z.nullable(z.lazy(() => GetSchoolByIdImages$inboundSchema))
736
+ .optional(),
495
737
  inspections: z.nullable(z.lazy(() => Inspections$inboundSchema)).optional(),
496
738
  key: z.string(),
497
739
  laCode: z.string().optional(),
@@ -518,6 +760,7 @@ export const GetSchoolByIdResponseBody$inboundSchema: z.ZodType<
518
760
  trustName: z.string().optional(),
519
761
  type: GetSchoolByIdType$inboundSchema,
520
762
  updatedAt: z.string(),
763
+ videos: z.nullable(z.lazy(() => Videos$inboundSchema)).optional(),
521
764
  website: z.string().optional(),
522
765
  });
523
766
 
@@ -27,7 +27,7 @@ export type PathParamProvider = ClosedEnum<typeof PathParamProvider>;
27
27
 
28
28
  export type GetSchoolBySourceRequest = {
29
29
  /**
30
- * Comma-separated fields/blocks to return. Default (omitted): the full flat record, no blocks. Aggregate blocks (`inspections`, `identifiers`, `trust`) are additive — requesting only block names keeps the full flat record and adds the blocks; list scalar field names to trim. Performance/census/finance live on `/v1/schools/metrics`.
30
+ * Comma-separated fields/blocks to return. Default (omitted): the full flat record, no blocks. Aggregate blocks (`inspections`, `identifiers`, `trust`, `images`, `branding`, `accreditations`, `videos`, `about`) are additive — requesting only block names keeps the full flat record and adds the blocks; list scalar field names to trim. Performance/census/finance live on `/v1/schools/metrics`.
31
31
  */
32
32
  attributes?: string | undefined;
33
33
  /**
@@ -40,6 +40,78 @@ export type GetSchoolBySourceRequest = {
40
40
  provider: PathParamProvider;
41
41
  };
42
42
 
43
+ /**
44
+ * Institutional narrative (ethos, welcome, term dates …). Opt-in via `attributes=about`.
45
+ */
46
+ export type GetSchoolBySourceAbout = {
47
+ /**
48
+ * General 'about the school' narrative.
49
+ */
50
+ aboutDescription?: string | null | undefined;
51
+ /**
52
+ * Whether after-school / wraparound care is offered.
53
+ */
54
+ afterSchoolCare?: boolean | null | undefined;
55
+ /**
56
+ * Whether a breakfast club is offered.
57
+ */
58
+ breakfastClub?: boolean | null | undefined;
59
+ /**
60
+ * Extra-curricular clubs description.
61
+ */
62
+ clubsDescription?: string | null | undefined;
63
+ /**
64
+ * Curriculum narrative.
65
+ */
66
+ curriculumDescription?: string | null | undefined;
67
+ /**
68
+ * The school's stated ethos / values.
69
+ */
70
+ ethos?: string | null | undefined;
71
+ /**
72
+ * Facilities description.
73
+ */
74
+ facilitiesDescription?: string | null | undefined;
75
+ /**
76
+ * Headteacher's welcome message.
77
+ */
78
+ headteacherWelcome?: string | null | undefined;
79
+ /**
80
+ * School history narrative.
81
+ */
82
+ historyDescription?: string | null | undefined;
83
+ /**
84
+ * Link to the school prospectus.
85
+ */
86
+ prospectusUrl?: string | null | undefined;
87
+ /**
88
+ * Results / outcomes summary as published.
89
+ */
90
+ resultsSummary?: string | null | undefined;
91
+ /**
92
+ * SEND / inclusion statement.
93
+ */
94
+ sendStatement?: string | null | undefined;
95
+ /**
96
+ * Published term dates.
97
+ */
98
+ termDates?: Array<shared.SchoolTermDate> | undefined;
99
+ /**
100
+ * Named uniform supplier, where stated.
101
+ */
102
+ uniformSupplier?: string | null | undefined;
103
+ };
104
+
105
+ /**
106
+ * Award / kitemark / partner badges. Opt-in via `attributes=accreditations`.
107
+ */
108
+ export type GetSchoolBySourceAccreditations = {
109
+ /**
110
+ * Cleared accreditation / award badges.
111
+ */
112
+ accreditations?: Array<shared.SchoolAccreditation> | undefined;
113
+ };
114
+
43
115
  /**
44
116
  * Postal address of the school
45
117
  */
@@ -66,6 +138,25 @@ export type GetSchoolBySourceAddress = {
66
138
  town?: string | undefined;
67
139
  };
68
140
 
141
+ /**
142
+ * School branding — logo/crest, colours, social handles. Opt-in via `attributes=branding`.
143
+ */
144
+ export type GetSchoolBySourceBranding = {
145
+ /**
146
+ * Public URL to the entity's logo / crest.
147
+ */
148
+ logoUrl?: string | undefined;
149
+ /**
150
+ * Primary brand colour (hex).
151
+ */
152
+ primaryColour?: string | undefined;
153
+ /**
154
+ * Secondary brand colour (hex).
155
+ */
156
+ secondaryColour?: string | undefined;
157
+ socialMedia?: shared.SocialMediaLinks | undefined;
158
+ };
159
+
69
160
  /**
70
161
  * Latest published inspection rating. Native rating from the inspector body that issued it (England: Ofsted; Wales: Estyn; Scotland: Education Scotland; NI: ETI; IE: DES Inspectorate). Rating scales differ by inspector body — do not assume cross-body equivalence.
71
162
  */
@@ -119,6 +210,16 @@ export type GetSchoolBySourceIdentifiers = {
119
210
  ukprn?: string | null | undefined;
120
211
  };
121
212
 
213
+ /**
214
+ * Facility / building photography, tagged. Opt-in via `attributes=images`.
215
+ */
216
+ export type GetSchoolBySourceImages = {
217
+ /**
218
+ * Cleared facility / building photography, newest first.
219
+ */
220
+ images?: Array<shared.SchoolImage> | undefined;
221
+ };
222
+
122
223
  /**
123
224
  * Inspection history. Present only when requested via `attributes=inspections`.
124
225
  */
@@ -219,16 +320,38 @@ export const GetSchoolBySourceType = {
219
320
  */
220
321
  export type GetSchoolBySourceType = OpenEnum<typeof GetSchoolBySourceType>;
221
322
 
323
+ /**
324
+ * Video embeds (metadata only, by reference). Opt-in via `attributes=videos`.
325
+ */
326
+ export type GetSchoolBySourceVideos = {
327
+ /**
328
+ * Cleared video embeds.
329
+ */
330
+ videos?: Array<shared.SchoolVideo> | undefined;
331
+ };
332
+
222
333
  /**
223
334
  * Single school response
224
335
  */
225
336
  export type GetSchoolBySourceResponseBody = {
337
+ /**
338
+ * Institutional narrative (ethos, welcome, term dates …). Opt-in via `attributes=about`.
339
+ */
340
+ about?: GetSchoolBySourceAbout | null | undefined;
341
+ /**
342
+ * Award / kitemark / partner badges. Opt-in via `attributes=accreditations`.
343
+ */
344
+ accreditations?: GetSchoolBySourceAccreditations | null | undefined;
226
345
  /**
227
346
  * Postal address of the school
228
347
  */
229
348
  address?: GetSchoolBySourceAddress | undefined;
230
349
  admissionsPolicy?: string | undefined;
231
350
  ageRange?: string | undefined;
351
+ /**
352
+ * School branding — logo/crest, colours, social handles. Opt-in via `attributes=branding`.
353
+ */
354
+ branding?: GetSchoolBySourceBranding | null | undefined;
232
355
  capacity?: number | undefined;
233
356
  /**
234
357
  * Catchment match block. Present only when the request included `catchmentReference`. `matchBasis` is empty when the school is only in range (Tier 5 distance fallback); `verdict` is always populated.
@@ -261,6 +384,10 @@ export type GetSchoolBySourceResponseBody = {
261
384
  * Cross-register identifiers. Present only when requested via `attributes=identifiers`.
262
385
  */
263
386
  identifiers?: GetSchoolBySourceIdentifiers | null | undefined;
387
+ /**
388
+ * Facility / building photography, tagged. Opt-in via `attributes=images`.
389
+ */
390
+ images?: GetSchoolBySourceImages | null | undefined;
264
391
  /**
265
392
  * Inspection history. Present only when requested via `attributes=inspections`.
266
393
  */
@@ -335,6 +462,10 @@ export type GetSchoolBySourceResponseBody = {
335
462
  * ISO 8601 datetime of the most recent update to this record
336
463
  */
337
464
  updatedAt: string;
465
+ /**
466
+ * Video embeds (metadata only, by reference). Opt-in via `attributes=videos`.
467
+ */
468
+ videos?: GetSchoolBySourceVideos | null | undefined;
338
469
  website?: string | undefined;
339
470
  };
340
471
 
@@ -369,6 +500,57 @@ export function getSchoolBySourceRequestToJSON(
369
500
  );
370
501
  }
371
502
 
503
+ /** @internal */
504
+ export const GetSchoolBySourceAbout$inboundSchema: z.ZodType<
505
+ GetSchoolBySourceAbout,
506
+ z.ZodTypeDef,
507
+ unknown
508
+ > = z.object({
509
+ aboutDescription: z.nullable(z.string()).optional(),
510
+ afterSchoolCare: z.nullable(z.boolean()).optional(),
511
+ breakfastClub: z.nullable(z.boolean()).optional(),
512
+ clubsDescription: z.nullable(z.string()).optional(),
513
+ curriculumDescription: z.nullable(z.string()).optional(),
514
+ ethos: z.nullable(z.string()).optional(),
515
+ facilitiesDescription: z.nullable(z.string()).optional(),
516
+ headteacherWelcome: z.nullable(z.string()).optional(),
517
+ historyDescription: z.nullable(z.string()).optional(),
518
+ prospectusUrl: z.nullable(z.string()).optional(),
519
+ resultsSummary: z.nullable(z.string()).optional(),
520
+ sendStatement: z.nullable(z.string()).optional(),
521
+ termDates: z.array(shared.SchoolTermDate$inboundSchema).optional(),
522
+ uniformSupplier: z.nullable(z.string()).optional(),
523
+ });
524
+
525
+ export function getSchoolBySourceAboutFromJSON(
526
+ jsonString: string,
527
+ ): SafeParseResult<GetSchoolBySourceAbout, SDKValidationError> {
528
+ return safeParse(
529
+ jsonString,
530
+ (x) => GetSchoolBySourceAbout$inboundSchema.parse(JSON.parse(x)),
531
+ `Failed to parse 'GetSchoolBySourceAbout' from JSON`,
532
+ );
533
+ }
534
+
535
+ /** @internal */
536
+ export const GetSchoolBySourceAccreditations$inboundSchema: z.ZodType<
537
+ GetSchoolBySourceAccreditations,
538
+ z.ZodTypeDef,
539
+ unknown
540
+ > = z.object({
541
+ accreditations: z.array(shared.SchoolAccreditation$inboundSchema).optional(),
542
+ });
543
+
544
+ export function getSchoolBySourceAccreditationsFromJSON(
545
+ jsonString: string,
546
+ ): SafeParseResult<GetSchoolBySourceAccreditations, SDKValidationError> {
547
+ return safeParse(
548
+ jsonString,
549
+ (x) => GetSchoolBySourceAccreditations$inboundSchema.parse(JSON.parse(x)),
550
+ `Failed to parse 'GetSchoolBySourceAccreditations' from JSON`,
551
+ );
552
+ }
553
+
372
554
  /** @internal */
373
555
  export const GetSchoolBySourceAddress$inboundSchema: z.ZodType<
374
556
  GetSchoolBySourceAddress,
@@ -392,6 +574,28 @@ export function getSchoolBySourceAddressFromJSON(
392
574
  );
393
575
  }
394
576
 
577
+ /** @internal */
578
+ export const GetSchoolBySourceBranding$inboundSchema: z.ZodType<
579
+ GetSchoolBySourceBranding,
580
+ z.ZodTypeDef,
581
+ unknown
582
+ > = z.object({
583
+ logoUrl: z.string().optional(),
584
+ primaryColour: z.string().optional(),
585
+ secondaryColour: z.string().optional(),
586
+ socialMedia: shared.SocialMediaLinks$inboundSchema.optional(),
587
+ });
588
+
589
+ export function getSchoolBySourceBrandingFromJSON(
590
+ jsonString: string,
591
+ ): SafeParseResult<GetSchoolBySourceBranding, SDKValidationError> {
592
+ return safeParse(
593
+ jsonString,
594
+ (x) => GetSchoolBySourceBranding$inboundSchema.parse(JSON.parse(x)),
595
+ `Failed to parse 'GetSchoolBySourceBranding' from JSON`,
596
+ );
597
+ }
598
+
395
599
  /** @internal */
396
600
  export const GetSchoolBySourceCurrentRating$inboundSchema: z.ZodType<
397
601
  GetSchoolBySourceCurrentRating,
@@ -421,6 +625,25 @@ export function getSchoolBySourceIdentifiersFromJSON(
421
625
  );
422
626
  }
423
627
 
628
+ /** @internal */
629
+ export const GetSchoolBySourceImages$inboundSchema: z.ZodType<
630
+ GetSchoolBySourceImages,
631
+ z.ZodTypeDef,
632
+ unknown
633
+ > = z.object({
634
+ images: z.array(shared.SchoolImage$inboundSchema).optional(),
635
+ });
636
+
637
+ export function getSchoolBySourceImagesFromJSON(
638
+ jsonString: string,
639
+ ): SafeParseResult<GetSchoolBySourceImages, SDKValidationError> {
640
+ return safeParse(
641
+ jsonString,
642
+ (x) => GetSchoolBySourceImages$inboundSchema.parse(JSON.parse(x)),
643
+ `Failed to parse 'GetSchoolBySourceImages' from JSON`,
644
+ );
645
+ }
646
+
424
647
  /** @internal */
425
648
  export const GetSchoolBySourceInspections$inboundSchema: z.ZodType<
426
649
  GetSchoolBySourceInspections,
@@ -507,15 +730,41 @@ export const GetSchoolBySourceType$inboundSchema: z.ZodType<
507
730
  unknown
508
731
  > = openEnums.inboundSchema(GetSchoolBySourceType);
509
732
 
733
+ /** @internal */
734
+ export const GetSchoolBySourceVideos$inboundSchema: z.ZodType<
735
+ GetSchoolBySourceVideos,
736
+ z.ZodTypeDef,
737
+ unknown
738
+ > = z.object({
739
+ videos: z.array(shared.SchoolVideo$inboundSchema).optional(),
740
+ });
741
+
742
+ export function getSchoolBySourceVideosFromJSON(
743
+ jsonString: string,
744
+ ): SafeParseResult<GetSchoolBySourceVideos, SDKValidationError> {
745
+ return safeParse(
746
+ jsonString,
747
+ (x) => GetSchoolBySourceVideos$inboundSchema.parse(JSON.parse(x)),
748
+ `Failed to parse 'GetSchoolBySourceVideos' from JSON`,
749
+ );
750
+ }
751
+
510
752
  /** @internal */
511
753
  export const GetSchoolBySourceResponseBody$inboundSchema: z.ZodType<
512
754
  GetSchoolBySourceResponseBody,
513
755
  z.ZodTypeDef,
514
756
  unknown
515
757
  > = z.object({
758
+ about: z.nullable(z.lazy(() => GetSchoolBySourceAbout$inboundSchema))
759
+ .optional(),
760
+ accreditations: z.nullable(
761
+ z.lazy(() => GetSchoolBySourceAccreditations$inboundSchema),
762
+ ).optional(),
516
763
  address: z.lazy(() => GetSchoolBySourceAddress$inboundSchema).optional(),
517
764
  admissionsPolicy: z.string().optional(),
518
765
  ageRange: z.string().optional(),
766
+ branding: z.nullable(z.lazy(() => GetSchoolBySourceBranding$inboundSchema))
767
+ .optional(),
519
768
  capacity: z.number().int().optional(),
520
769
  catchment: shared.SchoolCatchmentBlock$inboundSchema.optional(),
521
770
  country: z.string().default("GB"),
@@ -530,6 +779,8 @@ export const GetSchoolBySourceResponseBody$inboundSchema: z.ZodType<
530
779
  identifiers: z.nullable(
531
780
  z.lazy(() => GetSchoolBySourceIdentifiers$inboundSchema),
532
781
  ).optional(),
782
+ images: z.nullable(z.lazy(() => GetSchoolBySourceImages$inboundSchema))
783
+ .optional(),
533
784
  inspections: z.nullable(
534
785
  z.lazy(() => GetSchoolBySourceInspections$inboundSchema),
535
786
  ).optional(),
@@ -560,6 +811,8 @@ export const GetSchoolBySourceResponseBody$inboundSchema: z.ZodType<
560
811
  trustName: z.string().optional(),
561
812
  type: GetSchoolBySourceType$inboundSchema,
562
813
  updatedAt: z.string(),
814
+ videos: z.nullable(z.lazy(() => GetSchoolBySourceVideos$inboundSchema))
815
+ .optional(),
563
816
  website: z.string().optional(),
564
817
  });
565
818