@snokam/mcp-api 1.21.1 → 2.0.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.
Files changed (43) hide show
  1. package/dist/auth.d.ts +0 -15
  2. package/dist/auth.js +17 -61
  3. package/dist/builtin-tools.d.ts +109 -0
  4. package/dist/builtin-tools.js +200 -0
  5. package/dist/execute-call.d.ts +5 -0
  6. package/dist/execute-call.js +45 -0
  7. package/dist/index.d.ts +0 -7
  8. package/dist/index.js +16 -311
  9. package/dist/openapi-loader.d.ts +1 -14
  10. package/dist/openapi-loader.js +27 -50
  11. package/dist/requirements.d.ts +10 -0
  12. package/dist/requirements.js +92 -0
  13. package/dist/state.d.ts +14 -0
  14. package/dist/state.js +66 -0
  15. package/dist/tool-schema.d.ts +2 -0
  16. package/dist/tool-schema.js +42 -0
  17. package/package.json +3 -3
  18. package/specs/production/accounting.json +2629 -1754
  19. package/specs/production/blog.json +1608 -1
  20. package/specs/production/broker.json +52 -24
  21. package/specs/production/chatgpt.json +299 -17
  22. package/specs/production/employees.json +2979 -299
  23. package/specs/production/events.json +366 -52
  24. package/specs/production/notifications.json +390 -13
  25. package/specs/production/office.json +818 -836
  26. package/specs/production/recruitment.json +3635 -1
  27. package/specs/production/sales.json +5088 -393
  28. package/specs/production/sanity.json +29008 -15539
  29. package/specs/production/sync.json +116 -20
  30. package/specs/production/webshop.json +38 -18
  31. package/specs/test/accounting.json +2629 -1754
  32. package/specs/test/blog.json +1608 -1
  33. package/specs/test/broker.json +52 -24
  34. package/specs/test/chatgpt.json +299 -17
  35. package/specs/test/employees.json +2979 -299
  36. package/specs/test/events.json +366 -52
  37. package/specs/test/notifications.json +390 -13
  38. package/specs/test/office.json +818 -836
  39. package/specs/test/recruitment.json +3635 -1
  40. package/specs/test/sales.json +5088 -393
  41. package/specs/test/sanity.json +29008 -15539
  42. package/specs/test/sync.json +116 -20
  43. package/specs/test/webshop.json +38 -18
@@ -36,115 +36,196 @@
36
36
  "x-ms-summary": "Success"
37
37
  }
38
38
  },
39
+ "security": [
40
+ {
41
+ "Implicit": [
42
+ "api://bb21a8d0-366b-4a95-aa59-dbbf708322d1/.default"
43
+ ]
44
+ },
45
+ {
46
+ "ApiKey": []
47
+ }
48
+ ],
39
49
  "x-ms-visibility": "important"
40
50
  }
41
51
  },
42
- "/v1.0/sonos/households": {
52
+ "/v1.0/protected/health/{provider}": {
43
53
  "get": {
44
54
  "tags": [
45
- "Sonos"
55
+ "Health"
56
+ ],
57
+ "summary": "Checks an integration's connectivity",
58
+ "description": "Verifies that a provider this function owns can be reached with the configured credentials.",
59
+ "operationId": "integrationHealth",
60
+ "parameters": [
61
+ {
62
+ "name": "provider",
63
+ "in": "path",
64
+ "required": true,
65
+ "schema": {
66
+ "type": "string"
67
+ }
68
+ }
46
69
  ],
47
- "summary": "Gets Sonos Music households",
48
- "description": "Retrieves a list of Sonos Music households.",
49
- "operationId": "getHouseholds",
50
70
  "responses": {
51
71
  "200": {
52
- "description": "List of Sonos Music households",
72
+ "description": "Payload of IntegrationHealthResult",
53
73
  "content": {
54
74
  "application/json": {
55
75
  "schema": {
56
- "$ref": "#/components/schemas/sonosHouseholds"
76
+ "$ref": "#/components/schemas/integrationHealthResult"
57
77
  }
58
78
  }
59
79
  },
60
- "x-ms-summary": "Success"
80
+ "x-ms-summary": "Health result"
61
81
  }
62
- }
82
+ },
83
+ "security": [
84
+ {
85
+ "Implicit": [
86
+ "api://bb21a8d0-366b-4a95-aa59-dbbf708322d1/.default"
87
+ ]
88
+ },
89
+ {
90
+ "ApiKey": []
91
+ }
92
+ ]
63
93
  }
64
94
  },
