postboost 1.0.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 (815) 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 +252 -0
  5. data/SECURITY.md +9 -0
  6. data/docs/AIApi.md +871 -0
  7. data/docs/AICredits.md +22 -0
  8. data/docs/AIUsage.md +20 -0
  9. data/docs/AIUsageText.md +24 -0
  10. data/docs/Account.md +19 -9
  11. data/docs/AccountAnalytics.md +28 -0
  12. data/docs/AccountAnalyticsInitialSync.md +20 -0
  13. data/docs/AccountConnectionHealth.md +34 -0
  14. data/docs/AccountErrorsInner.md +49 -0
  15. data/docs/AccountErrorsInnerOneOf.md +24 -0
  16. data/docs/AccountGroup.md +24 -0
  17. data/docs/AccountGroupInput.md +20 -0
  18. data/docs/AccountGroupsApi.md +372 -0
  19. data/docs/AccountHealth.md +34 -0
  20. data/docs/AccountHealthDailyCap.md +20 -0
  21. data/docs/AccountSchedule.md +22 -0
  22. data/docs/AccountsApi.md +231 -5
  23. data/docs/ActivityApi.md +87 -0
  24. data/docs/AddCompetitor202Response.md +20 -0
  25. data/docs/AddCompetitor409Response.md +20 -0
  26. data/docs/AddPostToQueueRequest.md +18 -0
  27. data/docs/AgentPageMeta.md +24 -0
  28. data/docs/AgentProposal.md +44 -0
  29. data/docs/AgentProposalDecision.md +18 -0
  30. data/docs/AgentRun.md +44 -0
  31. data/docs/AgentsApi.md +745 -0
  32. data/docs/AnalyticsApi.md +899 -0
  33. data/docs/AnalyticsPeriod.md +24 -0
  34. data/docs/AnalyticsSummary.md +20 -0
  35. data/docs/AnalyticsSummaryData.md +38 -0
  36. data/docs/ApiActivity.md +36 -0
  37. data/docs/ApiActivityOutcome.md +15 -0
  38. data/docs/ApiKey.md +32 -0
  39. data/docs/ApiKeyAbility.md +15 -0
  40. data/docs/ApiKeyInput.md +24 -0
  41. data/docs/ApproveAgentProposal200Response.md +18 -0
  42. data/docs/ApproveAgentProposal409Response.md +20 -0
  43. data/docs/ApproveInboxReplyDraft403Response.md +20 -0
  44. data/docs/ApprovePostRequest.md +24 -0
  45. data/docs/BestPostingTimes.md +20 -0
  46. data/docs/BestPostingTimesTimesInner.md +24 -0
  47. data/docs/BlogToSocial200Response.md +20 -0
  48. data/docs/BlogToSocial429Response.md +18 -0
  49. data/docs/BlogToSocialCaption.md +28 -0
  50. data/docs/BlogToSocialInput.md +44 -0
  51. data/docs/BlogToSocialMedia.md +20 -0
  52. data/docs/BlogToSocialResponse.md +30 -0
  53. data/docs/BrandVoice.md +48 -0
  54. data/docs/BrandVoiceInput.md +46 -0
  55. data/docs/BrandVoiceMeta.md +18 -0
  56. data/docs/CancelSubscription422Response.md +20 -0
  57. data/docs/CancelSubscription422ResponseErrors.md +18 -0
  58. data/docs/CancelSubscriptionRequest.md +18 -0
  59. data/docs/ChannelAccount.md +36 -0
  60. data/docs/CodedError.md +22 -0
  61. data/docs/Competitor.md +34 -0
  62. data/docs/CompetitorDetail.md +38 -0
  63. data/docs/CompetitorInput.md +20 -0
  64. data/docs/CompetitorMedia.md +28 -0
  65. data/docs/CompetitorSnapshot.md +22 -0
  66. data/docs/CompetitorsApi.md +296 -0
  67. data/docs/CompleteChunkedUploadRequest.md +20 -0
  68. data/docs/ConnectChannelInput.md +24 -0
  69. data/docs/CreateAccountGroup201Response.md +18 -0
  70. data/docs/CreateAgent201Response.md +18 -0
  71. data/docs/CreateApiKey201Response.md +18 -0
  72. data/docs/CreateApiKey201ResponseData.md +34 -0
  73. data/docs/CreateHashtagGroup201Response.md +18 -0
  74. data/docs/CreateInboxReplyDraft201Response.md +18 -0
  75. data/docs/CreateMediaFolderRequest.md +20 -0
  76. data/docs/CreateMention201Response.md +18 -0
  77. data/docs/CreateRecyclingRule201Response.md +18 -0
  78. data/docs/CreateReportExport201Response.md +18 -0
  79. data/docs/CreateResellerClient201Response.md +18 -0
  80. data/docs/CreateRssFeed201Response.md +18 -0
  81. data/docs/CreateTemplate201Response.md +18 -0
  82. data/docs/CreateWebhookSubscription201Response.md +18 -0
  83. data/docs/CreateWebhookSubscription201ResponseData.md +30 -0
  84. data/docs/DeleteAgent200Response.md +18 -0
  85. data/docs/DeleteMediaBulkRequest.md +1 -1
  86. data/docs/DeleteMediaBulkRequestItemsInner.md +49 -0
  87. data/docs/DeleteMediaFolderRequest.md +18 -0
  88. data/docs/DeleteResult.md +3 -3
  89. data/docs/GetAccountHealth200Response.md +18 -0
  90. data/docs/GetBrandVoice200Response.md +18 -0
  91. data/docs/GetCompetitor200Response.md +18 -0
  92. data/docs/GetInboxConversation200Response.md +18 -0
  93. data/docs/GetPostingSchedule200Response.md +18 -0
  94. data/docs/GetReportBranding200Response.md +18 -0
  95. data/docs/GuardrailError.md +28 -0
  96. data/docs/HashtagGroup.md +22 -0
  97. data/docs/HashtagGroupInput.md +20 -0
  98. data/docs/HashtagGroupsApi.md +372 -0
  99. data/docs/ImageAltText200Response.md +18 -0
  100. data/docs/ImageAltTextInput.md +18 -0
  101. data/docs/ImageAltTextResponse.md +24 -0
  102. data/docs/ImageCreditBalance.md +28 -0
  103. data/docs/ImageEditInput.md +30 -0
  104. data/docs/ImageGenerate200Response.md +20 -0
  105. data/docs/ImageGenerate429Response.md +18 -0
  106. data/docs/ImageGenerateInput.md +38 -0
  107. data/docs/ImageGenerationResponse.md +30 -0
  108. data/docs/ImagePrompt200Response.md +20 -0
  109. data/docs/ImagePrompt429Response.md +18 -0
  110. data/docs/ImagePromptInput.md +30 -0
  111. data/docs/ImagePromptResponse.md +18 -0
  112. data/docs/ImageVariations200Response.md +18 -0
  113. data/docs/ImageVariationsInput.md +24 -0
  114. data/docs/ImageVariationsResponse.md +26 -0
  115. data/docs/InboxApi.md +758 -0
  116. data/docs/InboxAuthor.md +22 -0
  117. data/docs/InboxConversation.md +46 -0
  118. data/docs/InboxConversationAccount.md +24 -0
  119. data/docs/InboxConversationUpdate.md +20 -0
  120. data/docs/InboxMessage.md +32 -0
  121. data/docs/InboxMessageAuthor.md +22 -0
  122. data/docs/InboxReplyDraft.md +42 -0
  123. data/docs/InboxReplyDraftApprove.md +18 -0
  124. data/docs/InboxReplyDraftEdit.md +18 -0
  125. data/docs/InboxReplyDraftInput.md +20 -0
  126. data/docs/{InitiateChunkedUpload200Response.md → InitiateChunkedUpload201Response.md} +2 -2
  127. data/docs/{InitiateRemoteUpload200Response.md → InitiateRemoteUpload201Response.md} +7 -7
  128. data/docs/{InitiateRemoteUpload200ResponseOneOf.md → InitiateRemoteUpload201ResponseOneOf.md} +2 -2
  129. data/docs/InitiateRemoteUploadRequest.md +3 -1
  130. data/docs/LearnBrandVoiceInput.md +24 -0
  131. data/docs/LearnBrandVoiceResponse.md +20 -0
  132. data/docs/LearnBrandVoiceResponseMeta.md +26 -0
  133. data/docs/ListAccountGroups200Response.md +22 -0
  134. data/docs/ListAgentProposals200Response.md +20 -0
  135. data/docs/ListAgentRuns200Response.md +20 -0
  136. data/docs/ListAgents200Response.md +18 -0
  137. data/docs/ListApiActivity200Response.md +22 -0
  138. data/docs/ListApiKeys200Response.md +18 -0
  139. data/docs/ListCompetitors200Response.md +18 -0
  140. data/docs/ListHashtagGroups200Response.md +22 -0
  141. data/docs/ListInboxConversations200Response.md +22 -0
  142. data/docs/ListInboxReplyDrafts200Response.md +22 -0
  143. data/docs/ListMediaFolders200Response.md +18 -0
  144. data/docs/ListMentions200Response.md +22 -0
  145. data/docs/ListMyWorkspaces200Response.md +18 -0
  146. data/docs/ListRecyclingRules200Response.md +18 -0
  147. data/docs/ListRecyclingRuns200Response.md +18 -0
  148. data/docs/ListReportExports200Response.md +18 -0
  149. data/docs/ListResellerClients200Response.md +20 -0
  150. data/docs/ListRssFeeds200Response.md +18 -0
  151. data/docs/ListTemplates200Response.md +22 -0
  152. data/docs/ListWebhookSubscriptions200Response.md +18 -0
  153. data/docs/Media.md +22 -8
  154. data/docs/MediaApi.md +435 -31
  155. data/docs/MediaBase64Input.md +24 -0
  156. data/docs/MediaFolder.md +24 -0
  157. data/docs/MediaFolderInput.md +20 -0
  158. data/docs/MediaFolderRef.md +20 -0
  159. data/docs/Mention.md +28 -0
  160. data/docs/MentionIdentity.md +24 -0
  161. data/docs/MentionIdentityInput.md +26 -0
  162. data/docs/MentionInput.md +22 -0
  163. data/docs/MentionsApi.md +379 -0
  164. data/docs/MessageOnly.md +18 -0
  165. data/docs/PollRssFeed200Response.md +22 -0
  166. data/docs/Post.md +10 -8
  167. data/docs/PostAnalytics.md +22 -0
  168. data/docs/PostContent.md +1 -1
  169. data/docs/PostInput.md +8 -2
  170. data/docs/PostOptionsInstagram.md +22 -0
  171. data/docs/PostOptionsTikTok.md +34 -0
  172. data/docs/PostOptionsYoutube.md +24 -0
  173. data/docs/PostVersion.md +4 -2
  174. data/docs/PostVersionOptions.md +24 -0
  175. data/docs/PostingSchedule.md +28 -0
  176. data/docs/PostingScheduleApi.md +377 -0
  177. data/docs/PostingScheduleDay.md +22 -0
  178. data/docs/PostingScheduleDayTimesInner.md +18 -0
  179. data/docs/PostingScheduleInput.md +24 -0
  180. data/docs/PostingTimeSlot.md +22 -0
  181. data/docs/PostingTimes.md +32 -0
  182. data/docs/PostingTimesBestInner.md +24 -0
  183. data/docs/PostingTimesDayIntervalsInnerInner.md +28 -0
  184. data/docs/PostingTimesDaysInner.md +24 -0
  185. data/docs/PostsApi.md +1264 -82
  186. data/docs/PreflightResult.md +26 -0
  187. data/docs/PublicWorkspace.md +24 -0
  188. data/docs/PublicWorkspacePivot.md +22 -0
  189. data/docs/PublishProgress.md +22 -0
  190. data/docs/QueueSlots.md +20 -0
  191. data/docs/Receipt.md +8 -8
  192. data/docs/ReceiptsApi.md +15 -1
  193. data/docs/RecommendedPostingTimes.md +26 -0
  194. data/docs/ReconnectLink.md +22 -0
  195. data/docs/RecyclingRule.md +42 -0
  196. data/docs/RecyclingRuleInput.md +34 -0
  197. data/docs/RecyclingRuleSettings.md +28 -0
  198. data/docs/RecyclingRuleUpdate.md +28 -0
  199. data/docs/RecyclingRun.md +28 -0
  200. data/docs/RemoveGenericSubscription422Response.md +18 -0
  201. data/docs/ReportBranding.md +28 -0
  202. data/docs/ReportBrandingInput.md +24 -0
  203. data/docs/ReportExport.md +42 -0
  204. data/docs/ReportExportInput.md +28 -0
  205. data/docs/RepurposeContent200Response.md +20 -0
  206. data/docs/RepurposeInput.md +54 -0
  207. data/docs/RepurposeInputTheme.md +22 -0
  208. data/docs/RepurposeResult.md +32 -0
  209. data/docs/RepurposeResultMedia.md +20 -0
  210. data/docs/RepurposeResultSource.md +22 -0
  211. data/docs/RepurposeSlide.md +20 -0
  212. data/docs/ResellerClient.md +32 -0
  213. data/docs/ResellerClientInput.md +18 -0
  214. data/docs/ResellerClientUsage.md +20 -0
  215. data/docs/RetryPostAccountResult.md +22 -0
  216. data/docs/RssFeed.md +38 -0
  217. data/docs/RssFeedInput.md +30 -0
  218. data/docs/RssFeedUpdate.md +30 -0
  219. data/docs/RunAgent202Response.md +18 -0
  220. data/docs/SchedulePostRequest.md +9 -1
  221. data/docs/ScheduleResult.md +4 -2
  222. data/docs/Subscription.md +5 -5
  223. data/docs/SubscriptionsApi.md +27 -5
  224. data/docs/Tag.md +4 -4
  225. data/docs/TagsApi.md +18 -4
  226. data/docs/Template.md +22 -0
  227. data/docs/TemplateContentItem.md +20 -0
  228. data/docs/TemplateInput.md +20 -0
  229. data/docs/TemplateInputContentInner.md +20 -0
  230. data/docs/TemplatesApi.md +372 -0
  231. data/docs/UpdateMediaRequest.md +6 -2
  232. data/docs/{UploadChunk200Response.md → UploadChunk201Response.md} +2 -2
  233. data/docs/User.md +7 -5
  234. data/docs/UsersApi.md +15 -1
  235. data/docs/WebhookEventName.md +15 -0
  236. data/docs/WebhookEventPayload.md +20 -0
  237. data/docs/WebhookSubscription.md +28 -0
  238. data/docs/WebhookSubscriptionInput.md +24 -0
  239. data/docs/WebhooksApi.md +221 -0
  240. data/docs/Workspace.md +8 -6
  241. data/docs/WorkspaceAgent.md +34 -0
  242. data/docs/WorkspaceAgentInput.md +26 -0
  243. data/docs/WorkspaceAgentSettings.md +26 -0
  244. data/docs/WorkspaceAgentUpdate.md +24 -0
  245. data/docs/WorkspaceInput.md +1 -1
  246. data/docs/WorkspacesApi.md +582 -3
  247. data/docs/XUsage.md +28 -0
  248. data/docs/XUsageCounter.md +20 -0
  249. data/lib/postboost/api/account_groups_api.rb +395 -0
  250. data/lib/postboost/api/accounts_api.rb +233 -4
  251. data/lib/postboost/api/activity_api.rb +97 -0
  252. data/lib/postboost/api/agents_api.rb +771 -0
  253. data/lib/postboost/api/ai_api.rb +884 -0
  254. data/lib/postboost/api/analytics_api.rb +910 -0
  255. data/lib/postboost/api/competitors_api.rb +300 -0
  256. data/lib/postboost/api/hashtag_groups_api.rb +395 -0
  257. data/lib/postboost/api/inbox_api.rb +789 -0
  258. data/lib/postboost/api/media_api.rb +496 -24
  259. data/lib/postboost/api/mentions_api.rb +397 -0
  260. data/lib/postboost/api/posting_schedule_api.rb +389 -0
  261. data/lib/postboost/api/posts_api.rb +1321 -104
  262. data/lib/postboost/api/receipts_api.rb +17 -2
  263. data/lib/postboost/api/subscriptions_api.rb +28 -3
  264. data/lib/postboost/api/tags_api.rb +23 -2
  265. data/lib/postboost/api/templates_api.rb +395 -0
  266. data/lib/postboost/api/users_api.rb +17 -2
  267. data/lib/postboost/api/webhooks_api.rb +228 -0
  268. data/lib/postboost/api/workspaces_api.rb +545 -2
  269. data/lib/postboost/api_client.rb +2 -2
  270. data/lib/postboost/api_error.rb +2 -2
  271. data/lib/postboost/configuration.rb +2 -2
  272. data/lib/postboost/models/account.rb +145 -4
  273. data/lib/postboost/models/account_analytics.rb +308 -0
  274. data/lib/postboost/models/account_analytics_initial_sync.rb +231 -0
  275. data/lib/postboost/models/account_connection_health.rb +389 -0
  276. data/lib/postboost/models/account_errors_inner.rb +105 -0
  277. data/lib/postboost/models/account_errors_inner_one_of.rb +243 -0
  278. data/lib/postboost/models/account_group.rb +271 -0
  279. data/lib/postboost/models/account_group_input.rb +252 -0
  280. data/lib/postboost/models/account_health.rb +352 -0
  281. data/lib/postboost/models/account_health_daily_cap.rb +239 -0
  282. data/lib/postboost/models/account_schedule.rb +255 -0
  283. data/lib/postboost/models/add_competitor202_response.rb +271 -0
  284. data/lib/postboost/models/add_competitor409_response.rb +223 -0
  285. data/lib/postboost/models/add_generic_subscription_request.rb +2 -2
  286. data/lib/postboost/models/add_post_to_queue_request.rb +215 -0
  287. data/lib/postboost/models/agent_page_meta.rb +269 -0
  288. data/lib/postboost/models/agent_proposal.rb +444 -0
  289. data/lib/postboost/models/agent_proposal_decision.rb +233 -0
  290. data/lib/postboost/models/agent_run.rb +434 -0
  291. data/lib/postboost/models/ai_credits.rb +256 -0
  292. data/lib/postboost/models/ai_usage.rb +237 -0
  293. data/lib/postboost/models/ai_usage_text.rb +252 -0
  294. data/lib/postboost/models/analytics_period.rb +270 -0
  295. data/lib/postboost/models/analytics_summary.rb +237 -0
  296. data/lib/postboost/models/analytics_summary_data.rb +327 -0
  297. data/lib/postboost/models/api_activity.rb +359 -0
  298. data/lib/postboost/models/api_activity_outcome.rb +49 -0
  299. data/lib/postboost/models/api_key.rb +308 -0
  300. data/lib/postboost/models/api_key_ability.rb +43 -0
  301. data/lib/postboost/models/api_key_input.rb +316 -0
  302. data/lib/postboost/models/approve_agent_proposal200_response.rb +221 -0
  303. data/lib/postboost/models/approve_agent_proposal409_response.rb +237 -0
  304. data/lib/postboost/models/approve_inbox_reply_draft403_response.rb +264 -0
  305. data/lib/postboost/models/approve_post_request.rb +247 -0
  306. data/lib/postboost/models/best_posting_times.rb +240 -0
  307. data/lib/postboost/models/best_posting_times_times_inner.rb +269 -0
  308. data/lib/postboost/models/blog_to_social200_response.rb +223 -0
  309. data/lib/postboost/models/blog_to_social429_response.rb +214 -0
  310. data/lib/postboost/models/blog_to_social_caption.rb +265 -0
  311. data/lib/postboost/models/blog_to_social_input.rb +548 -0
  312. data/lib/postboost/models/blog_to_social_media.rb +226 -0
  313. data/lib/postboost/models/blog_to_social_response.rb +276 -0
  314. data/lib/postboost/models/brand_voice.rb +531 -0
  315. data/lib/postboost/models/brand_voice_input.rb +646 -0
  316. data/lib/postboost/models/brand_voice_meta.rb +222 -0
  317. data/lib/postboost/models/cancel_subscription422_response.rb +223 -0
  318. data/lib/postboost/models/cancel_subscription422_response_errors.rb +216 -0
  319. data/lib/postboost/models/cancel_subscription_request.rb +217 -0
  320. data/lib/postboost/models/change_subscription_plan_request.rb +2 -2
  321. data/lib/postboost/models/channel_account.rb +380 -0
  322. data/lib/postboost/models/checkout_subscription200_response.rb +2 -2
  323. data/lib/postboost/models/checkout_subscription_request.rb +2 -2
  324. data/lib/postboost/models/coded_error.rb +242 -0
  325. data/lib/postboost/models/competitor.rb +320 -0
  326. data/lib/postboost/models/competitor_detail.rb +358 -0
  327. data/lib/postboost/models/competitor_input.rb +258 -0
  328. data/lib/postboost/models/competitor_media.rb +263 -0
  329. data/lib/postboost/models/competitor_snapshot.rb +234 -0
  330. data/lib/postboost/models/complete_chunked_upload_request.rb +243 -0
  331. data/lib/postboost/models/connect_channel_input.rb +265 -0
  332. data/lib/postboost/models/create_account_group201_response.rb +221 -0
  333. data/lib/postboost/models/create_agent201_response.rb +221 -0
  334. data/lib/postboost/models/create_api_key201_response.rb +221 -0
  335. data/lib/postboost/models/create_api_key201_response_data.rb +327 -0
  336. data/lib/postboost/models/create_hashtag_group201_response.rb +221 -0
  337. data/lib/postboost/models/create_inbox_reply_draft201_response.rb +221 -0
  338. data/lib/postboost/models/create_media_folder_request.rb +258 -0
  339. data/lib/postboost/models/create_mention201_response.rb +214 -0
  340. data/lib/postboost/models/create_recycling_rule201_response.rb +221 -0
  341. data/lib/postboost/models/create_report_export201_response.rb +221 -0
  342. data/lib/postboost/models/create_reseller_client201_response.rb +221 -0
  343. data/lib/postboost/models/create_rss_feed201_response.rb +221 -0
  344. data/lib/postboost/models/create_template201_response.rb +221 -0
  345. data/lib/postboost/models/create_webhook_subscription201_response.rb +221 -0
  346. data/lib/postboost/models/create_webhook_subscription201_response_data.rb +320 -0
  347. data/lib/postboost/models/delete_agent200_response.rb +221 -0
  348. data/lib/postboost/models/delete_media_bulk_request.rb +23 -4
  349. data/lib/postboost/models/delete_media_bulk_request_items_inner.rb +105 -0
  350. data/lib/postboost/models/delete_media_folder_request.rb +216 -0
  351. data/lib/postboost/models/delete_mode.rb +2 -2
  352. data/lib/postboost/models/delete_post_request.rb +2 -2
  353. data/lib/postboost/models/delete_posts_bulk_request.rb +2 -2
  354. data/lib/postboost/models/delete_receipts_bulk_request.rb +2 -2
  355. data/lib/postboost/models/delete_result.rb +23 -2
  356. data/lib/postboost/models/delete_user400_response.rb +2 -2
  357. data/lib/postboost/models/delete_users_bulk_request.rb +2 -2
  358. data/lib/postboost/models/delete_workspaces_bulk_request.rb +2 -2
  359. data/lib/postboost/models/get_account_health200_response.rb +223 -0
  360. data/lib/postboost/models/get_brand_voice200_response.rb +217 -0
  361. data/lib/postboost/models/get_competitor200_response.rb +221 -0
  362. data/lib/postboost/models/get_inbox_conversation200_response.rb +221 -0
  363. data/lib/postboost/models/get_posting_schedule200_response.rb +221 -0
  364. data/lib/postboost/models/get_remote_upload_status200_response.rb +2 -2
  365. data/lib/postboost/models/get_report_branding200_response.rb +221 -0
  366. data/lib/postboost/models/guardrail_error.rb +304 -0
  367. data/lib/postboost/models/hashtag_group.rb +254 -0
  368. data/lib/postboost/models/hashtag_group_input.rb +275 -0
  369. data/lib/postboost/models/image_alt_text200_response.rb +221 -0
  370. data/lib/postboost/models/image_alt_text_input.rb +221 -0
  371. data/lib/postboost/models/image_alt_text_response.rb +262 -0
  372. data/lib/postboost/models/image_credit_balance.rb +295 -0
  373. data/lib/postboost/models/image_edit_input.rb +387 -0
  374. data/lib/postboost/models/image_generate200_response.rb +230 -0
  375. data/lib/postboost/models/image_generate429_response.rb +214 -0
  376. data/lib/postboost/models/image_generate_input.rb +479 -0
  377. data/lib/postboost/models/image_generation_response.rb +305 -0
  378. data/lib/postboost/models/image_prompt200_response.rb +230 -0
  379. data/lib/postboost/models/image_prompt429_response.rb +214 -0
  380. data/lib/postboost/models/image_prompt_input.rb +377 -0
  381. data/lib/postboost/models/image_prompt_response.rb +221 -0
  382. data/lib/postboost/models/image_variations200_response.rb +221 -0
  383. data/lib/postboost/models/image_variations_input.rb +328 -0
  384. data/lib/postboost/models/image_variations_response.rb +280 -0
  385. data/lib/postboost/models/inbox_author.rb +235 -0
  386. data/lib/postboost/models/inbox_conversation.rb +425 -0
  387. data/lib/postboost/models/inbox_conversation_account.rb +241 -0
  388. data/lib/postboost/models/inbox_conversation_update.rb +257 -0
  389. data/lib/postboost/models/inbox_message.rb +360 -0
  390. data/lib/postboost/models/inbox_message_author.rb +235 -0
  391. data/lib/postboost/models/inbox_reply_draft.rb +410 -0
  392. data/lib/postboost/models/inbox_reply_draft_approve.rb +215 -0
  393. data/lib/postboost/models/inbox_reply_draft_edit.rb +221 -0
  394. data/lib/postboost/models/inbox_reply_draft_input.rb +232 -0
  395. data/lib/postboost/models/{initiate_chunked_upload200_response.rb → initiate_chunked_upload201_response.rb} +5 -5
  396. data/lib/postboost/models/initiate_chunked_upload_request.rb +2 -2
  397. data/lib/postboost/models/{initiate_remote_upload200_response.rb → initiate_remote_upload201_response.rb} +4 -4
  398. data/lib/postboost/models/{initiate_remote_upload200_response_one_of.rb → initiate_remote_upload201_response_one_of.rb} +5 -5
  399. data/lib/postboost/models/initiate_remote_upload_request.rb +16 -6
  400. data/lib/postboost/models/learn_brand_voice_input.rb +300 -0
  401. data/lib/postboost/models/learn_brand_voice_response.rb +237 -0
  402. data/lib/postboost/models/learn_brand_voice_response_meta.rb +281 -0
  403. data/lib/postboost/models/list_account_groups200_response.rb +248 -0
  404. data/lib/postboost/models/list_accounts200_response.rb +2 -2
  405. data/lib/postboost/models/list_agent_proposals200_response.rb +239 -0
  406. data/lib/postboost/models/list_agent_runs200_response.rb +239 -0
  407. data/lib/postboost/models/list_agents200_response.rb +223 -0
  408. data/lib/postboost/models/list_api_activity200_response.rb +241 -0
  409. data/lib/postboost/models/list_api_keys200_response.rb +223 -0
  410. data/lib/postboost/models/list_competitors200_response.rb +223 -0
  411. data/lib/postboost/models/list_hashtag_groups200_response.rb +248 -0
  412. data/lib/postboost/models/list_inbox_conversations200_response.rb +241 -0
  413. data/lib/postboost/models/list_inbox_reply_drafts200_response.rb +241 -0
  414. data/lib/postboost/models/list_media200_response.rb +2 -2
  415. data/lib/postboost/models/list_media_folders200_response.rb +216 -0
  416. data/lib/postboost/models/list_mentions200_response.rb +241 -0
  417. data/lib/postboost/models/list_my_workspaces200_response.rb +216 -0
  418. data/lib/postboost/models/list_posts200_response.rb +2 -2
  419. data/lib/postboost/models/list_receipts200_response.rb +2 -2
  420. data/lib/postboost/models/list_recycling_rules200_response.rb +223 -0
  421. data/lib/postboost/models/list_recycling_runs200_response.rb +223 -0
  422. data/lib/postboost/models/list_report_exports200_response.rb +223 -0
  423. data/lib/postboost/models/list_reseller_clients200_response.rb +239 -0
  424. data/lib/postboost/models/list_rss_feeds200_response.rb +223 -0
  425. data/lib/postboost/models/list_tags200_response.rb +2 -2
  426. data/lib/postboost/models/list_templates200_response.rb +248 -0
  427. data/lib/postboost/models/list_users200_response.rb +2 -2
  428. data/lib/postboost/models/list_webhook_subscriptions200_response.rb +223 -0
  429. data/lib/postboost/models/list_workspaces200_response.rb +2 -2
  430. data/lib/postboost/models/media.rb +128 -3
  431. data/lib/postboost/models/media_base64_input.rb +295 -0
  432. data/lib/postboost/models/media_folder.rb +271 -0
  433. data/lib/postboost/models/media_folder_input.rb +244 -0
  434. data/lib/postboost/models/media_folder_ref.rb +237 -0
  435. data/lib/postboost/models/mention.rb +290 -0
  436. data/lib/postboost/models/mention_identity.rb +257 -0
  437. data/lib/postboost/models/mention_identity_input.rb +325 -0
  438. data/lib/postboost/models/mention_input.rb +279 -0
  439. data/lib/postboost/models/message_only.rb +221 -0
  440. data/lib/postboost/models/pagination_meta.rb +2 -2
  441. data/lib/postboost/models/pagination_meta_links.rb +4 -2
  442. data/lib/postboost/models/pagination_meta_meta.rb +4 -2
  443. data/lib/postboost/models/poll_rss_feed200_response.rb +255 -0
  444. data/lib/postboost/models/post.rb +69 -3
  445. data/lib/postboost/models/post_analytics.rb +252 -0
  446. data/lib/postboost/models/post_content.rb +4 -3
  447. data/lib/postboost/models/post_input.rb +41 -6
  448. data/lib/postboost/models/post_options_instagram.rb +294 -0
  449. data/lib/postboost/models/post_options_tik_tok.rb +329 -0
  450. data/lib/postboost/models/post_options_youtube.rb +302 -0
  451. data/lib/postboost/models/post_status.rb +6 -3
  452. data/lib/postboost/models/post_version.rb +53 -5
  453. data/lib/postboost/models/post_version_options.rb +242 -0
  454. data/lib/postboost/models/posting_schedule.rb +303 -0
  455. data/lib/postboost/models/posting_schedule_day.rb +285 -0
  456. data/lib/postboost/models/posting_schedule_day_times_inner.rb +222 -0
  457. data/lib/postboost/models/posting_schedule_input.rb +312 -0
  458. data/lib/postboost/models/posting_time_slot.rb +315 -0
  459. data/lib/postboost/models/posting_times.rb +362 -0
  460. data/lib/postboost/models/posting_times_best_inner.rb +269 -0
  461. data/lib/postboost/models/posting_times_day_intervals_inner_inner.rb +370 -0
  462. data/lib/postboost/models/posting_times_days_inner.rb +366 -0
  463. data/lib/postboost/models/preflight_result.rb +291 -0
  464. data/lib/postboost/models/public_workspace.rb +262 -0
  465. data/lib/postboost/models/public_workspace_pivot.rb +267 -0
  466. data/lib/postboost/models/publish_progress.rb +254 -0
  467. data/lib/postboost/models/queue_slots.rb +237 -0
  468. data/lib/postboost/models/receipt.rb +58 -2
  469. data/lib/postboost/models/receipt_input.rb +2 -2
  470. data/lib/postboost/models/receipt_update_input.rb +2 -2
  471. data/lib/postboost/models/recommended_posting_times.rb +282 -0
  472. data/lib/postboost/models/reconnect_link.rb +254 -0
  473. data/lib/postboost/models/recycling_rule.rb +434 -0
  474. data/lib/postboost/models/recycling_rule_input.rb +435 -0
  475. data/lib/postboost/models/recycling_rule_settings.rb +381 -0
  476. data/lib/postboost/models/recycling_rule_update.rb +366 -0
  477. data/lib/postboost/models/recycling_run.rb +320 -0
  478. data/lib/postboost/models/remove_generic_subscription422_response.rb +214 -0
  479. data/lib/postboost/models/remove_user_from_workspace_request.rb +2 -2
  480. data/lib/postboost/models/report_branding.rb +285 -0
  481. data/lib/postboost/models/report_branding_input.rb +293 -0
  482. data/lib/postboost/models/report_export.rb +442 -0
  483. data/lib/postboost/models/report_export_input.rb +350 -0
  484. data/lib/postboost/models/repurpose_content200_response.rb +237 -0
  485. data/lib/postboost/models/repurpose_input.rb +667 -0
  486. data/lib/postboost/models/repurpose_input_theme.rb +296 -0
  487. data/lib/postboost/models/repurpose_result.rb +328 -0
  488. data/lib/postboost/models/repurpose_result_media.rb +224 -0
  489. data/lib/postboost/models/repurpose_result_source.rb +283 -0
  490. data/lib/postboost/models/repurpose_slide.rb +239 -0
  491. data/lib/postboost/models/reseller_client.rb +360 -0
  492. data/lib/postboost/models/reseller_client_input.rb +240 -0
  493. data/lib/postboost/models/reseller_client_usage.rb +239 -0
  494. data/lib/postboost/models/retry_post_account_result.rb +275 -0
  495. data/lib/postboost/models/rss_feed.rb +402 -0
  496. data/lib/postboost/models/rss_feed_input.rb +433 -0
  497. data/lib/postboost/models/rss_feed_update.rb +396 -0
  498. data/lib/postboost/models/run_agent202_response.rb +221 -0
  499. data/lib/postboost/models/schedule_post_request.rb +48 -6
  500. data/lib/postboost/models/schedule_result.rb +23 -6
  501. data/lib/postboost/models/subscription.rb +37 -2
  502. data/lib/postboost/models/subscription_input.rb +2 -2
  503. data/lib/postboost/models/subscription_status.rb +2 -2
  504. data/lib/postboost/models/subscription_update_input.rb +2 -2
  505. data/lib/postboost/models/tag.rb +30 -2
  506. data/lib/postboost/models/tag_input.rb +2 -2
  507. data/lib/postboost/models/template.rb +256 -0
  508. data/lib/postboost/models/template_content_item.rb +240 -0
  509. data/lib/postboost/models/template_input.rb +271 -0
  510. data/lib/postboost/models/template_input_content_inner.rb +227 -0
  511. data/lib/postboost/models/update_media_request.rb +61 -11
  512. data/lib/postboost/models/{upload_chunk200_response.rb → upload_chunk201_response.rb} +5 -5
  513. data/lib/postboost/models/user.rb +48 -3
  514. data/lib/postboost/models/user_input.rb +2 -2
  515. data/lib/postboost/models/user_update_input.rb +2 -2
  516. data/lib/postboost/models/webhook_event_name.rb +50 -0
  517. data/lib/postboost/models/webhook_event_payload.rb +262 -0
  518. data/lib/postboost/models/webhook_subscription.rb +297 -0
  519. data/lib/postboost/models/webhook_subscription_input.rb +349 -0
  520. data/lib/postboost/models/workspace.rb +42 -3
  521. data/lib/postboost/models/workspace_agent.rb +381 -0
  522. data/lib/postboost/models/workspace_agent_input.rb +326 -0
  523. data/lib/postboost/models/workspace_agent_settings.rb +340 -0
  524. data/lib/postboost/models/workspace_agent_update.rb +294 -0
  525. data/lib/postboost/models/workspace_input.rb +3 -9
  526. data/lib/postboost/models/workspace_user_input.rb +2 -2
  527. data/lib/postboost/models/x_usage.rb +303 -0
  528. data/lib/postboost/models/x_usage_counter.rb +234 -0
  529. data/lib/postboost/version.rb +3 -3
  530. data/lib/postboost.rb +219 -6
  531. data/postboost.gemspec +3 -3
  532. data/spec/api/account_groups_api_spec.rb +102 -0
  533. data/spec/api/accounts_api_spec.rb +46 -3
  534. data/spec/api/activity_api_spec.rb +51 -0
  535. data/spec/api/agents_api_spec.rb +170 -0
  536. data/spec/api/ai_api_spec.rb +189 -0
  537. data/spec/api/analytics_api_spec.rb +201 -0
  538. data/spec/api/competitors_api_spec.rb +87 -0
  539. data/spec/api/hashtag_groups_api_spec.rb +102 -0
  540. data/spec/api/inbox_api_spec.rb +178 -0
  541. data/spec/api/media_api_spec.rb +92 -11
  542. data/spec/api/mentions_api_spec.rb +104 -0
  543. data/spec/api/posting_schedule_api_spec.rb +102 -0
  544. data/spec/api/posts_api_spec.rb +224 -6
  545. data/spec/api/receipts_api_spec.rb +9 -2
  546. data/spec/api/subscriptions_api_spec.rb +12 -2
  547. data/spec/api/tags_api_spec.rb +8 -2
  548. data/spec/api/templates_api_spec.rb +102 -0
  549. data/spec/api/users_api_spec.rb +9 -2
  550. data/spec/api/webhooks_api_spec.rb +73 -0
  551. data/spec/api/workspaces_api_spec.rb +108 -2
  552. data/spec/models/account_analytics_initial_sync_spec.rb +42 -0
  553. data/spec/models/account_analytics_spec.rb +66 -0
  554. data/spec/models/account_connection_health_spec.rb +92 -0
  555. data/spec/models/account_errors_inner_one_of_spec.rb +54 -0
  556. data/spec/models/account_errors_inner_spec.rb +32 -0
  557. data/spec/models/account_group_input_spec.rb +42 -0
  558. data/spec/models/account_group_spec.rb +54 -0
  559. data/spec/models/account_health_daily_cap_spec.rb +42 -0
  560. data/spec/models/account_health_spec.rb +84 -0
  561. data/spec/models/account_schedule_spec.rb +48 -0
  562. data/spec/models/account_spec.rb +36 -2
  563. data/spec/models/add_competitor202_response_spec.rb +46 -0
  564. data/spec/models/add_competitor409_response_spec.rb +42 -0
  565. data/spec/models/add_generic_subscription_request_spec.rb +2 -2
  566. data/spec/models/add_post_to_queue_request_spec.rb +36 -0
  567. data/spec/models/agent_page_meta_spec.rb +54 -0
  568. data/spec/models/agent_proposal_decision_spec.rb +36 -0
  569. data/spec/models/agent_proposal_spec.rb +126 -0
  570. data/spec/models/agent_run_spec.rb +122 -0
  571. data/spec/models/ai_credits_spec.rb +48 -0
  572. data/spec/models/ai_usage_spec.rb +42 -0
  573. data/spec/models/ai_usage_text_spec.rb +54 -0
  574. data/spec/models/analytics_period_spec.rb +54 -0
  575. data/spec/models/analytics_summary_data_spec.rb +96 -0
  576. data/spec/models/analytics_summary_spec.rb +42 -0
  577. data/spec/models/api_activity_outcome_spec.rb +30 -0
  578. data/spec/models/api_activity_spec.rb +90 -0
  579. data/spec/models/api_key_ability_spec.rb +30 -0
  580. data/spec/models/api_key_input_spec.rb +54 -0
  581. data/spec/models/api_key_spec.rb +78 -0
  582. data/spec/models/approve_agent_proposal200_response_spec.rb +36 -0
  583. data/spec/models/approve_agent_proposal409_response_spec.rb +42 -0
  584. data/spec/models/approve_inbox_reply_draft403_response_spec.rb +46 -0
  585. data/spec/models/approve_post_request_spec.rb +54 -0
  586. data/spec/models/best_posting_times_spec.rb +42 -0
  587. data/spec/models/best_posting_times_times_inner_spec.rb +54 -0
  588. data/spec/models/blog_to_social200_response_spec.rb +42 -0
  589. data/spec/models/blog_to_social429_response_spec.rb +36 -0
  590. data/spec/models/blog_to_social_caption_spec.rb +66 -0
  591. data/spec/models/blog_to_social_input_spec.rb +134 -0
  592. data/spec/models/blog_to_social_media_spec.rb +42 -0
  593. data/spec/models/blog_to_social_response_spec.rb +72 -0
  594. data/spec/models/brand_voice_input_spec.rb +128 -0
  595. data/spec/models/brand_voice_meta_spec.rb +36 -0
  596. data/spec/models/brand_voice_spec.rb +134 -0
  597. data/spec/models/cancel_subscription422_response_errors_spec.rb +36 -0
  598. data/spec/models/cancel_subscription422_response_spec.rb +42 -0
  599. data/spec/models/cancel_subscription_request_spec.rb +36 -0
  600. data/spec/models/change_subscription_plan_request_spec.rb +2 -2
  601. data/spec/models/channel_account_spec.rb +94 -0
  602. data/spec/models/checkout_subscription200_response_spec.rb +2 -2
  603. data/spec/models/checkout_subscription_request_spec.rb +2 -2
  604. data/spec/models/coded_error_spec.rb +48 -0
  605. data/spec/models/competitor_detail_spec.rb +96 -0
  606. data/spec/models/competitor_input_spec.rb +42 -0
  607. data/spec/models/competitor_media_spec.rb +66 -0
  608. data/spec/models/competitor_snapshot_spec.rb +48 -0
  609. data/spec/models/competitor_spec.rb +84 -0
  610. data/spec/models/complete_chunked_upload_request_spec.rb +42 -0
  611. data/spec/models/connect_channel_input_spec.rb +54 -0
  612. data/spec/models/create_account_group201_response_spec.rb +36 -0
  613. data/spec/models/create_agent201_response_spec.rb +36 -0
  614. data/spec/models/create_api_key201_response_data_spec.rb +84 -0
  615. data/spec/models/create_api_key201_response_spec.rb +36 -0
  616. data/spec/models/create_hashtag_group201_response_spec.rb +36 -0
  617. data/spec/models/create_inbox_reply_draft201_response_spec.rb +36 -0
  618. data/spec/models/create_media_folder_request_spec.rb +42 -0
  619. data/spec/models/create_mention201_response_spec.rb +36 -0
  620. data/spec/models/create_recycling_rule201_response_spec.rb +36 -0
  621. data/spec/models/create_report_export201_response_spec.rb +36 -0
  622. data/spec/models/create_reseller_client201_response_spec.rb +36 -0
  623. data/spec/models/create_rss_feed201_response_spec.rb +36 -0
  624. data/spec/models/create_template201_response_spec.rb +36 -0
  625. data/spec/models/create_webhook_subscription201_response_data_spec.rb +72 -0
  626. data/spec/models/create_webhook_subscription201_response_spec.rb +36 -0
  627. data/spec/models/delete_agent200_response_spec.rb +36 -0
  628. data/spec/models/delete_media_bulk_request_items_inner_spec.rb +32 -0
  629. data/spec/models/delete_media_bulk_request_spec.rb +2 -2
  630. data/spec/models/delete_media_folder_request_spec.rb +36 -0
  631. data/spec/models/delete_mode_spec.rb +2 -2
  632. data/spec/models/delete_post_request_spec.rb +2 -2
  633. data/spec/models/delete_posts_bulk_request_spec.rb +2 -2
  634. data/spec/models/delete_receipts_bulk_request_spec.rb +2 -2
  635. data/spec/models/delete_result_spec.rb +2 -2
  636. data/spec/models/delete_user400_response_spec.rb +2 -2
  637. data/spec/models/delete_users_bulk_request_spec.rb +2 -2
  638. data/spec/models/delete_workspaces_bulk_request_spec.rb +2 -2
  639. data/spec/models/get_account_health200_response_spec.rb +36 -0
  640. data/spec/models/get_brand_voice200_response_spec.rb +36 -0
  641. data/spec/models/get_competitor200_response_spec.rb +36 -0
  642. data/spec/models/get_inbox_conversation200_response_spec.rb +36 -0
  643. data/spec/models/get_posting_schedule200_response_spec.rb +36 -0
  644. data/spec/models/get_remote_upload_status200_response_spec.rb +2 -2
  645. data/spec/models/get_report_branding200_response_spec.rb +36 -0
  646. data/spec/models/guardrail_error_spec.rb +70 -0
  647. data/spec/models/hashtag_group_input_spec.rb +42 -0
  648. data/spec/models/hashtag_group_spec.rb +48 -0
  649. data/spec/models/image_alt_text200_response_spec.rb +36 -0
  650. data/spec/models/image_alt_text_input_spec.rb +36 -0
  651. data/spec/models/image_alt_text_response_spec.rb +54 -0
  652. data/spec/models/image_credit_balance_spec.rb +66 -0
  653. data/spec/models/image_edit_input_spec.rb +80 -0
  654. data/spec/models/image_generate200_response_spec.rb +42 -0
  655. data/spec/models/image_generate429_response_spec.rb +36 -0
  656. data/spec/models/image_generate_input_spec.rb +108 -0
  657. data/spec/models/image_generation_response_spec.rb +72 -0
  658. data/spec/models/image_prompt200_response_spec.rb +42 -0
  659. data/spec/models/image_prompt429_response_spec.rb +36 -0
  660. data/spec/models/image_prompt_input_spec.rb +76 -0
  661. data/spec/models/image_prompt_response_spec.rb +36 -0
  662. data/spec/models/image_variations200_response_spec.rb +36 -0
  663. data/spec/models/image_variations_input_spec.rb +62 -0
  664. data/spec/models/image_variations_response_spec.rb +60 -0
  665. data/spec/models/inbox_author_spec.rb +48 -0
  666. data/spec/models/inbox_conversation_account_spec.rb +54 -0
  667. data/spec/models/inbox_conversation_spec.rb +128 -0
  668. data/spec/models/inbox_conversation_update_spec.rb +46 -0
  669. data/spec/models/inbox_message_author_spec.rb +48 -0
  670. data/spec/models/inbox_message_spec.rb +90 -0
  671. data/spec/models/inbox_reply_draft_approve_spec.rb +36 -0
  672. data/spec/models/inbox_reply_draft_edit_spec.rb +36 -0
  673. data/spec/models/inbox_reply_draft_input_spec.rb +42 -0
  674. data/spec/models/inbox_reply_draft_spec.rb +116 -0
  675. data/spec/models/initiate_chunked_upload201_response_spec.rb +48 -0
  676. data/spec/models/initiate_chunked_upload_request_spec.rb +2 -2
  677. data/spec/models/initiate_remote_upload201_response_one_of_spec.rb +36 -0
  678. data/spec/models/initiate_remote_upload201_response_spec.rb +32 -0
  679. data/spec/models/initiate_remote_upload_request_spec.rb +8 -2
  680. data/spec/models/learn_brand_voice_input_spec.rb +54 -0
  681. data/spec/models/learn_brand_voice_response_meta_spec.rb +60 -0
  682. data/spec/models/learn_brand_voice_response_spec.rb +42 -0
  683. data/spec/models/list_account_groups200_response_spec.rb +48 -0
  684. data/spec/models/list_accounts200_response_spec.rb +2 -2
  685. data/spec/models/list_agent_proposals200_response_spec.rb +42 -0
  686. data/spec/models/list_agent_runs200_response_spec.rb +42 -0
  687. data/spec/models/list_agents200_response_spec.rb +36 -0
  688. data/spec/models/list_api_activity200_response_spec.rb +48 -0
  689. data/spec/models/list_api_keys200_response_spec.rb +36 -0
  690. data/spec/models/list_competitors200_response_spec.rb +36 -0
  691. data/spec/models/list_hashtag_groups200_response_spec.rb +48 -0
  692. data/spec/models/list_inbox_conversations200_response_spec.rb +48 -0
  693. data/spec/models/list_inbox_reply_drafts200_response_spec.rb +48 -0
  694. data/spec/models/list_media200_response_spec.rb +2 -2
  695. data/spec/models/list_media_folders200_response_spec.rb +36 -0
  696. data/spec/models/list_mentions200_response_spec.rb +48 -0
  697. data/spec/models/list_my_workspaces200_response_spec.rb +36 -0
  698. data/spec/models/list_posts200_response_spec.rb +2 -2
  699. data/spec/models/list_receipts200_response_spec.rb +2 -2
  700. data/spec/models/list_recycling_rules200_response_spec.rb +36 -0
  701. data/spec/models/list_recycling_runs200_response_spec.rb +36 -0
  702. data/spec/models/list_report_exports200_response_spec.rb +36 -0
  703. data/spec/models/list_reseller_clients200_response_spec.rb +42 -0
  704. data/spec/models/list_rss_feeds200_response_spec.rb +36 -0
  705. data/spec/models/list_tags200_response_spec.rb +2 -2
  706. data/spec/models/list_templates200_response_spec.rb +48 -0
  707. data/spec/models/list_users200_response_spec.rb +2 -2
  708. data/spec/models/list_webhook_subscriptions200_response_spec.rb +36 -0
  709. data/spec/models/list_workspaces200_response_spec.rb +2 -2
  710. data/spec/models/media_base64_input_spec.rb +54 -0
  711. data/spec/models/media_folder_input_spec.rb +42 -0
  712. data/spec/models/media_folder_ref_spec.rb +42 -0
  713. data/spec/models/media_folder_spec.rb +54 -0
  714. data/spec/models/media_spec.rb +44 -2
  715. data/spec/models/mention_identity_input_spec.rb +60 -0
  716. data/spec/models/mention_identity_spec.rb +54 -0
  717. data/spec/models/mention_input_spec.rb +48 -0
  718. data/spec/models/mention_spec.rb +66 -0
  719. data/spec/models/message_only_spec.rb +36 -0
  720. data/spec/models/pagination_meta_links_spec.rb +2 -2
  721. data/spec/models/pagination_meta_meta_spec.rb +2 -2
  722. data/spec/models/pagination_meta_spec.rb +2 -2
  723. data/spec/models/poll_rss_feed200_response_spec.rb +48 -0
  724. data/spec/models/post_analytics_spec.rb +48 -0
  725. data/spec/models/post_content_spec.rb +2 -2
  726. data/spec/models/post_input_spec.rb +20 -2
  727. data/spec/models/post_options_instagram_spec.rb +52 -0
  728. data/spec/models/post_options_tik_tok_spec.rb +88 -0
  729. data/spec/models/post_options_youtube_spec.rb +58 -0
  730. data/spec/models/post_spec.rb +8 -2
  731. data/spec/models/post_status_spec.rb +2 -2
  732. data/spec/models/post_version_options_spec.rb +54 -0
  733. data/spec/models/post_version_spec.rb +8 -2
  734. data/spec/models/posting_schedule_day_spec.rb +48 -0
  735. data/spec/models/posting_schedule_day_times_inner_spec.rb +36 -0
  736. data/spec/models/posting_schedule_input_spec.rb +54 -0
  737. data/spec/models/posting_schedule_spec.rb +66 -0
  738. data/spec/models/posting_time_slot_spec.rb +52 -0
  739. data/spec/models/posting_times_best_inner_spec.rb +54 -0
  740. data/spec/models/posting_times_day_intervals_inner_inner_spec.rb +70 -0
  741. data/spec/models/posting_times_days_inner_spec.rb +58 -0
  742. data/spec/models/posting_times_spec.rb +78 -0
  743. data/spec/models/preflight_result_spec.rb +60 -0
  744. data/spec/models/public_workspace_pivot_spec.rb +52 -0
  745. data/spec/models/public_workspace_spec.rb +54 -0
  746. data/spec/models/publish_progress_spec.rb +48 -0
  747. data/spec/models/queue_slots_spec.rb +42 -0
  748. data/spec/models/receipt_input_spec.rb +2 -2
  749. data/spec/models/receipt_spec.rb +2 -2
  750. data/spec/models/receipt_update_input_spec.rb +2 -2
  751. data/spec/models/recommended_posting_times_spec.rb +60 -0
  752. data/spec/models/reconnect_link_spec.rb +48 -0
  753. data/spec/models/recycling_rule_input_spec.rb +92 -0
  754. data/spec/models/recycling_rule_settings_spec.rb +70 -0
  755. data/spec/models/recycling_rule_spec.rb +116 -0
  756. data/spec/models/recycling_rule_update_spec.rb +70 -0
  757. data/spec/models/recycling_run_spec.rb +70 -0
  758. data/spec/models/remove_generic_subscription422_response_spec.rb +36 -0
  759. data/spec/models/remove_user_from_workspace_request_spec.rb +2 -2
  760. data/spec/models/report_branding_input_spec.rb +54 -0
  761. data/spec/models/report_branding_spec.rb +66 -0
  762. data/spec/models/report_export_input_spec.rb +78 -0
  763. data/spec/models/report_export_spec.rb +120 -0
  764. data/spec/models/repurpose_content200_response_spec.rb +42 -0
  765. data/spec/models/repurpose_input_spec.rb +164 -0
  766. data/spec/models/repurpose_input_theme_spec.rb +48 -0
  767. data/spec/models/repurpose_result_media_spec.rb +42 -0
  768. data/spec/models/repurpose_result_source_spec.rb +52 -0
  769. data/spec/models/repurpose_result_spec.rb +78 -0
  770. data/spec/models/repurpose_slide_spec.rb +42 -0
  771. data/spec/models/reseller_client_input_spec.rb +36 -0
  772. data/spec/models/reseller_client_spec.rb +82 -0
  773. data/spec/models/reseller_client_usage_spec.rb +42 -0
  774. data/spec/models/retry_post_account_result_spec.rb +48 -0
  775. data/spec/models/rss_feed_input_spec.rb +76 -0
  776. data/spec/models/rss_feed_spec.rb +100 -0
  777. data/spec/models/rss_feed_update_spec.rb +76 -0
  778. data/spec/models/run_agent202_response_spec.rb +36 -0
  779. data/spec/models/schedule_post_request_spec.rb +26 -2
  780. data/spec/models/schedule_result_spec.rb +8 -2
  781. data/spec/models/subscription_input_spec.rb +2 -2
  782. data/spec/models/subscription_spec.rb +2 -2
  783. data/spec/models/subscription_status_spec.rb +2 -2
  784. data/spec/models/subscription_update_input_spec.rb +2 -2
  785. data/spec/models/tag_input_spec.rb +2 -2
  786. data/spec/models/tag_spec.rb +2 -2
  787. data/spec/models/template_content_item_spec.rb +42 -0
  788. data/spec/models/template_input_content_inner_spec.rb +42 -0
  789. data/spec/models/template_input_spec.rb +42 -0
  790. data/spec/models/template_spec.rb +48 -0
  791. data/spec/models/update_media_request_spec.rb +14 -2
  792. data/spec/models/upload_chunk201_response_spec.rb +36 -0
  793. data/spec/models/user_input_spec.rb +2 -2
  794. data/spec/models/user_spec.rb +8 -2
  795. data/spec/models/user_update_input_spec.rb +2 -2
  796. data/spec/models/webhook_event_name_spec.rb +30 -0
  797. data/spec/models/webhook_event_payload_spec.rb +42 -0
  798. data/spec/models/webhook_subscription_input_spec.rb +58 -0
  799. data/spec/models/webhook_subscription_spec.rb +66 -0
  800. data/spec/models/workspace_agent_input_spec.rb +68 -0
  801. data/spec/models/workspace_agent_settings_spec.rb +60 -0
  802. data/spec/models/workspace_agent_spec.rb +92 -0
  803. data/spec/models/workspace_agent_update_spec.rb +58 -0
  804. data/spec/models/workspace_input_spec.rb +2 -2
  805. data/spec/models/workspace_spec.rb +8 -2
  806. data/spec/models/workspace_user_input_spec.rb +2 -2
  807. data/spec/models/x_usage_counter_spec.rb +42 -0
  808. data/spec/models/x_usage_spec.rb +66 -0
  809. data/spec/spec_helper.rb +2 -2
  810. metadata +943 -76
  811. data/git_push.sh +0 -57
  812. data/spec/models/initiate_chunked_upload200_response_spec.rb +0 -48
  813. data/spec/models/initiate_remote_upload200_response_one_of_spec.rb +0 -36
  814. data/spec/models/initiate_remote_upload200_response_spec.rb +0 -32
  815. data/spec/models/upload_chunk200_response_spec.rb +0 -36
