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

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 (35) hide show
  1. package/dist/cjs/Tracker.js +92 -43
  2. package/dist/cjs/builders/experiments.js +1 -0
  3. package/dist/cjs/tracker-proxy/consts.js +1 -0
  4. package/dist/cjs/version.js +1 -1
  5. package/dist/cjs/visibility-observer/index.js +9 -7
  6. package/dist/cjs/wrapper/types/event.js +5 -0
  7. package/dist/ejs/Tracker.js +93 -44
  8. package/dist/ejs/builders/experiments.js +1 -1
  9. package/dist/ejs/tracker-proxy/consts.js +1 -0
  10. package/dist/ejs/version.js +1 -1
  11. package/dist/ejs/visibility-observer/index.js +9 -7
  12. package/dist/ejs/wrapper/types/event.js +4 -1
  13. package/dist/types/Tracker.d.ts +39 -17
  14. package/dist/types/builders/experiments.d.ts +1 -0
  15. package/dist/types/index.d.ts +0 -1
  16. package/dist/types/tracker-proxy/consts.d.ts +1 -1
  17. package/dist/types/version.d.ts +1 -1
  18. package/dist/types/visibility-observer/index.d.ts +6 -1
  19. package/dist/types/wrapper/types/event.d.ts +3 -1
  20. package/node_modules/@schibsted/tpaas-event-builder/dist/cjs/builders.js +53 -47
  21. package/node_modules/@schibsted/tpaas-event-builder/dist/cjs/guards.js +7 -0
  22. package/node_modules/@schibsted/tpaas-event-builder/dist/cjs/index.js +3 -0
  23. package/node_modules/@schibsted/tpaas-event-builder/dist/ejs/builders.js +53 -48
  24. package/node_modules/@schibsted/tpaas-event-builder/dist/ejs/guards.js +4 -0
  25. package/node_modules/@schibsted/tpaas-event-builder/dist/ejs/index.js +1 -0
  26. package/node_modules/@schibsted/tpaas-event-builder/dist/index.d.ts +822 -198
  27. package/node_modules/@schibsted/tpaas-event-builder/package.json +2 -1
  28. package/node_modules/@schibsted/tpaas-schemas/dist/cjs/constants.js +66 -57
  29. package/node_modules/@schibsted/tpaas-schemas/dist/cjs/index.js +1 -0
  30. package/node_modules/@schibsted/tpaas-schemas/dist/cjs/types.js +2 -0
  31. package/node_modules/@schibsted/tpaas-schemas/dist/ejs/constants.js +64 -55
  32. package/node_modules/@schibsted/tpaas-schemas/dist/ejs/index.js +1 -0
  33. package/node_modules/@schibsted/tpaas-schemas/dist/ejs/types.js +1 -0
  34. package/node_modules/@schibsted/tpaas-schemas/dist/index.d.ts +888 -223
  35. package/package.json +4 -4
@@ -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,14 @@ interface ICancelSubscription {
234
315
  deviceType: "Desktop" | "Mobile" | "Tablet" | "SmartTv" | "Other";
235
316
  /**
236
317
  * The environmentId.
318
+ * @pattern ^[0-9a-fA-F-]+$
319
+ * @example "42401e1f-7e04-4b73-8bed-1ceffc0ed8cc"
237
320
  */
238
321
  environmentId: string;
239
322
  };
240
323
  /**
241
324
  * The unique identifier for the event.
325
+ * @format uuid
242
326
  */
243
327
  eventId: string;
244
328
  /**
@@ -249,6 +333,7 @@ interface ICancelSubscription {
249
333
  object: {
250
334
  /**
251
335
  * Date specifying when the subscription is cancelled.
336
+ * @format date
252
337
  */
253
338
  cancelDate?: string;
254
339
  /**
@@ -261,6 +346,7 @@ interface ICancelSubscription {
261
346
  cancelledBy?: string;
262
347
  /**
263
348
  * Date when access to the service was ends, meaning when the customer lose access.
349
+ * @format date
264
350
  */
265
351
  churnDate?: string;
266
352
  /**
@@ -273,6 +359,7 @@ interface ICancelSubscription {
273
359
  fullPrice?: number;
274
360
  /**
275
361
  * The unique identifier of the subscription, which corresponds to subscription number in URS.
362
+ * @pattern ^sdrn:[a-zA-Z0-9-]+:subscription:[a-zA-Z0-9_-]+$
276
363
  */
277
364
  objectSdrn: string;
278
365
  /**
@@ -299,6 +386,8 @@ interface ICancelSubscription {
299
386
  provider: IProvider;
300
387
  /**
301
388
  * URL to the JSON schema for this event.
389
+ * @format uri
390
+ * @pattern ^https://tpaas-schemas.schibsted.media/.+\.json$
302
391
  */
303
392
  schema: string;
304
393
  time: ITime;
