late-sdk 0.0.720 → 0.0.722

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: 9a043db69fe4c21d1800eb36ec01fa32200e93848d7760ed9c729afaae00a47d
4
- data.tar.gz: 5008f0cf5e27579922eebc72e778cee2315c84a1adb747352ebc38bc0d72563d
3
+ metadata.gz: 43b7ee1ff90a279e1c8104b2defb0084885ba7c175ebf30c1ef3dfbbb14abdb0
4
+ data.tar.gz: ca1c06cb0f1baa326fdc71209d78fca14498cb94a4b2067ea1d63daee85d4015
5
5
  SHA512:
6
- metadata.gz: 6da9751ed391beee2eff91859815d340d446637b699143588a24b4e3906b008b864774b18fee7a4e34561b80141d09a17a5db24e33d764b0980631c915275a0c
7
- data.tar.gz: 02fc1d8ce5c0b38d76d8df506a58433f37f92cf58845b9baca3fad93d145f77672a69b45e8d9c671e3dbd31939825211da15bf5d7d23c64bb5dda2721c559537
6
+ metadata.gz: 6fc6e45dafaba431e82243c105e30a2f7ad38537a530e1f1e53065bd0e7e880a9cf63427da7cc10656838e0304005b8282a32422d9fe521c23d960fbe925fc50
7
+ data.tar.gz: 1ee349951a04c57495e6dc34becfe1f3cf4b76925c7c647825481cd87138e6f4eba0d066eec8860d4e82f625217aff36eb9e7ba81eec7cfe4dc4e4f6e9cede70
@@ -19,6 +19,10 @@
19
19
  | **thumbnail_url** | **String** | | [optional] |
20
20
  | **media_type** | **String** | | [optional] |
21
21
  | **media_items** | [**Array<AnalyticsListResponsePostsInnerMediaItemsInner>**](AnalyticsListResponsePostsInnerMediaItemsInner.md) | All media items for this post. Carousel posts contain one entry per slide. | [optional] |
22
+ | **media_product_type** | **String** | Instagram only: the platform media product type (e.g. FEED, REELS, STORY, AD). Absent when the platform did not report it. | [optional] |
23
+ | **is_ai_generated** | **Boolean** | Instagram only: whether Instagram labeled the media as AI-generated. Absent when the platform did not report it. | [optional] |
24
+ | **is_shared_to_feed** | **Boolean** | Instagram reels only: whether the reel is also shared to the main feed. Absent when the platform did not report it. | [optional] |
25
+ | **media_audio_type** | **String** | Instagram only: audio type of the media (MUSIC or ORIGINAL_SOUND). Absent when the platform did not report it. | [optional] |
22
26
 
23
27
  ## Example
24
28
 
@@ -40,7 +44,11 @@ instance = Zernio::AnalyticsListResponsePostsInner.new(
40
44
  profile_id: null,
41
45
  thumbnail_url: null,
42
46
  media_type: null,
43
- media_items: null
47
+ media_items: null,
48
+ media_product_type: null,
49
+ is_ai_generated: null,
50
+ is_shared_to_feed: null,
51
+ media_audio_type: null
44
52
  )
45
53
  ```
46
54
 
@@ -20,6 +20,10 @@
20
20
  | **thumbnail_url** | **String** | | [optional] |
21
21
  | **media_type** | **String** | | [optional] |
22
22
  | **media_items** | [**Array<AnalyticsSinglePostResponseMediaItemsInner>**](AnalyticsSinglePostResponseMediaItemsInner.md) | All media items for this post. Carousel posts contain one entry per slide. | [optional] |
23
+ | **media_product_type** | **String** | Instagram only: the platform media product type (e.g. FEED, REELS, STORY, AD). Absent when the platform did not report it. | [optional] |
24
+ | **is_ai_generated** | **Boolean** | Instagram only: whether Instagram labeled the media as AI-generated. Absent when the platform did not report it. | [optional] |
25
+ | **is_shared_to_feed** | **Boolean** | Instagram reels only: whether the reel is also shared to the main feed. Absent when the platform did not report it. | [optional] |
26
+ | **media_audio_type** | **String** | Instagram only: audio type of the media (MUSIC or ORIGINAL_SOUND). Absent when the platform did not report it. | [optional] |
23
27
 
24
28
  ## Example
25
29
 
@@ -42,7 +46,11 @@ instance = Zernio::AnalyticsSinglePostResponse.new(
42
46
  message: null,
43
47
  thumbnail_url: null,
44
48
  media_type: null,
45
- media_items: null
49
+ media_items: null,
50
+ media_product_type: null,
51
+ is_ai_generated: null,
52
+ is_shared_to_feed: null,
53
+ media_audio_type: null
46
54
  )
47
55
  ```
48
56
 
@@ -5,7 +5,7 @@
5
5
  | Name | Type | Description | Notes |
6
6
  | ---- | ---- | ----------- | ----- |
7
7
  | **success** | **Boolean** | | [optional] |
8
- | **id** | **String** | The platform post ID after the edit. X assigns a new ID; Discord, Facebook, and Reddit return the original ID unchanged. | [optional] |
8
+ | **id** | **String** | The platform post ID after the edit. X assigns a new ID; every other platform returns the original ID unchanged. | [optional] |
9
9
  | **url** | **String** | URL of the edited post | [optional] |
10
10
  | **message** | **String** | | [optional] |
11
11
 
@@ -6,6 +6,7 @@
6
6
  | ---- | ---- | ----------- | ----- |
7
7
  | **platform** | **String** | The platform to edit the post on. | |
8
8
  | **content** | **String** | The new post text content | |
9
+ | **account_id** | **String** | Which account's copy of the post to edit when the post was published to several accounts on the same platform; defaults to the first. | [optional] |
9
10
 
10
11
  ## Example
11
12
 
@@ -14,7 +15,8 @@ require 'zernio-sdk'
14
15
 
15
16
  instance = Zernio::EditPostRequest.new(
16
17
  platform: null,
17
- content: null
18
+ content: null,
19
+ account_id: null
18
20
  )
19
21
  ```
20
22
 
@@ -12,6 +12,10 @@
12
12
  | **media_type** | **String** | Media type (e.g. image, video, carousel) | [optional] |
13
13
  | **thumbnail_url** | **String** | Thumbnail URL | [optional] |
14
14
  | **media_items** | **Array<Object>** | Per-item media (for carousels / multi-media posts) | [optional] |
15
+ | **media_product_type** | **String** | Instagram only: the platform media product type (e.g. FEED, REELS, STORY, AD). Absent when the platform did not report it. | [optional] |
16
+ | **is_ai_generated** | **Boolean** | Instagram only: whether Instagram labeled the media as AI-generated. Absent when the platform did not report it. | [optional] |
17
+ | **is_shared_to_feed** | **Boolean** | Instagram reels only: whether the reel is also shared to the main feed. Absent when the platform did not report it. | [optional] |
18
+ | **media_audio_type** | **String** | Instagram only: audio type of the media (MUSIC or ORIGINAL_SOUND). Absent when the platform did not report it. | [optional] |
15
19
  | **analytics** | [**ExternalPostSummaryAnalytics**](ExternalPostSummaryAnalytics.md) | | [optional] |
16
20
 
17
21
  ## Example
@@ -28,6 +32,10 @@ instance = Zernio::ExternalPostSummary.new(
28
32
  media_type: null,
29
33
  thumbnail_url: null,
30
34
  media_items: null,
35
+ media_product_type: null,
36
+ is_ai_generated: null,
37
+ is_shared_to_feed: null,
38
+ media_audio_type: null,
31
39
  analytics: null
32
40
  )
33
41
  ```
@@ -13,6 +13,10 @@
13
13
  | **media_items** | [**Array<ExternalPostMediaItem>**](ExternalPostMediaItem.md) | | |
14
14
  | **thumbnail_url** | **String** | | |
15
15
  | **published_at** | **Time** | | |
16
+ | **media_product_type** | **String** | Instagram only: the platform media product type (e.g. FEED, REELS, STORY, AD). Absent when the platform did not report it. | [optional] |
17
+ | **is_ai_generated** | **Boolean** | Instagram only: whether Instagram labeled the media as AI-generated. Absent when the platform did not report it. | [optional] |
18
+ | **is_shared_to_feed** | **Boolean** | Instagram reels only: whether the reel is also shared to the main feed. Absent when the platform did not report it. | [optional] |
19
+ | **media_audio_type** | **String** | Instagram only: audio type of the media (MUSIC or ORIGINAL_SOUND). Absent when the platform did not report it. | [optional] |
16
20
  | **source** | **String** | Always \"external\" — distinguishes these from Zernio-originated post.* events. | |