@@ -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 8+ 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`. ## 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.0.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
@@ -20,10 +20,12 @@ module PostBoost
20
20
  @api_client = api_client
21
21
  end
22
22
  # Add post to queue
23
- # Add an existing post to the smart publishing queue.
23
+ # Add an existing post to the smart publishing queue. Each account of the post gets its own next free queue slot. Returns `422` when the post has no accounts, the posting schedule has no available times, or provider requirements are not met.
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.
28
+ # @option opts [AddPostToQueueRequest] :add_post_to_queue_request
27
29
  # @return [ScheduleResult]
28
30
  def add_post_to_queue(workspace_uuid, post_uuid, opts = {})
29
31
  data, _status_code, _headers = add_post_to_queue_with_http_info(workspace_uuid, post_uuid, opts)
@@ -31,10 +33,12 @@ module PostBoost
31
33
  end
32
34
 
33
35
  # Add post to queue
34
- # Add an existing post to the smart publishing queue.
36
+ # Add an existing post to the smart publishing queue. Each account of the post gets its own next free queue slot. Returns `422` when the post has no accounts, the posting schedule has no available times, or provider requirements are not met.
35
37
  # @param workspace_uuid [String] UUID of the workspace.
36
38
  # @param post_uuid [String] UUID of the post.
37
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.
41
+ # @option opts [AddPostToQueueRequest] :add_post_to_queue_request
38
42
  # @return [Array<(ScheduleResult, Integer, Hash)>] ScheduleResult data, response status code and response headers
39
43
  def add_post_to_queue_with_http_info(workspace_uuid, post_uuid, opts = {})
40
44
  if @api_client.config.debugging
@@ -48,6 +52,14 @@ module PostBoost
48
52
  if @api_client.config.client_side_validation && post_uuid.nil?
49
53
  fail ArgumentError, "Missing the required parameter 'post_uuid' when calling PostsApi.add_post_to_queue"
50
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
+
51
63
  # resource path
52
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))
53
65
 
@@ -58,12 +70,18 @@ module PostBoost
58
70
  header_params = opts[:header_params] || {}
59
71
  # HTTP header 'Accept' (if needed)
60
72
  header_params['Accept'] = @api_client.select_header_accept(['application/json']) unless header_params['Accept']
73
+ # HTTP header 'Content-Type'
74
+ content_type = @api_client.select_header_content_type(['application/json'])
75
+ if !content_type.nil?
76
+ header_params['Content-Type'] = content_type
77
+ end
78
+ header_params[:'Idempotency-Key'] = opts[:'idempotency_key'] if !opts[:'idempotency_key'].nil?
61
79
 
62
80
  # form parameters
63
81
  form_params = opts[:form_params] || {}
64
82
 
65
83
  # http body (model)
66
- post_body = opts[:debug_body]
84
+ post_body = opts[:debug_body] || @api_client.object_to_http_body(opts[:'add_post_to_queue_request'])
67
85
 
68
86
  # return_type
69
87
  return_type = opts[:debug_return_type] || 'ScheduleResult'
@@ -89,10 +107,12 @@ module PostBoost
89
107
  end
90
108
 
91
109
  # Approve post
92
- # Approve a post that is pending review.
110
+ # Approve a post that is pending review. The approver may move the post with `date`/`time` (read in `timezone`) and set per-account times with `accounts_schedule`; without them the post keeps the time it was submitted with. Provider requirements are validated and reported as `422`.
93
111
  # @param workspace_uuid [String] UUID of the workspace.
94
112
  # @param post_uuid [String] UUID of the post.
95
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.
115
+ # @option opts [ApprovePostRequest] :approve_post_request
96
116
  # @return [ScheduleResult]
97
117
  def approve_post(workspace_uuid, post_uuid, opts = {})
98
118
  data, _status_code, _headers = approve_post_with_http_info(workspace_uuid, post_uuid, opts)
@@ -100,10 +120,12 @@ module PostBoost
100
120
  end
101
121
 
102
122
  # Approve post
103
- # Approve a post that is pending review.
123
+ # Approve a post that is pending review. The approver may move the post with &#x60;date&#x60;/&#x60;time&#x60; (read in &#x60;timezone&#x60;) and set per-account times with &#x60;accounts_schedule&#x60;; without them the post keeps the time it was submitted with. Provider requirements are validated and reported as &#x60;422&#x60;.
104
124
  # @param workspace_uuid [String] UUID of the workspace.
105
125
  # @param post_uuid [String] UUID of the post.
106
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.
128
+ # @option opts [ApprovePostRequest] :approve_post_request
107
129
  # @return [Array<(ScheduleResult, Integer, Hash)>] ScheduleResult data, response status code and response headers
108
130
  def approve_post_with_http_info(workspace_uuid, post_uuid, opts = {})
109
131
  if @api_client.config.debugging
@@ -117,6 +139,14 @@ module PostBoost
117
139
  if @api_client.config.client_side_validation && post_uuid.nil?
118
140
  fail ArgumentError, "Missing the required parameter 'post_uuid' when calling PostsApi.approve_post"
119
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
+
120
150
  # resource path
121
151
  local_var_path = '/{workspaceUuid}/posts/approve/{postUuid}'.sub('{' + 'workspaceUuid' + '}', CGI.escape(workspace_uuid.to_s)).sub('{' + 'postUuid' + '}', CGI.escape(post_uuid.to_s))
122
152
 
@@ -127,12 +157,18 @@ module PostBoost
127
157
  header_params = opts[:header_params] || {}
128
158
  # HTTP header 'Accept' (if needed)
129
159
  header_params['Accept'] = @api_client.select_header_accept(['application/json']) unless header_params['Accept']
160
+ # HTTP header 'Content-Type'
161
+ content_type = @api_client.select_header_content_type(['application/json'])
162
+ if !content_type.nil?
163
+ header_params['Content-Type'] = content_type
164
+ end
165
+ header_params[:'Idempotency-Key'] = opts[:'idempotency_key'] if !opts[:'idempotency_key'].nil?
130
166
 
131
167
  # form parameters
132
168
  form_params = opts[:form_params] || {}
133
169
 
134
170
  # http body (model)
135
- post_body = opts[:debug_body]
171
+ post_body = opts[:debug_body] || @api_client.object_to_http_body(opts[:'approve_post_request'])
136
172
 
137
173
  # return_type
138
174
  return_type = opts[:debug_return_type] || 'ScheduleResult'
@@ -158,10 +194,11 @@ module PostBoost
158
194
  end
159
195
 
160
196
  # Create post
161
- # 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.
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.
162
198
  # @param workspace_uuid [String] UUID of the workspace.
163
199
  # @param post_input [PostInput]
164
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.
165
202
  # @return [Post]
166
203
  def create_post(workspace_uuid, post_input, opts = {})
167
204
  data, _status_code, _headers = create_post_with_http_info(workspace_uuid, post_input, opts)
@@ -169,10 +206,11 @@ module PostBoost
169
206
  end
170
207
 
171
208
  # Create post
172
- # 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.
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.
173
210
  # @param workspace_uuid [String] UUID of the workspace.
174
211
  # @param post_input [PostInput]
175
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.
176
214
  # @return [Array<(Post, Integer, Hash)>] Post data, response status code and response headers
177
215
  def create_post_with_http_info(workspace_uuid, post_input, opts = {})
178
216
  if @api_client.config.debugging
@@ -186,6 +224,14 @@ module PostBoost
186
224
  if @api_client.config.client_side_validation && post_input.nil?
187
225
  fail ArgumentError, "Missing the required parameter 'post_input' when calling PostsApi.create_post"
188
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
+
189
235
  # resource path
190
236
  local_var_path = '/{workspaceUuid}/posts'.sub('{' + 'workspaceUuid' + '}', CGI.escape(workspace_uuid.to_s))
191
237
 
@@ -201,6 +247,7 @@ module PostBoost
201
247
  if !content_type.nil?
202
248
  header_params['Content-Type'] = content_type
203
249
  end
250
+ header_params[:'Idempotency-Key'] = opts[:'idempotency_key'] if !opts[:'idempotency_key'].nil?
204
251
 
205
252
  # form parameters
206
253
  form_params = opts[:form_params] || {}
@@ -231,7 +278,156 @@ module PostBoost
231
278
  return data, status_code, headers
232
279
  end
233
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
+
234
429
  # Delete post
430
+ # Deletes a post. Use `delete_mode` to control whether to also remove the published content from social platforms.
235
431
  # @param workspace_uuid [String] UUID of the workspace.
236
432
  # @param post_uuid [String] UUID of the post.
237
433
  # @param [Hash] opts the optional parameters
@@ -243,6 +439,7 @@ module PostBoost
243
439
  end
244
440
 
245
441
  # Delete post
442
+ # Deletes a post. Use &#x60;delete_mode&#x60; to control whether to also remove the published content from social platforms.
246
443
  # @param workspace_uuid [String] UUID of the workspace.
247
444
  # @param post_uuid [String] UUID of the post.
248
445
  # @param [Hash] opts the optional parameters
@@ -379,35 +576,37 @@ module PostBoost
379
576
  return data, status_code, headers
380
577
  end
381
578
 
382
- # Get post
579
+ # Delete a recycling rule
580
+ # Deletes the rule and its run log. Copies it already created stay. Admins and members only.
383
581
  # @param workspace_uuid [String] UUID of the workspace.
384
- # @param post_uuid [String] UUID of the post.
582
+ # @param rule_uuid [String] UUID of the recycling rule.
385
583
  # @param [Hash] opts the optional parameters
386
- # @return [Post]
387
- def get_post(workspace_uuid, post_uuid, opts = {})
388
- 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)
389
587
  data
390
588
  end
391
589
 
392
- # Get post
590
+ # Delete a recycling rule
591
+ # Deletes the rule and its run log. Copies it already created stay. Admins and members only.
393
592
  # @param workspace_uuid [String] UUID of the workspace.
394
- # @param post_uuid [String] UUID of the post.
593
+ # @param rule_uuid [String] UUID of the recycling rule.
395
594
  # @param [Hash] opts the optional parameters
396
- # @return [Array<(Post, Integer, Hash)>] Post data, response status code and response headers
397
- 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 = {})
398
597
  if @api_client.config.debugging
399
- @api_client.config.logger.debug 'Calling API: PostsApi.get_post ...'
598
+ @api_client.config.logger.debug 'Calling API: PostsApi.delete_recycling_rule ...'
400
599
  end
401
600
  # verify the required parameter 'workspace_uuid' is set
402
601
  if @api_client.config.client_side_validation && workspace_uuid.nil?
403
- 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"
404
603
  end
405
- # verify the required parameter 'post_uuid' is set
406
- if @api_client.config.client_side_validation && post_uuid.nil?
407
- 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"
408
607
  end
409
608
  # resource path
410
- 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))
411
610
 
412
611
  # query parameters
413
612
  query_params = opts[:query_params] || {}
@@ -424,13 +623,13 @@ module PostBoost
424
623
  post_body = opts[:debug_body]
425
624
 
426
625
  # return_type
427
- return_type = opts[:debug_return_type] || 'Post'
626
+ return_type = opts[:debug_return_type] || 'Object'
428
627
 
429
628
  # auth_names
430
629
  auth_names = opts[:debug_auth_names] || ['bearerAuth']
431
630
 
432
631
  new_options = opts.merge(
433
- :operation => :"PostsApi.get_post",
632
+ :operation => :"PostsApi.delete_recycling_rule",
434
633
  :header_params => header_params,
435
634
  :query_params => query_params,
436
635
  :form_params => form_params,
@@ -439,44 +638,47 @@ module PostBoost
439
638
  :return_type => return_type
440
639
  )
441
640
 
442
- 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)
443
642
  if @api_client.config.debugging
444
- @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}"
445
644
  end
446
645
  return data, status_code, headers
447
646
  end
448
647
 
449
- # List posts
450
- # Returns a paginated list of posts in the workspace.
648
+ # Delete an RSS feed
649
+ # Stops the feed. Posts it already created stay. Admins and members only.
451
650
  # @param workspace_uuid [String] UUID of the workspace.
651
+ # @param feed_uuid [String] UUID of the RSS feed.
452
652
  # @param [Hash] opts the optional parameters
453
- # @option opts [Integer] :page (default to 1)
454
- # @return [ListPosts200Response]
455
- def list_posts(workspace_uuid, opts = {})
456
- data, _status_code, _headers = list_posts_with_http_info(workspace_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)
457
656
  data
458
657
  end
459
658
 
460
- # List posts
461
- # Returns a paginated list of posts in the workspace.
659
+ # Delete an RSS feed
660
+ # Stops the feed. Posts it already created stay. Admins and members only.
462
661
  # @param workspace_uuid [String] UUID of the workspace.
662
+ # @param feed_uuid [String] UUID of the RSS feed.
463
663
  # @param [Hash] opts the optional parameters
464
- # @option opts [Integer] :page (default to 1)
465
- # @return [Array<(ListPosts200Response, Integer, Hash)>] ListPosts200Response data, response status code and response headers
466
- def list_posts_with_http_info(workspace_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 = {})
467
666
  if @api_client.config.debugging
468
- @api_client.config.logger.debug 'Calling API: PostsApi.list_posts ...'
667
+ @api_client.config.logger.debug 'Calling API: PostsApi.delete_rss_feed ...'
469
668
  end
470
669
  # verify the required parameter 'workspace_uuid' is set
471
670
  if @api_client.config.client_side_validation && workspace_uuid.nil?
472
- fail ArgumentError, "Missing the required parameter 'workspace_uuid' when calling PostsApi.list_posts"
671
+ fail ArgumentError, "Missing the required parameter 'workspace_uuid' when calling PostsApi.delete_rss_feed"
672
+ end
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"
473
676
  end
474
677
  # resource path
475
- local_var_path = '/{workspaceUuid}/posts'.sub('{' + 'workspaceUuid' + '}', CGI.escape(workspace_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))
476
679
 
477
680
  # query parameters
478
681
  query_params = opts[:query_params] || {}
479
- query_params[:'page'] = opts[:'page'] if !opts[:'page'].nil?
480
682
 
481
683
  # header parameters
482
684
  header_params = opts[:header_params] || {}
@@ -490,13 +692,13 @@ module PostBoost
490
692
  post_body = opts[:debug_body]
491
693
 
492
694
  # return_type
493
- return_type = opts[:debug_return_type] || 'ListPosts200Response'
695
+ return_type = opts[:debug_return_type] || 'Object'
494
696
 
495
697
  # auth_names
496
698
  auth_names = opts[:debug_auth_names] || ['bearerAuth']
497
699
 
498
700
  new_options = opts.merge(
499
- :operation => :"PostsApi.list_posts",
701
+ :operation => :"PostsApi.delete_rss_feed",
500
702
  :header_params => header_params,
501
703
  :query_params => query_params,
502
704
  :form_params => form_params,
@@ -505,50 +707,44 @@ module PostBoost
505
707
  :return_type => return_type
506
708
  )
507
709
 
508
- 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)
509
711
  if @api_client.config.debugging
510
- @api_client.config.logger.debug "API called: PostsApi#list_posts\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}"
511
713
  end
512
714
  return data, status_code, headers
513
715
  end
514
716
 
515
- # Schedule post
516
- # Schedule an existing post. Set `postNow: true` to publish immediately.
717
+ # Get post
718
+ # Returns a single post with all its versions and associated accounts.
517
719
  # @param workspace_uuid [String] UUID of the workspace.
518
720
  # @param post_uuid [String] UUID of the post.
519
- # @param schedule_post_request [SchedulePostRequest]
520
721
  # @param [Hash] opts the optional parameters
521
- # @return [ScheduleResult]
522
- def schedule_post(workspace_uuid, post_uuid, schedule_post_request, opts = {})
523
- data, _status_code, _headers = schedule_post_with_http_info(workspace_uuid, post_uuid, schedule_post_request, 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)
524
725
  data
525
726
  end
526
727
 
527
- # Schedule post
528
- # Schedule an existing post. Set &#x60;postNow: true&#x60; to publish immediately.
728
+ # Get post
729
+ # Returns a single post with all its versions and associated accounts.
529
730
  # @param workspace_uuid [String] UUID of the workspace.
530
731
  # @param post_uuid [String] UUID of the post.
531
- # @param schedule_post_request [SchedulePostRequest]
532
732
  # @param [Hash] opts the optional parameters
533
- # @return [Array<(ScheduleResult, Integer, Hash)>] ScheduleResult data, response status code and response headers
534
- def schedule_post_with_http_info(workspace_uuid, post_uuid, schedule_post_request, 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 = {})
535
735
  if @api_client.config.debugging
536
- @api_client.config.logger.debug 'Calling API: PostsApi.schedule_post ...'
736
+ @api_client.config.logger.debug 'Calling API: PostsApi.get_post ...'
537
737
  end
538
738
  # verify the required parameter 'workspace_uuid' is set
539
739
  if @api_client.config.client_side_validation && workspace_uuid.nil?
540
- fail ArgumentError, "Missing the required parameter 'workspace_uuid' when calling PostsApi.schedule_post"
740
+ fail ArgumentError, "Missing the required parameter 'workspace_uuid' when calling PostsApi.get_post"
541
741
  end
542
742
  # verify the required parameter 'post_uuid' is set
543
743
  if @api_client.config.client_side_validation && post_uuid.nil?
544
- fail ArgumentError, "Missing the required parameter 'post_uuid' when calling PostsApi.schedule_post"
545
- end
546
- # verify the required parameter 'schedule_post_request' is set
547
- if @api_client.config.client_side_validation && schedule_post_request.nil?
548
- fail ArgumentError, "Missing the required parameter 'schedule_post_request' when calling PostsApi.schedule_post"
744
+ fail ArgumentError, "Missing the required parameter 'post_uuid' when calling PostsApi.get_post"
549
745
  end
550
746
  # resource path
551
- local_var_path = '/{workspaceUuid}/posts/schedule/{postUuid}'.sub('{' + 'workspaceUuid' + '}', CGI.escape(workspace_uuid.to_s)).sub('{' + 'postUuid' + '}', CGI.escape(post_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))
552
748
 
553
749
  # query parameters
554
750
  query_params = opts[:query_params] || {}
@@ -557,26 +753,21 @@ module PostBoost
557
753
  header_params = opts[:header_params] || {}
558
754
  # HTTP header 'Accept' (if needed)
559
755
  header_params['Accept'] = @api_client.select_header_accept(['application/json']) unless header_params['Accept']
560
- # HTTP header 'Content-Type'
561
- content_type = @api_client.select_header_content_type(['application/json'])
562
- if !content_type.nil?
563
- header_params['Content-Type'] = content_type
564
- end
565
756
 
566
757
  # form parameters
567
758
  form_params = opts[:form_params] || {}
568
759
 
569
760
  # http body (model)
570
- post_body = opts[:debug_body] || @api_client.object_to_http_body(schedule_post_request)
761
+ post_body = opts[:debug_body]
571
762
 
572
763
  # return_type
573
- return_type = opts[:debug_return_type] || 'ScheduleResult'
764
+ return_type = opts[:debug_return_type] || 'Post'
574
765
 
575
766
  # auth_names
576
767
  auth_names = opts[:debug_auth_names] || ['bearerAuth']
577
768
 
578
769
  new_options = opts.merge(
579
- :operation => :"PostsApi.schedule_post",
770
+ :operation => :"PostsApi.get_post",
580
771
  :header_params => header_params,
581
772
  :query_params => query_params,
582
773
  :form_params => form_params,
@@ -585,48 +776,44 @@ module PostBoost
585
776
  :return_type => return_type
586
777
  )
587
778
 
588
- data, status_code, headers = @api_client.call_api(:POST, local_var_path, new_options)
779
+ data, status_code, headers = @api_client.call_api(:GET, local_var_path, new_options)
589
780
  if @api_client.config.debugging
590
- @api_client.config.logger.debug "API called: PostsApi#schedule_post\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}"
591
782
  end
592
783
  return data, status_code, headers
593
784
  end
594
785
 
595
- # Update post
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.
596
788
  # @param workspace_uuid [String] UUID of the workspace.
597
789
  # @param post_uuid [String] UUID of the post.
598
- # @param post_input [PostInput]
599
790
  # @param [Hash] opts the optional parameters
600
- # @return [Object]
601
- def update_post(workspace_uuid, post_uuid, post_input, opts = {})
602
- data, _status_code, _headers = update_post_with_http_info(workspace_uuid, post_uuid, post_input, 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)
603
794
  data
604
795
  end
605
796
 
606
- # Update post
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.
607
799
  # @param workspace_uuid [String] UUID of the workspace.
608
800
  # @param post_uuid [String] UUID of the post.
609
- # @param post_input [PostInput]
610
801
  # @param [Hash] opts the optional parameters
611
- # @return [Array<(Object, Integer, Hash)>] Object data, response status code and response headers
612
- def update_post_with_http_info(workspace_uuid, post_uuid, post_input, 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 = {})
613
804
  if @api_client.config.debugging
614
- @api_client.config.logger.debug 'Calling API: PostsApi.update_post ...'
805
+ @api_client.config.logger.debug 'Calling API: PostsApi.get_post_analytics ...'
615
806
  end
616
807
  # verify the required parameter 'workspace_uuid' is set
617
808
  if @api_client.config.client_side_validation && workspace_uuid.nil?
618
- fail ArgumentError, "Missing the required parameter 'workspace_uuid' when calling PostsApi.update_post"
809
+ fail ArgumentError, "Missing the required parameter 'workspace_uuid' when calling PostsApi.get_post_analytics"
619
810
  end
620
811
  # verify the required parameter 'post_uuid' is set
621
812
  if @api_client.config.client_side_validation && post_uuid.nil?
622
- fail ArgumentError, "Missing the required parameter 'post_uuid' when calling PostsApi.update_post"
623
- end
624
- # verify the required parameter 'post_input' is set
625
- if @api_client.config.client_side_validation && post_input.nil?
626
- fail ArgumentError, "Missing the required parameter 'post_input' when calling PostsApi.update_post"
813
+ fail ArgumentError, "Missing the required parameter 'post_uuid' when calling PostsApi.get_post_analytics"
627
814
  end
628
815
  # resource path
629
- local_var_path = '/{workspaceUuid}/posts/{postUuid}'.sub('{' + 'workspaceUuid' + '}', CGI.escape(workspace_uuid.to_s)).sub('{' + 'postUuid' + '}', CGI.escape(post_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))
630
817
 
631
818
  # query parameters
632
819
  query_params = opts[:query_params] || {}
@@ -635,26 +822,21 @@ module PostBoost
635
822
  header_params = opts[:header_params] || {}
636
823
  # HTTP header 'Accept' (if needed)
637
824
  header_params['Accept'] = @api_client.select_header_accept(['application/json']) unless header_params['Accept']
638
- # HTTP header 'Content-Type'
639
- content_type = @api_client.select_header_content_type(['application/json'])
640
- if !content_type.nil?
641
- header_params['Content-Type'] = content_type
642
- end
643
825
 
644
826
  # form parameters
645
827
  form_params = opts[:form_params] || {}
646
828
 
647
829
  # http body (model)
648
- post_body = opts[:debug_body] || @api_client.object_to_http_body(post_input)
830
+ post_body = opts[:debug_body]
649
831
 
650
832
  # return_type
651
- return_type = opts[:debug_return_type] || 'Object'
833
+ return_type = opts[:debug_return_type] || 'PostAnalytics'
652
834
 
653
835
  # auth_names
654
836
  auth_names = opts[:debug_auth_names] || ['bearerAuth']
655
837
 
656
838
  new_options = opts.merge(
657
- :operation => :"PostsApi.update_post",
839
+ :operation => :"PostsApi.get_post_analytics",
658
840
  :header_params => header_params,
659
841
  :query_params => query_params,
660
842
  :form_params => form_params,
@@ -663,9 +845,1044 @@ module PostBoost
663
845
  :return_type => return_type
664
846
  )
665
847
 
666
- data, status_code, headers = @api_client.call_api(:PUT, local_var_path, new_options)
848
+ data, status_code, headers = @api_client.call_api(:GET, local_var_path, new_options)
667
849
  if @api_client.config.debugging
668
- @api_client.config.logger.debug "API called: PostsApi#update_post\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}"
851
+ end
852
+ return data, status_code, headers
853
+ end
854
+
855
+ # Get a recycling rule
856
+ # @param workspace_uuid [String] UUID of the workspace.
857
+ # @param rule_uuid [String] UUID of the recycling rule.
858
+ # @param [Hash] opts the optional parameters
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)
862
+ data
863
+ end
864
+
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;.
1500
+ # @param workspace_uuid [String] UUID of the workspace.
1501
+ # @param post_uuid [String] UUID of the post.
1502
+ # @param schedule_post_request [SchedulePostRequest]
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.
1505
+ # @return [Array<(ScheduleResult, Integer, Hash)>] ScheduleResult data, response status code and response headers
1506
+ def schedule_post_with_http_info(workspace_uuid, post_uuid, schedule_post_request, opts = {})
1507
+ if @api_client.config.debugging
1508
+ @api_client.config.logger.debug 'Calling API: PostsApi.schedule_post ...'
1509
+ end
1510
+ # verify the required parameter 'workspace_uuid' is set
1511
+ if @api_client.config.client_side_validation && workspace_uuid.nil?
1512
+ fail ArgumentError, "Missing the required parameter 'workspace_uuid' when calling PostsApi.schedule_post"
1513
+ end
1514
+ # verify the required parameter 'post_uuid' is set
1515
+ if @api_client.config.client_side_validation && post_uuid.nil?
1516
+ fail ArgumentError, "Missing the required parameter 'post_uuid' when calling PostsApi.schedule_post"
1517
+ end
1518
+ # verify the required parameter 'schedule_post_request' is set
1519
+ if @api_client.config.client_side_validation && schedule_post_request.nil?
1520
+ fail ArgumentError, "Missing the required parameter 'schedule_post_request' when calling PostsApi.schedule_post"
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
+
1530
+ # resource path
1531
+ local_var_path = '/{workspaceUuid}/posts/schedule/{postUuid}'.sub('{' + 'workspaceUuid' + '}', CGI.escape(workspace_uuid.to_s)).sub('{' + 'postUuid' + '}', CGI.escape(post_uuid.to_s))
1532
+
1533
+ # query parameters
1534
+ query_params = opts[:query_params] || {}
1535
+
1536
+ # header parameters
1537
+ header_params = opts[:header_params] || {}
1538
+ # HTTP header 'Accept' (if needed)
1539
+ header_params['Accept'] = @api_client.select_header_accept(['application/json']) unless header_params['Accept']
1540
+ # HTTP header 'Content-Type'
1541
+ content_type = @api_client.select_header_content_type(['application/json'])
1542
+ if !content_type.nil?
1543
+ header_params['Content-Type'] = content_type
1544
+ end
1545
+ header_params[:'Idempotency-Key'] = opts[:'idempotency_key'] if !opts[:'idempotency_key'].nil?
1546
+
1547
+ # form parameters
1548
+ form_params = opts[:form_params] || {}
1549
+
1550
+ # http body (model)
1551
+ post_body = opts[:debug_body] || @api_client.object_to_http_body(schedule_post_request)
1552
+
1553
+ # return_type
1554
+ return_type = opts[:debug_return_type] || 'ScheduleResult'
1555
+
1556
+ # auth_names
1557
+ auth_names = opts[:debug_auth_names] || ['bearerAuth']
1558
+
1559
+ new_options = opts.merge(
1560
+ :operation => :"PostsApi.schedule_post",
1561
+ :header_params => header_params,
1562
+ :query_params => query_params,
1563
+ :form_params => form_params,
1564
+ :body => post_body,
1565
+ :auth_names => auth_names,
1566
+ :return_type => return_type
1567
+ )
1568
+
1569
+ data, status_code, headers = @api_client.call_api(:POST, local_var_path, new_options)
1570
+ if @api_client.config.debugging
1571
+ @api_client.config.logger.debug "API called: PostsApi#schedule_post\nData: #{data.inspect}\nStatus code: #{status_code}\nHeaders: #{headers}"
1572
+ end
1573
+ return data, status_code, headers
1574
+ end
1575
+
1576
+ # Update post
1577
+ # Replaces a post's versions, accounts, tags, and scheduling options. The post must not be in a published state. `timezone` is honoured: `date`, `time` and `accounts_schedule` are read in it. When the post stays scheduled, provider requirements are validated and reported as `422`.
1578
+ # @param workspace_uuid [String] UUID of the workspace.
1579
+ # @param post_uuid [String] UUID of the post.
1580
+ # @param post_input [PostInput]
1581
+ # @param [Hash] opts the optional parameters
1582
+ # @return [Object]
1583
+ def update_post(workspace_uuid, post_uuid, post_input, opts = {})
1584
+ data, _status_code, _headers = update_post_with_http_info(workspace_uuid, post_uuid, post_input, opts)
1585
+ data
1586
+ end
1587
+
1588
+ # Update post
1589
+ # Replaces a post&#39;s versions, accounts, tags, and scheduling options. The post must not be in a published state. &#x60;timezone&#x60; is honoured: &#x60;date&#x60;, &#x60;time&#x60; and &#x60;accounts_schedule&#x60; are read in it. When the post stays scheduled, provider requirements are validated and reported as &#x60;422&#x60;.
1590
+ # @param workspace_uuid [String] UUID of the workspace.
1591
+ # @param post_uuid [String] UUID of the post.
1592
+ # @param post_input [PostInput]
1593
+ # @param [Hash] opts the optional parameters
1594
+ # @return [Array<(Object, Integer, Hash)>] Object data, response status code and response headers
1595
+ def update_post_with_http_info(workspace_uuid, post_uuid, post_input, opts = {})
1596
+ if @api_client.config.debugging
1597
+ @api_client.config.logger.debug 'Calling API: PostsApi.update_post ...'
1598
+ end
1599
+ # verify the required parameter 'workspace_uuid' is set
1600
+ if @api_client.config.client_side_validation && workspace_uuid.nil?
1601
+ fail ArgumentError, "Missing the required parameter 'workspace_uuid' when calling PostsApi.update_post"
1602
+ end
1603
+ # verify the required parameter 'post_uuid' is set
1604
+ if @api_client.config.client_side_validation && post_uuid.nil?
1605
+ fail ArgumentError, "Missing the required parameter 'post_uuid' when calling PostsApi.update_post"
1606
+ end
1607
+ # verify the required parameter 'post_input' is set
1608
+ if @api_client.config.client_side_validation && post_input.nil?
1609
+ fail ArgumentError, "Missing the required parameter 'post_input' when calling PostsApi.update_post"
1610
+ end
1611
+ # resource path
1612
+ local_var_path = '/{workspaceUuid}/posts/{postUuid}'.sub('{' + 'workspaceUuid' + '}', CGI.escape(workspace_uuid.to_s)).sub('{' + 'postUuid' + '}', CGI.escape(post_uuid.to_s))
1613
+
1614
+ # query parameters
1615
+ query_params = opts[:query_params] || {}
1616
+
1617
+ # header parameters
1618
+ header_params = opts[:header_params] || {}
1619
+ # HTTP header 'Accept' (if needed)
1620
+ header_params['Accept'] = @api_client.select_header_accept(['application/json']) unless header_params['Accept']
1621
+ # HTTP header 'Content-Type'
1622
+ content_type = @api_client.select_header_content_type(['application/json'])
1623
+ if !content_type.nil?
1624
+ header_params['Content-Type'] = content_type
1625
+ end
1626
+
1627
+ # form parameters
1628
+ form_params = opts[:form_params] || {}
1629
+
1630
+ # http body (model)
1631
+ post_body = opts[:debug_body] || @api_client.object_to_http_body(post_input)
1632
+
1633
+ # return_type
1634
+ return_type = opts[:debug_return_type] || 'Object'
1635
+
1636
+ # auth_names
1637
+ auth_names = opts[:debug_auth_names] || ['bearerAuth']
1638
+
1639
+ new_options = opts.merge(
1640
+ :operation => :"PostsApi.update_post",
1641
+ :header_params => header_params,
1642
+ :query_params => query_params,
1643
+ :form_params => form_params,
1644
+ :body => post_body,
1645
+ :auth_names => auth_names,
1646
+ :return_type => return_type
1647
+ )
1648
+
1649
+ data, status_code, headers = @api_client.call_api(:PUT, local_var_path, new_options)
1650
+ if @api_client.config.debugging
1651
+ @api_client.config.logger.debug "API called: PostsApi#update_post\nData: #{data.inspect}\nStatus code: #{status_code}\nHeaders: #{headers}"
1652
+ end
1653
+ return data, status_code, headers
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}"
669
1886
  end
670
1887
  return data, status_code, headers
671
1888
  end