@@ -308,18 +397,22 @@ interface ICancelSubscription {
308
397
  type IMetrics = {
309
398
  /**
310
399
  * A grouping key for the metric, e.g. curate’s blendId.
400
+ * @example "front-ranker-v7"
311
401
  */
312
402
  key: string;
313
403
  /**
314
404
  * Name of the metric, e.g., "topKScore".
405
+ * @example "topKScore"
315
406
  */
316
407
  name: string;
317
408
  /**
318
409
  * Source of the metric, e.g., "Curate".
410
+ * @example "curate"
319
411
  */
320
412
  source: string;
321
413
  /**
322
414
  * The value of the template.
415
+ * @example 42
323
416
  */
324
417
  value: number;
325
418
  }[];
@@ -338,6 +431,8 @@ interface IDevice {
338
431
  deviceType: "Desktop" | "Mobile" | "Tablet" | "SmartTv" | "Other";
339
432
  /**
340
433
  * The environmentId.
434
+ * @pattern ^[0-9a-fA-F-]+$
435
+ * @example "42401e1f-7e04-4b73-8bed-1ceffc0ed8cc"
341
436
  */
342
437
  environmentId: string;
343
438
  ipAddress?: string;
@@ -347,10 +442,12 @@ interface IDevice {
347
442
  jweIds?: string;
348
443
  /**
349
444
  * Mobile only: The brand name of the device.
445
+ * @example "Samsung"
350
446
  */
351
447
  mobileBrand?: string;
352
448
  /**
353
449
  * Mobile only: The model of the device.
450
+ * @example "SM-S918B"
354
451
  */
355
452
  mobileModel?: string;
356
453
  /**
@@ -363,6 +460,7 @@ interface IDevice {
363
460
  screenOrientation: "Portrait" | "Landscape";
364
461
  /**
365
462
  * The raw userAgent string, if it exists.
463
+ * @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
464
  */
367
465
  userAgent?: string;
368
466
  /**
@@ -377,26 +475,34 @@ interface ISession {
377
475
  isFirstEvent: boolean;
378
476
  /**
379
477
  * The sessionID.
478
+ * @pattern ^[0-9a-f-]+$
479
+ * @example "079bc17a-4ee8-42ab-a29f-2fbba4cd403f"
380
480
  */
381
481
  sessionId: string;
382
482
  /**
383
483
  * Timestamp of when the session started.
484
+ * @format date-time
384
485
  */
385
486
  startTime: string;
386
487
  /**
387
488
  * 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.
489
+ * @pattern ^[0-9a-f-]+$
490
+ * @example "079bc17a-4ee8-42ab-a29f-2fbba4cd403f"
388
491
  */
389
492
  xDomainId?: string;
390
493
  }
391
494
  interface IChangePushNotificationSettings {
392
495
  /**
393
496
  * The version of the TPaaS schemas catalog that this particular schema belongs to. Semver format.
497
+ * @pattern ^(0|[1-9]\d*)\.(0|[1-9]\d*)\.(0|[1-9]\d*)$
498
+ * @example "1.2.3"
394
499
  */
395
500
  catalogVersion: string;
396
501
  consents: IConsents;
397
502
  device: IDevice;
398
503
  /**
399
504
  * The unique identifier for the event.
505
+ * @format uuid
400
506
  */
401
507
  eventId: string;
402
508
  /**
@@ -422,6 +528,8 @@ interface IChangePushNotificationSettings {
422
528
  provider: IProvider;
423
529
  /**
424
530
  * URL to the JSON schema for this event.
531
+ * @format uri
532
+ * @pattern ^https://tpaas-schemas.schibsted.media/.+\.json$
425
533
  */
426
534
  schema: string;
427
535
  session: ISession;
@@ -432,20 +540,24 @@ interface IChangePushNotificationSettings {
432
540
  interface IHealthOrigin {
433
541
  /**
434
542
  * The specific UI element or component that navigated to this page.
543
+ * @example "logging_hq_button"
435
544
  */
436
545
  content?: string;
437
546
  /**
438
547
  * The feature area that navigated to this page
548
+ * @example "meal_logging"
439
549
  */
440
550
  feature?: string;
441
551
  /**
442
552
  * The origin name / place that the user navigated from.
553
+ * @example "logbook"
443
554
  */
444
555
  name?: string;
445
556
  }
446
557
  interface IContent {
447
558
  /**
448
559
  * The access restriction placed on the content.
560
+ * @example "Free"
449
561
  */
450
562
  accessLevel: "Free" | "Login" | "Meter" | "Paid";
451
563
  /**
@@ -454,10 +566,12 @@ interface IContent {
454
566
  category: "Article" | "Audio" | "Video" | "Weather" | "Title" | "Other";
455
567
  /**
456
568
  * The identifier of the content.
569
+ * @example "QMkj9q"
457
570
  */
458
571
  contentId: string;
459
572
  /**
460
573
  * The canonical title of the content.
574
+ * @example "Norge vinner 3-0 mot Italia i VM-kvalifiseringen."
461
575
  */
462
576
  contentTitle: string;
463
577
  /**
@@ -472,17 +586,20 @@ interface IContent {
472
586
  * A list of product features that give access to this content. (Uses OR, i.e., having one is enough for access.)
473
587
  */
474
588
  requiredProductFeatures?: string[];
475
- tags: string[];
589
+ tags?: string[];
476
590
  }
477
591
  interface ICompletedHealthAction {
478
592
  /**
479
593
  * The version of the TPaaS schemas catalog that this particular schema belongs to. Semver format.
594
+ * @pattern ^(0|[1-9]\d*)\.(0|[1-9]\d*)\.(0|[1-9]\d*)$
595
+ * @example "1.2.3"
480
596
  */
481
597
  catalogVersion: string;
482
598
  consents: IConsents;
483
599
  device: IDevice;
484
600
  /**
485
601
  * The unique identifier for the event.
602
+ * @format uuid
486
603
  */
487
604
  eventId: string;
488
605
  /**
@@ -501,20 +618,24 @@ interface ICompletedHealthAction {
501
618
  actionType: "Logged" | "Scanned" | "Started" | "SetFilters" | "Added" | "Removed" | "Completed" | "Achieved" | "Saved" | "Deleted" | "Updated" | "Shared";
502
619
  /**
503
620
  * The health category this action relates to.
621
+ * @example "nutrition"
504
622
  */
505
623
  category?: string;
506
624
  /**
507
625
  * Freeform custom properties with dynamic field names for health-specific action data.
626
+ * @additionalProperties true
508
627
  */
509
628
  custom?: {
510
629
  [k: string]: unknown;
511
630
  };
512
631
  /**
513
632
  * The user intent or purpose of this event.
633
+ * @example "edit daily note"
514
634
  */
515
635
  intent?: string;
516
636
  /**
517
637
  * The descriptive name of the action that was completed.
638
+ * @example "Logged breakfast meal"
518
639
  */
519
640
  name?: string;
520
641
  /**
@@ -535,6 +656,7 @@ interface ICompletedHealthAction {
535
656
  tags?: string[];
536
657
  /**
537
658
  * The title of the completion message or confirmation shown to the user.
659
+ * @example "Barcode scanned successfully"
538
660
  */
539
661
  title?: string;
540
662
  };
@@ -546,6 +668,7 @@ interface ICompletedHealthAction {
546
668
  info: IPageRef;
547
669
  /**
548
670
  * The pageviewID of the page where the action occurred.
671
+ * @format uuid
549
672
  */
550
673
  pageviewId: string;
551
674
  referrer?: IPageRef;
@@ -554,6 +677,8 @@ interface ICompletedHealthAction {
554
677
  provider: IProvider;
555
678
  /**
556
679
  * URL to the JSON schema for this event.
680
+ * @format uri
681
+ * @pattern ^https://tpaas-schemas.schibsted.media/.+\.json$
557
682
  */
558
683
  schema: string;
559
684
  session: ISession;
@@ -571,6 +696,8 @@ interface ICompletedHealthAction {
571
696
  interface IEngagementAudio {
572
697
  /**
573
698
  * The version of the TPaaS schemas catalog that this particular schema belongs to. Semver format.
699
+ * @pattern ^(0|[1-9]\d*)\.(0|[1-9]\d*)\.(0|[1-9]\d*)$
700
+ * @example "1.2.3"
574
701
  */
575
702
  catalogVersion: string;
576
703
  consents: IConsents;
@@ -594,6 +721,7 @@ interface IEngagementAudio {
594
721
  };
595
722
  /**
596
723
  * The unique identifier for the event.
724
+ * @format uuid
597
725
  */
598
726
  eventId: string;
599
727
  /**
@@ -619,6 +747,7 @@ interface IEngagementAudio {
619
747
  playType: "Autoplay" | "ClickToPlay" | "ScrollToPlay";
620
748
  /**
621
749
  * The current playback speed
750
+ * @exclusiveMinimum 0
622
751
  */
623
752
  playbackSpeed?: number;
624
753
  /**
@@ -626,9 +755,9 @@ interface IEngagementAudio {
626
755
  */
627
756
  positionMs: number;
628
757
  /**
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
758
+ * 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
759
  */
631
- prevPositionMs: string;
760
+ prevPositionMs: number;
632
761
  /**
633
762
  * The playback position (in milliseconds) the user initiated the seek (timeline jump) from. Only included when engagement.type = "seek"
634
763
  */
@@ -648,10 +777,6 @@ interface IEngagementAudio {
648
777
  * The editorial category of this audio
649
778
  */
650
779
  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
780
  /**
656
781
  * The total duration of the audio in milliseconds. Use -1 for live streams with unknown duration.
657
782
  */
@@ -660,10 +785,6 @@ interface IEngagementAudio {
660
785
  * The size of the player.
661
786
  */
662
787
  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
788
  /**
668
789
  * Which episode
669
790
  */
@@ -711,6 +832,7 @@ interface IEngagementAudio {
711
832
  podmeId?: string;
712
833
  /**
713
834
  * The position of the audio in the playlist.
835
+ * @minimum 0
714
836
  */
715
837
  queuePosition?: number;
716
838
  /**
@@ -736,14 +858,23 @@ interface IEngagementAudio {
736
858
  info: IPageRef;
737
859
  /**
738
860
  * The pageviewID.
861
+ * @format uuid
739
862
  */
740
863
  pageviewId: string;
741
864
  referrer?: IPageRef;
742
865
  utm?: IUtmTags;
743
866
  };
867
+ placement: {
868
+ /**
869
+ * ContainerName is the name of the UI container/module in which the player renders (not the player type or content type).
870
+ */
871
+ containerName: string;
872
+ };
744
873
  provider: IProvider;
745
874
  /**
746
875
  * URL to the JSON schema for this event.
876
+ * @format uri
877
+ * @pattern ^https://tpaas-schemas.schibsted.media/.+\.json$
747
878
  */
748
879
  schema: string;
749
880
  session: ISession;
@@ -758,12 +889,15 @@ interface IEngagement {
758
889
  action: "Click" | "Scroll" | "Drag" | "Drop" | "DoubleClick";
759
890
  /**
760
891
  * The name of the UIElement being interacted with.
892
+ * @example "AwesomeButton"
761
893
  */
762
894
  elementName: string;
763
895
  }
764
896
  interface IEngagementForm {
765
897
  /**
766
898
  * The version of the TPaaS schemas catalog that this particular schema belongs to. Semver format.
899
+ * @pattern ^(0|[1-9]\d*)\.(0|[1-9]\d*)\.(0|[1-9]\d*)$
900
+ * @example "1.2.3"
767
901
  */
768
902
  catalogVersion: string;
769
903
  consents: IConsents;
@@ -771,6 +905,7 @@ interface IEngagementForm {
771
905
  engagement: IEngagement;
772
906
  /**
773
907
  * Event ID
908
+ * @format uuid
774
909
  */
775
910
  eventId: string;
776
911
  /**
@@ -779,10 +914,6 @@ interface IEngagementForm {
779
914
  eventType: "Engagement";
780
915
  experiments?: IExperiments;
781
916
  object: {
782
- /**
783
- * The closest parent container used for traffic attribution. When in doubt use “page”.
784
- */
785
- containerName: string;
786
917
  /**
787
918
  * The size of the component.
788
919
  */
@@ -827,14 +958,23 @@ interface IEngagementForm {
827
958
  info: IPageRef;
828
959
  /**
829
960
  * The pageviewID.
961
+ * @format uuid
830
962
  */
831
963
  pageviewId: string;
832
964
  referrer?: IPageRef;
833
965
  utm?: IUtmTags;
834
966
  };
967
+ placement: {
968
+ /**
969
+ * The closest parent container used for traffic attribution. When in doubt use “page”.
970
+ */
971
+ containerName: string;
972
+ };
835
973
  provider: IProvider;
836
974
  /**
837
975
  * The schema of the event.
976
+ * @format uri
977
+ * @pattern ^https://tpaas-schemas.schibsted.media/.+\.json$
838
978
  */
839
979
  schema: string;
840
980
  session: ISession;
@@ -849,6 +989,8 @@ interface IEngagementForm {
849
989
  interface IEngagementHealthUIElement {
850
990
  /**
851
991
  * The version of the TPaaS schemas catalog that this particular schema belongs to. Semver format.
992
+ * @pattern ^(0|[1-9]\d*)\.(0|[1-9]\d*)\.(0|[1-9]\d*)$
993
+ * @example "1.2.3"
852
994
  */
853
995
  catalogVersion: string;
854
996
  consents: IConsents;
@@ -856,6 +998,7 @@ interface IEngagementHealthUIElement {
856
998
  engagement: IEngagement;
857
999
  /**
858
1000
  * The unique identifier for the event.
1001
+ * @format uuid
859
1002
  */
860
1003
  eventId: string;
861
1004
  /**
@@ -870,14 +1013,12 @@ interface IEngagementHealthUIElement {
870
1013
  object: {
871
1014
  /**
872
1015
  * The health category this UI element relates to.
1016
+ * @example "breakfast"
873
1017
  */
874
1018
  category?: string;
875
- /**
876
- * The closest parent container used for traffic attribution.
877
- */
878
- containerName: string;
879
1019
  /**
880
1020
  * Freeform custom properties with dynamic field names for health-specific UI engagement data.
1021
+ * @additionalProperties true
881
1022
  */
882
1023
  custom?: {
883
1024
  [k: string]: unknown;
@@ -888,14 +1029,17 @@ interface IEngagementHealthUIElement {
888
1029
  elementSize: "XS" | "S" | "M" | "L" | "XL";
889
1030
  /**
890
1031
  * The text content of the UI element.
1032
+ * @example "Scan Barcode"
891
1033
  */
892
1034
  elementText?: string;
893
1035
  /**
894
1036
  * The user intent or purpose of this event.
1037
+ * @example "log calories"
895
1038
  */
896
1039
  intent?: string;
897
1040
  /**
898
1041
  * The name of the UI element.
1042
+ * @example "Grilled Chicken Recipe"
899
1043
  */
900
1044
  name: string;
901
1045
  /**
@@ -920,14 +1064,24 @@ interface IEngagementHealthUIElement {
920
1064
  info: IPageRef;
921
1065
  /**
922
1066
  * The pageviewID of the parent page.
1067
+ * @format uuid
923
1068
  */
924
1069
  pageviewId: string;
925
1070
  referrer?: IPageRef;
926
1071
  utm?: IUtmTags;
927
1072
  };
1073
+ placement: {
1074
+ /**
1075
+ * The closest parent container used for traffic attribution.
1076
+ * @example "recipes"
1077
+ */
1078
+ containerName: string;
1079
+ };
928
1080
  provider: IProvider;
929
1081
  /**
930
1082
  * URL to the JSON schema for this event.
1083
+ * @format uri
1084
+ * @pattern ^https://tpaas-schemas.schibsted.media/.+\.json$
931
1085
  */
932
1086
  schema: string;
933
1087
  session: ISession;
@@ -945,6 +1099,8 @@ interface IEngagementHealthUIElement {
945
1099
  interface IEngagementNotification {
946
1100
  /**
947
1101
  * The version of the TPaaS schemas catalog that this particular schema belongs to. Semver format.
1102
+ * @pattern ^(0|[1-9]\d*)\.(0|[1-9]\d*)\.(0|[1-9]\d*)$
1103
+ * @example "1.2.3"
948
1104
  */
949
1105
  catalogVersion: string;
950
1106
  consents: IConsents;
@@ -952,6 +1108,7 @@ interface IEngagementNotification {
952
1108
  engagement: IEngagement;
953
1109
  /**
954
1110
  * Schema ID
1111
+ * @format uuid
955
1112
  */
956
1113
  eventId: string;
957
1114
  /**
@@ -1000,6 +1157,8 @@ interface IEngagementNotification {
1000
1157
  provider: IProvider;
1001
1158
  /**
1002
1159
  * The schema of the event.
1160
+ * @format uri
1161
+ * @pattern ^https://tpaas-schemas.schibsted.media/.+\.json$
1003
1162
  */
1004
1163
  schema: string;
1005
1164
  session: ISession;
@@ -1014,6 +1173,8 @@ interface IEngagementNotification {
1014
1173
  interface IEngagementOffer {
1015
1174
  /**
1016
1175
  * The version of the TPaaS schemas catalog that this particular schema belongs to. Semver format.
1176
+ * @pattern ^(0|[1-9]\d*)\.(0|[1-9]\d*)\.(0|[1-9]\d*)$
1177
+ * @example "1.2.3"
1017
1178
  */
1018
1179
  catalogVersion: string;
1019
1180
  consents: IConsents;
@@ -1021,6 +1182,7 @@ interface IEngagementOffer {
1021
1182
  engagement: IEngagement;
1022
1183
  /**
1023
1184
  * Event ID
1185
+ * @format uuid
1024
1186
  */
1025
1187
  eventId: string;
1026
1188
  /**
@@ -1031,12 +1193,9 @@ interface IEngagementOffer {
1031
1193
  object: {
1032
1194
  /**
1033
1195
  * The campaign associated with this offer.
1196
+ * @example "summer-sale"
1034
1197
  */
1035
1198
  campaign: string;
1036
- /**
1037
- * The closest parent container used for traffic attribution. When in doubt use “page”.
1038
- */
1039
- containerName?: string;
1040
1199
  /**
1041
1200
  * The size of the component.
1042
1201
  */
@@ -1058,10 +1217,6 @@ interface IEngagementOffer {
1058
1217
  */
1059
1218
  objectType: "Offer";
1060
1219
  offerCodes?: string[];
1061
- /**
1062
- * The position where this offer was placed.
1063
- */
1064
- offerPlacement: string;
1065
1220
  /**
1066
1221
  * The variant/layout of the offer.
1067
1222
  */
@@ -1072,14 +1227,27 @@ interface IEngagementOffer {
1072
1227
  info: IPageRef;
1073
1228
  /**
1074
1229
  * The pageviewID.
1230
+ * @format uuid
1075
1231
  */
1076
1232
  pageviewId: string;
1077
1233
  referrer?: IPageRef;
1078
1234
  utm?: IUtmTags;
1079
1235
  };
1236
+ placement: {
1237
+ /**
1238
+ * The closest parent container used for traffic attribution. When in doubt use “page”.
1239
+ */
1240
+ containerName?: string;
1241
+ /**
1242
+ * The position where this offer was placed.
1243
+ */
1244
+ offerPlacement: string;
1245
+ };
1080
1246
  provider: IProvider;
1081
1247
  /**
1082
1248
  * The schema of the event.
1249
+ * @format uri
1250
+ * @pattern ^https://tpaas-schemas.schibsted.media/.+\.json$
1083
1251
  */
1084
1252
  schema: string;
1085
1253
  session: ISession;
@@ -1093,6 +1261,10 @@ interface IEngagementOffer {
1093
1261
  }
1094
1262
  interface IPlacement {
1095
1263
  columnName: "main" | "aside";
1264
+ /**
1265
+ * The closest parent container used for traffic attribution. When in doubt use “page”.
1266
+ */
1267
+ containerName: string;
1096
1268
  /**
1097
1269
  * The context in which the recommendation was made.
1098
1270
  */
@@ -1101,13 +1273,23 @@ interface IPlacement {
1101
1273
  * The source of the impression/engagement.
1102
1274
  */
1103
1275
  curateSource?: string;
1276
+ /**
1277
+ * Indicator if the player was visible at pageload (“above”) or if the user had to scroll to it (“below”).
1278
+ */
1279
+ foldPosition: "Above" | "Below" | "Unknown";
1104
1280
  positionInBundle: number;
1281
+ /**
1282
+ * The parent’s primary direction along which components are laid out.
1283
+ */
1284
+ primaryAxis: "Horizontal" | "Vertical";
1105
1285
  /**
1106
1286
  * The position of this component along the primary axis.
1287
+ * @minimum 1
1107
1288
  */
1108
1289
  primaryPosition: number;
1109
1290
  /**
1110
1291
  * The position of this component along the secondary axis.
1292
+ * @minimum 1
1111
1293
  */
1112
1294
  secondaryPosition: number;
1113
1295
  source?: string;
@@ -1115,6 +1297,8 @@ interface IPlacement {
1115
1297
  interface IEngagementTeaser {
1116
1298
  /**
1117
1299
  * The version of the TPaaS schemas catalog that this particular schema belongs to. Semver format.
1300
+ * @pattern ^(0|[1-9]\d*)\.(0|[1-9]\d*)\.(0|[1-9]\d*)$
1301
+ * @example "1.2.3"
1118
1302
  */
1119
1303
  catalogVersion: string;
1120
1304
  consents: IConsents;
@@ -1122,6 +1306,7 @@ interface IEngagementTeaser {
1122
1306
  engagement: IEngagement;
1123
1307
  /**
1124
1308
  * Event ID
1309
+ * @format uuid
1125
1310
  */
1126
1311
  eventId: string;
1127
1312
  /**
@@ -1131,10 +1316,6 @@ interface IEngagementTeaser {
1131
1316
  experiments?: IExperiments;
1132
1317
  metrics?: IMetrics;
1133
1318
  object: {
1134
- /**
1135
- * The closest parent container used for traffic attribution. When in doubt use “page”.
1136
- */
1137
- containerName: string;
1138
1319
  /**
1139
1320
  * The engine producing this teaser. Use “editorial” for manually curated item.
1140
1321
  */
@@ -1163,10 +1344,6 @@ interface IEngagementTeaser {
1163
1344
  * The type of the component.
1164
1345
  */
1165
1346
  objectType: "Teaser";
1166
- /**
1167
- * The parent’s primary direction along which components are laid out.
1168
- */
1169
- primaryAxis: "Horizontal" | "Vertical";
1170
1347
  /**
1171
1348
  * The title of the teaser.
1172
1349
  */
@@ -1177,6 +1354,7 @@ interface IEngagementTeaser {
1177
1354
  info: IPageRef;
1178
1355
  /**
1179
1356
  * The pageviewID.
1357
+ * @format uuid
1180
1358
  */
1181
1359
  pageviewId: string;
1182
1360
  referrer?: IPageRef;
@@ -1186,6 +1364,8 @@ interface IEngagementTeaser {
1186
1364
  provider: IProvider;
1187
1365
  /**
1188
1366
  * The schema of the event.
1367
+ * @format uri
1368
+ * @pattern ^https://tpaas-schemas.schibsted.media/.+\.json$
1189
1369
  */
1190
1370
  schema: string;
1191
1371
  session: ISession;
@@ -1200,6 +1380,8 @@ interface IEngagementTeaser {
1200
1380
  interface IEngagementUIElement {
1201
1381
  /**
1202
1382
  * The version of the TPaaS schemas catalog that this particular schema belongs to. Semver format.
1383
+ * @pattern ^(0|[1-9]\d*)\.(0|[1-9]\d*)\.(0|[1-9]\d*)$
1384
+ * @example "1.2.3"
1203
1385
  */
1204
1386
  catalogVersion: string;
1205
1387
  consents: IConsents;
@@ -1207,6 +1389,7 @@ interface IEngagementUIElement {
1207
1389
  engagement: IEngagement;
1208
1390
  /**
1209
1391
  * Event ID
1392
+ * @format uuid
1210
1393
  */
1211
1394
  eventId: string;
1212
1395
  /**
@@ -1215,10 +1398,6 @@ interface IEngagementUIElement {
1215
1398
  eventType: "Engagement";
1216
1399
  experiments?: IExperiments;
1217
1400
  object: {
1218
- /**
1219
- * The closest parent container used for traffic attribution. When in doubt use “page”.
1220
- */
1221
- containerName: string;
1222
1401
  /**
1223
1402
  * The size of the component.
1224
1403
  */
@@ -1253,14 +1432,23 @@ interface IEngagementUIElement {
1253
1432
  info: IPageRef;
1254
1433
  /**
1255
1434
  * The pageviewID.
1435
+ * @format uuid
1256
1436
  */
1257
1437
  pageviewId: string;
1258
1438
  referrer?: IPageRef;
1259
1439
  utm?: IUtmTags;
1260
1440
  };
1441
+ placement: {
1442
+ /**
1443
+ * The closest parent container used for traffic attribution. When in doubt use “page”.
1444
+ */
1445
+ containerName: string;
1446
+ };
1261
1447
  provider: IProvider;
1262
1448
  /**
1263
1449
  * The schema of the event.
1450
+ * @format uri
1451
+ * @pattern ^https://tpaas-schemas.schibsted.media/.+\.json$
1264
1452
  */
1265
1453
  schema: string;
1266
1454
  session: ISession;
@@ -1275,6 +1463,8 @@ interface IEngagementUIElement {
1275
1463
  interface IEngagementVideo {
1276
1464
  /**
1277
1465
  * The version of the TPaaS schemas catalog that this particular schema belongs to. Semver format.
1466
+ * @pattern ^(0|[1-9]\d*)\.(0|[1-9]\d*)\.(0|[1-9]\d*)$
1467
+ * @example "1.2.3"
1278
1468
  */
1279
1469
  catalogVersion: string;
1280
1470
  consents: IConsents;
@@ -1298,6 +1488,7 @@ interface IEngagementVideo {
1298
1488
  };
1299
1489
  /**
1300
1490
  * The unique identifier for the event.
1491
+ * @format uuid
1301
1492
  */
1302
1493
  eventId: string;
1303
1494
  /**
@@ -1327,6 +1518,7 @@ interface IEngagementVideo {
1327
1518
  playType: "Autoplay" | "ClickToPlay" | "ScrollToPlay";
1328
1519
  /**
1329
1520
  * The current playback speed.
1521
+ * @exclusiveMinimum 0
1330
1522
  */
1331
1523
  playbackSpeed?: number;
1332
1524
  /**
@@ -1350,9 +1542,9 @@ interface IEngagementVideo {
1350
1542
  */
1351
1543
  seekToMs?: number;
1352
1544
  /**
1353
- * How much time user has spent on the playback (in milliseconds) regardless of seeking, pausing etc.
1545
+ * How much time user has spent on the playback (in milliseconds) regardless of seeking, pausing etc
1354
1546
  */
1355
- viewTimeMs: number;
1547
+ viewtimeMs: number;
1356
1548
  };
1357
1549
  metrics?: IMetrics;
1358
1550
  object: {
@@ -1364,10 +1556,6 @@ interface IEngagementVideo {
1364
1556
  * The editorial category of this video
1365
1557
  */
1366
1558
  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
1559
  /**
1372
1560
  * The total duration of the video in milliseconds. Use -1 for live streams with unknown duration.
1373
1561
  */
@@ -1376,10 +1564,6 @@ interface IEngagementVideo {
1376
1564
  * The size of the player.
1377
1565
  */
1378
1566
  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
1567
  /**
1384
1568
  * Which episode
1385
1569
  */
@@ -1438,6 +1622,7 @@ interface IEngagementVideo {
1438
1622
  playlistId?: string;
1439
1623
  /**
1440
1624
  * The position of the video in the playlist.
1625
+ * @minimum 0
1441
1626
  */
1442
1627
  queuePosition?: number;
1443
1628
  /**
@@ -1463,14 +1648,23 @@ interface IEngagementVideo {
1463
1648
  info: IPageRef;
1464
1649
  /**
1465
1650
  * The pageviewID.
1651
+ * @format uuid
1466
1652
  */
1467
1653
  pageviewId: string;
1468
1654
  referrer?: IPageRef;
1469
1655
  utm?: IUtmTags;
1470
1656
  };
1657
+ placement: {
1658
+ /**
1659
+ * ContainerName is the name of the UI container/module in which the player renders (not the player type or content type).
1660
+ */
1661
+ containerName: string;
1662
+ };
1471
1663
  provider: IProvider;
1472
1664
  /**
1473
1665
  * URL to the JSON schema for this event.
1666
+ * @format uri
1667
+ * @pattern ^https://tpaas-schemas.schibsted.media/.+\.json$
1474
1668
  */
1475
1669
  schema: string;
1476
1670
  session: ISession;
@@ -1484,6 +1678,8 @@ interface IEngagementVideo {
1484
1678
  interface IEngagementVideoAd {
1485
1679
  /**
1486
1680
  * The version of the TPaaS schemas catalog that this particular schema belongs to. Semver format.
1681
+ * @pattern ^(0|[1-9]\d*)\.(0|[1-9]\d*)\.(0|[1-9]\d*)$
1682
+ * @example "1.2.3"
1487
1683
  */
1488
1684
  catalogVersion: string;
1489
1685
  consents: IConsents;
@@ -1507,6 +1703,7 @@ interface IEngagementVideoAd {
1507
1703
  };
1508
1704
  /**
1509
1705
  * The unique identifier for the event.
1706
+ * @format uuid
1510
1707
  */
1511
1708
  eventId: string;
1512
1709
  /**
@@ -1557,10 +1754,6 @@ interface IEngagementVideoAd {
1557
1754
  * 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
1755
  */
1559
1756
  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
1757
  /**
1565
1758
  * The identifier of the asset the ad belongs to.
1566
1759
  */
@@ -1591,14 +1784,23 @@ interface IEngagementVideoAd {
1591
1784
  info: IPageRef;
1592
1785
  /**
1593
1786
  * The pageviewID.
1787
+ * @format uuid
1594
1788
  */
1595
1789
  pageviewId: string;
1596
1790
  referrer?: IPageRef;
1597
1791
  utm?: IUtmTags;
1598
1792
  };
1793
+ placement: {
1794
+ /**
1795
+ * ContainerName is the name of the UI container/module in which the player renders (not the player type or content type).
1796
+ */
1797
+ containerName: string;
1798
+ };
1599
1799
  provider: IProvider;
1600
1800
  /**
1601
1801
  * URL to the JSON schema for this event.
1802
+ * @format uri
1803
+ * @pattern ^https://tpaas-schemas.schibsted.media/.+\.json$
1602
1804
  */
1603
1805
  schema: string;
1604
1806
  session: ISession;
@@ -1612,6 +1814,8 @@ interface IEngagementVideoAd {
1612
1814
  interface IEngagementWidget {
1613
1815
  /**
1614
1816
  * The version of the TPaaS schemas catalog that this particular schema belongs to. Semver format.
1817
+ * @pattern ^(0|[1-9]\d*)\.(0|[1-9]\d*)\.(0|[1-9]\d*)$
1818
+ * @example "1.2.3"
1615
1819
  */
1616
1820
  catalogVersion: string;
1617
1821
  consents: IConsents;
@@ -1619,6 +1823,7 @@ interface IEngagementWidget {
1619
1823
  engagement: IEngagement;
1620
1824
  /**
1621
1825
  * Event ID
1826
+ * @format uuid
1622
1827
  */
1623
1828
  eventId: string;
1624
1829
  /**
@@ -1626,11 +1831,8 @@ interface IEngagementWidget {
1626
1831
  */
1627
1832
  eventType: "Engagement";
1628
1833
  experiments?: IExperiments;
1834
+ metrics?: IMetrics;
1629
1835
  object: {
1630
- /**
1631
- * The closest parent container used for traffic attribution. When in doubt use “page”.
1632
- */
1633
- containerName?: string;
1634
1836
  /**
1635
1837
  * The size of the component.
1636
1838
  */
@@ -1651,16 +1853,13 @@ interface IEngagementWidget {
1651
1853
  * The type of the component.
1652
1854
  */
1653
1855
  objectType: "Widget";
1654
- /**
1655
- * The parent’s primary direction along which components are laid out.
1656
- */
1657
- primaryAxis?: "Horizontal" | "Vertical";
1658
1856
  };
1659
1857
  page: {
1660
1858
  content?: IContent;
1661
1859
  info: IPageRef;
1662
1860
  /**
1663
1861
  * The pageviewID.
1862
+ * @format uuid
1664
1863
  */
1665
1864
  pageviewId: string;
1666
1865
  referrer?: IPageRef;
@@ -1670,6 +1869,8 @@ interface IEngagementWidget {
1670
1869
  provider: IProvider;
1671
1870
  /**
1672
1871
  * The schema of the event.
1872
+ * @format uri
1873
+ * @pattern ^https://tpaas-schemas.schibsted.media/.+\.json$
1673
1874
  */
1674
1875
  schema: string;
1675
1876
  session: ISession;
@@ -1681,15 +1882,18 @@ interface IEngagementWidget {
1681
1882
  tracker: ITracker;
1682
1883
  user?: IUser;
1683
1884
  }
1684
- interface IImpressionForm {
1885
+ interface IImpressionAdSlot {
1685
1886
  /**
1686
1887
  * The version of the TPaaS schemas catalog that this particular schema belongs to. Semver format.
1888
+ * @pattern ^(0|[1-9]\d*)\.(0|[1-9]\d*)\.(0|[1-9]\d*)$
1889
+ * @example "1.2.3"
1687
1890
  */
1688
1891
  catalogVersion: string;
1689
1892
  consents: IConsents;
1690
1893
  device: IDevice;
1691
1894
  /**
1692
1895
  * The unique identifier for the event.
1896
+ * @format uuid
1693
1897
  */
1694
1898
  eventId: string;
1695
1899
  /**
@@ -1697,11 +1901,77 @@ interface IImpressionForm {
1697
1901
  */
1698
1902
  eventType: "Impression";
1699
1903
  experiments?: IExperiments;
1904
+ metrics?: IMetrics;
1700
1905
  object: {
1701
1906
  /**
1702
- * The closest parent container used for traffic attribution. When in doubt use “page”.
1907
+ * Ad product name used by SMS.
1703
1908
  */
1704
- containerName: string;
1909
+ adFormat: string;
1910
+ /**
1911
+ * The size of the component.
1912
+ */
1913
+ elementSize: "XS" | "S" | "M" | "L" | "XL";
1914
+ /**
1915
+ * The name of the component.
1916
+ */
1917
+ name: string;
1918
+ /**
1919
+ * The unique ID for this component.
1920
+ */
1921
+ objectId: string;
1922
+ /**
1923
+ * The unique SDRN for this component.
1924
+ */
1925
+ objectSdrn: string;
1926
+ /**
1927
+ * The type of the object.
1928
+ */
1929
+ objectType: "AdSlot";
1930
+ };
1931
+ page: {
1932
+ content?: IContent;
1933
+ info: IPageRef;
1934
+ /**
1935
+ * The pageviewID.
1936
+ * @format uuid
1937
+ */
1938
+ pageviewId: string;
1939
+ referrer?: IPageRef;
1940
+ utm?: IUtmTags;
1941
+ };
1942
+ placement: IPlacement;
1943
+ provider: IProvider;
1944
+ /**
1945
+ * URL to the JSON schema for this event.
1946
+ * @format uri
1947
+ * @pattern ^https://tpaas-schemas.schibsted.media/.+\.json$
1948
+ */
1949
+ schema: string;
1950
+ session: ISession;
1951
+ time: ITime;
1952
+ tracker: ITracker;
1953
+ user?: IUser;
1954
+ }
1955
+ interface IImpressionForm {
1956
+ /**
1957
+ * The version of the TPaaS schemas catalog that this particular schema belongs to. Semver format.
1958
+ * @pattern ^(0|[1-9]\d*)\.(0|[1-9]\d*)\.(0|[1-9]\d*)$
1959
+ * @example "1.2.3"
1960
+ */
1961
+ catalogVersion: string;
1962
+ consents: IConsents;
1963
+ device: IDevice;
1964
+ /**
1965
+ * The unique identifier for the event.
1966
+ * @format uuid
1967
+ */
1968
+ eventId: string;
1969
+ /**
1970
+ * The type of the event.
1971
+ */
1972
+ eventType: "Impression";
1973
+ experiments?: IExperiments;
1974
+ object: {
1705
1975
  /**
1706
1976
  * The size of the component.
1707
1977
  */
@@ -1724,10 +1994,6 @@ interface IImpressionForm {
1724
1994
  */
1725
1995
  required: boolean;
1726
1996
  }[];
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
1997
  /**
1732
1998
  * The name of the component.
1733
1999
  */
@@ -1750,14 +2016,27 @@ interface IImpressionForm {
1750
2016
  info: IPageRef;
1751
2017
  /**
1752
2018
  * The pageviewID.
2019
+ * @format uuid
1753
2020
  */
1754
2021
  pageviewId: string;
1755
2022
  referrer?: IPageRef;
1756
2023
  utm?: IUtmTags;
1757
2024
  };
2025
+ placement: {
2026
+ /**
2027
+ * The closest parent container used for traffic attribution. When in doubt use “page”.
2028
+ */
2029
+ containerName: string;
2030
+ /**
2031
+ * Indicator if the widget was visible at pageload (“above”) or if the user had to scroll to it (“below”).
2032
+ */
2033
+ foldPosition: "Above" | "Below" | "Unknown";
2034
+ };
1758
2035
  provider: IProvider;
1759
2036
  /**
1760
2037
  * URL to the JSON schema for this event.
2038
+ * @format uri
2039
+ * @pattern ^https://tpaas-schemas.schibsted.media/.+\.json$
1761
2040
  */
1762
2041
  schema: string;
1763
2042
  session: ISession;
@@ -1772,12 +2051,15 @@ interface IImpressionForm {
1772
2051
  interface IImpressionHealthUIElement {
1773
2052
  /**
1774
2053
  * The version of the TPaaS schemas catalog that this particular schema belongs to. Semver format.
2054
+ * @pattern ^(0|[1-9]\d*)\.(0|[1-9]\d*)\.(0|[1-9]\d*)$
2055
+ * @example "1.2.3"
1775
2056
  */
1776
2057
  catalogVersion: string;
1777
2058
  consents: IConsents;
1778
2059
  device: IDevice;
1779
2060
  /**
1780
2061
  * The unique identifier for the event.
2062
+ * @format uuid
1781
2063
  */
1782
2064
  eventId: string;
1783
2065
  /**
@@ -1792,18 +2074,17 @@ interface IImpressionHealthUIElement {
1792
2074
  object: {
1793
2075
  /**
1794
2076
  * The health category this content relates to.
2077
+ * @example "breakfast"
1795
2078
  */
1796
2079
  category?: string;
1797
- /**
1798
- * The parent container or page section where this content appears.
1799
- */
1800
- containerName?: string;
1801
2080
  /**
1802
2081
  * The specific type of health content being viewed.
2082
+ * @example "modal"
1803
2083
  */
1804
2084
  contentType: string;
1805
2085
  /**
1806
2086
  * Freeform custom properties with dynamic field names for health-specific data.
2087
+ * @additionalProperties true
1807
2088
  */
1808
2089
  custom?: {
1809
2090
  [k: string]: unknown;
@@ -1812,16 +2093,14 @@ interface IImpressionHealthUIElement {
1812
2093
  * The size of the content element.
1813
2094
  */
1814
2095
  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
2096
  /**
1820
2097
  * The user intent or purpose of this event.
2098
+ * @example "log calories"
1821
2099
  */
1822
2100
  intent?: string;
1823
2101
  /**
1824
2102
  * The name/title of the health content element.
2103
+ * @example "Question quiz"
1825
2104
  */
1826
2105
  name: string;
1827
2106
  /**
@@ -1849,14 +2128,28 @@ interface IImpressionHealthUIElement {
1849
2128
  info: IPageRef;
1850
2129
  /**
1851
2130
  * The pageviewID of the parent page.
2131
+ * @format uuid
1852
2132
  */
1853
2133
  pageviewId: string;
1854
2134
  referrer?: IPageRef;
1855
2135
  utm?: IUtmTags;
1856
2136
  };
2137
+ placement?: {
2138
+ /**
2139
+ * The parent container or page section where this content appears.
2140
+ * @example "Logbook"
2141
+ */
2142
+ containerName?: string;
2143
+ /**
2144
+ * Position relative to the fold or if it's an overlay element.
2145
+ */
2146
+ foldPosition?: "Above" | "Below" | "Overlay" | "Unknown";
2147
+ };
1857
2148
  provider: IProvider;
1858
2149
  /**
1859
2150
  * URL to the JSON schema for this event.
2151
+ * @format uri
2152
+ * @pattern ^https://tpaas-schemas.schibsted.media/.+\.json$
1860
2153
  */
1861
2154
  schema: string;
1862
2155
  session: ISession;
@@ -1874,12 +2167,15 @@ interface IImpressionHealthUIElement {
1874
2167
  interface IImpressionNotification {
1875
2168
  /**
1876
2169
  * The version of the TPaaS schemas catalog that this particular schema belongs to. Semver format.
2170
+ * @pattern ^(0|[1-9]\d*)\.(0|[1-9]\d*)\.(0|[1-9]\d*)$
2171
+ * @example "1.2.3"
1877
2172
  */
1878
2173
  catalogVersion: string;
1879
2174
  consents: IConsents;
1880
2175
  device: IDevice;
1881
2176
  /**
1882
2177
  * The unique identifier for the event.
2178
+ * @format uuid
1883
2179
  */
1884
2180
  eventId: string;
1885
2181
  /**
@@ -1926,6 +2222,8 @@ interface IImpressionNotification {
1926
2222
  provider: IProvider;
1927
2223
  /**
1928
2224
  * URL to the JSON schema for this event.
2225
+ * @format uri
2226
+ * @pattern ^https://tpaas-schemas.schibsted.media/.+\.json$
1929
2227
  */
1930
2228
  schema: string;
1931
2229
  session: ISession;
@@ -1940,12 +2238,15 @@ interface IImpressionNotification {
1940
2238
  interface IImpressionOffer {
1941
2239
  /**
1942
2240
  * The version of the TPaaS schemas catalog that this particular schema belongs to. Semver format.
2241
+ * @pattern ^(0|[1-9]\d*)\.(0|[1-9]\d*)\.(0|[1-9]\d*)$
2242
+ * @example "1.2.3"
1943
2243
  */
1944
2244
  catalogVersion: string;
1945
2245
  consents: IConsents;
1946
2246
  device: IDevice;
1947
2247
  /**
1948
2248
  * The unique identifier for the event.
2249
+ * @format uuid
1949
2250
  */
1950
2251
  eventId: string;
1951
2252
  /**
@@ -1956,20 +2257,13 @@ interface IImpressionOffer {
1956
2257
  object: {
1957
2258
  /**
1958
2259
  * The campaign associated with this offer.
2260
+ * @example "summer-sale"
1959
2261
  */
1960
2262
  campaign: string;
1961
- /**
1962
- * The closest parent container used for traffic attribution. When in doubt use “page”.
1963
- */
1964
- containerName: string;
1965
2263
  /**
1966
2264
  * The size of the component.
1967
2265
  */
1968
2266
  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
2267
  /**
1974
2268
  * The name of the component.
1975
2269
  */
@@ -1987,10 +2281,6 @@ interface IImpressionOffer {
1987
2281
  */
1988
2282
  objectType: "Offer";
1989
2283
  offerCodes: string[];
1990
- /**
1991
- * The position where this offer was placed.
1992
- */
1993
- offerPlacement: string;
1994
2284
  /**
1995
2285
  * The variant/layout of the offer.
1996
2286
  */
@@ -2001,14 +2291,31 @@ interface IImpressionOffer {
2001
2291
  info: IPageRef;
2002
2292
  /**
2003
2293
  * The pageviewID.
2294
+ * @format uuid
2004
2295
  */
2005
2296
  pageviewId: string;
2006
2297
  referrer?: IPageRef;
2007
2298
  utm?: IUtmTags;
2008
2299
  };
2300
+ placement: {
2301
+ /**
2302
+ * The closest parent container used for traffic attribution. When in doubt use “page”.
2303
+ */
2304
+ containerName: string;
2305
+ /**
2306
+ * Indicator if the widget was visible at pageload (“above”) or if the user had to scroll to it (“below”).
2307
+ */
2308
+ foldPosition: "Above" | "Below" | "Unknown";
2309
+ /**
2310
+ * The position where this offer was placed.
2311
+ */
2312
+ offerPlacement: string;
2313
+ };
2009
2314
  provider: IProvider;
2010
2315
  /**
2011
2316
  * URL to the JSON schema for this event.
2317
+ * @format uri
2318
+ * @pattern ^https://tpaas-schemas.schibsted.media/.+\.json$
2012
2319
  */
2013
2320
  schema: string;
2014
2321
  session: ISession;
@@ -2023,12 +2330,15 @@ interface IImpressionOffer {
2023
2330
  interface IImpressionPlayer {
2024
2331
  /**
2025
2332
  * The version of the TPaaS schemas catalog that this particular schema belongs to. Semver format.
2333
+ * @pattern ^(0|[1-9]\d*)\.(0|[1-9]\d*)\.(0|[1-9]\d*)$
2334
+ * @example "1.2.3"
2026
2335
  */
2027
2336
  catalogVersion: string;
2028
2337
  consents: IConsents;
2029
2338
  device: IDevice;
2030
2339
  /**
2031
2340
  * The unique identifier for the event.
2341
+ * @format uuid
2032
2342
  */
2033
2343
  eventId: string;
2034
2344
  /**
@@ -2038,18 +2348,10 @@ interface IImpressionPlayer {
2038
2348
  experiments?: IExperiments;
2039
2349
  metrics?: IMetrics;
2040
2350
  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
2351
  /**
2046
2352
  * The size of the player.
2047
2353
  */
2048
2354
  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
2355
  /**
2054
2356
  * The unique ID of the embedded asset (not ads from Xandr) ready to play in the player.
2055
2357
  */
@@ -2084,6 +2386,7 @@ interface IImpressionPlayer {
2084
2386
  info: IPageRef;
2085
2387
  /**
2086
2388
  * The pageviewID.
2389
+ * @format uuid
2087
2390
  */
2088
2391
  pageviewId: string;
2089
2392
  referrer?: IPageRef;
@@ -2093,6 +2396,8 @@ interface IImpressionPlayer {
2093
2396
  provider: IProvider;
2094
2397
  /**
2095
2398
  * URL to the JSON schema for this event.
2399
+ * @format uri
2400
+ * @pattern ^https://tpaas-schemas.schibsted.media/.+\.json$
2096
2401
  */
2097
2402
  schema: string;
2098
2403
  session: ISession;
@@ -2103,12 +2408,15 @@ interface IImpressionPlayer {
2103
2408
  interface IImpressionTeaser {
2104
2409
  /**
2105
2410
  * The version of the TPaaS schemas catalog that this particular schema belongs to. Semver format.
2411
+ * @pattern ^(0|[1-9]\d*)\.(0|[1-9]\d*)\.(0|[1-9]\d*)$
2412
+ * @example "1.2.3"
2106
2413
  */
2107
2414
  catalogVersion: string;
2108
2415
  consents: IConsents;
2109
2416
  device: IDevice;
2110
2417
  /**
2111
2418
  * The unique identifier for the event.
2419
+ * @format uuid
2112
2420
  */
2113
2421
  eventId: string;
2114
2422
  /**
@@ -2118,10 +2426,6 @@ interface IImpressionTeaser {
2118
2426
  experiments?: IExperiments;
2119
2427
  metrics?: IMetrics;
2120
2428
  object: {
2121
- /**
2122
- * The closest parent container used for traffic attribution. When in doubt use “page”.
2123
- */
2124
- containerName: string;
2125
2429
  /**
2126
2430
  * The engine producing this teaser. Use “editorial” for manually curated item.
2127
2431
  */
@@ -2134,10 +2438,6 @@ interface IImpressionTeaser {
2134
2438
  * The size of the component.
2135
2439
  */
2136
2440
  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
2441
  /**
2142
2442
  * The name of the component.
2143
2443
  */
@@ -2154,10 +2454,6 @@ interface IImpressionTeaser {
2154
2454
  * The type of the object.
2155
2455
  */
2156
2456
  objectType: "Teaser";
2157
- /**
2158
- * The parent’s primary direction along which components are laid out.
2159
- */
2160
- primaryAxis: "Horizontal" | "Vertical";
2161
2457
  /**
2162
2458
  * The title of the teaser.
2163
2459
  */
@@ -2168,6 +2464,7 @@ interface IImpressionTeaser {
2168
2464
  info: IPageRef;
2169
2465
  /**
2170
2466
  * The pageviewID.
2467
+ * @format uuid
2171
2468
  */
2172
2469
  pageviewId: string;
2173
2470
  referrer?: IPageRef;
@@ -2177,6 +2474,8 @@ interface IImpressionTeaser {
2177
2474
  provider: IProvider;
2178
2475
  /**
2179
2476
  * URL to the JSON schema for this event.
2477
+ * @format uri
2478
+ * @pattern ^https://tpaas-schemas.schibsted.media/.+\.json$
2180
2479
  */
2181
2480
  schema: string;
2182
2481
  session: ISession;
@@ -2191,12 +2490,15 @@ interface IImpressionTeaser {
2191
2490
  interface IImpressionUIElement {
2192
2491
  /**
2193
2492
  * The version of the TPaaS schemas catalog that this particular schema belongs to. Semver format.
2493
+ * @pattern ^(0|[1-9]\d*)\.(0|[1-9]\d*)\.(0|[1-9]\d*)$
2494
+ * @example "1.2.3"
2194
2495
  */
2195
2496
  catalogVersion: string;
2196
2497
  consents: IConsents;
2197
2498
  device: IDevice;
2198
2499
  /**
2199
2500
  * The unique identifier for the event.
2501
+ * @format uuid
2200
2502
  */
2201
2503
  eventId: string;
2202
2504
  /**
@@ -2205,10 +2507,6 @@ interface IImpressionUIElement {
2205
2507
  eventType: "Impression";
2206
2508
  experiments?: IExperiments;
2207
2509
  object: {
2208
- /**
2209
- * The closest parent container used for traffic attribution. When in doubt use “page”.
2210
- */
2211
- containerName: string;
2212
2510
  /**
2213
2511
  * The size of the component.
2214
2512
  */
@@ -2221,10 +2519,6 @@ interface IImpressionUIElement {
2221
2519
  * The type of UIElement (div, span, a, …).
2222
2520
  */
2223
2521
  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
2522
  /**
2229
2523
  * The name of the component.
2230
2524
  */
@@ -2251,14 +2545,27 @@ interface IImpressionUIElement {
2251
2545
  info: IPageRef;
2252
2546
  /**
2253
2547
  * The pageviewID.
2548
+ * @format uuid
2254
2549
  */
2255
2550
  pageviewId: string;
2256
2551
  referrer?: IPageRef;
2257
2552
  utm?: IUtmTags;
2258
2553
  };
2554
+ placement: {
2555
+ /**
2556
+ * The closest parent container used for traffic attribution. When in doubt use “page”.
2557
+ */
2558
+ containerName: string;
2559
+ /**
2560
+ * Indicator if the widget was visible at pageload (“above”) or if the user had to scroll to it (“below”).
2561
+ */
2562
+ foldPosition: "Above" | "Below" | "Unknown";
2563
+ };
2259
2564
  provider: IProvider;
2260
2565
  /**
2261
2566
  * URL to the JSON schema for this event.
2567
+ * @format uri
2568
+ * @pattern ^https://tpaas-schemas.schibsted.media/.+\.json$
2262
2569
  */
2263
2570
  schema: string;
2264
2571
  session: ISession;
@@ -2273,12 +2580,15 @@ interface IImpressionUIElement {
2273
2580
  interface IImpressionWidget {
2274
2581
  /**
2275
2582
  * The version of the TPaaS schemas catalog that this particular schema belongs to. Semver format.
2583
+ * @pattern ^(0|[1-9]\d*)\.(0|[1-9]\d*)\.(0|[1-9]\d*)$
2584
+ * @example "1.2.3"
2276
2585
  */
2277
2586
  catalogVersion: string;
2278
2587
  consents: IConsents;
2279
2588
  device: IDevice;
2280
2589
  /**
2281
2590
  * The unique identifier for the event.
2591
+ * @format uuid
2282
2592
  */
2283
2593
  eventId: string;
2284
2594
  /**
@@ -2288,18 +2598,10 @@ interface IImpressionWidget {
2288
2598
  experiments?: IExperiments;
2289
2599
  metrics?: IMetrics;
2290
2600
  object: {
2291
- /**
2292
- * The closest parent container used for traffic attribution. When in doubt use “page”.
2293
- */
2294
- containerName: string;
2295
2601
  /**
2296
2602
  * The size of the component.
2297
2603
  */
2298
2604
  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
2605
  /**
2304
2606
  * The name of the component.
2305
2607
  */
@@ -2316,16 +2618,13 @@ interface IImpressionWidget {
2316
2618
  * The type of the object.
2317
2619
  */
2318
2620
  objectType: "Widget";
2319
- /**
2320
- * The parent’s primary direction along which components are laid out.
2321
- */
2322
- primaryAxis: "Horizontal" | "Vertical";
2323
2621
  };
2324
2622
  page: {
2325
2623
  content?: IContent;
2326
2624
  info: IPageRef;
2327
2625
  /**
2328
2626
  * The pageviewID.
2627
+ * @format uuid
2329
2628
  */
2330
2629
  pageviewId: string;
2331
2630
  referrer?: IPageRef;
@@ -2335,6 +2634,8 @@ interface IImpressionWidget {
2335
2634
  provider: IProvider;
2336
2635
  /**
2337
2636
  * URL to the JSON schema for this event.
2637
+ * @format uri
2638
+ * @pattern ^https://tpaas-schemas.schibsted.media/.+\.json$
2338
2639
  */
2339
2640
  schema: string;
2340
2641
  session: ISession;
@@ -2349,6 +2650,8 @@ interface IImpressionWidget {
2349
2650
  interface IInternalAccessDecision {
2350
2651
  /**
2351
2652
  * The version of the TPaaS schemas catalog that this particular schema belongs to. Semver format.
2653
+ * @pattern ^(0|[1-9]\d*)\.(0|[1-9]\d*)\.(0|[1-9]\d*)$
2654
+ * @example "1.2.3"
2352
2655
  */
2353
2656
  catalogVersion: string;
2354
2657
  consents: IConsents;
@@ -2363,6 +2666,7 @@ interface IInternalAccessDecision {
2363
2666
  deviceType?: "Desktop" | "Mobile" | "Tablet" | "SmartTv" | "Other";
2364
2667
  /**
2365
2668
  * The environment ID.
2669
+ * @example "42401e1f-7e04-4b73-8bed-1ceffc0ed8cc"
2366
2670
  */
2367
2671
  environmentId: string;
2368
2672
  /**
@@ -2376,6 +2680,7 @@ interface IInternalAccessDecision {
2376
2680
  };
2377
2681
  /**
2378
2682
  * The unique identifier for the event.
2683
+ * @format uuid
2379
2684
  */
2380
2685
  eventId: string;
2381
2686
  /**
@@ -2384,7 +2689,7 @@ interface IInternalAccessDecision {
2384
2689
  eventType: "Internal";
2385
2690
  experiments?: IExperiments;
2386
2691
  object: {
2387
- arm: {
2692
+ arm?: {
2388
2693
  /**
2389
2694
  * Unique ID of the experimental arm the user is assigned to.
2390
2695
  */
@@ -2399,6 +2704,10 @@ interface IInternalAccessDecision {
2399
2704
  config: {
2400
2705
  armId: string;
2401
2706
  version: string;
2707
+ /**
2708
+ * @minimum 0
2709
+ * @maximum 1
2710
+ */
2402
2711
  weight: number;
2403
2712
  }[];
2404
2713
  /**
@@ -2407,15 +2716,18 @@ interface IInternalAccessDecision {
2407
2716
  configId: string;
2408
2717
  /**
2409
2718
  * End time of the arm assignment in UTC.
2719
+ * @format date-time
2410
2720
  */
2411
2721
  endAt: string;
2412
2722
  /**
2413
2723
  * Start time of the arm assignment in UTC.
2724
+ * @format date-time
2414
2725
  */
2415
2726
  startAt: string;
2416
2727
  };
2417
2728
  /**
2418
2729
  * When the decision system created the decision in UTC.
2730
+ * @format date-time
2419
2731
  */
2420
2732
  decidedAt: string;
2421
2733
  /**
@@ -2433,10 +2745,11 @@ interface IInternalAccessDecision {
2433
2745
  /**
2434
2746
  * Categorization of how the decision was made.
2435
2747
  */
2436
- decisionType: "RCT" | "Policy" | "Replay" | "Fallback";
2437
- episode: {
2748
+ decisionType: "Policy" | "Replay" | "Fallback";
2749
+ episode?: {
2438
2750
  /**
2439
2751
  * End time of the episode in UTC.
2752
+ * @format date-time
2440
2753
  */
2441
2754
  endAt: string;
2442
2755
  /**
@@ -2445,9 +2758,14 @@ interface IInternalAccessDecision {
2445
2758
  episodeId: string;
2446
2759
  /**
2447
2760
  * Start time of the episode in UTC.
2761
+ * @format date-time
2448
2762
  */
2449
2763
  startAt: string;
2450
2764
  };
2765
+ /**
2766
+ * Internal Decision System error that caused the fallback.
2767
+ */
2768
+ fallbackReason?: "EngineTimeout" | "EpisodeReadError" | "EpisodeWriteError" | "RequestCountError" | "ArmReadError" | "ArmWriteError";
2451
2769
  /**
2452
2770
  * The type of the object.
2453
2771
  */
@@ -2463,6 +2781,8 @@ interface IInternalAccessDecision {
2463
2781
  provider: IProvider;
2464
2782
  /**
2465
2783
  * URL to the JSON schema for this event.
2784
+ * @format uri
2785
+ * @pattern ^https://tpaas-schemas.schibsted.media/.+\.json$
2466
2786
  */
2467
2787
  schema: string;
2468
2788
  target: {
@@ -2497,10 +2817,13 @@ interface IInternalAccessDecision {
2497
2817
  interface IInternalProbe {
2498
2818
  /**
2499
2819
  * The version of the TPaaS schemas catalog that this particular schema belongs to. Semver format.
2820
+ * @pattern ^(0|[1-9]\d*)\.(0|[1-9]\d*)\.(0|[1-9]\d*)$
2821
+ * @example "1.2.3"
2500
2822
  */
2501
2823
  catalogVersion: string;
2502
2824
  /**
2503
2825
  * The unique identifier for the event.
2826
+ * @format uuid
2504
2827
  */
2505
2828
  eventId: string;
2506
2829
  /**
@@ -2516,6 +2839,8 @@ interface IInternalProbe {
2516
2839
  provider: IProvider;
2517
2840
  /**
2518
2841
  * URL to the JSON schema for this event.
2842
+ * @format uri
2843
+ * @pattern ^https://tpaas-schemas.schibsted.media/.+\.json$
2519
2844
  */
2520
2845
  schema: string;
2521
2846
  /**
@@ -2531,12 +2856,15 @@ interface IInternalProbe {
2531
2856
  interface ILaunchApp {
2532
2857
  /**
2533
2858
  * The version of the TPaaS schemas catalog that this particular schema belongs to. Semver format.
2859
+ * @pattern ^(0|[1-9]\d*)\.(0|[1-9]\d*)\.(0|[1-9]\d*)$
2860
+ * @example "1.2.3"
2534
2861
  */
2535
2862
  catalogVersion: string;
2536
2863
  consents: IConsents;
2537
2864
  device: IDevice;
2538
2865
  /**
2539
2866
  * The unique identifier for the event.
2867
+ * @format uuid
2540
2868
  */
2541
2869
  eventId: string;
2542
2870
  /**
@@ -2546,6 +2874,9 @@ interface ILaunchApp {
2546
2874
  experiments?: IExperiments;
2547
2875
  metrics?: IMetrics;
2548
2876
  object: {
2877
+ /**
2878
+ * @additionalProperties true
2879
+ */
2549
2880
  custom: {
2550
2881
  [k: string]: unknown;
2551
2882
  };
@@ -2557,6 +2888,8 @@ interface ILaunchApp {
2557
2888
  provider: IProvider;
2558
2889
  /**
2559
2890
  * URL to the JSON schema for this event.
2891
+ * @format uri
2892
+ * @pattern ^https://tpaas-schemas.schibsted.media/.+\.json$
2560
2893
  */
2561
2894
  schema: string;
2562
2895
  session: ISession;
@@ -2567,14 +2900,18 @@ interface ILaunchApp {
2567
2900
  interface ILeave {
2568
2901
  /**
2569
2902
  * 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'.
2903
+ * @exclusiveMinimum 0
2570
2904
  */
2571
2905
  activityDurationMs: number;
2572
2906
  /**
2573
2907
  * The total time the user spent on the page in milliseconds.
2908
+ * @exclusiveMinimum 0
2574
2909
  */
2575
2910
  durationMs: number;
2576
2911
  /**
2577
2912
  * The maximum relative scroll position of the article when the user leaves it.
2913
+ * @minimum 0
2914
+ * @maximum 1
2578
2915
  */
2579
2916
  maxObjectViewPercentage: number;
2580
2917
  /**
@@ -2583,10 +2920,14 @@ interface ILeave {
2583
2920
  maxPageScrollPosition: number;
2584
2921
  /**
2585
2922
  * The maximum relative scroll position of the page when the user leaves it.
2923
+ * @minimum 0
2924
+ * @maximum 1
2586
2925
  */
2587
2926
  maxPageViewPercentage: number;
2588
2927
  /**
2589
2928
  * The relative scroll position of the article when the user leaves it.
2929
+ * @minimum 0
2930
+ * @maximum 1
2590
2931
  */
2591
2932
  objectViewPercentage: number;
2592
2933
  /**
@@ -2595,18 +2936,23 @@ interface ILeave {
2595
2936
  pageScrollPosition: number;
2596
2937
  /**
2597
2938
  * The relative scroll position of the page when the user leaves it.
2939
+ * @minimum 0
2940
+ * @maximum 1
2598
2941
  */
2599
2942
  pageViewPercentage: number;
2600
2943
  }
2601
2944
  interface ILeaveArticle {
2602
2945
  /**
2603
2946
  * The version of the TPaaS schemas catalog that this particular schema belongs to. Semver format.
2947
+ * @pattern ^(0|[1-9]\d*)\.(0|[1-9]\d*)\.(0|[1-9]\d*)$
2948
+ * @example "1.2.3"
2604
2949
  */
2605
2950
  catalogVersion: string;
2606
2951
  consents: IConsents;
2607
2952
  device: IDevice;
2608
2953
  /**
2609
2954
  * Event ID
2955
+ * @format uuid
2610
2956
  */
2611
2957
  eventId: string;
2612
2958
  /**
@@ -2615,7 +2961,9 @@ interface ILeaveArticle {
2615
2961
  eventType: "Leave";
2616
2962
  experiments?: IExperiments;
2617
2963
  leave: ILeave;
2964
+ metrics?: IMetrics;
2618
2965
  object: {
2966
+ authors: string[];
2619
2967
  /**
2620
2968
  * The editorial category of this article.
2621
2969
  */
@@ -2626,10 +2974,12 @@ interface ILeaveArticle {
2626
2974
  isStacked: boolean;
2627
2975
  /**
2628
2976
  * The publication date of this version of the article.
2977
+ * @format date-time
2629
2978
  */
2630
2979
  lastUpdatedDate: string;
2631
2980
  /**
2632
2981
  * The newsroom that published the article.
2982
+ * @example "vg"
2633
2983
  */
2634
2984
  newsroom: string;
2635
2985
  /**
@@ -2646,20 +2996,35 @@ interface ILeaveArticle {
2646
2996
  objectType: "Article";
2647
2997
  /**
2648
2998
  * The publication date of the article.
2999
+ * @format date-time
2649
3000
  */
2650
3001
  publicationDate: string;
3002
+ /**
3003
+ * The name of the company that sponsored the article. Empty if the article was not sponsored.
3004
+ */
3005
+ sponsor?: string;
2651
3006
  /**
2652
3007
  * The title of the page.
2653
3008
  */
2654
3009
  title: string;
3010
+ /**
3011
+ * Url of the article top or when missing article main image.
3012
+ */
3013
+ topImageUrl?: string;
2655
3014
  /**
2656
3015
  * The type of article.
2657
3016
  */
2658
3017
  variant: "Article" | "LiveArticle" | "Special";
2659
3018
  /**
2660
3019
  * The version counter of the article.
3020
+ * @minimum 0
2661
3021
  */
2662
3022
  versionCounter: number;
3023
+ /**
3024
+ * The number of words in this version of the article.
3025
+ * @exclusiveMinimum 0
3026
+ */
3027
+ wordCount: number;
2663
3028
  };
2664
3029
  page: {
2665
3030
  content: IContent;
@@ -2670,6 +3035,7 @@ interface ILeaveArticle {
2670
3035
  navigationType: "Navigate" | "Reload" | "BackForward" | "Prerender" | "Scroll";
2671
3036
  /**
2672
3037
  * The pageviewID.
3038
+ * @format uuid
2673
3039
  */
2674
3040
  pageviewId: string;
2675
3041
  referrer?: IPageRef;
@@ -2678,6 +3044,8 @@ interface ILeaveArticle {
2678
3044
  provider: IProvider;
2679
3045
  /**
2680
3046
  * The schema of the event.
3047
+ * @format uri
3048
+ * @pattern ^https://tpaas-schemas.schibsted.media/.+\.json$
2681
3049
  */
2682
3050
  schema: string;
2683
3051
  session: ISession;
@@ -2688,6 +3056,7 @@ interface ILeaveArticle {
2688
3056
  interface ILeaveAudio {
2689
3057
  /**
2690
3058
  * 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'.
3059
+ * @exclusiveMinimum 0
2691
3060
  */
2692
3061
  activityDurationMs: number;
2693
3062
  /**
@@ -2700,6 +3069,7 @@ interface ILeaveAudio {
2700
3069
  audioStarted: number;
2701
3070
  /**
2702
3071
  * The total time the user spent on the page in milliseconds.
3072
+ * @exclusiveMinimum 0
2703
3073
  */
2704
3074
  durationMs: number;
2705
3075
  /**
@@ -2708,18 +3078,23 @@ interface ILeaveAudio {
2708
3078
  maxPlaylistPosition?: number;
2709
3079
  /**
2710
3080
  * How far the user came into the playlist shown in percentage.
3081
+ * @minimum 0
3082
+ * @maximum 1
2711
3083
  */
2712
3084
  playlistPositionPercentage?: number;
2713
3085
  }
2714
3086
  interface ILeaveAudioPage {
2715
3087
  /**
2716
3088
  * The version of the TPaaS schemas catalog that this particular schema belongs to. Semver format.
3089
+ * @pattern ^(0|[1-9]\d*)\.(0|[1-9]\d*)\.(0|[1-9]\d*)$
3090
+ * @example "1.2.3"
2717
3091
  */
2718
3092
  catalogVersion: string;
2719
3093
  consents: IConsents;
2720
3094
  device: IDevice;
2721
3095
  /**
2722
3096
  * The unique identifier for the event.
3097
+ * @format uuid
2723
3098
  */
2724
3099
  eventId: string;
2725
3100
  /**
@@ -2758,6 +3133,7 @@ interface ILeaveAudioPage {
2758
3133
  navigationType: "Navigate" | "Reload" | "BackForward" | "Prerender";
2759
3134
  /**
2760
3135
  * The pageviewID.
3136
+ * @format uuid
2761
3137
  */
2762
3138
  pageviewId: string;
2763
3139
  referrer?: IPageRef;
@@ -2766,6 +3142,8 @@ interface ILeaveAudioPage {
2766
3142
  provider: IProvider;
2767
3143
  /**
2768
3144
  * URL to the JSON schema for this event.
3145
+ * @format uri
3146
+ * @pattern ^https://tpaas-schemas.schibsted.media/.+\.json$
2769
3147
  */
2770
3148
  schema: string;
2771
3149
  session: ISession;
@@ -2776,12 +3154,15 @@ interface ILeaveAudioPage {
2776
3154
  interface ILeaveError {
2777
3155
  /**
2778
3156
  * The version of the TPaaS schemas catalog that this particular schema belongs to. Semver format.
3157
+ * @pattern ^(0|[1-9]\d*)\.(0|[1-9]\d*)\.(0|[1-9]\d*)$
3158
+ * @example "1.2.3"
2779
3159
  */
2780
3160
  catalogVersion: string;
2781
3161
  consents: IConsents;
2782
3162
  device: IDevice;
2783
3163
  /**
2784
3164
  * Event ID
3165
+ * @format uuid
2785
3166
  */
2786
3167
  eventId: string;
2787
3168
  /**
@@ -2797,10 +3178,12 @@ interface ILeaveError {
2797
3178
  category?: string;
2798
3179
  /**
2799
3180
  * The response code of the page.
3181
+ * @example 418
2800
3182
  */
2801
3183
  errorCode: number;
2802
3184
  /**
2803
3185
  * The error message.
3186
+ * @example "I'm a teapot"
2804
3187
  */
2805
3188
  errorMessage: string;
2806
3189
  /**
@@ -2828,6 +3211,7 @@ interface ILeaveError {
2828
3211
  navigationType: "Navigate" | "Reload" | "BackForward" | "Prerender" | "Scroll";
2829
3212
  /**
2830
3213
  * The pageviewID.
3214
+ * @format uuid
2831
3215
  */
2832
3216
  pageviewId: string;
2833
3217
  referrer?: IPageRef;
@@ -2836,6 +3220,8 @@ interface ILeaveError {
2836
3220
  provider: IProvider;
2837
3221
  /**
2838
3222
  * The schema of the event.
3223
+ * @format uri
3224
+ * @pattern ^https://tpaas-schemas.schibsted.media/.+\.json$
2839
3225
  */
2840
3226
  schema: string;
2841
3227
  session: ISession;
@@ -2846,12 +3232,15 @@ interface ILeaveError {
2846
3232
  interface ILeaveFrontpage {
2847
3233
  /**
2848
3234
  * The version of the TPaaS schemas catalog that this particular schema belongs to. Semver format.
3235
+ * @pattern ^(0|[1-9]\d*)\.(0|[1-9]\d*)\.(0|[1-9]\d*)$
3236
+ * @example "1.2.3"
2849
3237
  */
2850
3238
  catalogVersion: string;
2851
3239
  consents: IConsents;
2852
3240
  device: IDevice;
2853
3241
  /**
2854
3242
  * Event ID
3243
+ * @format uuid
2855
3244
  */
2856
3245
  eventId: string;
2857
3246
  /**
@@ -2860,11 +3249,8 @@ interface ILeaveFrontpage {
2860
3249
  eventType: "Leave";
2861
3250
  experiments?: IExperiments;
2862
3251
  leave: ILeave;
3252
+ metrics?: IMetrics;
2863
3253
  object: {
2864
- /**
2865
- * The location of the page in the brand’s page hierarchy.
2866
- */
2867
- category?: string;
2868
3254
  /**
2869
3255
  * The engine producing this listing. Use “editorial” for manually curated lists.
2870
3256
  */
@@ -2875,6 +3261,7 @@ interface ILeaveFrontpage {
2875
3261
  isInfinite: boolean;
2876
3262
  /**
2877
3263
  * The total number of items in the listing, or -1 if unknown.
3264
+ * @minimum -1
2878
3265
  */
2879
3266
  itemsTotal: number;
2880
3267
  /**
@@ -2889,10 +3276,6 @@ interface ILeaveFrontpage {
2889
3276
  * The type of this page.
2890
3277
  */
2891
3278
  objectType: "Frontpage";
2892
- /**
2893
- * Indicates how results are sorted. Use “editorial” for manually curated lists.
2894
- */
2895
- sortingMethod: "Time" | "Editorial" | "Relevance" | "Alphabetical";
2896
3279
  /**
2897
3280
  * The title of the page.
2898
3281
  */
@@ -2906,6 +3289,7 @@ interface ILeaveFrontpage {
2906
3289
  navigationType: "Navigate" | "Reload" | "BackForward" | "Prerender";
2907
3290
  /**
2908
3291
  * The pageviewID.
3292
+ * @format uuid
2909
3293
  */
2910
3294
  pageviewId: string;
2911
3295
  referrer?: IPageRef;
@@ -2914,6 +3298,8 @@ interface ILeaveFrontpage {
2914
3298
  provider: IProvider;
2915
3299
  /**
2916
3300
  * The schema of the event.
3301
+ * @format uri
3302
+ * @pattern ^https://tpaas-schemas.schibsted.media/.+\.json$
2917
3303
  */
2918
3304
  schema: string;
2919
3305
  session: ISession;
@@ -2924,12 +3310,15 @@ interface ILeaveFrontpage {
2924
3310
  interface ILeaveLandingpage {
2925
3311
  /**
2926
3312
  * The version of the TPaaS schemas catalog that this particular schema belongs to. Semver format.
3313
+ * @pattern ^(0|[1-9]\d*)\.(0|[1-9]\d*)\.(0|[1-9]\d*)$
3314
+ * @example "1.2.3"
2927
3315
  */
2928
3316
  catalogVersion: string;
2929
3317
  consents: IConsents;
2930
3318
  device: IDevice;
2931
3319
  /**
2932
3320
  * Event ID
3321
+ * @format uuid
2933
3322
  */
2934
3323
  eventId: string;
2935
3324
  /**
@@ -2941,6 +3330,7 @@ interface ILeaveLandingpage {
2941
3330
  object: {
2942
3331
  /**
2943
3332
  * The name of the landing page campaign.
3333
+ * @example "summer-sale"
2944
3334
  */
2945
3335
  campaign?: string;
2946
3336
  /**
@@ -2972,6 +3362,7 @@ interface ILeaveLandingpage {
2972
3362
  navigationType: "Navigate" | "Reload" | "BackForward" | "Prerender";
2973
3363
  /**
2974
3364
  * The pageviewID.
3365
+ * @format uuid
2975
3366
  */
2976
3367
  pageviewId: string;
2977
3368
  referrer?: IPageRef;
@@ -2980,6 +3371,8 @@ interface ILeaveLandingpage {
2980
3371
  provider: IProvider;
2981
3372
  /**
2982
3373
  * The schema of the event.
3374
+ * @format uri
3375
+ * @pattern ^https://tpaas-schemas.schibsted.media/.+\.json$
2983
3376
  */
2984
3377
  schema: string;
2985
3378
  session: ISession;
@@ -2990,12 +3383,15 @@ interface ILeaveLandingpage {
2990
3383
  interface ILeaveListing {
2991
3384
  /**
2992
3385
  * The version of the TPaaS schemas catalog that this particular schema belongs to. Semver format.
3386
+ * @pattern ^(0|[1-9]\d*)\.(0|[1-9]\d*)\.(0|[1-9]\d*)$
3387
+ * @example "1.2.3"
2993
3388
  */
2994
3389
  catalogVersion: string;
2995
3390
  consents: IConsents;
2996
3391
  device: IDevice;
2997
3392
  /**
2998
3393
  * Event ID
3394
+ * @format uuid
2999
3395
  */
3000
3396
  eventId: string;
3001
3397
  /**
@@ -3004,9 +3400,11 @@ interface ILeaveListing {
3004
3400
  eventType: "Leave";
3005
3401
  experiments?: IExperiments;
3006
3402
  leave: ILeave;
3403
+ metrics?: IMetrics;
3007
3404
  object: {
3008
3405
  /**
3009
3406
  * The location of the page in the brand’s page hierarchy.
3407
+ * @pattern ^[a-z0-9-]+(>[a-z0-9-]+)*$
3010
3408
  */
3011
3409
  category?: string;
3012
3410
  /**
@@ -3019,12 +3417,13 @@ interface ILeaveListing {
3019
3417
  isInfinite: boolean;
3020
3418
  /**
3021
3419
  * The total number of items in the listing, or -1 if unknown.
3420
+ * @minimum -1
3022
3421
  */
3023
3422
  itemsTotal: number;
3024
3423
  /**
3025
3424
  * The type of listing page, e.g. 'tag', 'section' etc.
3026
3425
  */
3027
- listingType: string;
3426
+ listingType: "Tag" | "Story" | "Section" | "Search" | "Author" | "Other";
3028
3427
  /**
3029
3428
  * The unique ID of this page.
3030
3429
  */
@@ -3039,6 +3438,7 @@ interface ILeaveListing {
3039
3438
  objectType: "Listing";
3040
3439
  /**
3041
3440
  * Current pagination index. Zero if results are not paged.
3441
+ * @minimum 0
3042
3442
  */
3043
3443
  pageNumber: number;
3044
3444
  /**
@@ -3058,6 +3458,7 @@ interface ILeaveListing {
3058
3458
  navigationType: "Navigate" | "Reload" | "BackForward" | "Prerender";
3059
3459
  /**
3060
3460
  * The pageviewID.
3461
+ * @format uuid
3061
3462
  */
3062
3463
  pageviewId: string;
3063
3464
  referrer?: IPageRef;
@@ -3066,6 +3467,8 @@ interface ILeaveListing {
3066
3467
  provider: IProvider;
3067
3468
  /**
3068
3469
  * The schema of the event.
3470
+ * @format uri
3471
+ * @pattern ^https://tpaas-schemas.schibsted.media/.+\.json$
3069
3472
  */
3070
3473
  schema: string;
3071
3474
  session: ISession;
@@ -3076,12 +3479,15 @@ interface ILeaveListing {
3076
3479
  interface ILeaveLockedArticle {
3077
3480
  /**
3078
3481
  * The version of the TPaaS schemas catalog that this particular schema belongs to. Semver format.
3482
+ * @pattern ^(0|[1-9]\d*)\.(0|[1-9]\d*)\.(0|[1-9]\d*)$
3483
+ * @example "1.2.3"
3079
3484
  */
3080
3485
  catalogVersion: string;
3081
3486
  consents: IConsents;
3082
3487
  device: IDevice;
3083
3488
  /**
3084
3489
  * Event ID
3490
+ * @format uuid
3085
3491
  */
3086
3492
  eventId: string;
3087
3493
  /**
@@ -3090,7 +3496,9 @@ interface ILeaveLockedArticle {
3090
3496
  eventType: "Leave";
3091
3497
  experiments?: IExperiments;
3092
3498
  leave: ILeave;
3499
+ metrics?: IMetrics;
3093
3500
  object: {
3501
+ authors: string[];
3094
3502
  /**
3095
3503
  * The location of the page in the brand’s page hierarchy.
3096
3504
  */
@@ -3101,10 +3509,12 @@ interface ILeaveLockedArticle {
3101
3509
  isStacked: boolean;
3102
3510
  /**
3103
3511
  * The publication date of this version of the article.
3512
+ * @format date-time
3104
3513
  */
3105
3514
  lastUpdatedDate: string;
3106
3515
  /**
3107
3516
  * The newsroom that published the article.
3517
+ * @example "vg"
3108
3518
  */
3109
3519
  newsroom: string;
3110
3520
  /**
@@ -3129,20 +3539,35 @@ interface ILeaveLockedArticle {
3129
3539
  paywallType: "Paid" | "Metered" | "Login" | "Free" | "Dynamic";
3130
3540
  /**
3131
3541
  * The publication date of the article.
3542
+ * @format date-time
3132
3543
  */
3133
3544
  publicationDate: string;
3545
+ /**
3546
+ * The name of the company that sponsored the article. Omitted if the article was not sponsored.
3547
+ */
3548
+ sponsor?: string;
3134
3549
  /**
3135
3550
  * The title of the page.
3136
3551
  */
3137
3552
  title: string;
3553
+ /**
3554
+ * Url of the article top or when missing article main image.
3555
+ */
3556
+ topImageUrl?: string;
3138
3557
  /**
3139
3558
  * The type of article.
3140
3559
  */
3141
3560
  variant: "Article" | "LiveArticle" | "Special";
3142
3561
  /**
3143
3562
  * The version counter of the article.
3563
+ * @minimum 0
3144
3564
  */
3145
3565
  versionCounter: number;
3566
+ /**
3567
+ * The number of words in this version of the article.
3568
+ * @exclusiveMinimum 0
3569
+ */
3570
+ wordCount: number;
3146
3571
  };
3147
3572
  page: {
3148
3573
  content: IContent;
@@ -3153,6 +3578,7 @@ interface ILeaveLockedArticle {
3153
3578
  navigationType: "Navigate" | "Reload" | "BackForward" | "Prerender" | "Scroll";
3154
3579
  /**
3155
3580
  * The pageviewID.
3581
+ * @format uuid
3156
3582
  */
3157
3583
  pageviewId: string;
3158
3584
  referrer?: IPageRef;
@@ -3161,6 +3587,8 @@ interface ILeaveLockedArticle {
3161
3587
  provider: IProvider;
3162
3588
  /**
3163
3589
  * The schema of the event.
3590
+ * @format uri
3591
+ * @pattern ^https://tpaas-schemas.schibsted.media/.+\.json$
3164
3592
  */
3165
3593
  schema: string;
3166
3594
  session: ISession;
@@ -3171,12 +3599,15 @@ interface ILeaveLockedArticle {
3171
3599
  interface ILeaveLockedAudioPage {
3172
3600
  /**
3173
3601
  * The version of the TPaaS schemas catalog that this particular schema belongs to. Semver format.
3602
+ * @pattern ^(0|[1-9]\d*)\.(0|[1-9]\d*)\.(0|[1-9]\d*)$
3603
+ * @example "1.2.3"
3174
3604
  */
3175
3605
  catalogVersion: string;
3176
3606
  consents: IConsents;
3177
3607
  device: IDevice;
3178
3608
  /**
3179
3609
  * The unique identifier for the event.
3610
+ * @format uuid
3180
3611
  */
3181
3612
  eventId: string;
3182
3613
  /**
@@ -3225,6 +3656,7 @@ interface ILeaveLockedAudioPage {
3225
3656
  navigationType: "Navigate" | "Reload" | "BackForward" | "Prerender";
3226
3657
  /**
3227
3658
  * The pageviewID.
3659
+ * @format uuid
3228
3660
  */
3229
3661
  pageviewId: string;
3230
3662
  referrer?: IPageRef;
@@ -3233,6 +3665,8 @@ interface ILeaveLockedAudioPage {
3233
3665
  provider: IProvider;
3234
3666
  /**
3235
3667
  * URL to the JSON schema for this event.
3668
+ * @format uri
3669
+ * @pattern ^https://tpaas-schemas.schibsted.media/.+\.json$
3236
3670
  */
3237
3671
  schema: string;
3238
3672
  session: ISession;
@@ -3243,12 +3677,15 @@ interface ILeaveLockedAudioPage {
3243
3677
  interface ILeaveLockedVideoPage {
3244
3678
  /**
3245
3679
  * The version of the TPaaS schemas catalog that this particular schema belongs to. Semver format.
3680
+ * @pattern ^(0|[1-9]\d*)\.(0|[1-9]\d*)\.(0|[1-9]\d*)$
3681
+ * @example "1.2.3"
3246
3682
  */
3247
3683
  catalogVersion: string;
3248
3684
  consents: IConsents;
3249
3685
  device: IDevice;
3250
3686
  /**
3251
3687
  * The unique identifier for the event.
3688
+ * @format uuid
3252
3689
  */
3253
3690
  eventId: string;
3254
3691
  /**
@@ -3297,6 +3734,7 @@ interface ILeaveLockedVideoPage {
3297
3734
  navigationType: "Navigate" | "Reload" | "BackForward" | "Prerender";
3298
3735
  /**
3299
3736
  * The pageviewID.
3737
+ * @format uuid
3300
3738
  */
3301
3739
  pageviewId: string;
3302
3740
  referrer?: IPageRef;
@@ -3305,6 +3743,8 @@ interface ILeaveLockedVideoPage {
3305
3743
  provider: IProvider;
3306
3744
  /**
3307
3745
  * URL to the JSON schema for this event.
3746
+ * @format uri
3747
+ * @pattern ^https://tpaas-schemas.schibsted.media/.+\.json$
3308
3748
  */
3309
3749
  schema: string;
3310
3750
  session: ISession;
@@ -3315,12 +3755,15 @@ interface ILeaveLockedVideoPage {
3315
3755
  interface ILeavePage {
3316
3756
  /**
3317
3757
  * The version of the TPaaS schemas catalog that this particular schema belongs to. Semver format.
3758
+ * @pattern ^(0|[1-9]\d*)\.(0|[1-9]\d*)\.(0|[1-9]\d*)$
3759
+ * @example "1.2.3"
3318
3760
  */
3319
3761
  catalogVersion: string;
3320
3762
  consents: IConsents;
3321
3763
  device: IDevice;
3322
3764
  /**
3323
3765
  * Event ID
3766
+ * @format uuid
3324
3767
  */
3325
3768
  eventId: string;
3326
3769
  /**
@@ -3329,6 +3772,7 @@ interface ILeavePage {
3329
3772
  eventType: "Leave";
3330
3773
  experiments?: IExperiments;
3331
3774
  leave: ILeave;
3775
+ metrics?: IMetrics;
3332
3776
  object: {
3333
3777
  /**
3334
3778
  * The location of the page in the brand’s page hierarchy.
@@ -3354,6 +3798,7 @@ interface ILeavePage {
3354
3798
  navigationType: "Navigate" | "Reload" | "BackForward" | "Prerender";
3355
3799
  /**
3356
3800
  * The pageviewID.
3801
+ * @format uuid
3357
3802
  */
3358
3803
  pageviewId: string;
3359
3804
  referrer?: IPageRef;
@@ -3362,6 +3807,8 @@ interface ILeavePage {
3362
3807
  provider: IProvider;
3363
3808
  /**
3364
3809
  * The schema of the event.
3810
+ * @format uri
3811
+ * @pattern ^https://tpaas-schemas.schibsted.media/.+\.json$
3365
3812
  */
3366
3813
  schema: string;
3367
3814
  session: ISession;
@@ -3384,6 +3831,7 @@ interface ISports {
3384
3831
  competitionId?: string;
3385
3832
  /**
3386
3833
  * Name of the competition.
3834
+ * @example "Premier League"
3387
3835
  */
3388
3836
  competitionName?: string;
3389
3837
  /**
@@ -3392,6 +3840,7 @@ interface ISports {
3392
3840
  competitionSeasonId?: number;
3393
3841
  /**
3394
3842
  * Name of the competition season.
3843
+ * @example "Premier League 2025/2026"
3395
3844
  */
3396
3845
  competitionSeasonName?: string;
3397
3846
  /**
@@ -3412,10 +3861,12 @@ interface ISports {
3412
3861
  sportEventCoverage?: "Manual" | "SemiAutomatic" | "Automatic" | "AI";
3413
3862
  /**
3414
3863
  * Date (yyyy-mm-dd) of the sport event.
3864
+ * @format date
3415
3865
  */
3416
3866
  sportEventDate?: string;
3417
3867
  /**
3418
3868
  * Timestamp of when the sport event starts.
3869
+ * @format date-time
3419
3870
  */
3420
3871
  sportEventDatetime?: string;
3421
3872
  /**
@@ -3448,6 +3899,7 @@ interface ISports {
3448
3899
  teamId?: number;
3449
3900
  /**
3450
3901
  * Name of the team.
3902
+ * @example "Manchester United"
3451
3903
  */
3452
3904
  teamName?: string;
3453
3905
  /**
@@ -3478,12 +3930,15 @@ interface ISports {
3478
3930
  interface ILeaveSportsPage {
3479
3931
  /**
3480
3932
  * The version of the TPaaS schemas catalog that this particular schema belongs to. Semver format.
3933
+ * @pattern ^(0|[1-9]\d*)\.(0|[1-9]\d*)\.(0|[1-9]\d*)$
3934
+ * @example "1.2.3"
3481
3935
  */
3482
3936
  catalogVersion: string;
3483
3937
  consents: IConsents;
3484
3938
  device: IDevice;
3485
3939
  /**
3486
3940
  * The unique identifier for the event.
3941
+ * @format uuid
3487
3942
  */
3488
3943
  eventId: string;
3489
3944
  /**
@@ -3525,6 +3980,7 @@ interface ILeaveSportsPage {
3525
3980
  navigationType: "Navigate" | "Reload" | "BackForward" | "Prerender";
3526
3981
  /**
3527
3982
  * The pageviewID.
3983
+ * @format uuid
3528
3984
  */
3529
3985
  pageviewId: string;
3530
3986
  referrer?: IPageRef;
@@ -3533,6 +3989,8 @@ interface ILeaveSportsPage {
3533
3989
  provider: IProvider;
3534
3990
  /**
3535
3991
  * URL to the JSON schema for this event.
3992
+ * @format uri
3993
+ * @pattern ^https://tpaas-schemas.schibsted.media/.+\.json$
3536
3994
  */
3537
3995
  schema: string;
3538
3996
  session: ISession;
@@ -3543,6 +4001,7 @@ interface ILeaveSportsPage {
3543
4001
  interface ILeaveStories {
3544
4002
  /**
3545
4003
  * 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'.
4004
+ * @exclusiveMinimum 0
3546
4005
  */
3547
4006
  activityDurationMs: number;
3548
4007
  /**
@@ -3551,6 +4010,7 @@ interface ILeaveStories {
3551
4010
  adCount: number;
3552
4011
  /**
3553
4012
  * The total time the user spent on the page in milliseconds.
4013
+ * @exclusiveMinimum 0
3554
4014
  */
3555
4015
  durationMs: number;
3556
4016
  /**
@@ -3559,6 +4019,8 @@ interface ILeaveStories {
3559
4019
  maxPlaylistPosition: number;
3560
4020
  /**
3561
4021
  * How far the user came into the playlist shown in percentage.
4022
+ * @minimum 0
4023
+ * @maximum 1
3562
4024
  */
3563
4025
  playlistPositionPercentage: number;
3564
4026
  /**
@@ -3573,12 +4035,15 @@ interface ILeaveStories {
3573
4035
  interface ILeaveVideoPage {
3574
4036
  /**
3575
4037
  * The version of the TPaaS schemas catalog that this particular schema belongs to. Semver format.
4038
+ * @pattern ^(0|[1-9]\d*)\.(0|[1-9]\d*)\.(0|[1-9]\d*)$
4039
+ * @example "1.2.3"
3576
4040
  */
3577
4041
  catalogVersion: string;
3578
4042
  consents: IConsents;
3579
4043
  device: IDevice;
3580
4044
  /**
3581
4045
  * The unique identifier for the event.
4046
+ * @format uuid
3582
4047
  */
3583
4048
  eventId: string;
3584
4049
  /**
@@ -3620,6 +4085,7 @@ interface ILeaveVideoPage {
3620
4085
  navigationType: "Navigate" | "Reload" | "BackForward" | "Prerender";
3621
4086
  /**
3622
4087
  * The pageviewID.
4088
+ * @format uuid
3623
4089
  */
3624
4090
  pageviewId: string;
3625
4091
  referrer?: IPageRef;
@@ -3628,6 +4094,8 @@ interface ILeaveVideoPage {
3628
4094
  provider: IProvider;
3629
4095
  /**
3630
4096
  * URL to the JSON schema for this event.
4097
+ * @format uri
4098
+ * @pattern ^https://tpaas-schemas.schibsted.media/.+\.json$
3631
4099
  */
3632
4100
  schema: string;
3633
4101
  session: ISession;
@@ -3638,12 +4106,15 @@ interface ILeaveVideoPage {
3638
4106
  interface ILeaveWeather {
3639
4107
  /**
3640
4108
  * The version of the TPaaS schemas catalog that this particular schema belongs to. Semver format.
4109
+ * @pattern ^(0|[1-9]\d*)\.(0|[1-9]\d*)\.(0|[1-9]\d*)$
4110
+ * @example "1.2.3"
3641
4111
  */
3642
4112
  catalogVersion: string;
3643
4113
  consents: IConsents;
3644
4114
  device: IDevice;
3645
4115
  /**
3646
4116
  * Event ID
4117
+ * @format uuid
3647
4118
  */
3648
4119
  eventId: string;
3649
4120
  /**
@@ -3654,14 +4125,55 @@ interface ILeaveWeather {
3654
4125
  leave: ILeave;
3655
4126
  metrics?: IMetrics;
3656
4127
  object: {
4128
+ /**
4129
+ * The editorial category of this forecast.
4130
+ */
4131
+ category?: string;
4132
+ /**
4133
+ * The country within which the forecast is done.
4134
+ */
4135
+ country: string;
4136
+ /**
4137
+ * The location within the region covered by this forecast.
4138
+ */
4139
+ location?: string;
4140
+ /**
4141
+ * The unique ID of this page.
4142
+ */
4143
+ objectId: string;
4144
+ /**
4145
+ * The unique SDRN of this page.
4146
+ */
4147
+ objectSdrn: string;
3657
4148
  /**
3658
4149
  * The type of the schema.
3659
4150
  */
3660
4151
  objectType: "Weather";
4152
+ /**
4153
+ * The region covered by the forecast.
4154
+ */
4155
+ region: string;
4156
+ tags?: string[];
4157
+ };
4158
+ page: {
4159
+ info: IPageRef;
4160
+ /**
4161
+ * The browser navigation that got the user to the current page.
4162
+ */
4163
+ navigationType: "Navigate" | "Reload" | "BackForward" | "Prerender";
4164
+ /**
4165
+ * The pageviewID.
4166
+ * @format uuid
4167
+ */
4168
+ pageviewId: string;
4169
+ referrer?: IPageRef;
4170
+ utm?: IUtmTags;
3661
4171
  };
3662
4172
  provider: IProvider;
3663
4173
  /**
3664
4174
  * The schema of the event.
4175
+ * @format uri
4176
+ * @pattern ^https://tpaas-schemas.schibsted.media/.+\.json$
3665
4177
  */
3666
4178
  schema: string;
3667
4179
  time: ITime;
@@ -3671,6 +4183,8 @@ interface ILeaveWeather {
3671
4183
  interface IPurchaseSubscription {
3672
4184
  /**
3673
4185
  * The version of the TPaaS schemas catalog that this particular schema belongs to. Semver format.
4186
+ * @pattern ^(0|[1-9]\d*)\.(0|[1-9]\d*)\.(0|[1-9]\d*)$
4187
+ * @example "1.2.3"
3674
4188
  */
3675
4189
  catalogVersion: string;
3676
4190
  consents?: IConsents;
@@ -3684,11 +4198,14 @@ interface IPurchaseSubscription {
3684
4198
  deviceType: "Desktop" | "Mobile" | "Tablet" | "SmartTv" | "Other";
3685
4199
  /**
3686
4200
  * The environmentId.
4201
+ * @pattern ^[0-9a-fA-F-]+$
4202
+ * @example "42401e1f-7e04-4b73-8bed-1ceffc0ed8cc"
3687
4203
  */
3688
4204
  environmentId?: string;
3689
4205
  };
3690
4206
  /**
3691
4207
  * The unique identifier for the event.
4208
+ * @format uuid
3692
4209
  */
3693
4210
  eventId: string;
3694
4211
  /**
@@ -3715,6 +4232,7 @@ interface IPurchaseSubscription {
3715
4232
  fullPrice: number;
3716
4233
  /**
3717
4234
  * The unique identifier of the subscription, which corresponds to subscription number in URS.
4235
+ * @pattern ^sdrn:[a-zA-Z0-9-]+:subscription:[a-zA-Z0-9_-]+$
3718
4236
  */
3719
4237
  objectSdrn: string;
3720
4238
  /**
@@ -3776,11 +4294,14 @@ interface IPurchaseSubscription {
3776
4294
  utm?: IUtmTags;
3777
4295
  /**
3778
4296
  * 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.
4297
+ * @example "079bc17a-4ee8-42ab-a29f-2fbba4cd403f"
3779
4298
  */
3780
4299
  xDomainId?: string;
3781
4300
  };
3782
4301
  /**
3783
4302
  * URL to the JSON schema for this event.
4303
+ * @format uri
4304
+ * @pattern ^https://tpaas-schemas.schibsted.media/.+\.json$
3784
4305
  */
3785
4306
  schema: string;
3786
4307
  time: ITime;
@@ -3789,18 +4310,27 @@ interface IPurchaseSubscription {
3789
4310
  }
3790
4311
  interface ILocation {
3791
4312
  accuracy: number;
4313
+ /**
4314
+ * @pattern ^-?\d+(\.\d{1,3})?$
4315
+ */
3792
4316
  latitude: string;
4317
+ /**
4318
+ * @pattern ^-?\d+(\.\d{1,3})?$
4319
+ */
3793
4320
  longitude: string;
3794
4321
  }
3795
4322
  interface IViewArticle {
3796
4323
  /**
3797
4324
  * The version of the TPaaS schemas catalog that this particular schema belongs to. Semver format.
4325
+ * @pattern ^(0|[1-9]\d*)\.(0|[1-9]\d*)\.(0|[1-9]\d*)$
4326
+ * @example "1.2.3"
3798
4327
  */
3799
4328
  catalogVersion: string;
3800
4329
  consents: IConsents;
3801
4330
  device: IDevice;
3802
4331
  /**
3803
4332
  * Event ID
4333
+ * @format uuid
3804
4334
  */
3805
4335
  eventId: string;
3806
4336
  /**
@@ -3809,30 +4339,25 @@ interface IViewArticle {
3809
4339
  eventType: "View";
3810
4340
  experiments?: IExperiments;
3811
4341
  location?: ILocation;
4342
+ metrics?: IMetrics;
3812
4343
  object: {
3813
4344
  authors: string[];
3814
4345
  /**
3815
4346
  * The editorial category of this article.
3816
4347
  */
3817
4348
  category: string;
3818
- /**
3819
- * The hotness value that was set in the CMS.
3820
- */
3821
- hotness: number;
3822
4349
  /**
3823
4350
  * True if scrolling up/down transitions to the next or previous article.
3824
4351
  */
3825
4352
  isStacked: boolean;
3826
4353
  /**
3827
4354
  * The publication date of this version of the article.
4355
+ * @format date-time
3828
4356
  */
3829
4357
  lastUpdatedDate: string;
3830
- /**
3831
- * The lifetime value that was set in the CMS.
3832
- */
3833
- lifetime: number;
3834
4358
  /**
3835
4359
  * The newsroom that published the article.
4360
+ * @example "vg"
3836
4361
  */
3837
4362
  newsroom: string;
3838
4363
  /**
@@ -3849,6 +4374,7 @@ interface IViewArticle {
3849
4374
  objectType: "Article";
3850
4375
  /**
3851
4376
  * The publication date of the article.
4377
+ * @format date-time
3852
4378
  */
3853
4379
  publicationDate: string;
3854
4380
  /**
@@ -3859,16 +4385,22 @@ interface IViewArticle {
3859
4385
  * The title of the page.
3860
4386
  */
3861
4387
  title: string;
4388
+ /**
4389
+ * Url of the article top or when missing article main image.
4390
+ */
4391
+ topImageUrl?: string;
3862
4392
  /**
3863
4393
  * The type of article.
3864
4394
  */
3865
4395
  variant: "Article" | "LiveArticle" | "Special";
3866
4396
  /**
3867
4397
  * The version counter of the article.
4398
+ * @minimum 0
3868
4399
  */
3869
4400
  versionCounter: number;
3870
4401
  /**
3871
4402
  * The number of words in this version of the article.
4403
+ * @exclusiveMinimum 0
3872
4404
  */
3873
4405
  wordCount: number;
3874
4406
  };
@@ -3881,6 +4413,7 @@ interface IViewArticle {
3881
4413
  navigationType: "Navigate" | "Reload" | "BackForward" | "Prerender" | "Scroll";
3882
4414
  /**
3883
4415
  * The pageviewID.
4416
+ * @format uuid
3884
4417
  */
3885
4418
  pageviewId: string;
3886
4419
  referrer?: IPageRef;
@@ -3889,6 +4422,8 @@ interface IViewArticle {
3889
4422
  provider: IProvider;
3890
4423
  /**
3891
4424
  * The schema of the event.
4425
+ * @format uri
4426
+ * @pattern ^https://tpaas-schemas.schibsted.media/.+\.json$
3892
4427
  */
3893
4428
  schema: string;
3894
4429
  session: ISession;
@@ -3899,12 +4434,15 @@ interface IViewArticle {
3899
4434
  interface IViewAudioPage {
3900
4435
  /**
3901
4436
  * The version of the TPaaS schemas catalog that this particular schema belongs to. Semver format.
4437
+ * @pattern ^(0|[1-9]\d*)\.(0|[1-9]\d*)\.(0|[1-9]\d*)$
4438
+ * @example "1.2.3"
3902
4439
  */
3903
4440
  catalogVersion: string;
3904
4441
  consents: IConsents;
3905
4442
  device: IDevice;
3906
4443
  /**
3907
4444
  * The unique identifier for the event.
4445
+ * @format uuid
3908
4446
  */
3909
4447
  eventId: string;
3910
4448
  /**
@@ -3944,6 +4482,7 @@ interface IViewAudioPage {
3944
4482
  navigationType: "Navigate" | "Reload" | "BackForward" | "Prerender";
3945
4483
  /**
3946
4484
  * The pageviewID.
4485
+ * @format uuid
3947
4486
  */
3948
4487
  pageviewId: string;
3949
4488
  referrer?: IPageRef;
@@ -3952,6 +4491,8 @@ interface IViewAudioPage {
3952
4491
  provider: IProvider;
3953
4492
  /**
3954
4493
  * URL to the JSON schema for this event.
4494
+ * @format uri
4495
+ * @pattern ^https://tpaas-schemas.schibsted.media/.+\.json$
3955
4496
  */
3956
4497
  schema: string;
3957
4498
  session: ISession;
@@ -3962,12 +4503,15 @@ interface IViewAudioPage {
3962
4503
  interface IViewError {
3963
4504
  /**
3964
4505
  * The version of the TPaaS schemas catalog that this particular schema belongs to. Semver format.
4506
+ * @pattern ^(0|[1-9]\d*)\.(0|[1-9]\d*)\.(0|[1-9]\d*)$
4507
+ * @example "1.2.3"
3965
4508
  */
3966
4509
  catalogVersion: string;
3967
4510
  consents: IConsents;
3968
4511
  device: IDevice;
3969
4512
  /**
3970
4513
  * Event ID
4514
+ * @format uuid
3971
4515
  */
3972
4516
  eventId: string;
3973
4517
  eventType: "View";
@@ -3979,10 +4523,12 @@ interface IViewError {
3979
4523
  category?: string;
3980
4524
  /**
3981
4525
  * The response code of the page.
4526
+ * @example 418
3982
4527
  */
3983
4528
  errorCode: number;
3984
4529
  /**
3985
4530
  * The error message.
4531
+ * @example "I'm a teapot"
3986
4532
  */
3987
4533
  errorMessage: string;
3988
4534
  /**
@@ -4010,6 +4556,7 @@ interface IViewError {
4010
4556
  navigationType: "Navigate" | "Reload" | "BackForward" | "Prerender" | "Scroll";
4011
4557
  /**
4012
4558
  * The pageviewID.
4559
+ * @format uuid
4013
4560
  */
4014
4561
  pageviewId: string;
4015
4562
  referrer?: IPageRef;
@@ -4018,6 +4565,8 @@ interface IViewError {
4018
4565
  provider: IProvider;
4019
4566
  /**
4020
4567
  * The schema of the event.
4568
+ * @format uri
4569
+ * @pattern ^https://tpaas-schemas.schibsted.media/.+\.json$
4021
4570
  */
4022
4571
  schema: string;
4023
4572
  session: ISession;
@@ -4028,12 +4577,15 @@ interface IViewError {
4028
4577
  interface IViewFrontpage {
4029
4578
  /**
4030
4579
  * The version of the TPaaS schemas catalog that this particular schema belongs to. Semver format.
4580
+ * @pattern ^(0|[1-9]\d*)\.(0|[1-9]\d*)\.(0|[1-9]\d*)$
4581
+ * @example "1.2.3"
4031
4582
  */
4032
4583
  catalogVersion: string;
4033
4584
  consents: IConsents;
4034
4585
  device: IDevice;
4035
4586
  /**
4036
4587
  * Event ID
4588
+ * @format uuid
4037
4589
  */
4038
4590
  eventId: string;
4039
4591
  /**
@@ -4044,10 +4596,6 @@ interface IViewFrontpage {
4044
4596
  location?: ILocation;
4045
4597
  metrics?: IMetrics;
4046
4598
  object: {
4047
- /**
4048
- * The location of the page in the brand’s page hierarchy.
4049
- */
4050
- category?: string;
4051
4599
  /**
4052
4600
  * The engine producing this listing. Use “editorial” for manually curated lists.
4053
4601
  */
@@ -4058,6 +4606,7 @@ interface IViewFrontpage {
4058
4606
  isInfinite: boolean;
4059
4607
  /**
4060
4608
  * The total number of items in the listing, or -1 if unknown.
4609
+ * @minimum -1
4061
4610
  */
4062
4611
  itemsTotal: number;
4063
4612
  /**
@@ -4072,10 +4621,6 @@ interface IViewFrontpage {
4072
4621
  * The type of this page.
4073
4622
  */
4074
4623
  objectType: "Frontpage";
4075
- /**
4076
- * Indicates how results are sorted. Use “editorial” for manually curated lists.
4077
- */
4078
- sortingMethod: "Time" | "Editorial" | "Relevance" | "Alphabetical";
4079
4624
  /**
4080
4625
  * The title of the page.
4081
4626
  */
@@ -4089,6 +4634,7 @@ interface IViewFrontpage {
4089
4634
  navigationType: "Navigate" | "Reload" | "BackForward" | "Prerender";
4090
4635
  /**
4091
4636
  * The pageviewID.
4637
+ * @format uuid
4092
4638
  */
4093
4639
  pageviewId: string;
4094
4640
  referrer?: IPageRef;
@@ -4097,6 +4643,8 @@ interface IViewFrontpage {
4097
4643
  provider: IProvider;
4098
4644
  /**
4099
4645
  * The schema of the event.
4646
+ * @format uri
4647
+ * @pattern ^https://tpaas-schemas.schibsted.media/.+\.json$
4100
4648
  */
4101
4649
  schema: string;
4102
4650
  session: ISession;
@@ -4107,12 +4655,15 @@ interface IViewFrontpage {
4107
4655
  interface IViewHealthPage {
4108
4656
  /**
4109
4657
  * The version of the TPaaS schemas catalog that this particular schema belongs to. Semver format.
4658
+ * @pattern ^(0|[1-9]\d*)\.(0|[1-9]\d*)\.(0|[1-9]\d*)$
4659
+ * @example "1.2.3"
4110
4660
  */
4111
4661
  catalogVersion: string;
4112
4662
  consents: IConsents;
4113
4663
  device: IDevice;
4114
4664
  /**
4115
4665
  * The unique identifier for the event.
4666
+ * @format uuid
4116
4667
  */
4117
4668
  eventId: string;
4118
4669
  /**
@@ -4127,20 +4678,24 @@ interface IViewHealthPage {
4127
4678
  object: {
4128
4679
  /**
4129
4680
  * Used to pass the same information across events
4681
+ * @example "breakfast"
4130
4682
  */
4131
4683
  category?: string;
4132
4684
  /**
4133
4685
  * Freeform custom properties with dynamic field names for health-specific data
4686
+ * @additionalProperties true
4134
4687
  */
4135
4688
  custom?: {
4136
4689
  [k: string]: unknown;
4137
4690
  };
4138
4691
  /**
4139
4692
  * Description: The user intent or purpose of this event
4693
+ * @example "view logged foodstuff"
4140
4694
  */
4141
4695
  intent?: string;
4142
4696
  /**
4143
4697
  * The name of page
4698
+ * @example "Logbook"
4144
4699
  */
4145
4700
  name: string;
4146
4701
  /**
@@ -4161,6 +4716,7 @@ interface IViewHealthPage {
4161
4716
  tags?: string[];
4162
4717
  /**
4163
4718
  * The title of the health page
4719
+ * @example "Be well med Wellobe: Vecka 4"
4164
4720
  */
4165
4721
  title?: string;
4166
4722
  };
@@ -4176,6 +4732,7 @@ interface IViewHealthPage {
4176
4732
  navigationType: "Navigate" | "Reload" | "BackForward" | "Prerender";
4177
4733
  /**
4178
4734
  * The pageviewID.
4735
+ * @format uuid
4179
4736
  */
4180
4737
  pageviewId: string;
4181
4738
  referrer?: IPageRef;
@@ -4184,6 +4741,8 @@ interface IViewHealthPage {
4184
4741
  provider: IProvider;
4185
4742
  /**
4186
4743
  * URL to the JSON schema for this event.
4744
+ * @format uri
4745
+ * @pattern ^https://tpaas-schemas.schibsted.media/.+\.json$
4187
4746
  */
4188
4747
  schema: string;
4189
4748
  session: ISession;
@@ -4194,12 +4753,15 @@ interface IViewHealthPage {
4194
4753
  interface IViewLandingpage {
4195
4754
  /**
4196
4755
  * The version of the TPaaS schemas catalog that this particular schema belongs to. Semver format.
4756
+ * @pattern ^(0|[1-9]\d*)\.(0|[1-9]\d*)\.(0|[1-9]\d*)$
4757
+ * @example "1.2.3"
4197
4758
  */
4198
4759
  catalogVersion: string;
4199
4760
  consents: IConsents;
4200
4761
  device: IDevice;
4201
4762
  /**
4202
4763
  * Event ID
4764
+ * @format uuid
4203
4765
  */
4204
4766
  eventId: string;
4205
4767
  eventType: "View";
@@ -4230,6 +4792,7 @@ interface IViewLandingpage {
4230
4792
  navigationType: "Navigate" | "Reload" | "BackForward" | "Prerender";
4231
4793
  /**
4232
4794
  * The pageviewID.
4795
+ * @format uuid
4233
4796
  */
4234
4797
  pageviewId: string;
4235
4798
  referrer?: IPageRef;
@@ -4238,6 +4801,8 @@ interface IViewLandingpage {
4238
4801
  provider: IProvider;
4239
4802
  /**
4240
4803
  * The schema of the event.
4804
+ * @format uri
4805
+ * @pattern ^https://tpaas-schemas.schibsted.media/.+\.json$
4241
4806
  */
4242
4807
  schema: string;
4243
4808
  session: ISession;
@@ -4248,19 +4813,24 @@ interface IViewLandingpage {
4248
4813
  interface IViewListing {
4249
4814
  /**
4250
4815
  * The version of the TPaaS schemas catalog that this particular schema belongs to. Semver format.
4816
+ * @pattern ^(0|[1-9]\d*)\.(0|[1-9]\d*)\.(0|[1-9]\d*)$
4817
+ * @example "1.2.3"
4251
4818
  */
4252
4819
  catalogVersion: string;
4253
4820
  consents: IConsents;
4254
4821
  device: IDevice;
4255
4822
  /**
4256
4823
  * Event ID
4824
+ * @format uuid
4257
4825
  */
4258
4826
  eventId: string;
4259
4827
  eventType: "View";
4260
4828
  experiments?: IExperiments;
4829
+ metrics?: IMetrics;
4261
4830
  object: {
4262
4831
  /**
4263
4832
  * The location of the page in the brand’s page hierarchy.
4833
+ * @pattern ^[a-z0-9-]+(>[a-z0-9-]+)*$
4264
4834
  */
4265
4835
  category?: string;
4266
4836
  /**
@@ -4273,12 +4843,13 @@ interface IViewListing {
4273
4843
  isInfinite: boolean;
4274
4844
  /**
4275
4845
  * The total number of items in the listing, or -1 if unknown.
4846
+ * @minimum -1
4276
4847
  */
4277
4848
  itemsTotal: number;
4278
4849
  /**
4279
4850
  * The type of listing page, e.g. 'tag', 'section' etc.
4280
4851
  */
4281
- listingType: string;
4852
+ listingType: "Tag" | "Story" | "Section" | "Search" | "Author" | "Other";
4282
4853
  /**
4283
4854
  * The unique ID of this page.
4284
4855
  */
@@ -4293,6 +4864,7 @@ interface IViewListing {
4293
4864
  objectType: "Listing";
4294
4865
  /**
4295
4866
  * Current pagination index. Zero if results are not paged.
4867
+ * @minimum 0
4296
4868
  */
4297
4869
  pageNumber: number;
4298
4870
  /**
@@ -4312,6 +4884,7 @@ interface IViewListing {
4312
4884
  navigationType: "Navigate" | "Reload" | "BackForward" | "Prerender";
4313
4885
  /**
4314
4886
  * The pageviewID.
4887
+ * @format uuid
4315
4888
  */
4316
4889
  pageviewId: string;
4317
4890
  referrer?: IPageRef;
@@ -4320,6 +4893,8 @@ interface IViewListing {
4320
4893
  provider: IProvider;
4321
4894
  /**
4322
4895
  * The schema of the event.
4896
+ * @format uri
4897
+ * @pattern ^https://tpaas-schemas.schibsted.media/.+\.json$
4323
4898
  */
4324
4899
  schema: string;
4325
4900
  session: ISession;
@@ -4330,12 +4905,15 @@ interface IViewListing {
4330
4905
  interface IViewLockedArticle {
4331
4906
  /**
4332
4907
  * The version of the TPaaS schemas catalog that this particular schema belongs to. Semver format.
4908
+ * @pattern ^(0|[1-9]\d*)\.(0|[1-9]\d*)\.(0|[1-9]\d*)$
4909
+ * @example "1.2.3"
4333
4910
  */
4334
4911
  catalogVersion: string;
4335
4912
  consents: IConsents;
4336
4913
  device: IDevice;
4337
4914
  /**
4338
4915
  * Event ID
4916
+ * @format uuid
4339
4917
  */
4340
4918
  eventId: string;
4341
4919
  /**
@@ -4343,30 +4921,26 @@ interface IViewLockedArticle {
4343
4921
  */
4344
4922
  eventType: "View";
4345
4923
  experiments?: IExperiments;
4924
+ location?: ILocation;
4925
+ metrics?: IMetrics;
4346
4926
  object: {
4347
4927
  authors: string[];
4348
4928
  /**
4349
4929
  * The editorial category of this article.
4350
4930
  */
4351
4931
  category: string;
4352
- /**
4353
- * The hotness value that was set in the CMS.
4354
- */
4355
- hotness: number;
4356
4932
  /**
4357
4933
  * True if scrolling up/down transitions to the next or previous article.
4358
4934
  */
4359
4935
  isStacked: boolean;
4360
4936
  /**
4361
4937
  * The publication date of this version of the article.
4938
+ * @format date-time
4362
4939
  */
4363
4940
  lastUpdatedDate: string;
4364
- /**
4365
- * The lifetime value that was set in the CMS.
4366
- */
4367
- lifetime: number;
4368
4941
  /**
4369
4942
  * The newsroom that published the article.
4943
+ * @example "vg"
4370
4944
  */
4371
4945
  newsroom: string;
4372
4946
  /**
@@ -4391,6 +4965,7 @@ interface IViewLockedArticle {
4391
4965
  paywallType: "Paid" | "Metered" | "Login" | "Free" | "Dynamic";
4392
4966
  /**
4393
4967
  * The publication date of the article.
4968
+ * @format date-time
4394
4969
  */
4395
4970
  publicationDate: string;
4396
4971
  /**
@@ -4401,16 +4976,22 @@ interface IViewLockedArticle {
4401
4976
  * The title of the page.
4402
4977
  */
4403
4978
  title: string;
4979
+ /**
4980
+ * Url of the article top or when missing article main image.
4981
+ */
4982
+ topImageUrl?: string;
4404
4983
  /**
4405
4984
  * The type of article.
4406
4985
  */
4407
4986
  variant: "Article" | "LiveArticle" | "Special";
4408
4987
  /**
4409
4988
  * The version counter of the article.
4989
+ * @minimum 0
4410
4990
  */
4411
4991
  versionCounter: number;
4412
4992
  /**
4413
4993
  * The number of words in this version of the article.
4994
+ * @exclusiveMinimum 0
4414
4995
  */
4415
4996
  wordCount: number;
4416
4997
  };
@@ -4423,6 +5004,7 @@ interface IViewLockedArticle {
4423
5004
  navigationType: "Navigate" | "Reload" | "BackForward" | "Prerender" | "Scroll";
4424
5005
  /**
4425
5006
  * The pageviewID.
5007
+ * @format uuid
4426
5008
  */
4427
5009
  pageviewId: string;
4428
5010
  referrer?: IPageRef;
@@ -4431,6 +5013,8 @@ interface IViewLockedArticle {
4431
5013
  provider: IProvider;
4432
5014
  /**
4433
5015
  * The schema of the event.
5016
+ * @format uri
5017
+ * @pattern ^https://tpaas-schemas.schibsted.media/.+\.json$
4434
5018
  */
4435
5019
  schema: string;
4436
5020
  session: ISession;
@@ -4441,12 +5025,15 @@ interface IViewLockedArticle {
4441
5025
  interface IViewLockedAudioPage {
4442
5026
  /**
4443
5027
  * The version of the TPaaS schemas catalog that this particular schema belongs to. Semver format.
5028
+ * @pattern ^(0|[1-9]\d*)\.(0|[1-9]\d*)\.(0|[1-9]\d*)$
5029
+ * @example "1.2.3"
4444
5030
  */
4445
5031
  catalogVersion: string;
4446
5032
  consents: IConsents;
4447
5033
  device: IDevice;
4448
5034
  /**
4449
5035
  * The unique identifier for the event.
5036
+ * @format uuid
4450
5037
  */
4451
5038
  eventId: string;
4452
5039
  /**
@@ -4494,6 +5081,7 @@ interface IViewLockedAudioPage {
4494
5081
  navigationType: "Navigate" | "Reload" | "BackForward" | "Prerender";
4495
5082
  /**
4496
5083
  * The pageviewID.
5084
+ * @format uuid
4497
5085
  */
4498
5086
  pageviewId: string;
4499
5087
  referrer?: IPageRef;
@@ -4502,6 +5090,8 @@ interface IViewLockedAudioPage {
4502
5090
  provider: IProvider;
4503
5091
  /**
4504
5092
  * URL to the JSON schema for this event.
5093
+ * @format uri
5094
+ * @pattern ^https://tpaas-schemas.schibsted.media/.+\.json$
4505
5095
  */
4506
5096
  schema: string;
4507
5097
  session: ISession;
@@ -4512,12 +5102,15 @@ interface IViewLockedAudioPage {
4512
5102
  interface IViewLockedVideoPage {
4513
5103
  /**
4514
5104
  * The version of the TPaaS schemas catalog that this particular schema belongs to. Semver format.
5105
+ * @pattern ^(0|[1-9]\d*)\.(0|[1-9]\d*)\.(0|[1-9]\d*)$
5106
+ * @example "1.2.3"
4515
5107
  */
4516
5108
  catalogVersion: string;
4517
5109
  consents: IConsents;
4518
5110
  device: IDevice;
4519
5111
  /**
4520
5112
  * The unique identifier for the event.
5113
+ * @format uuid
4521
5114
  */
4522
5115
  eventId: string;
4523
5116
  /**
@@ -4565,6 +5158,7 @@ interface IViewLockedVideoPage {
4565
5158
  navigationType: "Navigate" | "Reload" | "BackForward" | "Prerender";
4566
5159
  /**
4567
5160
  * The pageviewID.
5161
+ * @format uuid
4568
5162
  */
4569
5163
  pageviewId: string;
4570
5164
  referrer?: IPageRef;
@@ -4573,6 +5167,8 @@ interface IViewLockedVideoPage {
4573
5167
  provider: IProvider;
4574
5168
  /**
4575
5169
  * URL to the JSON schema for this event.
5170
+ * @format uri
5171
+ * @pattern ^https://tpaas-schemas.schibsted.media/.+\.json$
4576
5172
  */
4577
5173
  schema: string;
4578
5174
  session: ISession;
@@ -4583,12 +5179,15 @@ interface IViewLockedVideoPage {
4583
5179
  interface IViewPage {
4584
5180
  /**
4585
5181
  * The version of the TPaaS schemas catalog that this particular schema belongs to. Semver format.
5182
+ * @pattern ^(0|[1-9]\d*)\.(0|[1-9]\d*)\.(0|[1-9]\d*)$
5183
+ * @example "1.2.3"
4586
5184
  */
4587
5185
  catalogVersion: string;
4588
5186
  consents: IConsents;
4589
5187
  device: IDevice;
4590
5188
  /**
4591
5189
  * Event ID
5190
+ * @format uuid
4592
5191
  */
4593
5192
  eventId: string;
4594
5193
  /**
@@ -4628,6 +5227,7 @@ interface IViewPage {
4628
5227
  navigationType: "Navigate" | "Reload" | "BackForward" | "Prerender";
4629
5228
  /**
4630
5229
  * The pageviewID.
5230
+ * @format uuid
4631
5231
  */
4632
5232
  pageviewId: string;
4633
5233
  referrer?: IPageRef;
@@ -4636,6 +5236,8 @@ interface IViewPage {
4636
5236
  provider: IProvider;
4637
5237
  /**
4638
5238
  * The schema of the event.
5239
+ * @format uri
5240
+ * @pattern ^https://tpaas-schemas.schibsted.media/.+\.json$
4639
5241
  */
4640
5242
  schema: string;
4641
5243
  session: ISession;
@@ -4646,12 +5248,15 @@ interface IViewPage {
4646
5248
  interface IViewSportsPage {
4647
5249
  /**
4648
5250
  * The version of the TPaaS schemas catalog that this particular schema belongs to. Semver format.
5251
+ * @pattern ^(0|[1-9]\d*)\.(0|[1-9]\d*)\.(0|[1-9]\d*)$
5252
+ * @example "1.2.3"
4649
5253
  */
4650
5254
  catalogVersion: string;
4651
5255
  consents: IConsents;
4652
5256
  device: IDevice;
4653
5257
  /**
4654
5258
  * The unique identifier for the event.
5259
+ * @format uuid
4655
5260
  */
4656
5261
  eventId: string;
4657
5262
  /**
@@ -4692,6 +5297,7 @@ interface IViewSportsPage {
4692
5297
  navigationType: "Navigate" | "Reload" | "BackForward" | "Prerender";
4693
5298
  /**
4694
5299
  * The pageviewID.
5300
+ * @format uuid
4695
5301
  */
4696
5302
  pageviewId: string;
4697
5303
  referrer?: IPageRef;
@@ -4700,6 +5306,8 @@ interface IViewSportsPage {
4700
5306
  provider: IProvider;
4701
5307
  /**
4702
5308
  * URL to the JSON schema for this event.
5309
+ * @format uri
5310
+ * @pattern ^https://tpaas-schemas.schibsted.media/.+\.json$
4703
5311
  */
4704
5312
  schema: string;
4705
5313
  session: ISession;
@@ -4710,12 +5318,15 @@ interface IViewSportsPage {
4710
5318
  interface IViewTitle {
4711
5319
  /**
4712
5320
  * The version of the TPaaS schemas catalog that this particular schema belongs to. Semver format.
5321
+ * @pattern ^(0|[1-9]\d*)\.(0|[1-9]\d*)\.(0|[1-9]\d*)$
5322
+ * @example "1.2.3"
4713
5323
  */
4714
5324
  catalogVersion: string;
4715
5325
  consents: IConsents;
4716
5326
  device: IDevice;
4717
5327
  /**
4718
5328
  * Event ID
5329
+ * @format uuid
4719
5330
  */
4720
5331
  eventId: string;
4721
5332
  /**
@@ -4761,6 +5372,7 @@ interface IViewTitle {
4761
5372
  navigationType: "Navigate" | "Reload" | "BackForward" | "Prerender";
4762
5373
  /**
4763
5374
  * The pageviewID.
5375
+ * @format uuid
4764
5376
  */
4765
5377
  pageviewId: string;
4766
5378
  referrer?: IPageRef;
@@ -4769,6 +5381,8 @@ interface IViewTitle {
4769
5381
  provider: IProvider;
4770
5382
  /**
4771
5383
  * The schema of the event.
5384
+ * @format uri
5385
+ * @pattern ^https://tpaas-schemas.schibsted.media/.+\.json$
4772
5386
  */
4773
5387
  schema: string;
4774
5388
  session: ISession;
@@ -4779,12 +5393,15 @@ interface IViewTitle {
4779
5393
  interface IViewVideoPage {
4780
5394
  /**
4781
5395
  * The version of the TPaaS schemas catalog that this particular schema belongs to. Semver format.
5396
+ * @pattern ^(0|[1-9]\d*)\.(0|[1-9]\d*)\.(0|[1-9]\d*)$
5397
+ * @example "1.2.3"
4782
5398
  */
4783
5399
  catalogVersion: string;
4784
5400
  consents: IConsents;
4785
5401
  device: IDevice;
4786
5402
  /**
4787
5403
  * The unique identifier for the event.
5404
+ * @format uuid
4788
5405
  */
4789
5406
  eventId: string;
4790
5407
  /**
@@ -4824,6 +5441,7 @@ interface IViewVideoPage {
4824
5441
  navigationType: "Navigate" | "Reload" | "BackForward" | "Prerender";
4825
5442
  /**
4826
5443
  * The pageviewID.
5444
+ * @format uuid
4827
5445
  */
4828
5446
  pageviewId: string;
4829
5447
  referrer?: IPageRef;
@@ -4832,6 +5450,8 @@ interface IViewVideoPage {
4832
5450
  provider: IProvider;
4833
5451
  /**
4834
5452
  * URL to the JSON schema for this event.
5453
+ * @format uri
5454
+ * @pattern ^https://tpaas-schemas.schibsted.media/.+\.json$
4835
5455
  */
4836
5456
  schema: string;
4837
5457
  session: ISession;
@@ -4842,12 +5462,15 @@ interface IViewVideoPage {
4842
5462
  interface IViewWeather {
4843
5463
  /**
4844
5464
  * The version of the TPaaS schemas catalog that this particular schema belongs to. Semver format.
5465
+ * @pattern ^(0|[1-9]\d*)\.(0|[1-9]\d*)\.(0|[1-9]\d*)$
5466
+ * @example "1.2.3"
4845
5467
  */
4846
5468
  catalogVersion: string;
4847
5469
  consents: IConsents;
4848
5470
  device: IDevice;
4849
5471
  /**
4850
5472
  * Event ID
5473
+ * @format uuid
4851
5474
  */
4852
5475
  eventId: string;
4853
5476
  /**
@@ -4895,6 +5518,7 @@ interface IViewWeather {
4895
5518
  navigationType: "Navigate" | "Reload" | "BackForward" | "Prerender";
4896
5519
  /**
4897
5520
  * The pageviewID.
5521
+ * @format uuid
4898
5522
  */
4899
5523
  pageviewId: string;
4900
5524
  referrer?: IPageRef;
@@ -4903,6 +5527,8 @@ interface IViewWeather {
4903
5527
  provider: IProvider;
4904
5528
  /**
4905
5529
  * The schema of the event.
5530
+ * @format uri
5531
+ * @pattern ^https://tpaas-schemas.schibsted.media/.+\.json$
4906
5532
  */
4907
5533
  schema: string;
4908
5534
  session: ISession;
@@ -4910,31 +5536,7 @@ interface IViewWeather {
4910
5536
  tracker: ITracker;
4911
5537
  user?: IUser;
4912
5538
  }
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;
4914
- type UserParams = Pick<IUser, "hasAnySubscription" | "region"> & {
4915
- id: string;
4916
- realm: string;
4917
- };
4918
- /**
4919
- * @private
4920
- *
4921
- * @privateRemarks
4922
- * These can be different from one event type to another, depending on the builders used by that event type.
4923
- * However, for now, we use the same dependencies for all event types. let's make it more complex only if needed.
4924
- */
4925
- export interface TpaasEventBuilderDependencies {
4926
- user?: UserParams;
4927
- autoTrackerVersion: ITracker["autoTrackerVersion"];
4928
- version: ITracker["version"];
4929
- isHybrid: ITracker["isHybrid"];
4930
- consents?: IConsents;
4931
- providerId: IProvider["providerId"];
4932
- environmentId: IDevice["environmentId"];
4933
- jwe: IDevice["jweIds"];
4934
- pageviewId: string;
4935
- experiments?: IExperiments;
4936
- currentPage?: IPageRef;
4937
- }
5539
+ 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;
4938
5540
  type OmittedProperties = "user" | "eventId" | "consents" | "device" | "time" | "tracker" | "session" | "eventType" | "schema" | "object.objectType" | "isAnonymous" | "provider.providerId" | "provider.providerSdrn" | "page.pageviewId" | "page.utm" | "page.info" | "page.referrer.url" | "catalogVersion";
4939
5541
  type DeepOmit<T, K extends string> = T extends readonly unknown[] ? T : T extends object ? {
4940
5542
  [P in keyof T as P extends K ? never : P]: DeepOmit<T[P], K extends `${Exclude<P, symbol>}.${infer R}` ? R : never>;
@@ -4958,25 +5560,44 @@ type OptionalNavigationType<T> = T extends {
4958
5560
  navigationType?: N;
4959
5561
  };
4960
5562
  } : T;
5563
+ type WithOptionalPage<T> = T extends TpaasOptionalPageSchemas ? Omit<T, "page"> & {
5564
+ page?: T["page"];
5565
+ } : T;
5566
+ 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;
5567
+ type InputParams<T extends ITpaasEvent> = DeepOmit<OptionalNavigationType<WithOptionalPage<T>>, OmittedProperties>;
5568
+ type UserParams = Pick<IUser, "hasAnySubscription" | "region"> & {
5569
+ id: string;
5570
+ realm: string;
5571
+ };
4961
5572
  /**
4962
- * InputParams is a utility type that omits certain properties from a given type T.
4963
- * @param T - The type from which properties will be omitted.
4964
5573
  * @private
4965
5574
  *
4966
5575
  * @privateRemarks
5576
+ * These can be different from one event type to another, depending on the builders used by that event type.
5577
+ * However, for now, we use the same dependencies for all event types. let's make it more complex only if needed.
4967
5578
  */
4968
- export type InputParams<T extends ITpaasEvent> = DeepOmit<OptionalNavigationType<WithOptionalPage<T>>, OmittedProperties>;
4969
- type WithOptionalPage<T> = T extends TpaasOptionalPageSchemas ? Omit<T, "page"> & {
4970
- page?: T["page"];
4971
- } : 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;
5579
+ export interface TpaasEventBuilderDependencies {
5580
+ user?: UserParams;
5581
+ autoTrackerVersion: ITracker["autoTrackerVersion"];
5582
+ version: ITracker["version"];
5583
+ isHybrid: ITracker["isHybrid"];
5584
+ consents?: IConsents;
5585
+ providerId: IProvider["providerId"];
5586
+ environmentId: IDevice["environmentId"];
5587
+ jwe: IDevice["jweIds"];
5588
+ pageviewId: string;
5589
+ experiments?: IExperiments;
5590
+ currentPage?: IPageRef;
5591
+ }
4973
5592
  /**
4974
5593
  * Common builders output to be merged into all events
4975
5594
  * @param createdAt
4976
5595
  * @param dependencies {TpaasEventBuilderDependencies}
4977
5596
  * @private
4978
5597
  */
4979
- export declare const getCommonBuildersOutput: (createdAt: Date, { autoTrackerVersion, isHybrid, version, environmentId, jwe, user, consents, providerId, pageviewId, currentPage, }: TpaasEventBuilderDependencies) => {
5598
+ export declare const getCommonBuildersOutput: (createdAt: Date, dependencies: TpaasEventBuilderDependencies, input: InputParams<Extract<ITpaasEvent, {
5599
+ experiments?: IExperiments;
5600
+ }>>) => {
4980
5601
  time: {
4981
5602
  createdAt: string;
4982
5603
  publishedAt: string | undefined;
@@ -5031,6 +5652,7 @@ export declare const getCommonBuildersOutput: (createdAt: Date, { autoTrackerVer
5031
5652
  trackerType: "JS" | "IOS" | "Android" | "Backend";
5032
5653
  };
5033
5654
  catalogVersion: string;
5655
+ experiments: IExperiments | undefined;
5034
5656
  provider: {
5035
5657
  providerId: string;
5036
5658
  providerSdrn: string;
@@ -5076,11 +5698,13 @@ export declare function buildCompletedHealthActionEvent(input: InputParams<IComp
5076
5698
  export declare function buildEngagementHealthUIElementEvent(input: InputParams<IEngagementHealthUIElement>, dependencies: TpaasEventBuilderDependencies): IEngagementHealthUIElement;
5077
5699
  export declare function buildViewHealthPageEvent(input: InputParams<IViewHealthPage>, dependencies: TpaasEventBuilderDependencies): IViewHealthPage;
5078
5700
  export declare function buildImpressionHealthUIElementEvent(input: InputParams<IImpressionHealthUIElement>, dependencies: TpaasEventBuilderDependencies): IImpressionHealthUIElement;
5701
+ export declare function buildImpressionAdSlotEvent(input: InputParams<IImpressionAdSlot>, dependencies: TpaasEventBuilderDependencies): IImpressionAdSlot;
5079
5702
  export declare function buildImpressionFormEvent(input: InputParams<IImpressionForm>, dependencies: TpaasEventBuilderDependencies): IImpressionForm;
5080
5703
  export declare function buildImpressionOfferEvent(input: InputParams<IImpressionOffer>, dependencies: TpaasEventBuilderDependencies): IImpressionOffer;
5081
5704
  export declare function buildImpressionPlayerEvent(input: InputParams<IImpressionPlayer>, dependencies: TpaasEventBuilderDependencies): IImpressionPlayer;
5082
5705
  export declare function buildImpressionTeaserEvent(input: InputParams<IImpressionTeaser>, dependencies: TpaasEventBuilderDependencies): IImpressionTeaser;
5083
5706
  export declare function buildImpressionUIElementEvent(input: InputParams<IImpressionUIElement>, dependencies: TpaasEventBuilderDependencies): IImpressionUIElement;
5084
5707
  export declare function buildImpressionWidgetEvent(input: InputParams<IImpressionWidget>, dependencies: TpaasEventBuilderDependencies): IImpressionWidget;
5708
+ export declare function isPageType(pageType: string): pageType is (typeof PAGE_TYPE_VALUES)[number];
5085
5709
 
5086
5710
  export {};