prelude-sdk 0.1.0.pre.alpha.3 → 0.2.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 (126) hide show
  1. checksums.yaml +4 -4
  2. data/CHANGELOG.md +58 -0
  3. data/README.md +29 -1
  4. data/lib/prelude_sdk/client.rb +8 -0
  5. data/lib/prelude_sdk/errors.rb +25 -11
  6. data/lib/prelude_sdk/file_part.rb +10 -7
  7. data/lib/prelude_sdk/internal/transport/base_client.rb +18 -8
  8. data/lib/prelude_sdk/internal/transport/pooled_net_requester.rb +40 -33
  9. data/lib/prelude_sdk/internal/type/base_page.rb +1 -1
  10. data/lib/prelude_sdk/internal/type/file_input.rb +7 -4
  11. data/lib/prelude_sdk/internal/util.rb +8 -7
  12. data/lib/prelude_sdk/models/notify_get_subscription_config_params.rb +14 -0
  13. data/lib/prelude_sdk/models/notify_get_subscription_config_response.rb +120 -0
  14. data/lib/prelude_sdk/models/notify_get_subscription_phone_number_params.rb +20 -0
  15. data/lib/prelude_sdk/models/notify_get_subscription_phone_number_response.rb +104 -0
  16. data/lib/prelude_sdk/models/notify_list_subscription_configs_params.rb +30 -0
  17. data/lib/prelude_sdk/models/notify_list_subscription_configs_response.rb +144 -0
  18. data/lib/prelude_sdk/models/notify_list_subscription_phone_number_events_params.rb +37 -0
  19. data/lib/prelude_sdk/models/notify_list_subscription_phone_number_events_response.rb +132 -0
  20. data/lib/prelude_sdk/models/notify_list_subscription_phone_numbers_params.rb +49 -0
  21. data/lib/prelude_sdk/models/notify_list_subscription_phone_numbers_response.rb +132 -0
  22. data/lib/prelude_sdk/models/notify_send_batch_params.rb +110 -0
  23. data/lib/prelude_sdk/models/notify_send_batch_response.rb +201 -0
  24. data/lib/prelude_sdk/models/notify_send_params.rb +118 -0
  25. data/lib/prelude_sdk/models/notify_send_response.rb +94 -0
  26. data/lib/prelude_sdk/models/transactional_send_params.rb +37 -1
  27. data/lib/prelude_sdk/models/verification_create_params.rb +45 -5
  28. data/lib/prelude_sdk/models/verification_create_response.rb +26 -0
  29. data/lib/prelude_sdk/models/verification_management_delete_phone_number_params.rb +32 -0
  30. data/lib/prelude_sdk/models/verification_management_delete_phone_number_response.rb +17 -0
  31. data/lib/prelude_sdk/models/verification_management_list_phone_numbers_params.rb +24 -0
  32. data/lib/prelude_sdk/models/verification_management_list_phone_numbers_response.rb +37 -0
  33. data/lib/prelude_sdk/models/verification_management_list_sender_ids_params.rb +14 -0
  34. data/lib/prelude_sdk/models/verification_management_list_sender_ids_response.rb +65 -0
  35. data/lib/prelude_sdk/models/verification_management_set_phone_number_params.rb +32 -0
  36. data/lib/prelude_sdk/models/verification_management_set_phone_number_response.rb +17 -0
  37. data/lib/prelude_sdk/models/verification_management_submit_sender_id_params.rb +22 -0
  38. data/lib/prelude_sdk/models/verification_management_submit_sender_id_response.rb +59 -0
  39. data/lib/prelude_sdk/models/watch_predict_params.rb +11 -1
  40. data/lib/prelude_sdk/models/watch_send_feedbacks_params.rb +11 -1
  41. data/lib/prelude_sdk/models.rb +29 -0
  42. data/lib/prelude_sdk/resources/notify.rb +247 -0
  43. data/lib/prelude_sdk/resources/transactional.rb +7 -2
  44. data/lib/prelude_sdk/resources/verification_management.rb +140 -0
  45. data/lib/prelude_sdk/version.rb +1 -1
  46. data/lib/prelude_sdk.rb +28 -0
  47. data/manifest.yaml +2 -0
  48. data/rbi/prelude_sdk/client.rbi +6 -0
  49. data/rbi/prelude_sdk/errors.rbi +29 -2
  50. data/rbi/prelude_sdk/file_part.rbi +1 -1
  51. data/rbi/prelude_sdk/internal/transport/base_client.rbi +9 -5
  52. data/rbi/prelude_sdk/internal/transport/pooled_net_requester.rbi +6 -2
  53. data/rbi/prelude_sdk/internal/type/base_model.rbi +8 -4
  54. data/rbi/prelude_sdk/internal/type/base_page.rbi +1 -1
  55. data/rbi/prelude_sdk/internal/util.rbi +1 -1
  56. data/rbi/prelude_sdk/models/notify_get_subscription_config_params.rbi +30 -0
  57. data/rbi/prelude_sdk/models/notify_get_subscription_config_response.rbi +224 -0
  58. data/rbi/prelude_sdk/models/notify_get_subscription_phone_number_params.rbi +38 -0
  59. data/rbi/prelude_sdk/models/notify_get_subscription_phone_number_response.rbi +199 -0
  60. data/rbi/prelude_sdk/models/notify_list_subscription_configs_params.rbi +60 -0
  61. data/rbi/prelude_sdk/models/notify_list_subscription_configs_response.rbi +286 -0
  62. data/rbi/prelude_sdk/models/notify_list_subscription_phone_number_events_params.rbi +66 -0
  63. data/rbi/prelude_sdk/models/notify_list_subscription_phone_number_events_response.rbi +259 -0
  64. data/rbi/prelude_sdk/models/notify_list_subscription_phone_numbers_params.rbi +119 -0
  65. data/rbi/prelude_sdk/models/notify_list_subscription_phone_numbers_response.rbi +259 -0
  66. data/rbi/prelude_sdk/models/notify_send_batch_params.rbi +191 -0
  67. data/rbi/prelude_sdk/models/notify_send_batch_response.rbi +360 -0
  68. data/rbi/prelude_sdk/models/notify_send_params.rbi +201 -0
  69. data/rbi/prelude_sdk/models/notify_send_response.rbi +128 -0
  70. data/rbi/prelude_sdk/models/transactional_send_params.rbi +85 -0
  71. data/rbi/prelude_sdk/models/verification_create_params.rbi +97 -5
  72. data/rbi/prelude_sdk/models/verification_create_response.rbi +39 -0
  73. data/rbi/prelude_sdk/models/verification_management_delete_phone_number_params.rbi +77 -0
  74. data/rbi/prelude_sdk/models/verification_management_delete_phone_number_response.rbi +30 -0
  75. data/rbi/prelude_sdk/models/verification_management_list_phone_numbers_params.rbi +64 -0
  76. data/rbi/prelude_sdk/models/verification_management_list_phone_numbers_response.rbi +87 -0
  77. data/rbi/prelude_sdk/models/verification_management_list_sender_ids_params.rbi +30 -0
  78. data/rbi/prelude_sdk/models/verification_management_list_sender_ids_response.rbi +175 -0
  79. data/rbi/prelude_sdk/models/verification_management_set_phone_number_params.rbi +77 -0
  80. data/rbi/prelude_sdk/models/verification_management_set_phone_number_response.rbi +30 -0
  81. data/rbi/prelude_sdk/models/verification_management_submit_sender_id_params.rbi +43 -0
  82. data/rbi/prelude_sdk/models/verification_management_submit_sender_id_response.rbi +117 -0
  83. data/rbi/prelude_sdk/models/watch_predict_params.rbi +15 -0
  84. data/rbi/prelude_sdk/models/watch_send_feedbacks_params.rbi +15 -0
  85. data/rbi/prelude_sdk/models.rbi +34 -0
  86. data/rbi/prelude_sdk/resources/notify.rbi +218 -0
  87. data/rbi/prelude_sdk/resources/transactional.rbi +14 -1
  88. data/rbi/prelude_sdk/resources/verification_management.rbi +112 -0
  89. data/sig/prelude_sdk/client.rbs +4 -0
  90. data/sig/prelude_sdk/errors.rbs +7 -0
  91. data/sig/prelude_sdk/file_part.rbs +1 -1
  92. data/sig/prelude_sdk/internal/transport/base_client.rbs +2 -0
  93. data/sig/prelude_sdk/internal/transport/pooled_net_requester.rbs +4 -1
  94. data/sig/prelude_sdk/models/notify_get_subscription_config_params.rbs +15 -0
  95. data/sig/prelude_sdk/models/notify_get_subscription_config_response.rbs +95 -0
  96. data/sig/prelude_sdk/models/notify_get_subscription_phone_number_params.rbs +23 -0
  97. data/sig/prelude_sdk/models/notify_get_subscription_phone_number_response.rbs +71 -0
  98. data/sig/prelude_sdk/models/notify_list_subscription_configs_params.rbs +32 -0
  99. data/sig/prelude_sdk/models/notify_list_subscription_configs_response.rbs +119 -0
  100. data/sig/prelude_sdk/models/notify_list_subscription_phone_number_events_params.rbs +36 -0
  101. data/sig/prelude_sdk/models/notify_list_subscription_phone_number_events_response.rbs +95 -0
  102. data/sig/prelude_sdk/models/notify_list_subscription_phone_numbers_params.rbs +55 -0
  103. data/sig/prelude_sdk/models/notify_list_subscription_phone_numbers_response.rbs +95 -0
  104. data/sig/prelude_sdk/models/notify_send_batch_params.rbs +100 -0
  105. data/sig/prelude_sdk/models/notify_send_batch_response.rbs +187 -0
  106. data/sig/prelude_sdk/models/notify_send_params.rbs +100 -0
  107. data/sig/prelude_sdk/models/notify_send_response.rbs +73 -0
  108. data/sig/prelude_sdk/models/transactional_send_params.rbs +21 -0
  109. data/sig/prelude_sdk/models/verification_create_params.rbs +29 -1
  110. data/sig/prelude_sdk/models/verification_management_delete_phone_number_params.rbs +34 -0
  111. data/sig/prelude_sdk/models/verification_management_delete_phone_number_response.rbs +14 -0
  112. data/sig/prelude_sdk/models/verification_management_list_phone_numbers_params.rbs +26 -0
  113. data/sig/prelude_sdk/models/verification_management_list_phone_numbers_response.rbs +32 -0
  114. data/sig/prelude_sdk/models/verification_management_list_sender_ids_params.rbs +15 -0
  115. data/sig/prelude_sdk/models/verification_management_list_sender_ids_response.rbs +64 -0
  116. data/sig/prelude_sdk/models/verification_management_set_phone_number_params.rbs +34 -0
  117. data/sig/prelude_sdk/models/verification_management_set_phone_number_response.rbs +14 -0
  118. data/sig/prelude_sdk/models/verification_management_submit_sender_id_params.rbs +23 -0
  119. data/sig/prelude_sdk/models/verification_management_submit_sender_id_response.rbs +44 -0
  120. data/sig/prelude_sdk/models/watch_predict_params.rbs +7 -0
  121. data/sig/prelude_sdk/models/watch_send_feedbacks_params.rbs +7 -0
  122. data/sig/prelude_sdk/models.rbs +24 -0
  123. data/sig/prelude_sdk/resources/notify.rbs +68 -0
  124. data/sig/prelude_sdk/resources/transactional.rbs +1 -0
  125. data/sig/prelude_sdk/resources/verification_management.rbs +33 -0
  126. metadata +82 -4
