late-sdk 0.0.645 → 0.0.647

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.
@@ -0,0 +1,309 @@
1
+ =begin
2
+ #Zernio API
3
+
4
+ #API reference for Zernio. Authenticate with a Bearer API key. Base URL: https://zernio.com/api
5
+
6
+ The version of the OpenAPI document: 1.0.4
7
+ Contact: support@zernio.com
8
+ Generated by: https://openapi-generator.tech
9
+ Generator version: 7.19.0
10
+
11
+ =end
12
+
13
+ require 'date'
14
+ require 'time'
15
+
16
+ module Zernio
17
+ # Ad-click attribution for a conversation that started from a Meta ad. Absent when the conversation did not originate from an ad click. Captured from the referral Meta attaches to the first inbound message after the click, which is the only message that carries it. If the same person later clicks a different ad, the original values are kept, so the first ad wins. One exception on WhatsApp: when Meta omits `ctwa_clid` from that referral, a later Meta automatic event can supply it and refresh `ctwa_captured_at`, so treat `ctwa_captured_at` as the time Zernio stored the value, not the time of the click. Two families of keys, one per surface. They never appear together: - `ctwa_*` is WhatsApp Click-to-WhatsApp. The ad ID is `ctwa_source_id`. There is no `meta_ad_id` on WhatsApp. - `meta_ad_*` is Instagram Click-to-Direct and Facebook Messenger Click-to-Message. The ad ID is `meta_ad_id`. `ctwa_clid` never appears on these platforms. Every key is optional and only the keys Meta supplied are returned, so read defensively. Meta does not send a campaign or ad set ID, so none is exposed here. More keys may be added over time. Treat any key you do not recognise as an opaque string. Key names differ from the `message.received` webhook on purpose. The webhook forwards Meta's referral verbatim (`ad_id`, `source`, `type`) while the stored conversation record uses the prefixed names below. Renaming either side would break existing integrations, so both spellings are kept.
18
+ class ListInboxConversations200ResponseDataInnerMetadata < ApiModelBase
19
+ # WhatsApp only. Meta's click identifier, the value to forward to the Meta Conversions API for Business Messaging. Meta omits it on some numbers, so a WhatsApp referral can arrive without it.
20
+ attr_accessor :ctwa_clid
21
+
22
+ # WhatsApp only. The Meta ad ID the user clicked. This is the WhatsApp equivalent of meta_ad_id.
23
+ attr_accessor :ctwa_source_id
24
+
25
+ # WhatsApp only. What the user clicked, as supplied by Meta (for example ad or post).
26
+ attr_accessor :ctwa_source_type
27
+
28
+ # WhatsApp only. Meta's URL for the ad that was clicked, normally an fb.me short link.
29
+ attr_accessor :ctwa_source_url
30
+
31
+ # WhatsApp only. Headline of the ad creative at click time.
32
+ attr_accessor :ctwa_headline
33
+
34
+ # WhatsApp only. When Zernio stored this referral. Always present when a WhatsApp referral was captured.
35
+ attr_accessor :ctwa_captured_at
36
+
37
+ # Instagram and Facebook only. The Meta ad ID the user clicked. Always present when an Instagram or Facebook referral was captured.
38
+ attr_accessor :meta_ad_id
39
+
40
+ # Instagram and Facebook only. Meta-supplied source identifier, for example ADS.
41
+ attr_accessor :meta_ad_source
42
+
43
+ # Instagram and Facebook only. Meta-supplied referral type, for example OPEN_THREAD.
44
+ attr_accessor :meta_ad_type
45
+
46
+ # Instagram and Facebook only. The ref parameter passed through from the ad creative.
47
+ attr_accessor :meta_ad_ref
48
+
49
+ # Instagram and Facebook only. Title of the ad creative at click time.
50
+ attr_accessor :meta_ad_title
51
+
52
+ # Instagram and Facebook only. Image of the ad creative at click time.
53
+ attr_accessor :meta_ad_photo_url
54
+
55
+ # Instagram and Facebook only. Video of the ad creative at click time.
56
+ attr_accessor :meta_ad_video_url
57
+
58
+ # Instagram and Facebook only. The organic post the ad promoted, when the ad was a boosted post.
59
+ attr_accessor :meta_ad_post_id
60
+
61
+ # Instagram and Facebook only. The catalogue product the user clicked, for product ads.
62
+ attr_accessor :meta_ad_product_id
63
+
64
+ # Instagram and Facebook only. The Meta flow the ad launched, for flow ads.
65
+ attr_accessor :meta_ad_flow_id
66
+
67
+ # Instagram and Facebook only. When Zernio stored this referral. Always present when an Instagram or Facebook referral was captured.
68
+ attr_accessor :meta_ad_captured_at
69
+
70
+ # Attribute mapping from ruby-style variable name to JSON key.
71
+ def self.attribute_map
72
+ {
73
+ :'ctwa_clid' => :'ctwa_clid',
74
+ :'ctwa_source_id' => :'ctwa_source_id',
75
+ :'ctwa_source_type' => :'ctwa_source_type',
76
+ :'ctwa_source_url' => :'ctwa_source_url',
77
+ :'ctwa_headline' => :'ctwa_headline',
78
+ :'ctwa_captured_at' => :'ctwa_captured_at',
79
+ :'meta_ad_id' => :'meta_ad_id',
80
+ :'meta_ad_source' => :'meta_ad_source',
81
+ :'meta_ad_type' => :'meta_ad_type',
82
+ :'meta_ad_ref' => :'meta_ad_ref',
83
+ :'meta_ad_title' => :'meta_ad_title',
84
+ :'meta_ad_photo_url' => :'meta_ad_photo_url',
85
+ :'meta_ad_video_url' => :'meta_ad_video_url',
86
+ :'meta_ad_post_id' => :'meta_ad_post_id',
87
+ :'meta_ad_product_id' => :'meta_ad_product_id',
88
+ :'meta_ad_flow_id' => :'meta_ad_flow_id',
89
+ :'meta_ad_captured_at' => :'meta_ad_captured_at'
90
+ }
91
+ end
92
+
93
+ # Returns attribute mapping this model knows about
94
+ def self.acceptable_attribute_map
95
+ attribute_map
96
+ end
97
+
98
+ # Returns all the JSON keys this model knows about
99
+ def self.acceptable_attributes
100
+ acceptable_attribute_map.values
101
+ end
102
+
103
+ # Attribute type mapping.
104
+ def self.openapi_types
105
+ {
106
+ :'ctwa_clid' => :'String',
107
+ :'ctwa_source_id' => :'String',
108
+ :'ctwa_source_type' => :'String',
109
+ :'ctwa_source_url' => :'String',
110
+ :'ctwa_headline' => :'String',
111
+ :'ctwa_captured_at' => :'Time',
112
+ :'meta_ad_id' => :'String',
113
+ :'meta_ad_source' => :'String',
114
+ :'meta_ad_type' => :'String',
115
+ :'meta_ad_ref' => :'String',
116
+ :'meta_ad_title' => :'String',
117
+ :'meta_ad_photo_url' => :'String',
118
+ :'meta_ad_video_url' => :'String',
119
+ :'meta_ad_post_id' => :'String',
120
+ :'meta_ad_product_id' => :'String',
121
+ :'meta_ad_flow_id' => :'String',
122
+ :'meta_ad_captured_at' => :'Time'
123
+ }
124
+ end
125
+
126
+ # List of attributes with nullable: true
127
+ def self.openapi_nullable
128
+ Set.new([
129
+ ])
130
+ end
131
+
132
+ # Initializes the object
133
+ # @param [Hash] attributes Model attributes in the form of hash
134
+ def initialize(attributes = {})
135
+ if (!attributes.is_a?(Hash))
136
+ fail ArgumentError, "The input argument (attributes) must be a hash in `Zernio::ListInboxConversations200ResponseDataInnerMetadata` initialize method"
137
+ end
138
+
139
+ # check to see if the attribute exists and convert string to symbol for hash key
140
+ acceptable_attribute_map = self.class.acceptable_attribute_map
141
+ attributes = attributes.each_with_object({}) { |(k, v), h|
142
+ if (!acceptable_attribute_map.key?(k.to_sym))
143
+ fail ArgumentError, "`#{k}` is not a valid attribute in `Zernio::ListInboxConversations200ResponseDataInnerMetadata`. Please check the name to make sure it's valid. List of attributes: " + acceptable_attribute_map.keys.inspect
144
+ end
145
+ h[k.to_sym] = v
146
+ }
147
+
148
+ if attributes.key?(:'ctwa_clid')
149
+ self.ctwa_clid = attributes[:'ctwa_clid']
150
+ end
151
+
152
+ if attributes.key?(:'ctwa_source_id')
153
+ self.ctwa_source_id = attributes[:'ctwa_source_id']
154
+ end
155
+
156
+ if attributes.key?(:'ctwa_source_type')
157
+ self.ctwa_source_type = attributes[:'ctwa_source_type']
158
+ end
159
+
160
+ if attributes.key?(:'ctwa_source_url')
161
+ self.ctwa_source_url = attributes[:'ctwa_source_url']
162
+ end
163
+
164
+ if attributes.key?(:'ctwa_headline')
165
+ self.ctwa_headline = attributes[:'ctwa_headline']
166
+ end
167
+
168
+ if attributes.key?(:'ctwa_captured_at')
169
+ self.ctwa_captured_at = attributes[:'ctwa_captured_at']
170
+ end
171
+
172
+ if attributes.key?(:'meta_ad_id')
173
+ self.meta_ad_id = attributes[:'meta_ad_id']
174
+ end
175
+
176
+ if attributes.key?(:'meta_ad_source')
177
+ self.meta_ad_source = attributes[:'meta_ad_source']
178
+ end
179
+
180
+ if attributes.key?(:'meta_ad_type')
181
+ self.meta_ad_type = attributes[:'meta_ad_type']
182
+ end
183
+
184
+ if attributes.key?(:'meta_ad_ref')
185
+ self.meta_ad_ref = attributes[:'meta_ad_ref']
186
+ end
187
+
188
+ if attributes.key?(:'meta_ad_title')
189
+ self.meta_ad_title = attributes[:'meta_ad_title']
190
+ end
191
+
192
+ if attributes.key?(:'meta_ad_photo_url')
193
+ self.meta_ad_photo_url = attributes[:'meta_ad_photo_url']
194
+ end
195
+
196
+ if attributes.key?(:'meta_ad_video_url')
197
+ self.meta_ad_video_url = attributes[:'meta_ad_video_url']
198
+ end
199
+
200
+ if attributes.key?(:'meta_ad_post_id')
201
+ self.meta_ad_post_id = attributes[:'meta_ad_post_id']
202
+ end
203
+
204
+ if attributes.key?(:'meta_ad_product_id')
205
+ self.meta_ad_product_id = attributes[:'meta_ad_product_id']
206
+ end
207
+
208
+ if attributes.key?(:'meta_ad_flow_id')
209
+ self.meta_ad_flow_id = attributes[:'meta_ad_flow_id']
210
+ end
211
+
212
+ if attributes.key?(:'meta_ad_captured_at')
213
+ self.meta_ad_captured_at = attributes[:'meta_ad_captured_at']
214
+ end
215
+ end
216
+
217
+ # Show invalid properties with the reasons. Usually used together with valid?
218
+ # @return Array for valid properties with the reasons
219
+ def list_invalid_properties
220
+ warn '[DEPRECATED] the `list_invalid_properties` method is obsolete'
221
+ invalid_properties = Array.new
222
+ invalid_properties
223
+ end
224
+
225
+ # Check to see if the all the properties in the model are valid
226
+ # @return true if the model is valid
227
+ def valid?
228
+ warn '[DEPRECATED] the `valid?` method is obsolete'
229
+ true
230
+ end
231
+
232
+ # Checks equality by comparing each attribute.
233
+ # @param [Object] Object to be compared
234
+ def ==(o)
235
+ return true if self.equal?(o)
236
+ self.class == o.class &&
237
+ ctwa_clid == o.ctwa_clid &&
238
+ ctwa_source_id == o.ctwa_source_id &&
239
+ ctwa_source_type == o.ctwa_source_type &&
240
+ ctwa_source_url == o.ctwa_source_url &&
241
+ ctwa_headline == o.ctwa_headline &&
242
+ ctwa_captured_at == o.ctwa_captured_at &&
243
+ meta_ad_id == o.meta_ad_id &&
244
+ meta_ad_source == o.meta_ad_source &&
245
+ meta_ad_type == o.meta_ad_type &&
246
+ meta_ad_ref == o.meta_ad_ref &&
247
+ meta_ad_title == o.meta_ad_title &&
248
+ meta_ad_photo_url == o.meta_ad_photo_url &&
249
+ meta_ad_video_url == o.meta_ad_video_url &&
250
+ meta_ad_post_id == o.meta_ad_post_id &&
251
+ meta_ad_product_id == o.meta_ad_product_id &&
252
+ meta_ad_flow_id == o.meta_ad_flow_id &&
253
+ meta_ad_captured_at == o.meta_ad_captured_at
254
+ end
255
+
256
+ # @see the `==` method
257
+ # @param [Object] Object to be compared
258
+ def eql?(o)
259
+ self == o
260
+ end
261
+
262
+ # Calculates hash code according to all attributes.
263
+ # @return [Integer] Hash code
264
+ def hash
265
+ [ctwa_clid, ctwa_source_id, ctwa_source_type, ctwa_source_url, ctwa_headline, ctwa_captured_at, meta_ad_id, meta_ad_source, meta_ad_type, meta_ad_ref, meta_ad_title, meta_ad_photo_url, meta_ad_video_url, meta_ad_post_id, meta_ad_product_id, meta_ad_flow_id, meta_ad_captured_at].hash
266
+ end
267
+
268
+ # Builds the object from hash
269
+ # @param [Hash] attributes Model attributes in the form of hash
270
+ # @return [Object] Returns the model itself
271
+ def self.build_from_hash(attributes)
272
+ return nil unless attributes.is_a?(Hash)
273
+ attributes = attributes.transform_keys(&:to_sym)
274
+ transformed_hash = {}
275
+ openapi_types.each_pair do |key, type|
276
+ if attributes.key?(attribute_map[key]) && attributes[attribute_map[key]].nil?
277
+ transformed_hash["#{key}"] = nil
278
+ elsif type =~ /\AArray<(.*)>/i
279
+ # check to ensure the input is an array given that the attribute
280
+ # is documented as an array but the input is not
281
+ if attributes[attribute_map[key]].is_a?(Array)
282
+ transformed_hash["#{key}"] = attributes[attribute_map[key]].map { |v| _deserialize($1, v) }
283
+ end
284
+ elsif !attributes[attribute_map[key]].nil?
285
+ transformed_hash["#{key}"] = _deserialize(type, attributes[attribute_map[key]])
286
+ end
287
+ end
288
+ new(transformed_hash)
289
+ end
290
+
291
+ # Returns the object in the form of hash
292
+ # @return [Hash] Returns the object in the form of hash
293
+ def to_hash
294
+ hash = {}
295
+ self.class.attribute_map.each_pair do |attr, param|
296
+ value = self.send(attr)
297
+ if value.nil?
298
+ is_nullable = self.class.openapi_nullable.include?(attr)
299
+ next if !is_nullable || (is_nullable && !instance_variable_defined?(:"@#{attr}"))
300
+ end
301
+
302
+ hash[param] = _to_hash(value)
303
+ end
304
+ hash
305
+ end
306
+
307
+ end
308
+
309
+ end
@@ -27,6 +27,7 @@ module Zernio
27
27
  # Optional per-platform scheduled time override.
