@oomol-lab/open-connector 1.6.2 → 1.6.3

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 (168) hide show
  1. package/README.md +27 -0
  2. package/assets/open-connector/catalog/apps/assured_platform.json +218 -0
  3. package/assets/open-connector/catalog/apps/baixiao.json +1080 -0
  4. package/assets/open-connector/catalog/apps/benchmarkone.json +956 -0
  5. package/assets/open-connector/catalog/apps/bing_webmaster.json +3097 -0
  6. package/assets/open-connector/catalog/apps/buzzsprout.json +1979 -0
  7. package/assets/open-connector/catalog/apps/feishu.json +13 -19
  8. package/assets/open-connector/catalog/apps/feishu_app_bot.json +10 -17
  9. package/assets/open-connector/catalog/apps/linkfox.json +836 -0
  10. package/assets/open-connector/catalog/apps/metatraderapi.json +1077 -0
  11. package/assets/open-connector/catalog/apps/mktindex.json +2411 -0
  12. package/assets/open-connector/catalog/apps/mojo_helpdesk.json +660 -0
  13. package/assets/open-connector/catalog/apps/mumble.json +446 -0
  14. package/assets/open-connector/catalog/apps/notion.json +112 -3
  15. package/assets/open-connector/catalog/apps/omise.json +438 -0
  16. package/assets/open-connector/catalog/apps/panjiva.json +2858 -0
  17. package/assets/open-connector/catalog/apps/papertrail.json +449 -0
  18. package/assets/open-connector/catalog/apps/peec.json +747 -0
  19. package/assets/open-connector/catalog/apps/polygon_io.json +5156 -584
  20. package/assets/open-connector/catalog/apps/quant_data.json +1928 -0
  21. package/assets/open-connector/catalog/apps/riddle_quiz_maker.json +621 -0
  22. package/assets/open-connector/catalog/apps/slack.json +327 -4
  23. package/assets/open-connector/catalog/apps/slackbot.json +280 -3
  24. package/assets/open-connector/catalog/apps/templatedocs.json +438 -0
  25. package/assets/open-connector/catalog/apps/terminus_app.json +510 -0
  26. package/assets/open-connector/catalog/apps/ticket_tailor.json +584 -0
  27. package/assets/open-connector/catalog/apps/tongdaxin.json +2612 -79
  28. package/assets/open-connector/catalog/apps/veremark.json +514 -0
  29. package/assets/open-connector/catalog/apps/walletap.json +549 -0
  30. package/assets/open-connector/catalog/apps/xiaohongshu_store.json +955 -39
  31. package/assets/open-connector/catalog/apps-index.json +1 -1
  32. package/package.json +5 -1
  33. package/src/connection-service.d.ts +2 -0
  34. package/src/connection-service.js +8 -1
  35. package/src/core/provider-id.d.ts +5 -0
  36. package/src/core/provider-id.js +12 -0
  37. package/src/oauth/oauth-credential-refresh-service.js +2 -0
  38. package/src/oauth/oauth-flow-service.js +2 -0
  39. package/src/providers/action-contracts.generated.d.ts +27 -7
  40. package/src/providers/assured_platform/executors.d.ts +4 -0
  41. package/src/providers/assured_platform/executors.js +18 -0
  42. package/src/providers/assured_platform/runtime.d.ts +7 -0
  43. package/src/providers/assured_platform/runtime.js +108 -0
  44. package/src/providers/baixiao/actions.d.ts +2 -0
  45. package/src/providers/baixiao/actions.js +377 -0
  46. package/src/providers/baixiao/executors.d.ts +4 -0
  47. package/src/providers/baixiao/executors.js +106 -0
  48. package/src/providers/benchmarkone/executors.d.ts +4 -0
  49. package/src/providers/benchmarkone/executors.js +26 -0
  50. package/src/providers/benchmarkone/runtime.d.ts +12 -0
  51. package/src/providers/benchmarkone/runtime.js +113 -0
  52. package/src/providers/bing_webmaster/actions.d.ts +2 -0
  53. package/src/providers/bing_webmaster/actions.js +113 -0
  54. package/src/providers/bing_webmaster/executors.d.ts +4 -0
  55. package/src/providers/bing_webmaster/executors.js +104 -0
  56. package/src/providers/bing_webmaster/management-actions.d.ts +2 -0
  57. package/src/providers/bing_webmaster/management-actions.js +241 -0
  58. package/src/providers/bing_webmaster/reporting-actions.d.ts +2 -0
  59. package/src/providers/bing_webmaster/reporting-actions.js +300 -0
  60. package/src/providers/bing_webmaster/schemas.d.ts +33 -0
  61. package/src/providers/bing_webmaster/schemas.js +313 -0
  62. package/src/providers/buzzsprout/executors.d.ts +4 -0
  63. package/src/providers/buzzsprout/executors.js +21 -0
  64. package/src/providers/buzzsprout/runtime.d.ts +12 -0
  65. package/src/providers/buzzsprout/runtime.js +237 -0
  66. package/src/providers/feishu/shared/drive-actions.d.ts +1 -0
  67. package/src/providers/feishu/shared/drive-actions.js +13 -9
  68. package/src/providers/feishu/shared/drive-runtime.js +15 -3
  69. package/src/providers/feishu/shared/wiki-actions.js +4 -2
  70. package/src/providers/hithink_finance/runtime.js +39 -60
  71. package/src/providers/linkfox/actions.js +2 -0
  72. package/src/providers/linkfox/runtime.js +70 -1
  73. package/src/providers/linkfox/sif-actions.d.ts +10 -0
  74. package/src/providers/linkfox/sif-actions.js +193 -0
  75. package/src/providers/metatraderapi/executors.d.ts +4 -0
  76. package/src/providers/metatraderapi/executors.js +18 -0
  77. package/src/providers/metatraderapi/runtime.d.ts +7 -0
  78. package/src/providers/metatraderapi/runtime.js +216 -0
  79. package/src/providers/mktindex/actions-mmi.d.ts +2 -0
  80. package/src/providers/mktindex/actions-mmi.js +510 -0
  81. package/src/providers/mktindex/actions.d.ts +2 -0
  82. package/src/providers/mktindex/actions.js +2 -0
  83. package/src/providers/mktindex/executors.d.ts +4 -0
  84. package/src/providers/mktindex/executors.js +27 -0
  85. package/src/providers/mktindex/request.d.ts +17 -0
  86. package/src/providers/mktindex/request.js +48 -0
  87. package/src/providers/mktindex/runtime.d.ts +9 -0
  88. package/src/providers/mktindex/runtime.js +492 -0
  89. package/src/providers/mojo_helpdesk/executors.d.ts +4 -0
  90. package/src/providers/mojo_helpdesk/executors.js +18 -0
  91. package/src/providers/mojo_helpdesk/runtime.d.ts +7 -0
  92. package/src/providers/mojo_helpdesk/runtime.js +173 -0
  93. package/src/providers/mumble/executors.d.ts +4 -0
  94. package/src/providers/mumble/executors.js +99 -0
  95. package/src/providers/notion/executors.d.ts +9 -0
  96. package/src/providers/notion/executors.js +161 -6
  97. package/src/providers/omise/executors.d.ts +4 -0
  98. package/src/providers/omise/executors.js +120 -0
  99. package/src/providers/panjiva/actions.d.ts +14 -0
  100. package/src/providers/panjiva/actions.js +389 -0
  101. package/src/providers/panjiva/executors.d.ts +4 -0
  102. package/src/providers/panjiva/executors.js +136 -0
  103. package/src/providers/papertrail/executors.d.ts +4 -0
  104. package/src/providers/papertrail/executors.js +15 -0
  105. package/src/providers/papertrail/runtime.d.ts +7 -0
  106. package/src/providers/papertrail/runtime.js +167 -0
  107. package/src/providers/peec/executors.d.ts +4 -0
  108. package/src/providers/peec/executors.js +15 -0
  109. package/src/providers/peec/runtime.d.ts +7 -0
  110. package/src/providers/peec/runtime.js +128 -0
  111. package/src/providers/polygon_io/actions.d.ts +2 -0
  112. package/src/providers/polygon_io/actions.js +282 -0
  113. package/src/providers/polygon_io/expanded-actions.d.ts +2 -0
  114. package/src/providers/polygon_io/expanded-actions.js +375 -0
  115. package/src/providers/polygon_io/expanded-runtime.d.ts +16 -0
  116. package/src/providers/polygon_io/expanded-runtime.js +277 -0
  117. package/src/providers/polygon_io/runtime.js +21 -2
  118. package/src/providers/quant_data/executors.d.ts +4 -0
  119. package/src/providers/quant_data/executors.js +15 -0
  120. package/src/providers/quant_data/runtime.d.ts +7 -0
  121. package/src/providers/quant_data/runtime.js +118 -0
  122. package/src/providers/registry.generated.js +20 -0
  123. package/src/providers/riddle_quiz_maker/executors.d.ts +4 -0
  124. package/src/providers/riddle_quiz_maker/executors.js +15 -0
  125. package/src/providers/riddle_quiz_maker/runtime.d.ts +7 -0
  126. package/src/providers/riddle_quiz_maker/runtime.js +145 -0
  127. package/src/providers/slack/actions.js +106 -3
  128. package/src/providers/slack/runtime.js +260 -36
  129. package/src/providers/slackbot/actions.js +1 -1
  130. package/src/providers/templatedocs/executors.d.ts +4 -0
  131. package/src/providers/templatedocs/executors.js +18 -0
  132. package/src/providers/templatedocs/runtime.d.ts +13 -0
  133. package/src/providers/templatedocs/runtime.js +151 -0
  134. package/src/providers/terminus_app/executors.d.ts +4 -0
  135. package/src/providers/terminus_app/executors.js +15 -0
  136. package/src/providers/terminus_app/runtime.d.ts +7 -0
  137. package/src/providers/terminus_app/runtime.js +172 -0
  138. package/src/providers/ticket_tailor/executors.d.ts +4 -0
  139. package/src/providers/ticket_tailor/executors.js +15 -0
  140. package/src/providers/ticket_tailor/runtime.d.ts +7 -0
  141. package/src/providers/ticket_tailor/runtime.js +152 -0
  142. package/src/providers/tongdaxin/actions.d.ts +1 -0
  143. package/src/providers/tongdaxin/actions.js +6 -3
  144. package/src/providers/tongdaxin/executors.js +51 -10
  145. package/src/providers/tongdaxin/named-action-output.d.ts +1 -0
  146. package/src/providers/tongdaxin/named-action-output.js +149 -0
  147. package/src/providers/tongdaxin/named-action-routing.d.ts +9 -0
  148. package/src/providers/tongdaxin/named-action-routing.js +417 -0
  149. package/src/providers/tongdaxin/named-actions.d.ts +2 -0
  150. package/src/providers/tongdaxin/named-actions.js +378 -0
  151. package/src/providers/veremark/executors.d.ts +4 -0
  152. package/src/providers/veremark/executors.js +129 -0
  153. package/src/providers/walletap/executors.d.ts +4 -0
  154. package/src/providers/walletap/executors.js +15 -0
  155. package/src/providers/walletap/runtime.d.ts +7 -0
  156. package/src/providers/walletap/runtime.js +147 -0
  157. package/src/providers/weixin_official_account/access-token.js +31 -7
  158. package/src/providers/weixin_store/access-token.js +33 -7
  159. package/src/providers/xiaohongshu_store/executors.js +152 -3
  160. package/src/server/api/openapi.js +3 -0
  161. package/src/server/connector-assets.d.ts +4 -0
  162. package/src/server/connector-assets.js +12 -0
  163. package/src/server/connector-build.d.ts +33 -0
  164. package/src/server/connector-build.js +73 -0
  165. package/src/server/connector-runtime.d.ts +1 -2
  166. package/src/server/connector-runtime.js +2 -8
  167. package/src/server/server-assets.d.ts +0 -28
  168. package/src/server/server-assets.js +0 -50