@@ -0,0 +1,218 @@
1
+ # typed: strong
2
+
3
+ module PreludeSDK
4
+ module Resources
5
+ class Notify
6
+ # Retrieve a specific subscription management configuration by its ID.
7
+ sig do
8
+ params(
9
+ config_id: String,
10
+ request_options: PreludeSDK::RequestOptions::OrHash
11
+ ).returns(PreludeSDK::Models::NotifyGetSubscriptionConfigResponse)
12
+ end
13
+ def get_subscription_config(
14
+ # The subscription configuration ID
15
+ config_id,
16
+ request_options: {}
17
+ )
18
+ end
19
+
20
+ # Retrieve the current subscription status for a specific phone number within a
21
+ # subscription configuration.
22
+ sig do
23
+ params(
24
+ phone_number: String,
25
+ config_id: String,
26
+ request_options: PreludeSDK::RequestOptions::OrHash
27
+ ).returns(PreludeSDK::Models::NotifyGetSubscriptionPhoneNumberResponse)
28
+ end
29
+ def get_subscription_phone_number(
30
+ # The phone number in E.164 format (e.g., +33612345678)
31
+ phone_number,
32
+ # The subscription configuration ID
33
+ config_id:,
34
+ request_options: {}
35
+ )
36
+ end
37
+
38
+ # Retrieve a paginated list of subscription management configurations for your
39
+ # account.
40
+ #
41
+ # Each configuration represents a subscription management setup with phone numbers
42
+ # for receiving opt-out/opt-in requests and a callback URL for webhook events.
43
+ sig do
44
+ params(
45
+ cursor: String,
46
+ limit: Integer,
47
+ request_options: PreludeSDK::RequestOptions::OrHash
48
+ ).returns(PreludeSDK::Models::NotifyListSubscriptionConfigsResponse)
49
+ end
50
+ def list_subscription_configs(
51
+ # Pagination cursor from the previous response
52
+ cursor: nil,
53
+ # Maximum number of configurations to return per page
54
+ limit: nil,
55
+ request_options: {}
56
+ )
57
+ end
58
+
59
+ # Retrieve a paginated list of subscription events (status changes) for a specific
60
+ # phone number within a subscription configuration.
61
+ #
62
+ # Events are ordered by timestamp in descending order (most recent first).
63
+ sig do
64
+ params(
65
+ phone_number: String,
66
+ config_id: String,
67
+ cursor: String,
68
+ limit: Integer,
69
+ request_options: PreludeSDK::RequestOptions::OrHash
70
+ ).returns(
71
+ PreludeSDK::Models::NotifyListSubscriptionPhoneNumberEventsResponse
72
+ )
73
+ end
74
+ def list_subscription_phone_number_events(
75
+ # Path param: The phone number in E.164 format (e.g., +33612345678)
76
+ phone_number,
77
+ # Path param: The subscription configuration ID
78
+ config_id:,
79
+ # Query param: Pagination cursor from the previous response
80
+ cursor: nil,
81
+ # Query param: Maximum number of events to return per page
82
+ limit: nil,
83
+ request_options: {}
84
+ )
85
+ end
86
+
87
+ # Retrieve a paginated list of phone numbers and their subscription statuses for a
88
+ # specific subscription configuration.
89
+ #
90
+ # You can optionally filter by subscription state (SUB or UNSUB).
91
+ sig do
92
+ params(
93
+ config_id: String,
94
+ cursor: String,
95
+ limit: Integer,
96
+ state:
97
+ PreludeSDK::NotifyListSubscriptionPhoneNumbersParams::State::OrSymbol,
98
+ request_options: PreludeSDK::RequestOptions::OrHash
99
+ ).returns(
100
+ PreludeSDK::Models::NotifyListSubscriptionPhoneNumbersResponse
101
+ )
102
+ end
103
+ def list_subscription_phone_numbers(
104
+ # The subscription configuration ID
105
+ config_id,
106
+ # Pagination cursor from the previous response
107
+ cursor: nil,
108
+ # Maximum number of phone numbers to return per page
109
+ limit: nil,
110
+ # Filter by subscription state
111
+ state: nil,
112
+ request_options: {}
113
+ )
114
+ end
115
+
116
+ # Send transactional and marketing messages to your users via SMS and WhatsApp
117
+ # with automatic compliance enforcement.
118
+ sig do
119
+ params(
120
+ template_id: String,
121
+ to: String,
122
+ callback_url: String,
123
+ correlation_id: String,
124
+ expires_at: Time,
125
+ from: String,
126
+ locale: String,
127
+ preferred_channel:
128
+ PreludeSDK::NotifySendParams::PreferredChannel::OrSymbol,
129
+ schedule_at: Time,
130
+ variables: T::Hash[Symbol, String],
131
+ request_options: PreludeSDK::RequestOptions::OrHash
132
+ ).returns(PreludeSDK::Models::NotifySendResponse)
133
+ end
134
+ def send_(
135
+ # The template identifier configured by your Customer Success team.
136
+ template_id:,
137
+ # The recipient's phone number in E.164 format.
138
+ to:,
139
+ # The URL where webhooks will be sent for message delivery events.
140
+ callback_url: nil,
141
+ # A user-defined identifier to correlate this message with your internal systems.
142
+ # It is returned in the response and any webhook events that refer to this
143
+ # message.
144
+ correlation_id: nil,
145
+ # The message expiration date in RFC3339 format. The message will not be sent if
146
+ # this time is reached.
147
+ expires_at: nil,
148
+ # The Sender ID. Must be approved for your account.
149
+ from: nil,
150
+ # A BCP-47 formatted locale string with the language the text message will be sent
151
+ # to. If there's no locale set, the language will be determined by the country
152
+ # code of the phone number. If the language specified doesn't exist, the default
153
+ # set on the template will be used.
154
+ locale: nil,
155
+ # The preferred channel to be used in priority for message delivery. If the
156
+ # channel is unavailable, the system will fallback to other available channels.
157
+ preferred_channel: nil,
158
+ # Schedule the message for future delivery in RFC3339 format. Marketing messages
159
+ # can be scheduled up to 90 days in advance and will be automatically adjusted for
160
+ # compliance with local time window restrictions.
161
+ schedule_at: nil,
162
+ # The variables to be replaced in the template.
163
+ variables: nil,
164
+ request_options: {}
165
+ )
166
+ end
167
+
168
+ # Send the same message to multiple recipients in a single request.
169
+ sig do
170
+ params(
171
+ template_id: String,
172
+ to: T::Array[String],
173
+ callback_url: String,
174
+ correlation_id: String,
175
+ expires_at: Time,
176
+ from: String,
177
+ locale: String,
178
+ preferred_channel:
179
+ PreludeSDK::NotifySendBatchParams::PreferredChannel::OrSymbol,
180
+ schedule_at: Time,
181
+ variables: T::Hash[Symbol, String],
182
+ request_options: PreludeSDK::RequestOptions::OrHash
183
+ ).returns(PreludeSDK::Models::NotifySendBatchResponse)
184
+ end
185
+ def send_batch(
186
+ # The template identifier configured by your Customer Success team.
187
+ template_id:,
188
+ # The list of recipients' phone numbers in E.164 format.
189
+ to:,
190
+ # The URL where webhooks will be sent for delivery events.
191
+ callback_url: nil,
192
+ # A user-defined identifier to correlate this request with your internal systems.
193
+ correlation_id: nil,
194
+ # The message expiration date in RFC3339 format. Messages will not be sent after
195
+ # this time.
196
+ expires_at: nil,
197
+ # The Sender ID. Must be approved for your account.
198
+ from: nil,
199
+ # A BCP-47 formatted locale string.
200
+ locale: nil,
201
+ # Preferred channel for delivery. If unavailable, automatic fallback applies.
202
+ preferred_channel: nil,
203
+ # Schedule delivery in RFC3339 format. Marketing sends may be adjusted to comply
204
+ # with local time windows.
205
+ schedule_at: nil,
206
+ # The variables to be replaced in the template.
207
+ variables: nil,
208
+ request_options: {}
209
+ )
210
+ end
211
+
212
+ # @api private
213
+ sig { params(client: PreludeSDK::Client).returns(T.attached_class) }
214
+ def self.new(client:)
215
+ end
216
+ end
217
+ end
218
+ end
@@ -3,7 +3,8 @@
3
3
  module PreludeSDK
