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,264 @@
|
|
|
1
|
+
# typed: strong
|
|
2
|
+
|
|
3
|
+
module Sentdm
|
|
4
|
+
module Models
|
|
5
|
+
module Channels
|
|
6
|
+
module SMS
|
|
7
|
+
class TenDlcUpdateCampaignParams < 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::TenDlcUpdateCampaignParams,
|
|
15
|
+
Sentdm::Internal::AnyHash
|
|
16
|
+
)
|
|
17
|
+
end
|
|
18
|
+
|
|
19
|
+
sig { returns(String) }
|
|
20
|
+
attr_accessor :campaign_id
|
|
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 :idempotency_key
|
|
146
|
+
|
|
147
|
+
sig { params(idempotency_key: String).void }
|
|
148
|
+
attr_writer :idempotency_key
|
|
149
|
+
|
|
150
|
+
sig { returns(T.nilable(String)) }
|
|
151
|
+
attr_reader :x_profile_id
|
|
152
|
+
|
|
153
|
+
sig { params(x_profile_id: String).void }
|
|
154
|
+
attr_writer :x_profile_id
|
|
155
|
+
|
|
156
|
+
sig do
|
|
157
|
+
params(
|
|
158
|
+
campaign_id: String,
|
|
159
|
+
description: String,
|
|
160
|
+
help_keywords: String,
|
|
161
|
+
help_message: String,
|
|
162
|
+
message_flow: String,
|
|
163
|
+
opt_in_keywords: String,
|
|
164
|
+
opt_in_message: String,
|
|
165
|
+
opt_out_keywords: String,
|
|
166
|
+
opt_out_message: String,
|
|
167
|
+
privacy_policy_link: String,
|
|
168
|
+
sandbox: T::Boolean,
|
|
169
|
+
terms_and_conditions_link: String,
|
|
170
|
+
use_cases:
|
|
171
|
+
T::Array[Sentdm::Channels::SMS::TenDlcCampaignUseCase::OrHash],
|
|
172
|
+
volume: String,
|
|
173
|
+
idempotency_key: String,
|
|
174
|
+
x_profile_id: String,
|
|
175
|
+
request_options: Sentdm::RequestOptions::OrHash
|
|
176
|
+
).returns(T.attached_class)
|
|
177
|
+
end
|
|
178
|
+
def self.new(
|
|
179
|
+
campaign_id:,
|
|
180
|
+
# What this programme sends. TCR description: what recipients will get and why, in
|
|
181
|
+
# a sentence. The only one of these TCR takes verbatim as a description of the
|
|
182
|
+
# programme, which is why it is asked for rather than derived from the customer's
|
|
183
|
+
# name. Required when `compliance.campaign.inherit != true`.
|
|
184
|
+
description: nil,
|
|
185
|
+
# Help keywords. TCR helpKeywords, comma separated, e.g. HELP,INFO. Required when
|
|
186
|
+
# `compliance.campaign.inherit != true`.
|
|
187
|
+
help_keywords: nil,
|
|
188
|
+
# Help reply. TCR helpMessage. Its presence is what sets subscriberHelp. Required
|
|
189
|
+
# when `compliance.campaign.inherit != true`.
|
|
190
|
+
help_message: nil,
|
|
191
|
+
# Consent narrative. TCR messageFlow: how recipients opt in, in prose. Under 40
|
|
192
|
+
# characters is refused, and carriers reject vague descriptions — say where opt-in
|
|
193
|
+
# happens, that the box is unchecked by default, and that consent is not a
|
|
194
|
+
# condition of purchase. Required when `compliance.campaign.inherit != true`.
|
|
195
|
+
message_flow: nil,
|
|
196
|
+
# Opt-in keywords. TCR optinKeywords, comma separated, e.g. START,YES. Required
|
|
197
|
+
# when `compliance.campaign.inherit != true`.
|
|
198
|
+
opt_in_keywords: nil,
|
|
199
|
+
# Opt-in confirmation. TCR optinMessage. Should state message frequency and that
|
|
200
|
+
# rates may apply. Its presence is what sets subscriberOptin. Required when
|
|
201
|
+
# `compliance.campaign.inherit != true`.
|
|
202
|
+
opt_in_message: nil,
|
|
203
|
+
# Opt-out keywords. TCR optoutKeywords, comma separated. STOP, END, CANCEL,
|
|
204
|
+
# UNSUBSCRIBE and QUIT are honoured regardless of what is declared. Required when
|
|
205
|
+
# `compliance.campaign.inherit != true`.
|
|
206
|
+
opt_out_keywords: nil,
|
|
207
|
+
# Opt-out confirmation. TCR optoutMessage. Its presence is what sets
|
|
208
|
+
# subscriberOptout. Required when `compliance.campaign.inherit != true`.
|
|
209
|
+
opt_out_message: nil,
|
|
210
|
+
# Privacy policy URL. TCR privacyPolicyLink. Required when
|
|
211
|
+
# `compliance.campaign.inherit != true`.
|
|
212
|
+
privacy_policy_link: nil,
|
|
213
|
+
# Sandbox flag - when true, the operation is simulated without side effects Useful
|
|
214
|
+
# for testing integrations without actual execution
|
|
215
|
+
sandbox: nil,
|
|
216
|
+
# Terms and conditions URL. TCR termsAndConditionsLink. Required when
|
|
217
|
+
# `compliance.campaign.inherit != true`.
|
|
218
|
+
terms_and_conditions_link: nil,
|
|
219
|
+
# Use cases. What the campaign sends, and an example of each. One to five entries;
|
|
220
|
+
# how they register is decided by volume, never declared. Required when
|
|
221
|
+
# `compliance.campaign.inherit != true`.
|
|
222
|
+
use_cases: nil,
|
|
223
|
+
# Expected monthly volume. Decides how the campaign registers and which fee tier
|
|
224
|
+
# applies: below the low-volume threshold it registers as LOW_VOLUME with
|
|
225
|
+
# sub-use-cases, above it as a single use case or MIXED. Omitting it registers the
|
|
226
|
+
# campaign at the higher-fee standard tier.
|
|
227
|
+
volume: nil,
|
|
228
|
+
idempotency_key: nil,
|
|
229
|
+
x_profile_id: nil,
|
|
230
|
+
request_options: {}
|
|
231
|
+
)
|
|
232
|
+
end
|
|
233
|
+
|
|
234
|
+
sig do
|
|
235
|
+
override.returns(
|
|
236
|
+
{
|
|
237
|
+
campaign_id: String,
|
|
238
|
+
description: String,
|
|
239
|
+
help_keywords: String,
|
|
240
|
+
help_message: String,
|
|
241
|
+
message_flow: String,
|
|
242
|
+
opt_in_keywords: String,
|
|
243
|
+
opt_in_message: String,
|
|
244
|
+
opt_out_keywords: String,
|
|
245
|
+
opt_out_message: String,
|
|
246
|
+
privacy_policy_link: String,
|
|
247
|
+
sandbox: T::Boolean,
|
|
248
|
+
terms_and_conditions_link: String,
|
|
249
|
+
use_cases:
|
|
250
|
+
T::Array[Sentdm::Channels::SMS::TenDlcCampaignUseCase],
|
|
251
|
+
volume: String,
|
|
252
|
+
idempotency_key: String,
|
|
253
|
+
x_profile_id: String,
|
|
254
|
+
request_options: Sentdm::RequestOptions
|
|
255
|
+
}
|
|
256
|
+
)
|
|
257
|
+
end
|
|
258
|
+
def to_hash
|
|
259
|
+
end
|
|
260
|
+
end
|
|
261
|
+
end
|
|
262
|
+
end
|
|
263
|
+
end
|
|
264
|
+
end
|
|
@@ -67,12 +67,6 @@ module Sentdm
|
|
|
67
67
|
sig { returns(T.nilable(String)) }
|
|
68
68
|
attr_accessor :reason_code
|
|
69
69
|
|
|
70
|
-
# The sender itself. Null until a carrier-assigned number is procured. For a
|
|
71
|
-
# market holding several numbers, the first active one (the first assigned while
|
|
72
|
-
# none is active) — every number is in numbers.
|
|
73
|
-
sig { returns(T.nilable(String)) }
|
|
74
|
-
attr_accessor :sender_value
|
|
75
|
-
|
|
76
70
|
# Where this market's sender stands, in terms of who is holding it up —
|
|
77
71
|
# PROVISIONING, ACTION_NEEDED, PENDING_REVIEW or ACTIVE. Read-only.
|
|
78
72
|
#
|
|
@@ -106,7 +100,6 @@ module Sentdm
|
|
|
106
100
|
numbers: T::Array[Sentdm::Channels::SMSNumber::OrHash],
|
|
107
101
|
reason: T.nilable(String),
|
|
108
102
|
reason_code: T.nilable(String),
|
|
109
|
-
sender_value: T.nilable(String),
|
|
110
103
|
status: T.nilable(Sentdm::Channels::SMSMarket::Status::OrSymbol)
|
|
111
104
|
).returns(T.attached_class)
|
|
112
105
|
end
|
|
@@ -145,10 +138,6 @@ module Sentdm
|
|
|
145
138
|
# this rather than on reason. Omitted while ACTIVE. Read-only; when nothing more
|
|
146
139
|
# specific is known it is the generic reason for the status.
|
|
147
140
|
reason_code: nil,
|
|
148
|
-
# The sender itself. Null until a carrier-assigned number is procured. For a
|
|
149
|
-
# market holding several numbers, the first active one (the first assigned while
|
|
150
|
-
# none is active) — every number is in numbers.
|
|
151
|
-
sender_value: nil,
|
|
152
141
|
# Where this market's sender stands, in terms of who is holding it up —
|
|
153
142
|
# PROVISIONING, ACTION_NEEDED, PENDING_REVIEW or ACTIVE. Read-only.
|
|
154
143
|
#
|
|
@@ -175,7 +164,6 @@ module Sentdm
|
|
|
175
164
|
numbers: T::Array[Sentdm::Channels::SMSNumber],
|
|
176
165
|
reason: T.nilable(String),
|
|
177
166
|
reason_code: T.nilable(String),
|
|
178
|
-
sender_value: T.nilable(String),
|
|
179
167
|
status:
|
|
180
168
|
T.nilable(Sentdm::Channels::SMSMarket::Status::TaggedSymbol)
|
|
181
169
|
}
|
|
@@ -14,6 +14,13 @@ module Sentdm
|
|
|
14
14
|
sig { returns(T.nilable(String)) }
|
|
15
15
|
attr_accessor :area_code
|
|
16
16
|
|
|
17
|
+
# The campaign the number is on, or is owed for: the id of its entry in
|
|
18
|
+
# compliance.campaigns. Omitted for a market that registers no campaigns, and
|
|
19
|
+
# where the campaign is not known — a number recorded without one, or one owed on
|
|
20
|
+
# a campaign inherited from the organization.
|
|
21
|
+
sig { returns(T.nilable(String)) }
|
|
22
|
+
attr_accessor :campaign_id
|
|
23
|
+
|
|
17
24
|
# The number, or null while it is still to be assigned.
|
|
18
25
|
sig { returns(T.nilable(String)) }
|
|
19
26
|
attr_accessor :sender_value
|
|
@@ -27,6 +34,7 @@ module Sentdm
|
|
|
27
34
|
sig do
|
|
28
35
|
params(
|
|
29
36
|
area_code: T.nilable(String),
|
|
37
|
+
campaign_id: T.nilable(String),
|
|
30
38
|
sender_value: T.nilable(String),
|
|
31
39
|
status: T.nilable(String)
|
|
32
40
|
).returns(T.attached_class)
|
|
@@ -35,6 +43,11 @@ module Sentdm
|
|
|
35
43
|
# The number's area code, e.g. 212. While the number is still to be assigned, the
|
|
36
44
|
# area code it was asked for, or null when it was asked for in any area code.
|
|
37
45
|
area_code: nil,
|
|
46
|
+
# The campaign the number is on, or is owed for: the id of its entry in
|
|
47
|
+
# compliance.campaigns. Omitted for a market that registers no campaigns, and
|
|
48
|
+
# where the campaign is not known — a number recorded without one, or one owed on
|
|
49
|
+
# a campaign inherited from the organization.
|
|
50
|
+
campaign_id: nil,
|
|
38
51
|
# The number, or null while it is still to be assigned.
|
|
39
52
|
sender_value: nil,
|
|
40
53
|
# ACTIVE once the number can send; PROVISIONING while it is still to be assigned;
|
|
@@ -47,6 +60,7 @@ module Sentdm
|
|
|
47
60
|
override.returns(
|
|
48
61
|
{
|
|
49
62
|
area_code: T.nilable(String),
|
|
63
|
+
campaign_id: T.nilable(String),
|
|
50
64
|
sender_value: T.nilable(String),
|
|
51
65
|
status: T.nilable(String)
|
|
52
66
|
}
|
|
@@ -44,6 +44,26 @@ module Sentdm
|
|
|
44
44
|
sig { returns(T.nilable(T::Hash[Symbol, T.anything])) }
|
|
45
45
|
attr_accessor :campaign
|
|
46
46
|
|
|
47
|
+
# Every campaign this market registers, each with inherit saying whose it is —
|
|
48
|
+
# oldest first.
|
|
49
|
+
#
|
|
50
|
+
# A list, because a market can now be on more than one. POST
|
|
51
|
+
# /v3/channels/sms/compliances/US/TEN_DLC/campaigns adds a campaign of the
|
|
52
|
+
# customer's own beside the one it has, and a profile running on its
|
|
53
|
+
# organization's campaign keeps that one when it adds its own. Campaign can only
|
|
54
|
+
# show one of them, so it stays as it was, for callers that read it, and this is
|
|
55
|
+
# where the rest are.
|
|
56
|
+
#
|
|
57
|
+
# The organization's campaign reads "inherit": true and the customer's own read
|
|
58
|
+
# "inherit": false. Each entry is the shape of Campaign plus id, the campaign's
|
|
59
|
+
# own id, so several can be told apart. Campaign carries no id, because it is sent
|
|
60
|
+
# back to PATCH, which refuses a key it does not declare; this list is read-only.
|
|
61
|
+
#
|
|
62
|
+
# Absent for a market that registers with nobody; empty for one that registers and
|
|
63
|
+
# has no campaign yet.
|
|
64
|
+
sig { returns(T.nilable(T::Array[T::Hash[Symbol, T.anything]])) }
|
|
65
|
+
attr_accessor :campaigns
|
|
66
|
+
|
|
47
67
|
# What has been supplied for this market.
|
|
48
68
|
#
|
|
49
69
|
# Files, not values — the declared halves above carry the values. A document
|
|
@@ -77,6 +97,7 @@ module Sentdm
|
|
|
77
97
|
params(
|
|
78
98
|
brand: T.nilable(T::Hash[Symbol, T.anything]),
|
|
79
99
|
campaign: T.nilable(T::Hash[Symbol, T.anything]),
|
|
100
|
+
campaigns: T.nilable(T::Array[T::Hash[Symbol, T.anything]]),
|
|
80
101
|
documents:
|
|
81
102
|
T.nilable(T::Array[Sentdm::Channels::SuppliedDocument::OrHash])
|
|
82
103
|
).returns(T.attached_class)
|
|
@@ -110,6 +131,24 @@ module Sentdm
|
|
|
110
131
|
# refused if the caller sent this object back — which it is meant to be able to
|
|
111
132
|
# do.
|
|
112
133
|
campaign: nil,
|
|
134
|
+
# Every campaign this market registers, each with inherit saying whose it is —
|
|
135
|
+
# oldest first.
|
|
136
|
+
#
|
|
137
|
+
# A list, because a market can now be on more than one. POST
|
|
138
|
+
# /v3/channels/sms/compliances/US/TEN_DLC/campaigns adds a campaign of the
|
|
139
|
+
# customer's own beside the one it has, and a profile running on its
|
|
140
|
+
# organization's campaign keeps that one when it adds its own. Campaign can only
|
|
141
|
+
# show one of them, so it stays as it was, for callers that read it, and this is
|
|
142
|
+
# where the rest are.
|
|
143
|
+
#
|
|
144
|
+
# The organization's campaign reads "inherit": true and the customer's own read
|
|
145
|
+
# "inherit": false. Each entry is the shape of Campaign plus id, the campaign's
|
|
146
|
+
# own id, so several can be told apart. Campaign carries no id, because it is sent
|
|
147
|
+
# back to PATCH, which refuses a key it does not declare; this list is read-only.
|
|
148
|
+
#
|
|
149
|
+
# Absent for a market that registers with nobody; empty for one that registers and
|
|
150
|
+
# has no campaign yet.
|
|
151
|
+
campaigns: nil,
|
|
113
152
|
# What has been supplied for this market.
|
|
114
153
|
#
|
|
115
154
|
# Files, not values — the declared halves above carry the values. A document
|
|
@@ -128,6 +167,7 @@ module Sentdm
|
|
|
128
167
|
{
|
|
129
168
|
brand: T.nilable(T::Hash[Symbol, T.anything]),
|
|
130
169
|
campaign: T.nilable(T::Hash[Symbol, T.anything]),
|
|
170
|
+
campaigns: T.nilable(T::Array[T::Hash[Symbol, T.anything]]),
|
|
131
171
|
documents: T.nilable(T::Array[Sentdm::Channels::SuppliedDocument])
|
|
132
172
|
}
|
|
133
173
|
)
|
|
@@ -63,6 +63,15 @@ module Sentdm
|
|
|
63
63
|
sig { returns(T.nilable(String)) }
|
|
64
64
|
attr_accessor :help_message
|
|
65
65
|
|
|
66
|
+
# Whether the campaign is the organization's, which the profile runs on, rather
|
|
67
|
+
# than one of the profile's own. A profile running on its organization's campaign
|
|
68
|
+
# can hold campaigns of its own beside it, and the list returns both.
|
|
69
|
+
sig { returns(T.nilable(T::Boolean)) }
|
|
70
|
+
attr_reader :is_inherited
|
|
71
|
+
|
|
72
|
+
sig { params(is_inherited: T::Boolean).void }
|
|
73
|
+
attr_writer :is_inherited
|
|
74
|
+
|
|
66
75
|
sig { returns(T.nilable(String)) }
|
|
67
76
|
attr_accessor :message_flow
|
|
68
77
|
|
|
@@ -152,6 +161,7 @@ module Sentdm
|
|
|
152
161
|
has_submission_transaction: T::Boolean,
|
|
153
162
|
help_keywords: T.nilable(String),
|
|
154
163
|
help_message: T.nilable(String),
|
|
164
|
+
is_inherited: T::Boolean,
|
|
155
165
|
message_flow: T.nilable(String),
|
|
156
166
|
name: String,
|
|
157
167
|
optin_keywords: T.nilable(String),
|
|
@@ -187,6 +197,10 @@ module Sentdm
|
|
|
187
197
|
has_submission_transaction: nil,
|
|
188
198
|
help_keywords: nil,
|
|
189
199
|
help_message: nil,
|
|
200
|
+
# Whether the campaign is the organization's, which the profile runs on, rather
|
|
201
|
+
# than one of the profile's own. A profile running on its organization's campaign
|
|
202
|
+
# can hold campaigns of its own beside it, and the list returns both.
|
|
203
|
+
is_inherited: nil,
|
|
190
204
|
message_flow: nil,
|
|
191
205
|
name: nil,
|
|
192
206
|
optin_keywords: nil,
|
|
@@ -229,6 +243,7 @@ module Sentdm
|
|
|
229
243
|
has_submission_transaction: T::Boolean,
|
|
230
244
|
help_keywords: T.nilable(String),
|
|
231
245
|
help_message: T.nilable(String),
|
|
246
|
+
is_inherited: T::Boolean,
|
|
232
247
|
message_flow: T.nilable(String),
|
|
233
248
|
name: String,
|
|
234
249
|
optin_keywords: T.nilable(String),
|
|
@@ -54,9 +54,10 @@ module Sentdm
|
|
|
54
54
|
attr_accessor :ended_at
|
|
55
55
|
|
|
56
56
|
# Why the call did not complete: callback_timeout, invalid_answer,
|
|
57
|
-
# insufficient_balance,
|
|
58
|
-
# no_answer, or for an agent call agent_busy or
|
|
59
|
-
# call is live, when it completed, and when it
|
|
57
|
+
# insufficient_balance, payment_method_missing, destination_blocked,
|
|
58
|
+
# callback_not_configured, rejected, no_answer, or for an agent call agent_busy or
|
|
59
|
+
# agent_unreachable. Null while the call is live, when it completed, and when it
|
|
60
|
+
# failed without a recorded reason
|
|
60
61
|
sig { returns(T.nilable(String)) }
|
|
61
62
|
attr_accessor :failure_reason
|
|
62
63
|
|
|
@@ -179,9 +180,10 @@ module Sentdm
|
|
|
179
180
|
# When the call ended (UTC). Null while the call is live
|
|
180
181
|
ended_at: nil,
|
|
181
182
|
# Why the call did not complete: callback_timeout, invalid_answer,
|
|
182
|
-
# insufficient_balance,
|
|
183
|
-
# no_answer, or for an agent call agent_busy or
|
|
184
|
-
# call is live, when it completed, and when it
|
|
183
|
+
# insufficient_balance, payment_method_missing, destination_blocked,
|
|
184
|
+
# callback_not_configured, rejected, no_answer, or for an agent call agent_busy or
|
|
185
|
+
# agent_unreachable. Null while the call is live, when it completed, and when it
|
|
186
|
+
# failed without a recorded reason
|
|
185
187
|
failure_reason: nil,
|
|
186
188
|
# One end of a call
|
|
187
189
|
from: nil,
|