postboost 1.20.0 → 1.22.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 (642) hide show
  1. checksums.yaml +4 -4
  2. data/README.md +8 -1
  3. data/docs/AgentProposal.md +2 -2
  4. data/docs/AgentsApi.md +3 -3
  5. data/docs/FreeToolBuildUtmUrlRequest.md +30 -0
  6. data/docs/FreeToolBuildUtmUrlResponse.md +20 -0
  7. data/docs/FreeToolCalculateEngagementRateRequest.md +32 -0
  8. data/docs/FreeToolCalculateEngagementRateResponse.md +24 -0
  9. data/docs/FreeToolCountCharactersRequest.md +20 -0
  10. data/docs/FreeToolCountCharactersResponse.md +20 -0
  11. data/docs/FreeToolCountCharactersResponseNetworksInner.md +28 -0
  12. data/docs/FreeToolError.md +18 -0
  13. data/docs/FreeToolFormatLinkedInPostRequest.md +22 -0
  14. data/docs/FreeToolFormatLinkedInPostResponse.md +26 -0
  15. data/docs/FreeToolGenerateFancyTextRequest.md +20 -0
  16. data/docs/FreeToolGenerateFancyTextResponse.md +18 -0
  17. data/docs/FreeToolGenerateFancyTextResponseStylesInner.md +22 -0
  18. data/docs/FreeToolList.md +18 -0
  19. data/docs/FreeToolListItem.md +30 -0
  20. data/docs/FreeToolSplitThreadRequest.md +22 -0
  21. data/docs/FreeToolSplitThreadResponse.md +20 -0
  22. data/docs/FreeToolSplitThreadResponsePostsInner.md +20 -0
  23. data/docs/FreeToolsApi.md +459 -0
  24. data/docs/WorkspaceAgentSettings.md +3 -1
  25. data/lib/postboost/api/account_groups_api.rb +1 -1
  26. data/lib/postboost/api/accounts_api.rb +1 -1
  27. data/lib/postboost/api/activity_api.rb +1 -1
  28. data/lib/postboost/api/agents_api.rb +7 -7
  29. data/lib/postboost/api/ai_api.rb +1 -1
  30. data/lib/postboost/api/analytics_api.rb +1 -1
  31. data/lib/postboost/api/competitors_api.rb +1 -1
  32. data/lib/postboost/api/free_tools_api.rb +487 -0
  33. data/lib/postboost/api/hashtag_groups_api.rb +1 -1
  34. data/lib/postboost/api/inbox_api.rb +1 -1
  35. data/lib/postboost/api/media_api.rb +1 -1
  36. data/lib/postboost/api/mentions_api.rb +1 -1
  37. data/lib/postboost/api/posting_schedule_api.rb +1 -1
  38. data/lib/postboost/api/posts_api.rb +1 -1
  39. data/lib/postboost/api/receipts_api.rb +1 -1
  40. data/lib/postboost/api/subscriptions_api.rb +1 -1
  41. data/lib/postboost/api/tags_api.rb +1 -1
  42. data/lib/postboost/api/templates_api.rb +1 -1
  43. data/lib/postboost/api/users_api.rb +1 -1
  44. data/lib/postboost/api/webhooks_api.rb +1 -1
  45. data/lib/postboost/api/workspaces_api.rb +1 -1
  46. data/lib/postboost/api_client.rb +1 -1
  47. data/lib/postboost/api_error.rb +1 -1
  48. data/lib/postboost/configuration.rb +1 -1
  49. data/lib/postboost/models/account.rb +1 -1
  50. data/lib/postboost/models/account_analytics.rb +1 -1
  51. data/lib/postboost/models/account_analytics_initial_sync.rb +1 -1
  52. data/lib/postboost/models/account_connection_health.rb +1 -1
  53. data/lib/postboost/models/account_errors_inner.rb +1 -1
  54. data/lib/postboost/models/account_errors_inner_one_of.rb +1 -1
  55. data/lib/postboost/models/account_group.rb +1 -1
  56. data/lib/postboost/models/account_group_input.rb +1 -1
  57. data/lib/postboost/models/account_health.rb +1 -1
  58. data/lib/postboost/models/account_health_daily_cap.rb +1 -1
  59. data/lib/postboost/models/account_schedule.rb +1 -1
  60. data/lib/postboost/models/add_competitor202_response.rb +1 -1
  61. data/lib/postboost/models/add_competitor409_response.rb +1 -1
  62. data/lib/postboost/models/add_generic_subscription_request.rb +1 -1
  63. data/lib/postboost/models/add_post_to_queue_request.rb +1 -1
  64. data/lib/postboost/models/agent_page_meta.rb +1 -1
  65. data/lib/postboost/models/agent_proposal.rb +5 -5
  66. data/lib/postboost/models/agent_proposal_decision.rb +1 -1
  67. data/lib/postboost/models/agent_run.rb +1 -1
  68. data/lib/postboost/models/ai_credits.rb +1 -1
  69. data/lib/postboost/models/ai_usage.rb +1 -1
  70. data/lib/postboost/models/ai_usage_text.rb +1 -1
  71. data/lib/postboost/models/analytics_period.rb +1 -1
  72. data/lib/postboost/models/analytics_summary.rb +1 -1
  73. data/lib/postboost/models/analytics_summary_data.rb +1 -1
  74. data/lib/postboost/models/api_activity.rb +1 -1
  75. data/lib/postboost/models/api_activity_outcome.rb +1 -1
  76. data/lib/postboost/models/api_key.rb +1 -1
  77. data/lib/postboost/models/api_key_ability.rb +1 -1
  78. data/lib/postboost/models/api_key_input.rb +1 -1
  79. data/lib/postboost/models/approve_agent_proposal200_response.rb +1 -1
  80. data/lib/postboost/models/approve_agent_proposal409_response.rb +1 -1
  81. data/lib/postboost/models/approve_inbox_reply_draft403_response.rb +1 -1
  82. data/lib/postboost/models/approve_post_request.rb +1 -1
  83. data/lib/postboost/models/best_posting_times.rb +1 -1
  84. data/lib/postboost/models/best_posting_times_times_inner.rb +1 -1
  85. data/lib/postboost/models/blog_to_social200_response.rb +1 -1
  86. data/lib/postboost/models/blog_to_social429_response.rb +1 -1
  87. data/lib/postboost/models/blog_to_social_caption.rb +1 -1
  88. data/lib/postboost/models/blog_to_social_input.rb +1 -1
  89. data/lib/postboost/models/blog_to_social_media.rb +1 -1
  90. data/lib/postboost/models/blog_to_social_response.rb +1 -1
  91. data/lib/postboost/models/brand_voice.rb +1 -1
  92. data/lib/postboost/models/brand_voice_input.rb +1 -1
  93. data/lib/postboost/models/brand_voice_meta.rb +1 -1
  94. data/lib/postboost/models/cancel_subscription422_response.rb +1 -1
  95. data/lib/postboost/models/cancel_subscription422_response_errors.rb +1 -1
  96. data/lib/postboost/models/cancel_subscription_request.rb +1 -1
  97. data/lib/postboost/models/change_subscription_plan_request.rb +1 -1
  98. data/lib/postboost/models/channel_account.rb +1 -1
  99. data/lib/postboost/models/checkout_subscription200_response.rb +1 -1
  100. data/lib/postboost/models/checkout_subscription_request.rb +1 -1
  101. data/lib/postboost/models/coded_error.rb +1 -1
  102. data/lib/postboost/models/competitor.rb +1 -1
  103. data/lib/postboost/models/competitor_detail.rb +1 -1
  104. data/lib/postboost/models/competitor_input.rb +1 -1
  105. data/lib/postboost/models/competitor_media.rb +1 -1
  106. data/lib/postboost/models/competitor_snapshot.rb +1 -1
  107. data/lib/postboost/models/complete_chunked_upload_request.rb +1 -1
  108. data/lib/postboost/models/connect_channel_input.rb +1 -1
  109. data/lib/postboost/models/create_account_group201_response.rb +1 -1
  110. data/lib/postboost/models/create_agent201_response.rb +1 -1
  111. data/lib/postboost/models/create_api_key201_response.rb +1 -1
  112. data/lib/postboost/models/create_api_key201_response_data.rb +1 -1
  113. data/lib/postboost/models/create_hashtag_group201_response.rb +1 -1
  114. data/lib/postboost/models/create_inbox_reply_draft201_response.rb +1 -1
  115. data/lib/postboost/models/create_media_folder_request.rb +1 -1
  116. data/lib/postboost/models/create_mention201_response.rb +1 -1
  117. data/lib/postboost/models/create_post201_response.rb +1 -1
  118. data/lib/postboost/models/create_recycling_rule201_response.rb +1 -1
  119. data/lib/postboost/models/create_report_export201_response.rb +1 -1
  120. data/lib/postboost/models/create_reseller_client201_response.rb +1 -1
  121. data/lib/postboost/models/create_rss_feed201_response.rb +1 -1
  122. data/lib/postboost/models/create_template201_response.rb +1 -1
  123. data/lib/postboost/models/create_webhook_subscription201_response.rb +1 -1
  124. data/lib/postboost/models/create_webhook_subscription201_response_data.rb +1 -1
  125. data/lib/postboost/models/delete_agent200_response.rb +1 -1
  126. data/lib/postboost/models/delete_media_bulk_request.rb +1 -1
  127. data/lib/postboost/models/delete_media_bulk_request_items_inner.rb +1 -1
  128. data/lib/postboost/models/delete_media_folder_request.rb +1 -1
  129. data/lib/postboost/models/delete_mode.rb +1 -1
  130. data/lib/postboost/models/delete_post_request.rb +1 -1
  131. data/lib/postboost/models/delete_posts_bulk_request.rb +1 -1
  132. data/lib/postboost/models/delete_receipts_bulk_request.rb +1 -1
  133. data/lib/postboost/models/delete_result.rb +1 -1
  134. data/lib/postboost/models/delete_user400_response.rb +1 -1
  135. data/lib/postboost/models/delete_users_bulk_request.rb +1 -1
  136. data/lib/postboost/models/delete_workspaces_bulk_request.rb +1 -1
  137. data/lib/postboost/models/free_tool_build_utm_url_request.rb +420 -0
  138. data/lib/postboost/models/free_tool_build_utm_url_response.rb +226 -0
  139. data/lib/postboost/models/free_tool_calculate_engagement_rate_request.rb +468 -0
  140. data/lib/postboost/models/free_tool_calculate_engagement_rate_response.rb +242 -0
  141. data/lib/postboost/models/free_tool_count_characters_request.rb +280 -0
  142. data/lib/postboost/models/free_tool_count_characters_response.rb +226 -0
  143. data/lib/postboost/models/free_tool_count_characters_response_networks_inner.rb +259 -0
  144. data/lib/postboost/models/free_tool_error.rb +221 -0
  145. data/lib/postboost/models/free_tool_format_linked_in_post_request.rb +306 -0
  146. data/lib/postboost/models/free_tool_format_linked_in_post_response.rb +251 -0
  147. data/lib/postboost/models/free_tool_generate_fancy_text_request.rb +284 -0
  148. data/lib/postboost/models/free_tool_generate_fancy_text_response.rb +216 -0
  149. data/lib/postboost/models/free_tool_generate_fancy_text_response_styles_inner.rb +233 -0
  150. data/lib/postboost/models/free_tool_list.rb +223 -0
  151. data/lib/postboost/models/free_tool_list_item.rb +344 -0
  152. data/lib/postboost/models/free_tool_split_thread_request.rb +293 -0
  153. data/lib/postboost/models/free_tool_split_thread_response.rb +225 -0
  154. data/lib/postboost/models/free_tool_split_thread_response_posts_inner.rb +224 -0
  155. data/lib/postboost/models/get_account_health200_response.rb +1 -1
  156. data/lib/postboost/models/get_brand_voice200_response.rb +1 -1
  157. data/lib/postboost/models/get_competitor200_response.rb +1 -1
  158. data/lib/postboost/models/get_inbox_conversation200_response.rb +1 -1
  159. data/lib/postboost/models/get_posting_schedule200_response.rb +1 -1
  160. data/lib/postboost/models/get_remote_upload_status200_response.rb +1 -1
  161. data/lib/postboost/models/get_report_branding200_response.rb +1 -1
  162. data/lib/postboost/models/get_repurpose_run200_response.rb +1 -1
  163. data/lib/postboost/models/guardrail_error.rb +1 -1
  164. data/lib/postboost/models/hashtag_group.rb +1 -1
  165. data/lib/postboost/models/hashtag_group_input.rb +1 -1
  166. data/lib/postboost/models/image_alt_text200_response.rb +1 -1
  167. data/lib/postboost/models/image_alt_text_input.rb +1 -1
  168. data/lib/postboost/models/image_alt_text_response.rb +1 -1
  169. data/lib/postboost/models/image_credit_balance.rb +1 -1
  170. data/lib/postboost/models/image_edit_input.rb +1 -1
  171. data/lib/postboost/models/image_generate200_response.rb +1 -1
  172. data/lib/postboost/models/image_generate429_response.rb +1 -1
  173. data/lib/postboost/models/image_generate_input.rb +1 -1
  174. data/lib/postboost/models/image_generation_response.rb +1 -1
  175. data/lib/postboost/models/image_prompt200_response.rb +1 -1
  176. data/lib/postboost/models/image_prompt429_response.rb +1 -1
  177. data/lib/postboost/models/image_prompt_input.rb +1 -1
  178. data/lib/postboost/models/image_prompt_response.rb +1 -1
  179. data/lib/postboost/models/image_variations200_response.rb +1 -1
  180. data/lib/postboost/models/image_variations_input.rb +1 -1
  181. data/lib/postboost/models/image_variations_response.rb +1 -1
  182. data/lib/postboost/models/inbox_author.rb +1 -1
  183. data/lib/postboost/models/inbox_conversation.rb +1 -1
  184. data/lib/postboost/models/inbox_conversation_account.rb +1 -1
  185. data/lib/postboost/models/inbox_conversation_update.rb +1 -1
  186. data/lib/postboost/models/inbox_message.rb +1 -1
  187. data/lib/postboost/models/inbox_message_author.rb +1 -1
  188. data/lib/postboost/models/inbox_reply_draft.rb +1 -1
  189. data/lib/postboost/models/inbox_reply_draft_approve.rb +1 -1
  190. data/lib/postboost/models/inbox_reply_draft_edit.rb +1 -1
  191. data/lib/postboost/models/inbox_reply_draft_input.rb +1 -1
  192. data/lib/postboost/models/initiate_chunked_upload201_response.rb +1 -1
  193. data/lib/postboost/models/initiate_chunked_upload_request.rb +1 -1
  194. data/lib/postboost/models/initiate_remote_upload201_response.rb +1 -1
  195. data/lib/postboost/models/initiate_remote_upload201_response_one_of.rb +1 -1
  196. data/lib/postboost/models/initiate_remote_upload_request.rb +1 -1
  197. data/lib/postboost/models/learn_brand_voice_input.rb +1 -1
  198. data/lib/postboost/models/learn_brand_voice_response.rb +1 -1
  199. data/lib/postboost/models/learn_brand_voice_response_meta.rb +1 -1
  200. data/lib/postboost/models/list_account_groups200_response.rb +1 -1
  201. data/lib/postboost/models/list_accounts200_response.rb +1 -1
  202. data/lib/postboost/models/list_agent_proposals200_response.rb +1 -1
  203. data/lib/postboost/models/list_agent_runs200_response.rb +1 -1
  204. data/lib/postboost/models/list_agents200_response.rb +1 -1
  205. data/lib/postboost/models/list_api_activity200_response.rb +1 -1
  206. data/lib/postboost/models/list_api_keys200_response.rb +1 -1
  207. data/lib/postboost/models/list_competitors200_response.rb +1 -1
  208. data/lib/postboost/models/list_hashtag_groups200_response.rb +1 -1
  209. data/lib/postboost/models/list_inbox_conversations200_response.rb +1 -1
  210. data/lib/postboost/models/list_inbox_reply_drafts200_response.rb +1 -1
  211. data/lib/postboost/models/list_media200_response.rb +1 -1
  212. data/lib/postboost/models/list_media_folders200_response.rb +1 -1
  213. data/lib/postboost/models/list_mentions200_response.rb +1 -1
  214. data/lib/postboost/models/list_my_workspaces200_response.rb +1 -1
  215. data/lib/postboost/models/list_posts200_response.rb +1 -1
  216. data/lib/postboost/models/list_receipts200_response.rb +1 -1
  217. data/lib/postboost/models/list_recycling_rules200_response.rb +1 -1
  218. data/lib/postboost/models/list_recycling_runs200_response.rb +1 -1
  219. data/lib/postboost/models/list_report_exports200_response.rb +1 -1
  220. data/lib/postboost/models/list_reseller_clients200_response.rb +1 -1
  221. data/lib/postboost/models/list_rss_feeds200_response.rb +1 -1
  222. data/lib/postboost/models/list_tags200_response.rb +1 -1
  223. data/lib/postboost/models/list_templates200_response.rb +1 -1
  224. data/lib/postboost/models/list_users200_response.rb +1 -1
  225. data/lib/postboost/models/list_webhook_subscriptions200_response.rb +1 -1
  226. data/lib/postboost/models/list_workspaces200_response.rb +1 -1
  227. data/lib/postboost/models/media.rb +1 -1
  228. data/lib/postboost/models/media_base64_input.rb +1 -1
  229. data/lib/postboost/models/media_folder.rb +1 -1
  230. data/lib/postboost/models/media_folder_input.rb +1 -1
  231. data/lib/postboost/models/media_folder_ref.rb +1 -1
  232. data/lib/postboost/models/mention.rb +1 -1
  233. data/lib/postboost/models/mention_identity.rb +1 -1
  234. data/lib/postboost/models/mention_identity_input.rb +1 -1
  235. data/lib/postboost/models/mention_input.rb +1 -1
  236. data/lib/postboost/models/message_only.rb +1 -1
  237. data/lib/postboost/models/pagination_meta.rb +1 -1
  238. data/lib/postboost/models/pagination_meta_links.rb +1 -1
  239. data/lib/postboost/models/pagination_meta_meta.rb +1 -1
  240. data/lib/postboost/models/poll_rss_feed200_response.rb +1 -1
  241. data/lib/postboost/models/post.rb +1 -1
  242. data/lib/postboost/models/post_analytics.rb +1 -1
  243. data/lib/postboost/models/post_content.rb +1 -1
  244. data/lib/postboost/models/post_input.rb +1 -1
  245. data/lib/postboost/models/post_options_instagram.rb +1 -1
  246. data/lib/postboost/models/post_options_tik_tok.rb +1 -1
  247. data/lib/postboost/models/post_options_youtube.rb +1 -1
  248. data/lib/postboost/models/post_status.rb +1 -1
  249. data/lib/postboost/models/post_version.rb +1 -1
  250. data/lib/postboost/models/post_version_options.rb +1 -1
  251. data/lib/postboost/models/post_warning.rb +1 -1
  252. data/lib/postboost/models/post_warnings.rb +1 -1
  253. data/lib/postboost/models/posting_schedule.rb +1 -1
  254. data/lib/postboost/models/posting_schedule_day.rb +1 -1
  255. data/lib/postboost/models/posting_schedule_day_times_inner.rb +1 -1
  256. data/lib/postboost/models/posting_schedule_input.rb +1 -1
  257. data/lib/postboost/models/posting_time_slot.rb +1 -1
  258. data/lib/postboost/models/posting_times.rb +1 -1
  259. data/lib/postboost/models/posting_times_best_inner.rb +1 -1
  260. data/lib/postboost/models/posting_times_day_intervals_inner_inner.rb +1 -1
  261. data/lib/postboost/models/posting_times_days_inner.rb +1 -1
  262. data/lib/postboost/models/preflight_result.rb +1 -1
  263. data/lib/postboost/models/public_workspace.rb +1 -1
  264. data/lib/postboost/models/public_workspace_pivot.rb +1 -1
  265. data/lib/postboost/models/publish_progress.rb +1 -1
  266. data/lib/postboost/models/queue_slots.rb +1 -1
  267. data/lib/postboost/models/receipt.rb +1 -1
  268. data/lib/postboost/models/receipt_input.rb +1 -1
  269. data/lib/postboost/models/receipt_update_input.rb +1 -1
  270. data/lib/postboost/models/recommended_posting_times.rb +1 -1
  271. data/lib/postboost/models/reconnect_link.rb +1 -1
  272. data/lib/postboost/models/recycling_rule.rb +1 -1
  273. data/lib/postboost/models/recycling_rule_input.rb +1 -1
  274. data/lib/postboost/models/recycling_rule_settings.rb +1 -1
  275. data/lib/postboost/models/recycling_rule_update.rb +1 -1
  276. data/lib/postboost/models/recycling_run.rb +1 -1
  277. data/lib/postboost/models/remove_generic_subscription422_response.rb +1 -1
  278. data/lib/postboost/models/remove_user_from_workspace_request.rb +1 -1
  279. data/lib/postboost/models/report_branding.rb +1 -1
  280. data/lib/postboost/models/report_branding_input.rb +1 -1
  281. data/lib/postboost/models/report_export.rb +1 -1
  282. data/lib/postboost/models/report_export_input.rb +1 -1
  283. data/lib/postboost/models/repurpose_content200_response.rb +1 -1
  284. data/lib/postboost/models/repurpose_content202_response.rb +1 -1
  285. data/lib/postboost/models/repurpose_content500_response.rb +1 -1
  286. data/lib/postboost/models/repurpose_input.rb +1 -1
  287. data/lib/postboost/models/repurpose_input_theme.rb +1 -1
  288. data/lib/postboost/models/repurpose_result.rb +1 -1
  289. data/lib/postboost/models/repurpose_result_media.rb +1 -1
  290. data/lib/postboost/models/repurpose_result_source.rb +1 -1
  291. data/lib/postboost/models/repurpose_run.rb +1 -1
  292. data/lib/postboost/models/repurpose_run_accepted.rb +1 -1
  293. data/lib/postboost/models/repurpose_slide.rb +1 -1
  294. data/lib/postboost/models/reseller_client.rb +1 -1
  295. data/lib/postboost/models/reseller_client_input.rb +1 -1
  296. data/lib/postboost/models/reseller_client_usage.rb +1 -1
  297. data/lib/postboost/models/retry_post_account_result.rb +1 -1
  298. data/lib/postboost/models/rss_feed.rb +1 -1
  299. data/lib/postboost/models/rss_feed_input.rb +1 -1
  300. data/lib/postboost/models/rss_feed_update.rb +1 -1
  301. data/lib/postboost/models/run_agent202_response.rb +1 -1
  302. data/lib/postboost/models/schedule_post_request.rb +1 -1
  303. data/lib/postboost/models/schedule_result.rb +1 -1
  304. data/lib/postboost/models/subscription.rb +1 -1
  305. data/lib/postboost/models/subscription_input.rb +1 -1
  306. data/lib/postboost/models/subscription_status.rb +1 -1
  307. data/lib/postboost/models/subscription_update_input.rb +1 -1
  308. data/lib/postboost/models/tag.rb +1 -1
  309. data/lib/postboost/models/tag_input.rb +1 -1
  310. data/lib/postboost/models/template.rb +1 -1
  311. data/lib/postboost/models/template_content_item.rb +1 -1
  312. data/lib/postboost/models/template_input.rb +1 -1
  313. data/lib/postboost/models/template_input_content_inner.rb +1 -1
  314. data/lib/postboost/models/update_media_request.rb +1 -1
  315. data/lib/postboost/models/update_post200_response.rb +1 -1
  316. data/lib/postboost/models/upload_chunk201_response.rb +1 -1
  317. data/lib/postboost/models/user.rb +1 -1
  318. data/lib/postboost/models/user_input.rb +1 -1
  319. data/lib/postboost/models/user_update_input.rb +1 -1
  320. data/lib/postboost/models/webhook_event_name.rb +1 -1
  321. data/lib/postboost/models/webhook_event_payload.rb +1 -1
  322. data/lib/postboost/models/webhook_subscription.rb +1 -1
  323. data/lib/postboost/models/webhook_subscription_input.rb +1 -1
  324. data/lib/postboost/models/workspace.rb +1 -1
  325. data/lib/postboost/models/workspace_agent.rb +3 -3
  326. data/lib/postboost/models/workspace_agent_input.rb +3 -3
  327. data/lib/postboost/models/workspace_agent_settings.rb +46 -6
  328. data/lib/postboost/models/workspace_agent_update.rb +1 -1
  329. data/lib/postboost/models/workspace_input.rb +1 -1
  330. data/lib/postboost/models/workspace_user_input.rb +1 -1
  331. data/lib/postboost/models/x_usage.rb +1 -1
  332. data/lib/postboost/models/x_usage_counter.rb +1 -1
  333. data/lib/postboost/version.rb +2 -2
  334. data/lib/postboost.rb +20 -1
  335. data/postboost.gemspec +1 -1
  336. data/spec/api/account_groups_api_spec.rb +1 -1
  337. data/spec/api/accounts_api_spec.rb +1 -1
  338. data/spec/api/activity_api_spec.rb +1 -1
  339. data/spec/api/agents_api_spec.rb +4 -4
  340. data/spec/api/ai_api_spec.rb +1 -1
  341. data/spec/api/analytics_api_spec.rb +1 -1
  342. data/spec/api/competitors_api_spec.rb +1 -1
  343. data/spec/api/free_tools_api_spec.rb +118 -0
  344. data/spec/api/hashtag_groups_api_spec.rb +1 -1
  345. data/spec/api/inbox_api_spec.rb +1 -1
  346. data/spec/api/media_api_spec.rb +1 -1
  347. data/spec/api/mentions_api_spec.rb +1 -1
  348. data/spec/api/posting_schedule_api_spec.rb +1 -1
  349. data/spec/api/posts_api_spec.rb +1 -1
  350. data/spec/api/receipts_api_spec.rb +1 -1
  351. data/spec/api/subscriptions_api_spec.rb +1 -1
  352. data/spec/api/tags_api_spec.rb +1 -1
  353. data/spec/api/templates_api_spec.rb +1 -1
  354. data/spec/api/users_api_spec.rb +1 -1
  355. data/spec/api/webhooks_api_spec.rb +1 -1
  356. data/spec/api/workspaces_api_spec.rb +1 -1
  357. data/spec/models/account_analytics_initial_sync_spec.rb +1 -1
  358. data/spec/models/account_analytics_spec.rb +1 -1
  359. data/spec/models/account_connection_health_spec.rb +1 -1
  360. data/spec/models/account_errors_inner_one_of_spec.rb +1 -1
  361. data/spec/models/account_errors_inner_spec.rb +1 -1
  362. data/spec/models/account_group_input_spec.rb +1 -1
  363. data/spec/models/account_group_spec.rb +1 -1
  364. data/spec/models/account_health_daily_cap_spec.rb +1 -1
  365. data/spec/models/account_health_spec.rb +1 -1
  366. data/spec/models/account_schedule_spec.rb +1 -1
  367. data/spec/models/account_spec.rb +1 -1
  368. data/spec/models/add_competitor202_response_spec.rb +1 -1
  369. data/spec/models/add_competitor409_response_spec.rb +1 -1
  370. data/spec/models/add_generic_subscription_request_spec.rb +1 -1
  371. data/spec/models/add_post_to_queue_request_spec.rb +1 -1
  372. data/spec/models/agent_page_meta_spec.rb +1 -1
  373. data/spec/models/agent_proposal_decision_spec.rb +1 -1
  374. data/spec/models/agent_proposal_spec.rb +2 -2
  375. data/spec/models/agent_run_spec.rb +1 -1
  376. data/spec/models/ai_credits_spec.rb +1 -1
  377. data/spec/models/ai_usage_spec.rb +1 -1
  378. data/spec/models/ai_usage_text_spec.rb +1 -1
  379. data/spec/models/analytics_period_spec.rb +1 -1
  380. data/spec/models/analytics_summary_data_spec.rb +1 -1
  381. data/spec/models/analytics_summary_spec.rb +1 -1
  382. data/spec/models/api_activity_outcome_spec.rb +1 -1
  383. data/spec/models/api_activity_spec.rb +1 -1
  384. data/spec/models/api_key_ability_spec.rb +1 -1
  385. data/spec/models/api_key_input_spec.rb +1 -1
  386. data/spec/models/api_key_spec.rb +1 -1
  387. data/spec/models/approve_agent_proposal200_response_spec.rb +1 -1
  388. data/spec/models/approve_agent_proposal409_response_spec.rb +1 -1
  389. data/spec/models/approve_inbox_reply_draft403_response_spec.rb +1 -1
  390. data/spec/models/approve_post_request_spec.rb +1 -1
  391. data/spec/models/best_posting_times_spec.rb +1 -1
  392. data/spec/models/best_posting_times_times_inner_spec.rb +1 -1
  393. data/spec/models/blog_to_social200_response_spec.rb +1 -1
  394. data/spec/models/blog_to_social429_response_spec.rb +1 -1
  395. data/spec/models/blog_to_social_caption_spec.rb +1 -1
  396. data/spec/models/blog_to_social_input_spec.rb +1 -1
  397. data/spec/models/blog_to_social_media_spec.rb +1 -1
  398. data/spec/models/blog_to_social_response_spec.rb +1 -1
  399. data/spec/models/brand_voice_input_spec.rb +1 -1
  400. data/spec/models/brand_voice_meta_spec.rb +1 -1
  401. data/spec/models/brand_voice_spec.rb +1 -1
  402. data/spec/models/cancel_subscription422_response_errors_spec.rb +1 -1
  403. data/spec/models/cancel_subscription422_response_spec.rb +1 -1
  404. data/spec/models/cancel_subscription_request_spec.rb +1 -1
  405. data/spec/models/change_subscription_plan_request_spec.rb +1 -1
  406. data/spec/models/channel_account_spec.rb +1 -1
  407. data/spec/models/checkout_subscription200_response_spec.rb +1 -1
  408. data/spec/models/checkout_subscription_request_spec.rb +1 -1
  409. data/spec/models/coded_error_spec.rb +1 -1
  410. data/spec/models/competitor_detail_spec.rb +1 -1
  411. data/spec/models/competitor_input_spec.rb +1 -1
  412. data/spec/models/competitor_media_spec.rb +1 -1
  413. data/spec/models/competitor_snapshot_spec.rb +1 -1
  414. data/spec/models/competitor_spec.rb +1 -1
  415. data/spec/models/complete_chunked_upload_request_spec.rb +1 -1
  416. data/spec/models/connect_channel_input_spec.rb +1 -1
  417. data/spec/models/create_account_group201_response_spec.rb +1 -1
  418. data/spec/models/create_agent201_response_spec.rb +1 -1
  419. data/spec/models/create_api_key201_response_data_spec.rb +1 -1
  420. data/spec/models/create_api_key201_response_spec.rb +1 -1
  421. data/spec/models/create_hashtag_group201_response_spec.rb +1 -1
  422. data/spec/models/create_inbox_reply_draft201_response_spec.rb +1 -1
  423. data/spec/models/create_media_folder_request_spec.rb +1 -1
  424. data/spec/models/create_mention201_response_spec.rb +1 -1
  425. data/spec/models/create_post201_response_spec.rb +1 -1
  426. data/spec/models/create_recycling_rule201_response_spec.rb +1 -1
  427. data/spec/models/create_report_export201_response_spec.rb +1 -1
  428. data/spec/models/create_reseller_client201_response_spec.rb +1 -1
  429. data/spec/models/create_rss_feed201_response_spec.rb +1 -1
  430. data/spec/models/create_template201_response_spec.rb +1 -1
  431. data/spec/models/create_webhook_subscription201_response_data_spec.rb +1 -1
  432. data/spec/models/create_webhook_subscription201_response_spec.rb +1 -1
  433. data/spec/models/delete_agent200_response_spec.rb +1 -1
  434. data/spec/models/delete_media_bulk_request_items_inner_spec.rb +1 -1
  435. data/spec/models/delete_media_bulk_request_spec.rb +1 -1
  436. data/spec/models/delete_media_folder_request_spec.rb +1 -1
  437. data/spec/models/delete_mode_spec.rb +1 -1
  438. data/spec/models/delete_post_request_spec.rb +1 -1
  439. data/spec/models/delete_posts_bulk_request_spec.rb +1 -1
  440. data/spec/models/delete_receipts_bulk_request_spec.rb +1 -1
  441. data/spec/models/delete_result_spec.rb +1 -1
  442. data/spec/models/delete_user400_response_spec.rb +1 -1
  443. data/spec/models/delete_users_bulk_request_spec.rb +1 -1
  444. data/spec/models/delete_workspaces_bulk_request_spec.rb +1 -1
  445. data/spec/models/free_tool_build_utm_url_request_spec.rb +72 -0
  446. data/spec/models/free_tool_build_utm_url_response_spec.rb +42 -0
  447. data/spec/models/free_tool_calculate_engagement_rate_request_spec.rb +82 -0
  448. data/spec/models/free_tool_calculate_engagement_rate_response_spec.rb +54 -0
  449. data/spec/models/free_tool_count_characters_request_spec.rb +46 -0
  450. data/spec/models/free_tool_count_characters_response_networks_inner_spec.rb +66 -0
  451. data/spec/models/free_tool_count_characters_response_spec.rb +42 -0
  452. data/spec/models/free_tool_error_spec.rb +36 -0
  453. data/spec/models/free_tool_format_linked_in_post_request_spec.rb +56 -0
  454. data/spec/models/free_tool_format_linked_in_post_response_spec.rb +60 -0
  455. data/spec/models/free_tool_generate_fancy_text_request_spec.rb +46 -0
  456. data/spec/models/free_tool_generate_fancy_text_response_spec.rb +36 -0
  457. data/spec/models/free_tool_generate_fancy_text_response_styles_inner_spec.rb +48 -0
  458. data/spec/models/free_tool_list_item_spec.rb +76 -0
  459. data/spec/models/free_tool_list_spec.rb +36 -0
  460. data/spec/models/free_tool_split_thread_request_spec.rb +52 -0
  461. data/spec/models/free_tool_split_thread_response_posts_inner_spec.rb +42 -0
  462. data/spec/models/free_tool_split_thread_response_spec.rb +42 -0
  463. data/spec/models/get_account_health200_response_spec.rb +1 -1
  464. data/spec/models/get_brand_voice200_response_spec.rb +1 -1
  465. data/spec/models/get_competitor200_response_spec.rb +1 -1
  466. data/spec/models/get_inbox_conversation200_response_spec.rb +1 -1
  467. data/spec/models/get_posting_schedule200_response_spec.rb +1 -1
  468. data/spec/models/get_remote_upload_status200_response_spec.rb +1 -1
  469. data/spec/models/get_report_branding200_response_spec.rb +1 -1
  470. data/spec/models/get_repurpose_run200_response_spec.rb +1 -1
  471. data/spec/models/guardrail_error_spec.rb +1 -1
  472. data/spec/models/hashtag_group_input_spec.rb +1 -1
  473. data/spec/models/hashtag_group_spec.rb +1 -1
  474. data/spec/models/image_alt_text200_response_spec.rb +1 -1
  475. data/spec/models/image_alt_text_input_spec.rb +1 -1
  476. data/spec/models/image_alt_text_response_spec.rb +1 -1
  477. data/spec/models/image_credit_balance_spec.rb +1 -1
  478. data/spec/models/image_edit_input_spec.rb +1 -1
  479. data/spec/models/image_generate200_response_spec.rb +1 -1
  480. data/spec/models/image_generate429_response_spec.rb +1 -1
  481. data/spec/models/image_generate_input_spec.rb +1 -1
  482. data/spec/models/image_generation_response_spec.rb +1 -1
  483. data/spec/models/image_prompt200_response_spec.rb +1 -1
  484. data/spec/models/image_prompt429_response_spec.rb +1 -1
  485. data/spec/models/image_prompt_input_spec.rb +1 -1
  486. data/spec/models/image_prompt_response_spec.rb +1 -1
  487. data/spec/models/image_variations200_response_spec.rb +1 -1
  488. data/spec/models/image_variations_input_spec.rb +1 -1
  489. data/spec/models/image_variations_response_spec.rb +1 -1
  490. data/spec/models/inbox_author_spec.rb +1 -1
  491. data/spec/models/inbox_conversation_account_spec.rb +1 -1
  492. data/spec/models/inbox_conversation_spec.rb +1 -1
  493. data/spec/models/inbox_conversation_update_spec.rb +1 -1
  494. data/spec/models/inbox_message_author_spec.rb +1 -1
  495. data/spec/models/inbox_message_spec.rb +1 -1
  496. data/spec/models/inbox_reply_draft_approve_spec.rb +1 -1
  497. data/spec/models/inbox_reply_draft_edit_spec.rb +1 -1
  498. data/spec/models/inbox_reply_draft_input_spec.rb +1 -1
  499. data/spec/models/inbox_reply_draft_spec.rb +1 -1
  500. data/spec/models/initiate_chunked_upload201_response_spec.rb +1 -1
  501. data/spec/models/initiate_chunked_upload_request_spec.rb +1 -1
  502. data/spec/models/initiate_remote_upload201_response_one_of_spec.rb +1 -1
  503. data/spec/models/initiate_remote_upload201_response_spec.rb +1 -1
  504. data/spec/models/initiate_remote_upload_request_spec.rb +1 -1
  505. data/spec/models/learn_brand_voice_input_spec.rb +1 -1
  506. data/spec/models/learn_brand_voice_response_meta_spec.rb +1 -1
  507. data/spec/models/learn_brand_voice_response_spec.rb +1 -1
  508. data/spec/models/list_account_groups200_response_spec.rb +1 -1
  509. data/spec/models/list_accounts200_response_spec.rb +1 -1
  510. data/spec/models/list_agent_proposals200_response_spec.rb +1 -1
  511. data/spec/models/list_agent_runs200_response_spec.rb +1 -1
  512. data/spec/models/list_agents200_response_spec.rb +1 -1
  513. data/spec/models/list_api_activity200_response_spec.rb +1 -1
  514. data/spec/models/list_api_keys200_response_spec.rb +1 -1
  515. data/spec/models/list_competitors200_response_spec.rb +1 -1
  516. data/spec/models/list_hashtag_groups200_response_spec.rb +1 -1
  517. data/spec/models/list_inbox_conversations200_response_spec.rb +1 -1
  518. data/spec/models/list_inbox_reply_drafts200_response_spec.rb +1 -1
  519. data/spec/models/list_media200_response_spec.rb +1 -1
  520. data/spec/models/list_media_folders200_response_spec.rb +1 -1
  521. data/spec/models/list_mentions200_response_spec.rb +1 -1
  522. data/spec/models/list_my_workspaces200_response_spec.rb +1 -1
  523. data/spec/models/list_posts200_response_spec.rb +1 -1
  524. data/spec/models/list_receipts200_response_spec.rb +1 -1
  525. data/spec/models/list_recycling_rules200_response_spec.rb +1 -1
  526. data/spec/models/list_recycling_runs200_response_spec.rb +1 -1
  527. data/spec/models/list_report_exports200_response_spec.rb +1 -1
  528. data/spec/models/list_reseller_clients200_response_spec.rb +1 -1
  529. data/spec/models/list_rss_feeds200_response_spec.rb +1 -1
  530. data/spec/models/list_tags200_response_spec.rb +1 -1
  531. data/spec/models/list_templates200_response_spec.rb +1 -1
  532. data/spec/models/list_users200_response_spec.rb +1 -1
  533. data/spec/models/list_webhook_subscriptions200_response_spec.rb +1 -1
  534. data/spec/models/list_workspaces200_response_spec.rb +1 -1
  535. data/spec/models/media_base64_input_spec.rb +1 -1
  536. data/spec/models/media_folder_input_spec.rb +1 -1
  537. data/spec/models/media_folder_ref_spec.rb +1 -1
  538. data/spec/models/media_folder_spec.rb +1 -1
  539. data/spec/models/media_spec.rb +1 -1
  540. data/spec/models/mention_identity_input_spec.rb +1 -1
  541. data/spec/models/mention_identity_spec.rb +1 -1
  542. data/spec/models/mention_input_spec.rb +1 -1
  543. data/spec/models/mention_spec.rb +1 -1
  544. data/spec/models/message_only_spec.rb +1 -1
  545. data/spec/models/pagination_meta_links_spec.rb +1 -1
  546. data/spec/models/pagination_meta_meta_spec.rb +1 -1
  547. data/spec/models/pagination_meta_spec.rb +1 -1
  548. data/spec/models/poll_rss_feed200_response_spec.rb +1 -1
  549. data/spec/models/post_analytics_spec.rb +1 -1
  550. data/spec/models/post_content_spec.rb +1 -1
  551. data/spec/models/post_input_spec.rb +1 -1
  552. data/spec/models/post_options_instagram_spec.rb +1 -1
  553. data/spec/models/post_options_tik_tok_spec.rb +1 -1
  554. data/spec/models/post_options_youtube_spec.rb +1 -1
  555. data/spec/models/post_spec.rb +1 -1
  556. data/spec/models/post_status_spec.rb +1 -1
  557. data/spec/models/post_version_options_spec.rb +1 -1
  558. data/spec/models/post_version_spec.rb +1 -1
  559. data/spec/models/post_warning_spec.rb +1 -1
  560. data/spec/models/post_warnings_spec.rb +1 -1
  561. data/spec/models/posting_schedule_day_spec.rb +1 -1
  562. data/spec/models/posting_schedule_day_times_inner_spec.rb +1 -1
  563. data/spec/models/posting_schedule_input_spec.rb +1 -1
  564. data/spec/models/posting_schedule_spec.rb +1 -1
  565. data/spec/models/posting_time_slot_spec.rb +1 -1
  566. data/spec/models/posting_times_best_inner_spec.rb +1 -1
  567. data/spec/models/posting_times_day_intervals_inner_inner_spec.rb +1 -1
  568. data/spec/models/posting_times_days_inner_spec.rb +1 -1
  569. data/spec/models/posting_times_spec.rb +1 -1
  570. data/spec/models/preflight_result_spec.rb +1 -1
  571. data/spec/models/public_workspace_pivot_spec.rb +1 -1
  572. data/spec/models/public_workspace_spec.rb +1 -1
  573. data/spec/models/publish_progress_spec.rb +1 -1
  574. data/spec/models/queue_slots_spec.rb +1 -1
  575. data/spec/models/receipt_input_spec.rb +1 -1
  576. data/spec/models/receipt_spec.rb +1 -1
  577. data/spec/models/receipt_update_input_spec.rb +1 -1
  578. data/spec/models/recommended_posting_times_spec.rb +1 -1
  579. data/spec/models/reconnect_link_spec.rb +1 -1
  580. data/spec/models/recycling_rule_input_spec.rb +1 -1
  581. data/spec/models/recycling_rule_settings_spec.rb +1 -1
  582. data/spec/models/recycling_rule_spec.rb +1 -1
  583. data/spec/models/recycling_rule_update_spec.rb +1 -1
  584. data/spec/models/recycling_run_spec.rb +1 -1
  585. data/spec/models/remove_generic_subscription422_response_spec.rb +1 -1
  586. data/spec/models/remove_user_from_workspace_request_spec.rb +1 -1
  587. data/spec/models/report_branding_input_spec.rb +1 -1
  588. data/spec/models/report_branding_spec.rb +1 -1
  589. data/spec/models/report_export_input_spec.rb +1 -1
  590. data/spec/models/report_export_spec.rb +1 -1
  591. data/spec/models/repurpose_content200_response_spec.rb +1 -1
  592. data/spec/models/repurpose_content202_response_spec.rb +1 -1
  593. data/spec/models/repurpose_content500_response_spec.rb +1 -1
  594. data/spec/models/repurpose_input_spec.rb +1 -1
  595. data/spec/models/repurpose_input_theme_spec.rb +1 -1
  596. data/spec/models/repurpose_result_media_spec.rb +1 -1
  597. data/spec/models/repurpose_result_source_spec.rb +1 -1
  598. data/spec/models/repurpose_result_spec.rb +1 -1
  599. data/spec/models/repurpose_run_accepted_spec.rb +1 -1
  600. data/spec/models/repurpose_run_spec.rb +1 -1
  601. data/spec/models/repurpose_slide_spec.rb +1 -1
  602. data/spec/models/reseller_client_input_spec.rb +1 -1
  603. data/spec/models/reseller_client_spec.rb +1 -1
  604. data/spec/models/reseller_client_usage_spec.rb +1 -1
  605. data/spec/models/retry_post_account_result_spec.rb +1 -1
  606. data/spec/models/rss_feed_input_spec.rb +1 -1
  607. data/spec/models/rss_feed_spec.rb +1 -1
  608. data/spec/models/rss_feed_update_spec.rb +1 -1
  609. data/spec/models/run_agent202_response_spec.rb +1 -1
  610. data/spec/models/schedule_post_request_spec.rb +1 -1
  611. data/spec/models/schedule_result_spec.rb +1 -1
  612. data/spec/models/subscription_input_spec.rb +1 -1
  613. data/spec/models/subscription_spec.rb +1 -1
  614. data/spec/models/subscription_status_spec.rb +1 -1
  615. data/spec/models/subscription_update_input_spec.rb +1 -1
  616. data/spec/models/tag_input_spec.rb +1 -1
  617. data/spec/models/tag_spec.rb +1 -1
  618. data/spec/models/template_content_item_spec.rb +1 -1
  619. data/spec/models/template_input_content_inner_spec.rb +1 -1
  620. data/spec/models/template_input_spec.rb +1 -1
  621. data/spec/models/template_spec.rb +1 -1
  622. data/spec/models/update_media_request_spec.rb +1 -1
  623. data/spec/models/update_post200_response_spec.rb +1 -1
  624. data/spec/models/upload_chunk201_response_spec.rb +1 -1
  625. data/spec/models/user_input_spec.rb +1 -1
  626. data/spec/models/user_spec.rb +1 -1
  627. data/spec/models/user_update_input_spec.rb +1 -1
  628. data/spec/models/webhook_event_name_spec.rb +1 -1
  629. data/spec/models/webhook_event_payload_spec.rb +1 -1
  630. data/spec/models/webhook_subscription_input_spec.rb +1 -1
  631. data/spec/models/webhook_subscription_spec.rb +1 -1
  632. data/spec/models/workspace_agent_input_spec.rb +2 -2
  633. data/spec/models/workspace_agent_settings_spec.rb +7 -1
  634. data/spec/models/workspace_agent_spec.rb +2 -2
  635. data/spec/models/workspace_agent_update_spec.rb +1 -1
  636. data/spec/models/workspace_input_spec.rb +1 -1
  637. data/spec/models/workspace_spec.rb +1 -1
  638. data/spec/models/workspace_user_input_spec.rb +1 -1
  639. data/spec/models/x_usage_counter_spec.rb +1 -1
  640. data/spec/models/x_usage_spec.rb +1 -1
  641. data/spec/spec_helper.rb +1 -1
  642. metadata +77 -1