@@ -0,0 +1,1979 @@
1
+ {
2
+ "service": "buzzsprout",
3
+ "displayName": "Buzzsprout",
4
+ "description": "Inspect Buzzsprout podcasts, episodes, and listener statistics.",
5
+ "categories": [
6
+ "Design & Media",
7
+ "Data & Analytics"
8
+ ],
9
+ "authTypes": [
10
+ "api_key"
11
+ ],
12
+ "auth": [
13
+ {
14
+ "type": "api_key",
15
+ "label": "API Token",
16
+ "placeholder": "BUZZSPROUT_API_TOKEN",
17
+ "description": "Buzzsprout API token sent with the Authorization header. Get or reset it under Profile > API: https://www.buzzsprout.com/admin/profile/api."
18
+ }
19
+ ],
20
+ "homepageUrl": "https://www.buzzsprout.com",
21
+ "actions": [
22
+ {
23
+ "id": "buzzsprout.create_episode",
24
+ "service": "buzzsprout",
25
+ "name": "create_episode",
26
+ "description": "Create a Buzzsprout episode without uploading media.",
27
+ "operationType": "write",
28
+ "requiredScopes": [],
29
+ "providerPermissions": [],
30
+ "inputSchema": {
31
+ "type": "object",
32
+ "properties": {
33
+ "podcastId": {
34
+ "type": "integer",
35
+ "minimum": 1,
36
+ "description": "The numeric Buzzsprout podcast ID."
37
+ },
38
+ "title": {
39
+ "type": "string",
40
+ "minLength": 1,
41
+ "description": "The episode title."
42
+ },
43
+ "description": {
44
+ "type": "string",
45
+ "description": "The episode description."
46
+ },
47
+ "artist": {
48
+ "type": "string",
49
+ "description": "The episode artist."
50
+ },
51
+ "tags": {
52
+ "type": "string",
53
+ "description": "Comma-separated episode tags."
54
+ },
55
+ "publishedAt": {
56
+ "type": "string",
57
+ "description": "The publication timestamp including a timezone offset.",
58
+ "format": "date-time"
59
+ },
60
+ "seasonNumber": {
61
+ "type": "integer",
62
+ "minimum": 0,
63
+ "description": "The season number."
64
+ },
65
+ "episodeNumber": {
66
+ "type": "integer",
67
+ "minimum": 0,
68
+ "description": "The episode number."
69
+ },
70
+ "episodeType": {
71
+ "type": "string",
72
+ "enum": [
73
+ "full",
74
+ "trailer",
75
+ "bonus"
76
+ ],
77
+ "description": "The episode type."
78
+ },
79
+ "explicit": {
80
+ "type": "boolean",
81
+ "description": "Whether the episode contains explicit content."
82
+ },
83
+ "private": {
84
+ "type": "boolean",
85
+ "description": "Whether the episode is unpublished and private."
86
+ },
87
+ "customUrl": {
88
+ "type": "string",
89
+ "description": "The custom episode URL slug."
90
+ },
91
+ "artworkUrl": {
92
+ "type": "string",
93
+ "description": "A publicly accessible artwork URL that Buzzsprout should fetch.",
94
+ "format": "uri"
95
+ }
96
+ },
97
+ "additionalProperties": false,
98
+ "required": [
99
+ "podcastId",
100
+ "title"
101
+ ],
102
+ "description": "The input payload for creating a Buzzsprout episode."
103
+ },
104
+ "outputSchema": {
105
+ "type": "object",
106
+ "properties": {
107
+ "episode": {
108
+ "type": "object",
109
+ "properties": {
110
+ "id": {
111
+ "type": "integer",
112
+ "minimum": 1,
113
+ "description": "The numeric Buzzsprout episode ID."
114
+ },
115
+ "title": {
116
+ "type": "string",
117
+ "description": "The episode title."
118
+ },
119
+ "audioUrl": {
120
+ "anyOf": [
121
+ {
122
+ "type": "string",
123
+ "description": "The processed episode audio URL."
124
+ },
125
+ {
126
+ "type": "null"
127
+ }
128
+ ]
129
+ },
130
+ "artworkUrl": {
131
+ "anyOf": [
132
+ {
133
+ "type": "string",
134
+ "description": "The episode artwork URL."
135
+ },
136
+ {
137
+ "type": "null"
138
+ }
139
+ ]
140
+ },
141
+ "description": {
142
+ "anyOf": [
143
+ {
144
+ "type": "string",
145
+ "description": "The episode description."
146
+ },
147
+ {
148
+ "type": "null"
149
+ }
150
+ ]
151
+ },
152
+ "artist": {
153
+ "anyOf": [
154
+ {
155
+ "type": "string",
156
+ "description": "The episode artist."
157
+ },
158
+ {
159
+ "type": "null"
160
+ }
161
+ ]
162
+ },
163
+ "tags": {
164
+ "anyOf": [
165
+ {
166
+ "type": "string",
167
+ "description": "The comma-separated episode tags."
168
+ },
169
+ {
170
+ "type": "null"
171
+ }
172
+ ]
173
+ },
174
+ "publishedAt": {
175
+ "anyOf": [
176
+ {
177
+ "type": "string",
178
+ "description": "The episode publication timestamp."
179
+ },
180
+ {
181
+ "type": "null"
182
+ }
183
+ ]
184
+ },
185
+ "duration": {
186
+ "anyOf": [
187
+ {
188
+ "type": "integer",
189
+ "description": "The episode duration in seconds, or -1 while processing."
190
+ },
191
+ {
192
+ "type": "null"
193
+ }
194
+ ]
195
+ },
196
+ "guid": {
197
+ "anyOf": [
198
+ {
199
+ "type": "string",
200
+ "description": "The episode GUID."
201
+ },
202
+ {
203
+ "type": "null"
204
+ }
205
+ ]
206
+ },
207
+ "customUrl": {
208
+ "anyOf": [
209
+ {
210
+ "type": "string",
211
+ "description": "The episode custom URL slug."
212
+ },
213
+ {
214
+ "type": "null"
215
+ }
216
+ ]
217
+ },
218
+ "episodeNumber": {
219
+ "anyOf": [
220
+ {
221
+ "type": "integer",
222
+ "description": "The episode number."
223
+ },
224
+ {
225
+ "type": "null"
226
+ }
227
+ ]
228
+ },
229
+ "seasonNumber": {
230
+ "anyOf": [
231
+ {
232
+ "type": "integer",
233
+ "description": "The season number."
234
+ },
235
+ {
236
+ "type": "null"
237
+ }
238
+ ]
239
+ },
240
+ "episodeType": {
241
+ "anyOf": [
242
+ {
243
+ "type": "string",
244
+ "description": "The episode type."
245
+ },
246
+ {
247
+ "type": "null"
248
+ }
249
+ ]
250
+ },
251
+ "explicit": {
252
+ "type": "boolean",
253
+ "description": "Whether the episode is marked as explicit."
254
+ },
255
+ "private": {
256
+ "type": "boolean",
257
+ "description": "Whether the episode is unpublished and private."
258
+ },
259
+ "totalPlays": {
260
+ "anyOf": [
261
+ {
262
+ "type": "integer",
263
+ "description": "The total episode play count."
264
+ },
265
+ {
266
+ "type": "null"
267
+ }
268
+ ]
269
+ },
270
+ "raw": {
271
+ "type": "object",
272
+ "properties": {},
273
+ "additionalProperties": true,
274
+ "description": "The raw episode object returned by Buzzsprout."
275
+ }
276
+ },
277
+ "additionalProperties": false,
278
+ "description": "An episode returned by Buzzsprout."
279
+ }
280
+ },
281
+ "additionalProperties": false,
282
+ "description": "The response returned after creating a Buzzsprout episode."
283
+ }
284
+ },
285
+ {
286
+ "id": "buzzsprout.get_episode",
287
+ "service": "buzzsprout",
288
+ "name": "get_episode",
289
+ "description": "Get one episode from a Buzzsprout podcast.",
290
+ "operationType": "read",
291
+ "requiredScopes": [],
292
+ "providerPermissions": [],
293
+ "inputSchema": {
294
+ "type": "object",
295
+ "properties": {
296
+ "podcastId": {
297
+ "type": "integer",
298
+ "minimum": 1,
299
+ "description": "The numeric Buzzsprout podcast ID."
300
+ },
301
+ "episodeId": {
302
+ "type": "integer",
303
+ "minimum": 1,
304
+ "description": "The numeric Buzzsprout episode ID."
305
+ }
306
+ },
307
+ "additionalProperties": false,
308
+ "description": "The input payload for getting a Buzzsprout episode."
309
+ },
310
+ "outputSchema": {
311
+ "type": "object",
312
+ "properties": {
313
+ "episode": {
314
+ "type": "object",
315
+ "properties": {
316
+ "id": {
317
+ "type": "integer",
318
+ "minimum": 1,
319
+ "description": "The numeric Buzzsprout episode ID."
320
+ },
321
+ "title": {
322
+ "type": "string",
323
+ "description": "The episode title."
324
+ },
325
+ "audioUrl": {
326
+ "anyOf": [
327
+ {
328
+ "type": "string",
329
+ "description": "The processed episode audio URL."
330
+ },
331
+ {
332
+ "type": "null"
333
+ }
334
+ ]
335
+ },
336
+ "artworkUrl": {
337
+ "anyOf": [
338
+ {
339
+ "type": "string",
340
+ "description": "The episode artwork URL."
341
+ },
342
+ {
343
+ "type": "null"
344
+ }
345
+ ]
346
+ },
347
+ "description": {
348
+ "anyOf": [
349
+ {
350
+ "type": "string",
351
+ "description": "The episode description."
352
+ },
353
+ {
354
+ "type": "null"
355
+ }
356
+ ]
357
+ },
358
+ "artist": {
359
+ "anyOf": [
360
+ {
361
+ "type": "string",
362
+ "description": "The episode artist."
363
+ },
364
+ {
365
+ "type": "null"
366
+ }
367
+ ]
368
+ },
369
+ "tags": {
370
+ "anyOf": [
371
+ {
372
+ "type": "string",
373
+ "description": "The comma-separated episode tags."
374
+ },
375
+ {
376
+ "type": "null"
377
+ }
378
+ ]
379
+ },
380
+ "publishedAt": {
381
+ "anyOf": [
382
+ {
383
+ "type": "string",
384
+ "description": "The episode publication timestamp."
385
+ },
386
+ {
387
+ "type": "null"
388
+ }
389
+ ]
390
+ },
391
+ "duration": {
392
+ "anyOf": [
393
+ {
394
+ "type": "integer",
395
+ "description": "The episode duration in seconds, or -1 while processing."
396
+ },
397
+ {
398
+ "type": "null"
399
+ }
400
+ ]
401
+ },
402
+ "guid": {
403
+ "anyOf": [
404
+ {
405
+ "type": "string",
406
+ "description": "The episode GUID."
407
+ },
408
+ {
409
+ "type": "null"
410
+ }
411
+ ]
412
+ },
413
+ "customUrl": {
414
+ "anyOf": [
415
+ {
416
+ "type": "string",
417
+ "description": "The episode custom URL slug."
418
+ },
419
+ {
420
+ "type": "null"
421
+ }
422
+ ]
423
+ },
424
+ "episodeNumber": {
425
+ "anyOf": [
426
+ {
427
+ "type": "integer",
428
+ "description": "The episode number."
429
+ },
430
+ {
431
+ "type": "null"
432
+ }
433
+ ]
434
+ },
435
+ "seasonNumber": {
436
+ "anyOf": [
437
+ {
438
+ "type": "integer",
439
+ "description": "The season number."
440
+ },
441
+ {
442
+ "type": "null"
443
+ }
444
+ ]
445
+ },
446
+ "episodeType": {
447
+ "anyOf": [
448
+ {
449
+ "type": "string",
450
+ "description": "The episode type."
451
+ },
452
+ {
453
+ "type": "null"
454
+ }
455
+ ]
456
+ },
457
+ "explicit": {
458
+ "type": "boolean",
459
+ "description": "Whether the episode is marked as explicit."
460
+ },
461
+ "private": {
462
+ "type": "boolean",
463
+ "description": "Whether the episode is unpublished and private."
464
+ },
465
+ "totalPlays": {
466
+ "anyOf": [
467
+ {
468
+ "type": "integer",
469
+ "description": "The total episode play count."
470
+ },
471
+ {
472
+ "type": "null"
473
+ }
474
+ ]
475
+ },
476
+ "raw": {
477
+ "type": "object",
478
+ "properties": {},
479
+ "additionalProperties": true,
480
+ "description": "The raw episode object returned by Buzzsprout."
481
+ }
482
+ },
483
+ "additionalProperties": false,
484
+ "description": "An episode returned by Buzzsprout."
485
+ }
486
+ },
487
+ "additionalProperties": false,
488
+ "description": "The response returned when getting a Buzzsprout episode."
489
+ }
490
+ },
491
+ {
492
+ "id": "buzzsprout.get_podcast",
493
+ "service": "buzzsprout",
494
+ "name": "get_podcast",
495
+ "description": "Get one podcast available to the authenticated Buzzsprout account.",
496
+ "operationType": "read",
497
+ "requiredScopes": [],
498
+ "providerPermissions": [],
499
+ "inputSchema": {
500
+ "type": "object",
501
+ "properties": {
502
+ "podcastId": {
503
+ "type": "integer",
504
+ "minimum": 1,
505
+ "description": "The numeric Buzzsprout podcast ID."
506
+ }
507
+ },
508
+ "additionalProperties": false,
509
+ "description": "The input payload for getting a Buzzsprout podcast."
510
+ },
511
+ "outputSchema": {
512
+ "type": "object",
513
+ "properties": {
514
+ "podcast": {
515
+ "type": "object",
516
+ "properties": {
517
+ "id": {
518
+ "type": "integer",
519
+ "minimum": 1,
520
+ "description": "The numeric Buzzsprout podcast ID."
521
+ },
522
+ "title": {
523
+ "type": "string",
524
+ "description": "The podcast title."
525
+ },
526
+ "author": {
527
+ "anyOf": [
528
+ {
529
+ "type": "string",
530
+ "description": "The podcast author when configured."
531
+ },
532
+ {
533
+ "type": "null"
534
+ }
535
+ ]
536
+ },
537
+ "description": {
538
+ "anyOf": [
539
+ {
540
+ "type": "string",
541
+ "description": "The podcast description when configured."
542
+ },
543
+ {
544
+ "type": "null"
545
+ }
546
+ ]
547
+ },
548
+ "websiteAddress": {
549
+ "anyOf": [
550
+ {
551
+ "type": "string",
552
+ "description": "The configured external website address."
553
+ },
554
+ {
555
+ "type": "null"
556
+ }
557
+ ]
558
+ },
559
+ "websiteUrl": {
560
+ "anyOf": [
561
+ {
562
+ "type": "string",
563
+ "description": "The effective podcast website URL."
564
+ },
565
+ {
566
+ "type": "null"
567
+ }
568
+ ]
569
+ },
570
+ "contactEmail": {
571
+ "anyOf": [
572
+ {
573
+ "type": "string",
574
+ "description": "The podcast contact email when configured."
575
+ },
576
+ {
577
+ "type": "null"
578
+ }
579
+ ]
580
+ },
581
+ "keywords": {
582
+ "anyOf": [
583
+ {
584
+ "type": "string",
585
+ "description": "The comma-separated podcast keywords."
586
+ },
587
+ {
588
+ "type": "null"
589
+ }
590
+ ]
591
+ },
592
+ "explicit": {
593
+ "type": "boolean",
594
+ "description": "Whether the podcast is marked as explicit."
595
+ },
596
+ "mainCategory": {
597
+ "anyOf": [
598
+ {
599
+ "type": "string",
600
+ "description": "The primary podcast category."
601
+ },
602
+ {
603
+ "type": "null"
604
+ }
605
+ ]
606
+ },
607
+ "subCategory": {
608
+ "anyOf": [
609
+ {
610
+ "type": "string",
611
+ "description": "The primary podcast subcategory."
612
+ },
613
+ {
614
+ "type": "null"
615
+ }
616
+ ]
617
+ },
618
+ "mainCategory2": {
619
+ "anyOf": [
620
+ {
621
+ "type": "string",
622
+ "description": "The second podcast category."
623
+ },
624
+ {
625
+ "type": "null"
626
+ }
627
+ ]
628
+ },
629
+ "subCategory2": {
630
+ "anyOf": [
631
+ {
632
+ "type": "string",
633
+ "description": "The second podcast subcategory."
634
+ },
635
+ {
636
+ "type": "null"
637
+ }
638
+ ]
639
+ },
640
+ "mainCategory3": {
641
+ "anyOf": [
642
+ {
643
+ "type": "string",
644
+ "description": "The third podcast category."
645
+ },
646
+ {
647
+ "type": "null"
648
+ }
649
+ ]
650
+ },
651
+ "subCategory3": {
652
+ "anyOf": [
653
+ {
654
+ "type": "string",
655
+ "description": "The third podcast subcategory."
656
+ },
657
+ {
658
+ "type": "null"
659
+ }
660
+ ]
661
+ },
662
+ "language": {
663
+ "anyOf": [
664
+ {
665
+ "type": "string",
666
+ "description": "The podcast language code."
667
+ },
668
+ {
669
+ "type": "null"
670
+ }
671
+ ]
672
+ },
673
+ "timezone": {
674
+ "anyOf": [
675
+ {
676
+ "type": "string",
677
+ "description": "The podcast timezone."
678
+ },
679
+ {
680
+ "type": "null"
681
+ }
682
+ ]
683
+ },
684
+ "artworkUrl": {
685
+ "anyOf": [
686
+ {
687
+ "type": "string",
688
+ "description": "The podcast artwork URL."
689
+ },
690
+ {
691
+ "type": "null"
692
+ }
693
+ ]
694
+ },
695
+ "backgroundUrl": {
696
+ "anyOf": [
697
+ {
698
+ "type": "string",
699
+ "description": "The podcast background image URL."
700
+ },
701
+ {
702
+ "type": "null"
703
+ }
704
+ ]
705
+ },
706
+ "rssUrl": {
707
+ "anyOf": [
708
+ {
709
+ "type": "string",
710
+ "description": "The podcast RSS feed URL."
711
+ },
712
+ {
713
+ "type": "null"
714
+ }
715
+ ]
716
+ },
717
+ "raw": {
718
+ "type": "object",
719
+ "properties": {},
720
+ "additionalProperties": true,
721
+ "description": "The raw podcast object returned by Buzzsprout."
722
+ }
723
+ },
724
+ "additionalProperties": false,
725
+ "description": "A podcast returned by Buzzsprout."
726
+ }
727
+ },
728
+ "additionalProperties": false,
729
+ "description": "The response returned when getting a Buzzsprout podcast."
730
+ }
731
+ },
732
+ {
733
+ "id": "buzzsprout.list_episode_downloads",
734
+ "service": "buzzsprout",
735
+ "name": "list_episode_downloads",
736
+ "description": "List paginated download details for one episode and podcast-local date.",
737
+ "operationType": "read",
738
+ "requiredScopes": [],
739
+ "providerPermissions": [],
740
+ "inputSchema": {
741
+ "type": "object",
742
+ "properties": {
743
+ "podcastId": {
744
+ "type": "integer",
745
+ "minimum": 1,
746
+ "description": "The numeric Buzzsprout podcast ID."
747
+ },
748
+ "episodeId": {
749
+ "type": "integer",
750
+ "minimum": 1,
751
+ "description": "The numeric Buzzsprout episode ID."
752
+ },
753
+ "date": {
754
+ "type": "string",
755
+ "description": "The podcast-local date to query.",
756
+ "format": "date"
757
+ },
758
+ "page": {
759
+ "type": "integer",
760
+ "minimum": 1,
761
+ "description": "The page number to request."
762
+ },
763
+ "perPage": {
764
+ "type": "integer",
765
+ "minimum": 1,
766
+ "maximum": 1000,
767
+ "description": "The maximum download records per page."
768
+ }
769
+ },
770
+ "additionalProperties": false,
771
+ "required": [
772
+ "podcastId",
773
+ "episodeId",
774
+ "date"
775
+ ],
776
+ "description": "The input payload for listing episode download details."
777
+ },
778
+ "outputSchema": {
779
+ "type": "object",
780
+ "properties": {
781
+ "episodeId": {
782
+ "type": "integer",
783
+ "minimum": 1,
784
+ "description": "The numeric Buzzsprout episode ID."
785
+ },
786
+ "downloads": {
787
+ "type": "array",
788
+ "items": {
789
+ "type": "object",
790
+ "properties": {
791
+ "app": {
792
+ "type": "string",
793
+ "description": "The podcast application name."
794
+ },
795
+ "device": {
796
+ "type": "string",
797
+ "description": "The device name."
798
+ },
799
+ "deviceType": {
800
+ "type": "string",
801
+ "description": "The device category."
802
+ },
803
+ "countryCode": {
804
+ "anyOf": [
805
+ {
806
+ "type": "string",
807
+ "description": "The ISO country code when available."
808
+ },
809
+ {
810
+ "type": "null"
811
+ }
812
+ ]
813
+ },
814
+ "region": {
815
+ "anyOf": [
816
+ {
817
+ "type": "string",
818
+ "description": "The region when available."
819
+ },
820
+ {
821
+ "type": "null"
822
+ }
823
+ ]
824
+ },
825
+ "city": {
826
+ "anyOf": [
827
+ {
828
+ "type": "string",
829
+ "description": "The city when available."
830
+ },
831
+ {
832
+ "type": "null"
833
+ }
834
+ ]
835
+ },
836
+ "continent": {
837
+ "anyOf": [
838
+ {
839
+ "type": "string",
840
+ "description": "The continent when available."
841
+ },
842
+ {
843
+ "type": "null"
844
+ }
845
+ ]
846
+ },
847
+ "mediaType": {
848
+ "type": "string",
849
+ "enum": [
850
+ "audio",
851
+ "video"
852
+ ],
853
+ "description": "The media type downloaded."
854
+ }
855
+ },
856
+ "additionalProperties": false,
857
+ "description": "One normalized Buzzsprout download event."
858
+ },
859
+ "description": "The normalized download details."
860
+ },
861
+ "page": {
862
+ "type": "integer",
863
+ "minimum": 1,
864
+ "description": "The current page number."
865
+ },
866
+ "perPage": {
867
+ "type": "integer",
868
+ "minimum": 1,
869
+ "description": "The requested page size."
870
+ },
871
+ "hasMore": {
872
+ "type": "boolean",
873
+ "description": "Whether another page is available."
874
+ },
875
+ "nextPage": {
876
+ "anyOf": [
877
+ {
878
+ "type": "integer",
879
+ "description": "The next page number, or null when this is the last page."
880
+ },
881
+ {
882
+ "type": "null"
883
+ }
884
+ ]
885
+ }
886
+ },
887
+ "additionalProperties": false,
888
+ "description": "The response returned for episode download details."
889
+ }
890
+ },
891
+ {
892
+ "id": "buzzsprout.list_episodes",
893
+ "service": "buzzsprout",
894
+ "name": "list_episodes",
895
+ "description": "List episodes for a Buzzsprout podcast.",
896
+ "operationType": "read",
897
+ "requiredScopes": [],
898
+ "providerPermissions": [],
899
+ "inputSchema": {
900
+ "type": "object",
901
+ "properties": {
902
+ "podcastId": {
903
+ "type": "integer",
904
+ "minimum": 1,
905
+ "description": "The numeric Buzzsprout podcast ID."
906
+ }
907
+ },
908
+ "additionalProperties": false,
909
+ "description": "The input payload for listing Buzzsprout episodes."
910
+ },
911
+ "outputSchema": {
912
+ "type": "object",
913
+ "properties": {
914
+ "episodes": {
915
+ "type": "array",
916
+ "items": {
917
+ "type": "object",
918
+ "properties": {
919
+ "id": {
920
+ "type": "integer",
921
+ "minimum": 1,
922
+ "description": "The numeric Buzzsprout episode ID."
923
+ },
924
+ "title": {
925
+ "type": "string",
926
+ "description": "The episode title."
927
+ },
928
+ "audioUrl": {
929
+ "anyOf": [
930
+ {
931
+ "type": "string",
932
+ "description": "The processed episode audio URL."
933
+ },
934
+ {
935
+ "type": "null"
936
+ }
937
+ ]
938
+ },
939
+ "artworkUrl": {
940
+ "anyOf": [
941
+ {
942
+ "type": "string",
943
+ "description": "The episode artwork URL."
944
+ },
945
+ {
946
+ "type": "null"
947
+ }
948
+ ]
949
+ },
950
+ "description": {
951
+ "anyOf": [
952
+ {
953
+ "type": "string",
954
+ "description": "The episode description."
955
+ },
956
+ {
957
+ "type": "null"
958
+ }
959
+ ]
960
+ },
961
+ "artist": {
962
+ "anyOf": [
963
+ {
964
+ "type": "string",
965
+ "description": "The episode artist."
966
+ },
967
+ {
968
+ "type": "null"
969
+ }
970
+ ]
971
+ },
972
+ "tags": {
973
+ "anyOf": [
974
+ {
975
+ "type": "string",
976
+ "description": "The comma-separated episode tags."
977
+ },
978
+ {
979
+ "type": "null"
980
+ }
981
+ ]
982
+ },
983
+ "publishedAt": {
984
+ "anyOf": [
985
+ {
986
+ "type": "string",
987
+ "description": "The episode publication timestamp."
988
+ },
989
+ {
990
+ "type": "null"
991
+ }
992
+ ]
993
+ },
994
+ "duration": {
995
+ "anyOf": [
996
+ {
997
+ "type": "integer",
998
+ "description": "The episode duration in seconds, or -1 while processing."
999
+ },
1000
+ {
1001
+ "type": "null"
1002
+ }
1003
+ ]
1004
+ },
1005
+ "guid": {
1006
+ "anyOf": [
1007
+ {
1008
+ "type": "string",
1009
+ "description": "The episode GUID."
1010
+ },
1011
+ {
1012
+ "type": "null"
1013
+ }
1014
+ ]
1015
+ },
1016
+ "customUrl": {
1017
+ "anyOf": [
1018
+ {
1019
+ "type": "string",
1020
+ "description": "The episode custom URL slug."
1021
+ },
1022
+ {
1023
+ "type": "null"
1024
+ }
1025
+ ]
1026
+ },
1027
+ "episodeNumber": {
1028
+ "anyOf": [
1029
+ {
1030
+ "type": "integer",
1031
+ "description": "The episode number."
1032
+ },
1033
+ {
1034
+ "type": "null"
1035
+ }
1036
+ ]
1037
+ },
1038
+ "seasonNumber": {
1039
+ "anyOf": [
1040
+ {
1041
+ "type": "integer",
1042
+ "description": "The season number."
1043
+ },
1044
+ {
1045
+ "type": "null"
1046
+ }
1047
+ ]
1048
+ },
1049
+ "episodeType": {
1050
+ "anyOf": [
1051
+ {
1052
+ "type": "string",
1053
+ "description": "The episode type."
1054
+ },
1055
+ {
1056
+ "type": "null"
1057
+ }
1058
+ ]
1059
+ },
1060
+ "explicit": {
1061
+ "type": "boolean",
1062
+ "description": "Whether the episode is marked as explicit."
1063
+ },
1064
+ "private": {
1065
+ "type": "boolean",
1066
+ "description": "Whether the episode is unpublished and private."
1067
+ },
1068
+ "totalPlays": {
1069
+ "anyOf": [
1070
+ {
1071
+ "type": "integer",
1072
+ "description": "The total episode play count."
1073
+ },
1074
+ {
1075
+ "type": "null"
1076
+ }
1077
+ ]
1078
+ },
1079
+ "raw": {
1080
+ "type": "object",
1081
+ "properties": {},
1082
+ "additionalProperties": true,
1083
+ "description": "The raw episode object returned by Buzzsprout."
1084
+ }
1085
+ },
1086
+ "additionalProperties": false,
1087
+ "description": "An episode returned by Buzzsprout."
1088
+ },
1089
+ "description": "The episodes returned by Buzzsprout."
1090
+ }
1091
+ },
1092
+ "additionalProperties": false,
1093
+ "description": "The response returned when listing Buzzsprout episodes."
1094
+ }
1095
+ },
1096
+ {
1097
+ "id": "buzzsprout.list_podcast_downloads",
1098
+ "service": "buzzsprout",
1099
+ "name": "list_podcast_downloads",
1100
+ "description": "List per-episode download totals for one podcast-local date.",
1101
+ "operationType": "read",
1102
+ "requiredScopes": [],
1103
+ "providerPermissions": [],
1104
+ "inputSchema": {
1105
+ "type": "object",
1106
+ "properties": {
1107
+ "podcastId": {
1108
+ "type": "integer",
1109
+ "minimum": 1,
1110
+ "description": "The numeric Buzzsprout podcast ID."
1111
+ },
1112
+ "date": {
1113
+ "type": "string",
1114
+ "description": "The podcast-local date to query.",
1115
+ "format": "date"
1116
+ }
1117
+ },
1118
+ "additionalProperties": false,
1119
+ "description": "The input payload for listing podcast download totals."
1120
+ },
1121
+ "outputSchema": {
1122
+ "type": "object",
1123
+ "properties": {
1124
+ "downloads": {
1125
+ "type": "array",
1126
+ "items": {
1127
+ "type": "object",
1128
+ "properties": {
1129
+ "episodeId": {
1130
+ "type": "integer",
1131
+ "minimum": 1,
1132
+ "description": "The numeric Buzzsprout episode ID."
1133
+ },
1134
+ "total": {
1135
+ "type": "integer",
1136
+ "minimum": 0,
1137
+ "description": "The number of downloads on the requested date."
1138
+ }
1139
+ },
1140
+ "additionalProperties": false,
1141
+ "description": "One episode's download total for a date."
1142
+ },
1143
+ "description": "The per-episode download totals."
1144
+ }
1145
+ },
1146
+ "additionalProperties": false,
1147
+ "description": "The response returned for podcast download totals."
1148
+ }
1149
+ },
1150
+ {
1151
+ "id": "buzzsprout.list_podcasts",
1152
+ "service": "buzzsprout",
1153
+ "name": "list_podcasts",
1154
+ "description": "List podcasts available to the authenticated Buzzsprout account.",
1155
+ "operationType": "read",
1156
+ "requiredScopes": [],
1157
+ "providerPermissions": [],
1158
+ "inputSchema": {
1159
+ "type": "object",
1160
+ "properties": {},
1161
+ "additionalProperties": false,
1162
+ "description": "The input payload for listing Buzzsprout podcasts."
1163
+ },
1164
+ "outputSchema": {
1165
+ "type": "object",
1166
+ "properties": {
1167
+ "podcasts": {
1168
+ "type": "array",
1169
+ "items": {
1170
+ "type": "object",
1171
+ "properties": {
1172
+ "id": {
1173
+ "type": "integer",
1174
+ "minimum": 1,
1175
+ "description": "The numeric Buzzsprout podcast ID."
1176
+ },
1177
+ "title": {
1178
+ "type": "string",
1179
+ "description": "The podcast title."
1180
+ },
1181
+ "author": {
1182
+ "anyOf": [
1183
+ {
1184
+ "type": "string",
1185
+ "description": "The podcast author when configured."
1186
+ },
1187
+ {
1188
+ "type": "null"
1189
+ }
1190
+ ]
1191
+ },
1192
+ "description": {
1193
+ "anyOf": [
1194
+ {
1195
+ "type": "string",
1196
+ "description": "The podcast description when configured."
1197
+ },
1198
+ {
1199
+ "type": "null"
1200
+ }
1201
+ ]
1202
+ },
1203
+ "websiteAddress": {
1204
+ "anyOf": [
1205
+ {
1206
+ "type": "string",
1207
+ "description": "The configured external website address."
1208
+ },
1209
+ {
1210
+ "type": "null"
1211
+ }
1212
+ ]
1213
+ },
1214
+ "websiteUrl": {
1215
+ "anyOf": [
1216
+ {
1217
+ "type": "string",
1218
+ "description": "The effective podcast website URL."
1219
+ },
1220
+ {
1221
+ "type": "null"
1222
+ }
1223
+ ]
1224
+ },
1225
+ "contactEmail": {
1226
+ "anyOf": [
1227
+ {
1228
+ "type": "string",
1229
+ "description": "The podcast contact email when configured."
1230
+ },
1231
+ {
1232
+ "type": "null"
1233
+ }
1234
+ ]
1235
+ },
1236
+ "keywords": {
1237
+ "anyOf": [
1238
+ {
1239
+ "type": "string",
1240
+ "description": "The comma-separated podcast keywords."
1241
+ },
1242
+ {
1243
+ "type": "null"
1244
+ }
1245
+ ]
1246
+ },
1247
+ "explicit": {
1248
+ "type": "boolean",
1249
+ "description": "Whether the podcast is marked as explicit."
1250
+ },
1251
+ "mainCategory": {
1252
+ "anyOf": [
1253
+ {
1254
+ "type": "string",
1255
+ "description": "The primary podcast category."
1256
+ },
1257
+ {
1258
+ "type": "null"
1259
+ }
1260
+ ]
1261
+ },
1262
+ "subCategory": {
1263
+ "anyOf": [
1264
+ {
1265
+ "type": "string",
1266
+ "description": "The primary podcast subcategory."
1267
+ },
1268
+ {
1269
+ "type": "null"
1270
+ }
1271
+ ]
1272
+ },
1273
+ "mainCategory2": {
1274
+ "anyOf": [
1275
+ {
1276
+ "type": "string",
1277
+ "description": "The second podcast category."
1278
+ },
1279
+ {
1280
+ "type": "null"
1281
+ }
1282
+ ]
1283
+ },
1284
+ "subCategory2": {
1285
+ "anyOf": [
1286
+ {
1287
+ "type": "string",
1288
+ "description": "The second podcast subcategory."
1289
+ },
1290
+ {
1291
+ "type": "null"
1292
+ }
1293
+ ]
1294
+ },
1295
+ "mainCategory3": {
1296
+ "anyOf": [
1297
+ {
1298
+ "type": "string",
1299
+ "description": "The third podcast category."
1300
+ },
1301
+ {
1302
+ "type": "null"
1303
+ }
1304
+ ]
1305
+ },
1306
+ "subCategory3": {
1307
+ "anyOf": [
1308
+ {
1309
+ "type": "string",
1310
+ "description": "The third podcast subcategory."
1311
+ },
1312
+ {
1313
+ "type": "null"
1314
+ }
1315
+ ]
1316
+ },
1317
+ "language": {
1318
+ "anyOf": [
1319
+ {
1320
+ "type": "string",
1321
+ "description": "The podcast language code."
1322
+ },
1323
+ {
1324
+ "type": "null"
1325
+ }
1326
+ ]
1327
+ },
1328
+ "timezone": {
1329
+ "anyOf": [
1330
+ {
1331
+ "type": "string",
1332
+ "description": "The podcast timezone."
1333
+ },
1334
+ {
1335
+ "type": "null"
1336
+ }
1337
+ ]
1338
+ },
1339
+ "artworkUrl": {
1340
+ "anyOf": [
1341
+ {
1342
+ "type": "string",
1343
+ "description": "The podcast artwork URL."
1344
+ },
1345
+ {
1346
+ "type": "null"
1347
+ }
1348
+ ]
1349
+ },
1350
+ "backgroundUrl": {
1351
+ "anyOf": [
1352
+ {
1353
+ "type": "string",
1354
+ "description": "The podcast background image URL."
1355
+ },
1356
+ {
1357
+ "type": "null"
1358
+ }
1359
+ ]
1360
+ },
1361
+ "rssUrl": {
1362
+ "anyOf": [
1363
+ {
1364
+ "type": "string",
1365
+ "description": "The podcast RSS feed URL."
1366
+ },
1367
+ {
1368
+ "type": "null"
1369
+ }
1370
+ ]
1371
+ },
1372
+ "raw": {
1373
+ "type": "object",
1374
+ "properties": {},
1375
+ "additionalProperties": true,
1376
+ "description": "The raw podcast object returned by Buzzsprout."
1377
+ }
1378
+ },
1379
+ "additionalProperties": false,
1380
+ "description": "A podcast returned by Buzzsprout."
1381
+ },
1382
+ "description": "The available Buzzsprout podcasts."
1383
+ }
1384
+ },
1385
+ "additionalProperties": false,
1386
+ "description": "The response returned when listing Buzzsprout podcasts."
1387
+ }
1388
+ },
1389
+ {
1390
+ "id": "buzzsprout.update_episode",
1391
+ "service": "buzzsprout",
1392
+ "name": "update_episode",
1393
+ "description": "Update, publish, schedule, or unpublish a Buzzsprout episode.",
1394
+ "operationType": "destructive",
1395
+ "requiredScopes": [],
1396
+ "providerPermissions": [],
1397
+ "inputSchema": {
1398
+ "type": "object",
1399
+ "properties": {
1400
+ "podcastId": {
1401
+ "type": "integer",
1402
+ "minimum": 1,
1403
+ "description": "The numeric Buzzsprout podcast ID."
1404
+ },
1405
+ "episodeId": {
1406
+ "type": "integer",
1407
+ "minimum": 1,
1408
+ "description": "The numeric Buzzsprout episode ID."
1409
+ },
1410
+ "title": {
1411
+ "type": "string",
1412
+ "minLength": 1,
1413
+ "description": "The episode title."
1414
+ },
1415
+ "description": {
1416
+ "type": "string",
1417
+ "description": "The episode description."
1418
+ },
1419
+ "artist": {
1420
+ "type": "string",
1421
+ "description": "The episode artist."
1422
+ },
1423
+ "tags": {
1424
+ "type": "string",
1425
+ "description": "Comma-separated episode tags."
1426
+ },
1427
+ "publishedAt": {
1428
+ "type": "string",
1429
+ "description": "The publication timestamp including a timezone offset.",
1430
+ "format": "date-time"
1431
+ },
1432
+ "seasonNumber": {
1433
+ "type": "integer",
1434
+ "minimum": 0,
1435
+ "description": "The season number."
1436
+ },
1437
+ "episodeNumber": {
1438
+ "type": "integer",
1439
+ "minimum": 0,
1440
+ "description": "The episode number."
1441
+ },
1442
+ "episodeType": {
1443
+ "type": "string",
1444
+ "enum": [
1445
+ "full",
1446
+ "trailer",
1447
+ "bonus"
1448
+ ],
1449
+ "description": "The episode type."
1450
+ },
1451
+ "explicit": {
1452
+ "type": "boolean",
1453
+ "description": "Whether the episode contains explicit content."
1454
+ },
1455
+ "private": {
1456
+ "type": "boolean",
1457
+ "description": "Whether the episode is unpublished and private."
1458
+ },
1459
+ "customUrl": {
1460
+ "type": "string",
1461
+ "description": "The custom episode URL slug."
1462
+ },
1463
+ "artworkUrl": {
1464
+ "type": "string",
1465
+ "description": "A publicly accessible artwork URL that Buzzsprout should fetch.",
1466
+ "format": "uri"
1467
+ }
1468
+ },
1469
+ "additionalProperties": false,
1470
+ "required": [
1471
+ "podcastId",
1472
+ "episodeId"
1473
+ ],
1474
+ "description": "The input payload for updating a Buzzsprout episode."
1475
+ },
1476
+ "outputSchema": {
1477
+ "type": "object",
1478
+ "properties": {
1479
+ "episode": {
1480
+ "type": "object",
1481
+ "properties": {
1482
+ "id": {
1483
+ "type": "integer",
1484
+ "minimum": 1,
1485
+ "description": "The numeric Buzzsprout episode ID."
1486
+ },
1487
+ "title": {
1488
+ "type": "string",
1489
+ "description": "The episode title."
1490
+ },
1491
+ "audioUrl": {
1492
+ "anyOf": [
1493
+ {
1494
+ "type": "string",
1495
+ "description": "The processed episode audio URL."
1496
+ },
1497
+ {
1498
+ "type": "null"
1499
+ }
1500
+ ]
1501
+ },
1502
+ "artworkUrl": {
1503
+ "anyOf": [
1504
+ {
1505
+ "type": "string",
1506
+ "description": "The episode artwork URL."
1507
+ },
1508
+ {
1509
+ "type": "null"
1510
+ }
1511
+ ]
1512
+ },
1513
+ "description": {
1514
+ "anyOf": [
1515
+ {
1516
+ "type": "string",
1517
+ "description": "The episode description."
1518
+ },
1519
+ {
1520
+ "type": "null"
1521
+ }
1522
+ ]
1523
+ },
1524
+ "artist": {
1525
+ "anyOf": [
1526
+ {
1527
+ "type": "string",
1528
+ "description": "The episode artist."
1529
+ },
1530
+ {
1531
+ "type": "null"
1532
+ }
1533
+ ]
1534
+ },
1535
+ "tags": {
1536
+ "anyOf": [
1537
+ {
1538
+ "type": "string",
1539
+ "description": "The comma-separated episode tags."
1540
+ },
1541
+ {
1542
+ "type": "null"
1543
+ }
1544
+ ]
1545
+ },
1546
+ "publishedAt": {
1547
+ "anyOf": [
1548
+ {
1549
+ "type": "string",
1550
+ "description": "The episode publication timestamp."
1551
+ },
1552
+ {
1553
+ "type": "null"
1554
+ }
1555
+ ]
1556
+ },
1557
+ "duration": {
1558
+ "anyOf": [
1559
+ {
1560
+ "type": "integer",
1561
+ "description": "The episode duration in seconds, or -1 while processing."
1562
+ },
1563
+ {
1564
+ "type": "null"
1565
+ }
1566
+ ]
1567
+ },
1568
+ "guid": {
1569
+ "anyOf": [
1570
+ {
1571
+ "type": "string",
1572
+ "description": "The episode GUID."
1573
+ },
1574
+ {
1575
+ "type": "null"
1576
+ }
1577
+ ]
1578
+ },
1579
+ "customUrl": {
1580
+ "anyOf": [
1581
+ {
1582
+ "type": "string",
1583
+ "description": "The episode custom URL slug."
1584
+ },
1585
+ {
1586
+ "type": "null"
1587
+ }
1588
+ ]
1589
+ },
1590
+ "episodeNumber": {
1591
+ "anyOf": [
1592
+ {
1593
+ "type": "integer",
1594
+ "description": "The episode number."
1595
+ },
1596
+ {
1597
+ "type": "null"
1598
+ }
1599
+ ]
1600
+ },
1601
+ "seasonNumber": {
1602
+ "anyOf": [
1603
+ {
1604
+ "type": "integer",
1605
+ "description": "The season number."
1606
+ },
1607
+ {
1608
+ "type": "null"
1609
+ }
1610
+ ]
1611
+ },
1612
+ "episodeType": {
1613
+ "anyOf": [
1614
+ {
1615
+ "type": "string",
1616
+ "description": "The episode type."
1617
+ },
1618
+ {
1619
+ "type": "null"
1620
+ }
1621
+ ]
1622
+ },
1623
+ "explicit": {
1624
+ "type": "boolean",
1625
+ "description": "Whether the episode is marked as explicit."
1626
+ },
1627
+ "private": {
1628
+ "type": "boolean",
1629
+ "description": "Whether the episode is unpublished and private."
1630
+ },
1631
+ "totalPlays": {
1632
+ "anyOf": [
1633
+ {
1634
+ "type": "integer",
1635
+ "description": "The total episode play count."
1636
+ },
1637
+ {
1638
+ "type": "null"
1639
+ }
1640
+ ]
1641
+ },
1642
+ "raw": {
1643
+ "type": "object",
1644
+ "properties": {},
1645
+ "additionalProperties": true,
1646
+ "description": "The raw episode object returned by Buzzsprout."
1647
+ }
1648
+ },
1649
+ "additionalProperties": false,
1650
+ "description": "An episode returned by Buzzsprout."
1651
+ }
1652
+ },
1653
+ "additionalProperties": false,
1654
+ "description": "The response returned after updating a Buzzsprout episode."
1655
+ }
1656
+ },
1657
+ {
1658
+ "id": "buzzsprout.update_podcast",
1659
+ "service": "buzzsprout",
1660
+ "name": "update_podcast",
1661
+ "description": "Update editable metadata for a Buzzsprout podcast.",
1662
+ "operationType": "write",
1663
+ "requiredScopes": [],
1664
+ "providerPermissions": [],
1665
+ "inputSchema": {
1666
+ "type": "object",
1667
+ "properties": {
1668
+ "podcastId": {
1669
+ "type": "integer",
1670
+ "minimum": 1,
1671
+ "description": "The numeric Buzzsprout podcast ID."
1672
+ },
1673
+ "title": {
1674
+ "type": "string",
1675
+ "minLength": 1,
1676
+ "description": "The podcast title."
1677
+ },
1678
+ "description": {
1679
+ "type": "string",
1680
+ "description": "The podcast description."
1681
+ },
1682
+ "keywords": {
1683
+ "type": "string",
1684
+ "description": "Comma-separated podcast keywords."
1685
+ },
1686
+ "author": {
1687
+ "type": "string",
1688
+ "description": "The podcast author."
1689
+ },
1690
+ "explicit": {
1691
+ "type": "boolean",
1692
+ "description": "Whether the podcast contains explicit content."
1693
+ },
1694
+ "language": {
1695
+ "type": "string",
1696
+ "description": "The podcast language code."
1697
+ },
1698
+ "timezone": {
1699
+ "type": "string",
1700
+ "description": "The podcast timezone name."
1701
+ },
1702
+ "websiteAddress": {
1703
+ "type": "string",
1704
+ "description": "The podcast's external website URL.",
1705
+ "format": "uri"
1706
+ },
1707
+ "contactEmail": {
1708
+ "type": "string",
1709
+ "description": "The podcast contact email.",
1710
+ "format": "email"
1711
+ },
1712
+ "category": {
1713
+ "anyOf": [
1714
+ {
1715
+ "type": "string",
1716
+ "description": "The primary category in Main :: Sub format, or null."
1717
+ },
1718
+ {
1719
+ "type": "null"
1720
+ }
1721
+ ]
1722
+ },
1723
+ "category2": {
1724
+ "anyOf": [
1725
+ {
1726
+ "type": "string",
1727
+ "description": "The second category in Main :: Sub format, or null."
1728
+ },
1729
+ {
1730
+ "type": "null"
1731
+ }
1732
+ ]
1733
+ },
1734
+ "category3": {
1735
+ "anyOf": [
1736
+ {
1737
+ "type": "string",
1738
+ "description": "The third category in Main :: Sub format, or null."
1739
+ },
1740
+ {
1741
+ "type": "null"
1742
+ }
1743
+ ]
1744
+ },
1745
+ "artworkUrl": {
1746
+ "type": "string",
1747
+ "description": "A publicly accessible artwork URL that Buzzsprout should fetch.",
1748
+ "format": "uri"
1749
+ }
1750
+ },
1751
+ "additionalProperties": false,
1752
+ "required": [
1753
+ "podcastId"
1754
+ ],
1755
+ "description": "The input payload for updating a Buzzsprout podcast."
1756
+ },
1757
+ "outputSchema": {
1758
+ "type": "object",
1759
+ "properties": {
1760
+ "podcast": {
1761
+ "type": "object",
1762
+ "properties": {
1763
+ "id": {
1764
+ "type": "integer",
1765
+ "minimum": 1,
1766
+ "description": "The numeric Buzzsprout podcast ID."
1767
+ },
1768
+ "title": {
1769
+ "type": "string",
1770
+ "description": "The podcast title."
1771
+ },
1772
+ "author": {
1773
+ "anyOf": [
1774
+ {
1775
+ "type": "string",
1776
+ "description": "The podcast author when configured."
1777
+ },
1778
+ {
1779
+ "type": "null"
1780
+ }
1781
+ ]
1782
+ },
1783
+ "description": {
1784
+ "anyOf": [
1785
+ {
1786
+ "type": "string",
1787
+ "description": "The podcast description when configured."
1788
+ },
1789
+ {
1790
+ "type": "null"
1791
+ }
1792
+ ]
1793
+ },
1794
+ "websiteAddress": {
1795
+ "anyOf": [
1796
+ {
1797
+ "type": "string",
1798
+ "description": "The configured external website address."
1799
+ },
1800
+ {
1801
+ "type": "null"
1802
+ }
1803
+ ]
1804
+ },
1805
+ "websiteUrl": {
1806
+ "anyOf": [
1807
+ {
1808
+ "type": "string",
1809
+ "description": "The effective podcast website URL."
1810
+ },
1811
+ {
1812
+ "type": "null"
1813
+ }
1814
+ ]
1815
+ },
1816
+ "contactEmail": {
1817
+ "anyOf": [
1818
+ {
1819
+ "type": "string",
1820
+ "description": "The podcast contact email when configured."
1821
+ },
1822
+ {
1823
+ "type": "null"
1824
+ }
1825
+ ]
1826
+ },
1827
+ "keywords": {
1828
+ "anyOf": [
1829
+ {
1830
+ "type": "string",
1831
+ "description": "The comma-separated podcast keywords."
1832
+ },
1833
+ {
1834
+ "type": "null"
1835
+ }
1836
+ ]
1837
+ },
1838
+ "explicit": {
1839
+ "type": "boolean",
1840
+ "description": "Whether the podcast is marked as explicit."
1841
+ },
1842
+ "mainCategory": {
1843
+ "anyOf": [
1844
+ {
1845
+ "type": "string",
1846
+ "description": "The primary podcast category."
1847
+ },
1848
+ {
1849
+ "type": "null"
1850
+ }
1851
+ ]
1852
+ },
1853
+ "subCategory": {
1854
+ "anyOf": [
1855
+ {
1856
+ "type": "string",
1857
+ "description": "The primary podcast subcategory."
1858
+ },
1859
+ {
1860
+ "type": "null"
1861
+ }
1862
+ ]
1863
+ },
1864
+ "mainCategory2": {
1865
+ "anyOf": [
1866
+ {
1867
+ "type": "string",
1868
+ "description": "The second podcast category."
1869
+ },
1870
+ {
1871
+ "type": "null"
1872
+ }
1873
+ ]
1874
+ },
1875
+ "subCategory2": {
1876
+ "anyOf": [
1877
+ {
1878
+ "type": "string",
1879
+ "description": "The second podcast subcategory."
1880
+ },
1881
+ {
1882
+ "type": "null"
1883
+ }
1884
+ ]
1885
+ },
1886
+ "mainCategory3": {
1887
+ "anyOf": [
1888
+ {
1889
+ "type": "string",
1890
+ "description": "The third podcast category."
1891
+ },
1892
+ {
1893
+ "type": "null"
1894
+ }
1895
+ ]
1896
+ },
1897
+ "subCategory3": {
1898
+ "anyOf": [
1899
+ {
1900
+ "type": "string",
1901
+ "description": "The third podcast subcategory."
1902
+ },
1903
+ {
1904
+ "type": "null"
1905
+ }
1906
+ ]
1907
+ },
1908
+ "language": {
1909
+ "anyOf": [
1910
+ {
1911
+ "type": "string",
1912
+ "description": "The podcast language code."
1913
+ },
1914
+ {
1915
+ "type": "null"
1916
+ }
1917
+ ]
1918
+ },
1919
+ "timezone": {
1920
+ "anyOf": [
1921
+ {
1922
+ "type": "string",
1923
+ "description": "The podcast timezone."
1924
+ },
1925
+ {
1926
+ "type": "null"
1927
+ }
1928
+ ]
1929
+ },
1930
+ "artworkUrl": {
1931
+ "anyOf": [
1932
+ {
1933
+ "type": "string",
1934
+ "description": "The podcast artwork URL."
1935
+ },
1936
+ {
1937
+ "type": "null"
1938
+ }
1939
+ ]
1940
+ },
1941
+ "backgroundUrl": {
1942
+ "anyOf": [
1943
+ {
1944
+ "type": "string",
1945
+ "description": "The podcast background image URL."
1946
+ },
1947
+ {
1948
+ "type": "null"
1949
+ }
1950
+ ]
1951
+ },
1952
+ "rssUrl": {
1953
+ "anyOf": [
1954
+ {
1955
+ "type": "string",
1956
+ "description": "The podcast RSS feed URL."
1957
+ },
1958
+ {
1959
+ "type": "null"
1960
+ }
1961
+ ]
1962
+ },
1963
+ "raw": {
1964
+ "type": "object",
1965
+ "properties": {},
1966
+ "additionalProperties": true,
1967
+ "description": "The raw podcast object returned by Buzzsprout."
1968
+ }
1969
+ },
1970
+ "additionalProperties": false,
1971
+ "description": "A podcast returned by Buzzsprout."
1972
+ }
1973
+ },
1974
+ "additionalProperties": false,
1975
+ "description": "The response returned after updating a Buzzsprout podcast."
1976
+ }
1977
+ }
1978
+ ]
1979
+ }