@financial-times/cp-content-pipeline-schema 2.5.3 → 2.5.4

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 (44) hide show
  1. package/CHANGELOG.md +7 -0
  2. package/README.md +187 -41
  3. package/lib/datasources/base.d.ts +1 -0
  4. package/lib/datasources/capi.js +1 -0
  5. package/lib/datasources/capi.js.map +1 -1
  6. package/lib/datasources/instrumented.d.ts +1 -0
  7. package/lib/datasources/instrumented.js +1 -9
  8. package/lib/datasources/instrumented.js.map +1 -1
  9. package/lib/datasources/origami-image.js +1 -0
  10. package/lib/datasources/origami-image.js.map +1 -1
  11. package/lib/datasources/twitter.js +1 -0
  12. package/lib/datasources/twitter.js.map +1 -1
  13. package/lib/datasources/url-management.d.ts +1 -0
  14. package/lib/datasources/url-management.js +2 -0
  15. package/lib/datasources/url-management.js.map +1 -1
  16. package/lib/generated/index.d.ts +546 -2
  17. package/package.json +1 -1
  18. package/src/datasources/base.ts +1 -0
  19. package/src/datasources/capi.ts +1 -0
  20. package/src/datasources/instrumented.ts +1 -11
  21. package/src/datasources/origami-image.ts +3 -0
  22. package/src/datasources/twitter.ts +2 -0
  23. package/src/datasources/url-management.ts +2 -0
  24. package/src/generated/index.ts +546 -2
  25. package/tsconfig.tsbuildinfo +1 -1
  26. package/typedefs/clip.graphql +28 -0
  27. package/typedefs/concept.graphql +21 -2
  28. package/typedefs/content.graphql +441 -36
  29. package/typedefs/core.graphql +6 -0
  30. package/typedefs/image.graphql +210 -15
  31. package/typedefs/picture.graphql +54 -1
  32. package/typedefs/references/clipSet.graphql +34 -1
  33. package/typedefs/references/flourish.graphql +8 -0
  34. package/typedefs/references/imageSet.graphql +6 -0
  35. package/typedefs/references/layoutImage.graphql +3 -0
  36. package/typedefs/references/rawImage.graphql +3 -0
  37. package/typedefs/references/recommended.graphql +3 -0
  38. package/typedefs/references/reference.graphql +1 -0
  39. package/typedefs/references/scrollyImage.graphql +3 -0
  40. package/typedefs/references/tweet.graphql +3 -0
  41. package/typedefs/references/video.graphql +5 -0
  42. package/typedefs/richText.graphql +7 -4
  43. package/typedefs/teaser.graphql +42 -1
  44. package/typedefs/topper.graphql +219 -7
@@ -40,42 +40,70 @@ export type Scalars = {
40
40
  };
41
41
 
42
42
  export type Accessibility = {
43
+ /** An array of captions for the clip. */
43
44
  readonly captions?: Maybe<ReadonlyArray<Maybe<Caption>>>;
45
+ /** An abstract syntax tree of the transcript for the clip. */
44
46
  readonly transcript?: Maybe<RichText>;
45
47
  };
46
48
 
47
49
  export type AltStandfirst = {
50
+ /** An introductory paragraph of the article. */
48
51
  readonly promotionalStandfirst?: Maybe<Scalars['String']['output']>;
49
52
  };
50
53
 
51
54
  export type AltTitle = {
55
+ /** A promotional title of the article. */
52
56
  readonly promotionalTitle?: Maybe<Scalars['String']['output']>;
53
57
  };
54
58
 
55
59
  export type Article = Content & {
60
+ /** A scalar representing the access level of the article, eg. 'free'. */
56
61
  readonly accessLevel?: Maybe<Scalars['AccessLevel']['output']>;
62
+ /** An alternative introductory paragraph of the article. */
57
63
  readonly altStandfirst?: Maybe<AltStandfirst>;
64
+ /** An alternative title of the article. */
58
65
  readonly altTitle?: Maybe<AltTitle>;
66
+ /** An array of concepts related to the article, eg. organisations or topics. */
59
67
  readonly annotations?: Maybe<ReadonlyArray<Maybe<Concept>>>;
68
+ /** An abstract syntax tree of the article content. */
60
69
  readonly body?: Maybe<RichText>;
70
+ /** The raw string of the XML as returned from ContentAPI. */
61
71
  readonly bodyXML?: Maybe<Scalars['String']['output']>;
72
+ /** An abstract syntax tree of the authors of the article. */
62
73
  readonly byline?: Maybe<StructuredContent>;
74
+ /** A scalar representing whether the article can be syndicated, ie. published by a third party site. */
63
75
  readonly canBeSyndicated?: Maybe<Scalars['CanBeSyndicated']['output']>;
76
+ /** Whether comments are enabled on the article. */
64
77
  readonly commentsEnabled?: Maybe<Scalars['Boolean']['output']>;
78
+ /** The parent article, indicating this article is a part of a series or package. */
65
79
  readonly containedIn?: Maybe<Content>;
80
+ /** A design object containing the theme and layout of the article. */
66
81
  readonly design?: Maybe<Design>;
82
+ /** The editorial division the article belongs to, eg. 'FT-SpecialReports'. */
67
83
  readonly editorialDesk?: Maybe<Scalars['String']['output']>;
84
+ /** The first ISO string date the article was published, eg. '2024-04-03T10:35:52.443Z'. */
68
85
  readonly firstPublishedDate: Scalars['String']['output'];
86
+ /** The unique identifier of the article - a uuid or a url. */
69
87
  readonly id: Scalars['ID']['output'];
88
+ /** The concept to use for instant alert CTAs. */
70
89
  readonly instantAlertConcept?: Maybe<Concept>;
90
+ /** An image object containing the url and the caption, to be displayed usually before the article content. */
71
91
  readonly mainImage?: Maybe<Image>;
92
+ /** The party that originated the article, eg. 'FT'. */
72
93
  readonly originatingParty?: Maybe<Scalars['String']['output']>;
94
+ /** The ISO string date the article was published, eg. '2024-04-03T10:35:52.443Z'. */
73
95
  readonly publishedDate: Scalars['String']['output'];
96
+ /** An introductory paragraph of the article. */
74
97
  readonly standfirst?: Maybe<Scalars['String']['output']>;
98
+ /** A promotional thumbnail / snapshot of the article. */
75
99
  readonly teaser?: Maybe<Teaser>;
100
+ /** The title of the article. */
76
101
  readonly title: Scalars['String']['output'];
102
+ /** A banner located usually at the top of articles containing the title, the standfirst and any images. */
77
103
  readonly topper?: Maybe<Topper>;
104
+ /** The type of the article, eg. 'Article' or 'Video'. */
78
105
  readonly type: Scalars['ContentType']['output'];
106
+ /** The url of the concept. Vanity urls replace long, randomly generated urls - they are more user friendly and concise. Relative urls are relative to the current domain. */
79
107
  readonly url: Scalars['String']['output'];
80
108
  };
81
109
 
@@ -91,29 +119,53 @@ export type ArticleUrlArgs = {
91
119
  };
92
120
 
93
121
  export type Audio = Content & {
122
+ /** A scalar representing the access level of the article, eg. 'free'. */
94
123
  readonly accessLevel?: Maybe<Scalars['AccessLevel']['output']>;
124
+ /** An alternative introductory paragraph of the article. */
95
125
  readonly altStandfirst?: Maybe<AltStandfirst>;
126
+ /** An alternative title of the article. */
96
127
  readonly altTitle?: Maybe<AltTitle>;
128
+ /** An array of concepts related to the article, eg. organisations or topics. */
97
129
  readonly annotations?: Maybe<ReadonlyArray<Maybe<Concept>>>;
130
+ /** An abstract syntax tree of the article content. */
98
131
  readonly body?: Maybe<RichText>;
132
+ /** The raw string of the XML as returned from ContentAPI. */
99
133
  readonly bodyXML?: Maybe<Scalars['String']['output']>;
134
+ /** An abstract syntax tree of the authors of the article. */
100
135
  readonly byline?: Maybe<StructuredContent>;
136
+ /** A scalar representing whether the article can be syndicated, ie. published by a third party site. */
101
137
  readonly canBeSyndicated?: Maybe<Scalars['CanBeSyndicated']['output']>;
138
+ /** Whether comments are enabled on the article. */
102
139
  readonly commentsEnabled?: Maybe<Scalars['Boolean']['output']>;
140
+ /** A design object containing the theme and layout of the article. */
103
141
  readonly design?: Maybe<Design>;
142
+ /** The editorial division the article belongs to, eg. 'FT-SpecialReports'. */
104
143
  readonly editorialDesk?: Maybe<Scalars['String']['output']>;
144
+ /** The first ISO string date the article was published, eg. '2024-04-03T10:35:52.443Z'. */
105
145
  readonly firstPublishedDate: Scalars['String']['output'];
146
+ /** The unique identifier of the article - a uuid or a url. */
106
147
  readonly id: Scalars['ID']['output'];
148
+ /** The concept to use for instant alert CTAs. */
107
149
  readonly instantAlertConcept?: Maybe<Concept>;
150
+ /** An image object containing the url and the caption, to be displayed usually before the article content. */
108
151
  readonly mainImage?: Maybe<Image>;
152
+ /** An array of media objects containing the url, the duration, the filesize and the media type. */
109
153
  readonly media?: Maybe<ReadonlyArray<Maybe<Media>>>;
154
+ /** The party that originated the article, eg. 'FT'. */
110
155
  readonly originatingParty?: Maybe<Scalars['String']['output']>;
156
+ /** The ISO string date the article was published, eg. '2024-04-03T10:35:52.443Z'. */
111
157
  readonly publishedDate: Scalars['String']['output'];
158
+ /** An introductory paragraph of the article. */
112
159
  readonly standfirst?: Maybe<Scalars['String']['output']>;
160
+ /** A promotional thumbnail / snapshot of the article. */
113
161
  readonly teaser?: Maybe<Teaser>;
162
+ /** The title of the article. */
114
163
  readonly title: Scalars['String']['output'];
164
+ /** A banner located usually at the top of articles containing the title, the standfirst and any images. */
115
165
  readonly topper?: Maybe<Topper>;
166
+ /** The type of the article, eg. 'Article' or 'Video'. */
116
167
  readonly type: Scalars['ContentType']['output'];
168
+ /** The url of the concept. Vanity urls replace long, randomly generated urls - they are more user friendly and concise. Relative urls are relative to the current domain. */
117
169
  readonly url: Scalars['String']['output'];
118
170
  };
119
171
 
@@ -129,114 +181,198 @@ export type AudioUrlArgs = {
129
181
  };
130
182
 
131
183
  export type BasicTopper = Topper & {
184
+ /** Whether the topper should have a background box. */
132
185
  readonly backgroundBox?: Maybe<Scalars['Boolean']['output']>;
186
+ /** The background colour of the topper. */
133
187
  readonly backgroundColour?: Maybe<Scalars['TopperBackgroundColour']['output']>;
188
+ /** The concept object to be displayed, eg. {'type': 'TOPIC', 'prefLabel': 'Non-dom tax status', ...}. */
134
189
  readonly displayConcept?: Maybe<Concept>;
190
+ /** The variant of the follow button to be displayed on the topper. */
135
191
  readonly followButtonVariant?: Maybe<Scalars['FollowButtonVariant']['output']>;
192
+ /** The concept object of the genre, eg. {'type': 'GENRE', 'prefLabel': 'Opinion', ...}. */
136
193
  readonly genreConcept?: Maybe<Concept>;
194
+ /** The headline text of the topper. */
137
195
  readonly headline: Scalars['String']['output'];
196
+ /** An abstract syntax tree of the introduction text. */
138
197
  readonly intro?: Maybe<RichText>;
198
+ /** Whether the topper should have a text shadow. */
139
199
  readonly textShadow?: Maybe<Scalars['Boolean']['output']>;
140
200
  };
