postboost 1.40.0 → 1.42.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 (750) hide show
  1. checksums.yaml +4 -4
  2. data/README.md +3 -1
  3. data/docs/FreeToolFormatInstagramCaptionRequest.md +22 -0
  4. data/docs/FreeToolFormatInstagramCaptionResponse.md +28 -0
  5. data/docs/FreeToolGenerateSocialPostsFromBlogRequest.md +32 -0
  6. data/docs/FreeToolGenerateSocialPostsFromBlogResponse.md +24 -0
  7. data/docs/FreeToolGenerateSocialPostsFromBlogResponsePostsInner.md +26 -0
  8. data/docs/FreeToolGenerateSocialPostsFromBlogResponseSource.md +20 -0
  9. data/docs/FreeToolGenerateSocialPostsFromBlogResponseWarningsInner.md +22 -0
  10. data/docs/FreeToolsApi.md +135 -0
  11. data/lib/postboost/api/account_groups_api.rb +1 -1
  12. data/lib/postboost/api/accounts_api.rb +1 -1
  13. data/lib/postboost/api/activity_api.rb +1 -1
  14. data/lib/postboost/api/agents_api.rb +1 -1
  15. data/lib/postboost/api/ai_api.rb +1 -1
  16. data/lib/postboost/api/analytics_api.rb +1 -1
  17. data/lib/postboost/api/competitors_api.rb +1 -1
  18. data/lib/postboost/api/free_tools_api.rb +137 -1
  19. data/lib/postboost/api/hashtag_groups_api.rb +1 -1
  20. data/lib/postboost/api/inbox_api.rb +1 -1
  21. data/lib/postboost/api/media_api.rb +1 -1
  22. data/lib/postboost/api/mentions_api.rb +1 -1
  23. data/lib/postboost/api/posting_schedule_api.rb +1 -1
  24. data/lib/postboost/api/posts_api.rb +1 -1
  25. data/lib/postboost/api/receipts_api.rb +1 -1
  26. data/lib/postboost/api/subscriptions_api.rb +1 -1
  27. data/lib/postboost/api/tags_api.rb +1 -1
  28. data/lib/postboost/api/templates_api.rb +1 -1
  29. data/lib/postboost/api/users_api.rb +1 -1
  30. data/lib/postboost/api/webhooks_api.rb +1 -1
  31. data/lib/postboost/api/workspaces_api.rb +1 -1
  32. data/lib/postboost/api_client.rb +1 -1
  33. data/lib/postboost/api_error.rb +1 -1
  34. data/lib/postboost/configuration.rb +1 -1
  35. data/lib/postboost/models/account.rb +1 -1
  36. data/lib/postboost/models/account_analytics.rb +1 -1
  37. data/lib/postboost/models/account_analytics_initial_sync.rb +1 -1
  38. data/lib/postboost/models/account_connection_health.rb +1 -1
  39. data/lib/postboost/models/account_connection_health_reconnect_reason.rb +1 -1
  40. data/lib/postboost/models/account_errors_inner.rb +1 -1
  41. data/lib/postboost/models/account_errors_inner_one_of.rb +1 -1
  42. data/lib/postboost/models/account_group.rb +1 -1
  43. data/lib/postboost/models/account_group_input.rb +1 -1
  44. data/lib/postboost/models/account_health.rb +1 -1
  45. data/lib/postboost/models/account_health_daily_cap.rb +1 -1
  46. data/lib/postboost/models/account_schedule.rb +1 -1
  47. data/lib/postboost/models/add_competitor202_response.rb +1 -1
  48. data/lib/postboost/models/add_competitor409_response.rb +1 -1
  49. data/lib/postboost/models/add_generic_subscription_request.rb +1 -1
  50. data/lib/postboost/models/add_post_to_queue_request.rb +1 -1
  51. data/lib/postboost/models/agent_page_meta.rb +1 -1
  52. data/lib/postboost/models/agent_proposal.rb +1 -1
  53. data/lib/postboost/models/agent_proposal_decision.rb +1 -1
  54. data/lib/postboost/models/agent_run.rb +1 -1
  55. data/lib/postboost/models/ai_credits.rb +1 -1
  56. data/lib/postboost/models/ai_usage.rb +1 -1
  57. data/lib/postboost/models/ai_usage_text.rb +1 -1
  58. data/lib/postboost/models/analytics_period.rb +1 -1
  59. data/lib/postboost/models/analytics_summary.rb +1 -1
  60. data/lib/postboost/models/analytics_summary_data.rb +1 -1
  61. data/lib/postboost/models/api_activity.rb +1 -1
  62. data/lib/postboost/models/api_activity_outcome.rb +1 -1
  63. data/lib/postboost/models/api_key.rb +1 -1
  64. data/lib/postboost/models/api_key_ability.rb +1 -1
  65. data/lib/postboost/models/api_key_input.rb +1 -1
  66. data/lib/postboost/models/approve_agent_proposal200_response.rb +1 -1
  67. data/lib/postboost/models/approve_agent_proposal409_response.rb +1 -1
  68. data/lib/postboost/models/approve_inbox_reply_draft403_response.rb +1 -1
  69. data/lib/postboost/models/approve_post_request.rb +1 -1
  70. data/lib/postboost/models/best_posting_times.rb +1 -1
  71. data/lib/postboost/models/best_posting_times_times_inner.rb +1 -1
  72. data/lib/postboost/models/blog_to_social200_response.rb +1 -1
  73. data/lib/postboost/models/blog_to_social429_response.rb +1 -1
  74. data/lib/postboost/models/blog_to_social_caption.rb +1 -1
  75. data/lib/postboost/models/blog_to_social_input.rb +1 -1
  76. data/lib/postboost/models/blog_to_social_media.rb +1 -1
  77. data/lib/postboost/models/blog_to_social_response.rb +1 -1
  78. data/lib/postboost/models/brand_voice.rb +1 -1
  79. data/lib/postboost/models/brand_voice_input.rb +1 -1
  80. data/lib/postboost/models/brand_voice_meta.rb +1 -1
  81. data/lib/postboost/models/cancel_subscription422_response.rb +1 -1
  82. data/lib/postboost/models/cancel_subscription422_response_errors.rb +1 -1
  83. data/lib/postboost/models/cancel_subscription_request.rb +1 -1
  84. data/lib/postboost/models/change_subscription_plan_request.rb +1 -1
  85. data/lib/postboost/models/channel_account.rb +1 -1
  86. data/lib/postboost/models/checkout_subscription200_response.rb +1 -1
  87. data/lib/postboost/models/checkout_subscription_request.rb +1 -1
  88. data/lib/postboost/models/coded_error.rb +1 -1
  89. data/lib/postboost/models/competitor.rb +1 -1
  90. data/lib/postboost/models/competitor_detail.rb +1 -1
  91. data/lib/postboost/models/competitor_input.rb +1 -1
  92. data/lib/postboost/models/competitor_media.rb +1 -1
  93. data/lib/postboost/models/competitor_snapshot.rb +1 -1
  94. data/lib/postboost/models/complete_chunked_upload_request.rb +1 -1
  95. data/lib/postboost/models/connect_channel_input.rb +1 -1
  96. data/lib/postboost/models/connect_link.rb +1 -1
  97. data/lib/postboost/models/create_account_group201_response.rb +1 -1
  98. data/lib/postboost/models/create_agent201_response.rb +1 -1
  99. data/lib/postboost/models/create_api_key201_response.rb +1 -1
  100. data/lib/postboost/models/create_api_key201_response_data.rb +1 -1
  101. data/lib/postboost/models/create_connect_link_request.rb +1 -1
  102. data/lib/postboost/models/create_hashtag_group201_response.rb +1 -1
  103. data/lib/postboost/models/create_inbox_reply_draft201_response.rb +1 -1
  104. data/lib/postboost/models/create_media_folder_request.rb +1 -1
  105. data/lib/postboost/models/create_mention201_response.rb +1 -1
  106. data/lib/postboost/models/create_post201_response.rb +1 -1
  107. data/lib/postboost/models/create_recycling_rule201_response.rb +1 -1
  108. data/lib/postboost/models/create_report_export201_response.rb +1 -1
  109. data/lib/postboost/models/create_reseller_client201_response.rb +1 -1
  110. data/lib/postboost/models/create_rss_feed201_response.rb +1 -1
  111. data/lib/postboost/models/create_template201_response.rb +1 -1
  112. data/lib/postboost/models/create_webhook_subscription201_response.rb +1 -1
  113. data/lib/postboost/models/create_webhook_subscription201_response_data.rb +1 -1
  114. data/lib/postboost/models/delete_agent200_response.rb +1 -1
  115. data/lib/postboost/models/delete_media_bulk_request.rb +1 -1
  116. data/lib/postboost/models/delete_media_bulk_request_items_inner.rb +1 -1
  117. data/lib/postboost/models/delete_media_folder_request.rb +1 -1
  118. data/lib/postboost/models/delete_mode.rb +1 -1
  119. data/lib/postboost/models/delete_post_request.rb +1 -1
  120. data/lib/postboost/models/delete_posts_bulk_request.rb +1 -1
  121. data/lib/postboost/models/delete_receipts_bulk_request.rb +1 -1
  122. data/lib/postboost/models/delete_result.rb +1 -1
  123. data/lib/postboost/models/delete_user400_response.rb +1 -1
  124. data/lib/postboost/models/delete_users_bulk_request.rb +1 -1
  125. data/lib/postboost/models/delete_workspaces_bulk_request.rb +1 -1
  126. data/lib/postboost/models/free_tool_build_utm_url_request.rb +1 -1
  127. data/lib/postboost/models/free_tool_build_utm_url_response.rb +1 -1
  128. data/lib/postboost/models/free_tool_calculate_aspect_ratio_request.rb +1 -1
  129. data/lib/postboost/models/free_tool_calculate_aspect_ratio_response.rb +1 -1
  130. data/lib/postboost/models/free_tool_calculate_aspect_ratio_response_matches_inner.rb +1 -1
  131. data/lib/postboost/models/free_tool_calculate_aspect_ratio_response_rounding.rb +1 -1
  132. data/lib/postboost/models/free_tool_calculate_crop_request.rb +1 -1
  133. data/lib/postboost/models/free_tool_calculate_crop_response.rb +1 -1
  134. data/lib/postboost/models/free_tool_calculate_crop_response_crop.rb +1 -1
  135. data/lib/postboost/models/free_tool_calculate_crop_response_image.rb +1 -1
  136. data/lib/postboost/models/free_tool_calculate_crop_response_output.rb +1 -1
  137. data/lib/postboost/models/free_tool_calculate_engagement_rate_request.rb +1 -1
  138. data/lib/postboost/models/free_tool_calculate_engagement_rate_response.rb +1 -1
  139. data/lib/postboost/models/free_tool_check_link_preview_request.rb +1 -1
  140. data/lib/postboost/models/free_tool_check_link_preview_response.rb +1 -1
  141. data/lib/postboost/models/free_tool_check_link_preview_response_image.rb +1 -1
  142. data/lib/postboost/models/free_tool_check_link_preview_response_previews_value.rb +1 -1
  143. data/lib/postboost/models/free_tool_check_link_preview_response_redirects_inner.rb +1 -1
  144. data/lib/postboost/models/free_tool_check_link_preview_response_tags.rb +1 -1
  145. data/lib/postboost/models/free_tool_check_post_request.rb +1 -1
  146. data/lib/postboost/models/free_tool_check_post_request_media.rb +1 -1
  147. data/lib/postboost/models/free_tool_check_post_response.rb +1 -1
  148. data/lib/postboost/models/free_tool_check_post_response_networks_inner.rb +1 -1
  149. data/lib/postboost/models/free_tool_check_post_response_networks_inner_errors_inner.rb +1 -1
  150. data/lib/postboost/models/free_tool_check_youtube_thumbnail_request.rb +1 -1
  151. data/lib/postboost/models/free_tool_check_youtube_thumbnail_response.rb +1 -1
  152. data/lib/postboost/models/free_tool_check_youtube_thumbnail_response_checks_inner.rb +1 -1
  153. data/lib/postboost/models/free_tool_clean_text_request.rb +1 -1
  154. data/lib/postboost/models/free_tool_clean_text_response.rb +1 -1
  155. data/lib/postboost/models/free_tool_clean_text_response_changes_inner.rb +1 -1
  156. data/lib/postboost/models/free_tool_clean_text_response_flags_inner.rb +1 -1
  157. data/lib/postboost/models/free_tool_count_characters_request.rb +1 -1
  158. data/lib/postboost/models/free_tool_count_characters_response.rb +1 -1
  159. data/lib/postboost/models/free_tool_count_characters_response_networks_inner.rb +1 -1
  160. data/lib/postboost/models/free_tool_error.rb +1 -1
  161. data/lib/postboost/models/free_tool_format_instagram_caption_request.rb +298 -0
  162. data/lib/postboost/models/free_tool_format_instagram_caption_response.rb +264 -0
  163. data/lib/postboost/models/free_tool_format_linked_in_post_request.rb +1 -1
  164. data/lib/postboost/models/free_tool_format_linked_in_post_response.rb +1 -1
  165. data/lib/postboost/models/free_tool_generate_caption_request.rb +1 -1
  166. data/lib/postboost/models/free_tool_generate_caption_response.rb +1 -1
  167. data/lib/postboost/models/free_tool_generate_fancy_text_request.rb +1 -1
  168. data/lib/postboost/models/free_tool_generate_fancy_text_response.rb +1 -1
  169. data/lib/postboost/models/free_tool_generate_fancy_text_response_styles_inner.rb +1 -1
  170. data/lib/postboost/models/free_tool_generate_hashtags_request.rb +1 -1
  171. data/lib/postboost/models/free_tool_generate_hashtags_response.rb +1 -1
  172. data/lib/postboost/models/free_tool_generate_hooks_request.rb +1 -1
  173. data/lib/postboost/models/free_tool_generate_hooks_response.rb +1 -1
  174. data/lib/postboost/models/free_tool_generate_hooks_response_hooks_inner.rb +1 -1
  175. data/lib/postboost/models/free_tool_generate_qr_code_request.rb +1 -1
  176. data/lib/postboost/models/free_tool_generate_qr_code_request_utm.rb +1 -1
  177. data/lib/postboost/models/free_tool_generate_qr_code_response.rb +1 -1
  178. data/lib/postboost/models/free_tool_generate_social_posts_from_blog_request.rb +446 -0
  179. data/lib/postboost/models/free_tool_generate_social_posts_from_blog_response.rb +247 -0
  180. data/lib/postboost/models/free_tool_generate_social_posts_from_blog_response_posts_inner.rb +290 -0
  181. data/lib/postboost/models/free_tool_generate_social_posts_from_blog_response_source.rb +225 -0
  182. data/lib/postboost/models/free_tool_generate_social_posts_from_blog_response_warnings_inner.rb +235 -0
  183. data/lib/postboost/models/free_tool_get_best_times_to_post_response.rb +1 -1
  184. data/lib/postboost/models/free_tool_get_best_times_to_post_response_networks_inner.rb +1 -1
  185. data/lib/postboost/models/free_tool_get_hook_templates_response.rb +1 -1
  186. data/lib/postboost/models/free_tool_get_hook_templates_response_hooks_inner.rb +1 -1
  187. data/lib/postboost/models/free_tool_get_image_sizes_response.rb +1 -1
  188. data/lib/postboost/models/free_tool_get_image_sizes_response_sizes_inner.rb +1 -1
  189. data/lib/postboost/models/free_tool_get_image_sizes_response_sources_inner.rb +1 -1
  190. data/lib/postboost/models/free_tool_get_video_specs_response.rb +1 -1
  191. data/lib/postboost/models/free_tool_get_video_specs_response_specs_inner.rb +1 -1
  192. data/lib/postboost/models/free_tool_get_video_specs_response_specs_inner_limits.rb +1 -1
  193. data/lib/postboost/models/free_tool_list.rb +1 -1
  194. data/lib/postboost/models/free_tool_list_item.rb +1 -1
  195. data/lib/postboost/models/free_tool_preview_post_request.rb +1 -1
  196. data/lib/postboost/models/free_tool_preview_post_response.rb +1 -1
  197. data/lib/postboost/models/free_tool_preview_post_response_networks_inner.rb +1 -1
  198. data/lib/postboost/models/free_tool_split_thread_request.rb +1 -1
  199. data/lib/postboost/models/free_tool_split_thread_response.rb +1 -1
  200. data/lib/postboost/models/free_tool_split_thread_response_posts_inner.rb +1 -1
  201. data/lib/postboost/models/get_account_health200_response.rb +1 -1
  202. data/lib/postboost/models/get_brand_voice200_response.rb +1 -1
  203. data/lib/postboost/models/get_competitor200_response.rb +1 -1
  204. data/lib/postboost/models/get_inbox_conversation200_response.rb +1 -1
  205. data/lib/postboost/models/get_posting_schedule200_response.rb +1 -1
  206. data/lib/postboost/models/get_remote_upload_status200_response.rb +1 -1
  207. data/lib/postboost/models/get_report_branding200_response.rb +1 -1
  208. data/lib/postboost/models/get_repurpose_run200_response.rb +1 -1
  209. data/lib/postboost/models/guardrail_error.rb +1 -1
  210. data/lib/postboost/models/hashtag_group.rb +1 -1
  211. data/lib/postboost/models/hashtag_group_input.rb +1 -1
  212. data/lib/postboost/models/image_alt_text200_response.rb +1 -1
  213. data/lib/postboost/models/image_alt_text_input.rb +1 -1
  214. data/lib/postboost/models/image_alt_text_response.rb +1 -1
  215. data/lib/postboost/models/image_credit_balance.rb +1 -1
  216. data/lib/postboost/models/image_edit_input.rb +1 -1
  217. data/lib/postboost/models/image_generate200_response.rb +1 -1
  218. data/lib/postboost/models/image_generate429_response.rb +1 -1
  219. data/lib/postboost/models/image_generate_input.rb +1 -1
  220. data/lib/postboost/models/image_generation_response.rb +1 -1
  221. data/lib/postboost/models/image_prompt200_response.rb +1 -1
  222. data/lib/postboost/models/image_prompt429_response.rb +1 -1
  223. data/lib/postboost/models/image_prompt_input.rb +1 -1
  224. data/lib/postboost/models/image_prompt_response.rb +1 -1
  225. data/lib/postboost/models/image_variations200_response.rb +1 -1
  226. data/lib/postboost/models/image_variations_input.rb +1 -1
  227. data/lib/postboost/models/image_variations_response.rb +1 -1
  228. data/lib/postboost/models/inbox_author.rb +1 -1
  229. data/lib/postboost/models/inbox_conversation.rb +1 -1
  230. data/lib/postboost/models/inbox_conversation_account.rb +1 -1
  231. data/lib/postboost/models/inbox_conversation_update.rb +1 -1
  232. data/lib/postboost/models/inbox_message.rb +1 -1
  233. data/lib/postboost/models/inbox_message_author.rb +1 -1
  234. data/lib/postboost/models/inbox_reply_draft.rb +1 -1
  235. data/lib/postboost/models/inbox_reply_draft_approve.rb +1 -1
  236. data/lib/postboost/models/inbox_reply_draft_edit.rb +1 -1
  237. data/lib/postboost/models/inbox_reply_draft_input.rb +1 -1
  238. data/lib/postboost/models/initiate_chunked_upload201_response.rb +1 -1
  239. data/lib/postboost/models/initiate_chunked_upload_request.rb +1 -1
  240. data/lib/postboost/models/initiate_remote_upload201_response.rb +1 -1
  241. data/lib/postboost/models/initiate_remote_upload201_response_one_of.rb +1 -1
  242. data/lib/postboost/models/initiate_remote_upload_request.rb +1 -1
  243. data/lib/postboost/models/learn_brand_voice_input.rb +1 -1
  244. data/lib/postboost/models/learn_brand_voice_response.rb +1 -1
  245. data/lib/postboost/models/learn_brand_voice_response_meta.rb +1 -1
  246. data/lib/postboost/models/list_account_groups200_response.rb +1 -1
  247. data/lib/postboost/models/list_accounts200_response.rb +1 -1
  248. data/lib/postboost/models/list_agent_proposals200_response.rb +1 -1
  249. data/lib/postboost/models/list_agent_runs200_response.rb +1 -1
  250. data/lib/postboost/models/list_agents200_response.rb +1 -1
  251. data/lib/postboost/models/list_api_activity200_response.rb +1 -1
  252. data/lib/postboost/models/list_api_keys200_response.rb +1 -1
  253. data/lib/postboost/models/list_competitors200_response.rb +1 -1
  254. data/lib/postboost/models/list_hashtag_groups200_response.rb +1 -1
  255. data/lib/postboost/models/list_inbox_conversations200_response.rb +1 -1
  256. data/lib/postboost/models/list_inbox_reply_drafts200_response.rb +1 -1
  257. data/lib/postboost/models/list_media200_response.rb +1 -1
  258. data/lib/postboost/models/list_media_folders200_response.rb +1 -1
  259. data/lib/postboost/models/list_mentions200_response.rb +1 -1
  260. data/lib/postboost/models/list_my_workspaces200_response.rb +1 -1
  261. data/lib/postboost/models/list_posts200_response.rb +1 -1
  262. data/lib/postboost/models/list_receipts200_response.rb +1 -1
  263. data/lib/postboost/models/list_recycling_rules200_response.rb +1 -1
  264. data/lib/postboost/models/list_recycling_runs200_response.rb +1 -1
  265. data/lib/postboost/models/list_report_exports200_response.rb +1 -1
  266. data/lib/postboost/models/list_reseller_clients200_response.rb +1 -1
  267. data/lib/postboost/models/list_rss_feeds200_response.rb +1 -1
  268. data/lib/postboost/models/list_tags200_response.rb +1 -1
  269. data/lib/postboost/models/list_templates200_response.rb +1 -1
  270. data/lib/postboost/models/list_users200_response.rb +1 -1
  271. data/lib/postboost/models/list_webhook_subscriptions200_response.rb +1 -1
  272. data/lib/postboost/models/list_workspaces200_response.rb +1 -1
  273. data/lib/postboost/models/media.rb +1 -1
  274. data/lib/postboost/models/media_base64_input.rb +1 -1
  275. data/lib/postboost/models/media_folder.rb +1 -1
  276. data/lib/postboost/models/media_folder_input.rb +1 -1
  277. data/lib/postboost/models/media_folder_ref.rb +1 -1
  278. data/lib/postboost/models/mention.rb +1 -1
  279. data/lib/postboost/models/mention_identity.rb +1 -1
  280. data/lib/postboost/models/mention_identity_input.rb +1 -1
  281. data/lib/postboost/models/mention_input.rb +1 -1
  282. data/lib/postboost/models/message_only.rb +1 -1
  283. data/lib/postboost/models/pagination_meta.rb +1 -1
  284. data/lib/postboost/models/pagination_meta_links.rb +1 -1
  285. data/lib/postboost/models/pagination_meta_meta.rb +1 -1
  286. data/lib/postboost/models/poll_rss_feed200_response.rb +1 -1
  287. data/lib/postboost/models/post.rb +1 -1
  288. data/lib/postboost/models/post_analytics.rb +1 -1
  289. data/lib/postboost/models/post_content.rb +1 -1
  290. data/lib/postboost/models/post_input.rb +1 -1
  291. data/lib/postboost/models/post_options_instagram.rb +1 -1
  292. data/lib/postboost/models/post_options_tik_tok.rb +1 -1
  293. data/lib/postboost/models/post_options_youtube.rb +1 -1
  294. data/lib/postboost/models/post_status.rb +1 -1
  295. data/lib/postboost/models/post_version.rb +1 -1
  296. data/lib/postboost/models/post_version_options.rb +1 -1
  297. data/lib/postboost/models/post_warning.rb +1 -1
  298. data/lib/postboost/models/post_warnings.rb +1 -1
  299. data/lib/postboost/models/posting_schedule.rb +1 -1
  300. data/lib/postboost/models/posting_schedule_day.rb +1 -1
  301. data/lib/postboost/models/posting_schedule_day_times_inner.rb +1 -1
  302. data/lib/postboost/models/posting_schedule_input.rb +1 -1
  303. data/lib/postboost/models/posting_time_slot.rb +1 -1
  304. data/lib/postboost/models/posting_times.rb +1 -1
  305. data/lib/postboost/models/posting_times_best_inner.rb +1 -1
  306. data/lib/postboost/models/posting_times_day_intervals_inner_inner.rb +1 -1
  307. data/lib/postboost/models/posting_times_days_inner.rb +1 -1
  308. data/lib/postboost/models/preflight_result.rb +1 -1
  309. data/lib/postboost/models/public_workspace.rb +1 -1
  310. data/lib/postboost/models/public_workspace_pivot.rb +1 -1
  311. data/lib/postboost/models/publish_progress.rb +1 -1
  312. data/lib/postboost/models/queue_slots.rb +1 -1
  313. data/lib/postboost/models/receipt.rb +1 -1
  314. data/lib/postboost/models/receipt_input.rb +1 -1
  315. data/lib/postboost/models/receipt_update_input.rb +1 -1
  316. data/lib/postboost/models/recommended_posting_times.rb +1 -1
  317. data/lib/postboost/models/reconnect_link.rb +1 -1
  318. data/lib/postboost/models/recycling_rule.rb +1 -1
  319. data/lib/postboost/models/recycling_rule_input.rb +1 -1
  320. data/lib/postboost/models/recycling_rule_settings.rb +1 -1
  321. data/lib/postboost/models/recycling_rule_update.rb +1 -1
  322. data/lib/postboost/models/recycling_run.rb +1 -1
  323. data/lib/postboost/models/remove_generic_subscription422_response.rb +1 -1
  324. data/lib/postboost/models/remove_user_from_workspace_request.rb +1 -1
  325. data/lib/postboost/models/report_branding.rb +1 -1
  326. data/lib/postboost/models/report_branding_input.rb +1 -1
  327. data/lib/postboost/models/report_export.rb +1 -1
  328. data/lib/postboost/models/report_export_input.rb +1 -1
  329. data/lib/postboost/models/repurpose_content200_response.rb +1 -1
  330. data/lib/postboost/models/repurpose_content202_response.rb +1 -1
  331. data/lib/postboost/models/repurpose_content500_response.rb +1 -1
  332. data/lib/postboost/models/repurpose_input.rb +1 -1
  333. data/lib/postboost/models/repurpose_input_theme.rb +1 -1
  334. data/lib/postboost/models/repurpose_result.rb +1 -1
  335. data/lib/postboost/models/repurpose_result_media.rb +1 -1
  336. data/lib/postboost/models/repurpose_result_source.rb +1 -1
  337. data/lib/postboost/models/repurpose_run.rb +1 -1
  338. data/lib/postboost/models/repurpose_run_accepted.rb +1 -1
  339. data/lib/postboost/models/repurpose_slide.rb +1 -1
  340. data/lib/postboost/models/reseller_client.rb +1 -1
  341. data/lib/postboost/models/reseller_client_input.rb +1 -1
  342. data/lib/postboost/models/reseller_client_usage.rb +1 -1
  343. data/lib/postboost/models/retry_post_account_result.rb +1 -1
  344. data/lib/postboost/models/rss_feed.rb +1 -1
  345. data/lib/postboost/models/rss_feed_input.rb +1 -1
  346. data/lib/postboost/models/rss_feed_update.rb +1 -1
  347. data/lib/postboost/models/run_agent202_response.rb +1 -1
  348. data/lib/postboost/models/schedule_post_request.rb +1 -1
  349. data/lib/postboost/models/schedule_result.rb +1 -1
  350. data/lib/postboost/models/subscription.rb +1 -1
  351. data/lib/postboost/models/subscription_input.rb +1 -1
  352. data/lib/postboost/models/subscription_status.rb +1 -1
  353. data/lib/postboost/models/subscription_update_input.rb +1 -1
  354. data/lib/postboost/models/tag.rb +1 -1
  355. data/lib/postboost/models/tag_input.rb +1 -1
  356. data/lib/postboost/models/template.rb +1 -1
  357. data/lib/postboost/models/template_content_item.rb +1 -1
  358. data/lib/postboost/models/template_input.rb +1 -1
  359. data/lib/postboost/models/template_input_content_inner.rb +1 -1
  360. data/lib/postboost/models/update_media_request.rb +1 -1
  361. data/lib/postboost/models/update_post200_response.rb +1 -1
  362. data/lib/postboost/models/upload_chunk201_response.rb +1 -1
  363. data/lib/postboost/models/user.rb +1 -1
  364. data/lib/postboost/models/user_input.rb +1 -1
  365. data/lib/postboost/models/user_update_input.rb +1 -1
  366. data/lib/postboost/models/webhook_envelope.rb +1 -1
  367. data/lib/postboost/models/webhook_event_name.rb +1 -1
  368. data/lib/postboost/models/webhook_event_payload.rb +1 -1
  369. data/lib/postboost/models/webhook_subscription.rb +1 -1
  370. data/lib/postboost/models/webhook_subscription_input.rb +1 -1
  371. data/lib/postboost/models/workspace.rb +1 -1
  372. data/lib/postboost/models/workspace_agent.rb +1 -1
  373. data/lib/postboost/models/workspace_agent_input.rb +1 -1
  374. data/lib/postboost/models/workspace_agent_settings.rb +1 -1
  375. data/lib/postboost/models/workspace_agent_update.rb +1 -1
  376. data/lib/postboost/models/workspace_input.rb +1 -1
  377. data/lib/postboost/models/workspace_user_input.rb +1 -1
  378. data/lib/postboost/models/x_usage.rb +1 -1
  379. data/lib/postboost/models/x_usage_counter.rb +1 -1
  380. data/lib/postboost/version.rb +2 -2
  381. data/lib/postboost.rb +8 -1
  382. data/postboost.gemspec +1 -1
  383. data/spec/api/account_groups_api_spec.rb +1 -1
  384. data/spec/api/accounts_api_spec.rb +1 -1
  385. data/spec/api/activity_api_spec.rb +1 -1
  386. data/spec/api/agents_api_spec.rb +1 -1
  387. data/spec/api/ai_api_spec.rb +1 -1
  388. data/spec/api/analytics_api_spec.rb +1 -1
  389. data/spec/api/competitors_api_spec.rb +1 -1
  390. data/spec/api/free_tools_api_spec.rb +25 -1
  391. data/spec/api/hashtag_groups_api_spec.rb +1 -1
  392. data/spec/api/inbox_api_spec.rb +1 -1
  393. data/spec/api/media_api_spec.rb +1 -1
  394. data/spec/api/mentions_api_spec.rb +1 -1
  395. data/spec/api/posting_schedule_api_spec.rb +1 -1
  396. data/spec/api/posts_api_spec.rb +1 -1
  397. data/spec/api/receipts_api_spec.rb +1 -1
  398. data/spec/api/subscriptions_api_spec.rb +1 -1
  399. data/spec/api/tags_api_spec.rb +1 -1
  400. data/spec/api/templates_api_spec.rb +1 -1
  401. data/spec/api/users_api_spec.rb +1 -1
  402. data/spec/api/webhooks_api_spec.rb +1 -1
  403. data/spec/api/workspaces_api_spec.rb +1 -1
  404. data/spec/models/account_analytics_initial_sync_spec.rb +1 -1
  405. data/spec/models/account_analytics_spec.rb +1 -1
  406. data/spec/models/account_connection_health_reconnect_reason_spec.rb +1 -1
  407. data/spec/models/account_connection_health_spec.rb +1 -1
  408. data/spec/models/account_errors_inner_one_of_spec.rb +1 -1
  409. data/spec/models/account_errors_inner_spec.rb +1 -1
  410. data/spec/models/account_group_input_spec.rb +1 -1
  411. data/spec/models/account_group_spec.rb +1 -1
  412. data/spec/models/account_health_daily_cap_spec.rb +1 -1
  413. data/spec/models/account_health_spec.rb +1 -1
  414. data/spec/models/account_schedule_spec.rb +1 -1
  415. data/spec/models/account_spec.rb +1 -1
  416. data/spec/models/add_competitor202_response_spec.rb +1 -1
  417. data/spec/models/add_competitor409_response_spec.rb +1 -1
  418. data/spec/models/add_generic_subscription_request_spec.rb +1 -1
  419. data/spec/models/add_post_to_queue_request_spec.rb +1 -1
  420. data/spec/models/agent_page_meta_spec.rb +1 -1
  421. data/spec/models/agent_proposal_decision_spec.rb +1 -1
  422. data/spec/models/agent_proposal_spec.rb +1 -1
  423. data/spec/models/agent_run_spec.rb +1 -1
  424. data/spec/models/ai_credits_spec.rb +1 -1
  425. data/spec/models/ai_usage_spec.rb +1 -1
  426. data/spec/models/ai_usage_text_spec.rb +1 -1
  427. data/spec/models/analytics_period_spec.rb +1 -1
  428. data/spec/models/analytics_summary_data_spec.rb +1 -1
  429. data/spec/models/analytics_summary_spec.rb +1 -1
  430. data/spec/models/api_activity_outcome_spec.rb +1 -1
  431. data/spec/models/api_activity_spec.rb +1 -1
  432. data/spec/models/api_key_ability_spec.rb +1 -1
  433. data/spec/models/api_key_input_spec.rb +1 -1
  434. data/spec/models/api_key_spec.rb +1 -1
  435. data/spec/models/approve_agent_proposal200_response_spec.rb +1 -1
  436. data/spec/models/approve_agent_proposal409_response_spec.rb +1 -1
  437. data/spec/models/approve_inbox_reply_draft403_response_spec.rb +1 -1
  438. data/spec/models/approve_post_request_spec.rb +1 -1
  439. data/spec/models/best_posting_times_spec.rb +1 -1
  440. data/spec/models/best_posting_times_times_inner_spec.rb +1 -1
  441. data/spec/models/blog_to_social200_response_spec.rb +1 -1
  442. data/spec/models/blog_to_social429_response_spec.rb +1 -1
  443. data/spec/models/blog_to_social_caption_spec.rb +1 -1
  444. data/spec/models/blog_to_social_input_spec.rb +1 -1
  445. data/spec/models/blog_to_social_media_spec.rb +1 -1
  446. data/spec/models/blog_to_social_response_spec.rb +1 -1
  447. data/spec/models/brand_voice_input_spec.rb +1 -1
  448. data/spec/models/brand_voice_meta_spec.rb +1 -1
  449. data/spec/models/brand_voice_spec.rb +1 -1
  450. data/spec/models/cancel_subscription422_response_errors_spec.rb +1 -1
  451. data/spec/models/cancel_subscription422_response_spec.rb +1 -1
  452. data/spec/models/cancel_subscription_request_spec.rb +1 -1
  453. data/spec/models/change_subscription_plan_request_spec.rb +1 -1
  454. data/spec/models/channel_account_spec.rb +1 -1
  455. data/spec/models/checkout_subscription200_response_spec.rb +1 -1
  456. data/spec/models/checkout_subscription_request_spec.rb +1 -1
  457. data/spec/models/coded_error_spec.rb +1 -1
  458. data/spec/models/competitor_detail_spec.rb +1 -1
  459. data/spec/models/competitor_input_spec.rb +1 -1
  460. data/spec/models/competitor_media_spec.rb +1 -1
  461. data/spec/models/competitor_snapshot_spec.rb +1 -1
  462. data/spec/models/competitor_spec.rb +1 -1
  463. data/spec/models/complete_chunked_upload_request_spec.rb +1 -1
  464. data/spec/models/connect_channel_input_spec.rb +1 -1
  465. data/spec/models/connect_link_spec.rb +1 -1
  466. data/spec/models/create_account_group201_response_spec.rb +1 -1
  467. data/spec/models/create_agent201_response_spec.rb +1 -1
  468. data/spec/models/create_api_key201_response_data_spec.rb +1 -1
  469. data/spec/models/create_api_key201_response_spec.rb +1 -1
  470. data/spec/models/create_connect_link_request_spec.rb +1 -1
  471. data/spec/models/create_hashtag_group201_response_spec.rb +1 -1
  472. data/spec/models/create_inbox_reply_draft201_response_spec.rb +1 -1
  473. data/spec/models/create_media_folder_request_spec.rb +1 -1
  474. data/spec/models/create_mention201_response_spec.rb +1 -1
  475. data/spec/models/create_post201_response_spec.rb +1 -1
  476. data/spec/models/create_recycling_rule201_response_spec.rb +1 -1
  477. data/spec/models/create_report_export201_response_spec.rb +1 -1
  478. data/spec/models/create_reseller_client201_response_spec.rb +1 -1
  479. data/spec/models/create_rss_feed201_response_spec.rb +1 -1
  480. data/spec/models/create_template201_response_spec.rb +1 -1
  481. data/spec/models/create_webhook_subscription201_response_data_spec.rb +1 -1
  482. data/spec/models/create_webhook_subscription201_response_spec.rb +1 -1
  483. data/spec/models/delete_agent200_response_spec.rb +1 -1
  484. data/spec/models/delete_media_bulk_request_items_inner_spec.rb +1 -1
  485. data/spec/models/delete_media_bulk_request_spec.rb +1 -1
  486. data/spec/models/delete_media_folder_request_spec.rb +1 -1
  487. data/spec/models/delete_mode_spec.rb +1 -1
  488. data/spec/models/delete_post_request_spec.rb +1 -1
  489. data/spec/models/delete_posts_bulk_request_spec.rb +1 -1
  490. data/spec/models/delete_receipts_bulk_request_spec.rb +1 -1
  491. data/spec/models/delete_result_spec.rb +1 -1
  492. data/spec/models/delete_user400_response_spec.rb +1 -1
  493. data/spec/models/delete_users_bulk_request_spec.rb +1 -1
  494. data/spec/models/delete_workspaces_bulk_request_spec.rb +1 -1
  495. data/spec/models/free_tool_build_utm_url_request_spec.rb +1 -1
  496. data/spec/models/free_tool_build_utm_url_response_spec.rb +1 -1
  497. data/spec/models/free_tool_calculate_aspect_ratio_request_spec.rb +1 -1
  498. data/spec/models/free_tool_calculate_aspect_ratio_response_matches_inner_spec.rb +1 -1
  499. data/spec/models/free_tool_calculate_aspect_ratio_response_rounding_spec.rb +1 -1
  500. data/spec/models/free_tool_calculate_aspect_ratio_response_spec.rb +1 -1
  501. data/spec/models/free_tool_calculate_crop_request_spec.rb +1 -1
  502. data/spec/models/free_tool_calculate_crop_response_crop_spec.rb +1 -1
  503. data/spec/models/free_tool_calculate_crop_response_image_spec.rb +1 -1
  504. data/spec/models/free_tool_calculate_crop_response_output_spec.rb +1 -1
  505. data/spec/models/free_tool_calculate_crop_response_spec.rb +1 -1
  506. data/spec/models/free_tool_calculate_engagement_rate_request_spec.rb +1 -1
  507. data/spec/models/free_tool_calculate_engagement_rate_response_spec.rb +1 -1
  508. data/spec/models/free_tool_check_link_preview_request_spec.rb +1 -1
  509. data/spec/models/free_tool_check_link_preview_response_image_spec.rb +1 -1
  510. data/spec/models/free_tool_check_link_preview_response_previews_value_spec.rb +1 -1
  511. data/spec/models/free_tool_check_link_preview_response_redirects_inner_spec.rb +1 -1
  512. data/spec/models/free_tool_check_link_preview_response_spec.rb +1 -1
  513. data/spec/models/free_tool_check_link_preview_response_tags_spec.rb +1 -1
  514. data/spec/models/free_tool_check_post_request_media_spec.rb +1 -1
  515. data/spec/models/free_tool_check_post_request_spec.rb +1 -1
  516. data/spec/models/free_tool_check_post_response_networks_inner_errors_inner_spec.rb +1 -1
  517. data/spec/models/free_tool_check_post_response_networks_inner_spec.rb +1 -1
  518. data/spec/models/free_tool_check_post_response_spec.rb +1 -1
  519. data/spec/models/free_tool_check_youtube_thumbnail_request_spec.rb +1 -1
  520. data/spec/models/free_tool_check_youtube_thumbnail_response_checks_inner_spec.rb +1 -1
  521. data/spec/models/free_tool_check_youtube_thumbnail_response_spec.rb +1 -1
  522. data/spec/models/free_tool_clean_text_request_spec.rb +1 -1
  523. data/spec/models/free_tool_clean_text_response_changes_inner_spec.rb +1 -1
  524. data/spec/models/free_tool_clean_text_response_flags_inner_spec.rb +1 -1
  525. data/spec/models/free_tool_clean_text_response_spec.rb +1 -1
  526. data/spec/models/free_tool_count_characters_request_spec.rb +1 -1
  527. data/spec/models/free_tool_count_characters_response_networks_inner_spec.rb +1 -1
  528. data/spec/models/free_tool_count_characters_response_spec.rb +1 -1
  529. data/spec/models/free_tool_error_spec.rb +1 -1
  530. data/spec/models/free_tool_format_instagram_caption_request_spec.rb +52 -0
  531. data/spec/models/free_tool_format_instagram_caption_response_spec.rb +66 -0
  532. data/spec/models/free_tool_format_linked_in_post_request_spec.rb +1 -1
  533. data/spec/models/free_tool_format_linked_in_post_response_spec.rb +1 -1
  534. data/spec/models/free_tool_generate_caption_request_spec.rb +1 -1
  535. data/spec/models/free_tool_generate_caption_response_spec.rb +1 -1
  536. data/spec/models/free_tool_generate_fancy_text_request_spec.rb +1 -1
  537. data/spec/models/free_tool_generate_fancy_text_response_spec.rb +1 -1
  538. data/spec/models/free_tool_generate_fancy_text_response_styles_inner_spec.rb +1 -1
  539. data/spec/models/free_tool_generate_hashtags_request_spec.rb +1 -1
  540. data/spec/models/free_tool_generate_hashtags_response_spec.rb +1 -1
  541. data/spec/models/free_tool_generate_hooks_request_spec.rb +1 -1
  542. data/spec/models/free_tool_generate_hooks_response_hooks_inner_spec.rb +1 -1
  543. data/spec/models/free_tool_generate_hooks_response_spec.rb +1 -1
  544. data/spec/models/free_tool_generate_qr_code_request_spec.rb +1 -1
  545. data/spec/models/free_tool_generate_qr_code_request_utm_spec.rb +1 -1
  546. data/spec/models/free_tool_generate_qr_code_response_spec.rb +1 -1
  547. data/spec/models/free_tool_generate_social_posts_from_blog_request_spec.rb +98 -0
  548. data/spec/models/free_tool_generate_social_posts_from_blog_response_posts_inner_spec.rb +64 -0
  549. data/spec/models/free_tool_generate_social_posts_from_blog_response_source_spec.rb +42 -0
  550. data/spec/models/free_tool_generate_social_posts_from_blog_response_spec.rb +54 -0
  551. data/spec/models/free_tool_generate_social_posts_from_blog_response_warnings_inner_spec.rb +48 -0
  552. data/spec/models/free_tool_get_best_times_to_post_response_networks_inner_spec.rb +1 -1
  553. data/spec/models/free_tool_get_best_times_to_post_response_spec.rb +1 -1
  554. data/spec/models/free_tool_get_hook_templates_response_hooks_inner_spec.rb +1 -1
  555. data/spec/models/free_tool_get_hook_templates_response_spec.rb +1 -1
  556. data/spec/models/free_tool_get_image_sizes_response_sizes_inner_spec.rb +1 -1
  557. data/spec/models/free_tool_get_image_sizes_response_sources_inner_spec.rb +1 -1
  558. data/spec/models/free_tool_get_image_sizes_response_spec.rb +1 -1
  559. data/spec/models/free_tool_get_video_specs_response_spec.rb +1 -1
  560. data/spec/models/free_tool_get_video_specs_response_specs_inner_limits_spec.rb +1 -1
  561. data/spec/models/free_tool_get_video_specs_response_specs_inner_spec.rb +1 -1
  562. data/spec/models/free_tool_list_item_spec.rb +1 -1
  563. data/spec/models/free_tool_list_spec.rb +1 -1
  564. data/spec/models/free_tool_preview_post_request_spec.rb +1 -1
  565. data/spec/models/free_tool_preview_post_response_networks_inner_spec.rb +1 -1
  566. data/spec/models/free_tool_preview_post_response_spec.rb +1 -1
  567. data/spec/models/free_tool_split_thread_request_spec.rb +1 -1
  568. data/spec/models/free_tool_split_thread_response_posts_inner_spec.rb +1 -1
  569. data/spec/models/free_tool_split_thread_response_spec.rb +1 -1
  570. data/spec/models/get_account_health200_response_spec.rb +1 -1
  571. data/spec/models/get_brand_voice200_response_spec.rb +1 -1
  572. data/spec/models/get_competitor200_response_spec.rb +1 -1
  573. data/spec/models/get_inbox_conversation200_response_spec.rb +1 -1
  574. data/spec/models/get_posting_schedule200_response_spec.rb +1 -1
  575. data/spec/models/get_remote_upload_status200_response_spec.rb +1 -1
  576. data/spec/models/get_report_branding200_response_spec.rb +1 -1
  577. data/spec/models/get_repurpose_run200_response_spec.rb +1 -1
  578. data/spec/models/guardrail_error_spec.rb +1 -1
  579. data/spec/models/hashtag_group_input_spec.rb +1 -1
  580. data/spec/models/hashtag_group_spec.rb +1 -1
  581. data/spec/models/image_alt_text200_response_spec.rb +1 -1
  582. data/spec/models/image_alt_text_input_spec.rb +1 -1
  583. data/spec/models/image_alt_text_response_spec.rb +1 -1
  584. data/spec/models/image_credit_balance_spec.rb +1 -1
  585. data/spec/models/image_edit_input_spec.rb +1 -1
  586. data/spec/models/image_generate200_response_spec.rb +1 -1
  587. data/spec/models/image_generate429_response_spec.rb +1 -1
  588. data/spec/models/image_generate_input_spec.rb +1 -1
  589. data/spec/models/image_generation_response_spec.rb +1 -1
  590. data/spec/models/image_prompt200_response_spec.rb +1 -1
  591. data/spec/models/image_prompt429_response_spec.rb +1 -1
  592. data/spec/models/image_prompt_input_spec.rb +1 -1
  593. data/spec/models/image_prompt_response_spec.rb +1 -1
  594. data/spec/models/image_variations200_response_spec.rb +1 -1
  595. data/spec/models/image_variations_input_spec.rb +1 -1
  596. data/spec/models/image_variations_response_spec.rb +1 -1
  597. data/spec/models/inbox_author_spec.rb +1 -1
  598. data/spec/models/inbox_conversation_account_spec.rb +1 -1
  599. data/spec/models/inbox_conversation_spec.rb +1 -1
  600. data/spec/models/inbox_conversation_update_spec.rb +1 -1
  601. data/spec/models/inbox_message_author_spec.rb +1 -1
  602. data/spec/models/inbox_message_spec.rb +1 -1
  603. data/spec/models/inbox_reply_draft_approve_spec.rb +1 -1
  604. data/spec/models/inbox_reply_draft_edit_spec.rb +1 -1
  605. data/spec/models/inbox_reply_draft_input_spec.rb +1 -1
  606. data/spec/models/inbox_reply_draft_spec.rb +1 -1
  607. data/spec/models/initiate_chunked_upload201_response_spec.rb +1 -1
  608. data/spec/models/initiate_chunked_upload_request_spec.rb +1 -1
  609. data/spec/models/initiate_remote_upload201_response_one_of_spec.rb +1 -1
  610. data/spec/models/initiate_remote_upload201_response_spec.rb +1 -1
  611. data/spec/models/initiate_remote_upload_request_spec.rb +1 -1
  612. data/spec/models/learn_brand_voice_input_spec.rb +1 -1
  613. data/spec/models/learn_brand_voice_response_meta_spec.rb +1 -1
  614. data/spec/models/learn_brand_voice_response_spec.rb +1 -1
  615. data/spec/models/list_account_groups200_response_spec.rb +1 -1
  616. data/spec/models/list_accounts200_response_spec.rb +1 -1
  617. data/spec/models/list_agent_proposals200_response_spec.rb +1 -1
  618. data/spec/models/list_agent_runs200_response_spec.rb +1 -1
  619. data/spec/models/list_agents200_response_spec.rb +1 -1
  620. data/spec/models/list_api_activity200_response_spec.rb +1 -1
  621. data/spec/models/list_api_keys200_response_spec.rb +1 -1
  622. data/spec/models/list_competitors200_response_spec.rb +1 -1
  623. data/spec/models/list_hashtag_groups200_response_spec.rb +1 -1
  624. data/spec/models/list_inbox_conversations200_response_spec.rb +1 -1
  625. data/spec/models/list_inbox_reply_drafts200_response_spec.rb +1 -1
  626. data/spec/models/list_media200_response_spec.rb +1 -1
  627. data/spec/models/list_media_folders200_response_spec.rb +1 -1
  628. data/spec/models/list_mentions200_response_spec.rb +1 -1
  629. data/spec/models/list_my_workspaces200_response_spec.rb +1 -1
  630. data/spec/models/list_posts200_response_spec.rb +1 -1
  631. data/spec/models/list_receipts200_response_spec.rb +1 -1
  632. data/spec/models/list_recycling_rules200_response_spec.rb +1 -1
  633. data/spec/models/list_recycling_runs200_response_spec.rb +1 -1
  634. data/spec/models/list_report_exports200_response_spec.rb +1 -1
  635. data/spec/models/list_reseller_clients200_response_spec.rb +1 -1
  636. data/spec/models/list_rss_feeds200_response_spec.rb +1 -1
  637. data/spec/models/list_tags200_response_spec.rb +1 -1
  638. data/spec/models/list_templates200_response_spec.rb +1 -1
  639. data/spec/models/list_users200_response_spec.rb +1 -1
  640. data/spec/models/list_webhook_subscriptions200_response_spec.rb +1 -1
  641. data/spec/models/list_workspaces200_response_spec.rb +1 -1
  642. data/spec/models/media_base64_input_spec.rb +1 -1
  643. data/spec/models/media_folder_input_spec.rb +1 -1
  644. data/spec/models/media_folder_ref_spec.rb +1 -1
  645. data/spec/models/media_folder_spec.rb +1 -1
  646. data/spec/models/media_spec.rb +1 -1
  647. data/spec/models/mention_identity_input_spec.rb +1 -1
  648. data/spec/models/mention_identity_spec.rb +1 -1
  649. data/spec/models/mention_input_spec.rb +1 -1
  650. data/spec/models/mention_spec.rb +1 -1
  651. data/spec/models/message_only_spec.rb +1 -1
  652. data/spec/models/pagination_meta_links_spec.rb +1 -1
  653. data/spec/models/pagination_meta_meta_spec.rb +1 -1
  654. data/spec/models/pagination_meta_spec.rb +1 -1
  655. data/spec/models/poll_rss_feed200_response_spec.rb +1 -1
  656. data/spec/models/post_analytics_spec.rb +1 -1
  657. data/spec/models/post_content_spec.rb +1 -1
  658. data/spec/models/post_input_spec.rb +1 -1
  659. data/spec/models/post_options_instagram_spec.rb +1 -1
  660. data/spec/models/post_options_tik_tok_spec.rb +1 -1
  661. data/spec/models/post_options_youtube_spec.rb +1 -1
  662. data/spec/models/post_spec.rb +1 -1
  663. data/spec/models/post_status_spec.rb +1 -1
  664. data/spec/models/post_version_options_spec.rb +1 -1
  665. data/spec/models/post_version_spec.rb +1 -1
  666. data/spec/models/post_warning_spec.rb +1 -1
  667. data/spec/models/post_warnings_spec.rb +1 -1
  668. data/spec/models/posting_schedule_day_spec.rb +1 -1
  669. data/spec/models/posting_schedule_day_times_inner_spec.rb +1 -1
  670. data/spec/models/posting_schedule_input_spec.rb +1 -1
  671. data/spec/models/posting_schedule_spec.rb +1 -1
  672. data/spec/models/posting_time_slot_spec.rb +1 -1
  673. data/spec/models/posting_times_best_inner_spec.rb +1 -1
  674. data/spec/models/posting_times_day_intervals_inner_inner_spec.rb +1 -1
  675. data/spec/models/posting_times_days_inner_spec.rb +1 -1
  676. data/spec/models/posting_times_spec.rb +1 -1
  677. data/spec/models/preflight_result_spec.rb +1 -1
  678. data/spec/models/public_workspace_pivot_spec.rb +1 -1
  679. data/spec/models/public_workspace_spec.rb +1 -1
  680. data/spec/models/publish_progress_spec.rb +1 -1
  681. data/spec/models/queue_slots_spec.rb +1 -1
  682. data/spec/models/receipt_input_spec.rb +1 -1
  683. data/spec/models/receipt_spec.rb +1 -1
  684. data/spec/models/receipt_update_input_spec.rb +1 -1
  685. data/spec/models/recommended_posting_times_spec.rb +1 -1
  686. data/spec/models/reconnect_link_spec.rb +1 -1
  687. data/spec/models/recycling_rule_input_spec.rb +1 -1
  688. data/spec/models/recycling_rule_settings_spec.rb +1 -1
  689. data/spec/models/recycling_rule_spec.rb +1 -1
  690. data/spec/models/recycling_rule_update_spec.rb +1 -1
  691. data/spec/models/recycling_run_spec.rb +1 -1
  692. data/spec/models/remove_generic_subscription422_response_spec.rb +1 -1
  693. data/spec/models/remove_user_from_workspace_request_spec.rb +1 -1
  694. data/spec/models/report_branding_input_spec.rb +1 -1
  695. data/spec/models/report_branding_spec.rb +1 -1
  696. data/spec/models/report_export_input_spec.rb +1 -1
  697. data/spec/models/report_export_spec.rb +1 -1
  698. data/spec/models/repurpose_content200_response_spec.rb +1 -1
  699. data/spec/models/repurpose_content202_response_spec.rb +1 -1
  700. data/spec/models/repurpose_content500_response_spec.rb +1 -1
  701. data/spec/models/repurpose_input_spec.rb +1 -1
  702. data/spec/models/repurpose_input_theme_spec.rb +1 -1
  703. data/spec/models/repurpose_result_media_spec.rb +1 -1
  704. data/spec/models/repurpose_result_source_spec.rb +1 -1
  705. data/spec/models/repurpose_result_spec.rb +1 -1
  706. data/spec/models/repurpose_run_accepted_spec.rb +1 -1
  707. data/spec/models/repurpose_run_spec.rb +1 -1
  708. data/spec/models/repurpose_slide_spec.rb +1 -1
  709. data/spec/models/reseller_client_input_spec.rb +1 -1
  710. data/spec/models/reseller_client_spec.rb +1 -1
  711. data/spec/models/reseller_client_usage_spec.rb +1 -1
  712. data/spec/models/retry_post_account_result_spec.rb +1 -1
  713. data/spec/models/rss_feed_input_spec.rb +1 -1
  714. data/spec/models/rss_feed_spec.rb +1 -1
  715. data/spec/models/rss_feed_update_spec.rb +1 -1
  716. data/spec/models/run_agent202_response_spec.rb +1 -1
  717. data/spec/models/schedule_post_request_spec.rb +1 -1
  718. data/spec/models/schedule_result_spec.rb +1 -1
  719. data/spec/models/subscription_input_spec.rb +1 -1
  720. data/spec/models/subscription_spec.rb +1 -1
  721. data/spec/models/subscription_status_spec.rb +1 -1
  722. data/spec/models/subscription_update_input_spec.rb +1 -1
  723. data/spec/models/tag_input_spec.rb +1 -1
  724. data/spec/models/tag_spec.rb +1 -1
  725. data/spec/models/template_content_item_spec.rb +1 -1
  726. data/spec/models/template_input_content_inner_spec.rb +1 -1
  727. data/spec/models/template_input_spec.rb +1 -1
  728. data/spec/models/template_spec.rb +1 -1
  729. data/spec/models/update_media_request_spec.rb +1 -1
  730. data/spec/models/update_post200_response_spec.rb +1 -1
  731. data/spec/models/upload_chunk201_response_spec.rb +1 -1
  732. data/spec/models/user_input_spec.rb +1 -1
  733. data/spec/models/user_spec.rb +1 -1
  734. data/spec/models/user_update_input_spec.rb +1 -1
  735. data/spec/models/webhook_envelope_spec.rb +1 -1
  736. data/spec/models/webhook_event_name_spec.rb +1 -1
  737. data/spec/models/webhook_event_payload_spec.rb +1 -1
  738. data/spec/models/webhook_subscription_input_spec.rb +1 -1
  739. data/spec/models/webhook_subscription_spec.rb +1 -1
  740. data/spec/models/workspace_agent_input_spec.rb +1 -1
  741. data/spec/models/workspace_agent_settings_spec.rb +1 -1
  742. data/spec/models/workspace_agent_spec.rb +1 -1
  743. data/spec/models/workspace_agent_update_spec.rb +1 -1
  744. data/spec/models/workspace_input_spec.rb +1 -1
  745. data/spec/models/workspace_spec.rb +1 -1
  746. data/spec/models/workspace_user_input_spec.rb +1 -1
  747. data/spec/models/x_usage_counter_spec.rb +1 -1
  748. data/spec/models/x_usage_spec.rb +1 -1
  749. data/spec/spec_helper.rb +1 -1
  750. metadata +29 -1
