postboost 1.0.0 → 1.8.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 (364) hide show
  1. checksums.yaml +4 -4
  2. data/README.md +119 -0
  3. data/docs/AIApi.md +439 -0
  4. data/docs/AICredits.md +22 -0
  5. data/docs/Account.md +14 -8
  6. data/docs/AccountAnalytics.md +28 -0
  7. data/docs/AccountAnalyticsInitialSync.md +20 -0
  8. data/docs/AccountSchedule.md +22 -0
  9. data/docs/AccountsApi.md +15 -5
  10. data/docs/AddPostToQueueRequest.md +18 -0
  11. data/docs/AnalyticsApi.md +401 -0
  12. data/docs/AnalyticsPeriod.md +24 -0
  13. data/docs/AnalyticsSummary.md +20 -0
  14. data/docs/AnalyticsSummaryData.md +38 -0
  15. data/docs/ApprovePostRequest.md +24 -0
  16. data/docs/BestPostingTimes.md +20 -0
  17. data/docs/BestPostingTimesTimesInner.md +24 -0
  18. data/docs/BlogToSocial200Response.md +18 -0
  19. data/docs/BlogToSocial429Response.md +18 -0
  20. data/docs/BlogToSocialCaption.md +28 -0
  21. data/docs/BlogToSocialInput.md +42 -0
  22. data/docs/BlogToSocialMedia.md +20 -0
  23. data/docs/BlogToSocialResponse.md +30 -0
  24. data/docs/CancelSubscription422Response.md +20 -0
  25. data/docs/CancelSubscription422ResponseErrors.md +18 -0
  26. data/docs/CancelSubscriptionRequest.md +18 -0
  27. data/docs/CompleteChunkedUploadRequest.md +20 -0
  28. data/docs/CreateMediaFolderRequest.md +20 -0
  29. data/docs/CreateMention201Response.md +18 -0
  30. data/docs/DeleteMediaBulkRequest.md +1 -1
  31. data/docs/DeleteMediaBulkRequestItemsInner.md +49 -0
  32. data/docs/DeleteMediaFolderRequest.md +18 -0
  33. data/docs/DeleteResult.md +3 -3
  34. data/docs/ImageAltText200Response.md +18 -0
  35. data/docs/ImageAltTextInput.md +18 -0
  36. data/docs/ImageAltTextResponse.md +24 -0
  37. data/docs/ImageEditInput.md +28 -0
  38. data/docs/ImageGenerate200Response.md +18 -0
  39. data/docs/ImageGenerate429Response.md +18 -0
  40. data/docs/ImageGenerateInput.md +36 -0
  41. data/docs/ImageGenerationResponse.md +30 -0
  42. data/docs/ImagePrompt200Response.md +18 -0
  43. data/docs/ImagePrompt429Response.md +18 -0
  44. data/docs/ImagePromptInput.md +28 -0
  45. data/docs/ImagePromptResponse.md +18 -0
  46. data/docs/ImageVariations200Response.md +18 -0
  47. data/docs/ImageVariationsInput.md +24 -0
  48. data/docs/ImageVariationsResponse.md +26 -0
  49. data/docs/{InitiateChunkedUpload200Response.md → InitiateChunkedUpload201Response.md} +2 -2
  50. data/docs/{InitiateRemoteUpload200Response.md → InitiateRemoteUpload201Response.md} +7 -7
  51. data/docs/{InitiateRemoteUpload200ResponseOneOf.md → InitiateRemoteUpload201ResponseOneOf.md} +2 -2
  52. data/docs/InitiateRemoteUploadRequest.md +3 -1
  53. data/docs/ListMediaFolders200Response.md +18 -0
  54. data/docs/ListMentions200Response.md +22 -0
  55. data/docs/ListMyWorkspaces200Response.md +18 -0
  56. data/docs/Media.md +22 -8
  57. data/docs/MediaApi.md +340 -26
  58. data/docs/MediaFolder.md +24 -0
  59. data/docs/MediaFolderInput.md +20 -0
  60. data/docs/MediaFolderRef.md +20 -0
  61. data/docs/Mention.md +28 -0
  62. data/docs/MentionIdentity.md +24 -0
  63. data/docs/MentionIdentityInput.md +26 -0
  64. data/docs/MentionInput.md +22 -0
  65. data/docs/MentionsApi.md +375 -0
  66. data/docs/Post.md +10 -8
  67. data/docs/PostAnalytics.md +22 -0
  68. data/docs/PostInput.md +3 -1
  69. data/docs/PostVersion.md +2 -0
  70. data/docs/PostingTimeSlot.md +22 -0
  71. data/docs/PostingTimes.md +32 -0
  72. data/docs/PostingTimesBestInner.md +24 -0
  73. data/docs/PostingTimesDayIntervalsInnerInner.md +28 -0
  74. data/docs/PostingTimesDaysInner.md +24 -0
  75. data/docs/PostsApi.md +174 -14
  76. data/docs/PublicWorkspace.md +24 -0
  77. data/docs/PublicWorkspacePivot.md +22 -0
  78. data/docs/PublishProgress.md +22 -0
  79. data/docs/Receipt.md +8 -8
  80. data/docs/ReceiptsApi.md +15 -1
  81. data/docs/RemoveGenericSubscription422Response.md +18 -0
  82. data/docs/RetryPostAccountResult.md +22 -0
  83. data/docs/SchedulePostRequest.md +9 -1
  84. data/docs/ScheduleResult.md +4 -2
  85. data/docs/Subscription.md +5 -5
  86. data/docs/SubscriptionsApi.md +27 -5
  87. data/docs/Tag.md +4 -4
  88. data/docs/TagsApi.md +10 -0
  89. data/docs/UpdateMediaRequest.md +6 -2
  90. data/docs/{UploadChunk200Response.md → UploadChunk201Response.md} +2 -2
  91. data/docs/User.md +7 -5
  92. data/docs/UsersApi.md +15 -1
  93. data/docs/Workspace.md +8 -6
  94. data/docs/WorkspaceInput.md +1 -1
  95. data/docs/WorkspacesApi.md +156 -3
  96. data/lib/postboost/api/accounts_api.rb +16 -4
  97. data/lib/postboost/api/ai_api.rb +466 -0
  98. data/lib/postboost/api/analytics_api.rb +425 -0
  99. data/lib/postboost/api/media_api.rb +365 -22
  100. data/lib/postboost/api/mentions_api.rb +386 -0
  101. data/lib/postboost/api/posts_api.rb +176 -12
  102. data/lib/postboost/api/receipts_api.rb +17 -2
  103. data/lib/postboost/api/subscriptions_api.rb +28 -3
  104. data/lib/postboost/api/tags_api.rb +12 -2
  105. data/lib/postboost/api/users_api.rb +17 -2
  106. data/lib/postboost/api/workspaces_api.rb +139 -2
  107. data/lib/postboost/api_client.rb +2 -2
  108. data/lib/postboost/api_error.rb +2 -2
  109. data/lib/postboost/configuration.rb +2 -2
  110. data/lib/postboost/models/account.rb +120 -3
  111. data/lib/postboost/models/account_analytics.rb +308 -0
  112. data/lib/postboost/models/account_analytics_initial_sync.rb +231 -0
  113. data/lib/postboost/models/account_schedule.rb +255 -0
  114. data/lib/postboost/models/add_generic_subscription_request.rb +2 -2
  115. data/lib/postboost/models/add_post_to_queue_request.rb +215 -0
  116. data/lib/postboost/models/ai_credits.rb +256 -0
  117. data/lib/postboost/models/analytics_period.rb +270 -0
  118. data/lib/postboost/models/analytics_summary.rb +237 -0
  119. data/lib/postboost/models/analytics_summary_data.rb +327 -0
  120. data/lib/postboost/models/approve_post_request.rb +247 -0
  121. data/lib/postboost/models/best_posting_times.rb +240 -0
  122. data/lib/postboost/models/best_posting_times_times_inner.rb +269 -0
  123. data/lib/postboost/models/blog_to_social200_response.rb +214 -0
  124. data/lib/postboost/models/blog_to_social429_response.rb +214 -0
  125. data/lib/postboost/models/blog_to_social_caption.rb +265 -0
  126. data/lib/postboost/models/blog_to_social_input.rb +536 -0
  127. data/lib/postboost/models/blog_to_social_media.rb +226 -0
  128. data/lib/postboost/models/blog_to_social_response.rb +276 -0
  129. data/lib/postboost/models/cancel_subscription422_response.rb +223 -0
  130. data/lib/postboost/models/cancel_subscription422_response_errors.rb +216 -0
  131. data/lib/postboost/models/cancel_subscription_request.rb +217 -0
  132. data/lib/postboost/models/change_subscription_plan_request.rb +2 -2
  133. data/lib/postboost/models/checkout_subscription200_response.rb +2 -2
  134. data/lib/postboost/models/checkout_subscription_request.rb +2 -2
  135. data/lib/postboost/models/complete_chunked_upload_request.rb +243 -0
  136. data/lib/postboost/models/create_media_folder_request.rb +258 -0
  137. data/lib/postboost/models/create_mention201_response.rb +214 -0
  138. data/lib/postboost/models/delete_media_bulk_request.rb +23 -4
  139. data/lib/postboost/models/{initiate_remote_upload200_response.rb → delete_media_bulk_request_items_inner.rb} +5 -5
  140. data/lib/postboost/models/delete_media_folder_request.rb +216 -0
  141. data/lib/postboost/models/delete_mode.rb +2 -2
  142. data/lib/postboost/models/delete_post_request.rb +2 -2
  143. data/lib/postboost/models/delete_posts_bulk_request.rb +2 -2
  144. data/lib/postboost/models/delete_receipts_bulk_request.rb +2 -2
  145. data/lib/postboost/models/delete_result.rb +23 -2
  146. data/lib/postboost/models/delete_user400_response.rb +2 -2
  147. data/lib/postboost/models/delete_users_bulk_request.rb +2 -2
  148. data/lib/postboost/models/delete_workspaces_bulk_request.rb +2 -2
  149. data/lib/postboost/models/get_remote_upload_status200_response.rb +2 -2
  150. data/lib/postboost/models/image_alt_text200_response.rb +221 -0
  151. data/lib/postboost/models/image_alt_text_input.rb +221 -0
  152. data/lib/postboost/models/image_alt_text_response.rb +262 -0
  153. data/lib/postboost/models/image_edit_input.rb +375 -0
  154. data/lib/postboost/models/image_generate200_response.rb +221 -0
  155. data/lib/postboost/models/image_generate429_response.rb +214 -0
  156. data/lib/postboost/models/image_generate_input.rb +447 -0
  157. data/lib/postboost/models/image_generation_response.rb +305 -0
  158. data/lib/postboost/models/image_prompt200_response.rb +221 -0
  159. data/lib/postboost/models/image_prompt429_response.rb +214 -0
  160. data/lib/postboost/models/image_prompt_input.rb +345 -0
  161. data/lib/postboost/models/image_prompt_response.rb +221 -0
  162. data/lib/postboost/models/image_variations200_response.rb +221 -0
  163. data/lib/postboost/models/image_variations_input.rb +328 -0
  164. data/lib/postboost/models/image_variations_response.rb +280 -0
  165. data/lib/postboost/models/{initiate_chunked_upload200_response.rb → initiate_chunked_upload201_response.rb} +5 -5
  166. data/lib/postboost/models/initiate_chunked_upload_request.rb +2 -2
  167. data/lib/postboost/models/initiate_remote_upload201_response.rb +105 -0
  168. data/lib/postboost/models/{initiate_remote_upload200_response_one_of.rb → initiate_remote_upload201_response_one_of.rb} +5 -5
  169. data/lib/postboost/models/initiate_remote_upload_request.rb +16 -6
  170. data/lib/postboost/models/list_accounts200_response.rb +2 -2
  171. data/lib/postboost/models/list_media200_response.rb +2 -2
  172. data/lib/postboost/models/list_media_folders200_response.rb +216 -0
  173. data/lib/postboost/models/list_mentions200_response.rb +241 -0
  174. data/lib/postboost/models/list_my_workspaces200_response.rb +216 -0
  175. data/lib/postboost/models/list_posts200_response.rb +2 -2
  176. data/lib/postboost/models/list_receipts200_response.rb +2 -2
  177. data/lib/postboost/models/list_tags200_response.rb +2 -2
  178. data/lib/postboost/models/list_users200_response.rb +2 -2
  179. data/lib/postboost/models/list_workspaces200_response.rb +2 -2
  180. data/lib/postboost/models/media.rb +128 -3
  181. data/lib/postboost/models/media_folder.rb +271 -0
  182. data/lib/postboost/models/media_folder_input.rb +244 -0
  183. data/lib/postboost/models/media_folder_ref.rb +237 -0
  184. data/lib/postboost/models/mention.rb +290 -0
  185. data/lib/postboost/models/mention_identity.rb +257 -0
  186. data/lib/postboost/models/mention_identity_input.rb +325 -0
  187. data/lib/postboost/models/mention_input.rb +279 -0
  188. data/lib/postboost/models/pagination_meta.rb +2 -2
  189. data/lib/postboost/models/pagination_meta_links.rb +2 -2
  190. data/lib/postboost/models/pagination_meta_meta.rb +2 -2
  191. data/lib/postboost/models/post.rb +69 -3
  192. data/lib/postboost/models/post_analytics.rb +252 -0
  193. data/lib/postboost/models/post_content.rb +2 -2
  194. data/lib/postboost/models/post_input.rb +16 -3
  195. data/lib/postboost/models/post_status.rb +6 -3
  196. data/lib/postboost/models/post_version.rb +32 -3
  197. data/lib/postboost/models/posting_time_slot.rb +315 -0
  198. data/lib/postboost/models/posting_times.rb +362 -0
  199. data/lib/postboost/models/posting_times_best_inner.rb +269 -0
  200. data/lib/postboost/models/posting_times_day_intervals_inner_inner.rb +370 -0
  201. data/lib/postboost/models/posting_times_days_inner.rb +366 -0
  202. data/lib/postboost/models/public_workspace.rb +262 -0
  203. data/lib/postboost/models/public_workspace_pivot.rb +267 -0
  204. data/lib/postboost/models/publish_progress.rb +254 -0
  205. data/lib/postboost/models/receipt.rb +58 -2
  206. data/lib/postboost/models/receipt_input.rb +2 -2
  207. data/lib/postboost/models/receipt_update_input.rb +2 -2
  208. data/lib/postboost/models/remove_generic_subscription422_response.rb +214 -0
  209. data/lib/postboost/models/remove_user_from_workspace_request.rb +2 -2
  210. data/lib/postboost/models/retry_post_account_result.rb +275 -0
  211. data/lib/postboost/models/schedule_post_request.rb +48 -6
  212. data/lib/postboost/models/schedule_result.rb +23 -6
  213. data/lib/postboost/models/subscription.rb +37 -2
  214. data/lib/postboost/models/subscription_input.rb +2 -2
  215. data/lib/postboost/models/subscription_status.rb +2 -2
  216. data/lib/postboost/models/subscription_update_input.rb +2 -2
  217. data/lib/postboost/models/tag.rb +30 -2
  218. data/lib/postboost/models/tag_input.rb +2 -2
  219. data/lib/postboost/models/update_media_request.rb +61 -11
  220. data/lib/postboost/models/{upload_chunk200_response.rb → upload_chunk201_response.rb} +5 -5
  221. data/lib/postboost/models/user.rb +48 -3
  222. data/lib/postboost/models/user_input.rb +2 -2
  223. data/lib/postboost/models/user_update_input.rb +2 -2
  224. data/lib/postboost/models/workspace.rb +42 -3
  225. data/lib/postboost/models/workspace_input.rb +3 -9
  226. data/lib/postboost/models/workspace_user_input.rb +2 -2
  227. data/lib/postboost/version.rb +3 -3
  228. data/lib/postboost.rb +70 -6
  229. data/postboost.gemspec +3 -3
  230. data/spec/api/accounts_api_spec.rb +7 -3
  231. data/spec/api/ai_api_spec.rb +113 -0
  232. data/spec/api/analytics_api_spec.rb +113 -0
  233. data/spec/api/media_api_spec.rb +73 -10
  234. data/spec/api/mentions_api_spec.rb +103 -0
  235. data/spec/api/posts_api_spec.rb +38 -6
  236. data/spec/api/receipts_api_spec.rb +9 -2
  237. data/spec/api/subscriptions_api_spec.rb +12 -2
  238. data/spec/api/tags_api_spec.rb +7 -2
  239. data/spec/api/users_api_spec.rb +9 -2
  240. data/spec/api/workspaces_api_spec.rb +33 -2
  241. data/spec/models/account_analytics_initial_sync_spec.rb +42 -0
  242. data/spec/models/account_analytics_spec.rb +66 -0
  243. data/spec/models/account_schedule_spec.rb +48 -0
  244. data/spec/models/account_spec.rb +24 -2
  245. data/spec/models/add_generic_subscription_request_spec.rb +2 -2
  246. data/spec/models/add_post_to_queue_request_spec.rb +36 -0
  247. data/spec/models/ai_credits_spec.rb +48 -0
  248. data/spec/models/analytics_period_spec.rb +54 -0
  249. data/spec/models/analytics_summary_data_spec.rb +96 -0
  250. data/spec/models/analytics_summary_spec.rb +42 -0
  251. data/spec/models/approve_post_request_spec.rb +54 -0
  252. data/spec/models/best_posting_times_spec.rb +42 -0
  253. data/spec/models/best_posting_times_times_inner_spec.rb +54 -0
  254. data/spec/models/blog_to_social200_response_spec.rb +36 -0
  255. data/spec/models/blog_to_social429_response_spec.rb +36 -0
  256. data/spec/models/blog_to_social_caption_spec.rb +66 -0
  257. data/spec/models/blog_to_social_input_spec.rb +128 -0
  258. data/spec/models/blog_to_social_media_spec.rb +42 -0
  259. data/spec/models/blog_to_social_response_spec.rb +72 -0
  260. data/spec/models/cancel_subscription422_response_errors_spec.rb +36 -0
  261. data/spec/models/cancel_subscription422_response_spec.rb +42 -0
  262. data/spec/models/cancel_subscription_request_spec.rb +36 -0
  263. data/spec/models/change_subscription_plan_request_spec.rb +2 -2
  264. data/spec/models/checkout_subscription200_response_spec.rb +2 -2
  265. data/spec/models/checkout_subscription_request_spec.rb +2 -2
  266. data/spec/models/complete_chunked_upload_request_spec.rb +42 -0
  267. data/spec/models/create_media_folder_request_spec.rb +42 -0
  268. data/spec/models/create_mention201_response_spec.rb +36 -0
  269. data/spec/models/delete_media_bulk_request_items_inner_spec.rb +32 -0
  270. data/spec/models/delete_media_bulk_request_spec.rb +2 -2
  271. data/spec/models/delete_media_folder_request_spec.rb +36 -0
  272. data/spec/models/delete_mode_spec.rb +2 -2
  273. data/spec/models/delete_post_request_spec.rb +2 -2
  274. data/spec/models/delete_posts_bulk_request_spec.rb +2 -2
  275. data/spec/models/delete_receipts_bulk_request_spec.rb +2 -2
  276. data/spec/models/delete_result_spec.rb +2 -2
  277. data/spec/models/delete_user400_response_spec.rb +2 -2
  278. data/spec/models/delete_users_bulk_request_spec.rb +2 -2
  279. data/spec/models/delete_workspaces_bulk_request_spec.rb +2 -2
  280. data/spec/models/get_remote_upload_status200_response_spec.rb +2 -2
  281. data/spec/models/image_alt_text200_response_spec.rb +36 -0
  282. data/spec/models/image_alt_text_input_spec.rb +36 -0
  283. data/spec/models/image_alt_text_response_spec.rb +54 -0
  284. data/spec/models/image_edit_input_spec.rb +74 -0
  285. data/spec/models/image_generate200_response_spec.rb +36 -0
  286. data/spec/models/image_generate429_response_spec.rb +36 -0
  287. data/spec/models/image_generate_input_spec.rb +102 -0
  288. data/spec/models/image_generation_response_spec.rb +72 -0
  289. data/spec/models/image_prompt200_response_spec.rb +36 -0
  290. data/spec/models/image_prompt429_response_spec.rb +36 -0
  291. data/spec/models/image_prompt_input_spec.rb +70 -0
  292. data/spec/models/image_prompt_response_spec.rb +36 -0
  293. data/spec/models/image_variations200_response_spec.rb +36 -0
  294. data/spec/models/image_variations_input_spec.rb +62 -0
  295. data/spec/models/image_variations_response_spec.rb +60 -0
  296. data/spec/models/initiate_chunked_upload201_response_spec.rb +48 -0
  297. data/spec/models/initiate_chunked_upload_request_spec.rb +2 -2
  298. data/spec/models/initiate_remote_upload201_response_one_of_spec.rb +36 -0
  299. data/spec/models/initiate_remote_upload201_response_spec.rb +32 -0
  300. data/spec/models/initiate_remote_upload_request_spec.rb +8 -2
  301. data/spec/models/list_accounts200_response_spec.rb +2 -2
  302. data/spec/models/list_media200_response_spec.rb +2 -2
  303. data/spec/models/list_media_folders200_response_spec.rb +36 -0
  304. data/spec/models/list_mentions200_response_spec.rb +48 -0
  305. data/spec/models/list_my_workspaces200_response_spec.rb +36 -0
  306. data/spec/models/list_posts200_response_spec.rb +2 -2
  307. data/spec/models/list_receipts200_response_spec.rb +2 -2
  308. data/spec/models/list_tags200_response_spec.rb +2 -2
  309. data/spec/models/list_users200_response_spec.rb +2 -2
  310. data/spec/models/list_workspaces200_response_spec.rb +2 -2
  311. data/spec/models/media_folder_input_spec.rb +42 -0
  312. data/spec/models/media_folder_ref_spec.rb +42 -0
  313. data/spec/models/media_folder_spec.rb +54 -0
  314. data/spec/models/media_spec.rb +44 -2
  315. data/spec/models/mention_identity_input_spec.rb +60 -0
  316. data/spec/models/mention_identity_spec.rb +54 -0
  317. data/spec/models/mention_input_spec.rb +48 -0
  318. data/spec/models/mention_spec.rb +66 -0
  319. data/spec/models/pagination_meta_links_spec.rb +2 -2
  320. data/spec/models/pagination_meta_meta_spec.rb +2 -2
  321. data/spec/models/pagination_meta_spec.rb +2 -2
  322. data/spec/models/post_analytics_spec.rb +48 -0
  323. data/spec/models/post_content_spec.rb +2 -2
  324. data/spec/models/post_input_spec.rb +8 -2
  325. data/spec/models/post_spec.rb +8 -2
  326. data/spec/models/post_status_spec.rb +2 -2
  327. data/spec/models/post_version_spec.rb +8 -2
  328. data/spec/models/posting_time_slot_spec.rb +52 -0
  329. data/spec/models/posting_times_best_inner_spec.rb +54 -0
  330. data/spec/models/posting_times_day_intervals_inner_inner_spec.rb +70 -0
  331. data/spec/models/posting_times_days_inner_spec.rb +58 -0
  332. data/spec/models/posting_times_spec.rb +78 -0
  333. data/spec/models/public_workspace_pivot_spec.rb +52 -0
  334. data/spec/models/public_workspace_spec.rb +54 -0
  335. data/spec/models/publish_progress_spec.rb +48 -0
  336. data/spec/models/receipt_input_spec.rb +2 -2
  337. data/spec/models/receipt_spec.rb +2 -2
  338. data/spec/models/receipt_update_input_spec.rb +2 -2
  339. data/spec/models/remove_generic_subscription422_response_spec.rb +36 -0
  340. data/spec/models/remove_user_from_workspace_request_spec.rb +2 -2
  341. data/spec/models/retry_post_account_result_spec.rb +48 -0
  342. data/spec/models/schedule_post_request_spec.rb +26 -2
  343. data/spec/models/schedule_result_spec.rb +8 -2
  344. data/spec/models/subscription_input_spec.rb +2 -2
  345. data/spec/models/subscription_spec.rb +2 -2
  346. data/spec/models/subscription_status_spec.rb +2 -2
  347. data/spec/models/subscription_update_input_spec.rb +2 -2
  348. data/spec/models/tag_input_spec.rb +2 -2
  349. data/spec/models/tag_spec.rb +2 -2
  350. data/spec/models/update_media_request_spec.rb +14 -2
  351. data/spec/models/upload_chunk201_response_spec.rb +36 -0
  352. data/spec/models/user_input_spec.rb +2 -2
  353. data/spec/models/user_spec.rb +8 -2
  354. data/spec/models/user_update_input_spec.rb +2 -2
  355. data/spec/models/workspace_input_spec.rb +2 -2
  356. data/spec/models/workspace_spec.rb +8 -2
  357. data/spec/models/workspace_user_input_spec.rb +2 -2
  358. data/spec/spec_helper.rb +2 -2
  359. metadata +331 -75
  360. data/git_push.sh +0 -57
  361. data/spec/models/initiate_chunked_upload200_response_spec.rb +0 -48
  362. data/spec/models/initiate_remote_upload200_response_one_of_spec.rb +0 -36
  363. data/spec/models/initiate_remote_upload200_response_spec.rb +0 -32
  364. data/spec/models/upload_chunk200_response_spec.rb +0 -36
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: 69b47ffd2944596cfb6f7fe0d7b48f3f2331274977ab92955f8a6e6ae2e14920
4
- data.tar.gz: 2d81ba41fd16eb6e79e64c9285753ff960cea738e6facbc6528b5dc50f5db62e
3
+ metadata.gz: a05b82d879c23d3d2fb7a4b154371e5558ed060958c4fb0a1494c9fed828840b
4
+ data.tar.gz: 6b7c7e51383665387fae7811f5067e8418a6e73d72a5b70bde220f2f64ccdd81
5
5
  SHA512:
6
- metadata.gz: ddd0dfd8a3b77864e846970aeff826e882e28bf0f5213431d8096e12730b3f0043683720689205d1b5b38c325bb387e0aa10d25a76f0ab0df55abec460c9eda4
7
- data.tar.gz: 4a07a1a17a732112644b0b1b5b8c5885895834d646371d48c477e35c49218e080ba9e5b733d89ba136d0ab0dcc665a6bd31b103c3d5c9b950b84ee129e689e00
6
+ metadata.gz: 3da2b728cf87252a8160fecb659947ea25a2be4e4476f67e77fa53da27e9c98e75737e6281defa0528791842fdd66ae511ac9717e38249c1ab14331dcb993e19
7
+ data.tar.gz: b99793de48918b19c819164b975dd49969c922d05de13e96b6911e53676ffa5532f88daf007a635ca7abf9e2cdaf6fe762b36b282a412f4f4da0e8ca77e15089
data/README.md CHANGED
@@ -0,0 +1,119 @@
1
+ # PostBoost Ruby SDK
2
+
3
+ Official Ruby client for the [PostBoost API](https://postboost.co/docs/api).
4
+
5
+ ## Install
6
+
7
+ ```bash
8
+ gem install postboost
9
+ ```
10
+
11
+ | | |
12
+ |---|---|
13
+ | **RubyGems** | [rubygems.org/gems/postboost](https://rubygems.org/gems/postboost) |
14
+ | **GitHub** | [postboost-co/postboost-ruby](https://github.com/postboost-co/postboost-ruby) |
15
+ | **Docs** | [postboost.co/docs/api](https://postboost.co/docs/api) |
16
+ | **Version** | v1.8.0 |
17
+
18
+ ## Quick start
19
+
20
+ ```ruby
21
+ require 'postboost'
22
+
23
+ PostBoost.configure { |c| c.access_token = ENV['POSTBOOST_API_TOKEN'] }
24
+
25
+ api = PostBoost::PostsApi.new
26
+ posts = api.list_posts('YOUR_WORKSPACE_UUID')
27
+ posts.each { |p| puts p.uuid }
28
+ ```
29
+
30
+ ---
31
+
32
+ ## Documentation for API Endpoints
33
+
34
+ All URIs are relative to *https://postboost.co/app/api*
35
+
36
+ Class | Method | HTTP request | Description
37
+ ------------ | ------------- | ------------- | -------------
38
+ *PostBoost::AIApi* | [**blog_to_social**](docs/AIApi.md#blog_to_social) | **POST** /{workspaceUuid}/ai/blog-to-social | Generate social media captions from a blog post
39
+ *PostBoost::AIApi* | [**image_alt_text**](docs/AIApi.md#image_alt_text) | **POST** /{workspaceUuid}/ai/image-alt-text | Generate alt text for a media image using AI
40
+ *PostBoost::AIApi* | [**image_edit**](docs/AIApi.md#image_edit) | **POST** /{workspaceUuid}/ai/image-edit | Edit an existing media image using AI
41
+ *PostBoost::AIApi* | [**image_generate**](docs/AIApi.md#image_generate) | **POST** /{workspaceUuid}/ai/image-generate | Generate social media images from a caption
42
+ *PostBoost::AIApi* | [**image_prompt**](docs/AIApi.md#image_prompt) | **POST** /{workspaceUuid}/ai/image-prompt | Build an optimized image prompt from a social media caption
43
+ *PostBoost::AIApi* | [**image_variations**](docs/AIApi.md#image_variations) | **POST** /{workspaceUuid}/ai/image-variations | Generate variations of an existing media image
44
+ *PostBoost::AccountsApi* | [**get_account**](docs/AccountsApi.md#get_account) | **GET** /{workspaceUuid}/accounts/{accountUuid} | Get account
45
+ *PostBoost::AccountsApi* | [**list_accounts**](docs/AccountsApi.md#list_accounts) | **GET** /{workspaceUuid}/accounts | List accounts
46
+ *PostBoost::AnalyticsApi* | [**get_account_analytics**](docs/AnalyticsApi.md#get_account_analytics) | **GET** /{workspaceUuid}/analytics/accounts/{accountUuid} | Get account analytics
47
+ *PostBoost::AnalyticsApi* | [**get_analytics_summary**](docs/AnalyticsApi.md#get_analytics_summary) | **GET** /{workspaceUuid}/analytics | Get analytics summary
48
+ *PostBoost::AnalyticsApi* | [**get_best_posting_times**](docs/AnalyticsApi.md#get_best_posting_times) | **GET** /{workspaceUuid}/analytics/best-times | Get best posting times
49
+ *PostBoost::AnalyticsApi* | [**get_post_analytics_0**](docs/AnalyticsApi.md#get_post_analytics_0) | **GET** /{workspaceUuid}/posts/{postUuid}/analytics | Get post analytics
50
+ *PostBoost::AnalyticsApi* | [**get_posting_times**](docs/AnalyticsApi.md#get_posting_times) | **GET** /{workspaceUuid}/analytics/posting-times | Get posting times heatmap
51
+ *PostBoost::MediaApi* | [**abort_chunked_upload**](docs/MediaApi.md#abort_chunked_upload) | **DELETE** /{workspaceUuid}/media/chunked/{uploadUuid} | Abort chunked upload
52
+ *PostBoost::MediaApi* | [**complete_chunked_upload**](docs/MediaApi.md#complete_chunked_upload) | **POST** /{workspaceUuid}/media/chunked/{uploadUuid}/complete | Complete chunked upload
53
+ *PostBoost::MediaApi* | [**create_media_folder**](docs/MediaApi.md#create_media_folder) | **POST** /{workspaceUuid}/media/folders | Create media folder
54
+ *PostBoost::MediaApi* | [**delete_media_bulk**](docs/MediaApi.md#delete_media_bulk) | **DELETE** /{workspaceUuid}/media | Delete media (bulk)
55
+ *PostBoost::MediaApi* | [**delete_media_folder**](docs/MediaApi.md#delete_media_folder) | **DELETE** /{workspaceUuid}/media/folders/{folderUuid} | Delete media folder
56
+ *PostBoost::MediaApi* | [**get_media**](docs/MediaApi.md#get_media) | **GET** /{workspaceUuid}/media/{mediaUuid} | Get media
57
+ *PostBoost::MediaApi* | [**get_remote_upload_status**](docs/MediaApi.md#get_remote_upload_status) | **GET** /{workspaceUuid}/media/remote/{downloadId}/status | Get remote upload status
58
+ *PostBoost::MediaApi* | [**initiate_chunked_upload**](docs/MediaApi.md#initiate_chunked_upload) | **POST** /{workspaceUuid}/media/chunked/initiate | Initiate chunked upload
59
+ *PostBoost::MediaApi* | [**initiate_remote_upload**](docs/MediaApi.md#initiate_remote_upload) | **POST** /{workspaceUuid}/media/remote/initiate | Initiate remote upload
60
+ *PostBoost::MediaApi* | [**list_media**](docs/MediaApi.md#list_media) | **GET** /{workspaceUuid}/media | List media
61
+ *PostBoost::MediaApi* | [**list_media_folders**](docs/MediaApi.md#list_media_folders) | **GET** /{workspaceUuid}/media/folders | List media folders
62
+ *PostBoost::MediaApi* | [**update_media**](docs/MediaApi.md#update_media) | **PUT** /{workspaceUuid}/media/{mediaUuid} | Update media
63
+ *PostBoost::MediaApi* | [**update_media_folder**](docs/MediaApi.md#update_media_folder) | **PUT** /{workspaceUuid}/media/folders/{folderUuid} | Update media folder
64
+ *PostBoost::MediaApi* | [**upload_chunk**](docs/MediaApi.md#upload_chunk) | **POST** /{workspaceUuid}/media/chunked/{uploadUuid}/upload | Upload a chunk
65
+ *PostBoost::MediaApi* | [**upload_media**](docs/MediaApi.md#upload_media) | **POST** /{workspaceUuid}/media | Upload media (binary)
66
+ *PostBoost::MentionsApi* | [**create_mention**](docs/MentionsApi.md#create_mention) | **POST** /{workspaceUuid}/mentions | Create mention
67
+ *PostBoost::MentionsApi* | [**delete_mention**](docs/MentionsApi.md#delete_mention) | **DELETE** /{workspaceUuid}/mentions/{mentionId} | Delete mention
68
+ *PostBoost::MentionsApi* | [**get_mention**](docs/MentionsApi.md#get_mention) | **GET** /{workspaceUuid}/mentions/{mentionId} | Get mention
69
+ *PostBoost::MentionsApi* | [**list_mentions**](docs/MentionsApi.md#list_mentions) | **GET** /{workspaceUuid}/mentions | List mentions
70
+ *PostBoost::MentionsApi* | [**update_mention**](docs/MentionsApi.md#update_mention) | **PUT** /{workspaceUuid}/mentions/{mentionId} | Update mention
71
+ *PostBoost::PostsApi* | [**add_post_to_queue**](docs/PostsApi.md#add_post_to_queue) | **POST** /{workspaceUuid}/posts/add-to-queue/{postUuid} | Add post to queue
72
+ *PostBoost::PostsApi* | [**approve_post**](docs/PostsApi.md#approve_post) | **POST** /{workspaceUuid}/posts/approve/{postUuid} | Approve post
73
+ *PostBoost::PostsApi* | [**create_post**](docs/PostsApi.md#create_post) | **POST** /{workspaceUuid}/posts | Create post
74
+ *PostBoost::PostsApi* | [**delete_post**](docs/PostsApi.md#delete_post) | **DELETE** /{workspaceUuid}/posts/{postUuid} | Delete post
75
+ *PostBoost::PostsApi* | [**delete_posts_bulk**](docs/PostsApi.md#delete_posts_bulk) | **DELETE** /{workspaceUuid}/posts | Delete posts (bulk)
76
+ *PostBoost::PostsApi* | [**get_post**](docs/PostsApi.md#get_post) | **GET** /{workspaceUuid}/posts/{postUuid} | Get post
77
+ *PostBoost::PostsApi* | [**get_post_analytics**](docs/PostsApi.md#get_post_analytics) | **GET** /{workspaceUuid}/posts/{postUuid}/analytics | Get post analytics
78
+ *PostBoost::PostsApi* | [**list_posts**](docs/PostsApi.md#list_posts) | **GET** /{workspaceUuid}/posts | List posts
79
+ *PostBoost::PostsApi* | [**retry_post_account**](docs/PostsApi.md#retry_post_account) | **POST** /{workspaceUuid}/posts/retry/{postUuid}/{accountUuid} | Retry publishing to one account
80
+ *PostBoost::PostsApi* | [**schedule_post**](docs/PostsApi.md#schedule_post) | **POST** /{workspaceUuid}/posts/schedule/{postUuid} | Schedule post
81
+ *PostBoost::PostsApi* | [**update_post**](docs/PostsApi.md#update_post) | **PUT** /{workspaceUuid}/posts/{postUuid} | Update post
82
+ *PostBoost::ReceiptsApi* | [**create_receipt**](docs/ReceiptsApi.md#create_receipt) | **POST** /panel/receipts | Create receipt
83
+ *PostBoost::ReceiptsApi* | [**delete_receipt**](docs/ReceiptsApi.md#delete_receipt) | **DELETE** /panel/receipts/{receiptUuid} | Delete receipt
84
+ *PostBoost::ReceiptsApi* | [**delete_receipts_bulk**](docs/ReceiptsApi.md#delete_receipts_bulk) | **DELETE** /panel/receipts | Delete receipts (bulk)
85
+ *PostBoost::ReceiptsApi* | [**get_receipt**](docs/ReceiptsApi.md#get_receipt) | **GET** /panel/receipts/{receiptUuid} | Get receipt
86
+ *PostBoost::ReceiptsApi* | [**list_receipts**](docs/ReceiptsApi.md#list_receipts) | **GET** /panel/receipts | List receipts
87
+ *PostBoost::ReceiptsApi* | [**update_receipt**](docs/ReceiptsApi.md#update_receipt) | **PUT** /panel/receipts/{receiptUuid} | Update receipt
88
+ *PostBoost::SubscriptionsApi* | [**add_generic_subscription**](docs/SubscriptionsApi.md#add_generic_subscription) | **POST** /panel/workspaces/{workspaceUuid}/subscription/generic | Add generic subscription
89
+ *PostBoost::SubscriptionsApi* | [**cancel_subscription**](docs/SubscriptionsApi.md#cancel_subscription) | **POST** /panel/workspaces/{workspaceUuid}/subscription/cancel | Cancel subscription
90
+ *PostBoost::SubscriptionsApi* | [**change_subscription_plan**](docs/SubscriptionsApi.md#change_subscription_plan) | **PUT** /panel/workspaces/{workspaceUuid}/subscription/change-plan | Change subscription plan
91
+ *PostBoost::SubscriptionsApi* | [**checkout_subscription**](docs/SubscriptionsApi.md#checkout_subscription) | **POST** /panel/workspaces/{workspaceUuid}/subscription/new | New subscription checkout
92
+ *PostBoost::SubscriptionsApi* | [**create_subscription**](docs/SubscriptionsApi.md#create_subscription) | **POST** /panel/workspaces/{workspaceUuid}/subscription | Create subscription
93
+ *PostBoost::SubscriptionsApi* | [**delete_subscription**](docs/SubscriptionsApi.md#delete_subscription) | **DELETE** /panel/workspaces/{workspaceUuid}/subscription | Delete subscription
94
+ *PostBoost::SubscriptionsApi* | [**get_subscription**](docs/SubscriptionsApi.md#get_subscription) | **GET** /panel/workspaces/{workspaceUuid}/subscription | Get subscription
95
+ *PostBoost::SubscriptionsApi* | [**remove_generic_subscription**](docs/SubscriptionsApi.md#remove_generic_subscription) | **DELETE** /panel/workspaces/{workspaceUuid}/subscription/generic | Remove generic subscription
96
+ *PostBoost::SubscriptionsApi* | [**resume_subscription**](docs/SubscriptionsApi.md#resume_subscription) | **POST** /panel/workspaces/{workspaceUuid}/subscription/resume | Resume subscription
97
+ *PostBoost::SubscriptionsApi* | [**update_subscription**](docs/SubscriptionsApi.md#update_subscription) | **PUT** /panel/workspaces/{workspaceUuid}/subscription | Update subscription
98
+ *PostBoost::TagsApi* | [**create_tag**](docs/TagsApi.md#create_tag) | **POST** /{workspaceUuid}/tags | Create tag
99
+ *PostBoost::TagsApi* | [**delete_tag**](docs/TagsApi.md#delete_tag) | **DELETE** /{workspaceUuid}/tags/{tagUuid} | Delete tag
100
+ *PostBoost::TagsApi* | [**get_tag**](docs/TagsApi.md#get_tag) | **GET** /{workspaceUuid}/tags/{tagUuid} | Get tag
101
+ *PostBoost::TagsApi* | [**list_tags**](docs/TagsApi.md#list_tags) | **GET** /{workspaceUuid}/tags | List tags
102
+ *PostBoost::TagsApi* | [**update_tag**](docs/TagsApi.md#update_tag) | **PUT** /{workspaceUuid}/tags/{tagUuid} | Update tag
103
+ *PostBoost::UsersApi* | [**create_user**](docs/UsersApi.md#create_user) | **POST** /panel/users | Create user
104
+ *PostBoost::UsersApi* | [**delete_user**](docs/UsersApi.md#delete_user) | **DELETE** /panel/users/{userId} | Delete user
105
+ *PostBoost::UsersApi* | [**delete_users_bulk**](docs/UsersApi.md#delete_users_bulk) | **DELETE** /panel/users | Delete users (bulk)
106
+ *PostBoost::UsersApi* | [**get_user**](docs/UsersApi.md#get_user) | **GET** /panel/users/{userId} | Get user
107
+ *PostBoost::UsersApi* | [**list_users**](docs/UsersApi.md#list_users) | **GET** /panel/users | List users
108
+ *PostBoost::UsersApi* | [**update_user**](docs/UsersApi.md#update_user) | **PUT** /panel/users/{userId} | Update user
109
+ *PostBoost::WorkspacesApi* | [**add_user_to_workspace**](docs/WorkspacesApi.md#add_user_to_workspace) | **POST** /panel/workspaces/{workspaceUuid}/users | Add user to workspace
110
+ *PostBoost::WorkspacesApi* | [**create_workspace**](docs/WorkspacesApi.md#create_workspace) | **POST** /panel/workspaces | Create workspace
111
+ *PostBoost::WorkspacesApi* | [**delete_workspace**](docs/WorkspacesApi.md#delete_workspace) | **DELETE** /panel/workspaces/{workspaceUuid} | Delete workspace
112
+ *PostBoost::WorkspacesApi* | [**delete_workspaces_bulk**](docs/WorkspacesApi.md#delete_workspaces_bulk) | **DELETE** /panel/workspaces | Delete workspaces (bulk)
113
+ *PostBoost::WorkspacesApi* | [**get_workspace**](docs/WorkspacesApi.md#get_workspace) | **GET** /panel/workspaces/{workspaceUuid} | Get workspace
114
+ *PostBoost::WorkspacesApi* | [**get_workspace_ai_credits**](docs/WorkspacesApi.md#get_workspace_ai_credits) | **GET** /panel/workspaces/{workspaceUuid}/ai-credits | Get workspace AI credits
115
+ *PostBoost::WorkspacesApi* | [**list_my_workspaces**](docs/WorkspacesApi.md#list_my_workspaces) | **GET** /workspaces | List my workspaces
116
+ *PostBoost::WorkspacesApi* | [**list_workspaces**](docs/WorkspacesApi.md#list_workspaces) | **GET** /panel/workspaces | List workspaces
117
+ *PostBoost::WorkspacesApi* | [**remove_user_from_workspace**](docs/WorkspacesApi.md#remove_user_from_workspace) | **DELETE** /panel/workspaces/{workspaceUuid}/users | Remove user from workspace
118
+ *PostBoost::WorkspacesApi* | [**update_workspace**](docs/WorkspacesApi.md#update_workspace) | **PUT** /panel/workspaces/{workspaceUuid} | Update workspace
119
+ *PostBoost::WorkspacesApi* | [**update_workspace_user**](docs/WorkspacesApi.md#update_workspace_user) | **PUT** /panel/workspaces/{workspaceUuid}/users | Update user role in workspace
data/docs/AIApi.md ADDED
@@ -0,0 +1,439 @@
1
+ # PostBoost::AIApi
2
+
3
+ All URIs are relative to *https://postboost.co/app/api*
4
+
5
+ | Method | HTTP request | Description |
6
+ | ------ | ------------ | ----------- |
7
+ | [**blog_to_social**](AIApi.md#blog_to_social) | **POST** /{workspaceUuid}/ai/blog-to-social | Generate social media captions from a blog post |
8
+ | [**image_alt_text**](AIApi.md#image_alt_text) | **POST** /{workspaceUuid}/ai/image-alt-text | Generate alt text for a media image using AI |
9
+ | [**image_edit**](AIApi.md#image_edit) | **POST** /{workspaceUuid}/ai/image-edit | Edit an existing media image using AI |
10
+ | [**image_generate**](AIApi.md#image_generate) | **POST** /{workspaceUuid}/ai/image-generate | Generate social media images from a caption |
11
+ | [**image_prompt**](AIApi.md#image_prompt) | **POST** /{workspaceUuid}/ai/image-prompt | Build an optimized image prompt from a social media caption |
12
+ | [**image_variations**](AIApi.md#image_variations) | **POST** /{workspaceUuid}/ai/image-variations | Generate variations of an existing media image |
13
+
14
+
15
+ ## blog_to_social
16
+
17
+ > <BlogToSocial200Response> blog_to_social(workspace_uuid, blog_to_social_input)
18
+
19
+ Generate social media captions from a blog post
20
+
21
+ Generates platform-specific social media captions from a blog post URL or directly provided title and excerpt. Each platform generates one caption, which consumes one AI credit from the workspace's monthly allowance. **Input modes** (at least one required): - **URL mode**: provide `url` and the API scrapes the blog content automatically, including detecting the featured image via `og:image`. - **Direct mode**: provide `title` and `excerpt` directly (no scraping). If both are provided, direct values take priority. When `create_post` is `true`, a draft post is created in the workspace with per-account caption versions. If an image is available (from `image_url` or the scraped `og:image`), it is imported into the workspace media library and attached to the draft post.
22
+
23
+ ### Examples
24
+
25
+ ```ruby
26
+ require 'time'
27
+ require 'postboost'
28
+ # setup authorization
29
+ PostBoost.configure do |config|
30
+ # Configure Bearer authorization: bearerAuth
31
+ config.access_token = 'YOUR_BEARER_TOKEN'
32
+ end
33
+
34
+ api_instance = PostBoost::AIApi.new
35
+ workspace_uuid = '38400000-8cf0-11bd-b23e-10b96e4ef00d' # String | UUID of the workspace.
36
+ blog_to_social_input = PostBoost::BlogToSocialInput.new # BlogToSocialInput |
37
+
38
+ begin
39
+ # Generate social media captions from a blog post
40
+ result = api_instance.blog_to_social(workspace_uuid, blog_to_social_input)
41
+ p result
42
+ rescue PostBoost::ApiError => e
43
+ puts "Error when calling AIApi->blog_to_social: #{e}"
44
+ end
45
+ ```
46
+
47
+ #### Using the blog_to_social_with_http_info variant
48
+
49
+ This returns an Array which contains the response data, status code and headers.
50
+
51
+ > <Array(<BlogToSocial200Response>, Integer, Hash)> blog_to_social_with_http_info(workspace_uuid, blog_to_social_input)
52
+
53
+ ```ruby
54
+ begin
55
+ # Generate social media captions from a blog post
56
+ data, status_code, headers = api_instance.blog_to_social_with_http_info(workspace_uuid, blog_to_social_input)
57
+ p status_code # => 2xx
58
+ p headers # => { ... }
59
+ p data # => <BlogToSocial200Response>
60
+ rescue PostBoost::ApiError => e
61
+ puts "Error when calling AIApi->blog_to_social_with_http_info: #{e}"
62
+ end
63
+ ```
64
+
65
+ ### Parameters
66
+
67
+ | Name | Type | Description | Notes |
68
+ | ---- | ---- | ----------- | ----- |
69
+ | **workspace_uuid** | **String** | UUID of the workspace. | |
70
+ | **blog_to_social_input** | [**BlogToSocialInput**](BlogToSocialInput.md) | | |
71
+
72
+ ### Return type
73
+
74
+ [**BlogToSocial200Response**](BlogToSocial200Response.md)
75
+
76
+ ### Authorization
77
+
78
+ [bearerAuth](../README.md#bearerAuth)
79
+
80
+ ### HTTP request headers
81
+
82
+ - **Content-Type**: application/json
83
+ - **Accept**: application/json
84
+
85
+
86
+ ## image_alt_text
87
+
88
+ > <ImageAltText200Response> image_alt_text(workspace_uuid, image_alt_text_input)
89
+
90
+ Generate alt text for a media image using AI
91
+
92
+ Analyzes an existing workspace media item and generates accessible alt text. The alt text is saved back to the media record. Costs 1 AI credit per call.
93
+
94
+ ### Examples
95
+
96
+ ```ruby
97
+ require 'time'
98
+ require 'postboost'
99
+ # setup authorization
100
+ PostBoost.configure do |config|
101
+ # Configure Bearer authorization: bearerAuth
102
+ config.access_token = 'YOUR_BEARER_TOKEN'
103
+ end
104
+
105
+ api_instance = PostBoost::AIApi.new
106
+ workspace_uuid = '38400000-8cf0-11bd-b23e-10b96e4ef00d' # String | UUID of the workspace.
107
+ image_alt_text_input = PostBoost::ImageAltTextInput.new({media_uuid: 'media_uuid_example'}) # ImageAltTextInput |
108
+
109
+ begin
110
+ # Generate alt text for a media image using AI
111
+ result = api_instance.image_alt_text(workspace_uuid, image_alt_text_input)
112
+ p result
113
+ rescue PostBoost::ApiError => e
114
+ puts "Error when calling AIApi->image_alt_text: #{e}"
115
+ end
116
+ ```
117
+
118
+ #### Using the image_alt_text_with_http_info variant
119
+
120
+ This returns an Array which contains the response data, status code and headers.
121
+
122
+ > <Array(<ImageAltText200Response>, Integer, Hash)> image_alt_text_with_http_info(workspace_uuid, image_alt_text_input)
123
+
124
+ ```ruby
125
+ begin
126
+ # Generate alt text for a media image using AI
127
+ data, status_code, headers = api_instance.image_alt_text_with_http_info(workspace_uuid, image_alt_text_input)
128
+ p status_code # => 2xx
129
+ p headers # => { ... }
130
+ p data # => <ImageAltText200Response>
131
+ rescue PostBoost::ApiError => e
132
+ puts "Error when calling AIApi->image_alt_text_with_http_info: #{e}"
133
+ end
134
+ ```
135
+
136
+ ### Parameters
137
+
138
+ | Name | Type | Description | Notes |
139
+ | ---- | ---- | ----------- | ----- |
140
+ | **workspace_uuid** | **String** | UUID of the workspace. | |
141
+ | **image_alt_text_input** | [**ImageAltTextInput**](ImageAltTextInput.md) | | |
142
+
143
+ ### Return type
144
+
145
+ [**ImageAltText200Response**](ImageAltText200Response.md)
146
+
147
+ ### Authorization
148
+
149
+ [bearerAuth](../README.md#bearerAuth)
150
+
151
+ ### HTTP request headers
152
+
153
+ - **Content-Type**: application/json
154
+ - **Accept**: application/json
155
+
156
+
157
+ ## image_edit
158
+
159
+ > <ImageGenerate200Response> image_edit(workspace_uuid, image_edit_input)
160
+
161
+ Edit an existing media image using AI
162
+
163
+ Edits an existing workspace media item using the source image and a text prompt. Optionally accepts a mask (transparent areas are replaced). Saves results to the media library. Credits: `count × credit_weight`.
164
+
165
+ ### Examples
166
+
167
+ ```ruby
168
+ require 'time'
169
+ require 'postboost'
170
+ # setup authorization
171
+ PostBoost.configure do |config|
172
+ # Configure Bearer authorization: bearerAuth
173
+ config.access_token = 'YOUR_BEARER_TOKEN'
174
+ end
175
+
176
+ api_instance = PostBoost::AIApi.new
177
+ workspace_uuid = '38400000-8cf0-11bd-b23e-10b96e4ef00d' # String | UUID of the workspace.
178
+ image_edit_input = PostBoost::ImageEditInput.new({media_uuid: 'media_uuid_example', prompt: 'Make the background a white studio backdrop'}) # ImageEditInput |
179
+
180
+ begin
181
+ # Edit an existing media image using AI
182
+ result = api_instance.image_edit(workspace_uuid, image_edit_input)
183
+ p result
184
+ rescue PostBoost::ApiError => e
185
+ puts "Error when calling AIApi->image_edit: #{e}"
186
+ end
187
+ ```
188
+
189
+ #### Using the image_edit_with_http_info variant
190
+
191
+ This returns an Array which contains the response data, status code and headers.
192
+
193
+ > <Array(<ImageGenerate200Response>, Integer, Hash)> image_edit_with_http_info(workspace_uuid, image_edit_input)
194
+
195
+ ```ruby
196
+ begin
197
+ # Edit an existing media image using AI
198
+ data, status_code, headers = api_instance.image_edit_with_http_info(workspace_uuid, image_edit_input)
199
+ p status_code # => 2xx
200
+ p headers # => { ... }
201
+ p data # => <ImageGenerate200Response>
202
+ rescue PostBoost::ApiError => e
203
+ puts "Error when calling AIApi->image_edit_with_http_info: #{e}"
204
+ end
205
+ ```
206
+
207
+ ### Parameters
208
+
209
+ | Name | Type | Description | Notes |
210
+ | ---- | ---- | ----------- | ----- |
211
+ | **workspace_uuid** | **String** | UUID of the workspace. | |
212
+ | **image_edit_input** | [**ImageEditInput**](ImageEditInput.md) | | |
213
+
214
+ ### Return type
215
+
216
+ [**ImageGenerate200Response**](ImageGenerate200Response.md)
217
+
218
+ ### Authorization
219
+
220
+ [bearerAuth](../README.md#bearerAuth)
221
+
222
+ ### HTTP request headers
223
+
224
+ - **Content-Type**: application/json
225
+ - **Accept**: application/json
226
+
227
+
228
+ ## image_generate
229
+
230
+ > <ImageGenerate200Response> image_generate(workspace_uuid, image_generate_input)
231
+
232
+ Generate social media images from a caption
233
+
234
+ Generates one or more images and saves them immediately to the workspace media library. **Standard mode** (recommended): provide `caption` + `platform`. PostBoost builds a professional image prompt internally using platform-specific templates. No prompt engineering required. **Developer mode**: provide `prompt` directly to bypass prompt building. If both `caption` and `prompt` are sent, standard mode runs. Credits: `count x credit_weight` (default: 5 per image).
235
+
236
+ ### Examples
237
+
238
+ ```ruby
239
+ require 'time'
240
+ require 'postboost'
241
+ # setup authorization
242
+ PostBoost.configure do |config|
243
+ # Configure Bearer authorization: bearerAuth
244
+ config.access_token = 'YOUR_BEARER_TOKEN'
245
+ end
246
+
247
+ api_instance = PostBoost::AIApi.new
248
+ workspace_uuid = '38400000-8cf0-11bd-b23e-10b96e4ef00d' # String | UUID of the workspace.
249
+ image_generate_input = PostBoost::ImageGenerateInput.new # ImageGenerateInput |
250
+
251
+ begin
252
+ # Generate social media images from a caption
253
+ result = api_instance.image_generate(workspace_uuid, image_generate_input)
254
+ p result
255
+ rescue PostBoost::ApiError => e
256
+ puts "Error when calling AIApi->image_generate: #{e}"
257
+ end
258
+ ```
259
+
260
+ #### Using the image_generate_with_http_info variant
261
+
262
+ This returns an Array which contains the response data, status code and headers.
263
+
264
+ > <Array(<ImageGenerate200Response>, Integer, Hash)> image_generate_with_http_info(workspace_uuid, image_generate_input)
265
+
266
+ ```ruby
267
+ begin
268
+ # Generate social media images from a caption
269
+ data, status_code, headers = api_instance.image_generate_with_http_info(workspace_uuid, image_generate_input)
270
+ p status_code # => 2xx
271
+ p headers # => { ... }
272
+ p data # => <ImageGenerate200Response>
273
+ rescue PostBoost::ApiError => e
274
+ puts "Error when calling AIApi->image_generate_with_http_info: #{e}"
275
+ end
276
+ ```
277
+
278
+ ### Parameters
279
+
280
+ | Name | Type | Description | Notes |
281
+ | ---- | ---- | ----------- | ----- |
282
+ | **workspace_uuid** | **String** | UUID of the workspace. | |
283
+ | **image_generate_input** | [**ImageGenerateInput**](ImageGenerateInput.md) | | |
284
+
285
+ ### Return type
286
+
287
+ [**ImageGenerate200Response**](ImageGenerate200Response.md)
288
+
289
+ ### Authorization
290
+
291
+ [bearerAuth](../README.md#bearerAuth)
292
+
293
+ ### HTTP request headers
294
+
295
+ - **Content-Type**: application/json
296
+ - **Accept**: application/json
297
+
298
+
299
+ ## image_prompt
300
+
301
+ > <ImagePrompt200Response> image_prompt(workspace_uuid, image_prompt_input)
302
+
303
+ Build an optimized image prompt from a social media caption
304
+
305
+ Builds a professional image generation prompt from a caption and platform. No image is generated. Use this to preview the prompt before calling `image-generate`. Costs 1 AI credit per call. When `image-generate` builds the prompt internally (standard mode), no credit is charged for the prompt step.
306
+
307
+ ### Examples
308
+
309
+ ```ruby
310
+ require 'time'
311
+ require 'postboost'
312
+ # setup authorization
313
+ PostBoost.configure do |config|
314
+ # Configure Bearer authorization: bearerAuth
315
+ config.access_token = 'YOUR_BEARER_TOKEN'
316
+ end
317
+
318
+ api_instance = PostBoost::AIApi.new
319
+ workspace_uuid = '38400000-8cf0-11bd-b23e-10b96e4ef00d' # String | UUID of the workspace.
320
+ image_prompt_input = PostBoost::ImagePromptInput.new({caption: 'Our summer sale starts today, 30% off everything!', platform: 'instagram'}) # ImagePromptInput |
321
+
322
+ begin
323
+ # Build an optimized image prompt from a social media caption
324
+ result = api_instance.image_prompt(workspace_uuid, image_prompt_input)
325
+ p result
326
+ rescue PostBoost::ApiError => e
327
+ puts "Error when calling AIApi->image_prompt: #{e}"
328
+ end
329
+ ```
330
+
331
+ #### Using the image_prompt_with_http_info variant
332
+
333
+ This returns an Array which contains the response data, status code and headers.
334
+
335
+ > <Array(<ImagePrompt200Response>, Integer, Hash)> image_prompt_with_http_info(workspace_uuid, image_prompt_input)
336
+
337
+ ```ruby
338
+ begin
339
+ # Build an optimized image prompt from a social media caption
340
+ data, status_code, headers = api_instance.image_prompt_with_http_info(workspace_uuid, image_prompt_input)
341
+ p status_code # => 2xx
342
+ p headers # => { ... }
343
+ p data # => <ImagePrompt200Response>
344
+ rescue PostBoost::ApiError => e
345
+ puts "Error when calling AIApi->image_prompt_with_http_info: #{e}"
346
+ end
347
+ ```
348
+
349
+ ### Parameters
350
+
351
+ | Name | Type | Description | Notes |
352
+ | ---- | ---- | ----------- | ----- |
353
+ | **workspace_uuid** | **String** | UUID of the workspace. | |
354
+ | **image_prompt_input** | [**ImagePromptInput**](ImagePromptInput.md) | | |
355
+
356
+ ### Return type
357
+
358
+ [**ImagePrompt200Response**](ImagePrompt200Response.md)
359
+
360
+ ### Authorization
361
+
362
+ [bearerAuth](../README.md#bearerAuth)
363
+
364
+ ### HTTP request headers
365
+
366
+ - **Content-Type**: application/json
367
+ - **Accept**: application/json
368
+
369
+
370
+ ## image_variations
371
+
372
+ > <ImageVariations200Response> image_variations(workspace_uuid, image_variations_input)
373
+
374
+ Generate variations of an existing media image
375
+
376
+ Creates one or more variations of an existing workspace media item. Saves results to the media library. Credits: `count × credit_weight`.
377
+
378
+ ### Examples
379
+
380
+ ```ruby
381
+ require 'time'
382
+ require 'postboost'
383
+ # setup authorization
384
+ PostBoost.configure do |config|
385
+ # Configure Bearer authorization: bearerAuth
386
+ config.access_token = 'YOUR_BEARER_TOKEN'
387
+ end
388
+
389
+ api_instance = PostBoost::AIApi.new
390
+ workspace_uuid = '38400000-8cf0-11bd-b23e-10b96e4ef00d' # String | UUID of the workspace.
391
+ image_variations_input = PostBoost::ImageVariationsInput.new({media_uuid: 'media_uuid_example'}) # ImageVariationsInput |
392
+
393
+ begin
394
+ # Generate variations of an existing media image
395
+ result = api_instance.image_variations(workspace_uuid, image_variations_input)
396
+ p result
397
+ rescue PostBoost::ApiError => e
398
+ puts "Error when calling AIApi->image_variations: #{e}"
399
+ end
400
+ ```
401
+
402
+ #### Using the image_variations_with_http_info variant
403
+
404
+ This returns an Array which contains the response data, status code and headers.
405
+
406
+ > <Array(<ImageVariations200Response>, Integer, Hash)> image_variations_with_http_info(workspace_uuid, image_variations_input)
407
+
408
+ ```ruby
409
+ begin
410
+ # Generate variations of an existing media image
411
+ data, status_code, headers = api_instance.image_variations_with_http_info(workspace_uuid, image_variations_input)
412
+ p status_code # => 2xx
413
+ p headers # => { ... }
414
+ p data # => <ImageVariations200Response>
415
+ rescue PostBoost::ApiError => e
416
+ puts "Error when calling AIApi->image_variations_with_http_info: #{e}"
417
+ end
418
+ ```
419
+
420
+ ### Parameters
421
+
422
+ | Name | Type | Description | Notes |
423
+ | ---- | ---- | ----------- | ----- |
424
+ | **workspace_uuid** | **String** | UUID of the workspace. | |
425
+ | **image_variations_input** | [**ImageVariationsInput**](ImageVariationsInput.md) | | |
426
+
427
+ ### Return type
428
+
429
+ [**ImageVariations200Response**](ImageVariations200Response.md)
430
+
431
+ ### Authorization
432
+
433
+ [bearerAuth](../README.md#bearerAuth)
434
+
435
+ ### HTTP request headers
436
+
437
+ - **Content-Type**: application/json
438
+ - **Accept**: application/json
439
+
data/docs/AICredits.md ADDED
@@ -0,0 +1,22 @@
1
+ # PostBoost::AICredits
2
+
3
+ ## Properties
4
+
5
+ | Name | Type | Description | Notes |
6
+ | ---- | ---- | ----------- | ----- |
7
+ | **available** | **Boolean** | Whether the workspace can spend AI credits now. Always true when no balance is tracked. | |
8
+ | **balance** | **Float** | Remaining credit balance (2 decimals), or null when no balance is tracked. | |
9
+ | **low** | **Boolean** | True when the balance is above 0 and at most 10. | |
10
+
11
+ ## Example
12
+
13
+ ```ruby
14
+ require 'postboost'
15
+
16
+ instance = PostBoost::AICredits.new(
17
+ available: null,
18
+ balance: null,
19
+ low: null
20
+ )
21
+ ```
22
+
data/docs/Account.md CHANGED
@@ -4,15 +4,18 @@
4
4
 
5
5
  | Name | Type | Description | Notes |
6
6
  | ---- | ---- | ----------- | ----- |
7
- | **id** | **Integer** | | [optional] |
8
- | **uuid** | **String** | | [optional] |
9
- | **name** | **String** | | [optional] |
10
- | **username** | **String** | | [optional] |
7
+ | **id** | **Integer** | | |
8
+ | **uuid** | **String** | | |
9
+ | **name** | **String** | | |
10
+ | **username** | **String** | | |
11
11
  | **image** | **String** | | [optional] |
12
- | **provider** | **String** | | [optional] |
13
- | **data** | **Object** | Provider-specific metadata. | [optional] |
14
- | **authorized** | **Boolean** | | [optional] |
15
- | **created_at** | **Time** | | [optional] |
12
+ | **provider** | **String** | | |
13
+ | **data** | **Object** | Provider-specific metadata. | |
14
+ | **authorized** | **Boolean** | | |
15
+ | **profile_url** | **String** | Public URL of the account&#39;s profile on the network, when known. | [optional] |
16
+ | **publish_status** | **String** | Only present when the account is embedded in a post. Publishing state of this account for the post. | [optional] |
17
+ | **published_parts** | **Integer** | Only present when the account is embedded in a post. How many parts (for example thread items or a first comment) are live on the network. | [optional] |
18
+ | **created_at** | **Time** | | |
16
19
 
17
20
  ## Example
18
21
 
@@ -28,6 +31,9 @@ instance = PostBoost::Account.new(
28
31
  provider: null,
29
32
  data: null,
30
33
  authorized: null,
34
+ profile_url: null,
35
+ publish_status: null,
36
+ published_parts: null,
31
37
  created_at: null
32
38
  )
33
39
  ```
@@ -0,0 +1,28 @@
1
+ # PostBoost::AccountAnalytics
2
+
3
+ ## Properties
4
+
5
+ | Name | Type | Description | Notes |
6
+ | ---- | ---- | ----------- | ----- |
7
+ | **account** | [**Account**](Account.md) | | |
8
+ | **type** | **String** | The analytics tab returned. | |
9
+ | **tabs** | **Array&lt;String&gt;** | Tabs this account supports; any of them can be passed as &#x60;type&#x60;. | |
10
+ | **period** | [**AnalyticsPeriod**](AnalyticsPeriod.md) | | |
11
+ | **initial_sync** | [**AccountAnalyticsInitialSync**](AccountAnalyticsInitialSync.md) | | |
12
+ | **data** | **Hash&lt;String, Object&gt;** | Provider- and tab-specific metrics. Chart series are lists of &#x60;{date, value}&#x60; points. | |
13
+
14
+ ## Example
15
+
16
+ ```ruby
17
+ require 'postboost'
18
+
19
+ instance = PostBoost::AccountAnalytics.new(
20
+ account: null,
21
+ type: null,
22
+ tabs: null,
23
+ period: null,
24
+ initial_sync: null,
25
+ data: null
26
+ )
27
+ ```
28
+