@@ -0,0 +1,251 @@
1
+ =begin
2
+ #PostBoost API
3
+
4
+ #The PostBoost REST API lets you publish, schedule, and analyze social media posts across 12+ platforms from a single integration. No OAuth apps to maintain — PostBoost handles platform authorization for you. ## Base URL All workspace-scoped endpoints are prefixed with `/{workspaceUuid}`. Panel/admin endpoints are prefixed with `/panel`. ## Plan access Every workspace-scoped endpoint returns `403` when the workspace's plan does not include API access (capability `api`). ## Dates and times Post dates and times (`date`, `time`, `accounts_schedule`) are read in the request's `timezone` when one is given, otherwise in the workspace timezone. ## Idempotent requests Send an `Idempotency-Key` header (any unique string, for example a UUID) with a `POST`. Repeating the request with the same key within 24 hours returns the stored response with `Idempotent-Replayed: true` and creates nothing new. Reusing a key with a different body returns `422`; a request still in progress with the same key returns `409`. `5xx` and `429` responses are not stored, so they can be retried with the same key. ## Guardrails for automated clients Create and update requests are checked before anything is written: a post whose content matches one created for the same account in the last 24 hours returns `409` (`code: duplicate_post`, override with `allow_duplicate: true`), scheduling past an account's daily cap returns `429` (`code: account_daily_cap_reached`), and scheduling to an account that must be reconnected returns `422` (`code: account_unauthorized` or `account_token_missing`). Use `POST /{workspaceUuid}/posts/validate` for a dry run and `GET /{workspaceUuid}/activity` to review what API clients did. ## Authentication All requests require a Bearer token in the `Authorization` header. Generate tokens in your PostBoost dashboard under **Settings → Access Tokens**. ``` Authorization: Bearer YOUR_API_TOKEN ```
5
+
6
+ The version of the OpenAPI document: 1.22.0
7
+ Contact: hi@postboost.co
8
+ Generated by: https://openapi-generator.tech
9
+ Generator version: 7.9.0
10
+
11
+ =end
12
+
13
+ require 'date'
14
+ require 'time'
15
+
16
+ module PostBoost
17
+ class FreeToolFormatLinkedInPostResponse
18
+ attr_accessor :text
19
+
20
+ attr_accessor :count
21
+
22
+ attr_accessor :limit
23
+
24
+ # What the feed shows before \"…see more\" (about 3 lines or 210 characters; varies by device).
25
+ attr_accessor :preview
26
+
27
+ attr_accessor :folded
28
+
29
+ # Attribute mapping from ruby-style variable name to JSON key.
30
+ def self.attribute_map
31
+ {
32
+ :'text' => :'text',
33
+ :'count' => :'count',
34
+ :'limit' => :'limit',
35
+ :'preview' => :'preview',
36
+ :'folded' => :'folded'
37
+ }
38
+ end
39
+
40
+ # Returns all the JSON keys this model knows about
41
+ def self.acceptable_attributes
42
+ attribute_map.values
43
+ end
44
+
45
+ # Attribute type mapping.
46
+ def self.openapi_types
47
+ {
48
+ :'text' => :'String',
49
+ :'count' => :'Integer',
50
+ :'limit' => :'Integer',
51
+ :'preview' => :'String',
52
+ :'folded' => :'Boolean'
53
+ }
54
+ end
55
+
56
+ # List of attributes with nullable: true
57
+ def self.openapi_nullable
58
+ Set.new([
59
+ ])
60
+ end
61
+
62
+ # Initializes the object
63
+ # @param [Hash] attributes Model attributes in the form of hash
64
+ def initialize(attributes = {})
65
+ if (!attributes.is_a?(Hash))
66
+ fail ArgumentError, "The input argument (attributes) must be a hash in `PostBoost::FreeToolFormatLinkedInPostResponse` initialize method"
67
+ end
68
+
69
+ # check to see if the attribute exists and convert string to symbol for hash key
70
+ attributes = attributes.each_with_object({}) { |(k, v), h|
71
+ if (!self.class.attribute_map.key?(k.to_sym))
72
+ fail ArgumentError, "`#{k}` is not a valid attribute in `PostBoost::FreeToolFormatLinkedInPostResponse`. Please check the name to make sure it's valid. List of attributes: " + self.class.attribute_map.keys.inspect
73
+ end
74
+ h[k.to_sym] = v
75
+ }
76
+
77
+ if attributes.key?(:'text')
78
+ self.text = attributes[:'text']
79
+ end
80
+
81
+ if attributes.key?(:'count')
82
+ self.count = attributes[:'count']
83
+ end
84
+
85
+ if attributes.key?(:'limit')
86
+ self.limit = attributes[:'limit']
87
+ end
88
+
89
+ if attributes.key?(:'preview')
90
+ self.preview = attributes[:'preview']
91
+ end
92
+
93
+ if attributes.key?(:'folded')
94
+ self.folded = attributes[:'folded']
95
+ end
96
+ end
97
+
98
+ # Show invalid properties with the reasons. Usually used together with valid?
99
+ # @return Array for valid properties with the reasons
100
+ def list_invalid_properties
101
+ warn '[DEPRECATED] the `list_invalid_properties` method is obsolete'
102
+ invalid_properties = Array.new
103
+ invalid_properties
104
+ end
105
+
106
+ # Check to see if the all the properties in the model are valid
107
+ # @return true if the model is valid
108
+ def valid?
109
+ warn '[DEPRECATED] the `valid?` method is obsolete'
110
+ true
111
+ end
112
+
113
+ # Checks equality by comparing each attribute.
114
+ # @param [Object] Object to be compared
115
+ def ==(o)
116
+ return true if self.equal?(o)
117
+ self.class == o.class &&
118
+ text == o.text &&
119
+ count == o.count &&
120
+ limit == o.limit &&
121
+ preview == o.preview &&
122
+ folded == o.folded
123
+ end
124
+
125
+ # @see the `==` method
126
+ # @param [Object] Object to be compared
127
+ def eql?(o)
128
+ self == o
129
+ end
130
+
131
+ # Calculates hash code according to all attributes.
132
+ # @return [Integer] Hash code
133
+ def hash
134
+ [text, count, limit, preview, folded].hash
135
+ end
136
+
137
+ # Builds the object from hash
138
+ # @param [Hash] attributes Model attributes in the form of hash
139
+ # @return [Object] Returns the model itself
140
+ def self.build_from_hash(attributes)
141
+ return nil unless attributes.is_a?(Hash)
142
+ attributes = attributes.transform_keys(&:to_sym)
143
+ transformed_hash = {}
144
+ openapi_types.each_pair do |key, type|
145
+ if attributes.key?(attribute_map[key]) && attributes[attribute_map[key]].nil?
146
+ transformed_hash["#{key}"] = nil
147
+ elsif type =~ /\AArray<(.*)>/i
148
+ # check to ensure the input is an array given that the attribute
149
+ # is documented as an array but the input is not
150
+ if attributes[attribute_map[key]].is_a?(Array)
151
+ transformed_hash["#{key}"] = attributes[attribute_map[key]].map { |v| _deserialize($1, v) }
152
+ end
153
+ elsif !attributes[attribute_map[key]].nil?
154
+ transformed_hash["#{key}"] = _deserialize(type, attributes[attribute_map[key]])
155
+ end
156
+ end
157
+ new(transformed_hash)
158
+ end
159
+
160
+ # Deserializes the data based on type
161
+ # @param string type Data type
162
+ # @param string value Value to be deserialized
163
+ # @return [Object] Deserialized data
164
+ def self._deserialize(type, value)
165
+ case type.to_sym
166
+ when :Time
167
+ Time.parse(value)
168
+ when :Date
169
+ Date.parse(value)
170
+ when :String
171
+ value.to_s
172
+ when :Integer
173
+ value.to_i
174
+ when :Float
175
+ value.to_f
176
+ when :Boolean
177
+ if value.to_s =~ /\A(true|t|yes|y|1)\z/i
178
+ true
179
+ else
180
+ false
181
+ end
182
+ when :Object
183
+ # generic object (usually a Hash), return directly
184
+ value
185
+ when /\AArray<(?<inner_type>.+)>\z/
186
+ inner_type = Regexp.last_match[:inner_type]
187
+ value.map { |v| _deserialize(inner_type, v) }
188
+ when /\AHash<(?<k_type>.+?), (?<v_type>.+)>\z/
189
+ k_type = Regexp.last_match[:k_type]
190
+ v_type = Regexp.last_match[:v_type]
191
+ {}.tap do |hash|
192
+ value.each do |k, v|
193
+ hash[_deserialize(k_type, k)] = _deserialize(v_type, v)
194
+ end
195
+ end
196
+ else # model
197
+ # models (e.g. Pet) or oneOf
198
+ klass = PostBoost.const_get(type)
199
+ klass.respond_to?(:openapi_any_of) || klass.respond_to?(:openapi_one_of) ? klass.build(value) : klass.build_from_hash(value)
200
+ end
201
+ end
202
+
203
+ # Returns the string representation of the object
204
+ # @return [String] String presentation of the object
205
+ def to_s
206
+ to_hash.to_s
207
+ end
208
+
209
+ # to_body is an alias to to_hash (backward compatibility)
210
+ # @return [Hash] Returns the object in the form of hash
211
+ def to_body
212
+ to_hash
213
+ end
214
+
215
+ # Returns the object in the form of hash
216
+ # @return [Hash] Returns the object in the form of hash
217
+ def to_hash
218
+ hash = {}
219
+ self.class.attribute_map.each_pair do |attr, param|
220
+ value = self.send(attr)
221
+ if value.nil?
222
+ is_nullable = self.class.openapi_nullable.include?(attr)
223
+ next if !is_nullable || (is_nullable && !instance_variable_defined?(:"@#{attr}"))
224
+ end
225
+
226
+ hash[param] = _to_hash(value)
227
+ end
228
+ hash
229
+ end
230
+
231
+ # Outputs non-array value in the form of hash
232
+ # For object, use to_hash. Otherwise, just return the value
233
+ # @param [Object] value Any valid value
234
+ # @return [Hash] Returns the value in the form of hash
235
+ def _to_hash(value)
236
+ if value.is_a?(Array)
237
+ value.compact.map { |v| _to_hash(v) }
238
+ elsif value.is_a?(Hash)
239
+ {}.tap do |hash|
240
+ value.each { |k, v| hash[k] = _to_hash(v) }
241
+ end
242
+ elsif value.respond_to? :to_hash
243
+ value.to_hash
244
+ else
245
+ value
246
+ end
247
+ end
248
+
249
+ end
250
+
251
+ end
@@ -0,0 +1,284 @@
1
+ =begin
2
+ #PostBoost API
3
+
4
+ #The PostBoost REST API lets you publish, schedule, and analyze social media posts across 12+ platforms from a single integration. No OAuth apps to maintain — PostBoost handles platform authorization for you. ## Base URL All workspace-scoped endpoints are prefixed with `/{workspaceUuid}`. Panel/admin endpoints are prefixed with `/panel`. ## Plan access Every workspace-scoped endpoint returns `403` when the workspace's plan does not include API access (capability `api`). ## Dates and times Post dates and times (`date`, `time`, `accounts_schedule`) are read in the request's `timezone` when one is given, otherwise in the workspace timezone. ## Idempotent requests Send an `Idempotency-Key` header (any unique string, for example a UUID) with a `POST`. Repeating the request with the same key within 24 hours returns the stored response with `Idempotent-Replayed: true` and creates nothing new. Reusing a key with a different body returns `422`; a request still in progress with the same key returns `409`. `5xx` and `429` responses are not stored, so they can be retried with the same key. ## Guardrails for automated clients Create and update requests are checked before anything is written: a post whose content matches one created for the same account in the last 24 hours returns `409` (`code: duplicate_post`, override with `allow_duplicate: true`), scheduling past an account's daily cap returns `429` (`code: account_daily_cap_reached`), and scheduling to an account that must be reconnected returns `422` (`code: account_unauthorized` or `account_token_missing`). Use `POST /{workspaceUuid}/posts/validate` for a dry run and `GET /{workspaceUuid}/activity` to review what API clients did. ## Authentication All requests require a Bearer token in the `Authorization` header. Generate tokens in your PostBoost dashboard under **Settings → Access Tokens**. ``` Authorization: Bearer YOUR_API_TOKEN ```
5
+
6
+ The version of the OpenAPI document: 1.22.0
7
+ Contact: hi@postboost.co
8
+ Generated by: https://openapi-generator.tech
9
+ Generator version: 7.9.0
10
+
11
+ =end
12
+
13
+ require 'date'
14
+ require 'time'
15
+
16
+ module PostBoost
17
+ class FreeToolGenerateFancyTextRequest
18
+ attr_accessor :text
19
+
20
+ # One style only; every style when omitted.
21
+ attr_accessor :style
22
+
23
+ class EnumAttributeValidator
24
+ attr_reader :datatype
25
+ attr_reader :allowable_values
26
+
27
+ def initialize(datatype, allowable_values)
28
+ @allowable_values = allowable_values.map do |value|
29
+ case datatype.to_s
30
+ when /Integer/i
31
+ value.to_i
32
+ when /Float/i
33
+ value.to_f
34
+ else
35
+ value
36
+ end
37
+ end
38
+ end
39
+
40
+ def valid?(value)
41
+ !value || allowable_values.include?(value)
42
+ end
43
+ end
44
+
45
+ # Attribute mapping from ruby-style variable name to JSON key.
46
+ def self.attribute_map
47
+ {
48
+ :'text' => :'text',
49
+ :'style' => :'style'
50
+ }
51
+ end
52
+
53
+ # Returns all the JSON keys this model knows about
54
+ def self.acceptable_attributes
55
+ attribute_map.values
56
+ end
57
+
58
+ # Attribute type mapping.
59
+ def self.openapi_types
60
+ {
61
+ :'text' => :'String',
62
+ :'style' => :'String'
63
+ }
64
+ end
65
+
66
+ # List of attributes with nullable: true
67
+ def self.openapi_nullable
68
+ Set.new([
69
+ ])
70
+ end
71
+
72
+ # Initializes the object
73
+ # @param [Hash] attributes Model attributes in the form of hash
74
+ def initialize(attributes = {})
75
+ if (!attributes.is_a?(Hash))
76
+ fail ArgumentError, "The input argument (attributes) must be a hash in `PostBoost::FreeToolGenerateFancyTextRequest` initialize method"
77
+ end
78
+
79
+ # check to see if the attribute exists and convert string to symbol for hash key
80
+ attributes = attributes.each_with_object({}) { |(k, v), h|
81
+ if (!self.class.attribute_map.key?(k.to_sym))
82
+ fail ArgumentError, "`#{k}` is not a valid attribute in `PostBoost::FreeToolGenerateFancyTextRequest`. Please check the name to make sure it's valid. List of attributes: " + self.class.attribute_map.keys.inspect
83
+ end
84
+ h[k.to_sym] = v
85
+ }
86
+
87
+ if attributes.key?(:'text')
88
+ self.text = attributes[:'text']
89
+ else
90
+ self.text = nil
91
+ end
92
+
93
+ if attributes.key?(:'style')
94
+ self.style = attributes[:'style']
95
+ end
96
+ end
97
+
98
+ # Show invalid properties with the reasons. Usually used together with valid?
99
+ # @return Array for valid properties with the reasons
100
+ def list_invalid_properties
101
+ warn '[DEPRECATED] the `list_invalid_properties` method is obsolete'
102
+ invalid_properties = Array.new
103
+ if @text.nil?
104
+ invalid_properties.push('invalid value for "text", text cannot be nil.')
105
+ end
106
+
107
+ if @text.to_s.length > 2000
108
+ invalid_properties.push('invalid value for "text", the character length must be smaller than or equal to 2000.')
109
+ end
110
+
111
+ invalid_properties
112
+ end
113
+
114
+ # Check to see if the all the properties in the model are valid
115
+ # @return true if the model is valid
116
+ def valid?
117
+ warn '[DEPRECATED] the `valid?` method is obsolete'
118
+ return false if @text.nil?
119
+ return false if @text.to_s.length > 2000
120
+ style_validator = EnumAttributeValidator.new('String', ["bold", "italic", "bold_italic", "sans_bold", "sans_italic", "script", "bold_script", "fraktur", "double_struck", "monospace", "small_caps", "circled", "squared", "upside_down", "strikethrough"])
121
+ return false unless style_validator.valid?(@style)
122
+ true
123
+ end
124
+
125
+ # Custom attribute writer method with validation
126
+ # @param [Object] text Value to be assigned
127
+ def text=(text)
128
+ if text.nil?
129
+ fail ArgumentError, 'text cannot be nil'
130
+ end
131
+
132
+ if text.to_s.length > 2000
133
+ fail ArgumentError, 'invalid value for "text", the character length must be smaller than or equal to 2000.'
134
+ end
135
+
136
+ @text = text
137
+ end
138
+
139
+ # Custom attribute writer method checking allowed values (enum).
140
+ # @param [Object] style Object to be assigned
141
+ def style=(style)
142
+ validator = EnumAttributeValidator.new('String', ["bold", "italic", "bold_italic", "sans_bold", "sans_italic", "script", "bold_script", "fraktur", "double_struck", "monospace", "small_caps", "circled", "squared", "upside_down", "strikethrough"])
143
+ unless validator.valid?(style)
144
+ fail ArgumentError, "invalid value for \"style\", must be one of #{validator.allowable_values}."
145
+ end
146
+ @style = style
147
+ end
148
+
149
+ # Checks equality by comparing each attribute.
150
+ # @param [Object] Object to be compared
151
+ def ==(o)
152
+ return true if self.equal?(o)
153
+ self.class == o.class &&
154
+ text == o.text &&
155
+ style == o.style
156
+ end
157
+
158
+ # @see the `==` method
159
+ # @param [Object] Object to be compared
160
+ def eql?(o)
161
+ self == o
162
+ end
163
+
164
+ # Calculates hash code according to all attributes.
165
+ # @return [Integer] Hash code
166
+ def hash
167
+ [text, style].hash
168
+ end
169
+
170
+ # Builds the object from hash
171
+ # @param [Hash] attributes Model attributes in the form of hash
172
+ # @return [Object] Returns the model itself
173
+ def self.build_from_hash(attributes)
174
+ return nil unless attributes.is_a?(Hash)
175
+ attributes = attributes.transform_keys(&:to_sym)
176
+ transformed_hash = {}
177
+ openapi_types.each_pair do |key, type|
178
+ if attributes.key?(attribute_map[key]) && attributes[attribute_map[key]].nil?
179
+ transformed_hash["#{key}"] = nil
180
+ elsif type =~ /\AArray<(.*)>/i
181
+ # check to ensure the input is an array given that the attribute
182
+ # is documented as an array but the input is not
183
+ if attributes[attribute_map[key]].is_a?(Array)
184
+ transformed_hash["#{key}"] = attributes[attribute_map[key]].map { |v| _deserialize($1, v) }
185
+ end
186
+ elsif !attributes[attribute_map[key]].nil?
187
+ transformed_hash["#{key}"] = _deserialize(type, attributes[attribute_map[key]])
188
+ end
189
+ end
190
+ new(transformed_hash)
191
+ end
192
+
193
+ # Deserializes the data based on type
194
+ # @param string type Data type
195
+ # @param string value Value to be deserialized
196
+ # @return [Object] Deserialized data
197
+ def self._deserialize(type, value)
198
+ case type.to_sym
199
+ when :Time
200
+ Time.parse(value)
201
+ when :Date
202
+ Date.parse(value)
203
+ when :String
204
+ value.to_s
205
+ when :Integer
206
+ value.to_i
207
+ when :Float
208
+ value.to_f
209
+ when :Boolean
210
+ if value.to_s =~ /\A(true|t|yes|y|1)\z/i
211
+ true
212
+ else
213
+ false
214
+ end
215
+ when :Object
216
+ # generic object (usually a Hash), return directly
217
+ value
218
+ when /\AArray<(?<inner_type>.+)>\z/
219
+ inner_type = Regexp.last_match[:inner_type]
220
+ value.map { |v| _deserialize(inner_type, v) }
221
+ when /\AHash<(?<k_type>.+?), (?<v_type>.+)>\z/
222
+ k_type = Regexp.last_match[:k_type]
223
+ v_type = Regexp.last_match[:v_type]
224
+ {}.tap do |hash|
225
+ value.each do |k, v|
226
+ hash[_deserialize(k_type, k)] = _deserialize(v_type, v)
227
+ end
228
+ end
229
+ else # model
230
+ # models (e.g. Pet) or oneOf
231
+ klass = PostBoost.const_get(type)
232
+ klass.respond_to?(:openapi_any_of) || klass.respond_to?(:openapi_one_of) ? klass.build(value) : klass.build_from_hash(value)
233
+ end
234
+ end
235
+
236
+ # Returns the string representation of the object
237
+ # @return [String] String presentation of the object
238
+ def to_s
239
+ to_hash.to_s
240
+ end
241
+
242
+ # to_body is an alias to to_hash (backward compatibility)
243
+ # @return [Hash] Returns the object in the form of hash
244
+ def to_body
245
+ to_hash
246
+ end
247
+
248
+ # Returns the object in the form of hash
249
+ # @return [Hash] Returns the object in the form of hash
250
+ def to_hash
251
+ hash = {}
252
+ self.class.attribute_map.each_pair do |attr, param|
253
+ value = self.send(attr)
254
+ if value.nil?
255
+ is_nullable = self.class.openapi_nullable.include?(attr)
256
+ next if !is_nullable || (is_nullable && !instance_variable_defined?(:"@#{attr}"))
257
+ end
258
+
259
+ hash[param] = _to_hash(value)
260
+ end
261
+ hash
262
+ end
263
+
264
+ # Outputs non-array value in the form of hash
265
+ # For object, use to_hash. Otherwise, just return the value
266
+ # @param [Object] value Any valid value
267
+ # @return [Hash] Returns the value in the form of hash
268
+ def _to_hash(value)
269
+ if value.is_a?(Array)
270
+ value.compact.map { |v| _to_hash(v) }
271
+ elsif value.is_a?(Hash)
272
+ {}.tap do |hash|
273
+ value.each { |k, v| hash[k] = _to_hash(v) }
274
+ end
275
+ elsif value.respond_to? :to_hash
276
+ value.to_hash
277
+ else
278
+ value
279
+ end
280
+ end
281
+
282
+ end
283
+
284
+ end