141
201
 
142
202
  export type BrandedTopper = Topper & TopperWithBrand & TopperWithTheme & {
203
+ /** Whether the topper should have a background box. */
143
204
  readonly backgroundBox?: Maybe<Scalars['Boolean']['output']>;
205
+ /** The background colour of the topper. */
144
206
  readonly backgroundColour?: Maybe<Scalars['TopperBackgroundColour']['output']>;
207
+ /** The concept object of the brand, eg. {'type': 'BRAND', 'prefLabel': 'FT Magazine', ...}. */
145
208
  readonly brandConcept?: Maybe<Concept>;
209
+ /** The concept object to be displayed, eg. {'type': 'TOPIC', 'prefLabel': 'Non-dom tax status', ...}. */
146
210
  readonly displayConcept?: Maybe<Concept>;
211
+ /** The variant of the follow button to be displayed on the topper. */
147
212
  readonly followButtonVariant?: Maybe<Scalars['FollowButtonVariant']['output']>;
213
+ /** The concept object of the genre, eg. {'type': 'GENRE', 'prefLabel': 'Opinion', ...}. */
148
214
  readonly genreConcept?: Maybe<Concept>;
215
+ /** The headline text of the topper. */
149
216
  readonly headline: Scalars['String']['output'];
217
+ /** An abstract syntax tree of the introduction text. */
150
218
  readonly intro?: Maybe<RichText>;
219
+ /** Whether the headline should be large. */
151
220
  readonly isLargeHeadline?: Maybe<Scalars['Boolean']['output']>;
221
+ /** The layout of the topper, eg. 'split-text-left'. */
152
222
  readonly layout?: Maybe<Scalars['String']['output']>;
223
+ /** Whether the topper should have a text shadow. */
153
224
  readonly textShadow?: Maybe<Scalars['Boolean']['output']>;
154
225
  };
155
226
 
156
227
  export type Caption = {
228
+ /** The media type of the caption eg. text/vtt. */
157
229
  readonly mediaType?: Maybe<Scalars['String']['output']>;
230
+ /** The url of the caption, eg. 'https://next-media-api.ft.com/clips/captions/32065513'. */
158
231
  readonly url?: Maybe<Scalars['String']['output']>;
159
232
  };
160
233
 
161
234
  export type Clip = {
235
+ /** An array of data sources - includes 'video/mp4' and 'audio/mp3' sources. */
162
236
  readonly dataSource: ReadonlyArray<ClipSource>;
237
+ /** The format of the clip, eg. 'standard-inline' or 'mobile'. */
163
238
  readonly format?: Maybe<Scalars['ClipFormat']['output']>;
239
+ /** The unique identifier of the clip - a uuid or a url. */
164
240
  readonly id: Scalars['String']['output'];
241
+ /** The url of the image to be used as a poster for the clip, eg. 'https://www.ft.com/__origami/service/image...'. */
165
242
  readonly poster?: Maybe<Scalars['String']['output']>;
243
+ /** The type of the clip, eg. 'http://www.ft.com/ontology/content/Clip'. */
166
244
  readonly type?: Maybe<Scalars['String']['output']>;
167
245
  };
168
246
 
169
247
  export type ClipSet = Reference & {
248
+ /** An object containing the accessibility details of the clip. */
170
249
  readonly accessibility?: Maybe<Accessibility>;
250
+ /** Whether the clip should play automatically when loaded. */
171
251
  readonly autoplay?: Maybe<Scalars['Boolean']['output']>;
252
+ /** Text describing the content of the clip, to be shown next to the clip. */
172
253
  readonly caption?: Maybe<Scalars['String']['output']>;
254
+ /** An array of clips in the clip set. */
173
255
  readonly clips?: Maybe<ReadonlyArray<Maybe<Clip>>>;
256
+ /** An array of content warnings for the clip set. */
174
257
  readonly contentWarning?: Maybe<ReadonlyArray<Maybe<Scalars['String']['output']>>>;
258
+ /** The credit text of the clip, eg. 'Getty Images'. */
175
259
  readonly credits?: Maybe<Scalars['String']['output']>;
260
+ /** The layout of the clip set, eg. 'in-line'. */
176
261
  readonly dataLayout?: Maybe<Scalars['String']['output']>;
262
+ /** The description of the clip. */
177
263
  readonly description?: Maybe<Scalars['String']['output']>;
264
+ /** The title to be displayed for the clip set. */
178
265
  readonly displayTitle?: Maybe<Scalars['String']['output']>;
266
+ /** The unique identifier of the clip set. */
179
267
  readonly id: Scalars['String']['output'];
268
+ /** Whether the clip should loop. */
180
269
  readonly loop?: Maybe<Scalars['Boolean']['output']>;
270
+ /** Whether the clip should be muted. */
181
271
  readonly muted?: Maybe<Scalars['Boolean']['output']>;
272
+ /** Whether the clip set should **not** include audio. */
182
273
  readonly noAudio?: Maybe<Scalars['Boolean']['output']>;
274
+ /** The date the clip set was published. */
183
275
  readonly publishedDate?: Maybe<Scalars['String']['output']>;
276
+ /** The source of the clip set, eg. 'YouTube'. */
184
277
  readonly source?: Maybe<Scalars['String']['output']>;
278
+ /** The subtitle of the clip set. */
185
279
  readonly subtitle?: Maybe<Scalars['String']['output']>;
280
+ /** The type of the clip set, eg. 'video'. */
186
281
  readonly type: Scalars['String']['output'];
187
282
  };
188
283
 
189
284
  export type ClipSource = {
285
+ /** The audio encoding format of the source, eg. mp3. */
190
286
  readonly audioCodec?: Maybe<Scalars['String']['output']>;
287
+ /** The url of the clip source, eg. 'https://next-media-api.ft.com/renditions/16868569859480/0x0.mp3'. */
191
288
  readonly binaryUrl: Scalars['String']['output'];
289
+ /** The duration of the clip in milliseconds. */
192
290
  readonly duration?: Maybe<Scalars['Int']['output']>;
291
+ /** The media type eg. video/mp4. */
193
292
  readonly mediaType: Scalars['String']['output'];
293
+ /** The height of the clip in pixels. */
194
294
  readonly pixelHeight?: Maybe<Scalars['Int']['output']>;
295
+ /** The width of the clip in pixels. */
195
296
  readonly pixelWidth?: Maybe<Scalars['Int']['output']>;
297
+ /** The video encoding format of the source, eg. h264. */
196
298
  readonly videoCodec?: Maybe<Scalars['String']['output']>;
197
299
  };
198
300
 
301
+ /** A concept is supplemtary information item, like a location, person, organisation or topic. It is used to provide context to an article. */
199
302
  export type Concept = {
303
+ /** The api url of the concept, eg. 'http://api.ft.com/things/a579350c-61ce-4c00-97ca-ddaa2e0cacf6'. */
200
304
  readonly apiUrl?: Maybe<Scalars['String']['output']>;
305
+ /** The type of the concept, eg. 'http://www.ft.com/ontology/Topic'. */
201
306
  readonly directType?: Maybe<Scalars['String']['output']>;
307
+ /** The unique identifier of the concept - a uuid or a url. */
202
308
  readonly id: Scalars['ID']['output'];
309
+ /** Whether the concept is part of a package brand eg. 'ftSeries' or 'ftGuides'. */
203
310
  readonly isPackageBrand?: Maybe<Scalars['Boolean']['output']>;
311
+ /** The relationship between the concept and the article, eg. 'http://www.ft.com/ontology/hasAuthor'. */
204
312
  readonly predicate?: Maybe<Scalars['String']['output']>;
313
+ /** The preferred label of the concept, eg. 'Work & Careers'. */
205
314
  readonly prefLabel: Scalars['String']['output'];
315
+ /** The type of the concept, eg. 'TOPIC'. */
206
316
  readonly type?: Maybe<Scalars['String']['output']>;
317
+ /** An array of types, eg. ['http://www.ft.com/ontology/core/Thing', 'http://www.ft.com/ontology/Topic']. */
207
318
  readonly types?: Maybe<ReadonlyArray<Scalars['String']['output']>>;
319
+ /** The url of the media, eg. 'https://next-media-api.ft.com/renditions/16868569859480/0x0.mp3'. */
208
320
  readonly url: Scalars['String']['output'];
209
321
  };
210
322
 
211
323
 
324
+ /** A concept is supplemtary information item, like a location, person, organisation or topic. It is used to provide context to an article. */
212
325
  export type ConceptUrlArgs = {
213
326
  relative?: InputMaybe<Scalars['Boolean']['input']>;
214
327
  vanity?: InputMaybe<Scalars['Boolean']['input']>;
215
328
  };
216
329
 
217
330
  export type Content = {
331
+ /** A scalar representing the access level of the article, eg. 'free'. */
218
332
  readonly accessLevel?: Maybe<Scalars['AccessLevel']['output']>;
333
+ /** An alternative introductory paragraph of the article. */
219
334
  readonly altStandfirst?: Maybe<AltStandfirst>;
335
+ /** An alternative title of the article. */
220
336
  readonly altTitle?: Maybe<AltTitle>;
337
+ /** An array of concepts related to the article, eg. organisations or topics. */
221
338
  readonly annotations?: Maybe<ReadonlyArray<Maybe<Concept>>>;
339
+ /** An abstract syntax tree of the article content. */
222
340
  readonly body?: Maybe<RichText>;
341
+ /** The raw string of the XML as returned from ContentAPI. */
223
342
  readonly bodyXML?: Maybe<Scalars['String']['output']>;
343
+ /** An abstract syntax tree of the authors of the article. */
224
344
  readonly byline?: Maybe<StructuredContent>;
345
+ /** A scalar representing whether the article can be syndicated, ie. published by a third party site. */
225
346
  readonly canBeSyndicated?: Maybe<Scalars['CanBeSyndicated']['output']>;
347
+ /** Whether comments are enabled on the article. */
226
348
  readonly commentsEnabled?: Maybe<Scalars['Boolean']['output']>;
349
+ /** A design object containing the theme and layout of the article. */
227
350
  readonly design?: Maybe<Design>;
351
+ /** The editorial division the article belongs to, eg. 'FT-SpecialReports'. */
228
352
  readonly editorialDesk?: Maybe<Scalars['String']['output']>;
353
+ /** The first ISO string date the article was published, eg. '2024-04-03T10:35:52.443Z'. */
229
354
  readonly firstPublishedDate: Scalars['String']['output'];
355
+ /** The unique identifier of the article - a uuid or a url. */
230
356
  readonly id: Scalars['ID']['output'];
357
+ /** The concept to use for instant alert CTAs. */
231
358
  readonly instantAlertConcept?: Maybe<Concept>;
359
+ /** An image object containing the url and the caption, to be displayed usually before the article content. */
232
360
  readonly mainImage?: Maybe<Image>;
361
+ /** The party that originated the article, eg. 'FT'. */
233
362
  readonly originatingParty?: Maybe<Scalars['String']['output']>;
363
+ /** The ISO string date the article was published, eg. '2024-04-03T10:35:52.443Z'. */
234
364
  readonly publishedDate: Scalars['String']['output'];
365
+ /** An introductory paragraph of the article. */
235
366
  readonly standfirst?: Maybe<Scalars['String']['output']>;
367
+ /** A promotional thumbnail / snapshot of the article. */
236
368
  readonly teaser?: Maybe<Teaser>;
369
+ /** The title of the article. */
237
370
  readonly title: Scalars['String']['output'];
371
+ /** A banner located usually at the top of articles containing the title, the standfirst and any images. */
238
372
  readonly topper?: Maybe<Topper>;
373
+ /** The type of the article, eg. 'Article' or 'Video'. */
239
374
  readonly type: Scalars['ContentType']['output'];
375
+ /** The url of the concept. Vanity urls replace long, randomly generated urls - they are more user friendly and concise. Relative urls are relative to the current domain. */
240
376
  readonly url: Scalars['String']['output'];
241
377
  };
