postboost 1.8.0 → 1.14.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (735) hide show
  1. checksums.yaml +4 -4
  2. data/CODE_OF_CONDUCT.md +7 -0
  3. data/CONTRIBUTING.md +31 -0
  4. data/README.md +134 -1
  5. data/SECURITY.md +9 -0
  6. data/docs/AIApi.md +432 -0
  7. data/docs/AIUsage.md +20 -0
  8. data/docs/AIUsageText.md +24 -0
  9. data/docs/Account.md +6 -2
  10. data/docs/AccountConnectionHealth.md +34 -0
  11. data/docs/AccountErrorsInner.md +49 -0
  12. data/docs/AccountErrorsInnerOneOf.md +24 -0
  13. data/docs/AccountGroup.md +24 -0
  14. data/docs/AccountGroupInput.md +20 -0
  15. data/docs/AccountGroupsApi.md +372 -0
  16. data/docs/AccountHealth.md +34 -0
  17. data/docs/AccountHealthDailyCap.md +20 -0
  18. data/docs/AccountsApi.md +216 -0
  19. data/docs/ActivityApi.md +87 -0
  20. data/docs/AddCompetitor202Response.md +20 -0
  21. data/docs/AddCompetitor409Response.md +20 -0
  22. data/docs/AgentPageMeta.md +24 -0
  23. data/docs/AgentProposal.md +44 -0
  24. data/docs/AgentProposalDecision.md +18 -0
  25. data/docs/AgentRun.md +44 -0
  26. data/docs/AgentsApi.md +745 -0
  27. data/docs/AnalyticsApi.md +498 -0
  28. data/docs/ApiActivity.md +36 -0
  29. data/docs/ApiActivityOutcome.md +15 -0
  30. data/docs/ApiKey.md +32 -0
  31. data/docs/ApiKeyAbility.md +15 -0
  32. data/docs/ApiKeyInput.md +24 -0
  33. data/docs/ApproveAgentProposal200Response.md +18 -0
  34. data/docs/ApproveAgentProposal409Response.md +20 -0
  35. data/docs/ApproveInboxReplyDraft403Response.md +20 -0
  36. data/docs/BlogToSocial200Response.md +3 -1
  37. data/docs/BlogToSocialInput.md +3 -1
  38. data/docs/BrandVoice.md +48 -0
  39. data/docs/BrandVoiceInput.md +46 -0
  40. data/docs/BrandVoiceMeta.md +18 -0
  41. data/docs/ChannelAccount.md +36 -0
  42. data/docs/CodedError.md +22 -0
  43. data/docs/Competitor.md +34 -0
  44. data/docs/CompetitorDetail.md +38 -0
  45. data/docs/CompetitorInput.md +20 -0
  46. data/docs/CompetitorMedia.md +28 -0
  47. data/docs/CompetitorSnapshot.md +22 -0
  48. data/docs/CompetitorsApi.md +296 -0
  49. data/docs/ConnectChannelInput.md +24 -0
  50. data/docs/CreateAccountGroup201Response.md +18 -0
  51. data/docs/CreateAgent201Response.md +18 -0
  52. data/docs/CreateApiKey201Response.md +18 -0
  53. data/docs/CreateApiKey201ResponseData.md +34 -0
  54. data/docs/CreateHashtagGroup201Response.md +18 -0
  55. data/docs/CreateInboxReplyDraft201Response.md +18 -0
  56. data/docs/CreateRecyclingRule201Response.md +18 -0
  57. data/docs/CreateReportExport201Response.md +18 -0
  58. data/docs/CreateResellerClient201Response.md +18 -0
  59. data/docs/CreateRssFeed201Response.md +18 -0
  60. data/docs/CreateTemplate201Response.md +18 -0
  61. data/docs/CreateWebhookSubscription201Response.md +18 -0
  62. data/docs/CreateWebhookSubscription201ResponseData.md +30 -0
  63. data/docs/DeleteAgent200Response.md +18 -0
  64. data/docs/GetAccountHealth200Response.md +18 -0
  65. data/docs/GetBrandVoice200Response.md +18 -0
  66. data/docs/GetCompetitor200Response.md +18 -0
  67. data/docs/GetInboxConversation200Response.md +18 -0
  68. data/docs/GetPostingSchedule200Response.md +18 -0
  69. data/docs/GetReportBranding200Response.md +18 -0
  70. data/docs/GuardrailError.md +28 -0
  71. data/docs/HashtagGroup.md +22 -0
  72. data/docs/HashtagGroupInput.md +20 -0
  73. data/docs/HashtagGroupsApi.md +372 -0
  74. data/docs/ImageCreditBalance.md +28 -0
  75. data/docs/ImageEditInput.md +2 -0
  76. data/docs/ImageGenerate200Response.md +3 -1
  77. data/docs/ImageGenerateInput.md +3 -1
  78. data/docs/ImagePrompt200Response.md +3 -1
  79. data/docs/ImagePromptInput.md +3 -1
  80. data/docs/InboxApi.md +758 -0
  81. data/docs/InboxAuthor.md +22 -0
  82. data/docs/InboxConversation.md +46 -0
  83. data/docs/InboxConversationAccount.md +24 -0
  84. data/docs/InboxConversationUpdate.md +20 -0
  85. data/docs/InboxMessage.md +32 -0
  86. data/docs/InboxMessageAuthor.md +22 -0
  87. data/docs/InboxReplyDraft.md +42 -0
  88. data/docs/InboxReplyDraftApprove.md +18 -0
  89. data/docs/InboxReplyDraftEdit.md +18 -0
  90. data/docs/InboxReplyDraftInput.md +20 -0
  91. data/docs/LearnBrandVoiceInput.md +24 -0
  92. data/docs/LearnBrandVoiceResponse.md +20 -0
  93. data/docs/LearnBrandVoiceResponseMeta.md +26 -0
  94. data/docs/ListAccountGroups200Response.md +22 -0
  95. data/docs/ListAgentProposals200Response.md +20 -0
  96. data/docs/ListAgentRuns200Response.md +20 -0
  97. data/docs/ListAgents200Response.md +18 -0
  98. data/docs/ListApiActivity200Response.md +22 -0
  99. data/docs/ListApiKeys200Response.md +18 -0
  100. data/docs/ListCompetitors200Response.md +18 -0
  101. data/docs/ListHashtagGroups200Response.md +22 -0
  102. data/docs/ListInboxConversations200Response.md +22 -0
  103. data/docs/ListInboxReplyDrafts200Response.md +22 -0
  104. data/docs/ListRecyclingRules200Response.md +18 -0
  105. data/docs/ListRecyclingRuns200Response.md +18 -0
  106. data/docs/ListReportExports200Response.md +18 -0
  107. data/docs/ListResellerClients200Response.md +20 -0
  108. data/docs/ListRssFeeds200Response.md +18 -0
  109. data/docs/ListTemplates200Response.md +22 -0
  110. data/docs/ListWebhookSubscriptions200Response.md +18 -0
  111. data/docs/MediaApi.md +103 -13
  112. data/docs/MediaBase64Input.md +24 -0
  113. data/docs/MentionsApi.md +8 -4
  114. data/docs/MessageOnly.md +18 -0
  115. data/docs/PollRssFeed200Response.md +22 -0
  116. data/docs/PostContent.md +1 -1
  117. data/docs/PostInput.md +5 -1
  118. data/docs/PostOptionsInstagram.md +22 -0
  119. data/docs/PostOptionsTikTok.md +34 -0
  120. data/docs/PostOptionsYoutube.md +24 -0
  121. data/docs/PostVersion.md +2 -2
  122. data/docs/PostVersionOptions.md +24 -0
  123. data/docs/PostingSchedule.md +28 -0
  124. data/docs/PostingScheduleApi.md +377 -0
  125. data/docs/PostingScheduleDay.md +22 -0
  126. data/docs/PostingScheduleDayTimesInner.md +18 -0
  127. data/docs/PostingScheduleInput.md +24 -0
  128. data/docs/PostsApi.md +1132 -110
  129. data/docs/PreflightResult.md +26 -0
  130. data/docs/QueueSlots.md +20 -0
  131. data/docs/RecommendedPostingTimes.md +26 -0
  132. data/docs/ReconnectLink.md +22 -0
  133. data/docs/RecyclingRule.md +42 -0
  134. data/docs/RecyclingRuleInput.md +34 -0
  135. data/docs/RecyclingRuleSettings.md +28 -0
  136. data/docs/RecyclingRuleUpdate.md +28 -0
  137. data/docs/RecyclingRun.md +28 -0
  138. data/docs/ReportBranding.md +28 -0
  139. data/docs/ReportBrandingInput.md +24 -0
  140. data/docs/ReportExport.md +42 -0
  141. data/docs/ReportExportInput.md +28 -0
  142. data/docs/RepurposeContent200Response.md +20 -0
  143. data/docs/RepurposeInput.md +54 -0
  144. data/docs/RepurposeInputTheme.md +22 -0
  145. data/docs/RepurposeResult.md +32 -0
  146. data/docs/RepurposeResultMedia.md +20 -0
  147. data/docs/RepurposeResultSource.md +22 -0
  148. data/docs/RepurposeSlide.md +20 -0
  149. data/docs/ResellerClient.md +32 -0
  150. data/docs/ResellerClientInput.md +18 -0
  151. data/docs/ResellerClientUsage.md +20 -0
  152. data/docs/RssFeed.md +38 -0
  153. data/docs/RssFeedInput.md +30 -0
  154. data/docs/RssFeedUpdate.md +30 -0
  155. data/docs/RunAgent202Response.md +18 -0
  156. data/docs/TagsApi.md +8 -4
  157. data/docs/Template.md +22 -0
  158. data/docs/TemplateContentItem.md +20 -0
  159. data/docs/TemplateInput.md +20 -0
  160. data/docs/TemplateInputContentInner.md +20 -0
  161. data/docs/TemplatesApi.md +372 -0
  162. data/docs/WebhookEventName.md +15 -0
  163. data/docs/WebhookEventPayload.md +20 -0
  164. data/docs/WebhookSubscription.md +28 -0
  165. data/docs/WebhookSubscriptionInput.md +24 -0
  166. data/docs/WebhooksApi.md +221 -0
  167. data/docs/WorkspaceAgent.md +34 -0
  168. data/docs/WorkspaceAgentInput.md +26 -0
  169. data/docs/WorkspaceAgentSettings.md +26 -0
  170. data/docs/WorkspaceAgentUpdate.md +24 -0
  171. data/docs/WorkspacesApi.md +426 -0
  172. data/docs/XUsage.md +28 -0
  173. data/docs/XUsageCounter.md +20 -0
  174. data/lib/postboost/api/account_groups_api.rb +395 -0
  175. data/lib/postboost/api/accounts_api.rb +219 -2
  176. data/lib/postboost/api/activity_api.rb +97 -0
  177. data/lib/postboost/api/agents_api.rb +771 -0
  178. data/lib/postboost/api/ai_api.rb +420 -2
  179. data/lib/postboost/api/analytics_api.rb +487 -2
  180. data/lib/postboost/api/competitors_api.rb +300 -0
  181. data/lib/postboost/api/hashtag_groups_api.rb +395 -0
  182. data/lib/postboost/api/inbox_api.rb +789 -0
  183. data/lib/postboost/api/media_api.rb +133 -4
  184. data/lib/postboost/api/mentions_api.rb +13 -2
  185. data/lib/postboost/api/posting_schedule_api.rb +389 -0
  186. data/lib/postboost/api/posts_api.rb +1149 -96
  187. data/lib/postboost/api/receipts_api.rb +2 -2
  188. data/lib/postboost/api/subscriptions_api.rb +2 -2
  189. data/lib/postboost/api/tags_api.rb +13 -2
  190. data/lib/postboost/api/templates_api.rb +395 -0
  191. data/lib/postboost/api/users_api.rb +2 -2
  192. data/lib/postboost/api/webhooks_api.rb +228 -0
  193. data/lib/postboost/api/workspaces_api.rb +408 -2
  194. data/lib/postboost/api_client.rb +2 -2
  195. data/lib/postboost/api_error.rb +2 -2
  196. data/lib/postboost/configuration.rb +2 -2
  197. data/lib/postboost/models/account.rb +28 -4
  198. data/lib/postboost/models/account_analytics.rb +2 -2
  199. data/lib/postboost/models/account_analytics_initial_sync.rb +2 -2
  200. data/lib/postboost/models/account_connection_health.rb +389 -0
  201. data/lib/postboost/models/account_errors_inner.rb +105 -0
  202. data/lib/postboost/models/account_errors_inner_one_of.rb +243 -0
  203. data/lib/postboost/models/account_group.rb +271 -0
  204. data/lib/postboost/models/account_group_input.rb +252 -0
  205. data/lib/postboost/models/account_health.rb +352 -0
  206. data/lib/postboost/models/account_health_daily_cap.rb +239 -0
  207. data/lib/postboost/models/account_schedule.rb +2 -2
  208. data/lib/postboost/models/add_competitor202_response.rb +271 -0
  209. data/lib/postboost/models/add_competitor409_response.rb +223 -0
  210. data/lib/postboost/models/add_generic_subscription_request.rb +2 -2
  211. data/lib/postboost/models/add_post_to_queue_request.rb +2 -2
  212. data/lib/postboost/models/agent_page_meta.rb +269 -0
  213. data/lib/postboost/models/agent_proposal.rb +444 -0
  214. data/lib/postboost/models/agent_proposal_decision.rb +233 -0
  215. data/lib/postboost/models/agent_run.rb +434 -0
  216. data/lib/postboost/models/ai_credits.rb +2 -2
  217. data/lib/postboost/models/ai_usage.rb +237 -0
  218. data/lib/postboost/models/ai_usage_text.rb +252 -0
  219. data/lib/postboost/models/analytics_period.rb +2 -2
  220. data/lib/postboost/models/analytics_summary.rb +2 -2
  221. data/lib/postboost/models/analytics_summary_data.rb +2 -2
  222. data/lib/postboost/models/api_activity.rb +359 -0
  223. data/lib/postboost/models/api_activity_outcome.rb +49 -0
  224. data/lib/postboost/models/api_key.rb +308 -0
  225. data/lib/postboost/models/api_key_ability.rb +43 -0
  226. data/lib/postboost/models/api_key_input.rb +316 -0
  227. data/lib/postboost/models/approve_agent_proposal200_response.rb +221 -0
  228. data/lib/postboost/models/approve_agent_proposal409_response.rb +237 -0
  229. data/lib/postboost/models/approve_inbox_reply_draft403_response.rb +264 -0
  230. data/lib/postboost/models/approve_post_request.rb +2 -2
  231. data/lib/postboost/models/best_posting_times.rb +2 -2
  232. data/lib/postboost/models/best_posting_times_times_inner.rb +2 -2
  233. data/lib/postboost/models/blog_to_social200_response.rb +15 -6
  234. data/lib/postboost/models/blog_to_social429_response.rb +2 -2
  235. data/lib/postboost/models/blog_to_social_caption.rb +2 -2
  236. data/lib/postboost/models/blog_to_social_input.rb +18 -6
  237. data/lib/postboost/models/blog_to_social_media.rb +2 -2
  238. data/lib/postboost/models/blog_to_social_response.rb +2 -2
  239. data/lib/postboost/models/brand_voice.rb +531 -0
  240. data/lib/postboost/models/brand_voice_input.rb +646 -0
  241. data/lib/postboost/models/brand_voice_meta.rb +222 -0
  242. data/lib/postboost/models/cancel_subscription422_response.rb +2 -2
  243. data/lib/postboost/models/cancel_subscription422_response_errors.rb +2 -2
  244. data/lib/postboost/models/cancel_subscription_request.rb +2 -2
  245. data/lib/postboost/models/change_subscription_plan_request.rb +2 -2
  246. data/lib/postboost/models/channel_account.rb +380 -0
  247. data/lib/postboost/models/checkout_subscription200_response.rb +2 -2
  248. data/lib/postboost/models/checkout_subscription_request.rb +2 -2
  249. data/lib/postboost/models/coded_error.rb +242 -0
  250. data/lib/postboost/models/competitor.rb +320 -0
  251. data/lib/postboost/models/competitor_detail.rb +358 -0
  252. data/lib/postboost/models/competitor_input.rb +258 -0
  253. data/lib/postboost/models/competitor_media.rb +263 -0
  254. data/lib/postboost/models/competitor_snapshot.rb +234 -0
  255. data/lib/postboost/models/complete_chunked_upload_request.rb +2 -2
  256. data/lib/postboost/models/connect_channel_input.rb +265 -0
  257. data/lib/postboost/models/create_account_group201_response.rb +221 -0
  258. data/lib/postboost/models/create_agent201_response.rb +221 -0
  259. data/lib/postboost/models/create_api_key201_response.rb +221 -0
  260. data/lib/postboost/models/create_api_key201_response_data.rb +327 -0
  261. data/lib/postboost/models/create_hashtag_group201_response.rb +221 -0
  262. data/lib/postboost/models/create_inbox_reply_draft201_response.rb +221 -0
  263. data/lib/postboost/models/create_media_folder_request.rb +2 -2
  264. data/lib/postboost/models/create_mention201_response.rb +2 -2
  265. data/lib/postboost/models/create_recycling_rule201_response.rb +221 -0
  266. data/lib/postboost/models/create_report_export201_response.rb +221 -0
  267. data/lib/postboost/models/create_reseller_client201_response.rb +221 -0
  268. data/lib/postboost/models/create_rss_feed201_response.rb +221 -0
  269. data/lib/postboost/models/create_template201_response.rb +221 -0
  270. data/lib/postboost/models/create_webhook_subscription201_response.rb +221 -0
  271. data/lib/postboost/models/create_webhook_subscription201_response_data.rb +320 -0
  272. data/lib/postboost/models/delete_agent200_response.rb +221 -0
  273. data/lib/postboost/models/delete_media_bulk_request.rb +2 -2
  274. data/lib/postboost/models/delete_media_bulk_request_items_inner.rb +2 -2
  275. data/lib/postboost/models/delete_media_folder_request.rb +2 -2
  276. data/lib/postboost/models/delete_mode.rb +2 -2
  277. data/lib/postboost/models/delete_post_request.rb +2 -2
  278. data/lib/postboost/models/delete_posts_bulk_request.rb +2 -2
  279. data/lib/postboost/models/delete_receipts_bulk_request.rb +2 -2
  280. data/lib/postboost/models/delete_result.rb +2 -2
  281. data/lib/postboost/models/delete_user400_response.rb +2 -2
  282. data/lib/postboost/models/delete_users_bulk_request.rb +2 -2
  283. data/lib/postboost/models/delete_workspaces_bulk_request.rb +2 -2
  284. data/lib/postboost/models/get_account_health200_response.rb +223 -0
  285. data/lib/postboost/models/get_brand_voice200_response.rb +217 -0
  286. data/lib/postboost/models/get_competitor200_response.rb +221 -0
  287. data/lib/postboost/models/get_inbox_conversation200_response.rb +221 -0
  288. data/lib/postboost/models/get_posting_schedule200_response.rb +221 -0
  289. data/lib/postboost/models/get_remote_upload_status200_response.rb +2 -2
  290. data/lib/postboost/models/get_report_branding200_response.rb +221 -0
  291. data/lib/postboost/models/guardrail_error.rb +304 -0
  292. data/lib/postboost/models/hashtag_group.rb +254 -0
  293. data/lib/postboost/models/hashtag_group_input.rb +275 -0
  294. data/lib/postboost/models/image_alt_text200_response.rb +2 -2
  295. data/lib/postboost/models/image_alt_text_input.rb +2 -2
  296. data/lib/postboost/models/image_alt_text_response.rb +2 -2
  297. data/lib/postboost/models/image_credit_balance.rb +295 -0
  298. data/lib/postboost/models/image_edit_input.rb +15 -3
  299. data/lib/postboost/models/image_generate200_response.rb +15 -6
  300. data/lib/postboost/models/image_generate429_response.rb +2 -2
  301. data/lib/postboost/models/image_generate_input.rb +35 -3
  302. data/lib/postboost/models/image_generation_response.rb +2 -2
  303. data/lib/postboost/models/image_prompt200_response.rb +15 -6
  304. data/lib/postboost/models/image_prompt429_response.rb +2 -2
  305. data/lib/postboost/models/image_prompt_input.rb +35 -3
  306. data/lib/postboost/models/image_prompt_response.rb +2 -2
  307. data/lib/postboost/models/image_variations200_response.rb +2 -2
  308. data/lib/postboost/models/image_variations_input.rb +2 -2
  309. data/lib/postboost/models/image_variations_response.rb +2 -2
  310. data/lib/postboost/models/inbox_author.rb +235 -0
  311. data/lib/postboost/models/inbox_conversation.rb +425 -0
  312. data/lib/postboost/models/inbox_conversation_account.rb +241 -0
  313. data/lib/postboost/models/inbox_conversation_update.rb +257 -0
  314. data/lib/postboost/models/inbox_message.rb +360 -0
  315. data/lib/postboost/models/inbox_message_author.rb +235 -0
  316. data/lib/postboost/models/inbox_reply_draft.rb +410 -0
  317. data/lib/postboost/models/inbox_reply_draft_approve.rb +215 -0
  318. data/lib/postboost/models/inbox_reply_draft_edit.rb +221 -0
  319. data/lib/postboost/models/inbox_reply_draft_input.rb +232 -0
  320. data/lib/postboost/models/initiate_chunked_upload201_response.rb +2 -2
  321. data/lib/postboost/models/initiate_chunked_upload_request.rb +2 -2
  322. data/lib/postboost/models/initiate_remote_upload201_response.rb +2 -2
  323. data/lib/postboost/models/initiate_remote_upload201_response_one_of.rb +2 -2
  324. data/lib/postboost/models/initiate_remote_upload_request.rb +2 -2
  325. data/lib/postboost/models/learn_brand_voice_input.rb +300 -0
  326. data/lib/postboost/models/learn_brand_voice_response.rb +237 -0
  327. data/lib/postboost/models/learn_brand_voice_response_meta.rb +281 -0
  328. data/lib/postboost/models/list_account_groups200_response.rb +248 -0
  329. data/lib/postboost/models/list_accounts200_response.rb +2 -2
  330. data/lib/postboost/models/list_agent_proposals200_response.rb +239 -0
  331. data/lib/postboost/models/list_agent_runs200_response.rb +239 -0
  332. data/lib/postboost/models/list_agents200_response.rb +223 -0
  333. data/lib/postboost/models/list_api_activity200_response.rb +241 -0
  334. data/lib/postboost/models/list_api_keys200_response.rb +223 -0
  335. data/lib/postboost/models/list_competitors200_response.rb +223 -0
  336. data/lib/postboost/models/list_hashtag_groups200_response.rb +248 -0
  337. data/lib/postboost/models/list_inbox_conversations200_response.rb +241 -0
  338. data/lib/postboost/models/list_inbox_reply_drafts200_response.rb +241 -0
  339. data/lib/postboost/models/list_media200_response.rb +2 -2
  340. data/lib/postboost/models/list_media_folders200_response.rb +2 -2
  341. data/lib/postboost/models/list_mentions200_response.rb +2 -2
  342. data/lib/postboost/models/list_my_workspaces200_response.rb +2 -2
  343. data/lib/postboost/models/list_posts200_response.rb +2 -2
  344. data/lib/postboost/models/list_receipts200_response.rb +2 -2
  345. data/lib/postboost/models/list_recycling_rules200_response.rb +223 -0
  346. data/lib/postboost/models/list_recycling_runs200_response.rb +223 -0
  347. data/lib/postboost/models/list_report_exports200_response.rb +223 -0
  348. data/lib/postboost/models/list_reseller_clients200_response.rb +239 -0
  349. data/lib/postboost/models/list_rss_feeds200_response.rb +223 -0
  350. data/lib/postboost/models/list_tags200_response.rb +2 -2
  351. data/lib/postboost/models/list_templates200_response.rb +248 -0
  352. data/lib/postboost/models/list_users200_response.rb +2 -2
  353. data/lib/postboost/models/list_webhook_subscriptions200_response.rb +223 -0
  354. data/lib/postboost/models/list_workspaces200_response.rb +2 -2
  355. data/lib/postboost/models/media.rb +2 -2
  356. data/lib/postboost/models/media_base64_input.rb +295 -0
  357. data/lib/postboost/models/media_folder.rb +2 -2
  358. data/lib/postboost/models/media_folder_input.rb +2 -2
  359. data/lib/postboost/models/media_folder_ref.rb +2 -2
  360. data/lib/postboost/models/mention.rb +2 -2
  361. data/lib/postboost/models/mention_identity.rb +2 -2
  362. data/lib/postboost/models/mention_identity_input.rb +2 -2
  363. data/lib/postboost/models/mention_input.rb +2 -2
  364. data/lib/postboost/models/message_only.rb +221 -0
  365. data/lib/postboost/models/pagination_meta.rb +2 -2
  366. data/lib/postboost/models/pagination_meta_links.rb +4 -2
  367. data/lib/postboost/models/pagination_meta_meta.rb +4 -2
  368. data/lib/postboost/models/poll_rss_feed200_response.rb +255 -0
  369. data/lib/postboost/models/post.rb +2 -2
  370. data/lib/postboost/models/post_analytics.rb +2 -2
  371. data/lib/postboost/models/post_content.rb +4 -3
  372. data/lib/postboost/models/post_input.rb +28 -6
  373. data/lib/postboost/models/post_options_instagram.rb +294 -0
  374. data/lib/postboost/models/post_options_tik_tok.rb +329 -0
  375. data/lib/postboost/models/post_options_youtube.rb +302 -0
  376. data/lib/postboost/models/post_status.rb +2 -2
  377. data/lib/postboost/models/post_version.rb +23 -4
  378. data/lib/postboost/models/post_version_options.rb +242 -0
  379. data/lib/postboost/models/posting_schedule.rb +303 -0
  380. data/lib/postboost/models/posting_schedule_day.rb +285 -0
  381. data/lib/postboost/models/posting_schedule_day_times_inner.rb +222 -0
  382. data/lib/postboost/models/posting_schedule_input.rb +312 -0
  383. data/lib/postboost/models/posting_time_slot.rb +2 -2
  384. data/lib/postboost/models/posting_times.rb +2 -2
  385. data/lib/postboost/models/posting_times_best_inner.rb +2 -2
  386. data/lib/postboost/models/posting_times_day_intervals_inner_inner.rb +2 -2
  387. data/lib/postboost/models/posting_times_days_inner.rb +2 -2
  388. data/lib/postboost/models/preflight_result.rb +291 -0
  389. data/lib/postboost/models/public_workspace.rb +2 -2
  390. data/lib/postboost/models/public_workspace_pivot.rb +2 -2
  391. data/lib/postboost/models/publish_progress.rb +2 -2
  392. data/lib/postboost/models/queue_slots.rb +237 -0
  393. data/lib/postboost/models/receipt.rb +2 -2
  394. data/lib/postboost/models/receipt_input.rb +2 -2
  395. data/lib/postboost/models/receipt_update_input.rb +2 -2
  396. data/lib/postboost/models/recommended_posting_times.rb +282 -0
  397. data/lib/postboost/models/reconnect_link.rb +254 -0
  398. data/lib/postboost/models/recycling_rule.rb +434 -0
  399. data/lib/postboost/models/recycling_rule_input.rb +435 -0
  400. data/lib/postboost/models/recycling_rule_settings.rb +381 -0
  401. data/lib/postboost/models/recycling_rule_update.rb +366 -0
  402. data/lib/postboost/models/recycling_run.rb +320 -0
  403. data/lib/postboost/models/remove_generic_subscription422_response.rb +2 -2
  404. data/lib/postboost/models/remove_user_from_workspace_request.rb +2 -2
  405. data/lib/postboost/models/report_branding.rb +285 -0
  406. data/lib/postboost/models/report_branding_input.rb +293 -0
  407. data/lib/postboost/models/report_export.rb +442 -0
  408. data/lib/postboost/models/report_export_input.rb +350 -0
  409. data/lib/postboost/models/repurpose_content200_response.rb +237 -0
  410. data/lib/postboost/models/repurpose_input.rb +667 -0
  411. data/lib/postboost/models/repurpose_input_theme.rb +296 -0
  412. data/lib/postboost/models/repurpose_result.rb +328 -0
  413. data/lib/postboost/models/repurpose_result_media.rb +224 -0
  414. data/lib/postboost/models/repurpose_result_source.rb +283 -0
  415. data/lib/postboost/models/repurpose_slide.rb +239 -0
  416. data/lib/postboost/models/reseller_client.rb +360 -0
  417. data/lib/postboost/models/reseller_client_input.rb +240 -0
  418. data/lib/postboost/models/reseller_client_usage.rb +239 -0
  419. data/lib/postboost/models/retry_post_account_result.rb +2 -2
  420. data/lib/postboost/models/rss_feed.rb +402 -0
  421. data/lib/postboost/models/rss_feed_input.rb +433 -0
  422. data/lib/postboost/models/rss_feed_update.rb +396 -0
  423. data/lib/postboost/models/run_agent202_response.rb +221 -0
  424. data/lib/postboost/models/schedule_post_request.rb +2 -2
  425. data/lib/postboost/models/schedule_result.rb +2 -2
  426. data/lib/postboost/models/subscription.rb +2 -2
  427. data/lib/postboost/models/subscription_input.rb +2 -2
  428. data/lib/postboost/models/subscription_status.rb +2 -2
  429. data/lib/postboost/models/subscription_update_input.rb +2 -2
  430. data/lib/postboost/models/tag.rb +2 -2
  431. data/lib/postboost/models/tag_input.rb +2 -2
  432. data/lib/postboost/models/template.rb +256 -0
  433. data/lib/postboost/models/template_content_item.rb +240 -0
  434. data/lib/postboost/models/template_input.rb +271 -0
  435. data/lib/postboost/models/template_input_content_inner.rb +227 -0
  436. data/lib/postboost/models/update_media_request.rb +2 -2
  437. data/lib/postboost/models/upload_chunk201_response.rb +2 -2
  438. data/lib/postboost/models/user.rb +2 -2
  439. data/lib/postboost/models/user_input.rb +2 -2
  440. data/lib/postboost/models/user_update_input.rb +2 -2
  441. data/lib/postboost/models/webhook_event_name.rb +50 -0
  442. data/lib/postboost/models/webhook_event_payload.rb +262 -0
  443. data/lib/postboost/models/webhook_subscription.rb +297 -0
  444. data/lib/postboost/models/webhook_subscription_input.rb +349 -0
  445. data/lib/postboost/models/workspace.rb +2 -2
  446. data/lib/postboost/models/workspace_agent.rb +381 -0
  447. data/lib/postboost/models/workspace_agent_input.rb +326 -0
  448. data/lib/postboost/models/workspace_agent_settings.rb +340 -0
  449. data/lib/postboost/models/workspace_agent_update.rb +294 -0
  450. data/lib/postboost/models/workspace_input.rb +2 -2
  451. data/lib/postboost/models/workspace_user_input.rb +2 -2
  452. data/lib/postboost/models/x_usage.rb +303 -0
  453. data/lib/postboost/models/x_usage_counter.rb +234 -0
  454. data/lib/postboost/version.rb +3 -3
  455. data/lib/postboost.rb +151 -2
  456. data/postboost.gemspec +3 -3
  457. data/spec/api/account_groups_api_spec.rb +102 -0
  458. data/spec/api/accounts_api_spec.rb +41 -2
  459. data/spec/api/activity_api_spec.rb +51 -0
  460. data/spec/api/agents_api_spec.rb +170 -0
  461. data/spec/api/ai_api_spec.rb +78 -2
  462. data/spec/api/analytics_api_spec.rb +90 -2
  463. data/spec/api/competitors_api_spec.rb +87 -0
  464. data/spec/api/hashtag_groups_api_spec.rb +102 -0
  465. data/spec/api/inbox_api_spec.rb +178 -0
  466. data/spec/api/media_api_spec.rb +21 -3
  467. data/spec/api/mentions_api_spec.rb +3 -2
  468. data/spec/api/posting_schedule_api_spec.rb +102 -0
  469. data/spec/api/posts_api_spec.rb +189 -3
  470. data/spec/api/receipts_api_spec.rb +2 -2
  471. data/spec/api/subscriptions_api_spec.rb +2 -2
  472. data/spec/api/tags_api_spec.rb +3 -2
  473. data/spec/api/templates_api_spec.rb +102 -0
  474. data/spec/api/users_api_spec.rb +2 -2
  475. data/spec/api/webhooks_api_spec.rb +73 -0
  476. data/spec/api/workspaces_api_spec.rb +77 -2
  477. data/spec/models/account_analytics_initial_sync_spec.rb +2 -2
  478. data/spec/models/account_analytics_spec.rb +2 -2
  479. data/spec/models/account_connection_health_spec.rb +92 -0
  480. data/spec/models/account_errors_inner_one_of_spec.rb +54 -0
  481. data/spec/models/account_errors_inner_spec.rb +32 -0
  482. data/spec/models/account_group_input_spec.rb +42 -0
  483. data/spec/models/account_group_spec.rb +54 -0
  484. data/spec/models/account_health_daily_cap_spec.rb +42 -0
  485. data/spec/models/account_health_spec.rb +84 -0
  486. data/spec/models/account_schedule_spec.rb +2 -2
  487. data/spec/models/account_spec.rb +14 -2
  488. data/spec/models/add_competitor202_response_spec.rb +46 -0
  489. data/spec/models/add_competitor409_response_spec.rb +42 -0
  490. data/spec/models/add_generic_subscription_request_spec.rb +2 -2
  491. data/spec/models/add_post_to_queue_request_spec.rb +2 -2
  492. data/spec/models/agent_page_meta_spec.rb +54 -0
  493. data/spec/models/agent_proposal_decision_spec.rb +36 -0
  494. data/spec/models/agent_proposal_spec.rb +126 -0
  495. data/spec/models/agent_run_spec.rb +122 -0
  496. data/spec/models/ai_credits_spec.rb +2 -2
  497. data/spec/models/ai_usage_spec.rb +42 -0
  498. data/spec/models/ai_usage_text_spec.rb +54 -0
  499. data/spec/models/analytics_period_spec.rb +2 -2
  500. data/spec/models/analytics_summary_data_spec.rb +2 -2
  501. data/spec/models/analytics_summary_spec.rb +2 -2
  502. data/spec/models/api_activity_outcome_spec.rb +30 -0
  503. data/spec/models/api_activity_spec.rb +90 -0
  504. data/spec/models/api_key_ability_spec.rb +30 -0
  505. data/spec/models/api_key_input_spec.rb +54 -0
  506. data/spec/models/api_key_spec.rb +78 -0
  507. data/spec/models/approve_agent_proposal200_response_spec.rb +36 -0
  508. data/spec/models/approve_agent_proposal409_response_spec.rb +42 -0
  509. data/spec/models/approve_inbox_reply_draft403_response_spec.rb +46 -0
  510. data/spec/models/approve_post_request_spec.rb +2 -2
  511. data/spec/models/best_posting_times_spec.rb +2 -2
  512. data/spec/models/best_posting_times_times_inner_spec.rb +2 -2
  513. data/spec/models/blog_to_social200_response_spec.rb +8 -2
  514. data/spec/models/blog_to_social429_response_spec.rb +2 -2
  515. data/spec/models/blog_to_social_caption_spec.rb +2 -2
  516. data/spec/models/blog_to_social_input_spec.rb +8 -2
  517. data/spec/models/blog_to_social_media_spec.rb +2 -2
  518. data/spec/models/blog_to_social_response_spec.rb +2 -2
  519. data/spec/models/brand_voice_input_spec.rb +128 -0
  520. data/spec/models/brand_voice_meta_spec.rb +36 -0
  521. data/spec/models/brand_voice_spec.rb +134 -0
  522. data/spec/models/cancel_subscription422_response_errors_spec.rb +2 -2
  523. data/spec/models/cancel_subscription422_response_spec.rb +2 -2
  524. data/spec/models/cancel_subscription_request_spec.rb +2 -2
  525. data/spec/models/change_subscription_plan_request_spec.rb +2 -2
  526. data/spec/models/channel_account_spec.rb +94 -0
  527. data/spec/models/checkout_subscription200_response_spec.rb +2 -2
  528. data/spec/models/checkout_subscription_request_spec.rb +2 -2
  529. data/spec/models/coded_error_spec.rb +48 -0
  530. data/spec/models/competitor_detail_spec.rb +96 -0
  531. data/spec/models/competitor_input_spec.rb +42 -0
  532. data/spec/models/competitor_media_spec.rb +66 -0
  533. data/spec/models/competitor_snapshot_spec.rb +48 -0
  534. data/spec/models/competitor_spec.rb +84 -0
  535. data/spec/models/complete_chunked_upload_request_spec.rb +2 -2
  536. data/spec/models/connect_channel_input_spec.rb +54 -0
  537. data/spec/models/create_account_group201_response_spec.rb +36 -0
  538. data/spec/models/create_agent201_response_spec.rb +36 -0
  539. data/spec/models/create_api_key201_response_data_spec.rb +84 -0
  540. data/spec/models/create_api_key201_response_spec.rb +36 -0
  541. data/spec/models/create_hashtag_group201_response_spec.rb +36 -0
  542. data/spec/models/create_inbox_reply_draft201_response_spec.rb +36 -0
  543. data/spec/models/create_media_folder_request_spec.rb +2 -2
  544. data/spec/models/create_mention201_response_spec.rb +2 -2
  545. data/spec/models/create_recycling_rule201_response_spec.rb +36 -0
  546. data/spec/models/create_report_export201_response_spec.rb +36 -0
  547. data/spec/models/create_reseller_client201_response_spec.rb +36 -0
  548. data/spec/models/create_rss_feed201_response_spec.rb +36 -0
  549. data/spec/models/create_template201_response_spec.rb +36 -0
  550. data/spec/models/create_webhook_subscription201_response_data_spec.rb +72 -0
  551. data/spec/models/create_webhook_subscription201_response_spec.rb +36 -0
  552. data/spec/models/delete_agent200_response_spec.rb +36 -0
  553. data/spec/models/delete_media_bulk_request_items_inner_spec.rb +2 -2
  554. data/spec/models/delete_media_bulk_request_spec.rb +2 -2
  555. data/spec/models/delete_media_folder_request_spec.rb +2 -2
  556. data/spec/models/delete_mode_spec.rb +2 -2
  557. data/spec/models/delete_post_request_spec.rb +2 -2
  558. data/spec/models/delete_posts_bulk_request_spec.rb +2 -2
  559. data/spec/models/delete_receipts_bulk_request_spec.rb +2 -2
  560. data/spec/models/delete_result_spec.rb +2 -2
  561. data/spec/models/delete_user400_response_spec.rb +2 -2
  562. data/spec/models/delete_users_bulk_request_spec.rb +2 -2
  563. data/spec/models/delete_workspaces_bulk_request_spec.rb +2 -2
  564. data/spec/models/get_account_health200_response_spec.rb +36 -0
  565. data/spec/models/get_brand_voice200_response_spec.rb +36 -0
  566. data/spec/models/get_competitor200_response_spec.rb +36 -0
  567. data/spec/models/get_inbox_conversation200_response_spec.rb +36 -0
  568. data/spec/models/get_posting_schedule200_response_spec.rb +36 -0
  569. data/spec/models/get_remote_upload_status200_response_spec.rb +2 -2
  570. data/spec/models/get_report_branding200_response_spec.rb +36 -0
  571. data/spec/models/guardrail_error_spec.rb +70 -0
  572. data/spec/models/hashtag_group_input_spec.rb +42 -0
  573. data/spec/models/hashtag_group_spec.rb +48 -0
  574. data/spec/models/image_alt_text200_response_spec.rb +2 -2
  575. data/spec/models/image_alt_text_input_spec.rb +2 -2
  576. data/spec/models/image_alt_text_response_spec.rb +2 -2
  577. data/spec/models/image_credit_balance_spec.rb +66 -0
  578. data/spec/models/image_edit_input_spec.rb +8 -2
  579. data/spec/models/image_generate200_response_spec.rb +8 -2
  580. data/spec/models/image_generate429_response_spec.rb +2 -2
  581. data/spec/models/image_generate_input_spec.rb +8 -2
  582. data/spec/models/image_generation_response_spec.rb +2 -2
  583. data/spec/models/image_prompt200_response_spec.rb +8 -2
  584. data/spec/models/image_prompt429_response_spec.rb +2 -2
  585. data/spec/models/image_prompt_input_spec.rb +8 -2
  586. data/spec/models/image_prompt_response_spec.rb +2 -2
  587. data/spec/models/image_variations200_response_spec.rb +2 -2
  588. data/spec/models/image_variations_input_spec.rb +2 -2
  589. data/spec/models/image_variations_response_spec.rb +2 -2
  590. data/spec/models/inbox_author_spec.rb +48 -0
  591. data/spec/models/inbox_conversation_account_spec.rb +54 -0
  592. data/spec/models/inbox_conversation_spec.rb +128 -0
  593. data/spec/models/inbox_conversation_update_spec.rb +46 -0
  594. data/spec/models/inbox_message_author_spec.rb +48 -0
  595. data/spec/models/inbox_message_spec.rb +90 -0
  596. data/spec/models/inbox_reply_draft_approve_spec.rb +36 -0
  597. data/spec/models/inbox_reply_draft_edit_spec.rb +36 -0
  598. data/spec/models/inbox_reply_draft_input_spec.rb +42 -0
  599. data/spec/models/inbox_reply_draft_spec.rb +116 -0
  600. data/spec/models/initiate_chunked_upload201_response_spec.rb +2 -2
  601. data/spec/models/initiate_chunked_upload_request_spec.rb +2 -2
  602. data/spec/models/initiate_remote_upload201_response_one_of_spec.rb +2 -2
  603. data/spec/models/initiate_remote_upload201_response_spec.rb +2 -2
  604. data/spec/models/initiate_remote_upload_request_spec.rb +2 -2
  605. data/spec/models/learn_brand_voice_input_spec.rb +54 -0
  606. data/spec/models/learn_brand_voice_response_meta_spec.rb +60 -0
  607. data/spec/models/learn_brand_voice_response_spec.rb +42 -0
  608. data/spec/models/list_account_groups200_response_spec.rb +48 -0
  609. data/spec/models/list_accounts200_response_spec.rb +2 -2
  610. data/spec/models/list_agent_proposals200_response_spec.rb +42 -0
  611. data/spec/models/list_agent_runs200_response_spec.rb +42 -0
  612. data/spec/models/list_agents200_response_spec.rb +36 -0
  613. data/spec/models/list_api_activity200_response_spec.rb +48 -0
  614. data/spec/models/list_api_keys200_response_spec.rb +36 -0
  615. data/spec/models/list_competitors200_response_spec.rb +36 -0
  616. data/spec/models/list_hashtag_groups200_response_spec.rb +48 -0
  617. data/spec/models/list_inbox_conversations200_response_spec.rb +48 -0
  618. data/spec/models/list_inbox_reply_drafts200_response_spec.rb +48 -0
  619. data/spec/models/list_media200_response_spec.rb +2 -2
  620. data/spec/models/list_media_folders200_response_spec.rb +2 -2
  621. data/spec/models/list_mentions200_response_spec.rb +2 -2
  622. data/spec/models/list_my_workspaces200_response_spec.rb +2 -2
  623. data/spec/models/list_posts200_response_spec.rb +2 -2
  624. data/spec/models/list_receipts200_response_spec.rb +2 -2
  625. data/spec/models/list_recycling_rules200_response_spec.rb +36 -0
  626. data/spec/models/list_recycling_runs200_response_spec.rb +36 -0
  627. data/spec/models/list_report_exports200_response_spec.rb +36 -0
  628. data/spec/models/list_reseller_clients200_response_spec.rb +42 -0
  629. data/spec/models/list_rss_feeds200_response_spec.rb +36 -0
  630. data/spec/models/list_tags200_response_spec.rb +2 -2
  631. data/spec/models/list_templates200_response_spec.rb +48 -0
  632. data/spec/models/list_users200_response_spec.rb +2 -2
  633. data/spec/models/list_webhook_subscriptions200_response_spec.rb +36 -0
  634. data/spec/models/list_workspaces200_response_spec.rb +2 -2
  635. data/spec/models/media_base64_input_spec.rb +54 -0
  636. data/spec/models/media_folder_input_spec.rb +2 -2
  637. data/spec/models/media_folder_ref_spec.rb +2 -2
  638. data/spec/models/media_folder_spec.rb +2 -2
  639. data/spec/models/media_spec.rb +2 -2
  640. data/spec/models/mention_identity_input_spec.rb +2 -2
  641. data/spec/models/mention_identity_spec.rb +2 -2
  642. data/spec/models/mention_input_spec.rb +2 -2
  643. data/spec/models/mention_spec.rb +2 -2
  644. data/spec/models/message_only_spec.rb +36 -0
  645. data/spec/models/pagination_meta_links_spec.rb +2 -2
  646. data/spec/models/pagination_meta_meta_spec.rb +2 -2
  647. data/spec/models/pagination_meta_spec.rb +2 -2
  648. data/spec/models/poll_rss_feed200_response_spec.rb +48 -0
  649. data/spec/models/post_analytics_spec.rb +2 -2
  650. data/spec/models/post_content_spec.rb +2 -2
  651. data/spec/models/post_input_spec.rb +14 -2
  652. data/spec/models/post_options_instagram_spec.rb +52 -0
  653. data/spec/models/post_options_tik_tok_spec.rb +88 -0
  654. data/spec/models/post_options_youtube_spec.rb +58 -0
  655. data/spec/models/post_spec.rb +2 -2
  656. data/spec/models/post_status_spec.rb +2 -2
  657. data/spec/models/post_version_options_spec.rb +54 -0
  658. data/spec/models/post_version_spec.rb +2 -2
  659. data/spec/models/posting_schedule_day_spec.rb +48 -0
  660. data/spec/models/posting_schedule_day_times_inner_spec.rb +36 -0
  661. data/spec/models/posting_schedule_input_spec.rb +54 -0
  662. data/spec/models/posting_schedule_spec.rb +66 -0
  663. data/spec/models/posting_time_slot_spec.rb +2 -2
  664. data/spec/models/posting_times_best_inner_spec.rb +2 -2
  665. data/spec/models/posting_times_day_intervals_inner_inner_spec.rb +2 -2
  666. data/spec/models/posting_times_days_inner_spec.rb +2 -2
  667. data/spec/models/posting_times_spec.rb +2 -2
  668. data/spec/models/preflight_result_spec.rb +60 -0
  669. data/spec/models/public_workspace_pivot_spec.rb +2 -2
  670. data/spec/models/public_workspace_spec.rb +2 -2
  671. data/spec/models/publish_progress_spec.rb +2 -2
  672. data/spec/models/queue_slots_spec.rb +42 -0
  673. data/spec/models/receipt_input_spec.rb +2 -2
  674. data/spec/models/receipt_spec.rb +2 -2
  675. data/spec/models/receipt_update_input_spec.rb +2 -2
  676. data/spec/models/recommended_posting_times_spec.rb +60 -0
  677. data/spec/models/reconnect_link_spec.rb +48 -0
  678. data/spec/models/recycling_rule_input_spec.rb +92 -0
  679. data/spec/models/recycling_rule_settings_spec.rb +70 -0
  680. data/spec/models/recycling_rule_spec.rb +116 -0
  681. data/spec/models/recycling_rule_update_spec.rb +70 -0
  682. data/spec/models/recycling_run_spec.rb +70 -0
  683. data/spec/models/remove_generic_subscription422_response_spec.rb +2 -2
  684. data/spec/models/remove_user_from_workspace_request_spec.rb +2 -2
  685. data/spec/models/report_branding_input_spec.rb +54 -0
  686. data/spec/models/report_branding_spec.rb +66 -0
  687. data/spec/models/report_export_input_spec.rb +78 -0
  688. data/spec/models/report_export_spec.rb +120 -0
  689. data/spec/models/repurpose_content200_response_spec.rb +42 -0
  690. data/spec/models/repurpose_input_spec.rb +164 -0
  691. data/spec/models/repurpose_input_theme_spec.rb +48 -0
  692. data/spec/models/repurpose_result_media_spec.rb +42 -0
  693. data/spec/models/repurpose_result_source_spec.rb +52 -0
  694. data/spec/models/repurpose_result_spec.rb +78 -0
  695. data/spec/models/repurpose_slide_spec.rb +42 -0
  696. data/spec/models/reseller_client_input_spec.rb +36 -0
  697. data/spec/models/reseller_client_spec.rb +82 -0
  698. data/spec/models/reseller_client_usage_spec.rb +42 -0
  699. data/spec/models/retry_post_account_result_spec.rb +2 -2
  700. data/spec/models/rss_feed_input_spec.rb +76 -0
  701. data/spec/models/rss_feed_spec.rb +100 -0
  702. data/spec/models/rss_feed_update_spec.rb +76 -0
  703. data/spec/models/run_agent202_response_spec.rb +36 -0
  704. data/spec/models/schedule_post_request_spec.rb +2 -2
  705. data/spec/models/schedule_result_spec.rb +2 -2
  706. data/spec/models/subscription_input_spec.rb +2 -2
  707. data/spec/models/subscription_spec.rb +2 -2
  708. data/spec/models/subscription_status_spec.rb +2 -2
  709. data/spec/models/subscription_update_input_spec.rb +2 -2
  710. data/spec/models/tag_input_spec.rb +2 -2
  711. data/spec/models/tag_spec.rb +2 -2
  712. data/spec/models/template_content_item_spec.rb +42 -0
  713. data/spec/models/template_input_content_inner_spec.rb +42 -0
  714. data/spec/models/template_input_spec.rb +42 -0
  715. data/spec/models/template_spec.rb +48 -0
  716. data/spec/models/update_media_request_spec.rb +2 -2
  717. data/spec/models/upload_chunk201_response_spec.rb +2 -2
  718. data/spec/models/user_input_spec.rb +2 -2
  719. data/spec/models/user_spec.rb +2 -2
  720. data/spec/models/user_update_input_spec.rb +2 -2
  721. data/spec/models/webhook_event_name_spec.rb +30 -0
  722. data/spec/models/webhook_event_payload_spec.rb +42 -0
  723. data/spec/models/webhook_subscription_input_spec.rb +58 -0
  724. data/spec/models/webhook_subscription_spec.rb +66 -0
  725. data/spec/models/workspace_agent_input_spec.rb +68 -0
  726. data/spec/models/workspace_agent_settings_spec.rb +60 -0
  727. data/spec/models/workspace_agent_spec.rb +92 -0
  728. data/spec/models/workspace_agent_update_spec.rb +58 -0
  729. data/spec/models/workspace_input_spec.rb +2 -2
  730. data/spec/models/workspace_spec.rb +2 -2
  731. data/spec/models/workspace_user_input_spec.rb +2 -2
  732. data/spec/models/x_usage_counter_spec.rb +42 -0
  733. data/spec/models/x_usage_spec.rb +66 -0
  734. data/spec/spec_helper.rb +2 -2
  735. metadata +615 -4