17
21
  | **deleted_at** | **Time** | Detection time of deletion. Present on post.external.deleted; null/absent otherwise. | [optional] |
18
22
 
@@ -31,6 +35,10 @@ instance = Zernio::ExternalPostWebhookPost.new(
31
35
  media_items: null,
32
36
  thumbnail_url: null,
33
37
  published_at: null,
38
+ media_product_type: null,
39
+ is_ai_generated: null,
40
+ is_shared_to_feed: null,
41
+ media_audio_type: null,
34
42
  source: null,
35
43
  deleted_at: null
36
44
  )
@@ -5,6 +5,7 @@
5
5
  | Name | Type | Description | Notes |
6
6
  | ---- | ---- | ----------- | ----- |
7
7
  | **id** | **String** | | [optional] |
8
+ | **account_id** | **String** | WhatsApp social account the event belongs to | [optional] |
8
9
  | **type** | **String** | Event kind, e.g. template_approved, template_rejected, account_restricted, account_disconnected | [optional] |
9
10
  | **severity** | **String** | | [optional] |
10
11
  | **title** | **String** | | [optional] |
@@ -18,6 +19,7 @@ require 'zernio-sdk'
18
19
 
19
20
  instance = Zernio::ListWhatsAppAccountEvents200ResponseEventsInner.new(
20
21
  id: null,
22
+ account_id: null,
21
23
  type: null,
22
24
  severity: null,
23
25
  title: null,
data/docs/PostsApi.md CHANGED
@@ -237,7 +237,7 @@ end
237
237
 
238
238
  Edit published post
239
239
 
240
- Edit the text of an already-published post. Supported on X (Twitter), Discord, Facebook, and Reddit. Each platform enforces its own rules: **X (Twitter)** - Connected X account must have an active X Premium subscription - Must be within 1 hour of original publish time - Maximum 5 edits per tweet (enforced by X) - Threads cannot be edited, only single tweets - X assigns a NEW post ID on edit, returned as `id` **Discord** - No time limit and no premium requirement - The message ID is unchanged after the edit **Facebook** - Graph only permits editing a post that the same app created, so this works on posts published through Zernio and is rejected for posts created in Meta Business Suite / Composer or by another tool - Media cannot be swapped, only the message text - Reactions, comments, and shares are preserved. The post ID is unchanged **Reddit** - Self-posts only. A link post has no editable body and is rejected before the write - Body only. Reddit exposes no API to edit a post title, ever - The post ID is unchanged Media edits are not supported on any platform. The post record in Zernio is updated with the new content and an edit-history entry.
240
+ Edit the text of an already-published post. Supported on X (Twitter), Discord, Facebook, Reddit, LinkedIn, Telegram, Pinterest, Google Business Profile, YouTube, and Slack. When a post was published to several accounts on the same platform, pass `accountId` to pick which account's copy to edit (the first entry is edited otherwise). Each platform enforces its own rules: **X (Twitter)** - Connected X account must have an active X Premium subscription - Must be within 1 hour of original publish time - Maximum 5 edits per tweet (enforced by X) - Threads cannot be edited, only single tweets - X assigns a NEW post ID on edit, returned as `id` **Discord** - No time limit and no premium requirement - The message ID is unchanged after the edit **Facebook** - Graph only permits editing a post that the same app created, so this works on posts published through Zernio and is rejected for posts created in Meta Business Suite / Composer or by another tool - Media cannot be swapped, only the message text - Reactions, comments, and shares are preserved. The post ID is unchanged **Reddit** - Self-posts only. A link post has no editable body and is rejected before the write - Body only. Reddit exposes no API to edit a post title, ever - The post ID is unchanged **LinkedIn** - Text only, no time limit. Media, polls, articles, and reshare targets cannot be changed - Works for member and organization posts published through this API. The post keeps its ID and LinkedIn shows an \"edited\" marker - Text is limited to 3,000 characters; mentions and hashtags are preserved **Telegram** - No time limit; messages published through Zernio are editable indefinitely - Text posts: edits the message text (up to 4096 characters) - Media posts: edits the caption only (up to 1024 characters). The media itself cannot be swapped - For albums, the caption shown on the album (its first message) is edited - The message ID is unchanged **Pinterest** - Description only, maximum 800 characters. Media, link, and board cannot be changed, and a pin title derived from the old content's first line at publish stays as-is - Pinterest's pin-update endpoint is currently in closed beta; until the app is allowlisted by Pinterest, edits are rejected with a \"beta feature not yet enabled\" error - The pin ID is unchanged **Google Business Profile** - Post body (summary) text only. Call-to-action, event/offer fields, and media are untouched - No time limit and no edit limit. The post ID is unchanged - The post must still exist on Google: a post deleted from the Business Profile dashboard, or an event/offer post past its end date, returns a 404 **YouTube** - `content` replaces the video description only. The title is unchanged, even if it was originally derived from the content's first line at publish time - Title, tags, thumbnail, and privacy edits belong to `POST /v1/posts/{postId}/update-metadata` - No time window and no edit cap. The video ID is unchanged **Slack** - Text only, up to 4,000 characters. Media cannot be swapped, and media posts whose share message reference never resolved cannot be edited - No time limit unless workspace admins restrict message editing - The message ID is unchanged Media edits are not supported on any platform. The post record in Zernio is updated with the new content and an edit-history entry.
241
241
 
242
242
  ### Examples
243
243
 
@@ -222,7 +222,7 @@ module Zernio
222
222
  end
223
223
 
224
224
  # Edit published post
225
- # Edit the text of an already-published post. Supported on X (Twitter), Discord, Facebook, and Reddit. Each platform enforces its own rules: **X (Twitter)** - Connected X account must have an active X Premium subscription - Must be within 1 hour of original publish time - Maximum 5 edits per tweet (enforced by X) - Threads cannot be edited, only single tweets - X assigns a NEW post ID on edit, returned as `id` **Discord** - No time limit and no premium requirement - The message ID is unchanged after the edit **Facebook** - Graph only permits editing a post that the same app created, so this works on posts published through Zernio and is rejected for posts created in Meta Business Suite / Composer or by another tool - Media cannot be swapped, only the message text - Reactions, comments, and shares are preserved. The post ID is unchanged **Reddit** - Self-posts only. A link post has no editable body and is rejected before the write - Body only. Reddit exposes no API to edit a post title, ever - The post ID is unchanged Media edits are not supported on any platform. The post record in Zernio is updated with the new content and an edit-history entry.
225
+ # Edit the text of an already-published post. Supported on X (Twitter), Discord, Facebook, Reddit, LinkedIn, Telegram, Pinterest, Google Business Profile, YouTube, and Slack. When a post was published to several accounts on the same platform, pass `accountId` to pick which account's copy to edit (the first entry is edited otherwise). Each platform enforces its own rules: **X (Twitter)** - Connected X account must have an active X Premium subscription - Must be within 1 hour of original publish time - Maximum 5 edits per tweet (enforced by X) - Threads cannot be edited, only single tweets - X assigns a NEW post ID on edit, returned as `id` **Discord** - No time limit and no premium requirement - The message ID is unchanged after the edit **Facebook** - Graph only permits editing a post that the same app created, so this works on posts published through Zernio and is rejected for posts created in Meta Business Suite / Composer or by another tool - Media cannot be swapped, only the message text - Reactions, comments, and shares are preserved. The post ID is unchanged **Reddit** - Self-posts only. A link post has no editable body and is rejected before the write - Body only. Reddit exposes no API to edit a post title, ever - The post ID is unchanged **LinkedIn** - Text only, no time limit. Media, polls, articles, and reshare targets cannot be changed - Works for member and organization posts published through this API. The post keeps its ID and LinkedIn shows an \"edited\" marker - Text is limited to 3,000 characters; mentions and hashtags are preserved **Telegram** - No time limit; messages published through Zernio are editable indefinitely - Text posts: edits the message text (up to 4096 characters) - Media posts: edits the caption only (up to 1024 characters). The media itself cannot be swapped - For albums, the caption shown on the album (its first message) is edited - The message ID is unchanged **Pinterest** - Description only, maximum 800 characters. Media, link, and board cannot be changed, and a pin title derived from the old content's first line at publish stays as-is - Pinterest's pin-update endpoint is currently in closed beta; until the app is allowlisted by Pinterest, edits are rejected with a \"beta feature not yet enabled\" error - The pin ID is unchanged **Google Business Profile** - Post body (summary) text only. Call-to-action, event/offer fields, and media are untouched - No time limit and no edit limit. The post ID is unchanged - The post must still exist on Google: a post deleted from the Business Profile dashboard, or an event/offer post past its end date, returns a 404 **YouTube** - `content` replaces the video description only. The title is unchanged, even if it was originally derived from the content's first line at publish time - Title, tags, thumbnail, and privacy edits belong to `POST /v1/posts/{postId}/update-metadata` - No time window and no edit cap. The video ID is unchanged **Slack** - Text only, up to 4,000 characters. Media cannot be swapped, and media posts whose share message reference never resolved cannot be edited - No time limit unless workspace admins restrict message editing - The message ID is unchanged Media edits are not supported on any platform. The post record in Zernio is updated with the new content and an edit-history entry.
226
226
  # @param post_id [String]
227
227
  # @param edit_post_request [EditPostRequest]
228
228
  # @param [Hash] opts the optional parameters
@@ -233,7 +233,7 @@ module Zernio
233
233
  end
234
234
 
235
235
  # Edit published post
236
- # Edit the text of an already-published post. Supported on X (Twitter), Discord, Facebook, and Reddit. Each platform enforces its own rules: **X (Twitter)** - Connected X account must have an active X Premium subscription - Must be within 1 hour of original publish time - Maximum 5 edits per tweet (enforced by X) - Threads cannot be edited, only single tweets - X assigns a NEW post ID on edit, returned as `id` **Discord** - No time limit and no premium requirement - The message ID is unchanged after the edit **Facebook** - Graph only permits editing a post that the same app created, so this works on posts published through Zernio and is rejected for posts created in Meta Business Suite / Composer or by another tool - Media cannot be swapped, only the message text - Reactions, comments, and shares are preserved. The post ID is unchanged **Reddit** - Self-posts only. A link post has no editable body and is rejected before the write - Body only. Reddit exposes no API to edit a post title, ever - The post ID is unchanged Media edits are not supported on any platform. The post record in Zernio is updated with the new content and an edit-history entry.
236
+ # Edit the text of an already-published post. Supported on X (Twitter), Discord, Facebook, Reddit, LinkedIn, Telegram, Pinterest, Google Business Profile, YouTube, and Slack. When a post was published to several accounts on the same platform, pass `accountId` to pick which account's copy to edit (the first entry is edited otherwise). Each platform enforces its own rules: **X (Twitter)** - Connected X account must have an active X Premium subscription - Must be within 1 hour of original publish time - Maximum 5 edits per tweet (enforced by X) - Threads cannot be edited, only single tweets - X assigns a NEW post ID on edit, returned as `id` **Discord** - No time limit and no premium requirement - The message ID is unchanged after the edit **Facebook** - Graph only permits editing a post that the same app created, so this works on posts published through Zernio and is rejected for posts created in Meta Business Suite / Composer or by another tool - Media cannot be swapped, only the message text - Reactions, comments, and shares are preserved. The post ID is unchanged **Reddit** - Self-posts only. A link post has no editable body and is rejected before the write - Body only. Reddit exposes no API to edit a post title, ever - The post ID is unchanged **LinkedIn** - Text only, no time limit. Media, polls, articles, and reshare targets cannot be changed - Works for member and organization posts published through this API. The post keeps its ID and LinkedIn shows an \"edited\" marker - Text is limited to 3,000 characters; mentions and hashtags are preserved **Telegram** - No time limit; messages published through Zernio are editable indefinitely - Text posts: edits the message text (up to 4096 characters) - Media posts: edits the caption only (up to 1024 characters). The media itself cannot be swapped - For albums, the caption shown on the album (its first message) is edited - The message ID is unchanged **Pinterest** - Description only, maximum 800 characters. Media, link, and board cannot be changed, and a pin title derived from the old content's first line at publish stays as-is - Pinterest's pin-update endpoint is currently in closed beta; until the app is allowlisted by Pinterest, edits are rejected with a \"beta feature not yet enabled\" error - The pin ID is unchanged **Google Business Profile** - Post body (summary) text only. Call-to-action, event/offer fields, and media are untouched - No time limit and no edit limit. The post ID is unchanged - The post must still exist on Google: a post deleted from the Business Profile dashboard, or an event/offer post past its end date, returns a 404 **YouTube** - `content` replaces the video description only. The title is unchanged, even if it was originally derived from the content's first line at publish time - Title, tags, thumbnail, and privacy edits belong to `POST /v1/posts/{postId}/update-metadata` - No time window and no edit cap. The video ID is unchanged **Slack** - Text only, up to 4,000 characters. Media cannot be swapped, and media posts whose share message reference never resolved cannot be edited - No time limit unless workspace admins restrict message editing - The message ID is unchanged Media edits are not supported on any platform. The post record in Zernio is updated with the new content and an edit-history entry.
237
237
  # @param post_id [String]
238
238
  # @param edit_post_request [EditPostRequest]
239
239
  # @param [Hash] opts the optional parameters
@@ -47,6 +47,18 @@ module Zernio
47
47
  # All media items for this post. Carousel posts contain one entry per slide.
48
48
  attr_accessor :media_items
49
49
 
50
+ # Instagram only: the platform media product type (e.g. FEED, REELS, STORY, AD). Absent when the platform did not report it.
51
+ attr_accessor :media_product_type
52
+
53
+ # Instagram only: whether Instagram labeled the media as AI-generated. Absent when the platform did not report it.
54
+ attr_accessor :is_ai_generated
55
+
56
+ # Instagram reels only: whether the reel is also shared to the main feed. Absent when the platform did not report it.
57
+ attr_accessor :is_shared_to_feed
58
+
59
+ # Instagram only: audio type of the media (MUSIC or ORIGINAL_SOUND). Absent when the platform did not report it.
60
+ attr_accessor :media_audio_type
61
+
50
62
  class EnumAttributeValidator
51
63
  attr_reader :datatype
52
64
  attr_reader :allowable_values
@@ -86,7 +98,11 @@ module Zernio
86
98
  :'profile_id' => :'profileId',
87
99
  :'thumbnail_url' => :'thumbnailUrl',
88
100
  :'media_type' => :'mediaType',
89
- :'media_items' => :'mediaItems'
101
+ :'media_items' => :'mediaItems',
102
+ :'media_product_type' => :'mediaProductType',
103
+ :'is_ai_generated' => :'isAiGenerated',
104
+ :'is_shared_to_feed' => :'isSharedToFeed',
105
+ :'media_audio_type' => :'mediaAudioType'
90
106
  }
