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
@@ -1,9 +1,9 @@
1
1
  =begin
2
2
  #PostBoost API
3
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. ## 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 ```
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
5
 
6
- The version of the OpenAPI document: 1.8.0
6
+ The version of the OpenAPI document: 1.14.0
7
7
  Contact: hi@postboost.co
8
8
  Generated by: https://openapi-generator.tech
9
9
  Generator version: 7.9.0
@@ -24,6 +24,7 @@ module PostBoost
24
24
  # @param workspace_uuid [String] UUID of the workspace.
25
25
  # @param post_uuid [String] UUID of the post.
26
26
  # @param [Hash] opts the optional parameters
27
+ # @option opts [String] :idempotency_key Unique key (for example a UUID) that makes the request safe to retry. A repeat with the same key and body within 24 hours returns the stored response with `Idempotent-Replayed: true` and has no further effect. Keys are scoped to your user, the workspace, the method and the path.
27
28
  # @option opts [AddPostToQueueRequest] :add_post_to_queue_request
28
29
  # @return [ScheduleResult]
29
30
  def add_post_to_queue(workspace_uuid, post_uuid, opts = {})
@@ -36,6 +37,7 @@ module PostBoost
36
37
  # @param workspace_uuid [String] UUID of the workspace.
37
38
  # @param post_uuid [String] UUID of the post.
38
39
  # @param [Hash] opts the optional parameters
40
+ # @option opts [String] :idempotency_key Unique key (for example a UUID) that makes the request safe to retry. A repeat with the same key and body within 24 hours returns the stored response with `Idempotent-Replayed: true` and has no further effect. Keys are scoped to your user, the workspace, the method and the path.
39
41
  # @option opts [AddPostToQueueRequest] :add_post_to_queue_request
40
42
  # @return [Array<(ScheduleResult, Integer, Hash)>] ScheduleResult data, response status code and response headers
41
43
  def add_post_to_queue_with_http_info(workspace_uuid, post_uuid, opts = {})
@@ -50,6 +52,14 @@ module PostBoost
50
52
  if @api_client.config.client_side_validation && post_uuid.nil?
51
53
  fail ArgumentError, "Missing the required parameter 'post_uuid' when calling PostsApi.add_post_to_queue"
52
54
  end
55
+ if @api_client.config.client_side_validation && !opts[:'idempotency_key'].nil? && opts[:'idempotency_key'].to_s.length > 255
56
+ fail ArgumentError, 'invalid value for "opts[:"idempotency_key"]" when calling PostsApi.add_post_to_queue, the character length must be smaller than or equal to 255.'
57
+ end
58
+
59
+ if @api_client.config.client_side_validation && !opts[:'idempotency_key'].nil? && opts[:'idempotency_key'].to_s.length < 1
60
+ fail ArgumentError, 'invalid value for "opts[:"idempotency_key"]" when calling PostsApi.add_post_to_queue, the character length must be great than or equal to 1.'
61
+ end
62
+
53
63
  # resource path
54
64
  local_var_path = '/{workspaceUuid}/posts/add-to-queue/{postUuid}'.sub('{' + 'workspaceUuid' + '}', CGI.escape(workspace_uuid.to_s)).sub('{' + 'postUuid' + '}', CGI.escape(post_uuid.to_s))
55
65
 
@@ -65,6 +75,7 @@ module PostBoost
65
75
  if !content_type.nil?
66
76
  header_params['Content-Type'] = content_type
67
77
  end
78
+ header_params[:'Idempotency-Key'] = opts[:'idempotency_key'] if !opts[:'idempotency_key'].nil?
68
79
 
69
80
  # form parameters
70
81
  form_params = opts[:form_params] || {}
@@ -100,6 +111,7 @@ module PostBoost
100
111
  # @param workspace_uuid [String] UUID of the workspace.
101
112
  # @param post_uuid [String] UUID of the post.
102
113
  # @param [Hash] opts the optional parameters
114
+ # @option opts [String] :idempotency_key Unique key (for example a UUID) that makes the request safe to retry. A repeat with the same key and body within 24 hours returns the stored response with &#x60;Idempotent-Replayed: true&#x60; and has no further effect. Keys are scoped to your user, the workspace, the method and the path.
103
115
  # @option opts [ApprovePostRequest] :approve_post_request
104
116
  # @return [ScheduleResult]
105
117
  def approve_post(workspace_uuid, post_uuid, opts = {})
@@ -112,6 +124,7 @@ module PostBoost
112
124
  # @param workspace_uuid [String] UUID of the workspace.
113
125
  # @param post_uuid [String] UUID of the post.
114
126
  # @param [Hash] opts the optional parameters
127
+ # @option opts [String] :idempotency_key Unique key (for example a UUID) that makes the request safe to retry. A repeat with the same key and body within 24 hours returns the stored response with &#x60;Idempotent-Replayed: true&#x60; and has no further effect. Keys are scoped to your user, the workspace, the method and the path.
115
128
  # @option opts [ApprovePostRequest] :approve_post_request
116
129
  # @return [Array<(ScheduleResult, Integer, Hash)>] ScheduleResult data, response status code and response headers
117
130
  def approve_post_with_http_info(workspace_uuid, post_uuid, opts = {})
@@ -126,6 +139,14 @@ module PostBoost
126
139
  if @api_client.config.client_side_validation && post_uuid.nil?
127
140
  fail ArgumentError, "Missing the required parameter 'post_uuid' when calling PostsApi.approve_post"
128
141
  end
142
+ if @api_client.config.client_side_validation && !opts[:'idempotency_key'].nil? && opts[:'idempotency_key'].to_s.length > 255
143
+ fail ArgumentError, 'invalid value for "opts[:"idempotency_key"]" when calling PostsApi.approve_post, the character length must be smaller than or equal to 255.'
144
+ end
145
+
146
+ if @api_client.config.client_side_validation && !opts[:'idempotency_key'].nil? && opts[:'idempotency_key'].to_s.length < 1
147
+ fail ArgumentError, 'invalid value for "opts[:"idempotency_key"]" when calling PostsApi.approve_post, the character length must be great than or equal to 1.'
148
+ end
149
+
129
150
  # resource path
130
151
  local_var_path = '/{workspaceUuid}/posts/approve/{postUuid}'.sub('{' + 'workspaceUuid' + '}', CGI.escape(workspace_uuid.to_s)).sub('{' + 'postUuid' + '}', CGI.escape(post_uuid.to_s))
131
152
 
@@ -141,6 +162,7 @@ module PostBoost
141
162
  if !content_type.nil?
142
163
  header_params['Content-Type'] = content_type
143
164
  end
165
+ header_params[:'Idempotency-Key'] = opts[:'idempotency_key'] if !opts[:'idempotency_key'].nil?
144
166
 
145
167
  # form parameters
146
168
  form_params = opts[:form_params] || {}
@@ -172,10 +194,11 @@ module PostBoost
172
194
  end
173
195
 
174
196
  # Create post
175
- # Create a new post. Use `schedule: true` with `date` and `time` to schedule, `schedule_now: true` to publish immediately, or `queue: true` to add to the smart publishing queue (each account gets its own queue slot). `date`, `time` and `accounts_schedule` are read in `timezone` when given, otherwise in the workspace timezone. Use `accounts_schedule` to give individual accounts their own departure time. Post bodies may reference mentions with `{{mention:<reference>}}` (see the Mentions endpoints). When the post is scheduled, provider requirements (for example a network that requires media) are validated up front and reported as `422`.
197
+ # Create a new post. Use `schedule: true` with `date` and `time` to schedule, `schedule_now: true` to publish immediately, or `queue: true` to add to the smart publishing queue (each account gets its own queue slot). `date`, `time` and `accounts_schedule` are read in `timezone` when given, otherwise in the workspace timezone. Use `accounts_schedule` to give individual accounts their own departure time. Post bodies may reference mentions with `{{mention:<reference>}}` (see the Mentions endpoints). When the post is scheduled, provider requirements (for example a network that requires media) are validated up front and reported as `422`. **First comment and threads.** A version's `content` is an ordered array. Item 0 is the post. Add a second item to publish a first comment on Facebook Page, Instagram and LinkedIn, or to continue a thread on X, Threads, Bluesky, Mastodon and Pixelfed: ```json { \"accounts\": [12], \"schedule_now\": true, \"versions\": [{ \"account_id\": 0, \"is_original\": true, \"content\": [ { \"body\": \"Our API 1.8 is live.\", \"media\": [345] }, { \"body\": \"Full changelog: https://postboost.co/docs/changelog/\" } ] }] } ``` The comment is posted right after the post goes live. If the comment fails, the post stays published and the account's entry on the post reports the error.
176
198
  # @param workspace_uuid [String] UUID of the workspace.
177
199
  # @param post_input [PostInput]
178
200
  # @param [Hash] opts the optional parameters
201
+ # @option opts [String] :idempotency_key Unique key (for example a UUID) that makes the request safe to retry. A repeat with the same key and body within 24 hours returns the stored response with &#x60;Idempotent-Replayed: true&#x60; and has no further effect. Keys are scoped to your user, the workspace, the method and the path.
179
202
  # @return [Post]
180
203
  def create_post(workspace_uuid, post_input, opts = {})
181
204
  data, _status_code, _headers = create_post_with_http_info(workspace_uuid, post_input, opts)
@@ -183,10 +206,11 @@ module PostBoost
183
206
  end
184
207
 
185
208
  # Create post
186
- # Create a new post. Use &#x60;schedule: true&#x60; with &#x60;date&#x60; and &#x60;time&#x60; to schedule, &#x60;schedule_now: true&#x60; to publish immediately, or &#x60;queue: true&#x60; to add to the smart publishing queue (each account gets its own queue slot). &#x60;date&#x60;, &#x60;time&#x60; and &#x60;accounts_schedule&#x60; are read in &#x60;timezone&#x60; when given, otherwise in the workspace timezone. Use &#x60;accounts_schedule&#x60; to give individual accounts their own departure time. Post bodies may reference mentions with &#x60;{{mention:&lt;reference&gt;}}&#x60; (see the Mentions endpoints). When the post is scheduled, provider requirements (for example a network that requires media) are validated up front and reported as &#x60;422&#x60;.
209
+ # Create a new post. Use &#x60;schedule: true&#x60; with &#x60;date&#x60; and &#x60;time&#x60; to schedule, &#x60;schedule_now: true&#x60; to publish immediately, or &#x60;queue: true&#x60; to add to the smart publishing queue (each account gets its own queue slot). &#x60;date&#x60;, &#x60;time&#x60; and &#x60;accounts_schedule&#x60; are read in &#x60;timezone&#x60; when given, otherwise in the workspace timezone. Use &#x60;accounts_schedule&#x60; to give individual accounts their own departure time. Post bodies may reference mentions with &#x60;{{mention:&lt;reference&gt;}}&#x60; (see the Mentions endpoints). When the post is scheduled, provider requirements (for example a network that requires media) are validated up front and reported as &#x60;422&#x60;. **First comment and threads.** A version&#39;s &#x60;content&#x60; is an ordered array. Item 0 is the post. Add a second item to publish a first comment on Facebook Page, Instagram and LinkedIn, or to continue a thread on X, Threads, Bluesky, Mastodon and Pixelfed: &#x60;&#x60;&#x60;json { \&quot;accounts\&quot;: [12], \&quot;schedule_now\&quot;: true, \&quot;versions\&quot;: [{ \&quot;account_id\&quot;: 0, \&quot;is_original\&quot;: true, \&quot;content\&quot;: [ { \&quot;body\&quot;: \&quot;Our API 1.8 is live.\&quot;, \&quot;media\&quot;: [345] }, { \&quot;body\&quot;: \&quot;Full changelog: https://postboost.co/docs/changelog/\&quot; } ] }] } &#x60;&#x60;&#x60; The comment is posted right after the post goes live. If the comment fails, the post stays published and the account&#39;s entry on the post reports the error.
187
210
  # @param workspace_uuid [String] UUID of the workspace.
188
211
  # @param post_input [PostInput]
189
212
  # @param [Hash] opts the optional parameters
213
+ # @option opts [String] :idempotency_key Unique key (for example a UUID) that makes the request safe to retry. A repeat with the same key and body within 24 hours returns the stored response with &#x60;Idempotent-Replayed: true&#x60; and has no further effect. Keys are scoped to your user, the workspace, the method and the path.
190
214
  # @return [Array<(Post, Integer, Hash)>] Post data, response status code and response headers
