lws 0.4.2 → 6.1.0.beta1

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.
@@ -0,0 +1,1796 @@
1
+ #
2
+ # Copyright © 2017 LeftClick B.V.
3
+ #
4
+ # This software is property of LeftClick B.V. and cannot be redistributed
5
+ # and/or modified without permission. The software or any of its parts
6
+ # cannot be used for any other purposes than the LeftClick services and
7
+ # only during a valid license subscription. For more information, please
8
+ # contact LeftClick B.V. at: Geldropseweg 8B, 5731 SG Mierlo, The
9
+ # Netherlands, info@leftclick.eu, +31492-782120.
10
+
11
+
12
+ # = The digital_signage app module
13
+ module LWS::DigitalSignage
14
+
15
+ # :nocov:
16
+ unless defined? ENDPOINT
17
+ # The API endpoint for the digital signage app
18
+ ENDPOINT = { production: "https://cm.leftclick.cloud/" ,
19
+ development: "https://cm-dev.leftclick.cloud/" }
20
+ end
21
+ # :nocov:
22
+
23
+ # @!visibility private
24
+ def self.api
25
+ LWS.setup_api(LWS.config.endpoints[:digital_signage] ||
26
+ ENDPOINT[LWS.config.environment])
27
+ end
28
+
29
+ ### Generic classes
30
+
31
+ # (see Generic::Configuration)
32
+ class Configuration < LWS::Generic::Configuration
33
+ use_api LWS::DigitalSignage.api
34
+ end
35
+
36
+ ### App specific classes
37
+
38
+ # = The channel class
39
+ class Channel < LWS::Generic::Model
40
+ use_api LWS::DigitalSignage.api
41
+
42
+ # @!attribute id [r]
43
+ # @return [Fixnum] the (unique) ID of the channel
44
+ attribute :id
45
+
46
+ # @!attribute company
47
+ # @return [LWS::Auth::Company] the company the channel belongs to
48
+ belongs_to :company, class_name: "LWS::Auth::Company"
49
+
50
+ # @!attribute company_id
51
+ # @return [Fixnum] the ID of the company the channel belongs to
52
+ attribute :company_id
53
+
54
+ # @!attribute display
55
+ # @return [Display] the display of the channel
56
+ belongs_to :display, class_name: "LWS::DigitalSignage::Display"
57
+ # :nocov:
58
+ def display
59
+ # Create a dummy method so that the original #display method is not used
60
+ association(:display).load
61
+ end
62
+ # :nocov:
63
+
64
+ # @!attribute display_id
65
+ # @return [Fixnum] the ID of the display of the channel
66
+ attribute :display_id
67
+
68
+ # @!attribute groups
69
+ # @return [Array<Channel::Group>] the groups the channel is a member of
70
+ has_many :groups, class_name: "LWS::DigitalSignage::Channel::Group"
71
+
72
+ # @!attribute name
73
+ # @return [String] the name of the channel
74
+ attribute :name
75
+
76
+ # @!attribute orientation
77
+ # @return ["normal", "left", "right", "inverted"] the orientation of
78
+ # the channel
79
+ attribute :orientation
80
+
81
+ # @!attribute players
82
+ # @return [Array<Player>] the players linked to the channel
83
+ has_many :players, class_name: "LWS::DigitalSignage::Player"
84
+
85
+ # @!attribute tags
86
+ # @return [Array<Channel::Tag>] the tags of the channel
87
+ has_many :tags, class_name: "LWS::DigitalSignage::Channel::Tag"
88
+
89
+ # @!attribute time_schedule
90
+ # @return [Channel::TimeSchedule] the time schedule of the channel
91
+ belongs_to :time_schedule, class_name: "LWS::DigitalSignage::Channel::TimeSchedule",
92
+ uri: "channel/time_schedules/:id"
93
+
94
+ # @!attribute time_schedule_id
95
+ # @return [Fixnum] the ID of the time schedule of the channel
96
+ attribute :time_schedule_id
97
+
98
+ # @!attribute time_schedule_overrides
99
+ # @return [Array<Channel::TimeScheduleOverride>] the time schedule
100
+ # overrides of the channel
101
+ has_many :time_schedule_overrides, class_name: "LWS::DigitalSignage::Channel::TimeScheduleOverride"
102
+
103
+ # @!attribute time_zone
104
+ # @return [String] the time zone for the channel
105
+ attribute :time_zone
106
+
107
+ # @!attribute created_at [r]
108
+ # @return [String] the timestamp of when the channel was created
109
+ attribute :created_at
110
+
111
+ # @!attribute updated_at [r]
112
+ # @return [String] the timestamp of when the channel was last updated
113
+ attribute :updated_at
114
+ end
115
+
116
+ # = The channel group class
117
+ class Channel::Group < LWS::Generic::Model
118
+ use_api LWS::DigitalSignage.api
119
+ uri "channel/groups/(:id)"
120
+
121
+ # @!attribute id [r]
122
+ # @return [Fixnum] the (unique) ID of the channel group
123
+ attribute :id
124
+
125
+ # @!attribute channels
126
+ # @return [Array<Channel>] the channels that are part of the channel group
127
+ has_many :channels, class_name: "LWS::DigitalSignage::Channel",
128
+ uri: "channel/groups/:group_id/channels"
129
+
130
+ # @!attribute company
131
+ # @return [LWS::Auth::Company] the company the channel group belongs to
132
+ belongs_to :company, class_name: "LWS::Auth::Company"
133
+
134
+ # @!attribute company_id
135
+ # @return [Fixnum] the ID of the company the channel group belongs to
136
+ attribute :company_id
137
+
138
+ # @!attribute name
139
+ # @return [String] the name of the channel group
140
+ attribute :name
141
+
142
+ # @!attribute parent
143
+ # @return [Channel::Group, nil] the parent group of the channel group
144
+ belongs_to :parent, class_name: "LWS::DigitalSignage::Channel::Group",
145
+ foreign_key: "parent_id",
146
+ uri: "channel/groups/:id"
147
+
148
+ # @!attribute parent_id
149
+ # @return [Fixnum, nil] the ID of the parent group of the channel group
150
+ attribute :parent_id
151
+
152
+ #@!attribute tags
153
+ # @return [Array<Channel::Group::Tag>] the tags of the channel group
154
+ has_many :tags, class_name: "LWS::DigitalSignage::Channel::Group::Tag",
155
+ uri: "channel/groups/:group_id/tags"
156
+
157
+ # @!attribute time_schedule_overrides
158
+ # @return [Array<Channel::TimeScheduleOverride>] the time schedule overrides of the channel group
159
+ has_many :time_schedule_overrides, class_name: "LWS::DigitalSignage::Channel::TimeScheduleOverride",
160
+ uri: "channel/groups/:group_id/time_schedule_overrides"
161
+
162
+ # @!attribute created_at [r]
163
+ # @return [String] the timestamp of when the channel group was created
164
+ attribute :created_at
165
+
166
+ # @!attribute updated_at [r]
167
+ # @return [String] the timestamp of when the channel group was last updated
168
+ attribute :updated_at
169
+ end
170
+
171
+ # = The channel group tag class
172
+ #
173
+ # @note
174
+ # This class is only used within the context of the {Channel::Group}
175
+ # class.
176
+ class Channel::Group::Tag < LWS::Generic::Model
177
+ use_api LWS::DigitalSignage.api
178
+
179
+ # @!attribute id [r]
180
+ # @return [Fixnum] the (unique) ID of the display
181
+ attribute :id
182
+
183
+ # @!attribute group
184
+ # @return [Channel::Group] the channel group associated with the tag
185
+ belongs_to :group, class_names: "LWS::DigitalSignage::Channel::Group",
186
+ uri: "channel/groups/:id"
187
+
188
+ # @!attribute group_id
189
+ # @return [Fixnum] the ID of the channel group associated with the tag
190
+ attribute :group_id
191
+
192
+ # @!attribute key
193
+ # @return [String] the key of the channel group tag
194
+ attribute :key
195
+
196
+ # @!attribute protected_value
197
+ # @return [Boolean] whether the value of the channel group tag should
198
+ # return a protected representation of the value
199
+ attribute :protected_value
200
+
201
+ # @!attribute value
202
+ # @return [String, nil] the value of the channel group tag
203
+ attribute :value
204
+
205
+ # @!attribute created_at [r]
206
+ # @return [String] the timestamp of when the channel group was created
207
+ attribute :created_at
208
+
209
+ # @!attribute updated_at [r]
210
+ # @return [String] the timestamp of when the channel group was last updated
211
+ attribute :updated_at
212
+ end
213
+
214
+ # = The channel tag class
215
+ #
216
+ # @note
217
+ # This class is only used within the context of the {Channel} class.
218
+ class Channel::Tag < LWS::Generic::Model
219
+ use_api LWS::DigitalSignage.api
220
+
221
+ # @!attribute id [r]
222
+ # @return [Fixnum] the (unique) ID of the channel tag
223
+ attribute :id
224
+
225
+ # @!attribute channel
226
+ # @return [Channel] the channel associated with the tag
227
+ belongs_to :channel, class_name: "LWS::DigitalSignage::Channel"
228
+
229
+ # @!attribute channel_id
230
+ # @return [Fixnum] the ID of the channel associated with the tag
231
+ attribute :channel_id
232
+
233
+ # @!attribute key
234
+ # @return [String] the key of the channel tag
235
+ attribute :key
236
+
237
+ # @!attribute protected_value
238
+ # @return [Boolean] whether the value of the channel tag should
239
+ # return a protected representation of the value
240
+ attribute :protected_value
241
+
242
+ # @!attribute value
243
+ # @return [String, nil] the value of the channel tag
244
+ attribute :value
245
+
246
+ # @!attribute created_at [r]
247
+ # @return [String] the timestamp of when the channel was created
248
+ attribute :created_at
249
+
250
+ # @!attribute updated_at [r]
251
+ # @return [String] the timestamp of when the channel was last updated
252
+ attribute :updated_at
253
+ end
254
+
255
+ # = The channel time schedule class
256
+ class Channel::TimeSchedule < LWS::Generic::Model
257
+ use_api LWS::DigitalSignage.api
258
+ uri "channel/time_schedules/(:id)"
259
+
260
+ # @!attribute id [r]
261
+ # @return [Fixnum] the (unique) ID of the channel time schedule
262
+ attribute :id
263
+
264
+ # @!attribute company
265
+ # @return [LWS::Auth::Company] the company the channel time schedule belongs to
266
+ belongs_to :company, class_name: "LWS::Auth::Company"
267
+
268
+ # @!attribute company_id
269
+ # @return [Fixnum] the ID of the company the channel time schedule belongs to
270
+ attribute :company_id
271
+
272
+ # @!attribute channels
273
+ # @return [Array<Channel>] the channels using the time schedule
274
+ has_many :channels, class_name: "LWS::DigitalSignage::Channel",
275
+ uri: "channel/time_schedules/:time_schedule_id/channels"
276
+
277
+ # @!attribute days
278
+ # @return [Array<Channel::TimeSchedule::Day>] the days included in the
279
+ # channel time schedule
280
+ has_many :days, class_name: "LWS::DigitalSignage::Channel::TimeSchedule::Day",
281
+ uri: "channel/time_schedules/:time_schedule_id/days"
282
+
283
+ # @!attribute name
284
+ # @return [String] the name of the channel time schedule
285
+ attribute :name
286
+
287
+ # @!attribute created_at [r]
288
+ # @return [String] the timestamp of when the channel time schedule was created
289
+ attribute :created_at
290
+
291
+ # @!attribute updated_at [r]
292
+ # @return [String] the timestamp of when the channel time schedule was last updated
293
+ attribute :updated_at
294
+ end
295
+
296
+ # = The channel time schedule day class
297
+ #
298
+ # @note
299
+ # This class is only used within the context of the {Channel::TimeSchedule}
300
+ # class.
301
+ class Channel::TimeSchedule::Day < LWS::Generic::Model
302
+ use_api LWS::DigitalSignage.api
303
+ uri "channel/time_schedules/:time_schedule_id/days/(:id)"
304
+
305
+ # @!attribute id [r]
306
+ # @return [Fixnum] the (unique) ID of the channel time schedule day
307
+ attribute :id
308
+
309
+ # @!attribute day
310
+ # @return [Fixnum] the ID of the day of the channel time schedule
311
+ # (0 = Sunday, 1 = Monday, ..., 6 = Saturday)
312
+ attribute :day
313
+
314
+ # @!attribute shutdown
315
+ # @return [String] the shutdown time of the channel
316
+ attribute :shutdown
317
+
318
+ # @!attribute time_schedule
319
+ # @return [Channel::TimeSchedule] the time schedule the day belongs to
320
+ belongs_to :time_schedule, class_name: "LWS::DigitalSignage::Channel::TimeSchedule",
321
+ uri: "channel/time_schedules/:id"
322
+
323
+ # @!attribute time_schedule_id
324
+ # @return [Fixnum] the ID of the time schedule the day belongs to
325
+ attribute :time_schedule_id
326
+
327
+ # @!attribute wakeup
328
+ # @return [String] the wakeup time of the channel
329
+ attribute :wakeup
330
+
331
+ # @!attribute created_at [r]
332
+ # @return [String] the timestamp of when the channel time schedule day was created
333
+ attribute :created_at
334
+
335
+ # @!attribute updated_at [r]
336
+ # @return [String] the timestamp of when the channel time schedule day was last updated
337
+ attribute :updated_at
338
+ end
339
+
340
+ # = The channel time override schedule class
341
+ class Channel::TimeScheduleOverride < LWS::Generic::Model
342
+ use_api LWS::DigitalSignage.api
343
+ uri "channel/time_schedule_overrides/(:id)"
344
+
345
+ # @!attribute id [r]
346
+ # @return [Fixnum] the (unique) ID of the channel time schedule override
347
+ attribute :id
348
+
349
+ # @!attribute channels
350
+ # @return [Array<Channel>] the channels using the time schedule override
351
+ has_many :channels, class_name: "LWS::DigitalSignage::Channel",
352
+ uri: "channel/time_schedule_overrides/:time_schedule_override_id/channels"
353
+
354
+ # @!attribute company
355
+ # @return [LWS::Auth::Company] the company the channel time schedule override belongs to
356
+ belongs_to :company, class_name: "LWS::Auth::Company"
357
+
358
+ # @!attribute company_id
359
+ # @return [Fixnum] the ID of the company the channel time schedule override belongs to
360
+ attribute :company_id
361
+
362
+ # @!attribute end
363
+ # @return [String] the end date (inclusive) of the channel time schedule override
364
+ attribute :end
365
+
366
+ # @!attribute channel_groups
367
+ # @return [Array<Channel::Group>] the channel groups using the time schedule override
368
+ has_many :groups, class_name: "LWS::DigitalSignage::Channel::Group",
369
+ uri: "channel/time_schedule_overrides/:time_schedule_override_id/groups"
370
+
371
+ # @!attribute name
372
+ # @return [String] the name of the channel time schedule override
373
+ attribute :name
374
+
375
+ # @!attribute shutdown
376
+ # @return [String] the shutdown time of the channel
377
+ attribute :shutdown
378
+
379
+ # @!attribute start
380
+ # @return [String] the start date of the channel time schedule override
381
+ attribute :start
382
+
383
+ # @!attribute wakeup
384
+ # @return [String] the wakeup time of the channel
385
+ attribute :wakeup
386
+
387
+ # @!attribute created_at [r]
388
+ # @return [String] the timestamp of when the channel time schedule override was created
389
+ attribute :created_at
390
+
391
+ # @!attribute updated_at [r]
392
+ # @return [String] the timestamp of when the channel time schedule override was last updated
393
+ attribute :updated_at
394
+ end
395
+
396
+ # = The display class
397
+ class Display < LWS::Generic::Model
398
+ use_api LWS::DigitalSignage.api
399
+
400
+ # @!attribute id [r]
401
+ # @return [Fixnum] the (unique) ID of the display
402
+ attribute :id
403
+
404
+ # @!attribute aspect_ratio
405
+ # @return [String, nil] the aspect ratio of the display
406
+ attribute :aspect_ratio
407
+
408
+ # @!attribute baud_rate
409
+ # @return [String] the baud rate of the RS232 connection to the display
410
+ attribute :baud_rate
411
+
412
+ # @!attribute channels
413
+ # @return [Array<Channel>] the channels using the display
414
+ has_many :channels, class_name: "LWS::DigitalSignage::Channel"
415
+
416
+ # @!attribute data_bits
417
+ # @return [String] the data bits setting of the RS232 connection to the display
418
+ attribute :data_bits
419
+
420
+ # @!attribute inputs
421
+ # @return [Array<Display::Input>] the inputs supported by the display
422
+ has_many :inputs, class_name: "LWS::DigitalSignage::Display::Input"
423
+
424
+ # @!attribute name
425
+ # @return [String] the name of the display
426
+ attribute :name
427
+
428
+ # @!attribute parity
429
+ # @return ["none", "odd", "even" "mark", "space"] the parity setting of
430
+ # the RS232 connection to the display
431
+ attribute :parity
432
+
433
+ # @!attribute power_on_command
434
+ # @return [String, nil] the command to turn the display on via the RS232 connection
435
+ attribute :power_on_command
436
+
437
+ # @!attribute power_on_feedback_command
438
+ # @return [String, nil] the feedback command to turn the display on via the RS232 connection
439
+ attribute :power_on_feedback_command
440
+
441
+ # @!attribute power_on_feedback_result
442
+ # @return [String, nil] the result of the feedback command to turn the display on via the RS232 connection
443
+ attribute :power_on_feedback_result
444
+
445
+ # @!attribute power_off_command
446
+ # @return [String, nil] the command to turn the display off via the RS232 connection
447
+ attribute :power_off_command
448
+
449
+ # @!attribute power_off_feedback_command
450
+ # @return [String, nil] the feedback command to turn the display off via the RS232 connection
451
+ attribute :power_off_feedback_command
452
+
453
+ # @!attribute power_off_feedback_result
454
+ # @return [String, nil] the result of the feedback command to turn the display off via the RS232 connection
455
+ attribute :power_off_feedback_result
456
+
457
+ # @!attribute resolutions
458
+ # @return [Array<Display::Resolution>] the resolutions supported by the display
459
+ has_many :resolutions, class_name: "LWS::DigitalSignage::Display::Resolution"
460
+
461
+ # @!attribute slug [r]
462
+ # @return [String] the slug(ified name) of the display
463
+ attribute :slug
464
+
465
+ # @!attribute stop_bits
466
+ # @return [String] the stop bits setting of the RS232 connection to the display
467
+ attribute :stop_bits
468
+
469
+ # @!attribute created_at [r]
470
+ # @return [String] the timestamp of when the display was created
471
+ attribute :created_at
472
+
473
+ # @!attribute updated_at [r]
474
+ # @return [String] the timestamp of when the display was last updated
475
+ attribute :updated_at
476
+ end
477
+
478
+ # = The display input class
479
+ #
480
+ # @note
481
+ # This class is only used within the context of the {Display} class.
482
+ class Display::Input < LWS::Generic::Model
483
+ use_api LWS::DigitalSignage.api
484
+ uri "displays/:display_id/inputs/(:id)"
485
+
486
+ # @!attribute id [r]
487
+ # @return [Fixnum] the (unique) ID of the display input
488
+ attribute :id
489
+
490
+ # @!attribute command
491
+ # @return [String, nil] the command to send to select the display input
492
+ attribute :command
493
+
494
+ # @!attribute display
495
+ # @return [Display] the display associated with the input
496
+ belongs_to :display, class_name: "LWS::DigitalSignage::Display"
497
+ # :nocov:
498
+ def display
499
+ # Create a dummy method so that the original #display method is not used
500
+ association(:display).load
501
+ end
502
+ # :nocov:
503
+
504
+ # @!attribute display_id
505
+ # @return [Fixnum] the ID of the display associated with the input
506
+ attribute :display_id
507
+
508
+ # @!attribute feedback_command
509
+ # @return [String, nil] the feedback command to check to the display input
510
+ attribute :feedback_command
511
+
512
+ # @!attribute feedback_result
513
+ # @return [String, nil] the result of the feedback command sent to check the display input
514
+ attribute :feedback_result
515
+
516
+ # @!attribute name
517
+ # @return [String] the name of the display input
518
+ attribute :name
519
+
520
+ # @!attribute created_at [r]
521
+ # @return [String] the timestamp of when the display input was created
522
+ attribute :created_at
523
+
524
+ # @!attribute updated_at [r]
525
+ # @return [String] the timestamp of when the display input was last updated
526
+ attribute :updated_at
527
+ end
528
+
529
+ # = The display resolution class
530
+ class Display::Resolution < LWS::Generic::Model
531
+ use_api LWS::DigitalSignage.api
532
+ uri "display/resolutions/(:id)"
533
+
534
+ # @!attribute id [r]
535
+ # @return [Fixnum] the (unique) ID of the display resolution
536
+ attribute :id
537
+
538
+ # @!attribute aspect_ratio [r]
539
+ # The aspect ratio is recalculated immediately when the width and/or
540
+ # height of the resolution changes.
541
+ #
542
+ # @return [String] the aspect ratio of the resolution
543
+ attribute :aspect_ratio
544
+
545
+ # @!attribute displays
546
+ # @return [Array<Display>] the displays supporting the display resolution
547
+ has_many :displays, class_name: "LWS::DigitalSignage::Display",
548
+ uri: "display/resolutions/:resolution_id/displays"
549
+
550
+ # @!attribute height
551
+ # @return [Fixnum] the height of the resolution
552
+ attribute :height
553
+
554
+ # @!attribute models
555
+ # @return [Array<Player::Model>] the player models that support the
556
+ # display resolution
557
+ has_many :models, class_name: "LWS::DigitalSignage::Player::Model",
558
+ uri: "display/resolutions/:resolution_id/models"
559
+
560
+ # @!attribute scanning_mode
561
+ # @return ["progressive", "interlaced"] the scanning mode setting of
562
+ # the display resolution
563
+ attribute :scanning_mode
564
+
565
+ # @!attribute width
566
+ # @return [Fixnum] the width of the resolution
567
+ attribute :width
568
+
569
+ # @!attribute created_at [r]
570
+ # @return [String] the timestamp of when the display resolution was created
571
+ attribute :created_at
572
+
573
+ # @!attribute updated_at [r]
574
+ # @return [String] the timestamp of when the display resolution was last updated
575
+ attribute :updated_at
576
+ end
577
+
578
+ # = The player class
579
+ class Player < LWS::Generic::Model
580
+ use_api LWS::DigitalSignage.api
581
+
582
+ # @!attribute id [r]
583
+ # @return [Fixnum] the (unique) ID of the player
584
+ attribute :id
585
+
586
+ # @!attribute channel
587
+ # @return [Channel] the channel of the player
588
+ belongs_to :channel, class_name: "LWS::DigitalSignage::Channel"
589
+
590
+ # @!attribute channel_id
591
+ # @return [Fixnum] the ID of the channel of the player
592
+ attribute :channel_id
593
+
594
+ # @!attribute company
595
+ # @return [LWS::Auth::Company] the company the player belongs to
596
+ belongs_to :company, class_name: "LWS::Auth::Company"
597
+
598
+ # @!attribute company_id
599
+ # @return [Fixnum] the ID of the company the player belongs to
600
+ attribute :company_id
601
+
602
+ # @!attribute components
603
+ # @return [Array<Player::Component>] the components of the player
604
+ has_many :components, class_name: "LWS::DigitalSignage::Player::Component"
605
+
606
+ # @!attribute configuration
607
+ # @return [Player::Configuration] the configuration of the player
608
+ belongs_to :configuration, class_name: "LWS::DigitalSignage::Player::Configuration",
609
+ uri: "player/configurations/:id"
610
+
611
+ # @!attribute configuration_id
612
+ # @return [Fixnum] the ID of the configuration of the player
613
+ attribute :configuration_id
614
+
615
+ # @!attribute feedbacks
616
+ # @return [Array<Player::Feedback>] the feedbacks for the player
617
+ has_many :feedbacks, class_name: "LWS::DigitalSignage::Player::Feedback"
618
+
619
+ # @!attribute logs
620
+ # @return [Array<Player::Log>] the logs of the player
621
+ has_many :logs, class_name: "LWS::DigitalSignage::Player::Log"
622
+
623
+ # @!attribute mac_lan
624
+ # @return [String, nil] the MAC address of the LAN interface of the player
625
+ attribute :mac_lan
626
+
627
+ # @!attribute mac_wifi
628
+ # @return [String, nil] the MAC address of the Wi-Fi interface of the player
629
+ attribute :mac_wifi
630
+
631
+ # @!attribute model
632
+ # @return [Player::Model] the model of the player
633
+ belongs_to :model, class_name: "LWS::DigitalSignage::Player::Model",
634
+ uri: "player/models/:id"
635
+
636
+ # @!attribute model_id
637
+ # @return [Fixnum] the ID of the model of the player
638
+ attribute :model_id
639
+
640
+ # @!attribute notifications
641
+ # @return [Array<Player::Notification>] the notifications for the player
642
+ has_many :notifications, class_name: "LWS::DigitalSignage::Player::Notification"
643
+
644
+ # @!attribute operational_since
645
+ # @return [String, nil] the date/time when the player became operational
646
+ # for the first time
647
+ attribute :operational_since
648
+
649
+ # @!attribute parts
650
+ # @return [Array<Player::Component::Part>] the parts of the player
651
+ has_many :parts, class_name: "LWS::DigitalSignage::Player::Component::Part"
652
+
653
+ # @!attribute release_channel
654
+ # @return [Player::Os::ReleaseChannel] the player OS release channel used
655
+ # by the player
656
+ belongs_to :release_channel, class_name: "LWS::DigitalSignage::Player::Os::ReleaseChannel",
657
+ uri: "player/os/release_channels/:id"
658
+
659
+ # @!attribute release_channel_id
660
+ # @return [Fixnum] the ID of the player OS release channel used by the
661
+ # player
662
+ attribute :releasee_channel_id
663
+
664
+ # @!attribute requests
665
+ # @return [Array<Player::Feedback>] the requests for the player
666
+ has_many :requests, class_name: "LWS::DigitalSignage::Player::Request"
667
+
668
+ # @!attribute screenshots
669
+ # @return [Array<Player::Screenshot>] the screenshots of the player
670
+ has_many :screenshots, class_name: "LWS::DigitalSignage::Player::Screenshot"
671
+
672
+ # @!attribute serial_number [r]
673
+ # @return [String] the serial number of the player
674
+ attribute :serial_number
675
+
676
+ # @!attribute service
677
+ # @return [Boolean] whether the player is being serviced/is in service
678
+ attribute :service
679
+
680
+ # @!attribute status
681
+ # @return ["unknown", "good", "warning", "bad"] the player status
682
+ attribute :status
683
+
684
+ # @!attribute tags
685
+ # @return [Array<Player::Tag>] the tags of the player
686
+ has_many :tags, class_name: "LWS::DigitalSignage::Player::Tag"
687
+
688
+ # @!attribute created_at [r]
689
+ # @return [String] the timestamp of when the player was created
690
+ attribute :created_at
691
+
692
+ # @!attribute updated_at [r]
693
+ # @return [String] the timestamp of when the player was last updated
694
+ attribute :updated_at
695
+ end
696
+
697
+ # = The player component class
698
+ class Player::Component < LWS::Generic::Model
699
+ use_api LWS::DigitalSignage.api
700
+ uri "player/components/(:id)"
701
+
702
+ # @!attribute id [r]
703
+ # @return [Fixnum] the (unique) ID of the player component
704
+ attribute :id
705
+
706
+ # @!attribute description
707
+ # @return [String, nil] the description of the player component
708
+ attribute :description
709
+
710
+ # @!attribute models
711
+ # @return [Array<Player::Model>] the player models that use the component
712
+ has_many :models, class_name: "LWS::DigitalSignage::Player::Model",
713
+ uri: "player/components/:component_id/models"
714
+
715
+ # @!attribute name
716
+ # @return [String] the name of the player component
717
+ attribute :name
718
+
719
+ # @!attribute parts
720
+ # @return [Array<Player::Component::Part>] the parts the component is made out of
721
+ has_many :parts, class_name: "LWS::DigitalSignage::Player::Component::Part",
722
+ uri: "player/components/:component_id/parts"
723
+
724
+ # @!attribute slug [r]
725
+ # @return [String] the slug(ified name) of the player component
726
+ attribute :slug
727
+
728
+ # @!attribute supplier
729
+ # @return [LWS::Auth::Company] the supplier of the component part
730
+ belongs_to :supplier, class_name: "LWS::Auth::Company",
731
+ foreign_key: "supplier_id",
732
+ uri: "companies/:id"
733
+
734
+ # @!attribute supplier_id
735
+ # @return [Fixnum] the ID of the supplier of the component part
736
+ attribute :supplier_id
737
+
738
+ # @!attribute created_at [r]
739
+ # @return [String] the timestamp of when the player component was created
740
+ attribute :created_at
741
+
742
+ # @!attribute updated_at [r]
743
+ # @return [String] the timestamp of when the player component was last updated
744
+ attribute :updated_at
745
+ end
746
+
747
+ # = The player component part class
748
+ #
749
+ # @note
750
+ # This class is only used within the context of the {Player::Component}
751
+ # class.
752
+ class Player::Component::Part < LWS::Generic::Model
753
+ use_api LWS::DigitalSignage.api
754
+ uri "players/components/:component_id/parts/(:id)"
755
+
756
+ # @!attribute id [r]
757
+ # @return [Fixnum] the (unique) ID of the player component part
758
+ attribute :id
759
+
760
+ # @!attribute component
761
+ # @return [Player::Component] the player component that uses the part
762
+ belongs_to :component, class_name: "LWS::DigitalSignage::Player::Component",
763
+ uri: "player/components/:id"
764
+
765
+ # @!attribute component_id
766
+ # @return [Fixnum] the ID of the player component that uses the part
767
+ attribute :component_id
768
+
769
+ # @!attribute player
770
+ # @return [Player, nil] the player the component part is used in
771
+ belongs_to :player, class_name: "LWS::DigitalSignage::Player"
772
+
773
+ # @!attribute player_id
774
+ # @return [Fixnum, nil] the ID of the player the component part is used in
775
+ attribute :player_id
776
+
777
+ # @!attribute serial_number
778
+ # @return [String] the serial number of the player component part
779
+ attribute :serial_number
780
+
781
+ # @!attribute created_at [r]
782
+ # @return [String] the timestamp of when the player component part was created
783
+ attribute :created_at
784
+
785
+ # @!attribute updated_at [r]
786
+ # @return [String] the timestamp of when the player component part was last updated
787
+ attribute :updated_at
788
+ end
789
+
790
+ # = The player configuration class
791
+ class Player::Configuration < LWS::Generic::Model
792
+ use_api LWS::DigitalSignage.api
793
+ uri "player/configurations/(:id)"
794
+
795
+ # @!attribute id [r]
796
+ # @return [Fixnum] the (unique) ID of the player configuration
797
+ attribute :id
798
+
799
+ # @!attribute company
800
+ # @return [LWS::Auth::Company] the company the player configuration belongs to
801
+ belongs_to :company, class_name: "LWS::Auth::Company"
802
+
803
+ # @!attribute company_id
804
+ # @return [Fixnum] the ID of the company the player configuration belongs to
805
+ attribute :company_id
806
+
807
+ # @!attribute description
808
+ # @return [String, nil] the description of the player configuration
809
+ attribute :description
810
+
811
+ # @!attribute name
812
+ # @return [String] the name of the player configuration
813
+ attribute :name
814
+
815
+ # @!attribute players
816
+ # @return [Array<Player>] the players the configuration is used for
817
+ has_many :players, class_name: "LWS::DigitalSignage::Player",
818
+ uri: "player/configurations/:configuration_id/players"
819
+
820
+ # @!attribute predefined_configuration
821
+ # @return [Player::PredefinedConfiguration, nil] the predefined
822
+ # configuration that is used as a bases for the configuration
823
+ belongs_to :predefined_configuration, class_name: "LWS::DigitalSignage::Player::PredefinedConfiguration",
824
+ uri: "player/predefined_configurations/:id"
825
+
826
+ # @!attribute predefined_configuration_id
827
+ # @return [Fixnum, nil] the ID of the predefined configuration that is used
828
+ # as a basis for the player configuration
829
+ attribute :predefined_configuration_id
830
+
831
+ # @!attribute settings
832
+ # @return [Player::Configuration::Setting] the settings of the player configuration
833
+ has_many :settings, class_name: "LWS::DigitalSignage::Player::Configuration::Setting",
834
+ uri: "player/configurations/:configuration_id/settings"
835
+
836
+ # @!attribute created_at [r]
837
+ # @return [String] the timestamp of when the player configuration was created
838
+ attribute :created_at
839
+
840
+ # @!attribute updated_at [r]
841
+ # @return [String] the timestamp of when the player configuration was last updated
842
+ attribute :updated_at
843
+ end
844
+
845
+ # = The player configuration setting class
846
+ #
847
+ # @note
848
+ # This class is only used within the context of the {Player::Configuration}
849
+ # class.
850
+ class Player::Configuration::Setting < LWS::Generic::Model
851
+ use_api LWS::DigitalSignage.api
852
+ uri "player/configurations/:configuration_id/settings/(:id)"
853
+
854
+ # @!attribute id [r]
855
+ # @return [Fixnum] the (unique) ID of the player configuration setting
856
+ attribute :id
857
+
858
+ # @!attribute configuration
859
+ # @return [Player::Configuration] the player configuration the setting
860
+ # is defined in
861
+ belongs_to :configuration, class_name: "LWS::DigitalSignage::Player::Configuration",
862
+ uri: "player/configurations/:id"
863
+
864
+ # @!attribute configuration_id
865
+ # @return [Fixnum] the ID of the player configuration the setting is defined in
866
+ attribute :configuration_id
867
+
868
+ # @!attribute key
869
+ # @return [String] the key of the player configuration setting
870
+ attribute :key
871
+
872
+ # @!attribute protected_value
873
+ # @return [Boolean] whether the value of the player configuration setting
874
+ # should return a protected representation of the value
875
+ attribute :protected_value
876
+
877
+ # @!attribute value
878
+ # @return [String, nil] the value of the player configuration setting
879
+ attribute :value
880
+
881
+ # @!attribute created_at [r]
882
+ # @return [String] the timestamp of when the player configuration setting was created
883
+ attribute :created_at
884
+
885
+ # @!attribute updated_at [r]
886
+ # @return [String] the timestamp of when the player configuration setting was last updated
887
+ attribute :updated_at
888
+ end
889
+
890
+ # = The player feedback class
891
+ #
892
+ # @note
893
+ # This class is only used within the context of the {Player} class.
894
+ class Player::Feedback < LWS::Generic::Model
895
+ use_api LWS::DigitalSignage.api
896
+ uri "players/:player_id/feedbacks/(:id)"
897
+
898
+ # @!attribute id [r]
899
+ # @return [Fixnum] the (unique) ID of the player feedback
900
+ attribute :id
901
+
902
+ # @!attribute player
903
+ # @return [Player] the player the feedback is originating from
904
+ belongs_to :player, class_name: "LWS::DigitalSignage::Player"
905
+
906
+ # @!attribute player_id
907
+ # @return [Fixnum] the ID of the player the feedback is originating from
908
+ attribute :player_id
909
+
910
+ # @!attribute release
911
+ # @return [Player::Os::Branch::Release] the player OS branch release the
912
+ # feedback is related to
913
+ # FIXME: Missing branch_id field in LWS
914
+ belongs_to :release, class_name: "LWS::DigitalSignage::Player::Os::Branch::Release",
915
+ uri: "player/os/branches/:branch_id/releases/:id"
916
+
917
+ # @!attribute release_id
918
+ # @return [Fixnum] the ID of the player OS branch release the feedback
919
+ # is related to
920
+
921
+ # @!attribute results
922
+ # @return [Array<Player::Feedback::Result>] the results of the player feedback
923
+ # FIXME: Chained associations don't work yet in Spyke (#89)
924
+ has_many :results, class_name: "LWS::DigitalSignage::Player::Feedback::Result",
925
+ uri: "players/:player_id/feedbacks/:feedback_id/results"
926
+
927
+ # @!attribute created_at [r]
928
+ # @return [String] the timestamp of when the player feedback was created
929
+ attribute :created_at
930
+
931
+ # @!attribute updated_at [r]
932
+ # @return [String] the timestamp of when the player feedback was last updated
933
+ attribute :updated_at
934
+ end
935
+
936
+ # = The player feedback result class
937
+ #
938
+ # @note
939
+ # This class is only used within the context of the {Player::Feedback}
940
+ # class.
941
+ class Player::Feedback::Result < LWS::Generic::Model
942
+ use_api LWS::DigitalSignage.api
943
+ uri "players/:player_id/feedbacks/:feedback_id/results/(:id)"
944
+
945
+ # @!attribute id [r]
946
+ # @return [Fixnum] the (unique) ID of the player feedback result
947
+ attribute :id
948
+
949
+ # @!attribute feedback
950
+ # @return [Player::Feedback] the player feedback the result is a part of
951
+ belongs_to :feedback, class_name: "LWS::DigitalSignage::Player::Feedback",
952
+ uri: "players/:player_id/feedbacks/:id"
953
+
954
+ # @!attribute feedback_id
955
+ # @return [Player::Feedback] the ID of the player feedback the result is a part of
956
+ attribute :feedback_id
957
+
958
+ # @!attribute key
959
+ # @return [String] the key of the player feedback result
960
+ attribute :key
961
+
962
+ # @!attribute player
963
+ # @return [Player] the player the feedback result is for
964
+ belongs_to :player, class_name: "LWS::DigitalSignage::Player"
965
+
966
+ # @!attribute player_id
967
+ # @return [Fixnum] the ID of the player the feedback result is for
968
+ attribute :player_id
969
+
970
+ # @!attribute value
971
+ # @return [String] the value of the player feedback result
972
+ attribute :value
973
+
974
+ # @!attribute created_at [r]
975
+ # @return [String] the timestamp of when the player feedback result was created
976
+ attribute :created_at
977
+
978
+ # @!attribute updated_at [r]
979
+ # @return [String] the timestamp of when the player feedback result was last updated
980
+ attribute :updated_at
981
+ end
982
+
983
+ # = The player log class
984
+ #
985
+ # @note
986
+ # This class is only used within the context of the {Player} class.
987
+ class Player::Log < LWS::Generic::Model
988
+ use_api LWS::DigitalSignage.api
989
+ uri "players/:player_id/logs/(:id)"
990
+
991
+ # @!attribute id [r]
992
+ # @return [Fixnum] the (unique) ID of the player log
993
+ attribute :id
994
+
995
+ # @!attribute log_object
996
+ # @return [String] the URL of the player log object
997
+ attribute :log_object
998
+
999
+ # @!attribute player
1000
+ # @return [Player] the player the log is produced by
1001
+ belongs_to :player, class_name: "LWS::DigitalSignage::Player"
1002
+
1003
+ # @!attribute player_id
1004
+ # @return [Fixnum] the ID of the player the log is produced by
1005
+ attribute :player_id
1006
+
1007
+ # @!attribute processed
1008
+ # @return [Boolean] whether the player log has been processed
1009
+ attribute :processed
1010
+
1011
+ # @!attribute created_at [r]
1012
+ # @return [String] the timestamp of when the player log was created
1013
+ attribute :created_at
1014
+
1015
+ # @!attribute updated_at [r]
1016
+ # @return [String] the timestamp of when the player log was last updated
1017
+ attribute :updated_at
1018
+ end
1019
+
1020
+ # = The player model
1021
+ class Player::Model < LWS::Generic::Model
1022
+ use_api LWS::DigitalSignage.api
1023
+ uri "player/models/(:id)"
1024
+
1025
+ # @!attribute id [r]
1026
+ # @return [Fixnum] the (unique) ID of the player model
1027
+ attribute :id
1028
+
1029
+ # @!attribute branches
1030
+ # @return [Array<Player::Os::Branch>] the player OS branches allowed for
1031
+ # the player model
1032
+ has_many :branches, class_name: "LWS::DigitalSignage::Player::Os::Branch",
1033
+ uri: "player/models/:model_id/branches"
1034
+
1035
+ # @!attribute capabilities
1036
+ # @return [Array<Player::Model::Capability>] the capabilities of the
1037
+ # player model
1038
+ has_many :capabilities, class_name: "LWS::DigitalSignage::Player::Model::Capability",
1039
+ uri: "player/models/:model_id/capabilities"
1040
+
1041
+ # @!attribute components
1042
+ # @return [Array<Player::Component>] the player components that are
1043
+ # used in the player model
1044
+ has_many :components, class_name: "LWS::DigitalSignage::Player::Component",
1045
+ uri: "player/models/:model_id/components"
1046
+
1047
+ # @!attribute mbf_hours
1048
+ # @return [Fixnum] the MBF (mean time between failures) in hours of
1049
+ # the player mode
1050
+ attribute :mbf_hours
1051
+
1052
+ # @!attribute name
1053
+ # @return [String] the name of the player model
1054
+ attribute :name
1055
+
1056
+ # @!attribute players
1057
+ # @return [Array<Player>] the player that have the player model
1058
+ has_many :players, class_name: "LWS::DigitalSignage::Player",
1059
+ uri: "player/models/:model_id/players"
1060
+
1061
+ # @!attribute release_channels
1062
+ # @return [Array<Player::Os::ReleaseChannel>] the player OS release
1063
+ # channels used for the player model
1064
+ has_many :release_channels, class_name: "LWS::DigitalSignage::Player::Os::ReleaseChannel",
1065
+ uri: "player/models/:model_id/release_channels"
1066
+
1067
+ # @!attribute resolutions
1068
+ # @return [Array<Display::Resolution>] the display resolutions
1069
+ # supported by the player model
1070
+ has_many :resolutions, class_name: "LWS::DigitalSignage::Display::Resolution",
1071
+ uri: "player/models/:model_id/resolutions"
1072
+
1073
+ # @!attribute slug [r]
1074
+ # @return [String] the slug(ified name) of the player model
1075
+ attribute :slug
1076
+
1077
+ # @!attribute support_end
1078
+ # @return [String] the end date of support for the model
1079
+ attribute :support_end
1080
+
1081
+ # @!attribute support_eol
1082
+ # @return [String] the date when the model is considered end-of-life in
1083
+ # terms of support
1084
+ attribute :support_eol
1085
+
1086
+ # @!attribute support_starts
1087
+ # @return [String] the start date of support for the model
1088
+ attribute :support_starts
1089
+
1090
+ # @!attribute temperature_critical
1091
+ # @return [Fixnum, nil] the critical temperature threshold (°C) for the
1092
+ # player model
1093
+ attribute :temperature_critical
1094
+
1095
+ # @!attribute temperature_warning
1096
+ # @return [Fixnum, nil] the warning temperature threshold (°C) for the
1097
+ # player model
1098
+ attribute :temperature_warning
1099
+
1100
+ # @!attribute created_at [r]
1101
+ # @return [String] the timestamp of when the player model was created
1102
+ attribute :created_at
1103
+
1104
+ # @!attribute updated_at [r]
1105
+ # @return [String] the timestamp of when the player model was last updated
1106
+ attribute :updated_at
1107
+ end
1108
+
1109
+ # = The player model capability class
1110
+ #
1111
+ # @note
1112
+ # This class is only used within the context of the {Player::Model}
1113
+ # class.
1114
+ class Player::Model::Capability < LWS::Generic::Model
1115
+ use_api LWS::DigitalSignage.api
1116
+ uri "player/models/:model_id/capabilities/(:id)"
1117
+
1118
+ # @!attribute id [r]
1119
+ # @return [Fixnum] the (unique) ID of the player model capability
1120
+ attribute :id
1121
+
1122
+ # @!attribute key
1123
+ # @return [String] the key of the player model capability
1124
+ attribute :key
1125
+
1126
+ # @!attribute model
1127
+ # @return [Player::Model] the player model that has the capability
1128
+ belongs_to :model, class_name: "LWS::DigitalSignage::Player::Model",
1129
+ uri: "player/models/:id"
1130
+
1131
+ # @!attribute model_id
1132
+ # @return [Fixnum] the ID of the player model that has the capability
1133
+ attribute :model_id
1134
+
1135
+ # @!attribute value
1136
+ # @return [String] the value of the player model capability
1137
+ attribute :value
1138
+
1139
+ # @!attribute created_at [r]
1140
+ # @return [String] the timestamp of when the player model capability was created
1141
+ attribute :created_at
1142
+
1143
+ # @!attribute updated_at [r]
1144
+ # @return [String] the timestamp of when the player model capability was last updated
1145
+ attribute :updated_at
1146
+ end
1147
+
1148
+ # = The player notification
1149
+ #
1150
+ # @note
1151
+ # This class is only used within the context of the {Player} class.
1152
+ class Player::Notification < LWS::Generic::Model
1153
+ use_api LWS::DigitalSignage.api
1154
+ uri "players/:player_id/notifications/(:id)"
1155
+
1156
+ # @!attribute id [r]
1157
+ # @return [Fixnum] the (unique) ID of the player notification
1158
+ attribute :id
1159
+
1160
+ # @!attribute key
1161
+ # @return [String] the key of the player notification
1162
+ attribute :key
1163
+
1164
+ # @!attribute player
1165
+ # @return [Player] the player the notification is sent by
1166
+ belongs_to :player, class_name: "LWS::DigitalSignage::Player"
1167
+
1168
+ # @!attribute player_id
1169
+ # @return [Fixnum] the ID of the player the notification is sent by
1170
+ attribute :player_id
1171
+
1172
+ # @!attribute protected_value
1173
+ # @return [Boolean] whether the value of the player nofication should
1174
+ # return a protected representation of the value
1175
+ attribute :protected_value
1176
+
1177
+ # @!attribute repeated
1178
+ # @return [Fixnum, nil] the number of times the notification was repeated
1179
+ attribute :repeated
1180
+
1181
+ # @!attribute value
1182
+ # @return [String] the value of the player notification
1183
+ attribute :value
1184
+
1185
+ # @!attribute created_at [r]
1186
+ # @return [String] the timestamp of when the player notification was created
1187
+ attribute :created_at
1188
+
1189
+ # @!attribute updated_at [r]
1190
+ # @return [String] the timestamp of when the player notification was last updated
1191
+ attribute :updated_at
1192
+ end
1193
+
1194
+ # = The player OS module
1195
+ module Player::Os; end
1196
+
1197
+ # = The player OS branch class
1198
+ class Player::Os::Branch < LWS::Generic::Model
1199
+ use_api LWS::DigitalSignage.api
1200
+ uri "player/os/branches/(:id)"
1201
+
1202
+ # @!attribute id [r]
1203
+ # @return [Fixnum] the (unique) ID of the player OS branch
1204
+ attribute :id
1205
+
1206
+ # @!attribute models
1207
+ # @return [Array<Player::Model>] the player models that allow the player
1208
+ # OS branch to be used
1209
+ has_many :models, class_name: "LWS::DigitalSignage::Player::Model"
1210
+
1211
+ # @!attribute name
1212
+ # @return [String] the name of the player OS branch
1213
+ attribute :name
1214
+
1215
+ # @!attribute release_channel
1216
+ # @return [Player::Os::Branch::ReleaseChannel] the player OS release
1217
+ # channel the branch is for
1218
+ belongs_to :release_channel, class_name: "LWS::DigitalSignage::Player::Os::ReleaseChannel",
1219
+ uri: "player/os/release_channels/:id"
1220
+
1221
+ # @!attribute release_channel_id
1222
+ # @return [Fixnum] the ID of the player OS release channel the branch
1223
+ # is for
1224
+ attribute :release_channel_id
1225
+
1226
+ # @!attribute releases
1227
+ # @return [Array<Player::Os::Branch::Release>] the releases that are part
1228
+ # of the branch
1229
+ has_many :releases, class_name: "LWS::DigitalSignage::Player::Os::Branch::Release",
1230
+ uri: "player/os/branches/:branch_id/releases"
1231
+
1232
+ # @!attribute slug [r]
1233
+ # @return [String] the slug(ified name) of the player OS branch
1234
+ attribute :slug
1235
+
1236
+ # @!attribute created_at [r]
1237
+ # @return [String] the timestamp of when the player OS branch was created
1238
+ attribute :created_at
1239
+
1240
+ # @!attribute updated_at [r]
1241
+ # @return [String] the timestamp of when the player OS branch was last updated
1242
+ attribute :updated_at
1243
+ end
1244
+
1245
+ # = The player OS branch release class
1246
+ #
1247
+ # @note
1248
+ # This class is only used within the context of the {Player::Os::Branch}
1249
+ # class.
1250
+ class Player::Os::Branch::Release < LWS::Generic::Model
1251
+ use_api LWS::DigitalSignage.api
1252
+ uri "player/os/branches/:branch_id/releases/(:id)"
1253
+
1254
+ # @!attribute id [r]
1255
+ # @return [Fixnum] the (unique) ID of the player OS branch release
1256
+ attribute :id
1257
+
1258
+ # @!attribute branch
1259
+ # @return [Player::Os::Branch] the player OS branch the release is for
1260
+ belongs_to :branch, class_name: "LWS::DigitalSignage::Player::Os::Branch",
1261
+ uri: "player/os/branches/:id"
1262
+
1263
+ # @!attribute branch_id
1264
+ # @return [Fixnum] the ID of the player OS branch the release is for
1265
+ attribute :branch_id
1266
+
1267
+ # @!attribute commit_date
1268
+ # @return [String] the date/time of the release (commit)
1269
+ attribute :commit_date
1270
+
1271
+ # @!attribute commit_hash
1272
+ # @return [String] the SHA256 commit hash of the release (commit)
1273
+ attribute :commit_hash
1274
+
1275
+ # @!attribute commit_message
1276
+ # @return [String] the message of the release (commit)
1277
+ attribute :commit_message
1278
+
1279
+ # @!attribute package_versions
1280
+ # @return [Array<Player::Os::Package::Version>] the player OS package
1281
+ # versions in this release
1282
+ # FIXME: Chained associations don't work yet in Spyke (#89)
1283
+ has_many :package_versions, class_name: "LWS::DigitalSignage::Player::Os::Package::Version",
1284
+ uri: "player/os/branches/:branch_id/releases/:release_id/package_versions"
1285
+
1286
+ # @!attribute package_version_changes
1287
+ # @return [Array<Player::Os::Package::VersionChange>] the player OS package
1288
+ # version changes in this release
1289
+ # FIXME: Chained associations don't work yet in Spyke (#89)
1290
+ has_many :package_version_changes, class_name: "LWS::DigitalSignage::Player::Os::Package::VersionChange",
1291
+ uri: "player/os/branches/:branch_id/releases/:release_id/package_version_changes"
1292
+
1293
+ # @!attribute parent
1294
+ # @return [Player::Os::Branch::Release, nil] the parent of the player OS
1295
+ # branch release
1296
+ belongs_to :parent, class_name: "LWS::DigitalSignage::Player::Os::Branch::Release",
1297
+ foreign_key: :parent_id,
1298
+ uri: "player/os/branches/:branch_id/releases/:id"
1299
+
1300
+ # @!attribute parent_id
1301
+ # @return [Fixnum, nil] the ID of the parent of the player OS branch release
1302
+ attribute :parent_id
1303
+
1304
+ # @!attribute promoted_release
1305
+ # @return [Player::Os::Branch::Release, nil] the player OS branch
1306
+ # release that the release is a promotion of
1307
+ belongs_to :promoted_release, class_name: "LWS::DigitalSignage::Player::Os::Branch::Release",
1308
+ foreign_key: :promoted_release_id,
1309
+ uri: "player/os/branches/:branch_id/releases/:id"
1310
+
1311
+ # @!attribute promoted_release_id
1312
+ # @return [Fixnum, nil] the ID of the player OS branch release that the
1313
+ # release is a promotion of
1314
+ attribute :promoted_release_id
1315
+
1316
+ # @!attribute promoting_releases
1317
+ # @return [Array<Player::Os::Branch::Release>] the player OS branch releases
1318
+ # that promote the release
1319
+ has_many :promoting_release, class_name: "LWS::DigitalSignage::Player::Os::Branch::Release"
1320
+
1321
+ # @!attribute version
1322
+ # @return [String] the version of the release
1323
+ attribute :version
1324
+
1325
+ # @!attribute created_at [r]
1326
+ # @return [String] the timestamp of when the player OS branch release was created
1327
+ attribute :created_at
1328
+
1329
+ # @!attribute updated_at [r]
1330
+ # @return [String] the timestamp of when the player OS branch release was last updated
1331
+ attribute :updated_at
1332
+ end
1333
+
1334
+ # = The player OS package class
1335
+ class Player::Os::Package < LWS::Generic::Model
1336
+ use_api LWS::DigitalSignage.api
1337
+ uri "player/os/packages/(:id)"
1338
+
1339
+ # @!attribute id [r]
1340
+ # @return [Fixnum] the (unique) ID of the player OS package
1341
+ attribute :id
1342
+
1343
+ # @!attribute name
1344
+ # @return [String] the name of the player OS package
1345
+ attribute :name
1346
+
1347
+ # @!attribute version_changes
1348
+ # @return [Array<Player::Os::Package::VersionChange>] the version
1349
+ # changes of the player OS package present in branches
1350
+ has_many :version_changes, class_name: "LWS::DigitalSignage::Player::Os::Package::VersionChange",
1351
+ uri: "player/os/packages/:package_id/version_changes"
1352
+
1353
+ # @!attribute versions
1354
+ # @return [Array<Player::Os::Package::Version>] the versions of the
1355
+ # player OS package present in branches
1356
+ has_many :versions, class_name: "LWS::DigitalSignage::Player::Os::Package::Version",
1357
+ uri: "player/os/packages/:package_id/versions"
1358
+
1359
+ # @!attribute created_at [r]
1360
+ # @return [String] the timestamp of when the player OS package was created
1361
+ attribute :created_at
1362
+
1363
+ # @!attribute updated_at [r]
1364
+ # @return [String] the timestamp of when the player OS package was last updated
1365
+ attribute :updated_at
1366
+ end
1367
+
1368
+ # = The player OS package version class
1369
+ #
1370
+ # @note
1371
+ # This class is only used within the context of the {Player::Os::Package}
1372
+ # class.
1373
+ class Player::Os::Package::Version < LWS::Generic::Model
1374
+ use_api LWS::DigitalSignage.api
1375
+ uri "player/os/packages/:package_id/versions/(:id)"
1376
+
1377
+ # @!attribute id [r]
1378
+ # @return [Fixnum] the (unique) ID of the player OS package version
1379
+ attribute :id
1380
+
1381
+ # @!attribute number
1382
+ # @return [String] the number of the player OS package version
1383
+ attribute :number
1384
+
1385
+ # @!attribute package
1386
+ # @return [Player::Os::Package] the player OS package the version is of
1387
+ belongs_to :package, class_name: "LWS::DigitalSignage::Player::Os::Package",
1388
+ uri: "player/os/packages/:id"
1389
+
1390
+ # @!attribute package_id
1391
+ # @return [Fixnum] the ID the player OS package the version is of
1392
+ attribute :package_id
1393
+
1394
+ # @!attribute branch_releases
1395
+ # @return [Array<Player::Os::Branch::Release>] the branch releases the
1396
+ # player OS package version is a part of
1397
+ # FIXME: Missing branch_id in LWS
1398
+ has_many :branch_releases, class_name: "LWS::DigitalSignage::Player::Os::Branch::Release",
1399
+ foreign_key: :branch_release_id,
1400
+ uri: "player/os/branches/:branch_id/releases/:id"
1401
+
1402
+ # @!attribute created_at [r]
1403
+ # @return [String] the timestamp of when the player OS package version was created
1404
+ attribute :created_at
1405
+
1406
+ # @!attribute updated_at [r]
1407
+ # @return [String] the timestamp of when the player OS package version was last updated
1408
+ attribute :updated_at
1409
+ end
1410
+
1411
+ # = The player OS package version change class
1412
+ #
1413
+ # @note
1414
+ # This class is only used within the context of the {Player::Os::Package}
1415
+ # class.
1416
+ class Player::Os::Package::VersionChange < LWS::Generic::Model
1417
+ use_api LWS::DigitalSignage.api
1418
+ uri "player/os/packages/:package_id/version_changes/(:id)"
1419
+
1420
+ # @!attribute id [r]
1421
+ # @return [Fixnum] the (unique) ID of the player OS package version change
1422
+ attribute :id
1423
+
1424
+ # @!attribute branch_release
1425
+ # @return [Player::Os::Branch::Release] the branch release the player OS
1426
+ # package version change is included in
1427
+ # FIXME: Missing branch_id in LWS
1428
+ belongs_to :branch_release, class_name: "LWS::DigitalSignage::Player::Os::Branch::Release",
1429
+ foreign_key: :branch_release_id,
1430
+ uri: "player/os/branches/:branch_id/releases/:id"
1431
+
1432
+ # @!attribute branch_release_id
1433
+ # @return [Fixnum] the ID of the branch release the player OS package
1434
+ # version change is included in
1435
+ attribute :branch_release_id
1436
+
1437
+ # @!attribute from_number
1438
+ # @note Either the from (version) number or the to (version) number
1439
+ # needs to be set.
1440
+ # @return [String, nil] the number the player OS package version was before
1441
+ # the change
1442
+ attribute :from_number
1443
+
1444
+ # @!attribute from_version
1445
+ # @return [Player::Os::Package::Version, nil] the version the player OS
1446
+ # package was before the change
1447
+ belongs_to :from_version, class_name: "LWS::DigitalSignage::Player::Os::Package::Version",
1448
+ foreign_key: :from_version_id,
1449
+ uri: "player/os/packages/:package_id/versions/:id"
1450
+
1451
+ # @!attribute from_version_id
1452
+ # @return [Fixnum, nil] the ID of the number the player OS package
1453
+ # version was before the change
1454
+ attribute :from_version_id
1455
+
1456
+ # @!attribute log
1457
+ # @return [String] the log of the player OS package version change
1458
+ attribute :log
1459
+
1460
+ # @!attribute package
1461
+ # @return [Player::Os::Package] the player OS package the version change is for
1462
+ belongs_to :package, class_name: "LWS::DigitalSignage::Player::Os::Package",
1463
+ uri: "player/os/packages/:id"
1464
+
1465
+ # @!attribute package_id
1466
+ # @return [Fixnum] the ID the player OS package the version change is of
1467
+ attribute :package_id
1468
+
1469
+ # @!attribute state
1470
+ # @return ["waiting", "processing", "done", "error"] the processing
1471
+ # state of the player OS version change
1472
+ attribute :state
1473
+
1474
+ # @!attribute to_number
1475
+ # @note Either the from (version) number or the to (version) number
1476
+ # needs to be set.
1477
+ # @return [String, nil] the number of the player OS package version was
1478
+ # after the change
1479
+ attribute :to_number
1480
+
1481
+ # @!attribute to_version
1482
+ # @return [Player::Os::Package::Version, nil] the version the player OS
1483
+ # package was after the change
1484
+ belongs_to :to_version, class_name: "LWS::DigitalSignage::Player::Os::Package::Version",
1485
+ foreign_key: :to_version_id,
1486
+ uri: "player/os/packages/:package_id/versions/:id"
1487
+
1488
+ # @!attribute to_version_id
1489
+ # @return [Fixnum, nil] the ID of the version the player OS package was
1490
+ # after the change
1491
+ attribute :to_version_id
1492
+
1493
+ # @!attribute created_at [r]
1494
+ # @return [String] the timestamp of when the player OS package version change was created
1495
+ attribute :created_at
1496
+
1497
+ # @!attribute updated_at [r]
1498
+ # @return [String] the timestamp of when the player OS package version change was last updated
1499
+ attribute :updated_at
1500
+ end
1501
+
1502
+ # = The player OS release channel class
1503
+ class Player::Os::ReleaseChannel < LWS::Generic::Model
1504
+ use_api LWS::DigitalSignage.api
1505
+ uri "player/os/release_channels/(:id)"
1506
+
1507
+ # @!attribute id [r]
1508
+ # @return [Fixnum] the (unique) ID of the player OS release channel
1509
+ attribute :id
1510
+
1511
+ # @!attribute branches
1512
+ # @return [Array<Player::Os::Branch>] the branches that belong to the
1513
+ # player OS release channel
1514
+ has_many :branches, class_name: "LWS::DigitalSignage::Player::Os::Branch",
1515
+ uri: "player/os/release_channels/:release_channel_id/branches"
1516
+
1517
+ # @!attribute name
1518
+ # @return [String] the name of the player OS release channel
1519
+ attribute :name
1520
+
1521
+ # @!attribute players
1522
+ # @return [Array<Player>] the players that use the player OS release channel
1523
+ has_many :players, class_name: "LWS::DigitalSignage::Player",
1524
+ uri: "player/os/release_channels/:release_channel_id/players"
1525
+
1526
+ # @!attribute slug [r]
1527
+ # @return [String] the slug(ified name) of the player OS release channel
1528
+ attribute :slug
1529
+
1530
+ # @!attribute created_at [r]
1531
+ # @return [String] the timestamp of when the player OS release channel was created
1532
+ attribute :created_at
1533
+
1534
+ # @!attribute updated_at [r]
1535
+ # @return [String] the timestamp of when the player OS release channel was last updated
1536
+ attribute :updated_at
1537
+ end
1538
+
1539
+ # = The predefined player configuration
1540
+ class Player::PredefinedConfiguration < LWS::Generic::Model
1541
+ use_api LWS::DigitalSignage.api
1542
+ uri "player/predefined_configurations/(:id)"
1543
+
1544
+ # @!attribute id [r]
1545
+ # @return [Fixnum] the (unique) ID of the predefined player configuration
1546
+ attribute :id
1547
+
1548
+ # @!attribute company
1549
+ # @return [LWS::Auth::Company] the company the predefined player configuration belongs to
1550
+ belongs_to :company, class_name: "LWS::Auth::Company"
1551
+
1552
+ # @!attribute company_id
1553
+ # @return [Fixnum] the ID of the company the predefined player configuration belongs to
1554
+ attribute :compandy_id
1555
+
1556
+ # @!attribute configurations
1557
+ # @return [Array<Player::Configuration>] the player configurations that use
1558
+ # the predefined player configuration as a basis
1559
+ has_many :configurations, class_name: "LWS::DigitalSignage::Player::Configuration",
1560
+ uri: "player/predefined_configurations/:predefined_configuration_id/configurations"
1561
+
1562
+ # @!attribute description
1563
+ # @return [String] the description of the predefined player configuration
1564
+ attribute :description
1565
+
1566
+ # @!attribute name
1567
+ # @return [String] the name of the predefined player configuration
1568
+ attribute :name
1569
+
1570
+ # @!attribute settings
1571
+ # @return [Player::PredefinedConfiguration::Setting] the settings of the
1572
+ # predefined player configuration
1573
+ has_many :settings, class_name: "LWS::DigitalSignage::Player::PredefinedConfiguration::Setting",
1574
+ uri: "player/predefined_configurations/:predefined_configuration_id/settings"
1575
+
1576
+ # @!attribute created_at [r]
1577
+ # @return [String] the timestamp of when the predefined player configuration was created
1578
+ attribute :created_at
1579
+
1580
+ # @!attribute updated_at [r]
1581
+ # @return [String] the timestamp of when the predefined player configuration was last updated
1582
+ attribute :updated_at
1583
+ end
1584
+
1585
+ # = The predefined player configuration setting class
1586
+ #
1587
+ # @note
1588
+ # This class is only used within the context of the {Player::PredefinedConfiguration}
1589
+ # class.
1590
+ class Player::PredefinedConfiguration::Setting < LWS::Generic::Model
1591
+ use_api LWS::DigitalSignage.api
1592
+ uri "player/predefined_configurations/:configuration_id/settings/(:id)"
1593
+
1594
+ # @!attribute id [r]
1595
+ # @return [Fixnum] the (unique) ID of the predefined player configuration setting
1596
+ attribute :id
1597
+
1598
+ # @!attribute key
1599
+ # @return [String] the key of the predefined player configuration setting
1600
+ attribute :key
1601
+
1602
+ # @!attribute predefined_configuration
1603
+ # @return [Player::PredefinedConfiguration] the predefined player
1604
+ # configuration the setting is defined in
1605
+ belongs_to :predefined_configuration, class_name: "LWS::DigitalSignage::Player::PredefinedConfiguration",
1606
+ uri: "player/predefined_configurations/:id"
1607
+
1608
+ # @!attribute predefined_configuration_id
1609
+ # @return [Fixnum] the ID of the predefined player configuration the setting is defined in
1610
+ attribute :predefined_configuration_id
1611
+
1612
+ # @!attribute protected_value
1613
+ # @return [Boolean] whether the value of the predefined player configuration setting
1614
+ # should return a protected representation of the value
1615
+ attribute :protected_value
1616
+
1617
+ # @!attribute value
1618
+ # @return [String, nil] the value of the predefined player configuration setting
1619
+ attribute :value
1620
+
1621
+ # @!attribute created_at [r]
1622
+ # @return [String] the timestamp of when the predefined player configuration setting was created
1623
+ attribute :created_at
1624
+
1625
+ # @!attribute updated_at [r]
1626
+ # @return [String] the timestamp of when the predefined player configuration setting was last updated
1627
+ attribute :updated_at
1628
+ end
1629
+
1630
+ # = The player request class
1631
+ #
1632
+ # @note
1633
+ # This class is only used within the context of the {Player} class.
1634
+ class Player::Request < LWS::Generic::Model
1635
+ use_api LWS::DigitalSignage.api
1636
+ uri "players/:player_id/requests/(:id)"
1637
+
1638
+ # @!attribute id [r]
1639
+ # @return [Fixnum] the (unique) ID of the player request
1640
+ attribute :id
1641
+
1642
+ # @!attribute action
1643
+ # @return ["unknown", "send_logs", "clear_logs", "clear_content",
1644
+ # "clear_layouts", "send_screenshot", "reboot", "retrieve_playlist",
1645
+ # "os_switch_branch", "os_deploy", "os_pull", "restart_lc_session",
1646
+ # "send_feedback", "apply_configuration"] the player request action
1647
+ attribute :action
1648
+
1649
+ # @!attribute argument
1650
+ # @return [String, nil] the optional argument for the player request
1651
+ attribute :argument
1652
+
1653
+ # @!attribute feedback
1654
+ # This field should be set once the action has been processed (see
1655
+ # {#processed}) and the action is +"send_feedback"+.
1656
+ #
1657
+ # @return [Player::Feedback, nil] the player feedback as a response to the
1658
+ # action request +"send_status"+
1659
+ belongs_to :feedback, class_name: "LWS::DigitalSignage::Player::Feedback",
1660
+ uri: "players/:player_id/feedbacks/:id"
1661
+
1662
+ # @!attribute feedback_id
1663
+ # @return [Fixnum, nil] the ID of the player feedback as a response to the
1664
+ # action request +"send_status"+
1665
+ attribute :feedback_id
1666
+
1667
+ # @!attribute log
1668
+ # This field should be set once the action has been processed (see
1669
+ # {#processed}) and the action is +"send_logs"+.
1670
+ #
1671
+ # @return [Player::Log, nil] the player log as a response to the action
1672
+ # request +"send_logs"+
1673
+ belongs_to :log, class_name: "LWS::DigitalSignage::Player::Log",
1674
+ uri: "players/:player_id/logs/:id"
1675
+
1676
+ # @!attribute log_id
1677
+ # @return [Fixnum, nil] the ID of the player log as a response to the action
1678
+ # request +"send_logs"+
1679
+ attribute :log_id
1680
+
1681
+ # @!attribute player
1682
+ # @return [Player] the player the request is sent to
1683
+ belongs_to :player, class_name: "LWS::DigitalSignage::Player"
1684
+
1685
+ # @!attribute player_id
1686
+ # @return [Fixnum] the ID of the player the request is sent to
1687
+ attribute :player_id
1688
+
1689
+ # @!attribute processed
1690
+ # @return [Boolean] whether the request has been processed by the player
1691
+ attribute :processed
1692
+
1693
+ # @!attribute response
1694
+ # @return [String, nil] the player request response text (if the response
1695
+ # is not a specific object)
1696
+ attribute :response
1697
+
1698
+ # @!attribute screenshot
1699
+ # This field should be set once the action has been processed (see
1700
+ # {#processed}) and the action is +"send_screenshot"+.
1701
+ #
1702
+ # @return [Player::Screenshot, nil] the player screenshot as a response to
1703
+ # the action request +"send_screenshot"+
1704
+ belongs_to :screenshot, class_name: "LWS::DigitalSignage::Player::Screenshot",
1705
+ uri: "players/:player_id/screenshots/:id"
1706
+
1707
+ # @!attribute screenshot_id
1708
+ # @return [Fixnum, nil] the ID of the player screenshot as a response to
1709
+ # the action request +"send_screenshot"+
1710
+ attribute :screenshot_id
1711
+
1712
+ # @!attribute created_at [r]
1713
+ # @return [String] the timestamp of when the player request was created
1714
+ attribute :created_at
1715
+
1716
+ # @!attribute updated_at [r]
1717
+ # @return [String] the timestamp of when the player request was last updated
1718
+ attribute :updated_at
1719
+ end
1720
+
1721
+ # = The player screenshot class
1722
+ #
1723
+ # @note
1724
+ # This class is only used within the context of the {Player} class.
1725
+ class Player::Screenshot < LWS::Generic::Model
1726
+ use_api LWS::DigitalSignage.api
1727
+ uri "players/:player_id/screenshots/(:id)"
1728
+
1729
+ # @!attribute id [r]
1730
+ # @return [Fixnum] the (unique) ID of the player screenshot
1731
+ attribute :id
1732
+
1733
+ # @!attribute player
1734
+ # @return [Player] the player the screenshot is made by
1735
+ belongs_to :player, class_name: "LWS::DigitalSignage::Player"
1736
+
1737
+ # @!attribute player_id
1738
+ # @return [Fixnum] the ID of the player the screenshot is made by
1739
+ attribute :player_id
1740
+
1741
+ # @!attribute screenshot_object
1742
+ # @return [String] the URL of the player screenshot object
1743
+ attribute :screenshot_object
1744
+
1745
+ # @!attribute created_at [r]
1746
+ # @return [String] the timestamp of when the player screenshot was created
1747
+ attribute :created_at
1748
+
1749
+ # @!attribute updated_at [r]
1750
+ # @return [String] the timestamp of when the player screenshot was last updated
1751
+ attribute :updated_at
1752
+ end
1753
+
1754
+ # = The player tag class
1755
+ #
1756
+ # @note
1757
+ # This class is only used within the context of the {Player} class.
1758
+ class Player::Tag < LWS::Generic::Model
1759
+ use_api LWS::DigitalSignage.api
1760
+ uri "players/:player_id/tags/(:id)"
1761
+
1762
+ # @!attribute id [r]
1763
+ # @return [Fixnum] the (unique) ID of the player tag
1764
+ attribute :id
1765
+
1766
+ # @!attribute key
1767
+ # @return [String] the key of the player tag
1768
+ attribute :key
1769
+
1770
+ # @!attribute player
1771
+ # @return [Player] the player associated with the tag
1772
+ belongs_to :player, class_name: "LWS::DigitalSignage::Player"
1773
+
1774
+ # @!attribute player_id
1775
+ # @return [Fixnum] the ID of the player associated with the tag
1776
+ attribute :player_id
1777
+
1778
+ # @!attribute protected_value
1779
+ # @return [Boolean] whether the value of the player tag should
1780
+ # return a protected representation of the value
1781
+ attribute :protected_value
1782
+
1783
+ # @!attribute value
1784
+ # @return [String, nil] the value of the player tag
1785
+ attribute :value
1786
+
1787
+ # @!attribute created_at [r]
1788
+ # @return [String] the timestamp of when the player was created
1789
+ attribute :created_at
1790
+
1791
+ # @!attribute updated_at [r]
1792
+ # @return [String] the timestamp of when the player was last updated
1793
+ attribute :updated_at
1794
+ end
1795
+
1796
+ end