4
4
  module Resources
5
5
  class Transactional
6
- # Send a transactional message to your user.
6
+ # Legacy route maintained for backward compatibility. Migrate to `/v2/notify`
7
+ # instead.
7
8
  sig do
8
9
  params(
9
10
  template_id: String,
@@ -13,6 +14,8 @@ module PreludeSDK
13
14
  expires_at: String,
14
15
  from: String,
15
16
  locale: String,
17
+ preferred_channel:
18
+ PreludeSDK::TransactionalSendParams::PreferredChannel::OrSymbol,
16
19
  variables: T::Hash[Symbol, String],
17
20
  request_options: PreludeSDK::RequestOptions::OrHash
18
21
  ).returns(PreludeSDK::Models::TransactionalSendResponse)
@@ -37,6 +40,16 @@ module PreludeSDK
37
40
  # code of the phone number. If the language specified doesn't exist, the default
38
41
  # set on the template will be used.
39
42
  locale: nil,
43
+ # The preferred delivery channel for the message. When specified, the system will
44
+ # prioritize sending via the requested channel if the template is configured for
45
+ # it.
46
+ #
47
+ # If not specified and the template is configured for WhatsApp, the message will
48
+ # be sent via WhatsApp first, with automatic fallback to SMS if WhatsApp delivery
49
+ # is unavailable.
50
+ #
51
+ # Supported channels: `sms`, `rcs`, `whatsapp`.
52
+ preferred_channel: nil,
40
53
  # The variables to be replaced in the template.