191
215
  def create_post_with_http_info(workspace_uuid, post_input, opts = {})
192
216
  if @api_client.config.debugging
@@ -200,6 +224,14 @@ module PostBoost
200
224
  if @api_client.config.client_side_validation && post_input.nil?
201
225
  fail ArgumentError, "Missing the required parameter 'post_input' when calling PostsApi.create_post"
202
226
  end
227
+ if @api_client.config.client_side_validation && !opts[:'idempotency_key'].nil? && opts[:'idempotency_key'].to_s.length > 255
228
+ fail ArgumentError, 'invalid value for "opts[:"idempotency_key"]" when calling PostsApi.create_post, the character length must be smaller than or equal to 255.'
229
+ end
230
+
231
+ if @api_client.config.client_side_validation && !opts[:'idempotency_key'].nil? && opts[:'idempotency_key'].to_s.length < 1
232
+ fail ArgumentError, 'invalid value for "opts[:"idempotency_key"]" when calling PostsApi.create_post, the character length must be great than or equal to 1.'
233
+ end
234
+
203
235
  # resource path
204
236
  local_var_path = '/{workspaceUuid}/posts'.sub('{' + 'workspaceUuid' + '}', CGI.escape(workspace_uuid.to_s))
205
237
 
@@ -215,6 +247,7 @@ module PostBoost
215
247
  if !content_type.nil?
216
248
  header_params['Content-Type'] = content_type
217
249
  end
250
+ header_params[:'Idempotency-Key'] = opts[:'idempotency_key'] if !opts[:'idempotency_key'].nil?
218
251
 
219
252
  # form parameters
220
253
  form_params = opts[:form_params] || {}
@@ -245,6 +278,154 @@ module PostBoost
245
278
  return data, status_code, headers
246
279
  end
247
280
 
281
+ # Create a recycling rule
282
+ # Recycles one post (`post_uuid`) or a tag pool (`type: tag_pool` + `tag_uuid`) every `interval_days`. The first run is `start_at`, or one interval from now. Copies are never published immediately: `placement: queue` (default) takes each account's next free queue slot, `same_time` schedules at the source post's time of day, `draft` leaves a draft. Copies pass the same guardrails as posts created through the API (duplicate guard, per-account daily caps, disconnected accounts, X monthly allowance). A refused copy is not created; the run is logged with the guard's code (see the runs endpoint). X accounts are left out of copies because X rejects repeated text. Admins and members only.
283
+ # @param workspace_uuid [String] UUID of the workspace.
284
+ # @param recycling_rule_input [RecyclingRuleInput]
285
+ # @param [Hash] opts the optional parameters
286
+ # @return [CreateRecyclingRule201Response]
287
+ def create_recycling_rule(workspace_uuid, recycling_rule_input, opts = {})
288
+ data, _status_code, _headers = create_recycling_rule_with_http_info(workspace_uuid, recycling_rule_input, opts)
289
+ data
290
+ end
291
+
292
+ # Create a recycling rule
293
+ # Recycles one post (&#x60;post_uuid&#x60;) or a tag pool (&#x60;type: tag_pool&#x60; + &#x60;tag_uuid&#x60;) every &#x60;interval_days&#x60;. The first run is &#x60;start_at&#x60;, or one interval from now. Copies are never published immediately: &#x60;placement: queue&#x60; (default) takes each account&#39;s next free queue slot, &#x60;same_time&#x60; schedules at the source post&#39;s time of day, &#x60;draft&#x60; leaves a draft. Copies pass the same guardrails as posts created through the API (duplicate guard, per-account daily caps, disconnected accounts, X monthly allowance). A refused copy is not created; the run is logged with the guard&#39;s code (see the runs endpoint). X accounts are left out of copies because X rejects repeated text. Admins and members only.
294
+ # @param workspace_uuid [String] UUID of the workspace.
295
+ # @param recycling_rule_input [RecyclingRuleInput]
296
+ # @param [Hash] opts the optional parameters
297
+ # @return [Array<(CreateRecyclingRule201Response, Integer, Hash)>] CreateRecyclingRule201Response data, response status code and response headers
298
+ def create_recycling_rule_with_http_info(workspace_uuid, recycling_rule_input, opts = {})
299
+ if @api_client.config.debugging
300
+ @api_client.config.logger.debug 'Calling API: PostsApi.create_recycling_rule ...'
301
+ end
302
+ # verify the required parameter 'workspace_uuid' is set
303
+ if @api_client.config.client_side_validation && workspace_uuid.nil?
304
+ fail ArgumentError, "Missing the required parameter 'workspace_uuid' when calling PostsApi.create_recycling_rule"
305
+ end
306
+ # verify the required parameter 'recycling_rule_input' is set
307
+ if @api_client.config.client_side_validation && recycling_rule_input.nil?
308
+ fail ArgumentError, "Missing the required parameter 'recycling_rule_input' when calling PostsApi.create_recycling_rule"
309
+ end
310
+ # resource path
311
+ local_var_path = '/{workspaceUuid}/recycling-rules'.sub('{' + 'workspaceUuid' + '}', CGI.escape(workspace_uuid.to_s))
312
+
313
+ # query parameters
314
+ query_params = opts[:query_params] || {}
315
+
316
+ # header parameters
317
+ header_params = opts[:header_params] || {}
318
+ # HTTP header 'Accept' (if needed)
319
+ header_params['Accept'] = @api_client.select_header_accept(['application/json']) unless header_params['Accept']
320
+ # HTTP header 'Content-Type'
321
+ content_type = @api_client.select_header_content_type(['application/json'])
322
+ if !content_type.nil?
323
+ header_params['Content-Type'] = content_type
324
+ end
325
+
326
+ # form parameters
327
+ form_params = opts[:form_params] || {}
328
+
329
+ # http body (model)
330
+ post_body = opts[:debug_body] || @api_client.object_to_http_body(recycling_rule_input)
331
+
332
+ # return_type
333
+ return_type = opts[:debug_return_type] || 'CreateRecyclingRule201Response'
334
+
335
+ # auth_names
336
+ auth_names = opts[:debug_auth_names] || ['bearerAuth']
337
+
338
+ new_options = opts.merge(
339
+ :operation => :"PostsApi.create_recycling_rule",
340
+ :header_params => header_params,
341
+ :query_params => query_params,
342
+ :form_params => form_params,
343
+ :body => post_body,
344
+ :auth_names => auth_names,
345
+ :return_type => return_type
346
+ )
347
+
348
+ data, status_code, headers = @api_client.call_api(:POST, local_var_path, new_options)
349
+ if @api_client.config.debugging
350
+ @api_client.config.logger.debug "API called: PostsApi#create_recycling_rule\nData: #{data.inspect}\nStatus code: #{status_code}\nHeaders: #{headers}"
351
+ end
352
+ return data, status_code, headers
353
+ end
354
+
355
+ # Add an RSS feed
356
+ # Checks the feed every 30 minutes and turns each item published after the feed was added into a post for `account_ids`: a draft (`mode: draft`, default) or a queued post (`mode: queue`). The text comes from `template` with `{title}`, `{link}` and `{summary}` placeholders. Each item becomes at most one post, at most `max_items_per_run` per check and 20 per workspace per day. Posts pass the same guardrails as API-created posts. Only public http(s) URLs are accepted. Admins and members only.
357
+ # @param workspace_uuid [String] UUID of the workspace.
358
+ # @param rss_feed_input [RssFeedInput]
359
+ # @param [Hash] opts the optional parameters
360
+ # @return [CreateRssFeed201Response]
361
+ def create_rss_feed(workspace_uuid, rss_feed_input, opts = {})
362
+ data, _status_code, _headers = create_rss_feed_with_http_info(workspace_uuid, rss_feed_input, opts)
363
+ data
364
+ end
365
+
366
+ # Add an RSS feed
367
+ # Checks the feed every 30 minutes and turns each item published after the feed was added into a post for &#x60;account_ids&#x60;: a draft (&#x60;mode: draft&#x60;, default) or a queued post (&#x60;mode: queue&#x60;). The text comes from &#x60;template&#x60; with &#x60;{title}&#x60;, &#x60;{link}&#x60; and &#x60;{summary}&#x60; placeholders. Each item becomes at most one post, at most &#x60;max_items_per_run&#x60; per check and 20 per workspace per day. Posts pass the same guardrails as API-created posts. Only public http(s) URLs are accepted. Admins and members only.
368
+ # @param workspace_uuid [String] UUID of the workspace.
369
+ # @param rss_feed_input [RssFeedInput]
370
+ # @param [Hash] opts the optional parameters
371
+ # @return [Array<(CreateRssFeed201Response, Integer, Hash)>] CreateRssFeed201Response data, response status code and response headers
372
+ def create_rss_feed_with_http_info(workspace_uuid, rss_feed_input, opts = {})
373
+ if @api_client.config.debugging
374
+ @api_client.config.logger.debug 'Calling API: PostsApi.create_rss_feed ...'
375
+ end
376
+ # verify the required parameter 'workspace_uuid' is set
377
+ if @api_client.config.client_side_validation && workspace_uuid.nil?
378
+ fail ArgumentError, "Missing the required parameter 'workspace_uuid' when calling PostsApi.create_rss_feed"
379
+ end
380
+ # verify the required parameter 'rss_feed_input' is set
381
+ if @api_client.config.client_side_validation && rss_feed_input.nil?
382
+ fail ArgumentError, "Missing the required parameter 'rss_feed_input' when calling PostsApi.create_rss_feed"
383
+ end
384
+ # resource path
385
+ local_var_path = '/{workspaceUuid}/rss-feeds'.sub('{' + 'workspaceUuid' + '}', CGI.escape(workspace_uuid.to_s))
386
+
387
+ # query parameters
388
+ query_params = opts[:query_params] || {}
389
+
390
+ # header parameters
391
+ header_params = opts[:header_params] || {}
392
+ # HTTP header 'Accept' (if needed)
393
+ header_params['Accept'] = @api_client.select_header_accept(['application/json']) unless header_params['Accept']
394
+ # HTTP header 'Content-Type'
395
+ content_type = @api_client.select_header_content_type(['application/json'])
396
+ if !content_type.nil?
397
+ header_params['Content-Type'] = content_type
398
+ end
399
+
400
+ # form parameters
401
+ form_params = opts[:form_params] || {}
402
+
403
+ # http body (model)
404
+ post_body = opts[:debug_body] || @api_client.object_to_http_body(rss_feed_input)
405
+
406
+ # return_type
407
+ return_type = opts[:debug_return_type] || 'CreateRssFeed201Response'
408
+
409
+ # auth_names
410
+ auth_names = opts[:debug_auth_names] || ['bearerAuth']
411
+
412
+ new_options = opts.merge(
413
+ :operation => :"PostsApi.create_rss_feed",
414
+ :header_params => header_params,
415
+ :query_params => query_params,
416
+ :form_params => form_params,
417
+ :body => post_body,
418
+ :auth_names => auth_names,
419
+ :return_type => return_type
420
+ )
421
+
422
+ data, status_code, headers = @api_client.call_api(:POST, local_var_path, new_options)
423
+ if @api_client.config.debugging
424
+ @api_client.config.logger.debug "API called: PostsApi#create_rss_feed\nData: #{data.inspect}\nStatus code: #{status_code}\nHeaders: #{headers}"
425
+ end
426
+ return data, status_code, headers
427
+ end
428
+
248
429
  # Delete post
249
430
  # Deletes a post. Use `delete_mode` to control whether to also remove the published content from social platforms.
250
431
  # @param workspace_uuid [String] UUID of the workspace.
@@ -395,37 +576,37 @@ module PostBoost
395
576
  return data, status_code, headers
396
577
  end
397
578
 
398
- # Get post
399
- # Returns a single post with all its versions and associated accounts.
579
+ # Delete a recycling rule
580
+ # Deletes the rule and its run log. Copies it already created stay. Admins and members only.
400
581
  # @param workspace_uuid [String] UUID of the workspace.
401
- # @param post_uuid [String] UUID of the post.
582
+ # @param rule_uuid [String] UUID of the recycling rule.
402
583
  # @param [Hash] opts the optional parameters