@@ -0,0 +1,446 @@
1
+ =begin
2
+ #PostBoost API
3
+
4
+ #The PostBoost REST API lets you publish, schedule, and analyze social media posts on every supported network 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.42.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 FreeToolGenerateSocialPostsFromBlogRequest
18
+ # Public http(s) address of the blog post. Give `url` or `text`.
19
+ attr_accessor :url
20
+
21
+ # The blog post itself, instead of `url`.
22
+ attr_accessor :text
23
+
24
+ # Networks to write for, at most 4 per call (one AI credit each).
25
+ attr_accessor :platforms
26
+
27
+ attr_accessor :tone
28
+
29
+ attr_accessor :length
30
+
31
+ # How many hashtags to include.
32
+ attr_accessor :hashtags
33
+
34
+ # Call to action to end with.
35
+ attr_accessor :cta
36
+
37
+ # UUID of the workspace whose AI credits pay for the call. Default: your active workspace (a scoped API key: its own workspace).
38
+ attr_accessor :workspace
39
+
40
+ class EnumAttributeValidator
41
+ attr_reader :datatype
42
+ attr_reader :allowable_values
43
+
44
+ def initialize(datatype, allowable_values)
45
+ @allowable_values = allowable_values.map do |value|
46
+ case datatype.to_s
47
+ when /Integer/i
48
+ value.to_i
49
+ when /Float/i
50
+ value.to_f
51
+ else
52
+ value
53
+ end
54
+ end
55
+ end
56
+
57
+ def valid?(value)
58
+ !value || allowable_values.include?(value)
59
+ end
60
+ end
61
+
62
+ # Attribute mapping from ruby-style variable name to JSON key.
63
+ def self.attribute_map
64
+ {
65
+ :'url' => :'url',
66
+ :'text' => :'text',
67
+ :'platforms' => :'platforms',
68
+ :'tone' => :'tone',
69
+ :'length' => :'length',
70
+ :'hashtags' => :'hashtags',
71
+ :'cta' => :'cta',
72
+ :'workspace' => :'workspace'
73
+ }
74
+ end
75
+
76
+ # Returns all the JSON keys this model knows about
77
+ def self.acceptable_attributes
78
+ attribute_map.values
79
+ end
80
+
81
+ # Attribute type mapping.
82
+ def self.openapi_types
83
+ {
84
+ :'url' => :'String',
85
+ :'text' => :'String',
86
+ :'platforms' => :'Array<String>',
87
+ :'tone' => :'String',
88
+ :'length' => :'String',
89
+ :'hashtags' => :'String',
90
+ :'cta' => :'String',
91
+ :'workspace' => :'String'
92
+ }
93
+ end
94
+
95
+ # List of attributes with nullable: true
96
+ def self.openapi_nullable
97
+ Set.new([
98
+ ])
99
+ end
100
+
101
+ # Initializes the object
102
+ # @param [Hash] attributes Model attributes in the form of hash
103
+ def initialize(attributes = {})
104
+ if (!attributes.is_a?(Hash))
105
+ fail ArgumentError, "The input argument (attributes) must be a hash in `PostBoost::FreeToolGenerateSocialPostsFromBlogRequest` initialize method"
106
+ end
107
+
108
+ # check to see if the attribute exists and convert string to symbol for hash key
109
+ attributes = attributes.each_with_object({}) { |(k, v), h|
110
+ if (!self.class.attribute_map.key?(k.to_sym))
111
+ fail ArgumentError, "`#{k}` is not a valid attribute in `PostBoost::FreeToolGenerateSocialPostsFromBlogRequest`. Please check the name to make sure it's valid. List of attributes: " + self.class.attribute_map.keys.inspect
112
+ end
113
+ h[k.to_sym] = v
114
+ }
115
+
116
+ if attributes.key?(:'url')
117
+ self.url = attributes[:'url']
118
+ end
119
+
120
+ if attributes.key?(:'text')
121
+ self.text = attributes[:'text']
122
+ end
123
+
124
+ if attributes.key?(:'platforms')
125
+ if (value = attributes[:'platforms']).is_a?(Array)
126
+ self.platforms = value
127
+ end
128
+ else
129
+ self.platforms = nil
130
+ end
131
+
132
+ if attributes.key?(:'tone')
133
+ self.tone = attributes[:'tone']
134
+ else
135
+ self.tone = 'casual'
136
+ end
137
+
138
+ if attributes.key?(:'length')
139
+ self.length = attributes[:'length']
140
+ else
141
+ self.length = 'short'
142
+ end
143
+
144
+ if attributes.key?(:'hashtags')
145
+ self.hashtags = attributes[:'hashtags']
146
+ else
147
+ self.hashtags = 'no'
148
+ end
149
+
150
+ if attributes.key?(:'cta')
151
+ self.cta = attributes[:'cta']
152
+ else
153
+ self.cta = 'no'
154
+ end
155
+
156
+ if attributes.key?(:'workspace')
157
+ self.workspace = attributes[:'workspace']
158
+ end
159
+ end
160
+
161
+ # Show invalid properties with the reasons. Usually used together with valid?
162
+ # @return Array for valid properties with the reasons
163
+ def list_invalid_properties
164
+ warn '[DEPRECATED] the `list_invalid_properties` method is obsolete'
165
+ invalid_properties = Array.new
166
+ if !@url.nil? && @url.to_s.length > 2048
167
+ invalid_properties.push('invalid value for "url", the character length must be smaller than or equal to 2048.')
168
+ end
169
+
170
+ if !@text.nil? && @text.to_s.length > 20000
171
+ invalid_properties.push('invalid value for "text", the character length must be smaller than or equal to 20000.')
172
+ end
173
+
174
+ if !@text.nil? && @text.to_s.length < 1
175
+ invalid_properties.push('invalid value for "text", the character length must be great than or equal to 1.')
176
+ end
177
+
178
+ if @platforms.nil?
179
+ invalid_properties.push('invalid value for "platforms", platforms cannot be nil.')
180
+ end
181
+
182
+ if @platforms.length > 4
183
+ invalid_properties.push('invalid value for "platforms", number of items must be less than or equal to 4.')
184
+ end
185
+
186
+ if @platforms.length < 1
187
+ invalid_properties.push('invalid value for "platforms", number of items must be greater than or equal to 1.')
188
+ end
189
+
190
+ if !@workspace.nil? && @workspace.to_s.length > 64
191
+ invalid_properties.push('invalid value for "workspace", the character length must be smaller than or equal to 64.')
192
+ end
193
+
194
+ invalid_properties
195
+ end
196
+
197
+ # Check to see if the all the properties in the model are valid
198
+ # @return true if the model is valid
199
+ def valid?
200
+ warn '[DEPRECATED] the `valid?` method is obsolete'
201
+ return false if !@url.nil? && @url.to_s.length > 2048
202
+ return false if !@text.nil? && @text.to_s.length > 20000
203
+ return false if !@text.nil? && @text.to_s.length < 1
204
+ return false if @platforms.nil?
205
+ return false if @platforms.length > 4
206
+ return false if @platforms.length < 1
207
+ tone_validator = EnumAttributeValidator.new('String', ["casual", "professional", "humorous", "formal", "friendly", "conversational", "informative", "inspirational", "playful", "authoritative", "empathetic", "persuasive", "sarcastic", "trendy", "neutral", "excited", "calm", "bold", "energetic", "encouraging"])
208
+ return false unless tone_validator.valid?(@tone)
209
+ length_validator = EnumAttributeValidator.new('String', ["short", "medium", "long"])
210
+ return false unless length_validator.valid?(@length)
211
+ hashtags_validator = EnumAttributeValidator.new('String', ["no", "few", "some", "many"])
212
+ return false unless hashtags_validator.valid?(@hashtags)
213
+ cta_validator = EnumAttributeValidator.new('String', ["no", "question", "link", "subscribe", "follow", "share", "learn more", "signup", "buy", "download"])
214
+ return false unless cta_validator.valid?(@cta)
215
+ return false if !@workspace.nil? && @workspace.to_s.length > 64
216
+ true
217
+ end
218
+
219
+ # Custom attribute writer method with validation
220
+ # @param [Object] url Value to be assigned
221
+ def url=(url)
222
+ if url.nil?
223
+ fail ArgumentError, 'url cannot be nil'
224
+ end
225
+
226
+ if url.to_s.length > 2048
227
+ fail ArgumentError, 'invalid value for "url", the character length must be smaller than or equal to 2048.'
228
+ end
229
+
230
+ @url = url
231
+ end
232
+
233
+ # Custom attribute writer method with validation
234
+ # @param [Object] text Value to be assigned
235
+ def text=(text)
236
+ if text.nil?
237
+ fail ArgumentError, 'text cannot be nil'
238
+ end
239
+
240
+ if text.to_s.length > 20000
241
+ fail ArgumentError, 'invalid value for "text", the character length must be smaller than or equal to 20000.'
242
+ end
243
+
244
+ if text.to_s.length < 1
245
+ fail ArgumentError, 'invalid value for "text", the character length must be great than or equal to 1.'
246
+ end
247
+
248
+ @text = text
249
+ end
250
+
251
+ # Custom attribute writer method checking allowed values (enum).
252
+ # @param [Object] tone Object to be assigned
253
+ def tone=(tone)
254
+ validator = EnumAttributeValidator.new('String', ["casual", "professional", "humorous", "formal", "friendly", "conversational", "informative", "inspirational", "playful", "authoritative", "empathetic", "persuasive", "sarcastic", "trendy", "neutral", "excited", "calm", "bold", "energetic", "encouraging"])
255
+ unless validator.valid?(tone)
256
+ fail ArgumentError, "invalid value for \"tone\", must be one of #{validator.allowable_values}."
257
+ end
258
+ @tone = tone
259
+ end
260
+
261
+ # Custom attribute writer method checking allowed values (enum).
262
+ # @param [Object] length Object to be assigned
263
+ def length=(length)
264
+ validator = EnumAttributeValidator.new('String', ["short", "medium", "long"])
265
+ unless validator.valid?(length)
266
+ fail ArgumentError, "invalid value for \"length\", must be one of #{validator.allowable_values}."
267
+ end
268
+ @length = length
269
+ end
270
+
271
+ # Custom attribute writer method checking allowed values (enum).
272
+ # @param [Object] hashtags Object to be assigned
273
+ def hashtags=(hashtags)
274
+ validator = EnumAttributeValidator.new('String', ["no", "few", "some", "many"])
275
+ unless validator.valid?(hashtags)
276
+ fail ArgumentError, "invalid value for \"hashtags\", must be one of #{validator.allowable_values}."
277
+ end
278
+ @hashtags = hashtags
279
+ end
280
+
281
+ # Custom attribute writer method checking allowed values (enum).
282
+ # @param [Object] cta Object to be assigned
283
+ def cta=(cta)
284
+ validator = EnumAttributeValidator.new('String', ["no", "question", "link", "subscribe", "follow", "share", "learn more", "signup", "buy", "download"])
285
+ unless validator.valid?(cta)
286
+ fail ArgumentError, "invalid value for \"cta\", must be one of #{validator.allowable_values}."
287
+ end
288
+ @cta = cta
289
+ end
290
+
291
+ # Custom attribute writer method with validation
292
+ # @param [Object] workspace Value to be assigned
293
+ def workspace=(workspace)
294
+ if workspace.nil?
295
+ fail ArgumentError, 'workspace cannot be nil'
296
+ end
297
+
298
+ if workspace.to_s.length > 64
299
+ fail ArgumentError, 'invalid value for "workspace", the character length must be smaller than or equal to 64.'
300
+ end
301
+
302
+ @workspace = workspace
303
+ end
304
+
305
+ # Checks equality by comparing each attribute.
306
+ # @param [Object] Object to be compared
307
+ def ==(o)
308
+ return true if self.equal?(o)
309
+ self.class == o.class &&
310
+ url == o.url &&
311
+ text == o.text &&
312
+ platforms == o.platforms &&
313
+ tone == o.tone &&
314
+ length == o.length &&
315
+ hashtags == o.hashtags &&
316
+ cta == o.cta &&
317
+ workspace == o.workspace
318
+ end
319
+
320
+ # @see the `==` method
321
+ # @param [Object] Object to be compared
322
+ def eql?(o)
323
+ self == o
324
+ end
325
+
326
+ # Calculates hash code according to all attributes.
327
+ # @return [Integer] Hash code
328
+ def hash
329
+ [url, text, platforms, tone, length, hashtags, cta, workspace].hash
330
+ end
331
+
332
+ # Builds the object from hash
333
+ # @param [Hash] attributes Model attributes in the form of hash
334
+ # @return [Object] Returns the model itself
335
+ def self.build_from_hash(attributes)
336
+ return nil unless attributes.is_a?(Hash)
337
+ attributes = attributes.transform_keys(&:to_sym)
338
+ transformed_hash = {}
339
+ openapi_types.each_pair do |key, type|
340
+ if attributes.key?(attribute_map[key]) && attributes[attribute_map[key]].nil?
341
+ transformed_hash["#{key}"] = nil
342
+ elsif type =~ /\AArray<(.*)>/i
343
+ # check to ensure the input is an array given that the attribute
344
+ # is documented as an array but the input is not
345
+ if attributes[attribute_map[key]].is_a?(Array)
346
+ transformed_hash["#{key}"] = attributes[attribute_map[key]].map { |v| _deserialize($1, v) }
347
+ end
348
+ elsif !attributes[attribute_map[key]].nil?
349
+ transformed_hash["#{key}"] = _deserialize(type, attributes[attribute_map[key]])
350
+ end
351
+ end
352
+ new(transformed_hash)
353
+ end
354
+
355
+ # Deserializes the data based on type
356
+ # @param string type Data type
357
+ # @param string value Value to be deserialized
358
+ # @return [Object] Deserialized data
359
+ def self._deserialize(type, value)
360
+ case type.to_sym
361
+ when :Time
362
+ Time.parse(value)
363
+ when :Date
364
+ Date.parse(value)
365
+ when :String
366
+ value.to_s
367
+ when :Integer
368
+ value.to_i
369
+ when :Float
370
+ value.to_f
371
+ when :Boolean
372
+ if value.to_s =~ /\A(true|t|yes|y|1)\z/i
373
+ true
374
+ else
375
+ false
376
+ end
377
+ when :Object
378
+ # generic object (usually a Hash), return directly
379
+ value
380
+ when /\AArray<(?<inner_type>.+)>\z/
381
+ inner_type = Regexp.last_match[:inner_type]
382
+ value.map { |v| _deserialize(inner_type, v) }
383
+ when /\AHash<(?<k_type>.+?), (?<v_type>.+)>\z/
384
+ k_type = Regexp.last_match[:k_type]
385
+ v_type = Regexp.last_match[:v_type]
386
+ {}.tap do |hash|
387
+ value.each do |k, v|
388
+ hash[_deserialize(k_type, k)] = _deserialize(v_type, v)
389
+ end
390
+ end
391
+ else # model
392
+ # models (e.g. Pet) or oneOf
393
+ klass = PostBoost.const_get(type)
394
+ klass.respond_to?(:openapi_any_of) || klass.respond_to?(:openapi_one_of) ? klass.build(value) : klass.build_from_hash(value)
395
+ end
396
+ end
397
+
398
+ # Returns the string representation of the object
399
+ # @return [String] String presentation of the object
400
+ def to_s
401
+ to_hash.to_s
402
+ end
403
+
404
+ # to_body is an alias to to_hash (backward compatibility)
405
+ # @return [Hash] Returns the object in the form of hash
406
+ def to_body
407
+ to_hash
408
+ end
409
+
410
+ # Returns the object in the form of hash
411
+ # @return [Hash] Returns the object in the form of hash
412
+ def to_hash
413
+ hash = {}
414
+ self.class.attribute_map.each_pair do |attr, param|
415
+ value = self.send(attr)
416
+ if value.nil?
417
+ is_nullable = self.class.openapi_nullable.include?(attr)
418
+ next if !is_nullable || (is_nullable && !instance_variable_defined?(:"@#{attr}"))
419
+ end
420
+
421
+ hash[param] = _to_hash(value)
422
+ end
423
+ hash
424
+ end
425
+
426
+ # Outputs non-array value in the form of hash
427
+ # For object, use to_hash. Otherwise, just return the value
428
+ # @param [Object] value Any valid value
429
+ # @return [Hash] Returns the value in the form of hash
430
+ def _to_hash(value)
431
+ if value.is_a?(Array)
432
+ value.compact.map { |v| _to_hash(v) }
433
+ elsif value.is_a?(Hash)
434
+ {}.tap do |hash|
435
+ value.each { |k, v| hash[k] = _to_hash(v) }
436
+ end
437
+ elsif value.respond_to? :to_hash
438
+ value.to_hash
439
+ else
440
+ value
441
+ end
442
+ end
443
+
444
+ end
445
+
446
+ end
@@ -0,0 +1,247 @@
1
+ =begin
2
+ #PostBoost API
3
+
4
+ #The PostBoost REST API lets you publish, schedule, and analyze social media posts on every supported network 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.42.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 FreeToolGenerateSocialPostsFromBlogResponse
18
+ # One post per platform that came back, in the order asked.
19
+ attr_accessor :posts
20
+
21
+ attr_accessor :source
22
+
23
+ attr_accessor :warnings
24
+
25
+ # AI credits this call took from the workspace: one per post.
26
+ attr_accessor :credits_spent
27
+
28
+ # Attribute mapping from ruby-style variable name to JSON key.
29
+ def self.attribute_map
30
+ {
31
+ :'posts' => :'posts',
32
+ :'source' => :'source',
33
+ :'warnings' => :'warnings',
34
+ :'credits_spent' => :'credits_spent'
35
+ }
36
+ end
37
+
38
+ # Returns all the JSON keys this model knows about
39
+ def self.acceptable_attributes
40
+ attribute_map.values
41
+ end
42
+
43
+ # Attribute type mapping.
44
+ def self.openapi_types
45
+ {
46
+ :'posts' => :'Array<FreeToolGenerateSocialPostsFromBlogResponsePostsInner>',
47
+ :'source' => :'FreeToolGenerateSocialPostsFromBlogResponseSource',
48
+ :'warnings' => :'Array<FreeToolGenerateSocialPostsFromBlogResponseWarningsInner>',
49
+ :'credits_spent' => :'Integer'
50
+ }
51
+ end
52
+
53
+ # List of attributes with nullable: true
54
+ def self.openapi_nullable
55
+ Set.new([
56
+ ])
57
+ end
58
+
59
+ # Initializes the object
60
+ # @param [Hash] attributes Model attributes in the form of hash
61
+ def initialize(attributes = {})
62
+ if (!attributes.is_a?(Hash))
63
+ fail ArgumentError, "The input argument (attributes) must be a hash in `PostBoost::FreeToolGenerateSocialPostsFromBlogResponse` initialize method"
64
+ end
65
+
66
+ # check to see if the attribute exists and convert string to symbol for hash key
67
+ attributes = attributes.each_with_object({}) { |(k, v), h|
68
+ if (!self.class.attribute_map.key?(k.to_sym))
69
+ fail ArgumentError, "`#{k}` is not a valid attribute in `PostBoost::FreeToolGenerateSocialPostsFromBlogResponse`. Please check the name to make sure it's valid. List of attributes: " + self.class.attribute_map.keys.inspect
70
+ end
71
+ h[k.to_sym] = v
72
+ }
73
+
74
+ if attributes.key?(:'posts')
75
+ if (value = attributes[:'posts']).is_a?(Array)
76
+ self.posts = value
77
+ end
78
+ end
79
+
80
+ if attributes.key?(:'source')
81
+ self.source = attributes[:'source']
82
+ end
83
+
84
+ if attributes.key?(:'warnings')
85
+ if (value = attributes[:'warnings']).is_a?(Array)
86
+ self.warnings = value
87
+ end
88
+ end
89
+
90
+ if attributes.key?(:'credits_spent')
91
+ self.credits_spent = attributes[:'credits_spent']
92
+ end
93
+ end
94
+
95
+ # Show invalid properties with the reasons. Usually used together with valid?
96
+ # @return Array for valid properties with the reasons
97
+ def list_invalid_properties
98
+ warn '[DEPRECATED] the `list_invalid_properties` method is obsolete'
99
+ invalid_properties = Array.new
100
+ invalid_properties
101
+ end
102
+
103
+ # Check to see if the all the properties in the model are valid
104
+ # @return true if the model is valid
105
+ def valid?
106
+ warn '[DEPRECATED] the `valid?` method is obsolete'
107
+ true
108
+ end
109
+
110
+ # Checks equality by comparing each attribute.
111
+ # @param [Object] Object to be compared
112
+ def ==(o)
113
+ return true if self.equal?(o)
114
+ self.class == o.class &&
115
+ posts == o.posts &&
116
+ source == o.source &&
117
+ warnings == o.warnings &&
118
+ credits_spent == o.credits_spent
119
+ end
120
+
121
+ # @see the `==` method
122
+ # @param [Object] Object to be compared
123
+ def eql?(o)
124
+ self == o
125
+ end
126
+
127
+ # Calculates hash code according to all attributes.
128
+ # @return [Integer] Hash code
129
+ def hash
130
+ [posts, source, warnings, credits_spent].hash
131
+ end
132
+
133
+ # Builds the object from hash
134
+ # @param [Hash] attributes Model attributes in the form of hash
135
+ # @return [Object] Returns the model itself
136
+ def self.build_from_hash(attributes)
137
+ return nil unless attributes.is_a?(Hash)
138
+ attributes = attributes.transform_keys(&:to_sym)
139
+ transformed_hash = {}
140
+ openapi_types.each_pair do |key, type|
141
+ if attributes.key?(attribute_map[key]) && attributes[attribute_map[key]].nil?
142
+ transformed_hash["#{key}"] = nil
143
+ elsif type =~ /\AArray<(.*)>/i
144
+ # check to ensure the input is an array given that the attribute
145
+ # is documented as an array but the input is not
146
+ if attributes[attribute_map[key]].is_a?(Array)
147
+ transformed_hash["#{key}"] = attributes[attribute_map[key]].map { |v| _deserialize($1, v) }
148
+ end
149
+ elsif !attributes[attribute_map[key]].nil?
150
+ transformed_hash["#{key}"] = _deserialize(type, attributes[attribute_map[key]])
151
+ end
152
+ end
153
+ new(transformed_hash)
154
+ end
155
+
156
+ # Deserializes the data based on type
157
+ # @param string type Data type
158
+ # @param string value Value to be deserialized
159
+ # @return [Object] Deserialized data
160
+ def self._deserialize(type, value)
161
+ case type.to_sym
162
+ when :Time
163
+ Time.parse(value)
164
+ when :Date
165
+ Date.parse(value)
166
+ when :String
167
+ value.to_s
168
+ when :Integer
169
+ value.to_i
170
+ when :Float
171
+ value.to_f
172
+ when :Boolean
173
+ if value.to_s =~ /\A(true|t|yes|y|1)\z/i
174
+ true
175
+ else
176
+ false
177
+ end
178
+ when :Object
179
+ # generic object (usually a Hash), return directly
180
+ value
181
+ when /\AArray<(?<inner_type>.+)>\z/
182
+ inner_type = Regexp.last_match[:inner_type]
183
+ value.map { |v| _deserialize(inner_type, v) }
184
+ when /\AHash<(?<k_type>.+?), (?<v_type>.+)>\z/
185
+ k_type = Regexp.last_match[:k_type]
186
+ v_type = Regexp.last_match[:v_type]
187
+ {}.tap do |hash|
188
+ value.each do |k, v|
189
+ hash[_deserialize(k_type, k)] = _deserialize(v_type, v)
190
+ end
191
+ end
192
+ else # model
193
+ # models (e.g. Pet) or oneOf
194
+ klass = PostBoost.const_get(type)
195
+ klass.respond_to?(:openapi_any_of) || klass.respond_to?(:openapi_one_of) ? klass.build(value) : klass.build_from_hash(value)
196
+ end
197
+ end
198
+
199
+ # Returns the string representation of the object
200
+ # @return [String] String presentation of the object
201
+ def to_s
202
+ to_hash.to_s
203
+ end
204
+
205
+ # to_body is an alias to to_hash (backward compatibility)
206
+ # @return [Hash] Returns the object in the form of hash
207
+ def to_body
208
+ to_hash
209
+ end
210
+
211
+ # Returns the object in the form of hash
212
+ # @return [Hash] Returns the object in the form of hash
213
+ def to_hash
214
+ hash = {}
215
+ self.class.attribute_map.each_pair do |attr, param|
216
+ value = self.send(attr)
217
+ if value.nil?
218
+ is_nullable = self.class.openapi_nullable.include?(attr)
219
+ next if !is_nullable || (is_nullable && !instance_variable_defined?(:"@#{attr}"))
220
+ end
221
+
222
+ hash[param] = _to_hash(value)
223
+ end
224
+ hash
225
+ end
226
+
227
+ # Outputs non-array value in the form of hash
228
+ # For object, use to_hash. Otherwise, just return the value
229
+ # @param [Object] value Any valid value
230
+ # @return [Hash] Returns the value in the form of hash
231
+ def _to_hash(value)
232
+ if value.is_a?(Array)
233
+ value.compact.map { |v| _to_hash(v) }
234
+ elsif value.is_a?(Hash)
235
+ {}.tap do |hash|
236
+ value.each { |k, v| hash[k] = _to_hash(v) }
237
+ end
238
+ elsif value.respond_to? :to_hash
239
+ value.to_hash
240
+ else
241
+ value
242
+ end
243
+ end
244
+
245
+ end
246
+
247
+ end