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 CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: 982c55d5af432c175fbd73c0df5d7123d28c167a566d1627cd24c1ba9d61331c
4
- data.tar.gz: 3f34fca2f4edd26c09d97a616dfcd57cabbfcd863629584c627e4a216f337f3a
3
+ metadata.gz: 6a44c184ab32f70baa94e8c71c5c0624a8c85f15950070dcaf774d6405f2221f
4
+ data.tar.gz: becc8336d74f782fcaa2c255d7b2c8ee9c7cc1089289eeed7a2582afe10cf69f
5
5
  SHA512:
6
- metadata.gz: c6e3d58388482b8020b0e6582abf04f443e50ff916ba0abb387ef5c71d2e7a96cdc8349cefaf60d72d8d32f3e61de9eb941c61de406689669c64d43c53604447
7
- data.tar.gz: 72ddf1f675cc73d335430b420fe790c0727e946cc045fdf8569f97cdeb813c06d9c27a30ceff39e19a3c11cc8a0be3d9c0422b13f89e2ece05d8224e7c834567
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)
@@ -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 (&#x60;post.published&#x60; / &#x60;post.partial&#x60;) 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 (&#x60;post.published&#x60; / &#x60;post.partial&#x60;) 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 &#x60;post.platform.failed&#x60; 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
@@ -11,5 +11,5 @@ Generator version: 7.19.0
11
11
  =end
12
12
 
13
13
  module Zernio
14
- VERSION = '0.0.901'
14
+ VERSION = '0.0.903'
15
15
  end
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). The
2728
- `post` envelope mirrors the shape of `WebhookPayloadPost` so
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.901
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-09 00:00:00.000000000 Z
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.901.gem
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
Binary file