65
- "/v1.0/playback/status": {
66
- "get": {
95
+ "/v1.0/hue/lights/{id}": {
96
+ "put": {
67
97
  "tags": [
68
- "Playback"
98
+ "Hue"
69
99
  ],
70
- "summary": "Gets playback status",
71
- "description": "Retrieves the playback status of the household.",
72
- "operationId": "getPlaybackStatus",
100
+ "summary": "Sets a Hue light",
101
+ "description": "Sets the state of a Hue light by ID.",
102
+ "operationId": "setLight",
103
+ "parameters": [
104
+ {
105
+ "name": "id",
106
+ "in": "path",
107
+ "description": "The ID of the light to set",
108
+ "required": true,
109
+ "schema": {
110
+ "type": "string"
111
+ },
112
+ "x-ms-summary": "The ID of the light"
113
+ }
114
+ ],
115
+ "requestBody": {
116
+ "description": "The light state to set",
117
+ "content": {
118
+ "application/json": {
119
+ "schema": {
120
+ "$ref": "#/components/schemas/lightUpdate"
121
+ }
122
+ }
123
+ },
124
+ "required": true
125
+ },
73
126
  "responses": {
74
127
  "200": {
75
- "description": "Playback status of the household",
128
+ "description": "Light state set",
76
129
  "content": {
77
130
  "application/json": {
78
131
  "schema": {
79
- "$ref": "#/components/schemas/household"
132
+ "$ref": "#/components/schemas/simpleResponse"
80
133
  }
81
134
  }
82
135
  },
83
136
  "x-ms-summary": "Success"
84
137
  }
85
- }
138
+ },
139
+ "security": [
140
+ {
141
+ "Implicit": [
142
+ "api://bb21a8d0-366b-4a95-aa59-dbbf708322d1/.default"
143
+ ]
144
+ },
145
+ {
146
+ "ApiKey": []
147
+ }
148
+ ]
86
149
  }
87
150
  },
88
- "/v1.0/sonos/household": {
151
+ "/v1.0/hue/lights": {
89
152
  "get": {
90
153
  "tags": [
91
- "Sonos"
154
+ "Hue"
92
155
  ],
93
- "summary": "Gets a Sonos Music household",
94
- "description": "Retrieves a Sonos Music household.",
95
- "operationId": "getHousehold",
156
+ "summary": "Gets all Hue lights",
157
+ "description": "Gets a list of all Hue lights.",
158
+ "operationId": "GetLights",
96
159
  "responses": {
97
160
  "200": {
98
- "description": "A Sonos Music household",
161
+ "description": "List of Hue lights",
99
162
  "content": {
100
163
  "application/json": {
101
164
  "schema": {
102
- "$ref": "#/components/schemas/household"
165
+ "type": "array",
166
+ "items": {
167
+ "$ref": "#/components/schemas/light"
168
+ }
103
169
  }
104
170
  }
105
171
  },
106
172
  "x-ms-summary": "Success"
107
173
  }
108
- }
174
+ },
175
+ "security": [
176
+ {
177
+ "Implicit": [
178
+ "api://bb21a8d0-366b-4a95-aa59-dbbf708322d1/.default"
179
+ ]
180
+ },
181
+ {
182
+ "ApiKey": []
183
+ }
184
+ ]
109
185
  }
110
186
  },
111
- "/v1.0/sonos/groups/{name}": {
112
- "get": {
187
+ "/v1.0/party": {
188
+ "put": {
113
189
  "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
- }
190
+ "Party"
130
191
  ],
192
+ "summary": "Sets party state",
193
+ "description": "Sets the party state at the office, only activate on request.",
194
+ "operationId": "setPartyState",
195
+ "requestBody": {
196
+ "description": "The party state to set",
197
+ "content": {
198
+ "application/json": {
199
+ "schema": {
200
+ "$ref": "#/components/schemas/setParty"
201
+ }
202
+ }
203
+ },
204
+ "required": true
205
+ },
131
206
  "responses": {
132
207
  "200": {
133
- "description": "A Sonos Music group",
208
+ "description": "Party state set",
134
209
  "content": {
135
210
  "application/json": {
136
211
  "schema": {
137
- "$ref": "#/components/schemas/group"
212
+ "$ref": "#/components/schemas/simpleResponse"
138
213
  }
139
214
  }
140
215
  },
141
216
  "x-ms-summary": "Success"
217
+ }
218
+ },
219
+ "security": [
220
+ {
221
+ "Implicit": [
222
+ "api://bb21a8d0-366b-4a95-aa59-dbbf708322d1/.default"
223
+ ]
142
224
  },
143
- "404": {
144
- "description": "Group not found",
145
- "x-ms-summary": "Not Found"
225
+ {
226
+ "ApiKey": []
146
227
  }
147
- }
228
+ ]
148
229
  }
149
230
  },
150
231
  "/v1.0/sonos/groups/{name}/playback/play": {
@@ -183,7 +264,17 @@
183
264
  "description": "Group not found",
184
265
  "x-ms-summary": "Not Found"
185
266
  }
186
- }
267
+ },
268
+ "security": [
269
+ {
270
+ "Implicit": [
271
+ "api://bb21a8d0-366b-4a95-aa59-dbbf708322d1/.default"
272
+ ]
273
+ },
274
+ {
275
+ "ApiKey": []
276
+ }
277
+ ]
187
278
  }
188
279
  },
189
280
  "/v1.0/sonos/groups/{name}/playback/skipToNextTrack": {
@@ -222,7 +313,17 @@
222
313
  "description": "Group not found",
223
314
  "x-ms-summary": "Not Found"
224
315
  }
225
- }
316
+ },
317
+ "security": [
318
+ {
319
+ "Implicit": [
320
+ "api://bb21a8d0-366b-4a95-aa59-dbbf708322d1/.default"
321
+ ]
322
+ },
323
+ {
324
+ "ApiKey": []
325
+ }
326
+ ]
226
327
  }
227
328
  },
228
329
  "/v1.0/sonos/groups/{name}/playback/skipToPreviousTrack": {
@@ -261,7 +362,17 @@
261
362
  "description": "Group not found",
262
363
  "x-ms-summary": "Not Found"
263
364
  }
264
- }
365
+ },
366
+ "security": [
367
+ {
368
+ "Implicit": [
369
+ "api://bb21a8d0-366b-4a95-aa59-dbbf708322d1/.default"
370
+ ]
371
+ },
372
+ {
373
+ "ApiKey": []
374
+ }
375
+ ]
265
376
  }
266
377
  },
267
378
  "/v1.0/sonos/groups/{name}/playback/pause": {
@@ -300,7 +411,17 @@
300
411
  "description": "Group not found",
301
412
  "x-ms-summary": "Not Found"
302
413
  }
303
- }
414
+ },
415
+ "security": [
416
+ {
417
+ "Implicit": [
418
+ "api://bb21a8d0-366b-4a95-aa59-dbbf708322d1/.default"
419
+ ]
420
+ },
421
+ {
422
+ "ApiKey": []
423
+ }
424
+ ]
304
425
  }
305
426
  },
306
427
  "/v1.0/sonos/groups/{name}/playback/status": {
@@ -339,7 +460,17 @@
339
460
  "description": "Group not found",
340
461
  "x-ms-summary": "Not Found"
341
462
  }