41
54
  variables: nil,
42
55
  request_options: {}
@@ -0,0 +1,112 @@
1
+ # typed: strong
2
+
3
+ module PreludeSDK
4
+ module Resources
5
+ class VerificationManagement
6
+ # Remove a phone number from the allow or block list.
7
+ #
8
+ # This operation is idempotent - re-deleting the same phone number will not result
9
+ # in errors. If the phone number does not exist in the specified list, the
10
+ # operation will succeed without making any changes.
11
+ #
12
+ # In order to get access to this endpoint, contact our support team.
13
+ sig do
14
+ params(
15
+ action:
16
+ PreludeSDK::VerificationManagementDeletePhoneNumberParams::Action::OrSymbol,
17
+ phone_number: String,
18
+ request_options: PreludeSDK::RequestOptions::OrHash
19
+ ).returns(
20
+ PreludeSDK::Models::VerificationManagementDeletePhoneNumberResponse
21
+ )
22
+ end
23
+ def delete_phone_number(
24
+ # The action type - either "allow" or "block"
25
+ action,
26
+ # An E.164 formatted phone number to remove from the list.
27
+ phone_number:,
28
+ request_options: {}
29
+ )
30
+ end
31
+
32
+ # Retrieve the list of phone numbers in the allow or block list.
33
+ #
34
+ # In order to get access to this endpoint, contact our support team.
35
+ sig do
36
+ params(
37
+ action:
38
+ PreludeSDK::VerificationManagementListPhoneNumbersParams::Action::OrSymbol,
39
+ request_options: PreludeSDK::RequestOptions::OrHash
40
+ ).returns(
41
+ PreludeSDK::Models::VerificationManagementListPhoneNumbersResponse
42
+ )
43
+ end
44
+ def list_phone_numbers(
45
+ # The action type - either "allow" or "block"
46
+ action,
47
+ request_options: {}
48
+ )
49
+ end
50
+
51
+ # Retrieve sender IDs list.
52
+ #
53
+ # In order to get access to this endpoint, contact our support team.
54
+ sig do
55
+ params(request_options: PreludeSDK::RequestOptions::OrHash).returns(
56
+ PreludeSDK::Models::VerificationManagementListSenderIDsResponse
57
+ )
58
+ end
59
+ def list_sender_ids(request_options: {})
60
+ end
61
+
62
+ # Add a phone number to the allow or block list.
63
+ #
64
+ # This operation is idempotent - re-adding the same phone number will not result
65
+ # in duplicate entries or errors. If the phone number already exists in the
66
+ # specified list, the operation will succeed without making any changes.
67
+ #
68
+ # In order to get access to this endpoint, contact our support team.
69
+ sig do
70
+ params(
71
+ action:
72
+ PreludeSDK::VerificationManagementSetPhoneNumberParams::Action::OrSymbol,
73
+ phone_number: String,
74
+ request_options: PreludeSDK::RequestOptions::OrHash
75
+ ).returns(
76
+ PreludeSDK::Models::VerificationManagementSetPhoneNumberResponse
77
+ )
78
+ end
79
+ def set_phone_number(
80
+ # The action type - either "allow" or "block"
81
+ action,
82
+ # An E.164 formatted phone number to add to the list.
83
+ phone_number:,
84
+ request_options: {}
85
+ )
86
+ end
87
+
88
+ # This endpoint allows you to submit a new sender ID for verification purposes.
89
+ #
90
+ # In order to get access to this endpoint, contact our support team.
91
+ sig do
92
+ params(
93
+ sender_id: String,
94
+ request_options: PreludeSDK::RequestOptions::OrHash
95
+ ).returns(
96
+ PreludeSDK::Models::VerificationManagementSubmitSenderIDResponse
97
+ )
98
+ end
99
+ def submit_sender_id(
100
+ # The sender ID to add.
101
+ sender_id:,
102
+ request_options: {}
103
+ )
104
+ end
105
+
106
+ # @api private
107
+ sig { params(client: PreludeSDK::Client).returns(T.attached_class) }
108
+ def self.new(client:)
109
+ end
110
+ end
111
+ end
112
+ end
@@ -12,10 +12,14 @@ module PreludeSDK
12
12
 
