postboost 1.0.0 → 1.14.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 (815) hide show
  1. checksums.yaml +4 -4
  2. data/CODE_OF_CONDUCT.md +7 -0
  3. data/CONTRIBUTING.md +31 -0
  4. data/README.md +252 -0
  5. data/SECURITY.md +9 -0
  6. data/docs/AIApi.md +871 -0
  7. data/docs/AICredits.md +22 -0
  8. data/docs/AIUsage.md +20 -0
  9. data/docs/AIUsageText.md +24 -0
  10. data/docs/Account.md +19 -9
  11. data/docs/AccountAnalytics.md +28 -0
  12. data/docs/AccountAnalyticsInitialSync.md +20 -0
  13. data/docs/AccountConnectionHealth.md +34 -0
  14. data/docs/AccountErrorsInner.md +49 -0
  15. data/docs/AccountErrorsInnerOneOf.md +24 -0
  16. data/docs/AccountGroup.md +24 -0
  17. data/docs/AccountGroupInput.md +20 -0
  18. data/docs/AccountGroupsApi.md +372 -0
  19. data/docs/AccountHealth.md +34 -0
  20. data/docs/AccountHealthDailyCap.md +20 -0
  21. data/docs/AccountSchedule.md +22 -0
  22. data/docs/AccountsApi.md +231 -5
  23. data/docs/ActivityApi.md +87 -0
  24. data/docs/AddCompetitor202Response.md +20 -0
  25. data/docs/AddCompetitor409Response.md +20 -0
  26. data/docs/AddPostToQueueRequest.md +18 -0
  27. data/docs/AgentPageMeta.md +24 -0
  28. data/docs/AgentProposal.md +44 -0
  29. data/docs/AgentProposalDecision.md +18 -0
  30. data/docs/AgentRun.md +44 -0
  31. data/docs/AgentsApi.md +745 -0
  32. data/docs/AnalyticsApi.md +899 -0
  33. data/docs/AnalyticsPeriod.md +24 -0
  34. data/docs/AnalyticsSummary.md +20 -0
  35. data/docs/AnalyticsSummaryData.md +38 -0
  36. data/docs/ApiActivity.md +36 -0
  37. data/docs/ApiActivityOutcome.md +15 -0
  38. data/docs/ApiKey.md +32 -0
  39. data/docs/ApiKeyAbility.md +15 -0
  40. data/docs/ApiKeyInput.md +24 -0
  41. data/docs/ApproveAgentProposal200Response.md +18 -0
  42. data/docs/ApproveAgentProposal409Response.md +20 -0
  43. data/docs/ApproveInboxReplyDraft403Response.md +20 -0
  44. data/docs/ApprovePostRequest.md +24 -0
  45. data/docs/BestPostingTimes.md +20 -0
  46. data/docs/BestPostingTimesTimesInner.md +24 -0
  47. data/docs/BlogToSocial200Response.md +20 -0
  48. data/docs/BlogToSocial429Response.md +18 -0
  49. data/docs/BlogToSocialCaption.md +28 -0
  50. data/docs/BlogToSocialInput.md +44 -0
  51. data/docs/BlogToSocialMedia.md +20 -0
  52. data/docs/BlogToSocialResponse.md +30 -0
  53. data/docs/BrandVoice.md +48 -0
  54. data/docs/BrandVoiceInput.md +46 -0
  55. data/docs/BrandVoiceMeta.md +18 -0
  56. data/docs/CancelSubscription422Response.md +20 -0
  57. data/docs/CancelSubscription422ResponseErrors.md +18 -0
  58. data/docs/CancelSubscriptionRequest.md +18 -0
  59. data/docs/ChannelAccount.md +36 -0
  60. data/docs/CodedError.md +22 -0
  61. data/docs/Competitor.md +34 -0
  62. data/docs/CompetitorDetail.md +38 -0
  63. data/docs/CompetitorInput.md +20 -0
  64. data/docs/CompetitorMedia.md +28 -0
  65. data/docs/CompetitorSnapshot.md +22 -0
  66. data/docs/CompetitorsApi.md +296 -0
  67. data/docs/CompleteChunkedUploadRequest.md +20 -0
  68. data/docs/ConnectChannelInput.md +24 -0
  69. data/docs/CreateAccountGroup201Response.md +18 -0
  70. data/docs/CreateAgent201Response.md +18 -0
  71. data/docs/CreateApiKey201Response.md +18 -0
  72. data/docs/CreateApiKey201ResponseData.md +34 -0
  73. data/docs/CreateHashtagGroup201Response.md +18 -0
  74. data/docs/CreateInboxReplyDraft201Response.md +18 -0
  75. data/docs/CreateMediaFolderRequest.md +20 -0
  76. data/docs/CreateMention201Response.md +18 -0
  77. data/docs/CreateRecyclingRule201Response.md +18 -0
  78. data/docs/CreateReportExport201Response.md +18 -0
  79. data/docs/CreateResellerClient201Response.md +18 -0
  80. data/docs/CreateRssFeed201Response.md +18 -0
  81. data/docs/CreateTemplate201Response.md +18 -0
  82. data/docs/CreateWebhookSubscription201Response.md +18 -0
  83. data/docs/CreateWebhookSubscription201ResponseData.md +30 -0
  84. data/docs/DeleteAgent200Response.md +18 -0
  85. data/docs/DeleteMediaBulkRequest.md +1 -1
  86. data/docs/DeleteMediaBulkRequestItemsInner.md +49 -0
  87. data/docs/DeleteMediaFolderRequest.md +18 -0
  88. data/docs/DeleteResult.md +3 -3
  89. data/docs/GetAccountHealth200Response.md +18 -0
  90. data/docs/GetBrandVoice200Response.md +18 -0
  91. data/docs/GetCompetitor200Response.md +18 -0
  92. data/docs/GetInboxConversation200Response.md +18 -0
  93. data/docs/GetPostingSchedule200Response.md +18 -0
  94. data/docs/GetReportBranding200Response.md +18 -0
  95. data/docs/GuardrailError.md +28 -0
  96. data/docs/HashtagGroup.md +22 -0
  97. data/docs/HashtagGroupInput.md +20 -0
  98. data/docs/HashtagGroupsApi.md +372 -0
  99. data/docs/ImageAltText200Response.md +18 -0
  100. data/docs/ImageAltTextInput.md +18 -0
  101. data/docs/ImageAltTextResponse.md +24 -0
  102. data/docs/ImageCreditBalance.md +28 -0
  103. data/docs/ImageEditInput.md +30 -0
  104. data/docs/ImageGenerate200Response.md +20 -0
  105. data/docs/ImageGenerate429Response.md +18 -0
  106. data/docs/ImageGenerateInput.md +38 -0
  107. data/docs/ImageGenerationResponse.md +30 -0
  108. data/docs/ImagePrompt200Response.md +20 -0
  109. data/docs/ImagePrompt429Response.md +18 -0
  110. data/docs/ImagePromptInput.md +30 -0
  111. data/docs/ImagePromptResponse.md +18 -0
  112. data/docs/ImageVariations200Response.md +18 -0
  113. data/docs/ImageVariationsInput.md +24 -0
  114. data/docs/ImageVariationsResponse.md +26 -0
  115. data/docs/InboxApi.md +758 -0
  116. data/docs/InboxAuthor.md +22 -0
  117. data/docs/InboxConversation.md +46 -0
  118. data/docs/InboxConversationAccount.md +24 -0
  119. data/docs/InboxConversationUpdate.md +20 -0
  120. data/docs/InboxMessage.md +32 -0
  121. data/docs/InboxMessageAuthor.md +22 -0
  122. data/docs/InboxReplyDraft.md +42 -0
  123. data/docs/InboxReplyDraftApprove.md +18 -0
  124. data/docs/InboxReplyDraftEdit.md +18 -0
  125. data/docs/InboxReplyDraftInput.md +20 -0
  126. data/docs/{InitiateChunkedUpload200Response.md → InitiateChunkedUpload201Response.md} +2 -2
  127. data/docs/{InitiateRemoteUpload200Response.md → InitiateRemoteUpload201Response.md} +7 -7
  128. data/docs/{InitiateRemoteUpload200ResponseOneOf.md → InitiateRemoteUpload201ResponseOneOf.md} +2 -2
  129. data/docs/InitiateRemoteUploadRequest.md +3 -1
  130. data/docs/LearnBrandVoiceInput.md +24 -0
  131. data/docs/LearnBrandVoiceResponse.md +20 -0
  132. data/docs/LearnBrandVoiceResponseMeta.md +26 -0
  133. data/docs/ListAccountGroups200Response.md +22 -0
  134. data/docs/ListAgentProposals200Response.md +20 -0
  135. data/docs/ListAgentRuns200Response.md +20 -0
  136. data/docs/ListAgents200Response.md +18 -0
  137. data/docs/ListApiActivity200Response.md +22 -0
  138. data/docs/ListApiKeys200Response.md +18 -0
  139. data/docs/ListCompetitors200Response.md +18 -0
  140. data/docs/ListHashtagGroups200Response.md +22 -0
  141. data/docs/ListInboxConversations200Response.md +22 -0
  142. data/docs/ListInboxReplyDrafts200Response.md +22 -0
  143. data/docs/ListMediaFolders200Response.md +18 -0
  144. data/docs/ListMentions200Response.md +22 -0
  145. data/docs/ListMyWorkspaces200Response.md +18 -0
  146. data/docs/ListRecyclingRules200Response.md +18 -0
  147. data/docs/ListRecyclingRuns200Response.md +18 -0
  148. data/docs/ListReportExports200Response.md +18 -0
  149. data/docs/ListResellerClients200Response.md +20 -0
  150. data/docs/ListRssFeeds200Response.md +18 -0
  151. data/docs/ListTemplates200Response.md +22 -0
  152. data/docs/ListWebhookSubscriptions200Response.md +18 -0
  153. data/docs/Media.md +22 -8
  154. data/docs/MediaApi.md +435 -31
  155. data/docs/MediaBase64Input.md +24 -0
  156. data/docs/MediaFolder.md +24 -0
  157. data/docs/MediaFolderInput.md +20 -0
  158. data/docs/MediaFolderRef.md +20 -0
  159. data/docs/Mention.md +28 -0
  160. data/docs/MentionIdentity.md +24 -0
  161. data/docs/MentionIdentityInput.md +26 -0
  162. data/docs/MentionInput.md +22 -0
  163. data/docs/MentionsApi.md +379 -0
  164. data/docs/MessageOnly.md +18 -0
  165. data/docs/PollRssFeed200Response.md +22 -0
  166. data/docs/Post.md +10 -8
  167. data/docs/PostAnalytics.md +22 -0
  168. data/docs/PostContent.md +1 -1
  169. data/docs/PostInput.md +8 -2
  170. data/docs/PostOptionsInstagram.md +22 -0
  171. data/docs/PostOptionsTikTok.md +34 -0
  172. data/docs/PostOptionsYoutube.md +24 -0
  173. data/docs/PostVersion.md +4 -2
  174. data/docs/PostVersionOptions.md +24 -0
  175. data/docs/PostingSchedule.md +28 -0
  176. data/docs/PostingScheduleApi.md +377 -0
  177. data/docs/PostingScheduleDay.md +22 -0
  178. data/docs/PostingScheduleDayTimesInner.md +18 -0
  179. data/docs/PostingScheduleInput.md +24 -0
  180. data/docs/PostingTimeSlot.md +22 -0
  181. data/docs/PostingTimes.md +32 -0
  182. data/docs/PostingTimesBestInner.md +24 -0
  183. data/docs/PostingTimesDayIntervalsInnerInner.md +28 -0
  184. data/docs/PostingTimesDaysInner.md +24 -0
  185. data/docs/PostsApi.md +1264 -82
  186. data/docs/PreflightResult.md +26 -0
  187. data/docs/PublicWorkspace.md +24 -0
  188. data/docs/PublicWorkspacePivot.md +22 -0
  189. data/docs/PublishProgress.md +22 -0
  190. data/docs/QueueSlots.md +20 -0
  191. data/docs/Receipt.md +8 -8
  192. data/docs/ReceiptsApi.md +15 -1
  193. data/docs/RecommendedPostingTimes.md +26 -0
  194. data/docs/ReconnectLink.md +22 -0
  195. data/docs/RecyclingRule.md +42 -0
  196. data/docs/RecyclingRuleInput.md +34 -0
  197. data/docs/RecyclingRuleSettings.md +28 -0
  198. data/docs/RecyclingRuleUpdate.md +28 -0
  199. data/docs/RecyclingRun.md +28 -0
  200. data/docs/RemoveGenericSubscription422Response.md +18 -0
  201. data/docs/ReportBranding.md +28 -0
  202. data/docs/ReportBrandingInput.md +24 -0
  203. data/docs/ReportExport.md +42 -0
  204. data/docs/ReportExportInput.md +28 -0
  205. data/docs/RepurposeContent200Response.md +20 -0
  206. data/docs/RepurposeInput.md +54 -0
  207. data/docs/RepurposeInputTheme.md +22 -0
  208. data/docs/RepurposeResult.md +32 -0
  209. data/docs/RepurposeResultMedia.md +20 -0
  210. data/docs/RepurposeResultSource.md +22 -0
  211. data/docs/RepurposeSlide.md +20 -0
  212. data/docs/ResellerClient.md +32 -0
  213. data/docs/ResellerClientInput.md +18 -0
  214. data/docs/ResellerClientUsage.md +20 -0
  215. data/docs/RetryPostAccountResult.md +22 -0
  216. data/docs/RssFeed.md +38 -0
  217. data/docs/RssFeedInput.md +30 -0
  218. data/docs/RssFeedUpdate.md +30 -0
  219. data/docs/RunAgent202Response.md +18 -0
  220. data/docs/SchedulePostRequest.md +9 -1
  221. data/docs/ScheduleResult.md +4 -2
  222. data/docs/Subscription.md +5 -5
  223. data/docs/SubscriptionsApi.md +27 -5
  224. data/docs/Tag.md +4 -4
  225. data/docs/TagsApi.md +18 -4
  226. data/docs/Template.md +22 -0
  227. data/docs/TemplateContentItem.md +20 -0
  228. data/docs/TemplateInput.md +20 -0
  229. data/docs/TemplateInputContentInner.md +20 -0
  230. data/docs/TemplatesApi.md +372 -0
  231. data/docs/UpdateMediaRequest.md +6 -2
  232. data/docs/{UploadChunk200Response.md → UploadChunk201Response.md} +2 -2
  233. data/docs/User.md +7 -5
  234. data/docs/UsersApi.md +15 -1
  235. data/docs/WebhookEventName.md +15 -0
  236. data/docs/WebhookEventPayload.md +20 -0
  237. data/docs/WebhookSubscription.md +28 -0
  238. data/docs/WebhookSubscriptionInput.md +24 -0
  239. data/docs/WebhooksApi.md +221 -0
  240. data/docs/Workspace.md +8 -6
  241. data/docs/WorkspaceAgent.md +34 -0
  242. data/docs/WorkspaceAgentInput.md +26 -0
  243. data/docs/WorkspaceAgentSettings.md +26 -0
  244. data/docs/WorkspaceAgentUpdate.md +24 -0
  245. data/docs/WorkspaceInput.md +1 -1
  246. data/docs/WorkspacesApi.md +582 -3
  247. data/docs/XUsage.md +28 -0
  248. data/docs/XUsageCounter.md +20 -0
  249. data/lib/postboost/api/account_groups_api.rb +395 -0
  250. data/lib/postboost/api/accounts_api.rb +233 -4
  251. data/lib/postboost/api/activity_api.rb +97 -0
  252. data/lib/postboost/api/agents_api.rb +771 -0
  253. data/lib/postboost/api/ai_api.rb +884 -0
  254. data/lib/postboost/api/analytics_api.rb +910 -0
  255. data/lib/postboost/api/competitors_api.rb +300 -0
  256. data/lib/postboost/api/hashtag_groups_api.rb +395 -0
  257. data/lib/postboost/api/inbox_api.rb +789 -0
  258. data/lib/postboost/api/media_api.rb +496 -24
  259. data/lib/postboost/api/mentions_api.rb +397 -0
  260. data/lib/postboost/api/posting_schedule_api.rb +389 -0
  261. data/lib/postboost/api/posts_api.rb +1321 -104
  262. data/lib/postboost/api/receipts_api.rb +17 -2
  263. data/lib/postboost/api/subscriptions_api.rb +28 -3
  264. data/lib/postboost/api/tags_api.rb +23 -2
  265. data/lib/postboost/api/templates_api.rb +395 -0
  266. data/lib/postboost/api/users_api.rb +17 -2
  267. data/lib/postboost/api/webhooks_api.rb +228 -0
  268. data/lib/postboost/api/workspaces_api.rb +545 -2
  269. data/lib/postboost/api_client.rb +2 -2
  270. data/lib/postboost/api_error.rb +2 -2
  271. data/lib/postboost/configuration.rb +2 -2
  272. data/lib/postboost/models/account.rb +145 -4
  273. data/lib/postboost/models/account_analytics.rb +308 -0
  274. data/lib/postboost/models/account_analytics_initial_sync.rb +231 -0
  275. data/lib/postboost/models/account_connection_health.rb +389 -0
  276. data/lib/postboost/models/account_errors_inner.rb +105 -0
  277. data/lib/postboost/models/account_errors_inner_one_of.rb +243 -0
  278. data/lib/postboost/models/account_group.rb +271 -0
  279. data/lib/postboost/models/account_group_input.rb +252 -0
  280. data/lib/postboost/models/account_health.rb +352 -0
  281. data/lib/postboost/models/account_health_daily_cap.rb +239 -0
  282. data/lib/postboost/models/account_schedule.rb +255 -0
  283. data/lib/postboost/models/add_competitor202_response.rb +271 -0
  284. data/lib/postboost/models/add_competitor409_response.rb +223 -0
  285. data/lib/postboost/models/add_generic_subscription_request.rb +2 -2
  286. data/lib/postboost/models/add_post_to_queue_request.rb +215 -0
  287. data/lib/postboost/models/agent_page_meta.rb +269 -0
  288. data/lib/postboost/models/agent_proposal.rb +444 -0
  289. data/lib/postboost/models/agent_proposal_decision.rb +233 -0
  290. data/lib/postboost/models/agent_run.rb +434 -0
  291. data/lib/postboost/models/ai_credits.rb +256 -0
  292. data/lib/postboost/models/ai_usage.rb +237 -0
  293. data/lib/postboost/models/ai_usage_text.rb +252 -0
  294. data/lib/postboost/models/analytics_period.rb +270 -0
  295. data/lib/postboost/models/analytics_summary.rb +237 -0
  296. data/lib/postboost/models/analytics_summary_data.rb +327 -0
  297. data/lib/postboost/models/api_activity.rb +359 -0
  298. data/lib/postboost/models/api_activity_outcome.rb +49 -0
  299. data/lib/postboost/models/api_key.rb +308 -0
  300. data/lib/postboost/models/api_key_ability.rb +43 -0
  301. data/lib/postboost/models/api_key_input.rb +316 -0
  302. data/lib/postboost/models/approve_agent_proposal200_response.rb +221 -0
  303. data/lib/postboost/models/approve_agent_proposal409_response.rb +237 -0
  304. data/lib/postboost/models/approve_inbox_reply_draft403_response.rb +264 -0
  305. data/lib/postboost/models/approve_post_request.rb +247 -0
  306. data/lib/postboost/models/best_posting_times.rb +240 -0
  307. data/lib/postboost/models/best_posting_times_times_inner.rb +269 -0
  308. data/lib/postboost/models/blog_to_social200_response.rb +223 -0
  309. data/lib/postboost/models/blog_to_social429_response.rb +214 -0
  310. data/lib/postboost/models/blog_to_social_caption.rb +265 -0
  311. data/lib/postboost/models/blog_to_social_input.rb +548 -0
  312. data/lib/postboost/models/blog_to_social_media.rb +226 -0
  313. data/lib/postboost/models/blog_to_social_response.rb +276 -0
  314. data/lib/postboost/models/brand_voice.rb +531 -0
  315. data/lib/postboost/models/brand_voice_input.rb +646 -0
  316. data/lib/postboost/models/brand_voice_meta.rb +222 -0
  317. data/lib/postboost/models/cancel_subscription422_response.rb +223 -0
  318. data/lib/postboost/models/cancel_subscription422_response_errors.rb +216 -0
  319. data/lib/postboost/models/cancel_subscription_request.rb +217 -0
  320. data/lib/postboost/models/change_subscription_plan_request.rb +2 -2
  321. data/lib/postboost/models/channel_account.rb +380 -0
  322. data/lib/postboost/models/checkout_subscription200_response.rb +2 -2
  323. data/lib/postboost/models/checkout_subscription_request.rb +2 -2
  324. data/lib/postboost/models/coded_error.rb +242 -0
  325. data/lib/postboost/models/competitor.rb +320 -0
  326. data/lib/postboost/models/competitor_detail.rb +358 -0
  327. data/lib/postboost/models/competitor_input.rb +258 -0
  328. data/lib/postboost/models/competitor_media.rb +263 -0
  329. data/lib/postboost/models/competitor_snapshot.rb +234 -0
  330. data/lib/postboost/models/complete_chunked_upload_request.rb +243 -0
  331. data/lib/postboost/models/connect_channel_input.rb +265 -0
  332. data/lib/postboost/models/create_account_group201_response.rb +221 -0
  333. data/lib/postboost/models/create_agent201_response.rb +221 -0
  334. data/lib/postboost/models/create_api_key201_response.rb +221 -0
  335. data/lib/postboost/models/create_api_key201_response_data.rb +327 -0
  336. data/lib/postboost/models/create_hashtag_group201_response.rb +221 -0
  337. data/lib/postboost/models/create_inbox_reply_draft201_response.rb +221 -0
  338. data/lib/postboost/models/create_media_folder_request.rb +258 -0
  339. data/lib/postboost/models/create_mention201_response.rb +214 -0
  340. data/lib/postboost/models/create_recycling_rule201_response.rb +221 -0
  341. data/lib/postboost/models/create_report_export201_response.rb +221 -0
  342. data/lib/postboost/models/create_reseller_client201_response.rb +221 -0
  343. data/lib/postboost/models/create_rss_feed201_response.rb +221 -0
  344. data/lib/postboost/models/create_template201_response.rb +221 -0
  345. data/lib/postboost/models/create_webhook_subscription201_response.rb +221 -0
  346. data/lib/postboost/models/create_webhook_subscription201_response_data.rb +320 -0
  347. data/lib/postboost/models/delete_agent200_response.rb +221 -0
  348. data/lib/postboost/models/delete_media_bulk_request.rb +23 -4
  349. data/lib/postboost/models/delete_media_bulk_request_items_inner.rb +105 -0
  350. data/lib/postboost/models/delete_media_folder_request.rb +216 -0
  351. data/lib/postboost/models/delete_mode.rb +2 -2
  352. data/lib/postboost/models/delete_post_request.rb +2 -2
  353. data/lib/postboost/models/delete_posts_bulk_request.rb +2 -2
  354. data/lib/postboost/models/delete_receipts_bulk_request.rb +2 -2
  355. data/lib/postboost/models/delete_result.rb +23 -2
  356. data/lib/postboost/models/delete_user400_response.rb +2 -2
  357. data/lib/postboost/models/delete_users_bulk_request.rb +2 -2
  358. data/lib/postboost/models/delete_workspaces_bulk_request.rb +2 -2
  359. data/lib/postboost/models/get_account_health200_response.rb +223 -0
  360. data/lib/postboost/models/get_brand_voice200_response.rb +217 -0
  361. data/lib/postboost/models/get_competitor200_response.rb +221 -0
  362. data/lib/postboost/models/get_inbox_conversation200_response.rb +221 -0
  363. data/lib/postboost/models/get_posting_schedule200_response.rb +221 -0
  364. data/lib/postboost/models/get_remote_upload_status200_response.rb +2 -2
  365. data/lib/postboost/models/get_report_branding200_response.rb +221 -0
  366. data/lib/postboost/models/guardrail_error.rb +304 -0
  367. data/lib/postboost/models/hashtag_group.rb +254 -0
  368. data/lib/postboost/models/hashtag_group_input.rb +275 -0
  369. data/lib/postboost/models/image_alt_text200_response.rb +221 -0
  370. data/lib/postboost/models/image_alt_text_input.rb +221 -0
  371. data/lib/postboost/models/image_alt_text_response.rb +262 -0
  372. data/lib/postboost/models/image_credit_balance.rb +295 -0
  373. data/lib/postboost/models/image_edit_input.rb +387 -0
  374. data/lib/postboost/models/image_generate200_response.rb +230 -0
  375. data/lib/postboost/models/image_generate429_response.rb +214 -0
  376. data/lib/postboost/models/image_generate_input.rb +479 -0
  377. data/lib/postboost/models/image_generation_response.rb +305 -0
  378. data/lib/postboost/models/image_prompt200_response.rb +230 -0
  379. data/lib/postboost/models/image_prompt429_response.rb +214 -0
  380. data/lib/postboost/models/image_prompt_input.rb +377 -0
  381. data/lib/postboost/models/image_prompt_response.rb +221 -0
  382. data/lib/postboost/models/image_variations200_response.rb +221 -0
  383. data/lib/postboost/models/image_variations_input.rb +328 -0
  384. data/lib/postboost/models/image_variations_response.rb +280 -0
  385. data/lib/postboost/models/inbox_author.rb +235 -0
  386. data/lib/postboost/models/inbox_conversation.rb +425 -0
  387. data/lib/postboost/models/inbox_conversation_account.rb +241 -0
  388. data/lib/postboost/models/inbox_conversation_update.rb +257 -0
  389. data/lib/postboost/models/inbox_message.rb +360 -0
  390. data/lib/postboost/models/inbox_message_author.rb +235 -0
  391. data/lib/postboost/models/inbox_reply_draft.rb +410 -0
  392. data/lib/postboost/models/inbox_reply_draft_approve.rb +215 -0
  393. data/lib/postboost/models/inbox_reply_draft_edit.rb +221 -0
  394. data/lib/postboost/models/inbox_reply_draft_input.rb +232 -0
  395. data/lib/postboost/models/{initiate_chunked_upload200_response.rb → initiate_chunked_upload201_response.rb} +5 -5
  396. data/lib/postboost/models/initiate_chunked_upload_request.rb +2 -2
  397. data/lib/postboost/models/{initiate_remote_upload200_response.rb → initiate_remote_upload201_response.rb} +4 -4
  398. data/lib/postboost/models/{initiate_remote_upload200_response_one_of.rb → initiate_remote_upload201_response_one_of.rb} +5 -5
  399. data/lib/postboost/models/initiate_remote_upload_request.rb +16 -6
  400. data/lib/postboost/models/learn_brand_voice_input.rb +300 -0
  401. data/lib/postboost/models/learn_brand_voice_response.rb +237 -0
  402. data/lib/postboost/models/learn_brand_voice_response_meta.rb +281 -0
  403. data/lib/postboost/models/list_account_groups200_response.rb +248 -0
  404. data/lib/postboost/models/list_accounts200_response.rb +2 -2
  405. data/lib/postboost/models/list_agent_proposals200_response.rb +239 -0
  406. data/lib/postboost/models/list_agent_runs200_response.rb +239 -0
  407. data/lib/postboost/models/list_agents200_response.rb +223 -0
  408. data/lib/postboost/models/list_api_activity200_response.rb +241 -0
  409. data/lib/postboost/models/list_api_keys200_response.rb +223 -0
  410. data/lib/postboost/models/list_competitors200_response.rb +223 -0
  411. data/lib/postboost/models/list_hashtag_groups200_response.rb +248 -0
  412. data/lib/postboost/models/list_inbox_conversations200_response.rb +241 -0
  413. data/lib/postboost/models/list_inbox_reply_drafts200_response.rb +241 -0
  414. data/lib/postboost/models/list_media200_response.rb +2 -2
  415. data/lib/postboost/models/list_media_folders200_response.rb +216 -0
  416. data/lib/postboost/models/list_mentions200_response.rb +241 -0
  417. data/lib/postboost/models/list_my_workspaces200_response.rb +216 -0
  418. data/lib/postboost/models/list_posts200_response.rb +2 -2
  419. data/lib/postboost/models/list_receipts200_response.rb +2 -2
  420. data/lib/postboost/models/list_recycling_rules200_response.rb +223 -0
  421. data/lib/postboost/models/list_recycling_runs200_response.rb +223 -0
  422. data/lib/postboost/models/list_report_exports200_response.rb +223 -0
  423. data/lib/postboost/models/list_reseller_clients200_response.rb +239 -0
  424. data/lib/postboost/models/list_rss_feeds200_response.rb +223 -0
  425. data/lib/postboost/models/list_tags200_response.rb +2 -2
  426. data/lib/postboost/models/list_templates200_response.rb +248 -0
  427. data/lib/postboost/models/list_users200_response.rb +2 -2
  428. data/lib/postboost/models/list_webhook_subscriptions200_response.rb +223 -0
  429. data/lib/postboost/models/list_workspaces200_response.rb +2 -2
  430. data/lib/postboost/models/media.rb +128 -3
  431. data/lib/postboost/models/media_base64_input.rb +295 -0
  432. data/lib/postboost/models/media_folder.rb +271 -0
  433. data/lib/postboost/models/media_folder_input.rb +244 -0
  434. data/lib/postboost/models/media_folder_ref.rb +237 -0
  435. data/lib/postboost/models/mention.rb +290 -0
  436. data/lib/postboost/models/mention_identity.rb +257 -0
  437. data/lib/postboost/models/mention_identity_input.rb +325 -0
  438. data/lib/postboost/models/mention_input.rb +279 -0
  439. data/lib/postboost/models/message_only.rb +221 -0
  440. data/lib/postboost/models/pagination_meta.rb +2 -2
  441. data/lib/postboost/models/pagination_meta_links.rb +4 -2
  442. data/lib/postboost/models/pagination_meta_meta.rb +4 -2
  443. data/lib/postboost/models/poll_rss_feed200_response.rb +255 -0
  444. data/lib/postboost/models/post.rb +69 -3
  445. data/lib/postboost/models/post_analytics.rb +252 -0
  446. data/lib/postboost/models/post_content.rb +4 -3
  447. data/lib/postboost/models/post_input.rb +41 -6
  448. data/lib/postboost/models/post_options_instagram.rb +294 -0
  449. data/lib/postboost/models/post_options_tik_tok.rb +329 -0
  450. data/lib/postboost/models/post_options_youtube.rb +302 -0
  451. data/lib/postboost/models/post_status.rb +6 -3
  452. data/lib/postboost/models/post_version.rb +53 -5
  453. data/lib/postboost/models/post_version_options.rb +242 -0
  454. data/lib/postboost/models/posting_schedule.rb +303 -0
  455. data/lib/postboost/models/posting_schedule_day.rb +285 -0
  456. data/lib/postboost/models/posting_schedule_day_times_inner.rb +222 -0
  457. data/lib/postboost/models/posting_schedule_input.rb +312 -0
  458. data/lib/postboost/models/posting_time_slot.rb +315 -0
  459. data/lib/postboost/models/posting_times.rb +362 -0
  460. data/lib/postboost/models/posting_times_best_inner.rb +269 -0
  461. data/lib/postboost/models/posting_times_day_intervals_inner_inner.rb +370 -0
  462. data/lib/postboost/models/posting_times_days_inner.rb +366 -0
  463. data/lib/postboost/models/preflight_result.rb +291 -0
  464. data/lib/postboost/models/public_workspace.rb +262 -0
  465. data/lib/postboost/models/public_workspace_pivot.rb +267 -0
  466. data/lib/postboost/models/publish_progress.rb +254 -0
  467. data/lib/postboost/models/queue_slots.rb +237 -0
  468. data/lib/postboost/models/receipt.rb +58 -2
  469. data/lib/postboost/models/receipt_input.rb +2 -2
  470. data/lib/postboost/models/receipt_update_input.rb +2 -2
  471. data/lib/postboost/models/recommended_posting_times.rb +282 -0
  472. data/lib/postboost/models/reconnect_link.rb +254 -0
  473. data/lib/postboost/models/recycling_rule.rb +434 -0
  474. data/lib/postboost/models/recycling_rule_input.rb +435 -0
  475. data/lib/postboost/models/recycling_rule_settings.rb +381 -0
  476. data/lib/postboost/models/recycling_rule_update.rb +366 -0
  477. data/lib/postboost/models/recycling_run.rb +320 -0
  478. data/lib/postboost/models/remove_generic_subscription422_response.rb +214 -0
  479. data/lib/postboost/models/remove_user_from_workspace_request.rb +2 -2
  480. data/lib/postboost/models/report_branding.rb +285 -0
  481. data/lib/postboost/models/report_branding_input.rb +293 -0
  482. data/lib/postboost/models/report_export.rb +442 -0
  483. data/lib/postboost/models/report_export_input.rb +350 -0
  484. data/lib/postboost/models/repurpose_content200_response.rb +237 -0
  485. data/lib/postboost/models/repurpose_input.rb +667 -0
  486. data/lib/postboost/models/repurpose_input_theme.rb +296 -0
  487. data/lib/postboost/models/repurpose_result.rb +328 -0
  488. data/lib/postboost/models/repurpose_result_media.rb +224 -0
  489. data/lib/postboost/models/repurpose_result_source.rb +283 -0
  490. data/lib/postboost/models/repurpose_slide.rb +239 -0
  491. data/lib/postboost/models/reseller_client.rb +360 -0
  492. data/lib/postboost/models/reseller_client_input.rb +240 -0
  493. data/lib/postboost/models/reseller_client_usage.rb +239 -0
  494. data/lib/postboost/models/retry_post_account_result.rb +275 -0
  495. data/lib/postboost/models/rss_feed.rb +402 -0
  496. data/lib/postboost/models/rss_feed_input.rb +433 -0
  497. data/lib/postboost/models/rss_feed_update.rb +396 -0
  498. data/lib/postboost/models/run_agent202_response.rb +221 -0
  499. data/lib/postboost/models/schedule_post_request.rb +48 -6
  500. data/lib/postboost/models/schedule_result.rb +23 -6
  501. data/lib/postboost/models/subscription.rb +37 -2
  502. data/lib/postboost/models/subscription_input.rb +2 -2
  503. data/lib/postboost/models/subscription_status.rb +2 -2
  504. data/lib/postboost/models/subscription_update_input.rb +2 -2
  505. data/lib/postboost/models/tag.rb +30 -2
  506. data/lib/postboost/models/tag_input.rb +2 -2
  507. data/lib/postboost/models/template.rb +256 -0
  508. data/lib/postboost/models/template_content_item.rb +240 -0
  509. data/lib/postboost/models/template_input.rb +271 -0
  510. data/lib/postboost/models/template_input_content_inner.rb +227 -0
  511. data/lib/postboost/models/update_media_request.rb +61 -11
  512. data/lib/postboost/models/{upload_chunk200_response.rb → upload_chunk201_response.rb} +5 -5
  513. data/lib/postboost/models/user.rb +48 -3
  514. data/lib/postboost/models/user_input.rb +2 -2
  515. data/lib/postboost/models/user_update_input.rb +2 -2
  516. data/lib/postboost/models/webhook_event_name.rb +50 -0
  517. data/lib/postboost/models/webhook_event_payload.rb +262 -0
  518. data/lib/postboost/models/webhook_subscription.rb +297 -0
  519. data/lib/postboost/models/webhook_subscription_input.rb +349 -0
  520. data/lib/postboost/models/workspace.rb +42 -3
  521. data/lib/postboost/models/workspace_agent.rb +381 -0
  522. data/lib/postboost/models/workspace_agent_input.rb +326 -0
  523. data/lib/postboost/models/workspace_agent_settings.rb +340 -0
  524. data/lib/postboost/models/workspace_agent_update.rb +294 -0
  525. data/lib/postboost/models/workspace_input.rb +3 -9
  526. data/lib/postboost/models/workspace_user_input.rb +2 -2
  527. data/lib/postboost/models/x_usage.rb +303 -0
  528. data/lib/postboost/models/x_usage_counter.rb +234 -0
  529. data/lib/postboost/version.rb +3 -3
  530. data/lib/postboost.rb +219 -6
  531. data/postboost.gemspec +3 -3
  532. data/spec/api/account_groups_api_spec.rb +102 -0
  533. data/spec/api/accounts_api_spec.rb +46 -3
  534. data/spec/api/activity_api_spec.rb +51 -0
  535. data/spec/api/agents_api_spec.rb +170 -0
  536. data/spec/api/ai_api_spec.rb +189 -0
  537. data/spec/api/analytics_api_spec.rb +201 -0
  538. data/spec/api/competitors_api_spec.rb +87 -0
  539. data/spec/api/hashtag_groups_api_spec.rb +102 -0
  540. data/spec/api/inbox_api_spec.rb +178 -0
  541. data/spec/api/media_api_spec.rb +92 -11
  542. data/spec/api/mentions_api_spec.rb +104 -0
  543. data/spec/api/posting_schedule_api_spec.rb +102 -0
  544. data/spec/api/posts_api_spec.rb +224 -6
  545. data/spec/api/receipts_api_spec.rb +9 -2
  546. data/spec/api/subscriptions_api_spec.rb +12 -2
  547. data/spec/api/tags_api_spec.rb +8 -2
  548. data/spec/api/templates_api_spec.rb +102 -0
  549. data/spec/api/users_api_spec.rb +9 -2
  550. data/spec/api/webhooks_api_spec.rb +73 -0
  551. data/spec/api/workspaces_api_spec.rb +108 -2
  552. data/spec/models/account_analytics_initial_sync_spec.rb +42 -0
  553. data/spec/models/account_analytics_spec.rb +66 -0
  554. data/spec/models/account_connection_health_spec.rb +92 -0
  555. data/spec/models/account_errors_inner_one_of_spec.rb +54 -0
  556. data/spec/models/account_errors_inner_spec.rb +32 -0
  557. data/spec/models/account_group_input_spec.rb +42 -0
  558. data/spec/models/account_group_spec.rb +54 -0
  559. data/spec/models/account_health_daily_cap_spec.rb +42 -0
  560. data/spec/models/account_health_spec.rb +84 -0
  561. data/spec/models/account_schedule_spec.rb +48 -0
  562. data/spec/models/account_spec.rb +36 -2
  563. data/spec/models/add_competitor202_response_spec.rb +46 -0
  564. data/spec/models/add_competitor409_response_spec.rb +42 -0
  565. data/spec/models/add_generic_subscription_request_spec.rb +2 -2
  566. data/spec/models/add_post_to_queue_request_spec.rb +36 -0
  567. data/spec/models/agent_page_meta_spec.rb +54 -0
  568. data/spec/models/agent_proposal_decision_spec.rb +36 -0
  569. data/spec/models/agent_proposal_spec.rb +126 -0
  570. data/spec/models/agent_run_spec.rb +122 -0
  571. data/spec/models/ai_credits_spec.rb +48 -0
  572. data/spec/models/ai_usage_spec.rb +42 -0
  573. data/spec/models/ai_usage_text_spec.rb +54 -0
  574. data/spec/models/analytics_period_spec.rb +54 -0
  575. data/spec/models/analytics_summary_data_spec.rb +96 -0
  576. data/spec/models/analytics_summary_spec.rb +42 -0
  577. data/spec/models/api_activity_outcome_spec.rb +30 -0
  578. data/spec/models/api_activity_spec.rb +90 -0
  579. data/spec/models/api_key_ability_spec.rb +30 -0
  580. data/spec/models/api_key_input_spec.rb +54 -0
  581. data/spec/models/api_key_spec.rb +78 -0
  582. data/spec/models/approve_agent_proposal200_response_spec.rb +36 -0
  583. data/spec/models/approve_agent_proposal409_response_spec.rb +42 -0
  584. data/spec/models/approve_inbox_reply_draft403_response_spec.rb +46 -0
  585. data/spec/models/approve_post_request_spec.rb +54 -0
  586. data/spec/models/best_posting_times_spec.rb +42 -0
  587. data/spec/models/best_posting_times_times_inner_spec.rb +54 -0
  588. data/spec/models/blog_to_social200_response_spec.rb +42 -0
  589. data/spec/models/blog_to_social429_response_spec.rb +36 -0
  590. data/spec/models/blog_to_social_caption_spec.rb +66 -0
  591. data/spec/models/blog_to_social_input_spec.rb +134 -0
  592. data/spec/models/blog_to_social_media_spec.rb +42 -0
  593. data/spec/models/blog_to_social_response_spec.rb +72 -0
  594. data/spec/models/brand_voice_input_spec.rb +128 -0
  595. data/spec/models/brand_voice_meta_spec.rb +36 -0
  596. data/spec/models/brand_voice_spec.rb +134 -0
  597. data/spec/models/cancel_subscription422_response_errors_spec.rb +36 -0
  598. data/spec/models/cancel_subscription422_response_spec.rb +42 -0
  599. data/spec/models/cancel_subscription_request_spec.rb +36 -0
  600. data/spec/models/change_subscription_plan_request_spec.rb +2 -2
  601. data/spec/models/channel_account_spec.rb +94 -0
  602. data/spec/models/checkout_subscription200_response_spec.rb +2 -2
  603. data/spec/models/checkout_subscription_request_spec.rb +2 -2
  604. data/spec/models/coded_error_spec.rb +48 -0
  605. data/spec/models/competitor_detail_spec.rb +96 -0
  606. data/spec/models/competitor_input_spec.rb +42 -0
  607. data/spec/models/competitor_media_spec.rb +66 -0
  608. data/spec/models/competitor_snapshot_spec.rb +48 -0
  609. data/spec/models/competitor_spec.rb +84 -0
  610. data/spec/models/complete_chunked_upload_request_spec.rb +42 -0
  611. data/spec/models/connect_channel_input_spec.rb +54 -0
  612. data/spec/models/create_account_group201_response_spec.rb +36 -0
  613. data/spec/models/create_agent201_response_spec.rb +36 -0
  614. data/spec/models/create_api_key201_response_data_spec.rb +84 -0
  615. data/spec/models/create_api_key201_response_spec.rb +36 -0
  616. data/spec/models/create_hashtag_group201_response_spec.rb +36 -0
  617. data/spec/models/create_inbox_reply_draft201_response_spec.rb +36 -0
  618. data/spec/models/create_media_folder_request_spec.rb +42 -0
  619. data/spec/models/create_mention201_response_spec.rb +36 -0
  620. data/spec/models/create_recycling_rule201_response_spec.rb +36 -0
  621. data/spec/models/create_report_export201_response_spec.rb +36 -0
  622. data/spec/models/create_reseller_client201_response_spec.rb +36 -0
  623. data/spec/models/create_rss_feed201_response_spec.rb +36 -0
  624. data/spec/models/create_template201_response_spec.rb +36 -0
  625. data/spec/models/create_webhook_subscription201_response_data_spec.rb +72 -0
  626. data/spec/models/create_webhook_subscription201_response_spec.rb +36 -0
  627. data/spec/models/delete_agent200_response_spec.rb +36 -0
  628. data/spec/models/delete_media_bulk_request_items_inner_spec.rb +32 -0
  629. data/spec/models/delete_media_bulk_request_spec.rb +2 -2
  630. data/spec/models/delete_media_folder_request_spec.rb +36 -0
  631. data/spec/models/delete_mode_spec.rb +2 -2
  632. data/spec/models/delete_post_request_spec.rb +2 -2
  633. data/spec/models/delete_posts_bulk_request_spec.rb +2 -2
  634. data/spec/models/delete_receipts_bulk_request_spec.rb +2 -2
  635. data/spec/models/delete_result_spec.rb +2 -2
  636. data/spec/models/delete_user400_response_spec.rb +2 -2
  637. data/spec/models/delete_users_bulk_request_spec.rb +2 -2
  638. data/spec/models/delete_workspaces_bulk_request_spec.rb +2 -2
  639. data/spec/models/get_account_health200_response_spec.rb +36 -0
  640. data/spec/models/get_brand_voice200_response_spec.rb +36 -0
  641. data/spec/models/get_competitor200_response_spec.rb +36 -0
  642. data/spec/models/get_inbox_conversation200_response_spec.rb +36 -0
  643. data/spec/models/get_posting_schedule200_response_spec.rb +36 -0
  644. data/spec/models/get_remote_upload_status200_response_spec.rb +2 -2
  645. data/spec/models/get_report_branding200_response_spec.rb +36 -0
  646. data/spec/models/guardrail_error_spec.rb +70 -0
  647. data/spec/models/hashtag_group_input_spec.rb +42 -0
  648. data/spec/models/hashtag_group_spec.rb +48 -0
  649. data/spec/models/image_alt_text200_response_spec.rb +36 -0
  650. data/spec/models/image_alt_text_input_spec.rb +36 -0
  651. data/spec/models/image_alt_text_response_spec.rb +54 -0
  652. data/spec/models/image_credit_balance_spec.rb +66 -0
  653. data/spec/models/image_edit_input_spec.rb +80 -0
  654. data/spec/models/image_generate200_response_spec.rb +42 -0
  655. data/spec/models/image_generate429_response_spec.rb +36 -0
  656. data/spec/models/image_generate_input_spec.rb +108 -0
  657. data/spec/models/image_generation_response_spec.rb +72 -0
  658. data/spec/models/image_prompt200_response_spec.rb +42 -0
  659. data/spec/models/image_prompt429_response_spec.rb +36 -0
  660. data/spec/models/image_prompt_input_spec.rb +76 -0
  661. data/spec/models/image_prompt_response_spec.rb +36 -0
  662. data/spec/models/image_variations200_response_spec.rb +36 -0
  663. data/spec/models/image_variations_input_spec.rb +62 -0
  664. data/spec/models/image_variations_response_spec.rb +60 -0
  665. data/spec/models/inbox_author_spec.rb +48 -0
  666. data/spec/models/inbox_conversation_account_spec.rb +54 -0
  667. data/spec/models/inbox_conversation_spec.rb +128 -0
  668. data/spec/models/inbox_conversation_update_spec.rb +46 -0
  669. data/spec/models/inbox_message_author_spec.rb +48 -0
  670. data/spec/models/inbox_message_spec.rb +90 -0
  671. data/spec/models/inbox_reply_draft_approve_spec.rb +36 -0
  672. data/spec/models/inbox_reply_draft_edit_spec.rb +36 -0
  673. data/spec/models/inbox_reply_draft_input_spec.rb +42 -0
  674. data/spec/models/inbox_reply_draft_spec.rb +116 -0
  675. data/spec/models/initiate_chunked_upload201_response_spec.rb +48 -0
  676. data/spec/models/initiate_chunked_upload_request_spec.rb +2 -2
  677. data/spec/models/initiate_remote_upload201_response_one_of_spec.rb +36 -0
  678. data/spec/models/initiate_remote_upload201_response_spec.rb +32 -0
  679. data/spec/models/initiate_remote_upload_request_spec.rb +8 -2
  680. data/spec/models/learn_brand_voice_input_spec.rb +54 -0
  681. data/spec/models/learn_brand_voice_response_meta_spec.rb +60 -0
  682. data/spec/models/learn_brand_voice_response_spec.rb +42 -0
  683. data/spec/models/list_account_groups200_response_spec.rb +48 -0
  684. data/spec/models/list_accounts200_response_spec.rb +2 -2
  685. data/spec/models/list_agent_proposals200_response_spec.rb +42 -0
  686. data/spec/models/list_agent_runs200_response_spec.rb +42 -0
  687. data/spec/models/list_agents200_response_spec.rb +36 -0
  688. data/spec/models/list_api_activity200_response_spec.rb +48 -0
  689. data/spec/models/list_api_keys200_response_spec.rb +36 -0
  690. data/spec/models/list_competitors200_response_spec.rb +36 -0
  691. data/spec/models/list_hashtag_groups200_response_spec.rb +48 -0
  692. data/spec/models/list_inbox_conversations200_response_spec.rb +48 -0
  693. data/spec/models/list_inbox_reply_drafts200_response_spec.rb +48 -0
  694. data/spec/models/list_media200_response_spec.rb +2 -2
  695. data/spec/models/list_media_folders200_response_spec.rb +36 -0
  696. data/spec/models/list_mentions200_response_spec.rb +48 -0
  697. data/spec/models/list_my_workspaces200_response_spec.rb +36 -0
  698. data/spec/models/list_posts200_response_spec.rb +2 -2
  699. data/spec/models/list_receipts200_response_spec.rb +2 -2
  700. data/spec/models/list_recycling_rules200_response_spec.rb +36 -0
  701. data/spec/models/list_recycling_runs200_response_spec.rb +36 -0
  702. data/spec/models/list_report_exports200_response_spec.rb +36 -0
  703. data/spec/models/list_reseller_clients200_response_spec.rb +42 -0
  704. data/spec/models/list_rss_feeds200_response_spec.rb +36 -0
  705. data/spec/models/list_tags200_response_spec.rb +2 -2
  706. data/spec/models/list_templates200_response_spec.rb +48 -0
  707. data/spec/models/list_users200_response_spec.rb +2 -2
  708. data/spec/models/list_webhook_subscriptions200_response_spec.rb +36 -0
  709. data/spec/models/list_workspaces200_response_spec.rb +2 -2
  710. data/spec/models/media_base64_input_spec.rb +54 -0
  711. data/spec/models/media_folder_input_spec.rb +42 -0
  712. data/spec/models/media_folder_ref_spec.rb +42 -0
  713. data/spec/models/media_folder_spec.rb +54 -0
  714. data/spec/models/media_spec.rb +44 -2
  715. data/spec/models/mention_identity_input_spec.rb +60 -0
  716. data/spec/models/mention_identity_spec.rb +54 -0
  717. data/spec/models/mention_input_spec.rb +48 -0
  718. data/spec/models/mention_spec.rb +66 -0
  719. data/spec/models/message_only_spec.rb +36 -0
  720. data/spec/models/pagination_meta_links_spec.rb +2 -2
  721. data/spec/models/pagination_meta_meta_spec.rb +2 -2
  722. data/spec/models/pagination_meta_spec.rb +2 -2
  723. data/spec/models/poll_rss_feed200_response_spec.rb +48 -0
  724. data/spec/models/post_analytics_spec.rb +48 -0
  725. data/spec/models/post_content_spec.rb +2 -2
  726. data/spec/models/post_input_spec.rb +20 -2
  727. data/spec/models/post_options_instagram_spec.rb +52 -0
  728. data/spec/models/post_options_tik_tok_spec.rb +88 -0
  729. data/spec/models/post_options_youtube_spec.rb +58 -0
  730. data/spec/models/post_spec.rb +8 -2
  731. data/spec/models/post_status_spec.rb +2 -2
  732. data/spec/models/post_version_options_spec.rb +54 -0
  733. data/spec/models/post_version_spec.rb +8 -2
  734. data/spec/models/posting_schedule_day_spec.rb +48 -0
  735. data/spec/models/posting_schedule_day_times_inner_spec.rb +36 -0
  736. data/spec/models/posting_schedule_input_spec.rb +54 -0
  737. data/spec/models/posting_schedule_spec.rb +66 -0
  738. data/spec/models/posting_time_slot_spec.rb +52 -0
  739. data/spec/models/posting_times_best_inner_spec.rb +54 -0
  740. data/spec/models/posting_times_day_intervals_inner_inner_spec.rb +70 -0
  741. data/spec/models/posting_times_days_inner_spec.rb +58 -0
  742. data/spec/models/posting_times_spec.rb +78 -0
  743. data/spec/models/preflight_result_spec.rb +60 -0
  744. data/spec/models/public_workspace_pivot_spec.rb +52 -0
  745. data/spec/models/public_workspace_spec.rb +54 -0
  746. data/spec/models/publish_progress_spec.rb +48 -0
  747. data/spec/models/queue_slots_spec.rb +42 -0
  748. data/spec/models/receipt_input_spec.rb +2 -2
  749. data/spec/models/receipt_spec.rb +2 -2
  750. data/spec/models/receipt_update_input_spec.rb +2 -2
  751. data/spec/models/recommended_posting_times_spec.rb +60 -0
  752. data/spec/models/reconnect_link_spec.rb +48 -0
  753. data/spec/models/recycling_rule_input_spec.rb +92 -0
  754. data/spec/models/recycling_rule_settings_spec.rb +70 -0
  755. data/spec/models/recycling_rule_spec.rb +116 -0
  756. data/spec/models/recycling_rule_update_spec.rb +70 -0
  757. data/spec/models/recycling_run_spec.rb +70 -0
  758. data/spec/models/remove_generic_subscription422_response_spec.rb +36 -0
  759. data/spec/models/remove_user_from_workspace_request_spec.rb +2 -2
  760. data/spec/models/report_branding_input_spec.rb +54 -0
  761. data/spec/models/report_branding_spec.rb +66 -0
  762. data/spec/models/report_export_input_spec.rb +78 -0
  763. data/spec/models/report_export_spec.rb +120 -0
  764. data/spec/models/repurpose_content200_response_spec.rb +42 -0
  765. data/spec/models/repurpose_input_spec.rb +164 -0
  766. data/spec/models/repurpose_input_theme_spec.rb +48 -0
  767. data/spec/models/repurpose_result_media_spec.rb +42 -0
  768. data/spec/models/repurpose_result_source_spec.rb +52 -0
  769. data/spec/models/repurpose_result_spec.rb +78 -0
  770. data/spec/models/repurpose_slide_spec.rb +42 -0
  771. data/spec/models/reseller_client_input_spec.rb +36 -0
  772. data/spec/models/reseller_client_spec.rb +82 -0
  773. data/spec/models/reseller_client_usage_spec.rb +42 -0
  774. data/spec/models/retry_post_account_result_spec.rb +48 -0
  775. data/spec/models/rss_feed_input_spec.rb +76 -0
  776. data/spec/models/rss_feed_spec.rb +100 -0
  777. data/spec/models/rss_feed_update_spec.rb +76 -0
  778. data/spec/models/run_agent202_response_spec.rb +36 -0
  779. data/spec/models/schedule_post_request_spec.rb +26 -2
  780. data/spec/models/schedule_result_spec.rb +8 -2
  781. data/spec/models/subscription_input_spec.rb +2 -2
  782. data/spec/models/subscription_spec.rb +2 -2
  783. data/spec/models/subscription_status_spec.rb +2 -2
  784. data/spec/models/subscription_update_input_spec.rb +2 -2
  785. data/spec/models/tag_input_spec.rb +2 -2
  786. data/spec/models/tag_spec.rb +2 -2
  787. data/spec/models/template_content_item_spec.rb +42 -0
  788. data/spec/models/template_input_content_inner_spec.rb +42 -0
  789. data/spec/models/template_input_spec.rb +42 -0
  790. data/spec/models/template_spec.rb +48 -0
  791. data/spec/models/update_media_request_spec.rb +14 -2
  792. data/spec/models/upload_chunk201_response_spec.rb +36 -0
  793. data/spec/models/user_input_spec.rb +2 -2
  794. data/spec/models/user_spec.rb +8 -2
  795. data/spec/models/user_update_input_spec.rb +2 -2
  796. data/spec/models/webhook_event_name_spec.rb +30 -0
  797. data/spec/models/webhook_event_payload_spec.rb +42 -0
  798. data/spec/models/webhook_subscription_input_spec.rb +58 -0
  799. data/spec/models/webhook_subscription_spec.rb +66 -0
  800. data/spec/models/workspace_agent_input_spec.rb +68 -0
  801. data/spec/models/workspace_agent_settings_spec.rb +60 -0
  802. data/spec/models/workspace_agent_spec.rb +92 -0
  803. data/spec/models/workspace_agent_update_spec.rb +58 -0
  804. data/spec/models/workspace_input_spec.rb +2 -2
  805. data/spec/models/workspace_spec.rb +8 -2
  806. data/spec/models/workspace_user_input_spec.rb +2 -2
  807. data/spec/models/x_usage_counter_spec.rb +42 -0
  808. data/spec/models/x_usage_spec.rb +66 -0
  809. data/spec/spec_helper.rb +2 -2
  810. metadata +943 -76
  811. data/git_push.sh +0 -57
  812. data/spec/models/initiate_chunked_upload200_response_spec.rb +0 -48
  813. data/spec/models/initiate_remote_upload200_response_one_of_spec.rb +0 -36
  814. data/spec/models/initiate_remote_upload200_response_spec.rb +0 -32
  815. data/spec/models/upload_chunk200_response_spec.rb +0 -36
