postboost 1.0.0 → 1.8.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (364) hide show
  1. checksums.yaml +4 -4
  2. data/README.md +119 -0
  3. data/docs/AIApi.md +439 -0
  4. data/docs/AICredits.md +22 -0
  5. data/docs/Account.md +14 -8
  6. data/docs/AccountAnalytics.md +28 -0
  7. data/docs/AccountAnalyticsInitialSync.md +20 -0
  8. data/docs/AccountSchedule.md +22 -0
  9. data/docs/AccountsApi.md +15 -5
  10. data/docs/AddPostToQueueRequest.md +18 -0
  11. data/docs/AnalyticsApi.md +401 -0
  12. data/docs/AnalyticsPeriod.md +24 -0
  13. data/docs/AnalyticsSummary.md +20 -0
  14. data/docs/AnalyticsSummaryData.md +38 -0
  15. data/docs/ApprovePostRequest.md +24 -0
  16. data/docs/BestPostingTimes.md +20 -0
  17. data/docs/BestPostingTimesTimesInner.md +24 -0
  18. data/docs/BlogToSocial200Response.md +18 -0
  19. data/docs/BlogToSocial429Response.md +18 -0
  20. data/docs/BlogToSocialCaption.md +28 -0
  21. data/docs/BlogToSocialInput.md +42 -0
  22. data/docs/BlogToSocialMedia.md +20 -0
  23. data/docs/BlogToSocialResponse.md +30 -0
  24. data/docs/CancelSubscription422Response.md +20 -0
  25. data/docs/CancelSubscription422ResponseErrors.md +18 -0
  26. data/docs/CancelSubscriptionRequest.md +18 -0
  27. data/docs/CompleteChunkedUploadRequest.md +20 -0
  28. data/docs/CreateMediaFolderRequest.md +20 -0
  29. data/docs/CreateMention201Response.md +18 -0
  30. data/docs/DeleteMediaBulkRequest.md +1 -1
  31. data/docs/DeleteMediaBulkRequestItemsInner.md +49 -0
  32. data/docs/DeleteMediaFolderRequest.md +18 -0
  33. data/docs/DeleteResult.md +3 -3
  34. data/docs/ImageAltText200Response.md +18 -0
  35. data/docs/ImageAltTextInput.md +18 -0
  36. data/docs/ImageAltTextResponse.md +24 -0
  37. data/docs/ImageEditInput.md +28 -0
  38. data/docs/ImageGenerate200Response.md +18 -0
  39. data/docs/ImageGenerate429Response.md +18 -0
  40. data/docs/ImageGenerateInput.md +36 -0
  41. data/docs/ImageGenerationResponse.md +30 -0
  42. data/docs/ImagePrompt200Response.md +18 -0
  43. data/docs/ImagePrompt429Response.md +18 -0
  44. data/docs/ImagePromptInput.md +28 -0
  45. data/docs/ImagePromptResponse.md +18 -0
  46. data/docs/ImageVariations200Response.md +18 -0
  47. data/docs/ImageVariationsInput.md +24 -0
  48. data/docs/ImageVariationsResponse.md +26 -0
  49. data/docs/{InitiateChunkedUpload200Response.md → InitiateChunkedUpload201Response.md} +2 -2
  50. data/docs/{InitiateRemoteUpload200Response.md → InitiateRemoteUpload201Response.md} +7 -7
  51. data/docs/{InitiateRemoteUpload200ResponseOneOf.md → InitiateRemoteUpload201ResponseOneOf.md} +2 -2
  52. data/docs/InitiateRemoteUploadRequest.md +3 -1
  53. data/docs/ListMediaFolders200Response.md +18 -0
  54. data/docs/ListMentions200Response.md +22 -0
  55. data/docs/ListMyWorkspaces200Response.md +18 -0
  56. data/docs/Media.md +22 -8
  57. data/docs/MediaApi.md +340 -26
  58. data/docs/MediaFolder.md +24 -0
  59. data/docs/MediaFolderInput.md +20 -0
  60. data/docs/MediaFolderRef.md +20 -0
  61. data/docs/Mention.md +28 -0
  62. data/docs/MentionIdentity.md +24 -0
  63. data/docs/MentionIdentityInput.md +26 -0
  64. data/docs/MentionInput.md +22 -0
  65. data/docs/MentionsApi.md +375 -0
  66. data/docs/Post.md +10 -8
  67. data/docs/PostAnalytics.md +22 -0
  68. data/docs/PostInput.md +3 -1
  69. data/docs/PostVersion.md +2 -0
  70. data/docs/PostingTimeSlot.md +22 -0
  71. data/docs/PostingTimes.md +32 -0
  72. data/docs/PostingTimesBestInner.md +24 -0
  73. data/docs/PostingTimesDayIntervalsInnerInner.md +28 -0
  74. data/docs/PostingTimesDaysInner.md +24 -0
  75. data/docs/PostsApi.md +174 -14
  76. data/docs/PublicWorkspace.md +24 -0
  77. data/docs/PublicWorkspacePivot.md +22 -0
  78. data/docs/PublishProgress.md +22 -0
  79. data/docs/Receipt.md +8 -8
  80. data/docs/ReceiptsApi.md +15 -1
  81. data/docs/RemoveGenericSubscription422Response.md +18 -0
  82. data/docs/RetryPostAccountResult.md +22 -0
  83. data/docs/SchedulePostRequest.md +9 -1
  84. data/docs/ScheduleResult.md +4 -2
  85. data/docs/Subscription.md +5 -5
  86. data/docs/SubscriptionsApi.md +27 -5
  87. data/docs/Tag.md +4 -4
  88. data/docs/TagsApi.md +10 -0
  89. data/docs/UpdateMediaRequest.md +6 -2
  90. data/docs/{UploadChunk200Response.md → UploadChunk201Response.md} +2 -2
  91. data/docs/User.md +7 -5
  92. data/docs/UsersApi.md +15 -1
  93. data/docs/Workspace.md +8 -6
  94. data/docs/WorkspaceInput.md +1 -1
  95. data/docs/WorkspacesApi.md +156 -3
  96. data/lib/postboost/api/accounts_api.rb +16 -4
  97. data/lib/postboost/api/ai_api.rb +466 -0
  98. data/lib/postboost/api/analytics_api.rb +425 -0
  99. data/lib/postboost/api/media_api.rb +365 -22
  100. data/lib/postboost/api/mentions_api.rb +386 -0
  101. data/lib/postboost/api/posts_api.rb +176 -12
  102. data/lib/postboost/api/receipts_api.rb +17 -2
  103. data/lib/postboost/api/subscriptions_api.rb +28 -3
  104. data/lib/postboost/api/tags_api.rb +12 -2
  105. data/lib/postboost/api/users_api.rb +17 -2
  106. data/lib/postboost/api/workspaces_api.rb +139 -2
  107. data/lib/postboost/api_client.rb +2 -2
  108. data/lib/postboost/api_error.rb +2 -2
  109. data/lib/postboost/configuration.rb +2 -2
  110. data/lib/postboost/models/account.rb +120 -3
  111. data/lib/postboost/models/account_analytics.rb +308 -0
  112. data/lib/postboost/models/account_analytics_initial_sync.rb +231 -0
  113. data/lib/postboost/models/account_schedule.rb +255 -0
  114. data/lib/postboost/models/add_generic_subscription_request.rb +2 -2
  115. data/lib/postboost/models/add_post_to_queue_request.rb +215 -0
  116. data/lib/postboost/models/ai_credits.rb +256 -0
  117. data/lib/postboost/models/analytics_period.rb +270 -0
  118. data/lib/postboost/models/analytics_summary.rb +237 -0
  119. data/lib/postboost/models/analytics_summary_data.rb +327 -0
  120. data/lib/postboost/models/approve_post_request.rb +247 -0
  121. data/lib/postboost/models/best_posting_times.rb +240 -0
  122. data/lib/postboost/models/best_posting_times_times_inner.rb +269 -0
  123. data/lib/postboost/models/blog_to_social200_response.rb +214 -0
  124. data/lib/postboost/models/blog_to_social429_response.rb +214 -0
  125. data/lib/postboost/models/blog_to_social_caption.rb +265 -0
  126. data/lib/postboost/models/blog_to_social_input.rb +536 -0
  127. data/lib/postboost/models/blog_to_social_media.rb +226 -0
  128. data/lib/postboost/models/blog_to_social_response.rb +276 -0
  129. data/lib/postboost/models/cancel_subscription422_response.rb +223 -0
  130. data/lib/postboost/models/cancel_subscription422_response_errors.rb +216 -0
  131. data/lib/postboost/models/cancel_subscription_request.rb +217 -0
  132. data/lib/postboost/models/change_subscription_plan_request.rb +2 -2
  133. data/lib/postboost/models/checkout_subscription200_response.rb +2 -2
  134. data/lib/postboost/models/checkout_subscription_request.rb +2 -2
  135. data/lib/postboost/models/complete_chunked_upload_request.rb +243 -0
  136. data/lib/postboost/models/create_media_folder_request.rb +258 -0
  137. data/lib/postboost/models/create_mention201_response.rb +214 -0
  138. data/lib/postboost/models/delete_media_bulk_request.rb +23 -4
  139. data/lib/postboost/models/{initiate_remote_upload200_response.rb → delete_media_bulk_request_items_inner.rb} +5 -5
  140. data/lib/postboost/models/delete_media_folder_request.rb +216 -0
  141. data/lib/postboost/models/delete_mode.rb +2 -2
  142. data/lib/postboost/models/delete_post_request.rb +2 -2
  143. data/lib/postboost/models/delete_posts_bulk_request.rb +2 -2
  144. data/lib/postboost/models/delete_receipts_bulk_request.rb +2 -2
  145. data/lib/postboost/models/delete_result.rb +23 -2
  146. data/lib/postboost/models/delete_user400_response.rb +2 -2
  147. data/lib/postboost/models/delete_users_bulk_request.rb +2 -2
  148. data/lib/postboost/models/delete_workspaces_bulk_request.rb +2 -2
  149. data/lib/postboost/models/get_remote_upload_status200_response.rb +2 -2
  150. data/lib/postboost/models/image_alt_text200_response.rb +221 -0
  151. data/lib/postboost/models/image_alt_text_input.rb +221 -0
  152. data/lib/postboost/models/image_alt_text_response.rb +262 -0
  153. data/lib/postboost/models/image_edit_input.rb +375 -0
  154. data/lib/postboost/models/image_generate200_response.rb +221 -0
  155. data/lib/postboost/models/image_generate429_response.rb +214 -0
  156. data/lib/postboost/models/image_generate_input.rb +447 -0
  157. data/lib/postboost/models/image_generation_response.rb +305 -0
  158. data/lib/postboost/models/image_prompt200_response.rb +221 -0
  159. data/lib/postboost/models/image_prompt429_response.rb +214 -0
  160. data/lib/postboost/models/image_prompt_input.rb +345 -0
  161. data/lib/postboost/models/image_prompt_response.rb +221 -0
  162. data/lib/postboost/models/image_variations200_response.rb +221 -0
  163. data/lib/postboost/models/image_variations_input.rb +328 -0
  164. data/lib/postboost/models/image_variations_response.rb +280 -0
  165. data/lib/postboost/models/{initiate_chunked_upload200_response.rb → initiate_chunked_upload201_response.rb} +5 -5
  166. data/lib/postboost/models/initiate_chunked_upload_request.rb +2 -2
  167. data/lib/postboost/models/initiate_remote_upload201_response.rb +105 -0
  168. data/lib/postboost/models/{initiate_remote_upload200_response_one_of.rb → initiate_remote_upload201_response_one_of.rb} +5 -5
  169. data/lib/postboost/models/initiate_remote_upload_request.rb +16 -6
  170. data/lib/postboost/models/list_accounts200_response.rb +2 -2
  171. data/lib/postboost/models/list_media200_response.rb +2 -2
  172. data/lib/postboost/models/list_media_folders200_response.rb +216 -0
  173. data/lib/postboost/models/list_mentions200_response.rb +241 -0
  174. data/lib/postboost/models/list_my_workspaces200_response.rb +216 -0
  175. data/lib/postboost/models/list_posts200_response.rb +2 -2
  176. data/lib/postboost/models/list_receipts200_response.rb +2 -2
  177. data/lib/postboost/models/list_tags200_response.rb +2 -2
  178. data/lib/postboost/models/list_users200_response.rb +2 -2
  179. data/lib/postboost/models/list_workspaces200_response.rb +2 -2
  180. data/lib/postboost/models/media.rb +128 -3
  181. data/lib/postboost/models/media_folder.rb +271 -0
  182. data/lib/postboost/models/media_folder_input.rb +244 -0
  183. data/lib/postboost/models/media_folder_ref.rb +237 -0
  184. data/lib/postboost/models/mention.rb +290 -0
  185. data/lib/postboost/models/mention_identity.rb +257 -0
  186. data/lib/postboost/models/mention_identity_input.rb +325 -0
  187. data/lib/postboost/models/mention_input.rb +279 -0
  188. data/lib/postboost/models/pagination_meta.rb +2 -2
  189. data/lib/postboost/models/pagination_meta_links.rb +2 -2
  190. data/lib/postboost/models/pagination_meta_meta.rb +2 -2
  191. data/lib/postboost/models/post.rb +69 -3
  192. data/lib/postboost/models/post_analytics.rb +252 -0
  193. data/lib/postboost/models/post_content.rb +2 -2
  194. data/lib/postboost/models/post_input.rb +16 -3
  195. data/lib/postboost/models/post_status.rb +6 -3
  196. data/lib/postboost/models/post_version.rb +32 -3
  197. data/lib/postboost/models/posting_time_slot.rb +315 -0
  198. data/lib/postboost/models/posting_times.rb +362 -0
  199. data/lib/postboost/models/posting_times_best_inner.rb +269 -0
  200. data/lib/postboost/models/posting_times_day_intervals_inner_inner.rb +370 -0
  201. data/lib/postboost/models/posting_times_days_inner.rb +366 -0
  202. data/lib/postboost/models/public_workspace.rb +262 -0
  203. data/lib/postboost/models/public_workspace_pivot.rb +267 -0
  204. data/lib/postboost/models/publish_progress.rb +254 -0
  205. data/lib/postboost/models/receipt.rb +58 -2
  206. data/lib/postboost/models/receipt_input.rb +2 -2
  207. data/lib/postboost/models/receipt_update_input.rb +2 -2
  208. data/lib/postboost/models/remove_generic_subscription422_response.rb +214 -0
  209. data/lib/postboost/models/remove_user_from_workspace_request.rb +2 -2
  210. data/lib/postboost/models/retry_post_account_result.rb +275 -0
  211. data/lib/postboost/models/schedule_post_request.rb +48 -6
  212. data/lib/postboost/models/schedule_result.rb +23 -6
  213. data/lib/postboost/models/subscription.rb +37 -2
  214. data/lib/postboost/models/subscription_input.rb +2 -2
  215. data/lib/postboost/models/subscription_status.rb +2 -2
  216. data/lib/postboost/models/subscription_update_input.rb +2 -2
  217. data/lib/postboost/models/tag.rb +30 -2
  218. data/lib/postboost/models/tag_input.rb +2 -2
  219. data/lib/postboost/models/update_media_request.rb +61 -11
  220. data/lib/postboost/models/{upload_chunk200_response.rb → upload_chunk201_response.rb} +5 -5
  221. data/lib/postboost/models/user.rb +48 -3
  222. data/lib/postboost/models/user_input.rb +2 -2
  223. data/lib/postboost/models/user_update_input.rb +2 -2
  224. data/lib/postboost/models/workspace.rb +42 -3
  225. data/lib/postboost/models/workspace_input.rb +3 -9
  226. data/lib/postboost/models/workspace_user_input.rb +2 -2
  227. data/lib/postboost/version.rb +3 -3
  228. data/lib/postboost.rb +70 -6
  229. data/postboost.gemspec +3 -3
  230. data/spec/api/accounts_api_spec.rb +7 -3
  231. data/spec/api/ai_api_spec.rb +113 -0
  232. data/spec/api/analytics_api_spec.rb +113 -0
  233. data/spec/api/media_api_spec.rb +73 -10
  234. data/spec/api/mentions_api_spec.rb +103 -0
  235. data/spec/api/posts_api_spec.rb +38 -6
  236. data/spec/api/receipts_api_spec.rb +9 -2
  237. data/spec/api/subscriptions_api_spec.rb +12 -2
  238. data/spec/api/tags_api_spec.rb +7 -2
  239. data/spec/api/users_api_spec.rb +9 -2
  240. data/spec/api/workspaces_api_spec.rb +33 -2
  241. data/spec/models/account_analytics_initial_sync_spec.rb +42 -0
  242. data/spec/models/account_analytics_spec.rb +66 -0
  243. data/spec/models/account_schedule_spec.rb +48 -0
  244. data/spec/models/account_spec.rb +24 -2
  245. data/spec/models/add_generic_subscription_request_spec.rb +2 -2
  246. data/spec/models/add_post_to_queue_request_spec.rb +36 -0
  247. data/spec/models/ai_credits_spec.rb +48 -0
  248. data/spec/models/analytics_period_spec.rb +54 -0
  249. data/spec/models/analytics_summary_data_spec.rb +96 -0
  250. data/spec/models/analytics_summary_spec.rb +42 -0
  251. data/spec/models/approve_post_request_spec.rb +54 -0
  252. data/spec/models/best_posting_times_spec.rb +42 -0
  253. data/spec/models/best_posting_times_times_inner_spec.rb +54 -0
  254. data/spec/models/blog_to_social200_response_spec.rb +36 -0
  255. data/spec/models/blog_to_social429_response_spec.rb +36 -0
  256. data/spec/models/blog_to_social_caption_spec.rb +66 -0
  257. data/spec/models/blog_to_social_input_spec.rb +128 -0
  258. data/spec/models/blog_to_social_media_spec.rb +42 -0
  259. data/spec/models/blog_to_social_response_spec.rb +72 -0
  260. data/spec/models/cancel_subscription422_response_errors_spec.rb +36 -0
  261. data/spec/models/cancel_subscription422_response_spec.rb +42 -0
  262. data/spec/models/cancel_subscription_request_spec.rb +36 -0
  263. data/spec/models/change_subscription_plan_request_spec.rb +2 -2
  264. data/spec/models/checkout_subscription200_response_spec.rb +2 -2
  265. data/spec/models/checkout_subscription_request_spec.rb +2 -2
  266. data/spec/models/complete_chunked_upload_request_spec.rb +42 -0
  267. data/spec/models/create_media_folder_request_spec.rb +42 -0
  268. data/spec/models/create_mention201_response_spec.rb +36 -0
  269. data/spec/models/delete_media_bulk_request_items_inner_spec.rb +32 -0
  270. data/spec/models/delete_media_bulk_request_spec.rb +2 -2
  271. data/spec/models/delete_media_folder_request_spec.rb +36 -0
  272. data/spec/models/delete_mode_spec.rb +2 -2
  273. data/spec/models/delete_post_request_spec.rb +2 -2
  274. data/spec/models/delete_posts_bulk_request_spec.rb +2 -2
  275. data/spec/models/delete_receipts_bulk_request_spec.rb +2 -2
  276. data/spec/models/delete_result_spec.rb +2 -2
  277. data/spec/models/delete_user400_response_spec.rb +2 -2
  278. data/spec/models/delete_users_bulk_request_spec.rb +2 -2
  279. data/spec/models/delete_workspaces_bulk_request_spec.rb +2 -2
  280. data/spec/models/get_remote_upload_status200_response_spec.rb +2 -2
  281. data/spec/models/image_alt_text200_response_spec.rb +36 -0
  282. data/spec/models/image_alt_text_input_spec.rb +36 -0
  283. data/spec/models/image_alt_text_response_spec.rb +54 -0
  284. data/spec/models/image_edit_input_spec.rb +74 -0
  285. data/spec/models/image_generate200_response_spec.rb +36 -0
  286. data/spec/models/image_generate429_response_spec.rb +36 -0
  287. data/spec/models/image_generate_input_spec.rb +102 -0
  288. data/spec/models/image_generation_response_spec.rb +72 -0
  289. data/spec/models/image_prompt200_response_spec.rb +36 -0
  290. data/spec/models/image_prompt429_response_spec.rb +36 -0
  291. data/spec/models/image_prompt_input_spec.rb +70 -0
  292. data/spec/models/image_prompt_response_spec.rb +36 -0
  293. data/spec/models/image_variations200_response_spec.rb +36 -0
  294. data/spec/models/image_variations_input_spec.rb +62 -0
  295. data/spec/models/image_variations_response_spec.rb +60 -0
  296. data/spec/models/initiate_chunked_upload201_response_spec.rb +48 -0
  297. data/spec/models/initiate_chunked_upload_request_spec.rb +2 -2
  298. data/spec/models/initiate_remote_upload201_response_one_of_spec.rb +36 -0
  299. data/spec/models/initiate_remote_upload201_response_spec.rb +32 -0
  300. data/spec/models/initiate_remote_upload_request_spec.rb +8 -2
  301. data/spec/models/list_accounts200_response_spec.rb +2 -2
  302. data/spec/models/list_media200_response_spec.rb +2 -2
  303. data/spec/models/list_media_folders200_response_spec.rb +36 -0
  304. data/spec/models/list_mentions200_response_spec.rb +48 -0
  305. data/spec/models/list_my_workspaces200_response_spec.rb +36 -0
  306. data/spec/models/list_posts200_response_spec.rb +2 -2
  307. data/spec/models/list_receipts200_response_spec.rb +2 -2
  308. data/spec/models/list_tags200_response_spec.rb +2 -2
  309. data/spec/models/list_users200_response_spec.rb +2 -2
  310. data/spec/models/list_workspaces200_response_spec.rb +2 -2
  311. data/spec/models/media_folder_input_spec.rb +42 -0
  312. data/spec/models/media_folder_ref_spec.rb +42 -0
  313. data/spec/models/media_folder_spec.rb +54 -0
  314. data/spec/models/media_spec.rb +44 -2
  315. data/spec/models/mention_identity_input_spec.rb +60 -0
  316. data/spec/models/mention_identity_spec.rb +54 -0
  317. data/spec/models/mention_input_spec.rb +48 -0
  318. data/spec/models/mention_spec.rb +66 -0
  319. data/spec/models/pagination_meta_links_spec.rb +2 -2
  320. data/spec/models/pagination_meta_meta_spec.rb +2 -2
  321. data/spec/models/pagination_meta_spec.rb +2 -2
  322. data/spec/models/post_analytics_spec.rb +48 -0
  323. data/spec/models/post_content_spec.rb +2 -2
  324. data/spec/models/post_input_spec.rb +8 -2
  325. data/spec/models/post_spec.rb +8 -2
  326. data/spec/models/post_status_spec.rb +2 -2
  327. data/spec/models/post_version_spec.rb +8 -2
  328. data/spec/models/posting_time_slot_spec.rb +52 -0
  329. data/spec/models/posting_times_best_inner_spec.rb +54 -0
  330. data/spec/models/posting_times_day_intervals_inner_inner_spec.rb +70 -0
  331. data/spec/models/posting_times_days_inner_spec.rb +58 -0
  332. data/spec/models/posting_times_spec.rb +78 -0
  333. data/spec/models/public_workspace_pivot_spec.rb +52 -0
  334. data/spec/models/public_workspace_spec.rb +54 -0
  335. data/spec/models/publish_progress_spec.rb +48 -0
  336. data/spec/models/receipt_input_spec.rb +2 -2
  337. data/spec/models/receipt_spec.rb +2 -2
  338. data/spec/models/receipt_update_input_spec.rb +2 -2
  339. data/spec/models/remove_generic_subscription422_response_spec.rb +36 -0
  340. data/spec/models/remove_user_from_workspace_request_spec.rb +2 -2
  341. data/spec/models/retry_post_account_result_spec.rb +48 -0
  342. data/spec/models/schedule_post_request_spec.rb +26 -2
  343. data/spec/models/schedule_result_spec.rb +8 -2
  344. data/spec/models/subscription_input_spec.rb +2 -2
  345. data/spec/models/subscription_spec.rb +2 -2
  346. data/spec/models/subscription_status_spec.rb +2 -2
  347. data/spec/models/subscription_update_input_spec.rb +2 -2
  348. data/spec/models/tag_input_spec.rb +2 -2
  349. data/spec/models/tag_spec.rb +2 -2
  350. data/spec/models/update_media_request_spec.rb +14 -2
  351. data/spec/models/upload_chunk201_response_spec.rb +36 -0
  352. data/spec/models/user_input_spec.rb +2 -2
  353. data/spec/models/user_spec.rb +8 -2
  354. data/spec/models/user_update_input_spec.rb +2 -2
  355. data/spec/models/workspace_input_spec.rb +2 -2
  356. data/spec/models/workspace_spec.rb +8 -2
  357. data/spec/models/workspace_user_input_spec.rb +2 -2
  358. data/spec/spec_helper.rb +2 -2
  359. metadata +331 -75
  360. data/git_push.sh +0 -57
  361. data/spec/models/initiate_chunked_upload200_response_spec.rb +0 -48
  362. data/spec/models/initiate_remote_upload200_response_one_of_spec.rb +0 -36
  363. data/spec/models/initiate_remote_upload200_response_spec.rb +0 -32
  364. data/spec/models/upload_chunk200_response_spec.rb +0 -36
