@bbc/sofie-live-status-gateway-api 1.53.0-nightly-bbc-release53-a9ae5e2-20251112-104105.0 → 1.53.0-nightly-bbc-release53-20251203-131755-24b7c79.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (142) hide show
  1. package/api/asyncapi.yaml +28 -116
  2. package/api/components/adLibs/actionType/actionType-example.yaml +2 -0
  3. package/api/components/adLibs/actionType/actionType.yaml +15 -0
  4. package/api/components/adLibs/adLibBase/adLibBase-example.yaml +9 -0
  5. package/api/components/adLibs/adLibBase/adLibBase.yaml +35 -0
  6. package/api/components/adLibs/adLibStatus/adLibStatus-example.yaml +3 -0
  7. package/api/components/adLibs/adLibStatus/adLibStatus.yaml +17 -0
  8. package/api/components/adLibs/adLibsEvent/adLibsEvent-example.yaml +6 -0
  9. package/api/components/adLibs/adLibsEvent/adLibsEvent.yaml +29 -0
  10. package/api/components/adLibs/bucketAdLibStatus/bucketAdLibStatus-example.yaml +2 -0
  11. package/api/components/adLibs/bucketAdLibStatus/bucketAdLibStatus.yaml +14 -0
  12. package/api/components/adLibs/globalAdLibStatus/globalAdLibStatus-example.yaml +1 -0
  13. package/api/components/adLibs/globalAdLibStatus/globalAdLibStatus.yaml +7 -0
  14. package/api/components/adLibs/messages/adLibsMessage.yaml +10 -0
  15. package/api/components/buckets/bucketStatus/bucketStatus-example.yaml +4 -0
  16. package/api/components/buckets/bucketStatus/bucketStatus.yaml +20 -0
  17. package/api/components/buckets/bucketsEvent/bucketsEvent-example.yaml +3 -0
  18. package/api/components/buckets/bucketsEvent/bucketsEvent.yaml +17 -0
  19. package/api/components/buckets/messages/bucketsMessage.yaml +10 -0
  20. package/api/components/connection/heartbeatEvent/heartbeatEvent-example.yaml +1 -0
  21. package/api/components/connection/heartbeatEvent/heartbeatEvent.yaml +12 -0
  22. package/api/components/connection/messages/heartbeatMessage.yaml +11 -0
  23. package/api/components/connection/messages/pingMessage.yaml +12 -0
  24. package/api/components/connection/messages/pongMessage.yaml +12 -0
  25. package/api/components/connection/pingEvent/pingEvent-example.yaml +2 -0
  26. package/api/components/connection/pingEvent/pingEvent.yaml +14 -0
  27. package/api/components/connection/pongEvent/pongEvent-example.yaml +2 -0
  28. package/api/components/connection/pongEvent/pongEvent.yaml +14 -0
  29. package/api/components/connection/reqid/reqid.yaml +4 -0
  30. package/api/components/notifications/events/notificationsEvent/notificationsEvent-example.yaml +3 -0
  31. package/api/components/notifications/events/notificationsEvent/notificationsEvent.yaml +18 -0
  32. package/api/components/notifications/messages/notificationsMessage.yaml +10 -0
  33. package/api/components/notifications/notificationObj/notificationObj-example.yaml +7 -0
  34. package/api/components/notifications/notificationObj/notificationObj.yaml +33 -0
  35. package/api/components/notifications/notificationSeverity.yaml +9 -0
  36. package/api/components/notifications/target/notificationTarget.yaml +16 -0
  37. package/api/components/notifications/target/notificationTargetType.yaml +11 -0
  38. package/api/components/notifications/target/partInstance/notificationTargetPartInstance-example.yaml +4 -0
  39. package/api/components/notifications/target/partInstance/notificationTargetPartInstance.yaml +18 -0
  40. package/api/components/notifications/target/pieceInstance/notificationTargetPieceInstance-example.yaml +5 -0
  41. package/api/components/notifications/target/pieceInstance/notificationTargetPieceInstance.yaml +20 -0
  42. package/api/components/notifications/target/rundown/notificationTargetRundown-example.yaml +3 -0
  43. package/api/components/notifications/target/rundown/notificationTargetRundown.yaml +16 -0
  44. package/api/components/notifications/target/rundownPlaylist/notificationTargetRundownPlaylist-example.yaml +3 -0
  45. package/api/components/notifications/target/rundownPlaylist/notificationTargetRundownPlaylist.yaml +16 -0
  46. package/api/components/notifications/target/unknown/notificationTargetUnknown-example.yaml +1 -0
  47. package/api/components/notifications/target/unknown/notificationTargetUnknown.yaml +12 -0
  48. package/api/components/packages/messages/packagesMessage.yaml +8 -0
  49. package/api/components/packages/packageInfoStatus/packageInfoStatus-example.yaml +8 -0
  50. package/api/components/packages/packageInfoStatus/packageInfoStatus.yaml +32 -0
  51. package/api/components/packages/packageStatus/packageStatus.yaml +23 -0
  52. package/api/components/packages/packagesEvent/packagesEvent-example.yaml +4 -0
  53. package/api/components/packages/packagesEvent/packagesEvent.yaml +20 -0
  54. package/api/components/part/currentPart/currentPartStatus-example.yaml +3 -0
  55. package/api/components/part/currentPart/currentPartStatus.yaml +13 -0
  56. package/api/components/part/currentSegmentPart/currentSegmentPart-example.yaml +3 -0
  57. package/api/components/part/currentSegmentPart/currentSegmentPart.yaml +14 -0
  58. package/api/components/part/partBase/partBase-example.yaml +3 -0
  59. package/api/components/part/partBase/partBase.yaml +18 -0
  60. package/api/components/part/partStatus/partStatus-example.yaml +6 -0
  61. package/api/components/part/partStatus/partStatus.yaml +22 -0
  62. package/api/components/piece/activePiecesEvent/activePiecesEvent-example.yaml +4 -0
  63. package/api/{schemas/activePieces.yaml → components/piece/activePiecesEvent/activePiecesEvent.yaml} +3 -8
  64. package/api/components/piece/messages/activePiecesMessage.yaml +10 -0
  65. package/api/components/piece/pieceStatus/pieceStatus-example.yaml +7 -0
  66. package/api/components/piece/pieceStatus/pieceStatus.yaml +28 -0
  67. package/api/components/playlist/activePlaylistEvent/activePlaylistEvent-example.yaml +17 -0
  68. package/api/components/playlist/activePlaylistEvent/activePlaylistEvent.yaml +50 -0
  69. package/api/components/playlist/messages/activePlaylistMessage.yaml +11 -0
  70. package/api/components/playlist/playlistStatus/playlistStatus-example.yaml +4 -0
  71. package/api/components/playlist/playlistStatus/playlistStatus.yaml +26 -0
  72. package/api/components/quickLoop/activePlaylistQuickLoop/activePlaylistQuickLoop-example.yaml +6 -0
  73. package/api/components/quickLoop/activePlaylistQuickLoop/activePlaylistQuickLoop.yaml +19 -0
  74. package/api/components/quickLoop/quickLoopMarker/quickLoopMarker-example.yaml +2 -0
  75. package/api/components/quickLoop/quickLoopMarker/quickLoopMarker.yaml +20 -0
  76. package/api/components/quickLoop/quickLoopMarkerType.yaml +10 -0
  77. package/api/components/segment/currentSegment/currentSegment-example.yaml +5 -0
  78. package/api/components/segment/currentSegment/currentSegment.yaml +19 -0
  79. package/api/components/segment/messages/segmentsMessage.yaml +10 -0
  80. package/api/components/segment/segment/segment-example.yaml +8 -0
  81. package/api/components/segment/segment/segment.yaml +26 -0
  82. package/api/components/segment/segmentBase/segmentBase-example.yaml +1 -0
  83. package/api/components/segment/segmentBase/segmentBase.yaml +11 -0
  84. package/api/components/segment/segmentsEvent/segmentsEvent-example.yaml +4 -0
  85. package/api/components/segment/segmentsEvent/segmentsEvent.yaml +23 -0
  86. package/api/components/studio/messages/studioUpdate.yaml +11 -0
  87. package/api/components/studio/studioEvent/studioEvent-example.yaml +2 -0
  88. package/api/components/studio/studioEvent/studioEvent.yaml +16 -0
  89. package/api/components/studio/studioStatus/studioStatus-example.yaml +4 -0
  90. package/api/components/studio/studioStatus/studioStatus.yaml +21 -0
  91. package/api/components/subscriptions/events/subscribeEvent/subscribeEvent-example.yaml +4 -0
  92. package/api/components/subscriptions/events/subscribeEvent/subscribeEvent.yaml +15 -0
  93. package/api/components/subscriptions/events/subscriptionStatusEvent/subscriptionStatusError/subscriptionStatusError-example.yaml +2 -0
  94. package/api/components/subscriptions/events/subscriptionStatusEvent/subscriptionStatusError/subscriptionStatusError.yaml +14 -0
  95. package/api/components/subscriptions/events/subscriptionStatusEvent/subscriptionStatusEvent-example.yaml +4 -0
  96. package/api/components/subscriptions/events/subscriptionStatusEvent/subscriptionStatusEvent.yaml +10 -0
  97. package/api/components/subscriptions/events/subscriptionStatusEvent/subscriptionStatusSuccess/subscriptionStatusSuccess-example.yaml +4 -0
  98. package/api/components/subscriptions/events/subscriptionStatusEvent/subscriptionStatusSuccess/subscriptionStatusSuccess.yaml +16 -0
  99. package/api/components/subscriptions/messages/subscribeMessage.yaml +12 -0
  100. package/api/components/subscriptions/messages/subscriptionStatusErrorMessage.yaml +10 -0
  101. package/api/components/subscriptions/messages/subscriptionStatusSuccessMessage.yaml +10 -0
  102. package/api/components/subscriptions/subscriptionDetails/subscriptionDetails-example.yaml +2 -0
  103. package/api/components/subscriptions/subscriptionDetails/subscriptionDetails.yaml +13 -0
  104. package/api/components/subscriptions/subscriptionEventName.yaml +8 -0
  105. package/api/components/subscriptions/subscriptionName.yaml +14 -0
  106. package/api/components/subscriptions/subscriptionRequestDetails/subscriptionRequestDetails.yaml +11 -0
  107. package/api/components/subscriptions/subscriptionStatusName.yaml +8 -0
  108. package/api/components/timing/activePlaylistTiming/activePlaylistTiming-example.yaml +3 -0
  109. package/api/components/timing/activePlaylistTiming/activePlaylistTiming.yaml +24 -0
  110. package/api/components/timing/activePlaylistTiming/activePlaylistTimingMode.yaml +7 -0
  111. package/api/components/timing/currentPartTiming/currentPartTiming-example.yaml +3 -0
  112. package/api/components/timing/currentPartTiming/currentPartTiming.yaml +20 -0
  113. package/api/components/timing/currentSegmentPartTiming/currentSegmentPartTiming-example.yaml +1 -0
  114. package/api/components/timing/currentSegmentPartTiming/currentSegmentPartTiming.yaml +8 -0
  115. package/api/components/timing/currentSegmentTiming/currentSegmentTiming-example.yaml +2 -0
  116. package/api/components/timing/currentSegmentTiming/currentSegmentTiming.yaml +16 -0
  117. package/api/components/timing/segmentCountdownType.yaml +6 -0
  118. package/api/components/timing/segmentTiming/segmentTiming-example.yaml +3 -0
  119. package/api/components/timing/segmentTiming/segmentTiming.yaml +19 -0
  120. package/api/topics/activePieces/activePiecesTopic.yaml +8 -0
  121. package/api/topics/activePlaylist/activePlaylistTopic.yaml +8 -0
  122. package/api/topics/adLibs/adLibsTopic.yaml +8 -0
  123. package/api/topics/buckets/bucketsTopic.yaml +8 -0
  124. package/api/topics/heartbeat/heartbeatTopic.yaml +7 -0
  125. package/api/topics/notifications/notificationsTopic.yaml +7 -0
  126. package/api/topics/packages/packagesTopic.yaml +7 -0
  127. package/api/topics/ping/pingTopic.yaml +11 -0
  128. package/api/topics/segments/segmentsTopic.yaml +7 -0
  129. package/api/topics/studio/studioTopic.yaml +7 -0
  130. package/api/topics/subscriptions/subscriptionsTopic.yaml +16 -0
  131. package/dist/generated/schema.d.ts +180 -33
  132. package/dist/generated/schema.d.ts.map +1 -1
  133. package/dist/generated/schema.js +30 -1
  134. package/dist/generated/schema.js.map +1 -1
  135. package/package.json +12 -9
  136. package/api/schemas/activePlaylist.yaml +0 -317
  137. package/api/schemas/adLibs.yaml +0 -116
  138. package/api/schemas/buckets.yaml +0 -64
  139. package/api/schemas/packages.yaml +0 -82
  140. package/api/schemas/root.yaml +0 -163
  141. package/api/schemas/segments.yaml +0 -75
  142. package/api/schemas/studio.yaml +0 -59