242
378
 
@@ -252,31 +388,57 @@ export type ContentUrlArgs = {
252
388
  };
253
389
 
254
390
  export type ContentPackage = Content & {
391
+ /** A scalar representing the access level of the article, eg. 'free'. */
255
392
  readonly accessLevel?: Maybe<Scalars['AccessLevel']['output']>;
393
+ /** An alternative introductory paragraph of the article. */
256
394
  readonly altStandfirst?: Maybe<AltStandfirst>;
395
+ /** An alternative title of the article. */
257
396
  readonly altTitle?: Maybe<AltTitle>;
397
+ /** An array of concepts related to the article, eg. organisations or topics. */
258
398
  readonly annotations?: Maybe<ReadonlyArray<Maybe<Concept>>>;
399
+ /** An abstract syntax tree of the article content. */
259
400
  readonly body?: Maybe<RichText>;
401
+ /** The raw string of the XML as returned from ContentAPI. */
260
402
  readonly bodyXML?: Maybe<Scalars['String']['output']>;
403
+ /** An abstract syntax tree of the authors of the article. */
261
404
  readonly byline?: Maybe<StructuredContent>;
405
+ /** A scalar representing whether the article can be syndicated, ie. published by a third party site. */
262
406
  readonly canBeSyndicated?: Maybe<Scalars['CanBeSyndicated']['output']>;
407
+ /** Whether comments are enabled on the article. */
263
408
  readonly commentsEnabled?: Maybe<Scalars['Boolean']['output']>;
409
+ /** The child articles of this content package. */
264
410
  readonly contains?: Maybe<ReadonlyArray<Maybe<Teaser>>>;
411
+ /** The number of child articles in this content package. */
265
412
  readonly containsLength?: Maybe<Scalars['Int']['output']>;
413
+ /** A design object containing the theme and layout of the article. */
266
414
  readonly design?: Maybe<Design>;
415
+ /** The editorial division the article belongs to, eg. 'FT-SpecialReports'. */
267
416
  readonly editorialDesk?: Maybe<Scalars['String']['output']>;
417
+ /** The first ISO string date the article was published, eg. '2024-04-03T10:35:52.443Z'. */
268
418
  readonly firstPublishedDate: Scalars['String']['output'];
419
+ /** The unique identifier of the article - a uuid or a url. */
269
420
  readonly id: Scalars['ID']['output'];
421
+ /** The concept to use for instant alert CTAs. */
270
422
  readonly instantAlertConcept?: Maybe<Concept>;
423
+ /** An image object containing the url and the caption, to be displayed usually before the article content. */
271
424
  readonly mainImage?: Maybe<Image>;
425
+ /** The party that originated the article, eg. 'FT'. */
272
426
  readonly originatingParty?: Maybe<Scalars['String']['output']>;
427
+ /** The ISO string date the article was published, eg. '2024-04-03T10:35:52.443Z'. */
273
428
  readonly publishedDate: Scalars['String']['output'];
429
+ /** An introductory paragraph of the article. */
274
430
  readonly standfirst?: Maybe<Scalars['String']['output']>;
431
+ /** The optional table of contents for this content package. */
275
432
  readonly tableOfContents?: Maybe<TableOfContents>;
433
+ /** A promotional thumbnail / snapshot of the article. */
276
434
  readonly teaser?: Maybe<Teaser>;
435
+ /** The title of the article. */
277
436
  readonly title: Scalars['String']['output'];
437
+ /** A banner located usually at the top of articles containing the title, the standfirst and any images. */
278
438
  readonly topper?: Maybe<Topper>;
439
+ /** The type of the article, eg. 'Article' or 'Video'. */
279
440
  readonly type: Scalars['ContentType']['output'];
441
+ /** The url of the concept. Vanity urls replace long, randomly generated urls - they are more user friendly and concise. Relative urls are relative to the current domain. */
280
442
  readonly url: Scalars['String']['output'];
281
443
  };
282
444
 
@@ -298,79 +460,135 @@ export type ContentPackageUrlArgs = {
298
460
  };
299
461
 
300
462
  export type DeepLandscapeTopper = Topper & TopperWithBrand & TopperWithImages & TopperWithTheme & {
463
+ /** Whether the topper should have a background box. */
301
464
  readonly backgroundBox?: Maybe<Scalars['Boolean']['output']>;
465
+ /** The background colour of the topper. */
302
466
  readonly backgroundColour?: Maybe<Scalars['TopperBackgroundColour']['output']>;
467
+ /** The concept object of the brand, eg. {'type': 'BRAND', 'prefLabel': 'FT Magazine', ...}. */
303
468
  readonly brandConcept?: Maybe<Concept>;
469
+ /** The concept object to be displayed, eg. {'type': 'TOPIC', 'prefLabel': 'Non-dom tax status', ...}. */
304
470
  readonly displayConcept?: Maybe<Concept>;
471
+ /** A fallback image to be used if the 'images' are not availableimages: [Image!]!. */
305
472
  readonly fallbackImage?: Maybe<Image>;
473
+ /** The variant of the follow button to be displayed on the topper. */
306
474
  readonly followButtonVariant?: Maybe<Scalars['FollowButtonVariant']['output']>;
475
+ /** The concept object of the genre, eg. {'type': 'GENRE', 'prefLabel': 'Opinion', ...}. */
307
476
  readonly genreConcept?: Maybe<Concept>;
477
+ /** The headline text of the topper. */
308
478
  readonly headline: Scalars['String']['output'];
479
+ /** An array of images to be displayed on the topper. */
309
480
  readonly images: ReadonlyArray<Image>;
481
+ /** An abstract syntax tree of the introduction text. */
310
482
  readonly intro?: Maybe<RichText>;
483
+ /** Whether the headline should be large. */
311
484
  readonly isLargeHeadline?: Maybe<Scalars['Boolean']['output']>;
485
+ /** The layout of the topper, eg. 'split-text-left'. */
312
486
  readonly layout?: Maybe<Scalars['String']['output']>;
487
+ /** Whether the topper should have a text shadow. */
313
488
  readonly textShadow?: Maybe<Scalars['Boolean']['output']>;
314
489
  };
315
490
 
316
491
  export type DeepPortraitTopper = Topper & TopperWithBrand & TopperWithImages & TopperWithTheme & {
492
+ /** Whether the topper should have a background box. */
317
493
  readonly backgroundBox?: Maybe<Scalars['Boolean']['output']>;
494
+ /** The background colour of the topper. */
318
495
  readonly backgroundColour?: Maybe<Scalars['TopperBackgroundColour']['output']>;
496
+ /** The concept object of the brand, eg. {'type': 'BRAND', 'prefLabel': 'FT Magazine', ...}. */
319
497
  readonly brandConcept?: Maybe<Concept>;
498
+ /** The concept object to be displayed, eg. {'type': 'TOPIC', 'prefLabel': 'Non-dom tax status', ...}. */
320
499
  readonly displayConcept?: Maybe<Concept>;
500
+ /** A fallback image to be used if the 'images' are not availableimages: [Image!]!. */
321
501
  readonly fallbackImage?: Maybe<Image>;
502
+ /** The variant of the follow button to be displayed on the topper. */
322
503
  readonly followButtonVariant?: Maybe<Scalars['FollowButtonVariant']['output']>;
504
+ /** The concept object of the genre, eg. {'type': 'GENRE', 'prefLabel': 'Opinion', ...}. */
323
505
  readonly genreConcept?: Maybe<Concept>;
506
+ /** The headline text of the topper. */
324
507
  readonly headline: Scalars['String']['output'];
508
+ /** An array of images to be displayed on the topper. */
325
509
  readonly images: ReadonlyArray<Image>;
510
+ /** An abstract syntax tree of the introduction text. */
326
511
  readonly intro?: Maybe<RichText>;
512
+ /** Whether the headline should be large. */
327
513
  readonly isLargeHeadline?: Maybe<Scalars['Boolean']['output']>;
514
+ /** The layout of the topper, eg. 'split-text-left'. */
328
515
  readonly layout?: Maybe<Scalars['String']['output']>;
516
+ /** Whether the topper should have a text shadow. */
329
517
  readonly textShadow?: Maybe<Scalars['Boolean']['output']>;
330
518
  };
331
519
 
332
520
  export type Design = {
521
+ /** The layout, eg. 'default'. */
333
522
  readonly layout?: Maybe<Scalars['String']['output']>;
523
+ /** A scalar representing the theme of the design, eg. 'extra-wide'. */
334
524
  readonly theme?: Maybe<Scalars['PackageDesign']['output']>;
335
525
  };
336
526
 
337
527
  export type Flourish = Reference & {
528
+ /** The fallback image to be used if the flourish graphics cannot be loaded. */
338
529
  readonly fallbackImage?: Maybe<FlourishFallback>;
530
+ /** The type of the reference, eg. 'flourish'. */
339
531
  readonly type: Scalars['String']['output'];
340
532
  };
341
533
 
342
534
  export type FlourishFallback = {
535
+ /** The height in pixels of the fallback image. */
343
536
  readonly height?: Maybe<Scalars['Int']['output']>;
537
+ /** The url of the fallback image. */
344
538
  readonly url?: Maybe<Scalars['String']['output']>;
539
+ /** The width in pixels of the fallback image. */
345
540
  readonly width?: Maybe<Scalars['Int']['output']>;
346
541
  };
347
542
 
348
543
  export type FullBleedTopper = Topper & TopperWithBrand & TopperWithImages & TopperWithTheme & {
544
+ /** Whether the topper should have a background box. */
349
545
  readonly backgroundBox?: Maybe<Scalars['Boolean']['output']>;
546
+ /** The background colour of the topper. */
350
547
  readonly backgroundColour?: Maybe<Scalars['TopperBackgroundColour']['output']>;
548
+ /** The concept object of the brand, eg. {'type': 'BRAND', 'prefLabel': 'FT Magazine', ...}. */
351
549
  readonly brandConcept?: Maybe<Concept>;
550
+ /** The concept object to be displayed, eg. {'type': 'TOPIC', 'prefLabel': 'Non-dom tax status', ...}. */
352
551
  readonly displayConcept?: Maybe<Concept>;
552
+ /** A fallback image to be used if the 'images' are not availableimages: [Image!]!. */
353
553
  readonly fallbackImage?: Maybe<Image>;
554
+ /** The variant of the follow button to be displayed on the topper. */
354
555
  readonly followButtonVariant?: Maybe<Scalars['FollowButtonVariant']['output']>;
556
+ /** The concept object of the genre, eg. {'type': 'GENRE', 'prefLabel': 'Opinion', ...}. */
355
557
  readonly genreConcept?: Maybe<Concept>;
558
+ /** The headline text of the topper. */
356
559
  readonly headline: Scalars['String']['output'];
560
+ /** An array of images to be displayed on the topper. */
357
561
  readonly images: ReadonlyArray<Image>;
562
+ /** An abstract syntax tree of the introduction text. */
358
563
  readonly intro?: Maybe<RichText>;
564
+ /** Whether the headline should be large. */
359
565
  readonly isLargeHeadline?: Maybe<Scalars['Boolean']['output']>;
566
+ /** The layout of the topper, eg. 'split-text-left'. */
360
567
  readonly layout?: Maybe<Scalars['String']['output']>;
568
+ /** Whether the topper should have a text shadow. */
361
569
  readonly textShadow?: Maybe<Scalars['Boolean']['output']>;
362
570
  };
