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.
- checksums.yaml +4 -4
- data/CODE_OF_CONDUCT.md +7 -0
- data/CONTRIBUTING.md +31 -0
- data/README.md +252 -0
- data/SECURITY.md +9 -0
- data/docs/AIApi.md +871 -0
- data/docs/AICredits.md +22 -0
- data/docs/AIUsage.md +20 -0
- data/docs/AIUsageText.md +24 -0
- data/docs/Account.md +19 -9
- data/docs/AccountAnalytics.md +28 -0
- data/docs/AccountAnalyticsInitialSync.md +20 -0
- data/docs/AccountConnectionHealth.md +34 -0
- data/docs/AccountErrorsInner.md +49 -0
- data/docs/AccountErrorsInnerOneOf.md +24 -0
- data/docs/AccountGroup.md +24 -0
- data/docs/AccountGroupInput.md +20 -0
- data/docs/AccountGroupsApi.md +372 -0
- data/docs/AccountHealth.md +34 -0
- data/docs/AccountHealthDailyCap.md +20 -0
- data/docs/AccountSchedule.md +22 -0
- data/docs/AccountsApi.md +231 -5
- data/docs/ActivityApi.md +87 -0
- data/docs/AddCompetitor202Response.md +20 -0
- data/docs/AddCompetitor409Response.md +20 -0
- data/docs/AddPostToQueueRequest.md +18 -0
- data/docs/AgentPageMeta.md +24 -0
- data/docs/AgentProposal.md +44 -0
- data/docs/AgentProposalDecision.md +18 -0
- data/docs/AgentRun.md +44 -0
- data/docs/AgentsApi.md +745 -0
- data/docs/AnalyticsApi.md +899 -0
- data/docs/AnalyticsPeriod.md +24 -0
- data/docs/AnalyticsSummary.md +20 -0
- data/docs/AnalyticsSummaryData.md +38 -0
- data/docs/ApiActivity.md +36 -0
- data/docs/ApiActivityOutcome.md +15 -0
- data/docs/ApiKey.md +32 -0
- data/docs/ApiKeyAbility.md +15 -0
- data/docs/ApiKeyInput.md +24 -0
- data/docs/ApproveAgentProposal200Response.md +18 -0
- data/docs/ApproveAgentProposal409Response.md +20 -0
- data/docs/ApproveInboxReplyDraft403Response.md +20 -0
- data/docs/ApprovePostRequest.md +24 -0
- data/docs/BestPostingTimes.md +20 -0
- data/docs/BestPostingTimesTimesInner.md +24 -0
- data/docs/BlogToSocial200Response.md +20 -0
- data/docs/BlogToSocial429Response.md +18 -0
- data/docs/BlogToSocialCaption.md +28 -0
- data/docs/BlogToSocialInput.md +44 -0
- data/docs/BlogToSocialMedia.md +20 -0
- data/docs/BlogToSocialResponse.md +30 -0
- data/docs/BrandVoice.md +48 -0
- data/docs/BrandVoiceInput.md +46 -0
- data/docs/BrandVoiceMeta.md +18 -0
- data/docs/CancelSubscription422Response.md +20 -0
- data/docs/CancelSubscription422ResponseErrors.md +18 -0
- data/docs/CancelSubscriptionRequest.md +18 -0
- data/docs/ChannelAccount.md +36 -0
- data/docs/CodedError.md +22 -0
- data/docs/Competitor.md +34 -0
- data/docs/CompetitorDetail.md +38 -0
- data/docs/CompetitorInput.md +20 -0
- data/docs/CompetitorMedia.md +28 -0
- data/docs/CompetitorSnapshot.md +22 -0
- data/docs/CompetitorsApi.md +296 -0
- data/docs/CompleteChunkedUploadRequest.md +20 -0
- data/docs/ConnectChannelInput.md +24 -0
- data/docs/CreateAccountGroup201Response.md +18 -0
- data/docs/CreateAgent201Response.md +18 -0
- data/docs/CreateApiKey201Response.md +18 -0
- data/docs/CreateApiKey201ResponseData.md +34 -0
- data/docs/CreateHashtagGroup201Response.md +18 -0
- data/docs/CreateInboxReplyDraft201Response.md +18 -0
- data/docs/CreateMediaFolderRequest.md +20 -0
- data/docs/CreateMention201Response.md +18 -0
- data/docs/CreateRecyclingRule201Response.md +18 -0
- data/docs/CreateReportExport201Response.md +18 -0
- data/docs/CreateResellerClient201Response.md +18 -0
- data/docs/CreateRssFeed201Response.md +18 -0
- data/docs/CreateTemplate201Response.md +18 -0
- data/docs/CreateWebhookSubscription201Response.md +18 -0
- data/docs/CreateWebhookSubscription201ResponseData.md +30 -0
- data/docs/DeleteAgent200Response.md +18 -0
- data/docs/DeleteMediaBulkRequest.md +1 -1
- data/docs/DeleteMediaBulkRequestItemsInner.md +49 -0
- data/docs/DeleteMediaFolderRequest.md +18 -0
- data/docs/DeleteResult.md +3 -3
- data/docs/GetAccountHealth200Response.md +18 -0
- data/docs/GetBrandVoice200Response.md +18 -0
- data/docs/GetCompetitor200Response.md +18 -0
- data/docs/GetInboxConversation200Response.md +18 -0
- data/docs/GetPostingSchedule200Response.md +18 -0
- data/docs/GetReportBranding200Response.md +18 -0
- data/docs/GuardrailError.md +28 -0
- data/docs/HashtagGroup.md +22 -0
- data/docs/HashtagGroupInput.md +20 -0
- data/docs/HashtagGroupsApi.md +372 -0
- data/docs/ImageAltText200Response.md +18 -0
- data/docs/ImageAltTextInput.md +18 -0
- data/docs/ImageAltTextResponse.md +24 -0
- data/docs/ImageCreditBalance.md +28 -0
- data/docs/ImageEditInput.md +30 -0
- data/docs/ImageGenerate200Response.md +20 -0
- data/docs/ImageGenerate429Response.md +18 -0
- data/docs/ImageGenerateInput.md +38 -0
- data/docs/ImageGenerationResponse.md +30 -0
- data/docs/ImagePrompt200Response.md +20 -0
- data/docs/ImagePrompt429Response.md +18 -0
- data/docs/ImagePromptInput.md +30 -0
- data/docs/ImagePromptResponse.md +18 -0
- data/docs/ImageVariations200Response.md +18 -0
- data/docs/ImageVariationsInput.md +24 -0
- data/docs/ImageVariationsResponse.md +26 -0
- data/docs/InboxApi.md +758 -0
- data/docs/InboxAuthor.md +22 -0
- data/docs/InboxConversation.md +46 -0
- data/docs/InboxConversationAccount.md +24 -0
- data/docs/InboxConversationUpdate.md +20 -0
- data/docs/InboxMessage.md +32 -0
- data/docs/InboxMessageAuthor.md +22 -0
- data/docs/InboxReplyDraft.md +42 -0
- data/docs/InboxReplyDraftApprove.md +18 -0
- data/docs/InboxReplyDraftEdit.md +18 -0
- data/docs/InboxReplyDraftInput.md +20 -0
- data/docs/{InitiateChunkedUpload200Response.md → InitiateChunkedUpload201Response.md} +2 -2
- data/docs/{InitiateRemoteUpload200Response.md → InitiateRemoteUpload201Response.md} +7 -7
- data/docs/{InitiateRemoteUpload200ResponseOneOf.md → InitiateRemoteUpload201ResponseOneOf.md} +2 -2
- data/docs/InitiateRemoteUploadRequest.md +3 -1
- data/docs/LearnBrandVoiceInput.md +24 -0
- data/docs/LearnBrandVoiceResponse.md +20 -0
- data/docs/LearnBrandVoiceResponseMeta.md +26 -0
- data/docs/ListAccountGroups200Response.md +22 -0
- data/docs/ListAgentProposals200Response.md +20 -0
- data/docs/ListAgentRuns200Response.md +20 -0
- data/docs/ListAgents200Response.md +18 -0
- data/docs/ListApiActivity200Response.md +22 -0
- data/docs/ListApiKeys200Response.md +18 -0
- data/docs/ListCompetitors200Response.md +18 -0
- data/docs/ListHashtagGroups200Response.md +22 -0
- data/docs/ListInboxConversations200Response.md +22 -0
- data/docs/ListInboxReplyDrafts200Response.md +22 -0
- data/docs/ListMediaFolders200Response.md +18 -0
- data/docs/ListMentions200Response.md +22 -0
- data/docs/ListMyWorkspaces200Response.md +18 -0
- data/docs/ListRecyclingRules200Response.md +18 -0
- data/docs/ListRecyclingRuns200Response.md +18 -0
- data/docs/ListReportExports200Response.md +18 -0
- data/docs/ListResellerClients200Response.md +20 -0
- data/docs/ListRssFeeds200Response.md +18 -0
- data/docs/ListTemplates200Response.md +22 -0
- data/docs/ListWebhookSubscriptions200Response.md +18 -0
- data/docs/Media.md +22 -8
- data/docs/MediaApi.md +435 -31
- data/docs/MediaBase64Input.md +24 -0
- data/docs/MediaFolder.md +24 -0
- data/docs/MediaFolderInput.md +20 -0
- data/docs/MediaFolderRef.md +20 -0
- data/docs/Mention.md +28 -0
- data/docs/MentionIdentity.md +24 -0
- data/docs/MentionIdentityInput.md +26 -0
- data/docs/MentionInput.md +22 -0
- data/docs/MentionsApi.md +379 -0
- data/docs/MessageOnly.md +18 -0
- data/docs/PollRssFeed200Response.md +22 -0
- data/docs/Post.md +10 -8
- data/docs/PostAnalytics.md +22 -0
- data/docs/PostContent.md +1 -1
- data/docs/PostInput.md +8 -2
- data/docs/PostOptionsInstagram.md +22 -0
- data/docs/PostOptionsTikTok.md +34 -0
- data/docs/PostOptionsYoutube.md +24 -0
- data/docs/PostVersion.md +4 -2
- data/docs/PostVersionOptions.md +24 -0
- data/docs/PostingSchedule.md +28 -0
- data/docs/PostingScheduleApi.md +377 -0
- data/docs/PostingScheduleDay.md +22 -0
- data/docs/PostingScheduleDayTimesInner.md +18 -0
- data/docs/PostingScheduleInput.md +24 -0
- data/docs/PostingTimeSlot.md +22 -0
- data/docs/PostingTimes.md +32 -0
- data/docs/PostingTimesBestInner.md +24 -0
- data/docs/PostingTimesDayIntervalsInnerInner.md +28 -0
- data/docs/PostingTimesDaysInner.md +24 -0
- data/docs/PostsApi.md +1264 -82
- data/docs/PreflightResult.md +26 -0
- data/docs/PublicWorkspace.md +24 -0
- data/docs/PublicWorkspacePivot.md +22 -0
- data/docs/PublishProgress.md +22 -0
- data/docs/QueueSlots.md +20 -0
- data/docs/Receipt.md +8 -8
- data/docs/ReceiptsApi.md +15 -1
- data/docs/RecommendedPostingTimes.md +26 -0
- data/docs/ReconnectLink.md +22 -0
- data/docs/RecyclingRule.md +42 -0
- data/docs/RecyclingRuleInput.md +34 -0
- data/docs/RecyclingRuleSettings.md +28 -0
- data/docs/RecyclingRuleUpdate.md +28 -0
- data/docs/RecyclingRun.md +28 -0
- data/docs/RemoveGenericSubscription422Response.md +18 -0
- data/docs/ReportBranding.md +28 -0
- data/docs/ReportBrandingInput.md +24 -0
- data/docs/ReportExport.md +42 -0
- data/docs/ReportExportInput.md +28 -0
- data/docs/RepurposeContent200Response.md +20 -0
- data/docs/RepurposeInput.md +54 -0
- data/docs/RepurposeInputTheme.md +22 -0
- data/docs/RepurposeResult.md +32 -0
- data/docs/RepurposeResultMedia.md +20 -0
- data/docs/RepurposeResultSource.md +22 -0
- data/docs/RepurposeSlide.md +20 -0
- data/docs/ResellerClient.md +32 -0
- data/docs/ResellerClientInput.md +18 -0
- data/docs/ResellerClientUsage.md +20 -0
- data/docs/RetryPostAccountResult.md +22 -0
- data/docs/RssFeed.md +38 -0
- data/docs/RssFeedInput.md +30 -0
- data/docs/RssFeedUpdate.md +30 -0
- data/docs/RunAgent202Response.md +18 -0
- data/docs/SchedulePostRequest.md +9 -1
- data/docs/ScheduleResult.md +4 -2
- data/docs/Subscription.md +5 -5
- data/docs/SubscriptionsApi.md +27 -5
- data/docs/Tag.md +4 -4
- data/docs/TagsApi.md +18 -4
- data/docs/Template.md +22 -0
- data/docs/TemplateContentItem.md +20 -0
- data/docs/TemplateInput.md +20 -0
- data/docs/TemplateInputContentInner.md +20 -0
- data/docs/TemplatesApi.md +372 -0
- data/docs/UpdateMediaRequest.md +6 -2
- data/docs/{UploadChunk200Response.md → UploadChunk201Response.md} +2 -2
- data/docs/User.md +7 -5
- data/docs/UsersApi.md +15 -1
- data/docs/WebhookEventName.md +15 -0
- data/docs/WebhookEventPayload.md +20 -0
- data/docs/WebhookSubscription.md +28 -0
- data/docs/WebhookSubscriptionInput.md +24 -0
- data/docs/WebhooksApi.md +221 -0
- data/docs/Workspace.md +8 -6
- data/docs/WorkspaceAgent.md +34 -0
- data/docs/WorkspaceAgentInput.md +26 -0
- data/docs/WorkspaceAgentSettings.md +26 -0
- data/docs/WorkspaceAgentUpdate.md +24 -0
- data/docs/WorkspaceInput.md +1 -1
- data/docs/WorkspacesApi.md +582 -3
- data/docs/XUsage.md +28 -0
- data/docs/XUsageCounter.md +20 -0
- data/lib/postboost/api/account_groups_api.rb +395 -0
- data/lib/postboost/api/accounts_api.rb +233 -4
- data/lib/postboost/api/activity_api.rb +97 -0
- data/lib/postboost/api/agents_api.rb +771 -0
- data/lib/postboost/api/ai_api.rb +884 -0
- data/lib/postboost/api/analytics_api.rb +910 -0
- data/lib/postboost/api/competitors_api.rb +300 -0
- data/lib/postboost/api/hashtag_groups_api.rb +395 -0
- data/lib/postboost/api/inbox_api.rb +789 -0
- data/lib/postboost/api/media_api.rb +496 -24
- data/lib/postboost/api/mentions_api.rb +397 -0
- data/lib/postboost/api/posting_schedule_api.rb +389 -0
- data/lib/postboost/api/posts_api.rb +1321 -104
- data/lib/postboost/api/receipts_api.rb +17 -2
- data/lib/postboost/api/subscriptions_api.rb +28 -3
- data/lib/postboost/api/tags_api.rb +23 -2
- data/lib/postboost/api/templates_api.rb +395 -0
- data/lib/postboost/api/users_api.rb +17 -2
- data/lib/postboost/api/webhooks_api.rb +228 -0
- data/lib/postboost/api/workspaces_api.rb +545 -2
- data/lib/postboost/api_client.rb +2 -2
- data/lib/postboost/api_error.rb +2 -2
- data/lib/postboost/configuration.rb +2 -2
- data/lib/postboost/models/account.rb +145 -4
- data/lib/postboost/models/account_analytics.rb +308 -0
- data/lib/postboost/models/account_analytics_initial_sync.rb +231 -0
- data/lib/postboost/models/account_connection_health.rb +389 -0
- data/lib/postboost/models/account_errors_inner.rb +105 -0
- data/lib/postboost/models/account_errors_inner_one_of.rb +243 -0
- data/lib/postboost/models/account_group.rb +271 -0
- data/lib/postboost/models/account_group_input.rb +252 -0
- data/lib/postboost/models/account_health.rb +352 -0
- data/lib/postboost/models/account_health_daily_cap.rb +239 -0
- data/lib/postboost/models/account_schedule.rb +255 -0
- data/lib/postboost/models/add_competitor202_response.rb +271 -0
- data/lib/postboost/models/add_competitor409_response.rb +223 -0
- data/lib/postboost/models/add_generic_subscription_request.rb +2 -2
- data/lib/postboost/models/add_post_to_queue_request.rb +215 -0
- data/lib/postboost/models/agent_page_meta.rb +269 -0
- data/lib/postboost/models/agent_proposal.rb +444 -0
- data/lib/postboost/models/agent_proposal_decision.rb +233 -0
- data/lib/postboost/models/agent_run.rb +434 -0
- data/lib/postboost/models/ai_credits.rb +256 -0
- data/lib/postboost/models/ai_usage.rb +237 -0
- data/lib/postboost/models/ai_usage_text.rb +252 -0
- data/lib/postboost/models/analytics_period.rb +270 -0
- data/lib/postboost/models/analytics_summary.rb +237 -0
- data/lib/postboost/models/analytics_summary_data.rb +327 -0
- data/lib/postboost/models/api_activity.rb +359 -0
- data/lib/postboost/models/api_activity_outcome.rb +49 -0
- data/lib/postboost/models/api_key.rb +308 -0
- data/lib/postboost/models/api_key_ability.rb +43 -0
- data/lib/postboost/models/api_key_input.rb +316 -0
- data/lib/postboost/models/approve_agent_proposal200_response.rb +221 -0
- data/lib/postboost/models/approve_agent_proposal409_response.rb +237 -0
- data/lib/postboost/models/approve_inbox_reply_draft403_response.rb +264 -0
- data/lib/postboost/models/approve_post_request.rb +247 -0
- data/lib/postboost/models/best_posting_times.rb +240 -0
- data/lib/postboost/models/best_posting_times_times_inner.rb +269 -0
- data/lib/postboost/models/blog_to_social200_response.rb +223 -0
- data/lib/postboost/models/blog_to_social429_response.rb +214 -0
- data/lib/postboost/models/blog_to_social_caption.rb +265 -0
- data/lib/postboost/models/blog_to_social_input.rb +548 -0
- data/lib/postboost/models/blog_to_social_media.rb +226 -0
- data/lib/postboost/models/blog_to_social_response.rb +276 -0
- data/lib/postboost/models/brand_voice.rb +531 -0
- data/lib/postboost/models/brand_voice_input.rb +646 -0
- data/lib/postboost/models/brand_voice_meta.rb +222 -0
- data/lib/postboost/models/cancel_subscription422_response.rb +223 -0
- data/lib/postboost/models/cancel_subscription422_response_errors.rb +216 -0
- data/lib/postboost/models/cancel_subscription_request.rb +217 -0
- data/lib/postboost/models/change_subscription_plan_request.rb +2 -2
- data/lib/postboost/models/channel_account.rb +380 -0
- data/lib/postboost/models/checkout_subscription200_response.rb +2 -2
- data/lib/postboost/models/checkout_subscription_request.rb +2 -2
- data/lib/postboost/models/coded_error.rb +242 -0
- data/lib/postboost/models/competitor.rb +320 -0
- data/lib/postboost/models/competitor_detail.rb +358 -0
- data/lib/postboost/models/competitor_input.rb +258 -0
- data/lib/postboost/models/competitor_media.rb +263 -0
- data/lib/postboost/models/competitor_snapshot.rb +234 -0
- data/lib/postboost/models/complete_chunked_upload_request.rb +243 -0
- data/lib/postboost/models/connect_channel_input.rb +265 -0
- data/lib/postboost/models/create_account_group201_response.rb +221 -0
- data/lib/postboost/models/create_agent201_response.rb +221 -0
- data/lib/postboost/models/create_api_key201_response.rb +221 -0
- data/lib/postboost/models/create_api_key201_response_data.rb +327 -0
- data/lib/postboost/models/create_hashtag_group201_response.rb +221 -0
- data/lib/postboost/models/create_inbox_reply_draft201_response.rb +221 -0
- data/lib/postboost/models/create_media_folder_request.rb +258 -0
- data/lib/postboost/models/create_mention201_response.rb +214 -0
- data/lib/postboost/models/create_recycling_rule201_response.rb +221 -0
- data/lib/postboost/models/create_report_export201_response.rb +221 -0
- data/lib/postboost/models/create_reseller_client201_response.rb +221 -0
- data/lib/postboost/models/create_rss_feed201_response.rb +221 -0
- data/lib/postboost/models/create_template201_response.rb +221 -0
- data/lib/postboost/models/create_webhook_subscription201_response.rb +221 -0
- data/lib/postboost/models/create_webhook_subscription201_response_data.rb +320 -0
- data/lib/postboost/models/delete_agent200_response.rb +221 -0
- data/lib/postboost/models/delete_media_bulk_request.rb +23 -4
- data/lib/postboost/models/delete_media_bulk_request_items_inner.rb +105 -0
- data/lib/postboost/models/delete_media_folder_request.rb +216 -0
- data/lib/postboost/models/delete_mode.rb +2 -2
- data/lib/postboost/models/delete_post_request.rb +2 -2
- data/lib/postboost/models/delete_posts_bulk_request.rb +2 -2
- data/lib/postboost/models/delete_receipts_bulk_request.rb +2 -2
- data/lib/postboost/models/delete_result.rb +23 -2
- data/lib/postboost/models/delete_user400_response.rb +2 -2
- data/lib/postboost/models/delete_users_bulk_request.rb +2 -2
- data/lib/postboost/models/delete_workspaces_bulk_request.rb +2 -2
- data/lib/postboost/models/get_account_health200_response.rb +223 -0
- data/lib/postboost/models/get_brand_voice200_response.rb +217 -0
- data/lib/postboost/models/get_competitor200_response.rb +221 -0
- data/lib/postboost/models/get_inbox_conversation200_response.rb +221 -0
- data/lib/postboost/models/get_posting_schedule200_response.rb +221 -0
- data/lib/postboost/models/get_remote_upload_status200_response.rb +2 -2
- data/lib/postboost/models/get_report_branding200_response.rb +221 -0
- data/lib/postboost/models/guardrail_error.rb +304 -0
- data/lib/postboost/models/hashtag_group.rb +254 -0
- data/lib/postboost/models/hashtag_group_input.rb +275 -0
- data/lib/postboost/models/image_alt_text200_response.rb +221 -0
- data/lib/postboost/models/image_alt_text_input.rb +221 -0
- data/lib/postboost/models/image_alt_text_response.rb +262 -0
- data/lib/postboost/models/image_credit_balance.rb +295 -0
- data/lib/postboost/models/image_edit_input.rb +387 -0
- data/lib/postboost/models/image_generate200_response.rb +230 -0
- data/lib/postboost/models/image_generate429_response.rb +214 -0
- data/lib/postboost/models/image_generate_input.rb +479 -0
- data/lib/postboost/models/image_generation_response.rb +305 -0
- data/lib/postboost/models/image_prompt200_response.rb +230 -0
- data/lib/postboost/models/image_prompt429_response.rb +214 -0
- data/lib/postboost/models/image_prompt_input.rb +377 -0
- data/lib/postboost/models/image_prompt_response.rb +221 -0
- data/lib/postboost/models/image_variations200_response.rb +221 -0
- data/lib/postboost/models/image_variations_input.rb +328 -0
- data/lib/postboost/models/image_variations_response.rb +280 -0
- data/lib/postboost/models/inbox_author.rb +235 -0
- data/lib/postboost/models/inbox_conversation.rb +425 -0
- data/lib/postboost/models/inbox_conversation_account.rb +241 -0
- data/lib/postboost/models/inbox_conversation_update.rb +257 -0
- data/lib/postboost/models/inbox_message.rb +360 -0
- data/lib/postboost/models/inbox_message_author.rb +235 -0
- data/lib/postboost/models/inbox_reply_draft.rb +410 -0
- data/lib/postboost/models/inbox_reply_draft_approve.rb +215 -0
- data/lib/postboost/models/inbox_reply_draft_edit.rb +221 -0
- data/lib/postboost/models/inbox_reply_draft_input.rb +232 -0
- data/lib/postboost/models/{initiate_chunked_upload200_response.rb → initiate_chunked_upload201_response.rb} +5 -5
- data/lib/postboost/models/initiate_chunked_upload_request.rb +2 -2
- data/lib/postboost/models/{initiate_remote_upload200_response.rb → initiate_remote_upload201_response.rb} +4 -4
- data/lib/postboost/models/{initiate_remote_upload200_response_one_of.rb → initiate_remote_upload201_response_one_of.rb} +5 -5
- data/lib/postboost/models/initiate_remote_upload_request.rb +16 -6
- data/lib/postboost/models/learn_brand_voice_input.rb +300 -0
- data/lib/postboost/models/learn_brand_voice_response.rb +237 -0
- data/lib/postboost/models/learn_brand_voice_response_meta.rb +281 -0
- data/lib/postboost/models/list_account_groups200_response.rb +248 -0
- data/lib/postboost/models/list_accounts200_response.rb +2 -2
- data/lib/postboost/models/list_agent_proposals200_response.rb +239 -0
- data/lib/postboost/models/list_agent_runs200_response.rb +239 -0
- data/lib/postboost/models/list_agents200_response.rb +223 -0
- data/lib/postboost/models/list_api_activity200_response.rb +241 -0
- data/lib/postboost/models/list_api_keys200_response.rb +223 -0
- data/lib/postboost/models/list_competitors200_response.rb +223 -0
- data/lib/postboost/models/list_hashtag_groups200_response.rb +248 -0
- data/lib/postboost/models/list_inbox_conversations200_response.rb +241 -0
- data/lib/postboost/models/list_inbox_reply_drafts200_response.rb +241 -0
- data/lib/postboost/models/list_media200_response.rb +2 -2
- data/lib/postboost/models/list_media_folders200_response.rb +216 -0
- data/lib/postboost/models/list_mentions200_response.rb +241 -0
- data/lib/postboost/models/list_my_workspaces200_response.rb +216 -0
- data/lib/postboost/models/list_posts200_response.rb +2 -2
- data/lib/postboost/models/list_receipts200_response.rb +2 -2
- data/lib/postboost/models/list_recycling_rules200_response.rb +223 -0
- data/lib/postboost/models/list_recycling_runs200_response.rb +223 -0
- data/lib/postboost/models/list_report_exports200_response.rb +223 -0
- data/lib/postboost/models/list_reseller_clients200_response.rb +239 -0
- data/lib/postboost/models/list_rss_feeds200_response.rb +223 -0
- data/lib/postboost/models/list_tags200_response.rb +2 -2
- data/lib/postboost/models/list_templates200_response.rb +248 -0
- data/lib/postboost/models/list_users200_response.rb +2 -2
- data/lib/postboost/models/list_webhook_subscriptions200_response.rb +223 -0
- data/lib/postboost/models/list_workspaces200_response.rb +2 -2
- data/lib/postboost/models/media.rb +128 -3
- data/lib/postboost/models/media_base64_input.rb +295 -0
- data/lib/postboost/models/media_folder.rb +271 -0
- data/lib/postboost/models/media_folder_input.rb +244 -0
- data/lib/postboost/models/media_folder_ref.rb +237 -0
- data/lib/postboost/models/mention.rb +290 -0
- data/lib/postboost/models/mention_identity.rb +257 -0
- data/lib/postboost/models/mention_identity_input.rb +325 -0
- data/lib/postboost/models/mention_input.rb +279 -0
- data/lib/postboost/models/message_only.rb +221 -0
- data/lib/postboost/models/pagination_meta.rb +2 -2
- data/lib/postboost/models/pagination_meta_links.rb +4 -2
- data/lib/postboost/models/pagination_meta_meta.rb +4 -2
- data/lib/postboost/models/poll_rss_feed200_response.rb +255 -0
- data/lib/postboost/models/post.rb +69 -3
- data/lib/postboost/models/post_analytics.rb +252 -0
- data/lib/postboost/models/post_content.rb +4 -3
- data/lib/postboost/models/post_input.rb +41 -6
- data/lib/postboost/models/post_options_instagram.rb +294 -0
- data/lib/postboost/models/post_options_tik_tok.rb +329 -0
- data/lib/postboost/models/post_options_youtube.rb +302 -0
- data/lib/postboost/models/post_status.rb +6 -3
- data/lib/postboost/models/post_version.rb +53 -5
- data/lib/postboost/models/post_version_options.rb +242 -0
- data/lib/postboost/models/posting_schedule.rb +303 -0
- data/lib/postboost/models/posting_schedule_day.rb +285 -0
- data/lib/postboost/models/posting_schedule_day_times_inner.rb +222 -0
- data/lib/postboost/models/posting_schedule_input.rb +312 -0
- data/lib/postboost/models/posting_time_slot.rb +315 -0
- data/lib/postboost/models/posting_times.rb +362 -0
- data/lib/postboost/models/posting_times_best_inner.rb +269 -0
- data/lib/postboost/models/posting_times_day_intervals_inner_inner.rb +370 -0
- data/lib/postboost/models/posting_times_days_inner.rb +366 -0
- data/lib/postboost/models/preflight_result.rb +291 -0
- data/lib/postboost/models/public_workspace.rb +262 -0
- data/lib/postboost/models/public_workspace_pivot.rb +267 -0
- data/lib/postboost/models/publish_progress.rb +254 -0
- data/lib/postboost/models/queue_slots.rb +237 -0
- data/lib/postboost/models/receipt.rb +58 -2
- data/lib/postboost/models/receipt_input.rb +2 -2
- data/lib/postboost/models/receipt_update_input.rb +2 -2
- data/lib/postboost/models/recommended_posting_times.rb +282 -0
- data/lib/postboost/models/reconnect_link.rb +254 -0
- data/lib/postboost/models/recycling_rule.rb +434 -0
- data/lib/postboost/models/recycling_rule_input.rb +435 -0
- data/lib/postboost/models/recycling_rule_settings.rb +381 -0
- data/lib/postboost/models/recycling_rule_update.rb +366 -0
- data/lib/postboost/models/recycling_run.rb +320 -0
- data/lib/postboost/models/remove_generic_subscription422_response.rb +214 -0
- data/lib/postboost/models/remove_user_from_workspace_request.rb +2 -2
- data/lib/postboost/models/report_branding.rb +285 -0
- data/lib/postboost/models/report_branding_input.rb +293 -0
- data/lib/postboost/models/report_export.rb +442 -0
- data/lib/postboost/models/report_export_input.rb +350 -0
- data/lib/postboost/models/repurpose_content200_response.rb +237 -0
- data/lib/postboost/models/repurpose_input.rb +667 -0
- data/lib/postboost/models/repurpose_input_theme.rb +296 -0
- data/lib/postboost/models/repurpose_result.rb +328 -0
- data/lib/postboost/models/repurpose_result_media.rb +224 -0
- data/lib/postboost/models/repurpose_result_source.rb +283 -0
- data/lib/postboost/models/repurpose_slide.rb +239 -0
- data/lib/postboost/models/reseller_client.rb +360 -0
- data/lib/postboost/models/reseller_client_input.rb +240 -0
- data/lib/postboost/models/reseller_client_usage.rb +239 -0
- data/lib/postboost/models/retry_post_account_result.rb +275 -0
- data/lib/postboost/models/rss_feed.rb +402 -0
- data/lib/postboost/models/rss_feed_input.rb +433 -0
- data/lib/postboost/models/rss_feed_update.rb +396 -0
- data/lib/postboost/models/run_agent202_response.rb +221 -0
- data/lib/postboost/models/schedule_post_request.rb +48 -6
- data/lib/postboost/models/schedule_result.rb +23 -6
- data/lib/postboost/models/subscription.rb +37 -2
- data/lib/postboost/models/subscription_input.rb +2 -2
- data/lib/postboost/models/subscription_status.rb +2 -2
- data/lib/postboost/models/subscription_update_input.rb +2 -2
- data/lib/postboost/models/tag.rb +30 -2
- data/lib/postboost/models/tag_input.rb +2 -2
- data/lib/postboost/models/template.rb +256 -0
- data/lib/postboost/models/template_content_item.rb +240 -0
- data/lib/postboost/models/template_input.rb +271 -0
- data/lib/postboost/models/template_input_content_inner.rb +227 -0
- data/lib/postboost/models/update_media_request.rb +61 -11
- data/lib/postboost/models/{upload_chunk200_response.rb → upload_chunk201_response.rb} +5 -5
- data/lib/postboost/models/user.rb +48 -3
- data/lib/postboost/models/user_input.rb +2 -2
- data/lib/postboost/models/user_update_input.rb +2 -2
- data/lib/postboost/models/webhook_event_name.rb +50 -0
- data/lib/postboost/models/webhook_event_payload.rb +262 -0
- data/lib/postboost/models/webhook_subscription.rb +297 -0
- data/lib/postboost/models/webhook_subscription_input.rb +349 -0
- data/lib/postboost/models/workspace.rb +42 -3
- data/lib/postboost/models/workspace_agent.rb +381 -0
- data/lib/postboost/models/workspace_agent_input.rb +326 -0
- data/lib/postboost/models/workspace_agent_settings.rb +340 -0
- data/lib/postboost/models/workspace_agent_update.rb +294 -0
- data/lib/postboost/models/workspace_input.rb +3 -9
- data/lib/postboost/models/workspace_user_input.rb +2 -2
- data/lib/postboost/models/x_usage.rb +303 -0
- data/lib/postboost/models/x_usage_counter.rb +234 -0
- data/lib/postboost/version.rb +3 -3
- data/lib/postboost.rb +219 -6
- data/postboost.gemspec +3 -3
- data/spec/api/account_groups_api_spec.rb +102 -0
- data/spec/api/accounts_api_spec.rb +46 -3
- data/spec/api/activity_api_spec.rb +51 -0
- data/spec/api/agents_api_spec.rb +170 -0
- data/spec/api/ai_api_spec.rb +189 -0
- data/spec/api/analytics_api_spec.rb +201 -0
- data/spec/api/competitors_api_spec.rb +87 -0
- data/spec/api/hashtag_groups_api_spec.rb +102 -0
- data/spec/api/inbox_api_spec.rb +178 -0
- data/spec/api/media_api_spec.rb +92 -11
- data/spec/api/mentions_api_spec.rb +104 -0
- data/spec/api/posting_schedule_api_spec.rb +102 -0
- data/spec/api/posts_api_spec.rb +224 -6
- data/spec/api/receipts_api_spec.rb +9 -2
- data/spec/api/subscriptions_api_spec.rb +12 -2
- data/spec/api/tags_api_spec.rb +8 -2
- data/spec/api/templates_api_spec.rb +102 -0
- data/spec/api/users_api_spec.rb +9 -2
- data/spec/api/webhooks_api_spec.rb +73 -0
- data/spec/api/workspaces_api_spec.rb +108 -2
- data/spec/models/account_analytics_initial_sync_spec.rb +42 -0
- data/spec/models/account_analytics_spec.rb +66 -0
- data/spec/models/account_connection_health_spec.rb +92 -0
- data/spec/models/account_errors_inner_one_of_spec.rb +54 -0
- data/spec/models/account_errors_inner_spec.rb +32 -0
- data/spec/models/account_group_input_spec.rb +42 -0
- data/spec/models/account_group_spec.rb +54 -0
- data/spec/models/account_health_daily_cap_spec.rb +42 -0
- data/spec/models/account_health_spec.rb +84 -0
- data/spec/models/account_schedule_spec.rb +48 -0
- data/spec/models/account_spec.rb +36 -2
- data/spec/models/add_competitor202_response_spec.rb +46 -0
- data/spec/models/add_competitor409_response_spec.rb +42 -0
- data/spec/models/add_generic_subscription_request_spec.rb +2 -2
- data/spec/models/add_post_to_queue_request_spec.rb +36 -0
- data/spec/models/agent_page_meta_spec.rb +54 -0
- data/spec/models/agent_proposal_decision_spec.rb +36 -0
- data/spec/models/agent_proposal_spec.rb +126 -0
- data/spec/models/agent_run_spec.rb +122 -0
- data/spec/models/ai_credits_spec.rb +48 -0
- data/spec/models/ai_usage_spec.rb +42 -0
- data/spec/models/ai_usage_text_spec.rb +54 -0
- data/spec/models/analytics_period_spec.rb +54 -0
- data/spec/models/analytics_summary_data_spec.rb +96 -0
- data/spec/models/analytics_summary_spec.rb +42 -0
- data/spec/models/api_activity_outcome_spec.rb +30 -0
- data/spec/models/api_activity_spec.rb +90 -0
- data/spec/models/api_key_ability_spec.rb +30 -0
- data/spec/models/api_key_input_spec.rb +54 -0
- data/spec/models/api_key_spec.rb +78 -0
- data/spec/models/approve_agent_proposal200_response_spec.rb +36 -0
- data/spec/models/approve_agent_proposal409_response_spec.rb +42 -0
- data/spec/models/approve_inbox_reply_draft403_response_spec.rb +46 -0
- data/spec/models/approve_post_request_spec.rb +54 -0
- data/spec/models/best_posting_times_spec.rb +42 -0
- data/spec/models/best_posting_times_times_inner_spec.rb +54 -0
- data/spec/models/blog_to_social200_response_spec.rb +42 -0
- data/spec/models/blog_to_social429_response_spec.rb +36 -0
- data/spec/models/blog_to_social_caption_spec.rb +66 -0
- data/spec/models/blog_to_social_input_spec.rb +134 -0
- data/spec/models/blog_to_social_media_spec.rb +42 -0
- data/spec/models/blog_to_social_response_spec.rb +72 -0
- data/spec/models/brand_voice_input_spec.rb +128 -0
- data/spec/models/brand_voice_meta_spec.rb +36 -0
- data/spec/models/brand_voice_spec.rb +134 -0
- data/spec/models/cancel_subscription422_response_errors_spec.rb +36 -0
- data/spec/models/cancel_subscription422_response_spec.rb +42 -0
- data/spec/models/cancel_subscription_request_spec.rb +36 -0
- data/spec/models/change_subscription_plan_request_spec.rb +2 -2
- data/spec/models/channel_account_spec.rb +94 -0
- data/spec/models/checkout_subscription200_response_spec.rb +2 -2
- data/spec/models/checkout_subscription_request_spec.rb +2 -2
- data/spec/models/coded_error_spec.rb +48 -0
- data/spec/models/competitor_detail_spec.rb +96 -0
- data/spec/models/competitor_input_spec.rb +42 -0
- data/spec/models/competitor_media_spec.rb +66 -0
- data/spec/models/competitor_snapshot_spec.rb +48 -0
- data/spec/models/competitor_spec.rb +84 -0
- data/spec/models/complete_chunked_upload_request_spec.rb +42 -0
- data/spec/models/connect_channel_input_spec.rb +54 -0
- data/spec/models/create_account_group201_response_spec.rb +36 -0
- data/spec/models/create_agent201_response_spec.rb +36 -0
- data/spec/models/create_api_key201_response_data_spec.rb +84 -0
- data/spec/models/create_api_key201_response_spec.rb +36 -0
- data/spec/models/create_hashtag_group201_response_spec.rb +36 -0
- data/spec/models/create_inbox_reply_draft201_response_spec.rb +36 -0
- data/spec/models/create_media_folder_request_spec.rb +42 -0
- data/spec/models/create_mention201_response_spec.rb +36 -0
- data/spec/models/create_recycling_rule201_response_spec.rb +36 -0
- data/spec/models/create_report_export201_response_spec.rb +36 -0
- data/spec/models/create_reseller_client201_response_spec.rb +36 -0
- data/spec/models/create_rss_feed201_response_spec.rb +36 -0
- data/spec/models/create_template201_response_spec.rb +36 -0
- data/spec/models/create_webhook_subscription201_response_data_spec.rb +72 -0
- data/spec/models/create_webhook_subscription201_response_spec.rb +36 -0
- data/spec/models/delete_agent200_response_spec.rb +36 -0
- data/spec/models/delete_media_bulk_request_items_inner_spec.rb +32 -0
- data/spec/models/delete_media_bulk_request_spec.rb +2 -2
- data/spec/models/delete_media_folder_request_spec.rb +36 -0
- data/spec/models/delete_mode_spec.rb +2 -2
- data/spec/models/delete_post_request_spec.rb +2 -2
- data/spec/models/delete_posts_bulk_request_spec.rb +2 -2
- data/spec/models/delete_receipts_bulk_request_spec.rb +2 -2
- data/spec/models/delete_result_spec.rb +2 -2
- data/spec/models/delete_user400_response_spec.rb +2 -2
- data/spec/models/delete_users_bulk_request_spec.rb +2 -2
- data/spec/models/delete_workspaces_bulk_request_spec.rb +2 -2
- data/spec/models/get_account_health200_response_spec.rb +36 -0
- data/spec/models/get_brand_voice200_response_spec.rb +36 -0
- data/spec/models/get_competitor200_response_spec.rb +36 -0
- data/spec/models/get_inbox_conversation200_response_spec.rb +36 -0
- data/spec/models/get_posting_schedule200_response_spec.rb +36 -0
- data/spec/models/get_remote_upload_status200_response_spec.rb +2 -2
- data/spec/models/get_report_branding200_response_spec.rb +36 -0
- data/spec/models/guardrail_error_spec.rb +70 -0
- data/spec/models/hashtag_group_input_spec.rb +42 -0
- data/spec/models/hashtag_group_spec.rb +48 -0
- data/spec/models/image_alt_text200_response_spec.rb +36 -0
- data/spec/models/image_alt_text_input_spec.rb +36 -0
- data/spec/models/image_alt_text_response_spec.rb +54 -0
- data/spec/models/image_credit_balance_spec.rb +66 -0
- data/spec/models/image_edit_input_spec.rb +80 -0
- data/spec/models/image_generate200_response_spec.rb +42 -0
- data/spec/models/image_generate429_response_spec.rb +36 -0
- data/spec/models/image_generate_input_spec.rb +108 -0
- data/spec/models/image_generation_response_spec.rb +72 -0
- data/spec/models/image_prompt200_response_spec.rb +42 -0
- data/spec/models/image_prompt429_response_spec.rb +36 -0
- data/spec/models/image_prompt_input_spec.rb +76 -0
- data/spec/models/image_prompt_response_spec.rb +36 -0
- data/spec/models/image_variations200_response_spec.rb +36 -0
- data/spec/models/image_variations_input_spec.rb +62 -0
- data/spec/models/image_variations_response_spec.rb +60 -0
- data/spec/models/inbox_author_spec.rb +48 -0
- data/spec/models/inbox_conversation_account_spec.rb +54 -0
- data/spec/models/inbox_conversation_spec.rb +128 -0
- data/spec/models/inbox_conversation_update_spec.rb +46 -0
- data/spec/models/inbox_message_author_spec.rb +48 -0
- data/spec/models/inbox_message_spec.rb +90 -0
- data/spec/models/inbox_reply_draft_approve_spec.rb +36 -0
- data/spec/models/inbox_reply_draft_edit_spec.rb +36 -0
- data/spec/models/inbox_reply_draft_input_spec.rb +42 -0
- data/spec/models/inbox_reply_draft_spec.rb +116 -0
- data/spec/models/initiate_chunked_upload201_response_spec.rb +48 -0
- data/spec/models/initiate_chunked_upload_request_spec.rb +2 -2
- data/spec/models/initiate_remote_upload201_response_one_of_spec.rb +36 -0
- data/spec/models/initiate_remote_upload201_response_spec.rb +32 -0
- data/spec/models/initiate_remote_upload_request_spec.rb +8 -2
- data/spec/models/learn_brand_voice_input_spec.rb +54 -0
- data/spec/models/learn_brand_voice_response_meta_spec.rb +60 -0
- data/spec/models/learn_brand_voice_response_spec.rb +42 -0
- data/spec/models/list_account_groups200_response_spec.rb +48 -0
- data/spec/models/list_accounts200_response_spec.rb +2 -2
- data/spec/models/list_agent_proposals200_response_spec.rb +42 -0
- data/spec/models/list_agent_runs200_response_spec.rb +42 -0
- data/spec/models/list_agents200_response_spec.rb +36 -0
- data/spec/models/list_api_activity200_response_spec.rb +48 -0
- data/spec/models/list_api_keys200_response_spec.rb +36 -0
- data/spec/models/list_competitors200_response_spec.rb +36 -0
- data/spec/models/list_hashtag_groups200_response_spec.rb +48 -0
- data/spec/models/list_inbox_conversations200_response_spec.rb +48 -0
- data/spec/models/list_inbox_reply_drafts200_response_spec.rb +48 -0
- data/spec/models/list_media200_response_spec.rb +2 -2
- data/spec/models/list_media_folders200_response_spec.rb +36 -0
- data/spec/models/list_mentions200_response_spec.rb +48 -0
- data/spec/models/list_my_workspaces200_response_spec.rb +36 -0
- data/spec/models/list_posts200_response_spec.rb +2 -2
- data/spec/models/list_receipts200_response_spec.rb +2 -2
- data/spec/models/list_recycling_rules200_response_spec.rb +36 -0
- data/spec/models/list_recycling_runs200_response_spec.rb +36 -0
- data/spec/models/list_report_exports200_response_spec.rb +36 -0
- data/spec/models/list_reseller_clients200_response_spec.rb +42 -0
- data/spec/models/list_rss_feeds200_response_spec.rb +36 -0
- data/spec/models/list_tags200_response_spec.rb +2 -2
- data/spec/models/list_templates200_response_spec.rb +48 -0
- data/spec/models/list_users200_response_spec.rb +2 -2
- data/spec/models/list_webhook_subscriptions200_response_spec.rb +36 -0
- data/spec/models/list_workspaces200_response_spec.rb +2 -2
- data/spec/models/media_base64_input_spec.rb +54 -0
- data/spec/models/media_folder_input_spec.rb +42 -0
- data/spec/models/media_folder_ref_spec.rb +42 -0
- data/spec/models/media_folder_spec.rb +54 -0
- data/spec/models/media_spec.rb +44 -2
- data/spec/models/mention_identity_input_spec.rb +60 -0
- data/spec/models/mention_identity_spec.rb +54 -0
- data/spec/models/mention_input_spec.rb +48 -0
- data/spec/models/mention_spec.rb +66 -0
- data/spec/models/message_only_spec.rb +36 -0
- data/spec/models/pagination_meta_links_spec.rb +2 -2
- data/spec/models/pagination_meta_meta_spec.rb +2 -2
- data/spec/models/pagination_meta_spec.rb +2 -2
- data/spec/models/poll_rss_feed200_response_spec.rb +48 -0
- data/spec/models/post_analytics_spec.rb +48 -0
- data/spec/models/post_content_spec.rb +2 -2
- data/spec/models/post_input_spec.rb +20 -2
- data/spec/models/post_options_instagram_spec.rb +52 -0
- data/spec/models/post_options_tik_tok_spec.rb +88 -0
- data/spec/models/post_options_youtube_spec.rb +58 -0
- data/spec/models/post_spec.rb +8 -2
- data/spec/models/post_status_spec.rb +2 -2
- data/spec/models/post_version_options_spec.rb +54 -0
- data/spec/models/post_version_spec.rb +8 -2
- data/spec/models/posting_schedule_day_spec.rb +48 -0
- data/spec/models/posting_schedule_day_times_inner_spec.rb +36 -0
- data/spec/models/posting_schedule_input_spec.rb +54 -0
- data/spec/models/posting_schedule_spec.rb +66 -0
- data/spec/models/posting_time_slot_spec.rb +52 -0
- data/spec/models/posting_times_best_inner_spec.rb +54 -0
- data/spec/models/posting_times_day_intervals_inner_inner_spec.rb +70 -0
- data/spec/models/posting_times_days_inner_spec.rb +58 -0
- data/spec/models/posting_times_spec.rb +78 -0
- data/spec/models/preflight_result_spec.rb +60 -0
- data/spec/models/public_workspace_pivot_spec.rb +52 -0
- data/spec/models/public_workspace_spec.rb +54 -0
- data/spec/models/publish_progress_spec.rb +48 -0
- data/spec/models/queue_slots_spec.rb +42 -0
- data/spec/models/receipt_input_spec.rb +2 -2
- data/spec/models/receipt_spec.rb +2 -2
- data/spec/models/receipt_update_input_spec.rb +2 -2
- data/spec/models/recommended_posting_times_spec.rb +60 -0
- data/spec/models/reconnect_link_spec.rb +48 -0
- data/spec/models/recycling_rule_input_spec.rb +92 -0
- data/spec/models/recycling_rule_settings_spec.rb +70 -0
- data/spec/models/recycling_rule_spec.rb +116 -0
- data/spec/models/recycling_rule_update_spec.rb +70 -0
- data/spec/models/recycling_run_spec.rb +70 -0
- data/spec/models/remove_generic_subscription422_response_spec.rb +36 -0
- data/spec/models/remove_user_from_workspace_request_spec.rb +2 -2
- data/spec/models/report_branding_input_spec.rb +54 -0
- data/spec/models/report_branding_spec.rb +66 -0
- data/spec/models/report_export_input_spec.rb +78 -0
- data/spec/models/report_export_spec.rb +120 -0
- data/spec/models/repurpose_content200_response_spec.rb +42 -0
- data/spec/models/repurpose_input_spec.rb +164 -0
- data/spec/models/repurpose_input_theme_spec.rb +48 -0
- data/spec/models/repurpose_result_media_spec.rb +42 -0
- data/spec/models/repurpose_result_source_spec.rb +52 -0
- data/spec/models/repurpose_result_spec.rb +78 -0
- data/spec/models/repurpose_slide_spec.rb +42 -0
- data/spec/models/reseller_client_input_spec.rb +36 -0
- data/spec/models/reseller_client_spec.rb +82 -0
- data/spec/models/reseller_client_usage_spec.rb +42 -0
- data/spec/models/retry_post_account_result_spec.rb +48 -0
- data/spec/models/rss_feed_input_spec.rb +76 -0
- data/spec/models/rss_feed_spec.rb +100 -0
- data/spec/models/rss_feed_update_spec.rb +76 -0
- data/spec/models/run_agent202_response_spec.rb +36 -0
- data/spec/models/schedule_post_request_spec.rb +26 -2
- data/spec/models/schedule_result_spec.rb +8 -2
- data/spec/models/subscription_input_spec.rb +2 -2
- data/spec/models/subscription_spec.rb +2 -2
- data/spec/models/subscription_status_spec.rb +2 -2
- data/spec/models/subscription_update_input_spec.rb +2 -2
- data/spec/models/tag_input_spec.rb +2 -2
- data/spec/models/tag_spec.rb +2 -2
- data/spec/models/template_content_item_spec.rb +42 -0
- data/spec/models/template_input_content_inner_spec.rb +42 -0
- data/spec/models/template_input_spec.rb +42 -0
- data/spec/models/template_spec.rb +48 -0
- data/spec/models/update_media_request_spec.rb +14 -2
- data/spec/models/upload_chunk201_response_spec.rb +36 -0
- data/spec/models/user_input_spec.rb +2 -2
- data/spec/models/user_spec.rb +8 -2
- data/spec/models/user_update_input_spec.rb +2 -2
- data/spec/models/webhook_event_name_spec.rb +30 -0
- data/spec/models/webhook_event_payload_spec.rb +42 -0
- data/spec/models/webhook_subscription_input_spec.rb +58 -0
- data/spec/models/webhook_subscription_spec.rb +66 -0
- data/spec/models/workspace_agent_input_spec.rb +68 -0
- data/spec/models/workspace_agent_settings_spec.rb +60 -0
- data/spec/models/workspace_agent_spec.rb +92 -0
- data/spec/models/workspace_agent_update_spec.rb +58 -0
- data/spec/models/workspace_input_spec.rb +2 -2
- data/spec/models/workspace_spec.rb +8 -2
- data/spec/models/workspace_user_input_spec.rb +2 -2
- data/spec/models/x_usage_counter_spec.rb +42 -0
- data/spec/models/x_usage_spec.rb +66 -0
- data/spec/spec_helper.rb +2 -2
- metadata +943 -76
- data/git_push.sh +0 -57
- data/spec/models/initiate_chunked_upload200_response_spec.rb +0 -48
- data/spec/models/initiate_remote_upload200_response_one_of_spec.rb +0 -36
- data/spec/models/initiate_remote_upload200_response_spec.rb +0 -32
- data/spec/models/upload_chunk200_response_spec.rb +0 -36
|
@@ -0,0 +1,884 @@
|
|
|
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 'cgi'
|
|
14
|
+
|
|
15
|
+
module PostBoost
|
|
16
|
+
class AIApi
|
|
17
|
+
attr_accessor :api_client
|
|
18
|
+
|
|
19
|
+
def initialize(api_client = ApiClient.default)
|
|
20
|
+
@api_client = api_client
|
|
21
|
+
end
|
|
22
|
+
# Generate social media captions from a blog post
|
|
23
|
+
# Generates platform-specific social media captions from a blog post URL or directly provided title and excerpt. Each platform generates one caption, which consumes one AI credit from the workspace's monthly allowance. **Input modes** (at least one required): - **URL mode**: provide `url` and the API scrapes the blog content automatically, including detecting the featured image via `og:image`. - **Direct mode**: provide `title` and `excerpt` directly (no scraping). If both are provided, direct values take priority. When `create_post` is `true`, a draft post is created in the workspace with per-account caption versions. If an image is available (from `image_url` or the scraped `og:image`), it is imported into the workspace media library and attached to the draft post.
|
|
24
|
+
# @param workspace_uuid [String] UUID of the workspace.
|
|
25
|
+
# @param blog_to_social_input [BlogToSocialInput]
|
|
26
|
+
# @param [Hash] opts the optional parameters
|
|
27
|
+
# @return [BlogToSocial200Response]
|
|
28
|
+
def blog_to_social(workspace_uuid, blog_to_social_input, opts = {})
|
|
29
|
+
data, _status_code, _headers = blog_to_social_with_http_info(workspace_uuid, blog_to_social_input, opts)
|
|
30
|
+
data
|
|
31
|
+
end
|
|
32
|
+
|
|
33
|
+
# Generate social media captions from a blog post
|
|
34
|
+
# Generates platform-specific social media captions from a blog post URL or directly provided title and excerpt. Each platform generates one caption, which consumes one AI credit from the workspace's monthly allowance. **Input modes** (at least one required): - **URL mode**: provide `url` and the API scrapes the blog content automatically, including detecting the featured image via `og:image`. - **Direct mode**: provide `title` and `excerpt` directly (no scraping). If both are provided, direct values take priority. When `create_post` is `true`, a draft post is created in the workspace with per-account caption versions. If an image is available (from `image_url` or the scraped `og:image`), it is imported into the workspace media library and attached to the draft post.
|
|
35
|
+
# @param workspace_uuid [String] UUID of the workspace.
|
|
36
|
+
# @param blog_to_social_input [BlogToSocialInput]
|
|
37
|
+
# @param [Hash] opts the optional parameters
|
|
38
|
+
# @return [Array<(BlogToSocial200Response, Integer, Hash)>] BlogToSocial200Response data, response status code and response headers
|
|
39
|
+
def blog_to_social_with_http_info(workspace_uuid, blog_to_social_input, opts = {})
|
|
40
|
+
if @api_client.config.debugging
|
|
41
|
+
@api_client.config.logger.debug 'Calling API: AIApi.blog_to_social ...'
|
|
42
|
+
end
|
|
43
|
+
# verify the required parameter 'workspace_uuid' is set
|
|
44
|
+
if @api_client.config.client_side_validation && workspace_uuid.nil?
|
|
45
|
+
fail ArgumentError, "Missing the required parameter 'workspace_uuid' when calling AIApi.blog_to_social"
|
|
46
|
+
end
|
|
47
|
+
# verify the required parameter 'blog_to_social_input' is set
|
|
48
|
+
if @api_client.config.client_side_validation && blog_to_social_input.nil?
|
|
49
|
+
fail ArgumentError, "Missing the required parameter 'blog_to_social_input' when calling AIApi.blog_to_social"
|
|
50
|
+
end
|
|
51
|
+
# resource path
|
|
52
|
+
local_var_path = '/{workspaceUuid}/ai/blog-to-social'.sub('{' + 'workspaceUuid' + '}', CGI.escape(workspace_uuid.to_s))
|
|
53
|
+
|
|
54
|
+
# query parameters
|
|
55
|
+
query_params = opts[:query_params] || {}
|
|
56
|
+
|
|
57
|
+
# header parameters
|
|
58
|
+
header_params = opts[:header_params] || {}
|
|
59
|
+
# HTTP header 'Accept' (if needed)
|
|
60
|
+
header_params['Accept'] = @api_client.select_header_accept(['application/json']) unless header_params['Accept']
|
|
61
|
+
# HTTP header 'Content-Type'
|
|
62
|
+
content_type = @api_client.select_header_content_type(['application/json'])
|
|
63
|
+
if !content_type.nil?
|
|
64
|
+
header_params['Content-Type'] = content_type
|
|
65
|
+
end
|
|
66
|
+
|
|
67
|
+
# form parameters
|
|
68
|
+
form_params = opts[:form_params] || {}
|
|
69
|
+
|
|
70
|
+
# http body (model)
|
|
71
|
+
post_body = opts[:debug_body] || @api_client.object_to_http_body(blog_to_social_input)
|
|
72
|
+
|
|
73
|
+
# return_type
|
|
74
|
+
return_type = opts[:debug_return_type] || 'BlogToSocial200Response'
|
|
75
|
+
|
|
76
|
+
# auth_names
|
|
77
|
+
auth_names = opts[:debug_auth_names] || ['bearerAuth']
|
|
78
|
+
|
|
79
|
+
new_options = opts.merge(
|
|
80
|
+
:operation => :"AIApi.blog_to_social",
|
|
81
|
+
:header_params => header_params,
|
|
82
|
+
:query_params => query_params,
|
|
83
|
+
:form_params => form_params,
|
|
84
|
+
:body => post_body,
|
|
85
|
+
:auth_names => auth_names,
|
|
86
|
+
:return_type => return_type
|
|
87
|
+
)
|
|
88
|
+
|
|
89
|
+
data, status_code, headers = @api_client.call_api(:POST, local_var_path, new_options)
|
|
90
|
+
if @api_client.config.debugging
|
|
91
|
+
@api_client.config.logger.debug "API called: AIApi#blog_to_social\nData: #{data.inspect}\nStatus code: #{status_code}\nHeaders: #{headers}"
|
|
92
|
+
end
|
|
93
|
+
return data, status_code, headers
|
|
94
|
+
end
|
|
95
|
+
|
|
96
|
+
# Delete the brand voice
|
|
97
|
+
# Removes the workspace's brand voice. AI endpoints then run without one. Admins and members only.
|
|
98
|
+
# @param workspace_uuid [String] UUID of the workspace.
|
|
99
|
+
# @param [Hash] opts the optional parameters
|
|
100
|
+
# @return [Object]
|
|
101
|
+
def delete_brand_voice(workspace_uuid, opts = {})
|
|
102
|
+
data, _status_code, _headers = delete_brand_voice_with_http_info(workspace_uuid, opts)
|
|
103
|
+
data
|
|
104
|
+
end
|
|
105
|
+
|
|
106
|
+
# Delete the brand voice
|
|
107
|
+
# Removes the workspace's brand voice. AI endpoints then run without one. Admins and members only.
|
|
108
|
+
# @param workspace_uuid [String] UUID of the workspace.
|
|
109
|
+
# @param [Hash] opts the optional parameters
|
|
110
|
+
# @return [Array<(Object, Integer, Hash)>] Object data, response status code and response headers
|
|
111
|
+
def delete_brand_voice_with_http_info(workspace_uuid, opts = {})
|
|
112
|
+
if @api_client.config.debugging
|
|
113
|
+
@api_client.config.logger.debug 'Calling API: AIApi.delete_brand_voice ...'
|
|
114
|
+
end
|
|
115
|
+
# verify the required parameter 'workspace_uuid' is set
|
|
116
|
+
if @api_client.config.client_side_validation && workspace_uuid.nil?
|
|
117
|
+
fail ArgumentError, "Missing the required parameter 'workspace_uuid' when calling AIApi.delete_brand_voice"
|
|
118
|
+
end
|
|
119
|
+
# resource path
|
|
120
|
+
local_var_path = '/{workspaceUuid}/brand-voice'.sub('{' + 'workspaceUuid' + '}', CGI.escape(workspace_uuid.to_s))
|
|
121
|
+
|
|
122
|
+
# query parameters
|
|
123
|
+
query_params = opts[:query_params] || {}
|
|
124
|
+
|
|
125
|
+
# header parameters
|
|
126
|
+
header_params = opts[:header_params] || {}
|
|
127
|
+
# HTTP header 'Accept' (if needed)
|
|
128
|
+
header_params['Accept'] = @api_client.select_header_accept(['application/json']) unless header_params['Accept']
|
|
129
|
+
|
|
130
|
+
# form parameters
|
|
131
|
+
form_params = opts[:form_params] || {}
|
|
132
|
+
|
|
133
|
+
# http body (model)
|
|
134
|
+
post_body = opts[:debug_body]
|
|
135
|
+
|
|
136
|
+
# return_type
|
|
137
|
+
return_type = opts[:debug_return_type] || 'Object'
|
|
138
|
+
|
|
139
|
+
# auth_names
|
|
140
|
+
auth_names = opts[:debug_auth_names] || ['bearerAuth']
|
|
141
|
+
|
|
142
|
+
new_options = opts.merge(
|
|
143
|
+
:operation => :"AIApi.delete_brand_voice",
|
|
144
|
+
:header_params => header_params,
|
|
145
|
+
:query_params => query_params,
|
|
146
|
+
:form_params => form_params,
|
|
147
|
+
:body => post_body,
|
|
148
|
+
:auth_names => auth_names,
|
|
149
|
+
:return_type => return_type
|
|
150
|
+
)
|
|
151
|
+
|
|
152
|
+
data, status_code, headers = @api_client.call_api(:DELETE, local_var_path, new_options)
|
|
153
|
+
if @api_client.config.debugging
|
|
154
|
+
@api_client.config.logger.debug "API called: AIApi#delete_brand_voice\nData: #{data.inspect}\nStatus code: #{status_code}\nHeaders: #{headers}"
|
|
155
|
+
end
|
|
156
|
+
return data, status_code, headers
|
|
157
|
+
end
|
|
158
|
+
|
|
159
|
+
# AI credit usage
|
|
160
|
+
# The workspace's AI credits: text credits (captions, rewrites, outlines, alt text; counted per billing cycle) and image credits (one per generated, edited or varied image, and one per repurpose carousel; counted per calendar month, UTC). `limit` and `remaining` are `null` when the workspace has no limit. Readable when credits are used up; costs nothing. When image credits run out, the image endpoints and carousels answer `429` with `code: image_credits_exhausted`; when text credits run out, the AI endpoints answer `429` with `code: ai_credits_exhausted`. Image endpoint responses also carry `image_credits_used` and `image_credits_remaining`; their `credits_used` counts text credits only. If the image pool is switched off (`image.enabled: false`), images cost text credits as before.
|
|
161
|
+
# @param workspace_uuid [String] UUID of the workspace.
|
|
162
|
+
# @param [Hash] opts the optional parameters
|
|
163
|
+
# @return [AIUsage]
|
|
164
|
+
def get_ai_usage(workspace_uuid, opts = {})
|
|
165
|
+
data, _status_code, _headers = get_ai_usage_with_http_info(workspace_uuid, opts)
|
|
166
|
+
data
|
|
167
|
+
end
|
|
168
|
+
|
|
169
|
+
# AI credit usage
|
|
170
|
+
# The workspace's AI credits: text credits (captions, rewrites, outlines, alt text; counted per billing cycle) and image credits (one per generated, edited or varied image, and one per repurpose carousel; counted per calendar month, UTC). `limit` and `remaining` are `null` when the workspace has no limit. Readable when credits are used up; costs nothing. When image credits run out, the image endpoints and carousels answer `429` with `code: image_credits_exhausted`; when text credits run out, the AI endpoints answer `429` with `code: ai_credits_exhausted`. Image endpoint responses also carry `image_credits_used` and `image_credits_remaining`; their `credits_used` counts text credits only. If the image pool is switched off (`image.enabled: false`), images cost text credits as before.
|
|
171
|
+
# @param workspace_uuid [String] UUID of the workspace.
|
|
172
|
+
# @param [Hash] opts the optional parameters
|
|
173
|
+
# @return [Array<(AIUsage, Integer, Hash)>] AIUsage data, response status code and response headers
|
|
174
|
+
def get_ai_usage_with_http_info(workspace_uuid, opts = {})
|
|
175
|
+
if @api_client.config.debugging
|
|
176
|
+
@api_client.config.logger.debug 'Calling API: AIApi.get_ai_usage ...'
|
|
177
|
+
end
|
|
178
|
+
# verify the required parameter 'workspace_uuid' is set
|
|
179
|
+
if @api_client.config.client_side_validation && workspace_uuid.nil?
|
|
180
|
+
fail ArgumentError, "Missing the required parameter 'workspace_uuid' when calling AIApi.get_ai_usage"
|
|
181
|
+
end
|
|
182
|
+
# resource path
|
|
183
|
+
local_var_path = '/{workspaceUuid}/usage/ai'.sub('{' + 'workspaceUuid' + '}', CGI.escape(workspace_uuid.to_s))
|
|
184
|
+
|
|
185
|
+
# query parameters
|
|
186
|
+
query_params = opts[:query_params] || {}
|
|
187
|
+
|
|
188
|
+
# header parameters
|
|
189
|
+
header_params = opts[:header_params] || {}
|
|
190
|
+
# HTTP header 'Accept' (if needed)
|
|
191
|
+
header_params['Accept'] = @api_client.select_header_accept(['application/json']) unless header_params['Accept']
|
|
192
|
+
|
|
193
|
+
# form parameters
|
|
194
|
+
form_params = opts[:form_params] || {}
|
|
195
|
+
|
|
196
|
+
# http body (model)
|
|
197
|
+
post_body = opts[:debug_body]
|
|
198
|
+
|
|
199
|
+
# return_type
|
|
200
|
+
return_type = opts[:debug_return_type] || 'AIUsage'
|
|
201
|
+
|
|
202
|
+
# auth_names
|
|
203
|
+
auth_names = opts[:debug_auth_names] || ['bearerAuth']
|
|
204
|
+
|
|
205
|
+
new_options = opts.merge(
|
|
206
|
+
:operation => :"AIApi.get_ai_usage",
|
|
207
|
+
:header_params => header_params,
|
|
208
|
+
:query_params => query_params,
|
|
209
|
+
:form_params => form_params,
|
|
210
|
+
:body => post_body,
|
|
211
|
+
:auth_names => auth_names,
|
|
212
|
+
:return_type => return_type
|
|
213
|
+
)
|
|
214
|
+
|
|
215
|
+
data, status_code, headers = @api_client.call_api(:GET, local_var_path, new_options)
|
|
216
|
+
if @api_client.config.debugging
|
|
217
|
+
@api_client.config.logger.debug "API called: AIApi#get_ai_usage\nData: #{data.inspect}\nStatus code: #{status_code}\nHeaders: #{headers}"
|
|
218
|
+
end
|
|
219
|
+
return data, status_code, headers
|
|
220
|
+
end
|
|
221
|
+
|
|
222
|
+
# Get the brand voice
|
|
223
|
+
# The workspace's brand voice: identity, audience, tone sliders, style rules and example posts. It is the same profile as the Brand Voice page in the app (one per workspace). `data` is `null` when no voice is set. Any workspace member may read it; reading costs no AI credits. The AI endpoints apply it automatically: `blog-to-social` adds it to the caption instructions, `image-prompt` and `image-generate` turn it into a short visual tone line, and `image-edit` applies it when you send `use_brand_voice: true`. `image-variations` and `image-alt-text` never use it (alt text must describe the image literally). Send `use_brand_voice: false` to skip it on a call; responses report `meta.brand_voice_applied`.
|
|
224
|
+
# @param workspace_uuid [String] UUID of the workspace.
|
|
225
|
+
# @param [Hash] opts the optional parameters
|
|
226
|
+
# @return [GetBrandVoice200Response]
|
|
227
|
+
def get_brand_voice(workspace_uuid, opts = {})
|
|
228
|
+
data, _status_code, _headers = get_brand_voice_with_http_info(workspace_uuid, opts)
|
|
229
|
+
data
|
|
230
|
+
end
|
|
231
|
+
|
|
232
|
+
# Get the brand voice
|
|
233
|
+
# The workspace's brand voice: identity, audience, tone sliders, style rules and example posts. It is the same profile as the Brand Voice page in the app (one per workspace). `data` is `null` when no voice is set. Any workspace member may read it; reading costs no AI credits. The AI endpoints apply it automatically: `blog-to-social` adds it to the caption instructions, `image-prompt` and `image-generate` turn it into a short visual tone line, and `image-edit` applies it when you send `use_brand_voice: true`. `image-variations` and `image-alt-text` never use it (alt text must describe the image literally). Send `use_brand_voice: false` to skip it on a call; responses report `meta.brand_voice_applied`.
|
|
234
|
+
# @param workspace_uuid [String] UUID of the workspace.
|
|
235
|
+
# @param [Hash] opts the optional parameters
|
|
236
|
+
# @return [Array<(GetBrandVoice200Response, Integer, Hash)>] GetBrandVoice200Response data, response status code and response headers
|
|
237
|
+
def get_brand_voice_with_http_info(workspace_uuid, opts = {})
|
|
238
|
+
if @api_client.config.debugging
|
|
239
|
+
@api_client.config.logger.debug 'Calling API: AIApi.get_brand_voice ...'
|
|
240
|
+
end
|
|
241
|
+
# verify the required parameter 'workspace_uuid' is set
|
|
242
|
+
if @api_client.config.client_side_validation && workspace_uuid.nil?
|
|
243
|
+
fail ArgumentError, "Missing the required parameter 'workspace_uuid' when calling AIApi.get_brand_voice"
|
|
244
|
+
end
|
|
245
|
+
# resource path
|
|
246
|
+
local_var_path = '/{workspaceUuid}/brand-voice'.sub('{' + 'workspaceUuid' + '}', CGI.escape(workspace_uuid.to_s))
|
|
247
|
+
|
|
248
|
+
# query parameters
|
|
249
|
+
query_params = opts[:query_params] || {}
|
|
250
|
+
|
|
251
|
+
# header parameters
|
|
252
|
+
header_params = opts[:header_params] || {}
|
|
253
|
+
# HTTP header 'Accept' (if needed)
|
|
254
|
+
header_params['Accept'] = @api_client.select_header_accept(['application/json']) unless header_params['Accept']
|
|
255
|
+
|
|
256
|
+
# form parameters
|
|
257
|
+
form_params = opts[:form_params] || {}
|
|
258
|
+
|
|
259
|
+
# http body (model)
|
|
260
|
+
post_body = opts[:debug_body]
|
|
261
|
+
|
|
262
|
+
# return_type
|
|
263
|
+
return_type = opts[:debug_return_type] || 'GetBrandVoice200Response'
|
|
264
|
+
|
|
265
|
+
# auth_names
|
|
266
|
+
auth_names = opts[:debug_auth_names] || ['bearerAuth']
|
|
267
|
+
|
|
268
|
+
new_options = opts.merge(
|
|
269
|
+
:operation => :"AIApi.get_brand_voice",
|
|
270
|
+
:header_params => header_params,
|
|
271
|
+
:query_params => query_params,
|
|
272
|
+
:form_params => form_params,
|
|
273
|
+
:body => post_body,
|
|
274
|
+
:auth_names => auth_names,
|
|
275
|
+
:return_type => return_type
|
|
276
|
+
)
|
|
277
|
+
|
|
278
|
+
data, status_code, headers = @api_client.call_api(:GET, local_var_path, new_options)
|
|
279
|
+
if @api_client.config.debugging
|
|
280
|
+
@api_client.config.logger.debug "API called: AIApi#get_brand_voice\nData: #{data.inspect}\nStatus code: #{status_code}\nHeaders: #{headers}"
|
|
281
|
+
end
|
|
282
|
+
return data, status_code, headers
|
|
283
|
+
end
|
|
284
|
+
|
|
285
|
+
# Generate alt text for a media image using AI
|
|
286
|
+
# Analyzes an existing workspace media item and generates accessible alt text. The alt text is saved back to the media record. Costs 1 AI credit per call.
|
|
287
|
+
# @param workspace_uuid [String] UUID of the workspace.
|
|
288
|
+
# @param image_alt_text_input [ImageAltTextInput]
|
|
289
|
+
# @param [Hash] opts the optional parameters
|
|
290
|
+
# @return [ImageAltText200Response]
|
|
291
|
+
def image_alt_text(workspace_uuid, image_alt_text_input, opts = {})
|
|
292
|
+
data, _status_code, _headers = image_alt_text_with_http_info(workspace_uuid, image_alt_text_input, opts)
|
|
293
|
+
data
|
|
294
|
+
end
|
|
295
|
+
|
|
296
|
+
# Generate alt text for a media image using AI
|
|
297
|
+
# Analyzes an existing workspace media item and generates accessible alt text. The alt text is saved back to the media record. Costs 1 AI credit per call.
|
|
298
|
+
# @param workspace_uuid [String] UUID of the workspace.
|
|
299
|
+
# @param image_alt_text_input [ImageAltTextInput]
|
|
300
|
+
# @param [Hash] opts the optional parameters
|
|
301
|
+
# @return [Array<(ImageAltText200Response, Integer, Hash)>] ImageAltText200Response data, response status code and response headers
|
|
302
|
+
def image_alt_text_with_http_info(workspace_uuid, image_alt_text_input, opts = {})
|
|
303
|
+
if @api_client.config.debugging
|
|
304
|
+
@api_client.config.logger.debug 'Calling API: AIApi.image_alt_text ...'
|
|
305
|
+
end
|
|
306
|
+
# verify the required parameter 'workspace_uuid' is set
|
|
307
|
+
if @api_client.config.client_side_validation && workspace_uuid.nil?
|
|
308
|
+
fail ArgumentError, "Missing the required parameter 'workspace_uuid' when calling AIApi.image_alt_text"
|
|
309
|
+
end
|
|
310
|
+
# verify the required parameter 'image_alt_text_input' is set
|
|
311
|
+
if @api_client.config.client_side_validation && image_alt_text_input.nil?
|
|
312
|
+
fail ArgumentError, "Missing the required parameter 'image_alt_text_input' when calling AIApi.image_alt_text"
|
|
313
|
+
end
|
|
314
|
+
# resource path
|
|
315
|
+
local_var_path = '/{workspaceUuid}/ai/image-alt-text'.sub('{' + 'workspaceUuid' + '}', CGI.escape(workspace_uuid.to_s))
|
|
316
|
+
|
|
317
|
+
# query parameters
|
|
318
|
+
query_params = opts[:query_params] || {}
|
|
319
|
+
|
|
320
|
+
# header parameters
|
|
321
|
+
header_params = opts[:header_params] || {}
|
|
322
|
+
# HTTP header 'Accept' (if needed)
|
|
323
|
+
header_params['Accept'] = @api_client.select_header_accept(['application/json']) unless header_params['Accept']
|
|
324
|
+
# HTTP header 'Content-Type'
|
|
325
|
+
content_type = @api_client.select_header_content_type(['application/json'])
|
|
326
|
+
if !content_type.nil?
|
|
327
|
+
header_params['Content-Type'] = content_type
|
|
328
|
+
end
|
|
329
|
+
|
|
330
|
+
# form parameters
|
|
331
|
+
form_params = opts[:form_params] || {}
|
|
332
|
+
|
|
333
|
+
# http body (model)
|
|
334
|
+
post_body = opts[:debug_body] || @api_client.object_to_http_body(image_alt_text_input)
|
|
335
|
+
|
|
336
|
+
# return_type
|
|
337
|
+
return_type = opts[:debug_return_type] || 'ImageAltText200Response'
|
|
338
|
+
|
|
339
|
+
# auth_names
|
|
340
|
+
auth_names = opts[:debug_auth_names] || ['bearerAuth']
|
|
341
|
+
|
|
342
|
+
new_options = opts.merge(
|
|
343
|
+
:operation => :"AIApi.image_alt_text",
|
|
344
|
+
:header_params => header_params,
|
|
345
|
+
:query_params => query_params,
|
|
346
|
+
:form_params => form_params,
|
|
347
|
+
:body => post_body,
|
|
348
|
+
:auth_names => auth_names,
|
|
349
|
+
:return_type => return_type
|
|
350
|
+
)
|
|
351
|
+
|
|
352
|
+
data, status_code, headers = @api_client.call_api(:POST, local_var_path, new_options)
|
|
353
|
+
if @api_client.config.debugging
|
|
354
|
+
@api_client.config.logger.debug "API called: AIApi#image_alt_text\nData: #{data.inspect}\nStatus code: #{status_code}\nHeaders: #{headers}"
|
|
355
|
+
end
|
|
356
|
+
return data, status_code, headers
|
|
357
|
+
end
|
|
358
|
+
|
|
359
|
+
# Edit an existing media image using AI
|
|
360
|
+
# Edits an existing workspace media item using the source image and a text prompt. Optionally accepts a mask (transparent areas are replaced). Saves results to the media library. Credits: `count × credit_weight`.
|
|
361
|
+
# @param workspace_uuid [String] UUID of the workspace.
|
|
362
|
+
# @param image_edit_input [ImageEditInput]
|
|
363
|
+
# @param [Hash] opts the optional parameters
|
|
364
|
+
# @return [ImageGenerate200Response]
|
|
365
|
+
def image_edit(workspace_uuid, image_edit_input, opts = {})
|
|
366
|
+
data, _status_code, _headers = image_edit_with_http_info(workspace_uuid, image_edit_input, opts)
|
|
367
|
+
data
|
|
368
|
+
end
|
|
369
|
+
|
|
370
|
+
# Edit an existing media image using AI
|
|
371
|
+
# Edits an existing workspace media item using the source image and a text prompt. Optionally accepts a mask (transparent areas are replaced). Saves results to the media library. Credits: `count × credit_weight`.
|
|
372
|
+
# @param workspace_uuid [String] UUID of the workspace.
|
|
373
|
+
# @param image_edit_input [ImageEditInput]
|
|
374
|
+
# @param [Hash] opts the optional parameters
|
|
375
|
+
# @return [Array<(ImageGenerate200Response, Integer, Hash)>] ImageGenerate200Response data, response status code and response headers
|
|
376
|
+
def image_edit_with_http_info(workspace_uuid, image_edit_input, opts = {})
|
|
377
|
+
if @api_client.config.debugging
|
|
378
|
+
@api_client.config.logger.debug 'Calling API: AIApi.image_edit ...'
|
|
379
|
+
end
|
|
380
|
+
# verify the required parameter 'workspace_uuid' is set
|
|
381
|
+
if @api_client.config.client_side_validation && workspace_uuid.nil?
|
|
382
|
+
fail ArgumentError, "Missing the required parameter 'workspace_uuid' when calling AIApi.image_edit"
|
|
383
|
+
end
|
|
384
|
+
# verify the required parameter 'image_edit_input' is set
|
|
385
|
+
if @api_client.config.client_side_validation && image_edit_input.nil?
|
|
386
|
+
fail ArgumentError, "Missing the required parameter 'image_edit_input' when calling AIApi.image_edit"
|
|
387
|
+
end
|
|
388
|
+
# resource path
|
|
389
|
+
local_var_path = '/{workspaceUuid}/ai/image-edit'.sub('{' + 'workspaceUuid' + '}', CGI.escape(workspace_uuid.to_s))
|
|
390
|
+
|
|
391
|
+
# query parameters
|
|
392
|
+
query_params = opts[:query_params] || {}
|
|
393
|
+
|
|
394
|
+
# header parameters
|
|
395
|
+
header_params = opts[:header_params] || {}
|
|
396
|
+
# HTTP header 'Accept' (if needed)
|
|
397
|
+
header_params['Accept'] = @api_client.select_header_accept(['application/json']) unless header_params['Accept']
|
|
398
|
+
# HTTP header 'Content-Type'
|
|
399
|
+
content_type = @api_client.select_header_content_type(['application/json'])
|
|
400
|
+
if !content_type.nil?
|
|
401
|
+
header_params['Content-Type'] = content_type
|
|
402
|
+
end
|
|
403
|
+
|
|
404
|
+
# form parameters
|
|
405
|
+
form_params = opts[:form_params] || {}
|
|
406
|
+
|
|
407
|
+
# http body (model)
|
|
408
|
+
post_body = opts[:debug_body] || @api_client.object_to_http_body(image_edit_input)
|
|
409
|
+
|
|
410
|
+
# return_type
|
|
411
|
+
return_type = opts[:debug_return_type] || 'ImageGenerate200Response'
|
|
412
|
+
|
|
413
|
+
# auth_names
|
|
414
|
+
auth_names = opts[:debug_auth_names] || ['bearerAuth']
|
|
415
|
+
|
|
416
|
+
new_options = opts.merge(
|
|
417
|
+
:operation => :"AIApi.image_edit",
|
|
418
|
+
:header_params => header_params,
|
|
419
|
+
:query_params => query_params,
|
|
420
|
+
:form_params => form_params,
|
|
421
|
+
:body => post_body,
|
|
422
|
+
:auth_names => auth_names,
|
|
423
|
+
:return_type => return_type
|
|
424
|
+
)
|
|
425
|
+
|
|
426
|
+
data, status_code, headers = @api_client.call_api(:POST, local_var_path, new_options)
|
|
427
|
+
if @api_client.config.debugging
|
|
428
|
+
@api_client.config.logger.debug "API called: AIApi#image_edit\nData: #{data.inspect}\nStatus code: #{status_code}\nHeaders: #{headers}"
|
|
429
|
+
end
|
|
430
|
+
return data, status_code, headers
|
|
431
|
+
end
|
|
432
|
+
|
|
433
|
+
# Generate social media images from a caption
|
|
434
|
+
# Generates one or more images and saves them immediately to the workspace media library. **Standard mode** (recommended): provide `caption` + `platform`. PostBoost builds a professional image prompt internally using platform-specific templates. No prompt engineering required. **Developer mode**: provide `prompt` directly to bypass prompt building. If both `caption` and `prompt` are sent, standard mode runs. Credits: `count x credit_weight` (default: 5 per image).
|
|
435
|
+
# @param workspace_uuid [String] UUID of the workspace.
|
|
436
|
+
# @param image_generate_input [ImageGenerateInput]
|
|
437
|
+
# @param [Hash] opts the optional parameters
|
|
438
|
+
# @return [ImageGenerate200Response]
|
|
439
|
+
def image_generate(workspace_uuid, image_generate_input, opts = {})
|
|
440
|
+
data, _status_code, _headers = image_generate_with_http_info(workspace_uuid, image_generate_input, opts)
|
|
441
|
+
data
|
|
442
|
+
end
|
|
443
|
+
|
|
444
|
+
# Generate social media images from a caption
|
|
445
|
+
# Generates one or more images and saves them immediately to the workspace media library. **Standard mode** (recommended): provide `caption` + `platform`. PostBoost builds a professional image prompt internally using platform-specific templates. No prompt engineering required. **Developer mode**: provide `prompt` directly to bypass prompt building. If both `caption` and `prompt` are sent, standard mode runs. Credits: `count x credit_weight` (default: 5 per image).
|
|
446
|
+
# @param workspace_uuid [String] UUID of the workspace.
|
|
447
|
+
# @param image_generate_input [ImageGenerateInput]
|
|
448
|
+
# @param [Hash] opts the optional parameters
|
|
449
|
+
# @return [Array<(ImageGenerate200Response, Integer, Hash)>] ImageGenerate200Response data, response status code and response headers
|
|
450
|
+
def image_generate_with_http_info(workspace_uuid, image_generate_input, opts = {})
|
|
451
|
+
if @api_client.config.debugging
|
|
452
|
+
@api_client.config.logger.debug 'Calling API: AIApi.image_generate ...'
|
|
453
|
+
end
|
|
454
|
+
# verify the required parameter 'workspace_uuid' is set
|
|
455
|
+
if @api_client.config.client_side_validation && workspace_uuid.nil?
|
|
456
|
+
fail ArgumentError, "Missing the required parameter 'workspace_uuid' when calling AIApi.image_generate"
|
|
457
|
+
end
|
|
458
|
+
# verify the required parameter 'image_generate_input' is set
|
|
459
|
+
if @api_client.config.client_side_validation && image_generate_input.nil?
|
|
460
|
+
fail ArgumentError, "Missing the required parameter 'image_generate_input' when calling AIApi.image_generate"
|
|
461
|
+
end
|
|
462
|
+
# resource path
|
|
463
|
+
local_var_path = '/{workspaceUuid}/ai/image-generate'.sub('{' + 'workspaceUuid' + '}', CGI.escape(workspace_uuid.to_s))
|
|
464
|
+
|
|
465
|
+
# query parameters
|
|
466
|
+
query_params = opts[:query_params] || {}
|
|
467
|
+
|
|
468
|
+
# header parameters
|
|
469
|
+
header_params = opts[:header_params] || {}
|
|
470
|
+
# HTTP header 'Accept' (if needed)
|
|
471
|
+
header_params['Accept'] = @api_client.select_header_accept(['application/json']) unless header_params['Accept']
|
|
472
|
+
# HTTP header 'Content-Type'
|
|
473
|
+
content_type = @api_client.select_header_content_type(['application/json'])
|
|
474
|
+
if !content_type.nil?
|
|
475
|
+
header_params['Content-Type'] = content_type
|
|
476
|
+
end
|
|
477
|
+
|
|
478
|
+
# form parameters
|
|
479
|
+
form_params = opts[:form_params] || {}
|
|
480
|
+
|
|
481
|
+
# http body (model)
|
|
482
|
+
post_body = opts[:debug_body] || @api_client.object_to_http_body(image_generate_input)
|
|
483
|
+
|
|
484
|
+
# return_type
|
|
485
|
+
return_type = opts[:debug_return_type] || 'ImageGenerate200Response'
|
|
486
|
+
|
|
487
|
+
# auth_names
|
|
488
|
+
auth_names = opts[:debug_auth_names] || ['bearerAuth']
|
|
489
|
+
|
|
490
|
+
new_options = opts.merge(
|
|
491
|
+
:operation => :"AIApi.image_generate",
|
|
492
|
+
:header_params => header_params,
|
|
493
|
+
:query_params => query_params,
|
|
494
|
+
:form_params => form_params,
|
|
495
|
+
:body => post_body,
|
|
496
|
+
:auth_names => auth_names,
|
|
497
|
+
:return_type => return_type
|
|
498
|
+
)
|
|
499
|
+
|
|
500
|
+
data, status_code, headers = @api_client.call_api(:POST, local_var_path, new_options)
|
|
501
|
+
if @api_client.config.debugging
|
|
502
|
+
@api_client.config.logger.debug "API called: AIApi#image_generate\nData: #{data.inspect}\nStatus code: #{status_code}\nHeaders: #{headers}"
|
|
503
|
+
end
|
|
504
|
+
return data, status_code, headers
|
|
505
|
+
end
|
|
506
|
+
|
|
507
|
+
# Build an optimized image prompt from a social media caption
|
|
508
|
+
# Builds a professional image generation prompt from a caption and platform. No image is generated. Use this to preview the prompt before calling `image-generate`. Costs 1 AI credit per call. When `image-generate` builds the prompt internally (standard mode), no credit is charged for the prompt step.
|
|
509
|
+
# @param workspace_uuid [String] UUID of the workspace.
|
|
510
|
+
# @param image_prompt_input [ImagePromptInput]
|
|
511
|
+
# @param [Hash] opts the optional parameters
|
|
512
|
+
# @return [ImagePrompt200Response]
|
|
513
|
+
def image_prompt(workspace_uuid, image_prompt_input, opts = {})
|
|
514
|
+
data, _status_code, _headers = image_prompt_with_http_info(workspace_uuid, image_prompt_input, opts)
|
|
515
|
+
data
|
|
516
|
+
end
|
|
517
|
+
|
|
518
|
+
# Build an optimized image prompt from a social media caption
|
|
519
|
+
# Builds a professional image generation prompt from a caption and platform. No image is generated. Use this to preview the prompt before calling `image-generate`. Costs 1 AI credit per call. When `image-generate` builds the prompt internally (standard mode), no credit is charged for the prompt step.
|
|
520
|
+
# @param workspace_uuid [String] UUID of the workspace.
|
|
521
|
+
# @param image_prompt_input [ImagePromptInput]
|
|
522
|
+
# @param [Hash] opts the optional parameters
|
|
523
|
+
# @return [Array<(ImagePrompt200Response, Integer, Hash)>] ImagePrompt200Response data, response status code and response headers
|
|
524
|
+
def image_prompt_with_http_info(workspace_uuid, image_prompt_input, opts = {})
|
|
525
|
+
if @api_client.config.debugging
|
|
526
|
+
@api_client.config.logger.debug 'Calling API: AIApi.image_prompt ...'
|
|
527
|
+
end
|
|
528
|
+
# verify the required parameter 'workspace_uuid' is set
|
|
529
|
+
if @api_client.config.client_side_validation && workspace_uuid.nil?
|
|
530
|
+
fail ArgumentError, "Missing the required parameter 'workspace_uuid' when calling AIApi.image_prompt"
|
|
531
|
+
end
|
|
532
|
+
# verify the required parameter 'image_prompt_input' is set
|
|
533
|
+
if @api_client.config.client_side_validation && image_prompt_input.nil?
|
|
534
|
+
fail ArgumentError, "Missing the required parameter 'image_prompt_input' when calling AIApi.image_prompt"
|
|
535
|
+
end
|
|
536
|
+
# resource path
|
|
537
|
+
local_var_path = '/{workspaceUuid}/ai/image-prompt'.sub('{' + 'workspaceUuid' + '}', CGI.escape(workspace_uuid.to_s))
|
|
538
|
+
|
|
539
|
+
# query parameters
|
|
540
|
+
query_params = opts[:query_params] || {}
|
|
541
|
+
|
|
542
|
+
# header parameters
|
|
543
|
+
header_params = opts[:header_params] || {}
|
|
544
|
+
# HTTP header 'Accept' (if needed)
|
|
545
|
+
header_params['Accept'] = @api_client.select_header_accept(['application/json']) unless header_params['Accept']
|
|
546
|
+
# HTTP header 'Content-Type'
|
|
547
|
+
content_type = @api_client.select_header_content_type(['application/json'])
|
|
548
|
+
if !content_type.nil?
|
|
549
|
+
header_params['Content-Type'] = content_type
|
|
550
|
+
end
|
|
551
|
+
|
|
552
|
+
# form parameters
|
|
553
|
+
form_params = opts[:form_params] || {}
|
|
554
|
+
|
|
555
|
+
# http body (model)
|
|
556
|
+
post_body = opts[:debug_body] || @api_client.object_to_http_body(image_prompt_input)
|
|
557
|
+
|
|
558
|
+
# return_type
|
|
559
|
+
return_type = opts[:debug_return_type] || 'ImagePrompt200Response'
|
|
560
|
+
|
|
561
|
+
# auth_names
|
|
562
|
+
auth_names = opts[:debug_auth_names] || ['bearerAuth']
|
|
563
|
+
|
|
564
|
+
new_options = opts.merge(
|
|
565
|
+
:operation => :"AIApi.image_prompt",
|
|
566
|
+
:header_params => header_params,
|
|
567
|
+
:query_params => query_params,
|
|
568
|
+
:form_params => form_params,
|
|
569
|
+
:body => post_body,
|
|
570
|
+
:auth_names => auth_names,
|
|
571
|
+
:return_type => return_type
|
|
572
|
+
)
|
|
573
|
+
|
|
574
|
+
data, status_code, headers = @api_client.call_api(:POST, local_var_path, new_options)
|
|
575
|
+
if @api_client.config.debugging
|
|
576
|
+
@api_client.config.logger.debug "API called: AIApi#image_prompt\nData: #{data.inspect}\nStatus code: #{status_code}\nHeaders: #{headers}"
|
|
577
|
+
end
|
|
578
|
+
return data, status_code, headers
|
|
579
|
+
end
|
|
580
|
+
|
|
581
|
+
# Generate variations of an existing media image
|
|
582
|
+
# Creates one or more variations of an existing workspace media item. Saves results to the media library. Credits: `count × credit_weight`.
|
|
583
|
+
# @param workspace_uuid [String] UUID of the workspace.
|
|
584
|
+
# @param image_variations_input [ImageVariationsInput]
|
|
585
|
+
# @param [Hash] opts the optional parameters
|
|
586
|
+
# @return [ImageVariations200Response]
|
|
587
|
+
def image_variations(workspace_uuid, image_variations_input, opts = {})
|
|
588
|
+
data, _status_code, _headers = image_variations_with_http_info(workspace_uuid, image_variations_input, opts)
|
|
589
|
+
data
|
|
590
|
+
end
|
|
591
|
+
|
|
592
|
+
# Generate variations of an existing media image
|
|
593
|
+
# Creates one or more variations of an existing workspace media item. Saves results to the media library. Credits: `count × credit_weight`.
|
|
594
|
+
# @param workspace_uuid [String] UUID of the workspace.
|
|
595
|
+
# @param image_variations_input [ImageVariationsInput]
|
|
596
|
+
# @param [Hash] opts the optional parameters
|
|
597
|
+
# @return [Array<(ImageVariations200Response, Integer, Hash)>] ImageVariations200Response data, response status code and response headers
|
|
598
|
+
def image_variations_with_http_info(workspace_uuid, image_variations_input, opts = {})
|
|
599
|
+
if @api_client.config.debugging
|
|
600
|
+
@api_client.config.logger.debug 'Calling API: AIApi.image_variations ...'
|
|
601
|
+
end
|
|
602
|
+
# verify the required parameter 'workspace_uuid' is set
|
|
603
|
+
if @api_client.config.client_side_validation && workspace_uuid.nil?
|
|
604
|
+
fail ArgumentError, "Missing the required parameter 'workspace_uuid' when calling AIApi.image_variations"
|
|
605
|
+
end
|
|
606
|
+
# verify the required parameter 'image_variations_input' is set
|
|
607
|
+
if @api_client.config.client_side_validation && image_variations_input.nil?
|
|
608
|
+
fail ArgumentError, "Missing the required parameter 'image_variations_input' when calling AIApi.image_variations"
|
|
609
|
+
end
|
|
610
|
+
# resource path
|
|
611
|
+
local_var_path = '/{workspaceUuid}/ai/image-variations'.sub('{' + 'workspaceUuid' + '}', CGI.escape(workspace_uuid.to_s))
|
|
612
|
+
|
|
613
|
+
# query parameters
|
|
614
|
+
query_params = opts[:query_params] || {}
|
|
615
|
+
|
|
616
|
+
# header parameters
|
|
617
|
+
header_params = opts[:header_params] || {}
|
|
618
|
+
# HTTP header 'Accept' (if needed)
|
|
619
|
+
header_params['Accept'] = @api_client.select_header_accept(['application/json']) unless header_params['Accept']
|
|
620
|
+
# HTTP header 'Content-Type'
|
|
621
|
+
content_type = @api_client.select_header_content_type(['application/json'])
|
|
622
|
+
if !content_type.nil?
|
|
623
|
+
header_params['Content-Type'] = content_type
|
|
624
|
+
end
|
|
625
|
+
|
|
626
|
+
# form parameters
|
|
627
|
+
form_params = opts[:form_params] || {}
|
|
628
|
+
|
|
629
|
+
# http body (model)
|
|
630
|
+
post_body = opts[:debug_body] || @api_client.object_to_http_body(image_variations_input)
|
|
631
|
+
|
|
632
|
+
# return_type
|
|
633
|
+
return_type = opts[:debug_return_type] || 'ImageVariations200Response'
|
|
634
|
+
|
|
635
|
+
# auth_names
|
|
636
|
+
auth_names = opts[:debug_auth_names] || ['bearerAuth']
|
|
637
|
+
|
|
638
|
+
new_options = opts.merge(
|
|
639
|
+
:operation => :"AIApi.image_variations",
|
|
640
|
+
:header_params => header_params,
|
|
641
|
+
:query_params => query_params,
|
|
642
|
+
:form_params => form_params,
|
|
643
|
+
:body => post_body,
|
|
644
|
+
:auth_names => auth_names,
|
|
645
|
+
:return_type => return_type
|
|
646
|
+
)
|
|
647
|
+
|
|
648
|
+
data, status_code, headers = @api_client.call_api(:POST, local_var_path, new_options)
|
|
649
|
+
if @api_client.config.debugging
|
|
650
|
+
@api_client.config.logger.debug "API called: AIApi#image_variations\nData: #{data.inspect}\nStatus code: #{status_code}\nHeaders: #{headers}"
|
|
651
|
+
end
|
|
652
|
+
return data, status_code, headers
|
|
653
|
+
end
|
|
654
|
+
|
|
655
|
+
# Learn a brand voice from past posts
|
|
656
|
+
# Reads the workspace's latest published posts (original text) and proposes a brand voice in the same shape as `GET /brand-voice`. Returns a draft and saves nothing unless `apply: true`. Without `overwrite`, learned values only fill fields that are empty (tone sliders and styles still at their defaults count as empty); with `overwrite: true` they replace them. The first five sampled posts become `example_posts`. Needs at least 3 published posts (`422`, `code: not_enough_posts`). Costs one AI text credit per AI call (one retry when the reply is not usable). Admins and members only. A key limited to some accounts must send `account_ids`; only posts whose accounts are all among them are read. `apply` also needs the `write` ability.
|
|
657
|
+
# @param workspace_uuid [String] UUID of the workspace.
|
|
658
|
+
# @param [Hash] opts the optional parameters
|
|
659
|
+
# @option opts [LearnBrandVoiceInput] :learn_brand_voice_input
|
|
660
|
+
# @return [LearnBrandVoiceResponse]
|
|
661
|
+
def learn_brand_voice(workspace_uuid, opts = {})
|
|
662
|
+
data, _status_code, _headers = learn_brand_voice_with_http_info(workspace_uuid, opts)
|
|
663
|
+
data
|
|
664
|
+
end
|
|
665
|
+
|
|
666
|
+
# Learn a brand voice from past posts
|
|
667
|
+
# Reads the workspace's latest published posts (original text) and proposes a brand voice in the same shape as `GET /brand-voice`. Returns a draft and saves nothing unless `apply: true`. Without `overwrite`, learned values only fill fields that are empty (tone sliders and styles still at their defaults count as empty); with `overwrite: true` they replace them. The first five sampled posts become `example_posts`. Needs at least 3 published posts (`422`, `code: not_enough_posts`). Costs one AI text credit per AI call (one retry when the reply is not usable). Admins and members only. A key limited to some accounts must send `account_ids`; only posts whose accounts are all among them are read. `apply` also needs the `write` ability.
|
|
668
|
+
# @param workspace_uuid [String] UUID of the workspace.
|
|
669
|
+
# @param [Hash] opts the optional parameters
|
|
670
|
+
# @option opts [LearnBrandVoiceInput] :learn_brand_voice_input
|
|
671
|
+
# @return [Array<(LearnBrandVoiceResponse, Integer, Hash)>] LearnBrandVoiceResponse data, response status code and response headers
|
|
672
|
+
def learn_brand_voice_with_http_info(workspace_uuid, opts = {})
|
|
673
|
+
if @api_client.config.debugging
|
|
674
|
+
@api_client.config.logger.debug 'Calling API: AIApi.learn_brand_voice ...'
|
|
675
|
+
end
|
|
676
|
+
# verify the required parameter 'workspace_uuid' is set
|
|
677
|
+
if @api_client.config.client_side_validation && workspace_uuid.nil?
|
|
678
|
+
fail ArgumentError, "Missing the required parameter 'workspace_uuid' when calling AIApi.learn_brand_voice"
|
|
679
|
+
end
|
|
680
|
+
# resource path
|
|
681
|
+
local_var_path = '/{workspaceUuid}/brand-voice/learn'.sub('{' + 'workspaceUuid' + '}', CGI.escape(workspace_uuid.to_s))
|
|
682
|
+
|
|
683
|
+
# query parameters
|
|
684
|
+
query_params = opts[:query_params] || {}
|
|
685
|
+
|
|
686
|
+
# header parameters
|
|
687
|
+
header_params = opts[:header_params] || {}
|
|
688
|
+
# HTTP header 'Accept' (if needed)
|
|
689
|
+
header_params['Accept'] = @api_client.select_header_accept(['application/json']) unless header_params['Accept']
|
|
690
|
+
# HTTP header 'Content-Type'
|
|
691
|
+
content_type = @api_client.select_header_content_type(['application/json'])
|
|
692
|
+
if !content_type.nil?
|
|
693
|
+
header_params['Content-Type'] = content_type
|
|
694
|
+
end
|
|
695
|
+
|
|
696
|
+
# form parameters
|
|
697
|
+
form_params = opts[:form_params] || {}
|
|
698
|
+
|
|
699
|
+
# http body (model)
|
|
700
|
+
post_body = opts[:debug_body] || @api_client.object_to_http_body(opts[:'learn_brand_voice_input'])
|
|
701
|
+
|
|
702
|
+
# return_type
|
|
703
|
+
return_type = opts[:debug_return_type] || 'LearnBrandVoiceResponse'
|
|
704
|
+
|
|
705
|
+
# auth_names
|
|
706
|
+
auth_names = opts[:debug_auth_names] || ['bearerAuth']
|
|
707
|
+
|
|
708
|
+
new_options = opts.merge(
|
|
709
|
+
:operation => :"AIApi.learn_brand_voice",
|
|
710
|
+
:header_params => header_params,
|
|
711
|
+
:query_params => query_params,
|
|
712
|
+
:form_params => form_params,
|
|
713
|
+
:body => post_body,
|
|
714
|
+
:auth_names => auth_names,
|
|
715
|
+
:return_type => return_type
|
|
716
|
+
)
|
|
717
|
+
|
|
718
|
+
data, status_code, headers = @api_client.call_api(:POST, local_var_path, new_options)
|
|
719
|
+
if @api_client.config.debugging
|
|
720
|
+
@api_client.config.logger.debug "API called: AIApi#learn_brand_voice\nData: #{data.inspect}\nStatus code: #{status_code}\nHeaders: #{headers}"
|
|
721
|
+
end
|
|
722
|
+
return data, status_code, headers
|
|
723
|
+
end
|
|
724
|
+
|
|
725
|
+
# Repurpose long-form content into a draft post set with a carousel
|
|
726
|
+
# Turns an article URL, a YouTube video, a PDF or pasted text into one **draft** post with a caption for every target account, plus a carousel of rendered slide images (hook, 1 to 6 idea slides, call to action; 1080×1350 PNG). Nothing is published or scheduled. **Sources** (`source_type`): - `url`: the article is fetched and its main text extracted. - `youtube`: title, description and chapters come from YouTube; send the transcript in `transcript` for better results (required when the description is short). - `pdf`: `pdf_url` must be a public PDF of at most 20 MB; the first 30 pages are read. - `text`: send `title` and `text`. **Carousel per network**: Instagram, Facebook, Threads up to 10 slides; LinkedIn up to 9; X and Bluesky up to 4; other networks get the cover slide; YouTube and TikTok get none (listed in `warnings`). Without a carousel, the source image (article image or video thumbnail) is attached when available. **AI credits**: one per target account plus one for the carousel outline. Slides are drawn without AI and cost nothing. The workspace brand voice applies unless `use_brand_voice` is `false`. Send an `Idempotency-Key` so a retried call does not create a second draft. Limited to 10 calls per minute.
|
|
727
|
+
# @param workspace_uuid [String] UUID of the workspace.
|
|
728
|
+
# @param repurpose_input [RepurposeInput]
|
|
729
|
+
# @param [Hash] opts the optional parameters
|
|
730
|
+
# @option opts [String] :idempotency_key Unique key (for example a UUID) that makes the request safe to retry. A repeat with the same key and body within 24 hours returns the stored response with `Idempotent-Replayed: true` and has no further effect. Keys are scoped to your user, the workspace, the method and the path.
|
|
731
|
+
# @return [RepurposeContent200Response]
|
|
732
|
+
def repurpose_content(workspace_uuid, repurpose_input, opts = {})
|
|
733
|
+
data, _status_code, _headers = repurpose_content_with_http_info(workspace_uuid, repurpose_input, opts)
|
|
734
|
+
data
|
|
735
|
+
end
|
|
736
|
+
|
|
737
|
+
# Repurpose long-form content into a draft post set with a carousel
|
|
738
|
+
# Turns an article URL, a YouTube video, a PDF or pasted text into one **draft** post with a caption for every target account, plus a carousel of rendered slide images (hook, 1 to 6 idea slides, call to action; 1080×1350 PNG). Nothing is published or scheduled. **Sources** (`source_type`): - `url`: the article is fetched and its main text extracted. - `youtube`: title, description and chapters come from YouTube; send the transcript in `transcript` for better results (required when the description is short). - `pdf`: `pdf_url` must be a public PDF of at most 20 MB; the first 30 pages are read. - `text`: send `title` and `text`. **Carousel per network**: Instagram, Facebook, Threads up to 10 slides; LinkedIn up to 9; X and Bluesky up to 4; other networks get the cover slide; YouTube and TikTok get none (listed in `warnings`). Without a carousel, the source image (article image or video thumbnail) is attached when available. **AI credits**: one per target account plus one for the carousel outline. Slides are drawn without AI and cost nothing. The workspace brand voice applies unless `use_brand_voice` is `false`. Send an `Idempotency-Key` so a retried call does not create a second draft. Limited to 10 calls per minute.
|
|
739
|
+
# @param workspace_uuid [String] UUID of the workspace.
|
|
740
|
+
# @param repurpose_input [RepurposeInput]
|
|
741
|
+
# @param [Hash] opts the optional parameters
|
|
742
|
+
# @option opts [String] :idempotency_key Unique key (for example a UUID) that makes the request safe to retry. A repeat with the same key and body within 24 hours returns the stored response with `Idempotent-Replayed: true` and has no further effect. Keys are scoped to your user, the workspace, the method and the path.
|
|
743
|
+
# @return [Array<(RepurposeContent200Response, Integer, Hash)>] RepurposeContent200Response data, response status code and response headers
|
|
744
|
+
def repurpose_content_with_http_info(workspace_uuid, repurpose_input, opts = {})
|
|
745
|
+
if @api_client.config.debugging
|
|
746
|
+
@api_client.config.logger.debug 'Calling API: AIApi.repurpose_content ...'
|
|
747
|
+
end
|
|
748
|
+
# verify the required parameter 'workspace_uuid' is set
|
|
749
|
+
if @api_client.config.client_side_validation && workspace_uuid.nil?
|
|
750
|
+
fail ArgumentError, "Missing the required parameter 'workspace_uuid' when calling AIApi.repurpose_content"
|
|
751
|
+
end
|
|
752
|
+
# verify the required parameter 'repurpose_input' is set
|
|
753
|
+
if @api_client.config.client_side_validation && repurpose_input.nil?
|
|
754
|
+
fail ArgumentError, "Missing the required parameter 'repurpose_input' when calling AIApi.repurpose_content"
|
|
755
|
+
end
|
|
756
|
+
if @api_client.config.client_side_validation && !opts[:'idempotency_key'].nil? && opts[:'idempotency_key'].to_s.length > 255
|
|
757
|
+
fail ArgumentError, 'invalid value for "opts[:"idempotency_key"]" when calling AIApi.repurpose_content, the character length must be smaller than or equal to 255.'
|
|
758
|
+
end
|
|
759
|
+
|
|
760
|
+
if @api_client.config.client_side_validation && !opts[:'idempotency_key'].nil? && opts[:'idempotency_key'].to_s.length < 1
|
|
761
|
+
fail ArgumentError, 'invalid value for "opts[:"idempotency_key"]" when calling AIApi.repurpose_content, the character length must be great than or equal to 1.'
|
|
762
|
+
end
|
|
763
|
+
|
|
764
|
+
# resource path
|
|
765
|
+
local_var_path = '/{workspaceUuid}/ai/repurpose'.sub('{' + 'workspaceUuid' + '}', CGI.escape(workspace_uuid.to_s))
|
|
766
|
+
|
|
767
|
+
# query parameters
|
|
768
|
+
query_params = opts[:query_params] || {}
|
|
769
|
+
|
|
770
|
+
# header parameters
|
|
771
|
+
header_params = opts[:header_params] || {}
|
|
772
|
+
# HTTP header 'Accept' (if needed)
|
|
773
|
+
header_params['Accept'] = @api_client.select_header_accept(['application/json']) unless header_params['Accept']
|
|
774
|
+
# HTTP header 'Content-Type'
|
|
775
|
+
content_type = @api_client.select_header_content_type(['application/json'])
|
|
776
|
+
if !content_type.nil?
|
|
777
|
+
header_params['Content-Type'] = content_type
|
|
778
|
+
end
|
|
779
|
+
header_params[:'Idempotency-Key'] = opts[:'idempotency_key'] if !opts[:'idempotency_key'].nil?
|
|
780
|
+
|
|
781
|
+
# form parameters
|
|
782
|
+
form_params = opts[:form_params] || {}
|
|
783
|
+
|
|
784
|
+
# http body (model)
|
|
785
|
+
post_body = opts[:debug_body] || @api_client.object_to_http_body(repurpose_input)
|
|
786
|
+
|
|
787
|
+
# return_type
|
|
788
|
+
return_type = opts[:debug_return_type] || 'RepurposeContent200Response'
|
|
789
|
+
|
|
790
|
+
# auth_names
|
|
791
|
+
auth_names = opts[:debug_auth_names] || ['bearerAuth']
|
|
792
|
+
|
|
793
|
+
new_options = opts.merge(
|
|
794
|
+
:operation => :"AIApi.repurpose_content",
|
|
795
|
+
:header_params => header_params,
|
|
796
|
+
:query_params => query_params,
|
|
797
|
+
:form_params => form_params,
|
|
798
|
+
:body => post_body,
|
|
799
|
+
:auth_names => auth_names,
|
|
800
|
+
:return_type => return_type
|
|
801
|
+
)
|
|
802
|
+
|
|
803
|
+
data, status_code, headers = @api_client.call_api(:POST, local_var_path, new_options)
|
|
804
|
+
if @api_client.config.debugging
|
|
805
|
+
@api_client.config.logger.debug "API called: AIApi#repurpose_content\nData: #{data.inspect}\nStatus code: #{status_code}\nHeaders: #{headers}"
|
|
806
|
+
end
|
|
807
|
+
return data, status_code, headers
|
|
808
|
+
end
|
|
809
|
+
|
|
810
|
+
# Create or update the brand voice
|
|
811
|
+
# Creates the workspace's brand voice or updates it. Fields you leave out keep their current value. Admins and members only (not viewers); the workspace must have AI enabled.
|
|
812
|
+
# @param workspace_uuid [String] UUID of the workspace.
|
|
813
|
+
# @param brand_voice_input [BrandVoiceInput]
|
|
814
|
+
# @param [Hash] opts the optional parameters
|
|
815
|
+
# @return [GetBrandVoice200Response]
|
|
816
|
+
def update_brand_voice(workspace_uuid, brand_voice_input, opts = {})
|
|
817
|
+
data, _status_code, _headers = update_brand_voice_with_http_info(workspace_uuid, brand_voice_input, opts)
|
|
818
|
+
data
|
|
819
|
+
end
|
|
820
|
+
|
|
821
|
+
# Create or update the brand voice
|
|
822
|
+
# Creates the workspace's brand voice or updates it. Fields you leave out keep their current value. Admins and members only (not viewers); the workspace must have AI enabled.
|
|
823
|
+
# @param workspace_uuid [String] UUID of the workspace.
|
|
824
|
+
# @param brand_voice_input [BrandVoiceInput]
|
|
825
|
+
# @param [Hash] opts the optional parameters
|
|
826
|
+
# @return [Array<(GetBrandVoice200Response, Integer, Hash)>] GetBrandVoice200Response data, response status code and response headers
|
|
827
|
+
def update_brand_voice_with_http_info(workspace_uuid, brand_voice_input, opts = {})
|
|
828
|
+
if @api_client.config.debugging
|
|
829
|
+
@api_client.config.logger.debug 'Calling API: AIApi.update_brand_voice ...'
|
|
830
|
+
end
|
|
831
|
+
# verify the required parameter 'workspace_uuid' is set
|
|
832
|
+
if @api_client.config.client_side_validation && workspace_uuid.nil?
|
|
833
|
+
fail ArgumentError, "Missing the required parameter 'workspace_uuid' when calling AIApi.update_brand_voice"
|
|
834
|
+
end
|
|
835
|
+
# verify the required parameter 'brand_voice_input' is set
|
|
836
|
+
if @api_client.config.client_side_validation && brand_voice_input.nil?
|
|
837
|
+
fail ArgumentError, "Missing the required parameter 'brand_voice_input' when calling AIApi.update_brand_voice"
|
|
838
|
+
end
|
|
839
|
+
# resource path
|
|
840
|
+
local_var_path = '/{workspaceUuid}/brand-voice'.sub('{' + 'workspaceUuid' + '}', CGI.escape(workspace_uuid.to_s))
|
|
841
|
+
|
|
842
|
+
# query parameters
|
|
843
|
+
query_params = opts[:query_params] || {}
|
|
844
|
+
|
|
845
|
+
# header parameters
|
|
846
|
+
header_params = opts[:header_params] || {}
|
|
847
|
+
# HTTP header 'Accept' (if needed)
|
|
848
|
+
header_params['Accept'] = @api_client.select_header_accept(['application/json']) unless header_params['Accept']
|
|
849
|
+
# HTTP header 'Content-Type'
|
|
850
|
+
content_type = @api_client.select_header_content_type(['application/json'])
|
|
851
|
+
if !content_type.nil?
|
|
852
|
+
header_params['Content-Type'] = content_type
|
|
853
|
+
end
|
|
854
|
+
|
|
855
|
+
# form parameters
|
|
856
|
+
form_params = opts[:form_params] || {}
|
|
857
|
+
|
|
858
|
+
# http body (model)
|
|
859
|
+
post_body = opts[:debug_body] || @api_client.object_to_http_body(brand_voice_input)
|
|
860
|
+
|
|
861
|
+
# return_type
|
|
862
|
+
return_type = opts[:debug_return_type] || 'GetBrandVoice200Response'
|
|
863
|
+
|
|
864
|
+
# auth_names
|
|
865
|
+
auth_names = opts[:debug_auth_names] || ['bearerAuth']
|
|
866
|
+
|
|
867
|
+
new_options = opts.merge(
|
|
868
|
+
:operation => :"AIApi.update_brand_voice",
|
|
869
|
+
:header_params => header_params,
|
|
870
|
+
:query_params => query_params,
|
|
871
|
+
:form_params => form_params,
|
|
872
|
+
:body => post_body,
|
|
873
|
+
:auth_names => auth_names,
|
|
874
|
+
:return_type => return_type
|
|
875
|
+
)
|
|
876
|
+
|
|
877
|
+
data, status_code, headers = @api_client.call_api(:PUT, local_var_path, new_options)
|
|
878
|
+
if @api_client.config.debugging
|
|
879
|
+
@api_client.config.logger.debug "API called: AIApi#update_brand_voice\nData: #{data.inspect}\nStatus code: #{status_code}\nHeaders: #{headers}"
|
|
880
|
+
end
|
|
881
|
+
return data, status_code, headers
|
|
882
|
+
end
|
|
883
|
+
end
|
|
884
|
+
end
|