package/api/asyncapi.yaml CHANGED
@@ -1,20 +1,20 @@
1
- asyncapi: 2.6.0
2
- id: 'urn:nrk:no:sofie:live-status-gateway:server'
1
+ asyncapi: '2.6.0'
2
+ id: 'sofie:live-status-gateway:server'
3
3
  info:
4
4
  title: Sofie Live Status Service
5
+ version: '2.0.1'
5
6
  description: This service provides subscriptions for status updates from Sofie
6
- version: 2.0.0
7
7
  license:
8
8
  name: MIT License
9
9
  url: http://opensource.org/licenses/MIT
10
10
  contact:
11
- name: Sofie TV Automation - NRK Team
11
+ name: Sofie TV Automation
12
12
  url: https://github.com/Sofie-Automation/sofie-core/issues
13
13
 
14
14
  servers:
15
15
  development:
16
16
  url: localhost
17
- description: Server available without authorisation
17
+ description: Server available without authorization
18
18
  protocol: ws
19
19
  protocolVersion: '13'
20
20
 
@@ -26,114 +26,26 @@ tags:
26
26
  - name: broadcast
27
27
 
28
28
  channels:
29
- /:
30
- publish:
31
- description: Send messages to the root API
32
- operationId: processRootMessage
33
- message:
34
- oneOf:
35
- - $ref: '#/components/messages/ping'
36
- - $ref: '#/components/messages/subscribe'
37
- - $ref: '#/components/messages/unsubscribe'
38
- subscribe:
39
- description: Messages that are received from the API
40
- operationId: sendRootMessage
41
- message:
42
- oneOf:
43
- - $ref: '#/components/messages/pong'
44
- - $ref: '#/components/messages/heartbeat'
45
- - $ref: '#/components/messages/subscriptionStatus'
46
- - $ref: '#/components/messages/studio'
47
- - $ref: '#/components/messages/activePlaylist'
48
- - $ref: '#/components/messages/activePieces'
49
- - $ref: '#/components/messages/segments'
50
- - $ref: '#/components/messages/adLibs'
51
- - $ref: '#/components/messages/packages'
52
- - $ref: '#/components/messages/buckets'
53
- components:
54
- messages:
55
- ping:
56
- name: ping
57
- messageId: ping
58
- summary: Ping server to determine whether connection is alive
59
- description: Client can ping server to determine whether connection is alive, server responds with pong. This is an application level ping as opposed to default ping in websockets standard which is server initiated
60
- payload:
61
- $ref: './schemas/root.yaml#/$defs/ping'
62
- x-response:
63
- $ref: '#/components/messages/pong'
64
- pong:
65
- name: pong
66
- messageId: pong
67
- summary: Pong is a response to ping message
68
- description: Server pong response to a ping to determine whether connection is alive. This is an application level pong as opposed to default pong in websockets standard which is sent by client in response to a ping
69
- payload:
70
- $ref: './schemas/root.yaml#/$defs/pong'
71
- heartbeat:
72
- name: heartbeat
73
- messageId: heartbeat
74
- description: Server heartbeat sent if no subscription traffic within 1 second (approximately)
75
- payload:
76
- $ref: './schemas/root.yaml#/$defs/heartbeat'
77
- subscribe:
78
- name: subscribe
79
- messageId: subscribe
80
- description: Subscribe to a topic
81
- payload:
82
- $ref: './schemas/root.yaml#/$defs/subscribe'
83
- x-response:
84
- $ref: './schemas/root.yaml#/$defs/subscriptionStatus'
85
- unsubscribe:
86
- name: unsubscribe
87
- messageId: unsubscribe
88
- description: Unsubscribe from a topic
89
- payload:
90
- $ref: './schemas/root.yaml#/$defs/unsubscribe'
91
- x-response:
92
- $ref: './schemas/root.yaml#/$defs/subscriptionStatus'
93
- subscriptionStatus:
94
- messageId: subscriptionStatus
95
- description: Subscription status response to subscribe or unsubscribe
96
- payload:
97
- $ref: './schemas/root.yaml#/$defs/subscriptionStatus'
98
- studio:
99
- name: studio
100
- messageId: studioUpdate
101
- description: Studio status
102
- payload:
103
- $ref: './schemas/studio.yaml#/$defs/studio'
104
- activePlaylist:
105
- name: activePlaylist
106
- messageId: activePlaylistUpdate
107
- description: Active Playlist status
108
- payload:
109
- $ref: './schemas/activePlaylist.yaml#/$defs/activePlaylist'
110
- activePieces:
111
- name: activePieces
112
- messageId: activePiecesUpdate
113
- summary: Active Pieces status
114
- description: Pieces from the active Playlist that are currently active (on air)
115
- payload:
116
- $ref: './schemas/activePieces.yaml#/$defs/activePieces'
117
- segments:
118
- name: segments
119
- messageId: segmentsUpdate
120
- description: Segments in active Playlist
121
- payload:
122
- $ref: './schemas/segments.yaml#/$defs/segments'
123
- adLibs:
124
- name: adLibs
125
- messageId: adLibsUpdate
126
- description: AdLibs in active Playlist
127
- payload:
128
- $ref: './schemas/adLibs.yaml#/$defs/adLibs'
129
- packages:
130
- name: packages
131
- messageId: packages
132
- description: Status of Packages expected by Pieces
133
- payload:
134
- $ref: './schemas/packages.yaml#/$defs/packages'
135
- buckets:
136
- name: buckets
137
- description: Buckets in Studio
138
- payload:
139
- $ref: './schemas/buckets.yaml#/$defs/buckets'
29
+ # As the LSG is websocket only, channels are only used for logical grouping for the generated docs and folder structure.
30
+ ping:
31
+ $ref: './topics/ping/pingTopic.yaml'
32
+ heartbeat:
33
+ $ref: './topics/heartbeat/heartbeatTopic.yaml'
34
+ subscriptions:
35
+ $ref: './topics/subscriptions/subscriptionsTopic.yaml'
36
+ studio:
37
+ $ref: './topics/studio/studioTopic.yaml'
38
+ activePlaylist:
39
+ $ref: './topics/activePlaylist/activePlaylistTopic.yaml'
40
+ activePieces:
41
+ $ref: './topics/activePieces/activePiecesTopic.yaml'
42
+ segments:
43
+ $ref: './topics/segments/segmentsTopic.yaml'
44
+ adLibs:
45
+ $ref: './topics/adLibs/adLibsTopic.yaml'
46
+ packages:
47
+ $ref: './topics/packages/packagesTopic.yaml'
48
+ buckets:
49
+ $ref: './topics/buckets/bucketsTopic.yaml'
50
+ notifications:
51
+ $ref: './topics/notifications/notificationsTopic.yaml'
@@ -0,0 +1,2 @@
1
+ name: pvw
2
+ label: Preview
@@ -0,0 +1,15 @@
1
+ $defs:
2
+ adLibActionType:
3
+ title: AdLibActionType
4
+ type: object
5
+ properties:
6
+ name:
7
+ type: string
8
+ description: The string to be passed to the ExecuteAdlib function
9
+ label:
10
+ type: string
11
+ description: The label for the AdLib type
12
+ required: [name, label]
13
+ additionalProperties: false
14
+ examples:
15
+ - $ref: './actionType-example.yaml'
@@ -0,0 +1,9 @@
1
+ id: 'C6K_yIMuGFUk8X_L9A9_jRT6aq4_'
2
+ name: Music video clip
3
+ sourceLayer: Video Clip
4
+ actionType:
5
+ - $ref: '../actionType/actionType-example.yaml'
6
+ tags: ['music_video']
7
+ publicData:
8
+ fileName: MV000123.mxf
9
+ optionsSchema: '{"$schema":"https://json-schema.org/draft/2020-12/schema","title":"Play Video Clip","type":"object","properties":{"type":"adlib_action_video_clip","label":{"type":"string"},"clipId":{"type":"string"},"vo":{"type":"boolean"},"target":{"$schema":"https://json-schema.org/draft/2020-12/schema","title":"Object Id","description":"Id of an object sent to Sofie","type":"string"},"duration":{"type":"number","exclusiveMinimum":0},"takeType":{"$schema":"https://json-schema.org/draft/2020-12/schema","title":"AdLib Action Take Type","type":"string","enum":["take_immediate","queue"]},"transition":{"$schema":"https://json-schema.org/draft/2020-12/schema","title":"AdLib Action Transition Type","oneOf":[{"type":"object","properties":{"type":"cut"},"required":["type"],"additionalProperties":false},{"type":"object","properties":{"type":"mix","duration":{"type":"number","exclusiveMinimum":0,"description":"Duration in ms"}},"required":["type","duration"],"additionalProperties":false},{"type":"object","properties":{"type":"wipe","duration":{"type":"number","exclusiveMinimum":0,"description":"Duration in ms"},"patternId":{"type":"string","description":"Type of wipe to use"}},"required":["type","duration","patternId"],"additionalProperties":false},{"type":"object","properties":{"type":"macro","macroId":{"type":"string","description":"Macro template to recall"}},"required":["type","macroId"],"additionalProperties":false}]}},"required":["type","clipId","vo","target"],"additionalProperties":false}"'
@@ -0,0 +1,35 @@
1
+ $defs:
2
+ adLibBase:
3
+ title: AdLibBase
4
+ type: object
5
+ properties:
6
+ id:
7
+ type: string
8
+ description: Unique id of the AdLib
9
+ name:
10
+ type: string
11
+ description: The user defined AdLib name
12
+ sourceLayer:
13
+ type: string
14
+ description: The source layer name for this AdLib
15
+ outputLayer:
16
+ type: string
17
+ description: The output layer name for this AdLib
18
+ actionType:
19
+ type: array
20
+ description: The available action type names that can be used to modify the execution of the AdLib
21
+ items:
22
+ $ref: '../actionType/actionType.yaml#/$defs/adLibActionType'
23
+ tags:
24
+ type: array
25
+ description: Tags attached to this AdLib
26
+ items:
27
+ type: string
28
+ publicData:
29
+ description: Optional arbitrary data
30
+ optionsSchema:
31
+ type: string
32
+ description: JSON schema definition of the adLib properties that can be modified using the adLibOptions property in executeAdLib
33
+ required: [id, name, sourceLayer, actionType]
34
+ examples:
35
+ - $ref: './adLibBase-example.yaml'
@@ -0,0 +1,3 @@
1
+ $ref: '../adLibBase/adLibBase-example.yaml'
2
+ segmentId: HsD8_QwE1ZmR5vN3XcK_Ab7y
3
+ partId: JkL3_OpR6WxT1bF8Vq2_Zy9u
@@ -0,0 +1,17 @@
1
+ $defs:
2
+ adLibStatus:
3
+ title: AdLibStatus
4
+ allOf:
5
+ - $ref: '../adLibBase/adLibBase.yaml#/$defs/adLibBase'
6
+ - type: object
7
+ title: AdLibStatus
8
+ properties:
9
+ segmentId:
10
+ description: Unique id of the segment this adLib belongs to
11
+ type: string
12
+ partId:
13
+ description: Unique id of the part this adLib belongs to
14
+ type: string
15
+ required: [segmentId, partId]
16
+ examples:
17
+ - $ref: './adLibStatus-example.yaml'
@@ -0,0 +1,6 @@
1
+ event: 'adLibs'
2
+ rundownPlaylistId: 'OKAgZmZ0Buc99lE_2uPPSKVbMrQ_'
3
+ adLibs:
4
+ - $ref: '../adLibStatus/adLibStatus-example.yaml'
5
+ globalAdLibs:
6
+ - $ref: '../globalAdLibStatus/globalAdLibStatus-example.yaml'
@@ -0,0 +1,29 @@
1
+ $defs:
2
+ adLibsEvent:
3
+ type: object
4
+ title: AdLibsEvent
5
+ properties:
6
+ event:
7
+ type: string
8
+ const: adLibs
9
+ rundownPlaylistId:
10
+ description: Unique id of the rundown playlist, or null if no playlist is active
11
+ oneOf:
12
+ - type: string
13
+ title: Unique id of the rundown playlist
14
+ - type: 'null'
15
+ title: Null if no playlist is active
16
+ adLibs:
17
+ type: array
18
+ description: The available AdLibs for this playlist
19
+ items:
20
+ $ref: '../adLibStatus/adLibStatus.yaml#/$defs/adLibStatus'
21
+ globalAdLibs:
22
+ type: array
23
+ description: The available Global AdLibs for this playlist
24
+ items:
25
+ $ref: '../globalAdLibStatus/globalAdLibStatus.yaml#/$defs/globalAdLibStatus'
26
+ required: [event, rundownPlaylistId, adLibs, globalAdLibs]
27
+ additionalProperties: false
28
+ examples:
29
+ - $ref: './adLibsEvent-example.yaml'
@@ -0,0 +1,2 @@
1
+ $ref: '../adLibBase/adLibBase-example.yaml'
2
+ externalId: 'C6K_yIMuGFUk8X_L9A9_jRT6aq4_'
@@ -0,0 +1,14 @@
1
+ $defs:
2
+ bucketAdLibStatus:
3
+ title: BucketAdLibStatus
4
+ allOf:
5
+ - $ref: '../adLibBase/adLibBase.yaml#/$defs/adLibBase'
6
+ - type: object
7
+ title: BucketAdLibStatus
8
+ properties:
9
+ externalId:
10
+ type: string
11
+ description: Id of the adLib recognizable by the external source. Unique within a bucket.
12
+ required: [externalId]
13
+ examples:
14
+ - $ref: './bucketAdLibStatus-example.yaml'
@@ -0,0 +1 @@
1
+ $ref: '../adLibBase/adLibBase-example.yaml'
@@ -0,0 +1,7 @@
1
+ $defs:
2
+ globalAdLibStatus:
3
+ title: GlobalAdLibStatus
4
+ allOf:
5
+ - $ref: '../adLibBase/adLibBase.yaml#/$defs/adLibBase'
6
+ examples:
7
+ - $ref: './globalAdLibStatus-example.yaml'
@@ -0,0 +1,10 @@
1
+ components:
2
+ messages:
3
+ adLibsMessage:
4
+ messageId: adLibs
5
+ title: AdLibs Event Message
6
+ payload:
7
+ $ref: '../adLibsEvent/adLibsEvent.yaml#/$defs/adLibsEvent'
8
+ examples:
9
+ - payload:
10
+ $ref: '../adLibsEvent/adLibsEvent-example.yaml'
@@ -0,0 +1,4 @@
1
+ id: 'C6K_yIMuGFUk8X_L9A9_jRT6aq4_'
2
+ name: My Bucket
3
+ adLibs:
4
+ - $ref: '../../adLibs/bucketAdLibStatus/bucketAdLibStatus-example.yaml'
@@ -0,0 +1,20 @@
1
+ $defs:
2
+ bucketStatus:
3
+ title: BucketStatus
4
+ type: object
5
+ properties:
6
+ id:
7
+ description: Unique id of the bucket
8
+ type: string
9
+ name:
10
+ description: The user defined bucket name
11
+ type: string
12
+ adLibs:
13
+ description: The AdLibs in this bucket
14
+ type: array
15
+ items:
16
+ $ref: '../../adLibs/bucketAdLibStatus/bucketAdLibStatus.yaml#/$defs/bucketAdLibStatus'
17
+ required: [id, name, adLibs]
18
+ additionalProperties: false
19
+ examples:
20
+ - $ref: './bucketStatus-example.yaml'
@@ -0,0 +1,3 @@
1
+ event: buckets
2
+ buckets:
3
+ - $ref: '../bucketStatus/bucketStatus-example.yaml'
@@ -0,0 +1,17 @@
1
+ $defs:
2
+ bucketsEvent:
3
+ title: BucketsEvent
4
+ type: object
5
+ properties:
6
+ event:
7
+ type: string
8
+ const: buckets
9
+ buckets:
10
+ description: Buckets available in the Studio
11
+ type: array
12
+ items:
13
+ $ref: '../bucketStatus/bucketStatus.yaml#/$defs/bucketStatus'
14
+ required: [event, buckets]
15
+ additionalProperties: false
16
+ examples:
17
+ - $ref: './bucketsEvent-example.yaml'
@@ -0,0 +1,10 @@
1
+ components:
2
+ messages:
3
+ bucketsMessage:
4
+ messageId: buckets
5
+ title: Buckets in Studio
6
+ payload:
7
+ $ref: '../bucketsEvent/bucketsEvent.yaml#/$defs/bucketsEvent'
8
+ examples:
9
+ - payload:
10
+ $ref: '../bucketsEvent/bucketsEvent-example.yaml'
@@ -0,0 +1,12 @@
1
+ $defs:
2
+ heartbeatEvent:
3
+ title: HeartbeatEvent
4
+ type: object
5
+ properties:
6
+ event:
7
+ type: string
8
+ const: heartbeat
9
+ required: [event]
10
+ additionalProperties: false
11
+ examples:
12
+ - $ref: './heartbeatEvent-example.yaml'
@@ -0,0 +1,11 @@
1
+ components:
2
+ messages:
3
+ heartbeatMessage:
4
+ name: heartbeat
5
+ messageId: heartbeat
6
+ description: Server heartbeat sent if no subscription traffic within 1 second (approximately)
7
+ payload:
8
+ $ref: '../heartbeatEvent/heartbeatEvent.yaml#/$defs/heartbeatEvent'
9
+ examples:
10
+ - payload:
11
+ $ref: '../heartbeatEvent/heartbeatEvent-example.yaml'
@@ -0,0 +1,12 @@
1
+ components:
2
+ messages:
3
+ pingMessage:
4
+ name: ping
5
+ messageId: ping
6
+ summary: Ping server to determine whether connection is alive
7
+ description: Client can ping server to determine whether connection is alive, server responds with pong. This is an application level ping as opposed to default ping in websockets standard which is server initiated
8
+ payload:
9
+ $ref: '../pingEvent/pingEvent.yaml#/$defs/pingEvent'
10
+ examples:
11
+ - payload:
12
+ $ref: '../pingEvent/pingEvent-example.yaml'
@@ -0,0 +1,12 @@
1
+ components:
2
+ messages:
3
+ pongMessage:
4
+ name: pong
5
+ messageId: pong
6
+ summary: Pong is a response to ping message
7
+ description: Server pong response to a ping to determine whether connection is alive. This is an application level pong as opposed to default pong in websockets standard which is sent by client in response to a ping
8
+ payload:
9
+ $ref: '../pongEvent/pongEvent.yaml#/$defs/pongEvent'
10
+ examples:
11
+ - payload:
12
+ $ref: '../pongEvent/pongEvent-example.yaml'
@@ -0,0 +1,2 @@
1
+ event: ping
2
+ reqid: 27
@@ -0,0 +1,14 @@
1
+ $defs:
2
+ pingEvent:
3
+ title: PingEvent
4
+ type: object
5
+ properties:
6
+ event:
7
+ type: string
8
+ const: ping
9
+ reqid:
10
+ $ref: '../reqid/reqid.yaml#/$defs/reqid'
11
+ required: [event, reqid]
12
+ additionalProperties: false
13
+ examples:
14
+ - $ref: './pingEvent-example.yaml'
@@ -0,0 +1,2 @@
1
+ event: pong
2
+ reqid: 27
@@ -0,0 +1,14 @@
1
+ $defs:
2
+ pongEvent:
3
+ title: PongEvent
4
+ type: object
5
+ properties:
6
+ event:
7
+ type: string
8
+ const: pong
9
+ reqid:
10
+ $ref: '../reqid/reqid.yaml#/$defs/reqid'
11
+ required: [event, reqid]
12
+ additionalProperties: false
13
+ examples:
14
+ - $ref: './pongEvent-example.yaml'
@@ -0,0 +1,4 @@
1
+ $defs:
2
+ reqid:
3
+ type: integer
4
+ description: Client originated ID reflected in response message.
@@ -0,0 +1,3 @@
1
+ event: notifications
2
+ activeNotifications:
3
+ - $ref: '../../notificationObj/notificationObj-example.yaml'
@@ -0,0 +1,18 @@
1
+ $defs:
2
+ notificationsEvent:
3
+ type: object
4
+ title: NotificationsEvent
5
+ description: Active notifications in Sofie
6
+ properties:
7
+ event:
8
+ type: string
9
+ const: notifications
10
+ activeNotifications:
11
+ description: Active notifications in Sofie
12
+ type: array
13
+ items:
14
+ $ref: '../../notificationObj/notificationObj.yaml#/$defs/NotificationObj'
15
+ required: [event, activeNotifications]
16
+ additionalProperties: false
17
+ examples:
18
+ - $ref: './notificationsEvent-example.yaml'
@@ -0,0 +1,10 @@
1
+ components:
2
+ messages:
3
+ notificationsMessage:
4
+ messageId: notificationsUpdate
5
+ title: Active notifications in Sofie
6
+ payload:
7
+ $ref: '../events/notificationsEvent/notificationsEvent.yaml#/$defs/notificationsEvent'
8
+ examples:
9
+ - payload:
10
+ $ref: '../events/notificationsEvent/notificationsEvent-example.yaml'
@@ -0,0 +1,7 @@
1
+ _id: 'notif123'
2
+ severity: error
3
+ message: 'disk.space.low'
4
+ relatedTo:
5
+ $ref: '../target/pieceInstance/notificationTargetPieceInstance-example.yaml'
6
+ created: 1694784932
7
+ modified: 1694784950
@@ -0,0 +1,33 @@
1
+ $defs:
2
+ NotificationObj:
3
+ type: object
4
+ title: NotificationObj
5
+ description: This describes a notification that should be shown to a user. These can come from various sources, and are added and removed dynamically during system usage
6
+ required:
7
+ - _id
8
+ - severity
9
+ - message
10
+ - relatedTo
11
+ - created
12
+ properties:
13
+ _id:
14
+ type: string
15
+ description: Unique identifier for the notification
16
+ severity:
17
+ $ref: '../notificationSeverity.yaml#/$defs/severity'
18
+ message:
19
+ type: string
20
+ description: The message of the notification
21
+ relatedTo:
22
+ $ref: '../target/notificationTarget.yaml#/$defs/NotificationTarget'
23
+ created:
24
+ type: integer
25
+ format: int64
26
+ description: Unix timestamp of creation
27
+ modified:
28
+ type: integer
29
+ format: int64
30
+ description: Unix timestamp of last modification
31
+ additionalProperties: false
32
+ examples:
33
+ - $ref: './notificationObj-example.yaml'
@@ -0,0 +1,9 @@
1
+ $defs:
2
+ severity:
3
+ type: string
4
+ title: NotificationSeverity
5
+ description: Severity level of the notification.
6
+ enum:
7
+ - warning
8
+ - error
9
+ - info
@@ -0,0 +1,16 @@
1
+ $defs:
2
+ NotificationTarget:
3
+ title: NotificationTarget
4
+ description: Describes what the notification is related to
5
+ oneOf:
6
+ - $ref: './rundown/notificationTargetRundown.yaml#/$defs/NotificationTargetRundown'
7
+ - $ref: './rundownPlaylist/notificationTargetRundownPlaylist.yaml#/$defs/NotificationTargetRundownPlaylist'
8
+ - $ref: './partInstance/notificationTargetPartInstance.yaml#/$defs/NotificationTargetPartInstance'
9
+ - $ref: './pieceInstance/notificationTargetPieceInstance.yaml#/$defs/NotificationTargetPieceInstance'
10
+ - $ref: './unknown/notificationTargetUnknown.yaml#/$defs/NotificationTargetUnknown'
11
+ examples:
12
+ - $ref: './rundown/notificationTargetRundown-example.yaml'
13
+ - $ref: './rundownPlaylist/notificationTargetRundownPlaylist-example.yaml'
14
+ - $ref: './partInstance/notificationTargetPartInstance-example.yaml'
15
+ - $ref: './pieceInstance/notificationTargetPieceInstance-example.yaml'
16
+ - $ref: './unknown/notificationTargetUnknown-example.yaml'
@@ -0,0 +1,11 @@
1
+ $defs:
2
+ NotificationTargetType:
3
+ type: string
4
+ title: NotificationTargetType
5
+ description: Possible NotificationTarget types
6
+ enum:
7
+ - rundown
8
+ - playlist
9
+ - partInstance
10
+ - pieceInstance
11
+ - unknown
@@ -0,0 +1,4 @@
1
+ type: partInstance
2
+ studioId: studio01
3
+ rundownId: rd123
4
+ partInstanceId: pi789
@@ -0,0 +1,18 @@
1
+ $defs:
2
+ NotificationTargetPartInstance:
3
+ type: object
4
+ title: NotificationTargetPartInstance
5
+ required: [type, studioId, rundownId, partInstanceId]
6
+ properties:
7
+ type:
8
+ $ref: '../notificationTargetType.yaml#/$defs/NotificationTargetType'
9
+ const: partInstance
10
+ studioId:
11
+ type: string
12
+ rundownId:
13
+ type: string
14
+ partInstanceId:
15
+ type: string
16
+ additionalProperties: false
17
+ examples:
18
+ - $ref: './notificationTargetPartInstance-example.yaml'