363
571
 
364
572
  export type Image = {
573
+ /** Text describing the content of the image, usually hidden from the user unless the image is not available. It is to be read by screen readers. */
365
574
  readonly altText?: Maybe<Scalars['String']['output']>;
575
+ /** Text describing the content of the image, always shown next to the image. */
366
576
  readonly caption?: Maybe<Scalars['String']['output']>;
577
+ /** The credit of the image, eg. 'Getty Images'. */
367
578
  readonly credit?: Maybe<Scalars['String']['output']>;
579
+ /** The format of the image, eg. 'portrait'. */
368
580
  readonly format: Scalars['ImageFormat']['output'];
581
+ /** The height of the image in pixels. */
369
582
  readonly height?: Maybe<Scalars['Int']['output']>;
583
+ /** The unique identifier of the image - a uuid or a url. */
370
584
  readonly id: Scalars['String']['output'];
585
+ /** An array of image sources, ie. different images to render based on input width resulting in responsive images. */
371
586
  readonly sourceSet: ReadonlyArray<ImageSource>;
587
+ /** The type of the image, eg. 'graphic'. */
372
588
  readonly type?: Maybe<Scalars['ImageType']['output']>;
589
+ /** The url of the image, eg. 'https://www.ft.com/__origami/service/image/v2/images/raw/ftcms%3Aimage%3A0e7e7b6e-4e7b-11e9-bde6-79e4b4311f90?source=next&fit=scale-down&width=700'. */
373
590
  readonly url?: Maybe<Scalars['String']['output']>;
591
+ /** The width of the image in pixels. */
374
592
  readonly width?: Maybe<Scalars['Int']['output']>;
375
593
  };
376
594
 
@@ -381,15 +599,25 @@ export type ImageSourceSetArgs = {
381
599
  };
382
600
 
383
601
  export type ImageDesktop = Image & {
602
+ /** Text describing the content of the image, usually hidden from the user unless the image is not available. It is to be read by screen readers. */
384
603
  readonly altText?: Maybe<Scalars['String']['output']>;
604
+ /** Text describing the content of the image, always shown next to the image. */
385
605
  readonly caption?: Maybe<Scalars['String']['output']>;
606
+ /** The credit of the image, eg. 'Getty Images'. */
386
607
  readonly credit?: Maybe<Scalars['String']['output']>;
608
+ /** The format of the image, eg. 'portrait'. */
387
609
  readonly format: Scalars['ImageFormat']['output'];
610
+ /** The height of the image in pixels. */
388
611
  readonly height?: Maybe<Scalars['Int']['output']>;
612
+ /** The unique identifier of the image - a uuid or a url. */
389
613
  readonly id: Scalars['String']['output'];
614
+ /** An array of image sources, ie. different images to render based on input width resulting in responsive images. */
390
615
  readonly sourceSet: ReadonlyArray<ImageSource>;
616
+ /** The type of the image, eg. 'graphic'. */
391
617
  readonly type?: Maybe<Scalars['ImageType']['output']>;
618
+ /** The url of the image, eg. 'https://www.ft.com/__origami/service/image/v2/images/raw/ftcms%3Aimage%3A0e7e7b6e-4e7b-11e9-bde6-79e4b4311f90?source=next&fit=scale-down&width=700'. */
392
619
  readonly url?: Maybe<Scalars['String']['output']>;
620
+ /** The width of the image in pixels. */
393
621
  readonly width?: Maybe<Scalars['Int']['output']>;
394
622
  };
395
623
 
@@ -400,15 +628,25 @@ export type ImageDesktopSourceSetArgs = {
400
628
  };
401
629
 
402
630
  export type ImageLandscape = Image & {
631
+ /** Text describing the content of the image, usually hidden from the user unless the image is not available. It is to be read by screen readers. */
403
632
  readonly altText?: Maybe<Scalars['String']['output']>;
633
+ /** Text describing the content of the image, always shown next to the image. */
404
634
  readonly caption?: Maybe<Scalars['String']['output']>;
635
+ /** The credit of the image, eg. 'Getty Images'. */
405
636
  readonly credit?: Maybe<Scalars['String']['output']>;
637
+ /** The format of the image, eg. 'portrait'. */
406
638
  readonly format: Scalars['ImageFormat']['output'];
639
+ /** The height of the image in pixels. */
407
640
  readonly height?: Maybe<Scalars['Int']['output']>;
641
+ /** The unique identifier of the image - a uuid or a url. */
408
642
  readonly id: Scalars['String']['output'];
643
+ /** An array of image sources, ie. different images to render based on input width resulting in responsive images. */
409
644
  readonly sourceSet: ReadonlyArray<ImageSource>;
645
+ /** The type of the image, eg. 'graphic'. */
410
646
  readonly type?: Maybe<Scalars['ImageType']['output']>;
647
+ /** The url of the image, eg. 'https://www.ft.com/__origami/service/image/v2/images/raw/ftcms%3Aimage%3A0e7e7b6e-4e7b-11e9-bde6-79e4b4311f90?source=next&fit=scale-down&width=700'. */
411
648
  readonly url?: Maybe<Scalars['String']['output']>;
649
+ /** The width of the image in pixels. */
412
650
  readonly width?: Maybe<Scalars['Int']['output']>;
413
651
  };
414
652
 
@@ -419,15 +657,25 @@ export type ImageLandscapeSourceSetArgs = {
419
657
  };
420
658
 
421
659
  export type ImageMobile = Image & {
660
+ /** Text describing the content of the image, usually hidden from the user unless the image is not available. It is to be read by screen readers. */
422
661
  readonly altText?: Maybe<Scalars['String']['output']>;
662
+ /** Text describing the content of the image, always shown next to the image. */
423
663
  readonly caption?: Maybe<Scalars['String']['output']>;
664
+ /** The credit of the image, eg. 'Getty Images'. */
424
665
  readonly credit?: Maybe<Scalars['String']['output']>;
666
+ /** The format of the image, eg. 'portrait'. */
425
667
  readonly format: Scalars['ImageFormat']['output'];
668
+ /** The height of the image in pixels. */
426
669
  readonly height?: Maybe<Scalars['Int']['output']>;
670
+ /** The unique identifier of the image - a uuid or a url. */
427
671
  readonly id: Scalars['String']['output'];
672
+ /** An array of image sources, ie. different images to render based on input width resulting in responsive images. */
428
673
  readonly sourceSet: ReadonlyArray<ImageSource>;
674
+ /** The type of the image, eg. 'graphic'. */
429
675
  readonly type?: Maybe<Scalars['ImageType']['output']>;
676
+ /** The url of the image, eg. 'https://www.ft.com/__origami/service/image/v2/images/raw/ftcms%3Aimage%3A0e7e7b6e-4e7b-11e9-bde6-79e4b4311f90?source=next&fit=scale-down&width=700'. */
430
677
  readonly url?: Maybe<Scalars['String']['output']>;
678
+ /** The width of the image in pixels. */
431
679
  readonly width?: Maybe<Scalars['Int']['output']>;
432
680
  };
433
681
 
@@ -438,15 +686,25 @@ export type ImageMobileSourceSetArgs = {
438
686
  };
439
687
 
440
688
  export type ImagePortrait = Image & {
689
+ /** Text describing the content of the image, usually hidden from the user unless the image is not available. It is to be read by screen readers. */
441
690
  readonly altText?: Maybe<Scalars['String']['output']>;
691
+ /** Text describing the content of the image, always shown next to the image. */
442
692
  readonly caption?: Maybe<Scalars['String']['output']>;
693
+ /** The credit of the image, eg. 'Getty Images'. */
443
694
  readonly credit?: Maybe<Scalars['String']['output']>;
695
+ /** The format of the image, eg. 'portrait'. */
444
696
  readonly format: Scalars['ImageFormat']['output'];
697
+ /** The height of the image in pixels. */
445
698
  readonly height?: Maybe<Scalars['Int']['output']>;
699
+ /** The unique identifier of the image - a uuid or a url. */
446
700
  readonly id: Scalars['String']['output'];
701
+ /** An array of image sources, ie. different images to render based on input width resulting in responsive images. */
447
702
  readonly sourceSet: ReadonlyArray<ImageSource>;
703
+ /** The type of the image, eg. 'graphic'. */
448
704
  readonly type?: Maybe<Scalars['ImageType']['output']>;
705
+ /** The url of the image, eg. 'https://www.ft.com/__origami/service/image/v2/images/raw/ftcms%3Aimage%3A0e7e7b6e-4e7b-11e9-bde6-79e4b4311f90?source=next&fit=scale-down&width=700'. */
449
706
  readonly url?: Maybe<Scalars['String']['output']>;
707
+ /** The width of the image in pixels. */
450
708
  readonly width?: Maybe<Scalars['Int']['output']>;
451
709
  };
452
710
 
@@ -457,26 +715,41 @@ export type ImagePortraitSourceSetArgs = {
457
715
  };
458
716
 
459
717
  export type ImageSet = Reference & {
718
+ /** A set of images with different sizes and formats. */
460
719
  readonly picture?: Maybe<Picture>;
720
+ /** The type of the reference, eg. 'image-set'. */
461
721
  readonly type: Scalars['String']['output'];
462
722
  };
463
723
 
464
724
  export type ImageSource = {
725
+ /** The device pixel ratio. DPR is calculated as DPR = Physical Pixels (pixels seen on screen) / Logical Pixels (pixel that can fit in a given space). */
465
726
  readonly dpr?: Maybe<Scalars['Int']['output']>;
727
+ /** The url of the image source, eg. 'https://www.ft.com/__origami/service/image/v2/images/raw/ftcms%3Aimage%3A0e7e7b6e-4e7b-11e9-bde6-79e4b4311f90?source=next&fit=scale-down&width=700'. */
466
728
  readonly url: Scalars['String']['output'];
729
+ /** The width of the image source in pixels. */
467
730
  readonly width?: Maybe<Scalars['Int']['output']>;
468
731
  };
469
732
 
470
733
  export type ImageSquare = Image & {
734
+ /** Text describing the content of the image, usually hidden from the user unless the image is not available. It is to be read by screen readers. */
471
735
  readonly altText?: Maybe<Scalars['String']['output']>;
736
+ /** Text describing the content of the image, always shown next to the image. */
472
737
  readonly caption?: Maybe<Scalars['String']['output']>;
738
+ /** The credit of the image, eg. 'Getty Images'. */
473
739
  readonly credit?: Maybe<Scalars['String']['output']>;
740
+ /** The format of the image, eg. 'portrait'. */
474
741
  readonly format: Scalars['ImageFormat']['output'];
742
+ /** The height of the image in pixels. */
475
743
  readonly height?: Maybe<Scalars['Int']['output']>;
744
+ /** The unique identifier of the image - a uuid or a url. */
476
745
  readonly id: Scalars['String']['output'];
746
+ /** An array of image sources, ie. different images to render based on input width resulting in responsive images. */
477
747
  readonly sourceSet: ReadonlyArray<ImageSource>;
748
+ /** The type of the image, eg. 'graphic'. */
478
749
  readonly type?: Maybe<Scalars['ImageType']['output']>;
750
+ /** The url of the image, eg. 'https://www.ft.com/__origami/service/image/v2/images/raw/ftcms%3Aimage%3A0e7e7b6e-4e7b-11e9-bde6-79e4b4311f90?source=next&fit=scale-down&width=700'. */
479
751
  readonly url?: Maybe<Scalars['String']['output']>;
752
+ /** The width of the image in pixels. */
480
753
  readonly width?: Maybe<Scalars['Int']['output']>;
481
754
  };
