@bbc/sofie-live-status-gateway-api 1.53.0-nightly-bbc-release53-a9ae5e2-20251112-104105.0 → 1.53.0-nightly-release53-20251125-115432-0144543.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 (123) hide show
  1. package/api/asyncapi.yaml +26 -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/packages/messages/packagesMessage.yaml +8 -0
  31. package/api/components/packages/packageInfoStatus/packageInfoStatus-example.yaml +8 -0
  32. package/api/components/packages/packageInfoStatus/packageInfoStatus.yaml +32 -0
  33. package/api/components/packages/packageStatus/packageStatus.yaml +23 -0
  34. package/api/components/packages/packagesEvent/packagesEvent-example.yaml +4 -0
  35. package/api/components/packages/packagesEvent/packagesEvent.yaml +20 -0
  36. package/api/components/part/currentPart/currentPartStatus-example.yaml +3 -0
  37. package/api/components/part/currentPart/currentPartStatus.yaml +13 -0
  38. package/api/components/part/currentSegmentPart/currentSegmentPart-example.yaml +3 -0
  39. package/api/components/part/currentSegmentPart/currentSegmentPart.yaml +14 -0
  40. package/api/components/part/partBase/partBase-example.yaml +3 -0
  41. package/api/components/part/partBase/partBase.yaml +18 -0
  42. package/api/components/part/partStatus/partStatus-example.yaml +6 -0
  43. package/api/components/part/partStatus/partStatus.yaml +22 -0
  44. package/api/components/piece/activePiecesEvent/activePiecesEvent-example.yaml +4 -0
  45. package/api/{schemas/activePieces.yaml → components/piece/activePiecesEvent/activePiecesEvent.yaml} +3 -8
  46. package/api/components/piece/messages/activePiecesMessage.yaml +10 -0
  47. package/api/components/piece/pieceStatus/pieceStatus-example.yaml +7 -0
  48. package/api/components/piece/pieceStatus/pieceStatus.yaml +28 -0
  49. package/api/components/playlist/activePlaylistEvent/activePlaylistEvent-example.yaml +17 -0
  50. package/api/components/playlist/activePlaylistEvent/activePlaylistEvent.yaml +50 -0
  51. package/api/components/playlist/messages/activePlaylistMessage.yaml +11 -0
  52. package/api/components/playlist/playlistStatus/playlistStatus-example.yaml +4 -0
  53. package/api/components/playlist/playlistStatus/playlistStatus.yaml +26 -0
  54. package/api/components/quickLoop/activePlaylistQuickLoop/activePlaylistQuickLoop-example.yaml +6 -0
  55. package/api/components/quickLoop/activePlaylistQuickLoop/activePlaylistQuickLoop.yaml +19 -0
  56. package/api/components/quickLoop/quickLoopMarker/quickLoopMarker-example.yaml +2 -0
  57. package/api/components/quickLoop/quickLoopMarker/quickLoopMarker.yaml +20 -0
  58. package/api/components/quickLoop/quickLoopMarkerType.yaml +10 -0
  59. package/api/components/segment/currentSegment/currentSegment-example.yaml +5 -0
  60. package/api/components/segment/currentSegment/currentSegment.yaml +19 -0
  61. package/api/components/segment/messages/segmentsMessage.yaml +10 -0
  62. package/api/components/segment/segment/segment-example.yaml +8 -0
  63. package/api/components/segment/segment/segment.yaml +26 -0
  64. package/api/components/segment/segmentBase/segmentBase-example.yaml +1 -0
  65. package/api/components/segment/segmentBase/segmentBase.yaml +11 -0
  66. package/api/components/segment/segmentsEvent/segmentsEvent-example.yaml +4 -0
  67. package/api/components/segment/segmentsEvent/segmentsEvent.yaml +23 -0
  68. package/api/components/studio/messages/studioUpdate.yaml +11 -0
  69. package/api/components/studio/studioEvent/studioEvent-example.yaml +2 -0
  70. package/api/components/studio/studioEvent/studioEvent.yaml +16 -0
  71. package/api/components/studio/studioStatus/studioStatus-example.yaml +4 -0
  72. package/api/components/studio/studioStatus/studioStatus.yaml +21 -0
  73. package/api/components/subscriptions/events/subscribeEvent/subscribeEvent-example.yaml +4 -0
  74. package/api/components/subscriptions/events/subscribeEvent/subscribeEvent.yaml +15 -0
  75. package/api/components/subscriptions/events/subscriptionStatusEvent/subscriptionStatusError/subscriptionStatusError-example.yaml +2 -0
  76. package/api/components/subscriptions/events/subscriptionStatusEvent/subscriptionStatusError/subscriptionStatusError.yaml +14 -0
  77. package/api/components/subscriptions/events/subscriptionStatusEvent/subscriptionStatusEvent-example.yaml +4 -0
  78. package/api/components/subscriptions/events/subscriptionStatusEvent/subscriptionStatusEvent.yaml +10 -0
  79. package/api/components/subscriptions/events/subscriptionStatusEvent/subscriptionStatusSuccess/subscriptionStatusSuccess-example.yaml +4 -0
  80. package/api/components/subscriptions/events/subscriptionStatusEvent/subscriptionStatusSuccess/subscriptionStatusSuccess.yaml +16 -0
  81. package/api/components/subscriptions/messages/subscribeMessage.yaml +12 -0
  82. package/api/components/subscriptions/messages/subscriptionStatusErrorMessage.yaml +10 -0
  83. package/api/components/subscriptions/messages/subscriptionStatusSuccessMessage.yaml +10 -0
  84. package/api/components/subscriptions/subscriptionDetails/subscriptionDetails-example.yaml +2 -0
  85. package/api/components/subscriptions/subscriptionDetails/subscriptionDetails.yaml +13 -0
  86. package/api/components/subscriptions/subscriptionEventName.yaml +8 -0
  87. package/api/components/subscriptions/subscriptionName.yaml +13 -0
  88. package/api/components/subscriptions/subscriptionRequestDetails/subscriptionRequestDetails.yaml +11 -0
  89. package/api/components/subscriptions/subscriptionStatusName.yaml +8 -0
  90. package/api/components/timing/activePlaylistTiming/activePlaylistTiming-example.yaml +3 -0
  91. package/api/components/timing/activePlaylistTiming/activePlaylistTiming.yaml +24 -0
  92. package/api/components/timing/activePlaylistTiming/activePlaylistTimingMode.yaml +7 -0
  93. package/api/components/timing/currentPartTiming/currentPartTiming-example.yaml +3 -0
  94. package/api/components/timing/currentPartTiming/currentPartTiming.yaml +20 -0
  95. package/api/components/timing/currentSegmentPartTiming/currentSegmentPartTiming-example.yaml +1 -0
  96. package/api/components/timing/currentSegmentPartTiming/currentSegmentPartTiming.yaml +8 -0
  97. package/api/components/timing/currentSegmentTiming/currentSegmentTiming-example.yaml +2 -0
  98. package/api/components/timing/currentSegmentTiming/currentSegmentTiming.yaml +16 -0
  99. package/api/components/timing/segmentCountdownType.yaml +6 -0
  100. package/api/components/timing/segmentTiming/segmentTiming-example.yaml +3 -0
  101. package/api/components/timing/segmentTiming/segmentTiming.yaml +19 -0
  102. package/api/topics/activePieces/activePiecesTopic.yaml +8 -0
  103. package/api/topics/activePlaylist/activePlaylistTopic.yaml +8 -0
  104. package/api/topics/adLibs/adLibsTopic.yaml +8 -0
  105. package/api/topics/buckets/bucketsTopic.yaml +8 -0
  106. package/api/topics/heartbeat/heartbeatTopic.yaml +7 -0
  107. package/api/topics/packages/packagesTopic.yaml +7 -0
  108. package/api/topics/ping/pingTopic.yaml +11 -0
  109. package/api/topics/segments/segmentsTopic.yaml +7 -0
  110. package/api/topics/studio/studioTopic.yaml +7 -0
  111. package/api/topics/subscriptions/subscriptionsTopic.yaml +16 -0
  112. package/dist/generated/schema.d.ts +81 -33
  113. package/dist/generated/schema.d.ts.map +1 -1
  114. package/dist/generated/schema.js +9 -1
  115. package/dist/generated/schema.js.map +1 -1
  116. package/package.json +12 -9
  117. package/api/schemas/activePlaylist.yaml +0 -317
  118. package/api/schemas/adLibs.yaml +0 -116
  119. package/api/schemas/buckets.yaml +0 -64
  120. package/api/schemas/packages.yaml +0 -82
  121. package/api/schemas/root.yaml +0 -163
  122. package/api/schemas/segments.yaml +0 -75
  123. 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,24 @@ 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'
