zernio-sdk 0.0.801 → 0.0.803

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 CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: fbf618b19bfc6b28103a744791ca36b32c2e37171e5ab4d5423439b8d1bd927f
4
- data.tar.gz: 1ace6f225b58822e25ea87c62190a4687ba475a1c07df2559c888f2f87e91f9e
3
+ metadata.gz: 7319f7914b71ce9396dbb032b737547adae046e05e81915ef6f3a984bf303197
4
+ data.tar.gz: e0f6d2116ece4e970c6532617c4c4db0a7a56e1fac98b23f9eb14e925801b1c3
5
5
  SHA512:
6
- metadata.gz: b279da9a95dc56900aed04b9bb293619f45848261b4da2b71db5dff4da9043d317b36419d70fce2892eac5120771d3a1426f88c34851494d9c3a0b81a2b2e7ff
7
- data.tar.gz: b4c04bc7b3c2224337bc81c3fd05a5f1f8c8177e89666efca97d461ee607be310d54b22ed651bc348076876cfa20c7c48ed7ec4979576c7f82b817aae5420173
6
+ metadata.gz: dc7503a454f09a838ee9c6843116fca90b44bdede5265def03dae1ee1be30c985f9421f2bcd8e1ce4a4bbac1236537f74a73355e45ae2cb8cfddf6821a40b852
7
+ data.tar.gz: 21a8011f608f07f9408e02b4ed05944ee84eea7d7ce351df2bad684d0bd0b4993f5f2bd9ad71d0acffdbb4b4d28297ed58fd25b00ac6077ed7b176dd6ce729b4
@@ -16,7 +16,7 @@
16
16
  | **followers_count** | **Float** | Follower count (only included if user has analytics add-on) | [optional] |
17
17
  | **followers_last_updated** | **Time** | Last time follower count was updated (only included if user has analytics add-on) | [optional] |
18
18
  | **parent_account_id** | **String** | Reference to the parent posting SocialAccount. Set for ads accounts that share or derive from a posting account's OAuth token. null for standalone ads (Google Ads) and all posting accounts. | [optional] |