403
- # @return [Post]
404
- def get_post(workspace_uuid, post_uuid, opts = {})
405
- data, _status_code, _headers = get_post_with_http_info(workspace_uuid, post_uuid, opts)
584
+ # @return [Object]
585
+ def delete_recycling_rule(workspace_uuid, rule_uuid, opts = {})
586
+ data, _status_code, _headers = delete_recycling_rule_with_http_info(workspace_uuid, rule_uuid, opts)
406
587
  data
407
588
  end
408
589
 
409
- # Get post
410
- # Returns a single post with all its versions and associated accounts.
590
+ # Delete a recycling rule
591
+ # Deletes the rule and its run log. Copies it already created stay. Admins and members only.
411
592
  # @param workspace_uuid [String] UUID of the workspace.
412
- # @param post_uuid [String] UUID of the post.
593
+ # @param rule_uuid [String] UUID of the recycling rule.
413
594
  # @param [Hash] opts the optional parameters
414
- # @return [Array<(Post, Integer, Hash)>] Post data, response status code and response headers
415
- def get_post_with_http_info(workspace_uuid, post_uuid, opts = {})
595
+ # @return [Array<(Object, Integer, Hash)>] Object data, response status code and response headers
596
+ def delete_recycling_rule_with_http_info(workspace_uuid, rule_uuid, opts = {})
416
597
  if @api_client.config.debugging
417
- @api_client.config.logger.debug 'Calling API: PostsApi.get_post ...'
598
+ @api_client.config.logger.debug 'Calling API: PostsApi.delete_recycling_rule ...'
418
599
  end
419
600
  # verify the required parameter 'workspace_uuid' is set
420
601
  if @api_client.config.client_side_validation && workspace_uuid.nil?
421
- fail ArgumentError, "Missing the required parameter 'workspace_uuid' when calling PostsApi.get_post"
602
+ fail ArgumentError, "Missing the required parameter 'workspace_uuid' when calling PostsApi.delete_recycling_rule"
422
603
  end
423
- # verify the required parameter 'post_uuid' is set
424
- if @api_client.config.client_side_validation && post_uuid.nil?
425
- fail ArgumentError, "Missing the required parameter 'post_uuid' when calling PostsApi.get_post"
604
+ # verify the required parameter 'rule_uuid' is set
605
+ if @api_client.config.client_side_validation && rule_uuid.nil?
606
+ fail ArgumentError, "Missing the required parameter 'rule_uuid' when calling PostsApi.delete_recycling_rule"
426
607
  end
427
608
  # resource path
428
- local_var_path = '/{workspaceUuid}/posts/{postUuid}'.sub('{' + 'workspaceUuid' + '}', CGI.escape(workspace_uuid.to_s)).sub('{' + 'postUuid' + '}', CGI.escape(post_uuid.to_s))
609
+ local_var_path = '/{workspaceUuid}/recycling-rules/{ruleUuid}'.sub('{' + 'workspaceUuid' + '}', CGI.escape(workspace_uuid.to_s)).sub('{' + 'ruleUuid' + '}', CGI.escape(rule_uuid.to_s))
429
610
 
430
611
  # query parameters
431
612
  query_params = opts[:query_params] || {}
@@ -442,13 +623,13 @@ module PostBoost
442
623
  post_body = opts[:debug_body]
443
624
 
444
625
  # return_type
445
- return_type = opts[:debug_return_type] || 'Post'
626
+ return_type = opts[:debug_return_type] || 'Object'
446
627
 
447
628
  # auth_names
448
629
  auth_names = opts[:debug_auth_names] || ['bearerAuth']
449
630
 
450
631
  new_options = opts.merge(
451
- :operation => :"PostsApi.get_post",
632
+ :operation => :"PostsApi.delete_recycling_rule",
452
633
  :header_params => header_params,
453
634
  :query_params => query_params,
454
635
  :form_params => form_params,
@@ -457,44 +638,44 @@ module PostBoost
457
638
  :return_type => return_type
458
639
  )
459
640
 
460
- data, status_code, headers = @api_client.call_api(:GET, local_var_path, new_options)
641
+ data, status_code, headers = @api_client.call_api(:DELETE, local_var_path, new_options)
461
642
  if @api_client.config.debugging
462
- @api_client.config.logger.debug "API called: PostsApi#get_post\nData: #{data.inspect}\nStatus code: #{status_code}\nHeaders: #{headers}"
643
+ @api_client.config.logger.debug "API called: PostsApi#delete_recycling_rule\nData: #{data.inspect}\nStatus code: #{status_code}\nHeaders: #{headers}"
463
644
  end
464
645
  return data, status_code, headers
465
646
  end
466
647
 
467
- # Get post analytics
468
- # Engagement metrics for a published post across its accounts (also works for trashed posts), with totals, trends and the best-performing account.
648
+ # Delete an RSS feed
649
+ # Stops the feed. Posts it already created stay. Admins and members only.
469
650
  # @param workspace_uuid [String] UUID of the workspace.
470
- # @param post_uuid [String] UUID of the post.
651
+ # @param feed_uuid [String] UUID of the RSS feed.
471
652
  # @param [Hash] opts the optional parameters
472
- # @return [PostAnalytics]
473
- def get_post_analytics(workspace_uuid, post_uuid, opts = {})
474
- data, _status_code, _headers = get_post_analytics_with_http_info(workspace_uuid, post_uuid, opts)
653
+ # @return [Object]
654
+ def delete_rss_feed(workspace_uuid, feed_uuid, opts = {})
655
+ data, _status_code, _headers = delete_rss_feed_with_http_info(workspace_uuid, feed_uuid, opts)
475
656
  data
476
657
  end
477
658
 
478
- # Get post analytics
479
- # Engagement metrics for a published post across its accounts (also works for trashed posts), with totals, trends and the best-performing account.
659
+ # Delete an RSS feed
660
+ # Stops the feed. Posts it already created stay. Admins and members only.
480
661
  # @param workspace_uuid [String] UUID of the workspace.
481
- # @param post_uuid [String] UUID of the post.
662
+ # @param feed_uuid [String] UUID of the RSS feed.
482
663
  # @param [Hash] opts the optional parameters
483
- # @return [Array<(PostAnalytics, Integer, Hash)>] PostAnalytics data, response status code and response headers
484
- def get_post_analytics_with_http_info(workspace_uuid, post_uuid, opts = {})
664
+ # @return [Array<(Object, Integer, Hash)>] Object data, response status code and response headers
665
+ def delete_rss_feed_with_http_info(workspace_uuid, feed_uuid, opts = {})
485
666
  if @api_client.config.debugging
486
- @api_client.config.logger.debug 'Calling API: PostsApi.get_post_analytics ...'
667
+ @api_client.config.logger.debug 'Calling API: PostsApi.delete_rss_feed ...'
487
668
  end
488
669
  # verify the required parameter 'workspace_uuid' is set
489
670
  if @api_client.config.client_side_validation && workspace_uuid.nil?
490
- fail ArgumentError, "Missing the required parameter 'workspace_uuid' when calling PostsApi.get_post_analytics"
671
+ fail ArgumentError, "Missing the required parameter 'workspace_uuid' when calling PostsApi.delete_rss_feed"
491
672
  end
492
- # verify the required parameter 'post_uuid' is set
493
- if @api_client.config.client_side_validation && post_uuid.nil?
494
- fail ArgumentError, "Missing the required parameter 'post_uuid' when calling PostsApi.get_post_analytics"
673
+ # verify the required parameter 'feed_uuid' is set
674
+ if @api_client.config.client_side_validation && feed_uuid.nil?
675
+ fail ArgumentError, "Missing the required parameter 'feed_uuid' when calling PostsApi.delete_rss_feed"
495
676
  end
496
677
  # resource path
497
- local_var_path = '/{workspaceUuid}/posts/{postUuid}/analytics'.sub('{' + 'workspaceUuid' + '}', CGI.escape(workspace_uuid.to_s)).sub('{' + 'postUuid' + '}', CGI.escape(post_uuid.to_s))
678
+ local_var_path = '/{workspaceUuid}/rss-feeds/{feedUuid}'.sub('{' + 'workspaceUuid' + '}', CGI.escape(workspace_uuid.to_s)).sub('{' + 'feedUuid' + '}', CGI.escape(feed_uuid.to_s))
498
679
 
499
680
  # query parameters
500
681
  query_params = opts[:query_params] || {}
@@ -511,13 +692,13 @@ module PostBoost
511
692
  post_body = opts[:debug_body]
512
693
 
513
694
  # return_type
514
- return_type = opts[:debug_return_type] || 'PostAnalytics'
695
+ return_type = opts[:debug_return_type] || 'Object'
515
696
 
516
697
  # auth_names
517
698
  auth_names = opts[:debug_auth_names] || ['bearerAuth']
518
699
 
519
700
  new_options = opts.merge(
520
- :operation => :"PostsApi.get_post_analytics",
701
+ :operation => :"PostsApi.delete_rss_feed",
521
702
  :header_params => header_params,
522
703
  :query_params => query_params,
523
704
  :form_params => form_params,
@@ -526,44 +707,47 @@ module PostBoost
526
707
  :return_type => return_type
527
708
  )
528
709
 
529
- data, status_code, headers = @api_client.call_api(:GET, local_var_path, new_options)
710
+ data, status_code, headers = @api_client.call_api(:DELETE, local_var_path, new_options)
530
711
  if @api_client.config.debugging
531
- @api_client.config.logger.debug "API called: PostsApi#get_post_analytics\nData: #{data.inspect}\nStatus code: #{status_code}\nHeaders: #{headers}"
712
+ @api_client.config.logger.debug "API called: PostsApi#delete_rss_feed\nData: #{data.inspect}\nStatus code: #{status_code}\nHeaders: #{headers}"
532
713
  end
533
714
  return data, status_code, headers
534
715
  end
535
716
 
536
- # List posts
537
- # Returns a paginated list of posts in the workspace.
717
+ # Get post
718
+ # Returns a single post with all its versions and associated accounts.
538
719
  # @param workspace_uuid [String] UUID of the workspace.
720
+ # @param post_uuid [String] UUID of the post.
539
721
  # @param [Hash] opts the optional parameters
540
- # @option opts [Integer] :page (default to 1)
541
- # @return [ListPosts200Response]
542
- def list_posts(workspace_uuid, opts = {})
543
- data, _status_code, _headers = list_posts_with_http_info(workspace_uuid, opts)
722
+ # @return [Post]
723
+ def get_post(workspace_uuid, post_uuid, opts = {})
724
+ data, _status_code, _headers = get_post_with_http_info(workspace_uuid, post_uuid, opts)
544
725
  data
545
726
  end
546
727
 
547
- # List posts
548
- # Returns a paginated list of posts in the workspace.
728
+ # Get post
729
+ # Returns a single post with all its versions and associated accounts.
549
730
  # @param workspace_uuid [String] UUID of the workspace.
731
+ # @param post_uuid [String] UUID of the post.
550
732
  # @param [Hash] opts the optional parameters
551
- # @option opts [Integer] :page (default to 1)
552
- # @return [Array<(ListPosts200Response, Integer, Hash)>] ListPosts200Response data, response status code and response headers
553
- def list_posts_with_http_info(workspace_uuid, opts = {})
733
+ # @return [Array<(Post, Integer, Hash)>] Post data, response status code and response headers
734
+ def get_post_with_http_info(workspace_uuid, post_uuid, opts = {})
554
735
  if @api_client.config.debugging
555
- @api_client.config.logger.debug 'Calling API: PostsApi.list_posts ...'
736
+ @api_client.config.logger.debug 'Calling API: PostsApi.get_post ...'
556
737
  end
557
738
  # verify the required parameter 'workspace_uuid' is set
558
739
  if @api_client.config.client_side_validation && workspace_uuid.nil?
559
- fail ArgumentError, "Missing the required parameter 'workspace_uuid' when calling PostsApi.list_posts"
740
+ fail ArgumentError, "Missing the required parameter 'workspace_uuid' when calling PostsApi.get_post"
741
+ end
742
+ # verify the required parameter 'post_uuid' is set
743
+ if @api_client.config.client_side_validation && post_uuid.nil?
744
+ fail ArgumentError, "Missing the required parameter 'post_uuid' when calling PostsApi.get_post"
560
745
  end
561
746
  # resource path
562
- local_var_path = '/{workspaceUuid}/posts'.sub('{' + 'workspaceUuid' + '}', CGI.escape(workspace_uuid.to_s))
747
+ local_var_path = '/{workspaceUuid}/posts/{postUuid}'.sub('{' + 'workspaceUuid' + '}', CGI.escape(workspace_uuid.to_s)).sub('{' + 'postUuid' + '}', CGI.escape(post_uuid.to_s))
563
748
 