342
- }
463
+ },
464
+ "security": [
465
+ {
466
+ "Implicit": [
467
+ "api://bb21a8d0-366b-4a95-aa59-dbbf708322d1/.default"
468
+ ]
469
+ },
470
+ {
471
+ "ApiKey": []
472
+ }
473
+ ]
343
474
  }
344
475
  },
345
476
  "/v1.0/sonos/groups/{name}/playbackMetadata": {
@@ -378,91 +509,52 @@
378
509
  "description": "Group not found",
379
510
  "x-ms-summary": "Not Found"
380
511
  }
381
- }
512
+ },
513
+ "security": [
514
+ {
515
+ "Implicit": [
516
+ "api://bb21a8d0-366b-4a95-aa59-dbbf708322d1/.default"
517
+ ]
518
+ },
519
+ {
520
+ "ApiKey": []
521
+ }
522
+ ]
382
523
  }
383
524
  },
384
- "/v1.0/sonos/groups": {
385
- "get": {
525
+ "/v1.0/sonos/groups/{groupName}/playlist/{playlistName}": {
526
+ "put": {
386
527
  "tags": [
387
528
  "Sonos"
388
529
  ],
389
- "summary": "Gets all groups",
390
- "description": "Gets a list of all Sonos Music groups.",
391
- "operationId": "getGroups",
530
+ "summary": "Plays a playlist",
531
+ "description": "Plays a Sonos Music playlist by name.",
532
+ "operationId": "playPlaylist",
533
+ "parameters": [
534
+ {
535
+ "name": "groupName",
536
+ "in": "path",
537
+ "description": "The name of the group to play the playlist on",
538
+ "required": true,
539
+ "schema": {
540
+ "type": "string"
541
+ },
542
+ "x-ms-summary": "The name of the group"
543
+ },
544
+ {
545
+ "name": "playlistName",
546
+ "in": "path",
547
+ "description": "The name of the playlist to play",
548
+ "required": true,
549
+ "schema": {
550
+ "type": "string"
551
+ },
552
+ "x-ms-summary": "The name of the playlist"
553
+ }
554
+ ],
392
555
  "responses": {
393
556
  "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",
557
+ "description": "Playing the playlist on the group",
466
558
  "content": {
467
559
  "application/json": {
468
560
  "schema": {
@@ -476,7 +568,17 @@
476
568
  "description": "Group or playlist not found",
477
569
  "x-ms-summary": "Not Found"
478
570
  }
479
- }
571
+ },
572
+ "security": [
573
+ {
574
+ "Implicit": [
575
+ "api://bb21a8d0-366b-4a95-aa59-dbbf708322d1/.default"
576
+ ]
577
+ },
578
+ {
579
+ "ApiKey": []
580
+ }
581
+ ]
480
582
  }
481
583
  },
482
584
  "/v1.0/sonos/groups/{groupName}/setGroupMembers": {
@@ -525,7 +627,17 @@
525
627
  "description": "Group not found",
526
628
  "x-ms-summary": "Not Found"
527
629
  }
528
- }
630
+ },
631
+ "security": [
632
+ {
633
+ "Implicit": [
634
+ "api://bb21a8d0-366b-4a95-aa59-dbbf708322d1/.default"
635
+ ]
636
+ },
637
+ {
638
+ "ApiKey": []
639
+ }
640
+ ]
529
641
  }
530
642
  },
531
643
  "/v1.0/ice": {
@@ -548,35 +660,34 @@
548
660
  },
549
661
  "x-ms-summary": "Success"
550
662
  }
551
- }
663
+ },
664
+ "security": [
665
+ {
666
+ "Implicit": [
667
+ "api://bb21a8d0-366b-4a95-aa59-dbbf708322d1/.default"
668
+ ]
669
+ },
670
+ {
671
+ "ApiKey": []
672
+ }
673
+ ]
552
674
  }
553
675
  },
554
- "/v1.0/hue/lights/{id}": {
555
- "put": {
676
+ "/v1.0/printer/create-printjob": {
677
+ "post": {
556
678
  "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
- }
679
+ "Printer"
573
680
  ],
681
+ "summary": "Creates a print job",
682
+ "description": "Uploads a PNG image to blob storage and creates a print job in the queue. Accepts multipart/form-data with a PNG file.",
683
+ "operationId": "createPrintJob",
574
684
  "requestBody": {
575
- "description": "The light state to set",
685
+ "description": "A PNG image file as multipart/form-data.",
576
686
  "content": {
577
- "application/json": {
687
+ "multipart/form-data": {
578
688
  "schema": {
579
- "$ref": "#/components/schemas/updateLight"
689
+ "type": "string",
690
+ "format": "binary"
580
691
  }
581
692
  }
582
693
  },
@@ -584,172 +695,400 @@
584
695
  },
585
696
  "responses": {
586
697
  "200": {
587
- "description": "Light state set",
698
+ "description": "Print job created successfully",
588
699
  "content": {
589
700
  "application/json": {
590
701
  "schema": {
591
- "$ref": "#/components/schemas/simpleResponse"
702
+ "$ref": "#/components/schemas/printJobResponse"
592
703
  }
593
704
  }
594
705
  },
595
706
  "x-ms-summary": "Success"
707
+ },
708
+ "400": {
709
+ "description": "Invalid file or file format",
710
+ "x-ms-summary": "Bad Request"
711
+ },
712
+ "401": {
713
+ "description": "Unauthorized access",
714
+ "x-ms-summary": "Unauthorized"
596
715
  }
597
- }
716
+ },
717
+ "security": [
718
+ {
719
+ "Implicit": [
720
+ "api://bb21a8d0-366b-4a95-aa59-dbbf708322d1/.default"
721
+ ]
722
+ },
723
+ {
724
+ "ApiKey": []
725
+ }
726
+ ]
598
727
  }
599
728
  },
