zernio-sdk 0.0.798 → 0.0.800

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: 1834c1a48a2cbebd8eca379816cc0e7541f04b3b1e9b115fdf3c03e95b9705bb
4
- data.tar.gz: c664b967b0b560f5f7fe7e96c00a9ec671e95c6e372f353beea110e7e4191f9f
3
+ metadata.gz: 3632a2284ca0396a27b285da97789e0a2611758b9f1d26580edebf20d600d05b
4
+ data.tar.gz: ced6a93a893b27fb2f4a4efb48a911eeb030ed0b1ccdc08cbc6d08d471a38ef7
5
5
  SHA512:
6
- metadata.gz: a1e660126001e4038807181301966abbd8ed5037e46e3acee587561add3c4ddf3fdf777cc53705a057f44a41fb60335624670dc18a9c38e83f96a6f8cfe78e63
7
- data.tar.gz: 498408131d02fe2fecaf956a7232c91413e1b974aee6ad65bc1a0d0de190a847c72e33763ee2a976b96436d0c36949d74a45debb565e0253fbd1e473d60e09a6
6
+ metadata.gz: 28d191a92d734f1f30d2538e0fb53e6f798e5d0b5b52ce5428ed59a6e27d7cff8502bc06db01408644f68ac267678c8c205314fe95807de3d18667a15900f1c6
7
+ data.tar.gz: b7d2e984137b6963d6ca767907cb57ddbc7b7aacdb92383fa501dd4136b836463f828d59569e1ce188e623eb0aaeba142dd53ca982d1a3fdd252d0a2b4d70e23
data/README.md CHANGED
@@ -1625,6 +1625,8 @@ Class | Method | HTTP request | Description
1625
1625
  - [Zernio::ListHighDemandPeriods200Response](docs/ListHighDemandPeriods200Response.md)
1626
1626
  - [Zernio::ListInboxComments200Response](docs/ListInboxComments200Response.md)
1627
1627
  - [Zernio::ListInboxComments200ResponseDataInner](docs/ListInboxComments200ResponseDataInner.md)
1628
+ - [Zernio::ListInboxComments200ResponseMeta](docs/ListInboxComments200ResponseMeta.md)
1629
+ - [Zernio::ListInboxComments200ResponseMetaFailedAccountsInner](docs/ListInboxComments200ResponseMetaFailedAccountsInner.md)
1628
1630
  - [Zernio::ListInboxConversationAnalytics200Response](docs/ListInboxConversationAnalytics200Response.md)
1629
1631
  - [Zernio::ListInboxConversationAnalytics200ResponseItemsInner](docs/ListInboxConversationAnalytics200ResponseItemsInner.md)
1630
1632
  - [Zernio::ListInboxConversationAnalytics200ResponsePagination](docs/ListInboxConversationAnalytics200ResponsePagination.md)
@@ -6,7 +6,7 @@
6
6
  | ---- | ---- | ----------- | ----- |
7
7
  | **data** | [**Array<ListInboxComments200ResponseDataInner>**](ListInboxComments200ResponseDataInner.md) | | [optional] |
8
8
  | **pagination** | [**ListInboxConversations200ResponsePagination**](ListInboxConversations200ResponsePagination.md) | | [optional] |
9
- | **meta** | [**ListInboxConversations200ResponseMeta**](ListInboxConversations200ResponseMeta.md) | | [optional] |
9
+ | **meta** | [**ListInboxComments200ResponseMeta**](ListInboxComments200ResponseMeta.md) | | [optional] |
10
10
 
11
11
  ## Example
12
12
 
@@ -0,0 +1,26 @@
1
+ # Zernio::ListInboxComments200ResponseMeta
2
+
3
+ ## Properties
4
+
5
+ | Name | Type | Description | Notes |
6
+ | ---- | ---- | ----------- | ----- |
7
+ | **accounts_queried** | **Integer** | | [optional] |
8
+ | **accounts_failed** | **Integer** | | [optional] |
9
+ | **failed_accounts** | [**Array<ListInboxComments200ResponseMetaFailedAccountsInner>**](ListInboxComments200ResponseMetaFailedAccountsInner.md) | | [optional] |
10
+ | **last_updated** | **Time** | | [optional] |
11
+ | **accounts_skipped** | [**Array<ListInboxConversations200ResponseMetaAccountsSkippedInner>**](ListInboxConversations200ResponseMetaAccountsSkippedInner.md) | Connected accounts that were not queried: their platform does not support this feature, or the account is not enabled for it | [optional] |
12
+
13
+ ## Example
14
+
15
+ ```ruby
16
+ require 'zernio-sdk'
17
+
18
+ instance = Zernio::ListInboxComments200ResponseMeta.new(
19
+ accounts_queried: null,
20
+ accounts_failed: null,
21
+ failed_accounts: null,
22
+ last_updated: null,
23
+ accounts_skipped: null
24
+ )
25
+ ```
26
+
@@ -0,0 +1,28 @@
1
+ # Zernio::ListInboxComments200ResponseMetaFailedAccountsInner
2
+
3
+ ## Properties
4
+
5
+ | Name | Type | Description | Notes |
6
+ | ---- | ---- | ----------- | ----- |
7
+ | **account_id** | **String** | | [optional] |
8
+ | **account_username** | **String** | | [optional] |
9
+ | **platform** | **String** | | [optional] |
10
+ | **error** | **String** | | [optional] |
11
+ | **code** | **String** | Error code if available (e.g. TOKEN_EXPIRED, or X_INBOX_NOT_ENABLED for an X account whose owner has not enabled X inbox) | [optional] |
12
+ | **retry_after** | **Integer** | Seconds to wait before retry (rate limits) | [optional] |
13
+
14
+ ## Example
15
+
16
+ ```ruby
17
+ require 'zernio-sdk'
18
+
19
+ instance = Zernio::ListInboxComments200ResponseMetaFailedAccountsInner.new(
20
+ account_id: null,
21
+ account_username: null,
22
+ platform: null,
23
+ error: null,
24
+ code: null,
25
+ retry_after: null
26
+ )
27
+ ```
28
+
@@ -15,8 +15,8 @@
15
15
  | **follows** | **Integer** | Instagram feed posts and stories only: organic accounts that started following from this post. Null on Instagram Reels and non-Reels video, where Meta does not expose this metric for the media. 0 for other platforms. | [optional] |