91
107
  end
92
108
 
@@ -117,7 +133,11 @@ module Zernio
117
133
  :'profile_id' => :'String',
118
134
  :'thumbnail_url' => :'String',
119
135
  :'media_type' => :'String',
120
- :'media_items' => :'Array<AnalyticsListResponsePostsInnerMediaItemsInner>'
136
+ :'media_items' => :'Array<AnalyticsListResponsePostsInnerMediaItemsInner>',
137
+ :'media_product_type' => :'String',
138
+ :'is_ai_generated' => :'Boolean',
139
+ :'is_shared_to_feed' => :'Boolean',
140
+ :'media_audio_type' => :'String'
121
141
  }
122
142
  end
123
143
 
@@ -208,6 +228,22 @@ module Zernio
208
228
  self.media_items = value
209
229
  end
210
230
  end
231
+
232
+ if attributes.key?(:'media_product_type')
233
+ self.media_product_type = attributes[:'media_product_type']
234
+ end
235
+
236
+ if attributes.key?(:'is_ai_generated')
237
+ self.is_ai_generated = attributes[:'is_ai_generated']
238
+ end
239
+
240
+ if attributes.key?(:'is_shared_to_feed')
241
+ self.is_shared_to_feed = attributes[:'is_shared_to_feed']
242
+ end
243
+
244
+ if attributes.key?(:'media_audio_type')
245
+ self.media_audio_type = attributes[:'media_audio_type']
246
+ end
211
247
  end