600
- "/v1.0/hue/lights": {
729
+ "/v1.0/printer/status": {
601
730
  "get": {
602
731
  "tags": [
603
- "Hue"
732
+ "Printer"
604
733
  ],
605
- "summary": "Gets all Hue lights",
606
- "description": "Gets a list of all Hue lights.",
607
- "operationId": "GetLights",
734
+ "summary": "Gets printer status",
735
+ "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.",
736
+ "operationId": "getPrinterStatus",
608
737
  "responses": {
609
738
  "200": {
610
- "description": "List of Hue lights",
739
+ "description": "Printer status with currently loaded label information and supported dimensions",
611
740
  "content": {
612
741
  "application/json": {
613
742
  "schema": {
614
- "type": "array",
615
- "items": {
616
- "$ref": "#/components/schemas/light"
617
- }
743
+ "$ref": "#/components/schemas/printerStatusResponse"
618
744
  }
619
745
  }
620
746
  },
621
747
  "x-ms-summary": "Success"
622
748
  }
623
- }
749
+ },
750
+ "security": [
751
+ {
752
+ "Implicit": [
753
+ "api://bb21a8d0-366b-4a95-aa59-dbbf708322d1/.default"
754
+ ]
755
+ },
756
+ {
757
+ "ApiKey": []
758
+ }
759
+ ]
760
+ },
761
+ "post": {
762
+ "tags": [
763
+ "Printer"
764
+ ],
765
+ "summary": "Report printer status",
766
+ "description": "A printer reports its status beacon (status + currently loaded label size) so print jobs can be validated against the loaded label.",
767
+ "operationId": "reportPrinterStatus",
768
+ "requestBody": {
769
+ "content": {
770
+ "application/json": {
771
+ "schema": {
772
+ "$ref": "#/components/schemas/reportStatusRequest"
773
+ }
774
+ }
775
+ },
776
+ "required": true
777
+ },
778
+ "responses": {
779
+ "204": {
780
+ "description": "No description",
781
+ "x-ms-summary": "Recorded"
782
+ },
783
+ "400": {
784
+ "description": "No description",
785
+ "x-ms-summary": "Invalid body"
786
+ }
787
+ },
788
+ "security": [
789
+ {
790
+ "Implicit": [
791
+ "api://bb21a8d0-366b-4a95-aa59-dbbf708322d1/.default"
792
+ ]
793
+ },
794
+ {
795
+ "ApiKey": []
796
+ }
797
+ ]
624
798
  }
625
799
  },
626
- "/v1.0/youtube/queue/next": {
800
+ "/v1.0/printer/next-job": {
627
801
  "get": {
628
802
  "tags": [
629
- "Youtube"
803
+ "Printer"
630
804
  ],
631
- "summary": "Gets next YouTube video",
632
- "description": "Gets the next video in the YouTube queue.",
633
- "operationId": "getNextYoutubeVideo",
805
+ "summary": "Lease the next print job",
806
+ "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.",
807
+ "operationId": "getNextPrintJob",
634
808
  "responses": {
635
809
  "200": {
636
- "description": "Next video in the YouTube queue",
810
+ "description": "Payload of PrintJobLease",
637
811
  "content": {
638
812
  "application/json": {
639
813
  "schema": {
640
- "$ref": "#/components/schemas/nextVideo"
814
+ "$ref": "#/components/schemas/printJobLease"
641
815
  }
642
816
  }
643
817
  },
644
- "x-ms-summary": "Success"
818
+ "x-ms-summary": "A leased job"
645
819
  },
646
820
  "204": {
647
- "description": "No video in the queue",
648
- "x-ms-summary": "No Content"
821
+ "description": "No description",
822
+ "x-ms-summary": "No jobs queued"
649
823
  }
650
- }
824
+ },
825
+ "security": [
826
+ {
827
+ "Implicit": [
828
+ "api://bb21a8d0-366b-4a95-aa59-dbbf708322d1/.default"
829
+ ]
830
+ },
831
+ {
832
+ "ApiKey": []
833
+ }
834
+ ]
651
835
  }
652
836
  },
