@snokam/mcp-api 0.125.0 → 0.127.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -0,0 +1,2397 @@
1
+ {
2
+ "openapi": "3.0.1",
3
+ "info": {
4
+ "title": "Office API",
5
+ "description": "Office automation service",
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
+ "security": [
40
+ {
41
+ "Implicit": []
42
+ },
43
+ {
44
+ "ApiKey": []
45
+ }
46
+ ],
47
+ "x-ms-visibility": "important"
48
+ }
49
+ },
50
+ "/v1.0/protected/health/{provider}": {
51
+ "get": {
52
+ "tags": [
53
+ "Health"
54
+ ],
55
+ "summary": "Checks an integration's connectivity",
56
+ "description": "Verifies that a provider this function owns can be reached with the configured credentials.",
57
+ "operationId": "integrationHealth",
58
+ "parameters": [
59
+ {
60
+ "name": "provider",
61
+ "in": "path",
62
+ "required": true,
63
+ "schema": {
64
+ "type": "string"
65
+ }
66
+ }
67
+ ],
68
+ "responses": {
69
+ "200": {
70
+ "description": "Payload of IntegrationHealthResult",
71
+ "content": {
72
+ "application/json": {
73
+ "schema": {
74
+ "$ref": "#/components/schemas/integrationHealthResult"
75
+ }
76
+ }
77
+ },
78
+ "x-ms-summary": "Health result"
79
+ }
80
+ },
81
+ "security": [
82
+ {
83
+ "Implicit": [
84
+ "api://bb21a8d0-366b-4a95-aa59-dbbf708322d1/.default"
85
+ ]
86
+ }
87
+ ]
88
+ }
89
+ },
90
+ "/v1.0/sonos/households": {
91
+ "get": {
92
+ "tags": [
93
+ "Sonos"
94
+ ],
95
+ "summary": "Gets Sonos Music households",
96
+ "description": "Retrieves a list of Sonos Music households.",
97
+ "operationId": "getHouseholds",
98
+ "responses": {
99
+ "200": {
100
+ "description": "List of Sonos Music households",
101
+ "content": {
102
+ "application/json": {
103
+ "schema": {
104
+ "$ref": "#/components/schemas/sonosHouseholds"
105
+ }
106
+ }
107
+ },
108
+ "x-ms-summary": "Success"
109
+ }
110
+ },
111
+ "security": [
112
+ {
113
+ "Implicit": []
114
+ },
115
+ {
116
+ "ApiKey": []
117
+ }
118
+ ]
119
+ }
120
+ },
121
+ "/v1.0/playback/status": {
122
+ "get": {
123
+ "tags": [
124
+ "Playback"
125
+ ],
126
+ "summary": "Gets playback status",
127
+ "description": "Retrieves the playback status of the household.",
128
+ "operationId": "getPlaybackStatus",
129
+ "responses": {
130
+ "200": {
131
+ "description": "Playback status of the household",
132
+ "content": {
133
+ "application/json": {
134
+ "schema": {
135
+ "$ref": "#/components/schemas/household"
136
+ }
137
+ }
138
+ },
139
+ "x-ms-summary": "Success"
140
+ }
141
+ },
142
+ "security": [
143
+ {
144
+ "Implicit": []
145
+ },
146
+ {
147
+ "ApiKey": []
148
+ }
149
+ ]
150
+ }
151
+ },
152
+ "/v1.0/sonos/household": {
153
+ "get": {
154
+ "tags": [
155
+ "Sonos"
156
+ ],
157
+ "summary": "Gets a Sonos Music household",
158
+ "description": "Retrieves a Sonos Music household.",
159
+ "operationId": "getHousehold",
160
+ "responses": {
161
+ "200": {
162
+ "description": "A Sonos Music household",
163
+ "content": {
164
+ "application/json": {
165
+ "schema": {
166
+ "$ref": "#/components/schemas/household"
167
+ }
168
+ }
169
+ },
170
+ "x-ms-summary": "Success"
171
+ }
172
+ },
173
+ "security": [
174
+ {
175
+ "Implicit": []
176
+ },
177
+ {
178
+ "ApiKey": []
179
+ }
180
+ ]
181
+ }
182
+ },
183
+ "/v1.0/sonos/groups/{name}": {
184
+ "get": {
185
+ "tags": [
186
+ "Sonos"
187
+ ],
188
+ "summary": "Gets a Sonos Music group",
189
+ "description": "Retrieves a Sonos Music group by name.",
190
+ "operationId": "getGroup",
191
+ "parameters": [
192
+ {
193
+ "name": "name",
194
+ "in": "path",
195
+ "description": "The name of the group to retrieve",
196
+ "required": true,
197
+ "schema": {
198
+ "type": "string"
199
+ },
200
+ "x-ms-summary": "The name of the group"
201
+ }
202
+ ],
203
+ "responses": {
204
+ "200": {
205
+ "description": "A Sonos Music group",
206
+ "content": {
207
+ "application/json": {
208
+ "schema": {
209
+ "$ref": "#/components/schemas/group"
210
+ }
211
+ }
212
+ },
213
+ "x-ms-summary": "Success"
214
+ },
215
+ "404": {
216
+ "description": "Group not found",
217
+ "x-ms-summary": "Not Found"
218
+ }
219
+ },
220
+ "security": [
221
+ {
222
+ "Implicit": []
223
+ },
224
+ {
225
+ "ApiKey": []
226
+ }
227
+ ]
228
+ }
229
+ },
230
+ "/v1.0/sonos/groups/{name}/playback/play": {
231
+ "put": {
232
+ "tags": [
233
+ "Sonos"
234
+ ],
235
+ "summary": "Plays a group",
236
+ "description": "Starts playback on a Sonos Music group by name.",
237
+ "operationId": "play",
238
+ "parameters": [
239
+ {
240
+ "name": "name",
241
+ "in": "path",
242
+ "description": "The name of the group to play",
243
+ "required": true,
244
+ "schema": {
245
+ "type": "string"
246
+ },
247
+ "x-ms-summary": "The name of the group"
248
+ }
249
+ ],
250
+ "responses": {
251
+ "200": {
252
+ "description": "Playback started on the group",
253
+ "content": {
254
+ "application/json": {
255
+ "schema": {
256
+ "$ref": "#/components/schemas/simpleResponse"
257
+ }
258
+ }
259
+ },
260
+ "x-ms-summary": "Success"
261
+ },
262
+ "404": {
263
+ "description": "Group not found",
264
+ "x-ms-summary": "Not Found"
265
+ }
266
+ },
267
+ "security": [
268
+ {
269
+ "Implicit": []
270
+ },
271
+ {
272
+ "ApiKey": []
273
+ }
274
+ ]
275
+ }
276
+ },
277
+ "/v1.0/sonos/groups/{name}/playback/skipToNextTrack": {
278
+ "put": {
279
+ "tags": [
280
+ "Sonos"
281
+ ],
282
+ "summary": "Skips to the next track",
283
+ "description": "Skips to the next track on a Sonos Music group by name.",
284
+ "operationId": "skipTrack",
285
+ "parameters": [
286
+ {
287
+ "name": "name",
288
+ "in": "path",
289
+ "description": "The name of the group to skip track",
290
+ "required": true,
291
+ "schema": {
292
+ "type": "string"
293
+ },
294
+ "x-ms-summary": "The name of the group"
295
+ }
296
+ ],
297
+ "responses": {
298
+ "200": {
299
+ "description": "Skipped track on the group",
300
+ "content": {
301
+ "application/json": {
302
+ "schema": {
303
+ "$ref": "#/components/schemas/simpleResponse"
304
+ }
305
+ }
306
+ },
307
+ "x-ms-summary": "Success"
308
+ },
309
+ "404": {
310
+ "description": "Group not found",
311
+ "x-ms-summary": "Not Found"
312
+ }
313
+ },
314
+ "security": [
315
+ {
316
+ "Implicit": []
317
+ },
318
+ {
319
+ "ApiKey": []
320
+ }
321
+ ]
322
+ }
323
+ },
324
+ "/v1.0/sonos/groups/{name}/playback/skipToPreviousTrack": {
325
+ "put": {
326
+ "tags": [
327
+ "Sonos"
328
+ ],
329
+ "summary": "Skips to the previous track",
330
+ "description": "Skips to the previous track on a Sonos Music group by name.",
331
+ "operationId": "previousTrack",
332
+ "parameters": [
333
+ {
334
+ "name": "name",
335
+ "in": "path",
336
+ "description": "The name of the group to skip to the previous track",
337
+ "required": true,
338
+ "schema": {
339
+ "type": "string"
340
+ },
341
+ "x-ms-summary": "The name of the group"
342
+ }
343
+ ],
344
+ "responses": {
345
+ "200": {
346
+ "description": "Skipped to the previous track on the group",
347
+ "content": {
348
+ "application/json": {
349
+ "schema": {
350
+ "$ref": "#/components/schemas/simpleResponse"
351
+ }
352
+ }
353
+ },
354
+ "x-ms-summary": "Success"
355
+ },
356
+ "404": {
357
+ "description": "Group not found",
358
+ "x-ms-summary": "Not Found"
359
+ }
360
+ },
361
+ "security": [
362
+ {
363
+ "Implicit": []
364
+ },
365
+ {
366
+ "ApiKey": []
367
+ }
368
+ ]
369
+ }
370
+ },
371
+ "/v1.0/sonos/groups/{name}/playback/pause": {
372
+ "put": {
373
+ "tags": [
374
+ "Sonos"
375
+ ],
376
+ "summary": "Pauses playback",
377
+ "description": "Pauses playback on a Sonos Music group by name.",
378
+ "operationId": "pause",
379
+ "parameters": [
380
+ {
381
+ "name": "name",
382
+ "in": "path",
383
+ "description": "The name of the group to pause playback",
384
+ "required": true,
385
+ "schema": {
386
+ "type": "string"
387
+ },
388
+ "x-ms-summary": "The name of the group"
389
+ }
390
+ ],
391
+ "responses": {
392
+ "200": {
393
+ "description": "Paused playback on the group",
394
+ "content": {
395
+ "application/json": {
396
+ "schema": {
397
+ "$ref": "#/components/schemas/simpleResponse"
398
+ }
399
+ }
400
+ },
401
+ "x-ms-summary": "Success"
402
+ },
403
+ "404": {
404
+ "description": "Group not found",
405
+ "x-ms-summary": "Not Found"
406
+ }
407
+ },
408
+ "security": [
409
+ {
410
+ "Implicit": []
411
+ },
412
+ {
413
+ "ApiKey": []
414
+ }
415
+ ]
416
+ }
417
+ },
418
+ "/v1.0/sonos/groups/{name}/playback/status": {
419
+ "get": {
420
+ "tags": [
421
+ "Sonos"
422
+ ],
423
+ "summary": "Gets playback status",
424
+ "description": "Gets the playback status of a Sonos Music group by name.",
425
+ "operationId": "status",
426
+ "parameters": [
427
+ {
428
+ "name": "name",
429
+ "in": "path",
430
+ "description": "The name of the group to get playback status",
431
+ "required": true,
432
+ "schema": {
433
+ "type": "string"
434
+ },
435
+ "x-ms-summary": "The name of the group"
436
+ }
437
+ ],
438
+ "responses": {
439
+ "200": {
440
+ "description": "Playback status of the group",
441
+ "content": {
442
+ "application/json": {
443
+ "schema": {
444
+ "$ref": "#/components/schemas/playbackStatus"
445
+ }
446
+ }
447
+ },
448
+ "x-ms-summary": "Success"
449
+ },
450
+ "404": {
451
+ "description": "Group not found",
452
+ "x-ms-summary": "Not Found"
453
+ }
454
+ },
455
+ "security": [
456
+ {
457
+ "Implicit": []
458
+ },
459
+ {
460
+ "ApiKey": []
461
+ }
462
+ ]
463
+ }
464
+ },
465
+ "/v1.0/sonos/groups/{name}/playbackMetadata": {
466
+ "get": {
467
+ "tags": [
468
+ "Sonos"
469
+ ],
470
+ "summary": "Gets playback metadata",
471
+ "description": "Gets the playback metadata of a Sonos Music group by name.",
472
+ "operationId": "playbackMetadata",
473
+ "parameters": [
474
+ {
475
+ "name": "name",
476
+ "in": "path",
477
+ "description": "The name of the group to get playback metadata",
478
+ "required": true,
479
+ "schema": {
480
+ "type": "string"
481
+ },
482
+ "x-ms-summary": "The name of the group"
483
+ }
484
+ ],
485
+ "responses": {
486
+ "200": {
487
+ "description": "Playback metadata of the group",
488
+ "content": {
489
+ "application/json": {
490
+ "schema": {
491
+ "$ref": "#/components/schemas/sonosMetaData"
492
+ }
493
+ }
494
+ },
495
+ "x-ms-summary": "Success"
496
+ },
497
+ "404": {
498
+ "description": "Group not found",
499
+ "x-ms-summary": "Not Found"
500
+ }
501
+ },
502
+ "security": [
503
+ {
504
+ "Implicit": []
505
+ },
506
+ {
507
+ "ApiKey": []
508
+ }
509
+ ]
510
+ }
511
+ },
512
+ "/v1.0/sonos/groups": {
513
+ "get": {
514
+ "tags": [
515
+ "Sonos"
516
+ ],
517
+ "summary": "Gets all groups",
518
+ "description": "Gets a list of all Sonos Music groups.",
519
+ "operationId": "getGroups",
520
+ "responses": {
521
+ "200": {
522
+ "description": "List of Sonos Music groups",
523
+ "content": {
524
+ "application/json": {
525
+ "schema": {
526
+ "type": "array",
527
+ "items": {
528
+ "$ref": "#/components/schemas/group"
529
+ }
530
+ }
531
+ }
532
+ },
533
+ "x-ms-summary": "Success"
534
+ }
535
+ },
536
+ "security": [
537
+ {
538
+ "Implicit": []
539
+ },
540
+ {
541
+ "ApiKey": []
542
+ }
543
+ ]
544
+ }
545
+ },
546
+ "/v1.0/sonos/playlists": {
547
+ "get": {
548
+ "tags": [
549
+ "Sonos"
550
+ ],
551
+ "summary": "Gets all playlists",
552
+ "description": "Gets a list of all Sonos Music playlists.",
553
+ "operationId": "getPlaylists",
554
+ "responses": {
555
+ "200": {
556
+ "description": "List of Sonos Music playlists",
557
+ "content": {
558
+ "application/json": {
559
+ "schema": {
560
+ "$ref": "#/components/schemas/sonosPlaylist"
561
+ }
562
+ }
563
+ },
564
+ "x-ms-summary": "Success"
565
+ }
566
+ },
567
+ "security": [
568
+ {
569
+ "Implicit": []
570
+ },
571
+ {
572
+ "ApiKey": []
573
+ }
574
+ ]
575
+ }
576
+ },
577
+ "/v1.0/sonos/groups/{groupName}/playlist/{playlistName}": {
578
+ "put": {
579
+ "tags": [
580
+ "Sonos"
581
+ ],
582
+ "summary": "Plays a playlist",
583
+ "description": "Plays a Sonos Music playlist by name.",
584
+ "operationId": "playPlaylist",
585
+ "parameters": [
586
+ {
587
+ "name": "groupName",
588
+ "in": "path",
589
+ "description": "The name of the group to play the playlist on",
590
+ "required": true,
591
+ "schema": {
592
+ "type": "string"
593
+ },
594
+ "x-ms-summary": "The name of the group"
595
+ },
596
+ {
597
+ "name": "playlistName",
598
+ "in": "path",
599
+ "description": "The name of the playlist to play",
600
+ "required": true,
601
+ "schema": {
602
+ "type": "string"
603
+ },
604
+ "x-ms-summary": "The name of the playlist"
605
+ }
606
+ ],
607
+ "responses": {
608
+ "200": {
609
+ "description": "Playing the playlist on the group",
610
+ "content": {
611
+ "application/json": {
612
+ "schema": {
613
+ "$ref": "#/components/schemas/simpleResponse"
614
+ }
615
+ }
616
+ },
617
+ "x-ms-summary": "Success"
618
+ },
619
+ "404": {
620
+ "description": "Group or playlist not found",
621
+ "x-ms-summary": "Not Found"
622
+ }
623
+ },
624
+ "security": [
625
+ {
626
+ "Implicit": []
627
+ },
628
+ {
629
+ "ApiKey": []
630
+ }
631
+ ]
632
+ }
633
+ },
634
+ "/v1.0/sonos/groups/{groupName}/setGroupMembers": {
635
+ "put": {
636
+ "tags": [
637
+ "Sonos"
638
+ ],
639
+ "summary": "Sets group members",
640
+ "description": "Sets the members of a Sonos Music group by name.",
641
+ "operationId": "setGroupMembers",
642
+ "parameters": [
643
+ {
644
+ "name": "groupName",
645
+ "in": "path",
646
+ "description": "The name of the group to set members for",
647
+ "required": true,
648
+ "schema": {
649
+ "type": "string"
650
+ },
651
+ "x-ms-summary": "The name of the group"
652
+ },
653
+ {
654
+ "name": "groups",
655
+ "in": "query",
656
+ "description": "The groups to add to the group",
657
+ "required": true,
658
+ "schema": {
659
+ "type": "string"
660
+ },
661
+ "x-ms-summary": "The groups to add"
662
+ }
663
+ ],
664
+ "responses": {
665
+ "200": {
666
+ "description": "Added groups to the group",
667
+ "content": {
668
+ "application/json": {
669
+ "schema": {
670
+ "$ref": "#/components/schemas/simpleResponse"
671
+ }
672
+ }
673
+ },
674
+ "x-ms-summary": "Success"
675
+ },
676
+ "404": {
677
+ "description": "Group not found",
678
+ "x-ms-summary": "Not Found"
679
+ }
680
+ },
681
+ "security": [
682
+ {
683
+ "Implicit": []
684
+ },
685
+ {
686
+ "ApiKey": []
687
+ }
688
+ ]
689
+ }
690
+ },
691
+ "/v1.0/ice": {
692
+ "post": {
693
+ "tags": [
694
+ "Misc"
695
+ ],
696
+ "summary": "Ice Baby",
697
+ "description": "Performs the Ice Baby action.",
698
+ "operationId": "iceBaby",
699
+ "responses": {
700
+ "200": {
701
+ "description": "Ice Baby action performed",
702
+ "content": {
703
+ "application/json": {
704
+ "schema": {
705
+ "$ref": "#/components/schemas/simpleResponse"
706
+ }
707
+ }
708
+ },
709
+ "x-ms-summary": "Success"
710
+ }
711
+ },
712
+ "security": [
713
+ {
714
+ "Implicit": []
715
+ },
716
+ {
717
+ "ApiKey": []
718
+ }
719
+ ]
720
+ }
721
+ },
722
+ "/v1.0/hue/lights/{id}": {
723
+ "put": {
724
+ "tags": [
725
+ "Hue"
726
+ ],
727
+ "summary": "Sets a Hue light",
728
+ "description": "Sets the state of a Hue light by ID.",
729
+ "operationId": "setLight",
730
+ "parameters": [
731
+ {
732
+ "name": "id",
733
+ "in": "path",
734
+ "description": "The ID of the light to set",
735
+ "required": true,
736
+ "schema": {
737
+ "type": "string"
738
+ },
739
+ "x-ms-summary": "The ID of the light"
740
+ }
741
+ ],
742
+ "requestBody": {
743
+ "description": "The light state to set",
744
+ "content": {
745
+ "application/json": {
746
+ "schema": {
747
+ "$ref": "#/components/schemas/updateLight"
748
+ }
749
+ }
750
+ },
751
+ "required": true
752
+ },
753
+ "responses": {
754
+ "200": {
755
+ "description": "Light state set",
756
+ "content": {
757
+ "application/json": {
758
+ "schema": {
759
+ "$ref": "#/components/schemas/simpleResponse"
760
+ }
761
+ }
762
+ },
763
+ "x-ms-summary": "Success"
764
+ }
765
+ },
766
+ "security": [
767
+ {
768
+ "Implicit": []
769
+ },
770
+ {
771
+ "ApiKey": []
772
+ }
773
+ ]
774
+ }
775
+ },
776
+ "/v1.0/hue/lights": {
777
+ "get": {
778
+ "tags": [
779
+ "Hue"
780
+ ],
781
+ "summary": "Gets all Hue lights",
782
+ "description": "Gets a list of all Hue lights.",
783
+ "operationId": "GetLights",
784
+ "responses": {
785
+ "200": {
786
+ "description": "List of Hue lights",
787
+ "content": {
788
+ "application/json": {
789
+ "schema": {
790
+ "type": "array",
791
+ "items": {
792
+ "$ref": "#/components/schemas/light"
793
+ }
794
+ }
795
+ }
796
+ },
797
+ "x-ms-summary": "Success"
798
+ }
799
+ },
800
+ "security": [
801
+ {
802
+ "Implicit": []
803
+ },
804
+ {
805
+ "ApiKey": []
806
+ }
807
+ ]
808
+ }
809
+ },
810
+ "/v1.0/youtube/queue/next": {
811
+ "get": {
812
+ "tags": [
813
+ "Youtube"
814
+ ],
815
+ "summary": "Gets next YouTube video",
816
+ "description": "Gets the next video in the YouTube queue.",
817
+ "operationId": "getNextYoutubeVideo",
818
+ "responses": {
819
+ "200": {
820
+ "description": "Next video in the YouTube queue",
821
+ "content": {
822
+ "application/json": {
823
+ "schema": {
824
+ "$ref": "#/components/schemas/nextVideo"
825
+ }
826
+ }
827
+ },
828
+ "x-ms-summary": "Success"
829
+ },
830
+ "204": {
831
+ "description": "No video in the queue",
832
+ "x-ms-summary": "No Content"
833
+ }
834
+ },
835
+ "security": [
836
+ {
837
+ "Implicit": []
838
+ },
839
+ {
840
+ "ApiKey": []
841
+ }
842
+ ]
843
+ }
844
+ },
845
+ "/v1.0/youtube/queue/{id}": {
846
+ "put": {
847
+ "tags": [
848
+ "Youtube"
849
+ ],
850
+ "summary": "Adds to YouTube queue",
851
+ "description": "Adds a video to the YouTube queue.",
852
+ "operationId": "addToYoutubeQueue",
853
+ "parameters": [
854
+ {
855
+ "name": "id",
856
+ "in": "path",
857
+ "description": "The ID of the video to add",
858
+ "required": true,
859
+ "schema": {
860
+ "type": "string"
861
+ },
862
+ "x-ms-summary": "The ID of the video"
863
+ }
864
+ ],
865
+ "responses": {
866
+ "200": {
867
+ "description": "Video added to the queue",
868
+ "content": {
869
+ "application/json": {
870
+ "schema": {
871
+ "$ref": "#/components/schemas/simpleResponse"
872
+ }
873
+ }
874
+ },
875
+ "x-ms-summary": "Success"
876
+ }
877
+ },
878
+ "security": [
879
+ {
880
+ "Implicit": []
881
+ },
882
+ {
883
+ "ApiKey": []
884
+ }
885
+ ]
886
+ },
887
+ "delete": {
888
+ "tags": [
889
+ "Youtube"
890
+ ],
891
+ "summary": "Removes from YouTube queue",
892
+ "description": "Removes a video from the YouTube queue.",
893
+ "operationId": "removeFromQueue",
894
+ "parameters": [
895
+ {
896
+ "name": "id",
897
+ "in": "path",
898
+ "description": "The ID of the video to remove",
899
+ "required": true,
900
+ "schema": {
901
+ "type": "string"
902
+ },
903
+ "x-ms-summary": "The ID of the video"
904
+ }
905
+ ],
906
+ "responses": {
907
+ "200": {
908
+ "description": "Video removed from the queue",
909
+ "content": {
910
+ "application/json": {
911
+ "schema": {
912
+ "$ref": "#/components/schemas/simpleResponse"
913
+ }
914
+ }
915
+ },
916
+ "x-ms-summary": "Success"
917
+ }
918
+ },
919
+ "security": [
920
+ {
921
+ "Implicit": []
922
+ },
923
+ {
924
+ "ApiKey": []
925
+ }
926
+ ]
927
+ }
928
+ },
929
+ "/v1.0/party": {
930
+ "put": {
931
+ "tags": [
932
+ "Party"
933
+ ],
934
+ "summary": "Sets party state",
935
+ "description": "Sets the party state at the office, only activate on request.",
936
+ "operationId": "setPartyState",
937
+ "requestBody": {
938
+ "description": "The party state to set",
939
+ "content": {
940
+ "application/json": {
941
+ "schema": {
942
+ "$ref": "#/components/schemas/setParty"
943
+ }
944
+ }
945
+ },
946
+ "required": true
947
+ },
948
+ "responses": {
949
+ "200": {
950
+ "description": "Party state set",
951
+ "content": {
952
+ "application/json": {
953
+ "schema": {
954
+ "$ref": "#/components/schemas/simpleResponse"
955
+ }
956
+ }
957
+ },
958
+ "x-ms-summary": "Success"
959
+ }
960
+ },
961
+ "security": [
962
+ {
963
+ "Implicit": [
964
+ "api://bb21a8d0-366b-4a95-aa59-dbbf708322d1/.default"
965
+ ]
966
+ },
967
+ {
968
+ "ApiKey": []
969
+ }
970
+ ]
971
+ }
972
+ },
973
+ "/v1.0/sanity/state": {
974
+ "get": {
975
+ "tags": [
976
+ "Sanity"
977
+ ],
978
+ "summary": "Gets Sanity office state",
979
+ "description": "Gets the state of the office from Sanity.",
980
+ "operationId": "getSanityOfficeState",
981
+ "responses": {
982
+ "200": {
983
+ "description": "Sanity office state",
984
+ "content": {
985
+ "application/json": {
986
+ "schema": {
987
+ "$ref": "#/components/schemas/sanityOfficeDto"
988
+ }
989
+ }
990
+ },
991
+ "x-ms-summary": "Success"
992
+ }
993
+ },
994
+ "security": [
995
+ {
996
+ "Implicit": []
997
+ },
998
+ {
999
+ "ApiKey": []
1000
+ }
1001
+ ]
1002
+ }
1003
+ },
1004
+ "/v1.0/state": {
1005
+ "get": {
1006
+ "tags": [
1007
+ "State"
1008
+ ],
1009
+ "summary": "Gets office state",
1010
+ "description": "Gets the state of the office including Sanity, Hue, and Sonos.",
1011
+ "operationId": "getOfficeState",
1012
+ "responses": {
1013
+ "200": {
1014
+ "description": "Office state",
1015
+ "content": {
1016
+ "application/json": {
1017
+ "schema": {
1018
+ "$ref": "#/components/schemas/officeState"
1019
+ }
1020
+ }
1021
+ },
1022
+ "x-ms-summary": "Success"
1023
+ }
1024
+ },
1025
+ "security": [
1026
+ {
1027
+ "Implicit": []
1028
+ },
1029
+ {
1030
+ "ApiKey": []
1031
+ }
1032
+ ]
1033
+ }
1034
+ },
1035
+ "/v1.0/power-up-on": {
1036
+ "get": {
1037
+ "tags": [
1038
+ "State"
1039
+ ],
1040
+ "summary": "Gets powerUpOn type",
1041
+ "description": "Gets the type of powerUpOn",
1042
+ "operationId": "powerUpOn",
1043
+ "responses": {
1044
+ "200": {
1045
+ "description": "Office state",
1046
+ "content": {
1047
+ "application/json": {
1048
+ "schema": {
1049
+ "$ref": "#/components/schemas/powerUpOn"
1050
+ }
1051
+ }
1052
+ },
1053
+ "x-ms-summary": "Success"
1054
+ }
1055
+ },
1056
+ "security": [
1057
+ {
1058
+ "Implicit": []
1059
+ },
1060
+ {
1061
+ "ApiKey": []
1062
+ }
1063
+ ]
1064
+ }
1065
+ },
1066
+ "/v1.0/printer/create-printjob": {
1067
+ "post": {
1068
+ "tags": [
1069
+ "Printer"
1070
+ ],
1071
+ "summary": "Creates a print job",
1072
+ "description": "Uploads a PNG image to blob storage and creates a print job in the queue. Accepts multipart/form-data with a PNG file.",
1073
+ "operationId": "createPrintJob",
1074
+ "requestBody": {
1075
+ "description": "A PNG image file as multipart/form-data.",
1076
+ "content": {
1077
+ "multipart/form-data": {
1078
+ "schema": {
1079
+ "type": "string",
1080
+ "format": "binary"
1081
+ }
1082
+ }
1083
+ },
1084
+ "required": true
1085
+ },
1086
+ "responses": {
1087
+ "200": {
1088
+ "description": "Print job created successfully",
1089
+ "content": {
1090
+ "application/json": {
1091
+ "schema": {
1092
+ "$ref": "#/components/schemas/printJobResponse"
1093
+ }
1094
+ }
1095
+ },
1096
+ "x-ms-summary": "Success"
1097
+ },
1098
+ "400": {
1099
+ "description": "Invalid file or file format",
1100
+ "x-ms-summary": "Bad Request"
1101
+ },
1102
+ "401": {
1103
+ "description": "Unauthorized access",
1104
+ "x-ms-summary": "Unauthorized"
1105
+ }
1106
+ },
1107
+ "security": [
1108
+ {
1109
+ "Implicit": [
1110
+ "api://bb21a8d0-366b-4a95-aa59-dbbf708322d1/.default"
1111
+ ]
1112
+ },
1113
+ {
1114
+ "ApiKey": []
1115
+ }
1116
+ ]
1117
+ }
1118
+ },
1119
+ "/v1.0/printer/status": {
1120
+ "get": {
1121
+ "tags": [
1122
+ "Printer"
1123
+ ],
1124
+ "summary": "Gets printer status",
1125
+ "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.",
1126
+ "operationId": "getPrinterStatus",
1127
+ "responses": {
1128
+ "200": {
1129
+ "description": "Printer status with currently loaded label information and supported dimensions",
1130
+ "content": {
1131
+ "application/json": {
1132
+ "schema": {
1133
+ "$ref": "#/components/schemas/printerStatusResponse"
1134
+ }
1135
+ }
1136
+ },
1137
+ "x-ms-summary": "Success"
1138
+ }
1139
+ },
1140
+ "security": [
1141
+ {
1142
+ "Implicit": []
1143
+ },
1144
+ {
1145
+ "ApiKey": []
1146
+ }
1147
+ ]
1148
+ },
1149
+ "post": {
1150
+ "tags": [
1151
+ "Printer"
1152
+ ],
1153
+ "summary": "Report printer status",
1154
+ "description": "A printer reports its status beacon (status + currently loaded label size) so print jobs can be validated against the loaded label.",
1155
+ "operationId": "reportPrinterStatus",
1156
+ "requestBody": {
1157
+ "content": {
1158
+ "application/json": {
1159
+ "schema": {
1160
+ "$ref": "#/components/schemas/reportStatusRequest"
1161
+ }
1162
+ }
1163
+ },
1164
+ "required": true
1165
+ },
1166
+ "responses": {
1167
+ "204": {
1168
+ "description": "No description",
1169
+ "x-ms-summary": "Recorded"
1170
+ },
1171
+ "400": {
1172
+ "description": "No description",
1173
+ "x-ms-summary": "Invalid body"
1174
+ }
1175
+ },
1176
+ "security": [
1177
+ {
1178
+ "Implicit": []
1179
+ },
1180
+ {
1181
+ "ApiKey": []
1182
+ }
1183
+ ]
1184
+ }
1185
+ },
1186
+ "/v1.0/printer/next-job": {
1187
+ "get": {
1188
+ "tags": [
1189
+ "Printer"
1190
+ ],
1191
+ "summary": "Lease the next print job",
1192
+ "description": "Token-authenticated pull endpoint for a printer. Returns the next queued job for the caller's business (image inlined as base64) with a receipt to acknowledge once printed, or 204 when the queue is empty.",
1193
+ "operationId": "getNextPrintJob",
1194
+ "responses": {
1195
+ "200": {
1196
+ "description": "Payload of PrintJobLease",
1197
+ "content": {
1198
+ "application/json": {
1199
+ "schema": {
1200
+ "$ref": "#/components/schemas/printJobLease"
1201
+ }
1202
+ }
1203
+ },
1204
+ "x-ms-summary": "A leased job"
1205
+ },
1206
+ "204": {
1207
+ "description": "No description",
1208
+ "x-ms-summary": "No jobs queued"
1209
+ }
1210
+ },
1211
+ "security": [
1212
+ {
1213
+ "Implicit": []
1214
+ },
1215
+ {
1216
+ "ApiKey": []
1217
+ }
1218
+ ]
1219
+ }
1220
+ },
1221
+ "/v1.0/printer/ack": {
1222
+ "post": {
1223
+ "tags": [
1224
+ "Printer"
1225
+ ],
1226
+ "summary": "Acknowledge a printed job",
1227
+ "description": "Deletes a leased job from the queue once printed. Provide the messageId and popReceipt from the lease.",
1228
+ "operationId": "ackPrintJob",
1229
+ "requestBody": {
1230
+ "content": {
1231
+ "application/json": {
1232
+ "schema": {
1233
+ "$ref": "#/components/schemas/ackRequest"
1234
+ }
1235
+ }
1236
+ },
1237
+ "required": true
1238
+ },
1239
+ "responses": {
1240
+ "204": {
1241
+ "description": "No description",
1242
+ "x-ms-summary": "Acknowledged"
1243
+ },
1244
+ "400": {
1245
+ "description": "No description",
1246
+ "x-ms-summary": "Missing receipt"
1247
+ }
1248
+ },
1249
+ "security": [
1250
+ {
1251
+ "Implicit": []
1252
+ },
1253
+ {
1254
+ "ApiKey": []
1255
+ }
1256
+ ]
1257
+ }
1258
+ }
1259
+ },
1260
+ "components": {
1261
+ "schemas": {
1262
+ "ackRequest": {
1263
+ "type": "object",
1264
+ "properties": {
1265
+ "messageId": {
1266
+ "type": "string"
1267
+ },
1268
+ "popReceipt": {
1269
+ "type": "string"
1270
+ }
1271
+ }
1272
+ },
1273
+ "album": {
1274
+ "type": "object",
1275
+ "properties": {
1276
+ "objectType": {
1277
+ "type": "string"
1278
+ },
1279
+ "name": {
1280
+ "type": "string"
1281
+ }
1282
+ }
1283
+ },
1284
+ "artist": {
1285
+ "type": "object",
1286
+ "properties": {
1287
+ "objectType": {
1288
+ "type": "string"
1289
+ },
1290
+ "name": {
1291
+ "type": "string"
1292
+ }
1293
+ }
1294
+ },
1295
+ "availablePlaybackActions": {
1296
+ "type": "object",
1297
+ "properties": {
1298
+ "objectType": {
1299
+ "type": "string"
1300
+ },
1301
+ "canPlay": {
1302
+ "type": "boolean"
1303
+ },
1304
+ "canSkip": {
1305
+ "type": "boolean"
1306
+ },
1307
+ "canSkipBack": {
1308
+ "type": "boolean"
1309
+ },
1310
+ "canSkipToPrevious": {
1311
+ "type": "boolean"
1312
+ },
1313
+ "canSeek": {
1314
+ "type": "boolean"
1315
+ },
1316
+ "canPause": {
1317
+ "type": "boolean"
1318
+ },
1319
+ "canStop": {
1320
+ "type": "boolean"
1321
+ },
1322
+ "canRepeat": {
1323
+ "type": "boolean"
1324
+ },
1325
+ "canRepeatOne": {
1326
+ "type": "boolean"
1327
+ },
1328
+ "canCrossfade": {
1329
+ "type": "boolean"
1330
+ },
1331
+ "canShuffle": {
1332
+ "type": "boolean"
1333
+ }
1334
+ }
1335
+ },
1336
+ "color": {
1337
+ "type": "object",
1338
+ "properties": {
1339
+ "gamut": {
1340
+ "$ref": "#/components/schemas/gamut"
1341
+ },
1342
+ "gamutType": {
1343
+ "type": "string"
1344
+ },
1345
+ "xy": {
1346
+ "$ref": "#/components/schemas/xyPosition"
1347
+ }
1348
+ }
1349
+ },
1350
+ "colorTemperature": {
1351
+ "type": "object",
1352
+ "properties": {
1353
+ "mirek": {
1354
+ "type": "integer",
1355
+ "format": "int32",
1356
+ "nullable": true
1357
+ },
1358
+ "mirekSchema": {
1359
+ "$ref": "#/components/schemas/mirekSchema"
1360
+ },
1361
+ "mirekValid": {
1362
+ "type": "boolean"
1363
+ }
1364
+ }
1365
+ },
1366
+ "colorTemperatureDelta": {
1367
+ "type": "object",
1368
+ "properties": {
1369
+ "action": {
1370
+ "enum": [
1371
+ 0,
1372
+ 1,
1373
+ 2
1374
+ ],
1375
+ "type": "integer",
1376
+ "format": "int32",
1377
+ "default": 0
1378
+ },
1379
+ "mirekDelta": {
1380
+ "type": "integer",
1381
+ "format": "int32"
1382
+ }
1383
+ }
1384
+ },
1385
+ "container": {
1386
+ "type": "object",
1387
+ "properties": {
1388
+ "objectType": {
1389
+ "type": "string"
1390
+ },
1391
+ "images": {
1392
+ "type": "array",
1393
+ "items": {
1394
+ "type": "object"
1395
+ }
1396
+ }
1397
+ }
1398
+ },
1399
+ "contentConfiguration": {
1400
+ "type": "object",
1401
+ "properties": {
1402
+ "orientation": {
1403
+ "$ref": "#/components/schemas/contentConfigurationOrientation"
1404
+ },
1405
+ "order": {
1406
+ "$ref": "#/components/schemas/contentConfigurationOrder"
1407
+ }
1408
+ }
1409
+ },
1410
+ "contentConfigurationOrder": {
1411
+ "type": "object",
1412
+ "properties": {
1413
+ "status": {
1414
+ "type": "string"
1415
+ },
1416
+ "configurable": {
1417
+ "type": "boolean",
1418
+ "nullable": true
1419
+ },
1420
+ "order": {
1421
+ "enum": [
1422
+ 0,
1423
+ 1
1424
+ ],
1425
+ "type": "integer",
1426
+ "format": "int32",
1427
+ "default": 0
1428
+ }
1429
+ }
1430
+ },
1431
+ "contentConfigurationOrientation": {
1432
+ "type": "object",
1433
+ "properties": {
1434
+ "status": {
1435
+ "type": "string"
1436
+ },
1437
+ "configurable": {
1438
+ "type": "boolean",
1439
+ "nullable": true
1440
+ },
1441
+ "orientation": {
1442
+ "enum": [
1443
+ 0,
1444
+ 1
1445
+ ],
1446
+ "type": "integer",
1447
+ "format": "int32",
1448
+ "default": 0
1449
+ }
1450
+ }
1451
+ },
1452
+ "currentItem": {
1453
+ "type": "object",
1454
+ "properties": {
1455
+ "objectType": {
1456
+ "type": "string"
1457
+ },
1458
+ "track": {
1459
+ "$ref": "#/components/schemas/track"
1460
+ },
1461
+ "policies": {
1462
+ "$ref": "#/components/schemas/policies"
1463
+ }
1464
+ }
1465
+ },
1466
+ "dimming": {
1467
+ "type": "object",
1468
+ "properties": {
1469
+ "brightness": {
1470
+ "type": "number",
1471
+ "format": "double"
1472
+ },
1473
+ "minDimLevel": {
1474
+ "type": "number",
1475
+ "format": "double",
1476
+ "nullable": true
1477
+ }
1478
+ }
1479
+ },
1480
+ "dimmingDelta": {
1481
+ "type": "object",
1482
+ "properties": {
1483
+ "action": {
1484
+ "enum": [
1485
+ 0,
1486
+ 1,
1487
+ 2
1488
+ ],
1489
+ "type": "integer",
1490
+ "format": "int32",
1491
+ "default": 0
1492
+ },
1493
+ "brightnessDelta": {
1494
+ "type": "number",
1495
+ "format": "double"
1496
+ }
1497
+ }
1498
+ },
1499
+ "dynamics": {
1500
+ "type": "object",
1501
+ "properties": {
1502
+ "duration": {
1503
+ "type": "integer",
1504
+ "format": "int32"
1505
+ },
1506
+ "speed": {
1507
+ "type": "number",
1508
+ "format": "double"
1509
+ },
1510
+ "speedValid": {
1511
+ "type": "boolean"
1512
+ },
1513
+ "status": {
1514
+ "type": "string"
1515
+ },
1516
+ "statusValues": {
1517
+ "type": "array",
1518
+ "items": {
1519
+ "type": "string"
1520
+ }
1521
+ }
1522
+ }
1523
+ },
1524
+ "effectAction": {
1525
+ "type": "object",
1526
+ "properties": {
1527
+ "effect": {
1528
+ "enum": [
1529
+ 0,
1530
+ 1,
1531
+ 2,
1532
+ 3,
1533
+ 4,
1534
+ 5,
1535
+ 6,
1536
+ 7,
1537
+ 8,
1538
+ 9,
1539
+ 10
1540
+ ],
1541
+ "type": "integer",
1542
+ "format": "int32",
1543
+ "default": 0
1544
+ },
1545
+ "parameters": {
1546
+ "$ref": "#/components/schemas/effectParams"
1547
+ }
1548
+ }
1549
+ },
1550
+ "effectParams": {
1551
+ "type": "object",
1552
+ "properties": {
1553
+ "color": {
1554
+ "$ref": "#/components/schemas/color"
1555
+ },
1556
+ "colorTemperature": {
1557
+ "$ref": "#/components/schemas/colorTemperature"
1558
+ },
1559
+ "speed": {
1560
+ "type": "number",
1561
+ "format": "double",
1562
+ "nullable": true
1563
+ }
1564
+ }
1565
+ },
1566
+ "effects": {
1567
+ "type": "object",
1568
+ "properties": {
1569
+ "effect": {
1570
+ "enum": [
1571
+ 0,
1572
+ 1,
1573
+ 2,
1574
+ 3,
1575
+ 4,
1576
+ 5,
1577
+ 6,
1578
+ 7,
1579
+ 8,
1580
+ 9,
1581
+ 10
1582
+ ],
1583
+ "type": "integer",
1584
+ "format": "int32",
1585
+ "default": 0
1586
+ },
1587
+ "effectValues": {
1588
+ "type": "array",
1589
+ "items": {
1590
+ "type": "string"
1591
+ }
1592
+ },
1593
+ "status": {
1594
+ "type": "string"
1595
+ },
1596
+ "statusValues": {
1597
+ "type": "array",
1598
+ "items": {
1599
+ "type": "string"
1600
+ }
1601
+ }
1602
+ }
1603
+ },
1604
+ "effectsV2": {
1605
+ "type": "object",
1606
+ "properties": {
1607
+ "action": {
1608
+ "$ref": "#/components/schemas/effectAction"
1609
+ }
1610
+ }
1611
+ },
1612
+ "gamut": {
1613
+ "type": "object",
1614
+ "properties": {
1615
+ "blue": {
1616
+ "$ref": "#/components/schemas/xyPosition"
1617
+ },
1618
+ "green": {
1619
+ "$ref": "#/components/schemas/xyPosition"
1620
+ },
1621
+ "red": {
1622
+ "$ref": "#/components/schemas/xyPosition"
1623
+ }
1624
+ }
1625
+ },
1626
+ "gradient": {
1627
+ "type": "object",
1628
+ "properties": {
1629
+ "points": {
1630
+ "type": "array",
1631
+ "items": {
1632
+ "$ref": "#/components/schemas/gradientPoint"
1633
+ }
1634
+ },
1635
+ "mode": {
1636
+ "enum": [
1637
+ 0,
1638
+ 1,
1639
+ 2,
1640
+ 3
1641
+ ],
1642
+ "type": "integer",
1643
+ "format": "int32",
1644
+ "default": 0
1645
+ },
1646
+ "modeValues": {
1647
+ "type": "array",
1648
+ "items": {
1649
+ "type": "string"
1650
+ }
1651
+ },
1652
+ "pointsCapable": {
1653
+ "type": "integer",
1654
+ "format": "int32",
1655
+ "nullable": true
1656
+ },
1657
+ "pixelCount": {
1658
+ "type": "integer",
1659
+ "format": "int32",
1660
+ "nullable": true
1661
+ }
1662
+ }
1663
+ },
1664
+ "gradientPoint": {
1665
+ "type": "object",
1666
+ "properties": {
1667
+ "color": {
1668
+ "$ref": "#/components/schemas/color"
1669
+ }
1670
+ }
1671
+ },
1672
+ "group": {
1673
+ "type": "object",
1674
+ "properties": {
1675
+ "id": {
1676
+ "type": "string"
1677
+ },
1678
+ "name": {
1679
+ "type": "string"
1680
+ },
1681
+ "coordinatorId": {
1682
+ "type": "string"
1683
+ },
1684
+ "playbackState": {
1685
+ "type": "string"
1686
+ },
1687
+ "playerIds": {
1688
+ "type": "array",
1689
+ "items": {
1690
+ "type": "string"
1691
+ }
1692
+ }
1693
+ }
1694
+ },
1695
+ "household": {
1696
+ "type": "object",
1697
+ "properties": {
1698
+ "id": {
1699
+ "type": "string"
1700
+ },
1701
+ "name": {
1702
+ "type": "string"
1703
+ },
1704
+ "ownerLuid": {
1705
+ "type": "string"
1706
+ }
1707
+ }
1708
+ },
1709
+ "id": {
1710
+ "type": "object",
1711
+ "properties": {
1712
+ "objectType": {
1713
+ "type": "string"
1714
+ },
1715
+ "serviceId": {
1716
+ "type": "string"
1717
+ },
1718
+ "objectId": {
1719
+ "type": "string"
1720
+ },
1721
+ "accountId": {
1722
+ "type": "string"
1723
+ }
1724
+ }
1725
+ },
1726
+ "identify": {
1727
+ "type": "object",
1728
+ "properties": {
1729
+ "action": {
1730
+ "type": "string"
1731
+ }
1732
+ }
1733
+ },
1734
+ "image": {
1735
+ "type": "object",
1736
+ "properties": {
1737
+ "objectType": {
1738
+ "type": "string"
1739
+ },
1740
+ "url": {
1741
+ "type": "string"
1742
+ }
1743
+ }
1744
+ },
1745
+ "integrationHealthResult": {
1746
+ "type": "object",
1747
+ "properties": {
1748
+ "key": {
1749
+ "type": "string"
1750
+ },
1751
+ "status": {
1752
+ "type": "string"
1753
+ },
1754
+ "message": {
1755
+ "type": "string"
1756
+ }
1757
+ }
1758
+ },
1759
+ "labelSize": {
1760
+ "type": "object",
1761
+ "properties": {
1762
+ "width": {
1763
+ "type": "integer",
1764
+ "format": "int32"
1765
+ },
1766
+ "height": {
1767
+ "type": "integer",
1768
+ "format": "int32"
1769
+ }
1770
+ }
1771
+ },
1772
+ "light": {
1773
+ "type": "object",
1774
+ "properties": {
1775
+ "id": {
1776
+ "type": "string",
1777
+ "format": "uuid"
1778
+ },
1779
+ "on": {
1780
+ "$ref": "#/components/schemas/on"
1781
+ },
1782
+ "name": {
1783
+ "type": "string"
1784
+ }
1785
+ }
1786
+ },
1787
+ "metadata": {
1788
+ "type": "object",
1789
+ "properties": {
1790
+ "name": {
1791
+ "type": "string"
1792
+ },
1793
+ "archetype": {
1794
+ "type": "string"
1795
+ },
1796
+ "image": {
1797
+ "$ref": "#/components/schemas/resourceIdentifier"
1798
+ },
1799
+ "controlId": {
1800
+ "type": "integer",
1801
+ "format": "int32",
1802
+ "nullable": true
1803
+ }
1804
+ }
1805
+ },
1806
+ "mirekSchema": {
1807
+ "type": "object",
1808
+ "properties": {
1809
+ "mirekMaximum": {
1810
+ "type": "integer",
1811
+ "format": "int32"
1812
+ },
1813
+ "mirekMinimum": {
1814
+ "type": "integer",
1815
+ "format": "int32"
1816
+ }
1817
+ }
1818
+ },
1819
+ "nextVideo": {
1820
+ "type": "object",
1821
+ "properties": {
1822
+ "video": {
1823
+ "type": "string"
1824
+ }
1825
+ }
1826
+ },
1827
+ "officeState": {
1828
+ "type": "object",
1829
+ "properties": {
1830
+ "sanity": {
1831
+ "$ref": "#/components/schemas/sanityOfficeDto"
1832
+ },
1833
+ "hue": {
1834
+ "type": "array",
1835
+ "items": {
1836
+ "$ref": "#/components/schemas/light"
1837
+ }
1838
+ },
1839
+ "sonos": {
1840
+ "type": "array",
1841
+ "items": {
1842
+ "$ref": "#/components/schemas/group"
1843
+ }
1844
+ }
1845
+ }
1846
+ },
1847
+ "on": {
1848
+ "type": "object",
1849
+ "properties": {
1850
+ "isOn": {
1851
+ "type": "boolean"
1852
+ }
1853
+ }
1854
+ },
1855
+ "playbackStatus": {
1856
+ "type": "object",
1857
+ "properties": {
1858
+ "objectType": {
1859
+ "type": "string"
1860
+ },
1861
+ "playbackState": {
1862
+ "type": "string"
1863
+ },
1864
+ "isDucking": {
1865
+ "type": "boolean"
1866
+ },
1867
+ "positionMillis": {
1868
+ "type": "integer",
1869
+ "format": "int32"
1870
+ },
1871
+ "previousPositionMillis": {
1872
+ "type": "integer",
1873
+ "format": "int32"
1874
+ },
1875
+ "playModes": {
1876
+ "$ref": "#/components/schemas/playModes"
1877
+ },
1878
+ "availablePlaybackActions": {
1879
+ "$ref": "#/components/schemas/availablePlaybackActions"
1880
+ }
1881
+ }
1882
+ },
1883
+ "playlist": {
1884
+ "type": "object",
1885
+ "properties": {
1886
+ "objectType": {
1887
+ "type": "string"
1888
+ },
1889
+ "id": {
1890
+ "type": "string"
1891
+ },
1892
+ "name": {
1893
+ "type": "string"
1894
+ },
1895
+ "type": {
1896
+ "type": "string"
1897
+ },
1898
+ "trackCount": {
1899
+ "type": "integer",
1900
+ "format": "int32"
1901
+ }
1902
+ }
1903
+ },
1904
+ "playModes": {
1905
+ "type": "object",
1906
+ "properties": {
1907
+ "objectType": {
1908
+ "type": "string"
1909
+ },
1910
+ "repeat": {
1911
+ "type": "boolean"
1912
+ },
1913
+ "repeatOne": {
1914
+ "type": "boolean"
1915
+ },
1916
+ "shuffle": {
1917
+ "type": "boolean"
1918
+ },
1919
+ "crossfade": {
1920
+ "type": "boolean"
1921
+ }
1922
+ }
1923
+ },
1924
+ "policies": {
1925
+ "type": "object",
1926
+ "properties": {
1927
+ "objectType": {
1928
+ "type": "string"
1929
+ }
1930
+ }
1931
+ },
1932
+ "powerUp": {
1933
+ "type": "object",
1934
+ "properties": {
1935
+ "preset": {
1936
+ "enum": [
1937
+ 0,
1938
+ 1,
1939
+ 2,
1940
+ 3
1941
+ ],
1942
+ "type": "integer",
1943
+ "format": "int32",
1944
+ "default": 0
1945
+ },
1946
+ "on": {
1947
+ "$ref": "#/components/schemas/powerUpOn"
1948
+ },
1949
+ "dimming": {
1950
+ "$ref": "#/components/schemas/dimming"
1951
+ },
1952
+ "color": {
1953
+ "$ref": "#/components/schemas/color"
1954
+ },
1955
+ "configured": {
1956
+ "type": "boolean",
1957
+ "nullable": true
1958
+ }
1959
+ }
1960
+ },
1961
+ "powerUpOn": {
1962
+ "type": "object",
1963
+ "properties": {
1964
+ "mode": {
1965
+ "enum": [
1966
+ 0,
1967
+ 1,
1968
+ 2
1969
+ ],
1970
+ "type": "integer",
1971
+ "format": "int32",
1972
+ "default": 0,
1973
+ "nullable": true
1974
+ },
1975
+ "on": {
1976
+ "$ref": "#/components/schemas/on"
1977
+ }
1978
+ }
1979
+ },
1980
+ "printerStatusResponse": {
1981
+ "type": "object",
1982
+ "properties": {
1983
+ "status": {
1984
+ "type": "string"
1985
+ },
1986
+ "labelSize": {
1987
+ "type": "string"
1988
+ },
1989
+ "labelIdentifier": {
1990
+ "type": "string"
1991
+ },
1992
+ "labelName": {
1993
+ "type": "string"
1994
+ },
1995
+ "supportedWidth": {
1996
+ "type": "integer",
1997
+ "format": "int32"
1998
+ },
1999
+ "supportedHeight": {
2000
+ "type": "integer",
2001
+ "format": "int32"
2002
+ }
2003
+ }
2004
+ },
2005
+ "printJobLease": {
2006
+ "type": "object",
2007
+ "properties": {
2008
+ "jobId": {
2009
+ "type": "string"
2010
+ },
2011
+ "labelSize": {
2012
+ "type": "string"
2013
+ },
2014
+ "imageBase64": {
2015
+ "type": "string"
2016
+ },
2017
+ "messageId": {
2018
+ "type": "string"
2019
+ },
2020
+ "popReceipt": {
2021
+ "type": "string"
2022
+ }
2023
+ }
2024
+ },
2025
+ "printJobResponse": {
2026
+ "type": "object",
2027
+ "properties": {
2028
+ "jobId": {
2029
+ "type": "string"
2030
+ },
2031
+ "blobUrl": {
2032
+ "type": "string"
2033
+ },
2034
+ "labelSize": {
2035
+ "$ref": "#/components/schemas/labelSize"
2036
+ }
2037
+ }
2038
+ },
2039
+ "quality": {
2040
+ "type": "object",
2041
+ "properties": {
2042
+ "objectType": {
2043
+ "type": "string"
2044
+ }
2045
+ }
2046
+ },
2047
+ "reportStatusRequest": {
2048
+ "type": "object",
2049
+ "properties": {
2050
+ "status": {
2051
+ "type": "string"
2052
+ },
2053
+ "labelSize": {
2054
+ "type": "string"
2055
+ }
2056
+ }
2057
+ },
2058
+ "resourceIdentifier": {
2059
+ "type": "object",
2060
+ "properties": {
2061
+ "rid": {
2062
+ "type": "string",
2063
+ "format": "uuid"
2064
+ },
2065
+ "rtype": {
2066
+ "type": "string"
2067
+ }
2068
+ }
2069
+ },
2070
+ "sanityOfficeDto": {
2071
+ "type": "object",
2072
+ "properties": {
2073
+ "party": {
2074
+ "type": "boolean",
2075
+ "nullable": true
2076
+ },
2077
+ "youtubeQueue": {
2078
+ "type": "array",
2079
+ "items": {
2080
+ "type": "string"
2081
+ }
2082
+ }
2083
+ }
2084
+ },
2085
+ "service": {
2086
+ "type": "object",
2087
+ "properties": {
2088
+ "objectType": {
2089
+ "type": "string"
2090
+ },
2091
+ "name": {
2092
+ "type": "string"
2093
+ },
2094
+ "id": {
2095
+ "type": "string"
2096
+ },
2097
+ "images": {
2098
+ "type": "array",
2099
+ "items": {
2100
+ "type": "object"
2101
+ }
2102
+ }
2103
+ }
2104
+ },
2105
+ "setParty": {
2106
+ "type": "object",
2107
+ "properties": {
2108
+ "party": {
2109
+ "type": "boolean"
2110
+ }
2111
+ }
2112
+ },
2113
+ "signalingUpdate": {
2114
+ "type": "object",
2115
+ "properties": {
2116
+ "signal": {
2117
+ "enum": [
2118
+ 0,
2119
+ 1,
2120
+ 2,
2121
+ 3
2122
+ ],
2123
+ "type": "integer",
2124
+ "format": "int32",
2125
+ "default": 0
2126
+ },
2127
+ "duration": {
2128
+ "type": "integer",
2129
+ "format": "int32"
2130
+ },
2131
+ "colors": {
2132
+ "type": "array",
2133
+ "items": {
2134
+ "$ref": "#/components/schemas/color"
2135
+ }
2136
+ }
2137
+ }
2138
+ },
2139
+ "simpleResponse": {
2140
+ "type": "object",
2141
+ "properties": {
2142
+ "message": {
2143
+ "type": "string"
2144
+ }
2145
+ }
2146
+ },
2147
+ "sonosHouseholds": {
2148
+ "type": "object",
2149
+ "properties": {
2150
+ "households": {
2151
+ "type": "array",
2152
+ "items": {
2153
+ "$ref": "#/components/schemas/household"
2154
+ }
2155
+ }
2156
+ }
2157
+ },
2158
+ "sonosMetaData": {
2159
+ "type": "object",
2160
+ "properties": {
2161
+ "objectType": {
2162
+ "type": "string"
2163
+ },
2164
+ "container": {
2165
+ "$ref": "#/components/schemas/container"
2166
+ },
2167
+ "currentItem": {
2168
+ "$ref": "#/components/schemas/currentItem"
2169
+ }
2170
+ }
2171
+ },
2172
+ "sonosPlaylist": {
2173
+ "type": "object",
2174
+ "properties": {
2175
+ "objectType": {
2176
+ "type": "string"
2177
+ },
2178
+ "version": {
2179
+ "type": "string"
2180
+ },
2181
+ "playlists": {
2182
+ "type": "array",
2183
+ "items": {
2184
+ "$ref": "#/components/schemas/playlist"
2185
+ }
2186
+ }
2187
+ }
2188
+ },
2189
+ "timedEffects": {
2190
+ "type": "object",
2191
+ "properties": {
2192
+ "effect": {
2193
+ "enum": [
2194
+ 0,
2195
+ 1,
2196
+ 2
2197
+ ],
2198
+ "type": "integer",
2199
+ "format": "int32",
2200
+ "default": 0
2201
+ },
2202
+ "duration": {
2203
+ "type": "integer",
2204
+ "format": "int32"
2205
+ },
2206
+ "effectValues": {
2207
+ "type": "array",
2208
+ "items": {
2209
+ "type": "string"
2210
+ }
2211
+ },
2212
+ "status": {
2213
+ "type": "string"
2214
+ },
2215
+ "statusValues": {
2216
+ "type": "array",
2217
+ "items": {
2218
+ "type": "string"
2219
+ }
2220
+ }
2221
+ }
2222
+ },
2223
+ "track": {
2224
+ "type": "object",
2225
+ "properties": {
2226
+ "objectType": {
2227
+ "type": "string"
2228
+ },
2229
+ "type": {
2230
+ "type": "string"
2231
+ },
2232
+ "name": {
2233
+ "type": "string"
2234
+ },
2235
+ "imageUrl": {
2236
+ "type": "string"
2237
+ },
2238
+ "images": {
2239
+ "type": "array",
2240
+ "items": {
2241
+ "$ref": "#/components/schemas/image"
2242
+ }
2243
+ },
2244
+ "album": {
2245
+ "$ref": "#/components/schemas/album"
2246
+ },
2247
+ "artist": {
2248
+ "$ref": "#/components/schemas/artist"
2249
+ },
2250
+ "id": {
2251
+ "$ref": "#/components/schemas/id"
2252
+ },
2253
+ "service": {
2254
+ "$ref": "#/components/schemas/service"
2255
+ },
2256
+ "durationMillis": {
2257
+ "type": "integer",
2258
+ "format": "int32"
2259
+ },
2260
+ "quality": {
2261
+ "$ref": "#/components/schemas/quality"
2262
+ }
2263
+ }
2264
+ },
2265
+ "unlocEvent": {
2266
+ "type": "object",
2267
+ "properties": {
2268
+ "id": {
2269
+ "type": "string"
2270
+ },
2271
+ "action": {
2272
+ "type": "string"
2273
+ },
2274
+ "created": {
2275
+ "type": "string",
2276
+ "format": "date-time"
2277
+ },
2278
+ "keyId": {
2279
+ "type": "string"
2280
+ },
2281
+ "lockId": {
2282
+ "type": "string"
2283
+ },
2284
+ "lockName": {
2285
+ "type": "string"
2286
+ },
2287
+ "appUserId": {
2288
+ "type": "string"
2289
+ },
2290
+ "userName": {
2291
+ "type": "string"
2292
+ }
2293
+ }
2294
+ },
2295
+ "updateAlert": {
2296
+ "type": "object",
2297
+ "properties": {
2298
+ "action": {
2299
+ "type": "string"
2300
+ }
2301
+ }
2302
+ },
2303
+ "updateLight": {
2304
+ "type": "object",
2305
+ "properties": {
2306
+ "identify": {
2307
+ "$ref": "#/components/schemas/identify"
2308
+ },
2309
+ "on": {
2310
+ "$ref": "#/components/schemas/on"
2311
+ },
2312
+ "dimming": {
2313
+ "$ref": "#/components/schemas/dimming"
2314
+ },
2315
+ "dimmingDelta": {
2316
+ "$ref": "#/components/schemas/dimmingDelta"
2317
+ },
2318
+ "colorTemperature": {
2319
+ "$ref": "#/components/schemas/colorTemperature"
2320
+ },
2321
+ "colorTemperatureDelta": {
2322
+ "$ref": "#/components/schemas/colorTemperatureDelta"
2323
+ },
2324
+ "color": {
2325
+ "$ref": "#/components/schemas/color"
2326
+ },
2327
+ "dynamics": {
2328
+ "$ref": "#/components/schemas/dynamics"
2329
+ },
2330
+ "alert": {
2331
+ "$ref": "#/components/schemas/updateAlert"
2332
+ },
2333
+ "signaling": {
2334
+ "$ref": "#/components/schemas/signalingUpdate"
2335
+ },
2336
+ "gradient": {
2337
+ "$ref": "#/components/schemas/gradient"
2338
+ },
2339
+ "effects": {
2340
+ "$ref": "#/components/schemas/effects"
2341
+ },
2342
+ "effectsV2": {
2343
+ "$ref": "#/components/schemas/effectsV2"
2344
+ },
2345
+ "timedEffects": {
2346
+ "$ref": "#/components/schemas/timedEffects"
2347
+ },
2348
+ "powerUp": {
2349
+ "$ref": "#/components/schemas/powerUp"
2350
+ },
2351
+ "contentConfiguration": {
2352
+ "$ref": "#/components/schemas/contentConfiguration"
2353
+ },
2354
+ "type": {
2355
+ "type": "string"
2356
+ },
2357
+ "metadata": {
2358
+ "$ref": "#/components/schemas/metadata"
2359
+ }
2360
+ }
2361
+ },
2362
+ "xyPosition": {
2363
+ "type": "object",
2364
+ "properties": {
2365
+ "x": {
2366
+ "type": "number",
2367
+ "format": "double"
2368
+ },
2369
+ "y": {
2370
+ "type": "number",
2371
+ "format": "double"
2372
+ }
2373
+ }
2374
+ }
2375
+ },
2376
+ "securitySchemes": {
2377
+ "Implicit": {
2378
+ "type": "oauth2",
2379
+ "flows": {
2380
+ "implicit": {
2381
+ "authorizationUrl": "https://login.microsoftonline.com/organizations/oauth2/v2.0/authorize",
2382
+ "tokenUrl": "https://login.microsoftonline.com/organizations/oauth2/v2.0/token",
2383
+ "refreshUrl": "https://login.microsoftonline.com/organizations/oauth2/v2.0/token",
2384
+ "scopes": {
2385
+ "api://bb21a8d0-366b-4a95-aa59-dbbf708322d1/.default": "Default function scope"
2386
+ }
2387
+ }
2388
+ }
2389
+ },
2390
+ "ApiKey": {
2391
+ "type": "http",
2392
+ "scheme": "bearer",
2393
+ "bearerFormat": "JWT"
2394
+ }
2395
+ }
2396
+ }
2397
+ }