@@ -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,8 @@
1
+ components:
2
+ messages:
3
+ packagesMessage:
4
+ name: packages
5
+ messageId: packages
6
+ description: Status of Packages expected by Pieces
7
+ payload:
8
+ $ref: '../packagesEvent/packagesEvent.yaml'
@@ -0,0 +1,8 @@
1
+ packageName: 'MV000123.mxf'
2
+ status: ok
3
+ rundownId: 'y9HauyWkcxQS3XaAOsW40BRLLsI_'
4
+ partId: 'H5CBGYjThrMSmaYvRaa5FVKJIzk_'
5
+ segmentId: 'H5CBGYjThrMSmaYvRaa5FVKJIzk_'
6
+ pieceOrAdLibId: 'C6K_yIMuGFUk8X_L9A9_jRT6aq4_'
7
+ thumbnailUrl: 'https://package-manager.local/package/MV000123.mov_thumbnail.jpg'
8
+ previewUrl: 'https://package-manager.local/package/MV000123.mov_preview'
@@ -0,0 +1,32 @@
1
+ $defs:
2
+ packageInfoStatus:
3
+ title: PackageInfoStatus
4
+ type: object
5
+ properties:
6
+ packageName:
7
+ description: Name of the package
8
+ type: string
9
+ status:
10
+ $ref: '../packageStatus/packageStatus.yaml#/$defs/packageStatus'
11
+ rundownId:
12
+ description: Id of the Rundown that a Piece (or AdLib) expecting this package belongs to
13
+ type: string
14
+ partId:
15
+ description: Id of the Part that a Piece (or AdLib) expecting this package belongs to. It could be an Id of a Part from the Active Playlist topic, or a Part not exposed otherwise by the LSG.
16
+ type: string
17
+ segmentId:
18
+ description: Id of the Segment that a Piece (or AdLib) expecting this package belongs to
19
+ type: string
20
+ pieceOrAdLibId:
21
+ description: Id of the Piece or AdLib that expects this package. It could be an Id of a Piece from the Active Pieces and Active Playlist topics, or an Id of an AdLib from the AdLibs topic. It could also be an Id of a Piece not exposed otherwise by the LSG, but still relevant, e.g. to summarize the status of packages within a specific Part/Segment.
22
+ type: string
23
+ thumbnailUrl:
24
+ description: URL where the thumbnail can be accessed
25
+ type: string
26
+ previewUrl:
27
+ description: URL where the preview can be accessed
28
+ type: string
29
+ required: [status, rundownId, pieceOrAdLibId]
30
+ additionalProperties: false
31
+ examples:
32
+ - $ref: './packageInfoStatus-example.yaml'
@@ -0,0 +1,23 @@
1
+ $defs:
2
+ packageStatus:
3
+ title: PackageStatus
4
+ type: string
5
+ description: |
6
+ Status:
7
+ * `unknown` - status not determined (yet)
8
+ * `ok` - no faults, can be played
9
+ * `source_broken` - the source is present, but should not be played due to a technical malfunction (file is broken, camera robotics failed, REMOTE input is just bars, etc.)
10
+ * `source_has_issues` - technically it can be played, but some issues with it were detected
11
+ * `source_missing` - the source (file, live input) is missing and cannot be played
12
+ * `source_not_ready` - can't be played for a non-technical reason (e.g. a placeholder clip with no content)
13
+ * `source_not_set` - missing a file path
14
+ * `source_unknown_state` - reported, but unrecognized state
15
+ enum:
16
+ - unknown
17
+ - ok
18
+ - source_broken
19
+ - source_has_issues
20
+ - source_missing
21
+ - source_not_ready
22
+ - source_not_set
23
+ - source_unknown_state
@@ -0,0 +1,4 @@
1
+ event: packages
2
+ rundownPlaylistId: 'y9HauyWkcxQS3XaAOsW40BRLLsI_'
3
+ packages:
4
+ - $ref: '../packageInfoStatus/packageInfoStatus-example.yaml'
@@ -0,0 +1,20 @@
1
+ title: PackagesEvent
2
+ type: object
3
+ properties:
4
+ event:
5
+ type: string
6
+ const: packages
7
+ rundownPlaylistId:
8
+ description: Unique id of the rundown playlist, or null if no playlist is active
9
+ oneOf:
10
+ - type: string
11
+ - type: 'null'
12
+ packages:
13
+ description: The Package statuses for this playlist
14
+ type: array
15
+ items:
16
+ $ref: '../packageInfoStatus/packageInfoStatus.yaml#/$defs/packageInfoStatus'
17
+ required: [event, rundownPlaylistId, packages]
18
+ additionalProperties: false
19
+ examples:
20
+ - $ref: './packagesEvent-example.yaml'
@@ -0,0 +1,3 @@
1
+ $ref: '../partStatus/partStatus-example.yaml'
2
+ timing:
3
+ $ref: '../../timing/currentPartTiming/currentPartTiming-example.yaml'
@@ -0,0 +1,13 @@
1
+ $defs:
2
+ currentPartStatus:
3
+ title: CurrentPartStatus
4
+ allOf:
5
+ - $ref: '../partStatus/partStatus.yaml#/$defs/partStatus'
6
+ - type: object
7
+ title: CurrentPartStatus
8
+ properties:
9
+ timing:
10
+ $ref: '../../timing/currentPartTiming/currentPartTiming.yaml#/$defs/currentPartTiming'
11
+ required: [timing]
12
+ examples:
13
+ - $ref: './currentPartStatus-example.yaml'
@@ -0,0 +1,3 @@
1
+ $ref: '../partBase/partBase-example.yaml'
2
+ timing:
3
+ expectedDurationMs: 15000
@@ -0,0 +1,14 @@
1
+ $defs:
2
+ currentSegmentPart:
3
+ title: CurrentSegmentPart
4
+ type: object
5
+ allOf:
6
+ - $ref: '../partBase/partBase.yaml#/$defs/partBase'
7
+ - type: object
8
+ title: CurrentSegmentPart
9
+ properties:
10
+ timing:
11
+ $ref: '../../timing/currentSegmentPartTiming/currentSegmentPartTiming.yaml#/$defs/currentSegmentPartTiming'
12
+ required: [id, name, timing]
13
+ examples:
14
+ - $ref: './currentSegmentPart-example.yaml'