212
248
 
213
249
  # Show invalid properties with the reasons. Usually used together with valid?
@@ -256,7 +292,11 @@ module Zernio
256
292
  profile_id == o.profile_id &&
257
293
  thumbnail_url == o.thumbnail_url &&
258
294
  media_type == o.media_type &&
259
- media_items == o.media_items
295
+ media_items == o.media_items &&
296
+ media_product_type == o.media_product_type &&
297
+ is_ai_generated == o.is_ai_generated &&
298
+ is_shared_to_feed == o.is_shared_to_feed &&
299
+ media_audio_type == o.media_audio_type
260
300
  end
261
301
 
262
302
  # @see the `==` method
@@ -268,7 +308,7 @@ module Zernio
268
308
  # Calculates hash code according to all attributes.
269
309
  # @return [Integer] Hash code
270
310
  def hash
271
- [_id, late_post_id, content, scheduled_for, published_at, status, analytics, platforms, platform, platform_post_url, is_external, profile_id, thumbnail_url, media_type, media_items].hash
311
+ [_id, late_post_id, content, scheduled_for, published_at, status, analytics, platforms, platform, platform_post_url, is_external, profile_id, thumbnail_url, media_type, media_items, media_product_type, is_ai_generated, is_shared_to_feed, media_audio_type].hash
272
312
  end
273
313
 
274
314
  # Builds the object from hash
@@ -52,6 +52,18 @@ module Zernio
52
52
  # All media items for this post. Carousel posts contain one entry per slide.
53
53
  attr_accessor :media_items
54
54
 
55
+ # Instagram only: the platform media product type (e.g. FEED, REELS, STORY, AD). Absent when the platform did not report it.
56
+ attr_accessor :media_product_type
57
+
58
+ # Instagram only: whether Instagram labeled the media as AI-generated. Absent when the platform did not report it.
59
+ attr_accessor :is_ai_generated
60
+
61
+ # Instagram reels only: whether the reel is also shared to the main feed. Absent when the platform did not report it.
62
+ attr_accessor :is_shared_to_feed
63
+
64
+ # Instagram only: audio type of the media (MUSIC or ORIGINAL_SOUND). Absent when the platform did not report it.
65
+ attr_accessor :media_audio_type
66
+
55
67
  class EnumAttributeValidator
56
68
  attr_reader :datatype
57
69
  attr_reader :allowable_values
@@ -92,7 +104,11 @@ module Zernio
92
104
  :'message' => :'message',
93
105
  :'thumbnail_url' => :'thumbnailUrl',
94
106
  :'media_type' => :'mediaType',
95
- :'media_items' => :'mediaItems'
107
+ :'media_items' => :'mediaItems',
108
+ :'media_product_type' => :'mediaProductType',
109
+ :'is_ai_generated' => :'isAiGenerated',
110
+ :'is_shared_to_feed' => :'isSharedToFeed',
111
+ :'media_audio_type' => :'mediaAudioType'
96
112
  }
97
113
  end
98
114
 
@@ -124,7 +140,11 @@ module Zernio
124
140
  :'message' => :'String',
125
141
  :'thumbnail_url' => :'String',
126
142
  :'media_type' => :'String',
127
- :'media_items' => :'Array<AnalyticsSinglePostResponseMediaItemsInner>'
143
+ :'media_items' => :'Array<AnalyticsSinglePostResponseMediaItemsInner>',
144
+ :'media_product_type' => :'String',
145
+ :'is_ai_generated' => :'Boolean',
146
+ :'is_shared_to_feed' => :'Boolean',
147
+ :'media_audio_type' => :'String'
128
148
  }
129
149
  end
130
150
 
@@ -223,6 +243,22 @@ module Zernio
223
243
  self.media_items = value
224
244
  end
225
245
  end
246
+
247
+ if attributes.key?(:'media_product_type')
248
+ self.media_product_type = attributes[:'media_product_type']
249
+ end
250
+
251
+ if attributes.key?(:'is_ai_generated')
252
+ self.is_ai_generated = attributes[:'is_ai_generated']
253
+ end
254
+
255
+ if attributes.key?(:'is_shared_to_feed')
256
+ self.is_shared_to_feed = attributes[:'is_shared_to_feed']
257
+ end
258
+
259
+ if attributes.key?(:'media_audio_type')
260
+ self.media_audio_type = attributes[:'media_audio_type']
261
+ end
226
262
  end
227
263
 
228
264
  # Show invalid properties with the reasons. Usually used together with valid?
@@ -296,7 +332,11 @@ module Zernio
296
332
  message == o.message &&
297
333
  thumbnail_url == o.thumbnail_url &&
298
334
  media_type == o.media_type &&
299
- media_items == o.media_items
335
+ media_items == o.media_items &&
336
+ media_product_type == o.media_product_type &&
337
+ is_ai_generated == o.is_ai_generated &&
338
+ is_shared_to_feed == o.is_shared_to_feed &&
339
+ media_audio_type == o.media_audio_type
300
340
  end
301
341
 
302
342
  # @see the `==` method
@@ -308,7 +348,7 @@ module Zernio
308
348
  # Calculates hash code according to all attributes.
309
349
  # @return [Integer] Hash code
310
350
  def hash
311
- [post_id, late_post_id, status, content, scheduled_for, published_at, analytics, platform_analytics, platform, platform_post_url, is_external, sync_status, message, thumbnail_url, media_type, media_items].hash
351
+ [post_id, late_post_id, status, content, scheduled_for, published_at, analytics, platform_analytics, platform, platform_post_url, is_external, sync_status, message, thumbnail_url, media_type, media_items, media_product_type, is_ai_generated, is_shared_to_feed, media_audio_type].hash
312
352
  end
313
353
 
314
354
  # Builds the object from hash
@@ -17,7 +17,7 @@ module Zernio
17
17
  class EditPost200Response < ApiModelBase
18
18
  attr_accessor :success
19
19
 
20
- # The platform post ID after the edit. X assigns a new ID; Discord, Facebook, and Reddit return the original ID unchanged.
20
+ # The platform post ID after the edit. X assigns a new ID; every other platform returns the original ID unchanged.
21
21
  attr_accessor :id
22
22
 
23
23
  # URL of the edited post
@@ -21,6 +21,9 @@ module Zernio
21
21
  # The new post text content
22
22
  attr_accessor :content
23
23
 
24
+ # Which account's copy of the post to edit when the post was published to several accounts on the same platform; defaults to the first.
25
+ attr_accessor :account_id
26
+
24
27
  class EnumAttributeValidator
25
28
  attr_reader :datatype
26
29
  attr_reader :allowable_values
@@ -47,7 +50,8 @@ module Zernio
47
50
  def self.attribute_map
48
51
  {
49
52
  :'platform' => :'platform',
50
- :'content' => :'content'
53
+ :'content' => :'content',
54
+ :'account_id' => :'accountId'
51
55
  }
52
56
  end
53
57
 
@@ -65,7 +69,8 @@ module Zernio
65
69
  def self.openapi_types
66
70
  {
67
71
  :'platform' => :'String',
68
- :'content' => :'String'
72
+ :'content' => :'String',
73
+ :'account_id' => :'String'
69
74
  }
70
75
  end
71
76
 
@@ -102,6 +107,10 @@ module Zernio
102
107
  else
103
108
  self.content = nil
104
109
  end
110
+
111
+ if attributes.key?(:'account_id')
112
+ self.account_id = attributes[:'account_id']
113
+ end
105
114
  end
106
115
 
107
116
  # Show invalid properties with the reasons. Usually used together with valid?
@@ -125,7 +134,7 @@ module Zernio
125
134
  def valid?
126
135
  warn '[DEPRECATED] the `valid?` method is obsolete'
127
136
  return false if @platform.nil?
128
- platform_validator = EnumAttributeValidator.new('String', ["twitter", "discord", "facebook", "reddit"])
137
+ platform_validator = EnumAttributeValidator.new('String', ["twitter", "discord", "facebook", "reddit", "linkedin", "telegram", "pinterest", "googlebusiness", "youtube", "slack"])
129
138
  return false unless platform_validator.valid?(@platform)
130
139
  return false if @content.nil?
131
140
  true
