@schibsted/pulse-sdk 8.0.0-rc.6 → 8.0.0-rc.7

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 (27) hide show
  1. package/dist/cjs/Tracker.js +89 -26
  2. package/dist/cjs/tracker-proxy/consts.js +1 -0
  3. package/dist/cjs/version.js +1 -1
  4. package/dist/cjs/visibility-observer/index.js +9 -7
  5. package/dist/cjs/wrapper/types/event.js +5 -0
  6. package/dist/ejs/Tracker.js +90 -27
  7. package/dist/ejs/tracker-proxy/consts.js +1 -0
  8. package/dist/ejs/version.js +1 -1
  9. package/dist/ejs/visibility-observer/index.js +9 -7
  10. package/dist/ejs/wrapper/types/event.js +4 -1
  11. package/dist/types/Tracker.d.ts +39 -3
  12. package/dist/types/tracker-proxy/consts.d.ts +1 -1
  13. package/dist/types/version.d.ts +1 -1
  14. package/dist/types/visibility-observer/index.d.ts +6 -1
  15. package/dist/types/wrapper/types/event.d.ts +3 -1
  16. package/node_modules/@schibsted/tpaas-event-builder/dist/cjs/builders.js +5 -1
  17. package/node_modules/@schibsted/tpaas-event-builder/dist/cjs/guards.js +7 -0
  18. package/node_modules/@schibsted/tpaas-event-builder/dist/cjs/index.js +3 -0
  19. package/node_modules/@schibsted/tpaas-event-builder/dist/ejs/builders.js +5 -2
  20. package/node_modules/@schibsted/tpaas-event-builder/dist/ejs/guards.js +4 -0
  21. package/node_modules/@schibsted/tpaas-event-builder/dist/ejs/index.js +1 -0
  22. package/node_modules/@schibsted/tpaas-event-builder/dist/index.d.ts +782 -164
  23. package/node_modules/@schibsted/tpaas-event-builder/package.json +1 -1
  24. package/node_modules/@schibsted/tpaas-schemas/dist/cjs/constants.js +66 -57
  25. package/node_modules/@schibsted/tpaas-schemas/dist/ejs/constants.js +64 -55
  26. package/node_modules/@schibsted/tpaas-schemas/dist/index.d.ts +836 -219
  27. package/package.json +5 -5
@@ -1,5 +1,23 @@
1
1
  // Generated by dts-bundle-generator v9.5.1
2
2
 
3
+ declare const PAGE_TYPE_VALUES: readonly [
4
+ "Article",
5
+ "AudioPage",
6
+ "Error",
7
+ "Frontpage",
8
+ "HealthPage",
9
+ "Landingpage",
10
+ "Listing",
11
+ "LockedArticle",
12
+ "LockedAudioPage",
13
+ "LockedVideoPage",
14
+ "Login",
15
+ "Page",
16
+ "SportsPage",
17
+ "Title",
18
+ "VideoPage",
19
+ "Weather"
20
+ ];
3
21
  type IExperiments = {
4
22
  /**
5
23
  * Unique experiment identifier.
@@ -7,10 +25,12 @@ type IExperiments = {
7
25
  experimentSdrn: string;
8
26
  /**
9
27
  * The name of the experiment
28
+ * @example "login-ab-test"
10
29
  */
11
30
  name: string;
12
31
  /**
13
32
  * The name of the experimentation platform.
33
+ * @example "curate"
14
34
  */
15
35
  platform: string;
16
36
  /**
@@ -19,6 +39,7 @@ type IExperiments = {
19
39
  testId?: string;
20
40
  /**
21
41
  * The level of the experiment variant.
42
+ * @example "control"
22
43
  */
23
44
  variant: string;
24
45
  }[];
@@ -33,34 +54,44 @@ interface IPageRef {
33
54
  pageType?: "Article" | "AudioPage" | "Error" | "Frontpage" | "HealthPage" | "Landingpage" | "Listing" | "LockedArticle" | "LockedAudioPage" | "LockedVideoPage" | "Login" | "Page" | "SportsPage" | "Title" | "VideoPage" | "Weather";
34
55
  /**
35
56
  * The URL of the page.
57
+ * @format uri
36
58
  */
37
59
  url?: string;
38
60
  }
39
61
  interface IUtmTags {
40
62
  /**
41
63
  * The marketing campaign that brought the user to this page, if present.
64
+ * @pattern ^[a-zA-Z0-9-_]+$
65
+ * @example "fotball-league-25"
42
66
  */
43
67
  utmCampaign?: string;
44
68
  /**
45
69
  * The UIElement a user engaged with to be sent here.
70
+ * @pattern ^[a-zA-Z0-9-_]+$
71
+ * @example "viewNowButton"
46
72
  */
47
73
  utmContent?: string;
48
74
  /**
49
75
  * The channel that provided the traffic.
76
+ * @example "Social"
50
77
  */
51
78
  utmMedium?: "Organic" | "Cpc" | "Email" | "Social" | "Referral" | "Display" | "Affiliate" | "Video" | "Internal";
52
79
  /**
53
80
  * The domain the user came from.
81
+ * @example "https://vg.no"
54
82
  */
55
83
  utmSource?: string;
56
84
  /**
57
85
  * If paid medium: The keywords triggering the ad. Else: The keywords used by the search engine.
86
+ * @pattern ^[^+]+(?:\+[^+]+)*$
87
+ * @example "fotball+now+free"
58
88
  */
59
89
  utmTerms?: string;
60
90
  }
61
91
  interface IProvider {
62
92
  /**
63
93
  * The equivalent of .product for Apps
94
+ * @pattern ^[a-zA-Z0-9-_]+$
64
95
  */
65
96
  appProduct?: string;
66
97
  /**
@@ -69,22 +100,43 @@ interface IProvider {
69
100
  appVersion?: string;
70
101
  /**
71
102
  * The name of the component. Used to contact owners of the event. This should be a recognized name within the product.
103
+ * @pattern ^[a-zA-Z0-9-_]+$
104
+ * @example "liveWidget"
72
105
  */
73
106
  component?: string;
74
107
  /**
75
108
  * The version of the component used.
109
+ * @pattern ^(0|[1-9]\d*)\.(0|[1-9]\d*)\.(0|[1-9]\d*)(?:-((?:0|[1-9]\d*|\d*[a-zA-Z-][0-9a-zA-Z-]*)(?:\.(?:0|[1-9]\d*|\d*[a-zA-Z-][0-9a-zA-Z-]*))*))?(?:\+([0-9a-zA-Z-]+(?:\.[0-9a-zA-Z-]+)*))?$
110
+ * @example "2.3.4"
76
111
  */
77
112
  componentVersion?: string;
113
+ /**
114
+ * The group or owner of the provider, used for aggregates and benchmark reports.
115
+ * @pattern ^[a-z0-9-:]+$
116
+ * @example "schibsted:vg"
117
+ */
118
+ group?: string;
119
+ /**
120
+ * The name of the provider, used for readable reports and contact info.
121
+ * @pattern ^[a-z0-9-]+$
122
+ * @example "vestnytt"
123
+ */
124
+ name?: string;
78
125
  /**
79
126
  * The name of the product. Used to contact owners of the event. This should be a recognized name within the organization of the provider.
127
+ * @pattern ^[a-zA-Z0-9-_]+$
128
+ * @example "Feeds"
80
129
  */
81
130
  product?: string;
82
131
  /**
83
132
  * The providerID.
133
+ * @example "aftonbladet"
84
134
  */
85
135
  providerId: string;
86
136
  /**
87
137
  * The provider SDRN.
138
+ * @pattern ^sdrn:schibsted:client:[a-z][a-z0-9-]+$
139
+ * @example "sdrn:schibsted:client:aftonbladet"
88
140
  */
89
141
  providerSdrn: string;
90
142
  /**
@@ -93,30 +145,38 @@ interface IProvider {
93
145
  stage: "Dev" | "Test" | "Pro";
94
146
  /**
95
147
  * Version of the product.
148
+ * @pattern ^(0|[1-9]\d*)\.(0|[1-9]\d*)\.(0|[1-9]\d*)(?:-((?:0|[1-9]\d*|\d*[a-zA-Z-][0-9a-zA-Z-]*)(?:\.(?:0|[1-9]\d*|\d*[a-zA-Z-][0-9a-zA-Z-]*))*))?(?:\+([0-9a-zA-Z-]+(?:\.[0-9a-zA-Z-]+)*))?$
149
+ * @example "2.3.4"
96
150
  */
97
151
  version?: string;
98
152
  }
99
153
  interface ITime {
100
154
  /**
101
155
  * Timestamp at event creation (in UTC).
156
+ * @format date-time
102
157
  */
103
158
  createdAt: string;
104
159
  /**
105
160
  * Estimate of actual time of event creation. (UTC)
161
+ * @format date-time
106
162
  */
107
163
  publishedAt?: string;
108
164
  /**
109
165
  * Timestamp at event re-publish. (UTC)
166
+ * @format date-time
110
167
  */
111
168
  republishedAt?: string;
112
169
  /**
113
170
  * Timestamp at event transmission. (UTC, client-side)
171
+ * @format date-time
114
172
  */
115
173
  sentAt: string;
116
174
  }
117
175
  interface ITracker {
118
176
  /**
119
177
  * If the auto-tracker was used, the version of the autotracker library.
178
+ * @pattern ^(0|[1-9]\d*)\.(0|[1-9]\d*)\.(0|[1-9]\d*)(?:-((?:0|[1-9]\d*|\d*[a-zA-Z-][0-9a-zA-Z-]*)(?:\.(?:0|[1-9]\d*|\d*[a-zA-Z-][0-9a-zA-Z-]*))*))?(?:\+([0-9a-zA-Z-]+(?:\.[0-9a-zA-Z-]+)*))?$
179
+ * @example "2.3.4"
120
180
  */
121
181
  autoTrackerVersion?: string;
122
182
  /**
@@ -129,24 +189,32 @@ interface ITracker {
129
189
  isHybrid: boolean;
130
190
  /**
131
191
  * The version of the proxy.
192
+ * @pattern ^(0|[1-9]\d*)\.(0|[1-9]\d*)\.(0|[1-9]\d*)(?:-((?:0|[1-9]\d*|\d*[a-zA-Z-][0-9a-zA-Z-]*)(?:\.(?:0|[1-9]\d*|\d*[a-zA-Z-][0-9a-zA-Z-]*))*))?(?:\+([0-9a-zA-Z-]+(?:\.[0-9a-zA-Z-]+)*))?$
193
+ * @example "2.3.4"
132
194
  */
133
195
  proxyVersion?: string;
134
196
  /**
135
197
  * The SDK being used. If no SDK was used, use “backend”.
198
+ * @example "JS"
136
199
  */
137
200
  trackerType: "JS" | "IOS" | "Android" | "Backend";
138
201
  /**
139
202
  * The version of the tracker.
203
+ * @pattern ^(0|[1-9]\d*)\.(0|[1-9]\d*)\.(0|[1-9]\d*)(?:-((?:0|[1-9]\d*|\d*[a-zA-Z-][0-9a-zA-Z-]*)(?:\.(?:0|[1-9]\d*|\d*[a-zA-Z-][0-9a-zA-Z-]*))*))?(?:\+([0-9a-zA-Z-]+(?:\.[0-9a-zA-Z-]+)*))?$
204
+ * @example "2.3.4"
140
205
  */
141
206
  version: string;
142
207
  }