@@ -0,0 +1,269 @@
1
+ =begin
2
+ #PostBoost API
3
+
4
+ #The PostBoost REST API lets you publish, schedule, and analyze social media posts across 12+ platforms from a single integration. No OAuth apps to maintain — PostBoost handles platform authorization for you. ## Base URL All workspace-scoped endpoints are prefixed with `/{workspaceUuid}`. Panel/admin endpoints are prefixed with `/panel`. ## Plan access Every workspace-scoped endpoint returns `403` when the workspace's plan does not include API access (capability `api`). ## Dates and times Post dates and times (`date`, `time`, `accounts_schedule`) are read in the request's `timezone` when one is given, otherwise in the workspace timezone. ## 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.8.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 PostingTimesBestInner
18
+ attr_accessor :day
19
+
20
+ attr_accessor :hour
21
+
22
+ attr_accessor :score
23
+
24
+ attr_accessor :samples
25
+
26
+ # Attribute mapping from ruby-style variable name to JSON key.
27
+ def self.attribute_map
28
+ {
29
+ :'day' => :'day',
30
+ :'hour' => :'hour',
31
+ :'score' => :'score',
32
+ :'samples' => :'samples'
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
+ :'day' => :'Integer',
45
+ :'hour' => :'Integer',
46
+ :'score' => :'Integer',
47
+ :'samples' => :'Integer'
48
+ }
49
+ end
50
+
51
+ # List of attributes with nullable: true
52
+ def self.openapi_nullable
53
+ Set.new([
54
+ ])
55
+ end
56
+
57
+ # Initializes the object
58
+ # @param [Hash] attributes Model attributes in the form of hash
59
+ def initialize(attributes = {})
60
+ if (!attributes.is_a?(Hash))
61
+ fail ArgumentError, "The input argument (attributes) must be a hash in `PostBoost::PostingTimesBestInner` initialize method"
62
+ end
63
+
64
+ # check to see if the attribute exists and convert string to symbol for hash key
65
+ attributes = attributes.each_with_object({}) { |(k, v), h|
66
+ if (!self.class.attribute_map.key?(k.to_sym))
67
+ fail ArgumentError, "`#{k}` is not a valid attribute in `PostBoost::PostingTimesBestInner`. Please check the name to make sure it's valid. List of attributes: " + self.class.attribute_map.keys.inspect
68
+ end
69
+ h[k.to_sym] = v
70
+ }
71
+
72
+ if attributes.key?(:'day')
73
+ self.day = attributes[:'day']
74
+ else
75
+ self.day = nil
76
+ end
77
+
78
+ if attributes.key?(:'hour')
79
+ self.hour = attributes[:'hour']
80
+ else
81
+ self.hour = nil
82
+ end
83
+
84
+ if attributes.key?(:'score')
85
+ self.score = attributes[:'score']
86
+ else
87
+ self.score = nil
88
+ end
89
+
90
+ if attributes.key?(:'samples')
91
+ self.samples = attributes[:'samples']
92
+ else
93
+ self.samples = nil
94
+ end
95
+ end
96
+
97
+ # Show invalid properties with the reasons. Usually used together with valid?
98
+ # @return Array for valid properties with the reasons
99
+ def list_invalid_properties
100
+ warn '[DEPRECATED] the `list_invalid_properties` method is obsolete'
101
+ invalid_properties = Array.new
102
+ if @day.nil?
103
+ invalid_properties.push('invalid value for "day", day cannot be nil.')
104
+ end
105
+
106
+ if @hour.nil?
107
+ invalid_properties.push('invalid value for "hour", hour cannot be nil.')
108
+ end
109
+
110
+ if @score.nil?
111
+ invalid_properties.push('invalid value for "score", score cannot be nil.')
112
+ end
113
+
114
+ if @samples.nil?
115
+ invalid_properties.push('invalid value for "samples", samples cannot be nil.')
116
+ end
117
+
118
+ invalid_properties
119
+ end
120
+
121
+ # Check to see if the all the properties in the model are valid
122
+ # @return true if the model is valid
123
+ def valid?
124
+ warn '[DEPRECATED] the `valid?` method is obsolete'
125
+ return false if @day.nil?
126
+ return false if @hour.nil?
127
+ return false if @score.nil?
128
+ return false if @samples.nil?
129
+ true
130
+ end
131
+
132
+ # Checks equality by comparing each attribute.
133
+ # @param [Object] Object to be compared
134
+ def ==(o)
135
+ return true if self.equal?(o)
136
+ self.class == o.class &&
137
+ day == o.day &&
138
+ hour == o.hour &&
139
+ score == o.score &&
140
+ samples == o.samples
141
+ end
142
+
143
+ # @see the `==` method
144
+ # @param [Object] Object to be compared
145
+ def eql?(o)
146
+ self == o
147
+ end
148
+
149
+ # Calculates hash code according to all attributes.
150
+ # @return [Integer] Hash code
151
+ def hash
152
+ [day, hour, score, samples].hash
153
+ end
154
+
155
+ # Builds the object from hash
156
+ # @param [Hash] attributes Model attributes in the form of hash
157
+ # @return [Object] Returns the model itself
158
+ def self.build_from_hash(attributes)
159
+ return nil unless attributes.is_a?(Hash)
160
+ attributes = attributes.transform_keys(&:to_sym)
161
+ transformed_hash = {}
162
+ openapi_types.each_pair do |key, type|
163
+ if attributes.key?(attribute_map[key]) && attributes[attribute_map[key]].nil?
164
+ transformed_hash["#{key}"] = nil
165
+ elsif type =~ /\AArray<(.*)>/i
166
+ # check to ensure the input is an array given that the attribute
167
+ # is documented as an array but the input is not
168
+ if attributes[attribute_map[key]].is_a?(Array)
169
+ transformed_hash["#{key}"] = attributes[attribute_map[key]].map { |v| _deserialize($1, v) }
170
+ end
171
+ elsif !attributes[attribute_map[key]].nil?
172
+ transformed_hash["#{key}"] = _deserialize(type, attributes[attribute_map[key]])
173
+ end
174
+ end
175
+ new(transformed_hash)
176
+ end
177
+
178
+ # Deserializes the data based on type
179
+ # @param string type Data type
180
+ # @param string value Value to be deserialized
181
+ # @return [Object] Deserialized data
182
+ def self._deserialize(type, value)
183
+ case type.to_sym
184
+ when :Time
185
+ Time.parse(value)
186
+ when :Date
187
+ Date.parse(value)
188
+ when :String
189
+ value.to_s
190
+ when :Integer
191
+ value.to_i
192
+ when :Float
193
+ value.to_f
194
+ when :Boolean
195
+ if value.to_s =~ /\A(true|t|yes|y|1)\z/i
196
+ true
197
+ else
198
+ false
199
+ end
200
+ when :Object
201
+ # generic object (usually a Hash), return directly
202
+ value
203
+ when /\AArray<(?<inner_type>.+)>\z/
204
+ inner_type = Regexp.last_match[:inner_type]
205
+ value.map { |v| _deserialize(inner_type, v) }
206
+ when /\AHash<(?<k_type>.+?), (?<v_type>.+)>\z/
207
+ k_type = Regexp.last_match[:k_type]
208
+ v_type = Regexp.last_match[:v_type]
209
+ {}.tap do |hash|
210
+ value.each do |k, v|
211
+ hash[_deserialize(k_type, k)] = _deserialize(v_type, v)
212
+ end
213
+ end
214
+ else # model
215
+ # models (e.g. Pet) or oneOf
216
+ klass = PostBoost.const_get(type)
217
+ klass.respond_to?(:openapi_any_of) || klass.respond_to?(:openapi_one_of) ? klass.build(value) : klass.build_from_hash(value)
218
+ end
219
+ end
220
+
221
+ # Returns the string representation of the object
222
+ # @return [String] String presentation of the object
223
+ def to_s
224
+ to_hash.to_s
225
+ end
226
+
227
+ # to_body is an alias to to_hash (backward compatibility)
228
+ # @return [Hash] Returns the object in the form of hash
229
+ def to_body
230
+ to_hash
231
+ end
232
+
233
+ # Returns the object in the form of hash
234
+ # @return [Hash] Returns the object in the form of hash
235
+ def to_hash
236
+ hash = {}
237
+ self.class.attribute_map.each_pair do |attr, param|
238
+ value = self.send(attr)
239
+ if value.nil?
240
+ is_nullable = self.class.openapi_nullable.include?(attr)
241
+ next if !is_nullable || (is_nullable && !instance_variable_defined?(:"@#{attr}"))
242
+ end
243
+
244
+ hash[param] = _to_hash(value)
245
+ end
246
+ hash
247
+ end
248
+
249
+ # Outputs non-array value in the form of hash
250
+ # For object, use to_hash. Otherwise, just return the value
251
+ # @param [Object] value Any valid value
252
+ # @return [Hash] Returns the value in the form of hash
253
+ def _to_hash(value)
254
+ if value.is_a?(Array)
255
+ value.compact.map { |v| _to_hash(v) }
256
+ elsif value.is_a?(Hash)
257
+ {}.tap do |hash|
258
+ value.each { |k, v| hash[k] = _to_hash(v) }
259
+ end
260
+ elsif value.respond_to? :to_hash
261
+ value.to_hash
262
+ else
263
+ value
264
+ end
265
+ end
266
+
267
+ end
268
+
269
+ end
@@ -0,0 +1,370 @@
1
+ =begin
2
+ #PostBoost API
3
+
4
+ #The PostBoost REST API lets you publish, schedule, and analyze social media posts across 12+ platforms from a single integration. No OAuth apps to maintain — PostBoost handles platform authorization for you. ## Base URL All workspace-scoped endpoints are prefixed with `/{workspaceUuid}`. Panel/admin endpoints are prefixed with `/panel`. ## Plan access Every workspace-scoped endpoint returns `403` when the workspace's plan does not include API access (capability `api`). ## Dates and times Post dates and times (`date`, `time`, `accounts_schedule`) are read in the request's `timezone` when one is given, otherwise in the workspace timezone. ## 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.8.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 PostingTimesDayIntervalsInnerInner
18
+ attr_accessor :score
19
+
20
+ attr_accessor :samples
21
+
22
+ attr_accessor :confidence
23
+
24
+ attr_accessor :start_hour
25
+
26
+ attr_accessor :end_hour
27
+
28
+ attr_accessor :best_hour
29
+
30
+ class EnumAttributeValidator
31
+ attr_reader :datatype
32
+ attr_reader :allowable_values
33
+
34
+ def initialize(datatype, allowable_values)
35
+ @allowable_values = allowable_values.map do |value|
36
+ case datatype.to_s
37
+ when /Integer/i
38
+ value.to_i
39
+ when /Float/i
40
+ value.to_f
41
+ else
42
+ value
43
+ end
44
+ end
45
+ end
46
+
47
+ def valid?(value)
48
+ !value || allowable_values.include?(value)
49
+ end
50
+ end
51
+
52
+ # Attribute mapping from ruby-style variable name to JSON key.
53
+ def self.attribute_map
54
+ {
55
+ :'score' => :'score',
56
+ :'samples' => :'samples',
57
+ :'confidence' => :'confidence',
58
+ :'start_hour' => :'start_hour',
59
+ :'end_hour' => :'end_hour',
60
+ :'best_hour' => :'best_hour'
61
+ }
62
+ end
63
+
64
+ # Returns all the JSON keys this model knows about
65
+ def self.acceptable_attributes
66
+ attribute_map.values
67
+ end
68
+
69
+ # Attribute type mapping.
70
+ def self.openapi_types
71
+ {
72
+ :'score' => :'Integer',
73
+ :'samples' => :'Integer',
74
+ :'confidence' => :'String',
75
+ :'start_hour' => :'Integer',
76
+ :'end_hour' => :'Integer',
77
+ :'best_hour' => :'Integer'
78
+ }
79
+ end
80
+
81
+ # List of attributes with nullable: true
82
+ def self.openapi_nullable
83
+ Set.new([
84
+ ])
85
+ end
86
+
87
+ # List of class defined in allOf (OpenAPI v3)
88
+ def self.openapi_all_of
89
+ [
90
+ :'PostingTimeSlot'
91
+ ]
92
+ end
93
+
94
+ # Initializes the object
95
+ # @param [Hash] attributes Model attributes in the form of hash
96
+ def initialize(attributes = {})
97
+ if (!attributes.is_a?(Hash))
98
+ fail ArgumentError, "The input argument (attributes) must be a hash in `PostBoost::PostingTimesDayIntervalsInnerInner` initialize method"
99
+ end
100
+
101
+ # check to see if the attribute exists and convert string to symbol for hash key
102
+ attributes = attributes.each_with_object({}) { |(k, v), h|
103
+ if (!self.class.attribute_map.key?(k.to_sym))
104
+ fail ArgumentError, "`#{k}` is not a valid attribute in `PostBoost::PostingTimesDayIntervalsInnerInner`. Please check the name to make sure it's valid. List of attributes: " + self.class.attribute_map.keys.inspect
105
+ end
106
+ h[k.to_sym] = v
107
+ }
108
+
109
+ if attributes.key?(:'score')
110
+ self.score = attributes[:'score']
111
+ else
112
+ self.score = nil
113
+ end
114
+
115
+ if attributes.key?(:'samples')
116
+ self.samples = attributes[:'samples']
117
+ else
118
+ self.samples = nil
119
+ end
120
+
121
+ if attributes.key?(:'confidence')
122
+ self.confidence = attributes[:'confidence']
123
+ else
124
+ self.confidence = nil
125
+ end
126
+
127
+ if attributes.key?(:'start_hour')
128
+ self.start_hour = attributes[:'start_hour']
129
+ else
130
+ self.start_hour = nil
131
+ end
132
+
133
+ if attributes.key?(:'end_hour')
134
+ self.end_hour = attributes[:'end_hour']
135
+ else
136
+ self.end_hour = nil
137
+ end
138
+
139
+ if attributes.key?(:'best_hour')
140
+ self.best_hour = attributes[:'best_hour']
141
+ else
142
+ self.best_hour = nil
143
+ end
144
+ end
145
+
146
+ # Show invalid properties with the reasons. Usually used together with valid?
147
+ # @return Array for valid properties with the reasons
148
+ def list_invalid_properties
149
+ warn '[DEPRECATED] the `list_invalid_properties` method is obsolete'
150
+ invalid_properties = Array.new
151
+ if @score.nil?
152
+ invalid_properties.push('invalid value for "score", score cannot be nil.')
153
+ end
154
+
155
+ if @score > 100
156
+ invalid_properties.push('invalid value for "score", must be smaller than or equal to 100.')
157
+ end
158
+
159
+ if @score < 0
160
+ invalid_properties.push('invalid value for "score", must be greater than or equal to 0.')
161
+ end
162
+
163
+ if @samples.nil?
164
+ invalid_properties.push('invalid value for "samples", samples cannot be nil.')
165
+ end
166
+
167
+ if @confidence.nil?
168
+ invalid_properties.push('invalid value for "confidence", confidence cannot be nil.')
169
+ end
170
+
171
+ if @start_hour.nil?
172
+ invalid_properties.push('invalid value for "start_hour", start_hour cannot be nil.')
173
+ end
174
+
175
+ if @end_hour.nil?
176
+ invalid_properties.push('invalid value for "end_hour", end_hour cannot be nil.')
177
+ end
178
+
179
+ if @best_hour.nil?
180
+ invalid_properties.push('invalid value for "best_hour", best_hour cannot be nil.')
181
+ end
182
+
183
+ invalid_properties
184
+ end
185
+
186
+ # Check to see if the all the properties in the model are valid
187
+ # @return true if the model is valid
188
+ def valid?
189
+ warn '[DEPRECATED] the `valid?` method is obsolete'
190
+ return false if @score.nil?
191
+ return false if @score > 100
192
+ return false if @score < 0
193
+ return false if @samples.nil?
194
+ return false if @confidence.nil?
195
+ confidence_validator = EnumAttributeValidator.new('String', ["none", "low", "medium", "high"])
196
+ return false unless confidence_validator.valid?(@confidence)
197
+ return false if @start_hour.nil?
198
+ return false if @end_hour.nil?
199
+ return false if @best_hour.nil?
200
+ true
201
+ end
202
+
203
+ # Custom attribute writer method with validation
204
+ # @param [Object] score Value to be assigned
205
+ def score=(score)
206
+ if score.nil?
207
+ fail ArgumentError, 'score cannot be nil'
208
+ end
209
+
210
+ if score > 100
211
+ fail ArgumentError, 'invalid value for "score", must be smaller than or equal to 100.'
212
+ end
213
+
214
+ if score < 0
215
+ fail ArgumentError, 'invalid value for "score", must be greater than or equal to 0.'
216
+ end
217
+
218
+ @score = score
219
+ end
220
+
221
+ # Custom attribute writer method checking allowed values (enum).
222
+ # @param [Object] confidence Object to be assigned
223
+ def confidence=(confidence)
224
+ validator = EnumAttributeValidator.new('String', ["none", "low", "medium", "high"])
225
+ unless validator.valid?(confidence)
226
+ fail ArgumentError, "invalid value for \"confidence\", must be one of #{validator.allowable_values}."
227
+ end
228
+ @confidence = confidence
229
+ end
230
+
231
+ # Checks equality by comparing each attribute.
232
+ # @param [Object] Object to be compared
233
+ def ==(o)
234
+ return true if self.equal?(o)
235
+ self.class == o.class &&
236
+ score == o.score &&
237
+ samples == o.samples &&
238
+ confidence == o.confidence &&
239
+ start_hour == o.start_hour &&
240
+ end_hour == o.end_hour &&
241
+ best_hour == o.best_hour
242
+ end
243
+
244
+ # @see the `==` method
245
+ # @param [Object] Object to be compared
246
+ def eql?(o)
247
+ self == o
248
+ end
249
+
250
+ # Calculates hash code according to all attributes.
251
+ # @return [Integer] Hash code
252
+ def hash
253
+ [score, samples, confidence, start_hour, end_hour, best_hour].hash
254
+ end
255
+
256
+ # Builds the object from hash
257
+ # @param [Hash] attributes Model attributes in the form of hash
258
+ # @return [Object] Returns the model itself
259
+ def self.build_from_hash(attributes)
260
+ return nil unless attributes.is_a?(Hash)
261
+ attributes = attributes.transform_keys(&:to_sym)
262
+ transformed_hash = {}
263
+ openapi_types.each_pair do |key, type|
264
+ if attributes.key?(attribute_map[key]) && attributes[attribute_map[key]].nil?
265
+ transformed_hash["#{key}"] = nil
266
+ elsif type =~ /\AArray<(.*)>/i
267
+ # check to ensure the input is an array given that the attribute
268
+ # is documented as an array but the input is not
269
+ if attributes[attribute_map[key]].is_a?(Array)
270
+ transformed_hash["#{key}"] = attributes[attribute_map[key]].map { |v| _deserialize($1, v) }
271
+ end
272
+ elsif !attributes[attribute_map[key]].nil?
273
+ transformed_hash["#{key}"] = _deserialize(type, attributes[attribute_map[key]])
274
+ end
275
+ end
276
+ new(transformed_hash)
277
+ end
278
+
279
+ # Deserializes the data based on type
280
+ # @param string type Data type
281
+ # @param string value Value to be deserialized
282
+ # @return [Object] Deserialized data
283
+ def self._deserialize(type, value)
284
+ case type.to_sym
285
+ when :Time
286
+ Time.parse(value)
287
+ when :Date
288
+ Date.parse(value)
289
+ when :String
290
+ value.to_s
291
+ when :Integer
292
+ value.to_i
293
+ when :Float
294
+ value.to_f
295
+ when :Boolean
296
+ if value.to_s =~ /\A(true|t|yes|y|1)\z/i
297
+ true
298
+ else
299
+ false
300
+ end
301
+ when :Object
302
+ # generic object (usually a Hash), return directly
303
+ value
304
+ when /\AArray<(?<inner_type>.+)>\z/
305
+ inner_type = Regexp.last_match[:inner_type]
306
+ value.map { |v| _deserialize(inner_type, v) }
307
+ when /\AHash<(?<k_type>.+?), (?<v_type>.+)>\z/
308
+ k_type = Regexp.last_match[:k_type]
309
+ v_type = Regexp.last_match[:v_type]
310
+ {}.tap do |hash|
311
+ value.each do |k, v|
312
+ hash[_deserialize(k_type, k)] = _deserialize(v_type, v)
313
+ end
314
+ end
315
+ else # model
316
+ # models (e.g. Pet) or oneOf
317
+ klass = PostBoost.const_get(type)
318
+ klass.respond_to?(:openapi_any_of) || klass.respond_to?(:openapi_one_of) ? klass.build(value) : klass.build_from_hash(value)
319
+ end
320
+ end
321
+
322
+ # Returns the string representation of the object
323
+ # @return [String] String presentation of the object
324
+ def to_s
325
+ to_hash.to_s
326
+ end
327
+
328
+ # to_body is an alias to to_hash (backward compatibility)
329
+ # @return [Hash] Returns the object in the form of hash
330
+ def to_body
331
+ to_hash
332
+ end
333
+
334
+ # Returns the object in the form of hash
335
+ # @return [Hash] Returns the object in the form of hash
336
+ def to_hash
337
+ hash = {}
338
+ self.class.attribute_map.each_pair do |attr, param|
339
+ value = self.send(attr)
340
+ if value.nil?
341
+ is_nullable = self.class.openapi_nullable.include?(attr)
342
+ next if !is_nullable || (is_nullable && !instance_variable_defined?(:"@#{attr}"))
343
+ end
344
+
345
+ hash[param] = _to_hash(value)
346
+ end
347
+ hash
348
+ end
349
+
350
+ # Outputs non-array value in the form of hash
351
+ # For object, use to_hash. Otherwise, just return the value
352
+ # @param [Object] value Any valid value
353
+ # @return [Hash] Returns the value in the form of hash
354
+ def _to_hash(value)
355
+ if value.is_a?(Array)
356
+ value.compact.map { |v| _to_hash(v) }
357
+ elsif value.is_a?(Hash)
358
+ {}.tap do |hash|
359
+ value.each { |k, v| hash[k] = _to_hash(v) }
360
+ end
361
+ elsif value.respond_to? :to_hash
362
+ value.to_hash
363
+ else
364
+ value
365
+ end
366
+ end
367
+
368
+ end
369
+
370
+ end