late-sdk 0.0.721 → 0.0.723
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- checksums.yaml +4 -4
- data/README.md +2 -0
- data/docs/CreateInboxConversation404Response.md +20 -0
- data/docs/CreateInboxConversation429Response.md +20 -0
- data/docs/EditPost200Response.md +1 -1
- data/docs/EditPostRequest.md +3 -1
- data/docs/PostsApi.md +1 -1
- data/lib/zernio-sdk/api/posts_api.rb +2 -2
- data/lib/zernio-sdk/models/create_inbox_conversation404_response.rb +190 -0
- data/lib/zernio-sdk/models/create_inbox_conversation429_response.rb +190 -0
- data/lib/zernio-sdk/models/edit_post200_response.rb +1 -1
- data/lib/zernio-sdk/models/edit_post_request.rb +16 -6
- data/lib/zernio-sdk/version.rb +1 -1
- data/lib/zernio-sdk.rb +2 -0
- data/openapi.yaml +77 -9
- data/spec/api/posts_api_spec.rb +1 -1
- data/spec/models/create_inbox_conversation404_response_spec.rb +46 -0
- data/spec/models/create_inbox_conversation429_response_spec.rb +46 -0
- data/spec/models/edit_post_request_spec.rb +7 -1
- data/zernio-sdk-0.0.723.gem +0 -0
- metadata +10 -2
- data/zernio-sdk-0.0.721.gem +0 -0
checksums.yaml
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
---
|
|
2
2
|
SHA256:
|
|
3
|
-
metadata.gz:
|
|
4
|
-
data.tar.gz:
|
|
3
|
+
metadata.gz: 76635f6e654de1a48be7a52fe66219b03d65c15f25369d5c39cd98a43174d092
|
|
4
|
+
data.tar.gz: b9c1c82b061c37af76d8fb1847ab371ae5148438dac8d2e7a7aba3e12c271158
|
|
5
5
|
SHA512:
|
|
6
|
-
metadata.gz:
|
|
7
|
-
data.tar.gz:
|
|
6
|
+
metadata.gz: f4fb12052c8861d314e204f281fa1ee5cf93df9a933c2cc4e205002736044d05c1ac9bb6c9d6c2f549f52528d873b2cae4f5392f5965f80535d361e32297a3bf
|
|
7
|
+
data.tar.gz: 4b03150df77c33d99414345eaa462d61c076a7fe321311da2263034957ef595d7a1a0e97fc49e9b072c236a67fd1dd00dbe37099f52ba8d3290da16c5c66f3b0
|
data/README.md
CHANGED
|
@@ -869,7 +869,9 @@ Class | Method | HTTP request | Description
|
|
|
869
869
|
- [Zernio::CreateInboxConversation201Response](docs/CreateInboxConversation201Response.md)
|
|
870
870
|
- [Zernio::CreateInboxConversation201ResponseData](docs/CreateInboxConversation201ResponseData.md)
|
|
871
871
|
- [Zernio::CreateInboxConversation400Response](docs/CreateInboxConversation400Response.md)
|
|
872
|
+
- [Zernio::CreateInboxConversation404Response](docs/CreateInboxConversation404Response.md)
|
|
872
873
|
- [Zernio::CreateInboxConversation422Response](docs/CreateInboxConversation422Response.md)
|
|
874
|
+
- [Zernio::CreateInboxConversation429Response](docs/CreateInboxConversation429Response.md)
|
|
873
875
|
- [Zernio::CreateInboxConversationRequest](docs/CreateInboxConversationRequest.md)
|
|
874
876
|
- [Zernio::CreateInboxConversationRequestHeaderMedia](docs/CreateInboxConversationRequestHeaderMedia.md)
|
|
875
877
|
- [Zernio::CreateInviteToken201Response](docs/CreateInviteToken201Response.md)
|
|
@@ -0,0 +1,20 @@
|
|
|
1
|
+
# Zernio::CreateInboxConversation404Response
|
|
2
|
+
|
|
3
|
+
## Properties
|
|
4
|
+
|
|
5
|
+
| Name | Type | Description | Notes |
|
|
6
|
+
| ---- | ---- | ----------- | ----- |
|
|
7
|
+
| **error** | **String** | | [optional] |
|
|
8
|
+
| **code** | **String** | | [optional] |
|
|
9
|
+
|
|
10
|
+
## Example
|
|
11
|
+
|
|
12
|
+
```ruby
|
|
13
|
+
require 'zernio-sdk'
|
|
14
|
+
|
|
15
|
+
instance = Zernio::CreateInboxConversation404Response.new(
|
|
16
|
+
error: null,
|
|
17
|
+
code: null
|
|
18
|
+
)
|
|
19
|
+
```
|
|
20
|
+
|
|
@@ -0,0 +1,20 @@
|
|
|
1
|
+
# Zernio::CreateInboxConversation429Response
|
|
2
|
+
|
|
3
|
+
## Properties
|
|
4
|
+
|
|
5
|
+
| Name | Type | Description | Notes |
|
|
6
|
+
| ---- | ---- | ----------- | ----- |
|
|
7
|
+
| **error** | **String** | | [optional] |
|
|
8
|
+
| **code** | **String** | | [optional] |
|
|
9
|
+
|
|
10
|
+
## Example
|
|
11
|
+
|
|
12
|
+
```ruby
|
|
13
|
+
require 'zernio-sdk'
|
|
14
|
+
|
|
15
|
+
instance = Zernio::CreateInboxConversation429Response.new(
|
|
16
|
+
error: null,
|
|
17
|
+
code: null
|
|
18
|
+
)
|
|
19
|
+
```
|
|
20
|
+
|
data/docs/EditPost200Response.md
CHANGED
|
@@ -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;
|
|
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
|
|
data/docs/EditPostRequest.md
CHANGED
|
@@ -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
|
|
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
|
|
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
|
|
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
|
|
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
|
|
@@ -0,0 +1,190 @@
|
|
|
1
|
+
=begin
|
|
2
|
+
#Zernio API
|
|
3
|
+
|
|
4
|
+
#API reference for Zernio. Authenticate with a Bearer API key. Base URL: https://zernio.com/api
|
|
5
|
+
|
|
6
|
+
The version of the OpenAPI document: 1.0.4
|
|
7
|
+
Contact: support@zernio.com
|
|
8
|
+
Generated by: https://openapi-generator.tech
|
|
9
|
+
Generator version: 7.19.0
|
|
10
|
+
|
|
11
|
+
=end
|
|
12
|
+
|
|
13
|
+
require 'date'
|
|
14
|
+
require 'time'
|
|
15
|
+
|
|
16
|
+
module Zernio
|
|
17
|
+
class CreateInboxConversation404Response < ApiModelBase
|
|
18
|
+
attr_accessor :error
|
|
19
|
+
|
|
20
|
+
attr_accessor :code
|
|
21
|
+
|
|
22
|
+
class EnumAttributeValidator
|
|
23
|
+
attr_reader :datatype
|
|
24
|
+
attr_reader :allowable_values
|
|
25
|
+
|
|
26
|
+
def initialize(datatype, allowable_values)
|
|
27
|
+
@allowable_values = allowable_values.map do |value|
|
|
28
|
+
case datatype.to_s
|
|
29
|
+
when /Integer/i
|
|
30
|
+
value.to_i
|
|
31
|
+
when /Float/i
|
|
32
|
+
value.to_f
|
|
33
|
+
else
|
|
34
|
+
value
|
|
35
|
+
end
|
|
36
|
+
end
|
|
37
|
+
end
|
|
38
|
+
|
|
39
|
+
def valid?(value)
|
|
40
|
+
!value || allowable_values.include?(value)
|
|
41
|
+
end
|
|
42
|
+
end
|
|
43
|
+
|
|
44
|
+
# Attribute mapping from ruby-style variable name to JSON key.
|
|
45
|
+
def self.attribute_map
|
|
46
|
+
{
|
|
47
|
+
:'error' => :'error',
|
|
48
|
+
:'code' => :'code'
|
|
49
|
+
}
|
|
50
|
+
end
|
|
51
|
+
|
|
52
|
+
# Returns attribute mapping this model knows about
|
|
53
|
+
def self.acceptable_attribute_map
|
|
54
|
+
attribute_map
|
|
55
|
+
end
|
|
56
|
+
|
|
57
|
+
# Returns all the JSON keys this model knows about
|
|
58
|
+
def self.acceptable_attributes
|
|
59
|
+
acceptable_attribute_map.values
|
|
60
|
+
end
|
|
61
|
+
|
|
62
|
+
# Attribute type mapping.
|
|
63
|
+
def self.openapi_types
|
|
64
|
+
{
|
|
65
|
+
:'error' => :'String',
|
|
66
|
+
:'code' => :'String'
|
|
67
|
+
}
|
|
68
|
+
end
|
|
69
|
+
|
|
70
|
+
# List of attributes with nullable: true
|
|
71
|
+
def self.openapi_nullable
|
|
72
|
+
Set.new([
|
|
73
|
+
])
|
|
74
|
+
end
|
|
75
|
+
|
|
76
|
+
# Initializes the object
|
|
77
|
+
# @param [Hash] attributes Model attributes in the form of hash
|
|
78
|
+
def initialize(attributes = {})
|
|
79
|
+
if (!attributes.is_a?(Hash))
|
|
80
|
+
fail ArgumentError, "The input argument (attributes) must be a hash in `Zernio::CreateInboxConversation404Response` initialize method"
|
|
81
|
+
end
|
|
82
|
+
|
|
83
|
+
# check to see if the attribute exists and convert string to symbol for hash key
|
|
84
|
+
acceptable_attribute_map = self.class.acceptable_attribute_map
|
|
85
|
+
attributes = attributes.each_with_object({}) { |(k, v), h|
|
|
86
|
+
if (!acceptable_attribute_map.key?(k.to_sym))
|
|
87
|
+
fail ArgumentError, "`#{k}` is not a valid attribute in `Zernio::CreateInboxConversation404Response`. Please check the name to make sure it's valid. List of attributes: " + acceptable_attribute_map.keys.inspect
|
|
88
|
+
end
|
|
89
|
+
h[k.to_sym] = v
|
|
90
|
+
}
|
|
91
|
+
|
|
92
|
+
if attributes.key?(:'error')
|
|
93
|
+
self.error = attributes[:'error']
|
|
94
|
+
end
|
|
95
|
+
|
|
96
|
+
if attributes.key?(:'code')
|
|
97
|
+
self.code = attributes[:'code']
|
|
98
|
+
end
|
|
99
|
+
end
|
|
100
|
+
|
|
101
|
+
# Show invalid properties with the reasons. Usually used together with valid?
|
|
102
|
+
# @return Array for valid properties with the reasons
|
|
103
|
+
def list_invalid_properties
|
|
104
|
+
warn '[DEPRECATED] the `list_invalid_properties` method is obsolete'
|
|
105
|
+
invalid_properties = Array.new
|
|
106
|
+
invalid_properties
|
|
107
|
+
end
|
|
108
|
+
|
|
109
|
+
# Check to see if the all the properties in the model are valid
|
|
110
|
+
# @return true if the model is valid
|
|
111
|
+
def valid?
|
|
112
|
+
warn '[DEPRECATED] the `valid?` method is obsolete'
|
|
113
|
+
code_validator = EnumAttributeValidator.new('String', ["account_not_found", "PARTICIPANT_NOT_FOUND"])
|
|
114
|
+
return false unless code_validator.valid?(@code)
|
|
115
|
+
true
|
|
116
|
+
end
|
|
117
|
+
|
|
118
|
+
# Custom attribute writer method checking allowed values (enum).
|
|
119
|
+
# @param [Object] code Object to be assigned
|
|
120
|
+
def code=(code)
|
|
121
|
+
validator = EnumAttributeValidator.new('String', ["account_not_found", "PARTICIPANT_NOT_FOUND"])
|
|
122
|
+
unless validator.valid?(code)
|
|
123
|
+
fail ArgumentError, "invalid value for \"code\", must be one of #{validator.allowable_values}."
|
|
124
|
+
end
|
|
125
|
+
@code = code
|
|
126
|
+
end
|
|
127
|
+
|
|
128
|
+
# Checks equality by comparing each attribute.
|
|
129
|
+
# @param [Object] Object to be compared
|
|
130
|
+
def ==(o)
|
|
131
|
+
return true if self.equal?(o)
|
|
132
|
+
self.class == o.class &&
|
|
133
|
+
error == o.error &&
|
|
134
|
+
code == o.code
|
|
135
|
+
end
|
|
136
|
+
|
|
137
|
+
# @see the `==` method
|
|
138
|
+
# @param [Object] Object to be compared
|
|
139
|
+
def eql?(o)
|
|
140
|
+
self == o
|
|
141
|
+
end
|
|
142
|
+
|
|
143
|
+
# Calculates hash code according to all attributes.
|
|
144
|
+
# @return [Integer] Hash code
|
|
145
|
+
def hash
|
|
146
|
+
[error, code].hash
|
|
147
|
+
end
|
|
148
|
+
|
|
149
|
+
# Builds the object from hash
|
|
150
|
+
# @param [Hash] attributes Model attributes in the form of hash
|
|
151
|
+
# @return [Object] Returns the model itself
|
|
152
|
+
def self.build_from_hash(attributes)
|
|
153
|
+
return nil unless attributes.is_a?(Hash)
|
|
154
|
+
attributes = attributes.transform_keys(&:to_sym)
|
|
155
|
+
transformed_hash = {}
|
|
156
|
+
openapi_types.each_pair do |key, type|
|
|
157
|
+
if attributes.key?(attribute_map[key]) && attributes[attribute_map[key]].nil?
|
|
158
|
+
transformed_hash["#{key}"] = nil
|
|
159
|
+
elsif type =~ /\AArray<(.*)>/i
|
|
160
|
+
# check to ensure the input is an array given that the attribute
|
|
161
|
+
# is documented as an array but the input is not
|
|
162
|
+
if attributes[attribute_map[key]].is_a?(Array)
|
|
163
|
+
transformed_hash["#{key}"] = attributes[attribute_map[key]].map { |v| _deserialize($1, v) }
|
|
164
|
+
end
|
|
165
|
+
elsif !attributes[attribute_map[key]].nil?
|
|
166
|
+
transformed_hash["#{key}"] = _deserialize(type, attributes[attribute_map[key]])
|
|
167
|
+
end
|
|
168
|
+
end
|
|
169
|
+
new(transformed_hash)
|
|
170
|
+
end
|
|
171
|
+
|
|
172
|
+
# Returns the object in the form of hash
|
|
173
|
+
# @return [Hash] Returns the object in the form of hash
|
|
174
|
+
def to_hash
|
|
175
|
+
hash = {}
|
|
176
|
+
self.class.attribute_map.each_pair do |attr, param|
|
|
177
|
+
value = self.send(attr)
|
|
178
|
+
if value.nil?
|
|
179
|
+
is_nullable = self.class.openapi_nullable.include?(attr)
|
|
180
|
+
next if !is_nullable || (is_nullable && !instance_variable_defined?(:"@#{attr}"))
|
|
181
|
+
end
|
|
182
|
+
|
|
183
|
+
hash[param] = _to_hash(value)
|
|
184
|
+
end
|
|
185
|
+
hash
|
|
186
|
+
end
|
|
187
|
+
|
|
188
|
+
end
|
|
189
|
+
|
|
190
|
+
end
|
|
@@ -0,0 +1,190 @@
|
|
|
1
|
+
=begin
|
|
2
|
+
#Zernio API
|
|
3
|
+
|
|
4
|
+
#API reference for Zernio. Authenticate with a Bearer API key. Base URL: https://zernio.com/api
|
|
5
|
+
|
|
6
|
+
The version of the OpenAPI document: 1.0.4
|
|
7
|
+
Contact: support@zernio.com
|
|
8
|
+
Generated by: https://openapi-generator.tech
|
|
9
|
+
Generator version: 7.19.0
|
|
10
|
+
|
|
11
|
+
=end
|
|
12
|
+
|
|
13
|
+
require 'date'
|
|
14
|
+
require 'time'
|
|
15
|
+
|
|
16
|
+
module Zernio
|
|
17
|
+
class CreateInboxConversation429Response < ApiModelBase
|
|
18
|
+
attr_accessor :error
|
|
19
|
+
|
|
20
|
+
attr_accessor :code
|
|
21
|
+
|
|
22
|
+
class EnumAttributeValidator
|
|
23
|
+
attr_reader :datatype
|
|
24
|
+
attr_reader :allowable_values
|
|
25
|
+
|
|
26
|
+
def initialize(datatype, allowable_values)
|
|
27
|
+
@allowable_values = allowable_values.map do |value|
|
|
28
|
+
case datatype.to_s
|
|
29
|
+
when /Integer/i
|
|
30
|
+
value.to_i
|
|
31
|
+
when /Float/i
|
|
32
|
+
value.to_f
|
|
33
|
+
else
|
|
34
|
+
value
|
|
35
|
+
end
|
|
36
|
+
end
|
|
37
|
+
end
|
|
38
|
+
|
|
39
|
+
def valid?(value)
|
|
40
|
+
!value || allowable_values.include?(value)
|
|
41
|
+
end
|
|
42
|
+
end
|
|
43
|
+
|
|
44
|
+
# Attribute mapping from ruby-style variable name to JSON key.
|
|
45
|
+
def self.attribute_map
|
|
46
|
+
{
|
|
47
|
+
:'error' => :'error',
|
|
48
|
+
:'code' => :'code'
|
|
49
|
+
}
|
|
50
|
+
end
|
|
51
|
+
|
|
52
|
+
# Returns attribute mapping this model knows about
|
|
53
|
+
def self.acceptable_attribute_map
|
|
54
|
+
attribute_map
|
|
55
|
+
end
|
|
56
|
+
|
|
57
|
+
# Returns all the JSON keys this model knows about
|
|
58
|
+
def self.acceptable_attributes
|
|
59
|
+
acceptable_attribute_map.values
|
|
60
|
+
end
|
|
61
|
+
|
|
62
|
+
# Attribute type mapping.
|
|
63
|
+
def self.openapi_types
|
|
64
|
+
{
|
|
65
|
+
:'error' => :'String',
|
|
66
|
+
:'code' => :'String'
|
|
67
|
+
}
|
|
68
|
+
end
|
|
69
|
+
|
|
70
|
+
# List of attributes with nullable: true
|
|
71
|
+
def self.openapi_nullable
|
|
72
|
+
Set.new([
|
|
73
|
+
])
|
|
74
|
+
end
|
|
75
|
+
|
|
76
|
+
# Initializes the object
|
|
77
|
+
# @param [Hash] attributes Model attributes in the form of hash
|
|
78
|
+
def initialize(attributes = {})
|
|
79
|
+
if (!attributes.is_a?(Hash))
|
|
80
|
+
fail ArgumentError, "The input argument (attributes) must be a hash in `Zernio::CreateInboxConversation429Response` initialize method"
|
|
81
|
+
end
|
|
82
|
+
|
|
83
|
+
# check to see if the attribute exists and convert string to symbol for hash key
|
|
84
|
+
acceptable_attribute_map = self.class.acceptable_attribute_map
|
|
85
|
+
attributes = attributes.each_with_object({}) { |(k, v), h|
|
|
86
|
+
if (!acceptable_attribute_map.key?(k.to_sym))
|
|
87
|
+
fail ArgumentError, "`#{k}` is not a valid attribute in `Zernio::CreateInboxConversation429Response`. Please check the name to make sure it's valid. List of attributes: " + acceptable_attribute_map.keys.inspect
|
|
88
|
+
end
|
|
89
|
+
h[k.to_sym] = v
|
|
90
|
+
}
|
|
91
|
+
|
|
92
|
+
if attributes.key?(:'error')
|
|
93
|
+
self.error = attributes[:'error']
|
|
94
|
+
end
|
|
95
|
+
|
|
96
|
+
if attributes.key?(:'code')
|
|
97
|
+
self.code = attributes[:'code']
|
|
98
|
+
end
|
|
99
|
+
end
|
|
100
|
+
|
|
101
|
+
# Show invalid properties with the reasons. Usually used together with valid?
|
|
102
|
+
# @return Array for valid properties with the reasons
|
|
103
|
+
def list_invalid_properties
|
|
104
|
+
warn '[DEPRECATED] the `list_invalid_properties` method is obsolete'
|
|
105
|
+
invalid_properties = Array.new
|
|
106
|
+
invalid_properties
|
|
107
|
+
end
|
|
108
|
+
|
|
109
|
+
# Check to see if the all the properties in the model are valid
|
|
110
|
+
# @return true if the model is valid
|
|
111
|
+
def valid?
|
|
112
|
+
warn '[DEPRECATED] the `valid?` method is obsolete'
|
|
113
|
+
code_validator = EnumAttributeValidator.new('String', ["rate_limited"])
|
|
114
|
+
return false unless code_validator.valid?(@code)
|
|
115
|
+
true
|
|
116
|
+
end
|
|
117
|
+
|
|
118
|
+
# Custom attribute writer method checking allowed values (enum).
|
|
119
|
+
# @param [Object] code Object to be assigned
|
|
120
|
+
def code=(code)
|
|
121
|
+
validator = EnumAttributeValidator.new('String', ["rate_limited"])
|
|
122
|
+
unless validator.valid?(code)
|
|
123
|
+
fail ArgumentError, "invalid value for \"code\", must be one of #{validator.allowable_values}."
|
|
124
|
+
end
|
|
125
|
+
@code = code
|
|
126
|
+
end
|
|
127
|
+
|
|
128
|
+
# Checks equality by comparing each attribute.
|
|
129
|
+
# @param [Object] Object to be compared
|
|
130
|
+
def ==(o)
|
|
131
|
+
return true if self.equal?(o)
|
|
132
|
+
self.class == o.class &&
|
|
133
|
+
error == o.error &&
|
|
134
|
+
code == o.code
|
|
135
|
+
end
|
|
136
|
+
|
|
137
|
+
# @see the `==` method
|
|
138
|
+
# @param [Object] Object to be compared
|
|
139
|
+
def eql?(o)
|
|
140
|
+
self == o
|
|
141
|
+
end
|
|
142
|
+
|
|
143
|
+
# Calculates hash code according to all attributes.
|
|
144
|
+
# @return [Integer] Hash code
|
|
145
|
+
def hash
|
|
146
|
+
[error, code].hash
|
|
147
|
+
end
|
|
148
|
+
|
|
149
|
+
# Builds the object from hash
|
|
150
|
+
# @param [Hash] attributes Model attributes in the form of hash
|
|
151
|
+
# @return [Object] Returns the model itself
|
|
152
|
+
def self.build_from_hash(attributes)
|
|
153
|
+
return nil unless attributes.is_a?(Hash)
|
|
154
|
+
attributes = attributes.transform_keys(&:to_sym)
|
|
155
|
+
transformed_hash = {}
|
|
156
|
+
openapi_types.each_pair do |key, type|
|
|
157
|
+
if attributes.key?(attribute_map[key]) && attributes[attribute_map[key]].nil?
|
|
158
|
+
transformed_hash["#{key}"] = nil
|
|
159
|
+
elsif type =~ /\AArray<(.*)>/i
|
|
160
|
+
# check to ensure the input is an array given that the attribute
|
|
161
|
+
# is documented as an array but the input is not
|
|
162
|
+
if attributes[attribute_map[key]].is_a?(Array)
|
|
163
|
+
transformed_hash["#{key}"] = attributes[attribute_map[key]].map { |v| _deserialize($1, v) }
|
|
164
|
+
end
|
|
165
|
+
elsif !attributes[attribute_map[key]].nil?
|
|
166
|
+
transformed_hash["#{key}"] = _deserialize(type, attributes[attribute_map[key]])
|
|
167
|
+
end
|
|
168
|
+
end
|
|
169
|
+
new(transformed_hash)
|
|
170
|
+
end
|
|
171
|
+
|
|
172
|
+
# Returns the object in the form of hash
|
|
173
|
+
# @return [Hash] Returns the object in the form of hash
|
|
174
|
+
def to_hash
|
|
175
|
+
hash = {}
|
|
176
|
+
self.class.attribute_map.each_pair do |attr, param|
|
|
177
|
+
value = self.send(attr)
|
|
178
|
+
if value.nil?
|
|
179
|
+
is_nullable = self.class.openapi_nullable.include?(attr)
|
|
180
|
+
next if !is_nullable || (is_nullable && !instance_variable_defined?(:"@#{attr}"))
|
|
181
|
+
end
|
|
182
|
+
|
|
183
|
+
hash[param] = _to_hash(value)
|
|
184
|
+
end
|
|
185
|
+
hash
|
|
186
|
+
end
|
|
187
|
+
|
|
188
|
+
end
|
|
189
|
+
|
|
190
|
+
end
|
|
@@ -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;
|
|
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
|
data/lib/zernio-sdk/version.rb
CHANGED
data/lib/zernio-sdk.rb
CHANGED
|
@@ -246,7 +246,9 @@ require 'zernio-sdk/models/create_high_demand_period_request'
|
|
|
246
246
|
require 'zernio-sdk/models/create_inbox_conversation201_response'
|
|
247
247
|
require 'zernio-sdk/models/create_inbox_conversation201_response_data'
|
|
248
248
|
require 'zernio-sdk/models/create_inbox_conversation400_response'
|
|
249
|
+
require 'zernio-sdk/models/create_inbox_conversation404_response'
|
|
249
250
|
require 'zernio-sdk/models/create_inbox_conversation422_response'
|
|
251
|
+
require 'zernio-sdk/models/create_inbox_conversation429_response'
|
|
250
252
|
require 'zernio-sdk/models/create_inbox_conversation_request'
|
|
251
253
|
require 'zernio-sdk/models/create_inbox_conversation_request_header_media'
|
|
252
254
|
require 'zernio-sdk/models/create_invite_token201_response'
|
data/openapi.yaml
CHANGED
|
@@ -15111,7 +15111,10 @@ paths:
|
|
|
15111
15111
|
summary: Edit published post
|
|
15112
15112
|
description: |
|
|
15113
15113
|
Edit the text of an already-published post. Supported on X (Twitter), Discord,
|
|
15114
|
-
Facebook,
|
|
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:
|
|
15115
15118
|
|
|
15116
15119
|
**X (Twitter)**
|
|
15117
15120
|
- Connected X account must have an active X Premium subscription
|
|
@@ -15136,6 +15139,49 @@ paths:
|
|
|
15136
15139
|
- Body only. Reddit exposes no API to edit a post title, ever
|
|
15137
15140
|
- The post ID is unchanged
|
|
15138
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
|
+
|
|
15139
15185
|
Media edits are not supported on any platform. The post record in Zernio is updated
|
|
15140
15186
|
with the new content and an edit-history entry.
|
|
15141
15187
|
parameters:
|
|
@@ -15154,10 +15200,15 @@ paths:
|
|
|
15154
15200
|
platform:
|
|
15155
15201
|
type: string
|
|
15156
15202
|
description: The platform to edit the post on.
|
|
15157
|
-
enum: [twitter, discord, facebook, reddit]
|
|
15203
|
+
enum: [twitter, discord, facebook, reddit, linkedin, telegram, pinterest, googlebusiness, youtube, slack]
|
|
15158
15204
|
content:
|
|
15159
15205
|
type: string
|
|
15160
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.
|
|
15161
15212
|
example:
|
|
15162
15213
|
platform: "facebook"
|
|
15163
15214
|
content: "Updated post text with corrected information"
|
|
@@ -15173,8 +15224,8 @@ paths:
|
|
|
15173
15224
|
id:
|
|
15174
15225
|
type: string
|
|
15175
15226
|
description: >
|
|
15176
|
-
The platform post ID after the edit. X assigns a new ID;
|
|
15177
|
-
|
|
15227
|
+
The platform post ID after the edit. X assigns a new ID; every other
|
|
15228
|
+
platform returns the original ID unchanged.
|
|
15178
15229
|
url: { type: string, format: uri, description: URL of the edited post }
|
|
15179
15230
|
message: { type: string }
|
|
15180
15231
|
example:
|
|
@@ -15186,8 +15237,11 @@ paths:
|
|
|
15186
15237
|
description: >
|
|
15187
15238
|
Invalid request: platform not supported, post not published, edit window expired,
|
|
15188
15239
|
not X Premium, or missing content. Also returned when the platform rejects the edit
|
|
15189
|
-
with a 4xx, which covers a Reddit link post (no editable body)
|
|
15190
|
-
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.
|
|
15191
15245
|
'401': { $ref: '#/components/responses/Unauthorized' }
|
|
15192
15246
|
'403':
|
|
15193
15247
|
description: Forbidden
|
|
@@ -25281,9 +25335,16 @@ paths:
|
|
|
25281
25335
|
'403':
|
|
25282
25336
|
description: Inbox addon required or profile limit reached
|
|
25283
25337
|
'404':
|
|
25284
|
-
description: Account or recipient user not found
|
|
25338
|
+
description: 'Account or recipient user not found (Reddit: PARTICIPANT_NOT_FOUND when the u/username does not exist)'
|
|
25339
|
+
content:
|
|
25340
|
+
application/json:
|
|
25341
|
+
schema:
|
|
25342
|
+
type: object
|
|
25343
|
+
properties:
|
|
25344
|
+
error: { type: string }
|
|
25345
|
+
code: { type: string, enum: [account_not_found, PARTICIPANT_NOT_FOUND] }
|
|
25285
25346
|
'422':
|
|
25286
|
-
description: Recipient does not accept DMs from this account
|
|
25347
|
+
description: 'Recipient does not accept DMs from this account (X/Twitter), or does not accept private messages from you (Reddit)'
|
|
25287
25348
|
content:
|
|
25288
25349
|
application/json:
|
|
25289
25350
|
schema:
|
|
@@ -25292,7 +25353,14 @@ paths:
|
|
|
25292
25353
|
error: { type: string }
|
|
25293
25354
|
code: { type: string, enum: [DM_NOT_ALLOWED] }
|
|
25294
25355
|
'429':
|
|
25295
|
-
description: X API rate limit exceeded
|
|
25356
|
+
description: 'X API rate limit exceeded, or Reddit rate limit reached for this account'
|
|
25357
|
+
content:
|
|
25358
|
+
application/json:
|
|
25359
|
+
schema:
|
|
25360
|
+
type: object
|
|
25361
|
+
properties:
|
|
25362
|
+
error: { type: string }
|
|
25363
|
+
code: { type: string, enum: [rate_limited] }
|
|
25296
25364
|
/v1/inbox/conversations/search:
|
|
25297
25365
|
get:
|
|
25298
25366
|
x-resource-group: "messages"
|
data/spec/api/posts_api_spec.rb
CHANGED
|
@@ -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
|
|
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 `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.
|
|
76
76
|
# @param post_id
|
|
77
77
|
# @param edit_post_request
|
|
78
78
|
# @param [Hash] opts the optional parameters
|
|
@@ -0,0 +1,46 @@
|
|
|
1
|
+
=begin
|
|
2
|
+
#Zernio API
|
|
3
|
+
|
|
4
|
+
#API reference for Zernio. Authenticate with a Bearer API key. Base URL: https://zernio.com/api
|
|
5
|
+
|
|
6
|
+
The version of the OpenAPI document: 1.0.4
|
|
7
|
+
Contact: support@zernio.com
|
|
8
|
+
Generated by: https://openapi-generator.tech
|
|
9
|
+
Generator version: 7.19.0
|
|
10
|
+
|
|
11
|
+
=end
|
|
12
|
+
|
|
13
|
+
require 'spec_helper'
|
|
14
|
+
require 'json'
|
|
15
|
+
require 'date'
|
|
16
|
+
|
|
17
|
+
# Unit tests for Zernio::CreateInboxConversation404Response
|
|
18
|
+
# Automatically generated by openapi-generator (https://openapi-generator.tech)
|
|
19
|
+
# Please update as you see appropriate
|
|
20
|
+
describe Zernio::CreateInboxConversation404Response do
|
|
21
|
+
#let(:instance) { Zernio::CreateInboxConversation404Response.new }
|
|
22
|
+
|
|
23
|
+
describe 'test an instance of CreateInboxConversation404Response' do
|
|
24
|
+
it 'should create an instance of CreateInboxConversation404Response' do
|
|
25
|
+
# uncomment below to test the instance creation
|
|
26
|
+
#expect(instance).to be_instance_of(Zernio::CreateInboxConversation404Response)
|
|
27
|
+
end
|
|
28
|
+
end
|
|
29
|
+
|
|
30
|
+
describe 'test attribute "error"' do
|
|
31
|
+
it 'should work' do
|
|
32
|
+
# assertion here. ref: https://rspec.info/features/3-12/rspec-expectations/built-in-matchers/
|
|
33
|
+
end
|
|
34
|
+
end
|
|
35
|
+
|
|
36
|
+
describe 'test attribute "code"' do
|
|
37
|
+
it 'should work' do
|
|
38
|
+
# assertion here. ref: https://rspec.info/features/3-12/rspec-expectations/built-in-matchers/
|
|
39
|
+
# validator = Petstore::EnumTest::EnumAttributeValidator.new('String', ["account_not_found", "PARTICIPANT_NOT_FOUND"])
|
|
40
|
+
# validator.allowable_values.each do |value|
|
|
41
|
+
# expect { instance.code = value }.not_to raise_error
|
|
42
|
+
# end
|
|
43
|
+
end
|
|
44
|
+
end
|
|
45
|
+
|
|
46
|
+
end
|
|
@@ -0,0 +1,46 @@
|
|
|
1
|
+
=begin
|
|
2
|
+
#Zernio API
|
|
3
|
+
|
|
4
|
+
#API reference for Zernio. Authenticate with a Bearer API key. Base URL: https://zernio.com/api
|
|
5
|
+
|
|
6
|
+
The version of the OpenAPI document: 1.0.4
|
|
7
|
+
Contact: support@zernio.com
|
|
8
|
+
Generated by: https://openapi-generator.tech
|
|
9
|
+
Generator version: 7.19.0
|
|
10
|
+
|
|
11
|
+
=end
|
|
12
|
+
|
|
13
|
+
require 'spec_helper'
|
|
14
|
+
require 'json'
|
|
15
|
+
require 'date'
|
|
16
|
+
|
|
17
|
+
# Unit tests for Zernio::CreateInboxConversation429Response
|
|
18
|
+
# Automatically generated by openapi-generator (https://openapi-generator.tech)
|
|
19
|
+
# Please update as you see appropriate
|
|
20
|
+
describe Zernio::CreateInboxConversation429Response do
|
|
21
|
+
#let(:instance) { Zernio::CreateInboxConversation429Response.new }
|
|
22
|
+
|
|
23
|
+
describe 'test an instance of CreateInboxConversation429Response' do
|
|
24
|
+
it 'should create an instance of CreateInboxConversation429Response' do
|
|
25
|
+
# uncomment below to test the instance creation
|
|
26
|
+
#expect(instance).to be_instance_of(Zernio::CreateInboxConversation429Response)
|
|
27
|
+
end
|
|
28
|
+
end
|
|
29
|
+
|
|
30
|
+
describe 'test attribute "error"' do
|
|
31
|
+
it 'should work' do
|
|
32
|
+
# assertion here. ref: https://rspec.info/features/3-12/rspec-expectations/built-in-matchers/
|
|
33
|
+
end
|
|
34
|
+
end
|
|
35
|
+
|
|
36
|
+
describe 'test attribute "code"' do
|
|
37
|
+
it 'should work' do
|
|
38
|
+
# assertion here. ref: https://rspec.info/features/3-12/rspec-expectations/built-in-matchers/
|
|
39
|
+
# validator = Petstore::EnumTest::EnumAttributeValidator.new('String', ["rate_limited"])
|
|
40
|
+
# validator.allowable_values.each do |value|
|
|
41
|
+
# expect { instance.code = value }.not_to raise_error
|
|
42
|
+
# end
|
|
43
|
+
end
|
|
44
|
+
end
|
|
45
|
+
|
|
46
|
+
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
|
|
Binary file
|
metadata
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
|
2
2
|
name: late-sdk
|
|
3
3
|
version: !ruby/object:Gem::Version
|
|
4
|
-
version: 0.0.
|
|
4
|
+
version: 0.0.723
|
|
5
5
|
platform: ruby
|
|
6
6
|
authors:
|
|
7
7
|
- OpenAPI-Generator
|
|
@@ -311,7 +311,9 @@ files:
|
|
|
311
311
|
- docs/CreateInboxConversation201Response.md
|
|
312
312
|
- docs/CreateInboxConversation201ResponseData.md
|
|
313
313
|
- docs/CreateInboxConversation400Response.md
|
|
314
|
+
- docs/CreateInboxConversation404Response.md
|
|
314
315
|
- docs/CreateInboxConversation422Response.md
|
|
316
|
+
- docs/CreateInboxConversation429Response.md
|
|
315
317
|
- docs/CreateInboxConversationRequest.md
|
|
316
318
|
- docs/CreateInboxConversationRequestHeaderMedia.md
|
|
317
319
|
- docs/CreateInviteToken201Response.md
|
|
@@ -2113,7 +2115,9 @@ files:
|
|
|
2113
2115
|
- lib/zernio-sdk/models/create_inbox_conversation201_response.rb
|
|
2114
2116
|
- lib/zernio-sdk/models/create_inbox_conversation201_response_data.rb
|
|
2115
2117
|
- lib/zernio-sdk/models/create_inbox_conversation400_response.rb
|
|
2118
|
+
- lib/zernio-sdk/models/create_inbox_conversation404_response.rb
|
|
2116
2119
|
- lib/zernio-sdk/models/create_inbox_conversation422_response.rb
|
|
2120
|
+
- lib/zernio-sdk/models/create_inbox_conversation429_response.rb
|
|
2117
2121
|
- lib/zernio-sdk/models/create_inbox_conversation_request.rb
|
|
2118
2122
|
- lib/zernio-sdk/models/create_inbox_conversation_request_header_media.rb
|
|
2119
2123
|
- lib/zernio-sdk/models/create_invite_token201_response.rb
|
|
@@ -3863,7 +3867,9 @@ files:
|
|
|
3863
3867
|
- spec/models/create_inbox_conversation201_response_data_spec.rb
|
|
3864
3868
|
- spec/models/create_inbox_conversation201_response_spec.rb
|
|
3865
3869
|
- spec/models/create_inbox_conversation400_response_spec.rb
|
|
3870
|
+
- spec/models/create_inbox_conversation404_response_spec.rb
|
|
3866
3871
|
- spec/models/create_inbox_conversation422_response_spec.rb
|
|
3872
|
+
- spec/models/create_inbox_conversation429_response_spec.rb
|
|
3867
3873
|
- spec/models/create_inbox_conversation_request_header_media_spec.rb
|
|
3868
3874
|
- spec/models/create_inbox_conversation_request_spec.rb
|
|
3869
3875
|
- spec/models/create_invite_token201_response_spec.rb
|
|
@@ -5318,7 +5324,7 @@ files:
|
|
|
5318
5324
|
- spec/models/you_tube_video_retention_response_retention_curve_inner_spec.rb
|
|
5319
5325
|
- spec/models/you_tube_video_retention_response_spec.rb
|
|
5320
5326
|
- spec/spec_helper.rb
|
|
5321
|
-
- zernio-sdk-0.0.
|
|
5327
|
+
- zernio-sdk-0.0.723.gem
|
|
5322
5328
|
- zernio-sdk.gemspec
|
|
5323
5329
|
homepage: https://openapi-generator.tech
|
|
5324
5330
|
licenses:
|
|
@@ -6202,6 +6208,7 @@ test_files:
|
|
|
6202
6208
|
- spec/models/update_conversion_destination_request_spec.rb
|
|
6203
6209
|
- spec/models/get_whats_app_flow_json200_response_assets_inner_spec.rb
|
|
6204
6210
|
- spec/models/get_linked_in_aggregate_analytics402_response_spec.rb
|
|
6211
|
+
- spec/models/create_inbox_conversation429_response_spec.rb
|
|
6205
6212
|
- spec/models/add_conversion_associations_request_spec.rb
|
|
6206
6213
|
- spec/models/discord_platform_data_embeds_inner_footer_spec.rb
|
|
6207
6214
|
- spec/models/webhook_payload_ad_status_changed_ad_object_spec.rb
|
|
@@ -6998,6 +7005,7 @@ test_files:
|
|
|
6998
7005
|
- spec/models/list_inbox_mentions200_response_meta_spec.rb
|
|
6999
7006
|
- spec/models/post_spec.rb
|
|
7000
7007
|
- spec/models/update_whats_app_flow_request_spec.rb
|
|
7008
|
+
- spec/models/create_inbox_conversation404_response_spec.rb
|
|
7001
7009
|
- spec/models/send_conversions200_response_failures_inner_code_spec.rb
|
|
7002
7010
|
- spec/models/edit_inbox_message200_response_data_spec.rb
|
|
7003
7011
|
- spec/models/respond_to_phone_number_reviewer_request_documents_inner_spec.rb
|
data/zernio-sdk-0.0.721.gem
DELETED
|
Binary file
|