143
208
  interface IAnonymousViewUIElement {
144
209
  /**
145
210
  * The version of the TPaaS schemas catalog that this particular schema belongs to. Semver format.
211
+ * @pattern ^(0|[1-9]\d*)\.(0|[1-9]\d*)\.(0|[1-9]\d*)$
212
+ * @example "1.2.3"
146
213
  */
147
214
  catalogVersion: string;
148
215
  /**
149
216
  * The unique identifier for the event.
217
+ * @format uuid
150
218
  */
151
219
  eventId: string;
152
220
  /**
@@ -168,6 +236,7 @@ interface IAnonymousViewUIElement {
168
236
  page: {
169
237
  /**
170
238
  * The pageviewID.
239
+ * @format uuid
171
240
  */
172
241
  pageviewId: string;
173
242
  referrer?: IPageRef;
@@ -176,6 +245,8 @@ interface IAnonymousViewUIElement {
176
245
  provider: IProvider;
177
246
  /**
178
247
  * URL to the JSON schema for this event.
248
+ * @format uri
249
+ * @pattern ^https://tpaas-schemas.schibsted.media/.+\.json$
179
250
  */
180
251
  schema: string;
181
252
  time: ITime;
@@ -200,30 +271,40 @@ interface IConsents {
200
271
  personalization: "Accepted" | "Rejected" | "Unknown";
201
272
  /**
202
273
  * The source of consent information
274
+ * @pattern ^[a-zA-Z-_]+$
275
+ * @example "cache"
203
276
  */
204
277
  source: string;
205
278
  }
206
279
  interface IUser {
207
280
  /**
208
281
  * True if the user has an active subscription
282
+ * @example true
209
283
  */
210
284
  hasAnySubscription: boolean;
211
285
  /**
212
286
  * The region of primary belonging
287
+ * @example "Norway"
213
288
  */
214
289
  region?: "Norway" | "Sweden" | "Finland";
215
290
  /**
216
291
  * The user ID.
292
+ * @pattern ^[a-zA-Z0-9-]+$
293
+ * @example "12345678"
217
294
  */
218
295
  userId: string;
219
296
  /**
220
297
  * The user SDRN.
298
+ * @pattern ^sdrn:[a-z.-]+:user:[a-zA-Z0-9-]+$
299
+ * @example "sdrn:schibsted:user:12345678"
221
300
  */
222
301
  userSdrn: string;
223
302
  }
224
303
  interface ICancelSubscription {
225
304
  /**
226
305
  * The version of the TPaaS schemas catalog that this particular schema belongs to. Semver format.
306
+ * @pattern ^(0|[1-9]\d*)\.(0|[1-9]\d*)\.(0|[1-9]\d*)$
307
+ * @example "1.2.3"
227
308
  */
228
309
  catalogVersion: string;
229
310
  consents?: IConsents;
@@ -234,11 +315,13 @@ interface ICancelSubscription {
234
315
  deviceType: "Desktop" | "Mobile" | "Tablet" | "SmartTv" | "Other";
235
316
  /**
236
317
  * The environmentId.
318
+ * @pattern ^[0-9a-fA-F-]+$
237
319
  */
238
320
  environmentId: string;
239
321
  };
240
322
  /**
241
323
  * The unique identifier for the event.
324
+ * @format uuid
242
325
  */
243
326
  eventId: string;
244
327
  /**
@@ -249,6 +332,7 @@ interface ICancelSubscription {
249
332
  object: {
250
333
  /**
251
334
  * Date specifying when the subscription is cancelled.
335
+ * @format date
252
336
  */
253
337
  cancelDate?: string;
254
338
  /**
@@ -261,6 +345,7 @@ interface ICancelSubscription {
261
345
  cancelledBy?: string;
262
346
  /**
263
347
  * Date when access to the service was ends, meaning when the customer lose access.
348
+ * @format date
264
349
  */
265
350
  churnDate?: string;
266
351
  /**
@@ -273,6 +358,7 @@ interface ICancelSubscription {
273
358
  fullPrice?: number;
274
359
  /**
275
360
  * The unique identifier of the subscription, which corresponds to subscription number in URS.
361
+ * @pattern ^sdrn:[a-zA-Z0-9-]+:subscription:[a-zA-Z0-9_-]+$
276
362
  */
277
363
  objectSdrn: string;
278
364
  /**
@@ -299,6 +385,8 @@ interface ICancelSubscription {
299
385
  provider: IProvider;
300
386
  /**
301
387
  * URL to the JSON schema for this event.
388
+ * @format uri
389
+ * @pattern ^https://tpaas-schemas.schibsted.media/.+\.json$
302
390
  */
303
391
  schema: string;
304
392
  time: ITime;
@@ -308,18 +396,22 @@ interface ICancelSubscription {
308
396
  type IMetrics = {
309
397
  /**
310
398
  * A grouping key for the metric, e.g. curate’s blendId.
399
+ * @example "front-ranker-v7"
311
400
  */
312
401
  key: string;
313
402
  /**
314
403
  * Name of the metric, e.g., "topKScore".
404
+ * @example "topKScore"
315
405
  */
316
406
  name: string;
317
407
  /**
318
408
  * Source of the metric, e.g., "Curate".
409
+ * @example "curate"
319
410
  */
320
411
  source: string;
321
412
  /**
322
413
  * The value of the template.
414
+ * @example 42
323
415
  */
324
416
  value: number;
325
417
  }[];
@@ -338,6 +430,8 @@ interface IDevice {
338
430
  deviceType: "Desktop" | "Mobile" | "Tablet" | "SmartTv" | "Other";
339
431
  /**
340
432
  * The environmentId.
433
+ * @pattern ^[0-9a-fA-F-]+$
434
+ * @example "42401e1f-7e04-4b73-8bed-1ceffc0ed8cc"
341
435
  */
342
436
  environmentId: string;
343
437
  ipAddress?: string;
@@ -347,10 +441,12 @@ interface IDevice {
347
441
  jweIds?: string;
348
442
  /**
349
443
  * Mobile only: The brand name of the device.
444
+ * @example "Samsung"
350
445
  */
351
446
  mobileBrand?: string;
352
447
  /**
353
448
  * Mobile only: The model of the device.
449
+ * @example "SM-S918B"
354
450
  */
355
451
  mobileModel?: string;
356
452
  /**
@@ -363,6 +459,7 @@ interface IDevice {
363
459
  screenOrientation: "Portrait" | "Landscape";
364
460
  /**
365
461
  * The raw userAgent string, if it exists.
462
+ * @example "Mozilla/5.0 (Linux; Android 13; SM-S918B) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/106.0.0.0 Mobile Safari/537.36"
366
463
  */
367
464
  userAgent?: string;
368
465
  /**
@@ -377,26 +474,34 @@ interface ISession {
377
474
  isFirstEvent: boolean;
378
475
  /**
379
476
  * The sessionID.
477
+ * @pattern ^[0-9a-f-]+$
478
+ * @example "079bc17a-4ee8-42ab-a29f-2fbba4cd403f"
380
479
  */
381
480
  sessionId: string;
382
481
  /**
383
482
  * Timestamp of when the session started.
483
+ * @format date-time
384
484
  */
385
485
  startTime: string;
386
486
  /**
387
487
  * The session ID on a partner domain (set via query parameter), else the current session ID. This value is used to connect cross-domain events such as behavior events to purchase events.
488
+ * @pattern ^[0-9a-f-]+$
489
+ * @example "079bc17a-4ee8-42ab-a29f-2fbba4cd403f"
388
490
  */
389
491
  xDomainId?: string;
390
492
  }
391
493
  interface IChangePushNotificationSettings {
392
494
  /**
393
495
  * The version of the TPaaS schemas catalog that this particular schema belongs to. Semver format.
496
+ * @pattern ^(0|[1-9]\d*)\.(0|[1-9]\d*)\.(0|[1-9]\d*)$
497
+ * @example "1.2.3"
394
498
  */
395
499
  catalogVersion: string;
396
500
  consents: IConsents;
397
501
  device: IDevice;
398
502
  /**
399
503
  * The unique identifier for the event.
504
+ * @format uuid
400
505
  */
401
506
  eventId: string;
402
507
  /**
@@ -422,6 +527,8 @@ interface IChangePushNotificationSettings {
422
527
  provider: IProvider;
423
528
  /**
424
529
  * URL to the JSON schema for this event.
530
+ * @format uri
531
+ * @pattern ^https://tpaas-schemas.schibsted.media/.+\.json$
425
532
  */
426
533
  schema: string;
427
534
  session: ISession;
@@ -446,6 +553,7 @@ interface IHealthOrigin {
446
553
  interface IContent {
447
554
  /**
448
555
  * The access restriction placed on the content.
556
+ * @example "Free"
449
557
  */
450
558
  accessLevel: "Free" | "Login" | "Meter" | "Paid";
451
559
  /**
@@ -454,10 +562,12 @@ interface IContent {
454
562
  category: "Article" | "Audio" | "Video" | "Weather" | "Title" | "Other";
455
563
  /**
456
564
  * The identifier of the content.
565
+ * @example "QMkj9q"
457
566
  */
458
567
  contentId: string;
459
568
  /**
460
569
  * The canonical title of the content.
570
+ * @example "Norge vinner 3-0 mot Italia i VM-kvalifiseringen."
461
571
  */
462
572
  contentTitle: string;
463
573
  /**
@@ -472,17 +582,20 @@ interface IContent {
472
582
  * A list of product features that give access to this content. (Uses OR, i.e., having one is enough for access.)
473
583
  */
474
584
  requiredProductFeatures?: string[];
475
- tags: string[];
585
+ tags?: string[];
476
586
  }
477
587
  interface ICompletedHealthAction {
478
588
  /**
479
589
  * The version of the TPaaS schemas catalog that this particular schema belongs to. Semver format.
590
+ * @pattern ^(0|[1-9]\d*)\.(0|[1-9]\d*)\.(0|[1-9]\d*)$
591
+ * @example "1.2.3"
480
592
  */
481
593
  catalogVersion: string;
482
594
  consents: IConsents;
483
595
  device: IDevice;
484
596
  /**
485
597
  * The unique identifier for the event.
598
+ * @format uuid
486
599
  */
487
600
  eventId: string;
488
601
  /**
@@ -501,20 +614,24 @@ interface ICompletedHealthAction {
501
614
  actionType: "Logged" | "Scanned" | "Started" | "SetFilters" | "Added" | "Removed" | "Completed" | "Achieved" | "Saved" | "Deleted" | "Updated" | "Shared";
502
615
  /**
503
616
  * The health category this action relates to.
617
+ * @example "nutrition"
504
618
  */
505
619
  category?: string;
506
620
  /**
507
621
  * Freeform custom properties with dynamic field names for health-specific action data.
622
+ * @additionalProperties true
508
623
  */
509
624
  custom?: {
510
625
  [k: string]: unknown;
511
626
  };
512
627
  /**
513
628
  * The user intent or purpose of this event.
629
+ * @example "edit daily note"
514
630
  */
515
631
  intent?: string;
516
632
  /**
517
633
  * The descriptive name of the action that was completed.
634
+ * @example "Logged breakfast meal"
518
635
  */
519
636
  name?: string;
520
637
  /**
@@ -535,6 +652,7 @@ interface ICompletedHealthAction {
535
652
  tags?: string[];
536
653
  /**
537
654
  * The title of the completion message or confirmation shown to the user.
655
+ * @example "Barcode scanned successfully"
538
656
  */
539
657
  title?: string;
540
658
  };
@@ -546,6 +664,7 @@ interface ICompletedHealthAction {
546
664
  info: IPageRef;
547
665
  /**
548
666
  * The pageviewID of the page where the action occurred.
667
+ * @format uuid
549
668
  */
550
669
  pageviewId: string;
551
670
  referrer?: IPageRef;
@@ -554,6 +673,8 @@ interface ICompletedHealthAction {
554
673
  provider: IProvider;
555
674
  /**
556
675
  * URL to the JSON schema for this event.
676
+ * @format uri
677
+ * @pattern ^https://tpaas-schemas.schibsted.media/.+\.json$
557
678
  */
558
679
  schema: string;
559
680
  session: ISession;
@@ -571,6 +692,8 @@ interface ICompletedHealthAction {
571
692
  interface IEngagementAudio {
572
693
  /**
573
694
  * The version of the TPaaS schemas catalog that this particular schema belongs to. Semver format.
695
+ * @pattern ^(0|[1-9]\d*)\.(0|[1-9]\d*)\.(0|[1-9]\d*)$
696
+ * @example "1.2.3"
574
697
  */
575
698
  catalogVersion: string;
576
699
  consents: IConsents;
@@ -594,6 +717,7 @@ interface IEngagementAudio {
594
717
  };
595
718
  /**
596
719
  * The unique identifier for the event.
720
+ * @format uuid
597
721
  */
598
722
  eventId: string;
599
723
  /**
@@ -619,6 +743,7 @@ interface IEngagementAudio {
619
743
  playType: "Autoplay" | "ClickToPlay" | "ScrollToPlay";
620
744
  /**
621
745
  * The current playback speed
746
+ * @exclusiveMinimum 0
622
747
  */
623
748
  playbackSpeed?: number;
624
749
  /**
@@ -626,9 +751,9 @@ interface IEngagementAudio {
626
751
  */
627
752
  positionMs: number;
628
753
  /**
629
- * The playback position in the audio where the current play segment started. For the first segment it equals the start position, and after a seek it equals the seek-from position
754
+ * The playback position in the audio where the current play segment started. For the first segment it equals the start position, and after a seek it equals the seek-from position.
630
755
  */
631
- prevPositionMs: string;
756
+ prevPositionMs: number;
632
757
  /**
633
758
  * The playback position (in milliseconds) the user initiated the seek (timeline jump) from. Only included when engagement.type = "seek"
634
759
  */
@@ -648,10 +773,6 @@ interface IEngagementAudio {
648
773
  * The editorial category of this audio
649
774
  */
650
775
  category: string;
651
- /**
652
- * ContainerName is the name of the UI container/module in which the player renders (not the player type or content type).
653
- */
654
- containerName: string;
655
776
  /**
656
777
  * The total duration of the audio in milliseconds. Use -1 for live streams with unknown duration.
657
778
  */
@@ -660,10 +781,6 @@ interface IEngagementAudio {
660
781
  * The size of the player.
661
782
  */
662
783
  elementSize?: "XS" | "S" | "M" | "L" | "XL";
663
- /**
664
- * The UI surface or context from which the audio playback was initiated, such as the frontpage, an article embed, podcast-page or play-next etc
665
- */
666
- entryPoint: string;
667
784
  /**
668
785
  * Which episode
669
786
  */
@@ -711,6 +828,7 @@ interface IEngagementAudio {
711
828
  podmeId?: string;
712
829
  /**
713
830
  * The position of the audio in the playlist.
831
+ * @minimum 0
714
832
  */
715
833
  queuePosition?: number;
716
834
  /**
@@ -736,14 +854,23 @@ interface IEngagementAudio {
736
854
  info: IPageRef;
737
855
  /**
738
856
  * The pageviewID.
857
+ * @format uuid
739
858
  */
740
859
  pageviewId: string;
741
860
  referrer?: IPageRef;
742
861
  utm?: IUtmTags;
743
862
  };
863
+ placement: {
864
+ /**
865
+ * ContainerName is the name of the UI container/module in which the player renders (not the player type or content type).
866
+ */
867
+ containerName: string;
868
+ };
744
869
  provider: IProvider;
745
870
  /**
746
871
  * URL to the JSON schema for this event.
872
+ * @format uri
873
+ * @pattern ^https://tpaas-schemas.schibsted.media/.+\.json$
747
874
  */
748
875
  schema: string;
749
876
  session: ISession;
@@ -758,12 +885,15 @@ interface IEngagement {
758
885
  action: "Click" | "Scroll" | "Drag" | "Drop" | "DoubleClick";
759
886
  /**
760
887
  * The name of the UIElement being interacted with.
888
+ * @example "AwesomeButton"
761
889
  */
762
890
  elementName: string;
763
891
  }
764
892
  interface IEngagementForm {
765
893
  /**
766
894
  * The version of the TPaaS schemas catalog that this particular schema belongs to. Semver format.
895
+ * @pattern ^(0|[1-9]\d*)\.(0|[1-9]\d*)\.(0|[1-9]\d*)$
896
+ * @example "1.2.3"
767
897
  */
768
898
  catalogVersion: string;
769
899
  consents: IConsents;
@@ -771,6 +901,7 @@ interface IEngagementForm {
771
901
  engagement: IEngagement;
772
902
  /**
773
903
  * Event ID
904
+ * @format uuid
774
905
  */
775
906
  eventId: string;
776
907
  /**
@@ -779,10 +910,6 @@ interface IEngagementForm {
779
910
  eventType: "Engagement";
780
911
  experiments?: IExperiments;
781
912
  object: {
782
- /**
783
- * The closest parent container used for traffic attribution. When in doubt use “page”.
784
- */
785
- containerName: string;
786
913
  /**
787
914
  * The size of the component.
788
915
  */
@@ -827,14 +954,23 @@ interface IEngagementForm {
827
954
  info: IPageRef;
828
955
  /**
829
956
  * The pageviewID.
957
+ * @format uuid
830
958
  */
831
959
  pageviewId: string;
832
960
  referrer?: IPageRef;
833
961
  utm?: IUtmTags;
834
962
  };
963
+ placement: {
964
+ /**
965
+ * The closest parent container used for traffic attribution. When in doubt use “page”.
966
+ */
967
+ containerName: string;
968
+ };
835
969
  provider: IProvider;
836
970
  /**
837
971
  * The schema of the event.
972
+ * @format uri
973
+ * @pattern ^https://tpaas-schemas.schibsted.media/.+\.json$
838
974
  */
839
975
  schema: string;
840
976
  session: ISession;
@@ -849,6 +985,8 @@ interface IEngagementForm {
849
985
  interface IEngagementHealthUIElement {
850
986
  /**
851
987
  * The version of the TPaaS schemas catalog that this particular schema belongs to. Semver format.
988
+ * @pattern ^(0|[1-9]\d*)\.(0|[1-9]\d*)\.(0|[1-9]\d*)$
989
+ * @example "1.2.3"
852
990
  */
853
991
  catalogVersion: string;
854
992
  consents: IConsents;
@@ -856,6 +994,7 @@ interface IEngagementHealthUIElement {
856
994
  engagement: IEngagement;
857
995
  /**
858
996
  * The unique identifier for the event.
997
+ * @format uuid
859
998
  */
860
999
  eventId: string;
861
1000
  /**
@@ -870,14 +1009,12 @@ interface IEngagementHealthUIElement {
870
1009
  object: {
871
1010
  /**
872
1011
  * The health category this UI element relates to.
1012
+ * @example "breakfast"
873
1013
  */
874
1014
  category?: string;
875
- /**
876
- * The closest parent container used for traffic attribution.
877
- */
878
- containerName: string;
879
1015
  /**
880
1016
  * Freeform custom properties with dynamic field names for health-specific UI engagement data.
1017
+ * @additionalProperties true
881
1018
  */
882
1019
  custom?: {
883
1020
  [k: string]: unknown;
@@ -888,14 +1025,17 @@ interface IEngagementHealthUIElement {
888
1025
  elementSize: "XS" | "S" | "M" | "L" | "XL";
889
1026
  /**
890
1027
  * The text content of the UI element.
1028
+ * @example "Scan Barcode"
891
1029
  */
892
1030
  elementText?: string;
893
1031
  /**
894
1032
  * The user intent or purpose of this event.
1033
+ * @example "log calories"
895
1034
  */
896
1035
  intent?: string;
897
1036
  /**
898
1037
  * The name of the UI element.
1038
+ * @example "Grilled Chicken Recipe"
899
1039
  */
900
1040
  name: string;
901
1041
  /**
@@ -920,14 +1060,24 @@ interface IEngagementHealthUIElement {
920
1060
  info: IPageRef;
921
1061
  /**
922
1062
  * The pageviewID of the parent page.
1063
+ * @format uuid
923
1064
  */
924
1065
  pageviewId: string;
925
1066
  referrer?: IPageRef;
926
1067
  utm?: IUtmTags;
927
1068
  };
1069
+ placement: {
1070
+ /**
1071
+ * The closest parent container used for traffic attribution.
1072
+ * @example "recipes"
1073
+ */
1074
+ containerName: string;
1075
+ };
928
1076
  provider: IProvider;
929
1077
  /**
930
1078
  * URL to the JSON schema for this event.
1079
+ * @format uri
1080
+ * @pattern ^https://tpaas-schemas.schibsted.media/.+\.json$
931
1081
  */
932
1082
  schema: string;
933
1083
  session: ISession;
@@ -945,6 +1095,8 @@ interface IEngagementHealthUIElement {
945
1095
  interface IEngagementNotification {
946
1096
  /**
947
1097
  * The version of the TPaaS schemas catalog that this particular schema belongs to. Semver format.
1098
+ * @pattern ^(0|[1-9]\d*)\.(0|[1-9]\d*)\.(0|[1-9]\d*)$
1099
+ * @example "1.2.3"
948
1100
  */
949
1101
  catalogVersion: string;
950
1102
  consents: IConsents;
@@ -952,6 +1104,7 @@ interface IEngagementNotification {
952
1104
  engagement: IEngagement;
953
1105
  /**
954
1106
  * Schema ID
1107
+ * @format uuid
955
1108
  */
956
1109
  eventId: string;
957
1110
  /**
@@ -1000,6 +1153,8 @@ interface IEngagementNotification {
1000
1153
  provider: IProvider;
1001
1154
  /**
1002
1155
  * The schema of the event.
1156
+ * @format uri
1157
+ * @pattern ^https://tpaas-schemas.schibsted.media/.+\.json$
1003
1158
  */
1004
1159
  schema: string;
1005
1160
  session: ISession;
@@ -1014,6 +1169,8 @@ interface IEngagementNotification {
1014
1169
  interface IEngagementOffer {
1015
1170
  /**
1016
1171
  * The version of the TPaaS schemas catalog that this particular schema belongs to. Semver format.
1172
+ * @pattern ^(0|[1-9]\d*)\.(0|[1-9]\d*)\.(0|[1-9]\d*)$
1173
+ * @example "1.2.3"
1017
1174
  */
1018
1175
  catalogVersion: string;
1019
1176
  consents: IConsents;
@@ -1021,6 +1178,7 @@ interface IEngagementOffer {
1021
1178
  engagement: IEngagement;
1022
1179
  /**
1023
1180
  * Event ID
1181
+ * @format uuid
1024
1182
  */
1025
1183
  eventId: string;
1026
1184
  /**
@@ -1031,12 +1189,9 @@ interface IEngagementOffer {
1031
1189
  object: {
1032
1190
  /**
1033
1191
  * The campaign associated with this offer.
1192
+ * @example "summer-sale"
1034
1193
  */
1035
1194
  campaign: string;
1036
- /**
1037
- * The closest parent container used for traffic attribution. When in doubt use “page”.
1038
- */
1039
- containerName?: string;
1040
1195
  /**
1041
1196
  * The size of the component.
1042
1197
  */
@@ -1058,10 +1213,6 @@ interface IEngagementOffer {
1058
1213
  */
1059
1214
  objectType: "Offer";
1060
1215
  offerCodes?: string[];
1061
- /**
1062
- * The position where this offer was placed.
1063
- */
1064
- offerPlacement: string;
1065
1216
  /**
1066
1217
  * The variant/layout of the offer.
1067
1218
  */
@@ -1072,14 +1223,27 @@ interface IEngagementOffer {
1072
1223
  info: IPageRef;
1073
1224
  /**
1074
1225
  * The pageviewID.
1226
+ * @format uuid
1075
1227
  */
1076
1228
  pageviewId: string;
1077
1229
  referrer?: IPageRef;
1078
1230
  utm?: IUtmTags;
1079
1231
  };
1232
+ placement: {
1233
+ /**
1234
+ * The closest parent container used for traffic attribution. When in doubt use “page”.
1235
+ */
1236
+ containerName?: string;
1237
+ /**
1238
+ * The position where this offer was placed.
1239
+ */
1240
+ offerPlacement: string;
1241
+ };
1080
1242
  provider: IProvider;
1081
1243
  /**
1082
1244
  * The schema of the event.
1245
+ * @format uri
1246
+ * @pattern ^https://tpaas-schemas.schibsted.media/.+\.json$
1083
1247
  */
1084
1248
  schema: string;
1085
1249
  session: ISession;
@@ -1093,6 +1257,10 @@ interface IEngagementOffer {
1093
1257
  }
1094
1258
  interface IPlacement {
1095
1259
  columnName: "main" | "aside";
1260
+ /**
1261
+ * The closest parent container used for traffic attribution. When in doubt use “page”.
1262
+ */
1263
+ containerName: string;
1096
1264
  /**
1097
1265
  * The context in which the recommendation was made.
1098
1266
  */
@@ -1101,13 +1269,23 @@ interface IPlacement {
1101
1269
  * The source of the impression/engagement.
1102
1270
  */
1103
1271
  curateSource?: string;
1272
+ /**
1273
+ * Indicator if the player was visible at pageload (“above”) or if the user had to scroll to it (“below”).
1274
+ */
1275
+ foldPosition: "Above" | "Below" | "Unknown";
1104
1276
  positionInBundle: number;
1277
+ /**
1278
+ * The parent’s primary direction along which components are laid out.
1279
+ */
1280
+ primaryAxis: "Horizontal" | "Vertical";
1105
1281
  /**
1106
1282
  * The position of this component along the primary axis.
1283
+ * @minimum 1
1107
1284
  */
1108
1285
  primaryPosition: number;
1109
1286
  /**
1110
1287
  * The position of this component along the secondary axis.
1288
+ * @minimum 1
1111
1289
  */
1112
1290
  secondaryPosition: number;
1113
1291
  source?: string;
@@ -1115,6 +1293,8 @@ interface IPlacement {
1115
1293
  interface IEngagementTeaser {
1116
1294
  /**
1117
1295
  * The version of the TPaaS schemas catalog that this particular schema belongs to. Semver format.
1296
+ * @pattern ^(0|[1-9]\d*)\.(0|[1-9]\d*)\.(0|[1-9]\d*)$
1297
+ * @example "1.2.3"
1118
1298
  */
1119
1299
  catalogVersion: string;
1120
1300
  consents: IConsents;
@@ -1122,6 +1302,7 @@ interface IEngagementTeaser {
1122
1302
  engagement: IEngagement;
1123
1303
  /**
1124
1304
  * Event ID
1305
+ * @format uuid
1125
1306
  */
1126
1307
  eventId: string;
1127
1308
  /**
@@ -1131,10 +1312,6 @@ interface IEngagementTeaser {
1131
1312
  experiments?: IExperiments;
1132
1313
  metrics?: IMetrics;
1133
1314
  object: {
1134
- /**
1135
- * The closest parent container used for traffic attribution. When in doubt use “page”.
1136
- */
1137
- containerName: string;
1138
1315
  /**
1139
1316
  * The engine producing this teaser. Use “editorial” for manually curated item.
1140
1317
  */
@@ -1163,10 +1340,6 @@ interface IEngagementTeaser {
1163
1340
  * The type of the component.
1164
1341
  */
1165
1342
  objectType: "Teaser";
1166
- /**
1167
- * The parent’s primary direction along which components are laid out.
1168
- */
1169
- primaryAxis: "Horizontal" | "Vertical";
1170
1343
  /**
1171
1344
  * The title of the teaser.
1172
1345
  */
@@ -1177,6 +1350,7 @@ interface IEngagementTeaser {
1177
1350
  info: IPageRef;
1178
1351
  /**
1179
1352
  * The pageviewID.
1353
+ * @format uuid
1180
1354
  */
1181
1355
  pageviewId: string;
1182
1356
  referrer?: IPageRef;
@@ -1186,6 +1360,8 @@ interface IEngagementTeaser {
1186
1360
  provider: IProvider;
1187
1361
  /**
1188
1362
  * The schema of the event.
1363
+ * @format uri
1364
+ * @pattern ^https://tpaas-schemas.schibsted.media/.+\.json$
1189
1365
  */
1190
1366
  schema: string;
1191
1367
  session: ISession;
@@ -1200,6 +1376,8 @@ interface IEngagementTeaser {
1200
1376
  interface IEngagementUIElement {
1201
1377
  /**
1202
1378
  * The version of the TPaaS schemas catalog that this particular schema belongs to. Semver format.
1379
+ * @pattern ^(0|[1-9]\d*)\.(0|[1-9]\d*)\.(0|[1-9]\d*)$
1380
+ * @example "1.2.3"
1203
1381
  */
1204
1382
  catalogVersion: string;
1205
1383
  consents: IConsents;
@@ -1207,6 +1385,7 @@ interface IEngagementUIElement {
1207
1385
  engagement: IEngagement;
1208
1386
  /**
1209
1387
  * Event ID
1388
+ * @format uuid
1210
1389
  */
1211
1390
  eventId: string;
1212
1391
  /**
@@ -1215,10 +1394,6 @@ interface IEngagementUIElement {
1215
1394
  eventType: "Engagement";
1216
1395
  experiments?: IExperiments;
1217
1396
  object: {
1218
- /**
1219
- * The closest parent container used for traffic attribution. When in doubt use “page”.
1220
- */
1221
- containerName: string;
1222
1397
  /**
1223
1398
  * The size of the component.
1224
1399
  */
@@ -1253,14 +1428,23 @@ interface IEngagementUIElement {
1253
1428
  info: IPageRef;
1254
1429
  /**
1255
1430
  * The pageviewID.
1431
+ * @format uuid
1256
1432
  */
1257
1433
  pageviewId: string;
1258
1434
  referrer?: IPageRef;
1259
1435
  utm?: IUtmTags;
1260
1436
  };
1437
+ placement: {
1438
+ /**
1439
+ * The closest parent container used for traffic attribution. When in doubt use “page”.
1440
+ */
1441
+ containerName: string;
1442
+ };
1261
1443
  provider: IProvider;
1262
1444
  /**
1263
1445
  * The schema of the event.
1446
+ * @format uri
1447
+ * @pattern ^https://tpaas-schemas.schibsted.media/.+\.json$
1264
1448
  */
1265
1449
  schema: string;
1266
1450
  session: ISession;
@@ -1275,6 +1459,8 @@ interface IEngagementUIElement {
1275
1459
  interface IEngagementVideo {
1276
1460
  /**
1277
1461
  * The version of the TPaaS schemas catalog that this particular schema belongs to. Semver format.
1462
+ * @pattern ^(0|[1-9]\d*)\.(0|[1-9]\d*)\.(0|[1-9]\d*)$
1463
+ * @example "1.2.3"
1278
1464
  */
1279
1465
  catalogVersion: string;
1280
1466
  consents: IConsents;
@@ -1298,6 +1484,7 @@ interface IEngagementVideo {
1298
1484
  };
1299
1485
  /**
1300
1486
  * The unique identifier for the event.
1487
+ * @format uuid
1301
1488
  */
1302
1489
  eventId: string;
1303
1490
  /**
@@ -1327,6 +1514,7 @@ interface IEngagementVideo {
1327
1514
  playType: "Autoplay" | "ClickToPlay" | "ScrollToPlay";
1328
1515
  /**
1329
1516
  * The current playback speed.
1517
+ * @exclusiveMinimum 0
1330
1518
  */
1331
1519
  playbackSpeed?: number;
1332
1520
  /**
@@ -1350,9 +1538,9 @@ interface IEngagementVideo {
1350
1538
  */
1351
1539
  seekToMs?: number;
1352
1540
  /**
1353
- * How much time user has spent on the playback (in milliseconds) regardless of seeking, pausing etc.
1541
+ * How much time user has spent on the playback (in milliseconds) regardless of seeking, pausing etc
1354
1542
  */
1355
- viewTimeMs: number;
1543
+ viewtimeMs: number;
1356
1544
  };
1357
1545
  metrics?: IMetrics;
1358
1546
  object: {
@@ -1364,10 +1552,6 @@ interface IEngagementVideo {
1364
1552
  * The editorial category of this video
1365
1553
  */
1366
1554
  category: string;
1367
- /**
1368
- * ContainerName is the name of the UI container/module in which the player renders (not the player type or content type).
1369
- */
1370
- containerName: string;
1371
1555
  /**
1372
1556
  * The total duration of the video in milliseconds. Use -1 for live streams with unknown duration.
1373
1557
  */
@@ -1376,10 +1560,6 @@ interface IEngagementVideo {
1376
1560
  * The size of the player.
1377
1561
  */
1378
1562
  elementSize?: "XS" | "S" | "M" | "L" | "XL";
1379
- /**
1380
- * The UI surface or context from which the video playback was initiated, such as the frontpage, an article embed, a stories feed, a carousel, or play-next etc
1381
- */
1382
- entryPoint: string;
1383
1563
  /**
1384
1564
  * Which episode
1385
1565
  */
@@ -1438,6 +1618,7 @@ interface IEngagementVideo {
1438
1618
  playlistId?: string;
1439
1619
  /**
1440
1620
  * The position of the video in the playlist.
1621
+ * @minimum 0
1441
1622
  */
1442
1623
  queuePosition?: number;
1443
1624
  /**
@@ -1463,14 +1644,23 @@ interface IEngagementVideo {
1463
1644
  info: IPageRef;
1464
1645
  /**
1465
1646
  * The pageviewID.
1647
+ * @format uuid
1466
1648
  */
1467
1649
  pageviewId: string;
1468
1650
  referrer?: IPageRef;
1469
1651
  utm?: IUtmTags;
1470
1652
  };
1653
+ placement: {
1654
+ /**
1655
+ * ContainerName is the name of the UI container/module in which the player renders (not the player type or content type).
1656
+ */
1657
+ containerName: string;
1658
+ };
1471
1659
  provider: IProvider;
1472
1660
  /**
1473
1661
  * URL to the JSON schema for this event.
1662
+ * @format uri
1663
+ * @pattern ^https://tpaas-schemas.schibsted.media/.+\.json$
1474
1664
  */
1475
1665
  schema: string;
1476
1666
  session: ISession;
@@ -1484,6 +1674,8 @@ interface IEngagementVideo {
1484
1674
  interface IEngagementVideoAd {
1485
1675
  /**
1486
1676
  * The version of the TPaaS schemas catalog that this particular schema belongs to. Semver format.
1677
+ * @pattern ^(0|[1-9]\d*)\.(0|[1-9]\d*)\.(0|[1-9]\d*)$
1678
+ * @example "1.2.3"
1487
1679
  */
1488
1680
  catalogVersion: string;
1489
1681
  consents: IConsents;
@@ -1507,6 +1699,7 @@ interface IEngagementVideoAd {
1507
1699
  };
1508
1700
  /**
1509
1701
  * The unique identifier for the event.
1702
+ * @format uuid
1510
1703
  */
1511
1704
  eventId: string;
1512
1705
  /**
@@ -1557,10 +1750,6 @@ interface IEngagementVideoAd {
1557
1750
  * Indicates where the ad appears in the playback sequence (e.g. preroll, midroll, postroll, overlay). Describes the ad position relative to the video, not the ad’s creative type.
1558
1751
  */
1559
1752
  adSlot: "Preroll" | "Midroll" | "Postroll" | "Overlay";
1560
- /**
1561
- * ContainerName is the name of the UI container/module in which the player renders (not the player type or content type).
1562
- */
1563
- containerName: string;
1564
1753
  /**
1565
1754
  * The identifier of the asset the ad belongs to.
1566
1755
  */
@@ -1591,14 +1780,23 @@ interface IEngagementVideoAd {
1591
1780
  info: IPageRef;
1592
1781
  /**
1593
1782
  * The pageviewID.
1783
+ * @format uuid
1594
1784
  */
1595
1785
  pageviewId: string;
1596
1786
  referrer?: IPageRef;
1597
1787
  utm?: IUtmTags;
1598
1788
  };
1789
+ placement: {
1790
+ /**
1791
+ * ContainerName is the name of the UI container/module in which the player renders (not the player type or content type).
1792
+ */
1793
+ containerName: string;
1794
+ };
1599
1795
  provider: IProvider;
1600
1796
  /**
1601
1797
  * URL to the JSON schema for this event.
1798
+ * @format uri
1799
+ * @pattern ^https://tpaas-schemas.schibsted.media/.+\.json$
1602
1800
  */
1603
1801
  schema: string;
1604
1802
  session: ISession;
@@ -1612,6 +1810,8 @@ interface IEngagementVideoAd {
1612
1810
  interface IEngagementWidget {
1613
1811
  /**
1614
1812
  * The version of the TPaaS schemas catalog that this particular schema belongs to. Semver format.
1813
+ * @pattern ^(0|[1-9]\d*)\.(0|[1-9]\d*)\.(0|[1-9]\d*)$
1814
+ * @example "1.2.3"
1615
1815
  */
1616
1816
  catalogVersion: string;
1617
1817
  consents: IConsents;
@@ -1619,6 +1819,7 @@ interface IEngagementWidget {
1619
1819
  engagement: IEngagement;
1620
1820
  /**
1621
1821
  * Event ID
1822
+ * @format uuid
1622
1823
  */
1623
1824
  eventId: string;
1624
1825
  /**
@@ -1626,11 +1827,8 @@ interface IEngagementWidget {
1626
1827
  */
1627
1828
  eventType: "Engagement";
1628
1829
  experiments?: IExperiments;
1830
+ metrics?: IMetrics;
1629
1831
  object: {
1630
- /**
1631
- * The closest parent container used for traffic attribution. When in doubt use “page”.
1632
- */
1633
- containerName?: string;
1634
1832
  /**
1635
1833
  * The size of the component.
1636
1834
  */
@@ -1651,16 +1849,13 @@ interface IEngagementWidget {
1651
1849
  * The type of the component.
1652
1850
  */
1653
1851
  objectType: "Widget";
1654
- /**
1655
- * The parent’s primary direction along which components are laid out.
1656
- */
1657
- primaryAxis?: "Horizontal" | "Vertical";
1658
1852
  };
1659
1853
  page: {
1660
1854
  content?: IContent;
1661
1855
  info: IPageRef;
1662
1856
  /**
1663
1857
  * The pageviewID.
1858
+ * @format uuid
1664
1859
  */
1665
1860
  pageviewId: string;
1666
1861
  referrer?: IPageRef;
@@ -1670,6 +1865,8 @@ interface IEngagementWidget {
1670
1865
  provider: IProvider;
1671
1866
  /**
1672
1867
  * The schema of the event.
1868
+ * @format uri
1869
+ * @pattern ^https://tpaas-schemas.schibsted.media/.+\.json$
1673
1870
  */
1674
1871
  schema: string;
1675
1872
  session: ISession;
@@ -1681,15 +1878,18 @@ interface IEngagementWidget {
1681
1878
  tracker: ITracker;
1682
1879
  user?: IUser;
1683
1880
  }
1684
- interface IImpressionForm {
1881
+ interface IImpressionAdSlot {
1685
1882
  /**
1686
1883
  * The version of the TPaaS schemas catalog that this particular schema belongs to. Semver format.
1884
+ * @pattern ^(0|[1-9]\d*)\.(0|[1-9]\d*)\.(0|[1-9]\d*)$
1885
+ * @example "1.2.3"
1687
1886
  */
1688
1887
  catalogVersion: string;
1689
1888
  consents: IConsents;
1690
1889
  device: IDevice;
1691
1890
  /**
1692
1891
  * The unique identifier for the event.
1892
+ * @format uuid
1693
1893
  */
1694
1894
  eventId: string;
1695
1895
  /**
@@ -1697,11 +1897,77 @@ interface IImpressionForm {
1697
1897
  */
1698
1898
  eventType: "Impression";
1699
1899
  experiments?: IExperiments;
1900
+ metrics?: IMetrics;
1700
1901
  object: {
1701
1902
  /**
1702
- * The closest parent container used for traffic attribution. When in doubt use “page”.
1903
+ * Ad product name used by SMS.
1703
1904
  */
1704
- containerName: string;
1905
+ adFormat: string;
1906
+ /**
1907
+ * The size of the component.
1908
+ */
1909
+ elementSize: "XS" | "S" | "M" | "L" | "XL";
1910
+ /**
1911
+ * The name of the component.
1912
+ */
1913
+ name: string;
1914
+ /**
1915
+ * The unique ID for this component.
1916
+ */
1917
+ objectId: string;
1918
+ /**
1919
+ * The unique SDRN for this component.
1920
+ */
1921
+ objectSdrn: string;
1922
+ /**
1923
+ * The type of the object.
1924
+ */
1925
+ objectType: "AdSlot";
1926
+ };
1927
+ page: {
1928
+ content?: IContent;
1929
+ info: IPageRef;
1930
+ /**
1931
+ * The pageviewID.
1932
+ * @format uuid
1933
+ */
1934
+ pageviewId: string;
1935
+ referrer?: IPageRef;
1936
+ utm?: IUtmTags;
1937
+ };
1938
+ placement: IPlacement;
1939
+ provider: IProvider;
1940
+ /**
1941
+ * URL to the JSON schema for this event.
1942
+ * @format uri
1943
+ * @pattern ^https://tpaas-schemas.schibsted.media/.+\.json$
1944
+ */
1945
+ schema: string;
1946
+ session: ISession;
1947
+ time: ITime;
1948
+ tracker: ITracker;
1949
+ user?: IUser;
1950
+ }
1951
+ interface IImpressionForm {
1952
+ /**
1953
+ * The version of the TPaaS schemas catalog that this particular schema belongs to. Semver format.
1954
+ * @pattern ^(0|[1-9]\d*)\.(0|[1-9]\d*)\.(0|[1-9]\d*)$
1955
+ * @example "1.2.3"
1956
+ */
1957
+ catalogVersion: string;
1958
+ consents: IConsents;
1959
+ device: IDevice;
1960
+ /**
1961
+ * The unique identifier for the event.
1962
+ * @format uuid
1963
+ */
1964
+ eventId: string;
1965
+ /**
1966
+ * The type of the event.
1967
+ */
1968
+ eventType: "Impression";
1969
+ experiments?: IExperiments;
1970
+ object: {
1705
1971
  /**
1706
1972
  * The size of the component.
1707
1973
  */
@@ -1724,10 +1990,6 @@ interface IImpressionForm {
1724
1990
  */
1725
1991
  required: boolean;
1726
1992
  }[];
1727
- /**
1728
- * Indicator if the widget was visible at pageload (“above”) or if the user had to scroll to it (“below”).
1729
- */
1730
- foldPosition: "Above" | "Below" | "Unknown";
1731
1993
  /**
1732
1994
  * The name of the component.
1733
1995
  */
@@ -1750,14 +2012,27 @@ interface IImpressionForm {
1750
2012
  info: IPageRef;
1751
2013
  /**
1752
2014
  * The pageviewID.
2015
+ * @format uuid
1753
2016
  */
1754
2017
  pageviewId: string;
1755
2018
  referrer?: IPageRef;
1756
2019
  utm?: IUtmTags;
1757
2020
  };
2021
+ placement: {
2022
+ /**
2023
+ * The closest parent container used for traffic attribution. When in doubt use “page”.
2024
+ */
2025
+ containerName: string;
2026
+ /**
2027
+ * Indicator if the widget was visible at pageload (“above”) or if the user had to scroll to it (“below”).
2028
+ */
2029
+ foldPosition: "Above" | "Below" | "Unknown";
2030
+ };
1758
2031
  provider: IProvider;
1759
2032
  /**
1760
2033
  * URL to the JSON schema for this event.
2034
+ * @format uri
2035
+ * @pattern ^https://tpaas-schemas.schibsted.media/.+\.json$
1761
2036
  */
1762
2037
  schema: string;
1763
2038
  session: ISession;
@@ -1772,12 +2047,15 @@ interface IImpressionForm {
1772
2047
  interface IImpressionHealthUIElement {
1773
2048
  /**
1774
2049
  * The version of the TPaaS schemas catalog that this particular schema belongs to. Semver format.
2050
+ * @pattern ^(0|[1-9]\d*)\.(0|[1-9]\d*)\.(0|[1-9]\d*)$
2051
+ * @example "1.2.3"
1775
2052
  */
1776
2053
  catalogVersion: string;
1777
2054
  consents: IConsents;
1778
2055
  device: IDevice;
1779
2056
  /**
1780
2057
  * The unique identifier for the event.
2058
+ * @format uuid
1781
2059
  */
1782
2060
  eventId: string;
1783
2061
  /**
@@ -1792,18 +2070,17 @@ interface IImpressionHealthUIElement {
1792
2070
  object: {
1793
2071
  /**
1794
2072
  * The health category this content relates to.
2073
+ * @example "breakfast"
1795
2074
  */
1796
2075
  category?: string;
1797
- /**
1798
- * The parent container or page section where this content appears.
1799
- */
1800
- containerName?: string;
1801
2076
  /**
1802
2077
  * The specific type of health content being viewed.
2078
+ * @example "modal"
1803
2079
  */
1804
2080
  contentType: string;
1805
2081
  /**
1806
2082
  * Freeform custom properties with dynamic field names for health-specific data.
2083
+ * @additionalProperties true
1807
2084
  */
1808
2085
  custom?: {
1809
2086
  [k: string]: unknown;
@@ -1812,16 +2089,14 @@ interface IImpressionHealthUIElement {
1812
2089
  * The size of the content element.
1813
2090
  */
1814
2091
  elementSize?: "XS" | "S" | "M" | "L" | "XL";
1815
- /**
1816
- * Position relative to the fold or if it's an overlay element.
1817
- */
1818
- foldPosition?: "Above" | "Below" | "Overlay" | "Unknown";
1819
2092
  /**
1820
2093
  * The user intent or purpose of this event.
2094
+ * @example "log calories"
1821
2095
  */
1822
2096
  intent?: string;
1823
2097
  /**
1824
2098
  * The name/title of the health content element.
2099
+ * @example "Question quiz"
1825
2100
  */
1826
2101
  name: string;
1827
2102
  /**
@@ -1849,14 +2124,28 @@ interface IImpressionHealthUIElement {
1849
2124
  info: IPageRef;
1850
2125
  /**
1851
2126
  * The pageviewID of the parent page.
2127
+ * @format uuid
1852
2128
  */
1853
2129
  pageviewId: string;
1854
2130
  referrer?: IPageRef;
1855
2131
  utm?: IUtmTags;
1856
2132
  };
2133
+ placement?: {
2134
+ /**
2135
+ * The parent container or page section where this content appears.
2136
+ * @example "Logbook"
2137
+ */
2138
+ containerName?: string;
2139
+ /**
2140
+ * Position relative to the fold or if it's an overlay element.
2141
+ */
2142
+ foldPosition?: "Above" | "Below" | "Overlay" | "Unknown";
2143
+ };
1857
2144
  provider: IProvider;
1858
2145
  /**
1859
2146
  * URL to the JSON schema for this event.
2147
+ * @format uri
2148
+ * @pattern ^https://tpaas-schemas.schibsted.media/.+\.json$
1860
2149
  */
1861
2150
  schema: string;
1862
2151
  session: ISession;
@@ -1874,12 +2163,15 @@ interface IImpressionHealthUIElement {
1874
2163
  interface IImpressionNotification {
1875
2164
  /**
1876
2165
  * The version of the TPaaS schemas catalog that this particular schema belongs to. Semver format.
2166
+ * @pattern ^(0|[1-9]\d*)\.(0|[1-9]\d*)\.(0|[1-9]\d*)$
2167
+ * @example "1.2.3"
1877
2168
  */
1878
2169
  catalogVersion: string;
1879
2170
  consents: IConsents;
1880
2171
  device: IDevice;
1881
2172
  /**
1882
2173
  * The unique identifier for the event.
2174
+ * @format uuid
1883
2175
  */
1884
2176
  eventId: string;
1885
2177
  /**
@@ -1926,6 +2218,8 @@ interface IImpressionNotification {
1926
2218
  provider: IProvider;
1927
2219
  /**
1928
2220
  * URL to the JSON schema for this event.
2221
+ * @format uri
2222
+ * @pattern ^https://tpaas-schemas.schibsted.media/.+\.json$
1929
2223
  */
1930
2224
  schema: string;
1931
2225
  session: ISession;
@@ -1940,12 +2234,15 @@ interface IImpressionNotification {
1940
2234
  interface IImpressionOffer {
1941
2235
  /**
1942
2236
  * The version of the TPaaS schemas catalog that this particular schema belongs to. Semver format.
2237
+ * @pattern ^(0|[1-9]\d*)\.(0|[1-9]\d*)\.(0|[1-9]\d*)$
2238
+ * @example "1.2.3"
1943
2239
  */
1944
2240
  catalogVersion: string;
1945
2241
  consents: IConsents;
1946
2242
  device: IDevice;
1947
2243
  /**
1948
2244
  * The unique identifier for the event.
2245
+ * @format uuid
1949
2246
  */
1950
2247
  eventId: string;
1951
2248
  /**
@@ -1956,20 +2253,13 @@ interface IImpressionOffer {
1956
2253
  object: {
1957
2254
  /**
1958
2255
  * The campaign associated with this offer.
2256
+ * @example "summer-sale"
1959
2257
  */
1960
2258
  campaign: string;
1961
- /**
1962
- * The closest parent container used for traffic attribution. When in doubt use “page”.
1963
- */
1964
- containerName: string;
1965
2259
  /**
1966
2260
  * The size of the component.
1967
2261
  */
1968
2262
  elementSize?: "XS" | "S" | "M" | "L" | "XL";
1969
- /**
1970
- * Indicator if the widget was visible at pageload (“above”) or if the user had to scroll to it (“below”).
1971
- */
1972
- foldPosition: "Above" | "Below" | "Unknown";
1973
2263
  /**
1974
2264
  * The name of the component.
1975
2265
  */
@@ -1987,10 +2277,6 @@ interface IImpressionOffer {
1987
2277
  */
1988
2278
  objectType: "Offer";
1989
2279
  offerCodes: string[];
1990
- /**
1991
- * The position where this offer was placed.
1992
- */
1993
- offerPlacement: string;
1994
2280
  /**
1995
2281
  * The variant/layout of the offer.
1996
2282
  */
@@ -2001,14 +2287,31 @@ interface IImpressionOffer {
2001
2287
  info: IPageRef;
2002
2288
  /**
2003
2289
  * The pageviewID.
2290
+ * @format uuid
2004
2291
  */
2005
2292
  pageviewId: string;
2006
2293
  referrer?: IPageRef;
2007
2294
  utm?: IUtmTags;
2008
2295
  };
2296
+ placement: {
2297
+ /**
2298
+ * The closest parent container used for traffic attribution. When in doubt use “page”.
2299
+ */
2300
+ containerName: string;
2301
+ /**
2302
+ * Indicator if the widget was visible at pageload (“above”) or if the user had to scroll to it (“below”).
2303
+ */
2304
+ foldPosition: "Above" | "Below" | "Unknown";
2305
+ /**
2306
+ * The position where this offer was placed.
2307
+ */
2308
+ offerPlacement: string;
2309
+ };
2009
2310
  provider: IProvider;
2010
2311
  /**
2011
2312
  * URL to the JSON schema for this event.
2313
+ * @format uri
2314
+ * @pattern ^https://tpaas-schemas.schibsted.media/.+\.json$
2012
2315
  */
2013
2316
  schema: string;
2014
2317
  session: ISession;
@@ -2023,12 +2326,15 @@ interface IImpressionOffer {
2023
2326
  interface IImpressionPlayer {
2024
2327
  /**
2025
2328
  * The version of the TPaaS schemas catalog that this particular schema belongs to. Semver format.
2329
+ * @pattern ^(0|[1-9]\d*)\.(0|[1-9]\d*)\.(0|[1-9]\d*)$
2330
+ * @example "1.2.3"
2026
2331
  */
2027
2332
  catalogVersion: string;
2028
2333
  consents: IConsents;
2029
2334
  device: IDevice;
2030
2335
  /**
2031
2336
  * The unique identifier for the event.
2337
+ * @format uuid
2032
2338
  */
2033
2339
  eventId: string;
2034
2340
  /**
@@ -2038,18 +2344,10 @@ interface IImpressionPlayer {
2038
2344
  experiments?: IExperiments;
2039
2345
  metrics?: IMetrics;
2040
2346
  object: {
2041
- /**
2042
- * ContainerName is the name of the UI container/module in which the player renders (not the player type or content type)
2043
- */
2044
- containerName: string;
2045
2347
  /**
2046
2348
  * The size of the player.
2047
2349
  */
2048
2350
  elementSize?: "XS" | "S" | "M" | "L" | "XL";
2049
- /**
2050
- * Indicator if the player was visible at pageload (“above”) or if the user had to scroll to it (“below”).
2051
- */
2052
- foldPosition: "Above" | "Below" | "Unknown";
2053
2351
  /**
2054
2352
  * The unique ID of the embedded asset (not ads from Xandr) ready to play in the player.
2055
2353
  */
@@ -2084,6 +2382,7 @@ interface IImpressionPlayer {
2084
2382
  info: IPageRef;
2085
2383
  /**
2086
2384
  * The pageviewID.
2385
+ * @format uuid
2087
2386
  */
2088
2387
  pageviewId: string;
2089
2388
  referrer?: IPageRef;
@@ -2093,6 +2392,8 @@ interface IImpressionPlayer {
2093
2392
  provider: IProvider;
2094
2393
  /**
2095
2394
  * URL to the JSON schema for this event.
2395
+ * @format uri
2396
+ * @pattern ^https://tpaas-schemas.schibsted.media/.+\.json$
2096
2397
  */
2097
2398
  schema: string;
2098
2399
  session: ISession;
@@ -2103,12 +2404,15 @@ interface IImpressionPlayer {
2103
2404
  interface IImpressionTeaser {
2104
2405
  /**
2105
2406
  * The version of the TPaaS schemas catalog that this particular schema belongs to. Semver format.
2407
+ * @pattern ^(0|[1-9]\d*)\.(0|[1-9]\d*)\.(0|[1-9]\d*)$
2408
+ * @example "1.2.3"
2106
2409
  */
2107
2410
  catalogVersion: string;
2108
2411
  consents: IConsents;
2109
2412
  device: IDevice;
2110
2413
  /**
2111
2414
  * The unique identifier for the event.
2415
+ * @format uuid
2112
2416
  */
2113
2417
  eventId: string;
2114
2418
  /**
@@ -2118,10 +2422,6 @@ interface IImpressionTeaser {
2118
2422
  experiments?: IExperiments;
2119
2423
  metrics?: IMetrics;
2120
2424
  object: {
2121
- /**
2122
- * The closest parent container used for traffic attribution. When in doubt use “page”.
2123
- */
2124
- containerName: string;
2125
2425
  /**
2126
2426
  * The engine producing this teaser. Use “editorial” for manually curated item.
2127
2427
  */
@@ -2134,10 +2434,6 @@ interface IImpressionTeaser {
2134
2434
  * The size of the component.
2135
2435
  */
2136
2436
  elementSize?: "XS" | "S" | "M" | "L" | "XL";
2137
- /**
2138
- * Indicator if the widget was visible at pageload (“above”) or if the user had to scroll to it (“below”).
2139
- */
2140
- foldPosition: "Above" | "Below" | "Unknown";
2141
2437
  /**
2142
2438
  * The name of the component.
2143
2439
  */
@@ -2154,10 +2450,6 @@ interface IImpressionTeaser {
2154
2450
  * The type of the object.
2155
2451
  */
2156
2452
  objectType: "Teaser";
2157
- /**
2158
- * The parent’s primary direction along which components are laid out.
2159
- */
2160
- primaryAxis: "Horizontal" | "Vertical";
2161
2453
  /**
2162
2454
  * The title of the teaser.
2163
2455
  */
@@ -2168,6 +2460,7 @@ interface IImpressionTeaser {
2168
2460
  info: IPageRef;
2169
2461
  /**
2170
2462
  * The pageviewID.
2463
+ * @format uuid
2171
2464
  */
2172
2465
  pageviewId: string;
2173
2466
  referrer?: IPageRef;
@@ -2177,6 +2470,8 @@ interface IImpressionTeaser {
2177
2470
  provider: IProvider;
2178
2471
  /**
2179
2472
  * URL to the JSON schema for this event.
2473
+ * @format uri
2474
+ * @pattern ^https://tpaas-schemas.schibsted.media/.+\.json$
2180
2475
  */
2181
2476
  schema: string;
2182
2477
  session: ISession;
@@ -2191,12 +2486,15 @@ interface IImpressionTeaser {
2191
2486
  interface IImpressionUIElement {
2192
2487
  /**
2193
2488
  * The version of the TPaaS schemas catalog that this particular schema belongs to. Semver format.
2489
+ * @pattern ^(0|[1-9]\d*)\.(0|[1-9]\d*)\.(0|[1-9]\d*)$
2490
+ * @example "1.2.3"
2194
2491
  */
2195
2492
  catalogVersion: string;
2196
2493
  consents: IConsents;
2197
2494
  device: IDevice;
2198
2495
  /**
2199
2496
  * The unique identifier for the event.
2497
+ * @format uuid
2200
2498
  */
2201
2499
  eventId: string;
2202
2500
  /**
@@ -2205,10 +2503,6 @@ interface IImpressionUIElement {
2205
2503
  eventType: "Impression";
2206
2504
  experiments?: IExperiments;
2207
2505
  object: {
2208
- /**
2209
- * The closest parent container used for traffic attribution. When in doubt use “page”.
2210
- */
2211
- containerName: string;
2212
2506
  /**
2213
2507
  * The size of the component.
2214
2508
  */
@@ -2221,10 +2515,6 @@ interface IImpressionUIElement {
2221
2515
  * The type of UIElement (div, span, a, …).
2222
2516
  */
2223
2517
  elementType: string;
2224
- /**
2225
- * Indicator if the widget was visible at pageload (“above”) or if the user had to scroll to it (“below”).
2226
- */
2227
- foldPosition: "Above" | "Below" | "Unknown";
2228
2518
  /**
2229
2519
  * The name of the component.
2230
2520
  */
@@ -2251,14 +2541,27 @@ interface IImpressionUIElement {
2251
2541
  info: IPageRef;
2252
2542
  /**
2253
2543
  * The pageviewID.
2544
+ * @format uuid
2254
2545
  */
2255
2546
  pageviewId: string;
2256
2547
  referrer?: IPageRef;
2257
2548
  utm?: IUtmTags;
2258
2549
  };
2550
+ placement: {
2551
+ /**
2552
+ * The closest parent container used for traffic attribution. When in doubt use “page”.
2553
+ */
2554
+ containerName: string;
2555
+ /**
2556
+ * Indicator if the widget was visible at pageload (“above”) or if the user had to scroll to it (“below”).
2557
+ */
2558
+ foldPosition: "Above" | "Below" | "Unknown";
2559
+ };
2259
2560
  provider: IProvider;
2260
2561
  /**
2261
2562
  * URL to the JSON schema for this event.
2563
+ * @format uri
2564
+ * @pattern ^https://tpaas-schemas.schibsted.media/.+\.json$
2262
2565
  */
2263
2566
  schema: string;
2264
2567
  session: ISession;
@@ -2273,12 +2576,15 @@ interface IImpressionUIElement {
2273
2576
  interface IImpressionWidget {
2274
2577
  /**
2275
2578
  * The version of the TPaaS schemas catalog that this particular schema belongs to. Semver format.
2579
+ * @pattern ^(0|[1-9]\d*)\.(0|[1-9]\d*)\.(0|[1-9]\d*)$
2580
+ * @example "1.2.3"
2276
2581
  */
2277
2582
  catalogVersion: string;
2278
2583
  consents: IConsents;
2279
2584
  device: IDevice;
2280
2585
  /**
2281
2586
  * The unique identifier for the event.
2587
+ * @format uuid
2282
2588
  */
2283
2589
  eventId: string;
2284
2590
  /**
@@ -2288,18 +2594,10 @@ interface IImpressionWidget {
2288
2594
  experiments?: IExperiments;
2289
2595
  metrics?: IMetrics;
2290
2596
  object: {
2291
- /**
2292
- * The closest parent container used for traffic attribution. When in doubt use “page”.
2293
- */
2294
- containerName: string;
2295
2597
  /**
2296
2598
  * The size of the component.
2297
2599
  */
2298
2600
  elementSize?: "XS" | "S" | "M" | "L" | "XL";
2299
- /**
2300
- * Indicator if the widget was visible at pageload (“above”) or if the user had to scroll to it (“below”).
2301
- */
2302
- foldPosition: "Above" | "Below" | "Unknown";
2303
2601
  /**
2304
2602
  * The name of the component.
2305
2603
  */
@@ -2316,16 +2614,13 @@ interface IImpressionWidget {
2316
2614
  * The type of the object.
2317
2615
  */
2318
2616
  objectType: "Widget";
2319
- /**
2320
- * The parent’s primary direction along which components are laid out.
2321
- */
2322
- primaryAxis: "Horizontal" | "Vertical";
2323
2617
  };
2324
2618
  page: {
2325
2619
  content?: IContent;
2326
2620
  info: IPageRef;
2327
2621
  /**
2328
2622
  * The pageviewID.
2623
+ * @format uuid
2329
2624
  */
2330
2625
  pageviewId: string;
2331
2626
  referrer?: IPageRef;
@@ -2335,6 +2630,8 @@ interface IImpressionWidget {
2335
2630
  provider: IProvider;
2336
2631
  /**
2337
2632
  * URL to the JSON schema for this event.
2633
+ * @format uri
2634
+ * @pattern ^https://tpaas-schemas.schibsted.media/.+\.json$
2338
2635
  */
2339
2636
  schema: string;
2340
2637
  session: ISession;
@@ -2349,6 +2646,8 @@ interface IImpressionWidget {
2349
2646
  interface IInternalAccessDecision {
2350
2647
  /**
2351
2648
  * The version of the TPaaS schemas catalog that this particular schema belongs to. Semver format.
2649
+ * @pattern ^(0|[1-9]\d*)\.(0|[1-9]\d*)\.(0|[1-9]\d*)$
2650
+ * @example "1.2.3"
2352
2651
  */
2353
2652
  catalogVersion: string;
2354
2653
  consents: IConsents;
@@ -2376,6 +2675,7 @@ interface IInternalAccessDecision {
2376
2675
  };
2377
2676
  /**
2378
2677
  * The unique identifier for the event.
2678
+ * @format uuid
2379
2679
  */
2380
2680
  eventId: string;
2381
2681
  /**
@@ -2399,6 +2699,10 @@ interface IInternalAccessDecision {
2399
2699
  config: {
2400
2700
  armId: string;
2401
2701
  version: string;
2702
+ /**
2703
+ * @minimum 0
2704
+ * @maximum 1
2705
+ */
2402
2706
  weight: number;
2403
2707
  }[];
2404
2708
  /**
@@ -2407,15 +2711,18 @@ interface IInternalAccessDecision {
2407
2711
  configId: string;
2408
2712
  /**
2409
2713
  * End time of the arm assignment in UTC.
2714
+ * @format date-time
2410
2715
  */
2411
2716
  endAt: string;
2412
2717
  /**
2413
2718
  * Start time of the arm assignment in UTC.
2719
+ * @format date-time
2414
2720
  */
2415
2721
  startAt: string;
2416
2722
  };
2417
2723
  /**
2418
2724
  * When the decision system created the decision in UTC.
2725
+ * @format date-time
2419
2726
  */
2420
2727
  decidedAt: string;
2421
2728
  /**
@@ -2433,10 +2740,11 @@ interface IInternalAccessDecision {
2433
2740
  /**
2434
2741
  * Categorization of how the decision was made.
2435
2742
  */
2436
- decisionType: "RCT" | "Policy" | "Replay" | "Fallback";
2743
+ decisionType: "Policy" | "Replay" | "Fallback";
2437
2744
  episode: {
2438
2745
  /**
2439
2746
  * End time of the episode in UTC.
2747
+ * @format date-time
2440
2748
  */
2441
2749
  endAt: string;
2442
2750
  /**
@@ -2445,6 +2753,7 @@ interface IInternalAccessDecision {
2445
2753
  episodeId: string;
2446
2754
  /**
2447
2755
  * Start time of the episode in UTC.
2756
+ * @format date-time
2448
2757
  */
2449
2758
  startAt: string;
2450
2759
  };
@@ -2463,6 +2772,8 @@ interface IInternalAccessDecision {
2463
2772
  provider: IProvider;
2464
2773
  /**
2465
2774
  * URL to the JSON schema for this event.
2775
+ * @format uri
2776
+ * @pattern ^https://tpaas-schemas.schibsted.media/.+\.json$
2466
2777
  */
2467
2778
  schema: string;
2468
2779
  target: {
@@ -2497,10 +2808,13 @@ interface IInternalAccessDecision {
2497
2808
  interface IInternalProbe {
2498
2809
  /**
2499
2810
  * The version of the TPaaS schemas catalog that this particular schema belongs to. Semver format.
2811
+ * @pattern ^(0|[1-9]\d*)\.(0|[1-9]\d*)\.(0|[1-9]\d*)$
2812
+ * @example "1.2.3"
2500
2813
  */
2501
2814
  catalogVersion: string;
2502
2815
  /**
2503
2816
  * The unique identifier for the event.
2817
+ * @format uuid
2504
2818
  */
2505
2819
  eventId: string;
2506
2820
  /**
@@ -2516,6 +2830,8 @@ interface IInternalProbe {
2516
2830
  provider: IProvider;
2517
2831
  /**
2518
2832
  * URL to the JSON schema for this event.
2833
+ * @format uri
2834
+ * @pattern ^https://tpaas-schemas.schibsted.media/.+\.json$
2519
2835
  */
2520
2836
  schema: string;
2521
2837
  /**
@@ -2531,12 +2847,15 @@ interface IInternalProbe {
2531
2847
  interface ILaunchApp {
2532
2848
  /**
2533
2849
  * The version of the TPaaS schemas catalog that this particular schema belongs to. Semver format.
2850
+ * @pattern ^(0|[1-9]\d*)\.(0|[1-9]\d*)\.(0|[1-9]\d*)$
2851
+ * @example "1.2.3"
2534
2852
  */
2535
2853
  catalogVersion: string;
2536
2854
  consents: IConsents;
2537
2855
  device: IDevice;
2538
2856
  /**
2539
2857
  * The unique identifier for the event.
2858
+ * @format uuid
2540
2859
  */
2541
2860
  eventId: string;
2542
2861
  /**
@@ -2546,6 +2865,9 @@ interface ILaunchApp {
2546
2865
  experiments?: IExperiments;
2547
2866
  metrics?: IMetrics;
2548
2867
  object: {
2868
+ /**
2869
+ * @additionalProperties true
2870
+ */
2549
2871
  custom: {
2550
2872
  [k: string]: unknown;
2551
2873
  };
@@ -2557,6 +2879,8 @@ interface ILaunchApp {
2557
2879
  provider: IProvider;
2558
2880
  /**
2559
2881
  * URL to the JSON schema for this event.
2882
+ * @format uri
2883
+ * @pattern ^https://tpaas-schemas.schibsted.media/.+\.json$
2560
2884
  */
2561
2885
  schema: string;
2562
2886
  session: ISession;
@@ -2567,14 +2891,18 @@ interface ILaunchApp {
2567
2891
  interface ILeave {
2568
2892
  /**
2569
2893
  * The total active time a user spends on the page in milliseconds. Active implies a timespan of less than 30 sec since triggering one of the following browser events(On web): 'mousedown', 'mousemove', 'keydown', 'scroll', 'touchstart'.
2894
+ * @exclusiveMinimum 0
2570
2895
  */
2571
2896
  activityDurationMs: number;
2572
2897
  /**
2573
2898
  * The total time the user spent on the page in milliseconds.
2899
+ * @exclusiveMinimum 0
2574
2900
  */
2575
2901
  durationMs: number;
2576
2902
  /**
2577
2903
  * The maximum relative scroll position of the article when the user leaves it.
2904
+ * @minimum 0
2905
+ * @maximum 1
2578
2906
  */
2579
2907
  maxObjectViewPercentage: number;
2580
2908
  /**
@@ -2583,10 +2911,14 @@ interface ILeave {
2583
2911
  maxPageScrollPosition: number;
2584
2912
  /**
2585
2913
  * The maximum relative scroll position of the page when the user leaves it.
2914
+ * @minimum 0
2915
+ * @maximum 1
2586
2916
  */
2587
2917
  maxPageViewPercentage: number;
2588
2918
  /**
2589
2919
  * The relative scroll position of the article when the user leaves it.
2920
+ * @minimum 0
2921
+ * @maximum 1
2590
2922
  */
2591
2923
  objectViewPercentage: number;
2592
2924
  /**
@@ -2595,18 +2927,23 @@ interface ILeave {
2595
2927
  pageScrollPosition: number;
2596
2928
  /**
2597
2929
  * The relative scroll position of the page when the user leaves it.
2930
+ * @minimum 0
2931
+ * @maximum 1
2598
2932
  */
2599
2933
  pageViewPercentage: number;
2600
2934
  }
2601
2935
  interface ILeaveArticle {
2602
2936
  /**
2603
2937
  * The version of the TPaaS schemas catalog that this particular schema belongs to. Semver format.
2938
+ * @pattern ^(0|[1-9]\d*)\.(0|[1-9]\d*)\.(0|[1-9]\d*)$
2939
+ * @example "1.2.3"
2604
2940
  */
2605
2941
  catalogVersion: string;
2606
2942
  consents: IConsents;
2607
2943
  device: IDevice;
2608
2944
  /**
2609
2945
  * Event ID
2946
+ * @format uuid
2610
2947
  */
2611
2948
  eventId: string;
2612
2949
  /**
@@ -2615,7 +2952,9 @@ interface ILeaveArticle {
2615
2952
  eventType: "Leave";
2616
2953
  experiments?: IExperiments;
2617
2954
  leave: ILeave;
2955
+ metrics?: IMetrics;
2618
2956
  object: {
2957
+ authors: string[];
2619
2958
  /**
2620
2959
  * The editorial category of this article.
2621
2960
  */
@@ -2626,10 +2965,12 @@ interface ILeaveArticle {
2626
2965
  isStacked: boolean;
2627
2966
  /**
2628
2967
  * The publication date of this version of the article.
2968
+ * @format date-time
2629
2969
  */
2630
2970
  lastUpdatedDate: string;
2631
2971
  /**
2632
2972
  * The newsroom that published the article.
2973
+ * @example "vg"
2633
2974
  */
2634
2975
  newsroom: string;
2635
2976
  /**
@@ -2646,20 +2987,35 @@ interface ILeaveArticle {
2646
2987
  objectType: "Article";
2647
2988
  /**
2648
2989
  * The publication date of the article.
2990
+ * @format date-time
2649
2991
  */
2650
2992
  publicationDate: string;
2993
+ /**
2994
+ * The name of the company that sponsored the article. Empty if the article was not sponsored.
2995
+ */
2996
+ sponsor?: string;
2651
2997
  /**
2652
2998
  * The title of the page.
2653
2999
  */
2654
3000
  title: string;
3001
+ /**
3002
+ * Url of the article top or when missing article main image.
3003
+ */
3004
+ topImageUrl?: string;
2655
3005
  /**
2656
3006
  * The type of article.
2657
3007
  */
2658
3008
  variant: "Article" | "LiveArticle" | "Special";
2659
3009
  /**
2660
3010
  * The version counter of the article.
3011
+ * @minimum 0
2661
3012
  */
2662
3013
  versionCounter: number;
3014
+ /**
3015
+ * The number of words in this version of the article.
3016
+ * @exclusiveMinimum 0
3017
+ */
3018
+ wordCount: number;
2663
3019
  };
2664
3020
  page: {
2665
3021
  content: IContent;
@@ -2670,6 +3026,7 @@ interface ILeaveArticle {
2670
3026
  navigationType: "Navigate" | "Reload" | "BackForward" | "Prerender" | "Scroll";
2671
3027
  /**
2672
3028
  * The pageviewID.
3029
+ * @format uuid
2673
3030
  */
2674
3031
  pageviewId: string;
2675
3032
  referrer?: IPageRef;
@@ -2678,6 +3035,8 @@ interface ILeaveArticle {
2678
3035
  provider: IProvider;
2679
3036
  /**
2680
3037
  * The schema of the event.
3038
+ * @format uri
3039
+ * @pattern ^https://tpaas-schemas.schibsted.media/.+\.json$
2681
3040
  */
2682
3041
  schema: string;
2683
3042
  session: ISession;
@@ -2688,6 +3047,7 @@ interface ILeaveArticle {
2688
3047
  interface ILeaveAudio {
2689
3048
  /**
2690
3049
  * The total active time a user spends on the page in milliseconds. Active implies a timespan of less than 30 sec since triggering one of the following browser events(On web): 'mousedown', 'mousemove', 'keydown', 'scroll', 'touchstart'.
3050
+ * @exclusiveMinimum 0
2691
3051
  */
2692
3052
  activityDurationMs: number;
2693
3053
  /**
@@ -2700,6 +3060,7 @@ interface ILeaveAudio {
2700
3060
  audioStarted: number;
2701
3061
  /**
2702
3062
  * The total time the user spent on the page in milliseconds.
3063
+ * @exclusiveMinimum 0
2703
3064
  */
2704
3065
  durationMs: number;
2705
3066
  /**
@@ -2708,18 +3069,23 @@ interface ILeaveAudio {
2708
3069
  maxPlaylistPosition?: number;
2709
3070
  /**
2710
3071
  * How far the user came into the playlist shown in percentage.
3072
+ * @minimum 0
3073
+ * @maximum 1
2711
3074
  */
2712
3075
  playlistPositionPercentage?: number;
2713
3076
  }
2714
3077
  interface ILeaveAudioPage {
2715
3078
  /**
2716
3079
  * The version of the TPaaS schemas catalog that this particular schema belongs to. Semver format.
3080
+ * @pattern ^(0|[1-9]\d*)\.(0|[1-9]\d*)\.(0|[1-9]\d*)$
3081
+ * @example "1.2.3"
2717
3082
  */
2718
3083
  catalogVersion: string;
2719
3084
  consents: IConsents;
2720
3085
  device: IDevice;
2721
3086
  /**
2722
3087
  * The unique identifier for the event.
3088
+ * @format uuid
2723
3089
  */
2724
3090
  eventId: string;
2725
3091
  /**
@@ -2758,6 +3124,7 @@ interface ILeaveAudioPage {
2758
3124
  navigationType: "Navigate" | "Reload" | "BackForward" | "Prerender";
2759
3125
  /**
2760
3126
  * The pageviewID.
3127
+ * @format uuid
2761
3128
  */
2762
3129
  pageviewId: string;
2763
3130
  referrer?: IPageRef;
@@ -2766,6 +3133,8 @@ interface ILeaveAudioPage {
2766
3133
  provider: IProvider;
2767
3134
  /**
2768
3135
  * URL to the JSON schema for this event.
3136
+ * @format uri
3137
+ * @pattern ^https://tpaas-schemas.schibsted.media/.+\.json$
2769
3138
  */
2770
3139
  schema: string;
2771
3140
  session: ISession;
@@ -2776,12 +3145,15 @@ interface ILeaveAudioPage {
2776
3145
  interface ILeaveError {
2777
3146
  /**
2778
3147
  * The version of the TPaaS schemas catalog that this particular schema belongs to. Semver format.
3148
+ * @pattern ^(0|[1-9]\d*)\.(0|[1-9]\d*)\.(0|[1-9]\d*)$
3149
+ * @example "1.2.3"
2779
3150
  */
2780
3151
  catalogVersion: string;
2781
3152
  consents: IConsents;
2782
3153
  device: IDevice;
2783
3154
  /**
2784
3155
  * Event ID
3156
+ * @format uuid
2785
3157
  */
2786
3158
  eventId: string;
2787
3159
  /**
@@ -2797,10 +3169,12 @@ interface ILeaveError {
2797
3169
  category?: string;
2798
3170
  /**
2799
3171
  * The response code of the page.
3172
+ * @example 418
2800
3173
  */
2801
3174
  errorCode: number;
2802
3175
  /**
2803
3176
  * The error message.
3177
+ * @example "I'm a teapot"
2804
3178
  */
2805
3179
  errorMessage: string;
2806
3180
  /**
@@ -2828,6 +3202,7 @@ interface ILeaveError {
2828
3202
  navigationType: "Navigate" | "Reload" | "BackForward" | "Prerender" | "Scroll";
2829
3203
  /**
2830
3204
  * The pageviewID.
3205
+ * @format uuid
2831
3206
  */
2832
3207
  pageviewId: string;
2833
3208
  referrer?: IPageRef;
@@ -2836,6 +3211,8 @@ interface ILeaveError {
2836
3211
  provider: IProvider;
2837
3212
  /**
2838
3213
  * The schema of the event.
3214
+ * @format uri
3215
+ * @pattern ^https://tpaas-schemas.schibsted.media/.+\.json$
2839
3216
  */
2840
3217
  schema: string;
2841
3218
  session: ISession;
@@ -2846,12 +3223,15 @@ interface ILeaveError {
2846
3223
  interface ILeaveFrontpage {
2847
3224
  /**
2848
3225
  * The version of the TPaaS schemas catalog that this particular schema belongs to. Semver format.
3226
+ * @pattern ^(0|[1-9]\d*)\.(0|[1-9]\d*)\.(0|[1-9]\d*)$
3227
+ * @example "1.2.3"
2849
3228
  */
2850
3229
  catalogVersion: string;
2851
3230
  consents: IConsents;
2852
3231
  device: IDevice;
2853
3232
  /**
2854
3233
  * Event ID
3234
+ * @format uuid
2855
3235
  */
2856
3236
  eventId: string;
2857
3237
  /**
@@ -2860,11 +3240,8 @@ interface ILeaveFrontpage {
2860
3240
  eventType: "Leave";
2861
3241
  experiments?: IExperiments;
2862
3242
  leave: ILeave;
3243
+ metrics?: IMetrics;
2863
3244
  object: {
2864
- /**
2865
- * The location of the page in the brand’s page hierarchy.
2866
- */
2867
- category?: string;
2868
3245
  /**
2869
3246
  * The engine producing this listing. Use “editorial” for manually curated lists.
2870
3247
  */
@@ -2875,6 +3252,7 @@ interface ILeaveFrontpage {
2875
3252
  isInfinite: boolean;
2876
3253
  /**
2877
3254
  * The total number of items in the listing, or -1 if unknown.
3255
+ * @minimum -1
2878
3256
  */
2879
3257
  itemsTotal: number;
2880
3258
  /**
@@ -2889,10 +3267,6 @@ interface ILeaveFrontpage {
2889
3267
  * The type of this page.
2890
3268
  */
2891
3269
  objectType: "Frontpage";
2892
- /**
2893
- * Indicates how results are sorted. Use “editorial” for manually curated lists.
2894
- */
2895
- sortingMethod: "Time" | "Editorial" | "Relevance" | "Alphabetical";
2896
3270
  /**
2897
3271
  * The title of the page.
2898
3272
  */
@@ -2906,6 +3280,7 @@ interface ILeaveFrontpage {
2906
3280
  navigationType: "Navigate" | "Reload" | "BackForward" | "Prerender";
2907
3281
  /**
2908
3282
  * The pageviewID.
3283
+ * @format uuid
2909
3284
  */
2910
3285
  pageviewId: string;
2911
3286
  referrer?: IPageRef;
@@ -2914,6 +3289,8 @@ interface ILeaveFrontpage {
2914
3289
  provider: IProvider;
2915
3290
  /**
2916
3291
  * The schema of the event.
3292
+ * @format uri
3293
+ * @pattern ^https://tpaas-schemas.schibsted.media/.+\.json$
2917
3294
  */
2918
3295
  schema: string;
2919
3296
  session: ISession;
@@ -2924,12 +3301,15 @@ interface ILeaveFrontpage {
2924
3301
  interface ILeaveLandingpage {
2925
3302
  /**
2926
3303
  * The version of the TPaaS schemas catalog that this particular schema belongs to. Semver format.
3304
+ * @pattern ^(0|[1-9]\d*)\.(0|[1-9]\d*)\.(0|[1-9]\d*)$
3305
+ * @example "1.2.3"
2927
3306
  */
2928
3307
  catalogVersion: string;
2929
3308
  consents: IConsents;
2930
3309
  device: IDevice;
2931
3310
  /**
2932
3311
  * Event ID
3312
+ * @format uuid
2933
3313
  */
2934
3314
  eventId: string;
2935
3315
  /**
@@ -2941,6 +3321,7 @@ interface ILeaveLandingpage {
2941
3321
  object: {
2942
3322
  /**
2943
3323
  * The name of the landing page campaign.
3324
+ * @example "summer-sale"
2944
3325
  */
2945
3326
  campaign?: string;
2946
3327
  /**
@@ -2972,6 +3353,7 @@ interface ILeaveLandingpage {
2972
3353
  navigationType: "Navigate" | "Reload" | "BackForward" | "Prerender";
2973
3354
  /**
2974
3355
  * The pageviewID.
3356
+ * @format uuid
2975
3357
  */
2976
3358
  pageviewId: string;
2977
3359
  referrer?: IPageRef;
@@ -2980,6 +3362,8 @@ interface ILeaveLandingpage {
2980
3362
  provider: IProvider;
2981
3363
  /**
2982
3364
  * The schema of the event.
3365
+ * @format uri
3366
+ * @pattern ^https://tpaas-schemas.schibsted.media/.+\.json$
2983
3367
  */
2984
3368
  schema: string;
2985
3369
  session: ISession;
@@ -2990,12 +3374,15 @@ interface ILeaveLandingpage {
2990
3374
  interface ILeaveListing {
2991
3375
  /**
2992
3376
  * The version of the TPaaS schemas catalog that this particular schema belongs to. Semver format.
3377
+ * @pattern ^(0|[1-9]\d*)\.(0|[1-9]\d*)\.(0|[1-9]\d*)$
3378
+ * @example "1.2.3"
2993
3379
  */
2994
3380
  catalogVersion: string;
2995
3381
  consents: IConsents;
2996
3382
  device: IDevice;
2997
3383
  /**
2998
3384
  * Event ID
3385
+ * @format uuid
2999
3386
  */
3000
3387
  eventId: string;
3001
3388
  /**
@@ -3004,9 +3391,11 @@ interface ILeaveListing {
3004
3391
  eventType: "Leave";
3005
3392
  experiments?: IExperiments;
3006
3393
  leave: ILeave;
3394
+ metrics?: IMetrics;
3007
3395
  object: {
3008
3396
  /**
3009
3397
  * The location of the page in the brand’s page hierarchy.
3398
+ * @pattern ^[a-z0-9-]+(>[a-z0-9-]+)*$
3010
3399
  */
3011
3400
  category?: string;
3012
3401
  /**
@@ -3019,10 +3408,12 @@ interface ILeaveListing {
3019
3408
  isInfinite: boolean;
3020
3409
  /**
3021
3410
  * The total number of items in the listing, or -1 if unknown.
3411
+ * @minimum -1
3022
3412
  */
3023
3413
  itemsTotal: number;
3024
3414
  /**
3025
3415
  * The type of listing page, e.g. 'tag', 'section' etc.
3416
+ * @pattern Tag,Story,Section,Search,Author,Other
3026
3417
  */
3027
3418
  listingType: string;
3028
3419
  /**
@@ -3039,6 +3430,7 @@ interface ILeaveListing {
3039
3430
  objectType: "Listing";
3040
3431
  /**
3041
3432
  * Current pagination index. Zero if results are not paged.
3433
+ * @minimum 0
3042
3434
  */
3043
3435
  pageNumber: number;
3044
3436
  /**
@@ -3058,6 +3450,7 @@ interface ILeaveListing {
3058
3450
  navigationType: "Navigate" | "Reload" | "BackForward" | "Prerender";
3059
3451
  /**
3060
3452
  * The pageviewID.
3453
+ * @format uuid
3061
3454
  */
3062
3455
  pageviewId: string;
3063
3456
  referrer?: IPageRef;
@@ -3066,6 +3459,8 @@ interface ILeaveListing {
3066
3459
  provider: IProvider;
3067
3460
  /**
3068
3461
  * The schema of the event.
3462
+ * @format uri
3463
+ * @pattern ^https://tpaas-schemas.schibsted.media/.+\.json$
3069
3464
  */
3070
3465
  schema: string;
3071
3466
  session: ISession;
@@ -3076,12 +3471,15 @@ interface ILeaveListing {
3076
3471
  interface ILeaveLockedArticle {
3077
3472
  /**
3078
3473
  * The version of the TPaaS schemas catalog that this particular schema belongs to. Semver format.
3474
+ * @pattern ^(0|[1-9]\d*)\.(0|[1-9]\d*)\.(0|[1-9]\d*)$
3475
+ * @example "1.2.3"
3079
3476
  */
3080
3477
  catalogVersion: string;
3081
3478
  consents: IConsents;
3082
3479
  device: IDevice;
3083
3480
  /**
3084
3481
  * Event ID
3482
+ * @format uuid
3085
3483
  */
3086
3484
  eventId: string;
3087
3485
  /**
@@ -3090,7 +3488,9 @@ interface ILeaveLockedArticle {
3090
3488
  eventType: "Leave";
3091
3489
  experiments?: IExperiments;
3092
3490
  leave: ILeave;
3491
+ metrics?: IMetrics;
3093
3492
  object: {
3493
+ authors: string[];
3094
3494
  /**
3095
3495
  * The location of the page in the brand’s page hierarchy.
3096
3496
  */
@@ -3101,10 +3501,12 @@ interface ILeaveLockedArticle {
3101
3501
  isStacked: boolean;
3102
3502
  /**
3103
3503
  * The publication date of this version of the article.
3504
+ * @format date-time
3104
3505
  */
3105
3506
  lastUpdatedDate: string;
3106
3507
  /**
3107
3508
  * The newsroom that published the article.
3509
+ * @example "vg"
3108
3510
  */
3109
3511
  newsroom: string;
3110
3512
  /**
@@ -3129,20 +3531,35 @@ interface ILeaveLockedArticle {
3129
3531
  paywallType: "Paid" | "Metered" | "Login" | "Free" | "Dynamic";
3130
3532
  /**
3131
3533
  * The publication date of the article.
3534
+ * @format date-time
3132
3535
  */
3133
3536
  publicationDate: string;
3537
+ /**
3538
+ * The name of the company that sponsored the article. Omitted if the article was not sponsored.
3539
+ */
3540
+ sponsor?: string;
3134
3541
  /**
3135
3542
  * The title of the page.
3136
3543
  */
3137
3544
  title: string;
3545
+ /**
3546
+ * Url of the article top or when missing article main image.
3547
+ */
3548
+ topImageUrl?: string;
3138
3549
  /**
3139
3550
  * The type of article.
3140
3551
  */
3141
3552
  variant: "Article" | "LiveArticle" | "Special";
3142
3553
  /**
3143
3554
  * The version counter of the article.
3555
+ * @minimum 0
3144
3556
  */
3145
3557
  versionCounter: number;
3558
+ /**
3559
+ * The number of words in this version of the article.
3560
+ * @exclusiveMinimum 0
3561
+ */
3562
+ wordCount: number;
3146
3563
  };
3147
3564
  page: {
3148
3565
  content: IContent;
@@ -3153,6 +3570,7 @@ interface ILeaveLockedArticle {
3153
3570
  navigationType: "Navigate" | "Reload" | "BackForward" | "Prerender" | "Scroll";
3154
3571
  /**
3155
3572
  * The pageviewID.
3573
+ * @format uuid
3156
3574
  */
3157
3575
  pageviewId: string;
3158
3576
  referrer?: IPageRef;
@@ -3161,6 +3579,8 @@ interface ILeaveLockedArticle {
3161
3579
  provider: IProvider;
3162
3580
  /**
3163
3581
  * The schema of the event.
3582
+ * @format uri
3583
+ * @pattern ^https://tpaas-schemas.schibsted.media/.+\.json$
3164
3584
  */
3165
3585
  schema: string;
3166
3586
  session: ISession;
@@ -3171,12 +3591,15 @@ interface ILeaveLockedArticle {
3171
3591
  interface ILeaveLockedAudioPage {
3172
3592
  /**
3173
3593
  * The version of the TPaaS schemas catalog that this particular schema belongs to. Semver format.
3594
+ * @pattern ^(0|[1-9]\d*)\.(0|[1-9]\d*)\.(0|[1-9]\d*)$
3595
+ * @example "1.2.3"
3174
3596
  */
3175
3597
  catalogVersion: string;
3176
3598
  consents: IConsents;
3177
3599
  device: IDevice;
3178
3600
  /**
3179
3601
  * The unique identifier for the event.
3602
+ * @format uuid
3180
3603
  */
3181
3604
  eventId: string;
3182
3605
  /**
@@ -3225,6 +3648,7 @@ interface ILeaveLockedAudioPage {
3225
3648
  navigationType: "Navigate" | "Reload" | "BackForward" | "Prerender";
3226
3649
  /**
3227
3650
  * The pageviewID.
3651
+ * @format uuid
3228
3652
  */
3229
3653
  pageviewId: string;
3230
3654
  referrer?: IPageRef;
@@ -3233,6 +3657,8 @@ interface ILeaveLockedAudioPage {
3233
3657
  provider: IProvider;
3234
3658
  /**
3235
3659
  * URL to the JSON schema for this event.
3660
+ * @format uri
3661
+ * @pattern ^https://tpaas-schemas.schibsted.media/.+\.json$
3236
3662
  */
3237
3663
  schema: string;
3238
3664
  session: ISession;
@@ -3243,12 +3669,15 @@ interface ILeaveLockedAudioPage {
3243
3669
  interface ILeaveLockedVideoPage {
3244
3670
  /**
3245
3671
  * The version of the TPaaS schemas catalog that this particular schema belongs to. Semver format.
3672
+ * @pattern ^(0|[1-9]\d*)\.(0|[1-9]\d*)\.(0|[1-9]\d*)$
3673
+ * @example "1.2.3"
3246
3674
  */
3247
3675
  catalogVersion: string;
3248
3676
  consents: IConsents;
3249
3677
  device: IDevice;
3250
3678
  /**
3251
3679
  * The unique identifier for the event.
3680
+ * @format uuid
3252
3681
  */
3253
3682
  eventId: string;
3254
3683
  /**
@@ -3297,6 +3726,7 @@ interface ILeaveLockedVideoPage {
3297
3726
  navigationType: "Navigate" | "Reload" | "BackForward" | "Prerender";
3298
3727
  /**
3299
3728
  * The pageviewID.
3729
+ * @format uuid
3300
3730
  */
3301
3731
  pageviewId: string;
3302
3732
  referrer?: IPageRef;
@@ -3305,6 +3735,8 @@ interface ILeaveLockedVideoPage {
3305
3735
  provider: IProvider;
3306
3736
  /**
3307
3737
  * URL to the JSON schema for this event.
3738
+ * @format uri
3739
+ * @pattern ^https://tpaas-schemas.schibsted.media/.+\.json$
3308
3740
  */
3309
3741
  schema: string;
3310
3742
  session: ISession;
@@ -3315,12 +3747,15 @@ interface ILeaveLockedVideoPage {
3315
3747
  interface ILeavePage {
3316
3748
  /**
3317
3749
  * The version of the TPaaS schemas catalog that this particular schema belongs to. Semver format.
3750
+ * @pattern ^(0|[1-9]\d*)\.(0|[1-9]\d*)\.(0|[1-9]\d*)$
3751
+ * @example "1.2.3"
3318
3752
  */
3319
3753
  catalogVersion: string;
3320
3754
  consents: IConsents;
3321
3755
  device: IDevice;
3322
3756
  /**
3323
3757
  * Event ID
3758
+ * @format uuid
3324
3759
  */
3325
3760
  eventId: string;
3326
3761
  /**
@@ -3329,6 +3764,7 @@ interface ILeavePage {
3329
3764
  eventType: "Leave";
3330
3765
  experiments?: IExperiments;
3331
3766
  leave: ILeave;
3767
+ metrics?: IMetrics;
3332
3768
  object: {
3333
3769
  /**
3334
3770
  * The location of the page in the brand’s page hierarchy.
@@ -3354,6 +3790,7 @@ interface ILeavePage {
3354
3790
  navigationType: "Navigate" | "Reload" | "BackForward" | "Prerender";
3355
3791
  /**
3356
3792
  * The pageviewID.
3793
+ * @format uuid
3357
3794
  */
3358
3795
  pageviewId: string;
3359
3796
  referrer?: IPageRef;
@@ -3362,6 +3799,8 @@ interface ILeavePage {
3362
3799
  provider: IProvider;
3363
3800
  /**
3364
3801
  * The schema of the event.
3802
+ * @format uri
3803
+ * @pattern ^https://tpaas-schemas.schibsted.media/.+\.json$
3365
3804
  */
3366
3805
  schema: string;
3367
3806
  session: ISession;
@@ -3384,6 +3823,7 @@ interface ISports {
3384
3823
  competitionId?: string;
3385
3824
  /**
3386
3825
  * Name of the competition.
3826
+ * @example "Premier League"
3387
3827
  */
3388
3828
  competitionName?: string;
3389
3829
  /**
@@ -3392,6 +3832,7 @@ interface ISports {
3392
3832
  competitionSeasonId?: number;
3393
3833
  /**
3394
3834
  * Name of the competition season.
3835
+ * @example "Premier League 2025/2026"
3395
3836
  */
3396
3837
  competitionSeasonName?: string;
3397
3838
  /**
@@ -3412,10 +3853,12 @@ interface ISports {
3412
3853
  sportEventCoverage?: "Manual" | "SemiAutomatic" | "Automatic" | "AI";
3413
3854
  /**
3414
3855
  * Date (yyyy-mm-dd) of the sport event.
3856
+ * @format date
3415
3857
  */
3416
3858
  sportEventDate?: string;
3417
3859
  /**
3418
3860
  * Timestamp of when the sport event starts.
3861
+ * @format date-time
3419
3862
  */
3420
3863
  sportEventDatetime?: string;
3421
3864
  /**
@@ -3448,6 +3891,7 @@ interface ISports {
3448
3891
  teamId?: number;
3449
3892
  /**
3450
3893
  * Name of the team.
3894
+ * @example "Manchester United"
3451
3895
  */
3452
3896
  teamName?: string;
3453
3897
  /**
@@ -3478,12 +3922,15 @@ interface ISports {
3478
3922
  interface ILeaveSportsPage {
3479
3923
  /**
3480
3924
  * The version of the TPaaS schemas catalog that this particular schema belongs to. Semver format.
3925
+ * @pattern ^(0|[1-9]\d*)\.(0|[1-9]\d*)\.(0|[1-9]\d*)$
3926
+ * @example "1.2.3"
3481
3927
  */
3482
3928
  catalogVersion: string;
3483
3929
  consents: IConsents;
3484
3930
  device: IDevice;
3485
3931
  /**
3486
3932
  * The unique identifier for the event.
3933
+ * @format uuid
3487
3934
  */
3488
3935
  eventId: string;
3489
3936
  /**
@@ -3525,6 +3972,7 @@ interface ILeaveSportsPage {
3525
3972
  navigationType: "Navigate" | "Reload" | "BackForward" | "Prerender";
3526
3973
  /**
3527
3974
  * The pageviewID.
3975
+ * @format uuid
3528
3976
  */
3529
3977
  pageviewId: string;
3530
3978
  referrer?: IPageRef;
@@ -3533,6 +3981,8 @@ interface ILeaveSportsPage {
3533
3981
  provider: IProvider;
3534
3982
  /**
3535
3983
  * URL to the JSON schema for this event.
3984
+ * @format uri
3985
+ * @pattern ^https://tpaas-schemas.schibsted.media/.+\.json$
3536
3986
  */
3537
3987
  schema: string;
3538
3988
  session: ISession;
@@ -3543,6 +3993,7 @@ interface ILeaveSportsPage {
3543
3993
  interface ILeaveStories {
3544
3994
  /**
3545
3995
  * The total active time a user spends on the page in milliseconds. Active implies a timespan of less than 30 sec since triggering one of the following browser events(On web): 'mousedown', 'mousemove', 'keydown', 'scroll', 'touchstart'.
3996
+ * @exclusiveMinimum 0
3546
3997
  */
3547
3998
  activityDurationMs: number;
3548
3999
  /**
@@ -3551,6 +4002,7 @@ interface ILeaveStories {
3551
4002
  adCount: number;
3552
4003
  /**
3553
4004
  * The total time the user spent on the page in milliseconds.
4005
+ * @exclusiveMinimum 0
3554
4006
  */
3555
4007
  durationMs: number;
3556
4008
  /**
@@ -3559,6 +4011,8 @@ interface ILeaveStories {
3559
4011
  maxPlaylistPosition: number;
3560
4012
  /**
3561
4013
  * How far the user came into the playlist shown in percentage.
4014
+ * @minimum 0
4015
+ * @maximum 1
3562
4016
  */
3563
4017
  playlistPositionPercentage: number;
3564
4018
  /**
@@ -3573,12 +4027,15 @@ interface ILeaveStories {
3573
4027
  interface ILeaveVideoPage {
3574
4028
  /**
3575
4029
  * The version of the TPaaS schemas catalog that this particular schema belongs to. Semver format.
4030
+ * @pattern ^(0|[1-9]\d*)\.(0|[1-9]\d*)\.(0|[1-9]\d*)$
4031
+ * @example "1.2.3"
3576
4032
  */
3577
4033
  catalogVersion: string;
3578
4034
  consents: IConsents;
3579
4035
  device: IDevice;
3580
4036
  /**
3581
4037
  * The unique identifier for the event.
4038
+ * @format uuid
3582
4039
  */
3583
4040
  eventId: string;
3584
4041
  /**
@@ -3620,6 +4077,7 @@ interface ILeaveVideoPage {
3620
4077
  navigationType: "Navigate" | "Reload" | "BackForward" | "Prerender";
3621
4078
  /**
3622
4079
  * The pageviewID.
4080
+ * @format uuid
3623
4081
  */
3624
4082
  pageviewId: string;
3625
4083
  referrer?: IPageRef;
@@ -3628,6 +4086,8 @@ interface ILeaveVideoPage {
3628
4086
  provider: IProvider;
3629
4087
  /**
3630
4088
  * URL to the JSON schema for this event.
4089
+ * @format uri
4090
+ * @pattern ^https://tpaas-schemas.schibsted.media/.+\.json$
3631
4091
  */
3632
4092
  schema: string;
3633
4093
  session: ISession;
@@ -3638,12 +4098,15 @@ interface ILeaveVideoPage {
3638
4098
  interface ILeaveWeather {
3639
4099
  /**
3640
4100
  * The version of the TPaaS schemas catalog that this particular schema belongs to. Semver format.
4101
+ * @pattern ^(0|[1-9]\d*)\.(0|[1-9]\d*)\.(0|[1-9]\d*)$
4102
+ * @example "1.2.3"
3641
4103
  */
3642
4104
  catalogVersion: string;
3643
4105
  consents: IConsents;
3644
4106
  device: IDevice;
3645
4107
  /**
3646
4108
  * Event ID
4109
+ * @format uuid
3647
4110
  */
3648
4111
  eventId: string;
3649
4112
  /**
@@ -3654,14 +4117,55 @@ interface ILeaveWeather {
3654
4117
  leave: ILeave;
3655
4118
  metrics?: IMetrics;
3656
4119
  object: {
4120
+ /**
4121
+ * The editorial category of this forecast.
4122
+ */
4123
+ category?: string;
4124
+ /**
4125
+ * The country within which the forecast is done.
4126
+ */
4127
+ country: string;
4128
+ /**
4129
+ * The location within the region covered by this forecast.
4130
+ */
4131
+ location?: string;
4132
+ /**
4133
+ * The unique ID of this page.
4134
+ */
4135
+ objectId: string;
4136
+ /**
4137
+ * The unique SDRN of this page.
4138
+ */
4139
+ objectSdrn: string;
3657
4140
  /**
3658
4141
  * The type of the schema.
3659
4142
  */
3660
4143
  objectType: "Weather";
4144
+ /**
4145
+ * The region covered by the forecast.
4146
+ */
4147
+ region: string;
4148
+ tags?: string[];
4149
+ };
4150
+ page: {
4151
+ info: IPageRef;
4152
+ /**
4153
+ * The browser navigation that got the user to the current page.
4154
+ */
4155
+ navigationType: "Navigate" | "Reload" | "BackForward" | "Prerender";
4156
+ /**
4157
+ * The pageviewID.
4158
+ * @format uuid
4159
+ */
4160
+ pageviewId: string;
4161
+ referrer?: IPageRef;
4162
+ utm?: IUtmTags;
3661
4163
  };
3662
4164
  provider: IProvider;
3663
4165
  /**
3664
4166
  * The schema of the event.
4167
+ * @format uri
4168
+ * @pattern ^https://tpaas-schemas.schibsted.media/.+\.json$
3665
4169
  */
3666
4170
  schema: string;
3667
4171
  time: ITime;
@@ -3671,6 +4175,8 @@ interface ILeaveWeather {
3671
4175
  interface IPurchaseSubscription {
3672
4176
  /**
3673
4177
  * The version of the TPaaS schemas catalog that this particular schema belongs to. Semver format.
4178
+ * @pattern ^(0|[1-9]\d*)\.(0|[1-9]\d*)\.(0|[1-9]\d*)$
4179
+ * @example "1.2.3"
3674
4180
  */
3675
4181
  catalogVersion: string;
3676
4182
  consents?: IConsents;
@@ -3684,11 +4190,13 @@ interface IPurchaseSubscription {
3684
4190
  deviceType: "Desktop" | "Mobile" | "Tablet" | "SmartTv" | "Other";
3685
4191
  /**
3686
4192
  * The environmentId.
4193
+ * @pattern ^[0-9a-fA-F-]+$
3687
4194
  */
3688
4195
  environmentId?: string;
3689
4196
  };
3690
4197
  /**
3691
4198
  * The unique identifier for the event.
4199
+ * @format uuid
3692
4200
  */
3693
4201
  eventId: string;
3694
4202
  /**
@@ -3715,6 +4223,7 @@ interface IPurchaseSubscription {
3715
4223
  fullPrice: number;
3716
4224
  /**
3717
4225
  * The unique identifier of the subscription, which corresponds to subscription number in URS.
4226
+ * @pattern ^sdrn:[a-zA-Z0-9-]+:subscription:[a-zA-Z0-9_-]+$
3718
4227
  */
3719
4228
  objectSdrn: string;
3720
4229
  /**
@@ -3781,6 +4290,8 @@ interface IPurchaseSubscription {
3781
4290
  };
3782
4291
  /**
3783
4292
  * URL to the JSON schema for this event.
4293
+ * @format uri
4294
+ * @pattern ^https://tpaas-schemas.schibsted.media/.+\.json$
3784
4295
  */
3785
4296
  schema: string;
3786
4297
  time: ITime;
@@ -3789,18 +4300,27 @@ interface IPurchaseSubscription {
3789
4300
  }
3790
4301
  interface ILocation {
3791
4302
  accuracy: number;
4303
+ /**
4304
+ * @pattern ^-?\d+(\.\d{1,3})?$
4305
+ */
3792
4306
  latitude: string;
4307
+ /**
4308
+ * @pattern ^-?\d+(\.\d{1,3})?$
4309
+ */
3793
4310
  longitude: string;
3794
4311
  }
3795
4312
  interface IViewArticle {
3796
4313
  /**
3797
4314
  * The version of the TPaaS schemas catalog that this particular schema belongs to. Semver format.
4315
+ * @pattern ^(0|[1-9]\d*)\.(0|[1-9]\d*)\.(0|[1-9]\d*)$
4316
+ * @example "1.2.3"
3798
4317
  */
3799
4318
  catalogVersion: string;
3800
4319
  consents: IConsents;
3801
4320
  device: IDevice;
3802
4321
  /**
3803
4322
  * Event ID
4323
+ * @format uuid
3804
4324
  */
3805
4325
  eventId: string;
3806
4326
  /**
@@ -3809,30 +4329,25 @@ interface IViewArticle {
3809
4329
  eventType: "View";
3810
4330
  experiments?: IExperiments;
3811
4331
  location?: ILocation;
4332
+ metrics?: IMetrics;
3812
4333
  object: {
3813
4334
  authors: string[];
3814
4335
  /**
3815
4336
  * The editorial category of this article.
3816
4337
  */
3817
4338
  category: string;
3818
- /**
3819
- * The hotness value that was set in the CMS.
3820
- */
3821
- hotness: number;
3822
4339
  /**
3823
4340
  * True if scrolling up/down transitions to the next or previous article.
3824
4341
  */
3825
4342
  isStacked: boolean;
3826
4343
  /**
3827
4344
  * The publication date of this version of the article.
4345
+ * @format date-time
3828
4346
  */
3829
4347
  lastUpdatedDate: string;
3830
- /**
3831
- * The lifetime value that was set in the CMS.
3832
- */
3833
- lifetime: number;
3834
4348
  /**
3835
4349
  * The newsroom that published the article.
4350
+ * @example "vg"
3836
4351
  */
3837
4352
  newsroom: string;
3838
4353
  /**
@@ -3849,6 +4364,7 @@ interface IViewArticle {
3849
4364
  objectType: "Article";
3850
4365
  /**
3851
4366
  * The publication date of the article.
4367
+ * @format date-time
3852
4368
  */
3853
4369
  publicationDate: string;
3854
4370
  /**
@@ -3859,16 +4375,22 @@ interface IViewArticle {
3859
4375
  * The title of the page.
3860
4376
  */
3861
4377
  title: string;
4378
+ /**
4379
+ * Url of the article top or when missing article main image.
4380
+ */
4381
+ topImageUrl?: string;
3862
4382
  /**
3863
4383
  * The type of article.
3864
4384
  */
3865
4385
  variant: "Article" | "LiveArticle" | "Special";
3866
4386
  /**
3867
4387
  * The version counter of the article.
4388
+ * @minimum 0
3868
4389
  */
3869
4390
  versionCounter: number;
3870
4391
  /**
3871
4392
  * The number of words in this version of the article.
4393
+ * @exclusiveMinimum 0
3872
4394
  */
3873
4395
  wordCount: number;
3874
4396
  };
@@ -3881,6 +4403,7 @@ interface IViewArticle {
3881
4403
  navigationType: "Navigate" | "Reload" | "BackForward" | "Prerender" | "Scroll";
3882
4404
  /**
3883
4405
  * The pageviewID.
4406
+ * @format uuid
3884
4407
  */
3885
4408
  pageviewId: string;
3886
4409
  referrer?: IPageRef;
@@ -3889,6 +4412,8 @@ interface IViewArticle {
3889
4412
  provider: IProvider;
3890
4413
  /**
3891
4414
  * The schema of the event.
4415
+ * @format uri
4416
+ * @pattern ^https://tpaas-schemas.schibsted.media/.+\.json$
3892
4417
  */
3893
4418
  schema: string;
3894
4419
  session: ISession;
@@ -3899,12 +4424,15 @@ interface IViewArticle {
3899
4424
  interface IViewAudioPage {
3900
4425
  /**
3901
4426
  * The version of the TPaaS schemas catalog that this particular schema belongs to. Semver format.
4427
+ * @pattern ^(0|[1-9]\d*)\.(0|[1-9]\d*)\.(0|[1-9]\d*)$
4428
+ * @example "1.2.3"
3902
4429
  */
3903
4430
  catalogVersion: string;
3904
4431
  consents: IConsents;
3905
4432
  device: IDevice;
3906
4433
  /**
3907
4434
  * The unique identifier for the event.
4435
+ * @format uuid
3908
4436
  */
3909
4437
  eventId: string;
3910
4438
  /**
@@ -3944,6 +4472,7 @@ interface IViewAudioPage {
3944
4472
  navigationType: "Navigate" | "Reload" | "BackForward" | "Prerender";
3945
4473
  /**
3946
4474
  * The pageviewID.
4475
+ * @format uuid
3947
4476
  */
3948
4477
  pageviewId: string;
3949
4478
  referrer?: IPageRef;
@@ -3952,6 +4481,8 @@ interface IViewAudioPage {
3952
4481
  provider: IProvider;
3953
4482
  /**
3954
4483
  * URL to the JSON schema for this event.
4484
+ * @format uri
4485
+ * @pattern ^https://tpaas-schemas.schibsted.media/.+\.json$
3955
4486
  */
3956
4487
  schema: string;
3957
4488
  session: ISession;
@@ -3962,12 +4493,15 @@ interface IViewAudioPage {
3962
4493
  interface IViewError {
3963
4494
  /**
3964
4495
  * The version of the TPaaS schemas catalog that this particular schema belongs to. Semver format.
4496
+ * @pattern ^(0|[1-9]\d*)\.(0|[1-9]\d*)\.(0|[1-9]\d*)$
4497
+ * @example "1.2.3"
3965
4498
  */
3966
4499
  catalogVersion: string;
3967
4500
  consents: IConsents;
3968
4501
  device: IDevice;
3969
4502
  /**
3970
4503
  * Event ID
4504
+ * @format uuid
3971
4505
  */
3972
4506
  eventId: string;
3973
4507
  eventType: "View";
@@ -3979,10 +4513,12 @@ interface IViewError {
3979
4513
  category?: string;
3980
4514
  /**
3981
4515
  * The response code of the page.
4516
+ * @example 418
3982
4517
  */
3983
4518
  errorCode: number;
3984
4519
  /**
3985
4520
  * The error message.
4521
+ * @example "I'm a teapot"
3986
4522
  */
3987
4523
  errorMessage: string;
3988
4524
  /**
@@ -4010,6 +4546,7 @@ interface IViewError {
4010
4546
  navigationType: "Navigate" | "Reload" | "BackForward" | "Prerender" | "Scroll";
4011
4547
  /**
4012
4548
  * The pageviewID.
4549
+ * @format uuid
4013
4550
  */
4014
4551
  pageviewId: string;
4015
4552
  referrer?: IPageRef;
@@ -4018,6 +4555,8 @@ interface IViewError {
4018
4555
  provider: IProvider;
4019
4556
  /**
4020
4557
  * The schema of the event.
4558
+ * @format uri
4559
+ * @pattern ^https://tpaas-schemas.schibsted.media/.+\.json$
4021
4560
  */
4022
4561
  schema: string;
4023
4562
  session: ISession;
@@ -4028,12 +4567,15 @@ interface IViewError {
4028
4567
  interface IViewFrontpage {
4029
4568
  /**
4030
4569
  * The version of the TPaaS schemas catalog that this particular schema belongs to. Semver format.
4570
+ * @pattern ^(0|[1-9]\d*)\.(0|[1-9]\d*)\.(0|[1-9]\d*)$
4571
+ * @example "1.2.3"
4031
4572
  */
4032
4573
  catalogVersion: string;
4033
4574
  consents: IConsents;
4034
4575
  device: IDevice;
4035
4576
  /**
4036
4577
  * Event ID
4578
+ * @format uuid
4037
4579
  */
4038
4580
  eventId: string;
4039
4581
  /**
@@ -4044,10 +4586,6 @@ interface IViewFrontpage {
4044
4586
  location?: ILocation;
4045
4587
  metrics?: IMetrics;
4046
4588
  object: {
4047
- /**
4048
- * The location of the page in the brand’s page hierarchy.
4049
- */
4050
- category?: string;
4051
4589
  /**
4052
4590
  * The engine producing this listing. Use “editorial” for manually curated lists.
4053
4591
  */
@@ -4058,6 +4596,7 @@ interface IViewFrontpage {
4058
4596
  isInfinite: boolean;
4059
4597
  /**
4060
4598
  * The total number of items in the listing, or -1 if unknown.
4599
+ * @minimum -1
4061
4600
  */
4062
4601
  itemsTotal: number;
4063
4602
  /**
@@ -4072,10 +4611,6 @@ interface IViewFrontpage {
4072
4611
  * The type of this page.
4073
4612
  */
4074
4613
  objectType: "Frontpage";
4075
- /**
4076
- * Indicates how results are sorted. Use “editorial” for manually curated lists.
4077
- */
4078
- sortingMethod: "Time" | "Editorial" | "Relevance" | "Alphabetical";
4079
4614
  /**
4080
4615
  * The title of the page.
4081
4616
  */
@@ -4089,6 +4624,7 @@ interface IViewFrontpage {
4089
4624
  navigationType: "Navigate" | "Reload" | "BackForward" | "Prerender";
4090
4625
  /**
4091
4626
  * The pageviewID.
4627
+ * @format uuid
4092
4628
  */
4093
4629
  pageviewId: string;
4094
4630
  referrer?: IPageRef;
@@ -4097,6 +4633,8 @@ interface IViewFrontpage {
4097
4633
  provider: IProvider;
4098
4634
  /**
4099
4635
  * The schema of the event.
4636
+ * @format uri
4637
+ * @pattern ^https://tpaas-schemas.schibsted.media/.+\.json$
4100
4638
  */
4101
4639
  schema: string;
4102
4640
  session: ISession;
@@ -4107,12 +4645,15 @@ interface IViewFrontpage {
4107
4645
  interface IViewHealthPage {
4108
4646
  /**
4109
4647
  * The version of the TPaaS schemas catalog that this particular schema belongs to. Semver format.
4648
+ * @pattern ^(0|[1-9]\d*)\.(0|[1-9]\d*)\.(0|[1-9]\d*)$
4649
+ * @example "1.2.3"
4110
4650
  */
4111
4651
  catalogVersion: string;
4112
4652
  consents: IConsents;
4113
4653
  device: IDevice;
4114
4654
  /**
4115
4655
  * The unique identifier for the event.
4656
+ * @format uuid
4116
4657
  */
4117
4658
  eventId: string;
4118
4659
  /**
@@ -4127,20 +4668,24 @@ interface IViewHealthPage {
4127
4668
  object: {
4128
4669
  /**
4129
4670
  * Used to pass the same information across events
4671
+ * @example "breakfast"
4130
4672
  */
4131
4673
  category?: string;
4132
4674
  /**
4133
4675
  * Freeform custom properties with dynamic field names for health-specific data
4676
+ * @additionalProperties true
4134
4677
  */
4135
4678
  custom?: {
4136
4679
  [k: string]: unknown;
4137
4680
  };
4138
4681
  /**
4139
4682
  * Description: The user intent or purpose of this event
4683
+ * @example "view logged foodstuff"
4140
4684
  */
4141
4685
  intent?: string;
4142
4686
  /**
4143
4687
  * The name of page
4688
+ * @example "Logbook"
4144
4689
  */
4145
4690
  name: string;
4146
4691
  /**
@@ -4161,6 +4706,7 @@ interface IViewHealthPage {
4161
4706
  tags?: string[];
4162
4707
  /**
4163
4708
  * The title of the health page
4709
+ * @example "Be well med Wellobe: Vecka 4"
4164
4710
  */
4165
4711
  title?: string;
4166
4712
  };
@@ -4176,6 +4722,7 @@ interface IViewHealthPage {
4176
4722
  navigationType: "Navigate" | "Reload" | "BackForward" | "Prerender";
4177
4723
  /**
4178
4724
  * The pageviewID.
4725
+ * @format uuid
4179
4726
  */
4180
4727
  pageviewId: string;
4181
4728
  referrer?: IPageRef;
@@ -4184,6 +4731,8 @@ interface IViewHealthPage {
4184
4731
  provider: IProvider;
4185
4732
  /**
4186
4733
  * URL to the JSON schema for this event.
4734
+ * @format uri
4735
+ * @pattern ^https://tpaas-schemas.schibsted.media/.+\.json$
4187
4736
  */
4188
4737
  schema: string;
4189
4738
  session: ISession;
@@ -4194,12 +4743,15 @@ interface IViewHealthPage {
4194
4743
  interface IViewLandingpage {
4195
4744
  /**
4196
4745
  * The version of the TPaaS schemas catalog that this particular schema belongs to. Semver format.
4746
+ * @pattern ^(0|[1-9]\d*)\.(0|[1-9]\d*)\.(0|[1-9]\d*)$
4747
+ * @example "1.2.3"
4197
4748
  */
4198
4749
  catalogVersion: string;
4199
4750
  consents: IConsents;
4200
4751
  device: IDevice;
4201
4752
  /**
4202
4753
  * Event ID
4754
+ * @format uuid
4203
4755
  */
4204
4756
  eventId: string;
4205
4757
  eventType: "View";
@@ -4230,6 +4782,7 @@ interface IViewLandingpage {
4230
4782
  navigationType: "Navigate" | "Reload" | "BackForward" | "Prerender";
4231
4783
  /**
4232
4784
  * The pageviewID.
4785
+ * @format uuid
4233
4786
  */
4234
4787
  pageviewId: string;
4235
4788
  referrer?: IPageRef;
@@ -4238,6 +4791,8 @@ interface IViewLandingpage {
4238
4791
  provider: IProvider;
4239
4792
  /**
4240
4793
  * The schema of the event.
4794
+ * @format uri
4795
+ * @pattern ^https://tpaas-schemas.schibsted.media/.+\.json$
4241
4796
  */
4242
4797
  schema: string;
4243
4798
  session: ISession;
@@ -4248,19 +4803,24 @@ interface IViewLandingpage {
4248
4803
  interface IViewListing {
4249
4804
  /**
4250
4805
  * The version of the TPaaS schemas catalog that this particular schema belongs to. Semver format.
4806
+ * @pattern ^(0|[1-9]\d*)\.(0|[1-9]\d*)\.(0|[1-9]\d*)$
4807
+ * @example "1.2.3"
4251
4808
  */
4252
4809
  catalogVersion: string;
4253
4810
  consents: IConsents;
4254
4811
  device: IDevice;
4255
4812
  /**
4256
4813
  * Event ID
4814
+ * @format uuid
4257
4815
  */
4258
4816
  eventId: string;
4259
4817
  eventType: "View";
4260
4818
  experiments?: IExperiments;
4819
+ metrics?: IMetrics;
4261
4820
  object: {
4262
4821
  /**
4263
4822
  * The location of the page in the brand’s page hierarchy.
4823
+ * @pattern ^[a-z0-9-]+(>[a-z0-9-]+)*$
4264
4824
  */
4265
4825
  category?: string;
4266
4826
  /**
@@ -4273,12 +4833,13 @@ interface IViewListing {
4273
4833
  isInfinite: boolean;
4274
4834
  /**
4275
4835
  * The total number of items in the listing, or -1 if unknown.
4836
+ * @minimum -1
4276
4837
  */
4277
4838
  itemsTotal: number;
4278
4839
  /**
4279
4840
  * The type of listing page, e.g. 'tag', 'section' etc.
4280
4841
  */
4281
- listingType: string;
4842
+ listingType: "Tag" | "Story" | "Section" | "Search" | "Author" | "Other";
4282
4843
  /**
4283
4844
  * The unique ID of this page.
4284
4845
  */
@@ -4293,6 +4854,7 @@ interface IViewListing {
4293
4854
  objectType: "Listing";
4294
4855
  /**
4295
4856
  * Current pagination index. Zero if results are not paged.
4857
+ * @minimum 0
4296
4858
  */
4297
4859
  pageNumber: number;
4298
4860
  /**
@@ -4312,6 +4874,7 @@ interface IViewListing {
4312
4874
  navigationType: "Navigate" | "Reload" | "BackForward" | "Prerender";
4313
4875
  /**
4314
4876
  * The pageviewID.
4877
+ * @format uuid
4315
4878
  */
4316
4879
  pageviewId: string;
4317
4880
  referrer?: IPageRef;
@@ -4320,6 +4883,8 @@ interface IViewListing {
4320
4883
  provider: IProvider;
4321
4884
  /**
4322
4885
  * The schema of the event.
4886
+ * @format uri
4887
+ * @pattern ^https://tpaas-schemas.schibsted.media/.+\.json$
4323
4888
  */
4324
4889
  schema: string;
4325
4890
  session: ISession;
@@ -4330,12 +4895,15 @@ interface IViewListing {
4330
4895
  interface IViewLockedArticle {
4331
4896
  /**
4332
4897
  * The version of the TPaaS schemas catalog that this particular schema belongs to. Semver format.
4898
+ * @pattern ^(0|[1-9]\d*)\.(0|[1-9]\d*)\.(0|[1-9]\d*)$
4899
+ * @example "1.2.3"
4333
4900
  */
4334
4901
  catalogVersion: string;
4335
4902
  consents: IConsents;
4336
4903
  device: IDevice;
4337
4904
  /**
4338
4905
  * Event ID
4906
+ * @format uuid
4339
4907
  */
4340
4908
  eventId: string;
4341
4909
  /**
@@ -4343,30 +4911,26 @@ interface IViewLockedArticle {
4343
4911
  */
4344
4912
  eventType: "View";
4345
4913
  experiments?: IExperiments;
4914
+ location?: ILocation;
4915
+ metrics?: IMetrics;
4346
4916
  object: {
4347
4917
  authors: string[];
4348
4918
  /**
4349
4919
  * The editorial category of this article.
4350
4920
  */
4351
4921
  category: string;
4352
- /**
4353
- * The hotness value that was set in the CMS.
4354
- */
4355
- hotness: number;
4356
4922
  /**
4357
4923
  * True if scrolling up/down transitions to the next or previous article.
4358
4924
  */
4359
4925
  isStacked: boolean;
4360
4926
  /**
4361
4927
  * The publication date of this version of the article.
4928
+ * @format date-time
4362
4929
  */
4363
4930
  lastUpdatedDate: string;
4364
- /**
4365
- * The lifetime value that was set in the CMS.
4366
- */
4367
- lifetime: number;
4368
4931
  /**
4369
4932
  * The newsroom that published the article.
4933
+ * @example "vg"
4370
4934
  */
4371
4935
  newsroom: string;
4372
4936
  /**
@@ -4391,6 +4955,7 @@ interface IViewLockedArticle {
4391
4955
  paywallType: "Paid" | "Metered" | "Login" | "Free" | "Dynamic";
4392
4956
  /**
4393
4957
  * The publication date of the article.
4958
+ * @format date-time
4394
4959
  */
4395
4960
  publicationDate: string;
4396
4961
  /**
@@ -4401,16 +4966,22 @@ interface IViewLockedArticle {
4401
4966
  * The title of the page.
4402
4967
  */
4403
4968
  title: string;
4969
+ /**
4970
+ * Url of the article top or when missing article main image.
4971
+ */
4972
+ topImageUrl?: string;
4404
4973
  /**
4405
4974
  * The type of article.
4406
4975
  */
4407
4976
  variant: "Article" | "LiveArticle" | "Special";
4408
4977
  /**
4409
4978
  * The version counter of the article.
4979
+ * @minimum 0
4410
4980
  */
4411
4981
  versionCounter: number;
4412
4982
  /**
4413
4983
  * The number of words in this version of the article.
4984
+ * @exclusiveMinimum 0
4414
4985
  */
4415
4986
  wordCount: number;
4416
4987
  };
@@ -4423,6 +4994,7 @@ interface IViewLockedArticle {
4423
4994
  navigationType: "Navigate" | "Reload" | "BackForward" | "Prerender" | "Scroll";
4424
4995
  /**
4425
4996
  * The pageviewID.
4997
+ * @format uuid
4426
4998
  */
4427
4999
  pageviewId: string;
4428
5000
  referrer?: IPageRef;
@@ -4431,6 +5003,8 @@ interface IViewLockedArticle {
4431
5003
  provider: IProvider;
4432
5004
  /**
4433
5005
  * The schema of the event.
5006
+ * @format uri
5007
+ * @pattern ^https://tpaas-schemas.schibsted.media/.+\.json$
4434
5008
  */
4435
5009
  schema: string;
4436
5010
  session: ISession;
@@ -4441,12 +5015,15 @@ interface IViewLockedArticle {
4441
5015
  interface IViewLockedAudioPage {
4442
5016
  /**
4443
5017
  * The version of the TPaaS schemas catalog that this particular schema belongs to. Semver format.
5018
+ * @pattern ^(0|[1-9]\d*)\.(0|[1-9]\d*)\.(0|[1-9]\d*)$
5019
+ * @example "1.2.3"
4444
5020
  */
4445
5021
  catalogVersion: string;
4446
5022
  consents: IConsents;
4447
5023
  device: IDevice;
4448
5024
  /**
4449
5025
  * The unique identifier for the event.
5026
+ * @format uuid
4450
5027
  */
4451
5028
  eventId: string;
4452
5029
  /**
@@ -4494,6 +5071,7 @@ interface IViewLockedAudioPage {
4494
5071
  navigationType: "Navigate" | "Reload" | "BackForward" | "Prerender";
4495
5072
  /**
4496
5073
  * The pageviewID.
5074
+ * @format uuid
4497
5075
  */
4498
5076
  pageviewId: string;
4499
5077
  referrer?: IPageRef;
@@ -4502,6 +5080,8 @@ interface IViewLockedAudioPage {
4502
5080
  provider: IProvider;
4503
5081
  /**
4504
5082
  * URL to the JSON schema for this event.
5083
+ * @format uri
5084
+ * @pattern ^https://tpaas-schemas.schibsted.media/.+\.json$
4505
5085
  */
4506
5086
  schema: string;
4507
5087
  session: ISession;
@@ -4512,12 +5092,15 @@ interface IViewLockedAudioPage {
4512
5092
  interface IViewLockedVideoPage {
4513
5093
  /**
4514
5094
  * The version of the TPaaS schemas catalog that this particular schema belongs to. Semver format.
5095
+ * @pattern ^(0|[1-9]\d*)\.(0|[1-9]\d*)\.(0|[1-9]\d*)$
5096
+ * @example "1.2.3"
4515
5097
  */
4516
5098
  catalogVersion: string;
4517
5099
  consents: IConsents;
4518
5100
  device: IDevice;
4519
5101
  /**
4520
5102
  * The unique identifier for the event.
5103
+ * @format uuid
4521
5104
  */
4522
5105
  eventId: string;
4523
5106
  /**
@@ -4565,6 +5148,7 @@ interface IViewLockedVideoPage {
4565
5148
  navigationType: "Navigate" | "Reload" | "BackForward" | "Prerender";
4566
5149
  /**
4567
5150
  * The pageviewID.
5151
+ * @format uuid
4568
5152
  */
4569
5153
  pageviewId: string;
4570
5154
  referrer?: IPageRef;
@@ -4573,6 +5157,8 @@ interface IViewLockedVideoPage {
4573
5157
  provider: IProvider;
4574
5158
  /**
4575
5159
  * URL to the JSON schema for this event.
5160
+ * @format uri
5161
+ * @pattern ^https://tpaas-schemas.schibsted.media/.+\.json$
4576
5162
  */
4577
5163
  schema: string;
4578
5164
  session: ISession;
@@ -4583,12 +5169,15 @@ interface IViewLockedVideoPage {
4583
5169
  interface IViewPage {
4584
5170
  /**
4585
5171
  * The version of the TPaaS schemas catalog that this particular schema belongs to. Semver format.
5172
+ * @pattern ^(0|[1-9]\d*)\.(0|[1-9]\d*)\.(0|[1-9]\d*)$
5173
+ * @example "1.2.3"
4586
5174
  */
4587
5175
  catalogVersion: string;
4588
5176
  consents: IConsents;
4589
5177
  device: IDevice;
4590
5178
  /**
4591
5179
  * Event ID
5180
+ * @format uuid
4592
5181
  */
4593
5182
  eventId: string;
4594
5183
  /**
@@ -4628,6 +5217,7 @@ interface IViewPage {
4628
5217
  navigationType: "Navigate" | "Reload" | "BackForward" | "Prerender";
4629
5218
  /**
4630
5219
  * The pageviewID.
5220
+ * @format uuid
4631
5221
  */
4632
5222
  pageviewId: string;
4633
5223
  referrer?: IPageRef;
@@ -4636,6 +5226,8 @@ interface IViewPage {
4636
5226
  provider: IProvider;
4637
5227
  /**
4638
5228
  * The schema of the event.
5229
+ * @format uri
5230
+ * @pattern ^https://tpaas-schemas.schibsted.media/.+\.json$
4639
5231
  */
4640
5232
  schema: string;
4641
5233
  session: ISession;
@@ -4646,12 +5238,15 @@ interface IViewPage {
4646
5238
  interface IViewSportsPage {
4647
5239
  /**
4648
5240
  * The version of the TPaaS schemas catalog that this particular schema belongs to. Semver format.
5241
+ * @pattern ^(0|[1-9]\d*)\.(0|[1-9]\d*)\.(0|[1-9]\d*)$
5242
+ * @example "1.2.3"
4649
5243
  */
4650
5244
  catalogVersion: string;
4651
5245
  consents: IConsents;
4652
5246
  device: IDevice;
4653
5247
  /**
4654
5248
  * The unique identifier for the event.
5249
+ * @format uuid
4655
5250
  */
4656
5251
  eventId: string;
4657
5252
  /**
@@ -4692,6 +5287,7 @@ interface IViewSportsPage {
4692
5287
  navigationType: "Navigate" | "Reload" | "BackForward" | "Prerender";
4693
5288
  /**
4694
5289
  * The pageviewID.
5290
+ * @format uuid
4695
5291
  */
4696
5292
  pageviewId: string;
4697
5293
  referrer?: IPageRef;
@@ -4700,6 +5296,8 @@ interface IViewSportsPage {
4700
5296
  provider: IProvider;
4701
5297
  /**
4702
5298
  * URL to the JSON schema for this event.
5299
+ * @format uri
5300
+ * @pattern ^https://tpaas-schemas.schibsted.media/.+\.json$
4703
5301
  */
4704
5302
  schema: string;
4705
5303
  session: ISession;
@@ -4710,12 +5308,15 @@ interface IViewSportsPage {
4710
5308
  interface IViewTitle {
4711
5309
  /**
4712
5310
  * The version of the TPaaS schemas catalog that this particular schema belongs to. Semver format.
5311
+ * @pattern ^(0|[1-9]\d*)\.(0|[1-9]\d*)\.(0|[1-9]\d*)$
5312
+ * @example "1.2.3"
4713
5313
  */
4714
5314
  catalogVersion: string;
4715
5315
  consents: IConsents;
4716
5316
  device: IDevice;
4717
5317
  /**
4718
5318
  * Event ID
5319
+ * @format uuid
4719
5320
  */
4720
5321
  eventId: string;
4721
5322
  /**
@@ -4761,6 +5362,7 @@ interface IViewTitle {
4761
5362
  navigationType: "Navigate" | "Reload" | "BackForward" | "Prerender";
4762
5363
  /**
4763
5364
  * The pageviewID.
5365
+ * @format uuid
4764
5366
  */
4765
5367
  pageviewId: string;
4766
5368
  referrer?: IPageRef;
@@ -4769,6 +5371,8 @@ interface IViewTitle {
4769
5371
  provider: IProvider;
4770
5372
  /**
4771
5373
  * The schema of the event.
5374
+ * @format uri
5375
+ * @pattern ^https://tpaas-schemas.schibsted.media/.+\.json$
4772
5376
  */
4773
5377
  schema: string;
4774
5378
  session: ISession;
@@ -4779,12 +5383,15 @@ interface IViewTitle {
4779
5383
  interface IViewVideoPage {
4780
5384
  /**
4781
5385
  * The version of the TPaaS schemas catalog that this particular schema belongs to. Semver format.
5386
+ * @pattern ^(0|[1-9]\d*)\.(0|[1-9]\d*)\.(0|[1-9]\d*)$
5387
+ * @example "1.2.3"
4782
5388
  */
4783
5389
  catalogVersion: string;
4784
5390
  consents: IConsents;
4785
5391
  device: IDevice;
4786
5392
  /**
4787
5393
  * The unique identifier for the event.
5394
+ * @format uuid
4788
5395
  */
4789
5396
  eventId: string;
4790
5397
  /**
@@ -4824,6 +5431,7 @@ interface IViewVideoPage {
4824
5431
  navigationType: "Navigate" | "Reload" | "BackForward" | "Prerender";
4825
5432
  /**
4826
5433
  * The pageviewID.
5434
+ * @format uuid
4827
5435
  */
4828
5436
  pageviewId: string;
4829
5437
  referrer?: IPageRef;
@@ -4832,6 +5440,8 @@ interface IViewVideoPage {
4832
5440
  provider: IProvider;
4833
5441
  /**
4834
5442
  * URL to the JSON schema for this event.
5443
+ * @format uri
5444
+ * @pattern ^https://tpaas-schemas.schibsted.media/.+\.json$
4835
5445
  */
4836
5446
  schema: string;
4837
5447
  session: ISession;
@@ -4842,12 +5452,15 @@ interface IViewVideoPage {
4842
5452
  interface IViewWeather {
4843
5453
  /**
4844
5454
  * The version of the TPaaS schemas catalog that this particular schema belongs to. Semver format.
5455
+ * @pattern ^(0|[1-9]\d*)\.(0|[1-9]\d*)\.(0|[1-9]\d*)$
5456
+ * @example "1.2.3"
4845
5457
  */
4846
5458
  catalogVersion: string;
4847
5459
  consents: IConsents;
4848
5460
  device: IDevice;
4849
5461
  /**
4850
5462
  * Event ID
5463
+ * @format uuid
4851
5464
  */
4852
5465
  eventId: string;
4853
5466
  /**
@@ -4895,6 +5508,7 @@ interface IViewWeather {
4895
5508
  navigationType: "Navigate" | "Reload" | "BackForward" | "Prerender";
4896
5509
  /**
4897
5510
  * The pageviewID.
5511
+ * @format uuid
4898
5512
  */
4899
5513
  pageviewId: string;
4900
5514
  referrer?: IPageRef;
@@ -4903,6 +5517,8 @@ interface IViewWeather {
4903
5517
  provider: IProvider;
4904
5518
  /**
4905
5519
  * The schema of the event.
5520
+ * @format uri
5521
+ * @pattern ^https://tpaas-schemas.schibsted.media/.+\.json$
4906
5522
  */
4907
5523
  schema: string;
4908
5524
  session: ISession;
@@ -4910,7 +5526,7 @@ interface IViewWeather {
4910
5526
  tracker: ITracker;
4911
5527
  user?: IUser;
4912
5528
  }
4913
- type ITpaasEvent = IAnonymousViewUIElement | ICancelSubscription | IChangePushNotificationSettings | ICompletedHealthAction | IEngagementAudio | IEngagementForm | IEngagementHealthUIElement | IEngagementNotification | IEngagementOffer | IEngagementTeaser | IEngagementUIElement | IEngagementVideo | IEngagementVideoAd | IEngagementWidget | IImpressionForm | IImpressionHealthUIElement | IImpressionNotification | IImpressionOffer | IImpressionPlayer | IImpressionTeaser | IImpressionUIElement | IImpressionWidget | IInternalAccessDecision | IInternalProbe | ILaunchApp | ILeaveArticle | ILeaveAudioPage | ILeaveError | ILeaveFrontpage | ILeaveLandingpage | ILeaveListing | ILeaveLockedArticle | ILeaveLockedAudioPage | ILeaveLockedVideoPage | ILeavePage | ILeaveSportsPage | ILeaveVideoPage | ILeaveWeather | IPurchaseSubscription | IViewArticle | IViewAudioPage | IViewError | IViewFrontpage | IViewHealthPage | IViewLandingpage | IViewListing | IViewLockedArticle | IViewLockedAudioPage | IViewLockedVideoPage | IViewPage | IViewSportsPage | IViewTitle | IViewVideoPage | IViewWeather;
5529
+ type ITpaasEvent = IAnonymousViewUIElement | ICancelSubscription | IChangePushNotificationSettings | ICompletedHealthAction | IEngagementAudio | IEngagementForm | IEngagementHealthUIElement | IEngagementNotification | IEngagementOffer | IEngagementTeaser | IEngagementUIElement | IEngagementVideo | IEngagementVideoAd | IEngagementWidget | IImpressionAdSlot | IImpressionForm | IImpressionHealthUIElement | IImpressionNotification | IImpressionOffer | IImpressionPlayer | IImpressionTeaser | IImpressionUIElement | IImpressionWidget | IInternalAccessDecision | IInternalProbe | ILaunchApp | ILeaveArticle | ILeaveAudioPage | ILeaveError | ILeaveFrontpage | ILeaveLandingpage | ILeaveListing | ILeaveLockedArticle | ILeaveLockedAudioPage | ILeaveLockedVideoPage | ILeavePage | ILeaveSportsPage | ILeaveVideoPage | ILeaveWeather | IPurchaseSubscription | IViewArticle | IViewAudioPage | IViewError | IViewFrontpage | IViewHealthPage | IViewLandingpage | IViewListing | IViewLockedArticle | IViewLockedAudioPage | IViewLockedVideoPage | IViewPage | IViewSportsPage | IViewTitle | IViewVideoPage | IViewWeather;
4914
5530
  type UserParams = Pick<IUser, "hasAnySubscription" | "region"> & {
4915
5531
  id: string;
4916
5532
  realm: string;
@@ -4969,7 +5585,7 @@ export type InputParams<T extends ITpaasEvent> = DeepOmit<OptionalNavigationType
4969
5585
  type WithOptionalPage<T> = T extends TpaasOptionalPageSchemas ? Omit<T, "page"> & {
4970
5586
  page?: T["page"];
4971
5587
  } : T;
4972
- type TpaasOptionalPageSchemas = IAnonymousViewUIElement | ICompletedHealthAction | IEngagementAudio | IEngagementForm | IEngagementHealthUIElement | IEngagementOffer | IEngagementTeaser | IEngagementUIElement | IEngagementVideo | IEngagementVideoAd | IEngagementWidget | IImpressionForm | IImpressionHealthUIElement | IImpressionOffer | IImpressionPlayer | IImpressionTeaser | IImpressionUIElement | IImpressionWidget | ILeaveAudioPage | ILeaveError | ILeaveFrontpage | ILeaveLandingpage | ILeaveListing | ILeaveLockedAudioPage | ILeaveLockedVideoPage | ILeavePage | ILeaveSportsPage | ILeaveVideoPage | IViewAudioPage | IViewError | IViewFrontpage | IViewHealthPage | IViewLandingpage | IViewListing | IViewLockedAudioPage | IViewLockedVideoPage | IViewPage | IViewSportsPage | IViewTitle | IViewVideoPage | IViewWeather;
5588
+ type TpaasOptionalPageSchemas = IAnonymousViewUIElement | ICompletedHealthAction | IEngagementAudio | IEngagementForm | IEngagementHealthUIElement | IEngagementOffer | IEngagementTeaser | IEngagementUIElement | IEngagementVideo | IEngagementVideoAd | IEngagementWidget | IImpressionAdSlot | IImpressionForm | IImpressionHealthUIElement | IImpressionOffer | IImpressionPlayer | IImpressionTeaser | IImpressionUIElement | IImpressionWidget | ILeaveAudioPage | ILeaveError | ILeaveFrontpage | ILeaveLandingpage | ILeaveListing | ILeaveLockedAudioPage | ILeaveLockedVideoPage | ILeavePage | ILeaveSportsPage | ILeaveVideoPage | ILeaveWeather | IViewAudioPage | IViewError | IViewFrontpage | IViewHealthPage | IViewLandingpage | IViewListing | IViewLockedAudioPage | IViewLockedVideoPage | IViewPage | IViewSportsPage | IViewTitle | IViewVideoPage | IViewWeather;
4973
5589
  /**
4974
5590
  * Common builders output to be merged into all events
4975
5591
  * @param createdAt
@@ -5076,11 +5692,13 @@ export declare function buildCompletedHealthActionEvent(input: InputParams<IComp
5076
5692
  export declare function buildEngagementHealthUIElementEvent(input: InputParams<IEngagementHealthUIElement>, dependencies: TpaasEventBuilderDependencies): IEngagementHealthUIElement;
5077
5693
  export declare function buildViewHealthPageEvent(input: InputParams<IViewHealthPage>, dependencies: TpaasEventBuilderDependencies): IViewHealthPage;
5078
5694
  export declare function buildImpressionHealthUIElementEvent(input: InputParams<IImpressionHealthUIElement>, dependencies: TpaasEventBuilderDependencies): IImpressionHealthUIElement;
5695
+ export declare function buildImpressionAdSlotEvent(input: InputParams<IImpressionAdSlot>, dependencies: TpaasEventBuilderDependencies): IImpressionAdSlot;
5079
5696
  export declare function buildImpressionFormEvent(input: InputParams<IImpressionForm>, dependencies: TpaasEventBuilderDependencies): IImpressionForm;
5080
5697
  export declare function buildImpressionOfferEvent(input: InputParams<IImpressionOffer>, dependencies: TpaasEventBuilderDependencies): IImpressionOffer;
5081
5698
  export declare function buildImpressionPlayerEvent(input: InputParams<IImpressionPlayer>, dependencies: TpaasEventBuilderDependencies): IImpressionPlayer;
5082
5699
  export declare function buildImpressionTeaserEvent(input: InputParams<IImpressionTeaser>, dependencies: TpaasEventBuilderDependencies): IImpressionTeaser;
5083
5700
  export declare function buildImpressionUIElementEvent(input: InputParams<IImpressionUIElement>, dependencies: TpaasEventBuilderDependencies): IImpressionUIElement;
5084
5701
  export declare function buildImpressionWidgetEvent(input: InputParams<IImpressionWidget>, dependencies: TpaasEventBuilderDependencies): IImpressionWidget;
5702
+ export declare function isPageType(pageType: string): pageType is (typeof PAGE_TYPE_VALUES)[number];
5085
5703
 
5086
5704
  export {};