653
- "/v1.0/youtube/queue/{id}": {
654
- "put": {
837
+ "/v1.0/printer/ack": {
838
+ "post": {
655
839
  "tags": [
656
- "Youtube"
840
+ "Printer"
657
841
  ],
658
- "summary": "Adds to YouTube queue",
659
- "description": "Adds a video to the YouTube queue.",
660
- "operationId": "addToYoutubeQueue",
661
- "parameters": [
842
+ "summary": "Acknowledge a printed job",
843
+ "description": "Deletes a leased job from the queue once printed. Provide the messageId and popReceipt from the lease.",
844
+ "operationId": "ackPrintJob",
845
+ "requestBody": {
846
+ "content": {
847
+ "application/json": {
848
+ "schema": {
849
+ "$ref": "#/components/schemas/ackRequest"
850
+ }
851
+ }
852
+ },
853
+ "required": true
854
+ },
855
+ "responses": {
856
+ "204": {
857
+ "description": "No description",
858
+ "x-ms-summary": "Acknowledged"
859
+ },
860
+ "400": {
861
+ "description": "No description",
862
+ "x-ms-summary": "Missing receipt"
863
+ }
864
+ },
865
+ "security": [
662
866
  {
663
- "name": "id",
664
- "in": "path",
665
- "description": "The ID of the video to add",
666
- "required": true,
667
- "schema": {
668
- "type": "string"
867
+ "Implicit": [
868
+ "api://bb21a8d0-366b-4a95-aa59-dbbf708322d1/.default"
869
+ ]
870
+ },
871
+ {
872
+ "ApiKey": []
873
+ }
874
+ ]
875
+ }
876
+ },
877
+ "/v1.0/sonos/households": {
878
+ "get": {
879
+ "tags": [
880
+ "Sonos"
881
+ ],
882
+ "summary": "Gets Sonos Music households",
883
+ "description": "Retrieves a list of Sonos Music households.",
884
+ "operationId": "getHouseholds",
885
+ "responses": {
886
+ "200": {
887
+ "description": "List of Sonos Music households",
888
+ "content": {
889
+ "application/json": {
890
+ "schema": {
891
+ "$ref": "#/components/schemas/sonosHouseholds"
892
+ }
893
+ }
669
894
  },
670
- "x-ms-summary": "The ID of the video"
895
+ "x-ms-summary": "Success"
896
+ }
897
+ },
898
+ "security": [
899
+ {
900
+ "Implicit": [
901
+ "api://bb21a8d0-366b-4a95-aa59-dbbf708322d1/.default"
902
+ ]
903
+ },
904
+ {
905
+ "ApiKey": []
671
906
  }
907
+ ]
908
+ }
909
+ },
910
+ "/v1.0/playback/status": {
911
+ "get": {
912
+ "tags": [
913
+ "Playback"
672
914
  ],
915
+ "summary": "Gets playback status",
916
+ "description": "Retrieves the playback status of the household.",
917
+ "operationId": "getPlaybackStatus",
673
918
  "responses": {
674
919
  "200": {
675
- "description": "Video added to the queue",
920
+ "description": "Playback status of the household",
676
921
  "content": {
677
922
  "application/json": {
678
923
  "schema": {
679
- "$ref": "#/components/schemas/simpleResponse"
924
+ "$ref": "#/components/schemas/household"
680
925
  }
681
926
  }
682
927
  },
683
928
  "x-ms-summary": "Success"
684
929
  }
685
- }
686
- },
687
- "delete": {
930
+ },
931
+ "security": [
932
+ {
933
+ "Implicit": [
934
+ "api://bb21a8d0-366b-4a95-aa59-dbbf708322d1/.default"
935
+ ]
936
+ },
937
+ {
938
+ "ApiKey": []
939
+ }
940
+ ]
941
+ }
942
+ },
943
+ "/v1.0/sonos/household": {
944
+ "get": {
688
945
  "tags": [
689
- "Youtube"
946
+ "Sonos"
690
947
  ],
691
- "summary": "Removes from YouTube queue",
692
- "description": "Removes a video from the YouTube queue.",
693
- "operationId": "removeFromQueue",
948
+ "summary": "Gets a Sonos Music household",
949
+ "description": "Retrieves a Sonos Music household.",
950
+ "operationId": "getHousehold",
951
+ "responses": {
952
+ "200": {
953
+ "description": "A Sonos Music household",
954
+ "content": {
955
+ "application/json": {
956
+ "schema": {
957
+ "$ref": "#/components/schemas/household"
958
+ }
959
+ }
960
+ },
961
+ "x-ms-summary": "Success"
962
+ }
963
+ },
964
+ "security": [
965
+ {
966
+ "Implicit": [
967
+ "api://bb21a8d0-366b-4a95-aa59-dbbf708322d1/.default"
968
+ ]
969
+ },
970
+ {
971
+ "ApiKey": []
972
+ }
973
+ ]
974
+ }
975
+ },
976
+ "/v1.0/sonos/groups/{name}": {
977
+ "get": {
978
+ "tags": [
979
+ "Sonos"
980
+ ],
981
+ "summary": "Gets a Sonos Music group",
982
+ "description": "Retrieves a Sonos Music group by name.",
983
+ "operationId": "getGroup",
694
984
  "parameters": [
695
985
  {
696
- "name": "id",
986
+ "name": "name",
697
987
  "in": "path",
698
- "description": "The ID of the video to remove",
988
+ "description": "The name of the group to retrieve",
699
989
  "required": true,
700
990
  "schema": {
701
991
  "type": "string"
702
992
  },
703
- "x-ms-summary": "The ID of the video"
993
+ "x-ms-summary": "The name of the group"
704
994
  }
705
995
  ],
706
996
  "responses": {
707
997
  "200": {
708
- "description": "Video removed from the queue",
998
+ "description": "A Sonos Music group",
709
999
  "content": {
710
1000
  "application/json": {
711
1001
  "schema": {
712
- "$ref": "#/components/schemas/simpleResponse"
1002
+ "$ref": "#/components/schemas/group"
713
1003
  }
714
1004
  }
715
1005
  },
716
1006
  "x-ms-summary": "Success"
1007
+ },
1008
+ "404": {
1009
+ "description": "Group not found",
1010
+ "x-ms-summary": "Not Found"
717
1011
  }
718
- }
1012
+ },
1013
+ "security": [
1014
+ {
1015
+ "Implicit": [
1016
+ "api://bb21a8d0-366b-4a95-aa59-dbbf708322d1/.default"
1017
+ ]
1018
+ },
1019
+ {
1020
+ "ApiKey": []
1021
+ }
1022
+ ]
719
1023
  }
720
1024
  },
721
- "/v1.0/party": {
722
- "put": {
1025
+ "/v1.0/sonos/groups": {
1026
+ "get": {
723
1027
  "tags": [
724
- "Party"
1028
+ "Sonos"
725
1029
  ],
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"
1030
+ "summary": "Gets all groups",
1031
+ "description": "Gets a list of all Sonos Music groups.",
1032
+ "operationId": "getGroups",
1033
+ "responses": {
1034
+ "200": {
1035
+ "description": "List of Sonos Music groups",
1036
+ "content": {
1037
+ "application/json": {
1038
+ "schema": {
1039
+ "type": "array",
1040
+ "items": {
1041
+ "$ref": "#/components/schemas/group"
1042
+ }
1043
+ }
735
1044
  }
736
- }
737
- },
738
- "required": true
1045
+ },
1046
+ "x-ms-summary": "Success"
1047
+ }
739
1048
  },
1049
+ "security": [
1050
+ {
1051
+ "Implicit": [
1052
+ "api://bb21a8d0-366b-4a95-aa59-dbbf708322d1/.default"
1053
+ ]
1054
+ },
1055
+ {
1056
+ "ApiKey": []
1057
+ }
1058
+ ]
1059
+ }
1060
+ },
1061
+ "/v1.0/sonos/playlists": {
1062
+ "get": {
1063
+ "tags": [
1064
+ "Sonos"
1065
+ ],
1066
+ "summary": "Gets all playlists",
1067
+ "description": "Gets a list of all Sonos Music playlists.",
1068
+ "operationId": "getPlaylists",
740
1069
  "responses": {
741
1070
  "200": {
742
- "description": "Party state set",
1071
+ "description": "List of Sonos Music playlists",
743
1072
  "content": {
744
1073
  "application/json": {
745
1074
  "schema": {
746
- "$ref": "#/components/schemas/simpleResponse"
1075
+ "$ref": "#/components/schemas/sonosPlaylist"
747
1076
  }
748
1077
  }
749
1078
  },
750
1079
  "x-ms-summary": "Success"
751
1080
  }
752
- }
1081
+ },
1082
+ "security": [
1083
+ {
1084
+ "Implicit": [
1085
+ "api://bb21a8d0-366b-4a95-aa59-dbbf708322d1/.default"
1086
+ ]
1087
+ },
1088
+ {
1089
+ "ApiKey": []
1090
+ }
1091
+ ]
753
1092
  }
754
1093
  },
755
1094
  "/v1.0/sanity/state": {
@@ -772,7 +1111,17 @@
772
1111
  },
773
1112
  "x-ms-summary": "Success"
774
1113
  }
