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
|
@@ -2,7 +2,7 @@
|
|
|
2
2
|
|
|
3
3
|
module Sentdm
|
|
4
4
|
module Models
|
|
5
|
-
class ContactDeleteParams < Sentdm::
|
|
5
|
+
class ContactDeleteParams < Sentdm::Internal::Type::BaseModel
|
|
6
6
|
extend Sentdm::Internal::Type::RequestParameters::Converter
|
|
7
7
|
include Sentdm::Internal::Type::RequestParameters
|
|
8
8
|
|
|
@@ -14,6 +14,14 @@ module Sentdm
|
|
|
14
14
|
sig { returns(String) }
|
|
15
15
|
attr_accessor :id
|
|
16
16
|
|
|
17
|
+
# Sandbox flag - when true, the operation is simulated without side effects Useful
|
|
18
|
+
# for testing integrations without actual execution
|
|
19
|
+
sig { returns(T.nilable(T::Boolean)) }
|
|
20
|
+
attr_reader :sandbox
|
|
21
|
+
|
|
22
|
+
sig { params(sandbox: T::Boolean).void }
|
|
23
|
+
attr_writer :sandbox
|
|
24
|
+
|
|
17
25
|
sig { returns(T.nilable(String)) }
|
|
18
26
|
attr_reader :x_profile_id
|
|
19
27
|
|
|
@@ -23,17 +31,26 @@ module Sentdm
|
|
|
23
31
|
sig do
|
|
24
32
|
params(
|
|
25
33
|
id: String,
|
|
34
|
+
sandbox: T::Boolean,
|
|
26
35
|
x_profile_id: String,
|
|
27
36
|
request_options: Sentdm::RequestOptions::OrHash
|
|
28
37
|
).returns(T.attached_class)
|
|
29
38
|
end
|
|
30
|
-
def self.new(
|
|
39
|
+
def self.new(
|
|
40
|
+
id:,
|
|
41
|
+
# Sandbox flag - when true, the operation is simulated without side effects Useful
|
|
42
|
+
# for testing integrations without actual execution
|
|
43
|
+
sandbox: nil,
|
|
44
|
+
x_profile_id: nil,
|
|
45
|
+
request_options: {}
|
|
46
|
+
)
|
|
31
47
|
end
|
|
32
48
|
|
|
33
49
|
sig do
|
|
34
50
|
override.returns(
|
|
35
51
|
{
|
|
36
52
|
id: String,
|
|
53
|
+
sandbox: T::Boolean,
|
|
37
54
|
x_profile_id: String,
|
|
38
55
|
request_options: Sentdm::RequestOptions
|
|
39
56
|
}
|
|
@@ -8,7 +8,7 @@ module Sentdm
|
|
|
8
8
|
T.any(Sentdm::Models::ContactListResponse, Sentdm::Internal::AnyHash)
|
|
9
9
|
end
|
|
10
10
|
|
|
11
|
-
#
|
|
11
|
+
# A paginated list of contacts.
|
|
12
12
|
sig { returns(T.nilable(Sentdm::Models::ContactListResponse::Data)) }
|
|
13
13
|
attr_reader :data
|
|
14
14
|
|
|
@@ -20,17 +20,23 @@ module Sentdm
|
|
|
20
20
|
attr_writer :data
|
|
21
21
|
|
|
22
22
|
# Error information
|
|
23
|
-
sig { returns(T.nilable(Sentdm::
|
|
23
|
+
sig { returns(T.nilable(Sentdm::Models::ContactListResponse::Error)) }
|
|
24
24
|
attr_reader :error
|
|
25
25
|
|
|
26
|
-
sig
|
|
26
|
+
sig do
|
|
27
|
+
params(
|
|
28
|
+
error: T.nilable(Sentdm::Models::ContactListResponse::Error::OrHash)
|
|
29
|
+
).void
|
|
30
|
+
end
|
|
27
31
|
attr_writer :error
|
|
28
32
|
|
|
29
33
|
# Request and response metadata
|
|
30
|
-
sig { returns(T.nilable(Sentdm::
|
|
34
|
+
sig { returns(T.nilable(Sentdm::Models::ContactListResponse::Meta)) }
|
|
31
35
|
attr_reader :meta
|
|
32
36
|
|
|
33
|
-
sig
|
|
37
|
+
sig do
|
|
38
|
+
params(meta: Sentdm::Models::ContactListResponse::Meta::OrHash).void
|
|
39
|
+
end
|
|
34
40
|
attr_writer :meta
|
|
35
41
|
|
|
36
42
|
# Indicates whether the request was successful
|
|
@@ -44,13 +50,13 @@ module Sentdm
|
|
|
44
50
|
sig do
|
|
45
51
|
params(
|
|
46
52
|
data: T.nilable(Sentdm::Models::ContactListResponse::Data::OrHash),
|
|
47
|
-
error: T.nilable(Sentdm::
|
|
48
|
-
meta: Sentdm::
|
|
53
|
+
error: T.nilable(Sentdm::Models::ContactListResponse::Error::OrHash),
|
|
54
|
+
meta: Sentdm::Models::ContactListResponse::Meta::OrHash,
|
|
49
55
|
success: T::Boolean
|
|
50
56
|
).returns(T.attached_class)
|
|
51
57
|
end
|
|
52
58
|
def self.new(
|
|
53
|
-
#
|
|
59
|
+
# A paginated list of contacts.
|
|
54
60
|
data: nil,
|
|
55
61
|
# Error information
|
|
56
62
|
error: nil,
|
|
@@ -65,8 +71,8 @@ module Sentdm
|
|
|
65
71
|
override.returns(
|
|
66
72
|
{
|
|
67
73
|
data: T.nilable(Sentdm::Models::ContactListResponse::Data),
|
|
68
|
-
error: T.nilable(Sentdm::
|
|
69
|
-
meta: Sentdm::
|
|
74
|
+
error: T.nilable(Sentdm::Models::ContactListResponse::Error),
|
|
75
|
+
meta: Sentdm::Models::ContactListResponse::Meta,
|
|
70
76
|
success: T::Boolean
|
|
71
77
|
}
|
|
72
78
|
)
|
|
@@ -83,29 +89,55 @@ module Sentdm
|
|
|
83
89
|
)
|
|
84
90
|
end
|
|
85
91
|
|
|
86
|
-
#
|
|
87
|
-
sig
|
|
92
|
+
# The contacts on this page.
|
|
93
|
+
sig do
|
|
94
|
+
returns(
|
|
95
|
+
T.nilable(
|
|
96
|
+
T::Array[Sentdm::Models::ContactListResponse::Data::Contact]
|
|
97
|
+
)
|
|
98
|
+
)
|
|
99
|
+
end
|
|
88
100
|
attr_reader :contacts
|
|
89
101
|
|
|
90
|
-
sig
|
|
102
|
+
sig do
|
|
103
|
+
params(
|
|
104
|
+
contacts:
|
|
105
|
+
T::Array[
|
|
106
|
+
Sentdm::Models::ContactListResponse::Data::Contact::OrHash
|
|
107
|
+
]
|
|
108
|
+
).void
|
|
109
|
+
end
|
|
91
110
|
attr_writer :contacts
|
|
92
111
|
|
|
93
112
|
# Pagination metadata for list responses
|
|
94
|
-
sig
|
|
113
|
+
sig do
|
|
114
|
+
returns(
|
|
115
|
+
T.nilable(Sentdm::Models::ContactListResponse::Data::Pagination)
|
|
116
|
+
)
|
|
117
|
+
end
|
|
95
118
|
attr_reader :pagination
|
|
96
119
|
|
|
97
|
-
sig
|
|
120
|
+
sig do
|
|
121
|
+
params(
|
|
122
|
+
pagination:
|
|
123
|
+
Sentdm::Models::ContactListResponse::Data::Pagination::OrHash
|
|
124
|
+
).void
|
|
125
|
+
end
|
|
98
126
|
attr_writer :pagination
|
|
99
127
|
|
|
100
|
-
#
|
|
128
|
+
# A paginated list of contacts.
|
|
101
129
|
sig do
|
|
102
130
|
params(
|
|
103
|
-
contacts:
|
|
104
|
-
|
|
131
|
+
contacts:
|
|
132
|
+
T::Array[
|
|
133
|
+
Sentdm::Models::ContactListResponse::Data::Contact::OrHash
|
|
134
|
+
],
|
|
135
|
+
pagination:
|
|
136
|
+
Sentdm::Models::ContactListResponse::Data::Pagination::OrHash
|
|
105
137
|
).returns(T.attached_class)
|
|
106
138
|
end
|
|
107
139
|
def self.new(
|
|
108
|
-
#
|
|
140
|
+
# The contacts on this page.
|
|
109
141
|
contacts: nil,
|
|
110
142
|
# Pagination metadata for list responses
|
|
111
143
|
pagination: nil
|
|
@@ -115,14 +147,488 @@ module Sentdm
|
|
|
115
147
|
sig do
|
|
116
148
|
override.returns(
|
|
117
149
|
{
|
|
118
|
-
contacts:
|
|
119
|
-
|
|
150
|
+
contacts:
|
|
151
|
+
T::Array[Sentdm::Models::ContactListResponse::Data::Contact],
|
|
152
|
+
pagination: Sentdm::Models::ContactListResponse::Data::Pagination
|
|
153
|
+
}
|
|
154
|
+
)
|
|
155
|
+
end
|
|
156
|
+
def to_hash
|
|
157
|
+
end
|
|
158
|
+
|
|
159
|
+
class Contact < Sentdm::Internal::Type::BaseModel
|
|
160
|
+
OrHash =
|
|
161
|
+
T.type_alias do
|
|
162
|
+
T.any(
|
|
163
|
+
Sentdm::Models::ContactListResponse::Data::Contact,
|
|
164
|
+
Sentdm::Internal::AnyHash
|
|
165
|
+
)
|
|
166
|
+
end
|
|
167
|
+
|
|
168
|
+
# Unique identifier for the contact
|
|
169
|
+
sig { returns(T.nilable(String)) }
|
|
170
|
+
attr_reader :id
|
|
171
|
+
|
|
172
|
+
sig { params(id: String).void }
|
|
173
|
+
attr_writer :id
|
|
174
|
+
|
|
175
|
+
# Comma-separated list of available messaging channels (e.g., "sms,whatsapp")
|
|
176
|
+
sig { returns(T.nilable(String)) }
|
|
177
|
+
attr_reader :available_channels
|
|
178
|
+
|
|
179
|
+
sig { params(available_channels: String).void }
|
|
180
|
+
attr_writer :available_channels
|
|
181
|
+
|
|
182
|
+
# Country calling code (e.g., 1 for US/Canada)
|
|
183
|
+
sig { returns(T.nilable(String)) }
|
|
184
|
+
attr_reader :country_code
|
|
185
|
+
|
|
186
|
+
sig { params(country_code: String).void }
|
|
187
|
+
attr_writer :country_code
|
|
188
|
+
|
|
189
|
+
# When the contact was created
|
|
190
|
+
sig { returns(T.nilable(Time)) }
|
|
191
|
+
attr_reader :created_at
|
|
192
|
+
|
|
193
|
+
sig { params(created_at: Time).void }
|
|
194
|
+
attr_writer :created_at
|
|
195
|
+
|
|
196
|
+
# Which customer owns this — the key's own, or the profile named in x-profile-id.
|
|
197
|
+
# Says whose resource this is, which the resource's own id does not.
|
|
198
|
+
sig { returns(T.nilable(String)) }
|
|
199
|
+
attr_reader :customer_id
|
|
200
|
+
|
|
201
|
+
sig { params(customer_id: String).void }
|
|
202
|
+
attr_writer :customer_id
|
|
203
|
+
|
|
204
|
+
# Default messaging channel to use (e.g., "sms" or "whatsapp")
|
|
205
|
+
sig { returns(T.nilable(String)) }
|
|
206
|
+
attr_reader :default_channel
|
|
207
|
+
|
|
208
|
+
sig { params(default_channel: String).void }
|
|
209
|
+
attr_writer :default_channel
|
|
210
|
+
|
|
211
|
+
# Phone number in E.164 format (e.g., +1234567890)
|
|
212
|
+
sig { returns(T.nilable(String)) }
|
|
213
|
+
attr_reader :format_e164
|
|
214
|
+
|
|
215
|
+
sig { params(format_e164: String).void }
|
|
216
|
+
attr_writer :format_e164
|
|
217
|
+
|
|
218
|
+
# Phone number in international format (e.g., +1 234-567-890)
|
|
219
|
+
sig { returns(T.nilable(String)) }
|
|
220
|
+
attr_reader :format_international
|
|
221
|
+
|
|
222
|
+
sig { params(format_international: String).void }
|
|
223
|
+
attr_writer :format_international
|
|
224
|
+
|
|
225
|
+
# Phone number in national format (e.g., (234) 567-890)
|
|
226
|
+
sig { returns(T.nilable(String)) }
|
|
227
|
+
attr_reader :format_national
|
|
228
|
+
|
|
229
|
+
sig { params(format_national: String).void }
|
|
230
|
+
attr_writer :format_national
|
|
231
|
+
|
|
232
|
+
# Phone number in RFC 3966 format (e.g., tel:+1-234-567-890)
|
|
233
|
+
sig { returns(T.nilable(String)) }
|
|
234
|
+
attr_reader :format_rfc
|
|
235
|
+
|
|
236
|
+
sig { params(format_rfc: String).void }
|
|
237
|
+
attr_writer :format_rfc
|
|
238
|
+
|
|
239
|
+
# Always false. Contacts are no longer shared or inherited between sender profiles
|
|
240
|
+
# — a profile sees only the contacts it owns. Retained so existing v3 clients
|
|
241
|
+
# reading is_inherited keep deserializing; it carries no information.
|
|
242
|
+
sig { returns(T.nilable(T::Boolean)) }
|
|
243
|
+
attr_reader :is_inherited
|
|
244
|
+
|
|
245
|
+
sig { params(is_inherited: T::Boolean).void }
|
|
246
|
+
attr_writer :is_inherited
|
|
247
|
+
|
|
248
|
+
# Whether the contact has opted out of messaging. Single source of truth — opt-out
|
|
249
|
+
# is per-contact, not per-channel.
|
|
250
|
+
sig { returns(T.nilable(T::Boolean)) }
|
|
251
|
+
attr_reader :opt_out
|
|
252
|
+
|
|
253
|
+
sig { params(opt_out: T::Boolean).void }
|
|
254
|
+
attr_writer :opt_out
|
|
255
|
+
|
|
256
|
+
# Phone number in original format
|
|
257
|
+
sig { returns(T.nilable(String)) }
|
|
258
|
+
attr_reader :phone_number
|
|
259
|
+
|
|
260
|
+
sig { params(phone_number: String).void }
|
|
261
|
+
attr_writer :phone_number
|
|
262
|
+
|
|
263
|
+
# ISO 3166-1 alpha-2 country code (e.g., US, CA, GB)
|
|
264
|
+
sig { returns(T.nilable(String)) }
|
|
265
|
+
attr_reader :region_code
|
|
266
|
+
|
|
267
|
+
sig { params(region_code: String).void }
|
|
268
|
+
attr_writer :region_code
|
|
269
|
+
|
|
270
|
+
# When the contact was last updated
|
|
271
|
+
sig { returns(T.nilable(Time)) }
|
|
272
|
+
attr_accessor :updated_at
|
|
273
|
+
|
|
274
|
+
# Contact response for v3 API Uses snake_case for JSON property names
|
|
275
|
+
sig do
|
|
276
|
+
params(
|
|
277
|
+
id: String,
|
|
278
|
+
available_channels: String,
|
|
279
|
+
country_code: String,
|
|
280
|
+
created_at: Time,
|
|
281
|
+
customer_id: String,
|
|
282
|
+
default_channel: String,
|
|
283
|
+
format_e164: String,
|
|
284
|
+
format_international: String,
|
|
285
|
+
format_national: String,
|
|
286
|
+
format_rfc: String,
|
|
287
|
+
is_inherited: T::Boolean,
|
|
288
|
+
opt_out: T::Boolean,
|
|
289
|
+
phone_number: String,
|
|
290
|
+
region_code: String,
|
|
291
|
+
updated_at: T.nilable(Time)
|
|
292
|
+
).returns(T.attached_class)
|
|
293
|
+
end
|
|
294
|
+
def self.new(
|
|
295
|
+
# Unique identifier for the contact
|
|
296
|
+
id: nil,
|
|
297
|
+
# Comma-separated list of available messaging channels (e.g., "sms,whatsapp")
|
|
298
|
+
available_channels: nil,
|
|
299
|
+
# Country calling code (e.g., 1 for US/Canada)
|
|
300
|
+
country_code: nil,
|
|
301
|
+
# When the contact was created
|
|
302
|
+
created_at: nil,
|
|
303
|
+
# Which customer owns this — the key's own, or the profile named in x-profile-id.
|
|
304
|
+
# Says whose resource this is, which the resource's own id does not.
|
|
305
|
+
customer_id: nil,
|
|
306
|
+
# Default messaging channel to use (e.g., "sms" or "whatsapp")
|
|
307
|
+
default_channel: nil,
|
|
308
|
+
# Phone number in E.164 format (e.g., +1234567890)
|
|
309
|
+
format_e164: nil,
|
|
310
|
+
# Phone number in international format (e.g., +1 234-567-890)
|
|
311
|
+
format_international: nil,
|
|
312
|
+
# Phone number in national format (e.g., (234) 567-890)
|
|
313
|
+
format_national: nil,
|
|
314
|
+
# Phone number in RFC 3966 format (e.g., tel:+1-234-567-890)
|
|
315
|
+
format_rfc: nil,
|
|
316
|
+
# Always false. Contacts are no longer shared or inherited between sender profiles
|
|
317
|
+
# — a profile sees only the contacts it owns. Retained so existing v3 clients
|
|
318
|
+
# reading is_inherited keep deserializing; it carries no information.
|
|
319
|
+
is_inherited: nil,
|
|
320
|
+
# Whether the contact has opted out of messaging. Single source of truth — opt-out
|
|
321
|
+
# is per-contact, not per-channel.
|
|
322
|
+
opt_out: nil,
|
|
323
|
+
# Phone number in original format
|
|
324
|
+
phone_number: nil,
|
|
325
|
+
# ISO 3166-1 alpha-2 country code (e.g., US, CA, GB)
|
|
326
|
+
region_code: nil,
|
|
327
|
+
# When the contact was last updated
|
|
328
|
+
updated_at: nil
|
|
329
|
+
)
|
|
330
|
+
end
|
|
331
|
+
|
|
332
|
+
sig do
|
|
333
|
+
override.returns(
|
|
334
|
+
{
|
|
335
|
+
id: String,
|
|
336
|
+
available_channels: String,
|
|
337
|
+
country_code: String,
|
|
338
|
+
created_at: Time,
|
|
339
|
+
customer_id: String,
|
|
340
|
+
default_channel: String,
|
|
341
|
+
format_e164: String,
|
|
342
|
+
format_international: String,
|
|
343
|
+
format_national: String,
|
|
344
|
+
format_rfc: String,
|
|
345
|
+
is_inherited: T::Boolean,
|
|
346
|
+
opt_out: T::Boolean,
|
|
347
|
+
phone_number: String,
|
|
348
|
+
region_code: String,
|
|
349
|
+
updated_at: T.nilable(Time)
|
|
350
|
+
}
|
|
351
|
+
)
|
|
352
|
+
end
|
|
353
|
+
def to_hash
|
|
354
|
+
end
|
|
355
|
+
end
|
|
356
|
+
|
|
357
|
+
class Pagination < Sentdm::Internal::Type::BaseModel
|
|
358
|
+
OrHash =
|
|
359
|
+
T.type_alias do
|
|
360
|
+
T.any(
|
|
361
|
+
Sentdm::Models::ContactListResponse::Data::Pagination,
|
|
362
|
+
Sentdm::Internal::AnyHash
|
|
363
|
+
)
|
|
364
|
+
end
|
|
365
|
+
|
|
366
|
+
# Cursor-based pagination. Never populated — see Cursors.
|
|
367
|
+
sig do
|
|
368
|
+
returns(
|
|
369
|
+
T.nilable(
|
|
370
|
+
Sentdm::Models::ContactListResponse::Data::Pagination::Cursors
|
|
371
|
+
)
|
|
372
|
+
)
|
|
373
|
+
end
|
|
374
|
+
attr_reader :cursors
|
|
375
|
+
|
|
376
|
+
sig do
|
|
377
|
+
params(
|
|
378
|
+
cursors:
|
|
379
|
+
T.nilable(
|
|
380
|
+
Sentdm::Models::ContactListResponse::Data::Pagination::Cursors::OrHash
|
|
381
|
+
)
|
|
382
|
+
).void
|
|
383
|
+
end
|
|
384
|
+
attr_writer :cursors
|
|
385
|
+
|
|
386
|
+
# Whether there are more pages after this one
|
|
387
|
+
sig { returns(T.nilable(T::Boolean)) }
|
|
388
|
+
attr_reader :has_more
|
|
389
|
+
|
|
390
|
+
sig { params(has_more: T::Boolean).void }
|
|
391
|
+
attr_writer :has_more
|
|
392
|
+
|
|
393
|
+
# Current page number (1-indexed)
|
|
394
|
+
sig { returns(T.nilable(Integer)) }
|
|
395
|
+
attr_reader :page
|
|
396
|
+
|
|
397
|
+
sig { params(page: Integer).void }
|
|
398
|
+
attr_writer :page
|
|
399
|
+
|
|
400
|
+
# Number of items per page
|
|
401
|
+
sig { returns(T.nilable(Integer)) }
|
|
402
|
+
attr_reader :page_size
|
|
403
|
+
|
|
404
|
+
sig { params(page_size: Integer).void }
|
|
405
|
+
attr_writer :page_size
|
|
406
|
+
|
|
407
|
+
# Total number of items across all pages
|
|
408
|
+
sig { returns(T.nilable(Integer)) }
|
|
409
|
+
attr_reader :total_count
|
|
410
|
+
|
|
411
|
+
sig { params(total_count: Integer).void }
|
|
412
|
+
attr_writer :total_count
|
|
413
|
+
|
|
414
|
+
# Total number of pages
|
|
415
|
+
sig { returns(T.nilable(Integer)) }
|
|
416
|
+
attr_reader :total_pages
|
|
417
|
+
|
|
418
|
+
sig { params(total_pages: Integer).void }
|
|
419
|
+
attr_writer :total_pages
|
|
420
|
+
|
|
421
|
+
# Pagination metadata for list responses
|
|
422
|
+
sig do
|
|
423
|
+
params(
|
|
424
|
+
cursors:
|
|
425
|
+
T.nilable(
|
|
426
|
+
Sentdm::Models::ContactListResponse::Data::Pagination::Cursors::OrHash
|
|
427
|
+
),
|
|
428
|
+
has_more: T::Boolean,
|
|
429
|
+
page: Integer,
|
|
430
|
+
page_size: Integer,
|
|
431
|
+
total_count: Integer,
|
|
432
|
+
total_pages: Integer
|
|
433
|
+
).returns(T.attached_class)
|
|
434
|
+
end
|
|
435
|
+
def self.new(
|
|
436
|
+
# Cursor-based pagination. Never populated — see Cursors.
|
|
437
|
+
cursors: nil,
|
|
438
|
+
# Whether there are more pages after this one
|
|
439
|
+
has_more: nil,
|
|
440
|
+
# Current page number (1-indexed)
|
|
441
|
+
page: nil,
|
|
442
|
+
# Number of items per page
|
|
443
|
+
page_size: nil,
|
|
444
|
+
# Total number of items across all pages
|
|
445
|
+
total_count: nil,
|
|
446
|
+
# Total number of pages
|
|
447
|
+
total_pages: nil
|
|
448
|
+
)
|
|
449
|
+
end
|
|
450
|
+
|
|
451
|
+
sig do
|
|
452
|
+
override.returns(
|
|
453
|
+
{
|
|
454
|
+
cursors:
|
|
455
|
+
T.nilable(
|
|
456
|
+
Sentdm::Models::ContactListResponse::Data::Pagination::Cursors
|
|
457
|
+
),
|
|
458
|
+
has_more: T::Boolean,
|
|
459
|
+
page: Integer,
|
|
460
|
+
page_size: Integer,
|
|
461
|
+
total_count: Integer,
|
|
462
|
+
total_pages: Integer
|
|
463
|
+
}
|
|
464
|
+
)
|
|
465
|
+
end
|
|
466
|
+
def to_hash
|
|
467
|
+
end
|
|
468
|
+
|
|
469
|
+
class Cursors < Sentdm::Internal::Type::BaseModel
|
|
470
|
+
OrHash =
|
|
471
|
+
T.type_alias do
|
|
472
|
+
T.any(
|
|
473
|
+
Sentdm::Models::ContactListResponse::Data::Pagination::Cursors,
|
|
474
|
+
Sentdm::Internal::AnyHash
|
|
475
|
+
)
|
|
476
|
+
end
|
|
477
|
+
|
|
478
|
+
# Cursor to fetch the next page.
|
|
479
|
+
sig { returns(T.nilable(String)) }
|
|
480
|
+
attr_accessor :after
|
|
481
|
+
|
|
482
|
+
# Cursor to fetch the previous page.
|
|
483
|
+
sig { returns(T.nilable(String)) }
|
|
484
|
+
attr_accessor :before
|
|
485
|
+
|
|
486
|
+
# Cursor-based pagination. Never populated — see Cursors.
|
|
487
|
+
sig do
|
|
488
|
+
params(
|
|
489
|
+
after: T.nilable(String),
|
|
490
|
+
before: T.nilable(String)
|
|
491
|
+
).returns(T.attached_class)
|
|
492
|
+
end
|
|
493
|
+
def self.new(
|
|
494
|
+
# Cursor to fetch the next page.
|
|
495
|
+
after: nil,
|
|
496
|
+
# Cursor to fetch the previous page.
|
|
497
|
+
before: nil
|
|
498
|
+
)
|
|
499
|
+
end
|
|
500
|
+
|
|
501
|
+
sig do
|
|
502
|
+
override.returns(
|
|
503
|
+
{ after: T.nilable(String), before: T.nilable(String) }
|
|
504
|
+
)
|
|
505
|
+
end
|
|
506
|
+
def to_hash
|
|
507
|
+
end
|
|
508
|
+
end
|
|
509
|
+
end
|
|
510
|
+
end
|
|
511
|
+
|
|
512
|
+
class Error < Sentdm::Internal::Type::BaseModel
|
|
513
|
+
OrHash =
|
|
514
|
+
T.type_alias do
|
|
515
|
+
T.any(
|
|
516
|
+
Sentdm::Models::ContactListResponse::Error,
|
|
517
|
+
Sentdm::Internal::AnyHash
|
|
518
|
+
)
|
|
519
|
+
end
|
|
520
|
+
|
|
521
|
+
# Machine-readable error code (e.g., "RESOURCE_001")
|
|
522
|
+
sig { returns(T.nilable(String)) }
|
|
523
|
+
attr_reader :code
|
|
524
|
+
|
|
525
|
+
sig { params(code: String).void }
|
|
526
|
+
attr_writer :code
|
|
527
|
+
|
|
528
|
+
# Additional validation error details (field-level errors)
|
|
529
|
+
sig { returns(T.nilable(T::Hash[Symbol, T::Array[String]])) }
|
|
530
|
+
attr_accessor :details
|
|
531
|
+
|
|
532
|
+
# URL to documentation about this error
|
|
533
|
+
sig { returns(T.nilable(String)) }
|
|
534
|
+
attr_accessor :doc_url
|
|
535
|
+
|
|
536
|
+
# Human-readable error message
|
|
537
|
+
sig { returns(T.nilable(String)) }
|
|
538
|
+
attr_reader :message
|
|
539
|
+
|
|
540
|
+
sig { params(message: String).void }
|
|
541
|
+
attr_writer :message
|
|
542
|
+
|
|
543
|
+
# Error information
|
|
544
|
+
sig do
|
|
545
|
+
params(
|
|
546
|
+
code: String,
|
|
547
|
+
details: T.nilable(T::Hash[Symbol, T::Array[String]]),
|
|
548
|
+
doc_url: T.nilable(String),
|
|
549
|
+
message: String
|
|
550
|
+
).returns(T.attached_class)
|
|
551
|
+
end
|
|
552
|
+
def self.new(
|
|
553
|
+
# Machine-readable error code (e.g., "RESOURCE_001")
|
|
554
|
+
code: nil,
|
|
555
|
+
# Additional validation error details (field-level errors)
|
|
556
|
+
details: nil,
|
|
557
|
+
# URL to documentation about this error
|
|
558
|
+
doc_url: nil,
|
|
559
|
+
# Human-readable error message
|
|
560
|
+
message: nil
|
|
561
|
+
)
|
|
562
|
+
end
|
|
563
|
+
|
|
564
|
+
sig do
|
|
565
|
+
override.returns(
|
|
566
|
+
{
|
|
567
|
+
code: String,
|
|
568
|
+
details: T.nilable(T::Hash[Symbol, T::Array[String]]),
|
|
569
|
+
doc_url: T.nilable(String),
|
|
570
|
+
message: String
|
|
120
571
|
}
|
|
121
572
|
)
|
|
122
573
|
end
|
|
123
574
|
def to_hash
|
|
124
575
|
end
|
|
125
576
|
end
|
|
577
|
+
|
|
578
|
+
class Meta < Sentdm::Internal::Type::BaseModel
|
|
579
|
+
OrHash =
|
|
580
|
+
T.type_alias do
|
|
581
|
+
T.any(
|
|
582
|
+
Sentdm::Models::ContactListResponse::Meta,
|
|
583
|
+
Sentdm::Internal::AnyHash
|
|
584
|
+
)
|
|
585
|
+
end
|
|
586
|
+
|
|
587
|
+
# Unique identifier for this request (for tracing and support)
|
|
588
|
+
sig { returns(T.nilable(String)) }
|
|
589
|
+
attr_reader :request_id
|
|
590
|
+
|
|
591
|
+
sig { params(request_id: String).void }
|
|
592
|
+
attr_writer :request_id
|
|
593
|
+
|
|
594
|
+
# Server timestamp when the response was generated
|
|
595
|
+
sig { returns(T.nilable(Time)) }
|
|
596
|
+
attr_reader :timestamp
|
|
597
|
+
|
|
598
|
+
sig { params(timestamp: Time).void }
|
|
599
|
+
attr_writer :timestamp
|
|
600
|
+
|
|
601
|
+
# API version used for this request
|
|
602
|
+
sig { returns(T.nilable(String)) }
|
|
603
|
+
attr_reader :version
|
|
604
|
+
|
|
605
|
+
sig { params(version: String).void }
|
|
606
|
+
attr_writer :version
|
|
607
|
+
|
|
608
|
+
# Request and response metadata
|
|
609
|
+
sig do
|
|
610
|
+
params(request_id: String, timestamp: Time, version: String).returns(
|
|
611
|
+
T.attached_class
|
|
612
|
+
)
|
|
613
|
+
end
|
|
614
|
+
def self.new(
|
|
615
|
+
# Unique identifier for this request (for tracing and support)
|
|
616
|
+
request_id: nil,
|
|
617
|
+
# Server timestamp when the response was generated
|
|
618
|
+
timestamp: nil,
|
|
619
|
+
# API version used for this request
|
|
620
|
+
version: nil
|
|
621
|
+
)
|
|
622
|
+
end
|
|
623
|
+
|
|
624
|
+
sig do
|
|
625
|
+
override.returns(
|
|
626
|
+
{ request_id: String, timestamp: Time, version: String }
|
|
627
|
+
)
|
|
628
|
+
end
|
|
629
|
+
def to_hash
|
|
630
|
+
end
|
|
631
|
+
end
|
|
126
632
|
end
|
|
127
633
|
end
|
|
128
634
|
end
|