16
16
  | **ig_reels_avg_watch_time** | **Integer** | Instagram Reels only: average watch time per play, in milliseconds. 0 for non-Reels media and other platforms. | [optional] |
17
17
  | **ig_reels_video_view_total_time** | **Integer** | Instagram Reels only: total watch time including replays, in milliseconds. 0 for non-Reels media and other platforms. | [optional] |
18
- | **reels_skip_rate** | **Float** | Instagram Reels only: the rate of initial views that skipped the reel within its first 3 seconds, as reported by Meta. Passed through exactly as Meta reports it, with no rescaling, so do not assume a 0-1 share. Meta labels the metric estimated and in development, so it can move between syncs. 0 for non-Reels media and other platforms. When a post is published to several accounts, the aggregate is weighted by views. | [optional] |
19
- | **reposts** | **Integer** | Instagram only: reposts of the media by other users, minus deleted reposts. Available on feed posts, reels and stories. 0 for other platforms, including Threads, where reposts are counted in shares instead. | [optional] |
18
+ | **reels_skip_rate** | **Float** | Instagram Reels only: percentage (0-100) of initial views that skipped the reel within its first 3 seconds, as reported by Meta. Meta labels the metric estimated and in development, so it can move between syncs. 0 for non-Reels media and other platforms. When a post is published to several accounts, the aggregate is weighted by views. | [optional] |
19
+ | **reposts** | **Integer** | Instagram accounts connected with Facebook Login only: reposts of the media by other users, minus deleted reposts, on feed posts, reels and stories. Meta does not expose this metric for accounts connected with Instagram Login, so those always report 0. 0 for other platforms, including Threads, where reposts are counted in shares instead. | [optional] |
20
20
  | **video_duration_seconds** | **Integer** | Video length in seconds. Currently Instagram Reels only; combine with igReelsAvgWatchTime (ms) to estimate retention. Null when unknown (other platforms, non-video media, or when Instagram does not expose the media URL, e.g. reels with copyrighted audio). | [optional] |
21
21
  | **engagement_rate** | **Float** | Percentage, rounded to 2 decimals: (likes + comments + shares + saves) / (impressions or reach or views) * 100. Clicks and follows are never counted. The denominator is the FIRST of impressions, reach, views that is non-zero, so it is not the same basis on every post: a post with impressions divides by impressions, one without falls back to reach, then to views. If you need a single consistent basis (e.g. interactions / reach), compute it from the raw fields above. The engagementRate on the LinkedIn account endpoints is a different formula. | [optional] |
22
22
  | **last_updated** | **Time** | | [optional] |