28
28
  attr_accessor :scheduled_for
29
29
 
30
+ # A <platform>Settings namespace (e.g. facebookSettings, tiktokSettings) omitted from the request is preserved from the stored post. Sending the key replaces the whole namespace; it is not deep-merged.
30
31
  attr_accessor :platform_specific_data
31
32
 
32
33
  # Attribute mapping from ruby-style variable name to JSON key.
@@ -11,5 +11,5 @@ Generator version: 7.19.0
11
11
  =end
12
12
 
13
13
  module Zernio
14
- VERSION = '0.0.645'
14
+ VERSION = '0.0.647'
15
15
  end
data/lib/zernio-sdk.rb CHANGED
@@ -551,6 +551,7 @@ require 'zernio-sdk/models/get_google_business_verifications200_response_voice_o
551
551
  require 'zernio-sdk/models/get_google_business_verifications200_response_voice_of_merchant_state_verify'
552
552
  require 'zernio-sdk/models/get_inbox_conversation200_response'
553
553
  require 'zernio-sdk/models/get_inbox_conversation200_response_data'
554
+ require 'zernio-sdk/models/get_inbox_conversation200_response_data_metadata'
554
555
  require 'zernio-sdk/models/get_inbox_conversation_analytics200_response'
555
556
  require 'zernio-sdk/models/get_inbox_conversation_analytics200_response_by_source_inner'
