@snokam/mcp-api 0.5.1

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,1984 @@
1
+ {
2
+ "openapi": "3.0.1",
3
+ "info": {
4
+ "title": "Office Function",
5
+ "description": "Service to control hardware, e.g lights, sound and TV at the office",
6
+ "version": "v1.0.0"
7
+ },
8
+ "servers": [
9
+ {
10
+ "url": "https://office.api.snokam.no"
11
+ }
12
+ ],
13
+ "paths": {
14
+ "/v1.0/unloc/event": {
15
+ "post": {
16
+ "tags": [
17
+ "Unloc"
18
+ ],
19
+ "summary": "Handles Unloc events",
20
+ "description": "This function processes Unloc events.",
21
+ "operationId": "unlocEvent",
22
+ "requestBody": {
23
+ "description": "The Unloc event payload",
24
+ "content": {
25
+ "application/json": {
26
+ "schema": {
27
+ "$ref": "#/components/schemas/unlocEvent"
28
+ }
29
+ }
30
+ },
31
+ "required": true
32
+ },
33
+ "responses": {
34
+ "200": {
35
+ "description": "Event processed successfully",
36
+ "x-ms-summary": "Success"
37
+ }
38
+ },
39
+ "x-ms-visibility": "important"
40
+ }
41
+ },
42
+ "/v1.0/sonos/households": {
43
+ "get": {
44
+ "tags": [
45
+ "Sonos"
46
+ ],
47
+ "summary": "Gets Sonos Music households",
48
+ "description": "Retrieves a list of Sonos Music households.",
49
+ "operationId": "getHouseholds",
50
+ "responses": {
51
+ "200": {
52
+ "description": "List of Sonos Music households",
53
+ "content": {
54
+ "application/json": {
55
+ "schema": {
56
+ "$ref": "#/components/schemas/sonosHouseholds"
57
+ }
58
+ }
59
+ },
60
+ "x-ms-summary": "Success"
61
+ }
62
+ }
63
+ }
64
+ },
65
+ "/v1.0/playback/status": {
66
+ "get": {
67
+ "tags": [
68
+ "Playback"
69
+ ],
70
+ "summary": "Gets playback status",
71
+ "description": "Retrieves the playback status of the household.",
72
+ "operationId": "getPlaybackStatus",
73
+ "responses": {
74
+ "200": {
75
+ "description": "Playback status of the household",
76
+ "content": {
77
+ "application/json": {
78
+ "schema": {
79
+ "$ref": "#/components/schemas/household"
80
+ }
81
+ }
82
+ },
83
+ "x-ms-summary": "Success"
84
+ }
85
+ }
86
+ }
87
+ },
88
+ "/v1.0/sonos/household": {
89
+ "get": {
90
+ "tags": [
91
+ "Sonos"
92
+ ],
93
+ "summary": "Gets a Sonos Music household",
94
+ "description": "Retrieves a Sonos Music household.",
95
+ "operationId": "getHousehold",
96
+ "responses": {
97
+ "200": {
98
+ "description": "A Sonos Music household",
99
+ "content": {
100
+ "application/json": {
101
+ "schema": {
102
+ "$ref": "#/components/schemas/household"
103
+ }
104
+ }
105
+ },
106
+ "x-ms-summary": "Success"
107
+ }
108
+ }
109
+ }
110
+ },
111
+ "/v1.0/sonos/groups/{name}": {
112
+ "get": {
113
+ "tags": [
114
+ "Sonos"
115
+ ],
116
+ "summary": "Gets a Sonos Music group",
117
+ "description": "Retrieves a Sonos Music group by name.",
118
+ "operationId": "getGroup",
119
+ "parameters": [
120
+ {
121
+ "name": "name",
122
+ "in": "path",
123
+ "description": "The name of the group to retrieve",
124
+ "required": true,
125
+ "schema": {
126
+ "type": "string"
127
+ },
128
+ "x-ms-summary": "The name of the group"
129
+ }
130
+ ],
131
+ "responses": {
132
+ "200": {
133
+ "description": "A Sonos Music group",
134
+ "content": {
135
+ "application/json": {
136
+ "schema": {
137
+ "$ref": "#/components/schemas/group"
138
+ }
139
+ }
140
+ },
141
+ "x-ms-summary": "Success"
142
+ },
143
+ "404": {
144
+ "description": "Group not found",
145
+ "x-ms-summary": "Not Found"
146
+ }
147
+ }
148
+ }
149
+ },
150
+ "/v1.0/sonos/groups/{name}/playback/play": {
151
+ "put": {
152
+ "tags": [
153
+ "Sonos"
154
+ ],
155
+ "summary": "Plays a group",
156
+ "description": "Starts playback on a Sonos Music group by name.",
157
+ "operationId": "play",
158
+ "parameters": [
159
+ {
160
+ "name": "name",
161
+ "in": "path",
162
+ "description": "The name of the group to play",
163
+ "required": true,
164
+ "schema": {
165
+ "type": "string"
166
+ },
167
+ "x-ms-summary": "The name of the group"
168
+ }
169
+ ],
170
+ "responses": {
171
+ "200": {
172
+ "description": "Playback started on the group",
173
+ "content": {
174
+ "application/json": {
175
+ "schema": {
176
+ "$ref": "#/components/schemas/simpleResponse"
177
+ }
178
+ }
179
+ },
180
+ "x-ms-summary": "Success"
181
+ },
182
+ "404": {
183
+ "description": "Group not found",
184
+ "x-ms-summary": "Not Found"
185
+ }
186
+ }
187
+ }
188
+ },
189
+ "/v1.0/sonos/groups/{name}/playback/skipToNextTrack": {
190
+ "put": {
191
+ "tags": [
192
+ "Sonos"
193
+ ],
194
+ "summary": "Skips to the next track",
195
+ "description": "Skips to the next track on a Sonos Music group by name.",
196
+ "operationId": "skipTrack",
197
+ "parameters": [
198
+ {
199
+ "name": "name",
200
+ "in": "path",
201
+ "description": "The name of the group to skip track",
202
+ "required": true,
203
+ "schema": {
204
+ "type": "string"
205
+ },
206
+ "x-ms-summary": "The name of the group"
207
+ }
208
+ ],
209
+ "responses": {
210
+ "200": {
211
+ "description": "Skipped track on the group",
212
+ "content": {
213
+ "application/json": {
214
+ "schema": {
215
+ "$ref": "#/components/schemas/simpleResponse"
216
+ }
217
+ }
218
+ },
219
+ "x-ms-summary": "Success"
220
+ },
221
+ "404": {
222
+ "description": "Group not found",
223
+ "x-ms-summary": "Not Found"
224
+ }
225
+ }
226
+ }
227
+ },
228
+ "/v1.0/sonos/groups/{name}/playback/skipToPreviousTrack": {
229
+ "put": {
230
+ "tags": [
231
+ "Sonos"
232
+ ],
233
+ "summary": "Skips to the previous track",
234
+ "description": "Skips to the previous track on a Sonos Music group by name.",
235
+ "operationId": "previousTrack",
236
+ "parameters": [
237
+ {
238
+ "name": "name",
239
+ "in": "path",
240
+ "description": "The name of the group to skip to the previous track",
241
+ "required": true,
242
+ "schema": {
243
+ "type": "string"
244
+ },
245
+ "x-ms-summary": "The name of the group"
246
+ }
247
+ ],
248
+ "responses": {
249
+ "200": {
250
+ "description": "Skipped to the previous track on the group",
251
+ "content": {
252
+ "application/json": {
253
+ "schema": {
254
+ "$ref": "#/components/schemas/simpleResponse"
255
+ }
256
+ }
257
+ },
258
+ "x-ms-summary": "Success"
259
+ },
260
+ "404": {
261
+ "description": "Group not found",
262
+ "x-ms-summary": "Not Found"
263
+ }
264
+ }
265
+ }
266
+ },
267
+ "/v1.0/sonos/groups/{name}/playback/pause": {
268
+ "put": {
269
+ "tags": [
270
+ "Sonos"
271
+ ],
272
+ "summary": "Pauses playback",
273
+ "description": "Pauses playback on a Sonos Music group by name.",
274
+ "operationId": "pause",
275
+ "parameters": [
276
+ {
277
+ "name": "name",
278
+ "in": "path",
279
+ "description": "The name of the group to pause playback",
280
+ "required": true,
281
+ "schema": {
282
+ "type": "string"
283
+ },
284
+ "x-ms-summary": "The name of the group"
285
+ }
286
+ ],
287
+ "responses": {
288
+ "200": {
289
+ "description": "Paused playback on the group",
290
+ "content": {
291
+ "application/json": {
292
+ "schema": {
293
+ "$ref": "#/components/schemas/simpleResponse"
294
+ }
295
+ }
296
+ },
297
+ "x-ms-summary": "Success"
298
+ },
299
+ "404": {
300
+ "description": "Group not found",
301
+ "x-ms-summary": "Not Found"
302
+ }
303
+ }
304
+ }
305
+ },
306
+ "/v1.0/sonos/groups/{name}/playback/status": {
307
+ "get": {
308
+ "tags": [
309
+ "Sonos"
310
+ ],
311
+ "summary": "Gets playback status",
312
+ "description": "Gets the playback status of a Sonos Music group by name.",
313
+ "operationId": "status",
314
+ "parameters": [
315
+ {
316
+ "name": "name",
317
+ "in": "path",
318
+ "description": "The name of the group to get playback status",
319
+ "required": true,
320
+ "schema": {
321
+ "type": "string"
322
+ },
323
+ "x-ms-summary": "The name of the group"
324
+ }
325
+ ],
326
+ "responses": {
327
+ "200": {
328
+ "description": "Playback status of the group",
329
+ "content": {
330
+ "application/json": {
331
+ "schema": {
332
+ "$ref": "#/components/schemas/playbackStatus"
333
+ }
334
+ }
335
+ },
336
+ "x-ms-summary": "Success"
337
+ },
338
+ "404": {
339
+ "description": "Group not found",
340
+ "x-ms-summary": "Not Found"
341
+ }
342
+ }
343
+ }
344
+ },
345
+ "/v1.0/sonos/groups/{name}/playbackMetadata": {
346
+ "get": {
347
+ "tags": [
348
+ "Sonos"
349
+ ],
350
+ "summary": "Gets playback metadata",
351
+ "description": "Gets the playback metadata of a Sonos Music group by name.",
352
+ "operationId": "playbackMetadata",
353
+ "parameters": [
354
+ {
355
+ "name": "name",
356
+ "in": "path",
357
+ "description": "The name of the group to get playback metadata",
358
+ "required": true,
359
+ "schema": {
360
+ "type": "string"
361
+ },
362
+ "x-ms-summary": "The name of the group"
363
+ }
364
+ ],
365
+ "responses": {
366
+ "200": {
367
+ "description": "Playback metadata of the group",
368
+ "content": {
369
+ "application/json": {
370
+ "schema": {
371
+ "$ref": "#/components/schemas/sonosMetaData"
372
+ }
373
+ }
374
+ },
375
+ "x-ms-summary": "Success"
376
+ },
377
+ "404": {
378
+ "description": "Group not found",
379
+ "x-ms-summary": "Not Found"
380
+ }
381
+ }
382
+ }
383
+ },
384
+ "/v1.0/sonos/groups": {
385
+ "get": {
386
+ "tags": [
387
+ "Sonos"
388
+ ],
389
+ "summary": "Gets all groups",
390
+ "description": "Gets a list of all Sonos Music groups.",
391
+ "operationId": "getGroups",
392
+ "responses": {
393
+ "200": {
394
+ "description": "List of Sonos Music groups",
395
+ "content": {
396
+ "application/json": {
397
+ "schema": {
398
+ "type": "array",
399
+ "items": {
400
+ "$ref": "#/components/schemas/group"
401
+ }
402
+ }
403
+ }
404
+ },
405
+ "x-ms-summary": "Success"
406
+ }
407
+ }
408
+ }
409
+ },
410
+ "/v1.0/sonos/playlists": {
411
+ "get": {
412
+ "tags": [
413
+ "Sonos"
414
+ ],
415
+ "summary": "Gets all playlists",
416
+ "description": "Gets a list of all Sonos Music playlists.",
417
+ "operationId": "getPlaylists",
418
+ "responses": {
419
+ "200": {
420
+ "description": "List of Sonos Music playlists",
421
+ "content": {
422
+ "application/json": {
423
+ "schema": {
424
+ "$ref": "#/components/schemas/sonosPlaylist"
425
+ }
426
+ }
427
+ },
428
+ "x-ms-summary": "Success"
429
+ }
430
+ }
431
+ }
432
+ },
433
+ "/v1.0/sonos/groups/{groupName}/playlist/{playlistName}": {
434
+ "put": {
435
+ "tags": [
436
+ "Sonos"
437
+ ],
438
+ "summary": "Plays a playlist",
439
+ "description": "Plays a Sonos Music playlist by name.",
440
+ "operationId": "playPlaylist",
441
+ "parameters": [
442
+ {
443
+ "name": "groupName",
444
+ "in": "path",
445
+ "description": "The name of the group to play the playlist on",
446
+ "required": true,
447
+ "schema": {
448
+ "type": "string"
449
+ },
450
+ "x-ms-summary": "The name of the group"
451
+ },
452
+ {
453
+ "name": "playlistName",
454
+ "in": "path",
455
+ "description": "The name of the playlist to play",
456
+ "required": true,
457
+ "schema": {
458
+ "type": "string"
459
+ },
460
+ "x-ms-summary": "The name of the playlist"
461
+ }
462
+ ],
463
+ "responses": {
464
+ "200": {
465
+ "description": "Playing the playlist on the group",
466
+ "content": {
467
+ "application/json": {
468
+ "schema": {
469
+ "$ref": "#/components/schemas/simpleResponse"
470
+ }
471
+ }
472
+ },
473
+ "x-ms-summary": "Success"
474
+ },
475
+ "404": {
476
+ "description": "Group or playlist not found",
477
+ "x-ms-summary": "Not Found"
478
+ }
479
+ }
480
+ }
481
+ },
482
+ "/v1.0/sonos/groups/{groupName}/setGroupMembers": {
483
+ "put": {
484
+ "tags": [
485
+ "Sonos"
486
+ ],
487
+ "summary": "Sets group members",
488
+ "description": "Sets the members of a Sonos Music group by name.",
489
+ "operationId": "setGroupMembers",
490
+ "parameters": [
491
+ {
492
+ "name": "groupName",
493
+ "in": "path",
494
+ "description": "The name of the group to set members for",
495
+ "required": true,
496
+ "schema": {
497
+ "type": "string"
498
+ },
499
+ "x-ms-summary": "The name of the group"
500
+ },
501
+ {
502
+ "name": "groups",
503
+ "in": "query",
504
+ "description": "The groups to add to the group",
505
+ "required": true,
506
+ "schema": {
507
+ "type": "string"
508
+ },
509
+ "x-ms-summary": "The groups to add"
510
+ }
511
+ ],
512
+ "responses": {
513
+ "200": {
514
+ "description": "Added groups to the group",
515
+ "content": {
516
+ "application/json": {
517
+ "schema": {
518
+ "$ref": "#/components/schemas/simpleResponse"
519
+ }
520
+ }
521
+ },
522
+ "x-ms-summary": "Success"
523
+ },
524
+ "404": {
525
+ "description": "Group not found",
526
+ "x-ms-summary": "Not Found"
527
+ }
528
+ }
529
+ }
530
+ },
531
+ "/v1.0/ice": {
532
+ "post": {
533
+ "tags": [
534
+ "Misc"
535
+ ],
536
+ "summary": "Ice Baby",
537
+ "description": "Performs the Ice Baby action.",
538
+ "operationId": "iceBaby",
539
+ "responses": {
540
+ "200": {
541
+ "description": "Ice Baby action performed",
542
+ "content": {
543
+ "application/json": {
544
+ "schema": {
545
+ "$ref": "#/components/schemas/simpleResponse"
546
+ }
547
+ }
548
+ },
549
+ "x-ms-summary": "Success"
550
+ }
551
+ }
552
+ }
553
+ },
554
+ "/v1.0/hue/lights/{id}": {
555
+ "put": {
556
+ "tags": [
557
+ "Hue"
558
+ ],
559
+ "summary": "Sets a Hue light",
560
+ "description": "Sets the state of a Hue light by ID.",
561
+ "operationId": "setLight",
562
+ "parameters": [
563
+ {
564
+ "name": "id",
565
+ "in": "path",
566
+ "description": "The ID of the light to set",
567
+ "required": true,
568
+ "schema": {
569
+ "type": "string"
570
+ },
571
+ "x-ms-summary": "The ID of the light"
572
+ }
573
+ ],
574
+ "requestBody": {
575
+ "description": "The light state to set",
576
+ "content": {
577
+ "application/json": {
578
+ "schema": {
579
+ "$ref": "#/components/schemas/updateLight"
580
+ }
581
+ }
582
+ },
583
+ "required": true
584
+ },
585
+ "responses": {
586
+ "200": {
587
+ "description": "Light state set",
588
+ "content": {
589
+ "application/json": {
590
+ "schema": {
591
+ "$ref": "#/components/schemas/simpleResponse"
592
+ }
593
+ }
594
+ },
595
+ "x-ms-summary": "Success"
596
+ }
597
+ }
598
+ }
599
+ },
600
+ "/v1.0/hue/lights": {
601
+ "get": {
602
+ "tags": [
603
+ "Hue"
604
+ ],
605
+ "summary": "Gets all Hue lights",
606
+ "description": "Gets a list of all Hue lights.",
607
+ "operationId": "GetLights",
608
+ "responses": {
609
+ "200": {
610
+ "description": "List of Hue lights",
611
+ "content": {
612
+ "application/json": {
613
+ "schema": {
614
+ "type": "array",
615
+ "items": {
616
+ "$ref": "#/components/schemas/light"
617
+ }
618
+ }
619
+ }
620
+ },
621
+ "x-ms-summary": "Success"
622
+ }
623
+ }
624
+ }
625
+ },
626
+ "/v1.0/youtube/queue/next": {
627
+ "get": {
628
+ "tags": [
629
+ "Youtube"
630
+ ],
631
+ "summary": "Gets next YouTube video",
632
+ "description": "Gets the next video in the YouTube queue.",
633
+ "operationId": "getNextYoutubeVideo",
634
+ "responses": {
635
+ "200": {
636
+ "description": "Next video in the YouTube queue",
637
+ "content": {
638
+ "application/json": {
639
+ "schema": {
640
+ "$ref": "#/components/schemas/nextVideo"
641
+ }
642
+ }
643
+ },
644
+ "x-ms-summary": "Success"
645
+ },
646
+ "204": {
647
+ "description": "No video in the queue",
648
+ "x-ms-summary": "No Content"
649
+ }
650
+ }
651
+ }
652
+ },
653
+ "/v1.0/youtube/queue/{id}": {
654
+ "put": {
655
+ "tags": [
656
+ "Youtube"
657
+ ],
658
+ "summary": "Adds to YouTube queue",
659
+ "description": "Adds a video to the YouTube queue.",
660
+ "operationId": "addToYoutubeQueue",
661
+ "parameters": [
662
+ {
663
+ "name": "id",
664
+ "in": "path",
665
+ "description": "The ID of the video to add",
666
+ "required": true,
667
+ "schema": {
668
+ "type": "string"
669
+ },
670
+ "x-ms-summary": "The ID of the video"
671
+ }
672
+ ],
673
+ "responses": {
674
+ "200": {
675
+ "description": "Video added to the queue",
676
+ "content": {
677
+ "application/json": {
678
+ "schema": {
679
+ "$ref": "#/components/schemas/simpleResponse"
680
+ }
681
+ }
682
+ },
683
+ "x-ms-summary": "Success"
684
+ }
685
+ }
686
+ },
687
+ "delete": {
688
+ "tags": [
689
+ "Youtube"
690
+ ],
691
+ "summary": "Removes from YouTube queue",
692
+ "description": "Removes a video from the YouTube queue.",
693
+ "operationId": "removeFromQueue",
694
+ "parameters": [
695
+ {
696
+ "name": "id",
697
+ "in": "path",
698
+ "description": "The ID of the video to remove",
699
+ "required": true,
700
+ "schema": {
701
+ "type": "string"
702
+ },
703
+ "x-ms-summary": "The ID of the video"
704
+ }
705
+ ],
706
+ "responses": {
707
+ "200": {
708
+ "description": "Video removed from the queue",
709
+ "content": {
710
+ "application/json": {
711
+ "schema": {
712
+ "$ref": "#/components/schemas/simpleResponse"
713
+ }
714
+ }
715
+ },
716
+ "x-ms-summary": "Success"
717
+ }
718
+ }
719
+ }
720
+ },
721
+ "/v1.0/party": {
722
+ "put": {
723
+ "tags": [
724
+ "Party"
725
+ ],
726
+ "summary": "Sets party state",
727
+ "description": "Sets the party state at the office, only activate on request.",
728
+ "operationId": "setPartyState",
729
+ "requestBody": {
730
+ "description": "The party state to set",
731
+ "content": {
732
+ "application/json": {
733
+ "schema": {
734
+ "$ref": "#/components/schemas/setParty"
735
+ }
736
+ }
737
+ },
738
+ "required": true
739
+ },
740
+ "responses": {
741
+ "200": {
742
+ "description": "Party state set",
743
+ "content": {
744
+ "application/json": {
745
+ "schema": {
746
+ "$ref": "#/components/schemas/simpleResponse"
747
+ }
748
+ }
749
+ },
750
+ "x-ms-summary": "Success"
751
+ }
752
+ }
753
+ }
754
+ },
755
+ "/v1.0/sanity/state": {
756
+ "get": {
757
+ "tags": [
758
+ "Sanity"
759
+ ],
760
+ "summary": "Gets Sanity office state",
761
+ "description": "Gets the state of the office from Sanity.",
762
+ "operationId": "getSanityOfficeState",
763
+ "responses": {
764
+ "200": {
765
+ "description": "Sanity office state",
766
+ "content": {
767
+ "application/json": {
768
+ "schema": {
769
+ "$ref": "#/components/schemas/sanityOfficeDto"
770
+ }
771
+ }
772
+ },
773
+ "x-ms-summary": "Success"
774
+ }
775
+ }
776
+ }
777
+ },
778
+ "/v1.0/state": {
779
+ "get": {
780
+ "tags": [
781
+ "State"
782
+ ],
783
+ "summary": "Gets office state",
784
+ "description": "Gets the state of the office including Sanity, Hue, and Sonos.",
785
+ "operationId": "getOfficeState",
786
+ "responses": {
787
+ "200": {
788
+ "description": "Office state",
789
+ "content": {
790
+ "application/json": {
791
+ "schema": {
792
+ "$ref": "#/components/schemas/officeState"
793
+ }
794
+ }
795
+ },
796
+ "x-ms-summary": "Success"
797
+ }
798
+ }
799
+ }
800
+ },
801
+ "/v1.0/power-up-on": {
802
+ "get": {
803
+ "tags": [
804
+ "State"
805
+ ],
806
+ "summary": "Gets powerUpOn type",
807
+ "description": "Gets the type of powerUpOn",
808
+ "operationId": "powerUpOn",
809
+ "responses": {
810
+ "200": {
811
+ "description": "Office state",
812
+ "content": {
813
+ "application/json": {
814
+ "schema": {
815
+ "$ref": "#/components/schemas/powerUpOn"
816
+ }
817
+ }
818
+ },
819
+ "x-ms-summary": "Success"
820
+ }
821
+ }
822
+ }
823
+ },
824
+ "/v1.0/printer/create-printjob": {
825
+ "post": {
826
+ "tags": [
827
+ "Printer"
828
+ ],
829
+ "summary": "Creates a print job",
830
+ "description": "Uploads a PNG image to blob storage and creates a print job in the queue. Accepts multipart/form-data with a PNG file.",
831
+ "operationId": "createPrintJob",
832
+ "requestBody": {
833
+ "description": "A PNG image file as multipart/form-data.",
834
+ "content": {
835
+ "multipart/form-data": {
836
+ "schema": {
837
+ "type": "string",
838
+ "format": "binary"
839
+ }
840
+ }
841
+ },
842
+ "required": true
843
+ },
844
+ "responses": {
845
+ "200": {
846
+ "description": "Print job created successfully",
847
+ "content": {
848
+ "application/json": {
849
+ "schema": {
850
+ "$ref": "#/components/schemas/printJobResponse"
851
+ }
852
+ }
853
+ },
854
+ "x-ms-summary": "Success"
855
+ },
856
+ "400": {
857
+ "description": "Invalid file or file format",
858
+ "x-ms-summary": "Bad Request"
859
+ },
860
+ "401": {
861
+ "description": "Unauthorized access",
862
+ "x-ms-summary": "Unauthorized"
863
+ }
864
+ },
865
+ "security": [
866
+ {
867
+ "Implicit": [
868
+ "api://765833d0-105c-45e6-8fcf-4ba48d77b428/user_impersonation"
869
+ ]
870
+ }
871
+ ]
872
+ }
873
+ },
874
+ "/v1.0/printer/status": {
875
+ "get": {
876
+ "tags": [
877
+ "Printer"
878
+ ],
879
+ "summary": "Gets printer status",
880
+ "description": "Retrieves the latest printer status including the currently loaded label size and supported image dimensions. Use this endpoint to determine the correct image dimensions before creating a print job.",
881
+ "operationId": "getPrinterStatus",
882
+ "responses": {
883
+ "200": {
884
+ "description": "Printer status with currently loaded label information and supported dimensions",
885
+ "content": {
886
+ "application/json": {
887
+ "schema": {
888
+ "$ref": "#/components/schemas/printerStatusResponse"
889
+ }
890
+ }
891
+ },
892
+ "x-ms-summary": "Success"
893
+ }
894
+ }
895
+ }
896
+ }
897
+ },
898
+ "components": {
899
+ "schemas": {
900
+ "album": {
901
+ "type": "object",
902
+ "properties": {
903
+ "objectType": {
904
+ "type": "string"
905
+ },
906
+ "name": {
907
+ "type": "string"
908
+ }
909
+ }
910
+ },
911
+ "artist": {
912
+ "type": "object",
913
+ "properties": {
914
+ "objectType": {
915
+ "type": "string"
916
+ },
917
+ "name": {
918
+ "type": "string"
919
+ }
920
+ }
921
+ },
922
+ "availablePlaybackActions": {
923
+ "type": "object",
924
+ "properties": {
925
+ "objectType": {
926
+ "type": "string"
927
+ },
928
+ "canPlay": {
929
+ "type": "boolean"
930
+ },
931
+ "canSkip": {
932
+ "type": "boolean"
933
+ },
934
+ "canSkipBack": {
935
+ "type": "boolean"
936
+ },
937
+ "canSkipToPrevious": {
938
+ "type": "boolean"
939
+ },
940
+ "canSeek": {
941
+ "type": "boolean"
942
+ },
943
+ "canPause": {
944
+ "type": "boolean"
945
+ },
946
+ "canStop": {
947
+ "type": "boolean"
948
+ },
949
+ "canRepeat": {
950
+ "type": "boolean"
951
+ },
952
+ "canRepeatOne": {
953
+ "type": "boolean"
954
+ },
955
+ "canCrossfade": {
956
+ "type": "boolean"
957
+ },
958
+ "canShuffle": {
959
+ "type": "boolean"
960
+ }
961
+ }
962
+ },
963
+ "color": {
964
+ "type": "object",
965
+ "properties": {
966
+ "gamut": {
967
+ "$ref": "#/components/schemas/gamut"
968
+ },
969
+ "gamutType": {
970
+ "type": "string"
971
+ },
972
+ "xy": {
973
+ "$ref": "#/components/schemas/xyPosition"
974
+ }
975
+ }
976
+ },
977
+ "colorTemperature": {
978
+ "type": "object",
979
+ "properties": {
980
+ "mirek": {
981
+ "type": "integer",
982
+ "format": "int32",
983
+ "nullable": true
984
+ },
985
+ "mirekSchema": {
986
+ "$ref": "#/components/schemas/mirekSchema"
987
+ },
988
+ "mirekValid": {
989
+ "type": "boolean"
990
+ }
991
+ }
992
+ },
993
+ "colorTemperatureDelta": {
994
+ "type": "object",
995
+ "properties": {
996
+ "action": {
997
+ "enum": [
998
+ 0,
999
+ 1,
1000
+ 2
1001
+ ],
1002
+ "type": "integer",
1003
+ "format": "int32",
1004
+ "default": 0
1005
+ },
1006
+ "mirekDelta": {
1007
+ "type": "integer",
1008
+ "format": "int32"
1009
+ }
1010
+ }
1011
+ },
1012
+ "container": {
1013
+ "type": "object",
1014
+ "properties": {
1015
+ "objectType": {
1016
+ "type": "string"
1017
+ },
1018
+ "images": {
1019
+ "type": "array",
1020
+ "items": {
1021
+ "type": "object"
1022
+ }
1023
+ }
1024
+ }
1025
+ },
1026
+ "contentConfiguration": {
1027
+ "type": "object",
1028
+ "properties": {
1029
+ "orientation": {
1030
+ "$ref": "#/components/schemas/contentConfigurationOrientation"
1031
+ },
1032
+ "order": {
1033
+ "$ref": "#/components/schemas/contentConfigurationOrder"
1034
+ }
1035
+ }
1036
+ },
1037
+ "contentConfigurationOrder": {
1038
+ "type": "object",
1039
+ "properties": {
1040
+ "status": {
1041
+ "type": "string"
1042
+ },
1043
+ "configurable": {
1044
+ "type": "boolean",
1045
+ "nullable": true
1046
+ },
1047
+ "order": {
1048
+ "enum": [
1049
+ 0,
1050
+ 1
1051
+ ],
1052
+ "type": "integer",
1053
+ "format": "int32",
1054
+ "default": 0
1055
+ }
1056
+ }
1057
+ },
1058
+ "contentConfigurationOrientation": {
1059
+ "type": "object",
1060
+ "properties": {
1061
+ "status": {
1062
+ "type": "string"
1063
+ },
1064
+ "configurable": {
1065
+ "type": "boolean",
1066
+ "nullable": true
1067
+ },
1068
+ "orientation": {
1069
+ "enum": [
1070
+ 0,
1071
+ 1
1072
+ ],
1073
+ "type": "integer",
1074
+ "format": "int32",
1075
+ "default": 0
1076
+ }
1077
+ }
1078
+ },
1079
+ "currentItem": {
1080
+ "type": "object",
1081
+ "properties": {
1082
+ "objectType": {
1083
+ "type": "string"
1084
+ },
1085
+ "track": {
1086
+ "$ref": "#/components/schemas/track"
1087
+ },
1088
+ "policies": {
1089
+ "$ref": "#/components/schemas/policies"
1090
+ }
1091
+ }
1092
+ },
1093
+ "dimming": {
1094
+ "type": "object",
1095
+ "properties": {
1096
+ "brightness": {
1097
+ "type": "number",
1098
+ "format": "double"
1099
+ },
1100
+ "minDimLevel": {
1101
+ "type": "number",
1102
+ "format": "double",
1103
+ "nullable": true
1104
+ }
1105
+ }
1106
+ },
1107
+ "dimmingDelta": {
1108
+ "type": "object",
1109
+ "properties": {
1110
+ "action": {
1111
+ "enum": [
1112
+ 0,
1113
+ 1,
1114
+ 2
1115
+ ],
1116
+ "type": "integer",
1117
+ "format": "int32",
1118
+ "default": 0
1119
+ },
1120
+ "brightnessDelta": {
1121
+ "type": "number",
1122
+ "format": "double"
1123
+ }
1124
+ }
1125
+ },
1126
+ "dynamics": {
1127
+ "type": "object",
1128
+ "properties": {
1129
+ "duration": {
1130
+ "type": "integer",
1131
+ "format": "int32"
1132
+ },
1133
+ "speed": {
1134
+ "type": "number",
1135
+ "format": "double"
1136
+ },
1137
+ "speedValid": {
1138
+ "type": "boolean"
1139
+ },
1140
+ "status": {
1141
+ "type": "string"
1142
+ },
1143
+ "statusValues": {
1144
+ "type": "array",
1145
+ "items": {
1146
+ "type": "string"
1147
+ }
1148
+ }
1149
+ }
1150
+ },
1151
+ "effectAction": {
1152
+ "type": "object",
1153
+ "properties": {
1154
+ "effect": {
1155
+ "enum": [
1156
+ 0,
1157
+ 1,
1158
+ 2,
1159
+ 3,
1160
+ 4,
1161
+ 5,
1162
+ 6,
1163
+ 7,
1164
+ 8,
1165
+ 9,
1166
+ 10
1167
+ ],
1168
+ "type": "integer",
1169
+ "format": "int32",
1170
+ "default": 0
1171
+ },
1172
+ "parameters": {
1173
+ "$ref": "#/components/schemas/effectParams"
1174
+ }
1175
+ }
1176
+ },
1177
+ "effectParams": {
1178
+ "type": "object",
1179
+ "properties": {
1180
+ "color": {
1181
+ "$ref": "#/components/schemas/color"
1182
+ },
1183
+ "colorTemperature": {
1184
+ "$ref": "#/components/schemas/colorTemperature"
1185
+ },
1186
+ "speed": {
1187
+ "type": "number",
1188
+ "format": "double",
1189
+ "nullable": true
1190
+ }
1191
+ }
1192
+ },
1193
+ "effects": {
1194
+ "type": "object",
1195
+ "properties": {
1196
+ "effect": {
1197
+ "enum": [
1198
+ 0,
1199
+ 1,
1200
+ 2,
1201
+ 3,
1202
+ 4,
1203
+ 5,
1204
+ 6,
1205
+ 7,
1206
+ 8,
1207
+ 9,
1208
+ 10
1209
+ ],
1210
+ "type": "integer",
1211
+ "format": "int32",
1212
+ "default": 0
1213
+ },
1214
+ "effectValues": {
1215
+ "type": "array",
1216
+ "items": {
1217
+ "type": "string"
1218
+ }
1219
+ },
1220
+ "status": {
1221
+ "type": "string"
1222
+ },
1223
+ "statusValues": {
1224
+ "type": "array",
1225
+ "items": {
1226
+ "type": "string"
1227
+ }
1228
+ }
1229
+ }
1230
+ },
1231
+ "effectsV2": {
1232
+ "type": "object",
1233
+ "properties": {
1234
+ "action": {
1235
+ "$ref": "#/components/schemas/effectAction"
1236
+ }
1237
+ }
1238
+ },
1239
+ "gamut": {
1240
+ "type": "object",
1241
+ "properties": {
1242
+ "blue": {
1243
+ "$ref": "#/components/schemas/xyPosition"
1244
+ },
1245
+ "green": {
1246
+ "$ref": "#/components/schemas/xyPosition"
1247
+ },
1248
+ "red": {
1249
+ "$ref": "#/components/schemas/xyPosition"
1250
+ }
1251
+ }
1252
+ },
1253
+ "gradient": {
1254
+ "type": "object",
1255
+ "properties": {
1256
+ "points": {
1257
+ "type": "array",
1258
+ "items": {
1259
+ "$ref": "#/components/schemas/gradientPoint"
1260
+ }
1261
+ },
1262
+ "mode": {
1263
+ "enum": [
1264
+ 0,
1265
+ 1,
1266
+ 2,
1267
+ 3
1268
+ ],
1269
+ "type": "integer",
1270
+ "format": "int32",
1271
+ "default": 0
1272
+ },
1273
+ "modeValues": {
1274
+ "type": "array",
1275
+ "items": {
1276
+ "type": "string"
1277
+ }
1278
+ },
1279
+ "pointsCapable": {
1280
+ "type": "integer",
1281
+ "format": "int32",
1282
+ "nullable": true
1283
+ },
1284
+ "pixelCount": {
1285
+ "type": "integer",
1286
+ "format": "int32",
1287
+ "nullable": true
1288
+ }
1289
+ }
1290
+ },
1291
+ "gradientPoint": {
1292
+ "type": "object",
1293
+ "properties": {
1294
+ "color": {
1295
+ "$ref": "#/components/schemas/color"
1296
+ }
1297
+ }
1298
+ },
1299
+ "group": {
1300
+ "type": "object",
1301
+ "properties": {
1302
+ "id": {
1303
+ "type": "string"
1304
+ },
1305
+ "name": {
1306
+ "type": "string"
1307
+ },
1308
+ "coordinatorId": {
1309
+ "type": "string"
1310
+ },
1311
+ "playbackState": {
1312
+ "type": "string"
1313
+ },
1314
+ "playerIds": {
1315
+ "type": "array",
1316
+ "items": {
1317
+ "type": "string"
1318
+ }
1319
+ }
1320
+ }
1321
+ },
1322
+ "household": {
1323
+ "type": "object",
1324
+ "properties": {
1325
+ "id": {
1326
+ "type": "string"
1327
+ },
1328
+ "name": {
1329
+ "type": "string"
1330
+ },
1331
+ "ownerLuid": {
1332
+ "type": "string"
1333
+ }
1334
+ }
1335
+ },
1336
+ "id": {
1337
+ "type": "object",
1338
+ "properties": {
1339
+ "objectType": {
1340
+ "type": "string"
1341
+ },
1342
+ "serviceId": {
1343
+ "type": "string"
1344
+ },
1345
+ "objectId": {
1346
+ "type": "string"
1347
+ },
1348
+ "accountId": {
1349
+ "type": "string"
1350
+ }
1351
+ }
1352
+ },
1353
+ "identify": {
1354
+ "type": "object",
1355
+ "properties": {
1356
+ "action": {
1357
+ "type": "string"
1358
+ }
1359
+ }
1360
+ },
1361
+ "image": {
1362
+ "type": "object",
1363
+ "properties": {
1364
+ "objectType": {
1365
+ "type": "string"
1366
+ },
1367
+ "url": {
1368
+ "type": "string"
1369
+ }
1370
+ }
1371
+ },
1372
+ "labelSize": {
1373
+ "type": "object",
1374
+ "properties": {
1375
+ "width": {
1376
+ "type": "integer",
1377
+ "format": "int32"
1378
+ },
1379
+ "height": {
1380
+ "type": "integer",
1381
+ "format": "int32"
1382
+ }
1383
+ }
1384
+ },
1385
+ "light": {
1386
+ "type": "object",
1387
+ "properties": {
1388
+ "id": {
1389
+ "type": "string",
1390
+ "format": "uuid"
1391
+ },
1392
+ "on": {
1393
+ "$ref": "#/components/schemas/on"
1394
+ },
1395
+ "name": {
1396
+ "type": "string"
1397
+ }
1398
+ }
1399
+ },
1400
+ "metadata": {
1401
+ "type": "object",
1402
+ "properties": {
1403
+ "name": {
1404
+ "type": "string"
1405
+ },
1406
+ "archetype": {
1407
+ "type": "string"
1408
+ },
1409
+ "image": {
1410
+ "$ref": "#/components/schemas/resourceIdentifier"
1411
+ },
1412
+ "controlId": {
1413
+ "type": "integer",
1414
+ "format": "int32",
1415
+ "nullable": true
1416
+ }
1417
+ }
1418
+ },
1419
+ "mirekSchema": {
1420
+ "type": "object",
1421
+ "properties": {
1422
+ "mirekMaximum": {
1423
+ "type": "integer",
1424
+ "format": "int32"
1425
+ },
1426
+ "mirekMinimum": {
1427
+ "type": "integer",
1428
+ "format": "int32"
1429
+ }
1430
+ }
1431
+ },
1432
+ "nextVideo": {
1433
+ "type": "object",
1434
+ "properties": {
1435
+ "video": {
1436
+ "type": "string"
1437
+ }
1438
+ }
1439
+ },
1440
+ "officeState": {
1441
+ "type": "object",
1442
+ "properties": {
1443
+ "sanity": {
1444
+ "$ref": "#/components/schemas/sanityOfficeDto"
1445
+ },
1446
+ "hue": {
1447
+ "type": "array",
1448
+ "items": {
1449
+ "$ref": "#/components/schemas/light"
1450
+ }
1451
+ },
1452
+ "sonos": {
1453
+ "type": "array",
1454
+ "items": {
1455
+ "$ref": "#/components/schemas/group"
1456
+ }
1457
+ }
1458
+ }
1459
+ },
1460
+ "on": {
1461
+ "type": "object",
1462
+ "properties": {
1463
+ "isOn": {
1464
+ "type": "boolean"
1465
+ }
1466
+ }
1467
+ },
1468
+ "playbackStatus": {
1469
+ "type": "object",
1470
+ "properties": {
1471
+ "objectType": {
1472
+ "type": "string"
1473
+ },
1474
+ "playbackState": {
1475
+ "type": "string"
1476
+ },
1477
+ "isDucking": {
1478
+ "type": "boolean"
1479
+ },
1480
+ "positionMillis": {
1481
+ "type": "integer",
1482
+ "format": "int32"
1483
+ },
1484
+ "previousPositionMillis": {
1485
+ "type": "integer",
1486
+ "format": "int32"
1487
+ },
1488
+ "playModes": {
1489
+ "$ref": "#/components/schemas/playModes"
1490
+ },
1491
+ "availablePlaybackActions": {
1492
+ "$ref": "#/components/schemas/availablePlaybackActions"
1493
+ }
1494
+ }
1495
+ },
1496
+ "playlist": {
1497
+ "type": "object",
1498
+ "properties": {
1499
+ "objectType": {
1500
+ "type": "string"
1501
+ },
1502
+ "id": {
1503
+ "type": "string"
1504
+ },
1505
+ "name": {
1506
+ "type": "string"
1507
+ },
1508
+ "type": {
1509
+ "type": "string"
1510
+ },
1511
+ "trackCount": {
1512
+ "type": "integer",
1513
+ "format": "int32"
1514
+ }
1515
+ }
1516
+ },
1517
+ "playModes": {
1518
+ "type": "object",
1519
+ "properties": {
1520
+ "objectType": {
1521
+ "type": "string"
1522
+ },
1523
+ "repeat": {
1524
+ "type": "boolean"
1525
+ },
1526
+ "repeatOne": {
1527
+ "type": "boolean"
1528
+ },
1529
+ "shuffle": {
1530
+ "type": "boolean"
1531
+ },
1532
+ "crossfade": {
1533
+ "type": "boolean"
1534
+ }
1535
+ }
1536
+ },
1537
+ "policies": {
1538
+ "type": "object",
1539
+ "properties": {
1540
+ "objectType": {
1541
+ "type": "string"
1542
+ }
1543
+ }
1544
+ },
1545
+ "powerUp": {
1546
+ "type": "object",
1547
+ "properties": {
1548
+ "preset": {
1549
+ "enum": [
1550
+ 0,
1551
+ 1,
1552
+ 2,
1553
+ 3
1554
+ ],
1555
+ "type": "integer",
1556
+ "format": "int32",
1557
+ "default": 0
1558
+ },
1559
+ "on": {
1560
+ "$ref": "#/components/schemas/powerUpOn"
1561
+ },
1562
+ "dimming": {
1563
+ "$ref": "#/components/schemas/dimming"
1564
+ },
1565
+ "color": {
1566
+ "$ref": "#/components/schemas/color"
1567
+ },
1568
+ "configured": {
1569
+ "type": "boolean",
1570
+ "nullable": true
1571
+ }
1572
+ }
1573
+ },
1574
+ "powerUpOn": {
1575
+ "type": "object",
1576
+ "properties": {
1577
+ "mode": {
1578
+ "enum": [
1579
+ 0,
1580
+ 1,
1581
+ 2
1582
+ ],
1583
+ "type": "integer",
1584
+ "format": "int32",
1585
+ "default": 0,
1586
+ "nullable": true
1587
+ },
1588
+ "on": {
1589
+ "$ref": "#/components/schemas/on"
1590
+ }
1591
+ }
1592
+ },
1593
+ "printerStatusResponse": {
1594
+ "type": "object",
1595
+ "properties": {
1596
+ "status": {
1597
+ "type": "string"
1598
+ },
1599
+ "labelSize": {
1600
+ "type": "string"
1601
+ },
1602
+ "labelIdentifier": {
1603
+ "type": "string"
1604
+ },
1605
+ "labelName": {
1606
+ "type": "string"
1607
+ },
1608
+ "supportedWidth": {
1609
+ "type": "integer",
1610
+ "format": "int32"
1611
+ },
1612
+ "supportedHeight": {
1613
+ "type": "integer",
1614
+ "format": "int32"
1615
+ }
1616
+ }
1617
+ },
1618
+ "printJobResponse": {
1619
+ "type": "object",
1620
+ "properties": {
1621
+ "jobId": {
1622
+ "type": "string"
1623
+ },
1624
+ "blobUrl": {
1625
+ "type": "string"
1626
+ },
1627
+ "labelSize": {
1628
+ "$ref": "#/components/schemas/labelSize"
1629
+ }
1630
+ }
1631
+ },
1632
+ "quality": {
1633
+ "type": "object",
1634
+ "properties": {
1635
+ "objectType": {
1636
+ "type": "string"
1637
+ }
1638
+ }
1639
+ },
1640
+ "resourceIdentifier": {
1641
+ "type": "object",
1642
+ "properties": {
1643
+ "rid": {
1644
+ "type": "string",
1645
+ "format": "uuid"
1646
+ },
1647
+ "rtype": {
1648
+ "type": "string"
1649
+ }
1650
+ }
1651
+ },
1652
+ "sanityOfficeDto": {
1653
+ "type": "object",
1654
+ "properties": {
1655
+ "party": {
1656
+ "type": "boolean",
1657
+ "nullable": true
1658
+ },
1659
+ "sonosRefreshTokenExpiryDate": {
1660
+ "type": "string",
1661
+ "format": "date-time",
1662
+ "nullable": true
1663
+ },
1664
+ "hueRefreshTokenExpiryDate": {
1665
+ "type": "string",
1666
+ "format": "date-time",
1667
+ "nullable": true
1668
+ },
1669
+ "youtubeQueue": {
1670
+ "type": "array",
1671
+ "items": {
1672
+ "type": "string"
1673
+ }
1674
+ }
1675
+ }
1676
+ },
1677
+ "service": {
1678
+ "type": "object",
1679
+ "properties": {
1680
+ "objectType": {
1681
+ "type": "string"
1682
+ },
1683
+ "name": {
1684
+ "type": "string"
1685
+ },
1686
+ "id": {
1687
+ "type": "string"
1688
+ },
1689
+ "images": {
1690
+ "type": "array",
1691
+ "items": {
1692
+ "type": "object"
1693
+ }
1694
+ }
1695
+ }
1696
+ },
1697
+ "setParty": {
1698
+ "type": "object",
1699
+ "properties": {
1700
+ "party": {
1701
+ "type": "boolean"
1702
+ }
1703
+ }
1704
+ },
1705
+ "signalingUpdate": {
1706
+ "type": "object",
1707
+ "properties": {
1708
+ "signal": {
1709
+ "enum": [
1710
+ 0,
1711
+ 1,
1712
+ 2,
1713
+ 3
1714
+ ],
1715
+ "type": "integer",
1716
+ "format": "int32",
1717
+ "default": 0
1718
+ },
1719
+ "duration": {
1720
+ "type": "integer",
1721
+ "format": "int32"
1722
+ },
1723
+ "colors": {
1724
+ "type": "array",
1725
+ "items": {
1726
+ "$ref": "#/components/schemas/color"
1727
+ }
1728
+ }
1729
+ }
1730
+ },
1731
+ "simpleResponse": {
1732
+ "type": "object",
1733
+ "properties": {
1734
+ "message": {
1735
+ "type": "string"
1736
+ }
1737
+ }
1738
+ },
1739
+ "sonosHouseholds": {
1740
+ "type": "object",
1741
+ "properties": {
1742
+ "households": {
1743
+ "type": "array",
1744
+ "items": {
1745
+ "$ref": "#/components/schemas/household"
1746
+ }
1747
+ }
1748
+ }
1749
+ },
1750
+ "sonosMetaData": {
1751
+ "type": "object",
1752
+ "properties": {
1753
+ "objectType": {
1754
+ "type": "string"
1755
+ },
1756
+ "container": {
1757
+ "$ref": "#/components/schemas/container"
1758
+ },
1759
+ "currentItem": {
1760
+ "$ref": "#/components/schemas/currentItem"
1761
+ }
1762
+ }
1763
+ },
1764
+ "sonosPlaylist": {
1765
+ "type": "object",
1766
+ "properties": {
1767
+ "objectType": {
1768
+ "type": "string"
1769
+ },
1770
+ "version": {
1771
+ "type": "string"
1772
+ },
1773
+ "playlists": {
1774
+ "type": "array",
1775
+ "items": {
1776
+ "$ref": "#/components/schemas/playlist"
1777
+ }
1778
+ }
1779
+ }
1780
+ },
1781
+ "timedEffects": {
1782
+ "type": "object",
1783
+ "properties": {
1784
+ "effect": {
1785
+ "enum": [
1786
+ 0,
1787
+ 1,
1788
+ 2
1789
+ ],
1790
+ "type": "integer",
1791
+ "format": "int32",
1792
+ "default": 0
1793
+ },
1794
+ "duration": {
1795
+ "type": "integer",
1796
+ "format": "int32"
1797
+ },
1798
+ "effectValues": {
1799
+ "type": "array",
1800
+ "items": {
1801
+ "type": "string"
1802
+ }
1803
+ },
1804
+ "status": {
1805
+ "type": "string"
1806
+ },
1807
+ "statusValues": {
1808
+ "type": "array",
1809
+ "items": {
1810
+ "type": "string"
1811
+ }
1812
+ }
1813
+ }
1814
+ },
1815
+ "track": {
1816
+ "type": "object",
1817
+ "properties": {
1818
+ "objectType": {
1819
+ "type": "string"
1820
+ },
1821
+ "type": {
1822
+ "type": "string"
1823
+ },
1824
+ "name": {
1825
+ "type": "string"
1826
+ },
1827
+ "imageUrl": {
1828
+ "type": "string"
1829
+ },
1830
+ "images": {
1831
+ "type": "array",
1832
+ "items": {
1833
+ "$ref": "#/components/schemas/image"
1834
+ }
1835
+ },
1836
+ "album": {
1837
+ "$ref": "#/components/schemas/album"
1838
+ },
1839
+ "artist": {
1840
+ "$ref": "#/components/schemas/artist"
1841
+ },
1842
+ "id": {
1843
+ "$ref": "#/components/schemas/id"
1844
+ },
1845
+ "service": {
1846
+ "$ref": "#/components/schemas/service"
1847
+ },
1848
+ "durationMillis": {
1849
+ "type": "integer",
1850
+ "format": "int32"
1851
+ },
1852
+ "quality": {
1853
+ "$ref": "#/components/schemas/quality"
1854
+ }
1855
+ }
1856
+ },
1857
+ "unlocEvent": {
1858
+ "type": "object",
1859
+ "properties": {
1860
+ "id": {
1861
+ "type": "string"
1862
+ },
1863
+ "action": {
1864
+ "type": "string"
1865
+ },
1866
+ "created": {
1867
+ "type": "string",
1868
+ "format": "date-time"
1869
+ },
1870
+ "keyId": {
1871
+ "type": "string"
1872
+ },
1873
+ "lockId": {
1874
+ "type": "string"
1875
+ },
1876
+ "lockName": {
1877
+ "type": "string"
1878
+ },
1879
+ "appUserId": {
1880
+ "type": "string"
1881
+ },
1882
+ "userName": {
1883
+ "type": "string"
1884
+ }
1885
+ }
1886
+ },
1887
+ "updateAlert": {
1888
+ "type": "object",
1889
+ "properties": {
1890
+ "action": {
1891
+ "type": "string"
1892
+ }
1893
+ }
1894
+ },
1895
+ "updateLight": {
1896
+ "type": "object",
1897
+ "properties": {
1898
+ "identify": {
1899
+ "$ref": "#/components/schemas/identify"
1900
+ },
1901
+ "on": {
1902
+ "$ref": "#/components/schemas/on"
1903
+ },
1904
+ "dimming": {
1905
+ "$ref": "#/components/schemas/dimming"
1906
+ },
1907
+ "dimmingDelta": {
1908
+ "$ref": "#/components/schemas/dimmingDelta"
1909
+ },
1910
+ "colorTemperature": {
1911
+ "$ref": "#/components/schemas/colorTemperature"
1912
+ },
1913
+ "colorTemperatureDelta": {
1914
+ "$ref": "#/components/schemas/colorTemperatureDelta"
1915
+ },
1916
+ "color": {
1917
+ "$ref": "#/components/schemas/color"
1918
+ },
1919
+ "dynamics": {
1920
+ "$ref": "#/components/schemas/dynamics"
1921
+ },
1922
+ "alert": {
1923
+ "$ref": "#/components/schemas/updateAlert"
1924
+ },
1925
+ "signaling": {
1926
+ "$ref": "#/components/schemas/signalingUpdate"
1927
+ },
1928
+ "gradient": {
1929
+ "$ref": "#/components/schemas/gradient"
1930
+ },
1931
+ "effects": {
1932
+ "$ref": "#/components/schemas/effects"
1933
+ },
1934
+ "effectsV2": {
1935
+ "$ref": "#/components/schemas/effectsV2"
1936
+ },
1937
+ "timedEffects": {
1938
+ "$ref": "#/components/schemas/timedEffects"
1939
+ },
1940
+ "powerUp": {
1941
+ "$ref": "#/components/schemas/powerUp"
1942
+ },
1943
+ "contentConfiguration": {
1944
+ "$ref": "#/components/schemas/contentConfiguration"
1945
+ },
1946
+ "type": {
1947
+ "type": "string"
1948
+ },
1949
+ "metadata": {
1950
+ "$ref": "#/components/schemas/metadata"
1951
+ }
1952
+ }
1953
+ },
1954
+ "xyPosition": {
1955
+ "type": "object",
1956
+ "properties": {
1957
+ "x": {
1958
+ "type": "number",
1959
+ "format": "double"
1960
+ },
1961
+ "y": {
1962
+ "type": "number",
1963
+ "format": "double"
1964
+ }
1965
+ }
1966
+ }
1967
+ },
1968
+ "securitySchemes": {
1969
+ "Implicit": {
1970
+ "type": "oauth2",
1971
+ "flows": {
1972
+ "implicit": {
1973
+ "authorizationUrl": "https://login.microsoftonline.com/81a4f38d-6712-4b65-868b-c3771f9ba91e/oauth2/v2.0/authorize",
1974
+ "tokenUrl": "https://login.microsoftonline.com/81a4f38d-6712-4b65-868b-c3771f9ba91e/oauth2/v2.0/token",
1975
+ "refreshUrl": "https://login.microsoftonline.com/81a4f38d-6712-4b65-868b-c3771f9ba91e/oauth2/v2.0/token",
1976
+ "scopes": {
1977
+ "api://765833d0-105c-45e6-8fcf-4ba48d77b428/user_impersonation": "Default function scope"
1978
+ }
1979
+ }
1980
+ }
1981
+ }
1982
+ }
1983
+ }
1984
+ }