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