556
557
  require 'zernio-sdk/models/get_inbox_conversation_analytics200_response_summary'
@@ -873,6 +874,7 @@ require 'zernio-sdk/models/list_inbox_conversation_analytics200_response_paginat
873
874
  require 'zernio-sdk/models/list_inbox_conversations200_response'
874
875
  require 'zernio-sdk/models/list_inbox_conversations200_response_data_inner'
875
876
  require 'zernio-sdk/models/list_inbox_conversations200_response_data_inner_instagram_profile'
877
+ require 'zernio-sdk/models/list_inbox_conversations200_response_data_inner_metadata'
876
878
  require 'zernio-sdk/models/list_inbox_conversations200_response_meta'
877
879
  require 'zernio-sdk/models/list_inbox_conversations200_response_meta_failed_accounts_inner'
878
880
  require 'zernio-sdk/models/list_inbox_conversations200_response_pagination'
data/openapi.yaml CHANGED
@@ -13294,6 +13294,7 @@ paths:
13294
13294
  platformSpecificData:
13295
13295
  type: object
13296
13296
  additionalProperties: true
13297
+ description: 'A <platform>Settings namespace (e.g. facebookSettings, tiktokSettings) omitted from the request is preserved from the stored post. Sending the key replaces the whole namespace; it is not deep-merged.'
13297
13298
  scheduledFor: { type: string, format: date-time }
