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.
Files changed (55) hide show
  1. checksums.yaml +4 -4
  2. data/CHANGELOG.md +18 -0
  3. data/README.md +1 -1
  4. data/lib/sentdm/client.rb +2 -2
  5. data/lib/sentdm/models/channels/sms/api_response_of_supplied_compliance.rb +67 -0
  6. data/lib/sentdm/models/channels/sms/ten_dlc_add_campaign_params.rb +161 -0
  7. data/lib/sentdm/models/channels/sms/ten_dlc_add_numbers_params.rb +65 -0
  8. data/lib/sentdm/models/channels/sms/ten_dlc_campaign_use_case.rb +56 -0
  9. data/lib/sentdm/models/channels/sms/ten_dlc_retrieve_compliance_params.rb +24 -0
  10. data/lib/sentdm/models/channels/sms/ten_dlc_update_campaign_params.rb +168 -0
  11. data/lib/sentdm/models/channels/sms_market.rb +1 -11
  12. data/lib/sentdm/models/channels/sms_number.rb +12 -1
  13. data/lib/sentdm/models/channels/supplied_campaign.rb +10 -0
  14. data/lib/sentdm/models/channels/supplied_compliance.rb +27 -1
  15. data/lib/sentdm/models/profiles/brand_campaign.rb +11 -1
  16. data/lib/sentdm/models/voice/call.rb +4 -3
  17. data/lib/sentdm/resources/channels/sms/ten_dlc.rb +310 -0
  18. data/lib/sentdm/resources/channels/sms.rb +35 -1
  19. data/lib/sentdm/resources/profiles/campaigns.rb +4 -1
  20. data/lib/sentdm/resources/sender_profiles.rb +5 -3
  21. data/lib/sentdm/resources/voice/calls/participants.rb +5 -5
  22. data/lib/sentdm/version.rb +1 -1
  23. data/lib/sentdm.rb +8 -0
  24. data/rbi/sentdm/client.rbi +2 -2
  25. data/rbi/sentdm/models/channels/sms/api_response_of_supplied_compliance.rbi +117 -0
  26. data/rbi/sentdm/models/channels/sms/ten_dlc_add_campaign_params.rbi +255 -0
  27. data/rbi/sentdm/models/channels/sms/ten_dlc_add_numbers_params.rbi +100 -0
  28. data/rbi/sentdm/models/channels/sms/ten_dlc_campaign_use_case.rbi +143 -0
  29. data/rbi/sentdm/models/channels/sms/ten_dlc_retrieve_compliance_params.rbi +45 -0
  30. data/rbi/sentdm/models/channels/sms/ten_dlc_update_campaign_params.rbi +264 -0
  31. data/rbi/sentdm/models/channels/sms_market.rbi +0 -12
  32. data/rbi/sentdm/models/channels/sms_number.rbi +14 -0
  33. data/rbi/sentdm/models/channels/supplied_campaign.rbi +13 -0
  34. data/rbi/sentdm/models/channels/supplied_compliance.rbi +40 -0
  35. data/rbi/sentdm/models/profiles/brand_campaign.rbi +15 -0
  36. data/rbi/sentdm/models/voice/call.rbi +8 -6
  37. data/rbi/sentdm/resources/channels/sms/ten_dlc.rbi +358 -0
  38. data/rbi/sentdm/resources/channels/sms.rbi +34 -1
  39. data/rbi/sentdm/resources/profiles/campaigns.rbi +4 -1
  40. data/rbi/sentdm/resources/sender_profiles.rbi +5 -3
  41. data/rbi/sentdm/resources/voice/calls/participants.rbi +5 -5
  42. data/sig/sentdm/models/channels/sms/api_response_of_supplied_compliance.rbs +43 -0
  43. data/sig/sentdm/models/channels/sms/ten_dlc_add_campaign_params.rbs +130 -0
  44. data/sig/sentdm/models/channels/sms/ten_dlc_add_numbers_params.rbs +54 -0
  45. data/sig/sentdm/models/channels/sms/ten_dlc_campaign_use_case.rbs +60 -0
  46. data/sig/sentdm/models/channels/sms/ten_dlc_retrieve_compliance_params.rbs +29 -0
  47. data/sig/sentdm/models/channels/sms/ten_dlc_update_campaign_params.rbs +137 -0
  48. data/sig/sentdm/models/channels/sms_market.rbs +0 -5
  49. data/sig/sentdm/models/channels/sms_number.rbs +10 -1
  50. data/sig/sentdm/models/channels/supplied_campaign.rbs +9 -0
  51. data/sig/sentdm/models/channels/supplied_compliance.rbs +5 -0
  52. data/sig/sentdm/models/profiles/brand_campaign.rbs +7 -0
  53. data/sig/sentdm/resources/channels/sms/ten_dlc.rbs +64 -0
  54. data/sig/sentdm/resources/channels/sms.rbs +2 -0
  55. metadata +26 -2
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: 819f750414001d5ce375dfda603f82bdf86ac538321ad3c9a507211cbf03e961
4
- data.tar.gz: 438e1fa1e2c0dc0566f22a96af84026c640db01e4605635e3156fdfd81c6a0b7
3
+ metadata.gz: d38c44fc0e4e6d7b1e17992e546d60c09313b6d3a6713e00a57b307b92b08a0f
4
+ data.tar.gz: 13b0a8172433b58b21c01bb556247b9fbae2d8ffa5a059f27fdcb4299053945d
5
5
  SHA512:
6
- metadata.gz: 31802c8938ba238bae598ec3c37fd21103d8627752dc936f503c33ada9ba8bc7580840db2bb6572b04badc9da775a45eec55820b5b1e675dc20a3b54cfbce6e5
7
- data.tar.gz: 5a9d28dcae2395c7f925a04dd8dc825d0ca2c17df646ade6304a31fd0679ee136af4ff0f01270762cc82d2ab08e3d6b5e5b1beeed3f148576480fffc70bac936
6
+ metadata.gz: 5ff32390e560a211ac42f30d920b6ba078cb125e6af8fc10df9da6646724736955cedb6c0638cff56fe80b48e8cd4de56ea0fc390d6dcf11c1486c35d70daf6c
7
+ data.tar.gz: 6f1fa6cc5cb690d1a0f5a3ae4df2009219e3fbb863dbfe38cb09f2d06265ee1fdcf128c538a6b47fa2c9653a8d22e13ddd40ca17f148dc818db2cd8d8512f9c4
data/CHANGELOG.md CHANGED
@@ -1,5 +1,23 @@
1
1
  # Changelog
2
2
 
3
+ ## [0.48.0](https://github.com/sentdm/sent-dm-ruby/compare/v0.47.0...v0.48.0) (2026-11-12)
4
+
5
+
6
+ ### Features
7
+
8
+ * **api:** methods for the US 10DLC campaigns, numbers and market compliance ([ebf5826](https://github.com/sentdm/sent-dm-ruby/commit/ebf582605d11941f03d1bc9b251fb3f6599be090))
9
+
10
+ ## [0.47.0](https://github.com/sentdm/sent-dm-ruby/compare/v0.46.0...v0.47.0) (2026-11-12)
11
+
12
+
13
+ ### ⚠ BREAKING CHANGES
14
+
15
+ * **api:** sync OpenAPI spec from production
16
+
17
+ ### Features
18
+
19
+ * **api:** sync OpenAPI spec from production ([1403c2d](https://github.com/sentdm/sent-dm-ruby/commit/1403c2d4d4e9ca6cbb853c760ea14475f1da03a6))
20
+
3
21
  ## [0.46.0](https://github.com/sentdm/sent-dm-ruby/compare/v0.45.0...v0.46.0) (2026-11-06)
4
22
 
5
23
 
data/README.md CHANGED
@@ -17,7 +17,7 @@ To use this gem, install via Bundler by adding the following to your application
17
17
  <!-- x-release-please-start-version -->
18
18
 
19
19
  ```ruby
20
- gem "sentdm", "~> 0.46.0"
20
+ gem "sentdm", "~> 0.48.0"
21
21
  ```
22
22
 
23
23
  <!-- x-release-please-end -->
data/lib/sentdm/client.rb CHANGED
@@ -75,8 +75,8 @@ module Sentdm
75
75
  # instead.
76
76
  #
77
77
  # **A sender is the exception.** A brand and a campaign can be inherited; a number
78
- # cannot. A profile either has a sender of its own or terminates through your
79
- # shared routes.
78
+ # cannot. A profile either has a sender of its own or reaches only the countries
79
+ # Sent runs a shared route for, and the US is not one of them.
80
80
  #
81
81
  # To act for a profile on any other resource, send `x-profile-id` with your
82
82
  # organization key rather than looking for a parallel set of endpoints.
@@ -0,0 +1,67 @@
1
+ # frozen_string_literal: true
2
+
3
+ module Sentdm
4
+ module Models
5
+ module Channels
6
+ module SMS
7
+ # @see Sentdm::Resources::Channels::SMS::TenDlc#retrieve_compliance
8
+ class APIResponseOfSuppliedCompliance < Sentdm::Internal::Type::BaseModel
9
+ # @!attribute data
10
+ # What a market has been given: the identity it registers under, its programme,
11
+ # and any documents attached.
12
+ #
13
+ # What it does not carry is what the market asks for. That is the subject of GET
14
+ # /v3/compliance/requirements, and it is the same answer for every caller — a
15
+ # description of what a compliance regime wants, not a record of one customer's
16
+ # progress through it. It was reported here as well for a while, which put the
17
+ # same array in six response shapes and left a caller deciding which of two
18
+ # sources to believe.
19
+ #
20
+ # Present on a list read for markets that register (carrying brand and campaign),
21
+ # but with documents absent — documents are not fetched for a list, because a
22
+ # catalog lookup and a document read per market would multiply across a page.
23
+ # Absent documents is distinct from an empty list: absent says they were not
24
+ # fetched; empty says the market has been given none. The parent object is null
25
+ # only when the market registers with nobody and compliance was not computed —
26
+ # nothing to show at all.
27
+ #
28
+ # @return [Sentdm::Models::Channels::SuppliedCompliance, nil]
29
+ optional :data, -> { Sentdm::Channels::SuppliedCompliance }, nil?: true
30
+
31
+ # @!attribute error
32
+ # Error information
33
+ #
34
+ # @return [Sentdm::Models::ErrorDetail, nil]
35
+ optional :error, -> { Sentdm::ErrorDetail }, nil?: true
36
+
37
+ # @!attribute meta
38
+ # Request and response metadata
39
+ #
40
+ # @return [Sentdm::Models::APIMeta, nil]
41
+ optional :meta, -> { Sentdm::APIMeta }
42
+
43
+ # @!attribute success
44
+ # Indicates whether the request was successful
45
+ #
46
+ # @return [Boolean, nil]
47
+ optional :success, Sentdm::Internal::Type::Boolean
48
+
49
+ # @!method initialize(data: nil, error: nil, meta: nil, success: nil)
50
+ # Some parameter documentations has been truncated, see
51
+ # {Sentdm::Models::Channels::SMS::APIResponseOfSuppliedCompliance} for more
52
+ # details.
53
+ #
54
+ # Standard API response envelope for all v3 endpoints
55
+ #
56
+ # @param data [Sentdm::Models::Channels::SuppliedCompliance, nil] What a market has been given: the identity it registers under, its programme, an
57
+ #
58
+ # @param error [Sentdm::Models::ErrorDetail, nil] Error information
59
+ #
60
+ # @param meta [Sentdm::Models::APIMeta] Request and response metadata
61
+ #
62
+ # @param success [Boolean] Indicates whether the request was successful
63
+ end
64
+ end
65
+ end
66
+ end
67
+ end
@@ -0,0 +1,161 @@
1
+ # frozen_string_literal: true
2
+
3
+ module Sentdm
4
+ module Models
5
+ module Channels
6
+ module SMS
7
+ # @see Sentdm::Resources::Channels::SMS::TenDlc#add_campaign
8
+ class TenDlcAddCampaignParams < Sentdm::Internal::Type::BaseModel
9
+ extend Sentdm::Internal::Type::RequestParameters::Converter
10
+ include Sentdm::Internal::Type::RequestParameters
11
+
12
+ # @!attribute idempotency_key
13
+ #
14
+ # @return [String]
15
+ required :idempotency_key, String
16
+
17
+ # @!attribute description
18
+ # What this programme sends. TCR description: what recipients will get and why, in
19
+ # a sentence. The only one of these TCR takes verbatim as a description of the
20
+ # programme, which is why it is asked for rather than derived from the customer's
21
+ # name. Required when `compliance.campaign.inherit != true`.
22
+ #
23
+ # @return [String, nil]
24
+ optional :description, String
25
+
26
+ # @!attribute help_keywords
27
+ # Help keywords. TCR helpKeywords, comma separated, e.g. HELP,INFO. Required when
28
+ # `compliance.campaign.inherit != true`.
29
+ #
30
+ # @return [String, nil]
31
+ optional :help_keywords, String
32
+
33
+ # @!attribute help_message
34
+ # Help reply. TCR helpMessage. Its presence is what sets subscriberHelp. Required
35
+ # when `compliance.campaign.inherit != true`.
36
+ #
37
+ # @return [String, nil]
38
+ optional :help_message, String
39
+
40
+ # @!attribute message_flow
41
+ # Consent narrative. TCR messageFlow: how recipients opt in, in prose. Under 40
42
+ # characters is refused, and carriers reject vague descriptions — say where opt-in
43
+ # happens, that the box is unchecked by default, and that consent is not a
44
+ # condition of purchase. Required when `compliance.campaign.inherit != true`.
45
+ #
46
+ # @return [String, nil]
47
+ optional :message_flow, String
48
+
49
+ # @!attribute opt_in_keywords
50
+ # Opt-in keywords. TCR optinKeywords, comma separated, e.g. START,YES. Required
51
+ # when `compliance.campaign.inherit != true`.
52
+ #
53
+ # @return [String, nil]
54
+ optional :opt_in_keywords, String
55
+
56
+ # @!attribute opt_in_message
57
+ # Opt-in confirmation. TCR optinMessage. Should state message frequency and that
58
+ # rates may apply. Its presence is what sets subscriberOptin. Required when
59
+ # `compliance.campaign.inherit != true`.
60
+ #
61
+ # @return [String, nil]
62
+ optional :opt_in_message, String
63
+
64
+ # @!attribute opt_out_keywords
65
+ # Opt-out keywords. TCR optoutKeywords, comma separated. STOP, END, CANCEL,
66
+ # UNSUBSCRIBE and QUIT are honoured regardless of what is declared. Required when
67
+ # `compliance.campaign.inherit != true`.
68
+ #
69
+ # @return [String, nil]
70
+ optional :opt_out_keywords, String
71
+
72
+ # @!attribute opt_out_message
73
+ # Opt-out confirmation. TCR optoutMessage. Its presence is what sets
74
+ # subscriberOptout. Required when `compliance.campaign.inherit != true`.
75
+ #
76
+ # @return [String, nil]
77
+ optional :opt_out_message, String
78
+
79
+ # @!attribute privacy_policy_link
80
+ # Privacy policy URL. TCR privacyPolicyLink. Required when
81
+ # `compliance.campaign.inherit != true`.
82
+ #
83
+ # @return [String, nil]
84
+ optional :privacy_policy_link, String
85
+
86
+ # @!attribute sandbox
87
+ # Sandbox flag - when true, the operation is simulated without side effects Useful
88
+ # for testing integrations without actual execution
89
+ #
90
+ # @return [Boolean, nil]
91
+ optional :sandbox, Sentdm::Internal::Type::Boolean
92
+
93
+ # @!attribute terms_and_conditions_link
94
+ # Terms and conditions URL. TCR termsAndConditionsLink. Required when
95
+ # `compliance.campaign.inherit != true`.
96
+ #
97
+ # @return [String, nil]
98
+ optional :terms_and_conditions_link, String
99
+
100
+ # @!attribute use_cases
101
+ # Use cases. What the campaign sends, and an example of each. One to five entries;
102
+ # how they register is decided by volume, never declared. Required when
103
+ # `compliance.campaign.inherit != true`.
104
+ #
105
+ # @return [Array<Sentdm::Models::Channels::SMS::TenDlcCampaignUseCase>, nil]
106
+ optional :use_cases, -> { Sentdm::Internal::Type::ArrayOf[Sentdm::Channels::SMS::TenDlcCampaignUseCase] }
107
+
108
+ # @!attribute volume
109
+ # Expected monthly volume. Decides how the campaign registers and which fee tier
110
+ # applies: below the low-volume threshold it registers as LOW_VOLUME with
111
+ # sub-use-cases, above it as a single use case or MIXED. Omitting it registers the
112
+ # campaign at the higher-fee standard tier.
113
+ #
114
+ # @return [String, nil]
115
+ optional :volume, String
116
+
117
+ # @!attribute x_profile_id
118
+ #
119
+ # @return [String, nil]
120
+ optional :x_profile_id, String
121
+
122
+ # @!method initialize(idempotency_key:, description: nil, help_keywords: nil, help_message: nil, message_flow: nil, opt_in_keywords: nil, opt_in_message: nil, opt_out_keywords: nil, opt_out_message: nil, privacy_policy_link: nil, sandbox: nil, terms_and_conditions_link: nil, use_cases: nil, volume: nil, x_profile_id: nil, request_options: {})
123
+ # Some parameter documentations has been truncated, see
124
+ # {Sentdm::Models::Channels::SMS::TenDlcAddCampaignParams} for more details.
125
+ #
126
+ # @param idempotency_key [String]
127
+ #
128
+ # @param description [String] What this programme sends. TCR description: what recipients will get and why, in
129
+ #
130
+ # @param help_keywords [String] Help keywords. TCR helpKeywords, comma separated, e.g. HELP,INFO. Required when
131
+ #
132
+ # @param help_message [String] Help reply. TCR helpMessage. Its presence is what sets subscriberHelp. Required
133
+ #
134
+ # @param message_flow [String] Consent narrative. TCR messageFlow: how recipients opt in, in prose. Under 40 ch
135
+ #
136
+ # @param opt_in_keywords [String] Opt-in keywords. TCR optinKeywords, comma separated, e.g. START,YES. Required wh
137
+ #
138
+ # @param opt_in_message [String] Opt-in confirmation. TCR optinMessage. Should state message frequency and that r
139
+ #
140
+ # @param opt_out_keywords [String] Opt-out keywords. TCR optoutKeywords, comma separated. STOP, END, CANCEL, UNSUBS
141
+ #
142
+ # @param opt_out_message [String] Opt-out confirmation. TCR optoutMessage. Its presence is what sets subscriberOpt
143
+ #
144
+ # @param privacy_policy_link [String] Privacy policy URL. TCR privacyPolicyLink. Required when `compliance.campaign.in
145
+ #
146
+ # @param sandbox [Boolean] Sandbox flag - when true, the operation is simulated without side effects
147
+ #
148
+ # @param terms_and_conditions_link [String] Terms and conditions URL. TCR termsAndConditionsLink. Required when `compliance.
149
+ #
150
+ # @param use_cases [Array<Sentdm::Models::Channels::SMS::TenDlcCampaignUseCase>] Use cases. What the campaign sends, and an example of each. One to five entries;
151
+ #
152
+ # @param volume [String] Expected monthly volume. Decides how the campaign registers and which fee tier a
153
+ #
154
+ # @param x_profile_id [String]
155
+ #
156
+ # @param request_options [Sentdm::RequestOptions, Hash{Symbol=>Object}]
157
+ end
158
+ end
159
+ end
160
+ end
161
+ end
@@ -0,0 +1,65 @@
1
+ # frozen_string_literal: true
2
+
3
+ module Sentdm
4
+ module Models
5
+ module Channels
6
+ module SMS
7
+ # @see Sentdm::Resources::Channels::SMS::TenDlc#add_numbers
8
+ class TenDlcAddNumbersParams < Sentdm::Internal::Type::BaseModel
9
+ extend Sentdm::Internal::Type::RequestParameters::Converter
10
+ include Sentdm::Internal::Type::RequestParameters
11
+
12
+ # @!attribute campaign_id
13
+ # The campaign to add the numbers to, as compliance.campaigns[].id reports it.
14
+ # Required.
15
+ #
16
+ # @return [String]
17
+ required :campaign_id, String
18
+
19
+ # @!attribute numbers
20
+ # The numbers to add, one entry per area code, e.g. [{"area_code": "415",
21
+ # "quantity": 2}, {"quantity": 1}]. quantity defaults to 1, and an entry without
22
+ # area_code means any area code. Required.
23
+ #
24
+ # Added to what the campaign already asks for, never replacing it.
25
+ #
26
+ # @return [Array<Sentdm::Models::Channels::SMSNumberRequest, nil>]
27
+ required :numbers, -> { Sentdm::Internal::Type::ArrayOf[Sentdm::Channels::SMSNumberRequest, nil?: true] }
28
+
29
+ # @!attribute idempotency_key
30
+ #
31
+ # @return [String]
32
+ required :idempotency_key, String
33
+
34
+ # @!attribute sandbox
35
+ # Sandbox flag - when true, the operation is simulated without side effects Useful
36
+ # for testing integrations without actual execution
37
+ #
38
+ # @return [Boolean, nil]
39
+ optional :sandbox, Sentdm::Internal::Type::Boolean
40
+
41
+ # @!attribute x_profile_id
42
+ #
43
+ # @return [String, nil]
44
+ optional :x_profile_id, String
45
+
46
+ # @!method initialize(campaign_id:, numbers:, idempotency_key:, sandbox: nil, x_profile_id: nil, request_options: {})
47
+ # Some parameter documentations has been truncated, see
48
+ # {Sentdm::Models::Channels::SMS::TenDlcAddNumbersParams} for more details.
49
+ #
50
+ # @param campaign_id [String] The campaign to add the numbers to, as compliance.campaigns[].id reports it. Req
51
+ #
52
+ # @param numbers [Array<Sentdm::Models::Channels::SMSNumberRequest, nil>] The numbers to add, one entry per area code, e.g. [{"area_code": "415", "quantit
53
+ #
54
+ # @param idempotency_key [String]
55
+ #
56
+ # @param sandbox [Boolean] Sandbox flag - when true, the operation is simulated without side effects
57
+ #
58
+ # @param x_profile_id [String]
59
+ #
60
+ # @param request_options [Sentdm::RequestOptions, Hash{Symbol=>Object}]
61
+ end
62
+ end
63
+ end
64
+ end
65
+ end
@@ -0,0 +1,56 @@
1
+ # frozen_string_literal: true
2
+
3
+ module Sentdm
4
+ module Models
5
+ module Channels
6
+ module SMS
7
+ class TenDlcCampaignUseCase < Sentdm::Internal::Type::BaseModel
8
+ # @!attribute sample_messages
9
+ # Sample messages. TCR sample1..sample5 for this use case. One to five, each
10
+ # carrying the brand name and an opt-out instruction.
11
+ #
12
+ # @return [Array<Object>]
13
+ required :sample_messages, Sentdm::Internal::Type::ArrayOf[Sentdm::Internal::Type::Unknown]
14
+
15
+ # @!attribute use_case
16
+ # Use case. What this entry sends. MIXED and LOW_VOLUME are refused — volume
17
+ # decides those.
18
+ #
19
+ # @return [Symbol, Sentdm::Models::Channels::SMS::TenDlcCampaignUseCase::UseCase]
20
+ required :use_case, enum: -> { Sentdm::Channels::SMS::TenDlcCampaignUseCase::UseCase }
21
+
22
+ # @!method initialize(sample_messages:, use_case:)
23
+ # Some parameter documentations has been truncated, see
24
+ # {Sentdm::Models::Channels::SMS::TenDlcCampaignUseCase} for more details.
25
+ #
26
+ # @param sample_messages [Array<Object>] Sample messages. TCR sample1..sample5 for this use case. One to five, each carry
27
+ #
28
+ # @param use_case [Symbol, Sentdm::Models::Channels::SMS::TenDlcCampaignUseCase::UseCase] Use case. What this entry sends. MIXED and LOW_VOLUME are refused — volume decid
29
+
30
+ # Use case. What this entry sends. MIXED and LOW_VOLUME are refused — volume
31
+ # decides those.
32
+ #
33
+ # @see Sentdm::Models::Channels::SMS::TenDlcCampaignUseCase#use_case
34
+ module UseCase
35
+ extend Sentdm::Internal::Type::Enum
36
+
37
+ MARKETING = :MARKETING
38
+ ACCOUNT_NOTIFICATION = :ACCOUNT_NOTIFICATION
39
+ CUSTOMER_CARE = :CUSTOMER_CARE
40
+ FRAUD_ALERT = :FRAUD_ALERT
41
+ USE_CASE_2_FA = :"2FA"
42
+ DELIVERY_NOTIFICATION = :DELIVERY_NOTIFICATION
43
+ SECURITY_ALERT = :SECURITY_ALERT
44
+ M2_M = :M2M
45
+ HIGHER_EDUCATION = :HIGHER_EDUCATION
46
+ POLLING_VOTING = :POLLING_VOTING
47
+ PUBLIC_SERVICE_ANNOUNCEMENT = :PUBLIC_SERVICE_ANNOUNCEMENT
48
+
49
+ # @!method self.values
50
+ # @return [Array<Symbol>]
51
+ end
52
+ end
53
+ end
54
+ end
55
+ end
56
+ end
@@ -0,0 +1,24 @@
1
+ # frozen_string_literal: true
2
+
3
+ module Sentdm
4
+ module Models
5
+ module Channels
6
+ module SMS
7
+ # @see Sentdm::Resources::Channels::SMS::TenDlc#retrieve_compliance
8
+ class TenDlcRetrieveComplianceParams < Sentdm::Internal::Type::BaseModel
9
+ extend Sentdm::Internal::Type::RequestParameters::Converter
10
+ include Sentdm::Internal::Type::RequestParameters
11
+
12
+ # @!attribute x_profile_id
13
+ #
14
+ # @return [String, nil]
15
+ optional :x_profile_id, String
16
+
17
+ # @!method initialize(x_profile_id: nil, request_options: {})
18
+ # @param x_profile_id [String]
19
+ # @param request_options [Sentdm::RequestOptions, Hash{Symbol=>Object}]
20
+ end
21
+ end
22
+ end
23
+ end
24
+ end
@@ -0,0 +1,168 @@
1
+ # frozen_string_literal: true
2
+
3
+ module Sentdm
4
+ module Models
5
+ module Channels
6
+ module SMS
7
+ # @see Sentdm::Resources::Channels::SMS::TenDlc#update_campaign
8
+ class TenDlcUpdateCampaignParams < Sentdm::Internal::Type::BaseModel
9
+ extend Sentdm::Internal::Type::RequestParameters::Converter
10
+ include Sentdm::Internal::Type::RequestParameters
11
+
12
+ # @!attribute campaign_id
13
+ #
14
+ # @return [String]
15
+ required :campaign_id, String
16
+
17
+ # @!attribute description
18
+ # What this programme sends. TCR description: what recipients will get and why, in
19
+ # a sentence. The only one of these TCR takes verbatim as a description of the
20
+ # programme, which is why it is asked for rather than derived from the customer's
21
+ # name. Required when `compliance.campaign.inherit != true`.
22
+ #
23
+ # @return [String, nil]
24
+ optional :description, String
25
+
26
+ # @!attribute help_keywords
27
+ # Help keywords. TCR helpKeywords, comma separated, e.g. HELP,INFO. Required when
28
+ # `compliance.campaign.inherit != true`.
29
+ #
30
+ # @return [String, nil]
31
+ optional :help_keywords, String
32
+
33
+ # @!attribute help_message
34
+ # Help reply. TCR helpMessage. Its presence is what sets subscriberHelp. Required
35
+ # when `compliance.campaign.inherit != true`.
36
+ #
37
+ # @return [String, nil]
38
+ optional :help_message, String
39
+
40
+ # @!attribute message_flow
41
+ # Consent narrative. TCR messageFlow: how recipients opt in, in prose. Under 40
42
+ # characters is refused, and carriers reject vague descriptions — say where opt-in
43
+ # happens, that the box is unchecked by default, and that consent is not a
44
+ # condition of purchase. Required when `compliance.campaign.inherit != true`.
45
+ #
46
+ # @return [String, nil]
47
+ optional :message_flow, String
48
+
49
+ # @!attribute opt_in_keywords
50
+ # Opt-in keywords. TCR optinKeywords, comma separated, e.g. START,YES. Required
51
+ # when `compliance.campaign.inherit != true`.
52
+ #
53
+ # @return [String, nil]
54
+ optional :opt_in_keywords, String
55
+
56
+ # @!attribute opt_in_message
57
+ # Opt-in confirmation. TCR optinMessage. Should state message frequency and that
58
+ # rates may apply. Its presence is what sets subscriberOptin. Required when
59
+ # `compliance.campaign.inherit != true`.
60
+ #
61
+ # @return [String, nil]
62
+ optional :opt_in_message, String
63
+
64
+ # @!attribute opt_out_keywords
65
+ # Opt-out keywords. TCR optoutKeywords, comma separated. STOP, END, CANCEL,
66
+ # UNSUBSCRIBE and QUIT are honoured regardless of what is declared. Required when
67
+ # `compliance.campaign.inherit != true`.
68
+ #
69
+ # @return [String, nil]
70
+ optional :opt_out_keywords, String
71
+
72
+ # @!attribute opt_out_message
73
+ # Opt-out confirmation. TCR optoutMessage. Its presence is what sets
74
+ # subscriberOptout. Required when `compliance.campaign.inherit != true`.
75
+ #
76
+ # @return [String, nil]
77
+ optional :opt_out_message, String
78
+
79
+ # @!attribute privacy_policy_link
80
+ # Privacy policy URL. TCR privacyPolicyLink. Required when
81
+ # `compliance.campaign.inherit != true`.
82
+ #
83
+ # @return [String, nil]
84
+ optional :privacy_policy_link, String
85
+
86
+ # @!attribute sandbox
87
+ # Sandbox flag - when true, the operation is simulated without side effects Useful
88
+ # for testing integrations without actual execution
89
+ #
90
+ # @return [Boolean, nil]
91
+ optional :sandbox, Sentdm::Internal::Type::Boolean
92
+
93
+ # @!attribute terms_and_conditions_link
94
+ # Terms and conditions URL. TCR termsAndConditionsLink. Required when
95
+ # `compliance.campaign.inherit != true`.
96
+ #
97
+ # @return [String, nil]
98
+ optional :terms_and_conditions_link, String
99
+
100
+ # @!attribute use_cases
101
+ # Use cases. What the campaign sends, and an example of each. One to five entries;
102
+ # how they register is decided by volume, never declared. Required when
103
+ # `compliance.campaign.inherit != true`.
104
+ #
105
+ # @return [Array<Sentdm::Models::Channels::SMS::TenDlcCampaignUseCase>, nil]
106
+ optional :use_cases, -> { Sentdm::Internal::Type::ArrayOf[Sentdm::Channels::SMS::TenDlcCampaignUseCase] }
107
+
108
+ # @!attribute volume
109
+ # Expected monthly volume. Decides how the campaign registers and which fee tier
110
+ # applies: below the low-volume threshold it registers as LOW_VOLUME with
111
+ # sub-use-cases, above it as a single use case or MIXED. Omitting it registers the
112
+ # campaign at the higher-fee standard tier.
113
+ #
114
+ # @return [String, nil]
115
+ optional :volume, String
116
+
117
+ # @!attribute idempotency_key
118
+ #
119
+ # @return [String, nil]
120
+ optional :idempotency_key, String
121
+
122
+ # @!attribute x_profile_id
123
+ #
124
+ # @return [String, nil]
125
+ optional :x_profile_id, String
126
+
127
+ # @!method initialize(campaign_id:, description: nil, help_keywords: nil, help_message: nil, message_flow: nil, opt_in_keywords: nil, opt_in_message: nil, opt_out_keywords: nil, opt_out_message: nil, privacy_policy_link: nil, sandbox: nil, terms_and_conditions_link: nil, use_cases: nil, volume: nil, idempotency_key: nil, x_profile_id: nil, request_options: {})
128
+ # Some parameter documentations has been truncated, see
129
+ # {Sentdm::Models::Channels::SMS::TenDlcUpdateCampaignParams} for more details.
130
+ #
131
+ # @param campaign_id [String]
132
+ #
133
+ # @param description [String] What this programme sends. TCR description: what recipients will get and why, in
134
+ #
135
+ # @param help_keywords [String] Help keywords. TCR helpKeywords, comma separated, e.g. HELP,INFO. Required when
136
+ #
137
+ # @param help_message [String] Help reply. TCR helpMessage. Its presence is what sets subscriberHelp. Required
138
+ #
139
+ # @param message_flow [String] Consent narrative. TCR messageFlow: how recipients opt in, in prose. Under 40 ch
140
+ #
141
+ # @param opt_in_keywords [String] Opt-in keywords. TCR optinKeywords, comma separated, e.g. START,YES. Required wh
142
+ #
143
+ # @param opt_in_message [String] Opt-in confirmation. TCR optinMessage. Should state message frequency and that r
144
+ #
145
+ # @param opt_out_keywords [String] Opt-out keywords. TCR optoutKeywords, comma separated. STOP, END, CANCEL, UNSUBS
146
+ #
147
+ # @param opt_out_message [String] Opt-out confirmation. TCR optoutMessage. Its presence is what sets subscriberOpt
148
+ #
149
+ # @param privacy_policy_link [String] Privacy policy URL. TCR privacyPolicyLink. Required when `compliance.campaign.in
150
+ #
151
+ # @param sandbox [Boolean] Sandbox flag - when true, the operation is simulated without side effects
152
+ #
153
+ # @param terms_and_conditions_link [String] Terms and conditions URL. TCR termsAndConditionsLink. Required when `compliance.
154
+ #
155
+ # @param use_cases [Array<Sentdm::Models::Channels::SMS::TenDlcCampaignUseCase>] Use cases. What the campaign sends, and an example of each. One to five entries;
156
+ #
157
+ # @param volume [String] Expected monthly volume. Decides how the campaign registers and which fee tier a
158
+ #
159
+ # @param idempotency_key [String]
160
+ #
161
+ # @param x_profile_id [String]
162
+ #
163
+ # @param request_options [Sentdm::RequestOptions, Hash{Symbol=>Object}]
164
+ end
165
+ end
166
+ end
167
+ end
168
+ end
@@ -62,14 +62,6 @@ module Sentdm
62
62
  # @return [String, nil]
63
63
  optional :reason_code, String, nil?: true
64
64
 
65
- # @!attribute sender_value
66
- # The sender itself. Null until a carrier-assigned number is procured. For a
67
- # market holding several numbers, the first active one (the first assigned while
68
- # none is active) — every number is in numbers.
69
- #
70
- # @return [String, nil]
71
- optional :sender_value, String, nil?: true
72
-
73
65
  # @!attribute status
74
66
  # Where this market's sender stands, in terms of who is holding it up —
75
67
  # PROVISIONING, ACTION_NEEDED, PENDING_REVIEW or ACTIVE. Read-only.
@@ -88,7 +80,7 @@ module Sentdm
88
80
  # @return [Symbol, Sentdm::Models::Channels::SMSMarket::Status, nil]
89
81
  optional :status, enum: -> { Sentdm::Channels::SMSMarket::Status }, nil?: true
90
82
 
91
- # @!method initialize(compliance: nil, country: nil, number_type: nil, numbers: nil, reason: nil, reason_code: nil, sender_value: nil, status: nil)
83
+ # @!method initialize(compliance: nil, country: nil, number_type: nil, numbers: nil, reason: nil, reason_code: nil, status: nil)
92
84
  # Some parameter documentations has been truncated, see
93
85
  # {Sentdm::Models::Channels::SMSMarket} for more details.
94
86
  #
@@ -112,8 +104,6 @@ module Sentdm
112
104
  #
113
105
  # @param reason_code [String, nil] Why the market is not ACTIVE, as a stable code: an ErrorCodes CHANNEL_xxx value
114
106
  #
115
- # @param sender_value [String, nil] The sender itself. Null until a carrier-assigned number is procured. For a marke
116
- #
117
107
  # @param status [Symbol, Sentdm::Models::Channels::SMSMarket::Status, nil] Where this market's sender stands, in terms of who is holding it up — PROVISIONI
118
108
 
119
109
  # Where this market's sender stands, in terms of who is holding it up —
@@ -11,6 +11,15 @@ module Sentdm
11
11
  # @return [String, nil]
12
12
  optional :area_code, String, nil?: true
13
13
 
14
+ # @!attribute campaign_id
15
+ # The campaign the number is on, or is owed for: the id of its entry in
16
+ # compliance.campaigns. Omitted for a market that registers no campaigns, and
17
+ # where the campaign is not known — a number recorded without one, or one owed on
18
+ # a campaign inherited from the organization.
19
+ #
20
+ # @return [String, nil]
21
+ optional :campaign_id, String, nil?: true
22
+
14
23
  # @!attribute sender_value
15
24
  # The number, or null while it is still to be assigned.
16
25
  #
@@ -24,7 +33,7 @@ module Sentdm
24
33
  # @return [String, nil]
25
34
  optional :status, String, nil?: true
26
35
 
27
- # @!method initialize(area_code: nil, sender_value: nil, status: nil)
36
+ # @!method initialize(area_code: nil, campaign_id: nil, sender_value: nil, status: nil)
28
37
  # Some parameter documentations has been truncated, see
29
38
  # {Sentdm::Models::Channels::SMSNumber} for more details.
30
39
  #
@@ -32,6 +41,8 @@ module Sentdm
32
41
  #
33
42
  # @param area_code [String, nil] The number's area code, e.g. 212. While the number is still to be assigned, the
34
43
  #
44
+ # @param campaign_id [String, nil] The campaign the number is on, or is owed for: the id of its entry in compliance
45
+ #
35
46
  # @param sender_value [String, nil] The number, or null while it is still to be assigned.
36
47
  #
37
48
  # @param status [String, nil] ACTIVE once the number can send; PROVISIONING while it is still to be assigned;