13
13
  attr_reader lookup: PreludeSDK::Resources::Lookup
14
14
 
15
+ attr_reader notify: PreludeSDK::Resources::Notify
16
+
15
17
  attr_reader transactional: PreludeSDK::Resources::Transactional
16
18
 
17
19
  attr_reader verification: PreludeSDK::Resources::Verification
18
20
 
21
+ attr_reader verification_management: PreludeSDK::Resources::VerificationManagement
22
+
19
23
  attr_reader watch: PreludeSDK::Resources::Watch
20
24
 
21
25
  private def auth_headers: -> ::Hash[String, String]
@@ -21,11 +21,14 @@ module PreludeSDK
21
21
 
22
22
  attr_accessor status: Integer?
23
23
 
24
+ attr_accessor headers: ::Hash[String, String]?
25
+
24
26
  attr_accessor body: top?
25
27
 
26
28
  def initialize: (
27
29
  url: URI::Generic,
28
30
  ?status: Integer?,
31
+ ?headers: ::Hash[String, String]?,
29
32
  ?body: Object?,
30
33
  ?request: nil,
31
34
  ?response: nil,
@@ -37,6 +40,7 @@ module PreludeSDK
37
40
  def initialize: (
38
41
  url: URI::Generic,
39
42
  ?status: nil,
43
+ ?headers: ::Hash[String, String]?,
40
44
  ?body: nil,
41
45
  ?request: nil,
42
46
  ?response: nil,
@@ -48,6 +52,7 @@ module PreludeSDK
48
52
  def initialize: (
49
53
  url: URI::Generic,
50
54
  ?status: nil,
55
+ ?headers: ::Hash[String, String]?,
51
56
  ?body: nil,
52
57
  ?request: nil,
53
58
  ?response: nil,
@@ -59,6 +64,7 @@ module PreludeSDK
59
64
  def self.for: (
60
65
  url: URI::Generic,
61
66
  status: Integer,
67
+ headers: ::Hash[String, String]?,
62
68
  body: Object?,
63
69
  request: nil,
64
70
  response: nil,
@@ -68,6 +74,7 @@ module PreludeSDK
68
74
  def initialize: (
69
75
  url: URI::Generic,
70
76
  status: Integer,
77
+ headers: ::Hash[String, String]?,
71
78
  body: Object?,
72
79
  request: nil,
73
80
  response: nil,
@@ -14,7 +14,7 @@ module PreludeSDK
14
14
 
15
15
  def initialize: (
16
16
  Pathname | StringIO | IO | String content,
17
- ?filename: String?,
17
+ ?filename: (Pathname | String)?,
18
18
  ?content_type: String?
19
19
  ) -> void
20
20
  end
@@ -87,6 +87,8 @@ module PreludeSDK
87
87
 
88
88
  private def auth_headers: -> ::Hash[String, String]
89
89
 
90
+ private def user_agent: -> String
91
+
90
92
  private def generate_idempotency_key: -> String
91
93
 
92
94
  private def build_request: (
@@ -17,7 +17,10 @@ module PreludeSDK
17
17
 
18
18
  DEFAULT_MAX_CONNECTIONS: Integer
19
19
 
20
- def self.connect: (URI::Generic url) -> top
20
+ def self.connect: (
21
+ cert_store: OpenSSL::X509::Store,
22
+ url: URI::Generic
23
+ ) -> top
21
24
 
22
25
  def self.calibrate_socket_timeout: (top conn, Float deadline) -> void
23
26
 
@@ -0,0 +1,15 @@
1
+ module PreludeSDK
2
+ module Models
3
+ type notify_get_subscription_config_params =
4
+ { } & PreludeSDK::Internal::Type::request_parameters
5
+
6
+ class NotifyGetSubscriptionConfigParams < PreludeSDK::Internal::Type::BaseModel
7
+ extend PreludeSDK::Internal::Type::RequestParameters::Converter
8
+ include PreludeSDK::Internal::Type::RequestParameters
9
+
10
+ def initialize: (?request_options: PreludeSDK::request_opts) -> void
11
+
12
+ def to_hash: -> { request_options: PreludeSDK::RequestOptions }
13
+ end
14
+ end
15
+ end
@@ -0,0 +1,95 @@
1
+ module PreludeSDK
2
+ module Models
3
+ type notify_get_subscription_config_response =
4
+ {
5
+ id: String,
6
+ callback_url: String,
7
+ created_at: Time,
8
+ messages: PreludeSDK::Models::NotifyGetSubscriptionConfigResponse::Messages,
9
+ name: String,
10
+ updated_at: Time,
11
+ mo_phone_numbers: ::Array[PreludeSDK::Models::NotifyGetSubscriptionConfigResponse::MoPhoneNumber]
12
+ }
13
+
14
+ class NotifyGetSubscriptionConfigResponse < PreludeSDK::Internal::Type::BaseModel
15
+ attr_accessor id: String
16
+
17
+ attr_accessor callback_url: String
18
+
19
+ attr_accessor created_at: Time
20
+
21
+ attr_accessor messages: PreludeSDK::Models::NotifyGetSubscriptionConfigResponse::Messages
22
+
23
+ attr_accessor name: String
24
+
25
+ attr_accessor updated_at: Time
26
+
27
+ attr_reader mo_phone_numbers: ::Array[PreludeSDK::Models::NotifyGetSubscriptionConfigResponse::MoPhoneNumber]?
28
+
29
+ def mo_phone_numbers=: (
30
+ ::Array[PreludeSDK::Models::NotifyGetSubscriptionConfigResponse::MoPhoneNumber]
31
+ ) -> ::Array[PreludeSDK::Models::NotifyGetSubscriptionConfigResponse::MoPhoneNumber]
32
+
33
+ def initialize: (
34
+ id: String,
35
+ callback_url: String,
36
+ created_at: Time,
37
+ messages: PreludeSDK::Models::NotifyGetSubscriptionConfigResponse::Messages,
38
+ name: String,
39
+ updated_at: Time,
40
+ ?mo_phone_numbers: ::Array[PreludeSDK::Models::NotifyGetSubscriptionConfigResponse::MoPhoneNumber]
41
+ ) -> void
42
+
43
+ def to_hash: -> {
44
+ id: String,
45
+ callback_url: String,
46
+ created_at: Time,
47
+ messages: PreludeSDK::Models::NotifyGetSubscriptionConfigResponse::Messages,
48
+ name: String,
49
+ updated_at: Time,
50
+ mo_phone_numbers: ::Array[PreludeSDK::Models::NotifyGetSubscriptionConfigResponse::MoPhoneNumber]
51
+ }
52
+
53
+ type messages =
54
+ { help_message: String, start_message: String, stop_message: String }
55
+
56
+ class Messages < PreludeSDK::Internal::Type::BaseModel
57
+ attr_reader help_message: String?
58
+
59
+ def help_message=: (String) -> String
60
+
61
+ attr_reader start_message: String?
62
+
63
+ def start_message=: (String) -> String
64
+
65
+ attr_reader stop_message: String?
66
+
67
+ def stop_message=: (String) -> String
68
+
69
+ def initialize: (
70
+ ?help_message: String,
71
+ ?start_message: String,
72
+ ?stop_message: String
73
+ ) -> void
74
+
75
+ def to_hash: -> {
76
+ help_message: String,
77
+ start_message: String,
78
+ stop_message: String
79
+ }
80
+ end
81
+
82
+ type mo_phone_number = { country_code: String, phone_number: String }
83
+
84
+ class MoPhoneNumber < PreludeSDK::Internal::Type::BaseModel
85
+ attr_accessor country_code: String
86
+
87
+ attr_accessor phone_number: String
88
+
89
+ def initialize: (country_code: String, phone_number: String) -> void
90
+
91
+ def to_hash: -> { country_code: String, phone_number: String }
92
+ end
93
+ end
94
+ end
95
+ end
@@ -0,0 +1,23 @@
1
+ module PreludeSDK
2
+ module Models
3
+ type notify_get_subscription_phone_number_params =
4
+ { config_id: String } & PreludeSDK::Internal::Type::request_parameters
5
+
6
+ class NotifyGetSubscriptionPhoneNumberParams < PreludeSDK::Internal::Type::BaseModel
7
+ extend PreludeSDK::Internal::Type::RequestParameters::Converter
8
+ include PreludeSDK::Internal::Type::RequestParameters
9
+
10
+ attr_accessor config_id: String
11
+
12
+ def initialize: (
13
+ config_id: String,
14
+ ?request_options: PreludeSDK::request_opts
15
+ ) -> void
16
+
17
+ def to_hash: -> {
18
+ config_id: String,
19
+ request_options: PreludeSDK::RequestOptions
20
+ }
21
+ end
22
+ end
23
+ end
@@ -0,0 +1,71 @@
1
+ module PreludeSDK
2
+ module Models
3
+ type notify_get_subscription_phone_number_response =
4
+ {
5
+ config_id: String,
6
+ phone_number: String,
7
+ source: PreludeSDK::Models::NotifyGetSubscriptionPhoneNumberResponse::source,
8
+ state: PreludeSDK::Models::NotifyGetSubscriptionPhoneNumberResponse::state,
9
+ updated_at: Time,
10
+ reason: String
11
+ }
12
+
13
+ class NotifyGetSubscriptionPhoneNumberResponse < PreludeSDK::Internal::Type::BaseModel
14
+ attr_accessor config_id: String
15
+
16
+ attr_accessor phone_number: String
17
+
18
+ attr_accessor source: PreludeSDK::Models::NotifyGetSubscriptionPhoneNumberResponse::source
19
+
20
+ attr_accessor state: PreludeSDK::Models::NotifyGetSubscriptionPhoneNumberResponse::state
21
+
22
+ attr_accessor updated_at: Time
23
+
24
+ attr_reader reason: String?
25
+
26
+ def reason=: (String) -> String
27
+
28
+ def initialize: (
29
+ config_id: String,
30
+ phone_number: String,
31
+ source: PreludeSDK::Models::NotifyGetSubscriptionPhoneNumberResponse::source,
32
+ state: PreludeSDK::Models::NotifyGetSubscriptionPhoneNumberResponse::state,
33
+ updated_at: Time,
34
+ ?reason: String
35
+ ) -> void
36
+
37
+ def to_hash: -> {
38
+ config_id: String,
39
+ phone_number: String,
40
+ source: PreludeSDK::Models::NotifyGetSubscriptionPhoneNumberResponse::source,
41
+ state: PreludeSDK::Models::NotifyGetSubscriptionPhoneNumberResponse::state,
42
+ updated_at: Time,
43
+ reason: String
44
+ }
45
+
46
+ type source = :MO_KEYWORD | :API | :CSV_IMPORT | :CARRIER_DISCONNECT
47
+
48
+ module Source
49
+ extend PreludeSDK::Internal::Type::Enum
50
+
51
+ MO_KEYWORD: :MO_KEYWORD
52
+ API: :API
53
+ CSV_IMPORT: :CSV_IMPORT
54
+ CARRIER_DISCONNECT: :CARRIER_DISCONNECT
55
+
56
+ def self?.values: -> ::Array[PreludeSDK::Models::NotifyGetSubscriptionPhoneNumberResponse::source]
57
+ end
58
+
59
+ type state = :SUB | :UNSUB
60
+
61
+ module State
62
+ extend PreludeSDK::Internal::Type::Enum
63
+
64
+ SUB: :SUB
65
+ UNSUB: :UNSUB
66
+
67
+ def self?.values: -> ::Array[PreludeSDK::Models::NotifyGetSubscriptionPhoneNumberResponse::state]
68
+ end
69
+ end
70
+ end
71
+ end