13298
13299
  publishNow: { type: boolean, default: false }
13299
13300
  isDraft:
@@ -22567,7 +22568,7 @@ paths:
22567
22568
  description: Filter by profile ID
22568
22569
  - name: platform
22569
22570
  in: query
22570
- schema: { type: string, enum: [facebook, instagram, twitter, bluesky, reddit, telegram] }
22571
+ schema: { type: string, enum: [facebook, instagram, twitter, bluesky, reddit, telegram, whatsapp] }
22571
22572
  description: Filter by platform
22572
22573
  - name: status
22573
22574
  in: query
@@ -22642,6 +22643,92 @@ paths:
22642
22643
  type: [string, "null"]
22643
22644
  format: date-time
22644
22645
  description: When this profile data was last fetched from Instagram
22646
+ metadata:
22647
+ type: [object, "null"]
22648
+ description: |
22649
+ Ad-click attribution for a conversation that started from a Meta ad.
22650
+ Absent when the conversation did not originate from an ad click.
22651
+
22652
+ Captured from the referral Meta attaches to the first inbound message
22653
+ after the click, which is the only message that carries it. If the same
22654
+ person later clicks a different ad, the original values are kept, so the
22655
+ first ad wins. One exception on WhatsApp: when Meta omits `ctwa_clid`
22656
+ from that referral, a later Meta automatic event can supply it and
22657
+ refresh `ctwa_captured_at`, so treat `ctwa_captured_at` as the time
22658
+ Zernio stored the value, not the time of the click.
22659
+
22660
+ Two families of keys, one per surface. They never appear together:
22661
+
22662
+ - `ctwa_*` is WhatsApp Click-to-WhatsApp. The ad ID is
22663
+ `ctwa_source_id`. There is no `meta_ad_id` on WhatsApp.
22664
+ - `meta_ad_*` is Instagram Click-to-Direct and Facebook Messenger
22665
+ Click-to-Message. The ad ID is `meta_ad_id`. `ctwa_clid` never
22666
+ appears on these platforms.
22667
+
22668
+ Every key is optional and only the keys Meta supplied are returned, so
22669
+ read defensively. Meta does not send a campaign or ad set ID, so none
22670
+ is exposed here. More keys may be added over time. Treat any key you
22671
+ do not recognise as an opaque string.
22672
+
22673
+ Key names differ from the `message.received` webhook on purpose. The
22674
+ webhook forwards Meta's referral verbatim (`ad_id`, `source`, `type`)
22675
+ while the stored conversation record uses the prefixed names below.
22676
+ Renaming either side would break existing integrations, so both
22677
+ spellings are kept.
22678
+ properties:
22679
+ ctwa_clid:
22680
+ type: string
22681
+ description: "WhatsApp only. Meta's click identifier, the value to forward to the Meta Conversions API for Business Messaging. Meta omits it on some numbers, so a WhatsApp referral can arrive without it."
22682
+ ctwa_source_id:
22683
+ type: string
22684
+ description: "WhatsApp only. The Meta ad ID the user clicked. This is the WhatsApp equivalent of meta_ad_id."
22685
+ ctwa_source_type:
22686
+ type: string
22687
+ description: "WhatsApp only. What the user clicked, as supplied by Meta (for example ad or post)."
22688
+ ctwa_source_url:
22689
+ type: string
22690
+ description: "WhatsApp only. Meta's URL for the ad that was clicked, normally an fb.me short link."
22691
+ ctwa_headline:
22692
+ type: string
22693
+ description: "WhatsApp only. Headline of the ad creative at click time."
22694
+ ctwa_captured_at:
22695
+ type: string
22696
+ format: date-time
22697
+ description: "WhatsApp only. When Zernio stored this referral. Always present when a WhatsApp referral was captured."
22698
+ meta_ad_id:
22699
+ type: string
22700
+ description: "Instagram and Facebook only. The Meta ad ID the user clicked. Always present when an Instagram or Facebook referral was captured."
22701
+ meta_ad_source:
22702
+ type: string
22703
+ description: "Instagram and Facebook only. Meta-supplied source identifier, for example ADS."
22704
+ meta_ad_type:
22705
+ type: string
22706
+ description: "Instagram and Facebook only. Meta-supplied referral type, for example OPEN_THREAD."
22707
+ meta_ad_ref:
22708
+ type: string
22709
+ description: "Instagram and Facebook only. The ref parameter passed through from the ad creative."
22710
+ meta_ad_title:
22711
+ type: string
22712
+ description: "Instagram and Facebook only. Title of the ad creative at click time."
22713
+ meta_ad_photo_url:
22714
+ type: string
22715
+ description: "Instagram and Facebook only. Image of the ad creative at click time."
22716
+ meta_ad_video_url:
22717
+ type: string
22718
+ description: "Instagram and Facebook only. Video of the ad creative at click time."
22719
+ meta_ad_post_id:
22720
+ type: string
22721
+ description: "Instagram and Facebook only. The organic post the ad promoted, when the ad was a boosted post."
22722
+ meta_ad_product_id:
22723
+ type: string
22724
+ description: "Instagram and Facebook only. The catalogue product the user clicked, for product ads."
22725
+ meta_ad_flow_id:
22726
+ type: string
22727
+ description: "Instagram and Facebook only. The Meta flow the ad launched, for flow ads."
22728
+ meta_ad_captured_at:
22729
+ type: string
22730
+ format: date-time
22731
+ description: "Instagram and Facebook only. When Zernio stored this referral. Always present when an Instagram or Facebook referral was captured."
22645
22732
  pagination:
22646
22733
  type: object
22647
22734
  properties:
@@ -23028,6 +23115,68 @@ paths:
23028
23115
  type: [string, "null"]
23029
23116
  format: date-time
23030
23117
  description: When this profile data was last fetched from Instagram
23118
+ metadata:
23119
+ type: [object, "null"]
23120
+ description: |
23121
+ Ad-click attribution for a conversation that started from a Meta ad.
23122
+ Absent when the conversation did not originate from an ad click.
23123
+
23124
+ Captured once, on the first inbound message after the click, and never
23125
+ overwritten. If the same person later clicks a different ad, the
23126
+ original values are kept. Meta only sends the referral on that first
23127
+ message.
23128
+
23129
+ This operation currently returns only the `meta_ad_*` family, which
23130
+ covers Instagram Click-to-Direct and Facebook Messenger
23131
+ Click-to-Message. WhatsApp Click-to-WhatsApp attribution (the `ctwa_*`
23132
+ keys, where the ad ID is `ctwa_source_id`) is returned by
23133
+ `GET /v1/inbox/conversations` instead.
23134
+
23135
+ Every key is optional and only the keys Meta supplied are returned, so
23136
+ read defensively. Meta does not send a campaign or ad set ID, so none is
23137
+ exposed here. More keys may be added over time. Treat any key you do not
23138
+ recognise as an opaque string.
23139
+
23140
+ Key names differ from the `message.received` webhook on purpose. The
23141
+ webhook forwards Meta's referral verbatim (`ad_id`, `source`, `type`)
23142
+ while the stored conversation record uses the prefixed names below.
23143
+ Renaming either side would break existing integrations, so both
23144
+ spellings are kept.
23145
+ properties:
23146
+ meta_ad_id:
23147
+ type: string
23148
+ description: "The Meta ad ID the user clicked. Always present when a referral was captured."
23149
+ meta_ad_source:
23150
+ type: string
23151
+ description: "Meta-supplied source identifier, for example ADS."
23152
+ meta_ad_type:
23153
+ type: string
23154
+ description: "Meta-supplied referral type, for example OPEN_THREAD."
23155
+ meta_ad_ref:
23156
+ type: string
23157
+ description: "The ref parameter passed through from the ad creative."
23158
+ meta_ad_title:
23159
+ type: string
23160
+ description: "Title of the ad creative at click time."
23161
+ meta_ad_photo_url:
23162
+ type: string
23163
+ description: "Image of the ad creative at click time."
23164
+ meta_ad_video_url:
23165
+ type: string
23166
+ description: "Video of the ad creative at click time."
23167
+ meta_ad_post_id:
23168
+ type: string
23169
+ description: "The organic post the ad promoted, when the ad was a boosted post."
23170
+ meta_ad_product_id:
23171
+ type: string
23172
+ description: "The catalogue product the user clicked, for product ads."
23173
+ meta_ad_flow_id:
23174
+ type: string
23175
+ description: "The Meta flow the ad launched, for flow ads."
23176
+ meta_ad_captured_at:
23177
+ type: string
23178
+ format: date-time
23179
+ description: "When Zernio stored this referral. Always present when a referral was captured."
23031
23180
  '401': { $ref: '#/components/responses/Unauthorized' }