564
749
  # query parameters
565
750
  query_params = opts[:query_params] || {}
566
- query_params[:'page'] = opts[:'page'] if !opts[:'page'].nil?
567
751
 
568
752
  # header parameters
569
753
  header_params = opts[:header_params] || {}
@@ -577,13 +761,13 @@ module PostBoost
577
761
  post_body = opts[:debug_body]
578
762
 
579
763
  # return_type
580
- return_type = opts[:debug_return_type] || 'ListPosts200Response'
764
+ return_type = opts[:debug_return_type] || 'Post'
581
765
 
582
766
  # auth_names
583
767
  auth_names = opts[:debug_auth_names] || ['bearerAuth']
584
768
 
585
769
  new_options = opts.merge(
586
- :operation => :"PostsApi.list_posts",
770
+ :operation => :"PostsApi.get_post",
587
771
  :header_params => header_params,
588
772
  :query_params => query_params,
589
773
  :form_params => form_params,
@@ -594,48 +778,42 @@ module PostBoost
594
778
 
595
779
  data, status_code, headers = @api_client.call_api(:GET, local_var_path, new_options)
596
780
  if @api_client.config.debugging
597
- @api_client.config.logger.debug "API called: PostsApi#list_posts\nData: #{data.inspect}\nStatus code: #{status_code}\nHeaders: #{headers}"
781
+ @api_client.config.logger.debug "API called: PostsApi#get_post\nData: #{data.inspect}\nStatus code: #{status_code}\nHeaders: #{headers}"
598
782
  end
599
783
  return data, status_code, headers
600
784
  end
601
785
 
602
- # Retry publishing to one account
603
- # Re-publishes a post to a single account whose publishing failed. Returns `422` when the account is not on the post, the post is still publishing, or the account did not fail.
786
+ # Get post analytics
787
+ # Engagement metrics for a published post across its accounts (also works for trashed posts), with totals, trends and the best-performing account.
604
788
  # @param workspace_uuid [String] UUID of the workspace.
605
789
  # @param post_uuid [String] UUID of the post.
606
- # @param account_uuid [String] UUID of the social media account.
607
790
  # @param [Hash] opts the optional parameters
608
- # @return [RetryPostAccountResult]
609
- def retry_post_account(workspace_uuid, post_uuid, account_uuid, opts = {})
610
- data, _status_code, _headers = retry_post_account_with_http_info(workspace_uuid, post_uuid, account_uuid, opts)
791
+ # @return [PostAnalytics]
792
+ def get_post_analytics(workspace_uuid, post_uuid, opts = {})
793
+ data, _status_code, _headers = get_post_analytics_with_http_info(workspace_uuid, post_uuid, opts)
611
794
  data
612
795
  end
613
796
 
614
- # Retry publishing to one account
615
- # Re-publishes a post to a single account whose publishing failed. Returns &#x60;422&#x60; when the account is not on the post, the post is still publishing, or the account did not fail.
797
+ # Get post analytics
798
+ # Engagement metrics for a published post across its accounts (also works for trashed posts), with totals, trends and the best-performing account.
616
799
  # @param workspace_uuid [String] UUID of the workspace.
617
800
  # @param post_uuid [String] UUID of the post.
618
- # @param account_uuid [String] UUID of the social media account.
619
801
  # @param [Hash] opts the optional parameters
620
- # @return [Array<(RetryPostAccountResult, Integer, Hash)>] RetryPostAccountResult data, response status code and response headers
621
- def retry_post_account_with_http_info(workspace_uuid, post_uuid, account_uuid, opts = {})
802
+ # @return [Array<(PostAnalytics, Integer, Hash)>] PostAnalytics data, response status code and response headers
803
+ def get_post_analytics_with_http_info(workspace_uuid, post_uuid, opts = {})
622
804
  if @api_client.config.debugging
623
- @api_client.config.logger.debug 'Calling API: PostsApi.retry_post_account ...'
805
+ @api_client.config.logger.debug 'Calling API: PostsApi.get_post_analytics ...'
624
806
  end
625
807
  # verify the required parameter 'workspace_uuid' is set
626
808
  if @api_client.config.client_side_validation && workspace_uuid.nil?
627
- fail ArgumentError, "Missing the required parameter 'workspace_uuid' when calling PostsApi.retry_post_account"
809
+ fail ArgumentError, "Missing the required parameter 'workspace_uuid' when calling PostsApi.get_post_analytics"
628
810
  end
629
811
  # verify the required parameter 'post_uuid' is set
630
812
  if @api_client.config.client_side_validation && post_uuid.nil?
631
- fail ArgumentError, "Missing the required parameter 'post_uuid' when calling PostsApi.retry_post_account"
632
- end
633
- # verify the required parameter 'account_uuid' is set
634
- if @api_client.config.client_side_validation && account_uuid.nil?
635
- fail ArgumentError, "Missing the required parameter 'account_uuid' when calling PostsApi.retry_post_account"
813
+ fail ArgumentError, "Missing the required parameter 'post_uuid' when calling PostsApi.get_post_analytics"
636
814
  end
637
815
  # resource path
638
- local_var_path = '/{workspaceUuid}/posts/retry/{postUuid}/{accountUuid}'.sub('{' + 'workspaceUuid' + '}', CGI.escape(workspace_uuid.to_s)).sub('{' + 'postUuid' + '}', CGI.escape(post_uuid.to_s)).sub('{' + 'accountUuid' + '}', CGI.escape(account_uuid.to_s))
816
+ local_var_path = '/{workspaceUuid}/posts/{postUuid}/analytics'.sub('{' + 'workspaceUuid' + '}', CGI.escape(workspace_uuid.to_s)).sub('{' + 'postUuid' + '}', CGI.escape(post_uuid.to_s))
639
817
 
640
818
  # query parameters
641
819
  query_params = opts[:query_params] || {}
@@ -652,13 +830,13 @@ module PostBoost
652
830
  post_body = opts[:debug_body]
653
831
 
654
832
  # return_type
655
- return_type = opts[:debug_return_type] || 'RetryPostAccountResult'
833
+ return_type = opts[:debug_return_type] || 'PostAnalytics'
656
834
 
657
835
  # auth_names
658
836
  auth_names = opts[:debug_auth_names] || ['bearerAuth']
659
837
 
660
838
  new_options = opts.merge(
661
- :operation => :"PostsApi.retry_post_account",
839
+ :operation => :"PostsApi.get_post_analytics",
662
840
  :header_params => header_params,
663
841
  :query_params => query_params,
664
842
  :form_params => form_params,
@@ -667,31 +845,663 @@ module PostBoost
667
845
  :return_type => return_type
668
846
  )
669
847
 
670
- data, status_code, headers = @api_client.call_api(:POST, local_var_path, new_options)
848
+ data, status_code, headers = @api_client.call_api(:GET, local_var_path, new_options)
671
849
  if @api_client.config.debugging
672
- @api_client.config.logger.debug "API called: PostsApi#retry_post_account\nData: #{data.inspect}\nStatus code: #{status_code}\nHeaders: #{headers}"
850
+ @api_client.config.logger.debug "API called: PostsApi#get_post_analytics\nData: #{data.inspect}\nStatus code: #{status_code}\nHeaders: #{headers}"
673
851
  end
674
852
  return data, status_code, headers
675
853
  end
676
854
 
677
- # Schedule post
678
- # Schedule an existing post. Optionally move it with `date`/`time` (read in `timezone`) and give accounts their own times with `accounts_schedule`. Set `postNow: true` to publish immediately; publishing starts within the request and any per-account times are dropped. Provider requirements are validated and reported as `422`.
855
+ # Get a recycling rule
679
856
  # @param workspace_uuid [String] UUID of the workspace.
680
- # @param post_uuid [String] UUID of the post.
681
- # @param schedule_post_request [SchedulePostRequest]
857
+ # @param rule_uuid [String] UUID of the recycling rule.
682
858
  # @param [Hash] opts the optional parameters
683
- # @return [ScheduleResult]
684
- def schedule_post(workspace_uuid, post_uuid, schedule_post_request, opts = {})
685
- data, _status_code, _headers = schedule_post_with_http_info(workspace_uuid, post_uuid, schedule_post_request, opts)
859
+ # @return [CreateRecyclingRule201Response]
860
+ def get_recycling_rule(workspace_uuid, rule_uuid, opts = {})
861
+ data, _status_code, _headers = get_recycling_rule_with_http_info(workspace_uuid, rule_uuid, opts)
686
862
  data
687
863
  end
688
864
 
689
- # Schedule post
690
- # Schedule an existing post. Optionally move it with &#x60;date&#x60;/&#x60;time&#x60; (read in &#x60;timezone&#x60;) and give accounts their own times with &#x60;accounts_schedule&#x60;. Set &#x60;postNow: true&#x60; to publish immediately; publishing starts within the request and any per-account times are dropped. Provider requirements are validated and reported as &#x60;422&#x60;.
865
+ # Get a recycling rule
866
+ # @param workspace_uuid [String] UUID of the workspace.
867
+ # @param rule_uuid [String] UUID of the recycling rule.
868
+ # @param [Hash] opts the optional parameters
869
+ # @return [Array<(CreateRecyclingRule201Response, Integer, Hash)>] CreateRecyclingRule201Response data, response status code and response headers
870
+ def get_recycling_rule_with_http_info(workspace_uuid, rule_uuid, opts = {})
871
+ if @api_client.config.debugging
872
+ @api_client.config.logger.debug 'Calling API: PostsApi.get_recycling_rule ...'
873
+ end
874
+ # verify the required parameter 'workspace_uuid' is set
875
+ if @api_client.config.client_side_validation && workspace_uuid.nil?
876
+ fail ArgumentError, "Missing the required parameter 'workspace_uuid' when calling PostsApi.get_recycling_rule"
877
+ end
878
+ # verify the required parameter 'rule_uuid' is set
879
+ if @api_client.config.client_side_validation && rule_uuid.nil?
880
+ fail ArgumentError, "Missing the required parameter 'rule_uuid' when calling PostsApi.get_recycling_rule"
881
+ end
882
+ # resource path
883
+ local_var_path = '/{workspaceUuid}/recycling-rules/{ruleUuid}'.sub('{' + 'workspaceUuid' + '}', CGI.escape(workspace_uuid.to_s)).sub('{' + 'ruleUuid' + '}', CGI.escape(rule_uuid.to_s))
884
+
885
+ # query parameters
886
+ query_params = opts[:query_params] || {}
887
+
888
+ # header parameters
889
+ header_params = opts[:header_params] || {}
890
+ # HTTP header 'Accept' (if needed)
891
+ header_params['Accept'] = @api_client.select_header_accept(['application/json']) unless header_params['Accept']
892
+
893
+ # form parameters
894
+ form_params = opts[:form_params] || {}
895
+
896
+ # http body (model)
897
+ post_body = opts[:debug_body]
898
+
899
+ # return_type
900
+ return_type = opts[:debug_return_type] || 'CreateRecyclingRule201Response'
901
+
902
+ # auth_names
903
+ auth_names = opts[:debug_auth_names] || ['bearerAuth']
904
+
905
+ new_options = opts.merge(
906
+ :operation => :"PostsApi.get_recycling_rule",
907
+ :header_params => header_params,
908
+ :query_params => query_params,
909
+ :form_params => form_params,
910
+ :body => post_body,
911
+ :auth_names => auth_names,
912
+ :return_type => return_type
913
+ )
914
+
915
+ data, status_code, headers = @api_client.call_api(:GET, local_var_path, new_options)
916
+ if @api_client.config.debugging
917
+ @api_client.config.logger.debug "API called: PostsApi#get_recycling_rule\nData: #{data.inspect}\nStatus code: #{status_code}\nHeaders: #{headers}"
918
+ end
919
+ return data, status_code, headers
920
+ end
921
+
922
+ # Get an RSS feed
923
+ # @param workspace_uuid [String] UUID of the workspace.
924
+ # @param feed_uuid [String] UUID of the RSS feed.
925
+ # @param [Hash] opts the optional parameters
926
+ # @return [CreateRssFeed201Response]
927
+ def get_rss_feed(workspace_uuid, feed_uuid, opts = {})
928
+ data, _status_code, _headers = get_rss_feed_with_http_info(workspace_uuid, feed_uuid, opts)
929
+ data
930
+ end
931
+
932
+ # Get an RSS feed
933
+ # @param workspace_uuid [String] UUID of the workspace.
934
+ # @param feed_uuid [String] UUID of the RSS feed.
935
+ # @param [Hash] opts the optional parameters
936
+ # @return [Array<(CreateRssFeed201Response, Integer, Hash)>] CreateRssFeed201Response data, response status code and response headers
937
+ def get_rss_feed_with_http_info(workspace_uuid, feed_uuid, opts = {})
938
+ if @api_client.config.debugging
939
+ @api_client.config.logger.debug 'Calling API: PostsApi.get_rss_feed ...'
940
+ end
941
+ # verify the required parameter 'workspace_uuid' is set
942
+ if @api_client.config.client_side_validation && workspace_uuid.nil?
943
+ fail ArgumentError, "Missing the required parameter 'workspace_uuid' when calling PostsApi.get_rss_feed"
944
+ end
945
+ # verify the required parameter 'feed_uuid' is set
946
+ if @api_client.config.client_side_validation && feed_uuid.nil?
947
+ fail ArgumentError, "Missing the required parameter 'feed_uuid' when calling PostsApi.get_rss_feed"
948
+ end
949
+ # resource path
950
+ local_var_path = '/{workspaceUuid}/rss-feeds/{feedUuid}'.sub('{' + 'workspaceUuid' + '}', CGI.escape(workspace_uuid.to_s)).sub('{' + 'feedUuid' + '}', CGI.escape(feed_uuid.to_s))
951
+
952
+ # query parameters
953
+ query_params = opts[:query_params] || {}
954
+
955
+ # header parameters
956
+ header_params = opts[:header_params] || {}
957
+ # HTTP header 'Accept' (if needed)
958
+ header_params['Accept'] = @api_client.select_header_accept(['application/json']) unless header_params['Accept']
959
+
960
+ # form parameters
961
+ form_params = opts[:form_params] || {}
962
+
963
+ # http body (model)
964
+ post_body = opts[:debug_body]
965
+
966
+ # return_type
967
+ return_type = opts[:debug_return_type] || 'CreateRssFeed201Response'
968
+
969
+ # auth_names
970
+ auth_names = opts[:debug_auth_names] || ['bearerAuth']
971
+
972
+ new_options = opts.merge(
973
+ :operation => :"PostsApi.get_rss_feed",
974
+ :header_params => header_params,
975
+ :query_params => query_params,
976
+ :form_params => form_params,
977
+ :body => post_body,
978
+ :auth_names => auth_names,
979
+ :return_type => return_type
980
+ )
981
+
982
+ data, status_code, headers = @api_client.call_api(:GET, local_var_path, new_options)
983
+ if @api_client.config.debugging
984
+ @api_client.config.logger.debug "API called: PostsApi#get_rss_feed\nData: #{data.inspect}\nStatus code: #{status_code}\nHeaders: #{headers}"
985
+ end
986
+ return data, status_code, headers
987
+ end
988
+
989
+ # List posts
990
+ # Returns a paginated list of posts in the workspace.
991
+ # @param workspace_uuid [String] UUID of the workspace.
992
+ # @param [Hash] opts the optional parameters
993
+ # @option opts [Integer] :page (default to 1)
994
+ # @return [ListPosts200Response]
995
+ def list_posts(workspace_uuid, opts = {})
996
+ data, _status_code, _headers = list_posts_with_http_info(workspace_uuid, opts)
997
+ data
998
+ end
999
+
1000
+ # List posts
1001
+ # Returns a paginated list of posts in the workspace.
1002
+ # @param workspace_uuid [String] UUID of the workspace.
1003
+ # @param [Hash] opts the optional parameters
1004
+ # @option opts [Integer] :page (default to 1)
1005
+ # @return [Array<(ListPosts200Response, Integer, Hash)>] ListPosts200Response data, response status code and response headers
1006
+ def list_posts_with_http_info(workspace_uuid, opts = {})
1007
+ if @api_client.config.debugging
1008
+ @api_client.config.logger.debug 'Calling API: PostsApi.list_posts ...'
1009
+ end
1010
+ # verify the required parameter 'workspace_uuid' is set
1011
+ if @api_client.config.client_side_validation && workspace_uuid.nil?
1012
+ fail ArgumentError, "Missing the required parameter 'workspace_uuid' when calling PostsApi.list_posts"
1013
+ end
1014
+ # resource path
1015
+ local_var_path = '/{workspaceUuid}/posts'.sub('{' + 'workspaceUuid' + '}', CGI.escape(workspace_uuid.to_s))
1016
+
1017
+ # query parameters
1018
+ query_params = opts[:query_params] || {}
1019
+ query_params[:'page'] = opts[:'page'] if !opts[:'page'].nil?
1020
+
1021
+ # header parameters
1022
+ header_params = opts[:header_params] || {}
1023
+ # HTTP header 'Accept' (if needed)
1024
+ header_params['Accept'] = @api_client.select_header_accept(['application/json']) unless header_params['Accept']
1025
+
1026
+ # form parameters
1027
+ form_params = opts[:form_params] || {}
1028
+
1029
+ # http body (model)
1030
+ post_body = opts[:debug_body]
1031
+
1032
+ # return_type
1033
+ return_type = opts[:debug_return_type] || 'ListPosts200Response'
1034
+
1035
+ # auth_names
1036
+ auth_names = opts[:debug_auth_names] || ['bearerAuth']
1037
+
1038
+ new_options = opts.merge(
1039
+ :operation => :"PostsApi.list_posts",
1040
+ :header_params => header_params,
1041
+ :query_params => query_params,
1042
+ :form_params => form_params,
1043
+ :body => post_body,
1044
+ :auth_names => auth_names,
1045
+ :return_type => return_type
1046
+ )
1047
+
1048
+ data, status_code, headers = @api_client.call_api(:GET, local_var_path, new_options)
1049
+ if @api_client.config.debugging
1050
+ @api_client.config.logger.debug "API called: PostsApi#list_posts\nData: #{data.inspect}\nStatus code: #{status_code}\nHeaders: #{headers}"
1051
+ end
1052
+ return data, status_code, headers
1053
+ end
1054
+
1055
+ # List recycling rules
1056
+ # Evergreen recycling rules of the workspace, newest first. A rule copies a post (or the least recently recycled published post with a tag) every `interval_days` and places the copy in the queue. Copies are ordinary posts: they show in the calendar and the queue.
1057
+ # @param workspace_uuid [String] UUID of the workspace.
1058
+ # @param [Hash] opts the optional parameters
1059
+ # @return [ListRecyclingRules200Response]
1060
+ def list_recycling_rules(workspace_uuid, opts = {})
1061
+ data, _status_code, _headers = list_recycling_rules_with_http_info(workspace_uuid, opts)
1062
+ data
1063
+ end
1064
+
1065
+ # List recycling rules
1066
+ # Evergreen recycling rules of the workspace, newest first. A rule copies a post (or the least recently recycled published post with a tag) every &#x60;interval_days&#x60; and places the copy in the queue. Copies are ordinary posts: they show in the calendar and the queue.
1067
+ # @param workspace_uuid [String] UUID of the workspace.
1068
+ # @param [Hash] opts the optional parameters
1069
+ # @return [Array<(ListRecyclingRules200Response, Integer, Hash)>] ListRecyclingRules200Response data, response status code and response headers
1070
+ def list_recycling_rules_with_http_info(workspace_uuid, opts = {})
1071
+ if @api_client.config.debugging
1072
+ @api_client.config.logger.debug 'Calling API: PostsApi.list_recycling_rules ...'
1073
+ end
1074
+ # verify the required parameter 'workspace_uuid' is set
1075
+ if @api_client.config.client_side_validation && workspace_uuid.nil?
1076
+ fail ArgumentError, "Missing the required parameter 'workspace_uuid' when calling PostsApi.list_recycling_rules"
1077
+ end
1078
+ # resource path
1079
+ local_var_path = '/{workspaceUuid}/recycling-rules'.sub('{' + 'workspaceUuid' + '}', CGI.escape(workspace_uuid.to_s))
1080
+
1081
+ # query parameters
1082
+ query_params = opts[:query_params] || {}
1083
+
1084
+ # header parameters
1085
+ header_params = opts[:header_params] || {}
1086
+ # HTTP header 'Accept' (if needed)
1087
+ header_params['Accept'] = @api_client.select_header_accept(['application/json']) unless header_params['Accept']
1088
+
1089
+ # form parameters
1090
+ form_params = opts[:form_params] || {}
1091
+
1092
+ # http body (model)
1093
+ post_body = opts[:debug_body]
1094
+
1095
+ # return_type
1096
+ return_type = opts[:debug_return_type] || 'ListRecyclingRules200Response'
1097
+
1098
+ # auth_names
1099
+ auth_names = opts[:debug_auth_names] || ['bearerAuth']
1100
+
1101
+ new_options = opts.merge(
1102
+ :operation => :"PostsApi.list_recycling_rules",
1103
+ :header_params => header_params,
1104
+ :query_params => query_params,
1105
+ :form_params => form_params,
1106
+ :body => post_body,
1107
+ :auth_names => auth_names,
1108
+ :return_type => return_type
1109
+ )
1110
+
1111
+ data, status_code, headers = @api_client.call_api(:GET, local_var_path, new_options)
1112
+ if @api_client.config.debugging
1113
+ @api_client.config.logger.debug "API called: PostsApi#list_recycling_rules\nData: #{data.inspect}\nStatus code: #{status_code}\nHeaders: #{headers}"
1114
+ end
1115
+ return data, status_code, headers
1116
+ end
1117
+
1118
+ # List a recycling rule's runs
1119
+ # The latest 100 runs of the rule, newest first: the copy each run created, or why it skipped (`source_unavailable`, `no_eligible_post`, `no_accounts`, `queue_full`, `x_skipped_identical_text`, or a guardrail code such as `duplicate_post` or `account_daily_cap_reached`).
1120
+ # @param workspace_uuid [String] UUID of the workspace.
1121
+ # @param rule_uuid [String] UUID of the recycling rule.
1122
+ # @param [Hash] opts the optional parameters
1123
+ # @return [ListRecyclingRuns200Response]
1124
+ def list_recycling_runs(workspace_uuid, rule_uuid, opts = {})
1125
+ data, _status_code, _headers = list_recycling_runs_with_http_info(workspace_uuid, rule_uuid, opts)
1126
+ data
1127
+ end
1128
+
1129
+ # List a recycling rule&#39;s runs
1130
+ # The latest 100 runs of the rule, newest first: the copy each run created, or why it skipped (&#x60;source_unavailable&#x60;, &#x60;no_eligible_post&#x60;, &#x60;no_accounts&#x60;, &#x60;queue_full&#x60;, &#x60;x_skipped_identical_text&#x60;, or a guardrail code such as &#x60;duplicate_post&#x60; or &#x60;account_daily_cap_reached&#x60;).
1131
+ # @param workspace_uuid [String] UUID of the workspace.
1132
+ # @param rule_uuid [String] UUID of the recycling rule.
1133
+ # @param [Hash] opts the optional parameters
1134
+ # @return [Array<(ListRecyclingRuns200Response, Integer, Hash)>] ListRecyclingRuns200Response data, response status code and response headers
1135
+ def list_recycling_runs_with_http_info(workspace_uuid, rule_uuid, opts = {})
1136
+ if @api_client.config.debugging
1137
+ @api_client.config.logger.debug 'Calling API: PostsApi.list_recycling_runs ...'
1138
+ end
1139
+ # verify the required parameter 'workspace_uuid' is set
1140
+ if @api_client.config.client_side_validation && workspace_uuid.nil?
1141
+ fail ArgumentError, "Missing the required parameter 'workspace_uuid' when calling PostsApi.list_recycling_runs"
1142
+ end
1143
+ # verify the required parameter 'rule_uuid' is set
1144
+ if @api_client.config.client_side_validation && rule_uuid.nil?
1145
+ fail ArgumentError, "Missing the required parameter 'rule_uuid' when calling PostsApi.list_recycling_runs"
1146
+ end
1147
+ # resource path
1148
+ local_var_path = '/{workspaceUuid}/recycling-rules/{ruleUuid}/runs'.sub('{' + 'workspaceUuid' + '}', CGI.escape(workspace_uuid.to_s)).sub('{' + 'ruleUuid' + '}', CGI.escape(rule_uuid.to_s))
1149
+
1150
+ # query parameters
1151
+ query_params = opts[:query_params] || {}
1152
+
1153
+ # header parameters
1154
+ header_params = opts[:header_params] || {}
1155
+ # HTTP header 'Accept' (if needed)
1156
+ header_params['Accept'] = @api_client.select_header_accept(['application/json']) unless header_params['Accept']
1157
+
1158
+ # form parameters
1159
+ form_params = opts[:form_params] || {}
1160
+
1161
+ # http body (model)
1162
+ post_body = opts[:debug_body]
1163
+
1164
+ # return_type
1165
+ return_type = opts[:debug_return_type] || 'ListRecyclingRuns200Response'
1166
+
1167
+ # auth_names
1168
+ auth_names = opts[:debug_auth_names] || ['bearerAuth']
1169
+
1170
+ new_options = opts.merge(
1171
+ :operation => :"PostsApi.list_recycling_runs",
1172
+ :header_params => header_params,
1173
+ :query_params => query_params,
1174
+ :form_params => form_params,
1175
+ :body => post_body,
1176
+ :auth_names => auth_names,
1177
+ :return_type => return_type
1178
+ )
1179
+
1180
+ data, status_code, headers = @api_client.call_api(:GET, local_var_path, new_options)
1181
+ if @api_client.config.debugging
1182
+ @api_client.config.logger.debug "API called: PostsApi#list_recycling_runs\nData: #{data.inspect}\nStatus code: #{status_code}\nHeaders: #{headers}"
1183
+ end
1184
+ return data, status_code, headers
1185
+ end
1186
+
1187
+ # List RSS feeds
1188
+ # RSS and Atom feeds whose new items become posts, newest first.
1189
+ # @param workspace_uuid [String] UUID of the workspace.
1190
+ # @param [Hash] opts the optional parameters
1191
+ # @return [ListRssFeeds200Response]
1192
+ def list_rss_feeds(workspace_uuid, opts = {})
1193
+ data, _status_code, _headers = list_rss_feeds_with_http_info(workspace_uuid, opts)
1194
+ data
1195
+ end
1196
+
1197
+ # List RSS feeds
1198
+ # RSS and Atom feeds whose new items become posts, newest first.
1199
+ # @param workspace_uuid [String] UUID of the workspace.
1200
+ # @param [Hash] opts the optional parameters
1201
+ # @return [Array<(ListRssFeeds200Response, Integer, Hash)>] ListRssFeeds200Response data, response status code and response headers
1202
+ def list_rss_feeds_with_http_info(workspace_uuid, opts = {})
1203
+ if @api_client.config.debugging
1204
+ @api_client.config.logger.debug 'Calling API: PostsApi.list_rss_feeds ...'
1205
+ end
1206
+ # verify the required parameter 'workspace_uuid' is set
1207
+ if @api_client.config.client_side_validation && workspace_uuid.nil?
1208
+ fail ArgumentError, "Missing the required parameter 'workspace_uuid' when calling PostsApi.list_rss_feeds"
1209
+ end
1210
+ # resource path
1211
+ local_var_path = '/{workspaceUuid}/rss-feeds'.sub('{' + 'workspaceUuid' + '}', CGI.escape(workspace_uuid.to_s))
1212
+
1213
+ # query parameters
1214
+ query_params = opts[:query_params] || {}
1215
+
1216
+ # header parameters
1217
+ header_params = opts[:header_params] || {}
1218
+ # HTTP header 'Accept' (if needed)
1219
+ header_params['Accept'] = @api_client.select_header_accept(['application/json']) unless header_params['Accept']
1220
+
1221
+ # form parameters
1222
+ form_params = opts[:form_params] || {}
1223
+
1224
+ # http body (model)
1225
+ post_body = opts[:debug_body]
1226
+
1227
+ # return_type
1228
+ return_type = opts[:debug_return_type] || 'ListRssFeeds200Response'
1229
+
1230
+ # auth_names
1231
+ auth_names = opts[:debug_auth_names] || ['bearerAuth']
1232
+
1233
+ new_options = opts.merge(
1234
+ :operation => :"PostsApi.list_rss_feeds",
1235
+ :header_params => header_params,
1236
+ :query_params => query_params,
1237
+ :form_params => form_params,
1238
+ :body => post_body,
1239
+ :auth_names => auth_names,
1240
+ :return_type => return_type
1241
+ )
1242
+
1243
+ data, status_code, headers = @api_client.call_api(:GET, local_var_path, new_options)
1244
+ if @api_client.config.debugging
1245
+ @api_client.config.logger.debug "API called: PostsApi#list_rss_feeds\nData: #{data.inspect}\nStatus code: #{status_code}\nHeaders: #{headers}"
1246
+ end
1247
+ return data, status_code, headers
1248
+ end
1249
+
1250
+ # Check an RSS feed now
1251
+ # Reads the feed immediately instead of waiting for the next check. Limited to 6 calls per minute. Admins and members only.
1252
+ # @param workspace_uuid [String] UUID of the workspace.
1253
+ # @param feed_uuid [String] UUID of the RSS feed.
1254
+ # @param [Hash] opts the optional parameters
1255
+ # @return [PollRssFeed200Response]
1256
+ def poll_rss_feed(workspace_uuid, feed_uuid, opts = {})
1257
+ data, _status_code, _headers = poll_rss_feed_with_http_info(workspace_uuid, feed_uuid, opts)
1258
+ data
1259
+ end
1260
+
1261
+ # Check an RSS feed now
1262
+ # Reads the feed immediately instead of waiting for the next check. Limited to 6 calls per minute. Admins and members only.
1263
+ # @param workspace_uuid [String] UUID of the workspace.
1264
+ # @param feed_uuid [String] UUID of the RSS feed.
1265
+ # @param [Hash] opts the optional parameters
1266
+ # @return [Array<(PollRssFeed200Response, Integer, Hash)>] PollRssFeed200Response data, response status code and response headers
1267
+ def poll_rss_feed_with_http_info(workspace_uuid, feed_uuid, opts = {})
1268
+ if @api_client.config.debugging
1269
+ @api_client.config.logger.debug 'Calling API: PostsApi.poll_rss_feed ...'
1270
+ end
1271
+ # verify the required parameter 'workspace_uuid' is set
1272
+ if @api_client.config.client_side_validation && workspace_uuid.nil?
1273
+ fail ArgumentError, "Missing the required parameter 'workspace_uuid' when calling PostsApi.poll_rss_feed"
1274
+ end
1275
+ # verify the required parameter 'feed_uuid' is set
1276
+ if @api_client.config.client_side_validation && feed_uuid.nil?
1277
+ fail ArgumentError, "Missing the required parameter 'feed_uuid' when calling PostsApi.poll_rss_feed"
1278
+ end
1279
+ # resource path
1280
+ local_var_path = '/{workspaceUuid}/rss-feeds/{feedUuid}/poll'.sub('{' + 'workspaceUuid' + '}', CGI.escape(workspace_uuid.to_s)).sub('{' + 'feedUuid' + '}', CGI.escape(feed_uuid.to_s))
1281
+
1282
+ # query parameters
1283
+ query_params = opts[:query_params] || {}
1284
+
1285
+ # header parameters
1286
+ header_params = opts[:header_params] || {}
1287
+ # HTTP header 'Accept' (if needed)
1288
+ header_params['Accept'] = @api_client.select_header_accept(['application/json']) unless header_params['Accept']
1289
+
1290
+ # form parameters
1291
+ form_params = opts[:form_params] || {}
1292
+
1293
+ # http body (model)
1294
+ post_body = opts[:debug_body]
1295
+
1296
+ # return_type
1297
+ return_type = opts[:debug_return_type] || 'PollRssFeed200Response'
1298
+
1299
+ # auth_names
1300
+ auth_names = opts[:debug_auth_names] || ['bearerAuth']
1301
+
1302
+ new_options = opts.merge(
1303
+ :operation => :"PostsApi.poll_rss_feed",
1304
+ :header_params => header_params,
1305
+ :query_params => query_params,
1306
+ :form_params => form_params,
1307
+ :body => post_body,
1308
+ :auth_names => auth_names,
1309
+ :return_type => return_type
1310
+ )
1311
+
1312
+ data, status_code, headers = @api_client.call_api(:POST, local_var_path, new_options)
1313
+ if @api_client.config.debugging
1314
+ @api_client.config.logger.debug "API called: PostsApi#poll_rss_feed\nData: #{data.inspect}\nStatus code: #{status_code}\nHeaders: #{headers}"
1315
+ end
1316
+ return data, status_code, headers
1317
+ end
1318
+
1319
+ # Recycle a post on an interval
1320
+ # Shortcut for creating a `post` recycling rule for this post. Same body as `createRecyclingRule` without `type`, `post_uuid` and `tag_uuid`. Admins and members only.
1321
+ # @param workspace_uuid [String] UUID of the workspace.
1322
+ # @param post_uuid [String] UUID of the post.
1323
+ # @param recycling_rule_settings [RecyclingRuleSettings]
1324
+ # @param [Hash] opts the optional parameters
1325
+ # @return [CreateRecyclingRule201Response]
1326
+ def recycle_post(workspace_uuid, post_uuid, recycling_rule_settings, opts = {})
1327
+ data, _status_code, _headers = recycle_post_with_http_info(workspace_uuid, post_uuid, recycling_rule_settings, opts)
1328
+ data
1329
+ end
1330
+
1331
+ # Recycle a post on an interval
1332
+ # Shortcut for creating a &#x60;post&#x60; recycling rule for this post. Same body as &#x60;createRecyclingRule&#x60; without &#x60;type&#x60;, &#x60;post_uuid&#x60; and &#x60;tag_uuid&#x60;. Admins and members only.
1333
+ # @param workspace_uuid [String] UUID of the workspace.
1334
+ # @param post_uuid [String] UUID of the post.
1335
+ # @param recycling_rule_settings [RecyclingRuleSettings]
1336
+ # @param [Hash] opts the optional parameters
1337
+ # @return [Array<(CreateRecyclingRule201Response, Integer, Hash)>] CreateRecyclingRule201Response data, response status code and response headers
1338
+ def recycle_post_with_http_info(workspace_uuid, post_uuid, recycling_rule_settings, opts = {})
1339
+ if @api_client.config.debugging
1340
+ @api_client.config.logger.debug 'Calling API: PostsApi.recycle_post ...'
1341
+ end
1342
+ # verify the required parameter 'workspace_uuid' is set
1343
+ if @api_client.config.client_side_validation && workspace_uuid.nil?
1344
+ fail ArgumentError, "Missing the required parameter 'workspace_uuid' when calling PostsApi.recycle_post"
1345
+ end
1346
+ # verify the required parameter 'post_uuid' is set
1347
+ if @api_client.config.client_side_validation && post_uuid.nil?
1348
+ fail ArgumentError, "Missing the required parameter 'post_uuid' when calling PostsApi.recycle_post"
1349
+ end
1350
+ # verify the required parameter 'recycling_rule_settings' is set
1351
+ if @api_client.config.client_side_validation && recycling_rule_settings.nil?
1352
+ fail ArgumentError, "Missing the required parameter 'recycling_rule_settings' when calling PostsApi.recycle_post"
1353
+ end
1354
+ # resource path
1355
+ local_var_path = '/{workspaceUuid}/posts/{postUuid}/recycle'.sub('{' + 'workspaceUuid' + '}', CGI.escape(workspace_uuid.to_s)).sub('{' + 'postUuid' + '}', CGI.escape(post_uuid.to_s))
1356
+
1357
+ # query parameters
1358
+ query_params = opts[:query_params] || {}
1359
+
1360
+ # header parameters
1361
+ header_params = opts[:header_params] || {}
1362
+ # HTTP header 'Accept' (if needed)
1363
+ header_params['Accept'] = @api_client.select_header_accept(['application/json']) unless header_params['Accept']
1364
+ # HTTP header 'Content-Type'
1365
+ content_type = @api_client.select_header_content_type(['application/json'])
1366
+ if !content_type.nil?
1367
+ header_params['Content-Type'] = content_type
1368
+ end
1369
+
1370
+ # form parameters
1371
+ form_params = opts[:form_params] || {}
1372
+
1373
+ # http body (model)
1374
+ post_body = opts[:debug_body] || @api_client.object_to_http_body(recycling_rule_settings)
1375
+
1376
+ # return_type
1377
+ return_type = opts[:debug_return_type] || 'CreateRecyclingRule201Response'
1378
+
1379
+ # auth_names
1380
+ auth_names = opts[:debug_auth_names] || ['bearerAuth']
1381
+
1382
+ new_options = opts.merge(
1383
+ :operation => :"PostsApi.recycle_post",
1384
+ :header_params => header_params,
1385
+ :query_params => query_params,
1386
+ :form_params => form_params,
1387
+ :body => post_body,
1388
+ :auth_names => auth_names,
1389
+ :return_type => return_type
1390
+ )
1391
+
1392
+ data, status_code, headers = @api_client.call_api(:POST, local_var_path, new_options)
1393
+ if @api_client.config.debugging
1394
+ @api_client.config.logger.debug "API called: PostsApi#recycle_post\nData: #{data.inspect}\nStatus code: #{status_code}\nHeaders: #{headers}"
1395
+ end
1396
+ return data, status_code, headers
1397
+ end
1398
+
1399
+ # Retry publishing to one account
1400
+ # Re-publishes a post to a single account whose publishing failed. Returns `422` when the account is not on the post, the post is still publishing, or the account did not fail.
1401
+ # @param workspace_uuid [String] UUID of the workspace.
1402
+ # @param post_uuid [String] UUID of the post.
1403
+ # @param account_uuid [String] UUID of the social media account.
1404
+ # @param [Hash] opts the optional parameters
1405
+ # @option opts [String] :idempotency_key Unique key (for example a UUID) that makes the request safe to retry. A repeat with the same key and body within 24 hours returns the stored response with &#x60;Idempotent-Replayed: true&#x60; and has no further effect. Keys are scoped to your user, the workspace, the method and the path.
1406
+ # @return [RetryPostAccountResult]
1407
+ def retry_post_account(workspace_uuid, post_uuid, account_uuid, opts = {})
1408
+ data, _status_code, _headers = retry_post_account_with_http_info(workspace_uuid, post_uuid, account_uuid, opts)
1409
+ data
1410
+ end
1411
+
1412
+ # Retry publishing to one account
1413
+ # Re-publishes a post to a single account whose publishing failed. Returns &#x60;422&#x60; when the account is not on the post, the post is still publishing, or the account did not fail.
1414
+ # @param workspace_uuid [String] UUID of the workspace.
1415
+ # @param post_uuid [String] UUID of the post.
1416
+ # @param account_uuid [String] UUID of the social media account.
1417
+ # @param [Hash] opts the optional parameters
1418
+ # @option opts [String] :idempotency_key Unique key (for example a UUID) that makes the request safe to retry. A repeat with the same key and body within 24 hours returns the stored response with &#x60;Idempotent-Replayed: true&#x60; and has no further effect. Keys are scoped to your user, the workspace, the method and the path.
1419
+ # @return [Array<(RetryPostAccountResult, Integer, Hash)>] RetryPostAccountResult data, response status code and response headers
1420
+ def retry_post_account_with_http_info(workspace_uuid, post_uuid, account_uuid, opts = {})
1421
+ if @api_client.config.debugging
1422
+ @api_client.config.logger.debug 'Calling API: PostsApi.retry_post_account ...'
1423
+ end
1424
+ # verify the required parameter 'workspace_uuid' is set
1425
+ if @api_client.config.client_side_validation && workspace_uuid.nil?
1426
+ fail ArgumentError, "Missing the required parameter 'workspace_uuid' when calling PostsApi.retry_post_account"
1427
+ end
1428
+ # verify the required parameter 'post_uuid' is set
1429
+ if @api_client.config.client_side_validation && post_uuid.nil?
1430
+ fail ArgumentError, "Missing the required parameter 'post_uuid' when calling PostsApi.retry_post_account"
1431
+ end
1432
+ # verify the required parameter 'account_uuid' is set
1433
+ if @api_client.config.client_side_validation && account_uuid.nil?
1434
+ fail ArgumentError, "Missing the required parameter 'account_uuid' when calling PostsApi.retry_post_account"
1435
+ end
1436
+ if @api_client.config.client_side_validation && !opts[:'idempotency_key'].nil? && opts[:'idempotency_key'].to_s.length > 255
1437
+ fail ArgumentError, 'invalid value for "opts[:"idempotency_key"]" when calling PostsApi.retry_post_account, the character length must be smaller than or equal to 255.'
1438
+ end
1439
+
1440
+ if @api_client.config.client_side_validation && !opts[:'idempotency_key'].nil? && opts[:'idempotency_key'].to_s.length < 1
1441
+ fail ArgumentError, 'invalid value for "opts[:"idempotency_key"]" when calling PostsApi.retry_post_account, the character length must be great than or equal to 1.'
1442
+ end
1443
+
1444
+ # resource path
1445
+ local_var_path = '/{workspaceUuid}/posts/retry/{postUuid}/{accountUuid}'.sub('{' + 'workspaceUuid' + '}', CGI.escape(workspace_uuid.to_s)).sub('{' + 'postUuid' + '}', CGI.escape(post_uuid.to_s)).sub('{' + 'accountUuid' + '}', CGI.escape(account_uuid.to_s))
1446
+
1447
+ # query parameters
1448
+ query_params = opts[:query_params] || {}
1449
+
1450
+ # header parameters
1451
+ header_params = opts[:header_params] || {}
1452
+ # HTTP header 'Accept' (if needed)
1453
+ header_params['Accept'] = @api_client.select_header_accept(['application/json']) unless header_params['Accept']
1454
+ header_params[:'Idempotency-Key'] = opts[:'idempotency_key'] if !opts[:'idempotency_key'].nil?
1455
+
1456
+ # form parameters
1457
+ form_params = opts[:form_params] || {}
1458
+
1459
+ # http body (model)
1460
+ post_body = opts[:debug_body]
1461
+
1462
+ # return_type
1463
+ return_type = opts[:debug_return_type] || 'RetryPostAccountResult'
1464
+
1465
+ # auth_names
1466
+ auth_names = opts[:debug_auth_names] || ['bearerAuth']
1467
+
1468
+ new_options = opts.merge(
1469
+ :operation => :"PostsApi.retry_post_account",
1470
+ :header_params => header_params,
1471
+ :query_params => query_params,
1472
+ :form_params => form_params,
1473
+ :body => post_body,
1474
+ :auth_names => auth_names,
1475
+ :return_type => return_type
1476
+ )
1477
+
1478
+ data, status_code, headers = @api_client.call_api(:POST, local_var_path, new_options)
1479
+ if @api_client.config.debugging
1480
+ @api_client.config.logger.debug "API called: PostsApi#retry_post_account\nData: #{data.inspect}\nStatus code: #{status_code}\nHeaders: #{headers}"
1481
+ end
1482
+ return data, status_code, headers
1483
+ end
1484
+
1485
+ # Schedule post
1486
+ # Schedule an existing post. Optionally move it with `date`/`time` (read in `timezone`) and give accounts their own times with `accounts_schedule`. Set `postNow: true` to publish immediately; publishing starts within the request and any per-account times are dropped. Provider requirements are validated and reported as `422`.
1487
+ # @param workspace_uuid [String] UUID of the workspace.
1488
+ # @param post_uuid [String] UUID of the post.
1489
+ # @param schedule_post_request [SchedulePostRequest]
1490
+ # @param [Hash] opts the optional parameters
1491
+ # @option opts [String] :idempotency_key Unique key (for example a UUID) that makes the request safe to retry. A repeat with the same key and body within 24 hours returns the stored response with &#x60;Idempotent-Replayed: true&#x60; and has no further effect. Keys are scoped to your user, the workspace, the method and the path.
1492
+ # @return [ScheduleResult]
1493
+ def schedule_post(workspace_uuid, post_uuid, schedule_post_request, opts = {})
1494
+ data, _status_code, _headers = schedule_post_with_http_info(workspace_uuid, post_uuid, schedule_post_request, opts)
1495
+ data
1496
+ end
1497
+
1498
+ # Schedule post
1499
+ # Schedule an existing post. Optionally move it with &#x60;date&#x60;/&#x60;time&#x60; (read in &#x60;timezone&#x60;) and give accounts their own times with &#x60;accounts_schedule&#x60;. Set &#x60;postNow: true&#x60; to publish immediately; publishing starts within the request and any per-account times are dropped. Provider requirements are validated and reported as &#x60;422&#x60;.
691
1500
  # @param workspace_uuid [String] UUID of the workspace.
692
1501
  # @param post_uuid [String] UUID of the post.
693
1502
  # @param schedule_post_request [SchedulePostRequest]
694
1503
  # @param [Hash] opts the optional parameters
1504
+ # @option opts [String] :idempotency_key Unique key (for example a UUID) that makes the request safe to retry. A repeat with the same key and body within 24 hours returns the stored response with &#x60;Idempotent-Replayed: true&#x60; and has no further effect. Keys are scoped to your user, the workspace, the method and the path.
695
1505
  # @return [Array<(ScheduleResult, Integer, Hash)>] ScheduleResult data, response status code and response headers
696
1506
  def schedule_post_with_http_info(workspace_uuid, post_uuid, schedule_post_request, opts = {})
697
1507
  if @api_client.config.debugging
@@ -709,6 +1519,14 @@ module PostBoost
709
1519
  if @api_client.config.client_side_validation && schedule_post_request.nil?
710
1520
  fail ArgumentError, "Missing the required parameter 'schedule_post_request' when calling PostsApi.schedule_post"
711
1521
  end
1522
+ if @api_client.config.client_side_validation && !opts[:'idempotency_key'].nil? && opts[:'idempotency_key'].to_s.length > 255
1523
+ fail ArgumentError, 'invalid value for "opts[:"idempotency_key"]" when calling PostsApi.schedule_post, the character length must be smaller than or equal to 255.'
1524
+ end
1525
+
1526
+ if @api_client.config.client_side_validation && !opts[:'idempotency_key'].nil? && opts[:'idempotency_key'].to_s.length < 1
1527
+ fail ArgumentError, 'invalid value for "opts[:"idempotency_key"]" when calling PostsApi.schedule_post, the character length must be great than or equal to 1.'
1528
+ end
1529
+
712
1530
  # resource path
713
1531
  local_var_path = '/{workspaceUuid}/posts/schedule/{postUuid}'.sub('{' + 'workspaceUuid' + '}', CGI.escape(workspace_uuid.to_s)).sub('{' + 'postUuid' + '}', CGI.escape(post_uuid.to_s))
714
1532
 
@@ -724,6 +1542,7 @@ module PostBoost
724
1542
  if !content_type.nil?
725
1543
  header_params['Content-Type'] = content_type
726
1544
  end
1545
+ header_params[:'Idempotency-Key'] = opts[:'idempotency_key'] if !opts[:'idempotency_key'].nil?
727
1546
 
728
1547
  # form parameters
729
1548
  form_params = opts[:form_params] || {}
@@ -833,5 +1652,239 @@ module PostBoost
833
1652
  end
834
1653
  return data, status_code, headers
835
1654
  end
1655
+
1656
+ # Update, pause or resume a recycling rule
1657
+ # Changes the interval, limit, placement or accounts, or pauses (`active: false`) and resumes the rule. Fields you leave out keep their value. A rule that reached `max_runs` resumes only with a higher `max_runs`. Admins and members only.
1658
+ # @param workspace_uuid [String] UUID of the workspace.
1659
+ # @param rule_uuid [String] UUID of the recycling rule.
1660
+ # @param recycling_rule_update [RecyclingRuleUpdate]
1661
+ # @param [Hash] opts the optional parameters
1662
+ # @return [CreateRecyclingRule201Response]
1663
+ def update_recycling_rule(workspace_uuid, rule_uuid, recycling_rule_update, opts = {})
1664
+ data, _status_code, _headers = update_recycling_rule_with_http_info(workspace_uuid, rule_uuid, recycling_rule_update, opts)
1665
+ data
1666
+ end
1667
+
1668
+ # Update, pause or resume a recycling rule
1669
+ # Changes the interval, limit, placement or accounts, or pauses (&#x60;active: false&#x60;) and resumes the rule. Fields you leave out keep their value. A rule that reached &#x60;max_runs&#x60; resumes only with a higher &#x60;max_runs&#x60;. Admins and members only.
1670
+ # @param workspace_uuid [String] UUID of the workspace.
1671
+ # @param rule_uuid [String] UUID of the recycling rule.
1672
+ # @param recycling_rule_update [RecyclingRuleUpdate]
1673
+ # @param [Hash] opts the optional parameters
1674
+ # @return [Array<(CreateRecyclingRule201Response, Integer, Hash)>] CreateRecyclingRule201Response data, response status code and response headers
1675
+ def update_recycling_rule_with_http_info(workspace_uuid, rule_uuid, recycling_rule_update, opts = {})
1676
+ if @api_client.config.debugging
1677
+ @api_client.config.logger.debug 'Calling API: PostsApi.update_recycling_rule ...'
1678
+ end
1679
+ # verify the required parameter 'workspace_uuid' is set
1680
+ if @api_client.config.client_side_validation && workspace_uuid.nil?
1681
+ fail ArgumentError, "Missing the required parameter 'workspace_uuid' when calling PostsApi.update_recycling_rule"
1682
+ end
1683
+ # verify the required parameter 'rule_uuid' is set
1684
+ if @api_client.config.client_side_validation && rule_uuid.nil?
1685
+ fail ArgumentError, "Missing the required parameter 'rule_uuid' when calling PostsApi.update_recycling_rule"
1686
+ end
1687
+ # verify the required parameter 'recycling_rule_update' is set
1688
+ if @api_client.config.client_side_validation && recycling_rule_update.nil?
1689
+ fail ArgumentError, "Missing the required parameter 'recycling_rule_update' when calling PostsApi.update_recycling_rule"
1690
+ end
1691
+ # resource path
1692
+ local_var_path = '/{workspaceUuid}/recycling-rules/{ruleUuid}'.sub('{' + 'workspaceUuid' + '}', CGI.escape(workspace_uuid.to_s)).sub('{' + 'ruleUuid' + '}', CGI.escape(rule_uuid.to_s))
1693
+
1694
+ # query parameters
1695
+ query_params = opts[:query_params] || {}
1696
+
1697
+ # header parameters
1698
+ header_params = opts[:header_params] || {}
1699
+ # HTTP header 'Accept' (if needed)
1700
+ header_params['Accept'] = @api_client.select_header_accept(['application/json']) unless header_params['Accept']
1701
+ # HTTP header 'Content-Type'
1702
+ content_type = @api_client.select_header_content_type(['application/json'])
1703
+ if !content_type.nil?
1704
+ header_params['Content-Type'] = content_type
1705
+ end
1706
+
1707
+ # form parameters
1708
+ form_params = opts[:form_params] || {}
1709
+
1710
+ # http body (model)
1711
+ post_body = opts[:debug_body] || @api_client.object_to_http_body(recycling_rule_update)
1712
+
1713
+ # return_type
1714
+ return_type = opts[:debug_return_type] || 'CreateRecyclingRule201Response'
1715
+
1716
+ # auth_names
1717
+ auth_names = opts[:debug_auth_names] || ['bearerAuth']
1718
+
1719
+ new_options = opts.merge(
1720
+ :operation => :"PostsApi.update_recycling_rule",
1721
+ :header_params => header_params,
1722
+ :query_params => query_params,
1723
+ :form_params => form_params,
1724
+ :body => post_body,
1725
+ :auth_names => auth_names,
1726
+ :return_type => return_type
1727
+ )
1728
+
1729
+ data, status_code, headers = @api_client.call_api(:PUT, local_var_path, new_options)
1730
+ if @api_client.config.debugging
1731
+ @api_client.config.logger.debug "API called: PostsApi#update_recycling_rule\nData: #{data.inspect}\nStatus code: #{status_code}\nHeaders: #{headers}"
1732
+ end
1733
+ return data, status_code, headers
1734
+ end
1735
+
1736
+ # Update, pause or resume an RSS feed
1737
+ # Fields you leave out keep their value. Resuming (`active: true`) clears the error backoff. Admins and members only.
1738
+ # @param workspace_uuid [String] UUID of the workspace.
1739
+ # @param feed_uuid [String] UUID of the RSS feed.
1740
+ # @param rss_feed_update [RssFeedUpdate]
1741
+ # @param [Hash] opts the optional parameters
1742
+ # @return [CreateRssFeed201Response]
1743
+ def update_rss_feed(workspace_uuid, feed_uuid, rss_feed_update, opts = {})
1744
+ data, _status_code, _headers = update_rss_feed_with_http_info(workspace_uuid, feed_uuid, rss_feed_update, opts)
1745
+ data
1746
+ end
1747
+
1748
+ # Update, pause or resume an RSS feed
1749
+ # Fields you leave out keep their value. Resuming (&#x60;active: true&#x60;) clears the error backoff. Admins and members only.
1750
+ # @param workspace_uuid [String] UUID of the workspace.
1751
+ # @param feed_uuid [String] UUID of the RSS feed.
1752
+ # @param rss_feed_update [RssFeedUpdate]
1753
+ # @param [Hash] opts the optional parameters
1754
+ # @return [Array<(CreateRssFeed201Response, Integer, Hash)>] CreateRssFeed201Response data, response status code and response headers
1755
+ def update_rss_feed_with_http_info(workspace_uuid, feed_uuid, rss_feed_update, opts = {})
1756
+ if @api_client.config.debugging
1757
+ @api_client.config.logger.debug 'Calling API: PostsApi.update_rss_feed ...'
1758
+ end
1759
+ # verify the required parameter 'workspace_uuid' is set
1760
+ if @api_client.config.client_side_validation && workspace_uuid.nil?
1761
+ fail ArgumentError, "Missing the required parameter 'workspace_uuid' when calling PostsApi.update_rss_feed"
1762
+ end
1763
+ # verify the required parameter 'feed_uuid' is set
1764
+ if @api_client.config.client_side_validation && feed_uuid.nil?
1765
+ fail ArgumentError, "Missing the required parameter 'feed_uuid' when calling PostsApi.update_rss_feed"
1766
+ end
1767
+ # verify the required parameter 'rss_feed_update' is set
1768
+ if @api_client.config.client_side_validation && rss_feed_update.nil?
1769
+ fail ArgumentError, "Missing the required parameter 'rss_feed_update' when calling PostsApi.update_rss_feed"
1770
+ end
1771
+ # resource path
1772
+ local_var_path = '/{workspaceUuid}/rss-feeds/{feedUuid}'.sub('{' + 'workspaceUuid' + '}', CGI.escape(workspace_uuid.to_s)).sub('{' + 'feedUuid' + '}', CGI.escape(feed_uuid.to_s))
1773
+
1774
+ # query parameters
1775
+ query_params = opts[:query_params] || {}
1776
+
1777
+ # header parameters
1778
+ header_params = opts[:header_params] || {}
1779
+ # HTTP header 'Accept' (if needed)
1780
+ header_params['Accept'] = @api_client.select_header_accept(['application/json']) unless header_params['Accept']
1781
+ # HTTP header 'Content-Type'
1782
+ content_type = @api_client.select_header_content_type(['application/json'])
1783
+ if !content_type.nil?
1784
+ header_params['Content-Type'] = content_type
1785
+ end
1786
+
1787
+ # form parameters
1788
+ form_params = opts[:form_params] || {}
1789
+
1790
+ # http body (model)
1791
+ post_body = opts[:debug_body] || @api_client.object_to_http_body(rss_feed_update)
1792
+
1793
+ # return_type
1794
+ return_type = opts[:debug_return_type] || 'CreateRssFeed201Response'
1795
+
1796
+ # auth_names
1797
+ auth_names = opts[:debug_auth_names] || ['bearerAuth']
1798
+
1799
+ new_options = opts.merge(
1800
+ :operation => :"PostsApi.update_rss_feed",
1801
+ :header_params => header_params,
1802
+ :query_params => query_params,
1803
+ :form_params => form_params,
1804
+ :body => post_body,
1805
+ :auth_names => auth_names,
1806
+ :return_type => return_type
1807
+ )
1808
+
1809
+ data, status_code, headers = @api_client.call_api(:PUT, local_var_path, new_options)
1810
+ if @api_client.config.debugging
1811
+ @api_client.config.logger.debug "API called: PostsApi#update_rss_feed\nData: #{data.inspect}\nStatus code: #{status_code}\nHeaders: #{headers}"
1812
+ end
1813
+ return data, status_code, headers
1814
+ end
1815
+
1816
+ # Validate post (dry run)
1817
+ # Runs everything create-post checks without creating anything: request validation, network requirements (text length, media count and type, links) for every given account, whether or not the post is scheduled, and the guardrails (duplicate content, daily caps, account health). Always answers `200`; read `valid`. Any workspace member, including viewers, may call it. Recommended agent loop: account health, validate, then create.
1818
+ # @param workspace_uuid [String] UUID of the workspace.
1819
+ # @param post_input [PostInput]
1820
+ # @param [Hash] opts the optional parameters
1821
+ # @return [PreflightResult]
1822
+ def validate_post(workspace_uuid, post_input, opts = {})
1823
+ data, _status_code, _headers = validate_post_with_http_info(workspace_uuid, post_input, opts)
1824
+ data
1825
+ end
1826
+
1827
+ # Validate post (dry run)
1828
+ # Runs everything create-post checks without creating anything: request validation, network requirements (text length, media count and type, links) for every given account, whether or not the post is scheduled, and the guardrails (duplicate content, daily caps, account health). Always answers &#x60;200&#x60;; read &#x60;valid&#x60;. Any workspace member, including viewers, may call it. Recommended agent loop: account health, validate, then create.
1829
+ # @param workspace_uuid [String] UUID of the workspace.
1830
+ # @param post_input [PostInput]
1831
+ # @param [Hash] opts the optional parameters
1832
+ # @return [Array<(PreflightResult, Integer, Hash)>] PreflightResult data, response status code and response headers
1833
+ def validate_post_with_http_info(workspace_uuid, post_input, opts = {})
1834
+ if @api_client.config.debugging
1835
+ @api_client.config.logger.debug 'Calling API: PostsApi.validate_post ...'
1836
+ end
1837
+ # verify the required parameter 'workspace_uuid' is set
1838
+ if @api_client.config.client_side_validation && workspace_uuid.nil?
1839
+ fail ArgumentError, "Missing the required parameter 'workspace_uuid' when calling PostsApi.validate_post"
1840
+ end
1841
+ # verify the required parameter 'post_input' is set
1842
+ if @api_client.config.client_side_validation && post_input.nil?
1843
+ fail ArgumentError, "Missing the required parameter 'post_input' when calling PostsApi.validate_post"
1844
+ end
1845
+ # resource path
1846
+ local_var_path = '/{workspaceUuid}/posts/validate'.sub('{' + 'workspaceUuid' + '}', CGI.escape(workspace_uuid.to_s))
1847
+
1848
+ # query parameters
1849
+ query_params = opts[:query_params] || {}
1850
+
1851
+ # header parameters
1852
+ header_params = opts[:header_params] || {}
1853
+ # HTTP header 'Accept' (if needed)
1854
+ header_params['Accept'] = @api_client.select_header_accept(['application/json']) unless header_params['Accept']
1855
+ # HTTP header 'Content-Type'
1856
+ content_type = @api_client.select_header_content_type(['application/json'])
1857
+ if !content_type.nil?
1858
+ header_params['Content-Type'] = content_type
1859
+ end
1860
+
1861
+ # form parameters
1862
+ form_params = opts[:form_params] || {}
1863
+
1864
+ # http body (model)
1865
+ post_body = opts[:debug_body] || @api_client.object_to_http_body(post_input)
1866
+
1867
+ # return_type
1868
+ return_type = opts[:debug_return_type] || 'PreflightResult'
1869
+
1870
+ # auth_names
1871
+ auth_names = opts[:debug_auth_names] || ['bearerAuth']
1872
+
1873
+ new_options = opts.merge(
1874
+ :operation => :"PostsApi.validate_post",
1875
+ :header_params => header_params,
1876
+ :query_params => query_params,
1877
+ :form_params => form_params,
1878
+ :body => post_body,
1879
+ :auth_names => auth_names,
1880
+ :return_type => return_type
1881
+ )
1882
+
1883
+ data, status_code, headers = @api_client.call_api(:POST, local_var_path, new_options)
1884
+ if @api_client.config.debugging
1885
+ @api_client.config.logger.debug "API called: PostsApi#validate_post\nData: #{data.inspect}\nStatus code: #{status_code}\nHeaders: #{headers}"
1886
+ end
1887
+ return data, status_code, headers
1888
+ end
836
1889
  end
837
1890
  end