@@ -134,7 +143,7 @@ module Zernio
134
143
  # Custom attribute writer method checking allowed values (enum).
135
144
  # @param [Object] platform Object to be assigned
136
145
  def platform=(platform)
137
- validator = EnumAttributeValidator.new('String', ["twitter", "discord", "facebook", "reddit"])
146
+ validator = EnumAttributeValidator.new('String', ["twitter", "discord", "facebook", "reddit", "linkedin", "telegram", "pinterest", "googlebusiness", "youtube", "slack"])
138
147
  unless validator.valid?(platform)
139
148
  fail ArgumentError, "invalid value for \"platform\", must be one of #{validator.allowable_values}."
140
149
  end
@@ -157,7 +166,8 @@ module Zernio
157
166
  return true if self.equal?(o)
158
167
  self.class == o.class &&
159
168
  platform == o.platform &&
160
- content == o.content
169
+ content == o.content &&
170
+ account_id == o.account_id
161
171
  end
162
172
 
163
173
  # @see the `==` method
@@ -169,7 +179,7 @@ module Zernio
169
179
  # Calculates hash code according to all attributes.
170
180
  # @return [Integer] Hash code
171
181
  def hash
172
- [platform, content].hash
182
+ [platform, content, account_id].hash
173
183
  end
174
184
 
175
185
  # Builds the object from hash
@@ -40,6 +40,18 @@ module Zernio
40
40
  # Per-item media (for carousels / multi-media posts)
41
41
  attr_accessor :media_items
42
42
 
43
+ # Instagram only: the platform media product type (e.g. FEED, REELS, STORY, AD). Absent when the platform did not report it.
44
+ attr_accessor :media_product_type
45
+
46
+ # Instagram only: whether Instagram labeled the media as AI-generated. Absent when the platform did not report it.
47
+ attr_accessor :is_ai_generated
48
+
49
+ # Instagram reels only: whether the reel is also shared to the main feed. Absent when the platform did not report it.
50
+ attr_accessor :is_shared_to_feed
51
+
52
+ # Instagram only: audio type of the media (MUSIC or ORIGINAL_SOUND). Absent when the platform did not report it.
53
+ attr_accessor :media_audio_type
54
+
43
55
  attr_accessor :analytics
44
56
 
45
57
  # Attribute mapping from ruby-style variable name to JSON key.
@@ -53,6 +65,10 @@ module Zernio
53
65
  :'media_type' => :'mediaType',
54
66
  :'thumbnail_url' => :'thumbnailUrl',
55
67
  :'media_items' => :'mediaItems',
68
+ :'media_product_type' => :'mediaProductType',
69
+ :'is_ai_generated' => :'isAiGenerated',
70
+ :'is_shared_to_feed' => :'isSharedToFeed',
71
+ :'media_audio_type' => :'mediaAudioType',
56
72
  :'analytics' => :'analytics'
57
73
  }
58
74
  end
@@ -78,6 +94,10 @@ module Zernio
78
94
  :'media_type' => :'String',
79
95
  :'thumbnail_url' => :'String',
80
96
  :'media_items' => :'Array<Object>',
97
+ :'media_product_type' => :'String',
98
+ :'is_ai_generated' => :'Boolean',
99
+ :'is_shared_to_feed' => :'Boolean',
100
+ :'media_audio_type' => :'String',
81
101
  :'analytics' => :'ExternalPostSummaryAnalytics'
82
102
  }
83
103
  end
@@ -138,6 +158,22 @@ module Zernio
138
158
  end
139
159
  end
140
160
 
161
+ if attributes.key?(:'media_product_type')
162
+ self.media_product_type = attributes[:'media_product_type']
163
+ end
164
+
165
+ if attributes.key?(:'is_ai_generated')
166
+ self.is_ai_generated = attributes[:'is_ai_generated']
167
+ end
168
+
169
+ if attributes.key?(:'is_shared_to_feed')
170
+ self.is_shared_to_feed = attributes[:'is_shared_to_feed']
171
+ end
172
+
173
+ if attributes.key?(:'media_audio_type')
174
+ self.media_audio_type = attributes[:'media_audio_type']
175
+ end
176
+
141
177
  if attributes.key?(:'analytics')
142
178
  self.analytics = attributes[:'analytics']
143
179
  end
@@ -171,6 +207,10 @@ module Zernio
171
207
  media_type == o.media_type &&
172
208
  thumbnail_url == o.thumbnail_url &&
173
209
  media_items == o.media_items &&
210
+ media_product_type == o.media_product_type &&
211
+ is_ai_generated == o.is_ai_generated &&
212
+ is_shared_to_feed == o.is_shared_to_feed &&
213
+ media_audio_type == o.media_audio_type &&
174
214
  analytics == o.analytics
175
215
  end
176
216
 
@@ -183,7 +223,7 @@ module Zernio
183
223
  # Calculates hash code according to all attributes.
184
224
  # @return [Integer] Hash code
185
225
  def hash
186
- [platform, platform_post_id, platform_post_url, content, published_at, media_type, thumbnail_url, media_items, analytics].hash
226
+ [platform, platform_post_id, platform_post_url, content, published_at, media_type, thumbnail_url, media_items, media_product_type, is_ai_generated, is_shared_to_feed, media_audio_type, analytics].hash
187
227
  end
188
228
 
189
229
  # Builds the object from hash
@@ -40,6 +40,18 @@ module Zernio
40
40
 
41
41
  attr_accessor :published_at
42
42
 
43
+ # Instagram only: the platform media product type (e.g. FEED, REELS, STORY, AD). Absent when the platform did not report it.
44
+ attr_accessor :media_product_type
45
+
46
+ # Instagram only: whether Instagram labeled the media as AI-generated. Absent when the platform did not report it.
47
+ attr_accessor :is_ai_generated
48
+
49
+ # Instagram reels only: whether the reel is also shared to the main feed. Absent when the platform did not report it.
50
+ attr_accessor :is_shared_to_feed
51
+
52
+ # Instagram only: audio type of the media (MUSIC or ORIGINAL_SOUND). Absent when the platform did not report it.
53
+ attr_accessor :media_audio_type
54
+
43
55
  # Always \"external\" — distinguishes these from Zernio-originated post.* events.
44
56
  attr_accessor :source
45
57
 
@@ -80,6 +92,10 @@ module Zernio
80
92
  :'media_items' => :'mediaItems',
81
93
  :'thumbnail_url' => :'thumbnailUrl',
82
94
  :'published_at' => :'publishedAt',
95
+ :'media_product_type' => :'mediaProductType',
96
+ :'is_ai_generated' => :'isAiGenerated',
97
+ :'is_shared_to_feed' => :'isSharedToFeed',
98
+ :'media_audio_type' => :'mediaAudioType',
83
99
  :'source' => :'source',
84
100
  :'deleted_at' => :'deletedAt'
85
101
  }
@@ -107,6 +123,10 @@ module Zernio
107
123
  :'media_items' => :'Array<ExternalPostMediaItem>',
108
124
  :'thumbnail_url' => :'String',
109
125
  :'published_at' => :'Time',
126
+ :'media_product_type' => :'String',
127
+ :'is_ai_generated' => :'Boolean',
128
+ :'is_shared_to_feed' => :'Boolean',
129
+ :'media_audio_type' => :'String',
110
130
  :'source' => :'String',
111
131
  :'deleted_at' => :'Time'
112
132
  }
@@ -193,6 +213,22 @@ module Zernio
193
213
  self.published_at = nil
194
214
  end
195
215
 
216
+ if attributes.key?(:'media_product_type')
217
+ self.media_product_type = attributes[:'media_product_type']
218
+ end
219
+
220
+ if attributes.key?(:'is_ai_generated')
221
+ self.is_ai_generated = attributes[:'is_ai_generated']
222
+ end
223
+
224
+ if attributes.key?(:'is_shared_to_feed')
225
+ self.is_shared_to_feed = attributes[:'is_shared_to_feed']
226
+ end
227
+
228
+ if attributes.key?(:'media_audio_type')
229
+ self.media_audio_type = attributes[:'media_audio_type']
230
+ end
231
+
196
232
  if attributes.key?(:'source')
197
233
  self.source = attributes[:'source']
198
234
  else
@@ -355,6 +391,10 @@ module Zernio
355
391
  media_items == o.media_items &&
