sentdm 0.26.0 → 0.28.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 +40 -0
- data/README.md +1 -27
- data/lib/sentdm/client.rb +71 -8
- data/lib/sentdm/internal/type/base_model.rb +5 -5
- data/lib/sentdm/models/contact_create_response.rb +249 -0
- data/lib/sentdm/models/contact_delete_params.rb +16 -2
- data/lib/sentdm/models/contact_list_response.rb +299 -16
- data/lib/sentdm/models/contact_retrieve_message_summary_response.rb +186 -0
- data/lib/sentdm/models/contact_retrieve_response.rb +249 -0
- data/lib/sentdm/models/contact_update_response.rb +249 -0
- data/lib/sentdm/models/conversation_list_messages_response.rb +436 -0
- data/lib/sentdm/models/conversation_list_response.rb +433 -0
- data/lib/sentdm/models/inbound_message_event.rb +52 -0
- data/lib/sentdm/models/inbound_message_event_payload.rb +81 -0
- data/lib/sentdm/models/me_retrieve_response.rb +242 -12
- data/lib/sentdm/models/message_event.rb +53 -0
- data/lib/sentdm/models/message_event_payload.rb +92 -0
- data/lib/sentdm/models/message_retrieve_activities_response.rb +165 -7
- data/lib/sentdm/models/message_retrieve_status_response.rb +74 -6
- data/lib/sentdm/models/message_send_response.rb +113 -28
- data/lib/sentdm/models/number_lookup_response.rb +74 -6
- data/lib/sentdm/models/profile_complete_response.rb +74 -6
- data/lib/sentdm/models/profile_create_params.rb +378 -26
- data/lib/sentdm/models/profile_create_response.rb +760 -0
- data/lib/sentdm/models/profile_delete_params.rb +16 -2
- data/lib/sentdm/models/profile_list_response.rb +825 -14
- data/lib/sentdm/models/profile_retrieve_response.rb +762 -0
- data/lib/sentdm/models/profile_update_params.rb +391 -24
- data/lib/sentdm/models/profile_update_response.rb +760 -0
- data/lib/sentdm/models/profiles/campaign_create_params.rb +156 -3
- data/lib/sentdm/models/profiles/campaign_create_response.rb +420 -0
- data/lib/sentdm/models/profiles/campaign_delete_params.rb +17 -2
- data/lib/sentdm/models/profiles/campaign_list_response.rb +421 -0
- data/lib/sentdm/models/profiles/campaign_update_params.rb +156 -3
- data/lib/sentdm/models/profiles/campaign_update_response.rb +420 -0
- data/lib/sentdm/models/template_create_response.rb +209 -0
- data/lib/sentdm/models/template_event.rb +52 -0
- data/lib/sentdm/models/template_event_payload.rb +88 -0
- data/lib/sentdm/models/template_list_params.rb +9 -2
- data/lib/sentdm/models/template_list_response.rb +262 -16
- data/lib/sentdm/models/template_retrieve_response.rb +209 -0
- data/lib/sentdm/models/template_update_response.rb +209 -0
- data/lib/sentdm/models/user_invite_response.rb +201 -0
- data/lib/sentdm/models/user_list_response.rb +259 -14
- data/lib/sentdm/models/user_remove_params.rb +16 -2
- data/lib/sentdm/models/user_retrieve_response.rb +201 -0
- data/lib/sentdm/models/user_update_role_response.rb +201 -0
- data/lib/sentdm/models/webhook_create_response.rb +229 -0
- data/lib/sentdm/models/webhook_list_event_types_response.rb +213 -13
- data/lib/sentdm/models/webhook_list_events_response.rb +207 -16
- data/lib/sentdm/models/webhook_list_response.rb +280 -15
- data/lib/sentdm/models/webhook_retrieve_response.rb +229 -0
- data/lib/sentdm/models/webhook_rotate_secret_params.rb +17 -2
- data/lib/sentdm/models/webhook_rotate_secret_response.rb +74 -6
- data/lib/sentdm/models/webhook_test_response.rb +74 -6
- data/lib/sentdm/models/webhook_toggle_status_response.rb +229 -0
- data/lib/sentdm/models/webhook_update_response.rb +229 -0
- data/lib/sentdm/models.rb +11 -51
- data/lib/sentdm/resources/contacts.rb +30 -13
- data/lib/sentdm/resources/conversations.rb +12 -4
- data/lib/sentdm/resources/me.rb +6 -1
- data/lib/sentdm/resources/messages.rb +17 -5
- data/lib/sentdm/resources/numbers.rb +6 -1
- data/lib/sentdm/resources/profiles/campaigns.rb +47 -9
- data/lib/sentdm/resources/profiles.rb +137 -61
- data/lib/sentdm/resources/templates.rb +14 -8
- data/lib/sentdm/resources/users.rb +15 -10
- data/lib/sentdm/resources/webhooks.rb +19 -9
- data/lib/sentdm/version.rb +1 -1
- data/lib/sentdm.rb +28 -32
- data/rbi/sentdm/client.rbi +71 -8
- data/rbi/sentdm/models/contact_create_response.rbi +407 -0
- data/rbi/sentdm/models/contact_delete_params.rbi +19 -2
- data/rbi/sentdm/models/contact_list_response.rbi +527 -21
- data/rbi/sentdm/models/contact_retrieve_message_summary_response.rbi +397 -0
- data/rbi/sentdm/models/contact_retrieve_response.rbi +409 -0
- data/rbi/sentdm/models/contact_update_response.rbi +407 -0
- data/rbi/sentdm/models/conversation_list_messages_response.rbi +843 -0
- data/rbi/sentdm/models/conversation_list_response.rbi +819 -0
- data/rbi/sentdm/models/inbound_message_event.rbi +88 -0
- data/rbi/sentdm/models/inbound_message_event_payload.rbi +122 -0
- data/rbi/sentdm/models/me_retrieve_response.rbi +367 -16
- data/rbi/sentdm/models/message_event.rbi +86 -0
- data/rbi/sentdm/models/message_event_payload.rbi +132 -0
- data/rbi/sentdm/models/message_retrieve_activities_response.rbi +335 -11
- data/rbi/sentdm/models/message_retrieve_status_response.rbi +148 -8
- data/rbi/sentdm/models/message_send_response.rbi +178 -32
- data/rbi/sentdm/models/number_lookup_response.rbi +135 -8
- data/rbi/sentdm/models/profile_complete_response.rbi +137 -8
- data/rbi/sentdm/models/profile_create_params.rbi +592 -42
- data/rbi/sentdm/models/profile_create_response.rbi +1226 -0
- data/rbi/sentdm/models/profile_delete_params.rbi +19 -2
- data/rbi/sentdm/models/profile_list_response.rbi +1366 -18
- data/rbi/sentdm/models/profile_retrieve_response.rbi +1230 -0
- data/rbi/sentdm/models/profile_update_params.rbi +610 -30
- data/rbi/sentdm/models/profile_update_response.rbi +1226 -0
- data/rbi/sentdm/models/profiles/campaign_create_params.rbi +218 -4
- data/rbi/sentdm/models/profiles/campaign_create_response.rbi +674 -0
- data/rbi/sentdm/models/profiles/campaign_delete_params.rbi +14 -1
- data/rbi/sentdm/models/profiles/campaign_list_response.rbi +667 -0
- data/rbi/sentdm/models/profiles/campaign_update_params.rbi +218 -4
- data/rbi/sentdm/models/profiles/campaign_update_response.rbi +674 -0
- data/rbi/sentdm/models/template_create_response.rbi +349 -0
- data/rbi/sentdm/models/template_event.rbi +84 -0
- data/rbi/sentdm/models/template_event_payload.rbi +131 -0
- data/rbi/sentdm/models/template_list_params.rbi +10 -2
- data/rbi/sentdm/models/template_list_response.rbi +469 -21
- data/rbi/sentdm/models/template_retrieve_response.rbi +355 -0
- data/rbi/sentdm/models/template_update_response.rbi +349 -0
- data/rbi/sentdm/models/user_invite_response.rbi +336 -0
- data/rbi/sentdm/models/user_list_response.rbi +463 -18
- data/rbi/sentdm/models/user_remove_params.rbi +19 -2
- data/rbi/sentdm/models/user_retrieve_response.rbi +336 -0
- data/rbi/sentdm/models/user_update_role_response.rbi +341 -0
- data/rbi/sentdm/models/webhook_create_response.rbi +361 -0
- data/rbi/sentdm/models/webhook_list_event_types_response.rbi +433 -16
- data/rbi/sentdm/models/webhook_list_events_response.rbi +379 -19
- data/rbi/sentdm/models/webhook_list_response.rbi +480 -19
- data/rbi/sentdm/models/webhook_retrieve_response.rbi +363 -0
- data/rbi/sentdm/models/webhook_rotate_secret_params.rbi +14 -1
- data/rbi/sentdm/models/webhook_rotate_secret_response.rbi +148 -8
- data/rbi/sentdm/models/webhook_test_response.rbi +135 -8
- data/rbi/sentdm/models/webhook_toggle_status_response.rbi +379 -0
- data/rbi/sentdm/models/webhook_update_response.rbi +361 -0
- data/rbi/sentdm/models.rbi +11 -53
- data/rbi/sentdm/resources/contacts.rbi +24 -9
- data/rbi/sentdm/resources/conversations.rbi +10 -2
- data/rbi/sentdm/resources/me.rbi +6 -1
- data/rbi/sentdm/resources/messages.rbi +17 -5
- data/rbi/sentdm/resources/numbers.rbi +6 -1
- data/rbi/sentdm/resources/profiles/campaigns.rbi +36 -6
- data/rbi/sentdm/resources/profiles.rbi +177 -68
- data/rbi/sentdm/resources/templates.rbi +15 -5
- data/rbi/sentdm/resources/users.rbi +12 -6
- data/rbi/sentdm/resources/webhooks.rbi +15 -5
- data/sig/sentdm/models/contact_create_response.rbs +216 -0
- data/sig/sentdm/models/contact_delete_params.rbs +10 -6
- data/sig/sentdm/models/contact_list_response.rbs +263 -20
- data/sig/sentdm/models/contact_retrieve_message_summary_response.rbs +182 -0
- data/sig/sentdm/models/contact_retrieve_response.rbs +216 -0
- data/sig/sentdm/models/contact_update_response.rbs +216 -0
- data/sig/sentdm/models/conversation_list_messages_response.rbs +404 -0
- data/sig/sentdm/models/conversation_list_response.rbs +404 -0
- data/sig/sentdm/models/inbound_message_event.rbs +39 -0
- data/sig/sentdm/models/inbound_message_event_payload.rbs +69 -0
- data/sig/sentdm/models/me_retrieve_response.rbs +176 -18
- data/sig/sentdm/models/message_event.rbs +39 -0
- data/sig/sentdm/models/message_event_payload.rbs +72 -0
- data/sig/sentdm/models/message_retrieve_activities_response.rbs +147 -12
- data/sig/sentdm/models/message_retrieve_status_response.rbs +71 -9
- data/sig/sentdm/models/message_send_response.rbs +71 -9
- data/sig/sentdm/models/number_lookup_response.rbs +71 -9
- data/sig/sentdm/models/profile_complete_response.rbs +71 -9
- data/sig/sentdm/models/profile_create_params.rbs +271 -24
- data/sig/sentdm/models/profile_create_response.rbs +559 -0
- data/sig/sentdm/models/profile_delete_params.rbs +10 -6
- data/sig/sentdm/models/profile_list_response.rbs +615 -15
- data/sig/sentdm/models/profile_retrieve_response.rbs +559 -0
- data/sig/sentdm/models/profile_update_params.rbs +263 -12
- data/sig/sentdm/models/profile_update_response.rbs +559 -0
- data/sig/sentdm/models/profiles/campaign_create_params.rbs +108 -4
- data/sig/sentdm/models/profiles/campaign_create_response.rbs +357 -0
- data/sig/sentdm/models/profiles/campaign_delete_params.rbs +15 -8
- data/sig/sentdm/models/profiles/campaign_list_response.rbs +357 -0
- data/sig/sentdm/models/profiles/campaign_update_params.rbs +108 -4
- data/sig/sentdm/models/profiles/campaign_update_response.rbs +357 -0
- data/sig/sentdm/models/template_create_response.rbs +182 -0
- data/sig/sentdm/models/template_event.rbs +39 -0
- data/sig/sentdm/models/template_event_payload.rbs +76 -0
- data/sig/sentdm/models/template_list_response.rbs +230 -19
- data/sig/sentdm/models/template_retrieve_response.rbs +182 -0
- data/sig/sentdm/models/template_update_response.rbs +182 -0
- data/sig/sentdm/models/user_invite_response.rbs +177 -0
- data/sig/sentdm/models/user_list_response.rbs +233 -15
- data/sig/sentdm/models/user_remove_params.rbs +10 -6
- data/sig/sentdm/models/user_retrieve_response.rbs +177 -0
- data/sig/sentdm/models/user_update_role_response.rbs +177 -0
- data/sig/sentdm/models/webhook_create_response.rbs +208 -0
- data/sig/sentdm/models/webhook_list_event_types_response.rbs +203 -15
- data/sig/sentdm/models/webhook_list_events_response.rbs +160 -19
- data/sig/sentdm/models/webhook_list_response.rbs +255 -20
- data/sig/sentdm/models/webhook_retrieve_response.rbs +208 -0
- data/sig/sentdm/models/webhook_rotate_secret_params.rbs +17 -8
- data/sig/sentdm/models/webhook_rotate_secret_response.rbs +71 -9
- data/sig/sentdm/models/webhook_test_response.rbs +71 -9
- data/sig/sentdm/models/webhook_toggle_status_response.rbs +208 -0
- data/sig/sentdm/models/webhook_update_response.rbs +208 -0
- data/sig/sentdm/models.rbs +11 -51
- data/sig/sentdm/resources/contacts.rbs +4 -4
- data/sig/sentdm/resources/conversations.rbs +2 -2
- data/sig/sentdm/resources/profiles/campaigns.rbs +5 -5
- data/sig/sentdm/resources/profiles.rbs +11 -11
- data/sig/sentdm/resources/templates.rbs +3 -3
- data/sig/sentdm/resources/users.rbs +3 -3
- data/sig/sentdm/resources/webhooks.rbs +4 -4
- metadata +86 -98
- data/lib/sentdm/models/api_meta.rb +0 -34
- data/lib/sentdm/models/api_response_of_contact.rb +0 -46
- data/lib/sentdm/models/api_response_of_contact_message_summary.rb +0 -43
- data/lib/sentdm/models/api_response_of_conversation_messages_list.rb +0 -43
- data/lib/sentdm/models/api_response_of_profile_detail.rb +0 -43
- data/lib/sentdm/models/api_response_of_user.rb +0 -43
- data/lib/sentdm/models/api_response_template.rb +0 -43
- data/lib/sentdm/models/api_response_webhook.rb +0 -43
- data/lib/sentdm/models/billing_contact_info.rb +0 -47
- data/lib/sentdm/models/brand_business_info.rb +0 -114
- data/lib/sentdm/models/brand_compliance_info.rb +0 -67
- data/lib/sentdm/models/brand_contact_info.rb +0 -58
- data/lib/sentdm/models/brands_brand_data.rb +0 -34
- data/lib/sentdm/models/contact_message_summary.rb +0 -76
- data/lib/sentdm/models/contact_response.rb +0 -126
- data/lib/sentdm/models/conversation_messages_list.rb +0 -245
- data/lib/sentdm/models/error_detail.rb +0 -42
- data/lib/sentdm/models/mutation_request.rb +0 -20
- data/lib/sentdm/models/pagination_meta.rb +0 -80
- data/lib/sentdm/models/payment_details.rb +0 -44
- data/lib/sentdm/models/profile_detail.rb +0 -597
- data/lib/sentdm/models/profile_settings.rb +0 -66
- data/lib/sentdm/models/profiles/api_response_of_brand_campaign.rb +0 -45
- data/lib/sentdm/models/profiles/api_response_of_list_of_brand_campaign.rb +0 -45
- data/lib/sentdm/models/profiles/brand_campaign.rb +0 -247
- data/lib/sentdm/models/profiles/campaign_data.rb +0 -130
- data/lib/sentdm/models/profiles/campaign_use_case.rb +0 -71
- data/lib/sentdm/models/profiles/campaign_use_case_data.rb +0 -29
- data/lib/sentdm/models/template.rb +0 -90
- data/lib/sentdm/models/user_response.rb +0 -82
- data/lib/sentdm/models/webhook_event_type.rb +0 -45
- data/lib/sentdm/models/webhook_response.rb +0 -95
- data/rbi/sentdm/models/api_meta.rbi +0 -55
- data/rbi/sentdm/models/api_response_of_contact.rbi +0 -74
- data/rbi/sentdm/models/api_response_of_contact_message_summary.rbi +0 -79
- data/rbi/sentdm/models/api_response_of_conversation_messages_list.rbi +0 -79
- data/rbi/sentdm/models/api_response_of_profile_detail.rbi +0 -74
- data/rbi/sentdm/models/api_response_of_user.rbi +0 -74
- data/rbi/sentdm/models/api_response_template.rbi +0 -74
- data/rbi/sentdm/models/api_response_webhook.rbi +0 -74
- data/rbi/sentdm/models/billing_contact_info.rbi +0 -65
- data/rbi/sentdm/models/brand_business_info.rbi +0 -162
- data/rbi/sentdm/models/brand_compliance_info.rbi +0 -84
- data/rbi/sentdm/models/brand_contact_info.rbi +0 -78
- data/rbi/sentdm/models/brands_brand_data.rbi +0 -65
- data/rbi/sentdm/models/contact_message_summary.rbi +0 -144
- data/rbi/sentdm/models/contact_response.rbi +0 -183
- data/rbi/sentdm/models/conversation_messages_list.rbi +0 -419
- data/rbi/sentdm/models/error_detail.rbi +0 -66
- data/rbi/sentdm/models/mutation_request.rbi +0 -32
- data/rbi/sentdm/models/pagination_meta.rbi +0 -135
- data/rbi/sentdm/models/payment_details.rbi +0 -59
- data/rbi/sentdm/models/profile_detail.rbi +0 -866
- data/rbi/sentdm/models/profile_settings.rbi +0 -86
- data/rbi/sentdm/models/profiles/api_response_of_brand_campaign.rbi +0 -81
- data/rbi/sentdm/models/profiles/api_response_of_list_of_brand_campaign.rbi +0 -76
- data/rbi/sentdm/models/profiles/brand_campaign.rbi +0 -299
- data/rbi/sentdm/models/profiles/campaign_data.rbi +0 -146
- data/rbi/sentdm/models/profiles/campaign_use_case.rbi +0 -110
- data/rbi/sentdm/models/profiles/campaign_use_case_data.rbi +0 -51
- data/rbi/sentdm/models/template.rbi +0 -129
- data/rbi/sentdm/models/user_response.rbi +0 -118
- data/rbi/sentdm/models/webhook_event_type.rbi +0 -74
- data/rbi/sentdm/models/webhook_response.rbi +0 -140
- data/sig/sentdm/models/api_meta.rbs +0 -27
- data/sig/sentdm/models/api_response_of_contact.rbs +0 -39
- data/sig/sentdm/models/api_response_of_contact_message_summary.rbs +0 -39
- data/sig/sentdm/models/api_response_of_conversation_messages_list.rbs +0 -39
- data/sig/sentdm/models/api_response_of_profile_detail.rbs +0 -39
- data/sig/sentdm/models/api_response_of_user.rbs +0 -39
- data/sig/sentdm/models/api_response_template.rbs +0 -39
- data/sig/sentdm/models/api_response_webhook.rbs +0 -39
- data/sig/sentdm/models/billing_contact_info.rbs +0 -30
- data/sig/sentdm/models/brand_business_info.rbs +0 -89
- data/sig/sentdm/models/brand_compliance_info.rbs +0 -50
- data/sig/sentdm/models/brand_contact_info.rbs +0 -45
- data/sig/sentdm/models/brands_brand_data.rbs +0 -30
- data/sig/sentdm/models/contact_message_summary.rbs +0 -84
- data/sig/sentdm/models/contact_response.rbs +0 -111
- data/sig/sentdm/models/conversation_messages_list.rbs +0 -240
- data/sig/sentdm/models/error_detail.rbs +0 -39
- data/sig/sentdm/models/mutation_request.rbs +0 -15
- data/sig/sentdm/models/pagination_meta.rbs +0 -67
- data/sig/sentdm/models/payment_details.rbs +0 -30
- data/sig/sentdm/models/profile_detail.rbs +0 -469
- data/sig/sentdm/models/profile_settings.rbs +0 -50
- data/sig/sentdm/models/profiles/api_response_of_brand_campaign.rbs +0 -41
- data/sig/sentdm/models/profiles/api_response_of_list_of_brand_campaign.rbs +0 -41
- data/sig/sentdm/models/profiles/brand_campaign.rbs +0 -194
- data/sig/sentdm/models/profiles/campaign_data.rbs +0 -87
- data/sig/sentdm/models/profiles/campaign_use_case.rbs +0 -66
- data/sig/sentdm/models/profiles/campaign_use_case_data.rbs +0 -27
- data/sig/sentdm/models/template.rbs +0 -79
- data/sig/sentdm/models/user_response.rbs +0 -72
- data/sig/sentdm/models/webhook_event_type.rbs +0 -51
- data/sig/sentdm/models/webhook_response.rbs +0 -103
|
@@ -0,0 +1,349 @@
|
|
|
1
|
+
# typed: strong
|
|
2
|
+
|
|
3
|
+
module Sentdm
|
|
4
|
+
module Models
|
|
5
|
+
class TemplateCreateResponse < Sentdm::Internal::Type::BaseModel
|
|
6
|
+
OrHash =
|
|
7
|
+
T.type_alias do
|
|
8
|
+
T.any(
|
|
9
|
+
Sentdm::Models::TemplateCreateResponse,
|
|
10
|
+
Sentdm::Internal::AnyHash
|
|
11
|
+
)
|
|
12
|
+
end
|
|
13
|
+
|
|
14
|
+
# Template response for v3 API
|
|
15
|
+
sig { returns(T.nilable(Sentdm::Models::TemplateCreateResponse::Data)) }
|
|
16
|
+
attr_reader :data
|
|
17
|
+
|
|
18
|
+
sig do
|
|
19
|
+
params(
|
|
20
|
+
data: T.nilable(Sentdm::Models::TemplateCreateResponse::Data::OrHash)
|
|
21
|
+
).void
|
|
22
|
+
end
|
|
23
|
+
attr_writer :data
|
|
24
|
+
|
|
25
|
+
# Error information
|
|
26
|
+
sig { returns(T.nilable(Sentdm::Models::TemplateCreateResponse::Error)) }
|
|
27
|
+
attr_reader :error
|
|
28
|
+
|
|
29
|
+
sig do
|
|
30
|
+
params(
|
|
31
|
+
error:
|
|
32
|
+
T.nilable(Sentdm::Models::TemplateCreateResponse::Error::OrHash)
|
|
33
|
+
).void
|
|
34
|
+
end
|
|
35
|
+
attr_writer :error
|
|
36
|
+
|
|
37
|
+
# Request and response metadata
|
|
38
|
+
sig { returns(T.nilable(Sentdm::Models::TemplateCreateResponse::Meta)) }
|
|
39
|
+
attr_reader :meta
|
|
40
|
+
|
|
41
|
+
sig do
|
|
42
|
+
params(meta: Sentdm::Models::TemplateCreateResponse::Meta::OrHash).void
|
|
43
|
+
end
|
|
44
|
+
attr_writer :meta
|
|
45
|
+
|
|
46
|
+
# Indicates whether the request was successful
|
|
47
|
+
sig { returns(T.nilable(T::Boolean)) }
|
|
48
|
+
attr_reader :success
|
|
49
|
+
|
|
50
|
+
sig { params(success: T::Boolean).void }
|
|
51
|
+
attr_writer :success
|
|
52
|
+
|
|
53
|
+
# Standard API response envelope for all v3 endpoints
|
|
54
|
+
sig do
|
|
55
|
+
params(
|
|
56
|
+
data: T.nilable(Sentdm::Models::TemplateCreateResponse::Data::OrHash),
|
|
57
|
+
error:
|
|
58
|
+
T.nilable(Sentdm::Models::TemplateCreateResponse::Error::OrHash),
|
|
59
|
+
meta: Sentdm::Models::TemplateCreateResponse::Meta::OrHash,
|
|
60
|
+
success: T::Boolean
|
|
61
|
+
).returns(T.attached_class)
|
|
62
|
+
end
|
|
63
|
+
def self.new(
|
|
64
|
+
# Template response for v3 API
|
|
65
|
+
data: nil,
|
|
66
|
+
# Error information
|
|
67
|
+
error: nil,
|
|
68
|
+
# Request and response metadata
|
|
69
|
+
meta: nil,
|
|
70
|
+
# Indicates whether the request was successful
|
|
71
|
+
success: nil
|
|
72
|
+
)
|
|
73
|
+
end
|
|
74
|
+
|
|
75
|
+
sig do
|
|
76
|
+
override.returns(
|
|
77
|
+
{
|
|
78
|
+
data: T.nilable(Sentdm::Models::TemplateCreateResponse::Data),
|
|
79
|
+
error: T.nilable(Sentdm::Models::TemplateCreateResponse::Error),
|
|
80
|
+
meta: Sentdm::Models::TemplateCreateResponse::Meta,
|
|
81
|
+
success: T::Boolean
|
|
82
|
+
}
|
|
83
|
+
)
|
|
84
|
+
end
|
|
85
|
+
def to_hash
|
|
86
|
+
end
|
|
87
|
+
|
|
88
|
+
class Data < Sentdm::Internal::Type::BaseModel
|
|
89
|
+
OrHash =
|
|
90
|
+
T.type_alias do
|
|
91
|
+
T.any(
|
|
92
|
+
Sentdm::Models::TemplateCreateResponse::Data,
|
|
93
|
+
Sentdm::Internal::AnyHash
|
|
94
|
+
)
|
|
95
|
+
end
|
|
96
|
+
|
|
97
|
+
# Which customer owns this — the key's own, or the profile named in x-profile-id.
|
|
98
|
+
# Says whose resource this is, which the resource's own id does not.
|
|
99
|
+
sig { returns(String) }
|
|
100
|
+
attr_accessor :customer_id
|
|
101
|
+
|
|
102
|
+
# Unique template identifier
|
|
103
|
+
sig { returns(T.nilable(String)) }
|
|
104
|
+
attr_reader :id
|
|
105
|
+
|
|
106
|
+
sig { params(id: String).void }
|
|
107
|
+
attr_writer :id
|
|
108
|
+
|
|
109
|
+
# Template category: MARKETING, UTILITY, AUTHENTICATION
|
|
110
|
+
sig { returns(T.nilable(String)) }
|
|
111
|
+
attr_reader :category
|
|
112
|
+
|
|
113
|
+
sig { params(category: String).void }
|
|
114
|
+
attr_writer :category
|
|
115
|
+
|
|
116
|
+
# Supported channels: sms, whatsapp
|
|
117
|
+
sig { returns(T.nilable(T::Array[String])) }
|
|
118
|
+
attr_accessor :channels
|
|
119
|
+
|
|
120
|
+
# When the template was created
|
|
121
|
+
sig { returns(T.nilable(Time)) }
|
|
122
|
+
attr_reader :created_at
|
|
123
|
+
|
|
124
|
+
sig { params(created_at: Time).void }
|
|
125
|
+
attr_writer :created_at
|
|
126
|
+
|
|
127
|
+
# Whether the template is published and active
|
|
128
|
+
sig { returns(T.nilable(T::Boolean)) }
|
|
129
|
+
attr_reader :is_published
|
|
130
|
+
|
|
131
|
+
sig { params(is_published: T::Boolean).void }
|
|
132
|
+
attr_writer :is_published
|
|
133
|
+
|
|
134
|
+
# Template language code (e.g., en_US)
|
|
135
|
+
sig { returns(T.nilable(String)) }
|
|
136
|
+
attr_reader :language
|
|
137
|
+
|
|
138
|
+
sig { params(language: String).void }
|
|
139
|
+
attr_writer :language
|
|
140
|
+
|
|
141
|
+
# Template display name
|
|
142
|
+
sig { returns(T.nilable(String)) }
|
|
143
|
+
attr_reader :name
|
|
144
|
+
|
|
145
|
+
sig { params(name: String).void }
|
|
146
|
+
attr_writer :name
|
|
147
|
+
|
|
148
|
+
# Template status: APPROVED, PENDING, REJECTED
|
|
149
|
+
sig { returns(T.nilable(String)) }
|
|
150
|
+
attr_reader :status
|
|
151
|
+
|
|
152
|
+
sig { params(status: String).void }
|
|
153
|
+
attr_writer :status
|
|
154
|
+
|
|
155
|
+
# When the template was last updated
|
|
156
|
+
sig { returns(T.nilable(Time)) }
|
|
157
|
+
attr_accessor :updated_at
|
|
158
|
+
|
|
159
|
+
# Template variables for personalization
|
|
160
|
+
sig { returns(T.nilable(T::Array[String])) }
|
|
161
|
+
attr_accessor :variables
|
|
162
|
+
|
|
163
|
+
# Template response for v3 API
|
|
164
|
+
sig do
|
|
165
|
+
params(
|
|
166
|
+
customer_id: String,
|
|
167
|
+
id: String,
|
|
168
|
+
category: String,
|
|
169
|
+
channels: T.nilable(T::Array[String]),
|
|
170
|
+
created_at: Time,
|
|
171
|
+
is_published: T::Boolean,
|
|
172
|
+
language: String,
|
|
173
|
+
name: String,
|
|
174
|
+
status: String,
|
|
175
|
+
updated_at: T.nilable(Time),
|
|
176
|
+
variables: T.nilable(T::Array[String])
|
|
177
|
+
).returns(T.attached_class)
|
|
178
|
+
end
|
|
179
|
+
def self.new(
|
|
180
|
+
# Which customer owns this — the key's own, or the profile named in x-profile-id.
|
|
181
|
+
# Says whose resource this is, which the resource's own id does not.
|
|
182
|
+
customer_id:,
|
|
183
|
+
# Unique template identifier
|
|
184
|
+
id: nil,
|
|
185
|
+
# Template category: MARKETING, UTILITY, AUTHENTICATION
|
|
186
|
+
category: nil,
|
|
187
|
+
# Supported channels: sms, whatsapp
|
|
188
|
+
channels: nil,
|
|
189
|
+
# When the template was created
|
|
190
|
+
created_at: nil,
|
|
191
|
+
# Whether the template is published and active
|
|
192
|
+
is_published: nil,
|
|
193
|
+
# Template language code (e.g., en_US)
|
|
194
|
+
language: nil,
|
|
195
|
+
# Template display name
|
|
196
|
+
name: nil,
|
|
197
|
+
# Template status: APPROVED, PENDING, REJECTED
|
|
198
|
+
status: nil,
|
|
199
|
+
# When the template was last updated
|
|
200
|
+
updated_at: nil,
|
|
201
|
+
# Template variables for personalization
|
|
202
|
+
variables: nil
|
|
203
|
+
)
|
|
204
|
+
end
|
|
205
|
+
|
|
206
|
+
sig do
|
|
207
|
+
override.returns(
|
|
208
|
+
{
|
|
209
|
+
customer_id: String,
|
|
210
|
+
id: String,
|
|
211
|
+
category: String,
|
|
212
|
+
channels: T.nilable(T::Array[String]),
|
|
213
|
+
created_at: Time,
|
|
214
|
+
is_published: T::Boolean,
|
|
215
|
+
language: String,
|
|
216
|
+
name: String,
|
|
217
|
+
status: String,
|
|
218
|
+
updated_at: T.nilable(Time),
|
|
219
|
+
variables: T.nilable(T::Array[String])
|
|
220
|
+
}
|
|
221
|
+
)
|
|
222
|
+
end
|
|
223
|
+
def to_hash
|
|
224
|
+
end
|
|
225
|
+
end
|
|
226
|
+
|
|
227
|
+
class Error < Sentdm::Internal::Type::BaseModel
|
|
228
|
+
OrHash =
|
|
229
|
+
T.type_alias do
|
|
230
|
+
T.any(
|
|
231
|
+
Sentdm::Models::TemplateCreateResponse::Error,
|
|
232
|
+
Sentdm::Internal::AnyHash
|
|
233
|
+
)
|
|
234
|
+
end
|
|
235
|
+
|
|
236
|
+
# Machine-readable error code (e.g., "RESOURCE_001")
|
|
237
|
+
sig { returns(T.nilable(String)) }
|
|
238
|
+
attr_reader :code
|
|
239
|
+
|
|
240
|
+
sig { params(code: String).void }
|
|
241
|
+
attr_writer :code
|
|
242
|
+
|
|
243
|
+
# Additional validation error details (field-level errors)
|
|
244
|
+
sig { returns(T.nilable(T::Hash[Symbol, T::Array[String]])) }
|
|
245
|
+
attr_accessor :details
|
|
246
|
+
|
|
247
|
+
# URL to documentation about this error
|
|
248
|
+
sig { returns(T.nilable(String)) }
|
|
249
|
+
attr_accessor :doc_url
|
|
250
|
+
|
|
251
|
+
# Human-readable error message
|
|
252
|
+
sig { returns(T.nilable(String)) }
|
|
253
|
+
attr_reader :message
|
|
254
|
+
|
|
255
|
+
sig { params(message: String).void }
|
|
256
|
+
attr_writer :message
|
|
257
|
+
|
|
258
|
+
# Error information
|
|
259
|
+
sig do
|
|
260
|
+
params(
|
|
261
|
+
code: String,
|
|
262
|
+
details: T.nilable(T::Hash[Symbol, T::Array[String]]),
|
|
263
|
+
doc_url: T.nilable(String),
|
|
264
|
+
message: String
|
|
265
|
+
).returns(T.attached_class)
|
|
266
|
+
end
|
|
267
|
+
def self.new(
|
|
268
|
+
# Machine-readable error code (e.g., "RESOURCE_001")
|
|
269
|
+
code: nil,
|
|
270
|
+
# Additional validation error details (field-level errors)
|
|
271
|
+
details: nil,
|
|
272
|
+
# URL to documentation about this error
|
|
273
|
+
doc_url: nil,
|
|
274
|
+
# Human-readable error message
|
|
275
|
+
message: nil
|
|
276
|
+
)
|
|
277
|
+
end
|
|
278
|
+
|
|
279
|
+
sig do
|
|
280
|
+
override.returns(
|
|
281
|
+
{
|
|
282
|
+
code: String,
|
|
283
|
+
details: T.nilable(T::Hash[Symbol, T::Array[String]]),
|
|
284
|
+
doc_url: T.nilable(String),
|
|
285
|
+
message: String
|
|
286
|
+
}
|
|
287
|
+
)
|
|
288
|
+
end
|
|
289
|
+
def to_hash
|
|
290
|
+
end
|
|
291
|
+
end
|
|
292
|
+
|
|
293
|
+
class Meta < Sentdm::Internal::Type::BaseModel
|
|
294
|
+
OrHash =
|
|
295
|
+
T.type_alias do
|
|
296
|
+
T.any(
|
|
297
|
+
Sentdm::Models::TemplateCreateResponse::Meta,
|
|
298
|
+
Sentdm::Internal::AnyHash
|
|
299
|
+
)
|
|
300
|
+
end
|
|
301
|
+
|
|
302
|
+
# Unique identifier for this request (for tracing and support)
|
|
303
|
+
sig { returns(T.nilable(String)) }
|
|
304
|
+
attr_reader :request_id
|
|
305
|
+
|
|
306
|
+
sig { params(request_id: String).void }
|
|
307
|
+
attr_writer :request_id
|
|
308
|
+
|
|
309
|
+
# Server timestamp when the response was generated
|
|
310
|
+
sig { returns(T.nilable(Time)) }
|
|
311
|
+
attr_reader :timestamp
|
|
312
|
+
|
|
313
|
+
sig { params(timestamp: Time).void }
|
|
314
|
+
attr_writer :timestamp
|
|
315
|
+
|
|
316
|
+
# API version used for this request
|
|
317
|
+
sig { returns(T.nilable(String)) }
|
|
318
|
+
attr_reader :version
|
|
319
|
+
|
|
320
|
+
sig { params(version: String).void }
|
|
321
|
+
attr_writer :version
|
|
322
|
+
|
|
323
|
+
# Request and response metadata
|
|
324
|
+
sig do
|
|
325
|
+
params(request_id: String, timestamp: Time, version: String).returns(
|
|
326
|
+
T.attached_class
|
|
327
|
+
)
|
|
328
|
+
end
|
|
329
|
+
def self.new(
|
|
330
|
+
# Unique identifier for this request (for tracing and support)
|
|
331
|
+
request_id: nil,
|
|
332
|
+
# Server timestamp when the response was generated
|
|
333
|
+
timestamp: nil,
|
|
334
|
+
# API version used for this request
|
|
335
|
+
version: nil
|
|
336
|
+
)
|
|
337
|
+
end
|
|
338
|
+
|
|
339
|
+
sig do
|
|
340
|
+
override.returns(
|
|
341
|
+
{ request_id: String, timestamp: Time, version: String }
|
|
342
|
+
)
|
|
343
|
+
end
|
|
344
|
+
def to_hash
|
|
345
|
+
end
|
|
346
|
+
end
|
|
347
|
+
end
|
|
348
|
+
end
|
|
349
|
+
end
|
|
@@ -0,0 +1,84 @@
|
|
|
1
|
+
# typed: strong
|
|
2
|
+
|
|
3
|
+
module Sentdm
|
|
4
|
+
module Models
|
|
5
|
+
class TemplateEvent < Sentdm::Internal::Type::BaseModel
|
|
6
|
+
OrHash =
|
|
7
|
+
T.type_alias { T.any(Sentdm::TemplateEvent, Sentdm::Internal::AnyHash) }
|
|
8
|
+
|
|
9
|
+
# The specific event within the family, for example message.delivered or
|
|
10
|
+
# message.received. Absent on events that have no subtype, so treat it as
|
|
11
|
+
# optional.
|
|
12
|
+
sig { returns(T.nilable(String)) }
|
|
13
|
+
attr_accessor :event
|
|
14
|
+
|
|
15
|
+
# The event family, for example message or templates. Route on this first, then on
|
|
16
|
+
# event for the specific change.
|
|
17
|
+
sig { returns(T.nilable(String)) }
|
|
18
|
+
attr_reader :field
|
|
19
|
+
|
|
20
|
+
sig { params(field: String).void }
|
|
21
|
+
attr_writer :field
|
|
22
|
+
|
|
23
|
+
# Body of a template status event. Delivered when a template's review outcome
|
|
24
|
+
# changes, so you can react without polling.
|
|
25
|
+
sig { returns(T.nilable(Sentdm::TemplateEventPayload)) }
|
|
26
|
+
attr_reader :payload
|
|
27
|
+
|
|
28
|
+
sig do
|
|
29
|
+
params(payload: T.nilable(Sentdm::TemplateEventPayload::OrHash)).void
|
|
30
|
+
end
|
|
31
|
+
attr_writer :payload
|
|
32
|
+
|
|
33
|
+
# When Sent emitted the event, in UTC (yyyy-MM-ddTHH:mm:ssZ). This is the emission
|
|
34
|
+
# time, not the time the underlying change happened. Use the timestamp inside the
|
|
35
|
+
# payload for the latter.
|
|
36
|
+
sig { returns(T.nilable(String)) }
|
|
37
|
+
attr_reader :timestamp
|
|
38
|
+
|
|
39
|
+
sig { params(timestamp: String).void }
|
|
40
|
+
attr_writer :timestamp
|
|
41
|
+
|
|
42
|
+
# The envelope Sent POSTs to a subscribed webhook endpoint. Every event shares
|
|
43
|
+
# this shape and varies only in Payload.
|
|
44
|
+
sig do
|
|
45
|
+
params(
|
|
46
|
+
event: T.nilable(String),
|
|
47
|
+
field: String,
|
|
48
|
+
payload: T.nilable(Sentdm::TemplateEventPayload::OrHash),
|
|
49
|
+
timestamp: String
|
|
50
|
+
).returns(T.attached_class)
|
|
51
|
+
end
|
|
52
|
+
def self.new(
|
|
53
|
+
# The specific event within the family, for example message.delivered or
|
|
54
|
+
# message.received. Absent on events that have no subtype, so treat it as
|
|
55
|
+
# optional.
|
|
56
|
+
event: nil,
|
|
57
|
+
# The event family, for example message or templates. Route on this first, then on
|
|
58
|
+
# event for the specific change.
|
|
59
|
+
field: nil,
|
|
60
|
+
# Body of a template status event. Delivered when a template's review outcome
|
|
61
|
+
# changes, so you can react without polling.
|
|
62
|
+
payload: nil,
|
|
63
|
+
# When Sent emitted the event, in UTC (yyyy-MM-ddTHH:mm:ssZ). This is the emission
|
|
64
|
+
# time, not the time the underlying change happened. Use the timestamp inside the
|
|
65
|
+
# payload for the latter.
|
|
66
|
+
timestamp: nil
|
|
67
|
+
)
|
|
68
|
+
end
|
|
69
|
+
|
|
70
|
+
sig do
|
|
71
|
+
override.returns(
|
|
72
|
+
{
|
|
73
|
+
event: T.nilable(String),
|
|
74
|
+
field: String,
|
|
75
|
+
payload: T.nilable(Sentdm::TemplateEventPayload),
|
|
76
|
+
timestamp: String
|
|
77
|
+
}
|
|
78
|
+
)
|
|
79
|
+
end
|
|
80
|
+
def to_hash
|
|
81
|
+
end
|
|
82
|
+
end
|
|
83
|
+
end
|
|
84
|
+
end
|
|
@@ -0,0 +1,131 @@
|
|
|
1
|
+
# typed: strong
|
|
2
|
+
|
|
3
|
+
module Sentdm
|
|
4
|
+
module Models
|
|
5
|
+
class TemplateEventPayload < Sentdm::Internal::Type::BaseModel
|
|
6
|
+
OrHash =
|
|
7
|
+
T.type_alias do
|
|
8
|
+
T.any(Sentdm::TemplateEventPayload, Sentdm::Internal::AnyHash)
|
|
9
|
+
end
|
|
10
|
+
|
|
11
|
+
# The account the template belongs to.
|
|
12
|
+
sig { returns(T.nilable(String)) }
|
|
13
|
+
attr_reader :account_id
|
|
14
|
+
|
|
15
|
+
sig { params(account_id: String).void }
|
|
16
|
+
attr_writer :account_id
|
|
17
|
+
|
|
18
|
+
# The template's category, for example UTILITY, MARKETING, or AUTHENTICATION.
|
|
19
|
+
sig { returns(T.nilable(String)) }
|
|
20
|
+
attr_reader :category
|
|
21
|
+
|
|
22
|
+
sig { params(category: String).void }
|
|
23
|
+
attr_writer :category
|
|
24
|
+
|
|
25
|
+
# The channel the template applies to.
|
|
26
|
+
sig { returns(T.nilable(String)) }
|
|
27
|
+
attr_reader :channel
|
|
28
|
+
|
|
29
|
+
sig { params(channel: String).void }
|
|
30
|
+
attr_writer :channel
|
|
31
|
+
|
|
32
|
+
# The template's language code, for example en_US.
|
|
33
|
+
sig { returns(T.nilable(String)) }
|
|
34
|
+
attr_reader :language
|
|
35
|
+
|
|
36
|
+
sig { params(language: String).void }
|
|
37
|
+
attr_writer :language
|
|
38
|
+
|
|
39
|
+
# Why the template reached Status, when a reason was given. Populated on a
|
|
40
|
+
# rejection.
|
|
41
|
+
sig { returns(T.nilable(String)) }
|
|
42
|
+
attr_accessor :reason
|
|
43
|
+
|
|
44
|
+
# The review status the template just reached, for example APPROVED or REJECTED.
|
|
45
|
+
sig { returns(T.nilable(String)) }
|
|
46
|
+
attr_reader :status
|
|
47
|
+
|
|
48
|
+
sig { params(status: String).void }
|
|
49
|
+
attr_writer :status
|
|
50
|
+
|
|
51
|
+
# The template in Sent.
|
|
52
|
+
sig { returns(T.nilable(String)) }
|
|
53
|
+
attr_reader :template_id
|
|
54
|
+
|
|
55
|
+
sig { params(template_id: String).void }
|
|
56
|
+
attr_writer :template_id
|
|
57
|
+
|
|
58
|
+
# The template's display name.
|
|
59
|
+
sig { returns(T.nilable(String)) }
|
|
60
|
+
attr_reader :template_name
|
|
61
|
+
|
|
62
|
+
sig { params(template_name: String).void }
|
|
63
|
+
attr_writer :template_name
|
|
64
|
+
|
|
65
|
+
# The template's identifier with Meta, assigned when the template is submitted for
|
|
66
|
+
# review.
|
|
67
|
+
sig { returns(T.nilable(String)) }
|
|
68
|
+
attr_reader :whatsapp_template_id
|
|
69
|
+
|
|
70
|
+
sig { params(whatsapp_template_id: String).void }
|
|
71
|
+
attr_writer :whatsapp_template_id
|
|
72
|
+
|
|
73
|
+
# Body of a template status event. Delivered when a template's review outcome
|
|
74
|
+
# changes, so you can react without polling.
|
|
75
|
+
sig do
|
|
76
|
+
params(
|
|
77
|
+
account_id: String,
|
|
78
|
+
category: String,
|
|
79
|
+
channel: String,
|
|
80
|
+
language: String,
|
|
81
|
+
reason: T.nilable(String),
|
|
82
|
+
status: String,
|
|
83
|
+
template_id: String,
|
|
84
|
+
template_name: String,
|
|
85
|
+
whatsapp_template_id: String
|
|
86
|
+
).returns(T.attached_class)
|
|
87
|
+
end
|
|
88
|
+
def self.new(
|
|
89
|
+
# The account the template belongs to.
|
|
90
|
+
account_id: nil,
|
|
91
|
+
# The template's category, for example UTILITY, MARKETING, or AUTHENTICATION.
|
|
92
|
+
category: nil,
|
|
93
|
+
# The channel the template applies to.
|
|
94
|
+
channel: nil,
|
|
95
|
+
# The template's language code, for example en_US.
|
|
96
|
+
language: nil,
|
|
97
|
+
# Why the template reached Status, when a reason was given. Populated on a
|
|
98
|
+
# rejection.
|
|
99
|
+
reason: nil,
|
|
100
|
+
# The review status the template just reached, for example APPROVED or REJECTED.
|
|
101
|
+
status: nil,
|
|
102
|
+
# The template in Sent.
|
|
103
|
+
template_id: nil,
|
|
104
|
+
# The template's display name.
|
|
105
|
+
template_name: nil,
|
|
106
|
+
# The template's identifier with Meta, assigned when the template is submitted for
|
|
107
|
+
# review.
|
|
108
|
+
whatsapp_template_id: nil
|
|
109
|
+
)
|
|
110
|
+
end
|
|
111
|
+
|
|
112
|
+
sig do
|
|
113
|
+
override.returns(
|
|
114
|
+
{
|
|
115
|
+
account_id: String,
|
|
116
|
+
category: String,
|
|
117
|
+
channel: String,
|
|
118
|
+
language: String,
|
|
119
|
+
reason: T.nilable(String),
|
|
120
|
+
status: String,
|
|
121
|
+
template_id: String,
|
|
122
|
+
template_name: String,
|
|
123
|
+
whatsapp_template_id: String
|
|
124
|
+
}
|
|
125
|
+
)
|
|
126
|
+
end
|
|
127
|
+
def to_hash
|
|
128
|
+
end
|
|
129
|
+
end
|
|
130
|
+
end
|
|
131
|
+
end
|
|
@@ -23,7 +23,11 @@ module Sentdm
|
|
|
23
23
|
sig { returns(T.nilable(String)) }
|
|
24
24
|
attr_accessor :category
|
|
25
25
|
|
|
26
|
-
#
|
|
26
|
+
# Accepted and ignored. It used to filter on the welcome-playground marker inside
|
|
27
|
+
# a template's LOB details; that filter is gone and nothing reads this value, so
|
|
28
|
+
# sending it neither narrows nor widens the result. Retained only so a client
|
|
29
|
+
# still passing is_welcome_playground keeps binding instead of the request shape
|
|
30
|
+
# changing under it.
|
|
27
31
|
sig { returns(T.nilable(T::Boolean)) }
|
|
28
32
|
attr_accessor :is_welcome_playground
|
|
29
33
|
|
|
@@ -60,7 +64,11 @@ module Sentdm
|
|
|
60
64
|
page_size:,
|
|
61
65
|
# Optional category filter: MARKETING, UTILITY, AUTHENTICATION
|
|
62
66
|
category: nil,
|
|
63
|
-
#
|
|
67
|
+
# Accepted and ignored. It used to filter on the welcome-playground marker inside
|
|
68
|
+
# a template's LOB details; that filter is gone and nothing reads this value, so
|
|
69
|
+
# sending it neither narrows nor widens the result. Retained only so a client
|
|
70
|
+
# still passing is_welcome_playground keeps binding instead of the request shape
|
|
71
|
+
# changing under it.
|
|
64
72
|
is_welcome_playground: nil,
|
|
65
73
|
# Optional search term for filtering templates
|
|
66
74
|
search: nil,
|