482
755
 
@@ -487,15 +760,25 @@ export type ImageSquareSourceSetArgs = {
487
760
  };
488
761
 
489
762
  export type ImageSquareFtEdit = Image & {
763
+ /** Text describing the content of the image, usually hidden from the user unless the image is not available. It is to be read by screen readers. */
490
764
  readonly altText?: Maybe<Scalars['String']['output']>;
765
+ /** Text describing the content of the image, always shown next to the image. */
491
766
  readonly caption?: Maybe<Scalars['String']['output']>;
767
+ /** The credit of the image, eg. 'Getty Images'. */
492
768
  readonly credit?: Maybe<Scalars['String']['output']>;
769
+ /** The format of the image, eg. 'portrait'. */
493
770
  readonly format: Scalars['ImageFormat']['output'];
771
+ /** The height of the image in pixels. */
494
772
  readonly height?: Maybe<Scalars['Int']['output']>;
773
+ /** The unique identifier of the image - a uuid or a url. */
495
774
  readonly id: Scalars['String']['output'];
775
+ /** An array of image sources, ie. different images to render based on input width resulting in responsive images. */
496
776
  readonly sourceSet: ReadonlyArray<ImageSource>;
777
+ /** The type of the image, eg. 'graphic'. */
497
778
  readonly type?: Maybe<Scalars['ImageType']['output']>;
779
+ /** The url of the image, eg. 'https://www.ft.com/__origami/service/image/v2/images/raw/ftcms%3Aimage%3A0e7e7b6e-4e7b-11e9-bde6-79e4b4311f90?source=next&fit=scale-down&width=700'. */
498
780
  readonly url?: Maybe<Scalars['String']['output']>;
781
+ /** The width of the image in pixels. */
499
782
  readonly width?: Maybe<Scalars['Int']['output']>;
500
783
  };
501
784
 
@@ -506,15 +789,25 @@ export type ImageSquareFtEditSourceSetArgs = {
506
789
  };
507
790
 
508
791
  export type ImageStandard = Image & {
792
+ /** Text describing the content of the image, usually hidden from the user unless the image is not available. It is to be read by screen readers. */
509
793
  readonly altText?: Maybe<Scalars['String']['output']>;
794
+ /** Text describing the content of the image, always shown next to the image. */
510
795
  readonly caption?: Maybe<Scalars['String']['output']>;
796
+ /** The credit of the image, eg. 'Getty Images'. */
511
797
  readonly credit?: Maybe<Scalars['String']['output']>;
798
+ /** The format of the image, eg. 'portrait'. */
512
799
  readonly format: Scalars['ImageFormat']['output'];
800
+ /** The height of the image in pixels. */
513
801
  readonly height?: Maybe<Scalars['Int']['output']>;
802
+ /** The unique identifier of the image - a uuid or a url. */
514
803
  readonly id: Scalars['String']['output'];
804
+ /** An array of image sources, ie. different images to render based on input width resulting in responsive images. */
515
805
  readonly sourceSet: ReadonlyArray<ImageSource>;
806
+ /** The type of the image, eg. 'graphic'. */
516
807
  readonly type?: Maybe<Scalars['ImageType']['output']>;
808
+ /** The url of the image, eg. 'https://www.ft.com/__origami/service/image/v2/images/raw/ftcms%3Aimage%3A0e7e7b6e-4e7b-11e9-bde6-79e4b4311f90?source=next&fit=scale-down&width=700'. */
517
809
  readonly url?: Maybe<Scalars['String']['output']>;
810
+ /** The width of the image in pixels. */
518
811
  readonly width?: Maybe<Scalars['Int']['output']>;
519
812
  };
520
813
 
@@ -525,15 +818,25 @@ export type ImageStandardSourceSetArgs = {
525
818
  };
526
819
 
527
820
  export type ImageStandardInline = Image & {
821
+ /** Text describing the content of the image, usually hidden from the user unless the image is not available. It is to be read by screen readers. */
528
822
  readonly altText?: Maybe<Scalars['String']['output']>;
823
+ /** Text describing the content of the image, always shown next to the image. */
529
824
  readonly caption?: Maybe<Scalars['String']['output']>;
825
+ /** The credit of the image, eg. 'Getty Images'. */
530
826
  readonly credit?: Maybe<Scalars['String']['output']>;
827
+ /** The format of the image, eg. 'portrait'. */
531
828
  readonly format: Scalars['ImageFormat']['output'];
829
+ /** The height of the image in pixels. */
532
830
  readonly height?: Maybe<Scalars['Int']['output']>;
831
+ /** The unique identifier of the image - a uuid or a url. */
533
832
  readonly id: Scalars['String']['output'];
833
+ /** An array of image sources, ie. different images to render based on input width resulting in responsive images. */
534
834
  readonly sourceSet: ReadonlyArray<ImageSource>;
835
+ /** The type of the image, eg. 'graphic'. */
535
836
  readonly type?: Maybe<Scalars['ImageType']['output']>;
837
+ /** The url of the image, eg. 'https://www.ft.com/__origami/service/image/v2/images/raw/ftcms%3Aimage%3A0e7e7b6e-4e7b-11e9-bde6-79e4b4311f90?source=next&fit=scale-down&width=700'. */
536
838
  readonly url?: Maybe<Scalars['String']['output']>;
839
+ /** The width of the image in pixels. */
537
840
  readonly width?: Maybe<Scalars['Int']['output']>;
538
841
  };
539
842
 
@@ -544,15 +847,25 @@ export type ImageStandardInlineSourceSetArgs = {
544
847
  };
545
848
 
546
849
  export type ImageWide = Image & {
850
+ /** Text describing the content of the image, usually hidden from the user unless the image is not available. It is to be read by screen readers. */
547
851
  readonly altText?: Maybe<Scalars['String']['output']>;
852
+ /** Text describing the content of the image, always shown next to the image. */
548
853
  readonly caption?: Maybe<Scalars['String']['output']>;
854
+ /** The credit of the image, eg. 'Getty Images'. */
549
855
  readonly credit?: Maybe<Scalars['String']['output']>;
856
+ /** The format of the image, eg. 'portrait'. */
550
857
  readonly format: Scalars['ImageFormat']['output'];
858
+ /** The height of the image in pixels. */
551
859
  readonly height?: Maybe<Scalars['Int']['output']>;
860
+ /** The unique identifier of the image - a uuid or a url. */
552
861
  readonly id: Scalars['String']['output'];
862
+ /** An array of image sources, ie. different images to render based on input width resulting in responsive images. */
553
863
  readonly sourceSet: ReadonlyArray<ImageSource>;
864
+ /** The type of the image, eg. 'graphic'. */
554
865
  readonly type?: Maybe<Scalars['ImageType']['output']>;
866
+ /** The url of the image, eg. 'https://www.ft.com/__origami/service/image/v2/images/raw/ftcms%3Aimage%3A0e7e7b6e-4e7b-11e9-bde6-79e4b4311f90?source=next&fit=scale-down&width=700'. */
555
867
  readonly url?: Maybe<Scalars['String']['output']>;
868
+ /** The width of the image in pixels. */
556
869
  readonly width?: Maybe<Scalars['Int']['output']>;
557
870
  };
558
871
 
@@ -562,47 +875,83 @@ export type ImageWideSourceSetArgs = {
562
875
  width?: InputMaybe<Scalars['Int']['input']>;
563
876
  };
564
877
 
878
+ /** Indicators are used to determine teaser styling. */
565
879
  export type Indicators = {
880
+ /** The access level of the teaser, eg. 'free' or 'premium'. */
566
881
  readonly accessLevel?: Maybe<Scalars['AccessLevel']['output']>;
882
+ /** Whether the teaser is a column, ie. has one author. */
567
883
  readonly isColumn?: Maybe<Scalars['Boolean']['output']>;
884
+ /** Whether the teaser is an editor's choice. */
568
885
  readonly isEditorsChoice?: Maybe<Scalars['Boolean']['output']>;
886
+ /** Whether the teaser is exclusive. */
569
887
  readonly isExclusive?: Maybe<Scalars['Boolean']['output']>;
888
+ /** Whether the teaser is an opinion piece. */
570
889
  readonly isOpinion?: Maybe<Scalars['Boolean']['output']>;
890
+ /** Whether the teaser is a podcast. */
571
891
  readonly isPodcast?: Maybe<Scalars['Boolean']['output']>;
892
+ /** Whether the teaser is a scoop. */
572
893
  readonly isScoop?: Maybe<Scalars['Boolean']['output']>;
573
894
  };
574
895
 
575
896
  export type LayoutImage = Reference & {
897
+ /** A set of images with different sizes and formats. */
576
898
  readonly picture?: Maybe<Picture>;
899
+ /** The type of the reference, eg. 'layout-image'. */
577
900
  readonly type: Scalars['String']['output'];
578
901
  };
579
902
 
580
903
  export type LiveBlogPackage = Content & {
904
+ /** A scalar representing the access level of the article, eg. 'free'. */
581
905
  readonly accessLevel?: Maybe<Scalars['AccessLevel']['output']>;
906
+ /** An alternative introductory paragraph of the article. */
582
907
  readonly altStandfirst?: Maybe<AltStandfirst>;
908
+ /** An alternative title of the article. */
583
909
  readonly altTitle?: Maybe<AltTitle>;
910
+ /** An array of concepts related to the article, eg. organisations or topics. */
584
911
  readonly annotations?: Maybe<ReadonlyArray<Maybe<Concept>>>;
912
+ /** An abstract syntax tree of the article content. */
585
913
  readonly body?: Maybe<RichText>;
914
+ /** The raw string of the XML as returned from ContentAPI. */
586
915
  readonly bodyXML?: Maybe<Scalars['String']['output']>;
916
+ /** An abstract syntax tree of the authors of the article. */
587
917
  readonly byline?: Maybe<StructuredContent>;
918
+ /** A scalar representing whether the article can be syndicated, ie. published by a third party site. */
588
919
  readonly canBeSyndicated?: Maybe<Scalars['CanBeSyndicated']['output']>;
920
+ /** Whether comments are enabled on the article. */
589
921
  readonly commentsEnabled?: Maybe<Scalars['Boolean']['output']>;
922
+ /** A design object containing the theme and layout of the article. */
590
923
  readonly design?: Maybe<Design>;
924
+ /** The editorial division the article belongs to, eg. 'FT-SpecialReports'. */
591
925
  readonly editorialDesk?: Maybe<Scalars['String']['output']>;
926
+ /** The first ISO string date the article was published, eg. '2024-04-03T10:35:52.443Z'. */
592
927
  readonly firstPublishedDate: Scalars['String']['output'];
928
+ /** The unique identifier of the article - a uuid or a url. */
593
929
  readonly id: Scalars['ID']['output'];
930
+ /** The concept to use for instant alert CTAs. */
594
931
  readonly instantAlertConcept?: Maybe<Concept>;
932
+ /** The child articles of this live blog package. */
595
933
  readonly liveBlogPosts?: Maybe<ReadonlyArray<Maybe<Content>>>;
934
+ /** An image object containing the url and the caption, to be displayed usually before the article content. */
596
935
  readonly mainImage?: Maybe<Image>;
936
+ /** The party that originated the article, eg. 'FT'. */
597
937
  readonly originatingParty?: Maybe<Scalars['String']['output']>;
938
+ /** The pinned article of this live blog package. */
598
939
  readonly pinnedPost?: Maybe<Content>;
940
+ /** The ISO string date the article was published, eg. '2024-04-03T10:35:52.443Z'. */
599
941
  readonly publishedDate: Scalars['String']['output'];
942
+ /** Whether the live blog package should be updated in real time. */
600
943
  readonly realtime?: Maybe<Scalars['Boolean']['output']>;
944
+ /** An introductory paragraph of the article. */
601
945
  readonly standfirst?: Maybe<Scalars['String']['output']>;
946
+ /** A promotional thumbnail / snapshot of the article. */
602
947
  readonly teaser?: Maybe<Teaser>;
948
+ /** The title of the article. */
603
949
  readonly title: Scalars['String']['output'];
950
+ /** A banner located usually at the top of articles containing the title, the standfirst and any images. */
604
951
  readonly topper?: Maybe<Topper>;
952
+ /** The type of the article, eg. 'Article' or 'Video'. */
605
953
  readonly type: Scalars['ContentType']['output'];
954
+ /** The url of the concept. Vanity urls replace long, randomly generated urls - they are more user friendly and concise. Relative urls are relative to the current domain. */
606
955
  readonly url: Scalars['String']['output'];
607
956
  };
