sentdm 0.46.0 → 0.48.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 +18 -0
- data/README.md +1 -1
- data/lib/sentdm/client.rb +2 -2
- data/lib/sentdm/models/channels/sms/api_response_of_supplied_compliance.rb +67 -0
- data/lib/sentdm/models/channels/sms/ten_dlc_add_campaign_params.rb +161 -0
- data/lib/sentdm/models/channels/sms/ten_dlc_add_numbers_params.rb +65 -0
- data/lib/sentdm/models/channels/sms/ten_dlc_campaign_use_case.rb +56 -0
- data/lib/sentdm/models/channels/sms/ten_dlc_retrieve_compliance_params.rb +24 -0
- data/lib/sentdm/models/channels/sms/ten_dlc_update_campaign_params.rb +168 -0
- data/lib/sentdm/models/channels/sms_market.rb +1 -11
- data/lib/sentdm/models/channels/sms_number.rb +12 -1
- data/lib/sentdm/models/channels/supplied_campaign.rb +10 -0
- data/lib/sentdm/models/channels/supplied_compliance.rb +27 -1
- data/lib/sentdm/models/profiles/brand_campaign.rb +11 -1
- data/lib/sentdm/models/voice/call.rb +4 -3
- data/lib/sentdm/resources/channels/sms/ten_dlc.rb +310 -0
- data/lib/sentdm/resources/channels/sms.rb +35 -1
- data/lib/sentdm/resources/profiles/campaigns.rb +4 -1
- data/lib/sentdm/resources/sender_profiles.rb +5 -3
- data/lib/sentdm/resources/voice/calls/participants.rb +5 -5
- data/lib/sentdm/version.rb +1 -1
- data/lib/sentdm.rb +8 -0
- data/rbi/sentdm/client.rbi +2 -2
- data/rbi/sentdm/models/channels/sms/api_response_of_supplied_compliance.rbi +117 -0
- data/rbi/sentdm/models/channels/sms/ten_dlc_add_campaign_params.rbi +255 -0
- data/rbi/sentdm/models/channels/sms/ten_dlc_add_numbers_params.rbi +100 -0
- data/rbi/sentdm/models/channels/sms/ten_dlc_campaign_use_case.rbi +143 -0
- data/rbi/sentdm/models/channels/sms/ten_dlc_retrieve_compliance_params.rbi +45 -0
- data/rbi/sentdm/models/channels/sms/ten_dlc_update_campaign_params.rbi +264 -0
- data/rbi/sentdm/models/channels/sms_market.rbi +0 -12
- data/rbi/sentdm/models/channels/sms_number.rbi +14 -0
- data/rbi/sentdm/models/channels/supplied_campaign.rbi +13 -0
- data/rbi/sentdm/models/channels/supplied_compliance.rbi +40 -0
- data/rbi/sentdm/models/profiles/brand_campaign.rbi +15 -0
- data/rbi/sentdm/models/voice/call.rbi +8 -6
- data/rbi/sentdm/resources/channels/sms/ten_dlc.rbi +358 -0
- data/rbi/sentdm/resources/channels/sms.rbi +34 -1
- data/rbi/sentdm/resources/profiles/campaigns.rbi +4 -1
- data/rbi/sentdm/resources/sender_profiles.rbi +5 -3
- data/rbi/sentdm/resources/voice/calls/participants.rbi +5 -5
- data/sig/sentdm/models/channels/sms/api_response_of_supplied_compliance.rbs +43 -0
- data/sig/sentdm/models/channels/sms/ten_dlc_add_campaign_params.rbs +130 -0
- data/sig/sentdm/models/channels/sms/ten_dlc_add_numbers_params.rbs +54 -0
- data/sig/sentdm/models/channels/sms/ten_dlc_campaign_use_case.rbs +60 -0
- data/sig/sentdm/models/channels/sms/ten_dlc_retrieve_compliance_params.rbs +29 -0
- data/sig/sentdm/models/channels/sms/ten_dlc_update_campaign_params.rbs +137 -0
- data/sig/sentdm/models/channels/sms_market.rbs +0 -5
- data/sig/sentdm/models/channels/sms_number.rbs +10 -1
- data/sig/sentdm/models/channels/supplied_campaign.rbs +9 -0
- data/sig/sentdm/models/channels/supplied_compliance.rbs +5 -0
- data/sig/sentdm/models/profiles/brand_campaign.rbs +7 -0
- data/sig/sentdm/resources/channels/sms/ten_dlc.rbs +64 -0
- data/sig/sentdm/resources/channels/sms.rbs +2 -0
- metadata +26 -2
|
@@ -0,0 +1,117 @@
|
|
|
1
|
+
# typed: strong
|
|
2
|
+
|
|
3
|
+
module Sentdm
|
|
4
|
+
module Models
|
|
5
|
+
module Channels
|
|
6
|
+
module SMS
|
|
7
|
+
class APIResponseOfSuppliedCompliance < Sentdm::Internal::Type::BaseModel
|
|
8
|
+
OrHash =
|
|
9
|
+
T.type_alias do
|
|
10
|
+
T.any(
|
|
11
|
+
Sentdm::Channels::SMS::APIResponseOfSuppliedCompliance,
|
|
12
|
+
Sentdm::Internal::AnyHash
|
|
13
|
+
)
|
|
14
|
+
end
|
|
15
|
+
|
|
16
|
+
# What a market has been given: the identity it registers under, its programme,
|
|
17
|
+
# and any documents attached.
|
|
18
|
+
#
|
|
19
|
+
# What it does not carry is what the market asks for. That is the subject of GET
|
|
20
|
+
# /v3/compliance/requirements, and it is the same answer for every caller — a
|
|
21
|
+
# description of what a compliance regime wants, not a record of one customer's
|
|
22
|
+
# progress through it. It was reported here as well for a while, which put the
|
|
23
|
+
# same array in six response shapes and left a caller deciding which of two
|
|
24
|
+
# sources to believe.
|
|
25
|
+
#
|
|
26
|
+
# Present on a list read for markets that register (carrying brand and campaign),
|
|
27
|
+
# but with documents absent — documents are not fetched for a list, because a
|
|
28
|
+
# catalog lookup and a document read per market would multiply across a page.
|
|
29
|
+
# Absent documents is distinct from an empty list: absent says they were not
|
|
30
|
+
# fetched; empty says the market has been given none. The parent object is null
|
|
31
|
+
# only when the market registers with nobody and compliance was not computed —
|
|
32
|
+
# nothing to show at all.
|
|
33
|
+
sig { returns(T.nilable(Sentdm::Channels::SuppliedCompliance)) }
|
|
34
|
+
attr_reader :data
|
|
35
|
+
|
|
36
|
+
sig do
|
|
37
|
+
params(
|
|
38
|
+
data: T.nilable(Sentdm::Channels::SuppliedCompliance::OrHash)
|
|
39
|
+
).void
|
|
40
|
+
end
|
|
41
|
+
attr_writer :data
|
|
42
|
+
|
|
43
|
+
# Error information
|
|
44
|
+
sig { returns(T.nilable(Sentdm::ErrorDetail)) }
|
|
45
|
+
attr_reader :error
|
|
46
|
+
|
|
47
|
+
sig { params(error: T.nilable(Sentdm::ErrorDetail::OrHash)).void }
|
|
48
|
+
attr_writer :error
|
|
49
|
+
|
|
50
|
+
# Request and response metadata
|
|
51
|
+
sig { returns(T.nilable(Sentdm::APIMeta)) }
|
|
52
|
+
attr_reader :meta
|
|
53
|
+
|
|
54
|
+
sig { params(meta: Sentdm::APIMeta::OrHash).void }
|
|
55
|
+
attr_writer :meta
|
|
56
|
+
|
|
57
|
+
# Indicates whether the request was successful
|
|
58
|
+
sig { returns(T.nilable(T::Boolean)) }
|
|
59
|
+
attr_reader :success
|
|
60
|
+
|
|
61
|
+
sig { params(success: T::Boolean).void }
|
|
62
|
+
attr_writer :success
|
|
63
|
+
|
|
64
|
+
# Standard API response envelope for all v3 endpoints
|
|
65
|
+
sig do
|
|
66
|
+
params(
|
|
67
|
+
data: T.nilable(Sentdm::Channels::SuppliedCompliance::OrHash),
|
|
68
|
+
error: T.nilable(Sentdm::ErrorDetail::OrHash),
|
|
69
|
+
meta: Sentdm::APIMeta::OrHash,
|
|
70
|
+
success: T::Boolean
|
|
71
|
+
).returns(T.attached_class)
|
|
72
|
+
end
|
|
73
|
+
def self.new(
|
|
74
|
+
# What a market has been given: the identity it registers under, its programme,
|
|
75
|
+
# and any documents attached.
|
|
76
|
+
#
|
|
77
|
+
# What it does not carry is what the market asks for. That is the subject of GET
|
|
78
|
+
# /v3/compliance/requirements, and it is the same answer for every caller — a
|
|
79
|
+
# description of what a compliance regime wants, not a record of one customer's
|
|
80
|
+
# progress through it. It was reported here as well for a while, which put the
|
|
81
|
+
# same array in six response shapes and left a caller deciding which of two
|
|
82
|
+
# sources to believe.
|
|
83
|
+
#
|
|
84
|
+
# Present on a list read for markets that register (carrying brand and campaign),
|
|
85
|
+
# but with documents absent — documents are not fetched for a list, because a
|
|
86
|
+
# catalog lookup and a document read per market would multiply across a page.
|
|
87
|
+
# Absent documents is distinct from an empty list: absent says they were not
|
|
88
|
+
# fetched; empty says the market has been given none. The parent object is null
|
|
89
|
+
# only when the market registers with nobody and compliance was not computed —
|
|
90
|
+
# nothing to show at all.
|
|
91
|
+
data: nil,
|
|
92
|
+
# Error information
|
|
93
|
+
error: nil,
|
|
94
|
+
# Request and response metadata
|
|
95
|
+
meta: nil,
|
|
96
|
+
# Indicates whether the request was successful
|
|
97
|
+
success: nil
|
|
98
|
+
)
|
|
99
|
+
end
|
|
100
|
+
|
|
101
|
+
sig do
|
|
102
|
+
override.returns(
|
|
103
|
+
{
|
|
104
|
+
data: T.nilable(Sentdm::Channels::SuppliedCompliance),
|
|
105
|
+
error: T.nilable(Sentdm::ErrorDetail),
|
|
106
|
+
meta: Sentdm::APIMeta,
|
|
107
|
+
success: T::Boolean
|
|
108
|
+
}
|
|
109
|
+
)
|
|
110
|
+
end
|
|
111
|
+
def to_hash
|
|
112
|
+
end
|
|
113
|
+
end
|
|
114
|
+
end
|
|
115
|
+
end
|
|
116
|
+
end
|
|
117
|
+
end
|
|
@@ -0,0 +1,255 @@
|
|
|
1
|
+
# typed: strong
|
|
2
|
+
|
|
3
|
+
module Sentdm
|
|
4
|
+
module Models
|
|
5
|
+
module Channels
|
|
6
|
+
module SMS
|
|
7
|
+
class TenDlcAddCampaignParams < Sentdm::Internal::Type::BaseModel
|
|
8
|
+
extend Sentdm::Internal::Type::RequestParameters::Converter
|
|
9
|
+
include Sentdm::Internal::Type::RequestParameters
|
|
10
|
+
|
|
11
|
+
OrHash =
|
|
12
|
+
T.type_alias do
|
|
13
|
+
T.any(
|
|
14
|
+
Sentdm::Channels::SMS::TenDlcAddCampaignParams,
|
|
15
|
+
Sentdm::Internal::AnyHash
|
|
16
|
+
)
|
|
17
|
+
end
|
|
18
|
+
|
|
19
|
+
sig { returns(String) }
|
|
20
|
+
attr_accessor :idempotency_key
|
|
21
|
+
|
|
22
|
+
# What this programme sends. TCR description: what recipients will get and why, in
|
|
23
|
+
# a sentence. The only one of these TCR takes verbatim as a description of the
|
|
24
|
+
# programme, which is why it is asked for rather than derived from the customer's
|
|
25
|
+
# name. Required when `compliance.campaign.inherit != true`.
|
|
26
|
+
sig { returns(T.nilable(String)) }
|
|
27
|
+
attr_reader :description
|
|
28
|
+
|
|
29
|
+
sig { params(description: String).void }
|
|
30
|
+
attr_writer :description
|
|
31
|
+
|
|
32
|
+
# Help keywords. TCR helpKeywords, comma separated, e.g. HELP,INFO. Required when
|
|
33
|
+
# `compliance.campaign.inherit != true`.
|
|
34
|
+
sig { returns(T.nilable(String)) }
|
|
35
|
+
attr_reader :help_keywords
|
|
36
|
+
|
|
37
|
+
sig { params(help_keywords: String).void }
|
|
38
|
+
attr_writer :help_keywords
|
|
39
|
+
|
|
40
|
+
# Help reply. TCR helpMessage. Its presence is what sets subscriberHelp. Required
|
|
41
|
+
# when `compliance.campaign.inherit != true`.
|
|
42
|
+
sig { returns(T.nilable(String)) }
|
|
43
|
+
attr_reader :help_message
|
|
44
|
+
|
|
45
|
+
sig { params(help_message: String).void }
|
|
46
|
+
attr_writer :help_message
|
|
47
|
+
|
|
48
|
+
# Consent narrative. TCR messageFlow: how recipients opt in, in prose. Under 40
|
|
49
|
+
# characters is refused, and carriers reject vague descriptions — say where opt-in
|
|
50
|
+
# happens, that the box is unchecked by default, and that consent is not a
|
|
51
|
+
# condition of purchase. Required when `compliance.campaign.inherit != true`.
|
|
52
|
+
sig { returns(T.nilable(String)) }
|
|
53
|
+
attr_reader :message_flow
|
|
54
|
+
|
|
55
|
+
sig { params(message_flow: String).void }
|
|
56
|
+
attr_writer :message_flow
|
|
57
|
+
|
|
58
|
+
# Opt-in keywords. TCR optinKeywords, comma separated, e.g. START,YES. Required
|
|
59
|
+
# when `compliance.campaign.inherit != true`.
|
|
60
|
+
sig { returns(T.nilable(String)) }
|
|
61
|
+
attr_reader :opt_in_keywords
|
|
62
|
+
|
|
63
|
+
sig { params(opt_in_keywords: String).void }
|
|
64
|
+
attr_writer :opt_in_keywords
|
|
65
|
+
|
|
66
|
+
# Opt-in confirmation. TCR optinMessage. Should state message frequency and that
|
|
67
|
+
# rates may apply. Its presence is what sets subscriberOptin. Required when
|
|
68
|
+
# `compliance.campaign.inherit != true`.
|
|
69
|
+
sig { returns(T.nilable(String)) }
|
|
70
|
+
attr_reader :opt_in_message
|
|
71
|
+
|
|
72
|
+
sig { params(opt_in_message: String).void }
|
|
73
|
+
attr_writer :opt_in_message
|
|
74
|
+
|
|
75
|
+
# Opt-out keywords. TCR optoutKeywords, comma separated. STOP, END, CANCEL,
|
|
76
|
+
# UNSUBSCRIBE and QUIT are honoured regardless of what is declared. Required when
|
|
77
|
+
# `compliance.campaign.inherit != true`.
|
|
78
|
+
sig { returns(T.nilable(String)) }
|
|
79
|
+
attr_reader :opt_out_keywords
|
|
80
|
+
|
|
81
|
+
sig { params(opt_out_keywords: String).void }
|
|
82
|
+
attr_writer :opt_out_keywords
|
|
83
|
+
|
|
84
|
+
# Opt-out confirmation. TCR optoutMessage. Its presence is what sets
|
|
85
|
+
# subscriberOptout. Required when `compliance.campaign.inherit != true`.
|
|
86
|
+
sig { returns(T.nilable(String)) }
|
|
87
|
+
attr_reader :opt_out_message
|
|
88
|
+
|
|
89
|
+
sig { params(opt_out_message: String).void }
|
|
90
|
+
attr_writer :opt_out_message
|
|
91
|
+
|
|
92
|
+
# Privacy policy URL. TCR privacyPolicyLink. Required when
|
|
93
|
+
# `compliance.campaign.inherit != true`.
|
|
94
|
+
sig { returns(T.nilable(String)) }
|
|
95
|
+
attr_reader :privacy_policy_link
|
|
96
|
+
|
|
97
|
+
sig { params(privacy_policy_link: String).void }
|
|
98
|
+
attr_writer :privacy_policy_link
|
|
99
|
+
|
|
100
|
+
# Sandbox flag - when true, the operation is simulated without side effects Useful
|
|
101
|
+
# for testing integrations without actual execution
|
|
102
|
+
sig { returns(T.nilable(T::Boolean)) }
|
|
103
|
+
attr_reader :sandbox
|
|
104
|
+
|
|
105
|
+
sig { params(sandbox: T::Boolean).void }
|
|
106
|
+
attr_writer :sandbox
|
|
107
|
+
|
|
108
|
+
# Terms and conditions URL. TCR termsAndConditionsLink. Required when
|
|
109
|
+
# `compliance.campaign.inherit != true`.
|
|
110
|
+
sig { returns(T.nilable(String)) }
|
|
111
|
+
attr_reader :terms_and_conditions_link
|
|
112
|
+
|
|
113
|
+
sig { params(terms_and_conditions_link: String).void }
|
|
114
|
+
attr_writer :terms_and_conditions_link
|
|
115
|
+
|
|
116
|
+
# Use cases. What the campaign sends, and an example of each. One to five entries;
|
|
117
|
+
# how they register is decided by volume, never declared. Required when
|
|
118
|
+
# `compliance.campaign.inherit != true`.
|
|
119
|
+
sig do
|
|
120
|
+
returns(
|
|
121
|
+
T.nilable(T::Array[Sentdm::Channels::SMS::TenDlcCampaignUseCase])
|
|
122
|
+
)
|
|
123
|
+
end
|
|
124
|
+
attr_reader :use_cases
|
|
125
|
+
|
|
126
|
+
sig do
|
|
127
|
+
params(
|
|
128
|
+
use_cases:
|
|
129
|
+
T::Array[Sentdm::Channels::SMS::TenDlcCampaignUseCase::OrHash]
|
|
130
|
+
).void
|
|
131
|
+
end
|
|
132
|
+
attr_writer :use_cases
|
|
133
|
+
|
|
134
|
+
# Expected monthly volume. Decides how the campaign registers and which fee tier
|
|
135
|
+
# applies: below the low-volume threshold it registers as LOW_VOLUME with
|
|
136
|
+
# sub-use-cases, above it as a single use case or MIXED. Omitting it registers the
|
|
137
|
+
# campaign at the higher-fee standard tier.
|
|
138
|
+
sig { returns(T.nilable(String)) }
|
|
139
|
+
attr_reader :volume
|
|
140
|
+
|
|
141
|
+
sig { params(volume: String).void }
|
|
142
|
+
attr_writer :volume
|
|
143
|
+
|
|
144
|
+
sig { returns(T.nilable(String)) }
|
|
145
|
+
attr_reader :x_profile_id
|
|
146
|
+
|
|
147
|
+
sig { params(x_profile_id: String).void }
|
|
148
|
+
attr_writer :x_profile_id
|
|
149
|
+
|
|
150
|
+
sig do
|
|
151
|
+
params(
|
|
152
|
+
idempotency_key: String,
|
|
153
|
+
description: String,
|
|
154
|
+
help_keywords: String,
|
|
155
|
+
help_message: String,
|
|
156
|
+
message_flow: String,
|
|
157
|
+
opt_in_keywords: String,
|
|
158
|
+
opt_in_message: String,
|
|
159
|
+
opt_out_keywords: String,
|
|
160
|
+
opt_out_message: String,
|
|
161
|
+
privacy_policy_link: String,
|
|
162
|
+
sandbox: T::Boolean,
|
|
163
|
+
terms_and_conditions_link: String,
|
|
164
|
+
use_cases:
|
|
165
|
+
T::Array[Sentdm::Channels::SMS::TenDlcCampaignUseCase::OrHash],
|
|
166
|
+
volume: String,
|
|
167
|
+
x_profile_id: String,
|
|
168
|
+
request_options: Sentdm::RequestOptions::OrHash
|
|
169
|
+
).returns(T.attached_class)
|
|
170
|
+
end
|
|
171
|
+
def self.new(
|
|
172
|
+
idempotency_key:,
|
|
173
|
+
# What this programme sends. TCR description: what recipients will get and why, in
|
|
174
|
+
# a sentence. The only one of these TCR takes verbatim as a description of the
|
|
175
|
+
# programme, which is why it is asked for rather than derived from the customer's
|
|
176
|
+
# name. Required when `compliance.campaign.inherit != true`.
|
|
177
|
+
description: nil,
|
|
178
|
+
# Help keywords. TCR helpKeywords, comma separated, e.g. HELP,INFO. Required when
|
|
179
|
+
# `compliance.campaign.inherit != true`.
|
|
180
|
+
help_keywords: nil,
|
|
181
|
+
# Help reply. TCR helpMessage. Its presence is what sets subscriberHelp. Required
|
|
182
|
+
# when `compliance.campaign.inherit != true`.
|
|
183
|
+
help_message: nil,
|
|
184
|
+
# Consent narrative. TCR messageFlow: how recipients opt in, in prose. Under 40
|
|
185
|
+
# characters is refused, and carriers reject vague descriptions — say where opt-in
|
|
186
|
+
# happens, that the box is unchecked by default, and that consent is not a
|
|
187
|
+
# condition of purchase. Required when `compliance.campaign.inherit != true`.
|
|
188
|
+
message_flow: nil,
|
|
189
|
+
# Opt-in keywords. TCR optinKeywords, comma separated, e.g. START,YES. Required
|
|
190
|
+
# when `compliance.campaign.inherit != true`.
|
|
191
|
+
opt_in_keywords: nil,
|
|
192
|
+
# Opt-in confirmation. TCR optinMessage. Should state message frequency and that
|
|
193
|
+
# rates may apply. Its presence is what sets subscriberOptin. Required when
|
|
194
|
+
# `compliance.campaign.inherit != true`.
|
|
195
|
+
opt_in_message: nil,
|
|
196
|
+
# Opt-out keywords. TCR optoutKeywords, comma separated. STOP, END, CANCEL,
|
|
197
|
+
# UNSUBSCRIBE and QUIT are honoured regardless of what is declared. Required when
|
|
198
|
+
# `compliance.campaign.inherit != true`.
|
|
199
|
+
opt_out_keywords: nil,
|
|
200
|
+
# Opt-out confirmation. TCR optoutMessage. Its presence is what sets
|
|
201
|
+
# subscriberOptout. Required when `compliance.campaign.inherit != true`.
|
|
202
|
+
opt_out_message: nil,
|
|
203
|
+
# Privacy policy URL. TCR privacyPolicyLink. Required when
|
|
204
|
+
# `compliance.campaign.inherit != true`.
|
|
205
|
+
privacy_policy_link: nil,
|
|
206
|
+
# Sandbox flag - when true, the operation is simulated without side effects Useful
|
|
207
|
+
# for testing integrations without actual execution
|
|
208
|
+
sandbox: nil,
|
|
209
|
+
# Terms and conditions URL. TCR termsAndConditionsLink. Required when
|
|
210
|
+
# `compliance.campaign.inherit != true`.
|
|
211
|
+
terms_and_conditions_link: nil,
|
|
212
|
+
# Use cases. What the campaign sends, and an example of each. One to five entries;
|
|
213
|
+
# how they register is decided by volume, never declared. Required when
|
|
214
|
+
# `compliance.campaign.inherit != true`.
|
|
215
|
+
use_cases: nil,
|
|
216
|
+
# Expected monthly volume. Decides how the campaign registers and which fee tier
|
|
217
|
+
# applies: below the low-volume threshold it registers as LOW_VOLUME with
|
|
218
|
+
# sub-use-cases, above it as a single use case or MIXED. Omitting it registers the
|
|
219
|
+
# campaign at the higher-fee standard tier.
|
|
220
|
+
volume: nil,
|
|
221
|
+
x_profile_id: nil,
|
|
222
|
+
request_options: {}
|
|
223
|
+
)
|
|
224
|
+
end
|
|
225
|
+
|
|
226
|
+
sig do
|
|
227
|
+
override.returns(
|
|
228
|
+
{
|
|
229
|
+
idempotency_key: String,
|
|
230
|
+
description: String,
|
|
231
|
+
help_keywords: String,
|
|
232
|
+
help_message: String,
|
|
233
|
+
message_flow: String,
|
|
234
|
+
opt_in_keywords: String,
|
|
235
|
+
opt_in_message: String,
|
|
236
|
+
opt_out_keywords: String,
|
|
237
|
+
opt_out_message: String,
|
|
238
|
+
privacy_policy_link: String,
|
|
239
|
+
sandbox: T::Boolean,
|
|
240
|
+
terms_and_conditions_link: String,
|
|
241
|
+
use_cases:
|
|
242
|
+
T::Array[Sentdm::Channels::SMS::TenDlcCampaignUseCase],
|
|
243
|
+
volume: String,
|
|
244
|
+
x_profile_id: String,
|
|
245
|
+
request_options: Sentdm::RequestOptions
|
|
246
|
+
}
|
|
247
|
+
)
|
|
248
|
+
end
|
|
249
|
+
def to_hash
|
|
250
|
+
end
|
|
251
|
+
end
|
|
252
|
+
end
|
|
253
|
+
end
|
|
254
|
+
end
|
|
255
|
+
end
|
|
@@ -0,0 +1,100 @@
|
|
|
1
|
+
# typed: strong
|
|
2
|
+
|
|
3
|
+
module Sentdm
|
|
4
|
+
module Models
|
|
5
|
+
module Channels
|
|
6
|
+
module SMS
|
|
7
|
+
class TenDlcAddNumbersParams < Sentdm::Internal::Type::BaseModel
|
|
8
|
+
extend Sentdm::Internal::Type::RequestParameters::Converter
|
|
9
|
+
include Sentdm::Internal::Type::RequestParameters
|
|
10
|
+
|
|
11
|
+
OrHash =
|
|
12
|
+
T.type_alias do
|
|
13
|
+
T.any(
|
|
14
|
+
Sentdm::Channels::SMS::TenDlcAddNumbersParams,
|
|
15
|
+
Sentdm::Internal::AnyHash
|
|
16
|
+
)
|
|
17
|
+
end
|
|
18
|
+
|
|
19
|
+
# The campaign to add the numbers to, as compliance.campaigns[].id reports it.
|
|
20
|
+
# Required.
|
|
21
|
+
sig { returns(String) }
|
|
22
|
+
attr_accessor :campaign_id
|
|
23
|
+
|
|
24
|
+
# The numbers to add, one entry per area code, e.g. [{"area_code": "415",
|
|
25
|
+
# "quantity": 2}, {"quantity": 1}]. quantity defaults to 1, and an entry without
|
|
26
|
+
# area_code means any area code. Required.
|
|
27
|
+
#
|
|
28
|
+
# Added to what the campaign already asks for, never replacing it.
|
|
29
|
+
sig do
|
|
30
|
+
returns(T::Array[T.nilable(Sentdm::Channels::SMSNumberRequest)])
|
|
31
|
+
end
|
|
32
|
+
attr_accessor :numbers
|
|
33
|
+
|
|
34
|
+
sig { returns(String) }
|
|
35
|
+
attr_accessor :idempotency_key
|
|
36
|
+
|
|
37
|
+
# Sandbox flag - when true, the operation is simulated without side effects Useful
|
|
38
|
+
# for testing integrations without actual execution
|
|
39
|
+
sig { returns(T.nilable(T::Boolean)) }
|
|
40
|
+
attr_reader :sandbox
|
|
41
|
+
|
|
42
|
+
sig { params(sandbox: T::Boolean).void }
|
|
43
|
+
attr_writer :sandbox
|
|
44
|
+
|
|
45
|
+
sig { returns(T.nilable(String)) }
|
|
46
|
+
attr_reader :x_profile_id
|
|
47
|
+
|
|
48
|
+
sig { params(x_profile_id: String).void }
|
|
49
|
+
attr_writer :x_profile_id
|
|
50
|
+
|
|
51
|
+
sig do
|
|
52
|
+
params(
|
|
53
|
+
campaign_id: String,
|
|
54
|
+
numbers:
|
|
55
|
+
T::Array[T.nilable(Sentdm::Channels::SMSNumberRequest::OrHash)],
|
|
56
|
+
idempotency_key: String,
|
|
57
|
+
sandbox: T::Boolean,
|
|
58
|
+
x_profile_id: String,
|
|
59
|
+
request_options: Sentdm::RequestOptions::OrHash
|
|
60
|
+
).returns(T.attached_class)
|
|
61
|
+
end
|
|
62
|
+
def self.new(
|
|
63
|
+
# The campaign to add the numbers to, as compliance.campaigns[].id reports it.
|
|
64
|
+
# Required.
|
|
65
|
+
campaign_id:,
|
|
66
|
+
# The numbers to add, one entry per area code, e.g. [{"area_code": "415",
|
|
67
|
+
# "quantity": 2}, {"quantity": 1}]. quantity defaults to 1, and an entry without
|
|
68
|
+
# area_code means any area code. Required.
|
|
69
|
+
#
|
|
70
|
+
# Added to what the campaign already asks for, never replacing it.
|
|
71
|
+
numbers:,
|
|
72
|
+
idempotency_key:,
|
|
73
|
+
# Sandbox flag - when true, the operation is simulated without side effects Useful
|
|
74
|
+
# for testing integrations without actual execution
|
|
75
|
+
sandbox: nil,
|
|
76
|
+
x_profile_id: nil,
|
|
77
|
+
request_options: {}
|
|
78
|
+
)
|
|
79
|
+
end
|
|
80
|
+
|
|
81
|
+
sig do
|
|
82
|
+
override.returns(
|
|
83
|
+
{
|
|
84
|
+
campaign_id: String,
|
|
85
|
+
numbers:
|
|
86
|
+
T::Array[T.nilable(Sentdm::Channels::SMSNumberRequest)],
|
|
87
|
+
idempotency_key: String,
|
|
88
|
+
sandbox: T::Boolean,
|
|
89
|
+
x_profile_id: String,
|
|
90
|
+
request_options: Sentdm::RequestOptions
|
|
91
|
+
}
|
|
92
|
+
)
|
|
93
|
+
end
|
|
94
|
+
def to_hash
|
|
95
|
+
end
|
|
96
|
+
end
|
|
97
|
+
end
|
|
98
|
+
end
|
|
99
|
+
end
|
|
100
|
+
end
|
|
@@ -0,0 +1,143 @@
|
|
|
1
|
+
# typed: strong
|
|
2
|
+
|
|
3
|
+
module Sentdm
|
|
4
|
+
module Models
|
|
5
|
+
module Channels
|
|
6
|
+
module SMS
|
|
7
|
+
class TenDlcCampaignUseCase < Sentdm::Internal::Type::BaseModel
|
|
8
|
+
OrHash =
|
|
9
|
+
T.type_alias do
|
|
10
|
+
T.any(
|
|
11
|
+
Sentdm::Channels::SMS::TenDlcCampaignUseCase,
|
|
12
|
+
Sentdm::Internal::AnyHash
|
|
13
|
+
)
|
|
14
|
+
end
|
|
15
|
+
|
|
16
|
+
# Sample messages. TCR sample1..sample5 for this use case. One to five, each
|
|
17
|
+
# carrying the brand name and an opt-out instruction.
|
|
18
|
+
sig { returns(T::Array[T.anything]) }
|
|
19
|
+
attr_accessor :sample_messages
|
|
20
|
+
|
|
21
|
+
# Use case. What this entry sends. MIXED and LOW_VOLUME are refused — volume
|
|
22
|
+
# decides those.
|
|
23
|
+
sig do
|
|
24
|
+
returns(
|
|
25
|
+
Sentdm::Channels::SMS::TenDlcCampaignUseCase::UseCase::OrSymbol
|
|
26
|
+
)
|
|
27
|
+
end
|
|
28
|
+
attr_accessor :use_case
|
|
29
|
+
|
|
30
|
+
sig do
|
|
31
|
+
params(
|
|
32
|
+
sample_messages: T::Array[T.anything],
|
|
33
|
+
use_case:
|
|
34
|
+
Sentdm::Channels::SMS::TenDlcCampaignUseCase::UseCase::OrSymbol
|
|
35
|
+
).returns(T.attached_class)
|
|
36
|
+
end
|
|
37
|
+
def self.new(
|
|
38
|
+
# Sample messages. TCR sample1..sample5 for this use case. One to five, each
|
|
39
|
+
# carrying the brand name and an opt-out instruction.
|
|
40
|
+
sample_messages:,
|
|
41
|
+
# Use case. What this entry sends. MIXED and LOW_VOLUME are refused — volume
|
|
42
|
+
# decides those.
|
|
43
|
+
use_case:
|
|
44
|
+
)
|
|
45
|
+
end
|
|
46
|
+
|
|
47
|
+
sig do
|
|
48
|
+
override.returns(
|
|
49
|
+
{
|
|
50
|
+
sample_messages: T::Array[T.anything],
|
|
51
|
+
use_case:
|
|
52
|
+
Sentdm::Channels::SMS::TenDlcCampaignUseCase::UseCase::OrSymbol
|
|
53
|
+
}
|
|
54
|
+
)
|
|
55
|
+
end
|
|
56
|
+
def to_hash
|
|
57
|
+
end
|
|
58
|
+
|
|
59
|
+
# Use case. What this entry sends. MIXED and LOW_VOLUME are refused — volume
|
|
60
|
+
# decides those.
|
|
61
|
+
module UseCase
|
|
62
|
+
extend Sentdm::Internal::Type::Enum
|
|
63
|
+
|
|
64
|
+
TaggedSymbol =
|
|
65
|
+
T.type_alias do
|
|
66
|
+
T.all(
|
|
67
|
+
Symbol,
|
|
68
|
+
Sentdm::Channels::SMS::TenDlcCampaignUseCase::UseCase
|
|
69
|
+
)
|
|
70
|
+
end
|
|
71
|
+
OrSymbol = T.type_alias { T.any(Symbol, String) }
|
|
72
|
+
|
|
73
|
+
MARKETING =
|
|
74
|
+
T.let(
|
|
75
|
+
:MARKETING,
|
|
76
|
+
Sentdm::Channels::SMS::TenDlcCampaignUseCase::UseCase::TaggedSymbol
|
|
77
|
+
)
|
|
78
|
+
ACCOUNT_NOTIFICATION =
|
|
79
|
+
T.let(
|
|
80
|
+
:ACCOUNT_NOTIFICATION,
|
|
81
|
+
Sentdm::Channels::SMS::TenDlcCampaignUseCase::UseCase::TaggedSymbol
|
|
82
|
+
)
|
|
83
|
+
CUSTOMER_CARE =
|
|
84
|
+
T.let(
|
|
85
|
+
:CUSTOMER_CARE,
|
|
86
|
+
Sentdm::Channels::SMS::TenDlcCampaignUseCase::UseCase::TaggedSymbol
|
|
87
|
+
)
|
|
88
|
+
FRAUD_ALERT =
|
|
89
|
+
T.let(
|
|
90
|
+
:FRAUD_ALERT,
|
|
91
|
+
Sentdm::Channels::SMS::TenDlcCampaignUseCase::UseCase::TaggedSymbol
|
|
92
|
+
)
|
|
93
|
+
USE_CASE_2_FA =
|
|
94
|
+
T.let(
|
|
95
|
+
:"2FA",
|
|
96
|
+
Sentdm::Channels::SMS::TenDlcCampaignUseCase::UseCase::TaggedSymbol
|
|
97
|
+
)
|
|
98
|
+
DELIVERY_NOTIFICATION =
|
|
99
|
+
T.let(
|
|
100
|
+
:DELIVERY_NOTIFICATION,
|
|
101
|
+
Sentdm::Channels::SMS::TenDlcCampaignUseCase::UseCase::TaggedSymbol
|
|
102
|
+
)
|
|
103
|
+
SECURITY_ALERT =
|
|
104
|
+
T.let(
|
|
105
|
+
:SECURITY_ALERT,
|
|
106
|
+
Sentdm::Channels::SMS::TenDlcCampaignUseCase::UseCase::TaggedSymbol
|
|
107
|
+
)
|
|
108
|
+
M2_M =
|
|
109
|
+
T.let(
|
|
110
|
+
:M2M,
|
|
111
|
+
Sentdm::Channels::SMS::TenDlcCampaignUseCase::UseCase::TaggedSymbol
|
|
112
|
+
)
|
|
113
|
+
HIGHER_EDUCATION =
|
|
114
|
+
T.let(
|
|
115
|
+
:HIGHER_EDUCATION,
|
|
116
|
+
Sentdm::Channels::SMS::TenDlcCampaignUseCase::UseCase::TaggedSymbol
|
|
117
|
+
)
|
|
118
|
+
POLLING_VOTING =
|
|
119
|
+
T.let(
|
|
120
|
+
:POLLING_VOTING,
|
|
121
|
+
Sentdm::Channels::SMS::TenDlcCampaignUseCase::UseCase::TaggedSymbol
|
|
122
|
+
)
|
|
123
|
+
PUBLIC_SERVICE_ANNOUNCEMENT =
|
|
124
|
+
T.let(
|
|
125
|
+
:PUBLIC_SERVICE_ANNOUNCEMENT,
|
|
126
|
+
Sentdm::Channels::SMS::TenDlcCampaignUseCase::UseCase::TaggedSymbol
|
|
127
|
+
)
|
|
128
|
+
|
|
129
|
+
sig do
|
|
130
|
+
override.returns(
|
|
131
|
+
T::Array[
|
|
132
|
+
Sentdm::Channels::SMS::TenDlcCampaignUseCase::UseCase::TaggedSymbol
|
|
133
|
+
]
|
|
134
|
+
)
|
|
135
|
+
end
|
|
136
|
+
def self.values
|
|
137
|
+
end
|
|
138
|
+
end
|
|
139
|
+
end
|
|
140
|
+
end
|
|
141
|
+
end
|
|
142
|
+
end
|
|
143
|
+
end
|
|
@@ -0,0 +1,45 @@
|
|
|
1
|
+
# typed: strong
|
|
2
|
+
|
|
3
|
+
module Sentdm
|
|
4
|
+
module Models
|
|
5
|
+
module Channels
|
|
6
|
+
module SMS
|
|
7
|
+
class TenDlcRetrieveComplianceParams < Sentdm::Internal::Type::BaseModel
|
|
8
|
+
extend Sentdm::Internal::Type::RequestParameters::Converter
|
|
9
|
+
include Sentdm::Internal::Type::RequestParameters
|
|
10
|
+
|
|
11
|
+
OrHash =
|
|
12
|
+
T.type_alias do
|
|
13
|
+
T.any(
|
|
14
|
+
Sentdm::Channels::SMS::TenDlcRetrieveComplianceParams,
|
|
15
|
+
Sentdm::Internal::AnyHash
|
|
16
|
+
)
|
|
17
|
+
end
|
|
18
|
+
|
|
19
|
+
sig { returns(T.nilable(String)) }
|
|
20
|
+
attr_reader :x_profile_id
|
|
21
|
+
|
|
22
|
+
sig { params(x_profile_id: String).void }
|
|
23
|
+
attr_writer :x_profile_id
|
|
24
|
+
|
|
25
|
+
sig do
|
|
26
|
+
params(
|
|
27
|
+
x_profile_id: String,
|
|
28
|
+
request_options: Sentdm::RequestOptions::OrHash
|
|
29
|
+
).returns(T.attached_class)
|
|
30
|
+
end
|
|
31
|
+
def self.new(x_profile_id: nil, request_options: {})
|
|
32
|
+
end
|
|
33
|
+
|
|
34
|
+
sig do
|
|
35
|
+
override.returns(
|
|
36
|
+
{ x_profile_id: String, request_options: Sentdm::RequestOptions }
|
|
37
|
+
)
|
|
38
|
+
end
|
|
39
|
+
def to_hash
|
|
40
|
+
end
|
|
41
|
+
end
|
|
42
|
+
end
|
|
43
|
+
end
|
|
44
|
+
end
|
|
45
|
+
end
|