356
392
  thumbnail_url == o.thumbnail_url &&
357
393
  published_at == o.published_at &&
394
+ media_product_type == o.media_product_type &&
395
+ is_ai_generated == o.is_ai_generated &&
396
+ is_shared_to_feed == o.is_shared_to_feed &&
397
+ media_audio_type == o.media_audio_type &&
358
398
  source == o.source &&
359
399
  deleted_at == o.deleted_at
360
400
  end
@@ -368,7 +408,7 @@ module Zernio
368
408
  # Calculates hash code according to all attributes.
369
409
  # @return [Integer] Hash code
370
410
  def hash
371
- [id, platform, account_id, url, content, media_type, media_items, thumbnail_url, published_at, source, deleted_at].hash
411
+ [id, platform, account_id, url, content, media_type, media_items, thumbnail_url, published_at, media_product_type, is_ai_generated, is_shared_to_feed, media_audio_type, source, deleted_at].hash
372
412
  end
373
413
 
374
414
  # Builds the object from hash
@@ -17,6 +17,9 @@ module Zernio
17
17
  class ListWhatsAppAccountEvents200ResponseEventsInner < ApiModelBase
18
18
  attr_accessor :id
19
19
 
20
+ # WhatsApp social account the event belongs to
21
+ attr_accessor :account_id
22
+
20
23
  # Event kind, e.g. template_approved, template_rejected, account_restricted, account_disconnected
21
24
  attr_accessor :type
22
25
 
@@ -54,6 +57,7 @@ module Zernio
54
57
  def self.attribute_map
