zernio-sdk 0.0.744 → 0.0.745
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/SendInboxMessageRequestInteractiveAction.md +2 -0
- data/docs/SendInboxMessageRequestInteractiveActionOneOf10.md +20 -0
- data/docs/SendInboxMessageRequestInteractiveActionOneOf10Parameters.md +24 -0
- data/docs/WebhookPayloadMessageMetadata.md +4 -2
- data/lib/zernio-sdk/models/send_inbox_message_request_interactive.rb +3 -3
- data/lib/zernio-sdk/models/send_inbox_message_request_interactive_action.rb +1 -0
- data/lib/zernio-sdk/models/send_inbox_message_request_interactive_action_one_of10.rb +215 -0
- data/lib/zernio-sdk/models/send_inbox_message_request_interactive_action_one_of10_parameters.rb +201 -0
- data/lib/zernio-sdk/models/webhook_payload_message_metadata.rb +13 -3
- data/lib/zernio-sdk/version.rb +1 -1
- data/lib/zernio-sdk.rb +2 -0
- data/openapi.yaml +45 -5
- data/spec/models/send_inbox_message_request_interactive_action_one_of10_parameters_spec.rb +54 -0
- data/spec/models/send_inbox_message_request_interactive_action_one_of10_spec.rb +46 -0
- data/spec/models/send_inbox_message_request_interactive_spec.rb +1 -1
- data/spec/models/webhook_payload_message_metadata_spec.rb +6 -0
- metadata +9 -1
checksums.yaml
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
---
|
|
2
2
|
SHA256:
|
|
3
|
-
metadata.gz:
|
|
4
|
-
data.tar.gz:
|
|
3
|
+
metadata.gz: dd68c8549097bba84c92f6ceef1f7d1dea438405e37c3066a17af32801b7a921
|
|
4
|
+
data.tar.gz: df1e42e9bfe9c3d61c7488535aca61ff6b24dac023d6576b6b8c92fcbb262074
|
|
5
5
|
SHA512:
|
|
6
|
-
metadata.gz:
|
|
7
|
-
data.tar.gz:
|
|
6
|
+
metadata.gz: 1bad4054151754872c89184126aadab7bdaa604c4f17b02243e5076aaeed4e0e518d2dc2ecf14b863eb8b2174d46256ffd01066fe831c3e43a25cf21b21c73fc
|
|
7
|
+
data.tar.gz: fc62e4957e41ed0649ab3a146aec7db89072a1b268495f322488c652a0c99c604cea7f77d8919ff61c5804e8c5e647f57852fe188388ef9da03deba9607729f1
|
data/README.md
CHANGED
|
@@ -1913,6 +1913,8 @@ Class | Method | HTTP request | Description
|
|
|
1913
1913
|
- [Zernio::SendInboxMessageRequestInteractiveAction](docs/SendInboxMessageRequestInteractiveAction.md)
|
|
1914
1914
|
- [Zernio::SendInboxMessageRequestInteractiveActionOneOf](docs/SendInboxMessageRequestInteractiveActionOneOf.md)
|
|
1915
1915
|
- [Zernio::SendInboxMessageRequestInteractiveActionOneOf1](docs/SendInboxMessageRequestInteractiveActionOneOf1.md)
|
|
1916
|
+
- [Zernio::SendInboxMessageRequestInteractiveActionOneOf10](docs/SendInboxMessageRequestInteractiveActionOneOf10.md)
|
|
1917
|
+
- [Zernio::SendInboxMessageRequestInteractiveActionOneOf10Parameters](docs/SendInboxMessageRequestInteractiveActionOneOf10Parameters.md)
|
|
1916
1918
|
- [Zernio::SendInboxMessageRequestInteractiveActionOneOf1Parameters](docs/SendInboxMessageRequestInteractiveActionOneOf1Parameters.md)
|
|
1917
1919
|
- [Zernio::SendInboxMessageRequestInteractiveActionOneOf2](docs/SendInboxMessageRequestInteractiveActionOneOf2.md)
|
|
1918
1920
|
- [Zernio::SendInboxMessageRequestInteractiveActionOneOf2Parameters](docs/SendInboxMessageRequestInteractiveActionOneOf2Parameters.md)
|
|
@@ -16,6 +16,7 @@ Zernio::SendInboxMessageRequestInteractiveAction.openapi_one_of
|
|
|
16
16
|
# [
|
|
17
17
|
# :'SendInboxMessageRequestInteractiveActionOneOf',
|
|
18
18
|
# :'SendInboxMessageRequestInteractiveActionOneOf1',
|
|
19
|
+
# :'SendInboxMessageRequestInteractiveActionOneOf10',
|
|
19
20
|
# :'SendInboxMessageRequestInteractiveActionOneOf2',
|
|
20
21
|
# :'SendInboxMessageRequestInteractiveActionOneOf3',
|
|
21
22
|
# :'SendInboxMessageRequestInteractiveActionOneOf4',
|
|
@@ -53,6 +54,7 @@ Zernio::SendInboxMessageRequestInteractiveAction.build(data_that_doesnt_match)
|
|
|
53
54
|
|
|
54
55
|
- `SendInboxMessageRequestInteractiveActionOneOf`
|
|
55
56
|
- `SendInboxMessageRequestInteractiveActionOneOf1`
|
|
57
|
+
- `SendInboxMessageRequestInteractiveActionOneOf10`
|
|
56
58
|
- `SendInboxMessageRequestInteractiveActionOneOf2`
|
|
57
59
|
- `SendInboxMessageRequestInteractiveActionOneOf3`
|
|
58
60
|
- `SendInboxMessageRequestInteractiveActionOneOf4`
|
|
@@ -0,0 +1,20 @@
|
|
|
1
|
+
# Zernio::SendInboxMessageRequestInteractiveActionOneOf10
|
|
2
|
+
|
|
3
|
+
## Properties
|
|
4
|
+
|
|
5
|
+
| Name | Type | Description | Notes |
|
|
6
|
+
| ---- | ---- | ----------- | ----- |
|
|
7
|
+
| **name** | **String** | | |
|
|
8
|
+
| **parameters** | [**SendInboxMessageRequestInteractiveActionOneOf10Parameters**](SendInboxMessageRequestInteractiveActionOneOf10Parameters.md) | | |
|
|
9
|
+
|
|
10
|
+
## Example
|
|
11
|
+
|
|
12
|
+
```ruby
|
|
13
|
+
require 'zernio-sdk'
|
|
14
|
+
|
|
15
|
+
instance = Zernio::SendInboxMessageRequestInteractiveActionOneOf10.new(
|
|
16
|
+
name: null,
|
|
17
|
+
parameters: null
|
|
18
|
+
)
|
|
19
|
+
```
|
|
20
|
+
|
|
@@ -0,0 +1,24 @@
|
|
|
1
|
+
# Zernio::SendInboxMessageRequestInteractiveActionOneOf10Parameters
|
|
2
|
+
|
|
3
|
+
## Properties
|
|
4
|
+
|
|
5
|
+
| Name | Type | Description | Notes |
|
|
6
|
+
| ---- | ---- | ----------- | ----- |
|
|
7
|
+
| **country** | **String** | ISO 3166-1 alpha-2 country code Meta should localize the address form for (e.g. IN). Required: Meta rejects the send without it. | |
|
|
8
|
+
| **values** | **Hash<String, Object>** | Optional pre-filled address field values. | [optional] |
|
|
9
|
+
| **saved_addresses** | **Array<Hash<String, Object>>** | Optional list of the recipient's previously saved addresses to offer as quick picks. | [optional] |
|
|
10
|
+
| **validation_errors** | **Hash<String, String>** | Optional per-field error messages to show when re-prompting after a failed validation. | [optional] |
|
|
11
|
+
|
|
12
|
+
## Example
|
|
13
|
+
|
|
14
|
+
```ruby
|
|
15
|
+
require 'zernio-sdk'
|
|
16
|
+
|
|
17
|
+
instance = Zernio::SendInboxMessageRequestInteractiveActionOneOf10Parameters.new(
|
|
18
|
+
country: null,
|
|
19
|
+
values: null,
|
|
20
|
+
saved_addresses: null,
|
|
21
|
+
validation_errors: null
|
|
22
|
+
)
|
|
23
|
+
```
|
|
24
|
+
|
|
@@ -9,11 +9,12 @@
|
|
|
9
9
|
| **postback_payload** | **String** | Payload from a postback button tap (Facebook/Instagram Messenger). | [optional] |
|
|
10
10
|
| **postback_title** | **String** | Title of the tapped postback button (Facebook/Instagram Messenger). | [optional] |
|
|
11
11
|
| **callback_data** | **String** | Callback data from an inline keyboard button tap (Telegram). | [optional] |
|
|
12
|
-
| **interactive_type** | **String** | WhatsApp only. Which kind of interactive reply the user sent: `button_reply` (tap on an interactive button), `list_reply` (tap on a list row), or `nfm_reply` (a WhatsApp Flow submission). | [optional] |
|
|
12
|
+
| **interactive_type** | **String** | WhatsApp only. Which kind of interactive reply the user sent: `button_reply` (tap on an interactive button), `list_reply` (tap on a list row), or `nfm_reply` (a WhatsApp Flow submission or an `address_message` submission, see `nfmReplyName`). | [optional] |
|
|
13
13
|
| **interactive_id** | **String** | WhatsApp only. The `id` of the tapped button or list row, matching the `id` you supplied when the message was sent. Not set for Flow responses. | [optional] |
|
|
14
14
|
| **button_payload** | **String** | WhatsApp only. Payload attached to a tapped template button. Template buttons emit a plain `button` webhook (not an interactive reply), so `interactiveType` is empty while this field is populated. | [optional] |
|
|
15
15
|
| **flow_response_json** | **String** | WhatsApp only. Raw `nfm_reply.response_json` string returned by a Flow submission. Useful if you need the exact wire payload; for typed access use `flowResponseData` instead. | [optional] |
|
|
16
|
-
| **flow_response_data** | **Hash<String, Object>** | WhatsApp only. Parsed Flow response JSON. Populated when `flowResponseJson` is valid JSON; otherwise omitted. Keys and value types depend on the specific Flow that was submitted. | [optional] |
|
|
16
|
+
| **flow_response_data** | **Hash<String, Object>** | WhatsApp only. Parsed Flow response JSON. Populated when `flowResponseJson` is valid JSON; otherwise omitted. Keys and value types depend on the specific Flow that was submitted. An `address_message` submission (`nfmReplyName: address_message`) carries the address fields (`name`, `address`, `city`, `state`, `in_pin_code`, ...), either at the top level or nested under `values`; read both. | [optional] |
|
|
17
|
+
| **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] |
|
|
17
18
|
| **order** | [**WebhookPayloadMessageMetadataOrder**](WebhookPayloadMessageMetadataOrder.md) | | [optional] |
|
|
18
19
|
| **referred_product** | [**WebhookPayloadMessageMetadataReferredProduct**](WebhookPayloadMessageMetadataReferredProduct.md) | | [optional] |
|
|
19
20
|
| **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] |
|
|
@@ -40,6 +41,7 @@ instance = Zernio::WebhookPayloadMessageMetadata.new(
|
|
|
40
41
|
button_payload: null,
|
|
41
42
|
flow_response_json: null,
|
|
42
43
|
flow_response_data: null,
|
|
44
|
+
nfm_reply_name: null,
|
|
43
45
|
order: null,
|
|
44
46
|
referred_product: null,
|
|
45
47
|
contacts: null,
|
|
@@ -14,7 +14,7 @@ require 'date'
|
|
|
14
14
|
require 'time'
|
|
15
15
|
|
|
16
16
|
module Zernio
|
|
17
|
-
# WhatsApp-only. Rich interactive payload for list messages, CTA URL buttons, Flow prompts, location requests, voice-call buttons, and commerce messages (single product, product list, catalog, and carousel). When set, takes priority over `buttons` and `quickReplies`. The shape mirrors Meta's Cloud API `interactive` object
|
|
17
|
+
# WhatsApp-only. Rich interactive payload for list messages, CTA URL buttons, Flow prompts, location requests, voice-call buttons, and commerce messages (single product, product list, catalog, and carousel). When set, takes priority over `buttons` and `quickReplies`. The shape mirrors Meta's Cloud API `interactive` object for the types in the enum below. Use `buttons` / `quickReplies` for simple button replies (WhatsApp's `interactive.type: \"button\"`): the abstraction caps at 3 buttons and handles the auto-conversion for you. Use this field only for the types listed in the enum below. All interactive messages are session messages: they can only be sent inside the 24-hour customer service window opened by the user's last inbound message. Commerce types (`product`, `product_list`, `catalog_message`, and product carousels) require a Meta catalog connected to the WhatsApp Business Account in Commerce Manager. Media carousels (image/video cards) do not need a catalog. For `product`, `body` is optional (WhatsApp renders the product card itself) and `header` is not allowed (the product image is the header). For `product_list`, a `header` with `type: \"text\"` is required. For `carousel`, top-level `header`/`footer` are not supported; media goes on each card instead. For `voice_call`, the message renders WhatsApp's native call button; tapping it starts a voice call to your business number. Requires WhatsApp Business Calling to be enabled on the sending number. The optional `parameters.payload` string is echoed back on the `calls` webhook (as `cta_payload`) for attribution. For `location_request_message`, `action` may be omitted (we default it to `{ \"name\": \"send_location\" }`). WhatsApp renders a localized \"Send location\" button; the user's reply arrives as a regular location message in the conversation. For `request_contact_info`, `action` may be omitted (we default it to `{ \"name\": \"request_contact_info\" }`). WhatsApp renders a localized share button that cannot be relabelled, so put the reason for asking in `body.text`: this is a consent prompt, and a bare request converts badly. The reply arrives as an inbound `contacts` message with `metadata.contactsOrigin` set to `contact_request`, and we fold the shared number back into the contact automatically. A `contacts` message with origin `other` is a card the user picked from their address book and is NOT proof of their own number. For `catalog_message`, `action` may also be omitted (we default it to `{ \"name\": \"catalog_message\" }`). For `address_message`, `parameters.country` is required (Meta rejects the whole send without it); everything else in `parameters` (`values`, `saved_addresses`, `validation_errors`) is forwarded to Meta as-is. This is Meta's native structured shipping-address capture, generally available in India as of 2026-08; check Meta's documentation for current country availability before relying on it elsewhere. The submitted address arrives as an `nfm_reply` on the `message.received` webhook, same as a Flow submission, but with `metadata.nfmReplyName` set to `address_message` so you can tell the two apart. Tap events come back via the `message.received` webhook with `metadata.interactiveType` set to `list_reply` or `nfm_reply`. Carts submitted from commerce messages arrive as `metadata.order`; product inquiries arrive as `metadata.referredProduct`.
|
|
18
18
|
class SendInboxMessageRequestInteractive < ApiModelBase
|
|
19
19
|
# Which interactive layout to render.
|
|
20
20
|
attr_accessor :type
|
|
@@ -143,7 +143,7 @@ module Zernio
|
|
|
143
143
|
def valid?
|
|
144
144
|
warn '[DEPRECATED] the `valid?` method is obsolete'
|
|
145
145
|
return false if @type.nil?
|
|
146
|
-
type_validator = EnumAttributeValidator.new('String', ["list", "cta_url", "flow", "location_request_message", "request_contact_info", "voice_call", "product", "product_list", "catalog_message", "carousel"])
|
|
146
|
+
type_validator = EnumAttributeValidator.new('String', ["list", "cta_url", "flow", "location_request_message", "request_contact_info", "voice_call", "product", "product_list", "catalog_message", "carousel", "address_message"])
|
|
147
147
|
return false unless type_validator.valid?(@type)
|
|
148
148
|
true
|
|
149
149
|
end
|
|
@@ -151,7 +151,7 @@ module Zernio
|
|
|
151
151
|
# Custom attribute writer method checking allowed values (enum).
|
|
152
152
|
# @param [Object] type Object to be assigned
|
|
153
153
|
def type=(type)
|
|
154
|
-
validator = EnumAttributeValidator.new('String', ["list", "cta_url", "flow", "location_request_message", "request_contact_info", "voice_call", "product", "product_list", "catalog_message", "carousel"])
|
|
154
|
+
validator = EnumAttributeValidator.new('String', ["list", "cta_url", "flow", "location_request_message", "request_contact_info", "voice_call", "product", "product_list", "catalog_message", "carousel", "address_message"])
|
|
155
155
|
unless validator.valid?(type)
|
|
156
156
|
fail ArgumentError, "invalid value for \"type\", must be one of #{validator.allowable_values}."
|
|
157
157
|
end
|
|
@@ -21,6 +21,7 @@ module Zernio
|
|
|
21
21
|
[
|
|
22
22
|
:'SendInboxMessageRequestInteractiveActionOneOf',
|
|
23
23
|
:'SendInboxMessageRequestInteractiveActionOneOf1',
|
|
24
|
+
:'SendInboxMessageRequestInteractiveActionOneOf10',
|
|
24
25
|
:'SendInboxMessageRequestInteractiveActionOneOf2',
|
|
25
26
|
:'SendInboxMessageRequestInteractiveActionOneOf3',
|
|
26
27
|
:'SendInboxMessageRequestInteractiveActionOneOf4',
|
|
@@ -0,0 +1,215 @@
|
|
|
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
|
+
# Address-request action. `type` on the parent must be `address_message`. Renders Meta's native structured address form in-chat (generally available in India as of 2026-08; check Meta's documentation for current country availability).
|
|
18
|
+
class SendInboxMessageRequestInteractiveActionOneOf10 < ApiModelBase
|
|
19
|
+
attr_accessor :name
|
|
20
|
+
|
|
21
|
+
attr_accessor :parameters
|
|
22
|
+
|
|
23
|
+
class EnumAttributeValidator
|
|
24
|
+
attr_reader :datatype
|
|
25
|
+
attr_reader :allowable_values
|
|
26
|
+
|
|
27
|
+
def initialize(datatype, allowable_values)
|
|
28
|
+
@allowable_values = allowable_values.map do |value|
|
|
29
|
+
case datatype.to_s
|
|
30
|
+
when /Integer/i
|
|
31
|
+
value.to_i
|
|
32
|
+
when /Float/i
|
|
33
|
+
value.to_f
|
|
34
|
+
else
|
|
35
|
+
value
|
|
36
|
+
end
|
|
37
|
+
end
|
|
38
|
+
end
|
|
39
|
+
|
|
40
|
+
def valid?(value)
|
|
41
|
+
!value || allowable_values.include?(value)
|
|
42
|
+
end
|
|
43
|
+
end
|
|
44
|
+
|
|
45
|
+
# Attribute mapping from ruby-style variable name to JSON key.
|
|
46
|
+
def self.attribute_map
|
|
47
|
+
{
|
|
48
|
+
:'name' => :'name',
|
|
49
|
+
:'parameters' => :'parameters'
|
|
50
|
+
}
|
|
51
|
+
end
|
|
52
|
+
|
|
53
|
+
# Returns attribute mapping this model knows about
|
|
54
|
+
def self.acceptable_attribute_map
|
|
55
|
+
attribute_map
|
|
56
|
+
end
|
|
57
|
+
|
|
58
|
+
# Returns all the JSON keys this model knows about
|
|
59
|
+
def self.acceptable_attributes
|
|
60
|
+
acceptable_attribute_map.values
|
|
61
|
+
end
|
|
62
|
+
|
|
63
|
+
# Attribute type mapping.
|
|
64
|
+
def self.openapi_types
|
|
65
|
+
{
|
|
66
|
+
:'name' => :'String',
|
|
67
|
+
:'parameters' => :'SendInboxMessageRequestInteractiveActionOneOf10Parameters'
|
|
68
|
+
}
|
|
69
|
+
end
|
|
70
|
+
|
|
71
|
+
# List of attributes with nullable: true
|
|
72
|
+
def self.openapi_nullable
|
|
73
|
+
Set.new([
|
|
74
|
+
])
|
|
75
|
+
end
|
|
76
|
+
|
|
77
|
+
# Initializes the object
|
|
78
|
+
# @param [Hash] attributes Model attributes in the form of hash
|
|
79
|
+
def initialize(attributes = {})
|
|
80
|
+
if (!attributes.is_a?(Hash))
|
|
81
|
+
fail ArgumentError, "The input argument (attributes) must be a hash in `Zernio::SendInboxMessageRequestInteractiveActionOneOf10` initialize method"
|
|
82
|
+
end
|
|
83
|
+
|
|
84
|
+
# check to see if the attribute exists and convert string to symbol for hash key
|
|
85
|
+
acceptable_attribute_map = self.class.acceptable_attribute_map
|
|
86
|
+
attributes = attributes.each_with_object({}) { |(k, v), h|
|
|
87
|
+
if (!acceptable_attribute_map.key?(k.to_sym))
|
|
88
|
+
fail ArgumentError, "`#{k}` is not a valid attribute in `Zernio::SendInboxMessageRequestInteractiveActionOneOf10`. Please check the name to make sure it's valid. List of attributes: " + acceptable_attribute_map.keys.inspect
|
|
89
|
+
end
|
|
90
|
+
h[k.to_sym] = v
|
|
91
|
+
}
|
|
92
|
+
|
|
93
|
+
if attributes.key?(:'name')
|
|
94
|
+
self.name = attributes[:'name']
|
|
95
|
+
else
|
|
96
|
+
self.name = nil
|
|
97
|
+
end
|
|
98
|
+
|
|
99
|
+
if attributes.key?(:'parameters')
|
|
100
|
+
self.parameters = attributes[:'parameters']
|
|
101
|
+
else
|
|
102
|
+
self.parameters = nil
|
|
103
|
+
end
|
|
104
|
+
end
|
|
105
|
+
|
|
106
|
+
# Show invalid properties with the reasons. Usually used together with valid?
|
|
107
|
+
# @return Array for valid properties with the reasons
|
|
108
|
+
def list_invalid_properties
|
|
109
|
+
warn '[DEPRECATED] the `list_invalid_properties` method is obsolete'
|
|
110
|
+
invalid_properties = Array.new
|
|
111
|
+
if @name.nil?
|
|
112
|
+
invalid_properties.push('invalid value for "name", name cannot be nil.')
|
|
113
|
+
end
|
|
114
|
+
|
|
115
|
+
if @parameters.nil?
|
|
116
|
+
invalid_properties.push('invalid value for "parameters", parameters cannot be nil.')
|
|
117
|
+
end
|
|
118
|
+
|
|
119
|
+
invalid_properties
|
|
120
|
+
end
|
|
121
|
+
|
|
122
|
+
# Check to see if the all the properties in the model are valid
|
|
123
|
+
# @return true if the model is valid
|
|
124
|
+
def valid?
|
|
125
|
+
warn '[DEPRECATED] the `valid?` method is obsolete'
|
|
126
|
+
return false if @name.nil?
|
|
127
|
+
name_validator = EnumAttributeValidator.new('String', ["address_message"])
|
|
128
|
+
return false unless name_validator.valid?(@name)
|
|
129
|
+
return false if @parameters.nil?
|
|
130
|
+
true
|
|
131
|
+
end
|
|
132
|
+
|
|
133
|
+
# Custom attribute writer method checking allowed values (enum).
|
|
134
|
+
# @param [Object] name Object to be assigned
|
|
135
|
+
def name=(name)
|
|
136
|
+
validator = EnumAttributeValidator.new('String', ["address_message"])
|
|
137
|
+
unless validator.valid?(name)
|
|
138
|
+
fail ArgumentError, "invalid value for \"name\", must be one of #{validator.allowable_values}."
|
|
139
|
+
end
|
|
140
|
+
@name = name
|
|
141
|
+
end
|
|
142
|
+
|
|
143
|
+
# Custom attribute writer method with validation
|
|
144
|
+
# @param [Object] parameters Value to be assigned
|
|
145
|
+
def parameters=(parameters)
|
|
146
|
+
if parameters.nil?
|
|
147
|
+
fail ArgumentError, 'parameters cannot be nil'
|
|
148
|
+
end
|
|
149
|
+
|
|
150
|
+
@parameters = parameters
|
|
151
|
+
end
|
|
152
|
+
|
|
153
|
+
# Checks equality by comparing each attribute.
|
|
154
|
+
# @param [Object] Object to be compared
|
|
155
|
+
def ==(o)
|
|
156
|
+
return true if self.equal?(o)
|
|
157
|
+
self.class == o.class &&
|
|
158
|
+
name == o.name &&
|
|
159
|
+
parameters == o.parameters
|
|
160
|
+
end
|
|
161
|
+
|
|
162
|
+
# @see the `==` method
|
|
163
|
+
# @param [Object] Object to be compared
|
|
164
|
+
def eql?(o)
|
|
165
|
+
self == o
|
|
166
|
+
end
|
|
167
|
+
|
|
168
|
+
# Calculates hash code according to all attributes.
|
|
169
|
+
# @return [Integer] Hash code
|
|
170
|
+
def hash
|
|
171
|
+
[name, parameters].hash
|
|
172
|
+
end
|
|
173
|
+
|
|
174
|
+
# Builds the object from hash
|
|
175
|
+
# @param [Hash] attributes Model attributes in the form of hash
|
|
176
|
+
# @return [Object] Returns the model itself
|
|
177
|
+
def self.build_from_hash(attributes)
|
|
178
|
+
return nil unless attributes.is_a?(Hash)
|
|
179
|
+
attributes = attributes.transform_keys(&:to_sym)
|
|
180
|
+
transformed_hash = {}
|
|
181
|
+
openapi_types.each_pair do |key, type|
|
|
182
|
+
if attributes.key?(attribute_map[key]) && attributes[attribute_map[key]].nil?
|
|
183
|
+
transformed_hash["#{key}"] = nil
|
|
184
|
+
elsif type =~ /\AArray<(.*)>/i
|
|
185
|
+
# check to ensure the input is an array given that the attribute
|
|
186
|
+
# is documented as an array but the input is not
|
|
187
|
+
if attributes[attribute_map[key]].is_a?(Array)
|
|
188
|
+
transformed_hash["#{key}"] = attributes[attribute_map[key]].map { |v| _deserialize($1, v) }
|
|
189
|
+
end
|
|
190
|
+
elsif !attributes[attribute_map[key]].nil?
|
|
191
|
+
transformed_hash["#{key}"] = _deserialize(type, attributes[attribute_map[key]])
|
|
192
|
+
end
|
|
193
|
+
end
|
|
194
|
+
new(transformed_hash)
|
|
195
|
+
end
|
|
196
|
+
|
|
197
|
+
# Returns the object in the form of hash
|
|
198
|
+
# @return [Hash] Returns the object in the form of hash
|
|
199
|
+
def to_hash
|
|
200
|
+
hash = {}
|
|
201
|
+
self.class.attribute_map.each_pair do |attr, param|
|
|
202
|
+
value = self.send(attr)
|
|
203
|
+
if value.nil?
|
|
204
|
+
is_nullable = self.class.openapi_nullable.include?(attr)
|
|
205
|
+
next if !is_nullable || (is_nullable && !instance_variable_defined?(:"@#{attr}"))
|
|
206
|
+
end
|
|
207
|
+
|
|
208
|
+
hash[param] = _to_hash(value)
|
|
209
|
+
end
|
|
210
|
+
hash
|
|
211
|
+
end
|
|
212
|
+
|
|
213
|
+
end
|
|
214
|
+
|
|
215
|
+
end
|
data/lib/zernio-sdk/models/send_inbox_message_request_interactive_action_one_of10_parameters.rb
ADDED
|
@@ -0,0 +1,201 @@
|
|
|
1
|
+
=begin
|
|
2
|
+
#Zernio API
|
|
3
|
+
|
|
4
|
+
#API reference for Zernio. Authenticate with a Bearer API key. Base URL: https://zernio.com/api Versioning and deprecation: all endpoints are versioned in the URL path (current version: /v1). Breaking changes only ship in a new path version; existing versions keep working. Deprecated operations are marked 'deprecated: true' in this spec and announced in the changelog (https://zernio.com/changelog) before removal. Errors: every 4xx/5xx response is application/json with a machine-readable 'code' and a human-readable 'error' message (see the ErrorResponse schema).
|
|
5
|
+
|
|
6
|
+
The version of the OpenAPI document: 1.0.4
|
|
7
|
+
Contact: support@zernio.com
|
|
8
|
+
Generated by: https://openapi-generator.tech
|
|
9
|
+
Generator version: 7.19.0
|
|
10
|
+
|
|
11
|
+
=end
|
|
12
|
+
|
|
13
|
+
require 'date'
|
|
14
|
+
require 'time'
|
|
15
|
+
|
|
16
|
+
module Zernio
|
|
17
|
+
class SendInboxMessageRequestInteractiveActionOneOf10Parameters < ApiModelBase
|
|
18
|
+
# ISO 3166-1 alpha-2 country code Meta should localize the address form for (e.g. IN). Required: Meta rejects the send without it.
|
|
19
|
+
attr_accessor :country
|
|
20
|
+
|
|
21
|
+
# Optional pre-filled address field values.
|
|
22
|
+
attr_accessor :values
|
|
23
|
+
|
|
24
|
+
# Optional list of the recipient's previously saved addresses to offer as quick picks.
|
|
25
|
+
attr_accessor :saved_addresses
|
|
26
|
+
|
|
27
|
+
# Optional per-field error messages to show when re-prompting after a failed validation.
|
|
28
|
+
attr_accessor :validation_errors
|
|
29
|
+
|
|
30
|
+
# Attribute mapping from ruby-style variable name to JSON key.
|
|
31
|
+
def self.attribute_map
|
|
32
|
+
{
|
|
33
|
+
:'country' => :'country',
|
|
34
|
+
:'values' => :'values',
|
|
35
|
+
:'saved_addresses' => :'saved_addresses',
|
|
36
|
+
:'validation_errors' => :'validation_errors'
|
|
37
|
+
}
|
|
38
|
+
end
|
|
39
|
+
|
|
40
|
+
# Returns attribute mapping this model knows about
|
|
41
|
+
def self.acceptable_attribute_map
|
|
42
|
+
attribute_map
|
|
43
|
+
end
|
|
44
|
+
|
|
45
|
+
# Returns all the JSON keys this model knows about
|
|
46
|
+
def self.acceptable_attributes
|
|
47
|
+
acceptable_attribute_map.values
|
|
48
|
+
end
|
|
49
|
+
|
|
50
|
+
# Attribute type mapping.
|
|
51
|
+
def self.openapi_types
|
|
52
|
+
{
|
|
53
|
+
:'country' => :'String',
|
|
54
|
+
:'values' => :'Hash<String, Object>',
|
|
55
|
+
:'saved_addresses' => :'Array<Hash<String, Object>>',
|
|
56
|
+
:'validation_errors' => :'Hash<String, String>'
|
|
57
|
+
}
|
|
58
|
+
end
|
|
59
|
+
|
|
60
|
+
# List of attributes with nullable: true
|
|
61
|
+
def self.openapi_nullable
|
|
62
|
+
Set.new([
|
|
63
|
+
])
|
|
64
|
+
end
|
|
65
|
+
|
|
66
|
+
# Initializes the object
|
|
67
|
+
# @param [Hash] attributes Model attributes in the form of hash
|
|
68
|
+
def initialize(attributes = {})
|
|
69
|
+
if (!attributes.is_a?(Hash))
|
|
70
|
+
fail ArgumentError, "The input argument (attributes) must be a hash in `Zernio::SendInboxMessageRequestInteractiveActionOneOf10Parameters` initialize method"
|
|
71
|
+
end
|
|
72
|
+
|
|
73
|
+
# check to see if the attribute exists and convert string to symbol for hash key
|
|
74
|
+
acceptable_attribute_map = self.class.acceptable_attribute_map
|
|
75
|
+
attributes = attributes.each_with_object({}) { |(k, v), h|
|
|
76
|
+
if (!acceptable_attribute_map.key?(k.to_sym))
|
|
77
|
+
fail ArgumentError, "`#{k}` is not a valid attribute in `Zernio::SendInboxMessageRequestInteractiveActionOneOf10Parameters`. Please check the name to make sure it's valid. List of attributes: " + acceptable_attribute_map.keys.inspect
|
|
78
|
+
end
|
|
79
|
+
h[k.to_sym] = v
|
|
80
|
+
}
|
|
81
|
+
|
|
82
|
+
if attributes.key?(:'country')
|
|
83
|
+
self.country = attributes[:'country']
|
|
84
|
+
else
|
|
85
|
+
self.country = nil
|
|
86
|
+
end
|
|
87
|
+
|
|
88
|
+
if attributes.key?(:'values')
|
|
89
|
+
if (value = attributes[:'values']).is_a?(Hash)
|
|
90
|
+
self.values = value
|
|
91
|
+
end
|
|
92
|
+
end
|
|
93
|
+
|
|
94
|
+
if attributes.key?(:'saved_addresses')
|
|
95
|
+
if (value = attributes[:'saved_addresses']).is_a?(Array)
|
|
96
|
+
self.saved_addresses = value
|
|
97
|
+
end
|
|
98
|
+
end
|
|
99
|
+
|
|
100
|
+
if attributes.key?(:'validation_errors')
|
|
101
|
+
if (value = attributes[:'validation_errors']).is_a?(Hash)
|
|
102
|
+
self.validation_errors = value
|
|
103
|
+
end
|
|
104
|
+
end
|
|
105
|
+
end
|
|
106
|
+
|
|
107
|
+
# Show invalid properties with the reasons. Usually used together with valid?
|
|
108
|
+
# @return Array for valid properties with the reasons
|
|
109
|
+
def list_invalid_properties
|
|
110
|
+
warn '[DEPRECATED] the `list_invalid_properties` method is obsolete'
|
|
111
|
+
invalid_properties = Array.new
|
|
112
|
+
if @country.nil?
|
|
113
|
+
invalid_properties.push('invalid value for "country", country cannot be nil.')
|
|
114
|
+
end
|
|
115
|
+
|
|
116
|
+
invalid_properties
|
|
117
|
+
end
|
|
118
|
+
|
|
119
|
+
# Check to see if the all the properties in the model are valid
|
|
120
|
+
# @return true if the model is valid
|
|
121
|
+
def valid?
|
|
122
|
+
warn '[DEPRECATED] the `valid?` method is obsolete'
|
|
123
|
+
return false if @country.nil?
|
|
124
|
+
true
|
|
125
|
+
end
|
|
126
|
+
|
|
127
|
+
# Custom attribute writer method with validation
|
|
128
|
+
# @param [Object] country Value to be assigned
|
|
129
|
+
def country=(country)
|
|
130
|
+
if country.nil?
|
|
131
|
+
fail ArgumentError, 'country cannot be nil'
|
|
132
|
+
end
|
|
133
|
+
|
|
134
|
+
@country = country
|
|
135
|
+
end
|
|
136
|
+
|
|
137
|
+
# Checks equality by comparing each attribute.
|
|
138
|
+
# @param [Object] Object to be compared
|
|
139
|
+
def ==(o)
|
|
140
|
+
return true if self.equal?(o)
|
|
141
|
+
self.class == o.class &&
|
|
142
|
+
country == o.country &&
|
|
143
|
+
values == o.values &&
|
|
144
|
+
saved_addresses == o.saved_addresses &&
|
|
145
|
+
validation_errors == o.validation_errors
|
|
146
|
+
end
|
|
147
|
+
|
|
148
|
+
# @see the `==` method
|
|
149
|
+
# @param [Object] Object to be compared
|
|
150
|
+
def eql?(o)
|
|
151
|
+
self == o
|
|
152
|
+
end
|
|
153
|
+
|
|
154
|
+
# Calculates hash code according to all attributes.
|
|
155
|
+
# @return [Integer] Hash code
|
|
156
|
+
def hash
|
|
157
|
+
[country, values, saved_addresses, validation_errors].hash
|
|
158
|
+
end
|
|
159
|
+
|
|
160
|
+
# Builds the object from hash
|
|
161
|
+
# @param [Hash] attributes Model attributes in the form of hash
|
|
162
|
+
# @return [Object] Returns the model itself
|
|
163
|
+
def self.build_from_hash(attributes)
|
|
164
|
+
return nil unless attributes.is_a?(Hash)
|
|
165
|
+
attributes = attributes.transform_keys(&:to_sym)
|
|
166
|
+
transformed_hash = {}
|
|
167
|
+
openapi_types.each_pair do |key, type|
|
|
168
|
+
if attributes.key?(attribute_map[key]) && attributes[attribute_map[key]].nil?
|
|
169
|
+
transformed_hash["#{key}"] = nil
|
|
170
|
+
elsif type =~ /\AArray<(.*)>/i
|
|
171
|
+
# check to ensure the input is an array given that the attribute
|
|
172
|
+
# is documented as an array but the input is not
|
|
173
|
+
if attributes[attribute_map[key]].is_a?(Array)
|
|
174
|
+
transformed_hash["#{key}"] = attributes[attribute_map[key]].map { |v| _deserialize($1, v) }
|
|
175
|
+
end
|
|
176
|
+
elsif !attributes[attribute_map[key]].nil?
|
|
177
|
+
transformed_hash["#{key}"] = _deserialize(type, attributes[attribute_map[key]])
|
|
178
|
+
end
|
|
179
|
+
end
|
|
180
|
+
new(transformed_hash)
|
|
181
|
+
end
|
|
182
|
+
|
|
183
|
+
# Returns the object in the form of hash
|
|
184
|
+
# @return [Hash] Returns the object in the form of hash
|
|
185
|
+
def to_hash
|
|
186
|
+
hash = {}
|
|
187
|
+
self.class.attribute_map.each_pair do |attr, param|
|
|
188
|
+
value = self.send(attr)
|
|
189
|
+
if value.nil?
|
|
190
|
+
is_nullable = self.class.openapi_nullable.include?(attr)
|
|
191
|
+
next if !is_nullable || (is_nullable && !instance_variable_defined?(:"@#{attr}"))
|
|
192
|
+
end
|
|
193
|
+
|
|
194
|
+
hash[param] = _to_hash(value)
|
|
195
|
+
end
|
|
196
|
+
hash
|
|
197
|
+
end
|
|
198
|
+
|
|
199
|
+
end
|
|
200
|
+
|
|
201
|
+
end
|
|
@@ -31,7 +31,7 @@ module Zernio
|
|
|
31
31
|
# Callback data from an inline keyboard button tap (Telegram).
|
|
32
32
|
attr_accessor :callback_data
|
|
33
33
|
|
|
34
|
-
# WhatsApp only. Which kind of interactive reply the user sent: `button_reply` (tap on an interactive button), `list_reply` (tap on a list row), or `nfm_reply` (a WhatsApp Flow submission).
|
|
34
|
+
# WhatsApp only. Which kind of interactive reply the user sent: `button_reply` (tap on an interactive button), `list_reply` (tap on a list row), or `nfm_reply` (a WhatsApp Flow submission or an `address_message` submission, see `nfmReplyName`).
|
|
35
35
|
attr_accessor :interactive_type
|
|
36
36
|
|
|
37
37
|
# WhatsApp only. The `id` of the tapped button or list row, matching the `id` you supplied when the message was sent. Not set for Flow responses.
|
|
@@ -43,9 +43,12 @@ module Zernio
|
|
|
43
43
|
# WhatsApp only. Raw `nfm_reply.response_json` string returned by a Flow submission. Useful if you need the exact wire payload; for typed access use `flowResponseData` instead.
|
|
44
44
|
attr_accessor :flow_response_json
|
|
45
45
|
|
|
46
|
-
# WhatsApp only. Parsed Flow response JSON. Populated when `flowResponseJson` is valid JSON; otherwise omitted. Keys and value types depend on the specific Flow that was submitted.
|
|
46
|
+
# WhatsApp only. Parsed Flow response JSON. Populated when `flowResponseJson` is valid JSON; otherwise omitted. Keys and value types depend on the specific Flow that was submitted. An `address_message` submission (`nfmReplyName: address_message`) carries the address fields (`name`, `address`, `city`, `state`, `in_pin_code`, ...), either at the top level or nested under `values`; read both.
|
|
47
47
|
attr_accessor :flow_response_data
|
|
48
48
|
|
|
49
|
+
# 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.
|
|
50
|
+
attr_accessor :nfm_reply_name
|
|
51
|
+
|
|
49
52
|
attr_accessor :order
|
|
50
53
|
|
|
51
54
|
attr_accessor :referred_product
|
|
@@ -103,6 +106,7 @@ module Zernio
|
|
|
103
106
|
:'button_payload' => :'buttonPayload',
|
|
104
107
|
:'flow_response_json' => :'flowResponseJson',
|
|
105
108
|
:'flow_response_data' => :'flowResponseData',
|
|
109
|
+
:'nfm_reply_name' => :'nfmReplyName',
|
|
106
110
|
:'order' => :'order',
|
|
107
111
|
:'referred_product' => :'referredProduct',
|
|
108
112
|
:'contacts' => :'contacts',
|
|
@@ -138,6 +142,7 @@ module Zernio
|
|
|
138
142
|
:'button_payload' => :'String',
|
|
139
143
|
:'flow_response_json' => :'String',
|
|
140
144
|
:'flow_response_data' => :'Hash<String, Object>',
|
|
145
|
+
:'nfm_reply_name' => :'String',
|
|
141
146
|
:'order' => :'WebhookPayloadMessageMetadataOrder',
|
|
142
147
|
:'referred_product' => :'WebhookPayloadMessageMetadataReferredProduct',
|
|
143
148
|
:'contacts' => :'Array<Hash<String, Object>>',
|
|
@@ -214,6 +219,10 @@ module Zernio
|
|
|
214
219
|
end
|
|
215
220
|
end
|
|
216
221
|
|
|
222
|
+
if attributes.key?(:'nfm_reply_name')
|
|
223
|
+
self.nfm_reply_name = attributes[:'nfm_reply_name']
|
|
224
|
+
end
|
|
225
|
+
|
|
217
226
|
if attributes.key?(:'order')
|
|
218
227
|
self.order = attributes[:'order']
|
|
219
228
|
end
|
|
@@ -307,6 +316,7 @@ module Zernio
|
|
|
307
316
|
button_payload == o.button_payload &&
|
|
308
317
|
flow_response_json == o.flow_response_json &&
|
|
309
318
|
flow_response_data == o.flow_response_data &&
|
|
319
|
+
nfm_reply_name == o.nfm_reply_name &&
|
|
310
320
|
order == o.order &&
|
|
311
321
|
referred_product == o.referred_product &&
|
|
312
322
|
contacts == o.contacts &&
|
|
@@ -327,7 +337,7 @@ module Zernio
|
|
|
327
337
|
# Calculates hash code according to all attributes.
|
|
328
338
|
# @return [Integer] Hash code
|
|
329
339
|
def hash
|
|
330
|
-
[quoted_message_id, quick_reply_payload, postback_payload, postback_title, callback_data, interactive_type, interactive_id, button_payload, flow_response_json, flow_response_data, order, referred_product, contacts, contacts_origin, story_reply, is_story_mention, referral, unsupported, no_renderable_content].hash
|
|
340
|
+
[quoted_message_id, 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
|
|
331
341
|
end
|
|
332
342
|
|
|
333
343
|
# Builds the object from hash
|
data/lib/zernio-sdk/version.rb
CHANGED
data/lib/zernio-sdk.rb
CHANGED
|
@@ -1269,6 +1269,8 @@ require 'zernio-sdk/models/send_inbox_message_request_interactive'
|
|
|
1269
1269
|
require 'zernio-sdk/models/send_inbox_message_request_interactive_action'
|
|
1270
1270
|
require 'zernio-sdk/models/send_inbox_message_request_interactive_action_one_of'
|
|
1271
1271
|
require 'zernio-sdk/models/send_inbox_message_request_interactive_action_one_of1'
|
|
1272
|
+
require 'zernio-sdk/models/send_inbox_message_request_interactive_action_one_of10'
|
|
1273
|
+
require 'zernio-sdk/models/send_inbox_message_request_interactive_action_one_of10_parameters'
|
|
1272
1274
|
require 'zernio-sdk/models/send_inbox_message_request_interactive_action_one_of1_parameters'
|
|
1273
1275
|
require 'zernio-sdk/models/send_inbox_message_request_interactive_action_one_of2'
|
|
1274
1276
|
require 'zernio-sdk/models/send_inbox_message_request_interactive_action_one_of2_parameters'
|
data/openapi.yaml
CHANGED
|
@@ -3665,7 +3665,8 @@ components:
|
|
|
3665
3665
|
description: |
|
|
3666
3666
|
WhatsApp only. Which kind of interactive reply the user sent:
|
|
3667
3667
|
`button_reply` (tap on an interactive button), `list_reply` (tap on a
|
|
3668
|
-
list row), or `nfm_reply` (a WhatsApp Flow submission
|
|
3668
|
+
list row), or `nfm_reply` (a WhatsApp Flow submission or an
|
|
3669
|
+
`address_message` submission, see `nfmReplyName`).
|
|
3669
3670
|
interactiveId:
|
|
3670
3671
|
type: string
|
|
3671
3672
|
description: |
|
|
@@ -3689,7 +3690,17 @@ components:
|
|
|
3689
3690
|
description: |
|
|
3690
3691
|
WhatsApp only. Parsed Flow response JSON. Populated when
|
|
3691
3692
|
`flowResponseJson` is valid JSON; otherwise omitted. Keys and
|
|
3692
|
-
value types depend on the specific Flow that was submitted.
|
|
3693
|
+
value types depend on the specific Flow that was submitted. An
|
|
3694
|
+
`address_message` submission (`nfmReplyName: address_message`) carries
|
|
3695
|
+
the address fields (`name`, `address`, `city`, `state`, `in_pin_code`,
|
|
3696
|
+
...), either at the top level or nested under `values`; read both.
|
|
3697
|
+
nfmReplyName:
|
|
3698
|
+
type: string
|
|
3699
|
+
description: |
|
|
3700
|
+
WhatsApp only. `nfm_reply.name` as Meta sent it, e.g. `flow` or
|
|
3701
|
+
`address_message`. Address submissions share the `nfm_reply`
|
|
3702
|
+
envelope with Flow submissions and are otherwise indistinguishable
|
|
3703
|
+
in `flowResponseData`; use this field to tell them apart.
|
|
3693
3704
|
order:
|
|
3694
3705
|
type: object
|
|
3695
3706
|
description: |
|
|
@@ -26148,8 +26159,7 @@ paths:
|
|
|
26148
26159
|
commerce messages (single product, product list, catalog, and
|
|
26149
26160
|
carousel). When set, takes priority over `buttons` and
|
|
26150
26161
|
`quickReplies`. The shape mirrors Meta's Cloud API `interactive`
|
|
26151
|
-
object
|
|
26152
|
-
will also work here.
|
|
26162
|
+
object for the types in the enum below.
|
|
26153
26163
|
|
|
26154
26164
|
Use `buttons` / `quickReplies` for simple button replies
|
|
26155
26165
|
(WhatsApp's `interactive.type: "button"`): the abstraction caps at
|
|
@@ -26195,6 +26205,18 @@ paths:
|
|
|
26195
26205
|
For `catalog_message`, `action` may also be omitted (we default it
|
|
26196
26206
|
to `{ "name": "catalog_message" }`).
|
|
26197
26207
|
|
|
26208
|
+
For `address_message`, `parameters.country` is required (Meta
|
|
26209
|
+
rejects the whole send without it); everything else in
|
|
26210
|
+
`parameters` (`values`, `saved_addresses`, `validation_errors`)
|
|
26211
|
+
is forwarded to Meta as-is. This is Meta's native structured
|
|
26212
|
+
shipping-address capture, generally available in India as of
|
|
26213
|
+
2026-08; check Meta's documentation for current country
|
|
26214
|
+
availability before relying on it elsewhere. The submitted
|
|
26215
|
+
address arrives as an `nfm_reply` on the `message.received`
|
|
26216
|
+
webhook, same as a Flow submission, but with
|
|
26217
|
+
`metadata.nfmReplyName` set to `address_message` so you can
|
|
26218
|
+
tell the two apart.
|
|
26219
|
+
|
|
26198
26220
|
Tap events come back via the `message.received` webhook with
|
|
26199
26221
|
`metadata.interactiveType` set to `list_reply` or `nfm_reply`.
|
|
26200
26222
|
Carts submitted from commerce messages arrive as `metadata.order`;
|
|
@@ -26203,7 +26225,7 @@ paths:
|
|
|
26203
26225
|
properties:
|
|
26204
26226
|
type:
|
|
26205
26227
|
type: string
|
|
26206
|
-
enum: [list, cta_url, flow, location_request_message, request_contact_info, voice_call, product, product_list, catalog_message, carousel]
|
|
26228
|
+
enum: [list, cta_url, flow, location_request_message, request_contact_info, voice_call, product, product_list, catalog_message, carousel, address_message]
|
|
26207
26229
|
description: Which interactive layout to render.
|
|
26208
26230
|
header:
|
|
26209
26231
|
type: object
|
|
@@ -26387,6 +26409,24 @@ paths:
|
|
|
26387
26409
|
header: { type: object, description: "Media cards only, required. Carries the card's image or video." }
|
|
26388
26410
|
body: { type: object, description: Optional card body text. }
|
|
26389
26411
|
action: { type: object, description: "Product cards: `{ catalog_id, product_retailer_id }` (required). Media cards: the card's button action (e.g. `cta_url` with `parameters.display_text` and `parameters.url`)." }
|
|
26412
|
+
- type: object
|
|
26413
|
+
description: |
|
|
26414
|
+
Address-request action. `type` on the parent must be
|
|
26415
|
+
`address_message`. Renders Meta's native structured
|
|
26416
|
+
address form in-chat (generally available in India as
|
|
26417
|
+
of 2026-08; check Meta's documentation for current
|
|
26418
|
+
country availability).
|
|
26419
|
+
required: [name, parameters]
|
|
26420
|
+
properties:
|
|
26421
|
+
name: { type: string, enum: [address_message] }
|
|
26422
|
+
parameters:
|
|
26423
|
+
type: object
|
|
26424
|
+
required: [country]
|
|
26425
|
+
properties:
|
|
26426
|
+
country: { type: string, description: 'ISO 3166-1 alpha-2 country code Meta should localize the address form for (e.g. IN). Required: Meta rejects the send without it.' }
|
|
26427
|
+
values: { type: object, additionalProperties: true, description: Optional pre-filled address field values. }
|
|
26428
|
+
saved_addresses: { type: array, items: { type: object, additionalProperties: true }, description: Optional list of the recipient's previously saved addresses to offer as quick picks. }
|
|
26429
|
+
validation_errors: { type: object, additionalProperties: { type: string }, description: Optional per-field error messages to show when re-prompting after a failed validation. }
|
|
26390
26430
|
replyMarkup:
|
|
26391
26431
|
type: object
|
|
26392
26432
|
description: Telegram-native keyboard markup. Ignored on other platforms.
|
|
@@ -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::SendInboxMessageRequestInteractiveActionOneOf10Parameters
|
|
18
|
+
# Automatically generated by openapi-generator (https://openapi-generator.tech)
|
|
19
|
+
# Please update as you see appropriate
|
|
20
|
+
describe Zernio::SendInboxMessageRequestInteractiveActionOneOf10Parameters do
|
|
21
|
+
#let(:instance) { Zernio::SendInboxMessageRequestInteractiveActionOneOf10Parameters.new }
|
|
22
|
+
|
|
23
|
+
describe 'test an instance of SendInboxMessageRequestInteractiveActionOneOf10Parameters' do
|
|
24
|
+
it 'should create an instance of SendInboxMessageRequestInteractiveActionOneOf10Parameters' do
|
|
25
|
+
# uncomment below to test the instance creation
|
|
26
|
+
#expect(instance).to be_instance_of(Zernio::SendInboxMessageRequestInteractiveActionOneOf10Parameters)
|
|
27
|
+
end
|
|
28
|
+
end
|
|
29
|
+
|
|
30
|
+
describe 'test attribute "country"' 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 "values"' 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 "saved_addresses"' 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 "validation_errors"' 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
|
|
@@ -0,0 +1,46 @@
|
|
|
1
|
+
=begin
|
|
2
|
+
#Zernio API
|
|
3
|
+
|
|
4
|
+
#API reference for Zernio. Authenticate with a Bearer API key. Base URL: https://zernio.com/api 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::SendInboxMessageRequestInteractiveActionOneOf10
|
|
18
|
+
# Automatically generated by openapi-generator (https://openapi-generator.tech)
|
|
19
|
+
# Please update as you see appropriate
|
|
20
|
+
describe Zernio::SendInboxMessageRequestInteractiveActionOneOf10 do
|
|
21
|
+
#let(:instance) { Zernio::SendInboxMessageRequestInteractiveActionOneOf10.new }
|
|
22
|
+
|
|
23
|
+
describe 'test an instance of SendInboxMessageRequestInteractiveActionOneOf10' do
|
|
24
|
+
it 'should create an instance of SendInboxMessageRequestInteractiveActionOneOf10' do
|
|
25
|
+
# uncomment below to test the instance creation
|
|
26
|
+
#expect(instance).to be_instance_of(Zernio::SendInboxMessageRequestInteractiveActionOneOf10)
|
|
27
|
+
end
|
|
28
|
+
end
|
|
29
|
+
|
|
30
|
+
describe 'test attribute "name"' do
|
|
31
|
+
it 'should work' do
|
|
32
|
+
# assertion here. ref: https://rspec.info/features/3-12/rspec-expectations/built-in-matchers/
|
|
33
|
+
# validator = Petstore::EnumTest::EnumAttributeValidator.new('String', ["address_message"])
|
|
34
|
+
# validator.allowable_values.each do |value|
|
|
35
|
+
# expect { instance.name = value }.not_to raise_error
|
|
36
|
+
# end
|
|
37
|
+
end
|
|
38
|
+
end
|
|
39
|
+
|
|
40
|
+
describe 'test attribute "parameters"' do
|
|
41
|
+
it 'should work' do
|
|
42
|
+
# assertion here. ref: https://rspec.info/features/3-12/rspec-expectations/built-in-matchers/
|
|
43
|
+
end
|
|
44
|
+
end
|
|
45
|
+
|
|
46
|
+
end
|
|
@@ -30,7 +30,7 @@ describe Zernio::SendInboxMessageRequestInteractive do
|
|
|
30
30
|
describe 'test attribute "type"' do
|
|
31
31
|
it 'should work' do
|
|
32
32
|
# assertion here. ref: https://rspec.info/features/3-12/rspec-expectations/built-in-matchers/
|
|
33
|
-
# validator = Petstore::EnumTest::EnumAttributeValidator.new('String', ["list", "cta_url", "flow", "location_request_message", "request_contact_info", "voice_call", "product", "product_list", "catalog_message", "carousel"])
|
|
33
|
+
# validator = Petstore::EnumTest::EnumAttributeValidator.new('String', ["list", "cta_url", "flow", "location_request_message", "request_contact_info", "voice_call", "product", "product_list", "catalog_message", "carousel", "address_message"])
|
|
34
34
|
# validator.allowable_values.each do |value|
|
|
35
35
|
# expect { instance.type = value }.not_to raise_error
|
|
36
36
|
# end
|
|
@@ -91,6 +91,12 @@ describe Zernio::WebhookPayloadMessageMetadata do
|
|
|
91
91
|
end
|
|
92
92
|
end
|
|
93
93
|
|
|
94
|
+
describe 'test attribute "nfm_reply_name"' do
|
|
95
|
+
it 'should work' do
|
|
96
|
+
# assertion here. ref: https://rspec.info/features/3-12/rspec-expectations/built-in-matchers/
|
|
97
|
+
end
|
|
98
|
+
end
|
|
99
|
+
|
|
94
100
|
describe 'test attribute "order"' do
|
|
95
101
|
it 'should work' do
|
|
96
102
|
# assertion here. ref: https://rspec.info/features/3-12/rspec-expectations/built-in-matchers/
|
metadata
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
|
2
2
|
name: zernio-sdk
|
|
3
3
|
version: !ruby/object:Gem::Version
|
|
4
|
-
version: 0.0.
|
|
4
|
+
version: 0.0.745
|
|
5
5
|
platform: ruby
|
|
6
6
|
authors:
|
|
7
7
|
- OpenAPI-Generator
|
|
@@ -1367,6 +1367,8 @@ files:
|
|
|
1367
1367
|
- docs/SendInboxMessageRequestInteractiveAction.md
|
|
1368
1368
|
- docs/SendInboxMessageRequestInteractiveActionOneOf.md
|
|
1369
1369
|
- docs/SendInboxMessageRequestInteractiveActionOneOf1.md
|
|
1370
|
+
- docs/SendInboxMessageRequestInteractiveActionOneOf10.md
|
|
1371
|
+
- docs/SendInboxMessageRequestInteractiveActionOneOf10Parameters.md
|
|
1370
1372
|
- docs/SendInboxMessageRequestInteractiveActionOneOf1Parameters.md
|
|
1371
1373
|
- docs/SendInboxMessageRequestInteractiveActionOneOf2.md
|
|
1372
1374
|
- docs/SendInboxMessageRequestInteractiveActionOneOf2Parameters.md
|
|
@@ -3169,6 +3171,8 @@ files:
|
|
|
3169
3171
|
- lib/zernio-sdk/models/send_inbox_message_request_interactive_action.rb
|
|
3170
3172
|
- lib/zernio-sdk/models/send_inbox_message_request_interactive_action_one_of.rb
|
|
3171
3173
|
- lib/zernio-sdk/models/send_inbox_message_request_interactive_action_one_of1.rb
|
|
3174
|
+
- lib/zernio-sdk/models/send_inbox_message_request_interactive_action_one_of10.rb
|
|
3175
|
+
- lib/zernio-sdk/models/send_inbox_message_request_interactive_action_one_of10_parameters.rb
|
|
3172
3176
|
- lib/zernio-sdk/models/send_inbox_message_request_interactive_action_one_of1_parameters.rb
|
|
3173
3177
|
- lib/zernio-sdk/models/send_inbox_message_request_interactive_action_one_of2.rb
|
|
3174
3178
|
- lib/zernio-sdk/models/send_inbox_message_request_interactive_action_one_of2_parameters.rb
|
|
@@ -4943,6 +4947,8 @@ files:
|
|
|
4943
4947
|
- spec/models/send_inbox_message_request_contacts_inner_name_spec.rb
|
|
4944
4948
|
- spec/models/send_inbox_message_request_contacts_inner_phones_inner_spec.rb
|
|
4945
4949
|
- spec/models/send_inbox_message_request_contacts_inner_spec.rb
|
|
4950
|
+
- spec/models/send_inbox_message_request_interactive_action_one_of10_parameters_spec.rb
|
|
4951
|
+
- spec/models/send_inbox_message_request_interactive_action_one_of10_spec.rb
|
|
4946
4952
|
- spec/models/send_inbox_message_request_interactive_action_one_of1_parameters_spec.rb
|
|
4947
4953
|
- spec/models/send_inbox_message_request_interactive_action_one_of1_spec.rb
|
|
4948
4954
|
- spec/models/send_inbox_message_request_interactive_action_one_of2_parameters_spec.rb
|
|
@@ -6530,6 +6536,7 @@ test_files:
|
|
|
6530
6536
|
- spec/models/list_comment_automation_logs200_response_misses_samples_inner_spec.rb
|
|
6531
6537
|
- spec/models/get_ad_insights_report200_response_paging_spec.rb
|
|
6532
6538
|
- spec/models/list_broadcast_recipients200_response_summary_spec.rb
|
|
6539
|
+
- spec/models/send_inbox_message_request_interactive_action_one_of10_parameters_spec.rb
|
|
6533
6540
|
- spec/models/create_voice_web_session200_response_spec.rb
|
|
6534
6541
|
- spec/models/update_linked_in_organization_request_spec.rb
|
|
6535
6542
|
- spec/models/create_blog_article201_response_spec.rb
|
|
@@ -6744,6 +6751,7 @@ test_files:
|
|
|
6744
6751
|
- spec/models/get_linked_in_bid_pricing200_response_pricing_suggested_bid_spec.rb
|
|
6745
6752
|
- spec/models/get_sequence200_response_spec.rb
|
|
6746
6753
|
- spec/models/get_inbox_conversation_messages200_response_pagination_spec.rb
|
|
6754
|
+
- spec/models/send_inbox_message_request_interactive_action_one_of10_spec.rb
|
|
6747
6755
|
- spec/models/validate_post_request_spec.rb
|
|
6748
6756
|
- spec/models/create_discord_scheduled_event_request_entity_one_of1_spec.rb
|
|
6749
6757
|
- spec/models/get_google_business_location_details200_response_service_items_inner_structured_service_item_spec.rb
|