@snokam/mcp-api 0.173.1 → 0.173.2

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