55
58
  {
56
59
  :'id' => :'id',
60
+ :'account_id' => :'accountId',
57
61
  :'type' => :'type',
58
62
  :'severity' => :'severity',
59
63
  :'title' => :'title',
@@ -76,6 +80,7 @@ module Zernio
76
80
  def self.openapi_types
77
81
  {
78
82
  :'id' => :'String',
83
+ :'account_id' => :'String',
79
84
  :'type' => :'String',
80
85
  :'severity' => :'String',
81
86
  :'title' => :'String',
@@ -111,6 +116,10 @@ module Zernio
111
116
  self.id = attributes[:'id']
112
117
  end
113
118
 
119
+ if attributes.key?(:'account_id')
120
+ self.account_id = attributes[:'account_id']
121
+ end
122
+
114
123
  if attributes.key?(:'type')
115
124
  self.type = attributes[:'type']
116
125
  end
@@ -165,6 +174,7 @@ module Zernio
165
174
  return true if self.equal?(o)
166
175
  self.class == o.class &&
167
176
  id == o.id &&
177
+ account_id == o.account_id &&
168
178
  type == o.type &&
169
179
  severity == o.severity &&
170
180
  title == o.title &&
@@ -181,7 +191,7 @@ module Zernio
181
191
  # Calculates hash code according to all attributes.
182
192
  # @return [Integer] Hash code
183
193
  def hash
184
- [id, type, severity, title, detail, created_at].hash
194
+ [id, account_id, type, severity, title, detail, created_at].hash
185
195
  end
186
196
 
187
197
  # Builds the object from hash
@@ -11,5 +11,5 @@ Generator version: 7.19.0
11
11
  =end
12
12
 
13
13
  module Zernio
14
- VERSION = '0.0.720'
14
+ VERSION = '0.0.722'
15
15
  end
data/openapi.yaml CHANGED
@@ -1376,6 +1376,18 @@ components:
1376
1376
  description: Per-item media (for carousels / multi-media posts)
1377
1377
  items:
1378
1378
  type: object
1379
+ mediaProductType:
1380
+ type: string
1381
+ description: 'Instagram only: the platform media product type (e.g. FEED, REELS, STORY, AD). Absent when the platform did not report it.'
1382
+ isAiGenerated:
1383
+ type: boolean
1384
+ description: 'Instagram only: whether Instagram labeled the media as AI-generated. Absent when the platform did not report it.'
1385
+ isSharedToFeed:
1386
+ type: boolean
1387
+ description: 'Instagram reels only: whether the reel is also shared to the main feed. Absent when the platform did not report it.'
1388
+ mediaAudioType:
1389
+ type: string
1390
+ description: 'Instagram only: audio type of the media (MUSIC or ORIGINAL_SOUND). Absent when the platform did not report it.'
1379
1391
  analytics:
1380
1392
  type: object
1381
1393
  description: |
@@ -3097,6 +3109,18 @@ components:
3097
3109
  publishedAt:
3098
3110
  type: string
3099
3111
  format: date-time
3112
+ mediaProductType:
3113
+ type: string
3114
+ description: 'Instagram only: the platform media product type (e.g. FEED, REELS, STORY, AD). Absent when the platform did not report it.'
3115
+ isAiGenerated:
3116
+ type: boolean
3117
+ description: 'Instagram only: whether Instagram labeled the media as AI-generated. Absent when the platform did not report it.'
3118
+ isSharedToFeed:
3119
+ type: boolean
3120
+ description: 'Instagram reels only: whether the reel is also shared to the main feed. Absent when the platform did not report it.'
3121
+ mediaAudioType:
3122
+ type: string
3123
+ description: 'Instagram only: audio type of the media (MUSIC or ORIGINAL_SOUND). Absent when the platform did not report it.'
3100
3124
  source:
3101
3125
  type: string
3102
3126
  enum: [external]
@@ -7034,6 +7058,18 @@ components:
7034
7058
  type: string
7035
7059
  enum: [platform_withheld]
7036
7060
  description: 'Why the file is missing. platform_withheld means the platform declined to return it and retrying will not help.'
7061
+ mediaProductType:
7062
+ type: string
7063
+ description: 'Instagram only: the platform media product type (e.g. FEED, REELS, STORY, AD). Absent when the platform did not report it.'
7064
+ isAiGenerated:
7065
+ type: boolean
7066
+ description: 'Instagram only: whether Instagram labeled the media as AI-generated. Absent when the platform did not report it.'
7067
+ isSharedToFeed:
7068
+ type: boolean
7069
+ description: 'Instagram reels only: whether the reel is also shared to the main feed. Absent when the platform did not report it.'
7070
+ mediaAudioType:
7071
+ type: string
7072
+ description: 'Instagram only: audio type of the media (MUSIC or ORIGINAL_SOUND). Absent when the platform did not report it.'
7037
7073
  AnalyticsListResponse:
7038
7074
  type: object
7039
7075
  properties:
@@ -7074,6 +7110,18 @@ components:
7074
7110
  altText:
7075
7111
  type: string
7076
7112
  description: Accessibility alt text set on the media, when present.
7113
+ mediaProductType:
7114
+ type: string
7115
+ description: 'Instagram only: the platform media product type (e.g. FEED, REELS, STORY, AD). Absent when the platform did not report it.'
7116
+ isAiGenerated:
7117
+ type: boolean
7118
+ description: 'Instagram only: whether Instagram labeled the media as AI-generated. Absent when the platform did not report it.'
7119
+ isSharedToFeed:
7120
+ type: boolean
7121
+ description: 'Instagram reels only: whether the reel is also shared to the main feed. Absent when the platform did not report it.'
7122
+ mediaAudioType:
7123
+ type: string
7124
+ description: 'Instagram only: audio type of the media (MUSIC or ORIGINAL_SOUND). Absent when the platform did not report it.'
7077
7125
  pagination:
7078
7126
  $ref: '#/components/schemas/Pagination'
7079
7127
  accounts:
@@ -15063,7 +15111,10 @@ paths:
15063
15111
  summary: Edit published post
15064
15112
  description: |
15065
15113
  Edit the text of an already-published post. Supported on X (Twitter), Discord,
15066
- Facebook, and Reddit. Each platform enforces its own rules:
15114
+ Facebook, Reddit, LinkedIn, Telegram, Pinterest, Google Business Profile, YouTube,
15115
+ and Slack. When a post was published to several accounts on the same platform,
15116
+ pass `accountId` to pick which account's copy to edit (the first entry is edited
15117
+ otherwise). Each platform enforces its own rules:
15067
15118
 
15068
15119
  **X (Twitter)**
15069
15120
  - Connected X account must have an active X Premium subscription
@@ -15088,6 +15139,49 @@ paths:
15088
15139
  - Body only. Reddit exposes no API to edit a post title, ever
15089
15140
  - The post ID is unchanged
15090
15141
 
15142
+ **LinkedIn**
15143
+ - Text only, no time limit. Media, polls, articles, and reshare targets cannot be
15144
+ changed
15145
+ - Works for member and organization posts published through this API. The post
15146
+ keeps its ID and LinkedIn shows an "edited" marker
15147
+ - Text is limited to 3,000 characters; mentions and hashtags are preserved
15148
+
15149
+ **Telegram**
15150
+ - No time limit; messages published through Zernio are editable indefinitely
15151
+ - Text posts: edits the message text (up to 4096 characters)
15152
+ - Media posts: edits the caption only (up to 1024 characters). The media itself
15153
+ cannot be swapped
15154
+ - For albums, the caption shown on the album (its first message) is edited
15155
+ - The message ID is unchanged
15156
+
15157
+ **Pinterest**
15158
+ - Description only, maximum 800 characters. Media, link, and board cannot be
15159
+ changed, and a pin title derived from the old content's first line at publish
15160
+ stays as-is
15161
+ - Pinterest's pin-update endpoint is currently in closed beta; until the app is
15162
+ allowlisted by Pinterest, edits are rejected with a "beta feature not yet
15163
+ enabled" error
15164
+ - The pin ID is unchanged
15165
+
15166
+ **Google Business Profile**
15167
+ - Post body (summary) text only. Call-to-action, event/offer fields, and media are
15168
+ untouched
15169
+ - No time limit and no edit limit. The post ID is unchanged
15170
+ - The post must still exist on Google: a post deleted from the Business Profile
15171
+ dashboard, or an event/offer post past its end date, returns a 404
15172
+
15173
+ **YouTube**
15174
+ - `content` replaces the video description only. The title is unchanged, even if
15175
+ it was originally derived from the content's first line at publish time
15176
+ - Title, tags, thumbnail, and privacy edits belong to `POST /v1/posts/{postId}/update-metadata`
15177
+ - No time window and no edit cap. The video ID is unchanged
15178
+
15179
+ **Slack**
15180
+ - Text only, up to 4,000 characters. Media cannot be swapped, and media posts
15181
+ whose share message reference never resolved cannot be edited
15182
+ - No time limit unless workspace admins restrict message editing
15183
+ - The message ID is unchanged
15184
+
15091
15185
  Media edits are not supported on any platform. The post record in Zernio is updated
15092
15186
  with the new content and an edit-history entry.
15093
15187
  parameters:
@@ -15106,10 +15200,15 @@ paths:
15106
15200
  platform:
15107
15201
  type: string
15108
15202
  description: The platform to edit the post on.
15109
- enum: [twitter, discord, facebook, reddit]
15203
+ enum: [twitter, discord, facebook, reddit, linkedin, telegram, pinterest, googlebusiness, youtube, slack]
15110
15204
  content:
15111
15205
  type: string
15112
15206
  description: The new post text content
15207
+ accountId:
15208
+ type: string
15209
+ description: >
15210
+ Which account's copy of the post to edit when the post was published
15211
+ to several accounts on the same platform; defaults to the first.
15113
15212
  example:
15114
15213
  platform: "facebook"
15115
15214
  content: "Updated post text with corrected information"
@@ -15125,8 +15224,8 @@ paths:
15125
15224
  id:
15126
15225
  type: string
15127
15226
  description: >
15128
- The platform post ID after the edit. X assigns a new ID; Discord,
15129
- Facebook, and Reddit return the original ID unchanged.
15227
+ The platform post ID after the edit. X assigns a new ID; every other
15228
+ platform returns the original ID unchanged.
15130
15229
  url: { type: string, format: uri, description: URL of the edited post }
15131
15230
  message: { type: string }
15132
15231
  example:
@@ -15138,8 +15237,11 @@ paths:
15138
15237
  description: >
15139
15238
  Invalid request: platform not supported, post not published, edit window expired,
15140
15239
  not X Premium, or missing content. Also returned when the platform rejects the edit
15141
- with a 4xx, which covers a Reddit link post (no editable body) and a Facebook post
15142
- that was not created by this app.
15240
+ with a 4xx, which covers a Reddit link post (no editable body), a Facebook post
15241
+ that was not created by this app, content over a platform's length limit
15242
+ (LinkedIn 3,000, Telegram 4096 text / 1024 caption, Pinterest 800, Slack 4,000),
15243
+ a Telegram edit with unchanged content, and a Pinterest app not yet allowlisted
15244
+ for the pin-update beta.
15143
15245
  '401': { $ref: '#/components/responses/Unauthorized' }
15144
15246
  '403':
15145
15247
  description: Forbidden
@@ -31645,6 +31747,7 @@ paths:
31645
31747
  type: object
31646
31748
  properties:
31647
31749
  id: { type: string }
31750
+ accountId: { type: string, description: WhatsApp social account the event belongs to }
31648
31751
  type: { type: string, description: 'Event kind, e.g. template_approved, template_rejected, account_restricted, account_disconnected' }
31649
31752
  severity: { type: string, enum: [info, success, warning, critical] }
31650
31753
  title: { type: string }
@@ -72,7 +72,7 @@ describe 'PostsApi' do
72
72
 
73
73
  # unit tests for edit_post
74
74
  # Edit published post
75
- # Edit the text of an already-published post. Supported on X (Twitter), Discord, Facebook, and Reddit. Each platform enforces its own rules: **X (Twitter)** - Connected X account must have an active X Premium subscription - Must be within 1 hour of original publish time - Maximum 5 edits per tweet (enforced by X) - Threads cannot be edited, only single tweets - X assigns a NEW post ID on edit, returned as &#x60;id&#x60; **Discord** - No time limit and no premium requirement - The message ID is unchanged after the edit **Facebook** - Graph only permits editing a post that the same app created, so this works on posts published through Zernio and is rejected for posts created in Meta Business Suite / Composer or by another tool - Media cannot be swapped, only the message text - Reactions, comments, and shares are preserved. The post ID is unchanged **Reddit** - Self-posts only. A link post has no editable body and is rejected before the write - Body only. Reddit exposes no API to edit a post title, ever - The post ID is unchanged Media edits are not supported on any platform. The post record in Zernio is updated with the new content and an edit-history entry.
75
+ # Edit the text of an already-published post. Supported on X (Twitter), Discord, Facebook, Reddit, LinkedIn, Telegram, Pinterest, Google Business Profile, YouTube, and Slack. When a post was published to several accounts on the same platform, pass &#x60;accountId&#x60; to pick which account&#39;s copy to edit (the first entry is edited otherwise). Each platform enforces its own rules: **X (Twitter)** - Connected X account must have an active X Premium subscription - Must be within 1 hour of original publish time - Maximum 5 edits per tweet (enforced by X) - Threads cannot be edited, only single tweets - X assigns a NEW post ID on edit, returned as &#x60;id&#x60; **Discord** - No time limit and no premium requirement - The message ID is unchanged after the edit **Facebook** - Graph only permits editing a post that the same app created, so this works on posts published through Zernio and is rejected for posts created in Meta Business Suite / Composer or by another tool - Media cannot be swapped, only the message text - Reactions, comments, and shares are preserved. The post ID is unchanged **Reddit** - Self-posts only. A link post has no editable body and is rejected before the write - Body only. Reddit exposes no API to edit a post title, ever - The post ID is unchanged **LinkedIn** - Text only, no time limit. Media, polls, articles, and reshare targets cannot be changed - Works for member and organization posts published through this API. The post keeps its ID and LinkedIn shows an \&quot;edited\&quot; marker - Text is limited to 3,000 characters; mentions and hashtags are preserved **Telegram** - No time limit; messages published through Zernio are editable indefinitely - Text posts: edits the message text (up to 4096 characters) - Media posts: edits the caption only (up to 1024 characters). The media itself cannot be swapped - For albums, the caption shown on the album (its first message) is edited - The message ID is unchanged **Pinterest** - Description only, maximum 800 characters. Media, link, and board cannot be changed, and a pin title derived from the old content&#39;s first line at publish stays as-is - Pinterest&#39;s pin-update endpoint is currently in closed beta; until the app is allowlisted by Pinterest, edits are rejected with a \&quot;beta feature not yet enabled\&quot; error - The pin ID is unchanged **Google Business Profile** - Post body (summary) text only. Call-to-action, event/offer fields, and media are untouched - No time limit and no edit limit. The post ID is unchanged - The post must still exist on Google: a post deleted from the Business Profile dashboard, or an event/offer post past its end date, returns a 404 **YouTube** - &#x60;content&#x60; replaces the video description only. The title is unchanged, even if it was originally derived from the content&#39;s first line at publish time - Title, tags, thumbnail, and privacy edits belong to &#x60;POST /v1/posts/{postId}/update-metadata&#x60; - No time window and no edit cap. The video ID is unchanged **Slack** - Text only, up to 4,000 characters. Media cannot be swapped, and media posts whose share message reference never resolved cannot be edited - No time limit unless workspace admins restrict message editing - The message ID is unchanged Media edits are not supported on any platform. The post record in Zernio is updated with the new content and an edit-history entry.
76
76
  # @param post_id
77
77
  # @param edit_post_request
78
78
  # @param [Hash] opts the optional parameters
@@ -121,4 +121,28 @@ describe Zernio::AnalyticsListResponsePostsInner do
121
121
  end
122
122
  end
123
123
 
124
+ describe 'test attribute "media_product_type"' do
125
+ it 'should work' do
126
+ # assertion here. ref: https://rspec.info/features/3-12/rspec-expectations/built-in-matchers/
127
+ end
128
+ end
129
+
130
+ describe 'test attribute "is_ai_generated"' do
131
+ it 'should work' do
132
+ # assertion here. ref: https://rspec.info/features/3-12/rspec-expectations/built-in-matchers/
133
+ end
134
+ end
135
+
136
+ describe 'test attribute "is_shared_to_feed"' do
137
+ it 'should work' do
138
+ # assertion here. ref: https://rspec.info/features/3-12/rspec-expectations/built-in-matchers/
139
+ end
140
+ end
141
+
142
+ describe 'test attribute "media_audio_type"' do
143
+ it 'should work' do
144
+ # assertion here. ref: https://rspec.info/features/3-12/rspec-expectations/built-in-matchers/
145
+ end
146
+ end
147
+
124
148
  end
@@ -135,4 +135,28 @@ describe Zernio::AnalyticsSinglePostResponse do
135
135
  end
136
136
  end
137
137
 
138
+ describe 'test attribute "media_product_type"' do
139
+ it 'should work' do
140
+ # assertion here. ref: https://rspec.info/features/3-12/rspec-expectations/built-in-matchers/
141
+ end
142
+ end
143
+
144
+ describe 'test attribute "is_ai_generated"' do
145
+ it 'should work' do
146
+ # assertion here. ref: https://rspec.info/features/3-12/rspec-expectations/built-in-matchers/
147
+ end
148
+ end
149
+
150
+ describe 'test attribute "is_shared_to_feed"' do
151
+ it 'should work' do
152
+ # assertion here. ref: https://rspec.info/features/3-12/rspec-expectations/built-in-matchers/
153
+ end
154
+ end
155
+
156
+ describe 'test attribute "media_audio_type"' do
157
+ it 'should work' do
158
+ # assertion here. ref: https://rspec.info/features/3-12/rspec-expectations/built-in-matchers/
159
+ end
160
+ end
161
+
138
162
  end
@@ -30,7 +30,7 @@ describe Zernio::EditPostRequest do
30
30
  describe 'test attribute "platform"' do
31
31
  it 'should work' do
32
32
  # assertion here. ref: https://rspec.info/features/3-12/rspec-expectations/built-in-matchers/
33
- # validator = Petstore::EnumTest::EnumAttributeValidator.new('String', ["twitter", "discord", "facebook", "reddit"])
33
+ # validator = Petstore::EnumTest::EnumAttributeValidator.new('String', ["twitter", "discord", "facebook", "reddit", "linkedin", "telegram", "pinterest", "googlebusiness", "youtube", "slack"])
34
34
  # validator.allowable_values.each do |value|
35
35
  # expect { instance.platform = value }.not_to raise_error
36
36
  # end
@@ -43,4 +43,10 @@ describe Zernio::EditPostRequest do
43
43
  end
44
44
  end
45
45
 
46
+ describe 'test attribute "account_id"' do
47
+ it 'should work' do
48
+ # assertion here. ref: https://rspec.info/features/3-12/rspec-expectations/built-in-matchers/
49
+ end
50
+ end
51
+
46
52
  end
@@ -75,6 +75,30 @@ describe Zernio::ExternalPostSummary do
75
75
  end
76
76
  end
77
77
 
78
+ describe 'test attribute "media_product_type"' do
79
+ it 'should work' do
80
+ # assertion here. ref: https://rspec.info/features/3-12/rspec-expectations/built-in-matchers/
81
+ end
82
+ end
83
+
84
+ describe 'test attribute "is_ai_generated"' do
85
+ it 'should work' do
86
+ # assertion here. ref: https://rspec.info/features/3-12/rspec-expectations/built-in-matchers/
87
+ end
88
+ end
89
+
90
+ describe 'test attribute "is_shared_to_feed"' do
91
+ it 'should work' do
92
+ # assertion here. ref: https://rspec.info/features/3-12/rspec-expectations/built-in-matchers/
93
+ end
94
+ end
95
+
96
+ describe 'test attribute "media_audio_type"' do
97
+ it 'should work' do
98
+ # assertion here. ref: https://rspec.info/features/3-12/rspec-expectations/built-in-matchers/
99
+ end
100
+ end
101
+
78
102
  describe 'test attribute "analytics"' do
79
103
  it 'should work' do
80
104
  # assertion here. ref: https://rspec.info/features/3-12/rspec-expectations/built-in-matchers/
@@ -81,6 +81,30 @@ describe Zernio::ExternalPostWebhookPost do
81
81
  end
82
82
  end
83
83
 
84
+ describe 'test attribute "media_product_type"' do
85
+ it 'should work' do
86
+ # assertion here. ref: https://rspec.info/features/3-12/rspec-expectations/built-in-matchers/
87
+ end
88
+ end
89
+
90
+ describe 'test attribute "is_ai_generated"' do
91
+ it 'should work' do
92
+ # assertion here. ref: https://rspec.info/features/3-12/rspec-expectations/built-in-matchers/
93
+ end
94
+ end
95
+
96
+ describe 'test attribute "is_shared_to_feed"' do
97
+ it 'should work' do
98
+ # assertion here. ref: https://rspec.info/features/3-12/rspec-expectations/built-in-matchers/
99
+ end
100
+ end
101
+
102
+ describe 'test attribute "media_audio_type"' do
103
+ it 'should work' do
104
+ # assertion here. ref: https://rspec.info/features/3-12/rspec-expectations/built-in-matchers/
105
+ end
106
+ end
107
+
84
108
  describe 'test attribute "source"' do
85
109
  it 'should work' do
86
110
  # assertion here. ref: https://rspec.info/features/3-12/rspec-expectations/built-in-matchers/
@@ -33,6 +33,12 @@ describe Zernio::ListWhatsAppAccountEvents200ResponseEventsInner do
33
33
  end
34
34
  end
35
35
 
36
+ describe 'test attribute "account_id"' do
37
+ it 'should work' do
38
+ # assertion here. ref: https://rspec.info/features/3-12/rspec-expectations/built-in-matchers/
39
+ end
40
+ end
41
+
36
42
  describe 'test attribute "type"' do
37
43
  it 'should work' do
38
44
  # assertion here. ref: https://rspec.info/features/3-12/rspec-expectations/built-in-matchers/
Binary file
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: late-sdk
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.0.720
4
+ version: 0.0.722
5
5
  platform: ruby
6
6
  authors:
7
7
  - OpenAPI-Generator
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2026-08-21 00:00:00.000000000 Z
11
+ date: 2026-08-22 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: typhoeus
@@ -5318,7 +5318,7 @@ files:
5318
5318
  - spec/models/you_tube_video_retention_response_retention_curve_inner_spec.rb
5319
5319
  - spec/models/you_tube_video_retention_response_spec.rb
5320
5320
  - spec/spec_helper.rb
5321
- - zernio-sdk-0.0.720.gem
5321
+ - zernio-sdk-0.0.722.gem
5322
5322
  - zernio-sdk.gemspec
5323
5323
  homepage: https://openapi-generator.tech
5324
5324
  licenses:
Binary file