@@ -0,0 +1,235 @@
1
+ =begin
2
+ #PostBoost API
3
+
4
+ #The PostBoost REST API lets you publish, schedule, and analyze social media posts across 12+ platforms from a single integration. No OAuth apps to maintain — PostBoost handles platform authorization for you. ## Base URL All workspace-scoped endpoints are prefixed with `/{workspaceUuid}`. Panel/admin endpoints are prefixed with `/panel`. ## Plan access Every workspace-scoped endpoint returns `403` when the workspace's plan does not include API access (capability `api`). ## Dates and times Post dates and times (`date`, `time`, `accounts_schedule`) are read in the request's `timezone` when one is given, otherwise in the workspace timezone. ## Idempotent requests Send an `Idempotency-Key` header (any unique string, for example a UUID) with a `POST`. Repeating the request with the same key within 24 hours returns the stored response with `Idempotent-Replayed: true` and creates nothing new. Reusing a key with a different body returns `422`; a request still in progress with the same key returns `409`. `5xx` and `429` responses are not stored, so they can be retried with the same key. ## Guardrails for automated clients Create and update requests are checked before anything is written: a post whose content matches one created for the same account in the last 24 hours returns `409` (`code: duplicate_post`, override with `allow_duplicate: true`), scheduling past an account's daily cap returns `429` (`code: account_daily_cap_reached`), and scheduling to an account that must be reconnected returns `422` (`code: account_unauthorized` or `account_token_missing`). Use `POST /{workspaceUuid}/posts/validate` for a dry run and `GET /{workspaceUuid}/activity` to review what API clients did. ## Authentication All requests require a Bearer token in the `Authorization` header. Generate tokens in your PostBoost dashboard under **Settings → Access Tokens**. ``` Authorization: Bearer YOUR_API_TOKEN ```
5
+
6
+ The version of the OpenAPI document: 1.14.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 InboxAuthor
18
+ attr_accessor :name
19
+
20
+ attr_accessor :handle
21
+
22
+ attr_accessor :avatar_url
23
+
24
+ # Attribute mapping from ruby-style variable name to JSON key.
25
+ def self.attribute_map
26
+ {
27
+ :'name' => :'name',
28
+ :'handle' => :'handle',
29
+ :'avatar_url' => :'avatar_url'
30
+ }
31
+ end
32
+
33
+ # Returns all the JSON keys this model knows about
34
+ def self.acceptable_attributes
35
+ attribute_map.values
36
+ end
37
+
38
+ # Attribute type mapping.
39
+ def self.openapi_types
40
+ {
41
+ :'name' => :'String',
42
+ :'handle' => :'String',
43
+ :'avatar_url' => :'String'
44
+ }
45
+ end
46
+
47
+ # List of attributes with nullable: true
48
+ def self.openapi_nullable
49
+ Set.new([
50
+ :'name',
51
+ :'handle',
52
+ :'avatar_url'
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::InboxAuthor` 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::InboxAuthor`. 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?(:'name')
72
+ self.name = attributes[:'name']
73
+ end
74
+
75
+ if attributes.key?(:'handle')
76
+ self.handle = attributes[:'handle']
77
+ end
78
+
79
+ if attributes.key?(:'avatar_url')
80
+ self.avatar_url = attributes[:'avatar_url']
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
+ invalid_properties
90
+ end
91
+
92
+ # Check to see if the all the properties in the model are valid
93
+ # @return true if the model is valid
94
+ def valid?
95
+ warn '[DEPRECATED] the `valid?` method is obsolete'
96
+ true
97
+ end
98
+
99
+ # Checks equality by comparing each attribute.
100
+ # @param [Object] Object to be compared
101
+ def ==(o)
102
+ return true if self.equal?(o)
103
+ self.class == o.class &&
104
+ name == o.name &&
105
+ handle == o.handle &&
106
+ avatar_url == o.avatar_url
107
+ end
108
+
109
+ # @see the `==` method
110
+ # @param [Object] Object to be compared
111
+ def eql?(o)
112
+ self == o
113
+ end
114
+
115
+ # Calculates hash code according to all attributes.
116
+ # @return [Integer] Hash code
117
+ def hash
118
+ [name, handle, avatar_url].hash
119
+ end
120
+
121
+ # Builds the object from hash
122
+ # @param [Hash] attributes Model attributes in the form of hash
123
+ # @return [Object] Returns the model itself
124
+ def self.build_from_hash(attributes)
125
+ return nil unless attributes.is_a?(Hash)
126
+ attributes = attributes.transform_keys(&:to_sym)
127
+ transformed_hash = {}
128
+ openapi_types.each_pair do |key, type|
129
+ if attributes.key?(attribute_map[key]) && attributes[attribute_map[key]].nil?
130
+ transformed_hash["#{key}"] = nil
131
+ elsif type =~ /\AArray<(.*)>/i
132
+ # check to ensure the input is an array given that the attribute
133
+ # is documented as an array but the input is not
134
+ if attributes[attribute_map[key]].is_a?(Array)
135
+ transformed_hash["#{key}"] = attributes[attribute_map[key]].map { |v| _deserialize($1, v) }
136
+ end
137
+ elsif !attributes[attribute_map[key]].nil?
138
+ transformed_hash["#{key}"] = _deserialize(type, attributes[attribute_map[key]])
139
+ end
140
+ end
141
+ new(transformed_hash)
142
+ end
143
+
144
+ # Deserializes the data based on type
145
+ # @param string type Data type
146
+ # @param string value Value to be deserialized
147
+ # @return [Object] Deserialized data
148
+ def self._deserialize(type, value)
149
+ case type.to_sym
150
+ when :Time
151
+ Time.parse(value)
152
+ when :Date
153
+ Date.parse(value)
154
+ when :String
155
+ value.to_s
156
+ when :Integer
157
+ value.to_i
158
+ when :Float
159
+ value.to_f
160
+ when :Boolean
161
+ if value.to_s =~ /\A(true|t|yes|y|1)\z/i
162
+ true
163
+ else
164
+ false
165
+ end
166
+ when :Object
167
+ # generic object (usually a Hash), return directly
168
+ value
169
+ when /\AArray<(?<inner_type>.+)>\z/
170
+ inner_type = Regexp.last_match[:inner_type]
171
+ value.map { |v| _deserialize(inner_type, v) }
172
+ when /\AHash<(?<k_type>.+?), (?<v_type>.+)>\z/
173
+ k_type = Regexp.last_match[:k_type]
174
+ v_type = Regexp.last_match[:v_type]
175
+ {}.tap do |hash|
176
+ value.each do |k, v|
177
+ hash[_deserialize(k_type, k)] = _deserialize(v_type, v)
178
+ end
179
+ end
180
+ else # model
181
+ # models (e.g. Pet) or oneOf
182
+ klass = PostBoost.const_get(type)
183
+ klass.respond_to?(:openapi_any_of) || klass.respond_to?(:openapi_one_of) ? klass.build(value) : klass.build_from_hash(value)
184
+ end
185
+ end
186
+
187
+ # Returns the string representation of the object
188
+ # @return [String] String presentation of the object
189
+ def to_s
190
+ to_hash.to_s
191
+ end
192
+
193
+ # to_body is an alias to to_hash (backward compatibility)
194
+ # @return [Hash] Returns the object in the form of hash
195
+ def to_body
196
+ to_hash
197
+ end
198
+
199
+ # Returns the object in the form of hash
200
+ # @return [Hash] Returns the object in the form of hash
201
+ def to_hash
202
+ hash = {}
203
+ self.class.attribute_map.each_pair do |attr, param|
204
+ value = self.send(attr)
205
+ if value.nil?
206
+ is_nullable = self.class.openapi_nullable.include?(attr)
207
+ next if !is_nullable || (is_nullable && !instance_variable_defined?(:"@#{attr}"))
208
+ end
209
+
210
+ hash[param] = _to_hash(value)
211
+ end
212
+ hash
213
+ end
214
+
215
+ # Outputs non-array value in the form of hash
216
+ # For object, use to_hash. Otherwise, just return the value
217
+ # @param [Object] value Any valid value
218
+ # @return [Hash] Returns the value in the form of hash
219
+ def _to_hash(value)
220
+ if value.is_a?(Array)
221
+ value.compact.map { |v| _to_hash(v) }
222
+ elsif value.is_a?(Hash)
223
+ {}.tap do |hash|
224
+ value.each { |k, v| hash[k] = _to_hash(v) }
225
+ end
226
+ elsif value.respond_to? :to_hash
227
+ value.to_hash
228
+ else
229
+ value
230
+ end
231
+ end
232
+
233
+ end
234
+
235
+ end
@@ -0,0 +1,425 @@
1
+ =begin
2
+ #PostBoost API
3
+
4
+ #The PostBoost REST API lets you publish, schedule, and analyze social media posts across 12+ platforms from a single integration. No OAuth apps to maintain — PostBoost handles platform authorization for you. ## Base URL All workspace-scoped endpoints are prefixed with `/{workspaceUuid}`. Panel/admin endpoints are prefixed with `/panel`. ## Plan access Every workspace-scoped endpoint returns `403` when the workspace's plan does not include API access (capability `api`). ## Dates and times Post dates and times (`date`, `time`, `accounts_schedule`) are read in the request's `timezone` when one is given, otherwise in the workspace timezone. ## Idempotent requests Send an `Idempotency-Key` header (any unique string, for example a UUID) with a `POST`. Repeating the request with the same key within 24 hours returns the stored response with `Idempotent-Replayed: true` and creates nothing new. Reusing a key with a different body returns `422`; a request still in progress with the same key returns `409`. `5xx` and `429` responses are not stored, so they can be retried with the same key. ## Guardrails for automated clients Create and update requests are checked before anything is written: a post whose content matches one created for the same account in the last 24 hours returns `409` (`code: duplicate_post`, override with `allow_duplicate: true`), scheduling past an account's daily cap returns `429` (`code: account_daily_cap_reached`), and scheduling to an account that must be reconnected returns `422` (`code: account_unauthorized` or `account_token_missing`). Use `POST /{workspaceUuid}/posts/validate` for a dry run and `GET /{workspaceUuid}/activity` to review what API clients did. ## Authentication All requests require a Bearer token in the `Authorization` header. Generate tokens in your PostBoost dashboard under **Settings → Access Tokens**. ``` Authorization: Bearer YOUR_API_TOKEN ```
5
+
6
+ The version of the OpenAPI document: 1.14.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 InboxConversation
18
+ # Conversation UUID.
19
+ attr_accessor :id
20
+
21
+ attr_accessor :provider
22
+
23
+ attr_accessor :type
24
+
25
+ attr_accessor :status
26
+
27
+ attr_accessor :unread
28
+
29
+ attr_accessor :sentiment
30
+
31
+ attr_accessor :ai_label
32
+
33
+ attr_accessor :is_spam
34
+
35
+ attr_accessor :is_hidden
36
+
37
+ attr_accessor :provider_post_id
38
+
39
+ attr_accessor :account
40
+
41
+ attr_accessor :author
42
+
43
+ # Only in lists.
44
+ attr_accessor :latest_message
45
+
46
+ # Only on `GET inbox/conversations/{conversationId}`.
47
+ attr_accessor :messages
48
+
49
+ attr_accessor :last_message_at
50
+
51
+ class EnumAttributeValidator
52
+ attr_reader :datatype
53
+ attr_reader :allowable_values
54
+
55
+ def initialize(datatype, allowable_values)
56
+ @allowable_values = allowable_values.map do |value|
57
+ case datatype.to_s
58
+ when /Integer/i
59
+ value.to_i
60
+ when /Float/i
61
+ value.to_f
62
+ else
63
+ value
64
+ end
65
+ end
66
+ end
67
+
68
+ def valid?(value)
69
+ !value || allowable_values.include?(value)
70
+ end
71
+ end
72
+
73
+ # Attribute mapping from ruby-style variable name to JSON key.
74
+ def self.attribute_map
75
+ {
76
+ :'id' => :'id',
77
+ :'provider' => :'provider',
78
+ :'type' => :'type',
79
+ :'status' => :'status',
80
+ :'unread' => :'unread',
81
+ :'sentiment' => :'sentiment',
82
+ :'ai_label' => :'ai_label',
83
+ :'is_spam' => :'is_spam',
84
+ :'is_hidden' => :'is_hidden',
85
+ :'provider_post_id' => :'provider_post_id',
86
+ :'account' => :'account',
87
+ :'author' => :'author',
88
+ :'latest_message' => :'latest_message',
89
+ :'messages' => :'messages',
90
+ :'last_message_at' => :'last_message_at'
91
+ }
92
+ end
93
+
94
+ # Returns all the JSON keys this model knows about
95
+ def self.acceptable_attributes
96
+ attribute_map.values
97
+ end
98
+
99
+ # Attribute type mapping.
100
+ def self.openapi_types
101
+ {
102
+ :'id' => :'String',
103
+ :'provider' => :'String',
104
+ :'type' => :'String',
105
+ :'status' => :'String',
106
+ :'unread' => :'Boolean',
107
+ :'sentiment' => :'String',
108
+ :'ai_label' => :'String',
109
+ :'is_spam' => :'Boolean',
110
+ :'is_hidden' => :'Boolean',
111
+ :'provider_post_id' => :'String',
112
+ :'account' => :'InboxConversationAccount',
113
+ :'author' => :'InboxMessageAuthor',
114
+ :'latest_message' => :'Object',
115
+ :'messages' => :'Array<InboxMessage>',
116
+ :'last_message_at' => :'Time'
117
+ }
118
+ end
119
+
120
+ # List of attributes with nullable: true
121
+ def self.openapi_nullable
122
+ Set.new([
123
+ :'type',
124
+ :'sentiment',
125
+ :'ai_label',
126
+ :'provider_post_id',
127
+ :'latest_message',
128
+ :'last_message_at'
129
+ ])
130
+ end
131
+
132
+ # Initializes the object
133
+ # @param [Hash] attributes Model attributes in the form of hash
134
+ def initialize(attributes = {})
135
+ if (!attributes.is_a?(Hash))
136
+ fail ArgumentError, "The input argument (attributes) must be a hash in `PostBoost::InboxConversation` initialize method"
137
+ end
138
+
139
+ # check to see if the attribute exists and convert string to symbol for hash key
140
+ attributes = attributes.each_with_object({}) { |(k, v), h|
141
+ if (!self.class.attribute_map.key?(k.to_sym))
142
+ fail ArgumentError, "`#{k}` is not a valid attribute in `PostBoost::InboxConversation`. Please check the name to make sure it's valid. List of attributes: " + self.class.attribute_map.keys.inspect
143
+ end
144
+ h[k.to_sym] = v
145
+ }
146
+
147
+ if attributes.key?(:'id')
148
+ self.id = attributes[:'id']
149
+ else
150
+ self.id = nil
151
+ end
152
+
153
+ if attributes.key?(:'provider')
154
+ self.provider = attributes[:'provider']
155
+ else
156
+ self.provider = nil
157
+ end
158
+
159
+ if attributes.key?(:'type')
160
+ self.type = attributes[:'type']
161
+ end
162
+
163
+ if attributes.key?(:'status')
164
+ self.status = attributes[:'status']
165
+ else
166
+ self.status = nil
167
+ end
168
+
169
+ if attributes.key?(:'unread')
170
+ self.unread = attributes[:'unread']
171
+ else
172
+ self.unread = nil
173
+ end
174
+
175
+ if attributes.key?(:'sentiment')
176
+ self.sentiment = attributes[:'sentiment']
177
+ end
178
+
179
+ if attributes.key?(:'ai_label')
180
+ self.ai_label = attributes[:'ai_label']
181
+ end
182
+
183
+ if attributes.key?(:'is_spam')
184
+ self.is_spam = attributes[:'is_spam']
185
+ end
186
+
187
+ if attributes.key?(:'is_hidden')
188
+ self.is_hidden = attributes[:'is_hidden']
189
+ end
190
+
191
+ if attributes.key?(:'provider_post_id')
192
+ self.provider_post_id = attributes[:'provider_post_id']
193
+ end
194
+
195
+ if attributes.key?(:'account')
196
+ self.account = attributes[:'account']
197
+ end
198
+
199
+ if attributes.key?(:'author')
200
+ self.author = attributes[:'author']
201
+ end
202
+
203
+ if attributes.key?(:'latest_message')
204
+ self.latest_message = attributes[:'latest_message']
205
+ end
206
+
207
+ if attributes.key?(:'messages')
208
+ if (value = attributes[:'messages']).is_a?(Array)
209
+ self.messages = value
210
+ end
211
+ end
212
+
213
+ if attributes.key?(:'last_message_at')
214
+ self.last_message_at = attributes[:'last_message_at']
215
+ end
216
+ end
217
+
218
+ # Show invalid properties with the reasons. Usually used together with valid?
219
+ # @return Array for valid properties with the reasons
220
+ def list_invalid_properties
221
+ warn '[DEPRECATED] the `list_invalid_properties` method is obsolete'
222
+ invalid_properties = Array.new
223
+ if @id.nil?
224
+ invalid_properties.push('invalid value for "id", id cannot be nil.')
225
+ end
226
+
227
+ if @provider.nil?
228
+ invalid_properties.push('invalid value for "provider", provider cannot be nil.')
229
+ end
230
+
231
+ if @status.nil?
232
+ invalid_properties.push('invalid value for "status", status cannot be nil.')
233
+ end
234
+
235
+ if @unread.nil?
236
+ invalid_properties.push('invalid value for "unread", unread cannot be nil.')
237
+ end
238
+
239
+ invalid_properties
240
+ end
241
+
242
+ # Check to see if the all the properties in the model are valid
243
+ # @return true if the model is valid
244
+ def valid?
245
+ warn '[DEPRECATED] the `valid?` method is obsolete'
246
+ return false if @id.nil?
247
+ return false if @provider.nil?
248
+ type_validator = EnumAttributeValidator.new('String', ["comment", "mention", "review", "qa"])
249
+ return false unless type_validator.valid?(@type)
250
+ return false if @status.nil?
251
+ status_validator = EnumAttributeValidator.new('String', ["open", "resolved"])
252
+ return false unless status_validator.valid?(@status)
253
+ return false if @unread.nil?
254
+ true
255
+ end
256
+
257
+ # Custom attribute writer method checking allowed values (enum).
258
+ # @param [Object] type Object to be assigned
259
+ def type=(type)
260
+ validator = EnumAttributeValidator.new('String', ["comment", "mention", "review", "qa"])
261
+ unless validator.valid?(type)
262
+ fail ArgumentError, "invalid value for \"type\", must be one of #{validator.allowable_values}."
263
+ end
264
+ @type = type
265
+ end
266
+
267
+ # Custom attribute writer method checking allowed values (enum).
268
+ # @param [Object] status Object to be assigned
269
+ def status=(status)
270
+ validator = EnumAttributeValidator.new('String', ["open", "resolved"])
271
+ unless validator.valid?(status)
272
+ fail ArgumentError, "invalid value for \"status\", must be one of #{validator.allowable_values}."
273
+ end
274
+ @status = status
275
+ end
276
+
277
+ # Checks equality by comparing each attribute.
278
+ # @param [Object] Object to be compared
279
+ def ==(o)
280
+ return true if self.equal?(o)
281
+ self.class == o.class &&
282
+ id == o.id &&
283
+ provider == o.provider &&
284
+ type == o.type &&
285
+ status == o.status &&
286
+ unread == o.unread &&
287
+ sentiment == o.sentiment &&
288
+ ai_label == o.ai_label &&
289
+ is_spam == o.is_spam &&
290
+ is_hidden == o.is_hidden &&
291
+ provider_post_id == o.provider_post_id &&
292
+ account == o.account &&
293
+ author == o.author &&
294
+ latest_message == o.latest_message &&
295
+ messages == o.messages &&
296
+ last_message_at == o.last_message_at
297
+ end
298
+
299
+ # @see the `==` method
300
+ # @param [Object] Object to be compared
301
+ def eql?(o)
302
+ self == o
303
+ end
304
+
305
+ # Calculates hash code according to all attributes.
306
+ # @return [Integer] Hash code
307
+ def hash
308
+ [id, provider, type, status, unread, sentiment, ai_label, is_spam, is_hidden, provider_post_id, account, author, latest_message, messages, last_message_at].hash
309
+ end
310
+
311
+ # Builds the object from hash
312
+ # @param [Hash] attributes Model attributes in the form of hash
313
+ # @return [Object] Returns the model itself
314
+ def self.build_from_hash(attributes)
315
+ return nil unless attributes.is_a?(Hash)
316
+ attributes = attributes.transform_keys(&:to_sym)
317
+ transformed_hash = {}
318
+ openapi_types.each_pair do |key, type|
319
+ if attributes.key?(attribute_map[key]) && attributes[attribute_map[key]].nil?
320
+ transformed_hash["#{key}"] = nil
321
+ elsif type =~ /\AArray<(.*)>/i
322
+ # check to ensure the input is an array given that the attribute
323
+ # is documented as an array but the input is not
324
+ if attributes[attribute_map[key]].is_a?(Array)
325
+ transformed_hash["#{key}"] = attributes[attribute_map[key]].map { |v| _deserialize($1, v) }
326
+ end
327
+ elsif !attributes[attribute_map[key]].nil?
328
+ transformed_hash["#{key}"] = _deserialize(type, attributes[attribute_map[key]])
329
+ end
330
+ end
331
+ new(transformed_hash)
332
+ end
333
+
334
+ # Deserializes the data based on type
335
+ # @param string type Data type
336
+ # @param string value Value to be deserialized
337
+ # @return [Object] Deserialized data
338
+ def self._deserialize(type, value)
339
+ case type.to_sym
340
+ when :Time
341
+ Time.parse(value)
342
+ when :Date
343
+ Date.parse(value)
344
+ when :String
345
+ value.to_s
346
+ when :Integer
347
+ value.to_i
348
+ when :Float
349
+ value.to_f
350
+ when :Boolean
351
+ if value.to_s =~ /\A(true|t|yes|y|1)\z/i
352
+ true
353
+ else
354
+ false
355
+ end
356
+ when :Object
357
+ # generic object (usually a Hash), return directly
358
+ value
359
+ when /\AArray<(?<inner_type>.+)>\z/
360
+ inner_type = Regexp.last_match[:inner_type]
361
+ value.map { |v| _deserialize(inner_type, v) }
362
+ when /\AHash<(?<k_type>.+?), (?<v_type>.+)>\z/
363
+ k_type = Regexp.last_match[:k_type]
364
+ v_type = Regexp.last_match[:v_type]
365
+ {}.tap do |hash|
366
+ value.each do |k, v|
367
+ hash[_deserialize(k_type, k)] = _deserialize(v_type, v)
368
+ end
369
+ end
370
+ else # model
371
+ # models (e.g. Pet) or oneOf
372
+ klass = PostBoost.const_get(type)
373
+ klass.respond_to?(:openapi_any_of) || klass.respond_to?(:openapi_one_of) ? klass.build(value) : klass.build_from_hash(value)
374
+ end
375
+ end
376
+
377
+ # Returns the string representation of the object
378
+ # @return [String] String presentation of the object
379
+ def to_s
380
+ to_hash.to_s
381
+ end
382
+
383
+ # to_body is an alias to to_hash (backward compatibility)
384
+ # @return [Hash] Returns the object in the form of hash
385
+ def to_body
386
+ to_hash
387
+ end
388
+
389
+ # Returns the object in the form of hash
390
+ # @return [Hash] Returns the object in the form of hash
391
+ def to_hash
392
+ hash = {}
393
+ self.class.attribute_map.each_pair do |attr, param|
394
+ value = self.send(attr)
395
+ if value.nil?
396
+ is_nullable = self.class.openapi_nullable.include?(attr)
397
+ next if !is_nullable || (is_nullable && !instance_variable_defined?(:"@#{attr}"))
398
+ end
399
+
400
+ hash[param] = _to_hash(value)
401
+ end
402
+ hash
403
+ end
404
+
405
+ # Outputs non-array value in the form of hash
406
+ # For object, use to_hash. Otherwise, just return the value
407
+ # @param [Object] value Any valid value
408
+ # @return [Hash] Returns the value in the form of hash
409
+ def _to_hash(value)
410
+ if value.is_a?(Array)
411
+ value.compact.map { |v| _to_hash(v) }
412
+ elsif value.is_a?(Hash)
413
+ {}.tap do |hash|
414
+ value.each { |k, v| hash[k] = _to_hash(v) }
415
+ end
416
+ elsif value.respond_to? :to_hash
417
+ value.to_hash
418
+ else
419
+ value
420
+ end
421
+ end
422
+
423
+ end
424
+
425
+ end