608
957
 
@@ -623,31 +972,57 @@ export type LiveBlogPackageUrlArgs = {
623
972
  };
624
973
 
625
974
  export type LiveBlogPost = Content & {
975
+ /** A scalar representing the access level of the article, eg. 'free'. */
626
976
  readonly accessLevel?: Maybe<Scalars['AccessLevel']['output']>;
977
+ /** An alternative introductory paragraph of the article. */
627
978
  readonly altStandfirst?: Maybe<AltStandfirst>;
979
+ /** An alternative title of the article. */
628
980
  readonly altTitle?: Maybe<AltTitle>;
981
+ /** An array of concepts related to the article, eg. organisations or topics. */
629
982
  readonly annotations?: Maybe<ReadonlyArray<Maybe<Concept>>>;
983
+ /** An abstract syntax tree of the article content. */
630
984
  readonly body?: Maybe<RichText>;
985
+ /** The raw string of the XML as returned from ContentAPI. */
631
986
  readonly bodyXML?: Maybe<Scalars['String']['output']>;
987
+ /** An abstract syntax tree of the authors of the article. */
632
988
  readonly byline?: Maybe<StructuredContent>;
989
+ /** A scalar representing whether the article can be syndicated, ie. published by a third party site. */
633
990
  readonly canBeSyndicated?: Maybe<Scalars['CanBeSyndicated']['output']>;
991
+ /** Whether comments are enabled on the article. */
634
992
  readonly commentsEnabled?: Maybe<Scalars['Boolean']['output']>;
993
+ /** The parent article, indicating this article is a part of a series or package. */
635
994
  readonly containedIn?: Maybe<Content>;
995
+ /** A design object containing the theme and layout of the article. */
636
996
  readonly design?: Maybe<Design>;
997
+ /** The editorial division the article belongs to, eg. 'FT-SpecialReports'. */
637
998
  readonly editorialDesk?: Maybe<Scalars['String']['output']>;
999
+ /** The first ISO string date the article was published, eg. '2024-04-03T10:35:52.443Z'. */
638
1000
  readonly firstPublishedDate: Scalars['String']['output'];
1001
+ /** The unique identifier of the article - a uuid or a url. */
639
1002
  readonly id: Scalars['ID']['output'];
1003
+ /** An object indicating whether the article is an opinion piece. */
640
1004
  readonly indicators?: Maybe<Indicators>;
1005
+ /** The concept to use for instant alert CTAs. */
641
1006
  readonly instantAlertConcept?: Maybe<Concept>;
1007
+ /** Whether the live-blog-post should be pinned. */
642
1008
  readonly isPinned?: Maybe<Scalars['Boolean']['output']>;
1009
+ /** An image object containing the url and the caption, to be displayed usually before the article content. */
643
1010
  readonly mainImage?: Maybe<Image>;
1011
+ /** The party that originated the article, eg. 'FT'. */
644
1012
  readonly originatingParty?: Maybe<Scalars['String']['output']>;
1013
+ /** The ISO string date the article was published, eg. '2024-04-03T10:35:52.443Z'. */
645
1014
  readonly publishedDate: Scalars['String']['output'];
1015
+ /** An introductory paragraph of the article. */
646
1016
  readonly standfirst?: Maybe<Scalars['String']['output']>;
1017
+ /** A promotional thumbnail / snapshot of the article. */
647
1018
  readonly teaser?: Maybe<Teaser>;
1019
+ /** The title of the article. */
648
1020
  readonly title: Scalars['String']['output'];
1021
+ /** A banner located usually at the top of articles containing the title, the standfirst and any images. */
649
1022
  readonly topper?: Maybe<Topper>;
1023
+ /** The type of the article, eg. 'Article' or 'Video'. */
650
1024
  readonly type: Scalars['ContentType']['output'];
1025
+ /** The url of the concept. Vanity urls replace long, randomly generated urls - they are more user friendly and concise. Relative urls are relative to the current domain. */
651
1026
  readonly url: Scalars['String']['output'];
652
1027
  };
653
1028
 
@@ -663,20 +1038,27 @@ export type LiveBlogPostUrlArgs = {
663
1038
  };
664
1039
 
665
1040
  export type MainImage = Reference & {
1041
+ /** A set of images with different sizes and formats. */
666
1042
  readonly picture?: Maybe<Picture>;
1043
+ /** The type of the reference, eg. 'main-image'. */
667
1044
  readonly type: Scalars['String']['output'];
668
1045
  };
669
1046
 
670
1047
  export type Media = {
1048
+ /** The duration of the media in milliseconds. */
671
1049
  readonly duration?: Maybe<Scalars['Int']['output']>;
1050
+ /** The filesize of the media in bytes. */
672
1051
  readonly filesize?: Maybe<Scalars['Int']['output']>;
1052
+ /** The media type eg. video/mp4. */
673
1053
  readonly mediaType?: Maybe<Scalars['String']['output']>;
1054
+ /** The url of the media, eg. 'https://next-media-api.ft.com/renditions/16868569859480/0x0.mp3'. */
674
1055
  readonly url?: Maybe<Scalars['String']['output']>;
675
1056
  };
676
1057
 
677
1058
  export type MetaLink = Concept | ContentPackage;
678
1059
 
679
1060
  export type Mutation = {
1061
+ /** A mutation to invalidate the redis cache for content-api responses for a given uuid. */
680
1062
  readonly invalidateRedisCache?: Maybe<Scalars['String']['output']>;
681
1063
  };
682
1064
 
@@ -686,17 +1068,29 @@ export type MutationInvalidateRedisCacheArgs = {
686
1068
  };
687
1069
 
688
1070
  export type OpinionTopper = Topper & TopperWithHeadshot & TopperWithTheme & {
1071
+ /** Whether the topper should have a background box. */
689
1072
  readonly backgroundBox?: Maybe<Scalars['Boolean']['output']>;
1073
+ /** The background colour of the topper. */
690
1074
  readonly backgroundColour?: Maybe<Scalars['TopperBackgroundColour']['output']>;
1075
+ /** The concept object describing details of the column author. */
691
1076
  readonly columnist?: Maybe<Concept>;
1077
+ /** The concept object to be displayed, eg. {'type': 'TOPIC', 'prefLabel': 'Non-dom tax status', ...}. */
692
1078
  readonly displayConcept?: Maybe<Concept>;
1079
+ /** The variant of the follow button to be displayed on the topper. */
693
1080
  readonly followButtonVariant?: Maybe<Scalars['FollowButtonVariant']['output']>;
1081
+ /** The concept object of the genre, eg. {'type': 'GENRE', 'prefLabel': 'Opinion', ...}. */
694
1082
  readonly genreConcept?: Maybe<Concept>;
1083
+ /** The headline text of the topper. */
695
1084
  readonly headline: Scalars['String']['output'];
1085
+ /** The url of the headshot image, eg. for columns with one key author. */
696
1086
  readonly headshot?: Maybe<Scalars['String']['output']>;
1087
+ /** An abstract syntax tree of the introduction text. */
697
1088
  readonly intro?: Maybe<RichText>;
1089
+ /** Whether the headline should be large. */
698
1090
  readonly isLargeHeadline?: Maybe<Scalars['Boolean']['output']>;
1091
+ /** The layout of the topper, eg. 'split-text-left'. */
699
1092
  readonly layout?: Maybe<Scalars['String']['output']>;
1093
+ /** Whether the topper should have a text shadow. */
700
1094
  readonly textShadow?: Maybe<Scalars['Boolean']['output']>;
701
1095
  };
702
1096
 
@@ -706,70 +1100,123 @@ export type OpinionTopperHeadshotArgs = {
706
1100
  width?: InputMaybe<Scalars['Int']['input']>;
707
1101
  };
708
1102
 
1103
+ /** A wrapper for images. */
709
1104
  export type Picture = {
1105
+ /** The alt text of the image to be used for accessibility. */
710
1106
  readonly alt: Scalars['String']['output'];
1107
+ /** The caption of the image. */
711
1108
  readonly caption?: Maybe<Scalars['String']['output']>;
1109
+ /** The credit of the image, eg. 'Getty Images'. */
712
1110
  readonly credit?: Maybe<Scalars['String']['output']>;
1111
+ /** A fallback image to be used if the 'images' are not available. */
713
1112
  readonly fallbackImage: Image;
1113
+ /** The type of the image, eg. 'image' or 'graphic'. */
714
1114
  readonly imageType: Scalars['ImageType']['output'];
1115
+ /** A set of images with different sizes and formats. */
715
1116
  readonly images: ReadonlyArray<Image>;
1117
+ /** The layout width of the image, eg, 'standard'. */
716
1118
  readonly layoutWidth?: Maybe<Scalars['String']['output']>;
717
1119
  };
718
1120
 
719
1121
  export type PictureFullBleed = Picture & {
1122
+ /** The alt text of the image to be used for accessibility. */
720
1123
  readonly alt: Scalars['String']['output'];
1124
+ /** The caption of the image. */
721
1125
  readonly caption?: Maybe<Scalars['String']['output']>;
1126
+ /** The credit of the image, eg. 'Getty Images'. */
722
1127
  readonly credit?: Maybe<Scalars['String']['output']>;
1128
+ /** A fallback image to be used if the 'images' are not available. */
723
1129
  readonly fallbackImage: Image;
1130
+ /** The type of the image, eg. 'image' or 'graphic'. */
724
1131
  readonly imageType: Scalars['ImageType']['output'];
1132
+ /** A set of images with different sizes and formats. */
725
1133
  readonly images: ReadonlyArray<Image>;
1134
+ /** The layout width of the image, eg, 'standard'. */
726
1135
  readonly layoutWidth?: Maybe<Scalars['String']['output']>;
727
1136
  };