19
- | **enabled** | **Boolean** | Whether the user explicitly activated this account. false means the account was created as a side effect (e.g., posting account auto-created when user connected ads first). Posting UI and scheduler ignore accounts with enabled: false. | [optional] |
19
+ | **enabled** | **Boolean** | Whether the user explicitly activated this account. false means the account was created as a side effect (e.g., posting account auto-created when user connected ads first). Such accounts are hidden from this list, cannot be posted to (`ACCOUNT_NOT_ENABLED_FOR_POSTING`), and are not billed as connected accounts. | [optional] |
20
20
  | **metadata** | **Object** | Platform-specific metadata. Fields vary by platform. For WhatsApp accounts, includes: - qualityRating: Phone number quality rating from Meta (GREEN, YELLOW, RED, or UNKNOWN) - nameStatus: Display name review status (APPROVED, PENDING_REVIEW, DECLINED, or NONE). A declined or pending display name does not by itself block sending; sendability is reported separately via health_status (can_send_message). - messagingLimitTier: Maximum unique business-initiated conversations per 24h rolling window (TIER_250, TIER_1K, TIER_10K, TIER_100K, or TIER_UNLIMITED). Scales automatically as quality rating improves. - verifiedName: Meta-verified business display name - displayPhoneNumber: Formatted phone number (e.g., \"+1 555-123-4567\") - wabaId: WhatsApp Business Account ID - phoneNumberId: Meta phone number ID For LinkedIn accounts, profileData carries the profile details refreshed on each daily snapshot: - profileData.bio: The member's headline for personal accounts, or the organization description for organization accounts. null when the member has not set one. - profileData.extraData.vanityName: The member's profile slug, i.e. the /in/{vanityName} segment of profileUrl. Personal accounts only; an organization's own slug is in metadata.organizationInfo.vanityName. | [optional] |
21
21
  | **current_followers** | **Float** | Current follower count | [optional] |
22
22
  | **last_updated** | **Time** | | [optional] |
@@ -4,7 +4,7 @@
4
4
 
5
5
  | Name | Type | Description | Notes |
6
6
  | ---- | ---- | ----------- | ----- |
7
- | **title** | **String** | | [optional] |
7
+ | **title** | **String** | Stored on the post for reference/display only. This field is NOT used as the video title when publishing. To set a YouTube video title, use platformSpecificData.title on the youtube platform target (falls back to the first line of content when omitted). | [optional] |
8
8
  | **content** | **String** | Post caption/text. Optional when media is attached, all platforms have customContent, every platform entry is an X Article (platformSpecificData.article), or every platform entry is a LinkedIn text-free reshare (platformSpecificData.reshareUrl with no text). Required for other text-only posts. | [optional] |
9
9
  | **media_items** | [**Array<MediaItem>**](MediaItem.md) | | [optional] |
10
10
  | **platforms** | [**Array<CreatePostRequestPlatformsInner>**](CreatePostRequestPlatformsInner.md) | Target platforms and accounts for this post. Required for non-draft posts (returns 400 if empty). Drafts can omit platforms. | [optional] |
@@ -13,7 +13,7 @@
13
13
  | **is_draft** | **Boolean** | When true, saves the post as a draft. When none of scheduledFor, publishNow, or queuedFromProfile are provided, the post defaults to draft automatically. | [optional][default to false] |
14
14
  | **timezone** | **String** | | [optional][default to 'UTC'] |
15
15
  | **tags** | **Array<String>** | Tags/keywords. YouTube constraints: each tag max 100 chars, combined max 500 chars, duplicates auto-removed. | [optional] |
16
- | **hashtags** | **Array<String>** | | [optional] |
16
+ | **hashtags** | **Array<String>** | Stored for reference only. Hashtags are NOT automatically appended to the caption when publishing. Include hashtags directly in the content field (platforms like Instagram only support hashtags as caption text). For YouTube keywords, use the tags field instead. | [optional] |
17
17
  | **mentions** | **Array<String>** | Stored for reference only. This field does NOT automatically create @mentions when publishing. For LinkedIn @mentions, use the /v1/accounts/{accountId}/linkedin-mentions endpoint to resolve profile URLs to URNs, then embed the returned mentionFormat directly in the post content field. | [optional] |
18
18
  | **crossposting_enabled** | **Boolean** | | [optional][default to true] |
19
19
  | **metadata** | **Hash<String, Object>** | | [optional] |
data/docs/Post.md CHANGED
@@ -6,7 +6,7 @@
6
6
  | ---- | ---- | ----------- | ----- |
7
7
  | **_id** | **String** | | [optional] |
8
8
  | **user_id** | [**PostUserId**](PostUserId.md) | | [optional] |
9
- | **title** | **String** | YouTube: title must be ≤ 100 characters. | [optional] |
9
+ | **title** | **String** | Stored on the post for reference/display only. This field is NOT used as the video title when publishing. To set a YouTube video title, use platformSpecificData.title on the youtube platform target (falls back to the first line of content when omitted). | [optional] |
10
10
  | **content** | **String** | | [optional] |
11
11
  | **media_items** | [**Array<MediaItem>**](MediaItem.md) | | [optional] |
12
12
  | **platforms** | [**Array<PlatformTarget>**](PlatformTarget.md) | | [optional] |
@@ -14,7 +14,7 @@
14
14
  | **timezone** | **String** | | [optional] |
15
15
  | **status** | **String** | | [optional] |
16
16
  | **tags** | **Array<String>** | YouTube constraints: each tag max 100 chars, combined max 500 chars, duplicates removed. | [optional] |
17
- | **hashtags** | **Array<String>** | | [optional] |
17
+ | **hashtags** | **Array<String>** | Stored for reference only. Hashtags are NOT automatically appended to the caption when publishing. Include hashtags directly in the content field (platforms like Instagram only support hashtags as caption text). For YouTube keywords, use the tags field instead. | [optional] |
18
18
  | **mentions** | **Array<String>** | Stored for reference only. This field does NOT automatically create @mentions when publishing. For LinkedIn @mentions, use the /v1/accounts/{accountId}/linkedin-mentions endpoint to resolve profile URLs to URNs, then embed the returned mentionFormat directly in the post content field. | [optional] |
19
19
  | **visibility** | **String** | | [optional] |
20
20
  | **metadata** | **Hash<String, Object>** | | [optional] |
@@ -16,7 +16,7 @@
16
16
  | **followers_count** | **Float** | Follower count (only included if user has analytics add-on) | [optional] |
17
17
  | **followers_last_updated** | **Time** | Last time follower count was updated (only included if user has analytics add-on) | [optional] |
18
18
  | **parent_account_id** | **String** | Reference to the parent posting SocialAccount. Set for ads accounts that share or derive from a posting account's OAuth token. null for standalone ads (Google Ads) and all posting accounts. | [optional] |
19
- | **enabled** | **Boolean** | Whether the user explicitly activated this account. false means the account was created as a side effect (e.g., posting account auto-created when user connected ads first). Posting UI and scheduler ignore accounts with enabled: false. | [optional] |
19
+ | **enabled** | **Boolean** | Whether the user explicitly activated this account. false means the account was created as a side effect (e.g., posting account auto-created when user connected ads first). Such accounts are hidden from this list, cannot be posted to (`ACCOUNT_NOT_ENABLED_FOR_POSTING`), and are not billed as connected accounts. | [optional] |
20
20
  | **metadata** | **Object** | Platform-specific metadata. Fields vary by platform. For WhatsApp accounts, includes: - qualityRating: Phone number quality rating from Meta (GREEN, YELLOW, RED, or UNKNOWN) - nameStatus: Display name review status (APPROVED, PENDING_REVIEW, DECLINED, or NONE). A declined or pending display name does not by itself block sending; sendability is reported separately via health_status (can_send_message). - messagingLimitTier: Maximum unique business-initiated conversations per 24h rolling window (TIER_250, TIER_1K, TIER_10K, TIER_100K, or TIER_UNLIMITED). Scales automatically as quality rating improves. - verifiedName: Meta-verified business display name - displayPhoneNumber: Formatted phone number (e.g., \"+1 555-123-4567\") - wabaId: WhatsApp Business Account ID - phoneNumberId: Meta phone number ID For LinkedIn accounts, profileData carries the profile details refreshed on each daily snapshot: - profileData.bio: The member's headline for personal accounts, or the organization description for organization accounts. null when the member has not set one. - profileData.extraData.vanityName: The member's profile slug, i.e. the /in/{vanityName} segment of profileUrl. Personal accounts only; an organization's own slug is in metadata.organizationInfo.vanityName. | [optional] |
21
21
 
22
22
  ## Example
@@ -4,7 +4,7 @@
4
4
 
5
5
  | Name | Type | Description | Notes |
6
6
  | ---- | ---- | ----------- | ----- |
7
- | **title** | **String** | | [optional] |
7
+ | **title** | **String** | Stored on the post for reference/display only. This field is NOT used as the video title when publishing. To set a YouTube video title, use platformSpecificData.title on the youtube platform target (falls back to the first line of content when omitted). | [optional] |
8
8
  | **content** | **String** | | [optional] |
9
9
  | **media_items** | [**Array<MediaItem>**](MediaItem.md) | | [optional] |
10
10
  | **platforms** | [**Array<UpdatePostRequestPlatformsInner>**](UpdatePostRequestPlatformsInner.md) | Target platforms and accounts for this post. Each item must include platform and accountId. | [optional] |
@@ -14,7 +14,7 @@
14
14
  | **timezone** | **String** | | [optional] |
15
15
  | **visibility** | **String** | | [optional] |
16
16
  | **tags** | **Array<String>** | | [optional] |
17
- | **hashtags** | **Array<String>** | | [optional] |
17
+ | **hashtags** | **Array<String>** | Stored for reference only. Hashtags are NOT automatically appended to the caption when publishing. Include hashtags directly in the content field (platforms like Instagram only support hashtags as caption text). For YouTube keywords, use the tags field instead. | [optional] |
18
18
  | **mentions** | **Array<String>** | | [optional] |
19
19
  | **crossposting_enabled** | **Boolean** | | [optional] |
20
20
  | **metadata** | **Hash<String, Object>** | | [optional] |
@@ -45,7 +45,7 @@ module Zernio
45
45
  # Reference to the parent posting SocialAccount. Set for ads accounts that share or derive from a posting account's OAuth token. null for standalone ads (Google Ads) and all posting accounts.
46
46
  attr_accessor :parent_account_id
47
47
 
48
- # Whether the user explicitly activated this account. false means the account was created as a side effect (e.g., posting account auto-created when user connected ads first). Posting UI and scheduler ignore accounts with enabled: false.
48
+ # Whether the user explicitly activated this account. false means the account was created as a side effect (e.g., posting account auto-created when user connected ads first). Such accounts are hidden from this list, cannot be posted to (`ACCOUNT_NOT_ENABLED_FOR_POSTING`), and are not billed as connected accounts.
49
49
  attr_accessor :enabled
50
50
 
51
51
  # Platform-specific metadata. Fields vary by platform. For WhatsApp accounts, includes: - qualityRating: Phone number quality rating from Meta (GREEN, YELLOW, RED, or UNKNOWN) - nameStatus: Display name review status (APPROVED, PENDING_REVIEW, DECLINED, or NONE). A declined or pending display name does not by itself block sending; sendability is reported separately via health_status (can_send_message). - messagingLimitTier: Maximum unique business-initiated conversations per 24h rolling window (TIER_250, TIER_1K, TIER_10K, TIER_100K, or TIER_UNLIMITED). Scales automatically as quality rating improves. - verifiedName: Meta-verified business display name - displayPhoneNumber: Formatted phone number (e.g., \"+1 555-123-4567\") - wabaId: WhatsApp Business Account ID - phoneNumberId: Meta phone number ID For LinkedIn accounts, profileData carries the profile details refreshed on each daily snapshot: - profileData.bio: The member's headline for personal accounts, or the organization description for organization accounts. null when the member has not set one. - profileData.extraData.vanityName: The member's profile slug, i.e. the /in/{vanityName} segment of profileUrl. Personal accounts only; an organization's own slug is in metadata.organizationInfo.vanityName.
@@ -111,7 +111,7 @@ module Zernio
111
111
  # @return true if the model is valid
112
112
  def valid?
113
113
  warn '[DEPRECATED] the `valid?` method is obsolete'
114
- code_validator = EnumAttributeValidator.new('String', ["ACCOUNT_DISCONNECTED", "PROFILE_OVER_LIMIT"])
114
+ code_validator = EnumAttributeValidator.new('String', ["ACCOUNT_DISCONNECTED", "ACCOUNT_NOT_ENABLED_FOR_POSTING", "PROFILE_OVER_LIMIT"])
115
115
  return false unless code_validator.valid?(@code)
116
116
  true
117
117
  end
@@ -119,7 +119,7 @@ module Zernio
119
119
  # Custom attribute writer method checking allowed values (enum).
120
120
  # @param [Object] code Object to be assigned
121
121
  def code=(code)
122
- validator = EnumAttributeValidator.new('String', ["ACCOUNT_DISCONNECTED", "PROFILE_OVER_LIMIT"])
122
+ validator = EnumAttributeValidator.new('String', ["ACCOUNT_DISCONNECTED", "ACCOUNT_NOT_ENABLED_FOR_POSTING", "PROFILE_OVER_LIMIT"])
123
123
  unless validator.valid?(code)
124
124
  fail ArgumentError, "invalid value for \"code\", must be one of #{validator.allowable_values}."
125
125
  end
@@ -15,6 +15,7 @@ require 'time'
15
15
 
16
16
  module Zernio
17
17
  class CreatePostRequest < ApiModelBase
18
+ # Stored on the post for reference/display only. This field is NOT used as the video title when publishing. To set a YouTube video title, use platformSpecificData.title on the youtube platform target (falls back to the first line of content when omitted).
18
19
  attr_accessor :title
19
20
 
20
21
  # Post caption/text. Optional when media is attached, all platforms have customContent, every platform entry is an X Article (platformSpecificData.article), or every platform entry is a LinkedIn text-free reshare (platformSpecificData.reshareUrl with no text). Required for other text-only posts.
@@ -37,6 +38,7 @@ module Zernio
37
38
  # Tags/keywords. YouTube constraints: each tag max 100 chars, combined max 500 chars, duplicates auto-removed.
38
39
  attr_accessor :tags
39
40
 
41
+ # Stored for reference only. Hashtags are NOT automatically appended to the caption when publishing. Include hashtags directly in the content field (platforms like Instagram only support hashtags as caption text). For YouTube keywords, use the tags field instead.
40
42
  attr_accessor :hashtags
41
43
 
42
44
  # Stored for reference only. This field does NOT automatically create @mentions when publishing. For LinkedIn @mentions, use the /v1/accounts/{accountId}/linkedin-mentions endpoint to resolve profile URLs to URNs, then embed the returned mentionFormat directly in the post content field.
@@ -19,7 +19,7 @@ module Zernio
19
19
 
20
20
  attr_accessor :user_id
21
21
 
22
- # YouTube: title must be ≤ 100 characters.
22
+ # Stored on the post for reference/display only. This field is NOT used as the video title when publishing. To set a YouTube video title, use platformSpecificData.title on the youtube platform target (falls back to the first line of content when omitted).
23
23
  attr_accessor :title
24
24
 
25
25
  attr_accessor :content
@@ -37,6 +37,7 @@ module Zernio
37
37
  # YouTube constraints: each tag max 100 chars, combined max 500 chars, duplicates removed.
38
38
  attr_accessor :tags
39
39
 
40
+ # Stored for reference only. Hashtags are NOT automatically appended to the caption when publishing. Include hashtags directly in the content field (platforms like Instagram only support hashtags as caption text). For YouTube keywords, use the tags field instead.
40
41
  attr_accessor :hashtags
41
42
 
42
43
  # Stored for reference only. This field does NOT automatically create @mentions when publishing. For LinkedIn @mentions, use the /v1/accounts/{accountId}/linkedin-mentions endpoint to resolve profile URLs to URNs, then embed the returned mentionFormat directly in the post content field.
@@ -45,7 +45,7 @@ module Zernio
45
45
  # Reference to the parent posting SocialAccount. Set for ads accounts that share or derive from a posting account's OAuth token. null for standalone ads (Google Ads) and all posting accounts.
46
46
  attr_accessor :parent_account_id
47
47
 
48
- # Whether the user explicitly activated this account. false means the account was created as a side effect (e.g., posting account auto-created when user connected ads first). Posting UI and scheduler ignore accounts with enabled: false.
48
+ # Whether the user explicitly activated this account. false means the account was created as a side effect (e.g., posting account auto-created when user connected ads first). Such accounts are hidden from this list, cannot be posted to (`ACCOUNT_NOT_ENABLED_FOR_POSTING`), and are not billed as connected accounts.
49
49
  attr_accessor :enabled
50
50
 
51
51
  # Platform-specific metadata. Fields vary by platform. For WhatsApp accounts, includes: - qualityRating: Phone number quality rating from Meta (GREEN, YELLOW, RED, or UNKNOWN) - nameStatus: Display name review status (APPROVED, PENDING_REVIEW, DECLINED, or NONE). A declined or pending display name does not by itself block sending; sendability is reported separately via health_status (can_send_message). - messagingLimitTier: Maximum unique business-initiated conversations per 24h rolling window (TIER_250, TIER_1K, TIER_10K, TIER_100K, or TIER_UNLIMITED). Scales automatically as quality rating improves. - verifiedName: Meta-verified business display name - displayPhoneNumber: Formatted phone number (e.g., \"+1 555-123-4567\") - wabaId: WhatsApp Business Account ID - phoneNumberId: Meta phone number ID For LinkedIn accounts, profileData carries the profile details refreshed on each daily snapshot: - profileData.bio: The member's headline for personal accounts, or the organization description for organization accounts. null when the member has not set one. - profileData.extraData.vanityName: The member's profile slug, i.e. the /in/{vanityName} segment of profileUrl. Personal accounts only; an organization's own slug is in metadata.organizationInfo.vanityName.
@@ -15,6 +15,7 @@ require 'time'
15
15
 
16
16
  module Zernio
17
17
  class UpdatePostRequest < ApiModelBase
18
+ # Stored on the post for reference/display only. This field is NOT used as the video title when publishing. To set a YouTube video title, use platformSpecificData.title on the youtube platform target (falls back to the first line of content when omitted).
18
19
  attr_accessor :title
19
20
 
20
21
  attr_accessor :content
@@ -37,6 +38,7 @@ module Zernio
37
38
 
38
39
  attr_accessor :tags
39
40
 
41
+ # Stored for reference only. Hashtags are NOT automatically appended to the caption when publishing. Include hashtags directly in the content field (platforms like Instagram only support hashtags as caption text). For YouTube keywords, use the tags field instead.
40
42
  attr_accessor :hashtags
41
43
 
42
44
  attr_accessor :mentions
@@ -11,5 +11,5 @@ Generator version: 7.19.0
11
11
  =end
12
12
 
13
13
  module Zernio
14
- VERSION = '0.0.801'
14
+ VERSION = '0.0.803'
15
15
  end
data/openapi.yaml CHANGED
@@ -5030,8 +5030,7 @@ components:
5030
5030
  - $ref: '#/components/schemas/User'
5031
5031
  title:
5032
5032
  type: string
5033
- description: |
5034
- YouTube: title must be ≤ 100 characters.
5033
+ description: "Stored on the post for reference/display only. This field is NOT used as the video title when publishing. To set a YouTube video title, use platformSpecificData.title on the youtube platform target (falls back to the first line of content when omitted)."
5035
5034
  content: { type: string }
5036
5035
  mediaItems:
5037
5036
  type: array
@@ -5048,6 +5047,7 @@ components:
5048
5047
  items: { type: string }
5049
5048
  hashtags:
5050
5049
  type: array
5050
+ description: "Stored for reference only. Hashtags are NOT automatically appended to the caption when publishing. Include hashtags directly in the content field (platforms like Instagram only support hashtags as caption text). For YouTube keywords, use the tags field instead."
5051
5051
  items: { type: string }
5052
5052
  mentions:
5053
5053
  type: array
@@ -6771,7 +6771,8 @@ components:
6771
6771
  description: |
6772
6772
  Whether the user explicitly activated this account. false means the account was
6773
6773
  created as a side effect (e.g., posting account auto-created when user connected
6774
- ads first). Posting UI and scheduler ignore accounts with enabled: false.
6774
+ ads first). Such accounts are hidden from this list, cannot be posted to
6775
+ (`ACCOUNT_NOT_ENABLED_FOR_POSTING`), and are not billed as connected accounts.
6775
6776
  metadata:
6776
6777
  type: object
6777
6778
  description: |
@@ -14458,7 +14459,9 @@ paths:
14458
14459
  schema:
14459
14460
  type: object
14460
14461
  properties:
14461
- title: { type: string }
14462
+ title:
14463
+ type: string
14464
+ description: "Stored on the post for reference/display only. This field is NOT used as the video title when publishing. To set a YouTube video title, use platformSpecificData.title on the youtube platform target (falls back to the first line of content when omitted)."
14462
14465
  content:
14463
14466
  type: string
14464
14467
  description: 'Post caption/text. Optional when media is attached, all platforms have customContent, every platform entry is an X Article (platformSpecificData.article), or every platform entry is a LinkedIn text-free reshare (platformSpecificData.reshareUrl with no text). Required for other text-only posts.'
@@ -14514,6 +14517,7 @@ paths:
14514
14517
  items: { type: string }
14515
14518
  hashtags:
14516
14519
  type: array
14520
+ description: "Stored for reference only. Hashtags are NOT automatically appended to the caption when publishing. Include hashtags directly in the content field (platforms like Instagram only support hashtags as caption text). For YouTube keywords, use the tags field instead."
14517
14521
  items: { type: string }
14518
14522
  mentions:
14519
14523
  type: array
@@ -14867,6 +14871,7 @@ paths:
14867
14871
  description: |
14868
14872
  Forbidden. Distinguish by the `code` field:
14869
14873
  - `ACCOUNT_DISCONNECTED` — a target account exists but its platform connection is no longer active (token expired or revoked, or the account was disconnected). Reconnect the account, then refresh account IDs from `GET /v1/accounts` (accounts report their connection state via `isActive`). The disconnect itself is also emitted as the `account.disconnected` webhook event.
14874
+ - `ACCOUNT_NOT_ENABLED_FOR_POSTING` — a target account was connected for ads only (`enabled: false`) and cannot be posted to. Connect it as a posting account (it then counts as a connected account), then refresh account IDs from `GET /v1/accounts`.
14870
14875
  - `PROFILE_OVER_LIMIT` — a target account belongs to a profile beyond the plan's profile limit.
14871
14876
  - No `code` — a target `accountId` does not belong to the authenticated user (or is outside the API key's profile scope).
14872
14877
  content:
@@ -14875,7 +14880,7 @@ paths:
14875
14880
  type: object
14876
14881
  properties:
14877
14882
  error: { type: string, example: 'Account 6a0f6d2e520992756d96bb6c (facebook "My Page") is disconnected and cannot be posted to. Facebook tokens expired. Please reconnect your Facebook account. After reconnecting, refresh your account IDs from GET /v1/accounts.' }
14878
- code: { type: string, enum: [ACCOUNT_DISCONNECTED, PROFILE_OVER_LIMIT], description: Stable machine-readable cause. Absent for ownership failures. }
14883
+ code: { type: string, enum: [ACCOUNT_DISCONNECTED, ACCOUNT_NOT_ENABLED_FOR_POSTING, PROFILE_OVER_LIMIT], description: Stable machine-readable cause. Absent for ownership failures. }
14879
14884
  '409':
14880
14885
  description: |
14881
14886
  Duplicate content detected. Returned when the requested post matches an existing one on `(platform, accountId, content-hash)` within the last 24 hours, AND the request was NOT an `x-request-id` retry of an in-flight call. Distinct from same-`x-request-id` retries (which return HTTP 200 with the original post — see operation description for the idempotency contract).
@@ -15155,7 +15160,9 @@ paths:
15155
15160
  schema:
15156
15161
  type: object
15157
15162
  properties:
15158
- title: { type: string }
15163
+ title:
15164
+ type: string
15165
+ description: "Stored on the post for reference/display only. This field is NOT used as the video title when publishing. To set a YouTube video title, use platformSpecificData.title on the youtube platform target (falls back to the first line of content when omitted)."
15159
15166
  content: { type: string }
15160
15167
  mediaItems:
15161
15168
  type: array
@@ -15195,6 +15202,7 @@ paths:
15195
15202
  items: { type: string }
15196
15203
  hashtags:
15197
15204
  type: array
15205
+ description: "Stored for reference only. Hashtags are NOT automatically appended to the caption when publishing. Include hashtags directly in the content field (platforms like Instagram only support hashtags as caption text). For YouTube keywords, use the tags field instead."
15198
15206
  items: { type: string }
15199
15207
  mentions:
15200
15208
  type: array
@@ -15422,7 +15430,11 @@ paths:
15422
15430
  properties:
15423
15431
  error: { type: string }
15424
15432
  '403':
15425
- description: Forbidden
15433
+ description: |
15434
+ Forbidden. Distinguish by the `code` field:
15435
+ - `ACCOUNT_NOT_ENABLED_FOR_POSTING`: a target account was connected for ads only (`enabled: false`) and cannot be posted to. Connect it as a posting account, then retry.
15436
+ - `PROFILE_OVER_LIMIT`: a target account belongs to a profile beyond the plan's profile limit.
15437
+ - `insufficient_permissions`: the post is not accessible to the caller.
15426
15438
  content:
15427
15439
  application/json:
15428
15440
  schema: { $ref: '#/components/schemas/ErrorResponse' }
@@ -36,7 +36,7 @@ describe Zernio::CreatePost403Response do
36
36
  describe 'test attribute "code"' do
37
37
  it 'should work' do
38
38
  # assertion here. ref: https://rspec.info/features/3-12/rspec-expectations/built-in-matchers/
39
- # validator = Petstore::EnumTest::EnumAttributeValidator.new('String', ["ACCOUNT_DISCONNECTED", "PROFILE_OVER_LIMIT"])
39
+ # validator = Petstore::EnumTest::EnumAttributeValidator.new('String', ["ACCOUNT_DISCONNECTED", "ACCOUNT_NOT_ENABLED_FOR_POSTING", "PROFILE_OVER_LIMIT"])
40
40
  # validator.allowable_values.each do |value|
41
41
  # expect { instance.code = value }.not_to raise_error
42
42
  # end
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: zernio-sdk
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.0.801
4
+ version: 0.0.803
5
5
  platform: ruby
6
6
  authors:
7
7
  - OpenAPI-Generator