775
- }
1114
+ },
1115
+ "security": [
1116
+ {
1117
+ "Implicit": [
1118
+ "api://bb21a8d0-366b-4a95-aa59-dbbf708322d1/.default"
1119
+ ]
1120
+ },
1121
+ {
1122
+ "ApiKey": []
1123
+ }
1124
+ ]
776
1125
  }
777
1126
  },
778
1127
  "/v1.0/state": {
@@ -795,7 +1144,17 @@
795
1144
  },
796
1145
  "x-ms-summary": "Success"
797
1146
  }
798
- }
1147
+ },
1148
+ "security": [
1149
+ {
1150
+ "Implicit": [
1151
+ "api://bb21a8d0-366b-4a95-aa59-dbbf708322d1/.default"
1152
+ ]
1153
+ },
1154
+ {
1155
+ "ApiKey": []
1156
+ }
1157
+ ]
799
1158
  }
800
1159
  },
801
1160
  "/v1.0/power-up-on": {
@@ -818,481 +1177,246 @@
818
1177
  },
819
1178
  "x-ms-summary": "Success"
820
1179
  }
821
- }
1180
+ },
1181
+ "security": [
1182
+ {
1183
+ "Implicit": [
1184
+ "api://bb21a8d0-366b-4a95-aa59-dbbf708322d1/.default"
1185
+ ]
1186
+ },
1187
+ {
1188
+ "ApiKey": []
1189
+ }
1190
+ ]
822
1191
  }
823
1192
  },