@@ -38,7 +38,7 @@ instance = Zernio::PostAnalytics.new(
38
38
  follows: 0,
39
39
  ig_reels_avg_watch_time: 0,
40
40
  ig_reels_video_view_total_time: 0,
41
- reels_skip_rate: 0,
41
+ reels_skip_rate: 48.8,
42
42
  reposts: 0,
43
43
  video_duration_seconds: 30,
44
44
  engagement_rate: 6.59,
@@ -45,7 +45,7 @@ module Zernio
45
45
  {
46
46
  :'data' => :'Array<ListInboxComments200ResponseDataInner>',
47
47
  :'pagination' => :'ListInboxConversations200ResponsePagination',
48
- :'meta' => :'ListInboxConversations200ResponseMeta'
48
+ :'meta' => :'ListInboxComments200ResponseMeta'
49
49
  }
50
50
  end
51
51
 
@@ -0,0 +1,188 @@
1
+ =begin
2
+ #Zernio API
3
+
4
+ #API reference for Zernio. Authenticate with a Bearer API key. Base URL: https://zernio.com/api Versioning and deprecation: all endpoints are versioned in the URL path (current version: /v1). Breaking changes only ship in a new path version; existing versions keep working. Deprecated operations are marked 'deprecated: true' in this spec and announced in the changelog (https://zernio.com/changelog) before removal. Errors: every 4xx/5xx response is application/json with a machine-readable 'code' and a human-readable 'error' message (see the ErrorResponse schema).
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 ListInboxComments200ResponseMeta < ApiModelBase
18
+ attr_accessor :accounts_queried
19
+
20
+ attr_accessor :accounts_failed
21
+
22
+ attr_accessor :failed_accounts
23
+
24
+ attr_accessor :last_updated
25
+
26
+ # Connected accounts that were not queried: their platform does not support this feature, or the account is not enabled for it
27
+ attr_accessor :accounts_skipped
28
+
29
+ # Attribute mapping from ruby-style variable name to JSON key.
30
+ def self.attribute_map
31
+ {
32
+ :'accounts_queried' => :'accountsQueried',
33
+ :'accounts_failed' => :'accountsFailed',
34
+ :'failed_accounts' => :'failedAccounts',
35
+ :'last_updated' => :'lastUpdated',
36
+ :'accounts_skipped' => :'accountsSkipped'
37
+ }
38
+ end
39
+
40
+ # Returns attribute mapping this model knows about
41
+ def self.acceptable_attribute_map
42
+ attribute_map
43
+ end
44
+
45
+ # Returns all the JSON keys this model knows about
46
+ def self.acceptable_attributes
47
+ acceptable_attribute_map.values
48
+ end
49
+
50
+ # Attribute type mapping.
51
+ def self.openapi_types
52
+ {
53
+ :'accounts_queried' => :'Integer',
54
+ :'accounts_failed' => :'Integer',
55
+ :'failed_accounts' => :'Array<ListInboxComments200ResponseMetaFailedAccountsInner>',
56
+ :'last_updated' => :'Time',
57
+ :'accounts_skipped' => :'Array<ListInboxConversations200ResponseMetaAccountsSkippedInner>'
58
+ }
59
+ end
60
+
61
+ # List of attributes with nullable: true
62
+ def self.openapi_nullable
63
+ Set.new([
64
+ ])
65
+ end
66
+
67
+ # Initializes the object
68
+ # @param [Hash] attributes Model attributes in the form of hash
69
+ def initialize(attributes = {})
70
+ if (!attributes.is_a?(Hash))
71
+ fail ArgumentError, "The input argument (attributes) must be a hash in `Zernio::ListInboxComments200ResponseMeta` initialize method"
72
+ end
73
+
74
+ # check to see if the attribute exists and convert string to symbol for hash key
75
+ acceptable_attribute_map = self.class.acceptable_attribute_map
76
+ attributes = attributes.each_with_object({}) { |(k, v), h|
77
+ if (!acceptable_attribute_map.key?(k.to_sym))
78
+ fail ArgumentError, "`#{k}` is not a valid attribute in `Zernio::ListInboxComments200ResponseMeta`. Please check the name to make sure it's valid. List of attributes: " + acceptable_attribute_map.keys.inspect
79
+ end
80
+ h[k.to_sym] = v
81
+ }
82
+
83
+ if attributes.key?(:'accounts_queried')
84
+ self.accounts_queried = attributes[:'accounts_queried']
85
+ end
86
+
87
+ if attributes.key?(:'accounts_failed')
88
+ self.accounts_failed = attributes[:'accounts_failed']
89
+ end
90
+
91
+ if attributes.key?(:'failed_accounts')
92
+ if (value = attributes[:'failed_accounts']).is_a?(Array)
93
+ self.failed_accounts = value
94
+ end
95
+ end
96
+
97
+ if attributes.key?(:'last_updated')
98
+ self.last_updated = attributes[:'last_updated']
99
+ end
100
+
101
+ if attributes.key?(:'accounts_skipped')
102
+ if (value = attributes[:'accounts_skipped']).is_a?(Array)
103
+ self.accounts_skipped = value
104
+ end
105
+ end
106
+ end
107
+
108
+ # Show invalid properties with the reasons. Usually used together with valid?
109
+ # @return Array for valid properties with the reasons
110
+ def list_invalid_properties
111
+ warn '[DEPRECATED] the `list_invalid_properties` method is obsolete'
112
+ invalid_properties = Array.new
113
+ invalid_properties
114
+ end
115
+
116
+ # Check to see if the all the properties in the model are valid
117
+ # @return true if the model is valid
118
+ def valid?
119
+ warn '[DEPRECATED] the `valid?` method is obsolete'
120
+ true
121
+ end
122
+
123
+ # Checks equality by comparing each attribute.
124
+ # @param [Object] Object to be compared
125
+ def ==(o)
126
+ return true if self.equal?(o)
127
+ self.class == o.class &&
128
+ accounts_queried == o.accounts_queried &&
129
+ accounts_failed == o.accounts_failed &&
130
+ failed_accounts == o.failed_accounts &&
131
+ last_updated == o.last_updated &&
132
+ accounts_skipped == o.accounts_skipped
133
+ end
134
+
135
+ # @see the `==` method
136
+ # @param [Object] Object to be compared
137
+ def eql?(o)
138
+ self == o
139
+ end
140
+
141
+ # Calculates hash code according to all attributes.
142
+ # @return [Integer] Hash code
143
+ def hash
144
+ [accounts_queried, accounts_failed, failed_accounts, last_updated, accounts_skipped].hash
145
+ end
146
+
147
+ # Builds the object from hash
148
+ # @param [Hash] attributes Model attributes in the form of hash
149
+ # @return [Object] Returns the model itself
150
+ def self.build_from_hash(attributes)
151
+ return nil unless attributes.is_a?(Hash)
152
+ attributes = attributes.transform_keys(&:to_sym)
153
+ transformed_hash = {}
154
+ openapi_types.each_pair do |key, type|
155
+ if attributes.key?(attribute_map[key]) && attributes[attribute_map[key]].nil?
156
+ transformed_hash["#{key}"] = nil
157
+ elsif type =~ /\AArray<(.*)>/i
158
+ # check to ensure the input is an array given that the attribute
159
+ # is documented as an array but the input is not
160
+ if attributes[attribute_map[key]].is_a?(Array)
161
+ transformed_hash["#{key}"] = attributes[attribute_map[key]].map { |v| _deserialize($1, v) }
162
+ end
163
+ elsif !attributes[attribute_map[key]].nil?
164
+ transformed_hash["#{key}"] = _deserialize(type, attributes[attribute_map[key]])
165
+ end
166
+ end
167
+ new(transformed_hash)
168
+ end
169
+
170
+ # Returns the object in the form of hash
171
+ # @return [Hash] Returns the object in the form of hash
172
+ def to_hash
173
+ hash = {}
174
+ self.class.attribute_map.each_pair do |attr, param|
175
+ value = self.send(attr)
176
+ if value.nil?
177
+ is_nullable = self.class.openapi_nullable.include?(attr)
178
+ next if !is_nullable || (is_nullable && !instance_variable_defined?(:"@#{attr}"))
179
+ end
180
+
181
+ hash[param] = _to_hash(value)
182
+ end
183
+ hash
184
+ end
185
+
186
+ end
187
+
188
+ end
@@ -0,0 +1,197 @@
1
+ =begin
2
+ #Zernio API
3
+
4
+ #API reference for Zernio. Authenticate with a Bearer API key. Base URL: https://zernio.com/api Versioning and deprecation: all endpoints are versioned in the URL path (current version: /v1). Breaking changes only ship in a new path version; existing versions keep working. Deprecated operations are marked 'deprecated: true' in this spec and announced in the changelog (https://zernio.com/changelog) before removal. Errors: every 4xx/5xx response is application/json with a machine-readable 'code' and a human-readable 'error' message (see the ErrorResponse schema).
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 ListInboxComments200ResponseMetaFailedAccountsInner < ApiModelBase
18
+ attr_accessor :account_id
19
+
20
+ attr_accessor :account_username
21
+
22
+ attr_accessor :platform
23
+
24
+ attr_accessor :error
25
+
26
+ # Error code if available (e.g. TOKEN_EXPIRED, or X_INBOX_NOT_ENABLED for an X account whose owner has not enabled X inbox)
27
+ attr_accessor :code
28
+
29
+ # Seconds to wait before retry (rate limits)
30
+ attr_accessor :retry_after
31
+
32
+ # Attribute mapping from ruby-style variable name to JSON key.
33
+ def self.attribute_map
34
+ {
35
+ :'account_id' => :'accountId',
36
+ :'account_username' => :'accountUsername',
37
+ :'platform' => :'platform',
38
+ :'error' => :'error',
39
+ :'code' => :'code',
40
+ :'retry_after' => :'retryAfter'
41
+ }
42
+ end
43
+
44
+ # Returns attribute mapping this model knows about
45
+ def self.acceptable_attribute_map
46
+ attribute_map
47
+ end
48
+
49
+ # Returns all the JSON keys this model knows about
50
+ def self.acceptable_attributes
51
+ acceptable_attribute_map.values
52
+ end
53
+
54
+ # Attribute type mapping.
55
+ def self.openapi_types
56
+ {
57
+ :'account_id' => :'String',
58
+ :'account_username' => :'String',
59
+ :'platform' => :'String',
60
+ :'error' => :'String',
61
+ :'code' => :'String',
62
+ :'retry_after' => :'Integer'
63
+ }
64
+ end
65
+
66
+ # List of attributes with nullable: true
67
+ def self.openapi_nullable
68
+ Set.new([
69
+ :'account_username',
70
+ :'code',
71
+ :'retry_after'
72
+ ])
73
+ end
74
+
75
+ # Initializes the object
76
+ # @param [Hash] attributes Model attributes in the form of hash
77
+ def initialize(attributes = {})
78
+ if (!attributes.is_a?(Hash))
79
+ fail ArgumentError, "The input argument (attributes) must be a hash in `Zernio::ListInboxComments200ResponseMetaFailedAccountsInner` initialize method"
80
+ end
81
+
82
+ # check to see if the attribute exists and convert string to symbol for hash key
83
+ acceptable_attribute_map = self.class.acceptable_attribute_map
84
+ attributes = attributes.each_with_object({}) { |(k, v), h|
85
+ if (!acceptable_attribute_map.key?(k.to_sym))
86
+ fail ArgumentError, "`#{k}` is not a valid attribute in `Zernio::ListInboxComments200ResponseMetaFailedAccountsInner`. Please check the name to make sure it's valid. List of attributes: " + acceptable_attribute_map.keys.inspect
87
+ end
88
+ h[k.to_sym] = v
89
+ }
90
+
91
+ if attributes.key?(:'account_id')
92
+ self.account_id = attributes[:'account_id']
93
+ end
94
+
95
+ if attributes.key?(:'account_username')
96
+ self.account_username = attributes[:'account_username']
97
+ end
98
+
99
+ if attributes.key?(:'platform')
100
+ self.platform = attributes[:'platform']
101
+ end
102
+
103
+ if attributes.key?(:'error')
104
+ self.error = attributes[:'error']
105
+ end
106
+
107
+ if attributes.key?(:'code')
108
+ self.code = attributes[:'code']
109
+ end
110
+
111
+ if attributes.key?(:'retry_after')
112
+ self.retry_after = attributes[:'retry_after']
113
+ end
114
+ end
115
+
116
+ # Show invalid properties with the reasons. Usually used together with valid?
117
+ # @return Array for valid properties with the reasons
118
+ def list_invalid_properties
119
+ warn '[DEPRECATED] the `list_invalid_properties` method is obsolete'
120
+ invalid_properties = Array.new
121
+ invalid_properties
122
+ end
123
+
124
+ # Check to see if the all the properties in the model are valid
125
+ # @return true if the model is valid
126
+ def valid?
127
+ warn '[DEPRECATED] the `valid?` method is obsolete'
128
+ true
129
+ end
130
+
131
+ # Checks equality by comparing each attribute.
132
+ # @param [Object] Object to be compared
133
+ def ==(o)
134
+ return true if self.equal?(o)
135
+ self.class == o.class &&
136
+ account_id == o.account_id &&
137
+ account_username == o.account_username &&
138
+ platform == o.platform &&
139
+ error == o.error &&
140
+ code == o.code &&
141
+ retry_after == o.retry_after
142
+ end
143
+
144
+ # @see the `==` method
145
+ # @param [Object] Object to be compared
146
+ def eql?(o)
147
+ self == o
148
+ end
149
+
150
+ # Calculates hash code according to all attributes.
151
+ # @return [Integer] Hash code
152
+ def hash
153
+ [account_id, account_username, platform, error, code, retry_after].hash
154
+ end
155
+
156
+ # Builds the object from hash
157
+ # @param [Hash] attributes Model attributes in the form of hash
158
+ # @return [Object] Returns the model itself
159
+ def self.build_from_hash(attributes)
160
+ return nil unless attributes.is_a?(Hash)
161
+ attributes = attributes.transform_keys(&:to_sym)
162
+ transformed_hash = {}
163
+ openapi_types.each_pair do |key, type|
164
+ if attributes.key?(attribute_map[key]) && attributes[attribute_map[key]].nil?
165
+ transformed_hash["#{key}"] = nil
166
+ elsif type =~ /\AArray<(.*)>/i
167
+ # check to ensure the input is an array given that the attribute
168
+ # is documented as an array but the input is not
169
+ if attributes[attribute_map[key]].is_a?(Array)
170
+ transformed_hash["#{key}"] = attributes[attribute_map[key]].map { |v| _deserialize($1, v) }
171
+ end
172
+ elsif !attributes[attribute_map[key]].nil?
173
+ transformed_hash["#{key}"] = _deserialize(type, attributes[attribute_map[key]])
174
+ end
175
+ end
176
+ new(transformed_hash)
177
+ end
178
+
179
+ # Returns the object in the form of hash
180
+ # @return [Hash] Returns the object in the form of hash
181
+ def to_hash
182
+ hash = {}
183
+ self.class.attribute_map.each_pair do |attr, param|
184
+ value = self.send(attr)
185
+ if value.nil?
186
+ is_nullable = self.class.openapi_nullable.include?(attr)
187
+ next if !is_nullable || (is_nullable && !instance_variable_defined?(:"@#{attr}"))
188
+ end
189
+
190
+ hash[param] = _to_hash(value)
191
+ end
192
+ hash
193
+ end
194
+
195
+ end
196
+
197
+ end
@@ -41,10 +41,10 @@ module Zernio
41
41
  # Instagram Reels only: total watch time including replays, in milliseconds. 0 for non-Reels media and other platforms.
42
42
  attr_accessor :ig_reels_video_view_total_time
43
43
 
44
- # Instagram Reels only: the rate of initial views that skipped the reel within its first 3 seconds, as reported by Meta. Passed through exactly as Meta reports it, with no rescaling, so do not assume a 0-1 share. Meta labels the metric estimated and in development, so it can move between syncs. 0 for non-Reels media and other platforms. When a post is published to several accounts, the aggregate is weighted by views.
44
+ # Instagram Reels only: percentage (0-100) of initial views that skipped the reel within its first 3 seconds, as reported by Meta. Meta labels the metric estimated and in development, so it can move between syncs. 0 for non-Reels media and other platforms. When a post is published to several accounts, the aggregate is weighted by views.
45
45
  attr_accessor :reels_skip_rate
46
46
 
47
- # Instagram only: reposts of the media by other users, minus deleted reposts. Available on feed posts, reels and stories. 0 for other platforms, including Threads, where reposts are counted in shares instead.
47
+ # Instagram accounts connected with Facebook Login only: reposts of the media by other users, minus deleted reposts, on feed posts, reels and stories. Meta does not expose this metric for accounts connected with Instagram Login, so those always report 0. 0 for other platforms, including Threads, where reposts are counted in shares instead.
48
48
  attr_accessor :reposts
49
49
 
50
50
  # Video length in seconds. Currently Instagram Reels only; combine with igReelsAvgWatchTime (ms) to estimate retention. Null when unknown (other platforms, non-video media, or when Instagram does not expose the media URL, e.g. reels with copyrighted audio).
@@ -11,5 +11,5 @@ Generator version: 7.19.0
11
11
  =end
12
12
 
13
13
  module Zernio
14
- VERSION = '0.0.798'
14
+ VERSION = '0.0.800'
15
15
  end
data/lib/zernio-sdk.rb CHANGED
@@ -967,6 +967,8 @@ require 'zernio-sdk/models/list_google_business_place_actions200_response_place_
967
967
  require 'zernio-sdk/models/list_high_demand_periods200_response'
968
968
  require 'zernio-sdk/models/list_inbox_comments200_response'
969
969
  require 'zernio-sdk/models/list_inbox_comments200_response_data_inner'
970
+ require 'zernio-sdk/models/list_inbox_comments200_response_meta'
971
+ require 'zernio-sdk/models/list_inbox_comments200_response_meta_failed_accounts_inner'
970
972
  require 'zernio-sdk/models/list_inbox_conversation_analytics200_response'
971
973
  require 'zernio-sdk/models/list_inbox_conversation_analytics200_response_items_inner'
972
974
  require 'zernio-sdk/models/list_inbox_conversation_analytics200_response_pagination'
data/openapi.yaml CHANGED
@@ -7300,8 +7300,8 @@ components:
7300
7300
  follows: { type: [integer, "null"], example: 0, description: 'Instagram feed posts and stories only: organic accounts that started following from this post. Null on Instagram Reels and non-Reels video, where Meta does not expose this metric for the media. 0 for other platforms.' }
7301
7301
  igReelsAvgWatchTime: { type: integer, example: 0, description: 'Instagram Reels only: average watch time per play, in milliseconds. 0 for non-Reels media and other platforms.' }
7302
7302
  igReelsVideoViewTotalTime: { type: integer, example: 0, description: 'Instagram Reels only: total watch time including replays, in milliseconds. 0 for non-Reels media and other platforms.' }
7303
- reelsSkipRate: { type: number, example: 0, description: 'Instagram Reels only: the rate of initial views that skipped the reel within its first 3 seconds, as reported by Meta. Passed through exactly as Meta reports it, with no rescaling, so do not assume a 0-1 share. Meta labels the metric estimated and in development, so it can move between syncs. 0 for non-Reels media and other platforms. When a post is published to several accounts, the aggregate is weighted by views.' }
7304
- reposts: { type: integer, example: 0, description: 'Instagram only: reposts of the media by other users, minus deleted reposts. Available on feed posts, reels and stories. 0 for other platforms, including Threads, where reposts are counted in shares instead.' }
7303
+ reelsSkipRate: { type: number, example: 48.8, description: 'Instagram Reels only: percentage (0-100) of initial views that skipped the reel within its first 3 seconds, as reported by Meta. Meta labels the metric estimated and in development, so it can move between syncs. 0 for non-Reels media and other platforms. When a post is published to several accounts, the aggregate is weighted by views.' }
7304
+ reposts: { type: integer, example: 0, description: 'Instagram accounts connected with Facebook Login only: reposts of the media by other users, minus deleted reposts, on feed posts, reels and stories. Meta does not expose this metric for accounts connected with Instagram Login, so those always report 0. 0 for other platforms, including Threads, where reposts are counted in shares instead.' }
7305
7305
  videoDurationSeconds: { type: [integer, "null"], example: 30, description: 'Video length in seconds. Currently Instagram Reels only; combine with igReelsAvgWatchTime (ms) to estimate retention. Null when unknown (other platforms, non-video media, or when Instagram does not expose the media URL, e.g. reels with copyrighted audio).' }
7306
7306
  engagementRate: { type: number, example: 6.59, description: 'Percentage, rounded to 2 decimals: (likes + comments + shares + saves) / (impressions or reach or views) * 100. Clicks and follows are never counted. The denominator is the FIRST of impressions, reach, views that is non-zero, so it is not the same basis on every post: a post with impressions divides by impressions, one without falls back to reach, then to views. If you need a single consistent basis (e.g. interactions / reach), compute it from the raw fields above. The engagementRate on the LinkedIn account endpoints is a different formula.' }
7307
7307
  lastUpdated: { type: string, format: date-time }
@@ -16728,6 +16728,7 @@ paths:
16728
16728
  '400':
16729
16729
  description: 'Invalid accountId, platform does not support posts listing, or the account has no access token'
16730
16730
  '401': { $ref: '#/components/responses/Unauthorized' }
16731
+ '403': { description: 'X analytics capability not enabled for this account (code X_ANALYTICS_NOT_ENABLED)' }
16731
16732
  '404': { $ref: '#/components/responses/NotFound' }
16732
16733
  /v1/accounts/{accountId}/follow-status/{userId}:
16733
16734
  get:
@@ -28219,7 +28220,7 @@ paths:
28219
28220
  accountUsername: { type: [string, "null"] }
28220
28221
  platform: { type: string }
28221
28222
  error: { type: string }
28222
- code: { type: [string, "null"], description: Error code if available }
28223
+ code: { type: [string, "null"], description: 'Error code if available (e.g. TOKEN_EXPIRED, or X_INBOX_NOT_ENABLED for an X account whose owner has not enabled X inbox)' }
28223
28224
  retryAfter: { type: [integer, "null"], description: Seconds to wait before retry (rate limits) }
28224
28225
  lastUpdated: { type: string, format: date-time }
28225
28226
  accountsSkipped:
@@ -0,0 +1,66 @@
1
+ =begin
2
+ #Zernio API
3
+
4
+ #API reference for Zernio. Authenticate with a Bearer API key. Base URL: https://zernio.com/api Versioning and deprecation: all endpoints are versioned in the URL path (current version: /v1). Breaking changes only ship in a new path version; existing versions keep working. Deprecated operations are marked 'deprecated: true' in this spec and announced in the changelog (https://zernio.com/changelog) before removal. Errors: every 4xx/5xx response is application/json with a machine-readable 'code' and a human-readable 'error' message (see the ErrorResponse schema).
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::ListInboxComments200ResponseMetaFailedAccountsInner
18
+ # Automatically generated by openapi-generator (https://openapi-generator.tech)
19
+ # Please update as you see appropriate
20
+ describe Zernio::ListInboxComments200ResponseMetaFailedAccountsInner do
21
+ #let(:instance) { Zernio::ListInboxComments200ResponseMetaFailedAccountsInner.new }
22
+
23
+ describe 'test an instance of ListInboxComments200ResponseMetaFailedAccountsInner' do
24
+ it 'should create an instance of ListInboxComments200ResponseMetaFailedAccountsInner' do
25
+ # uncomment below to test the instance creation
26
+ #expect(instance).to be_instance_of(Zernio::ListInboxComments200ResponseMetaFailedAccountsInner)
27
+ end
28
+ end
29
+
30
+ describe 'test attribute "account_id"' 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 "account_username"' 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
+
42
+ describe 'test attribute "platform"' do
43
+ it 'should work' do
44
+ # assertion here. ref: https://rspec.info/features/3-12/rspec-expectations/built-in-matchers/
45
+ end
46
+ end
47
+
48
+ describe 'test attribute "error"' do
49
+ it 'should work' do
50
+ # assertion here. ref: https://rspec.info/features/3-12/rspec-expectations/built-in-matchers/
51
+ end
52
+ end
53
+
54
+ describe 'test attribute "code"' do
55
+ it 'should work' do
56
+ # assertion here. ref: https://rspec.info/features/3-12/rspec-expectations/built-in-matchers/
57
+ end
58
+ end
59
+
60
+ describe 'test attribute "retry_after"' do
61
+ it 'should work' do
62
+ # assertion here. ref: https://rspec.info/features/3-12/rspec-expectations/built-in-matchers/
63
+ end
64
+ end
65
+
66
+ end
@@ -0,0 +1,60 @@
1
+ =begin
2
+ #Zernio API
3
+
4
+ #API reference for Zernio. Authenticate with a Bearer API key. Base URL: https://zernio.com/api Versioning and deprecation: all endpoints are versioned in the URL path (current version: /v1). Breaking changes only ship in a new path version; existing versions keep working. Deprecated operations are marked 'deprecated: true' in this spec and announced in the changelog (https://zernio.com/changelog) before removal. Errors: every 4xx/5xx response is application/json with a machine-readable 'code' and a human-readable 'error' message (see the ErrorResponse schema).
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::ListInboxComments200ResponseMeta
18
+ # Automatically generated by openapi-generator (https://openapi-generator.tech)
19
+ # Please update as you see appropriate
20
+ describe Zernio::ListInboxComments200ResponseMeta do
21
+ #let(:instance) { Zernio::ListInboxComments200ResponseMeta.new }
22
+
23
+ describe 'test an instance of ListInboxComments200ResponseMeta' do
24
+ it 'should create an instance of ListInboxComments200ResponseMeta' do
25
+ # uncomment below to test the instance creation
26
+ #expect(instance).to be_instance_of(Zernio::ListInboxComments200ResponseMeta)
27
+ end
28
+ end
29
+
30
+ describe 'test attribute "accounts_queried"' 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 "accounts_failed"' 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
+
42
+ describe 'test attribute "failed_accounts"' do
43
+ it 'should work' do
44
+ # assertion here. ref: https://rspec.info/features/3-12/rspec-expectations/built-in-matchers/
45
+ end
46
+ end
47
+
48
+ describe 'test attribute "last_updated"' do
49
+ it 'should work' do
50
+ # assertion here. ref: https://rspec.info/features/3-12/rspec-expectations/built-in-matchers/
51
+ end
52
+ end
53
+
54
+ describe 'test attribute "accounts_skipped"' do
55
+ it 'should work' do
56
+ # assertion here. ref: https://rspec.info/features/3-12/rspec-expectations/built-in-matchers/
57
+ end
58
+ end
59
+
60
+ end
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: zernio-sdk
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.0.798
4
+ version: 0.0.800
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-29 00:00:00.000000000 Z
11
+ date: 2026-08-31 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: typhoeus
@@ -1052,6 +1052,8 @@ files:
1052
1052
  - docs/ListHighDemandPeriods200Response.md
1053
1053
  - docs/ListInboxComments200Response.md
1054
1054
  - docs/ListInboxComments200ResponseDataInner.md
1055
+ - docs/ListInboxComments200ResponseMeta.md
1056
+ - docs/ListInboxComments200ResponseMetaFailedAccountsInner.md
1055
1057
  - docs/ListInboxConversationAnalytics200Response.md
1056
1058
  - docs/ListInboxConversationAnalytics200ResponseItemsInner.md
1057
1059
  - docs/ListInboxConversationAnalytics200ResponsePagination.md
@@ -2913,6 +2915,8 @@ files:
2913
2915
  - lib/zernio-sdk/models/list_high_demand_periods200_response.rb
2914
2916
  - lib/zernio-sdk/models/list_inbox_comments200_response.rb
2915
2917
  - lib/zernio-sdk/models/list_inbox_comments200_response_data_inner.rb
2918
+ - lib/zernio-sdk/models/list_inbox_comments200_response_meta.rb
2919
+ - lib/zernio-sdk/models/list_inbox_comments200_response_meta_failed_accounts_inner.rb
2916
2920
  - lib/zernio-sdk/models/list_inbox_conversation_analytics200_response.rb
2917
2921
  - lib/zernio-sdk/models/list_inbox_conversation_analytics200_response_items_inner.rb
2918
2922
  - lib/zernio-sdk/models/list_inbox_conversation_analytics200_response_pagination.rb
@@ -4737,6 +4741,8 @@ files:
4737
4741
  - spec/models/list_google_business_place_actions200_response_spec.rb
4738
4742
  - spec/models/list_high_demand_periods200_response_spec.rb
4739
4743
  - spec/models/list_inbox_comments200_response_data_inner_spec.rb
4744
+ - spec/models/list_inbox_comments200_response_meta_failed_accounts_inner_spec.rb
4745
+ - spec/models/list_inbox_comments200_response_meta_spec.rb
4740
4746
  - spec/models/list_inbox_comments200_response_spec.rb
4741
4747
  - spec/models/list_inbox_conversation_analytics200_response_items_inner_spec.rb
4742
4748
  - spec/models/list_inbox_conversation_analytics200_response_pagination_spec.rb
@@ -6057,6 +6063,7 @@ test_files:
6057
6063
  - spec/models/reply_to_inbox_post200_response_spec.rb
6058
6064
  - spec/models/create_call_ad_request_spec.rb
6059
6065
  - spec/models/list_queue_slots200_response_one_of_spec.rb
6066
+ - spec/models/list_inbox_comments200_response_meta_spec.rb
6060
6067
  - spec/models/generate_ad_previews200_response_spec.rb
6061
6068
  - spec/models/inline_object2_spec.rb
6062
6069
  - spec/models/recycling_state_spec.rb
@@ -7325,6 +7332,7 @@ test_files:
7325
7332
  - spec/models/get_google_business_performance200_response_metrics_value_spec.rb
7326
7333
  - spec/models/get_inbox_conversation_messages200_response_messages_inner_delivery_error_spec.rb
7327
7334
  - spec/models/get_google_business_search_keywords200_response_spec.rb
7335
+ - spec/models/list_inbox_comments200_response_meta_failed_accounts_inner_spec.rb
7328
7336
  - spec/models/remediate_phone_number200_response_spec.rb
7329
7337
  - spec/models/list_phone_number_countries200_response_spec.rb
7330
7338
  - spec/models/get_linked_in_supply_forecast200_response_forecast_inner_time_series_inner_ad_forecast_range_spec.rb