728
1137
 
729
1138
  export type PictureInline = Picture & {
1139
+ /** The alt text of the image to be used for accessibility. */
730
1140
  readonly alt: Scalars['String']['output'];
1141
+ /** The caption of the image. */
731
1142
  readonly caption?: Maybe<Scalars['String']['output']>;
1143
+ /** The credit of the image, eg. 'Getty Images'. */
732
1144
  readonly credit?: Maybe<Scalars['String']['output']>;
1145
+ /** A fallback image to be used if the 'images' are not available. */
733
1146
  readonly fallbackImage: Image;
1147
+ /** The type of the image, eg. 'image' or 'graphic'. */
734
1148
  readonly imageType: Scalars['ImageType']['output'];
1149
+ /** A set of images with different sizes and formats. */
735
1150
  readonly images: ReadonlyArray<Image>;
1151
+ /** The layout width of the image, eg, 'standard'. */
736
1152
  readonly layoutWidth?: Maybe<Scalars['String']['output']>;
737
1153
  };
738
1154
 
739
1155
  export type PictureStandard = Picture & {
1156
+ /** The alt text of the image to be used for accessibility. */
740
1157
  readonly alt: Scalars['String']['output'];
1158
+ /** The caption of the image. */
741
1159
  readonly caption?: Maybe<Scalars['String']['output']>;
1160
+ /** The credit of the image, eg. 'Getty Images'. */
742
1161
  readonly credit?: Maybe<Scalars['String']['output']>;
1162
+ /** A fallback image to be used if the 'images' are not available. */
743
1163
  readonly fallbackImage: Image;
1164
+ /** The type of the image, eg. 'image' or 'graphic'. */
744
1165
  readonly imageType: Scalars['ImageType']['output'];
1166
+ /** A set of images with different sizes and formats. */
745
1167
  readonly images: ReadonlyArray<Image>;
1168
+ /** The layout width of the image, eg, 'standard'. */
746
1169
  readonly layoutWidth?: Maybe<Scalars['String']['output']>;
747
1170
  };
748
1171
 
749
1172
  export type Placeholder = Content & {
1173
+ /** A scalar representing the access level of the article, eg. 'free'. */
750
1174
  readonly accessLevel?: Maybe<Scalars['AccessLevel']['output']>;
1175
+ /** An alternative introductory paragraph of the article. */
751
1176
  readonly altStandfirst?: Maybe<AltStandfirst>;
1177
+ /** An alternative title of the article. */
752
1178
  readonly altTitle?: Maybe<AltTitle>;
1179
+ /** An array of concepts related to the article, eg. organisations or topics. */
753
1180
  readonly annotations?: Maybe<ReadonlyArray<Maybe<Concept>>>;
1181
+ /** An abstract syntax tree of the article content. */
754
1182
  readonly body?: Maybe<RichText>;
1183
+ /** The raw string of the XML as returned from ContentAPI. */
755
1184
  readonly bodyXML?: Maybe<Scalars['String']['output']>;
1185
+ /** An abstract syntax tree of the authors of the article. */
756
1186
  readonly byline?: Maybe<StructuredContent>;
1187
+ /** A scalar representing whether the article can be syndicated, ie. published by a third party site. */
757
1188
  readonly canBeSyndicated?: Maybe<Scalars['CanBeSyndicated']['output']>;
1189
+ /** Whether comments are enabled on the article. */
758
1190
  readonly commentsEnabled?: Maybe<Scalars['Boolean']['output']>;
1191
+ /** The parent article, indicating this article is a part of a series or package. */
759
1192
  readonly containedIn?: Maybe<Content>;
1193
+ /** A design object containing the theme and layout of the article. */
760
1194
  readonly design?: Maybe<Design>;
1195
+ /** The editorial division the article belongs to, eg. 'FT-SpecialReports'. */
761
1196
  readonly editorialDesk?: Maybe<Scalars['String']['output']>;
1197
+ /** The first ISO string date the article was published, eg. '2024-04-03T10:35:52.443Z'. */
762
1198
  readonly firstPublishedDate: Scalars['String']['output'];
1199
+ /** The unique identifier of the article - a uuid or a url. */
763
1200
  readonly id: Scalars['ID']['output'];
1201
+ /** The concept to use for instant alert CTAs. */
764
1202
  readonly instantAlertConcept?: Maybe<Concept>;
1203
+ /** An image object containing the url and the caption, to be displayed usually before the article content. */
765
1204
  readonly mainImage?: Maybe<Image>;
1205
+ /** The party that originated the article, eg. 'FT'. */
766
1206
  readonly originatingParty?: Maybe<Scalars['String']['output']>;
1207
+ /** The ISO string date the article was published, eg. '2024-04-03T10:35:52.443Z'. */
767
1208
  readonly publishedDate: Scalars['String']['output'];
1209
+ /** An introductory paragraph of the article. */
768
1210
  readonly standfirst?: Maybe<Scalars['String']['output']>;
1211
+ /** A promotional thumbnail / snapshot of the article. */
769
1212
  readonly teaser?: Maybe<Teaser>;
1213
+ /** The title of the article. */
770
1214
  readonly title: Scalars['String']['output'];
1215
+ /** A banner located usually at the top of articles containing the title, the standfirst and any images. */
771
1216
  readonly topper?: Maybe<Topper>;
1217
+ /** The type of the article, eg. 'Article' or 'Video'. */
772
1218
  readonly type: Scalars['ContentType']['output'];
1219
+ /** The url of the concept. Vanity urls replace long, randomly generated urls - they are more user friendly and concise. Relative urls are relative to the current domain. */
773
1220
  readonly url: Scalars['String']['output'];
774
1221
  };
775
1222
 
@@ -785,18 +1232,31 @@ export type PlaceholderUrlArgs = {
785
1232
  };
786
1233
 
787
1234
  export type PodcastTopper = Topper & TopperWithBrand & TopperWithHeadshot & TopperWithTheme & {
1235
+ /** Whether the topper should have a background box. */
788
1236
  readonly backgroundBox?: Maybe<Scalars['Boolean']['output']>;
1237
+ /** The background colour of the topper. */
789
1238
  readonly backgroundColour?: Maybe<Scalars['TopperBackgroundColour']['output']>;
1239
+ /** The concept object of the brand, eg. {'type': 'BRAND', 'prefLabel': 'FT Magazine', ...}. */
790
1240
  readonly brandConcept?: Maybe<Concept>;
1241
+ /** The concept object describing details of the column author. */
791
1242
  readonly columnist?: Maybe<Concept>;
1243
+ /** The concept object to be displayed, eg. {'type': 'TOPIC', 'prefLabel': 'Non-dom tax status', ...}. */
792
1244
  readonly displayConcept?: Maybe<Concept>;
1245
+ /** The variant of the follow button to be displayed on the topper. */
793
1246
  readonly followButtonVariant?: Maybe<Scalars['FollowButtonVariant']['output']>;
1247
+ /** The concept object of the genre, eg. {'type': 'GENRE', 'prefLabel': 'Opinion', ...}. */
794
1248
  readonly genreConcept?: Maybe<Concept>;
1249
+ /** The headline text of the topper. */
795
1250
  readonly headline: Scalars['String']['output'];
1251
+ /** The url of the headshot image, eg. for columns with one key author. */
796
1252
  readonly headshot?: Maybe<Scalars['String']['output']>;
1253
+ /** An abstract syntax tree of the introduction text. */
797
1254
  readonly intro?: Maybe<RichText>;
1255
+ /** Whether the headline should be large. */
798
1256
  readonly isLargeHeadline?: Maybe<Scalars['Boolean']['output']>;
1257
+ /** The layout of the topper, eg. 'split-text-left'. */
799
1258
  readonly layout?: Maybe<Scalars['String']['output']>;
1259
+ /** Whether the topper should have a text shadow. */
800
1260
  readonly textShadow?: Maybe<Scalars['Boolean']['output']>;
801
1261
  };
802
1262
 
@@ -807,8 +1267,11 @@ export type PodcastTopperHeadshotArgs = {
807
1267
  };
808
1268
 
809
1269
  export type Query = {
1270
+ /** The resolved article content for given uuid. */
810
1271
  readonly content: Content;
1272
+ /** The article content as resolved from passed-in content-api json data. */
811
1273
  readonly contentFromJSON: Content;
1274
+ /** The version of the schema, eg. 2.0.0. */
812
1275
  readonly version: Scalars['String']['output'];
813
1276
  };
814
1277
 
@@ -823,21 +1286,26 @@ export type QueryContentFromJsonArgs = {
823
1286
  };
824
1287
 
825
1288
  export type RawImage = Reference & {
1289
+ /** The raw image object. */
826
1290
  readonly image: Image;
1291
+ /** The type of the reference, eg. 'raw-image'. */
827
1292
  readonly type: Scalars['String']['output'];
828
1293
  };
829
1294
 
830
1295
  export type Recommended = Reference & {
1296
+ /** Recommended references contain teaser thumbnails of related articles. */
831
1297
  readonly teaser?: Maybe<Teaser>;
1298
+ /** The type of the reference, eg. 'recommended'. */
832
1299
  readonly type: Scalars['String']['output'];
833
1300
  };
834
1301
 
835
1302
  export type Reference = {
1303
+ /** The type of the reference, eg. 'image-set'. References are additional data that cannot be loaded by content-tree. They will be appended to content-tree nodes during resolution. */
836
1304
  readonly type: Scalars['String']['output'];
837
1305
  };
838
1306
 
