late-sdk 0.0.901 → 0.0.903
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/WebhookEventsApi.md +2 -2
- data/docs/WebhookPayloadMessageMetadata.md +2 -0
- data/docs/WebhookPayloadMessageMetadataLocation.md +24 -0
- data/docs/WebhookPayloadMessageSentMetadata.md +4 -0
- data/docs/WebhookPayloadMessageSentMetadataLocation.md +24 -0
- data/lib/zernio-sdk/api/webhook_events_api.rb +4 -4
- data/lib/zernio-sdk/models/webhook_payload_message_metadata.rb +10 -1
- data/lib/zernio-sdk/models/webhook_payload_message_metadata_location.rb +179 -0
- data/lib/zernio-sdk/models/webhook_payload_message_sent_metadata.rb +23 -2
- data/lib/zernio-sdk/models/webhook_payload_message_sent_metadata_location.rb +179 -0
- data/lib/zernio-sdk/models/webhook_payload_post_platform.rb +1 -1
- data/lib/zernio-sdk/version.rb +1 -1
- data/lib/zernio-sdk.rb +2 -0
- data/openapi.yaml +55 -10
- data/spec/models/webhook_payload_message_metadata_location_spec.rb +54 -0
- data/spec/models/webhook_payload_message_metadata_spec.rb +6 -0
- data/spec/models/webhook_payload_message_sent_metadata_location_spec.rb +54 -0
- data/spec/models/webhook_payload_message_sent_metadata_spec.rb +12 -0
- data/zernio-sdk-0.0.903.gem +0 -0
- metadata +11 -3
- data/zernio-sdk-0.0.901.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: 6a44c184ab32f70baa94e8c71c5c0624a8c85f15950070dcaf774d6405f2221f
|
|
4
|
+
data.tar.gz: becc8336d74f782fcaa2c255d7b2c8ee9c7cc1089289eeed7a2582afe10cf69f
|
|
5
5
|
SHA512:
|
|
6
|
-
metadata.gz:
|
|
7
|
-
data.tar.gz:
|
|
6
|
+
metadata.gz: 658132e4ecf5f3fb0b3030be63856e6f203fd1b2fab6f520600a8a8e19b1e16f6d08466cc94bbde9d184a8a4f973904f9ca41453e873efd47faeac0983bdb9e4
|
|
7
|
+
data.tar.gz: 52a072a538b01ac58a4cc0aba3d5be383be2ebe3c99e9cb7f216c68ee4772ddadc81c2bb567be596772fc817ad7f8323739d3e48a7506cdb20854980236b5018
|
data/README.md
CHANGED
|
@@ -2681,6 +2681,7 @@ Class | Method | HTTP request | Description
|
|
|
2681
2681
|
- [Zernio::WebhookPayloadMessageMessageSender](docs/WebhookPayloadMessageMessageSender.md)
|
|
2682
2682
|
- [Zernio::WebhookPayloadMessageMessageSenderInstagramProfile](docs/WebhookPayloadMessageMessageSenderInstagramProfile.md)
|
|
2683
2683
|
- [Zernio::WebhookPayloadMessageMetadata](docs/WebhookPayloadMessageMetadata.md)
|
|
2684
|
+
- [Zernio::WebhookPayloadMessageMetadataLocation](docs/WebhookPayloadMessageMetadataLocation.md)
|
|
2684
2685
|
- [Zernio::WebhookPayloadMessageMetadataOrder](docs/WebhookPayloadMessageMetadataOrder.md)
|
|
2685
2686
|
- [Zernio::WebhookPayloadMessageMetadataOrderProductItemsInner](docs/WebhookPayloadMessageMetadataOrderProductItemsInner.md)
|
|
2686
2687
|
- [Zernio::WebhookPayloadMessageMetadataQuotedMessage](docs/WebhookPayloadMessageMetadataQuotedMessage.md)
|
|
@@ -2694,6 +2695,7 @@ Class | Method | HTTP request | Description
|
|
|
2694
2695
|
- [Zernio::WebhookPayloadMessageSentMessageAttachmentsInner](docs/WebhookPayloadMessageSentMessageAttachmentsInner.md)
|
|
2695
2696
|
- [Zernio::WebhookPayloadMessageSentMessageSender](docs/WebhookPayloadMessageSentMessageSender.md)
|
|
2696
2697
|
- [Zernio::WebhookPayloadMessageSentMetadata](docs/WebhookPayloadMessageSentMetadata.md)
|
|
2698
|
+
- [Zernio::WebhookPayloadMessageSentMetadataLocation](docs/WebhookPayloadMessageSentMetadataLocation.md)
|
|
2697
2699
|
- [Zernio::WebhookPayloadPhoneNumberStockAvailable](docs/WebhookPayloadPhoneNumberStockAvailable.md)
|
|
2698
2700
|
- [Zernio::WebhookPayloadPhoneNumberStockAvailableStock](docs/WebhookPayloadPhoneNumberStockAvailableStock.md)
|
|
2699
2701
|
- [Zernio::WebhookPayloadPhoneNumberStockAvailableStockTypesInner](docs/WebhookPayloadPhoneNumberStockAvailableStockTypesInner.md)
|
data/docs/WebhookEventsApi.md
CHANGED
|
@@ -1969,7 +1969,7 @@ nil (empty response body)
|
|
|
1969
1969
|
|
|
1970
1970
|
Post platform failed event
|
|
1971
1971
|
|
|
1972
|
-
Fired once per platform target inside a post as that platform fails permanently. Temporary/retryable failures do NOT fire this event, only permanent ones do, so retry loops stay quiet. The envelope event (`post.failed` / `post.partial`) fires separately AFTER all platforms have terminated.
|
|
1972
|
+
Fired once per platform target inside a post as that platform fails permanently. Temporary/retryable failures do NOT fire this event, only permanent ones do, so retry loops stay quiet. The envelope event (`post.failed` / `post.partial`) fires separately AFTER all platforms have terminated. Can also fire a second time for a target that already emitted `post.platform.published`, if background reconciliation later discovers the publish never actually completed.
|
|
1973
1973
|
|
|
1974
1974
|
### Examples
|
|
1975
1975
|
|
|
@@ -2037,7 +2037,7 @@ nil (empty response body)
|
|
|
2037
2037
|
|
|
2038
2038
|
Post platform published event
|
|
2039
2039
|
|
|
2040
|
-
Fired once per platform target inside a post as that platform finishes publishing successfully. Does NOT wait for the post-level rollup, so consumers building incremental UIs get notified immediately, even when other platforms on the same post are still processing. The envelope event (`post.published` / `post.partial`) fires separately AFTER all platforms have terminated.
|
|
2040
|
+
Fired once per platform target inside a post as that platform finishes publishing successfully. Does NOT wait for the post-level rollup, so consumers building incremental UIs get notified immediately, even when other platforms on the same post are still processing. The envelope event (`post.published` / `post.partial`) fires separately AFTER all platforms have terminated. A target that later fails background reconciliation (e.g. a Facebook video Meta accepted but never actually published) emits `post.platform.failed` for the same target afterward.
|
|
2041
2041
|
|
|
2042
2042
|
### Examples
|
|
2043
2043
|
|
|
@@ -19,6 +19,7 @@
|
|
|
19
19
|
| **nfm_reply_name** | **String** | WhatsApp only. `nfm_reply.name` as Meta sent it, e.g. `flow` or `address_message`. Address submissions share the `nfm_reply` envelope with Flow submissions and are otherwise indistinguishable in `flowResponseData`; use this field to tell them apart. | [optional] |
|
|
20
20
|
| **order** | [**WebhookPayloadMessageMetadataOrder**](WebhookPayloadMessageMetadataOrder.md) | | [optional] |
|
|
21
21
|
| **referred_product** | [**WebhookPayloadMessageMetadataReferredProduct**](WebhookPayloadMessageMetadataReferredProduct.md) | | [optional] |
|
|
22
|
+
| **location** | [**WebhookPayloadMessageMetadataLocation**](WebhookPayloadMessageMetadataLocation.md) | | [optional] |
|
|
22
23
|
| **contacts** | **Array<Hash<String, Object>>** | WhatsApp only. Contact cards the user shared, forwarded verbatim from Meta. Read `contactsOrigin` before treating any number here as the sender's own. | [optional] |
|
|
23
24
|
| **contacts_origin** | **String** | WhatsApp only. How the contact card was shared. `contact_request` means the user tapped a `request_contact_info` button, so the number is their own and consented. `other` means they picked a card from their address book: it may be anyone's, and must NOT be stored as the sender's identity. Omitted when Meta sends no origin. | [optional] |
|
|
24
25
|
| **story_reply** | [**WebhookPayloadMessageMetadataStoryReply**](WebhookPayloadMessageMetadataStoryReply.md) | | [optional] |
|
|
@@ -48,6 +49,7 @@ instance = Zernio::WebhookPayloadMessageMetadata.new(
|
|
|
48
49
|
nfm_reply_name: null,
|
|
49
50
|
order: null,
|
|
50
51
|
referred_product: null,
|
|
52
|
+
location: null,
|
|
51
53
|
contacts: null,
|
|
52
54
|
contacts_origin: null,
|
|
53
55
|
story_reply: null,
|
|
@@ -0,0 +1,24 @@
|
|
|
1
|
+
# Zernio::WebhookPayloadMessageMetadataLocation
|
|
2
|
+
|
|
3
|
+
## Properties
|
|
4
|
+
|
|
5
|
+
| Name | Type | Description | Notes |
|
|
6
|
+
| ---- | ---- | ----------- | ----- |
|
|
7
|
+
| **latitude** | **Float** | Latitude in decimal degrees. | [optional] |
|
|
8
|
+
| **longitude** | **Float** | Longitude in decimal degrees. | [optional] |
|
|
9
|
+
| **name** | **String** | Location name, when the user shared a named place. | [optional] |
|
|
10
|
+
| **address** | **String** | Street address, when Meta sends one. | [optional] |
|
|
11
|
+
|
|
12
|
+
## Example
|
|
13
|
+
|
|
14
|
+
```ruby
|
|
15
|
+
require 'zernio-sdk'
|
|
16
|
+
|
|
17
|
+
instance = Zernio::WebhookPayloadMessageMetadataLocation.new(
|
|
18
|
+
latitude: null,
|
|
19
|
+
longitude: null,
|
|
20
|
+
name: null,
|
|
21
|
+
address: null
|
|
22
|
+
)
|
|
23
|
+
```
|
|
24
|
+
|
|
@@ -4,6 +4,8 @@
|
|
|
4
4
|
|
|
5
5
|
| Name | Type | Description | Notes |
|
|
6
6
|
| ---- | ---- | ----------- | ----- |
|
|
7
|
+
| **location** | [**WebhookPayloadMessageSentMetadataLocation**](WebhookPayloadMessageSentMetadataLocation.md) | | [optional] |
|
|
8
|
+
| **contacts** | **Array<Hash<String, Object>>** | WhatsApp only. The contact cards this message carries. On API sends this is the `contacts` array exactly as given to the inbox send API (`name`, `phones[].phone` / `type`, `emails[]`); on Coexistence echoes of a card shared from the WhatsApp Business app it is Meta's shape (`phones[].wa_id`, `vcard`). The message `text` is only the emoji preview (`👤 <name>`); the cards live here. | [optional] |
|
|
7
9
|
| **quoted_message_id** | **String** | `platformMessageId` of the message this send is a quote-reply to. Present when the reply was sent through Zernio with `replyTo` on the inbox send API (WhatsApp and Telegram). A WhatsApp API send fires its `message.sent` off the delivery status, and the quote reference is forwarded from the stored send there, so it arrives on the same `message.sent` as any other WhatsApp send. Not delivered on Instagram echoes. Zernio forwards `reply_to.mid` whenever Meta puts it on an echo, but on Instagram Meta does not send it, so a reply the operator quoted in the Instagram app arrives with no `quotedMessageId`. Facebook Messenger rides a separate subscription (`message_echoes`) and has not been measured, so treat it as unverified rather than supported. Absent on WhatsApp Coexistence echoes. Meta omits the quote context from `smb_message_echoes`, so a reply the operator sent from the WhatsApp Business app arrives with no `quotedMessageId` even though WhatsApp shows it as a quote-reply. Do not read the absence of this field as \"not a reply\". | [optional] |
|
|
8
10
|
| **thread_ts** | **String** | Slack only. Parent thread ts of the sent message. Pass it back as `replyTo` on the inbox send API to keep replying inside the thread. | [optional] |
|
|
9
11
|
|
|
@@ -13,6 +15,8 @@
|
|
|
13
15
|
require 'zernio-sdk'
|
|
14
16
|
|
|
15
17
|
instance = Zernio::WebhookPayloadMessageSentMetadata.new(
|
|
18
|
+
location: null,
|
|
19
|
+
contacts: null,
|
|
16
20
|
quoted_message_id: null,
|
|
17
21
|
thread_ts: null
|
|
18
22
|
)
|
|
@@ -0,0 +1,24 @@
|
|
|
1
|
+
# Zernio::WebhookPayloadMessageSentMetadataLocation
|
|
2
|
+
|
|
3
|
+
## Properties
|
|
4
|
+
|
|
5
|
+
| Name | Type | Description | Notes |
|
|
6
|
+
| ---- | ---- | ----------- | ----- |
|
|
7
|
+
| **latitude** | **Float** | Latitude in decimal degrees. | [optional] |
|
|
8
|
+
| **longitude** | **Float** | Longitude in decimal degrees. | [optional] |
|
|
9
|
+
| **name** | **String** | Location name, when one was given. | [optional] |
|
|
10
|
+
| **address** | **String** | Street address, when one was given. | [optional] |
|
|
11
|
+
|
|
12
|
+
## Example
|
|
13
|
+
|
|
14
|
+
```ruby
|
|
15
|
+
require 'zernio-sdk'
|
|
16
|
+
|
|
17
|
+
instance = Zernio::WebhookPayloadMessageSentMetadataLocation.new(
|
|
18
|
+
latitude: null,
|
|
19
|
+
longitude: null,
|
|
20
|
+
name: null,
|
|
21
|
+
address: null
|
|
22
|
+
)
|
|
23
|
+
```
|
|
24
|
+
|
|
@@ -1868,7 +1868,7 @@ module Zernio
|
|
|
1868
1868
|
end
|
|
1869
1869
|
|
|
1870
1870
|
# Post platform failed event
|
|
1871
|
-
# Fired once per platform target inside a post as that platform fails permanently. Temporary/retryable failures do NOT fire this event, only permanent ones do, so retry loops stay quiet. The envelope event (`post.failed` / `post.partial`) fires separately AFTER all platforms have terminated.
|
|
1871
|
+
# Fired once per platform target inside a post as that platform fails permanently. Temporary/retryable failures do NOT fire this event, only permanent ones do, so retry loops stay quiet. The envelope event (`post.failed` / `post.partial`) fires separately AFTER all platforms have terminated. Can also fire a second time for a target that already emitted `post.platform.published`, if background reconciliation later discovers the publish never actually completed.
|
|
1872
1872
|
# @param webhook_payload_post_platform [WebhookPayloadPostPlatform]
|
|
1873
1873
|
# @param [Hash] opts the optional parameters
|
|
1874
1874
|
# @return [nil]
|
|
@@ -1878,7 +1878,7 @@ module Zernio
|
|
|
1878
1878
|
end
|
|
1879
1879
|
|
|
1880
1880
|
# Post platform failed event
|
|
1881
|
-
# Fired once per platform target inside a post as that platform fails permanently. Temporary/retryable failures do NOT fire this event, only permanent ones do, so retry loops stay quiet. The envelope event (`post.failed` / `post.partial`) fires separately AFTER all platforms have terminated.
|
|
1881
|
+
# Fired once per platform target inside a post as that platform fails permanently. Temporary/retryable failures do NOT fire this event, only permanent ones do, so retry loops stay quiet. The envelope event (`post.failed` / `post.partial`) fires separately AFTER all platforms have terminated. Can also fire a second time for a target that already emitted `post.platform.published`, if background reconciliation later discovers the publish never actually completed.
|
|
1882
1882
|
# @param webhook_payload_post_platform [WebhookPayloadPostPlatform]
|
|
1883
1883
|
# @param [Hash] opts the optional parameters
|
|
1884
1884
|
# @return [Array<(nil, Integer, Hash)>] nil, response status code and response headers
|
|
@@ -1934,7 +1934,7 @@ module Zernio
|
|
|
1934
1934
|
end
|
|
1935
1935
|
|
|
1936
1936
|
# Post platform published event
|
|
1937
|
-
# Fired once per platform target inside a post as that platform finishes publishing successfully. Does NOT wait for the post-level rollup, so consumers building incremental UIs get notified immediately, even when other platforms on the same post are still processing. The envelope event (`post.published` / `post.partial`) fires separately AFTER all platforms have terminated.
|
|
1937
|
+
# Fired once per platform target inside a post as that platform finishes publishing successfully. Does NOT wait for the post-level rollup, so consumers building incremental UIs get notified immediately, even when other platforms on the same post are still processing. The envelope event (`post.published` / `post.partial`) fires separately AFTER all platforms have terminated. A target that later fails background reconciliation (e.g. a Facebook video Meta accepted but never actually published) emits `post.platform.failed` for the same target afterward.
|
|
1938
1938
|
# @param webhook_payload_post_platform [WebhookPayloadPostPlatform]
|
|
1939
1939
|
# @param [Hash] opts the optional parameters
|
|
1940
1940
|
# @return [nil]
|
|
@@ -1944,7 +1944,7 @@ module Zernio
|
|
|
1944
1944
|
end
|
|
1945
1945
|
|
|
1946
1946
|
# Post platform published event
|
|
1947
|
-
# Fired once per platform target inside a post as that platform finishes publishing successfully. Does NOT wait for the post-level rollup, so consumers building incremental UIs get notified immediately, even when other platforms on the same post are still processing. The envelope event (`post.published` / `post.partial`) fires separately AFTER all platforms have terminated.
|
|
1947
|
+
# Fired once per platform target inside a post as that platform finishes publishing successfully. Does NOT wait for the post-level rollup, so consumers building incremental UIs get notified immediately, even when other platforms on the same post are still processing. The envelope event (`post.published` / `post.partial`) fires separately AFTER all platforms have terminated. A target that later fails background reconciliation (e.g. a Facebook video Meta accepted but never actually published) emits `post.platform.failed` for the same target afterward.
|
|
1948
1948
|
# @param webhook_payload_post_platform [WebhookPayloadPostPlatform]
|
|
1949
1949
|
# @param [Hash] opts the optional parameters
|
|
1950
1950
|
# @return [Array<(nil, Integer, Hash)>] nil, response status code and response headers
|
|
@@ -58,6 +58,8 @@ module Zernio
|
|
|
58
58
|
|
|
59
59
|
attr_accessor :referred_product
|
|
60
60
|
|
|
61
|
+
attr_accessor :location
|
|
62
|
+
|
|
61
63
|
# WhatsApp only. Contact cards the user shared, forwarded verbatim from Meta. Read `contactsOrigin` before treating any number here as the sender's own.
|
|
62
64
|
attr_accessor :contacts
|
|
63
65
|
|
|
@@ -116,6 +118,7 @@ module Zernio
|
|
|
116
118
|
:'nfm_reply_name' => :'nfmReplyName',
|
|
117
119
|
:'order' => :'order',
|
|
118
120
|
:'referred_product' => :'referredProduct',
|
|
121
|
+
:'location' => :'location',
|
|
119
122
|
:'contacts' => :'contacts',
|
|
120
123
|
:'contacts_origin' => :'contactsOrigin',
|
|
121
124
|
:'story_reply' => :'storyReply',
|
|
@@ -154,6 +157,7 @@ module Zernio
|
|
|
154
157
|
:'nfm_reply_name' => :'String',
|
|
155
158
|
:'order' => :'WebhookPayloadMessageMetadataOrder',
|
|
156
159
|
:'referred_product' => :'WebhookPayloadMessageMetadataReferredProduct',
|
|
160
|
+
:'location' => :'WebhookPayloadMessageMetadataLocation',
|
|
157
161
|
:'contacts' => :'Array<Hash<String, Object>>',
|
|
158
162
|
:'contacts_origin' => :'String',
|
|
159
163
|
:'story_reply' => :'WebhookPayloadMessageMetadataStoryReply',
|
|
@@ -248,6 +252,10 @@ module Zernio
|
|
|
248
252
|
self.referred_product = attributes[:'referred_product']
|
|
249
253
|
end
|
|
250
254
|
|
|
255
|
+
if attributes.key?(:'location')
|
|
256
|
+
self.location = attributes[:'location']
|
|
257
|
+
end
|
|
258
|
+
|
|
251
259
|
if attributes.key?(:'contacts')
|
|
252
260
|
if (value = attributes[:'contacts']).is_a?(Array)
|
|
253
261
|
self.contacts = value
|
|
@@ -338,6 +346,7 @@ module Zernio
|
|
|
338
346
|
nfm_reply_name == o.nfm_reply_name &&
|
|
339
347
|
order == o.order &&
|
|
340
348
|
referred_product == o.referred_product &&
|
|
349
|
+
location == o.location &&
|
|
341
350
|
contacts == o.contacts &&
|
|
342
351
|
contacts_origin == o.contacts_origin &&
|
|
343
352
|
story_reply == o.story_reply &&
|
|
@@ -356,7 +365,7 @@ module Zernio
|
|
|
356
365
|
# Calculates hash code according to all attributes.
|
|
357
366
|
# @return [Integer] Hash code
|
|
358
367
|
def hash
|
|
359
|
-
[standby, quoted_message_id, quoted_message, quick_reply_payload, postback_payload, postback_title, callback_data, interactive_type, interactive_id, button_payload, flow_response_json, flow_response_data, nfm_reply_name, order, referred_product, contacts, contacts_origin, story_reply, is_story_mention, referral, unsupported, no_renderable_content].hash
|
|
368
|
+
[standby, quoted_message_id, quoted_message, quick_reply_payload, postback_payload, postback_title, callback_data, interactive_type, interactive_id, button_payload, flow_response_json, flow_response_data, nfm_reply_name, order, referred_product, location, contacts, contacts_origin, story_reply, is_story_mention, referral, unsupported, no_renderable_content].hash
|
|
360
369
|
end
|
|
361
370
|
|
|
362
371
|
# Builds the object from hash
|
|
@@ -0,0 +1,179 @@
|
|
|
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
|
+
# WhatsApp only. The location pin the user shared, forwarded verbatim from Meta. The message `text` is only the emoji preview (`📍 <name>`); the coordinates live here.
|
|
18
|
+
class WebhookPayloadMessageMetadataLocation < ApiModelBase
|
|
19
|
+
# Latitude in decimal degrees.
|
|
20
|
+
attr_accessor :latitude
|
|
21
|
+
|
|
22
|
+
# Longitude in decimal degrees.
|
|
23
|
+
attr_accessor :longitude
|
|
24
|
+
|
|
25
|
+
# Location name, when the user shared a named place.
|
|
26
|
+
attr_accessor :name
|
|
27
|
+
|
|
28
|
+
# Street address, when Meta sends one.
|
|
29
|
+
attr_accessor :address
|
|
30
|
+
|
|
31
|
+
# Attribute mapping from ruby-style variable name to JSON key.
|
|
32
|
+
def self.attribute_map
|
|
33
|
+
{
|
|
34
|
+
:'latitude' => :'latitude',
|
|
35
|
+
:'longitude' => :'longitude',
|
|
36
|
+
:'name' => :'name',
|
|
37
|
+
:'address' => :'address'
|
|
38
|
+
}
|
|
39
|
+
end
|
|
40
|
+
|
|
41
|
+
# Returns attribute mapping this model knows about
|
|
42
|
+
def self.acceptable_attribute_map
|
|
43
|
+
attribute_map
|
|
44
|
+
end
|
|
45
|
+
|
|
46
|
+
# Returns all the JSON keys this model knows about
|
|
47
|
+
def self.acceptable_attributes
|
|
48
|
+
acceptable_attribute_map.values
|
|
49
|
+
end
|
|
50
|
+
|
|
51
|
+
# Attribute type mapping.
|
|
52
|
+
def self.openapi_types
|
|
53
|
+
{
|
|
54
|
+
:'latitude' => :'Float',
|
|
55
|
+
:'longitude' => :'Float',
|
|
56
|
+
:'name' => :'String',
|
|
57
|
+
:'address' => :'String'
|
|
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::WebhookPayloadMessageMetadataLocation` 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::WebhookPayloadMessageMetadataLocation`. 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?(:'latitude')
|
|
84
|
+
self.latitude = attributes[:'latitude']
|
|
85
|
+
end
|
|
86
|
+
|
|
87
|
+
if attributes.key?(:'longitude')
|
|
88
|
+
self.longitude = attributes[:'longitude']
|
|
89
|
+
end
|
|
90
|
+
|
|
91
|
+
if attributes.key?(:'name')
|
|
92
|
+
self.name = attributes[:'name']
|
|
93
|
+
end
|
|
94
|
+
|
|
95
|
+
if attributes.key?(:'address')
|
|
96
|
+
self.address = attributes[:'address']
|
|
97
|
+
end
|
|
98
|
+
end
|
|
99
|
+
|
|
100
|
+
# Show invalid properties with the reasons. Usually used together with valid?
|
|
101
|
+
# @return Array for valid properties with the reasons
|
|
102
|
+
def list_invalid_properties
|
|
103
|
+
warn '[DEPRECATED] the `list_invalid_properties` method is obsolete'
|
|
104
|
+
invalid_properties = Array.new
|
|
105
|
+
invalid_properties
|
|
106
|
+
end
|
|
107
|
+
|
|
108
|
+
# Check to see if the all the properties in the model are valid
|
|
109
|
+
# @return true if the model is valid
|
|
110
|
+
def valid?
|
|
111
|
+
warn '[DEPRECATED] the `valid?` method is obsolete'
|
|
112
|
+
true
|
|
113
|
+
end
|
|
114
|
+
|
|
115
|
+
# Checks equality by comparing each attribute.
|
|
116
|
+
# @param [Object] Object to be compared
|
|
117
|
+
def ==(o)
|
|
118
|
+
return true if self.equal?(o)
|
|
119
|
+
self.class == o.class &&
|
|
120
|
+
latitude == o.latitude &&
|
|
121
|
+
longitude == o.longitude &&
|
|
122
|
+
name == o.name &&
|
|
123
|
+
address == o.address
|
|
124
|
+
end
|
|
125
|
+
|
|
126
|
+
# @see the `==` method
|
|
127
|
+
# @param [Object] Object to be compared
|
|
128
|
+
def eql?(o)
|
|
129
|
+
self == o
|
|
130
|
+
end
|
|
131
|
+
|
|
132
|
+
# Calculates hash code according to all attributes.
|
|
133
|
+
# @return [Integer] Hash code
|
|
134
|
+
def hash
|
|
135
|
+
[latitude, longitude, name, address].hash
|
|
136
|
+
end
|
|
137
|
+
|
|
138
|
+
# Builds the object from hash
|
|
139
|
+
# @param [Hash] attributes Model attributes in the form of hash
|
|
140
|
+
# @return [Object] Returns the model itself
|
|
141
|
+
def self.build_from_hash(attributes)
|
|
142
|
+
return nil unless attributes.is_a?(Hash)
|
|
143
|
+
attributes = attributes.transform_keys(&:to_sym)
|
|
144
|
+
transformed_hash = {}
|
|
145
|
+
openapi_types.each_pair do |key, type|
|
|
146
|
+
if attributes.key?(attribute_map[key]) && attributes[attribute_map[key]].nil?
|
|
147
|
+
transformed_hash["#{key}"] = nil
|
|
148
|
+
elsif type =~ /\AArray<(.*)>/i
|
|
149
|
+
# check to ensure the input is an array given that the attribute
|
|
150
|
+
# is documented as an array but the input is not
|
|
151
|
+
if attributes[attribute_map[key]].is_a?(Array)
|
|
152
|
+
transformed_hash["#{key}"] = attributes[attribute_map[key]].map { |v| _deserialize($1, v) }
|
|
153
|
+
end
|
|
154
|
+
elsif !attributes[attribute_map[key]].nil?
|
|
155
|
+
transformed_hash["#{key}"] = _deserialize(type, attributes[attribute_map[key]])
|
|
156
|
+
end
|
|
157
|
+
end
|
|
158
|
+
new(transformed_hash)
|
|
159
|
+
end
|
|
160
|
+
|
|
161
|
+
# Returns the object in the form of hash
|
|
162
|
+
# @return [Hash] Returns the object in the form of hash
|
|
163
|
+
def to_hash
|
|
164
|
+
hash = {}
|
|
165
|
+
self.class.attribute_map.each_pair do |attr, param|
|
|
166
|
+
value = self.send(attr)
|
|
167
|
+
if value.nil?
|
|
168
|
+
is_nullable = self.class.openapi_nullable.include?(attr)
|
|
169
|
+
next if !is_nullable || (is_nullable && !instance_variable_defined?(:"@#{attr}"))
|
|
170
|
+
end
|
|
171
|
+
|
|
172
|
+
hash[param] = _to_hash(value)
|
|
173
|
+
end
|
|
174
|
+
hash
|
|
175
|
+
end
|
|
176
|
+
|
|
177
|
+
end
|
|
178
|
+
|
|
179
|
+
end
|
|
@@ -14,8 +14,13 @@ require 'date'
|
|
|
14
14
|
require 'time'
|
|
15
15
|
|
|
16
16
|
module Zernio
|
|
17
|
-
# Platform-specific context for the sent message. The key is present only when the send carried some context, and absent otherwise: it is never null and never an empty object.
|
|
17
|
+
# Platform-specific context for the sent message: a quote-reply reference, a WhatsApp location pin or WhatsApp contact cards. The key is present only when the send carried some context, and absent otherwise: it is never null and never an empty object. Read it to tell a location or contact-card message from a text one without a GET on the message.
|
|
18
18
|
class WebhookPayloadMessageSentMetadata < ApiModelBase
|
|
19
|
+
attr_accessor :location
|
|
20
|
+
|
|
21
|
+
# WhatsApp only. The contact cards this message carries. On API sends this is the `contacts` array exactly as given to the inbox send API (`name`, `phones[].phone` / `type`, `emails[]`); on Coexistence echoes of a card shared from the WhatsApp Business app it is Meta's shape (`phones[].wa_id`, `vcard`). The message `text` is only the emoji preview (`👤 <name>`); the cards live here.
|
|
22
|
+
attr_accessor :contacts
|
|
23
|
+
|
|
19
24
|
# `platformMessageId` of the message this send is a quote-reply to. Present when the reply was sent through Zernio with `replyTo` on the inbox send API (WhatsApp and Telegram). A WhatsApp API send fires its `message.sent` off the delivery status, and the quote reference is forwarded from the stored send there, so it arrives on the same `message.sent` as any other WhatsApp send. Not delivered on Instagram echoes. Zernio forwards `reply_to.mid` whenever Meta puts it on an echo, but on Instagram Meta does not send it, so a reply the operator quoted in the Instagram app arrives with no `quotedMessageId`. Facebook Messenger rides a separate subscription (`message_echoes`) and has not been measured, so treat it as unverified rather than supported. Absent on WhatsApp Coexistence echoes. Meta omits the quote context from `smb_message_echoes`, so a reply the operator sent from the WhatsApp Business app arrives with no `quotedMessageId` even though WhatsApp shows it as a quote-reply. Do not read the absence of this field as \"not a reply\".
|
|
20
25
|
attr_accessor :quoted_message_id
|
|
21
26
|
|
|
@@ -25,6 +30,8 @@ module Zernio
|
|
|
25
30
|
# Attribute mapping from ruby-style variable name to JSON key.
|
|
26
31
|
def self.attribute_map
|
|
27
32
|
{
|
|
33
|
+
:'location' => :'location',
|
|
34
|
+
:'contacts' => :'contacts',
|
|
28
35
|
:'quoted_message_id' => :'quotedMessageId',
|
|
29
36
|
:'thread_ts' => :'threadTs'
|
|
30
37
|
}
|
|
@@ -43,6 +50,8 @@ module Zernio
|
|
|
43
50
|
# Attribute type mapping.
|
|
44
51
|
def self.openapi_types
|
|
45
52
|
{
|
|
53
|
+
:'location' => :'WebhookPayloadMessageSentMetadataLocation',
|
|
54
|
+
:'contacts' => :'Array<Hash<String, Object>>',
|
|
46
55
|
:'quoted_message_id' => :'String',
|
|
47
56
|
:'thread_ts' => :'String'
|
|
48
57
|
}
|
|
@@ -70,6 +79,16 @@ module Zernio
|
|
|
70
79
|
h[k.to_sym] = v
|
|
71
80
|
}
|
|
72
81
|
|
|
82
|
+
if attributes.key?(:'location')
|
|
83
|
+
self.location = attributes[:'location']
|
|
84
|
+
end
|
|
85
|
+
|
|
86
|
+
if attributes.key?(:'contacts')
|
|
87
|
+
if (value = attributes[:'contacts']).is_a?(Array)
|
|
88
|
+
self.contacts = value
|
|
89
|
+
end
|
|
90
|
+
end
|
|
91
|
+
|
|
73
92
|
if attributes.key?(:'quoted_message_id')
|
|
74
93
|
self.quoted_message_id = attributes[:'quoted_message_id']
|
|
75
94
|
end
|
|
@@ -99,6 +118,8 @@ module Zernio
|
|
|
99
118
|
def ==(o)
|
|
100
119
|
return true if self.equal?(o)
|
|
101
120
|
self.class == o.class &&
|
|
121
|
+
location == o.location &&
|
|
122
|
+
contacts == o.contacts &&
|
|
102
123
|
quoted_message_id == o.quoted_message_id &&
|
|
103
124
|
thread_ts == o.thread_ts
|
|
104
125
|
end
|
|
@@ -112,7 +133,7 @@ module Zernio
|
|
|
112
133
|
# Calculates hash code according to all attributes.
|
|
113
134
|
# @return [Integer] Hash code
|
|
114
135
|
def hash
|
|
115
|
-
[quoted_message_id, thread_ts].hash
|
|
136
|
+
[location, contacts, quoted_message_id, thread_ts].hash
|
|
116
137
|
end
|
|
117
138
|
|
|
118
139
|
# Builds the object from hash
|
|
@@ -0,0 +1,179 @@
|
|
|
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
|
+
# WhatsApp only. The location pin this message carries, in the same shape the inbox send API accepts. Present on API sends that passed `location`, and on Coexistence echoes of a pin shared from the WhatsApp Business app. The message `text` is only the emoji preview (`📍 <name>`); the pin itself lives here.
|
|
18
|
+
class WebhookPayloadMessageSentMetadataLocation < ApiModelBase
|
|
19
|
+
# Latitude in decimal degrees.
|
|
20
|
+
attr_accessor :latitude
|
|
21
|
+
|
|
22
|
+
# Longitude in decimal degrees.
|
|
23
|
+
attr_accessor :longitude
|
|
24
|
+
|
|
25
|
+
# Location name, when one was given.
|
|
26
|
+
attr_accessor :name
|
|
27
|
+
|
|
28
|
+
# Street address, when one was given.
|
|
29
|
+
attr_accessor :address
|
|
30
|
+
|
|
31
|
+
# Attribute mapping from ruby-style variable name to JSON key.
|
|
32
|
+
def self.attribute_map
|
|
33
|
+
{
|
|
34
|
+
:'latitude' => :'latitude',
|
|
35
|
+
:'longitude' => :'longitude',
|
|
36
|
+
:'name' => :'name',
|
|
37
|
+
:'address' => :'address'
|
|
38
|
+
}
|
|
39
|
+
end
|
|
40
|
+
|
|
41
|
+
# Returns attribute mapping this model knows about
|
|
42
|
+
def self.acceptable_attribute_map
|
|
43
|
+
attribute_map
|
|
44
|
+
end
|
|
45
|
+
|
|
46
|
+
# Returns all the JSON keys this model knows about
|
|
47
|
+
def self.acceptable_attributes
|
|
48
|
+
acceptable_attribute_map.values
|
|
49
|
+
end
|
|
50
|
+
|
|
51
|
+
# Attribute type mapping.
|
|
52
|
+
def self.openapi_types
|
|
53
|
+
{
|
|
54
|
+
:'latitude' => :'Float',
|
|
55
|
+
:'longitude' => :'Float',
|
|
56
|
+
:'name' => :'String',
|
|
57
|
+
:'address' => :'String'
|
|
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::WebhookPayloadMessageSentMetadataLocation` 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::WebhookPayloadMessageSentMetadataLocation`. 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?(:'latitude')
|
|
84
|
+
self.latitude = attributes[:'latitude']
|
|
85
|
+
end
|
|
86
|
+
|
|
87
|
+
if attributes.key?(:'longitude')
|
|
88
|
+
self.longitude = attributes[:'longitude']
|
|
89
|
+
end
|
|
90
|
+
|
|
91
|
+
if attributes.key?(:'name')
|
|
92
|
+
self.name = attributes[:'name']
|
|
93
|
+
end
|
|
94
|
+
|
|
95
|
+
if attributes.key?(:'address')
|
|
96
|
+
self.address = attributes[:'address']
|
|
97
|
+
end
|
|
98
|
+
end
|
|
99
|
+
|
|
100
|
+
# Show invalid properties with the reasons. Usually used together with valid?
|
|
101
|
+
# @return Array for valid properties with the reasons
|
|
102
|
+
def list_invalid_properties
|
|
103
|
+
warn '[DEPRECATED] the `list_invalid_properties` method is obsolete'
|
|
104
|
+
invalid_properties = Array.new
|
|
105
|
+
invalid_properties
|
|
106
|
+
end
|
|
107
|
+
|
|
108
|
+
# Check to see if the all the properties in the model are valid
|
|
109
|
+
# @return true if the model is valid
|
|
110
|
+
def valid?
|
|
111
|
+
warn '[DEPRECATED] the `valid?` method is obsolete'
|
|
112
|
+
true
|
|
113
|
+
end
|
|
114
|
+
|
|
115
|
+
# Checks equality by comparing each attribute.
|
|
116
|
+
# @param [Object] Object to be compared
|
|
117
|
+
def ==(o)
|
|
118
|
+
return true if self.equal?(o)
|
|
119
|
+
self.class == o.class &&
|
|
120
|
+
latitude == o.latitude &&
|
|
121
|
+
longitude == o.longitude &&
|
|
122
|
+
name == o.name &&
|
|
123
|
+
address == o.address
|
|
124
|
+
end
|
|
125
|
+
|
|
126
|
+
# @see the `==` method
|
|
127
|
+
# @param [Object] Object to be compared
|
|
128
|
+
def eql?(o)
|
|
129
|
+
self == o
|
|
130
|
+
end
|
|
131
|
+
|
|
132
|
+
# Calculates hash code according to all attributes.
|
|
133
|
+
# @return [Integer] Hash code
|
|
134
|
+
def hash
|
|
135
|
+
[latitude, longitude, name, address].hash
|
|
136
|
+
end
|
|
137
|
+
|
|
138
|
+
# Builds the object from hash
|
|
139
|
+
# @param [Hash] attributes Model attributes in the form of hash
|
|
140
|
+
# @return [Object] Returns the model itself
|
|
141
|
+
def self.build_from_hash(attributes)
|
|
142
|
+
return nil unless attributes.is_a?(Hash)
|
|
143
|
+
attributes = attributes.transform_keys(&:to_sym)
|
|
144
|
+
transformed_hash = {}
|
|
145
|
+
openapi_types.each_pair do |key, type|
|
|
146
|
+
if attributes.key?(attribute_map[key]) && attributes[attribute_map[key]].nil?
|
|
147
|
+
transformed_hash["#{key}"] = nil
|
|
148
|
+
elsif type =~ /\AArray<(.*)>/i
|
|
149
|
+
# check to ensure the input is an array given that the attribute
|
|
150
|
+
# is documented as an array but the input is not
|
|
151
|
+
if attributes[attribute_map[key]].is_a?(Array)
|
|
152
|
+
transformed_hash["#{key}"] = attributes[attribute_map[key]].map { |v| _deserialize($1, v) }
|
|
153
|
+
end
|
|
154
|
+
elsif !attributes[attribute_map[key]].nil?
|
|
155
|
+
transformed_hash["#{key}"] = _deserialize(type, attributes[attribute_map[key]])
|
|
156
|
+
end
|
|
157
|
+
end
|
|
158
|
+
new(transformed_hash)
|
|
159
|
+
end
|
|
160
|
+
|
|
161
|
+
# Returns the object in the form of hash
|
|
162
|
+
# @return [Hash] Returns the object in the form of hash
|
|
163
|
+
def to_hash
|
|
164
|
+
hash = {}
|
|
165
|
+
self.class.attribute_map.each_pair do |attr, param|
|
|
166
|
+
value = self.send(attr)
|
|
167
|
+
if value.nil?
|
|
168
|
+
is_nullable = self.class.openapi_nullable.include?(attr)
|
|
169
|
+
next if !is_nullable || (is_nullable && !instance_variable_defined?(:"@#{attr}"))
|
|
170
|
+
end
|
|
171
|
+
|
|
172
|
+
hash[param] = _to_hash(value)
|
|
173
|
+
end
|
|
174
|
+
hash
|
|
175
|
+
end
|
|
176
|
+
|
|
177
|
+
end
|
|
178
|
+
|
|
179
|
+
end
|
|
@@ -14,7 +14,7 @@ require 'date'
|
|
|
14
14
|
require 'time'
|
|
15
15
|
|
|
16
16
|
module Zernio
|
|
17
|
-
# Webhook payload for the per-platform terminal events `post.platform.published` and `post.platform.failed`, for `post.platform.deleted` (same shape, fired when Zernio's background sync detects that a platform target published through Zernio was later deleted on the platform; poll-driven ~hourly, not real-time), and for `post.tiktok.url_resolved` (same shape, fired when a published TikTok post's public URL is backfilled). Terminal events fire once per platform target inside a post as that platform reaches a terminal state (published or permanent failure). The `post` envelope mirrors the shape of `WebhookPayloadPost` so consumers can reuse rendering logic; the `platform` block identifies which specific platform transitioned; the `account` block identifies the connected account behind that platform-write.
|
|
17
|
+
# Webhook payload for the per-platform terminal events `post.platform.published` and `post.platform.failed`, for `post.platform.deleted` (same shape, fired when Zernio's background sync detects that a platform target published through Zernio was later deleted on the platform; poll-driven ~hourly, not real-time), and for `post.tiktok.url_resolved` (same shape, fired when a published TikTok post's public URL is backfilled). Terminal events fire once per platform target inside a post as that platform reaches a terminal state (published or permanent failure), except that a target which later fails background reconciliation emits `post.platform.failed` a second time, after its own `post.platform.published`. The `post` envelope mirrors the shape of `WebhookPayloadPost` so consumers can reuse rendering logic; the `platform` block identifies which specific platform transitioned; the `account` block identifies the connected account behind that platform-write.
|
|
18
18
|
class WebhookPayloadPostPlatform < ApiModelBase
|
|
19
19
|
# Stable webhook event ID.
|
|
20
20
|
attr_accessor :id
|
data/lib/zernio-sdk/version.rb
CHANGED
data/lib/zernio-sdk.rb
CHANGED
|
@@ -1910,6 +1910,7 @@ require 'zernio-sdk/models/webhook_payload_message_message_attachments_inner'
|
|
|
1910
1910
|
require 'zernio-sdk/models/webhook_payload_message_message_sender'
|
|
1911
1911
|
require 'zernio-sdk/models/webhook_payload_message_message_sender_instagram_profile'
|
|
1912
1912
|
require 'zernio-sdk/models/webhook_payload_message_metadata'
|
|
1913
|
+
require 'zernio-sdk/models/webhook_payload_message_metadata_location'
|
|
1913
1914
|
require 'zernio-sdk/models/webhook_payload_message_metadata_order'
|
|
1914
1915
|
require 'zernio-sdk/models/webhook_payload_message_metadata_order_product_items_inner'
|
|
1915
1916
|
require 'zernio-sdk/models/webhook_payload_message_metadata_quoted_message'
|
|
@@ -1923,6 +1924,7 @@ require 'zernio-sdk/models/webhook_payload_message_sent_message'
|
|
|
1923
1924
|
require 'zernio-sdk/models/webhook_payload_message_sent_message_attachments_inner'
|
|
1924
1925
|
require 'zernio-sdk/models/webhook_payload_message_sent_message_sender'
|
|
1925
1926
|
require 'zernio-sdk/models/webhook_payload_message_sent_metadata'
|
|
1927
|
+
require 'zernio-sdk/models/webhook_payload_message_sent_metadata_location'
|
|
1926
1928
|
require 'zernio-sdk/models/webhook_payload_phone_number_stock_available'
|
|
1927
1929
|
require 'zernio-sdk/models/webhook_payload_phone_number_stock_available_stock'
|
|
1928
1930
|
require 'zernio-sdk/models/webhook_payload_phone_number_stock_available_stock_types_inner'
|
data/openapi.yaml
CHANGED
|
@@ -148,13 +148,13 @@ x-documentation:
|
|
|
148
148
|
Receive real-time notifications for post status changes, account events, and incoming messages:
|
|
149
149
|
|
|
150
150
|
- `post.scheduled` - Post entered the scheduled state: created with a schedule, added to a queue, a draft promoted to scheduled or queued, a failed post retried, or a recycled clone created
|
|
151
|
-
- `post.published` - Post successfully published
|
|
152
|
-
- `post.failed` - Post failed on all platforms
|
|
153
|
-
- `post.partial` - Post published to some platforms, failed on others
|
|
151
|
+
- `post.published` - Post successfully published. If a platform target later fails background reconciliation, the post is re-rolled up and a `post.failed` or `post.partial` follows for the same post.
|
|
152
|
+
- `post.failed` - Post failed on all platforms. Can follow an earlier `post.published` for the same post when background reconciliation discovers the publish never actually completed.
|
|
153
|
+
- `post.partial` - Post published to some platforms, failed on others. Can follow an earlier `post.published` for the same post when background reconciliation discovers one target's publish never actually completed.
|
|
154
154
|
- `post.cancelled` - Post publishing was cancelled
|
|
155
155
|
- `post.recycled` - Post recycled (cloned and re-scheduled)
|
|
156
|
-
- `post.platform.published` - A single platform target inside a post finished publishing successfully. Fires once per platform-account as it terminates, without waiting for other platforms on the same post. Use this for incremental UIs; use `post.published` for the post-level rollup.
|
|
157
|
-
- `post.platform.failed` - A single platform target inside a post failed permanently. Temporary/retryable failures do NOT fire this event, only permanent ones, so retry loops stay quiet.
|
|
156
|
+
- `post.platform.published` - A single platform target inside a post finished publishing successfully. Fires once per platform-account as it terminates, without waiting for other platforms on the same post. Use this for incremental UIs; use `post.published` for the post-level rollup. A target that later fails background reconciliation (e.g. a Facebook video Meta accepted but never actually published) emits `post.platform.failed` afterward for the same target.
|
|
157
|
+
- `post.platform.failed` - A single platform target inside a post failed permanently. Temporary/retryable failures do NOT fire this event, only permanent ones, so retry loops stay quiet. Can fire after this same target already emitted `post.platform.published`, when background reconciliation later discovers the publish never actually completed on the platform's side.
|
|
158
158
|
- `post.platform.deleted` - A single platform target inside a post was detected as deleted on the platform after publishing (e.g. the user deleted the Instagram post natively). Detection is poll-driven via Zernio background sync (~hourly), not real-time. `platform.deletedAt` carries the detection time. Coverage is bounded to the posts the platform listing returns.
|
|
159
159
|
- `post.tiktok.url_resolved` - A published TikTok post's public URL became available. TikTok exposes the numeric video id asynchronously, so `post.published` / `post.platform.published` can carry an empty `publishedUrl` for TikTok; this event delivers the URL once resolved (at most once per platform target). Never fires for drafts or private posts, which have no public URL.
|
|
160
160
|
- `post.external.created` - A native post authored outside Zernio (e.g. a Google Business Profile localPost created in the Google UI) was detected by our sync for the first time. Poll-driven (~hourly), not real-time. Payload carries `post.source: "external"`.
|
|
@@ -2724,8 +2724,11 @@ components:
|
|
|
2724
2724
|
and for `post.tiktok.url_resolved` (same shape, fired when a
|
|
2725
2725
|
published TikTok post's public URL is backfilled). Terminal events
|
|
2726
2726
|
fire once per platform target inside a post as that platform
|
|
2727
|
-
reaches a terminal state (published or permanent failure)
|
|
2728
|
-
|
|
2727
|
+
reaches a terminal state (published or permanent failure), except
|
|
2728
|
+
that a target which later fails background reconciliation emits
|
|
2729
|
+
`post.platform.failed` a second time, after its own
|
|
2730
|
+
`post.platform.published`. The `post` envelope mirrors the shape
|
|
2731
|
+
of `WebhookPayloadPost` so
|
|
2729
2732
|
consumers can reuse rendering logic; the `platform` block
|
|
2730
2733
|
identifies which specific platform transitioned; the `account`
|
|
2731
2734
|
block identifies the connected account behind that
|
|
@@ -4120,6 +4123,17 @@ components:
|
|
|
4120
4123
|
product_retailer_id:
|
|
4121
4124
|
type: string
|
|
4122
4125
|
description: Retailer ID (SKU) of the product being asked about.
|
|
4126
|
+
location:
|
|
4127
|
+
type: object
|
|
4128
|
+
description: |
|
|
4129
|
+
WhatsApp only. The location pin the user shared, forwarded
|
|
4130
|
+
verbatim from Meta. The message `text` is only the emoji preview
|
|
4131
|
+
(`📍 <name>`); the coordinates live here.
|
|
4132
|
+
properties:
|
|
4133
|
+
latitude: { type: number, description: Latitude in decimal degrees. }
|
|
4134
|
+
longitude: { type: number, description: Longitude in decimal degrees. }
|
|
4135
|
+
name: { type: string, description: 'Location name, when the user shared a named place.' }
|
|
4136
|
+
address: { type: string, description: 'Street address, when Meta sends one.' }
|
|
4123
4137
|
contacts:
|
|
4124
4138
|
type: array
|
|
4125
4139
|
description: |
|
|
@@ -4409,8 +4423,34 @@ components:
|
|
|
4409
4423
|
$ref: '#/components/schemas/InboxWebhookAccount'
|
|
4410
4424
|
metadata:
|
|
4411
4425
|
type: object
|
|
4412
|
-
description: 'Platform-specific context for the sent message. The key is present only when the send carried some context, and absent otherwise: it is never null and never an empty object.'
|
|
4426
|
+
description: 'Platform-specific context for the sent message: a quote-reply reference, a WhatsApp location pin or WhatsApp contact cards. The key is present only when the send carried some context, and absent otherwise: it is never null and never an empty object. Read it to tell a location or contact-card message from a text one without a GET on the message.'
|
|
4413
4427
|
properties:
|
|
4428
|
+
location:
|
|
4429
|
+
type: object
|
|
4430
|
+
description: |
|
|
4431
|
+
WhatsApp only. The location pin this message carries, in the same
|
|
4432
|
+
shape the inbox send API accepts. Present on API sends that passed
|
|
4433
|
+
`location`, and on Coexistence echoes of a pin shared from the
|
|
4434
|
+
WhatsApp Business app. The message `text` is only the emoji
|
|
4435
|
+
preview (`📍 <name>`); the pin itself lives here.
|
|
4436
|
+
properties:
|
|
4437
|
+
latitude: { type: number, description: Latitude in decimal degrees. }
|
|
4438
|
+
longitude: { type: number, description: Longitude in decimal degrees. }
|
|
4439
|
+
name: { type: string, description: 'Location name, when one was given.' }
|
|
4440
|
+
address: { type: string, description: 'Street address, when one was given.' }
|
|
4441
|
+
contacts:
|
|
4442
|
+
type: array
|
|
4443
|
+
description: |
|
|
4444
|
+
WhatsApp only. The contact cards this message carries. On API
|
|
4445
|
+
sends this is the `contacts` array exactly as given to the inbox
|
|
4446
|
+
send API (`name`, `phones[].phone` / `type`, `emails[]`); on
|
|
4447
|
+
Coexistence echoes of a card shared from the WhatsApp Business
|
|
4448
|
+
app it is Meta's shape (`phones[].wa_id`, `vcard`). The message
|
|
4449
|
+
`text` is only the emoji preview (`👤 <name>`); the cards live
|
|
4450
|
+
here.
|
|
4451
|
+
items:
|
|
4452
|
+
type: object
|
|
4453
|
+
additionalProperties: true
|
|
4414
4454
|
quotedMessageId:
|
|
4415
4455
|
type: string
|
|
4416
4456
|
description: |
|
|
@@ -10515,7 +10555,10 @@ webhooks:
|
|
|
10515
10555
|
consumers building incremental UIs get notified immediately, even
|
|
10516
10556
|
when other platforms on the same post are still processing.
|
|
10517
10557
|
The envelope event (`post.published` / `post.partial`) fires
|
|
10518
|
-
separately AFTER all platforms have terminated.
|
|
10558
|
+
separately AFTER all platforms have terminated. A target that later
|
|
10559
|
+
fails background reconciliation (e.g. a Facebook video Meta accepted
|
|
10560
|
+
but never actually published) emits `post.platform.failed` for the
|
|
10561
|
+
same target afterward.
|
|
10519
10562
|
tags: [Webhook Events]
|
|
10520
10563
|
requestBody:
|
|
10521
10564
|
required: true
|
|
@@ -10535,7 +10578,9 @@ webhooks:
|
|
|
10535
10578
|
permanently. Temporary/retryable failures do NOT fire this event,
|
|
10536
10579
|
only permanent ones do, so retry loops stay quiet. The envelope event
|
|
10537
10580
|
(`post.failed` / `post.partial`) fires separately AFTER all
|
|
10538
|
-
platforms have terminated.
|
|
10581
|
+
platforms have terminated. Can also fire a second time for a target
|
|
10582
|
+
that already emitted `post.platform.published`, if background
|
|
10583
|
+
reconciliation later discovers the publish never actually completed.
|
|
10539
10584
|
tags: [Webhook Events]
|
|
10540
10585
|
requestBody:
|
|
10541
10586
|
required: true
|
|
@@ -0,0 +1,54 @@
|
|
|
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::WebhookPayloadMessageMetadataLocation
|
|
18
|
+
# Automatically generated by openapi-generator (https://openapi-generator.tech)
|
|
19
|
+
# Please update as you see appropriate
|
|
20
|
+
describe Zernio::WebhookPayloadMessageMetadataLocation do
|
|
21
|
+
#let(:instance) { Zernio::WebhookPayloadMessageMetadataLocation.new }
|
|
22
|
+
|
|
23
|
+
describe 'test an instance of WebhookPayloadMessageMetadataLocation' do
|
|
24
|
+
it 'should create an instance of WebhookPayloadMessageMetadataLocation' do
|
|
25
|
+
# uncomment below to test the instance creation
|
|
26
|
+
#expect(instance).to be_instance_of(Zernio::WebhookPayloadMessageMetadataLocation)
|
|
27
|
+
end
|
|
28
|
+
end
|
|
29
|
+
|
|
30
|
+
describe 'test attribute "latitude"' 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 "longitude"' 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 "name"' 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 "address"' 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
|
+
end
|
|
@@ -121,6 +121,12 @@ describe Zernio::WebhookPayloadMessageMetadata do
|
|
|
121
121
|
end
|
|
122
122
|
end
|
|
123
123
|
|
|
124
|
+
describe 'test attribute "location"' do
|
|
125
|
+
it 'should work' do
|
|
126
|
+
# assertion here. ref: https://rspec.info/features/3-12/rspec-expectations/built-in-matchers/
|
|
127
|
+
end
|
|
128
|
+
end
|
|
129
|
+
|
|
124
130
|
describe 'test attribute "contacts"' do
|
|
125
131
|
it 'should work' do
|
|
126
132
|
# assertion here. ref: https://rspec.info/features/3-12/rspec-expectations/built-in-matchers/
|
|
@@ -0,0 +1,54 @@
|
|
|
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::WebhookPayloadMessageSentMetadataLocation
|
|
18
|
+
# Automatically generated by openapi-generator (https://openapi-generator.tech)
|
|
19
|
+
# Please update as you see appropriate
|
|
20
|
+
describe Zernio::WebhookPayloadMessageSentMetadataLocation do
|
|
21
|
+
#let(:instance) { Zernio::WebhookPayloadMessageSentMetadataLocation.new }
|
|
22
|
+
|
|
23
|
+
describe 'test an instance of WebhookPayloadMessageSentMetadataLocation' do
|
|
24
|
+
it 'should create an instance of WebhookPayloadMessageSentMetadataLocation' do
|
|
25
|
+
# uncomment below to test the instance creation
|
|
26
|
+
#expect(instance).to be_instance_of(Zernio::WebhookPayloadMessageSentMetadataLocation)
|
|
27
|
+
end
|
|
28
|
+
end
|
|
29
|
+
|
|
30
|
+
describe 'test attribute "latitude"' 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 "longitude"' 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 "name"' 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 "address"' 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
|
+
end
|
|
@@ -27,6 +27,18 @@ describe Zernio::WebhookPayloadMessageSentMetadata do
|
|
|
27
27
|
end
|
|
28
28
|
end
|
|
29
29
|
|
|
30
|
+
describe 'test attribute "location"' 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 "contacts"' 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
|
+
|
|
30
42
|
describe 'test attribute "quoted_message_id"' do
|
|
31
43
|
it 'should work' do
|
|
32
44
|
# assertion here. ref: https://rspec.info/features/3-12/rspec-expectations/built-in-matchers/
|
|
Binary file
|
metadata
CHANGED
|
@@ -1,14 +1,14 @@
|
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
|
2
2
|
name: late-sdk
|
|
3
3
|
version: !ruby/object:Gem::Version
|
|
4
|
-
version: 0.0.
|
|
4
|
+
version: 0.0.903
|
|
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-09-
|
|
11
|
+
date: 2026-09-10 00:00:00.000000000 Z
|
|
12
12
|
dependencies:
|
|
13
13
|
- !ruby/object:Gem::Dependency
|
|
14
14
|
name: typhoeus
|
|
@@ -2020,6 +2020,7 @@ files:
|
|
|
2020
2020
|
- docs/WebhookPayloadMessageMessageSender.md
|
|
2021
2021
|
- docs/WebhookPayloadMessageMessageSenderInstagramProfile.md
|
|
2022
2022
|
- docs/WebhookPayloadMessageMetadata.md
|
|
2023
|
+
- docs/WebhookPayloadMessageMetadataLocation.md
|
|
2023
2024
|
- docs/WebhookPayloadMessageMetadataOrder.md
|
|
2024
2025
|
- docs/WebhookPayloadMessageMetadataOrderProductItemsInner.md
|
|
2025
2026
|
- docs/WebhookPayloadMessageMetadataQuotedMessage.md
|
|
@@ -2033,6 +2034,7 @@ files:
|
|
|
2033
2034
|
- docs/WebhookPayloadMessageSentMessageAttachmentsInner.md
|
|
2034
2035
|
- docs/WebhookPayloadMessageSentMessageSender.md
|
|
2035
2036
|
- docs/WebhookPayloadMessageSentMetadata.md
|
|
2037
|
+
- docs/WebhookPayloadMessageSentMetadataLocation.md
|
|
2036
2038
|
- docs/WebhookPayloadPhoneNumberStockAvailable.md
|
|
2037
2039
|
- docs/WebhookPayloadPhoneNumberStockAvailableStock.md
|
|
2038
2040
|
- docs/WebhookPayloadPhoneNumberStockAvailableStockTypesInner.md
|
|
@@ -4099,6 +4101,7 @@ files:
|
|
|
4099
4101
|
- lib/zernio-sdk/models/webhook_payload_message_message_sender.rb
|
|
4100
4102
|
- lib/zernio-sdk/models/webhook_payload_message_message_sender_instagram_profile.rb
|
|
4101
4103
|
- lib/zernio-sdk/models/webhook_payload_message_metadata.rb
|
|
4104
|
+
- lib/zernio-sdk/models/webhook_payload_message_metadata_location.rb
|
|
4102
4105
|
- lib/zernio-sdk/models/webhook_payload_message_metadata_order.rb
|
|
4103
4106
|
- lib/zernio-sdk/models/webhook_payload_message_metadata_order_product_items_inner.rb
|
|
4104
4107
|
- lib/zernio-sdk/models/webhook_payload_message_metadata_quoted_message.rb
|
|
@@ -4112,6 +4115,7 @@ files:
|
|
|
4112
4115
|
- lib/zernio-sdk/models/webhook_payload_message_sent_message_attachments_inner.rb
|
|
4113
4116
|
- lib/zernio-sdk/models/webhook_payload_message_sent_message_sender.rb
|
|
4114
4117
|
- lib/zernio-sdk/models/webhook_payload_message_sent_metadata.rb
|
|
4118
|
+
- lib/zernio-sdk/models/webhook_payload_message_sent_metadata_location.rb
|
|
4115
4119
|
- lib/zernio-sdk/models/webhook_payload_phone_number_stock_available.rb
|
|
4116
4120
|
- lib/zernio-sdk/models/webhook_payload_phone_number_stock_available_stock.rb
|
|
4117
4121
|
- lib/zernio-sdk/models/webhook_payload_phone_number_stock_available_stock_types_inner.rb
|
|
@@ -6161,6 +6165,7 @@ files:
|
|
|
6161
6165
|
- spec/models/webhook_payload_message_message_sender_instagram_profile_spec.rb
|
|
6162
6166
|
- spec/models/webhook_payload_message_message_sender_spec.rb
|
|
6163
6167
|
- spec/models/webhook_payload_message_message_spec.rb
|
|
6168
|
+
- spec/models/webhook_payload_message_metadata_location_spec.rb
|
|
6164
6169
|
- spec/models/webhook_payload_message_metadata_order_product_items_inner_spec.rb
|
|
6165
6170
|
- spec/models/webhook_payload_message_metadata_order_spec.rb
|
|
6166
6171
|
- spec/models/webhook_payload_message_metadata_quoted_message_spec.rb
|
|
@@ -6173,6 +6178,7 @@ files:
|
|
|
6173
6178
|
- spec/models/webhook_payload_message_sent_message_attachments_inner_spec.rb
|
|
6174
6179
|
- spec/models/webhook_payload_message_sent_message_sender_spec.rb
|
|
6175
6180
|
- spec/models/webhook_payload_message_sent_message_spec.rb
|
|
6181
|
+
- spec/models/webhook_payload_message_sent_metadata_location_spec.rb
|
|
6176
6182
|
- spec/models/webhook_payload_message_sent_metadata_spec.rb
|
|
6177
6183
|
- spec/models/webhook_payload_message_sent_spec.rb
|
|
6178
6184
|
- spec/models/webhook_payload_message_spec.rb
|
|
@@ -6268,7 +6274,7 @@ files:
|
|
|
6268
6274
|
- spec/models/you_tube_video_retention_response_retention_curve_inner_spec.rb
|
|
6269
6275
|
- spec/models/you_tube_video_retention_response_spec.rb
|
|
6270
6276
|
- spec/spec_helper.rb
|
|
6271
|
-
- zernio-sdk-0.0.
|
|
6277
|
+
- zernio-sdk-0.0.903.gem
|
|
6272
6278
|
- zernio-sdk.gemspec
|
|
6273
6279
|
homepage: https://openapi-generator.tech
|
|
6274
6280
|
licenses:
|
|
@@ -7939,6 +7945,7 @@ test_files:
|
|
|
7939
7945
|
- spec/models/get_whats_app_number_kyc_form200_response_fields_inner_spec.rb
|
|
7940
7946
|
- spec/models/select_snapchat_profile200_response_spec.rb
|
|
7941
7947
|
- spec/models/webhook_payload_call_failed_spec.rb
|
|
7948
|
+
- spec/models/webhook_payload_message_metadata_location_spec.rb
|
|
7942
7949
|
- spec/models/follower_stats_response_stats_value_inner_spec.rb
|
|
7943
7950
|
- spec/models/webhook_payload_analytics_synced_account_spec.rb
|
|
7944
7951
|
- spec/models/follow_user_request_spec.rb
|
|
@@ -8166,6 +8173,7 @@ test_files:
|
|
|
8166
8173
|
- spec/models/create_ad_creative_request_spec.rb
|
|
8167
8174
|
- spec/models/create_whats_app_flow_request_spec.rb
|
|
8168
8175
|
- spec/models/usage_metering_scope_one_of_spec.rb
|
|
8176
|
+
- spec/models/webhook_payload_message_sent_metadata_location_spec.rb
|
|
8169
8177
|
- spec/models/delete_google_business_review_reply200_response_spec.rb
|
|
8170
8178
|
- spec/models/send_conversions_request_consent_spec.rb
|
|
8171
8179
|
- spec/models/get_google_business_search_keywords200_response_keywords_inner_spec.rb
|
data/zernio-sdk-0.0.901.gem
DELETED
|
Binary file
|