23032
23181
  '403':
23033
23182
  description: Inbox addon required
@@ -0,0 +1,96 @@
1
+ =begin
2
+ #Zernio API
3
+
4
+ #API reference for Zernio. Authenticate with a Bearer API key. Base URL: https://zernio.com/api
5
+
6
+ The version of the OpenAPI document: 1.0.4
7
+ Contact: support@zernio.com
8
+ Generated by: https://openapi-generator.tech
9
+ Generator version: 7.19.0
10
+
11
+ =end
12
+
13
+ require 'spec_helper'
14
+ require 'json'
15
+ require 'date'
16
+
17
+ # Unit tests for Zernio::GetInboxConversation200ResponseDataMetadata
18
+ # Automatically generated by openapi-generator (https://openapi-generator.tech)
19
+ # Please update as you see appropriate
20
+ describe Zernio::GetInboxConversation200ResponseDataMetadata do
21
+ #let(:instance) { Zernio::GetInboxConversation200ResponseDataMetadata.new }
22
+
23
+ describe 'test an instance of GetInboxConversation200ResponseDataMetadata' do
24
+ it 'should create an instance of GetInboxConversation200ResponseDataMetadata' do
25
+ # uncomment below to test the instance creation
26
+ #expect(instance).to be_instance_of(Zernio::GetInboxConversation200ResponseDataMetadata)
27
+ end
28
+ end
29
+
30
+ describe 'test attribute "meta_ad_id"' do
31
+ it 'should work' do
32
+ # assertion here. ref: https://rspec.info/features/3-12/rspec-expectations/built-in-matchers/
33
+ end
34
+ end
35
+
36
+ describe 'test attribute "meta_ad_source"' 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 "meta_ad_type"' 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 "meta_ad_ref"' do
49
+ it 'should work' do
50
+ # assertion here. ref: https://rspec.info/features/3-12/rspec-expectations/built-in-matchers/
51
+ end
52
+ end
53
+
54
+ describe 'test attribute "meta_ad_title"' do
55
+ it 'should work' do
56
+ # assertion here. ref: https://rspec.info/features/3-12/rspec-expectations/built-in-matchers/
57
+ end
58
+ end
59
+
60
+ describe 'test attribute "meta_ad_photo_url"' do
61
+ it 'should work' do
62
+ # assertion here. ref: https://rspec.info/features/3-12/rspec-expectations/built-in-matchers/
63
+ end
64
+ end
65
+
66
+ describe 'test attribute "meta_ad_video_url"' do
67
+ it 'should work' do
68
+ # assertion here. ref: https://rspec.info/features/3-12/rspec-expectations/built-in-matchers/
69
+ end
70
+ end
71
+
72
+ describe 'test attribute "meta_ad_post_id"' do
73
+ it 'should work' do
74
+ # assertion here. ref: https://rspec.info/features/3-12/rspec-expectations/built-in-matchers/
75
+ end
76
+ end
77
+
78
+ describe 'test attribute "meta_ad_product_id"' do
79
+ it 'should work' do
80
+ # assertion here. ref: https://rspec.info/features/3-12/rspec-expectations/built-in-matchers/
81
+ end
82
+ end
83
+
84
+ describe 'test attribute "meta_ad_flow_id"' do
85
+ it 'should work' do
86
+ # assertion here. ref: https://rspec.info/features/3-12/rspec-expectations/built-in-matchers/
87
+ end
88
+ end
89
+
90
+ describe 'test attribute "meta_ad_captured_at"' do
91
+ it 'should work' do
92
+ # assertion here. ref: https://rspec.info/features/3-12/rspec-expectations/built-in-matchers/
93
+ end
94
+ end
95
+
96
+ end
@@ -113,4 +113,10 @@ describe Zernio::GetInboxConversation200ResponseData do
113
113
  end
114
114
  end
115
115
 
116
+ describe 'test attribute "metadata"' do
117
+ it 'should work' do
118
+ # assertion here. ref: https://rspec.info/features/3-12/rspec-expectations/built-in-matchers/
119
+ end
120
+ end
121
+
116
122
  end