@@ -0,0 +1,771 @@
1
+ =begin
2
+ #PostBoost API
3
+
4
+ #The PostBoost REST API lets you publish, schedule, and analyze social media posts across 12+ platforms from a single integration. No OAuth apps to maintain — PostBoost handles platform authorization for you. ## Base URL All workspace-scoped endpoints are prefixed with `/{workspaceUuid}`. Panel/admin endpoints are prefixed with `/panel`. ## Plan access Every workspace-scoped endpoint returns `403` when the workspace's plan does not include API access (capability `api`). ## Dates and times Post dates and times (`date`, `time`, `accounts_schedule`) are read in the request's `timezone` when one is given, otherwise in the workspace timezone. ## Idempotent requests Send an `Idempotency-Key` header (any unique string, for example a UUID) with a `POST`. Repeating the request with the same key within 24 hours returns the stored response with `Idempotent-Replayed: true` and creates nothing new. Reusing a key with a different body returns `422`; a request still in progress with the same key returns `409`. `5xx` and `429` responses are not stored, so they can be retried with the same key. ## Guardrails for automated clients Create and update requests are checked before anything is written: a post whose content matches one created for the same account in the last 24 hours returns `409` (`code: duplicate_post`, override with `allow_duplicate: true`), scheduling past an account's daily cap returns `429` (`code: account_daily_cap_reached`), and scheduling to an account that must be reconnected returns `422` (`code: account_unauthorized` or `account_token_missing`). Use `POST /{workspaceUuid}/posts/validate` for a dry run and `GET /{workspaceUuid}/activity` to review what API clients did. ## Authentication All requests require a Bearer token in the `Authorization` header. Generate tokens in your PostBoost dashboard under **Settings → Access Tokens**. ``` Authorization: Bearer YOUR_API_TOKEN ```
5
+
6
+ The version of the OpenAPI document: 1.14.0
7
+ Contact: hi@postboost.co
8
+ Generated by: https://openapi-generator.tech
9
+ Generator version: 7.9.0
10
+
11
+ =end
12
+
13
+ require 'cgi'
14
+
15
+ module PostBoost
16
+ class AgentsApi
17
+ attr_accessor :api_client
18
+
19
+ def initialize(api_client = ApiClient.default)
20
+ @api_client = api_client
21
+ end
22
+ # Approve and apply an agent proposal
23
+ # Applies the proposal at once: `hold_post` moves the post back to draft, `edit_caption` replaces the caption. When the post was edited, deleted or left the schedule since the proposal was made, nothing changes and the proposal becomes `stale`. Admins and members only.
24
+ # @param workspace_uuid [String] UUID of the workspace.
25
+ # @param proposal_uuid [String]
26
+ # @param [Hash] opts the optional parameters
27
+ # @option opts [AgentProposalDecision] :agent_proposal_decision
28
+ # @return [ApproveAgentProposal200Response]
29
+ def approve_agent_proposal(workspace_uuid, proposal_uuid, opts = {})
30
+ data, _status_code, _headers = approve_agent_proposal_with_http_info(workspace_uuid, proposal_uuid, opts)
31
+ data
32
+ end
33
+
34
+ # Approve and apply an agent proposal
35
+ # Applies the proposal at once: `hold_post` moves the post back to draft, `edit_caption` replaces the caption. When the post was edited, deleted or left the schedule since the proposal was made, nothing changes and the proposal becomes `stale`. Admins and members only.
36
+ # @param workspace_uuid [String] UUID of the workspace.
37
+ # @param proposal_uuid [String]
38
+ # @param [Hash] opts the optional parameters
39
+ # @option opts [AgentProposalDecision] :agent_proposal_decision
40
+ # @return [Array<(ApproveAgentProposal200Response, Integer, Hash)>] ApproveAgentProposal200Response data, response status code and response headers
41
+ def approve_agent_proposal_with_http_info(workspace_uuid, proposal_uuid, opts = {})
42
+ if @api_client.config.debugging
43
+ @api_client.config.logger.debug 'Calling API: AgentsApi.approve_agent_proposal ...'
44
+ end
45
+ # verify the required parameter 'workspace_uuid' is set
46
+ if @api_client.config.client_side_validation && workspace_uuid.nil?
47
+ fail ArgumentError, "Missing the required parameter 'workspace_uuid' when calling AgentsApi.approve_agent_proposal"
48
+ end
49
+ # verify the required parameter 'proposal_uuid' is set
50
+ if @api_client.config.client_side_validation && proposal_uuid.nil?
51
+ fail ArgumentError, "Missing the required parameter 'proposal_uuid' when calling AgentsApi.approve_agent_proposal"
52
+ end
53
+ # resource path
54
+ local_var_path = '/{workspaceUuid}/agent-proposals/{proposalUuid}/approve'.sub('{' + 'workspaceUuid' + '}', CGI.escape(workspace_uuid.to_s)).sub('{' + 'proposalUuid' + '}', CGI.escape(proposal_uuid.to_s))
55
+
56
+ # query parameters
57
+ query_params = opts[:query_params] || {}
58
+
59
+ # header parameters
60
+ header_params = opts[:header_params] || {}
61
+ # HTTP header 'Accept' (if needed)
62
+ header_params['Accept'] = @api_client.select_header_accept(['application/json']) unless header_params['Accept']
63
+ # HTTP header 'Content-Type'
64
+ content_type = @api_client.select_header_content_type(['application/json'])
65
+ if !content_type.nil?
66
+ header_params['Content-Type'] = content_type
67
+ end
68
+
69
+ # form parameters
70
+ form_params = opts[:form_params] || {}
71
+
72
+ # http body (model)
73
+ post_body = opts[:debug_body] || @api_client.object_to_http_body(opts[:'agent_proposal_decision'])
74
+
75
+ # return_type
76
+ return_type = opts[:debug_return_type] || 'ApproveAgentProposal200Response'
77
+
78
+ # auth_names
79
+ auth_names = opts[:debug_auth_names] || ['bearerAuth']
80
+
81
+ new_options = opts.merge(
82
+ :operation => :"AgentsApi.approve_agent_proposal",
83
+ :header_params => header_params,
84
+ :query_params => query_params,
85
+ :form_params => form_params,
86
+ :body => post_body,
87
+ :auth_names => auth_names,
88
+ :return_type => return_type
89
+ )
90
+
91
+ data, status_code, headers = @api_client.call_api(:POST, local_var_path, new_options)
92
+ if @api_client.config.debugging
93
+ @api_client.config.logger.debug "API called: AgentsApi#approve_agent_proposal\nData: #{data.inspect}\nStatus code: #{status_code}\nHeaders: #{headers}"
94
+ end
95
+ return data, status_code, headers
96
+ end
97
+
98
+ # Switch on a background agent
99
+ # Creates an agent (one per type per workspace). It first runs within five minutes, then on its `schedule`. **Pre-publish checker** looks at posts scheduled in the next `horizon_hours` and proposes holding (back to draft) posts that would fail: disconnected accounts, network requirements, daily caps, the X allowance and links that answer an error. It proposes caption edits that drop `banned_phrases`. With `ai_review: true` it also asks AI to review up to `max_ai_reviews_per_run` posts per run (one AI credit each). Admins and members only.
100
+ # @param workspace_uuid [String] UUID of the workspace.
101
+ # @param workspace_agent_input [WorkspaceAgentInput]
102
+ # @param [Hash] opts the optional parameters
103
+ # @return [CreateAgent201Response]
104
+ def create_agent(workspace_uuid, workspace_agent_input, opts = {})
105
+ data, _status_code, _headers = create_agent_with_http_info(workspace_uuid, workspace_agent_input, opts)
106
+ data
107
+ end
108
+
109
+ # Switch on a background agent
110
+ # Creates an agent (one per type per workspace). It first runs within five minutes, then on its &#x60;schedule&#x60;. **Pre-publish checker** looks at posts scheduled in the next &#x60;horizon_hours&#x60; and proposes holding (back to draft) posts that would fail: disconnected accounts, network requirements, daily caps, the X allowance and links that answer an error. It proposes caption edits that drop &#x60;banned_phrases&#x60;. With &#x60;ai_review: true&#x60; it also asks AI to review up to &#x60;max_ai_reviews_per_run&#x60; posts per run (one AI credit each). Admins and members only.
111
+ # @param workspace_uuid [String] UUID of the workspace.
112
+ # @param workspace_agent_input [WorkspaceAgentInput]
113
+ # @param [Hash] opts the optional parameters
114
+ # @return [Array<(CreateAgent201Response, Integer, Hash)>] CreateAgent201Response data, response status code and response headers
115
+ def create_agent_with_http_info(workspace_uuid, workspace_agent_input, opts = {})
116
+ if @api_client.config.debugging
117
+ @api_client.config.logger.debug 'Calling API: AgentsApi.create_agent ...'
118
+ end
119
+ # verify the required parameter 'workspace_uuid' is set
120
+ if @api_client.config.client_side_validation && workspace_uuid.nil?
121
+ fail ArgumentError, "Missing the required parameter 'workspace_uuid' when calling AgentsApi.create_agent"
122
+ end
123
+ # verify the required parameter 'workspace_agent_input' is set
124
+ if @api_client.config.client_side_validation && workspace_agent_input.nil?
125
+ fail ArgumentError, "Missing the required parameter 'workspace_agent_input' when calling AgentsApi.create_agent"
126
+ end
127
+ # resource path
128
+ local_var_path = '/{workspaceUuid}/agents'.sub('{' + 'workspaceUuid' + '}', CGI.escape(workspace_uuid.to_s))
129
+
130
+ # query parameters
131
+ query_params = opts[:query_params] || {}
132
+
133
+ # header parameters
134
+ header_params = opts[:header_params] || {}
135
+ # HTTP header 'Accept' (if needed)
136
+ header_params['Accept'] = @api_client.select_header_accept(['application/json']) unless header_params['Accept']
137
+ # HTTP header 'Content-Type'
138
+ content_type = @api_client.select_header_content_type(['application/json'])
139
+ if !content_type.nil?
140
+ header_params['Content-Type'] = content_type
141
+ end
142
+
143
+ # form parameters
144
+ form_params = opts[:form_params] || {}
145
+
146
+ # http body (model)
147
+ post_body = opts[:debug_body] || @api_client.object_to_http_body(workspace_agent_input)
148
+
149
+ # return_type
150
+ return_type = opts[:debug_return_type] || 'CreateAgent201Response'
151
+
152
+ # auth_names
153
+ auth_names = opts[:debug_auth_names] || ['bearerAuth']
154
+
155
+ new_options = opts.merge(
156
+ :operation => :"AgentsApi.create_agent",
157
+ :header_params => header_params,
158
+ :query_params => query_params,
159
+ :form_params => form_params,
160
+ :body => post_body,
161
+ :auth_names => auth_names,
162
+ :return_type => return_type
163
+ )
164
+
165
+ data, status_code, headers = @api_client.call_api(:POST, local_var_path, new_options)
166
+ if @api_client.config.debugging
167
+ @api_client.config.logger.debug "API called: AgentsApi#create_agent\nData: #{data.inspect}\nStatus code: #{status_code}\nHeaders: #{headers}"
168
+ end
169
+ return data, status_code, headers
170
+ end
171
+
172
+ # Delete a background agent
173
+ # Removes the agent. Its run history and proposals stay. Admins and members only.
174
+ # @param workspace_uuid [String] UUID of the workspace.
175
+ # @param agent_uuid [String]
176
+ # @param [Hash] opts the optional parameters
177
+ # @return [DeleteAgent200Response]
178
+ def delete_agent(workspace_uuid, agent_uuid, opts = {})
179
+ data, _status_code, _headers = delete_agent_with_http_info(workspace_uuid, agent_uuid, opts)
180
+ data
181
+ end
182
+
183
+ # Delete a background agent
184
+ # Removes the agent. Its run history and proposals stay. Admins and members only.
185
+ # @param workspace_uuid [String] UUID of the workspace.
186
+ # @param agent_uuid [String]
187
+ # @param [Hash] opts the optional parameters
188
+ # @return [Array<(DeleteAgent200Response, Integer, Hash)>] DeleteAgent200Response data, response status code and response headers
189
+ def delete_agent_with_http_info(workspace_uuid, agent_uuid, opts = {})
190
+ if @api_client.config.debugging
191
+ @api_client.config.logger.debug 'Calling API: AgentsApi.delete_agent ...'
192
+ end
193
+ # verify the required parameter 'workspace_uuid' is set
194
+ if @api_client.config.client_side_validation && workspace_uuid.nil?
195
+ fail ArgumentError, "Missing the required parameter 'workspace_uuid' when calling AgentsApi.delete_agent"
196
+ end
197
+ # verify the required parameter 'agent_uuid' is set
198
+ if @api_client.config.client_side_validation && agent_uuid.nil?
199
+ fail ArgumentError, "Missing the required parameter 'agent_uuid' when calling AgentsApi.delete_agent"
200
+ end
201
+ # resource path
202
+ local_var_path = '/{workspaceUuid}/agents/{agentUuid}'.sub('{' + 'workspaceUuid' + '}', CGI.escape(workspace_uuid.to_s)).sub('{' + 'agentUuid' + '}', CGI.escape(agent_uuid.to_s))
203
+
204
+ # query parameters
205
+ query_params = opts[:query_params] || {}
206
+
207
+ # header parameters
208
+ header_params = opts[:header_params] || {}
209
+ # HTTP header 'Accept' (if needed)
210
+ header_params['Accept'] = @api_client.select_header_accept(['application/json']) unless header_params['Accept']
211
+
212
+ # form parameters
213
+ form_params = opts[:form_params] || {}
214
+
215
+ # http body (model)
216
+ post_body = opts[:debug_body]
217
+
218
+ # return_type
219
+ return_type = opts[:debug_return_type] || 'DeleteAgent200Response'
220
+
221
+ # auth_names
222
+ auth_names = opts[:debug_auth_names] || ['bearerAuth']
223
+
224
+ new_options = opts.merge(
225
+ :operation => :"AgentsApi.delete_agent",
226
+ :header_params => header_params,
227
+ :query_params => query_params,
228
+ :form_params => form_params,
229
+ :body => post_body,
230
+ :auth_names => auth_names,
231
+ :return_type => return_type
232
+ )
233
+
234
+ data, status_code, headers = @api_client.call_api(:DELETE, local_var_path, new_options)
235
+ if @api_client.config.debugging
236
+ @api_client.config.logger.debug "API called: AgentsApi#delete_agent\nData: #{data.inspect}\nStatus code: #{status_code}\nHeaders: #{headers}"
237
+ end
238
+ return data, status_code, headers
239
+ end
240
+
241
+ # Get an agent run with its proposals
242
+ # @param workspace_uuid [String] UUID of the workspace.
243
+ # @param run_uuid [String]
244
+ # @param [Hash] opts the optional parameters
245
+ # @return [RunAgent202Response]
246
+ def get_agent_run(workspace_uuid, run_uuid, opts = {})
247
+ data, _status_code, _headers = get_agent_run_with_http_info(workspace_uuid, run_uuid, opts)
248
+ data
249
+ end
250
+
251
+ # Get an agent run with its proposals
252
+ # @param workspace_uuid [String] UUID of the workspace.
253
+ # @param run_uuid [String]
254
+ # @param [Hash] opts the optional parameters
255
+ # @return [Array<(RunAgent202Response, Integer, Hash)>] RunAgent202Response data, response status code and response headers
256
+ def get_agent_run_with_http_info(workspace_uuid, run_uuid, opts = {})
257
+ if @api_client.config.debugging
258
+ @api_client.config.logger.debug 'Calling API: AgentsApi.get_agent_run ...'
259
+ end
260
+ # verify the required parameter 'workspace_uuid' is set
261
+ if @api_client.config.client_side_validation && workspace_uuid.nil?
262
+ fail ArgumentError, "Missing the required parameter 'workspace_uuid' when calling AgentsApi.get_agent_run"
263
+ end
264
+ # verify the required parameter 'run_uuid' is set
265
+ if @api_client.config.client_side_validation && run_uuid.nil?
266
+ fail ArgumentError, "Missing the required parameter 'run_uuid' when calling AgentsApi.get_agent_run"
267
+ end
268
+ # resource path
269
+ local_var_path = '/{workspaceUuid}/agent-runs/{runUuid}'.sub('{' + 'workspaceUuid' + '}', CGI.escape(workspace_uuid.to_s)).sub('{' + 'runUuid' + '}', CGI.escape(run_uuid.to_s))
270
+
271
+ # query parameters
272
+ query_params = opts[:query_params] || {}
273
+
274
+ # header parameters
275
+ header_params = opts[:header_params] || {}
276
+ # HTTP header 'Accept' (if needed)
277
+ header_params['Accept'] = @api_client.select_header_accept(['application/json']) unless header_params['Accept']
278
+
279
+ # form parameters
280
+ form_params = opts[:form_params] || {}
281
+
282
+ # http body (model)
283
+ post_body = opts[:debug_body]
284
+
285
+ # return_type
286
+ return_type = opts[:debug_return_type] || 'RunAgent202Response'
287
+
288
+ # auth_names
289
+ auth_names = opts[:debug_auth_names] || ['bearerAuth']
290
+
291
+ new_options = opts.merge(
292
+ :operation => :"AgentsApi.get_agent_run",
293
+ :header_params => header_params,
294
+ :query_params => query_params,
295
+ :form_params => form_params,
296
+ :body => post_body,
297
+ :auth_names => auth_names,
298
+ :return_type => return_type
299
+ )
300
+
301
+ data, status_code, headers = @api_client.call_api(:GET, local_var_path, new_options)
302
+ if @api_client.config.debugging
303
+ @api_client.config.logger.debug "API called: AgentsApi#get_agent_run\nData: #{data.inspect}\nStatus code: #{status_code}\nHeaders: #{headers}"
304
+ end
305
+ return data, status_code, headers
306
+ end
307
+
308
+ # List agent proposals (approval queue)
309
+ # Proposals of all agents in the workspace, newest first. Defaults to `pending`.
310
+ # @param workspace_uuid [String] UUID of the workspace.
311
+ # @param [Hash] opts the optional parameters
312
+ # @option opts [String] :status (default to 'pending')
313
+ # @option opts [Integer] :per_page (default to 20)
314
+ # @option opts [Integer] :page
315
+ # @return [ListAgentProposals200Response]
316
+ def list_agent_proposals(workspace_uuid, opts = {})
317
+ data, _status_code, _headers = list_agent_proposals_with_http_info(workspace_uuid, opts)
318
+ data
319
+ end
320
+
321
+ # List agent proposals (approval queue)
322
+ # Proposals of all agents in the workspace, newest first. Defaults to &#x60;pending&#x60;.
323
+ # @param workspace_uuid [String] UUID of the workspace.
324
+ # @param [Hash] opts the optional parameters
325
+ # @option opts [String] :status (default to 'pending')
326
+ # @option opts [Integer] :per_page (default to 20)
327
+ # @option opts [Integer] :page
328
+ # @return [Array<(ListAgentProposals200Response, Integer, Hash)>] ListAgentProposals200Response data, response status code and response headers
329
+ def list_agent_proposals_with_http_info(workspace_uuid, opts = {})
330
+ if @api_client.config.debugging
331
+ @api_client.config.logger.debug 'Calling API: AgentsApi.list_agent_proposals ...'
332
+ end
333
+ # verify the required parameter 'workspace_uuid' is set
334
+ if @api_client.config.client_side_validation && workspace_uuid.nil?
335
+ fail ArgumentError, "Missing the required parameter 'workspace_uuid' when calling AgentsApi.list_agent_proposals"
336
+ end
337
+ allowable_values = ["pending", "applied", "rejected", "stale", "failed", "expired"]
338
+ if @api_client.config.client_side_validation && opts[:'status'] && !allowable_values.include?(opts[:'status'])
339
+ fail ArgumentError, "invalid value for \"status\", must be one of #{allowable_values}"
340
+ end
341
+ if @api_client.config.client_side_validation && !opts[:'per_page'].nil? && opts[:'per_page'] > 100
342
+ fail ArgumentError, 'invalid value for "opts[:"per_page"]" when calling AgentsApi.list_agent_proposals, must be smaller than or equal to 100.'
343
+ end
344
+
345
+ if @api_client.config.client_side_validation && !opts[:'per_page'].nil? && opts[:'per_page'] < 1
346
+ fail ArgumentError, 'invalid value for "opts[:"per_page"]" when calling AgentsApi.list_agent_proposals, must be greater than or equal to 1.'
347
+ end
348
+
349
+ if @api_client.config.client_side_validation && !opts[:'page'].nil? && opts[:'page'] < 1
350
+ fail ArgumentError, 'invalid value for "opts[:"page"]" when calling AgentsApi.list_agent_proposals, must be greater than or equal to 1.'
351
+ end
352
+
353
+ # resource path
354
+ local_var_path = '/{workspaceUuid}/agent-proposals'.sub('{' + 'workspaceUuid' + '}', CGI.escape(workspace_uuid.to_s))
355
+
356
+ # query parameters
357
+ query_params = opts[:query_params] || {}
358
+ query_params[:'status'] = opts[:'status'] if !opts[:'status'].nil?
359
+ query_params[:'per_page'] = opts[:'per_page'] if !opts[:'per_page'].nil?
360
+ query_params[:'page'] = opts[:'page'] if !opts[:'page'].nil?
361
+
362
+ # header parameters
363
+ header_params = opts[:header_params] || {}
364
+ # HTTP header 'Accept' (if needed)
365
+ header_params['Accept'] = @api_client.select_header_accept(['application/json']) unless header_params['Accept']
366
+
367
+ # form parameters
368
+ form_params = opts[:form_params] || {}
369
+
370
+ # http body (model)
371
+ post_body = opts[:debug_body]
372
+
373
+ # return_type
374
+ return_type = opts[:debug_return_type] || 'ListAgentProposals200Response'
375
+
376
+ # auth_names
377
+ auth_names = opts[:debug_auth_names] || ['bearerAuth']
378
+
379
+ new_options = opts.merge(
380
+ :operation => :"AgentsApi.list_agent_proposals",
381
+ :header_params => header_params,
382
+ :query_params => query_params,
383
+ :form_params => form_params,
384
+ :body => post_body,
385
+ :auth_names => auth_names,
386
+ :return_type => return_type
387
+ )
388
+
389
+ data, status_code, headers = @api_client.call_api(:GET, local_var_path, new_options)
390
+ if @api_client.config.debugging
391
+ @api_client.config.logger.debug "API called: AgentsApi#list_agent_proposals\nData: #{data.inspect}\nStatus code: #{status_code}\nHeaders: #{headers}"
392
+ end
393
+ return data, status_code, headers
394
+ end
395
+
396
+ # Run history of an agent
397
+ # Runs of the agent, newest first, with what each checked and proposed and the AI credits it used.
398
+ # @param workspace_uuid [String] UUID of the workspace.
399
+ # @param agent_uuid [String]
400
+ # @param [Hash] opts the optional parameters
401
+ # @option opts [Integer] :per_page (default to 20)
402
+ # @option opts [Integer] :page
403
+ # @return [ListAgentRuns200Response]
404
+ def list_agent_runs(workspace_uuid, agent_uuid, opts = {})
405
+ data, _status_code, _headers = list_agent_runs_with_http_info(workspace_uuid, agent_uuid, opts)
406
+ data
407
+ end
408
+
409
+ # Run history of an agent
410
+ # Runs of the agent, newest first, with what each checked and proposed and the AI credits it used.
411
+ # @param workspace_uuid [String] UUID of the workspace.
412
+ # @param agent_uuid [String]
413
+ # @param [Hash] opts the optional parameters
414
+ # @option opts [Integer] :per_page (default to 20)
415
+ # @option opts [Integer] :page
416
+ # @return [Array<(ListAgentRuns200Response, Integer, Hash)>] ListAgentRuns200Response data, response status code and response headers
417
+ def list_agent_runs_with_http_info(workspace_uuid, agent_uuid, opts = {})
418
+ if @api_client.config.debugging
419
+ @api_client.config.logger.debug 'Calling API: AgentsApi.list_agent_runs ...'
420
+ end
421
+ # verify the required parameter 'workspace_uuid' is set
422
+ if @api_client.config.client_side_validation && workspace_uuid.nil?
423
+ fail ArgumentError, "Missing the required parameter 'workspace_uuid' when calling AgentsApi.list_agent_runs"
424
+ end
425
+ # verify the required parameter 'agent_uuid' is set
426
+ if @api_client.config.client_side_validation && agent_uuid.nil?
427
+ fail ArgumentError, "Missing the required parameter 'agent_uuid' when calling AgentsApi.list_agent_runs"
428
+ end
429
+ if @api_client.config.client_side_validation && !opts[:'per_page'].nil? && opts[:'per_page'] > 100
430
+ fail ArgumentError, 'invalid value for "opts[:"per_page"]" when calling AgentsApi.list_agent_runs, must be smaller than or equal to 100.'
431
+ end
432
+
433
+ if @api_client.config.client_side_validation && !opts[:'per_page'].nil? && opts[:'per_page'] < 1
434
+ fail ArgumentError, 'invalid value for "opts[:"per_page"]" when calling AgentsApi.list_agent_runs, must be greater than or equal to 1.'
435
+ end
436
+
437
+ if @api_client.config.client_side_validation && !opts[:'page'].nil? && opts[:'page'] < 1
438
+ fail ArgumentError, 'invalid value for "opts[:"page"]" when calling AgentsApi.list_agent_runs, must be greater than or equal to 1.'
439
+ end
440
+
441
+ # resource path
442
+ local_var_path = '/{workspaceUuid}/agents/{agentUuid}/runs'.sub('{' + 'workspaceUuid' + '}', CGI.escape(workspace_uuid.to_s)).sub('{' + 'agentUuid' + '}', CGI.escape(agent_uuid.to_s))
443
+
444
+ # query parameters
445
+ query_params = opts[:query_params] || {}
446
+ query_params[:'per_page'] = opts[:'per_page'] if !opts[:'per_page'].nil?
447
+ query_params[:'page'] = opts[:'page'] if !opts[:'page'].nil?
448
+
449
+ # header parameters
450
+ header_params = opts[:header_params] || {}
451
+ # HTTP header 'Accept' (if needed)
452
+ header_params['Accept'] = @api_client.select_header_accept(['application/json']) unless header_params['Accept']
453
+
454
+ # form parameters
455
+ form_params = opts[:form_params] || {}
456
+
457
+ # http body (model)
458
+ post_body = opts[:debug_body]
459
+
460
+ # return_type
461
+ return_type = opts[:debug_return_type] || 'ListAgentRuns200Response'
462
+
463
+ # auth_names
464
+ auth_names = opts[:debug_auth_names] || ['bearerAuth']
465
+
466
+ new_options = opts.merge(
467
+ :operation => :"AgentsApi.list_agent_runs",
468
+ :header_params => header_params,
469
+ :query_params => query_params,
470
+ :form_params => form_params,
471
+ :body => post_body,
472
+ :auth_names => auth_names,
473
+ :return_type => return_type
474
+ )
475
+
476
+ data, status_code, headers = @api_client.call_api(:GET, local_var_path, new_options)
477
+ if @api_client.config.debugging
478
+ @api_client.config.logger.debug "API called: AgentsApi#list_agent_runs\nData: #{data.inspect}\nStatus code: #{status_code}\nHeaders: #{headers}"
479
+ end
480
+ return data, status_code, headers
481
+ end
482
+
483
+ # List background agents
484
+ # Background agents switched on for the workspace. Agents run on a schedule, record every run and never change a post themselves: each change is a proposal that a workspace admin or member approves. Available type: `pre_publish_checker`.
485
+ # @param workspace_uuid [String] UUID of the workspace.
486
+ # @param [Hash] opts the optional parameters
487
+ # @return [ListAgents200Response]
488
+ def list_agents(workspace_uuid, opts = {})
489
+ data, _status_code, _headers = list_agents_with_http_info(workspace_uuid, opts)
490
+ data
491
+ end
492
+
493
+ # List background agents
494
+ # Background agents switched on for the workspace. Agents run on a schedule, record every run and never change a post themselves: each change is a proposal that a workspace admin or member approves. Available type: &#x60;pre_publish_checker&#x60;.
495
+ # @param workspace_uuid [String] UUID of the workspace.
496
+ # @param [Hash] opts the optional parameters
497
+ # @return [Array<(ListAgents200Response, Integer, Hash)>] ListAgents200Response data, response status code and response headers
498
+ def list_agents_with_http_info(workspace_uuid, opts = {})
499
+ if @api_client.config.debugging
500
+ @api_client.config.logger.debug 'Calling API: AgentsApi.list_agents ...'
501
+ end
502
+ # verify the required parameter 'workspace_uuid' is set
503
+ if @api_client.config.client_side_validation && workspace_uuid.nil?
504
+ fail ArgumentError, "Missing the required parameter 'workspace_uuid' when calling AgentsApi.list_agents"
505
+ end
506
+ # resource path
507
+ local_var_path = '/{workspaceUuid}/agents'.sub('{' + 'workspaceUuid' + '}', CGI.escape(workspace_uuid.to_s))
508
+
509
+ # query parameters
510
+ query_params = opts[:query_params] || {}
511
+
512
+ # header parameters
513
+ header_params = opts[:header_params] || {}
514
+ # HTTP header 'Accept' (if needed)
515
+ header_params['Accept'] = @api_client.select_header_accept(['application/json']) unless header_params['Accept']
516
+
517
+ # form parameters
518
+ form_params = opts[:form_params] || {}
519
+
520
+ # http body (model)
521
+ post_body = opts[:debug_body]
522
+
523
+ # return_type
524
+ return_type = opts[:debug_return_type] || 'ListAgents200Response'
525
+
526
+ # auth_names
527
+ auth_names = opts[:debug_auth_names] || ['bearerAuth']
528
+
529
+ new_options = opts.merge(
530
+ :operation => :"AgentsApi.list_agents",
531
+ :header_params => header_params,
532
+ :query_params => query_params,
533
+ :form_params => form_params,
534
+ :body => post_body,
535
+ :auth_names => auth_names,
536
+ :return_type => return_type
537
+ )
538
+
539
+ data, status_code, headers = @api_client.call_api(:GET, local_var_path, new_options)
540
+ if @api_client.config.debugging
541
+ @api_client.config.logger.debug "API called: AgentsApi#list_agents\nData: #{data.inspect}\nStatus code: #{status_code}\nHeaders: #{headers}"
542
+ end
543
+ return data, status_code, headers
544
+ end
545
+
546
+ # Reject an agent proposal
547
+ # Records the rejection (and optional note); nothing changes on the post. Admins and members only.
548
+ # @param workspace_uuid [String] UUID of the workspace.
549
+ # @param proposal_uuid [String]
550
+ # @param [Hash] opts the optional parameters
551
+ # @option opts [AgentProposalDecision] :agent_proposal_decision
552
+ # @return [ApproveAgentProposal200Response]
553
+ def reject_agent_proposal(workspace_uuid, proposal_uuid, opts = {})
554
+ data, _status_code, _headers = reject_agent_proposal_with_http_info(workspace_uuid, proposal_uuid, opts)
555
+ data
556
+ end
557
+
558
+ # Reject an agent proposal
559
+ # Records the rejection (and optional note); nothing changes on the post. Admins and members only.
560
+ # @param workspace_uuid [String] UUID of the workspace.
561
+ # @param proposal_uuid [String]
562
+ # @param [Hash] opts the optional parameters
563
+ # @option opts [AgentProposalDecision] :agent_proposal_decision
564
+ # @return [Array<(ApproveAgentProposal200Response, Integer, Hash)>] ApproveAgentProposal200Response data, response status code and response headers
565
+ def reject_agent_proposal_with_http_info(workspace_uuid, proposal_uuid, opts = {})
566
+ if @api_client.config.debugging
567
+ @api_client.config.logger.debug 'Calling API: AgentsApi.reject_agent_proposal ...'
568
+ end
569
+ # verify the required parameter 'workspace_uuid' is set
570
+ if @api_client.config.client_side_validation && workspace_uuid.nil?
571
+ fail ArgumentError, "Missing the required parameter 'workspace_uuid' when calling AgentsApi.reject_agent_proposal"
572
+ end
573
+ # verify the required parameter 'proposal_uuid' is set
574
+ if @api_client.config.client_side_validation && proposal_uuid.nil?
575
+ fail ArgumentError, "Missing the required parameter 'proposal_uuid' when calling AgentsApi.reject_agent_proposal"
576
+ end
577
+ # resource path
578
+ local_var_path = '/{workspaceUuid}/agent-proposals/{proposalUuid}/reject'.sub('{' + 'workspaceUuid' + '}', CGI.escape(workspace_uuid.to_s)).sub('{' + 'proposalUuid' + '}', CGI.escape(proposal_uuid.to_s))
579
+
580
+ # query parameters
581
+ query_params = opts[:query_params] || {}
582
+
583
+ # header parameters
584
+ header_params = opts[:header_params] || {}
585
+ # HTTP header 'Accept' (if needed)
586
+ header_params['Accept'] = @api_client.select_header_accept(['application/json']) unless header_params['Accept']
587
+ # HTTP header 'Content-Type'
588
+ content_type = @api_client.select_header_content_type(['application/json'])
589
+ if !content_type.nil?
590
+ header_params['Content-Type'] = content_type
591
+ end
592
+
593
+ # form parameters
594
+ form_params = opts[:form_params] || {}
595
+
596
+ # http body (model)
597
+ post_body = opts[:debug_body] || @api_client.object_to_http_body(opts[:'agent_proposal_decision'])
598
+
599
+ # return_type
600
+ return_type = opts[:debug_return_type] || 'ApproveAgentProposal200Response'
601
+
602
+ # auth_names
603
+ auth_names = opts[:debug_auth_names] || ['bearerAuth']
604
+
605
+ new_options = opts.merge(
606
+ :operation => :"AgentsApi.reject_agent_proposal",
607
+ :header_params => header_params,
608
+ :query_params => query_params,
609
+ :form_params => form_params,
610
+ :body => post_body,
611
+ :auth_names => auth_names,
612
+ :return_type => return_type
613
+ )
614
+
615
+ data, status_code, headers = @api_client.call_api(:POST, local_var_path, new_options)
616
+ if @api_client.config.debugging
617
+ @api_client.config.logger.debug "API called: AgentsApi#reject_agent_proposal\nData: #{data.inspect}\nStatus code: #{status_code}\nHeaders: #{headers}"
618
+ end
619
+ return data, status_code, headers
620
+ end
621
+
622
+ # Run a background agent now
623
+ # Queues a run outside the schedule (`trigger: manual`). Six per hour. Admins and members only.
624
+ # @param workspace_uuid [String] UUID of the workspace.
625
+ # @param agent_uuid [String]
626
+ # @param [Hash] opts the optional parameters
627
+ # @return [RunAgent202Response]
628
+ def run_agent(workspace_uuid, agent_uuid, opts = {})
629
+ data, _status_code, _headers = run_agent_with_http_info(workspace_uuid, agent_uuid, opts)
630
+ data
631
+ end
632
+
633
+ # Run a background agent now
634
+ # Queues a run outside the schedule (&#x60;trigger: manual&#x60;). Six per hour. Admins and members only.
635
+ # @param workspace_uuid [String] UUID of the workspace.
636
+ # @param agent_uuid [String]
637
+ # @param [Hash] opts the optional parameters
638
+ # @return [Array<(RunAgent202Response, Integer, Hash)>] RunAgent202Response data, response status code and response headers
639
+ def run_agent_with_http_info(workspace_uuid, agent_uuid, opts = {})
640
+ if @api_client.config.debugging
641
+ @api_client.config.logger.debug 'Calling API: AgentsApi.run_agent ...'
642
+ end
643
+ # verify the required parameter 'workspace_uuid' is set
644
+ if @api_client.config.client_side_validation && workspace_uuid.nil?
645
+ fail ArgumentError, "Missing the required parameter 'workspace_uuid' when calling AgentsApi.run_agent"
646
+ end
647
+ # verify the required parameter 'agent_uuid' is set
648
+ if @api_client.config.client_side_validation && agent_uuid.nil?
649
+ fail ArgumentError, "Missing the required parameter 'agent_uuid' when calling AgentsApi.run_agent"
650
+ end
651
+ # resource path
652
+ local_var_path = '/{workspaceUuid}/agents/{agentUuid}/run'.sub('{' + 'workspaceUuid' + '}', CGI.escape(workspace_uuid.to_s)).sub('{' + 'agentUuid' + '}', CGI.escape(agent_uuid.to_s))
653
+
654
+ # query parameters
655
+ query_params = opts[:query_params] || {}
656
+
657
+ # header parameters
658
+ header_params = opts[:header_params] || {}
659
+ # HTTP header 'Accept' (if needed)
660
+ header_params['Accept'] = @api_client.select_header_accept(['application/json']) unless header_params['Accept']
661
+
662
+ # form parameters
663
+ form_params = opts[:form_params] || {}
664
+
665
+ # http body (model)
666
+ post_body = opts[:debug_body]
667
+
668
+ # return_type
669
+ return_type = opts[:debug_return_type] || 'RunAgent202Response'
670
+
671
+ # auth_names
672
+ auth_names = opts[:debug_auth_names] || ['bearerAuth']
673
+
674
+ new_options = opts.merge(
675
+ :operation => :"AgentsApi.run_agent",
676
+ :header_params => header_params,
677
+ :query_params => query_params,
678
+ :form_params => form_params,
679
+ :body => post_body,
680
+ :auth_names => auth_names,
681
+ :return_type => return_type
682
+ )
683
+
684
+ data, status_code, headers = @api_client.call_api(:POST, local_var_path, new_options)
685
+ if @api_client.config.debugging
686
+ @api_client.config.logger.debug "API called: AgentsApi#run_agent\nData: #{data.inspect}\nStatus code: #{status_code}\nHeaders: #{headers}"
687
+ end
688
+ return data, status_code, headers
689
+ end
690
+
691
+ # Update a background agent
692
+ # Changes the name, schedule, settings or `enabled`. Settings you leave out keep their value. Admins and members only.
693
+ # @param workspace_uuid [String] UUID of the workspace.
694
+ # @param agent_uuid [String]
695
+ # @param workspace_agent_update [WorkspaceAgentUpdate]
696
+ # @param [Hash] opts the optional parameters
697
+ # @return [CreateAgent201Response]
698
+ def update_agent(workspace_uuid, agent_uuid, workspace_agent_update, opts = {})
699
+ data, _status_code, _headers = update_agent_with_http_info(workspace_uuid, agent_uuid, workspace_agent_update, opts)
700
+ data
701
+ end
702
+
703
+ # Update a background agent
704
+ # Changes the name, schedule, settings or &#x60;enabled&#x60;. Settings you leave out keep their value. Admins and members only.
705
+ # @param workspace_uuid [String] UUID of the workspace.
706
+ # @param agent_uuid [String]
707
+ # @param workspace_agent_update [WorkspaceAgentUpdate]
708
+ # @param [Hash] opts the optional parameters
709
+ # @return [Array<(CreateAgent201Response, Integer, Hash)>] CreateAgent201Response data, response status code and response headers
710
+ def update_agent_with_http_info(workspace_uuid, agent_uuid, workspace_agent_update, opts = {})
711
+ if @api_client.config.debugging
712
+ @api_client.config.logger.debug 'Calling API: AgentsApi.update_agent ...'
713
+ end
714
+ # verify the required parameter 'workspace_uuid' is set
715
+ if @api_client.config.client_side_validation && workspace_uuid.nil?
716
+ fail ArgumentError, "Missing the required parameter 'workspace_uuid' when calling AgentsApi.update_agent"
717
+ end
718
+ # verify the required parameter 'agent_uuid' is set
719
+ if @api_client.config.client_side_validation && agent_uuid.nil?
720
+ fail ArgumentError, "Missing the required parameter 'agent_uuid' when calling AgentsApi.update_agent"
721
+ end
722
+ # verify the required parameter 'workspace_agent_update' is set
723
+ if @api_client.config.client_side_validation && workspace_agent_update.nil?
724
+ fail ArgumentError, "Missing the required parameter 'workspace_agent_update' when calling AgentsApi.update_agent"
725
+ end
726
+ # resource path
727
+ local_var_path = '/{workspaceUuid}/agents/{agentUuid}'.sub('{' + 'workspaceUuid' + '}', CGI.escape(workspace_uuid.to_s)).sub('{' + 'agentUuid' + '}', CGI.escape(agent_uuid.to_s))
728
+
729
+ # query parameters
730
+ query_params = opts[:query_params] || {}
731
+
732
+ # header parameters
733
+ header_params = opts[:header_params] || {}
734
+ # HTTP header 'Accept' (if needed)
735
+ header_params['Accept'] = @api_client.select_header_accept(['application/json']) unless header_params['Accept']
736
+ # HTTP header 'Content-Type'
737
+ content_type = @api_client.select_header_content_type(['application/json'])
738
+ if !content_type.nil?
739
+ header_params['Content-Type'] = content_type
740
+ end
741
+
742
+ # form parameters
743
+ form_params = opts[:form_params] || {}
744
+
745
+ # http body (model)
746
+ post_body = opts[:debug_body] || @api_client.object_to_http_body(workspace_agent_update)
747
+
748
+ # return_type
749
+ return_type = opts[:debug_return_type] || 'CreateAgent201Response'
750
+
751
+ # auth_names
752
+ auth_names = opts[:debug_auth_names] || ['bearerAuth']
753
+
754
+ new_options = opts.merge(
755
+ :operation => :"AgentsApi.update_agent",
756
+ :header_params => header_params,
757
+ :query_params => query_params,
758
+ :form_params => form_params,
759
+ :body => post_body,
760
+ :auth_names => auth_names,
761
+ :return_type => return_type
762
+ )
763
+
764
+ data, status_code, headers = @api_client.call_api(:PUT, local_var_path, new_options)
765
+ if @api_client.config.debugging
766
+ @api_client.config.logger.debug "API called: AgentsApi#update_agent\nData: #{data.inspect}\nStatus code: #{status_code}\nHeaders: #{headers}"
767
+ end
768
+ return data, status_code, headers
769
+ end
770
+ end
771
+ end