sentdm 0.13.1 → 0.15.0
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/CHANGELOG.md +16 -0
- data/README.md +1 -1
- data/lib/sentdm/models/contact_response.rb +15 -1
- data/lib/sentdm/models/contact_update_params.rb +14 -1
- data/lib/sentdm/models/message_retrieve_activities_response.rb +11 -1
- data/lib/sentdm/models/message_retrieve_status_response.rb +12 -5
- data/lib/sentdm/models/webhook_create_params.rb +10 -1
- data/lib/sentdm/models/webhook_list_event_types_response.rb +13 -1
- data/lib/sentdm/models/webhook_response.rb +9 -1
- data/lib/sentdm/models/webhook_update_params.rb +10 -1
- data/lib/sentdm/resources/contacts.rb +3 -1
- data/lib/sentdm/resources/webhooks.rb +6 -2
- data/lib/sentdm/version.rb +1 -1
- data/rbi/sentdm/models/contact_response.rbi +14 -0
- data/rbi/sentdm/models/contact_update_params.rbi +18 -0
- data/rbi/sentdm/models/message_retrieve_activities_response.rbi +12 -0
- data/rbi/sentdm/models/message_retrieve_status_response.rbi +15 -12
- data/rbi/sentdm/models/webhook_create_params.rbi +6 -0
- data/rbi/sentdm/models/webhook_list_event_types_response.rbi +15 -3
- data/rbi/sentdm/models/webhook_response.rbi +6 -0
- data/rbi/sentdm/models/webhook_update_params.rbi +6 -0
- data/rbi/sentdm/resources/contacts.rbi +8 -0
- data/rbi/sentdm/resources/webhooks.rbi +6 -0
- data/sig/sentdm/models/contact_response.rbs +5 -0
- data/sig/sentdm/models/contact_update_params.rbs +5 -0
- data/sig/sentdm/models/message_retrieve_activities_response.rbs +5 -0
- data/sig/sentdm/models/message_retrieve_status_response.rbs +15 -12
- data/sig/sentdm/models/webhook_create_params.rbs +5 -0
- data/sig/sentdm/models/webhook_list_event_types_response.rbs +13 -3
- data/sig/sentdm/models/webhook_response.rbs +5 -0
- data/sig/sentdm/models/webhook_update_params.rbs +5 -0
- data/sig/sentdm/resources/contacts.rbs +1 -0
- data/sig/sentdm/resources/webhooks.rbs +2 -0
- metadata +2 -2
checksums.yaml
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
---
|
|
2
2
|
SHA256:
|
|
3
|
-
metadata.gz:
|
|
4
|
-
data.tar.gz:
|
|
3
|
+
metadata.gz: 4d991654f4a9e02eb0875ca96e4721e3442dae7bbec0ff4078333628cca5f7a1
|
|
4
|
+
data.tar.gz: 4d57c9c5beaa57188637bf293742f4d1575a7b43b7f28f54ffc694b661fc3a92
|
|
5
5
|
SHA512:
|
|
6
|
-
metadata.gz:
|
|
7
|
-
data.tar.gz:
|
|
6
|
+
metadata.gz: 95f4ddee5e276312271679177dcc209b42ce6c0270dacdf01f6eb5c6bf422b960f6df824e5dd313e67f176ab07a7612b05795ed4641dc3217f87916a931d8b53
|
|
7
|
+
data.tar.gz: 1d074dc2fd83b3cc8f9fe0e7c6f355248b3926d752d930482e3121174a401f720973c627ad0242d92c6ae6435695b799dc22726335cebc8c10ae8eadec2e8601
|
data/CHANGELOG.md
CHANGED
|
@@ -1,5 +1,21 @@
|
|
|
1
1
|
# Changelog
|
|
2
2
|
|
|
3
|
+
## 0.15.0 (2026-04-21)
|
|
4
|
+
|
|
5
|
+
Full Changelog: [v0.14.0...v0.15.0](https://github.com/sentdm/sent-dm-ruby/compare/v0.14.0...v0.15.0)
|
|
6
|
+
|
|
7
|
+
### Features
|
|
8
|
+
|
|
9
|
+
* **api:** api update ([766fd2a](https://github.com/sentdm/sent-dm-ruby/commit/766fd2ab76879a691e35141696b5ea2d2acbb3fc))
|
|
10
|
+
|
|
11
|
+
## 0.14.0 (2026-04-20)
|
|
12
|
+
|
|
13
|
+
Full Changelog: [v0.13.1...v0.14.0](https://github.com/sentdm/sent-dm-ruby/compare/v0.13.1...v0.14.0)
|
|
14
|
+
|
|
15
|
+
### Features
|
|
16
|
+
|
|
17
|
+
* **api:** api update ([27832ee](https://github.com/sentdm/sent-dm-ruby/commit/27832ee8fb7acf613d181af0a485f79d6523ed26))
|
|
18
|
+
|
|
3
19
|
## 0.13.1 (2026-04-10)
|
|
4
20
|
|
|
5
21
|
Full Changelog: [v0.13.0...v0.13.1](https://github.com/sentdm/sent-dm-ruby/compare/v0.13.0...v0.13.1)
|
data/README.md
CHANGED
|
@@ -15,6 +15,15 @@ module Sentdm
|
|
|
15
15
|
# @return [String, nil]
|
|
16
16
|
optional :available_channels, String
|
|
17
17
|
|
|
18
|
+
# @!attribute channel_consent
|
|
19
|
+
# Consent status by channel. Keys: "sms", "whatsapp". Values: "opted_in",
|
|
20
|
+
# "opted_out". All channels will have the same status because consent is global
|
|
21
|
+
# across channels. A STOP on any channel opts out of all channels; a START opts in
|
|
22
|
+
# to all.
|
|
23
|
+
#
|
|
24
|
+
# @return [Hash{Symbol=>String}, nil]
|
|
25
|
+
optional :channel_consent, Sentdm::Internal::Type::HashOf[String], nil?: true
|
|
26
|
+
|
|
18
27
|
# @!attribute country_code
|
|
19
28
|
# Country calling code (e.g., 1 for US/Canada)
|
|
20
29
|
#
|
|
@@ -87,13 +96,18 @@ module Sentdm
|
|
|
87
96
|
# @return [Time, nil]
|
|
88
97
|
optional :updated_at, Time, nil?: true
|
|
89
98
|
|
|
90
|
-
# @!method initialize(id: nil, available_channels: nil, country_code: nil, created_at: nil, default_channel: nil, format_e164: nil, format_international: nil, format_national: nil, format_rfc: nil, is_inherited: nil, opt_out: nil, phone_number: nil, region_code: nil, updated_at: nil)
|
|
99
|
+
# @!method initialize(id: nil, available_channels: nil, channel_consent: nil, country_code: nil, created_at: nil, default_channel: nil, format_e164: nil, format_international: nil, format_national: nil, format_rfc: nil, is_inherited: nil, opt_out: nil, phone_number: nil, region_code: nil, updated_at: nil)
|
|
100
|
+
# Some parameter documentations has been truncated, see
|
|
101
|
+
# {Sentdm::Models::ContactResponse} for more details.
|
|
102
|
+
#
|
|
91
103
|
# Contact response for v3 API Uses snake_case for JSON property names
|
|
92
104
|
#
|
|
93
105
|
# @param id [String] Unique identifier for the contact
|
|
94
106
|
#
|
|
95
107
|
# @param available_channels [String] Comma-separated list of available messaging channels (e.g., "sms,whatsapp")
|
|
96
108
|
#
|
|
109
|
+
# @param channel_consent [Hash{Symbol=>String}, nil] Consent status by channel. Keys: "sms", "whatsapp". Values: "opted_in", "opted_o
|
|
110
|
+
#
|
|
97
111
|
# @param country_code [String] Country calling code (e.g., 1 for US/Canada)
|
|
98
112
|
#
|
|
99
113
|
# @param created_at [Time] When the contact was created
|
|
@@ -12,6 +12,17 @@ module Sentdm
|
|
|
12
12
|
# @return [String]
|
|
13
13
|
required :id, String
|
|
14
14
|
|
|
15
|
+
# @!attribute channel_consent
|
|
16
|
+
# Consent status by channel. Keys: "sms", "whatsapp". Values: "opted_in",
|
|
17
|
+
# "opted_out". All entries must have the same status — mixed values (e.g., sms:
|
|
18
|
+
# opted_out + whatsapp: opted_in) are rejected with 400. The provided status is
|
|
19
|
+
# applied to ALL channels regardless of which keys are specified, because consent
|
|
20
|
+
# is global across channels. When provided, takes precedence over the opt_out
|
|
21
|
+
# field.
|
|
22
|
+
#
|
|
23
|
+
# @return [Hash{Symbol=>String}, nil]
|
|
24
|
+
optional :channel_consent, Sentdm::Internal::Type::HashOf[String], nil?: true
|
|
25
|
+
|
|
15
26
|
# @!attribute default_channel
|
|
16
27
|
# Default messaging channel: "sms" or "whatsapp"
|
|
17
28
|
#
|
|
@@ -41,12 +52,14 @@ module Sentdm
|
|
|
41
52
|
# @return [String, nil]
|
|
42
53
|
optional :x_profile_id, String
|
|
43
54
|
|
|
44
|
-
# @!method initialize(id:, default_channel: nil, opt_out: nil, sandbox: nil, idempotency_key: nil, x_profile_id: nil, request_options: {})
|
|
55
|
+
# @!method initialize(id:, channel_consent: nil, default_channel: nil, opt_out: nil, sandbox: nil, idempotency_key: nil, x_profile_id: nil, request_options: {})
|
|
45
56
|
# Some parameter documentations has been truncated, see
|
|
46
57
|
# {Sentdm::Models::ContactUpdateParams} for more details.
|
|
47
58
|
#
|
|
48
59
|
# @param id [String]
|
|
49
60
|
#
|
|
61
|
+
# @param channel_consent [Hash{Symbol=>String}, nil] Consent status by channel. Keys: "sms", "whatsapp". Values: "opted_in", "opted_o
|
|
62
|
+
#
|
|
50
63
|
# @param default_channel [String, nil] Default messaging channel: "sms" or "whatsapp"
|
|
51
64
|
#
|
|
52
65
|
# @param opt_out [Boolean, nil] Whether the contact has opted out of messaging
|
|
@@ -75,6 +75,14 @@ module Sentdm
|
|
|
75
75
|
# @return [String, nil]
|
|
76
76
|
optional :description, String
|
|
77
77
|
|
|
78
|
+
# @!attribute from
|
|
79
|
+
# Sender phone number for this activity (the customer's sending number for
|
|
80
|
+
# outbound, the external sender for inbound). Null when not reported by the
|
|
81
|
+
# provider.
|
|
82
|
+
#
|
|
83
|
+
# @return [String, nil]
|
|
84
|
+
optional :from, String, nil?: true
|
|
85
|
+
|
|
78
86
|
# @!attribute price
|
|
79
87
|
# Channel cost for this activity (e.g., SMS/WhatsApp provider cost), formatted to
|
|
80
88
|
# 4 decimal places.
|
|
@@ -94,7 +102,7 @@ module Sentdm
|
|
|
94
102
|
# @return [Time, nil]
|
|
95
103
|
optional :timestamp, Time
|
|
96
104
|
|
|
97
|
-
# @!method initialize(active_contact_price: nil, description: nil, price: nil, status: nil, timestamp: nil)
|
|
105
|
+
# @!method initialize(active_contact_price: nil, description: nil, from: nil, price: nil, status: nil, timestamp: nil)
|
|
98
106
|
# Some parameter documentations has been truncated, see
|
|
99
107
|
# {Sentdm::Models::MessageRetrieveActivitiesResponse::Data::Activity} for more
|
|
100
108
|
# details.
|
|
@@ -105,6 +113,8 @@ module Sentdm
|
|
|
105
113
|
#
|
|
106
114
|
# @param description [String] Human-readable description of the activity
|
|
107
115
|
#
|
|
116
|
+
# @param from [String, nil] Sender phone number for this activity (the customer's sending number for outboun
|
|
117
|
+
#
|
|
108
118
|
# @param price [String, nil] Channel cost for this activity (e.g., SMS/WhatsApp provider cost), formatted to
|
|
109
119
|
#
|
|
110
120
|
# @param status [String] Activity status (e.g., QUEUED, PROCESSED, ROUTED, SENT, DELIVERED, FAILED)
|
|
@@ -71,6 +71,11 @@ module Sentdm
|
|
|
71
71
|
# @return [String, nil]
|
|
72
72
|
optional :customer_id, String
|
|
73
73
|
|
|
74
|
+
# @!attribute direction
|
|
75
|
+
#
|
|
76
|
+
# @return [String, nil]
|
|
77
|
+
optional :direction, String
|
|
78
|
+
|
|
74
79
|
# @!attribute events
|
|
75
80
|
#
|
|
76
81
|
# @return [Array<Sentdm::Models::MessageRetrieveStatusResponse::Data::Event>, nil]
|
|
@@ -115,7 +120,7 @@ module Sentdm
|
|
|
115
120
|
# @!attribute template_category
|
|
116
121
|
#
|
|
117
122
|
# @return [String, nil]
|
|
118
|
-
optional :template_category, String
|
|
123
|
+
optional :template_category, String, nil?: true
|
|
119
124
|
|
|
120
125
|
# @!attribute template_id
|
|
121
126
|
#
|
|
@@ -125,9 +130,9 @@ module Sentdm
|
|
|
125
130
|
# @!attribute template_name
|
|
126
131
|
#
|
|
127
132
|
# @return [String, nil]
|
|
128
|
-
optional :template_name, String
|
|
133
|
+
optional :template_name, String, nil?: true
|
|
129
134
|
|
|
130
|
-
# @!method initialize(id: nil, active_contact_price: nil, channel: nil, contact_id: nil, created_at: nil, customer_id: nil, events: nil, message_body: nil, phone: nil, phone_international: nil, price: nil, region_code: nil, status: nil, template_category: nil, template_id: nil, template_name: nil)
|
|
135
|
+
# @!method initialize(id: nil, active_contact_price: nil, channel: nil, contact_id: nil, created_at: nil, customer_id: nil, direction: nil, events: nil, message_body: nil, phone: nil, phone_international: nil, price: nil, region_code: nil, status: nil, template_category: nil, template_id: nil, template_name: nil)
|
|
131
136
|
# Some parameter documentations has been truncated, see
|
|
132
137
|
# {Sentdm::Models::MessageRetrieveStatusResponse::Data} for more details.
|
|
133
138
|
#
|
|
@@ -145,6 +150,8 @@ module Sentdm
|
|
|
145
150
|
#
|
|
146
151
|
# @param customer_id [String]
|
|
147
152
|
#
|
|
153
|
+
# @param direction [String]
|
|
154
|
+
#
|
|
148
155
|
# @param events [Array<Sentdm::Models::MessageRetrieveStatusResponse::Data::Event>, nil]
|
|
149
156
|
#
|
|
150
157
|
# @param message_body [Sentdm::Models::MessageRetrieveStatusResponse::Data::MessageBody, nil] Structured message body format for database storage.
|
|
@@ -159,11 +166,11 @@ module Sentdm
|
|
|
159
166
|
#
|
|
160
167
|
# @param status [String]
|
|
161
168
|
#
|
|
162
|
-
# @param template_category [String]
|
|
169
|
+
# @param template_category [String, nil]
|
|
163
170
|
#
|
|
164
171
|
# @param template_id [String, nil]
|
|
165
172
|
#
|
|
166
|
-
# @param template_name [String]
|
|
173
|
+
# @param template_name [String, nil]
|
|
167
174
|
|
|
168
175
|
class Event < Sentdm::Internal::Type::BaseModel
|
|
169
176
|
# @!attribute description
|
|
@@ -17,6 +17,13 @@ module Sentdm
|
|
|
17
17
|
# @return [String, nil]
|
|
18
18
|
optional :endpoint_url, String
|
|
19
19
|
|
|
20
|
+
# @!attribute event_filters
|
|
21
|
+
#
|
|
22
|
+
# @return [Hash{Symbol=>Array<String>}, nil]
|
|
23
|
+
optional :event_filters,
|
|
24
|
+
Sentdm::Internal::Type::HashOf[Sentdm::Internal::Type::ArrayOf[String]],
|
|
25
|
+
nil?: true
|
|
26
|
+
|
|
20
27
|
# @!attribute event_types
|
|
21
28
|
#
|
|
22
29
|
# @return [Array<String>, nil]
|
|
@@ -49,7 +56,7 @@ module Sentdm
|
|
|
49
56
|
# @return [String, nil]
|
|
50
57
|
optional :x_profile_id, String
|
|
51
58
|
|
|
52
|
-
# @!method initialize(display_name: nil, endpoint_url: nil, event_types: nil, retry_count: nil, sandbox: nil, timeout_seconds: nil, idempotency_key: nil, x_profile_id: nil, request_options: {})
|
|
59
|
+
# @!method initialize(display_name: nil, endpoint_url: nil, event_filters: nil, event_types: nil, retry_count: nil, sandbox: nil, timeout_seconds: nil, idempotency_key: nil, x_profile_id: nil, request_options: {})
|
|
53
60
|
# Some parameter documentations has been truncated, see
|
|
54
61
|
# {Sentdm::Models::WebhookCreateParams} for more details.
|
|
55
62
|
#
|
|
@@ -57,6 +64,8 @@ module Sentdm
|
|
|
57
64
|
#
|
|
58
65
|
# @param endpoint_url [String]
|
|
59
66
|
#
|
|
67
|
+
# @param event_filters [Hash{Symbol=>Array<String>}, nil]
|
|
68
|
+
#
|
|
60
69
|
# @param event_types [Array<String>]
|
|
61
70
|
#
|
|
62
71
|
# @param retry_count [Integer]
|
|
@@ -63,6 +63,11 @@ module Sentdm
|
|
|
63
63
|
# @return [String, nil]
|
|
64
64
|
optional :display_name, String
|
|
65
65
|
|
|
66
|
+
# @!attribute event_type
|
|
67
|
+
#
|
|
68
|
+
# @return [String, nil]
|
|
69
|
+
optional :event_type, String, nil?: true
|
|
70
|
+
|
|
66
71
|
# @!attribute is_active
|
|
67
72
|
#
|
|
68
73
|
# @return [Boolean, nil]
|
|
@@ -73,11 +78,18 @@ module Sentdm
|
|
|
73
78
|
# @return [String, nil]
|
|
74
79
|
optional :name, String
|
|
75
80
|
|
|
76
|
-
# @!
|
|
81
|
+
# @!attribute sub_types
|
|
82
|
+
#
|
|
83
|
+
# @return [Array<Object>, nil]
|
|
84
|
+
optional :sub_types, Sentdm::Internal::Type::ArrayOf[Sentdm::Internal::Type::Unknown], nil?: true
|
|
85
|
+
|
|
86
|
+
# @!method initialize(description: nil, display_name: nil, event_type: nil, is_active: nil, name: nil, sub_types: nil)
|
|
77
87
|
# @param description [String, nil]
|
|
78
88
|
# @param display_name [String]
|
|
89
|
+
# @param event_type [String, nil]
|
|
79
90
|
# @param is_active [Boolean]
|
|
80
91
|
# @param name [String]
|
|
92
|
+
# @param sub_types [Array<Object>, nil]
|
|
81
93
|
end
|
|
82
94
|
end
|
|
83
95
|
end
|
|
@@ -28,6 +28,13 @@ module Sentdm
|
|
|
28
28
|
# @return [String, nil]
|
|
29
29
|
optional :endpoint_url, String
|
|
30
30
|
|
|
31
|
+
# @!attribute event_filters
|
|
32
|
+
#
|
|
33
|
+
# @return [Hash{Symbol=>Array<String>}, nil]
|
|
34
|
+
optional :event_filters,
|
|
35
|
+
Sentdm::Internal::Type::HashOf[Sentdm::Internal::Type::ArrayOf[String]],
|
|
36
|
+
nil?: true
|
|
37
|
+
|
|
31
38
|
# @!attribute event_types
|
|
32
39
|
#
|
|
33
40
|
# @return [Array<String>, nil]
|
|
@@ -68,12 +75,13 @@ module Sentdm
|
|
|
68
75
|
# @return [Time, nil]
|
|
69
76
|
optional :updated_at, Time, nil?: true
|
|
70
77
|
|
|
71
|
-
# @!method initialize(id: nil, consecutive_failures: nil, created_at: nil, display_name: nil, endpoint_url: nil, event_types: nil, is_active: nil, last_delivery_attempt_at: nil, last_successful_delivery_at: nil, retry_count: nil, signing_secret: nil, timeout_seconds: nil, updated_at: nil)
|
|
78
|
+
# @!method initialize(id: nil, consecutive_failures: nil, created_at: nil, display_name: nil, endpoint_url: nil, event_filters: nil, event_types: nil, is_active: nil, last_delivery_attempt_at: nil, last_successful_delivery_at: nil, retry_count: nil, signing_secret: nil, timeout_seconds: nil, updated_at: nil)
|
|
72
79
|
# @param id [String]
|
|
73
80
|
# @param consecutive_failures [Integer]
|
|
74
81
|
# @param created_at [Time]
|
|
75
82
|
# @param display_name [String]
|
|
76
83
|
# @param endpoint_url [String]
|
|
84
|
+
# @param event_filters [Hash{Symbol=>Array<String>}, nil]
|
|
77
85
|
# @param event_types [Array<String>]
|
|
78
86
|
# @param is_active [Boolean]
|
|
79
87
|
# @param last_delivery_attempt_at [Time, nil]
|
|
@@ -22,6 +22,13 @@ module Sentdm
|
|
|
22
22
|
# @return [String, nil]
|
|
23
23
|
optional :endpoint_url, String
|
|
24
24
|
|
|
25
|
+
# @!attribute event_filters
|
|
26
|
+
#
|
|
27
|
+
# @return [Hash{Symbol=>Array<String>}, nil]
|
|
28
|
+
optional :event_filters,
|
|
29
|
+
Sentdm::Internal::Type::HashOf[Sentdm::Internal::Type::ArrayOf[String]],
|
|
30
|
+
nil?: true
|
|
31
|
+
|
|
25
32
|
# @!attribute event_types
|
|
26
33
|
#
|
|
27
34
|
# @return [Array<String>, nil]
|
|
@@ -54,7 +61,7 @@ module Sentdm
|
|
|
54
61
|
# @return [String, nil]
|
|
55
62
|
optional :x_profile_id, String
|
|
56
63
|
|
|
57
|
-
# @!method initialize(id:, display_name: nil, endpoint_url: nil, event_types: nil, retry_count: nil, sandbox: nil, timeout_seconds: nil, idempotency_key: nil, x_profile_id: nil, request_options: {})
|
|
64
|
+
# @!method initialize(id:, display_name: nil, endpoint_url: nil, event_filters: nil, event_types: nil, retry_count: nil, sandbox: nil, timeout_seconds: nil, idempotency_key: nil, x_profile_id: nil, request_options: {})
|
|
58
65
|
# Some parameter documentations has been truncated, see
|
|
59
66
|
# {Sentdm::Models::WebhookUpdateParams} for more details.
|
|
60
67
|
#
|
|
@@ -64,6 +71,8 @@ module Sentdm
|
|
|
64
71
|
#
|
|
65
72
|
# @param endpoint_url [String]
|
|
66
73
|
#
|
|
74
|
+
# @param event_filters [Hash{Symbol=>Array<String>}, nil]
|
|
75
|
+
#
|
|
67
76
|
# @param event_types [Array<String>]
|
|
68
77
|
#
|
|
69
78
|
# @param retry_count [Integer]
|
|
@@ -73,10 +73,12 @@ module Sentdm
|
|
|
73
73
|
# Updates a contact's default channel and/or opt-out status. Inherited contacts
|
|
74
74
|
# cannot be updated.
|
|
75
75
|
#
|
|
76
|
-
# @overload update(id, default_channel: nil, opt_out: nil, sandbox: nil, idempotency_key: nil, x_profile_id: nil, request_options: {})
|
|
76
|
+
# @overload update(id, channel_consent: nil, default_channel: nil, opt_out: nil, sandbox: nil, idempotency_key: nil, x_profile_id: nil, request_options: {})
|
|
77
77
|
#
|
|
78
78
|
# @param id [String] Path param: Contact ID from route parameter
|
|
79
79
|
#
|
|
80
|
+
# @param channel_consent [Hash{Symbol=>String}, nil] Body param: Consent status by channel. Keys: "sms", "whatsapp". Values: "opted_i
|
|
81
|
+
#
|
|
80
82
|
# @param default_channel [String, nil] Body param: Default messaging channel: "sms" or "whatsapp"
|
|
81
83
|
#
|
|
82
84
|
# @param opt_out [Boolean, nil] Body param: Whether the contact has opted out of messaging
|
|
@@ -9,12 +9,14 @@ module Sentdm
|
|
|
9
9
|
#
|
|
10
10
|
# Creates a new webhook endpoint for the authenticated customer.
|
|
11
11
|
#
|
|
12
|
-
# @overload create(display_name: nil, endpoint_url: nil, event_types: nil, retry_count: nil, sandbox: nil, timeout_seconds: nil, idempotency_key: nil, x_profile_id: nil, request_options: {})
|
|
12
|
+
# @overload create(display_name: nil, endpoint_url: nil, event_filters: nil, event_types: nil, retry_count: nil, sandbox: nil, timeout_seconds: nil, idempotency_key: nil, x_profile_id: nil, request_options: {})
|
|
13
13
|
#
|
|
14
14
|
# @param display_name [String] Body param
|
|
15
15
|
#
|
|
16
16
|
# @param endpoint_url [String] Body param
|
|
17
17
|
#
|
|
18
|
+
# @param event_filters [Hash{Symbol=>Array<String>}, nil] Body param
|
|
19
|
+
#
|
|
18
20
|
# @param event_types [Array<String>] Body param
|
|
19
21
|
#
|
|
20
22
|
# @param retry_count [Integer] Body param
|
|
@@ -77,7 +79,7 @@ module Sentdm
|
|
|
77
79
|
#
|
|
78
80
|
# Updates an existing webhook for the authenticated customer.
|
|
79
81
|
#
|
|
80
|
-
# @overload update(id, display_name: nil, endpoint_url: nil, event_types: nil, retry_count: nil, sandbox: nil, timeout_seconds: nil, idempotency_key: nil, x_profile_id: nil, request_options: {})
|
|
82
|
+
# @overload update(id, display_name: nil, endpoint_url: nil, event_filters: nil, event_types: nil, retry_count: nil, sandbox: nil, timeout_seconds: nil, idempotency_key: nil, x_profile_id: nil, request_options: {})
|
|
81
83
|
#
|
|
82
84
|
# @param id [String] Path param
|
|
83
85
|
#
|
|
@@ -85,6 +87,8 @@ module Sentdm
|
|
|
85
87
|
#
|
|
86
88
|
# @param endpoint_url [String] Body param
|
|
87
89
|
#
|
|
90
|
+
# @param event_filters [Hash{Symbol=>Array<String>}, nil] Body param
|
|
91
|
+
#
|
|
88
92
|
# @param event_types [Array<String>] Body param
|
|
89
93
|
#
|
|
90
94
|
# @param retry_count [Integer] Body param
|
data/lib/sentdm/version.rb
CHANGED
|
@@ -22,6 +22,13 @@ module Sentdm
|
|
|
22
22
|
sig { params(available_channels: String).void }
|
|
23
23
|
attr_writer :available_channels
|
|
24
24
|
|
|
25
|
+
# Consent status by channel. Keys: "sms", "whatsapp". Values: "opted_in",
|
|
26
|
+
# "opted_out". All channels will have the same status because consent is global
|
|
27
|
+
# across channels. A STOP on any channel opts out of all channels; a START opts in
|
|
28
|
+
# to all.
|
|
29
|
+
sig { returns(T.nilable(T::Hash[Symbol, String])) }
|
|
30
|
+
attr_accessor :channel_consent
|
|
31
|
+
|
|
25
32
|
# Country calling code (e.g., 1 for US/Canada)
|
|
26
33
|
sig { returns(T.nilable(String)) }
|
|
27
34
|
attr_reader :country_code
|
|
@@ -108,6 +115,7 @@ module Sentdm
|
|
|
108
115
|
params(
|
|
109
116
|
id: String,
|
|
110
117
|
available_channels: String,
|
|
118
|
+
channel_consent: T.nilable(T::Hash[Symbol, String]),
|
|
111
119
|
country_code: String,
|
|
112
120
|
created_at: Time,
|
|
113
121
|
default_channel: String,
|
|
@@ -127,6 +135,11 @@ module Sentdm
|
|
|
127
135
|
id: nil,
|
|
128
136
|
# Comma-separated list of available messaging channels (e.g., "sms,whatsapp")
|
|
129
137
|
available_channels: nil,
|
|
138
|
+
# Consent status by channel. Keys: "sms", "whatsapp". Values: "opted_in",
|
|
139
|
+
# "opted_out". All channels will have the same status because consent is global
|
|
140
|
+
# across channels. A STOP on any channel opts out of all channels; a START opts in
|
|
141
|
+
# to all.
|
|
142
|
+
channel_consent: nil,
|
|
130
143
|
# Country calling code (e.g., 1 for US/Canada)
|
|
131
144
|
country_code: nil,
|
|
132
145
|
# When the contact was created
|
|
@@ -159,6 +172,7 @@ module Sentdm
|
|
|
159
172
|
{
|
|
160
173
|
id: String,
|
|
161
174
|
available_channels: String,
|
|
175
|
+
channel_consent: T.nilable(T::Hash[Symbol, String]),
|
|
162
176
|
country_code: String,
|
|
163
177
|
created_at: Time,
|
|
164
178
|
default_channel: String,
|
|
@@ -14,6 +14,15 @@ module Sentdm
|
|
|
14
14
|
sig { returns(String) }
|
|
15
15
|
attr_accessor :id
|
|
16
16
|
|
|
17
|
+
# Consent status by channel. Keys: "sms", "whatsapp". Values: "opted_in",
|
|
18
|
+
# "opted_out". All entries must have the same status — mixed values (e.g., sms:
|
|
19
|
+
# opted_out + whatsapp: opted_in) are rejected with 400. The provided status is
|
|
20
|
+
# applied to ALL channels regardless of which keys are specified, because consent
|
|
21
|
+
# is global across channels. When provided, takes precedence over the opt_out
|
|
22
|
+
# field.
|
|
23
|
+
sig { returns(T.nilable(T::Hash[Symbol, String])) }
|
|
24
|
+
attr_accessor :channel_consent
|
|
25
|
+
|
|
17
26
|
# Default messaging channel: "sms" or "whatsapp"
|
|
18
27
|
sig { returns(T.nilable(String)) }
|
|
19
28
|
attr_accessor :default_channel
|
|
@@ -45,6 +54,7 @@ module Sentdm
|
|
|
45
54
|
sig do
|
|
46
55
|
params(
|
|
47
56
|
id: String,
|
|
57
|
+
channel_consent: T.nilable(T::Hash[Symbol, String]),
|
|
48
58
|
default_channel: T.nilable(String),
|
|
49
59
|
opt_out: T.nilable(T::Boolean),
|
|
50
60
|
sandbox: T::Boolean,
|
|
@@ -55,6 +65,13 @@ module Sentdm
|
|
|
55
65
|
end
|
|
56
66
|
def self.new(
|
|
57
67
|
id:,
|
|
68
|
+
# Consent status by channel. Keys: "sms", "whatsapp". Values: "opted_in",
|
|
69
|
+
# "opted_out". All entries must have the same status — mixed values (e.g., sms:
|
|
70
|
+
# opted_out + whatsapp: opted_in) are rejected with 400. The provided status is
|
|
71
|
+
# applied to ALL channels regardless of which keys are specified, because consent
|
|
72
|
+
# is global across channels. When provided, takes precedence over the opt_out
|
|
73
|
+
# field.
|
|
74
|
+
channel_consent: nil,
|
|
58
75
|
# Default messaging channel: "sms" or "whatsapp"
|
|
59
76
|
default_channel: nil,
|
|
60
77
|
# Whether the contact has opted out of messaging
|
|
@@ -72,6 +89,7 @@ module Sentdm
|
|
|
72
89
|
override.returns(
|
|
73
90
|
{
|
|
74
91
|
id: String,
|
|
92
|
+
channel_consent: T.nilable(T::Hash[Symbol, String]),
|
|
75
93
|
default_channel: T.nilable(String),
|
|
76
94
|
opt_out: T.nilable(T::Boolean),
|
|
77
95
|
sandbox: T::Boolean,
|
|
@@ -181,6 +181,12 @@ module Sentdm
|
|
|
181
181
|
sig { params(description: String).void }
|
|
182
182
|
attr_writer :description
|
|
183
183
|
|
|
184
|
+
# Sender phone number for this activity (the customer's sending number for
|
|
185
|
+
# outbound, the external sender for inbound). Null when not reported by the
|
|
186
|
+
# provider.
|
|
187
|
+
sig { returns(T.nilable(String)) }
|
|
188
|
+
attr_accessor :from
|
|
189
|
+
|
|
184
190
|
# Channel cost for this activity (e.g., SMS/WhatsApp provider cost), formatted to
|
|
185
191
|
# 4 decimal places.
|
|
186
192
|
sig { returns(T.nilable(String)) }
|
|
@@ -205,6 +211,7 @@ module Sentdm
|
|
|
205
211
|
params(
|
|
206
212
|
active_contact_price: T.nilable(String),
|
|
207
213
|
description: String,
|
|
214
|
+
from: T.nilable(String),
|
|
208
215
|
price: T.nilable(String),
|
|
209
216
|
status: String,
|
|
210
217
|
timestamp: Time
|
|
@@ -216,6 +223,10 @@ module Sentdm
|
|
|
216
223
|
active_contact_price: nil,
|
|
217
224
|
# Human-readable description of the activity
|
|
218
225
|
description: nil,
|
|
226
|
+
# Sender phone number for this activity (the customer's sending number for
|
|
227
|
+
# outbound, the external sender for inbound). Null when not reported by the
|
|
228
|
+
# provider.
|
|
229
|
+
from: nil,
|
|
219
230
|
# Channel cost for this activity (e.g., SMS/WhatsApp provider cost), formatted to
|
|
220
231
|
# 4 decimal places.
|
|
221
232
|
price: nil,
|
|
@@ -231,6 +242,7 @@ module Sentdm
|
|
|
231
242
|
{
|
|
232
243
|
active_contact_price: T.nilable(String),
|
|
233
244
|
description: String,
|
|
245
|
+
from: T.nilable(String),
|
|
234
246
|
price: T.nilable(String),
|
|
235
247
|
status: String,
|
|
236
248
|
timestamp: Time
|
|
@@ -128,6 +128,12 @@ module Sentdm
|
|
|
128
128
|
sig { params(customer_id: String).void }
|
|
129
129
|
attr_writer :customer_id
|
|
130
130
|
|
|
131
|
+
sig { returns(T.nilable(String)) }
|
|
132
|
+
attr_reader :direction
|
|
133
|
+
|
|
134
|
+
sig { params(direction: String).void }
|
|
135
|
+
attr_writer :direction
|
|
136
|
+
|
|
131
137
|
sig do
|
|
132
138
|
returns(
|
|
133
139
|
T.nilable(
|
|
@@ -188,19 +194,13 @@ module Sentdm
|
|
|
188
194
|
attr_writer :status
|
|
189
195
|
|
|
190
196
|
sig { returns(T.nilable(String)) }
|
|
191
|
-
|
|
192
|
-
|
|
193
|
-
sig { params(template_category: String).void }
|
|
194
|
-
attr_writer :template_category
|
|
197
|
+
attr_accessor :template_category
|
|
195
198
|
|
|
196
199
|
sig { returns(T.nilable(String)) }
|
|
197
200
|
attr_accessor :template_id
|
|
198
201
|
|
|
199
202
|
sig { returns(T.nilable(String)) }
|
|
200
|
-
|
|
201
|
-
|
|
202
|
-
sig { params(template_name: String).void }
|
|
203
|
-
attr_writer :template_name
|
|
203
|
+
attr_accessor :template_name
|
|
204
204
|
|
|
205
205
|
# Message response for v3 API — same shape as v2 with snake_case JSON conventions
|
|
206
206
|
sig do
|
|
@@ -211,6 +211,7 @@ module Sentdm
|
|
|
211
211
|
contact_id: String,
|
|
212
212
|
created_at: Time,
|
|
213
213
|
customer_id: String,
|
|
214
|
+
direction: String,
|
|
214
215
|
events:
|
|
215
216
|
T.nilable(
|
|
216
217
|
T::Array[
|
|
@@ -226,9 +227,9 @@ module Sentdm
|
|
|
226
227
|
price: T.nilable(Float),
|
|
227
228
|
region_code: String,
|
|
228
229
|
status: String,
|
|
229
|
-
template_category: String,
|
|
230
|
+
template_category: T.nilable(String),
|
|
230
231
|
template_id: T.nilable(String),
|
|
231
|
-
template_name: String
|
|
232
|
+
template_name: T.nilable(String)
|
|
232
233
|
).returns(T.attached_class)
|
|
233
234
|
end
|
|
234
235
|
def self.new(
|
|
@@ -238,6 +239,7 @@ module Sentdm
|
|
|
238
239
|
contact_id: nil,
|
|
239
240
|
created_at: nil,
|
|
240
241
|
customer_id: nil,
|
|
242
|
+
direction: nil,
|
|
241
243
|
events: nil,
|
|
242
244
|
# Structured message body format for database storage. Preserves channel-specific
|
|
243
245
|
# components (header, body, footer, buttons).
|
|
@@ -262,6 +264,7 @@ module Sentdm
|
|
|
262
264
|
contact_id: String,
|
|
263
265
|
created_at: Time,
|
|
264
266
|
customer_id: String,
|
|
267
|
+
direction: String,
|
|
265
268
|
events:
|
|
266
269
|
T.nilable(
|
|
267
270
|
T::Array[
|
|
@@ -277,9 +280,9 @@ module Sentdm
|
|
|
277
280
|
price: T.nilable(Float),
|
|
278
281
|
region_code: String,
|
|
279
282
|
status: String,
|
|
280
|
-
template_category: String,
|
|
283
|
+
template_category: T.nilable(String),
|
|
281
284
|
template_id: T.nilable(String),
|
|
282
|
-
template_name: String
|
|
285
|
+
template_name: T.nilable(String)
|
|
283
286
|
}
|
|
284
287
|
)
|
|
285
288
|
end
|
|
@@ -23,6 +23,9 @@ module Sentdm
|
|
|
23
23
|
sig { params(endpoint_url: String).void }
|
|
24
24
|
attr_writer :endpoint_url
|
|
25
25
|
|
|
26
|
+
sig { returns(T.nilable(T::Hash[Symbol, T::Array[String]])) }
|
|
27
|
+
attr_accessor :event_filters
|
|
28
|
+
|
|
26
29
|
sig { returns(T.nilable(T::Array[String])) }
|
|
27
30
|
attr_reader :event_types
|
|
28
31
|
|
|
@@ -65,6 +68,7 @@ module Sentdm
|
|
|
65
68
|
params(
|
|
66
69
|
display_name: String,
|
|
67
70
|
endpoint_url: String,
|
|
71
|
+
event_filters: T.nilable(T::Hash[Symbol, T::Array[String]]),
|
|
68
72
|
event_types: T::Array[String],
|
|
69
73
|
retry_count: Integer,
|
|
70
74
|
sandbox: T::Boolean,
|
|
@@ -77,6 +81,7 @@ module Sentdm
|
|
|
77
81
|
def self.new(
|
|
78
82
|
display_name: nil,
|
|
79
83
|
endpoint_url: nil,
|
|
84
|
+
event_filters: nil,
|
|
80
85
|
event_types: nil,
|
|
81
86
|
retry_count: nil,
|
|
82
87
|
# Sandbox flag - when true, the operation is simulated without side effects Useful
|
|
@@ -94,6 +99,7 @@ module Sentdm
|
|
|
94
99
|
{
|
|
95
100
|
display_name: String,
|
|
96
101
|
endpoint_url: String,
|
|
102
|
+
event_filters: T.nilable(T::Hash[Symbol, T::Array[String]]),
|
|
97
103
|
event_types: T::Array[String],
|
|
98
104
|
retry_count: Integer,
|
|
99
105
|
sandbox: T::Boolean,
|
|
@@ -159,6 +159,9 @@ module Sentdm
|
|
|
159
159
|
sig { params(display_name: String).void }
|
|
160
160
|
attr_writer :display_name
|
|
161
161
|
|
|
162
|
+
sig { returns(T.nilable(String)) }
|
|
163
|
+
attr_accessor :event_type
|
|
164
|
+
|
|
162
165
|
sig { returns(T.nilable(T::Boolean)) }
|
|
163
166
|
attr_reader :is_active
|
|
164
167
|
|
|
@@ -171,19 +174,26 @@ module Sentdm
|
|
|
171
174
|
sig { params(name: String).void }
|
|
172
175
|
attr_writer :name
|
|
173
176
|
|
|
177
|
+
sig { returns(T.nilable(T::Array[T.anything])) }
|
|
178
|
+
attr_accessor :sub_types
|
|
179
|
+
|
|
174
180
|
sig do
|
|
175
181
|
params(
|
|
176
182
|
description: T.nilable(String),
|
|
177
183
|
display_name: String,
|
|
184
|
+
event_type: T.nilable(String),
|
|
178
185
|
is_active: T::Boolean,
|
|
179
|
-
name: String
|
|
186
|
+
name: String,
|
|
187
|
+
sub_types: T.nilable(T::Array[T.anything])
|
|
180
188
|
).returns(T.attached_class)
|
|
181
189
|
end
|
|
182
190
|
def self.new(
|
|
183
191
|
description: nil,
|
|
184
192
|
display_name: nil,
|
|
193
|
+
event_type: nil,
|
|
185
194
|
is_active: nil,
|
|
186
|
-
name: nil
|
|
195
|
+
name: nil,
|
|
196
|
+
sub_types: nil
|
|
187
197
|
)
|
|
188
198
|
end
|
|
189
199
|
|
|
@@ -192,8 +202,10 @@ module Sentdm
|
|
|
192
202
|
{
|
|
193
203
|
description: T.nilable(String),
|
|
194
204
|
display_name: String,
|
|
205
|
+
event_type: T.nilable(String),
|
|
195
206
|
is_active: T::Boolean,
|
|
196
|
-
name: String
|
|
207
|
+
name: String,
|
|
208
|
+
sub_types: T.nilable(T::Array[T.anything])
|
|
197
209
|
}
|
|
198
210
|
)
|
|
199
211
|
end
|
|
@@ -38,6 +38,9 @@ module Sentdm
|
|
|
38
38
|
sig { params(endpoint_url: String).void }
|
|
39
39
|
attr_writer :endpoint_url
|
|
40
40
|
|
|
41
|
+
sig { returns(T.nilable(T::Hash[Symbol, T::Array[String]])) }
|
|
42
|
+
attr_accessor :event_filters
|
|
43
|
+
|
|
41
44
|
sig { returns(T.nilable(T::Array[String])) }
|
|
42
45
|
attr_reader :event_types
|
|
43
46
|
|
|
@@ -81,6 +84,7 @@ module Sentdm
|
|
|
81
84
|
created_at: Time,
|
|
82
85
|
display_name: String,
|
|
83
86
|
endpoint_url: String,
|
|
87
|
+
event_filters: T.nilable(T::Hash[Symbol, T::Array[String]]),
|
|
84
88
|
event_types: T::Array[String],
|
|
85
89
|
is_active: T::Boolean,
|
|
86
90
|
last_delivery_attempt_at: T.nilable(Time),
|
|
@@ -97,6 +101,7 @@ module Sentdm
|
|
|
97
101
|
created_at: nil,
|
|
98
102
|
display_name: nil,
|
|
99
103
|
endpoint_url: nil,
|
|
104
|
+
event_filters: nil,
|
|
100
105
|
event_types: nil,
|
|
101
106
|
is_active: nil,
|
|
102
107
|
last_delivery_attempt_at: nil,
|
|
@@ -116,6 +121,7 @@ module Sentdm
|
|
|
116
121
|
created_at: Time,
|
|
117
122
|
display_name: String,
|
|
118
123
|
endpoint_url: String,
|
|
124
|
+
event_filters: T.nilable(T::Hash[Symbol, T::Array[String]]),
|
|
119
125
|
event_types: T::Array[String],
|
|
120
126
|
is_active: T::Boolean,
|
|
121
127
|
last_delivery_attempt_at: T.nilable(Time),
|
|
@@ -26,6 +26,9 @@ module Sentdm
|
|
|
26
26
|
sig { params(endpoint_url: String).void }
|
|
27
27
|
attr_writer :endpoint_url
|
|
28
28
|
|
|
29
|
+
sig { returns(T.nilable(T::Hash[Symbol, T::Array[String]])) }
|
|
30
|
+
attr_accessor :event_filters
|
|
31
|
+
|
|
29
32
|
sig { returns(T.nilable(T::Array[String])) }
|
|
30
33
|
attr_reader :event_types
|
|
31
34
|
|
|
@@ -69,6 +72,7 @@ module Sentdm
|
|
|
69
72
|
id: String,
|
|
70
73
|
display_name: String,
|
|
71
74
|
endpoint_url: String,
|
|
75
|
+
event_filters: T.nilable(T::Hash[Symbol, T::Array[String]]),
|
|
72
76
|
event_types: T::Array[String],
|
|
73
77
|
retry_count: Integer,
|
|
74
78
|
sandbox: T::Boolean,
|
|
@@ -82,6 +86,7 @@ module Sentdm
|
|
|
82
86
|
id:,
|
|
83
87
|
display_name: nil,
|
|
84
88
|
endpoint_url: nil,
|
|
89
|
+
event_filters: nil,
|
|
85
90
|
event_types: nil,
|
|
86
91
|
retry_count: nil,
|
|
87
92
|
# Sandbox flag - when true, the operation is simulated without side effects Useful
|
|
@@ -100,6 +105,7 @@ module Sentdm
|
|
|
100
105
|
id: String,
|
|
101
106
|
display_name: String,
|
|
102
107
|
endpoint_url: String,
|
|
108
|
+
event_filters: T.nilable(T::Hash[Symbol, T::Array[String]]),
|
|
103
109
|
event_types: T::Array[String],
|
|
104
110
|
retry_count: Integer,
|
|
105
111
|
sandbox: T::Boolean,
|
|
@@ -58,6 +58,7 @@ module Sentdm
|
|
|
58
58
|
sig do
|
|
59
59
|
params(
|
|
60
60
|
id: String,
|
|
61
|
+
channel_consent: T.nilable(T::Hash[Symbol, String]),
|
|
61
62
|
default_channel: T.nilable(String),
|
|
62
63
|
opt_out: T.nilable(T::Boolean),
|
|
63
64
|
sandbox: T::Boolean,
|
|
@@ -69,6 +70,13 @@ module Sentdm
|
|
|
69
70
|
def update(
|
|
70
71
|
# Path param: Contact ID from route parameter
|
|
71
72
|
id,
|
|
73
|
+
# Body param: Consent status by channel. Keys: "sms", "whatsapp". Values:
|
|
74
|
+
# "opted_in", "opted_out". All entries must have the same status — mixed values
|
|
75
|
+
# (e.g., sms: opted_out + whatsapp: opted_in) are rejected with 400. The provided
|
|
76
|
+
# status is applied to ALL channels regardless of which keys are specified,
|
|
77
|
+
# because consent is global across channels. When provided, takes precedence over
|
|
78
|
+
# the opt_out field.
|
|
79
|
+
channel_consent: nil,
|
|
72
80
|
# Body param: Default messaging channel: "sms" or "whatsapp"
|
|
73
81
|
default_channel: nil,
|
|
74
82
|
# Body param: Whether the contact has opted out of messaging
|
|
@@ -9,6 +9,7 @@ module Sentdm
|
|
|
9
9
|
params(
|
|
10
10
|
display_name: String,
|
|
11
11
|
endpoint_url: String,
|
|
12
|
+
event_filters: T.nilable(T::Hash[Symbol, T::Array[String]]),
|
|
12
13
|
event_types: T::Array[String],
|
|
13
14
|
retry_count: Integer,
|
|
14
15
|
sandbox: T::Boolean,
|
|
@@ -24,6 +25,8 @@ module Sentdm
|
|
|
24
25
|
# Body param
|
|
25
26
|
endpoint_url: nil,
|
|
26
27
|
# Body param
|
|
28
|
+
event_filters: nil,
|
|
29
|
+
# Body param
|
|
27
30
|
event_types: nil,
|
|
28
31
|
# Body param
|
|
29
32
|
retry_count: nil,
|
|
@@ -67,6 +70,7 @@ module Sentdm
|
|
|
67
70
|
id: String,
|
|
68
71
|
display_name: String,
|
|
69
72
|
endpoint_url: String,
|
|
73
|
+
event_filters: T.nilable(T::Hash[Symbol, T::Array[String]]),
|
|
70
74
|
event_types: T::Array[String],
|
|
71
75
|
retry_count: Integer,
|
|
72
76
|
sandbox: T::Boolean,
|
|
@@ -84,6 +88,8 @@ module Sentdm
|
|
|
84
88
|
# Body param
|
|
85
89
|
endpoint_url: nil,
|
|
86
90
|
# Body param
|
|
91
|
+
event_filters: nil,
|
|
92
|
+
# Body param
|
|
87
93
|
event_types: nil,
|
|
88
94
|
# Body param
|
|
89
95
|
retry_count: nil,
|
|
@@ -4,6 +4,7 @@ module Sentdm
|
|
|
4
4
|
{
|
|
5
5
|
id: String,
|
|
6
6
|
available_channels: String,
|
|
7
|
+
channel_consent: ::Hash[Symbol, String]?,
|
|
7
8
|
country_code: String,
|
|
8
9
|
created_at: Time,
|
|
9
10
|
default_channel: String,
|
|
@@ -27,6 +28,8 @@ module Sentdm
|
|
|
27
28
|
|
|
28
29
|
def available_channels=: (String) -> String
|
|
29
30
|
|
|
31
|
+
attr_accessor channel_consent: ::Hash[Symbol, String]?
|
|
32
|
+
|
|
30
33
|
attr_reader country_code: String?
|
|
31
34
|
|
|
32
35
|
def country_code=: (String) -> String
|
|
@@ -76,6 +79,7 @@ module Sentdm
|
|
|
76
79
|
def initialize: (
|
|
77
80
|
?id: String,
|
|
78
81
|
?available_channels: String,
|
|
82
|
+
?channel_consent: ::Hash[Symbol, String]?,
|
|
79
83
|
?country_code: String,
|
|
80
84
|
?created_at: Time,
|
|
81
85
|
?default_channel: String,
|
|
@@ -93,6 +97,7 @@ module Sentdm
|
|
|
93
97
|
def to_hash: -> {
|
|
94
98
|
id: String,
|
|
95
99
|
available_channels: String,
|
|
100
|
+
channel_consent: ::Hash[Symbol, String]?,
|
|
96
101
|
country_code: String,
|
|
97
102
|
created_at: Time,
|
|
98
103
|
default_channel: String,
|
|
@@ -3,6 +3,7 @@ module Sentdm
|
|
|
3
3
|
type contact_update_params =
|
|
4
4
|
{
|
|
5
5
|
id: String,
|
|
6
|
+
channel_consent: ::Hash[Symbol, String]?,
|
|
6
7
|
default_channel: String?,
|
|
7
8
|
opt_out: bool?,
|
|
8
9
|
sandbox: bool,
|
|
@@ -17,6 +18,8 @@ module Sentdm
|
|
|
17
18
|
|
|
18
19
|
attr_accessor id: String
|
|
19
20
|
|
|
21
|
+
attr_accessor channel_consent: ::Hash[Symbol, String]?
|
|
22
|
+
|
|
20
23
|
attr_accessor default_channel: String?
|
|
21
24
|
|
|
22
25
|
attr_accessor opt_out: bool?
|
|
@@ -35,6 +38,7 @@ module Sentdm
|
|
|
35
38
|
|
|
36
39
|
def initialize: (
|
|
37
40
|
id: String,
|
|
41
|
+
?channel_consent: ::Hash[Symbol, String]?,
|
|
38
42
|
?default_channel: String?,
|
|
39
43
|
?opt_out: bool?,
|
|
40
44
|
?sandbox: bool,
|
|
@@ -45,6 +49,7 @@ module Sentdm
|
|
|
45
49
|
|
|
46
50
|
def to_hash: -> {
|
|
47
51
|
id: String,
|
|
52
|
+
channel_consent: ::Hash[Symbol, String]?,
|
|
48
53
|
default_channel: String?,
|
|
49
54
|
opt_out: bool?,
|
|
50
55
|
sandbox: bool,
|
|
@@ -66,6 +66,7 @@ module Sentdm
|
|
|
66
66
|
{
|
|
67
67
|
active_contact_price: String?,
|
|
68
68
|
description: String,
|
|
69
|
+
from: String?,
|
|
69
70
|
price: String?,
|
|
70
71
|
status: String,
|
|
71
72
|
timestamp: Time
|
|
@@ -78,6 +79,8 @@ module Sentdm
|
|
|
78
79
|
|
|
79
80
|
def description=: (String) -> String
|
|
80
81
|
|
|
82
|
+
attr_accessor from: String?
|
|
83
|
+
|
|
81
84
|
attr_accessor price: String?
|
|
82
85
|
|
|
83
86
|
attr_reader status: String?
|
|
@@ -91,6 +94,7 @@ module Sentdm
|
|
|
91
94
|
def initialize: (
|
|
92
95
|
?active_contact_price: String?,
|
|
93
96
|
?description: String,
|
|
97
|
+
?from: String?,
|
|
94
98
|
?price: String?,
|
|
95
99
|
?status: String,
|
|
96
100
|
?timestamp: Time
|
|
@@ -99,6 +103,7 @@ module Sentdm
|
|
|
99
103
|
def to_hash: -> {
|
|
100
104
|
active_contact_price: String?,
|
|
101
105
|
description: String,
|
|
106
|
+
from: String?,
|
|
102
107
|
price: String?,
|
|
103
108
|
status: String,
|
|
104
109
|
timestamp: Time
|
|
@@ -43,6 +43,7 @@ module Sentdm
|
|
|
43
43
|
contact_id: String,
|
|
44
44
|
created_at: Time,
|
|
45
45
|
customer_id: String,
|
|
46
|
+
direction: String,
|
|
46
47
|
events: ::Array[Sentdm::Models::MessageRetrieveStatusResponse::Data::Event]?,
|
|
47
48
|
message_body: Sentdm::Models::MessageRetrieveStatusResponse::Data::MessageBody?,
|
|
48
49
|
phone: String,
|
|
@@ -50,9 +51,9 @@ module Sentdm
|
|
|
50
51
|
price: Float?,
|
|
51
52
|
region_code: String,
|
|
52
53
|
status: String,
|
|
53
|
-
template_category: String
|
|
54
|
+
template_category: String?,
|
|
54
55
|
template_id: String?,
|
|
55
|
-
template_name: String
|
|
56
|
+
template_name: String?
|
|
56
57
|
}
|
|
57
58
|
|
|
58
59
|
class Data < Sentdm::Internal::Type::BaseModel
|
|
@@ -78,6 +79,10 @@ module Sentdm
|
|
|
78
79
|
|
|
79
80
|
def customer_id=: (String) -> String
|
|
80
81
|
|
|
82
|
+
attr_reader direction: String?
|
|
83
|
+
|
|
84
|
+
def direction=: (String) -> String
|
|
85
|
+
|
|
81
86
|
attr_accessor events: ::Array[Sentdm::Models::MessageRetrieveStatusResponse::Data::Event]?
|
|
82
87
|
|
|
83
88
|
attr_accessor message_body: Sentdm::Models::MessageRetrieveStatusResponse::Data::MessageBody?
|
|
@@ -100,15 +105,11 @@ module Sentdm
|
|
|
100
105
|
|
|
101
106
|
def status=: (String) -> String
|
|
102
107
|
|
|
103
|
-
|
|
104
|
-
|
|
105
|
-
def template_category=: (String) -> String
|
|
108
|
+
attr_accessor template_category: String?
|
|
106
109
|
|
|
107
110
|
attr_accessor template_id: String?
|
|
108
111
|
|
|
109
|
-
|
|
110
|
-
|
|
111
|
-
def template_name=: (String) -> String
|
|
112
|
+
attr_accessor template_name: String?
|
|
112
113
|
|
|
113
114
|
def initialize: (
|
|
114
115
|
?id: String,
|
|
@@ -117,6 +118,7 @@ module Sentdm
|
|
|
117
118
|
?contact_id: String,
|
|
118
119
|
?created_at: Time,
|
|
119
120
|
?customer_id: String,
|
|
121
|
+
?direction: String,
|
|
120
122
|
?events: ::Array[Sentdm::Models::MessageRetrieveStatusResponse::Data::Event]?,
|
|
121
123
|
?message_body: Sentdm::Models::MessageRetrieveStatusResponse::Data::MessageBody?,
|
|
122
124
|
?phone: String,
|
|
@@ -124,9 +126,9 @@ module Sentdm
|
|
|
124
126
|
?price: Float?,
|
|
125
127
|
?region_code: String,
|
|
126
128
|
?status: String,
|
|
127
|
-
?template_category: String
|
|
129
|
+
?template_category: String?,
|
|
128
130
|
?template_id: String?,
|
|
129
|
-
?template_name: String
|
|
131
|
+
?template_name: String?
|
|
130
132
|
) -> void
|
|
131
133
|
|
|
132
134
|
def to_hash: -> {
|
|
@@ -136,6 +138,7 @@ module Sentdm
|
|
|
136
138
|
contact_id: String,
|
|
137
139
|
created_at: Time,
|
|
138
140
|
customer_id: String,
|
|
141
|
+
direction: String,
|
|
139
142
|
events: ::Array[Sentdm::Models::MessageRetrieveStatusResponse::Data::Event]?,
|
|
140
143
|
message_body: Sentdm::Models::MessageRetrieveStatusResponse::Data::MessageBody?,
|
|
141
144
|
phone: String,
|
|
@@ -143,9 +146,9 @@ module Sentdm
|
|
|
143
146
|
price: Float?,
|
|
144
147
|
region_code: String,
|
|
145
148
|
status: String,
|
|
146
|
-
template_category: String
|
|
149
|
+
template_category: String?,
|
|
147
150
|
template_id: String?,
|
|
148
|
-
template_name: String
|
|
151
|
+
template_name: String?
|
|
149
152
|
}
|
|
150
153
|
|
|
151
154
|
type event = { description: String?, status: String, timestamp: Time }
|
|
@@ -4,6 +4,7 @@ module Sentdm
|
|
|
4
4
|
{
|
|
5
5
|
display_name: String,
|
|
6
6
|
endpoint_url: String,
|
|
7
|
+
event_filters: ::Hash[Symbol, ::Array[String]]?,
|
|
7
8
|
event_types: ::Array[String],
|
|
8
9
|
retry_count: Integer,
|
|
9
10
|
sandbox: bool,
|
|
@@ -25,6 +26,8 @@ module Sentdm
|
|
|
25
26
|
|
|
26
27
|
def endpoint_url=: (String) -> String
|
|
27
28
|
|
|
29
|
+
attr_accessor event_filters: ::Hash[Symbol, ::Array[String]]?
|
|
30
|
+
|
|
28
31
|
attr_reader event_types: ::Array[String]?
|
|
29
32
|
|
|
30
33
|
def event_types=: (::Array[String]) -> ::Array[String]
|
|
@@ -52,6 +55,7 @@ module Sentdm
|
|
|
52
55
|
def initialize: (
|
|
53
56
|
?display_name: String,
|
|
54
57
|
?endpoint_url: String,
|
|
58
|
+
?event_filters: ::Hash[Symbol, ::Array[String]]?,
|
|
55
59
|
?event_types: ::Array[String],
|
|
56
60
|
?retry_count: Integer,
|
|
57
61
|
?sandbox: bool,
|
|
@@ -64,6 +68,7 @@ module Sentdm
|
|
|
64
68
|
def to_hash: -> {
|
|
65
69
|
display_name: String,
|
|
66
70
|
endpoint_url: String,
|
|
71
|
+
event_filters: ::Hash[Symbol, ::Array[String]]?,
|
|
67
72
|
event_types: ::Array[String],
|
|
68
73
|
retry_count: Integer,
|
|
69
74
|
sandbox: bool,
|
|
@@ -59,8 +59,10 @@ module Sentdm
|
|
|
59
59
|
{
|
|
60
60
|
description: String?,
|
|
61
61
|
display_name: String,
|
|
62
|
+
event_type: String?,
|
|
62
63
|
is_active: bool,
|
|
63
|
-
name: String
|
|
64
|
+
name: String,
|
|
65
|
+
sub_types: ::Array[top]?
|
|
64
66
|
}
|
|
65
67
|
|
|
66
68
|
class EventType < Sentdm::Internal::Type::BaseModel
|
|
@@ -70,6 +72,8 @@ module Sentdm
|
|
|
70
72
|
|
|
71
73
|
def display_name=: (String) -> String
|
|
72
74
|
|
|
75
|
+
attr_accessor event_type: String?
|
|
76
|
+
|
|
73
77
|
attr_reader is_active: bool?
|
|
74
78
|
|
|
75
79
|
def is_active=: (bool) -> bool
|
|
@@ -78,18 +82,24 @@ module Sentdm
|
|
|
78
82
|
|
|
79
83
|
def name=: (String) -> String
|
|
80
84
|
|
|
85
|
+
attr_accessor sub_types: ::Array[top]?
|
|
86
|
+
|
|
81
87
|
def initialize: (
|
|
82
88
|
?description: String?,
|
|
83
89
|
?display_name: String,
|
|
90
|
+
?event_type: String?,
|
|
84
91
|
?is_active: bool,
|
|
85
|
-
?name: String
|
|
92
|
+
?name: String,
|
|
93
|
+
?sub_types: ::Array[top]?
|
|
86
94
|
) -> void
|
|
87
95
|
|
|
88
96
|
def to_hash: -> {
|
|
89
97
|
description: String?,
|
|
90
98
|
display_name: String,
|
|
99
|
+
event_type: String?,
|
|
91
100
|
is_active: bool,
|
|
92
|
-
name: String
|
|
101
|
+
name: String,
|
|
102
|
+
sub_types: ::Array[top]?
|
|
93
103
|
}
|
|
94
104
|
end
|
|
95
105
|
end
|
|
@@ -7,6 +7,7 @@ module Sentdm
|
|
|
7
7
|
created_at: Time,
|
|
8
8
|
display_name: String,
|
|
9
9
|
endpoint_url: String,
|
|
10
|
+
event_filters: ::Hash[Symbol, ::Array[String]]?,
|
|
10
11
|
event_types: ::Array[String],
|
|
11
12
|
is_active: bool,
|
|
12
13
|
last_delivery_attempt_at: Time?,
|
|
@@ -38,6 +39,8 @@ module Sentdm
|
|
|
38
39
|
|
|
39
40
|
def endpoint_url=: (String) -> String
|
|
40
41
|
|
|
42
|
+
attr_accessor event_filters: ::Hash[Symbol, ::Array[String]]?
|
|
43
|
+
|
|
41
44
|
attr_reader event_types: ::Array[String]?
|
|
42
45
|
|
|
43
46
|
def event_types=: (::Array[String]) -> ::Array[String]
|
|
@@ -68,6 +71,7 @@ module Sentdm
|
|
|
68
71
|
?created_at: Time,
|
|
69
72
|
?display_name: String,
|
|
70
73
|
?endpoint_url: String,
|
|
74
|
+
?event_filters: ::Hash[Symbol, ::Array[String]]?,
|
|
71
75
|
?event_types: ::Array[String],
|
|
72
76
|
?is_active: bool,
|
|
73
77
|
?last_delivery_attempt_at: Time?,
|
|
@@ -84,6 +88,7 @@ module Sentdm
|
|
|
84
88
|
created_at: Time,
|
|
85
89
|
display_name: String,
|
|
86
90
|
endpoint_url: String,
|
|
91
|
+
event_filters: ::Hash[Symbol, ::Array[String]]?,
|
|
87
92
|
event_types: ::Array[String],
|
|
88
93
|
is_active: bool,
|
|
89
94
|
last_delivery_attempt_at: Time?,
|
|
@@ -5,6 +5,7 @@ module Sentdm
|
|
|
5
5
|
id: String,
|
|
6
6
|
display_name: String,
|
|
7
7
|
endpoint_url: String,
|
|
8
|
+
event_filters: ::Hash[Symbol, ::Array[String]]?,
|
|
8
9
|
event_types: ::Array[String],
|
|
9
10
|
retry_count: Integer,
|
|
10
11
|
sandbox: bool,
|
|
@@ -28,6 +29,8 @@ module Sentdm
|
|
|
28
29
|
|
|
29
30
|
def endpoint_url=: (String) -> String
|
|
30
31
|
|
|
32
|
+
attr_accessor event_filters: ::Hash[Symbol, ::Array[String]]?
|
|
33
|
+
|
|
31
34
|
attr_reader event_types: ::Array[String]?
|
|
32
35
|
|
|
33
36
|
def event_types=: (::Array[String]) -> ::Array[String]
|
|
@@ -56,6 +59,7 @@ module Sentdm
|
|
|
56
59
|
id: String,
|
|
57
60
|
?display_name: String,
|
|
58
61
|
?endpoint_url: String,
|
|
62
|
+
?event_filters: ::Hash[Symbol, ::Array[String]]?,
|
|
59
63
|
?event_types: ::Array[String],
|
|
60
64
|
?retry_count: Integer,
|
|
61
65
|
?sandbox: bool,
|
|
@@ -69,6 +73,7 @@ module Sentdm
|
|
|
69
73
|
id: String,
|
|
70
74
|
display_name: String,
|
|
71
75
|
endpoint_url: String,
|
|
76
|
+
event_filters: ::Hash[Symbol, ::Array[String]]?,
|
|
72
77
|
event_types: ::Array[String],
|
|
73
78
|
retry_count: Integer,
|
|
74
79
|
sandbox: bool,
|
|
@@ -4,6 +4,7 @@ module Sentdm
|
|
|
4
4
|
def create: (
|
|
5
5
|
?display_name: String,
|
|
6
6
|
?endpoint_url: String,
|
|
7
|
+
?event_filters: ::Hash[Symbol, ::Array[String]]?,
|
|
7
8
|
?event_types: ::Array[String],
|
|
8
9
|
?retry_count: Integer,
|
|
9
10
|
?sandbox: bool,
|
|
@@ -23,6 +24,7 @@ module Sentdm
|
|
|
23
24
|
String id,
|
|
24
25
|
?display_name: String,
|
|
25
26
|
?endpoint_url: String,
|
|
27
|
+
?event_filters: ::Hash[Symbol, ::Array[String]]?,
|
|
26
28
|
?event_types: ::Array[String],
|
|
27
29
|
?retry_count: Integer,
|
|
28
30
|
?sandbox: bool,
|
metadata
CHANGED
|
@@ -1,14 +1,14 @@
|
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
|
2
2
|
name: sentdm
|
|
3
3
|
version: !ruby/object:Gem::Version
|
|
4
|
-
version: 0.
|
|
4
|
+
version: 0.15.0
|
|
5
5
|
platform: ruby
|
|
6
6
|
authors:
|
|
7
7
|
- Sent
|
|
8
8
|
autorequire:
|
|
9
9
|
bindir: bin
|
|
10
10
|
cert_chain: []
|
|
11
|
-
date: 2026-04-
|
|
11
|
+
date: 2026-04-21 00:00:00.000000000 Z
|
|
12
12
|
dependencies:
|
|
13
13
|
- !ruby/object:Gem::Dependency
|
|
14
14
|
name: cgi
|