839
1307
  export type RichText = {
840
- /** Raw string of the XML as returned from ContentAPI. */
1308
+ /** Raw string of the XML as returned from content-api. */
841
1309
  readonly raw?: Maybe<Scalars['String']['output']>;
842
1310
  /** The source format eg. bodyXML. */
843
1311
  readonly source: Scalars['RichTextSource']['output'];
@@ -846,28 +1314,44 @@ export type RichText = {
846
1314
  };
847
1315
 
848
1316
  export type ScrollyImage = Reference & {
1317
+ /** A set of images with different sizes and formats. */
849
1318
  readonly picture?: Maybe<Picture>;
1319
+ /** The type of the reference, eg. 'scrolly-image'. */
850
1320
  readonly type: Scalars['String']['output'];
851
1321
  };
852
1322
 
853
1323
  export type SplitTextTopper = Topper & TopperWithBrand & TopperWithImages & TopperWithPackage & TopperWithTheme & {
1324
+ /** Whether the topper should have a background box. */
854
1325
  readonly backgroundBox?: Maybe<Scalars['Boolean']['output']>;
1326
+ /** The background colour of the topper. */
855
1327
  readonly backgroundColour?: Maybe<Scalars['TopperBackgroundColour']['output']>;
1328
+ /** The concept object of the brand, eg. {'type': 'BRAND', 'prefLabel': 'FT Magazine', ...}. */
856
1329
  readonly brandConcept?: Maybe<Concept>;
1330
+ /** The design of the topper, eg. 'standard'. */
857
1331
  readonly design?: Maybe<Scalars['String']['output']>;
1332
+ /** The concept object to be displayed, eg. {'type': 'TOPIC', 'prefLabel': 'Non-dom tax status', ...}. */
858
1333
  readonly displayConcept?: Maybe<Concept>;
1334
+ /** A fallback image to be used if the 'images' are not availableimages: [Image!]!. */
859
1335
  readonly fallbackImage?: Maybe<Image>;
1336
+ /** The variant of the follow button to be displayed on the topper. */
860
1337
  readonly followButtonVariant?: Maybe<Scalars['FollowButtonVariant']['output']>;
1338
+ /** The concept object of the genre, eg. {'type': 'GENRE', 'prefLabel': 'Opinion', ...}. */
861
1339
  readonly genreConcept?: Maybe<Concept>;
1340
+ /** The headline text of the topper. */
862
1341
  readonly headline: Scalars['String']['output'];
1342
+ /** An array of images to be displayed on the topper. */
863
1343
  readonly images: ReadonlyArray<Image>;
1344
+ /** An abstract syntax tree of the introduction text. */
864
1345
  readonly intro?: Maybe<RichText>;
1346
+ /** Whether the headline should be large. */
865
1347
  readonly isLargeHeadline?: Maybe<Scalars['Boolean']['output']>;
1348
+ /** The layout of the topper, eg. 'split-text-left'. */
866
1349
  readonly layout?: Maybe<Scalars['String']['output']>;
1350
+ /** Whether the topper should have a text shadow. */
867
1351
  readonly textShadow?: Maybe<Scalars['Boolean']['output']>;
868
1352
  };
869
1353
 
870
- /** Describes the structure of content as an abstract syntax tree */
1354
+ /** Describes the structure of content as an abstract syntax tree. */
871
1355
  export type StructuredContent = {
872
1356
  /** An array of objects containing extra information for nodes, which is fetched from external sources eg. Twitter API. */
873
1357
  readonly references: ReadonlyArray<Reference>;
@@ -878,24 +1362,40 @@ export type StructuredContent = {
878
1362
  };
879
1363
 
880
1364
  export type TableOfContents = {
1365
+ /** The formatting of the label, eg. 'part-number'. */
881
1366
  readonly labelType?: Maybe<Scalars['String']['output']>;
1367
+ /** The ordering, eg. 'exact-order'. */
882
1368
  readonly sequence?: Maybe<Scalars['String']['output']>;
883
1369
  };
884
1370
 
885
1371
  export type Teaser = {
1372
+ /** The date the content of the teaser was first published. */
886
1373
  readonly firstPublishedDate?: Maybe<Scalars['String']['output']>;
1374
+ /** The unique identifier of the teaser, a uuid or a url. */
887
1375
  readonly id?: Maybe<Scalars['String']['output']>;
1376
+ /** The image to be used as a thumbnail for the teaser. */
888
1377
  readonly image?: Maybe<Image>;
1378
+ /** An object containing a map of indicator items to boolean values, eg. accessLevel, isOpinion. */
889
1379
  readonly indicators?: Maybe<Indicators>;
1380
+ /** An object containing the metadata details of the teaser, eg. id, url, prefLabel. */
890
1381
  readonly metaAltLink?: Maybe<MetaLink>;
1382
+ /** An object containing the metadata details of the teaser, eg. id, url, prefLabel. */
891
1383
  readonly metaLink?: Maybe<MetaLink>;
1384
+ /** The text to be displayed before the metadata of the teaser. */
892
1385
  readonly metaPrefixText?: Maybe<Scalars['String']['output']>;
1386
+ /** The text to be displayed after the metadata of the teaser. */
893
1387
  readonly metaSuffixText?: Maybe<Scalars['String']['output']>;
1388
+ /** The date the content of the teaser was published. */
894
1389
  readonly publishedDate?: Maybe<Scalars['String']['output']>;
1390
+ /** The introductory text of the teaser. */
895
1391
  readonly standfirst?: Maybe<Scalars['String']['output']>;
1392
+ /** The theme to use for the teaser, eg. 'opinion' or 'news'. */
896
1393
  readonly theme?: Maybe<Scalars['String']['output']>;
1394
+ /** The title of the teaser. */
897
1395
  readonly title?: Maybe<Scalars['String']['output']>;
1396
+ /** The type of the teaser, eg. 'article' or 'video'. */
898
1397
  readonly type?: Maybe<Scalars['String']['output']>;
1398
+ /** The url of the content that the teaser refers to. */
899
1399
  readonly url: Scalars['String']['output'];
900
1400
  };
901
1401
 
@@ -905,22 +1405,33 @@ export type TeaserUrlArgs = {
905
1405
  };
906
1406
 
907
1407
  export type Topper = {
1408
+ /** Whether the topper should have a background box. */
908
1409
  readonly backgroundBox?: Maybe<Scalars['Boolean']['output']>;
1410
+ /** The background colour of the topper. */
909
1411
  readonly backgroundColour?: Maybe<Scalars['TopperBackgroundColour']['output']>;
1412
+ /** The concept object to be displayed, eg. {'type': 'TOPIC', 'prefLabel': 'Non-dom tax status', ...}. */
910
1413
  readonly displayConcept?: Maybe<Concept>;
1414
+ /** The variant of the follow button to be displayed on the topper. */
911
1415
  readonly followButtonVariant?: Maybe<Scalars['FollowButtonVariant']['output']>;
1416
+ /** The concept object of the genre, eg. {'type': 'GENRE', 'prefLabel': 'Opinion', ...}. */
912
1417
  readonly genreConcept?: Maybe<Concept>;
1418
+ /** The headline text of the topper. */
913
1419
  readonly headline: Scalars['String']['output'];
1420
+ /** An abstract syntax tree of the introduction text. */
914
1421
  readonly intro?: Maybe<RichText>;
1422
+ /** Whether the topper should have a text shadow. */
915
1423
  readonly textShadow?: Maybe<Scalars['Boolean']['output']>;
916
1424
  };
917
1425
 
918
1426
  export type TopperWithBrand = {
1427
+ /** The concept object of the brand, eg. {'type': 'BRAND', 'prefLabel': 'FT Magazine', ...}. */
919
1428
  readonly brandConcept?: Maybe<Concept>;
1429
+ /** The concept object of the genre, eg. {'type': 'GENRE', 'prefLabel': 'Opinion', ...}. */
920
1430
  readonly genreConcept?: Maybe<Concept>;
921
1431
  };
922
1432
 
923
1433
  export type TopperWithHeadshot = {
1434
+ /** The url of the headshot image, eg. for columns with one key author. */
924
1435
  readonly headshot?: Maybe<Scalars['String']['output']>;
925
1436
  };
926
1437
 
@@ -931,47 +1442,77 @@ export type TopperWithHeadshotHeadshotArgs = {
931
1442
  };
932
1443
 
933
1444
  export type TopperWithImages = {
1445
+ /** A fallback image to be used if the 'images' are not available. */
934
1446
  readonly fallbackImage?: Maybe<Image>;
1447
+ /** An array of images to be displayed on the topper. */
935
1448
  readonly images: ReadonlyArray<Image>;
936
1449
  };
937
1450
 
938
1451
  export type TopperWithPackage = {
1452
+ /** The design of the topper, eg. 'standard'. */
939
1453
  readonly design?: Maybe<Scalars['String']['output']>;
940
1454
  };
941
1455
 
942
1456
  export type TopperWithTheme = {
1457
+ /** Whether the headline should be large. */
943
1458
  readonly isLargeHeadline?: Maybe<Scalars['Boolean']['output']>;
1459
+ /** The layout of the topper, eg. 'split-text-left'. */
944
1460
  readonly layout?: Maybe<Scalars['String']['output']>;
945
1461
  };
946
1462
 
947
1463
  export type Tweet = Reference & {
1464
+ /** The raw HTML of the tweet. */
948
1465
  readonly html?: Maybe<Scalars['String']['output']>;
1466
+ /** The type of the reference, eg. 'tweet'. */
949
1467
  readonly type: Scalars['String']['output'];
950
1468
  };
951
1469
 
952
1470
  export type Video = Content & {
1471
+ /** A scalar representing the access level of the article, eg. 'free'. */
953
1472
  readonly accessLevel?: Maybe<Scalars['AccessLevel']['output']>;
1473
+ /** An alternative introductory paragraph of the article. */
954
1474
  readonly altStandfirst?: Maybe<AltStandfirst>;
1475
+ /** An alternative title of the article. */
955
1476
  readonly altTitle?: Maybe<AltTitle>;
1477
+ /** An array of concepts related to the article, eg. organisations or topics. */
956
1478
  readonly annotations?: Maybe<ReadonlyArray<Maybe<Concept>>>;
1479
+ /** An abstract syntax tree of the article content. */
957
1480
  readonly body?: Maybe<RichText>;
1481
+ /** The raw string of the XML as returned from ContentAPI. */
958
1482
  readonly bodyXML?: Maybe<Scalars['String']['output']>;
1483
+ /** An abstract syntax tree of the authors of the article. */
959
1484
  readonly byline?: Maybe<StructuredContent>;
1485
+ /** A scalar representing whether the article can be syndicated, ie. published by a third party site. */
960
1486
  readonly canBeSyndicated?: Maybe<Scalars['CanBeSyndicated']['output']>;
1487
+ /** Whether comments are enabled on the article. */
961
1488
  readonly commentsEnabled?: Maybe<Scalars['Boolean']['output']>;
1489
+ /** A design object containing the theme and layout of the article. */
962
1490
  readonly design?: Maybe<Design>;
1491
+ /** The editorial division the article belongs to, eg. 'FT-SpecialReports'. */
963
1492
  readonly editorialDesk?: Maybe<Scalars['String']['output']>;
1493
+ /** The first ISO string date the article was published, eg. '2024-04-03T10:35:52.443Z'. */
964
1494
  readonly firstPublishedDate: Scalars['String']['output'];
1495
+ /** The unique identifier of the article - a uuid or a url. */
965
1496
  readonly id: Scalars['ID']['output'];
1497
+ /** The concept to use for instant alert CTAs. */
966
1498
  readonly instantAlertConcept?: Maybe<Concept>;
1499
+ /** An image object containing the url and the caption, to be displayed usually before the article content. */
967
1500
  readonly mainImage?: Maybe<Image>;
1501
+ /** The party that originated the article, eg. 'FT'. */
968
1502
  readonly originatingParty?: Maybe<Scalars['String']['output']>;
1503
+ /** The ISO string date the article was published, eg. '2024-04-03T10:35:52.443Z'. */
969
1504
  readonly publishedDate: Scalars['String']['output'];
1505
+ /** An introductory paragraph of the article. */
970
1506
  readonly standfirst?: Maybe<Scalars['String']['output']>;
1507
+ /** A promotional thumbnail / snapshot of the article. */
971
1508
  readonly teaser?: Maybe<Teaser>;
1509
+ /** The title of the article. */
972
1510
  readonly title: Scalars['String']['output'];
1511
+ /** A banner located usually at the top of articles containing the title, the standfirst and any images. */
973
1512
  readonly topper?: Maybe<Topper>;
1513
+ /** The type of the article, eg. 'Article' or 'Video'. */
974
1514
  readonly type: Scalars['ContentType']['output'];
1515
+ /** The url of the concept. Vanity urls replace long, randomly generated urls - they are more user friendly and concise. Relative urls are relative to the current domain. */
975
1516
  readonly url: Scalars['String']['output'];
976
1517
  };
977
1518
 
@@ -987,8 +1528,11 @@ export type VideoUrlArgs = {
987
1528
  };
988
1529
 
989
1530
  export type VideoReference = Reference & {
1531
+ /** The unique identifier of the video - a uuid or a url. */
990
1532
  readonly id: Scalars['String']['output'];
1533
+ /** The title of the video. */
991
1534
  readonly title: Scalars['String']['output'];
1535
+ /** The type of the reference, eg. 'video'. */
992
1536
  readonly type: Scalars['String']['output'];
993
1537
  };
994
1538