824
- "/v1.0/printer/create-printjob": {
825
- "post": {
1193
+ "/v1.0/youtube/queue/next": {
1194
+ "get": {
826
1195
  "tags": [
827
- "Printer"
1196
+ "Youtube"
828
1197
  ],
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
- },
1198
+ "summary": "Gets next YouTube video",
1199
+ "description": "Gets the next video in the YouTube queue.",
1200
+ "operationId": "getNextYoutubeVideo",
844
1201
  "responses": {
845
1202
  "200": {
846
- "description": "Print job created successfully",
1203
+ "description": "Next video in the YouTube queue",
847
1204
  "content": {
848
1205
  "application/json": {
849
1206
  "schema": {
850
- "$ref": "#/components/schemas/printJobResponse"
1207
+ "$ref": "#/components/schemas/nextVideo"
851
1208
  }
852
1209
  }
853
1210
  },
854
1211
  "x-ms-summary": "Success"
855
1212
  },
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"
1213
+ "204": {
1214
+ "description": "No video in the queue",
1215
+ "x-ms-summary": "No Content"
863
1216
  }
864
1217
  },
865
1218
  "security": [
866
1219
  {
867
1220
  "Implicit": [
868
- "api://a22d20e1-7d88-4eee-9ddc-5422cc559d76/.default"
1221
+ "api://bb21a8d0-366b-4a95-aa59-dbbf708322d1/.default"
869
1222
  ]
1223
+ },
1224
+ {
1225
+ "ApiKey": []
870
1226
  }
871
1227
  ]
872
1228
  }
873
1229
  },
874
- "/v1.0/printer/status": {
875
- "get": {
1230
+ "/v1.0/youtube/queue/{id}": {
1231
+ "put": {
876
1232
  "tags": [
877
- "Printer"
1233
+ "Youtube"
1234
+ ],
1235
+ "summary": "Adds to YouTube queue",
1236
+ "description": "Adds a video to the YouTube queue.",
1237
+ "operationId": "addToYoutubeQueue",
1238
+ "parameters": [
1239
+ {
1240
+ "name": "id",
1241
+ "in": "path",
1242
+ "description": "The ID of the video to add",
1243
+ "required": true,
1244
+ "schema": {
1245
+ "type": "string"
1246
+ },
1247
+ "x-ms-summary": "The ID of the video"
1248
+ }
878
1249
  ],
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
1250
  "responses": {
883
1251
  "200": {
884
- "description": "Printer status with currently loaded label information and supported dimensions",
1252
+ "description": "Video added to the queue",
885
1253
  "content": {
886
1254
  "application/json": {
887
1255
  "schema": {
888
- "$ref": "#/components/schemas/printerStatusResponse"
1256
+ "$ref": "#/components/schemas/simpleResponse"
889
1257
  }
890
1258
  }
891
1259
  },
892
1260
  "x-ms-summary": "Success"
893
1261
  }
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"
1262
+ },
1263
+ "security": [
1264
+ {
1265
+ "Implicit": [
1266
+ "api://bb21a8d0-366b-4a95-aa59-dbbf708322d1/.default"
1267
+ ]
987
1268
  },
988
- "mirekValid": {
989
- "type": "boolean"
1269
+ {
1270
+ "ApiKey": []
990
1271
  }
991
- }
1272
+ ]
992
1273
  },
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"
1274
+ "delete": {
1275
+ "tags": [
1276
+ "Youtube"
1277
+ ],
1278
+ "summary": "Removes from YouTube queue",
1279
+ "description": "Removes a video from the YouTube queue.",
1280
+ "operationId": "removeFromQueue",
1281
+ "parameters": [
1282
+ {
1283
+ "name": "id",
1284
+ "in": "path",
1285
+ "description": "The ID of the video to remove",
1286
+ "required": true,
1287
+ "schema": {
1288
+ "type": "string"
1289
+ },
1290
+ "x-ms-summary": "The ID of the video"
1009
1291
  }
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
- }
1292
+ ],
1293
+ "responses": {
1294
+ "200": {
1295
+ "description": "Video removed from the queue",
1296
+ "content": {
1297
+ "application/json": {
1298
+ "schema": {
1299
+ "$ref": "#/components/schemas/simpleResponse"
1300
+ }
1301
+ }
1302
+ },
1303
+ "x-ms-summary": "Success"
1023
1304
  }
1024
- }
1025
- },
1026
- "contentConfiguration": {
1027
- "type": "object",
1028
- "properties": {
1029
- "orientation": {
1030
- "$ref": "#/components/schemas/contentConfigurationOrientation"
1305
+ },
1306
+ "security": [
1307
+ {
1308
+ "Implicit": [
1309
+ "api://bb21a8d0-366b-4a95-aa59-dbbf708322d1/.default"
1310
+ ]
1031
1311
  },
1032
- "order": {
1033
- "$ref": "#/components/schemas/contentConfigurationOrder"
1312
+ {
1313
+ "ApiKey": []
1034
1314
  }
1035
- }
1036
- },
1037
- "contentConfigurationOrder": {
1315
+ ]
1316
+ }
1317
+ }
1318
+ },
1319
+ "components": {
1320
+ "schemas": {
1321
+ "ackRequest": {
1038
1322
  "type": "object",
1039
1323
  "properties": {
1040
- "status": {
1324
+ "messageId": {
1041
1325
  "type": "string"
1042
1326
  },
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": {
1327
+ "popReceipt": {
1062
1328
  "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
1329
  }
1077
1330
  }
1078
1331
  },
1079
- "currentItem": {
1332
+ "album": {
1080
1333
  "type": "object",
1081
1334
  "properties": {
1082
1335
  "objectType": {
1083
1336
  "type": "string"
1084
1337
  },
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": {
1338
+ "name": {
1141
1339
  "type": "string"
1142
- },
1143
- "statusValues": {
1144
- "type": "array",
1145
- "items": {
1146
- "type": "string"
1147
- }
1148
1340
  }
1149
1341
  }
1150
1342
  },
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": {
1343
+ "artist": {
1194
1344
  "type": "object",
1195
1345
  "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": {
1346
+ "objectType": {
1347
+ "type": "string"
1348
+ },
1349
+ "name": {
1221
1350
  "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
1351
  }
1237
1352
  }
1238
1353
  },
1239
- "gamut": {
1354
+ "availablePlaybackActions": {
1240
1355
  "type": "object",
1241
1356
  "properties": {
1242
- "blue": {
1243
- "$ref": "#/components/schemas/xyPosition"
1357
+ "objectType": {
1358
+ "type": "string"
1359
+ },
1360
+ "canPlay": {
1361
+ "type": "boolean"
1362
+ },
1363
+ "canSkip": {
1364
+ "type": "boolean"
1365
+ },
1366
+ "canSkipBack": {
1367
+ "type": "boolean"
1368
+ },
1369
+ "canSkipToPrevious": {
1370
+ "type": "boolean"
1371
+ },
1372
+ "canSeek": {
1373
+ "type": "boolean"
1374
+ },
1375
+ "canPause": {
1376
+ "type": "boolean"
1377
+ },
1378
+ "canStop": {
1379
+ "type": "boolean"
1380
+ },
1381
+ "canRepeat": {
1382
+ "type": "boolean"
1383
+ },
1384
+ "canRepeatOne": {
1385
+ "type": "boolean"
1244
1386
  },
1245
- "green": {
1246
- "$ref": "#/components/schemas/xyPosition"
1387
+ "canCrossfade": {
1388
+ "type": "boolean"
1247
1389
  },
1248
- "red": {
1249
- "$ref": "#/components/schemas/xyPosition"
1390
+ "canShuffle": {
1391
+ "type": "boolean"
1250
1392
  }
1251
1393
  }
1252
1394
  },
1253
- "gradient": {
1395
+ "container": {
1254
1396
  "type": "object",
1255
1397
  "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
1398
+ "objectType": {
1399
+ "type": "string"
1272
1400
  },
1273
- "modeValues": {
1401
+ "images": {
1274
1402
  "type": "array",
1275
1403
  "items": {
1276
- "type": "string"
1404
+ "type": "object"
1277
1405
  }
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
1406
  }
1289
1407
  }
1290
1408
  },
1291
- "gradientPoint": {
1409
+ "currentItem": {
1292
1410
  "type": "object",
1293
1411
  "properties": {
1294
- "color": {
1295
- "$ref": "#/components/schemas/color"
1412
+ "objectType": {
1413
+ "type": "string"
1414
+ },
1415
+ "track": {
1416
+ "$ref": "#/components/schemas/track"
1417
+ },
1418
+ "policies": {
1419
+ "$ref": "#/components/schemas/policies"
1296
1420
  }
1297
1421
  }
1298
1422
  },
@@ -1350,21 +1474,27 @@
1350
1474
  }
1351
1475
  }
1352
1476
  },
1353
- "identify": {
1477
+ "image": {
1354
1478
  "type": "object",
1355
1479
  "properties": {
1356
- "action": {
1480
+ "objectType": {
1481
+ "type": "string"
1482
+ },
1483
+ "url": {
1357
1484
  "type": "string"
1358
1485
  }
1359
1486
  }
1360
1487
  },
1361
- "image": {
1488
+ "integrationHealthResult": {
1362
1489
  "type": "object",
1363
1490
  "properties": {
1364
- "objectType": {
1491
+ "key": {
1365
1492
  "type": "string"
1366
1493
  },
1367
- "url": {
1494
+ "status": {
1495
+ "type": "string"
1496
+ },
1497
+ "message": {
1368
1498
  "type": "string"
1369
1499
  }
1370
1500
  }
@@ -1390,42 +1520,49 @@
1390
1520
  "format": "uuid"
1391
1521
  },
1392
1522
  "on": {
1393
- "$ref": "#/components/schemas/on"
1523
+ "$ref": "#/components/schemas/lightOn"
1394
1524
  },
1395
1525
  "name": {
1396
1526
  "type": "string"
1397
1527
  }
1398
1528
  }
1399
1529
  },
1400
- "metadata": {
1530
+ "lightDimming": {
1401
1531
  "type": "object",
1402
1532
  "properties": {
1403
- "name": {
1404
- "type": "string"
1405
- },
1406
- "archetype": {
1533
+ "brightness": {
1534
+ "type": "number",
1535
+ "format": "double"
1536
+ }
1537
+ }
1538
+ },
1539
+ "lightEffects": {
1540
+ "type": "object",
1541
+ "properties": {
1542
+ "effect": {
1407
1543
  "type": "string"
1408
- },
1409
- "image": {
1410
- "$ref": "#/components/schemas/resourceIdentifier"
1411
- },
1412
- "controlId": {
1413
- "type": "integer",
1414
- "format": "int32",
1415
- "nullable": true
1416
1544
  }
1417
1545
  }
1418
1546
  },
1419
- "mirekSchema": {
1547
+ "lightOn": {
1420
1548
  "type": "object",
1421
1549
  "properties": {
1422
- "mirekMaximum": {
1423
- "type": "integer",
1424
- "format": "int32"
1550
+ "isOn": {
1551
+ "type": "boolean"
1552
+ }
1553
+ }
1554
+ },
1555
+ "lightUpdate": {
1556
+ "type": "object",
1557
+ "properties": {
1558
+ "on": {
1559
+ "$ref": "#/components/schemas/lightOn"
1425
1560
  },
1426
- "mirekMinimum": {
1427
- "type": "integer",
1428
- "format": "int32"
1561
+ "dimming": {
1562
+ "$ref": "#/components/schemas/lightDimming"
1563
+ },
1564
+ "effects": {
1565
+ "$ref": "#/components/schemas/lightEffects"
1429
1566
  }
1430
1567
  }
1431
1568
  },
@@ -1542,35 +1679,6 @@
1542
1679
  }
1543
1680
  }
1544
1681
  },
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
1682
  "powerUpOn": {
1575
1683
  "type": "object",
1576
1684
  "properties": {
@@ -1615,6 +1723,26 @@
1615
1723
  }
1616
1724
  }
1617
1725
  },
1726
+ "printJobLease": {
1727
+ "type": "object",
1728
+ "properties": {
1729
+ "jobId": {
1730
+ "type": "string"
1731
+ },
1732
+ "labelSize": {
1733
+ "type": "string"
1734
+ },
1735
+ "imageBase64": {
1736
+ "type": "string"
1737
+ },
1738
+ "messageId": {
1739
+ "type": "string"
1740
+ },
1741
+ "popReceipt": {
1742
+ "type": "string"
1743
+ }
1744
+ }
1745
+ },
1618
1746
  "printJobResponse": {
1619
1747
  "type": "object",
1620
1748
  "properties": {
@@ -1637,14 +1765,13 @@
1637
1765
  }
1638
1766
  }
1639
1767
  },
1640
- "resourceIdentifier": {
1768
+ "reportStatusRequest": {
1641
1769
  "type": "object",
1642
1770
  "properties": {
1643
- "rid": {
1644
- "type": "string",
1645
- "format": "uuid"
1771
+ "status": {
1772
+ "type": "string"
1646
1773
  },
1647
- "rtype": {
1774
+ "labelSize": {
1648
1775
  "type": "string"
1649
1776
  }
1650
1777
  }
@@ -1656,16 +1783,6 @@
1656
1783
  "type": "boolean",
1657
1784
  "nullable": true
1658
1785
  },
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
1786
  "youtubeQueue": {
1670
1787
  "type": "array",
1671
1788
  "items": {
@@ -1702,32 +1819,6 @@
1702
1819
  }
1703
1820
  }
1704
1821
  },
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
1822
  "simpleResponse": {
1732
1823
  "type": "object",
1733
1824
  "properties": {
@@ -1778,40 +1869,6 @@
1778
1869
  }
1779
1870
  }
1780
1871
  },
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
1872
  "track": {
1816
1873
  "type": "object",
1817
1874
  "properties": {
@@ -1883,86 +1940,6 @@
1883
1940
  "type": "string"
1884
1941
  }
1885
1942
  }
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
1943
  }
1967
1944
  },
1968
1945
  "securitySchemes": {
@@ -1970,14 +1947,19 @@
1970
1947
  "type": "oauth2",
1971
1948
  "flows": {
1972
1949
  "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",
1950
+ "authorizationUrl": "https://login.microsoftonline.com/organizations/oauth2/v2.0/authorize",
1951
+ "tokenUrl": "https://login.microsoftonline.com/organizations/oauth2/v2.0/token",
1952
+ "refreshUrl": "https://login.microsoftonline.com/organizations/oauth2/v2.0/token",
1976
1953
  "scopes": {
1977
- "api://a22d20e1-7d88-4eee-9ddc-5422cc559d76/.default": "Default function scope"
1954
+ "api://bb21a8d0-366b-4a95-aa59-dbbf708322d1/.default": "Default function scope"
1978
1955
  }
1979
1956
  }
1980
1957
  }
1958
+ },
1959
+ "ApiKey": {
1960
+ "type": "http",
1961
+ "scheme": "bearer",
1962
+ "bearerFormat": "JWT"
1981
1963
  }
1982
1964
  }
1983
1965
  }