sentdm 0.3.1 → 0.5.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 +16 -0
- data/README.md +1 -27
- data/lib/sentdm/client.rb +5 -9
- data/lib/sentdm/internal/type/base_model.rb +5 -5
- data/lib/sentdm/models/api_meta.rb +1 -9
- data/lib/sentdm/models/{api_response_contact.rb → api_response_of_contact.rb} +4 -4
- data/lib/sentdm/models/base_dto.rb +30 -0
- data/lib/sentdm/models/billing_contact_info.rb +47 -0
- data/lib/sentdm/models/brands_brand_data.rb +274 -0
- data/lib/sentdm/models/contact_create_params.rb +13 -6
- data/lib/sentdm/models/contact_delete_params.rb +9 -2
- data/lib/sentdm/models/contact_list_params.rb +10 -2
- data/lib/sentdm/models/contact_list_response.rb +3 -3
- data/lib/sentdm/models/{contact.rb → contact_response.rb} +1 -1
- data/lib/sentdm/models/contact_retrieve_params.rb +7 -1
- data/lib/sentdm/models/contact_update_params.rb +13 -6
- data/lib/sentdm/models/me_retrieve_params.rb +7 -1
- data/lib/sentdm/models/me_retrieve_response.rb +152 -7
- data/lib/sentdm/models/message_retrieve_activities_params.rb +7 -1
- data/lib/sentdm/models/message_retrieve_activities_response.rb +19 -5
- data/lib/sentdm/models/message_retrieve_status_params.rb +7 -1
- data/lib/sentdm/models/message_retrieve_status_response.rb +8 -1
- data/lib/sentdm/models/message_send_params.rb +17 -10
- data/lib/sentdm/models/mutation_request_base.rb +20 -0
- data/lib/sentdm/models/{lookup_retrieve_phone_info_params.rb → number_lookup_params.rb} +9 -3
- data/lib/sentdm/models/{lookup_retrieve_phone_info_response.rb → number_lookup_response.rb} +21 -21
- data/lib/sentdm/models/payment_details.rb +44 -0
- data/lib/sentdm/models/{profile_complete_params.rb → profile_complete_setup_params.rb} +16 -9
- data/lib/sentdm/models/{profile_complete_response.rb → profile_complete_setup_response.rb} +1 -1
- data/lib/sentdm/models/profile_create_params.rb +111 -11
- data/lib/sentdm/models/profile_delete_params.rb +18 -18
- data/lib/sentdm/models/profile_detail.rb +483 -68
- data/lib/sentdm/models/profile_list_params.rb +7 -1
- data/lib/sentdm/models/profile_retrieve_params.rb +7 -1
- data/lib/sentdm/models/profile_update_params.rb +60 -22
- data/lib/sentdm/models/{brands/api_response_tcr_campaign_with_use_cases.rb → profiles/api_response_of_tcr_campaign_with_use_cases.rb} +6 -6
- data/lib/sentdm/models/profiles/campaign_create_params.rb +57 -0
- data/lib/sentdm/models/{brands → profiles}/campaign_data.rb +28 -7
- data/lib/sentdm/models/profiles/campaign_delete_params.rb +50 -0
- data/lib/sentdm/models/profiles/campaign_list_params.rb +28 -0
- data/lib/sentdm/models/{brands → profiles}/campaign_list_response.rb +5 -5
- data/lib/sentdm/models/profiles/campaign_update_params.rb +64 -0
- data/lib/sentdm/models/{brands → profiles}/messaging_use_case_us.rb +1 -1
- data/lib/sentdm/models/{brands → profiles}/tcr_campaign_with_use_cases.rb +15 -15
- data/lib/sentdm/models/template_create_params.rb +17 -10
- data/lib/sentdm/models/template_definition.rb +255 -15
- data/lib/sentdm/models/template_delete_params.rb +13 -6
- data/lib/sentdm/models/template_list_params.rb +18 -2
- data/lib/sentdm/models/template_retrieve_params.rb +7 -1
- data/lib/sentdm/models/template_update_params.rb +17 -10
- data/lib/sentdm/models/template_variable.rb +7 -1
- data/lib/sentdm/models/user_invite_params.rb +13 -6
- data/lib/sentdm/models/user_list_params.rb +7 -1
- data/lib/sentdm/models/user_remove_params.rb +17 -17
- data/lib/sentdm/models/user_retrieve_params.rb +7 -1
- data/lib/sentdm/models/user_update_role_params.rb +15 -16
- data/lib/sentdm/models/webhook_create_params.rb +13 -6
- data/lib/sentdm/models/webhook_delete_params.rb +7 -1
- data/lib/sentdm/models/webhook_list_event_types_params.rb +7 -1
- data/lib/sentdm/models/webhook_list_events_params.rb +7 -1
- data/lib/sentdm/models/webhook_list_params.rb +7 -1
- data/lib/sentdm/models/webhook_retrieve_params.rb +7 -1
- data/lib/sentdm/models/webhook_rotate_secret_params.rb +8 -2
- data/lib/sentdm/models/webhook_test_params.rb +13 -6
- data/lib/sentdm/models/webhook_toggle_status_params.rb +13 -6
- data/lib/sentdm/models/webhook_update_params.rb +13 -6
- data/lib/sentdm/models.rb +14 -38
- data/lib/sentdm/resources/contacts.rb +49 -26
- data/lib/sentdm/resources/me.rb +24 -5
- data/lib/sentdm/resources/messages.rb +24 -8
- data/lib/sentdm/resources/numbers.rb +44 -0
- data/lib/sentdm/resources/profiles/campaigns.rb +160 -0
- data/lib/sentdm/resources/profiles.rb +125 -36
- data/lib/sentdm/resources/templates.rb +47 -24
- data/lib/sentdm/resources/users.rb +40 -23
- data/lib/sentdm/resources/webhooks.rb +92 -34
- data/lib/sentdm/version.rb +1 -1
- data/lib/sentdm.rb +22 -35
- data/rbi/sentdm/client.rbi +4 -7
- data/rbi/sentdm/models/api_meta.rbi +4 -18
- data/rbi/sentdm/models/{api_response_brand_with_kyc.rbi → api_response_of_contact.rbi} +6 -6
- data/rbi/sentdm/models/base_dto.rbi +49 -0
- data/rbi/sentdm/models/billing_contact_info.rbi +65 -0
- data/rbi/sentdm/models/brands_brand_data.rbi +406 -0
- data/rbi/sentdm/models/contact_create_params.rbi +19 -10
- data/rbi/sentdm/models/contact_delete_params.rbi +10 -1
- data/rbi/sentdm/models/contact_list_params.rbi +11 -0
- data/rbi/sentdm/models/contact_list_response.rbi +4 -4
- data/rbi/sentdm/models/{contact.rbi → contact_response.rbi} +4 -2
- data/rbi/sentdm/models/contact_retrieve_params.rbi +13 -2
- data/rbi/sentdm/models/contact_update_params.rbi +19 -10
- data/rbi/sentdm/models/me_retrieve_params.rbi +16 -5
- data/rbi/sentdm/models/me_retrieve_response.rbi +316 -16
- data/rbi/sentdm/models/message_retrieve_activities_params.rbi +13 -2
- data/rbi/sentdm/models/message_retrieve_activities_response.rbi +18 -6
- data/rbi/sentdm/models/message_retrieve_status_params.rbi +13 -2
- data/rbi/sentdm/models/message_retrieve_status_response.rbi +6 -0
- data/rbi/sentdm/models/message_send_params.rbi +22 -13
- data/rbi/sentdm/models/mutation_request_base.rbi +32 -0
- data/rbi/sentdm/models/{lookup_retrieve_phone_info_params.rbi → number_lookup_params.rbi} +15 -7
- data/rbi/sentdm/models/{lookup_retrieve_phone_info_response.rbi → number_lookup_response.rbi} +16 -33
- data/rbi/sentdm/models/payment_details.rbi +59 -0
- data/rbi/sentdm/models/{profile_complete_params.rbi → profile_complete_setup_params.rbi} +21 -12
- data/rbi/sentdm/models/{profile_complete_response.rbi → profile_complete_setup_response.rbi} +1 -1
- data/rbi/sentdm/models/profile_create_params.rbi +189 -15
- data/rbi/sentdm/models/profile_delete_params.rbi +36 -24
- data/rbi/sentdm/models/profile_detail.rbi +725 -111
- data/rbi/sentdm/models/profile_list_params.rbi +16 -5
- data/rbi/sentdm/models/profile_retrieve_params.rbi +13 -2
- data/rbi/sentdm/models/profile_update_params.rbi +97 -30
- data/rbi/sentdm/models/{brands/api_response_tcr_campaign_with_use_cases.rbi → profiles/api_response_of_tcr_campaign_with_use_cases.rbi} +7 -7
- data/rbi/sentdm/models/{brands → profiles}/campaign_create_params.rbi +29 -20
- data/rbi/sentdm/models/{brands → profiles}/campaign_data.rbi +51 -16
- data/rbi/sentdm/models/{brands → profiles}/campaign_delete_params.rbi +23 -12
- data/rbi/sentdm/models/profiles/campaign_list_params.rbi +51 -0
- data/rbi/sentdm/models/{brands → profiles}/campaign_list_response.rbi +7 -5
- data/rbi/sentdm/models/{brands → profiles}/campaign_update_params.rbi +29 -20
- data/rbi/sentdm/models/{brands → profiles}/messaging_use_case_us.rbi +20 -16
- data/rbi/sentdm/models/{brands → profiles}/tcr_campaign_with_use_cases.rbi +35 -29
- data/rbi/sentdm/models/template_create_params.rbi +22 -13
- data/rbi/sentdm/models/template_definition.rbi +405 -74
- data/rbi/sentdm/models/template_delete_params.rbi +19 -10
- data/rbi/sentdm/models/template_list_params.rbi +19 -0
- data/rbi/sentdm/models/template_retrieve_params.rbi +13 -2
- data/rbi/sentdm/models/template_update_params.rbi +22 -13
- data/rbi/sentdm/models/template_variable.rbi +6 -0
- data/rbi/sentdm/models/user_invite_params.rbi +19 -10
- data/rbi/sentdm/models/user_list_params.rbi +16 -5
- data/rbi/sentdm/models/user_remove_params.rbi +35 -23
- data/rbi/sentdm/models/user_retrieve_params.rbi +13 -2
- data/rbi/sentdm/models/user_update_role_params.rbi +23 -25
- data/rbi/sentdm/models/webhook_create_params.rbi +19 -10
- data/rbi/sentdm/models/webhook_delete_params.rbi +13 -2
- data/rbi/sentdm/models/webhook_list_event_types_params.rbi +16 -5
- data/rbi/sentdm/models/webhook_list_events_params.rbi +16 -1
- data/rbi/sentdm/models/webhook_list_params.rbi +9 -0
- data/rbi/sentdm/models/webhook_retrieve_params.rbi +13 -2
- data/rbi/sentdm/models/webhook_rotate_secret_params.rbi +16 -2
- data/rbi/sentdm/models/webhook_test_params.rbi +19 -10
- data/rbi/sentdm/models/webhook_toggle_status_params.rbi +19 -10
- data/rbi/sentdm/models/webhook_update_params.rbi +19 -10
- data/rbi/sentdm/models.rbi +14 -38
- data/rbi/sentdm/resources/contacts.rbi +40 -15
- data/rbi/sentdm/resources/me.rbi +25 -7
- data/rbi/sentdm/resources/messages.rbi +17 -4
- data/rbi/sentdm/resources/numbers.rbi +32 -0
- data/rbi/sentdm/resources/profiles/campaigns.rbi +127 -0
- data/rbi/sentdm/resources/profiles.rbi +179 -39
- data/rbi/sentdm/resources/templates.rbi +47 -19
- data/rbi/sentdm/resources/users.rbi +47 -25
- data/rbi/sentdm/resources/webhooks.rbi +92 -20
- data/sig/sentdm/client.rbs +2 -4
- data/sig/sentdm/models/api_meta.rbs +2 -16
- data/sig/sentdm/models/{api_response_contact.rbs → api_response_of_contact.rbs} +6 -6
- data/sig/sentdm/models/base_dto.rbs +25 -0
- data/sig/sentdm/models/billing_contact_info.rbs +30 -0
- data/sig/sentdm/models/brands_brand_data.rbs +210 -0
- data/sig/sentdm/models/contact_create_params.rbs +16 -5
- data/sig/sentdm/models/contact_delete_params.rbs +12 -2
- data/sig/sentdm/models/contact_list_params.rbs +8 -1
- data/sig/sentdm/models/contact_list_response.rbs +7 -5
- data/sig/sentdm/models/{contact.rbs → contact_response.rbs} +2 -2
- data/sig/sentdm/models/contact_retrieve_params.rbs +12 -2
- data/sig/sentdm/models/contact_update_params.rbs +13 -6
- data/sig/sentdm/models/me_retrieve_params.rbs +14 -3
- data/sig/sentdm/models/me_retrieve_response.rbs +134 -7
- data/sig/sentdm/models/message_retrieve_activities_params.rbs +12 -2
- data/sig/sentdm/models/message_retrieve_activities_response.rbs +9 -4
- data/sig/sentdm/models/message_retrieve_status_params.rbs +12 -2
- data/sig/sentdm/models/message_retrieve_status_response.rbs +5 -0
- data/sig/sentdm/models/message_send_params.rbs +15 -8
- data/sig/sentdm/models/mutation_request_base.rbs +15 -0
- data/sig/sentdm/models/{lookup_retrieve_phone_info_params.rbs → number_lookup_params.rbs} +10 -3
- data/sig/sentdm/models/{lookup_retrieve_phone_info_response.rbs → number_lookup_response.rbs} +14 -16
- data/sig/sentdm/models/payment_details.rbs +30 -0
- data/sig/sentdm/models/{profile_complete_params.rbs → profile_complete_setup_params.rbs} +15 -8
- data/sig/sentdm/models/profile_complete_setup_response.rbs +5 -0
- data/sig/sentdm/models/profile_create_params.rbs +57 -7
- data/sig/sentdm/models/profile_delete_params.rbs +23 -13
- data/sig/sentdm/models/profile_detail.rbs +374 -68
- data/sig/sentdm/models/profile_list_params.rbs +14 -3
- data/sig/sentdm/models/profile_retrieve_params.rbs +8 -1
- data/sig/sentdm/models/profile_update_params.rbs +32 -17
- data/sig/sentdm/models/{brands/api_response_tcr_campaign_with_use_cases.rbs → profiles/api_response_of_tcr_campaign_with_use_cases.rbs} +7 -7
- data/sig/sentdm/models/profiles/campaign_create_params.rbs +54 -0
- data/sig/sentdm/models/{brands → profiles}/campaign_data.rbs +27 -5
- data/sig/sentdm/models/{brands → profiles}/campaign_delete_params.rbs +17 -10
- data/sig/sentdm/models/{brands → profiles}/campaign_list_params.rbs +12 -5
- data/sig/sentdm/models/{brands → profiles}/campaign_list_response.rbs +5 -5
- data/sig/sentdm/models/{brands → profiles}/campaign_update_params.rbs +22 -15
- data/sig/sentdm/models/{brands → profiles}/messaging_use_case_us.rbs +2 -2
- data/sig/sentdm/models/{brands → profiles}/tcr_campaign_with_use_cases.rbs +29 -29
- data/sig/sentdm/models/template_create_params.rbs +15 -8
- data/sig/sentdm/models/template_definition.rbs +233 -20
- data/sig/sentdm/models/template_delete_params.rbs +16 -5
- data/sig/sentdm/models/template_list_params.rbs +13 -1
- data/sig/sentdm/models/template_retrieve_params.rbs +12 -2
- data/sig/sentdm/models/template_update_params.rbs +15 -8
- data/sig/sentdm/models/template_variable.rbs +5 -0
- data/sig/sentdm/models/user_invite_params.rbs +13 -6
- data/sig/sentdm/models/user_list_params.rbs +14 -3
- data/sig/sentdm/models/user_remove_params.rbs +23 -13
- data/sig/sentdm/models/user_retrieve_params.rbs +8 -1
- data/sig/sentdm/models/user_update_role_params.rbs +17 -17
- data/sig/sentdm/models/webhook_create_params.rbs +13 -6
- data/sig/sentdm/models/webhook_delete_params.rbs +12 -2
- data/sig/sentdm/models/webhook_list_event_types_params.rbs +13 -3
- data/sig/sentdm/models/webhook_list_events_params.rbs +13 -1
- data/sig/sentdm/models/webhook_list_params.rbs +13 -1
- data/sig/sentdm/models/webhook_retrieve_params.rbs +12 -2
- data/sig/sentdm/models/webhook_rotate_secret_params.rbs +9 -2
- data/sig/sentdm/models/webhook_test_params.rbs +13 -6
- data/sig/sentdm/models/webhook_toggle_status_params.rbs +17 -5
- data/sig/sentdm/models/webhook_update_params.rbs +13 -6
- data/sig/sentdm/models.rbs +14 -32
- data/sig/sentdm/resources/contacts.rbs +10 -5
- data/sig/sentdm/resources/me.rbs +1 -0
- data/sig/sentdm/resources/messages.rbs +4 -1
- data/sig/sentdm/resources/{lookup.rbs → numbers.rbs} +4 -3
- data/sig/sentdm/resources/profiles/campaigns.rbs +42 -0
- data/sig/sentdm/resources/profiles.rbs +22 -9
- data/sig/sentdm/resources/templates.rbs +9 -3
- data/sig/sentdm/resources/users.rbs +10 -7
- data/sig/sentdm/resources/webhooks.rbs +18 -5
- metadata +67 -106
- data/lib/sentdm/models/api_response_brand_with_kyc.rb +0 -43
- data/lib/sentdm/models/brand_create_params.rb +0 -41
- data/lib/sentdm/models/brand_data.rb +0 -237
- data/lib/sentdm/models/brand_delete_params.rb +0 -34
- data/lib/sentdm/models/brand_list_params.rb +0 -14
- data/lib/sentdm/models/brand_list_response.rb +0 -43
- data/lib/sentdm/models/brand_update_params.rb +0 -48
- data/lib/sentdm/models/brand_with_kyc.rb +0 -335
- data/lib/sentdm/models/brands/base_dto.rb +0 -32
- data/lib/sentdm/models/brands/campaign_create_params.rb +0 -50
- data/lib/sentdm/models/brands/campaign_delete_params.rb +0 -43
- data/lib/sentdm/models/brands/campaign_list_params.rb +0 -22
- data/lib/sentdm/models/brands/campaign_update_params.rb +0 -57
- data/lib/sentdm/models/brands/sent_dm_services_endpoints_customer_ap_iv3_contracts_requests_campaigns_campaign_use_case_data.rb +0 -30
- data/lib/sentdm/models/mutation_request.rb +0 -20
- data/lib/sentdm/models/sent_dm_services_common_contracts_poc_os_authentication_config.rb +0 -34
- data/lib/sentdm/models/sent_dm_services_common_contracts_poc_os_template_body.rb +0 -40
- data/lib/sentdm/models/sent_dm_services_common_contracts_poc_os_template_button.rb +0 -38
- data/lib/sentdm/models/sent_dm_services_common_contracts_poc_os_template_button_props.rb +0 -81
- data/lib/sentdm/models/sent_dm_services_common_contracts_poc_os_template_footer.rb +0 -34
- data/lib/sentdm/models/sent_dm_services_common_contracts_poc_os_template_header.rb +0 -39
- data/lib/sentdm/resources/brands/campaigns.rb +0 -145
- data/lib/sentdm/resources/brands.rb +0 -130
- data/lib/sentdm/resources/lookup.rb +0 -35
- data/rbi/sentdm/models/api_response_contact.rbi +0 -74
- data/rbi/sentdm/models/brand_create_params.rbi +0 -68
- data/rbi/sentdm/models/brand_data.rbi +0 -266
- data/rbi/sentdm/models/brand_delete_params.rbi +0 -68
- data/rbi/sentdm/models/brand_list_params.rbi +0 -27
- data/rbi/sentdm/models/brand_list_response.rbi +0 -71
- data/rbi/sentdm/models/brand_update_params.rbi +0 -74
- data/rbi/sentdm/models/brand_with_kyc.rbi +0 -398
- data/rbi/sentdm/models/brands/base_dto.rbi +0 -53
- data/rbi/sentdm/models/brands/campaign_list_params.rbi +0 -37
- data/rbi/sentdm/models/brands/sent_dm_services_endpoints_customer_ap_iv3_contracts_requests_campaigns_campaign_use_case_data.rbi +0 -52
- data/rbi/sentdm/models/mutation_request.rbi +0 -32
- data/rbi/sentdm/models/sent_dm_services_common_contracts_poc_os_authentication_config.rbi +0 -56
- data/rbi/sentdm/models/sent_dm_services_common_contracts_poc_os_template_body.rbi +0 -76
- data/rbi/sentdm/models/sent_dm_services_common_contracts_poc_os_template_button.rbi +0 -79
- data/rbi/sentdm/models/sent_dm_services_common_contracts_poc_os_template_button_props.rbi +0 -104
- data/rbi/sentdm/models/sent_dm_services_common_contracts_poc_os_template_footer.rbi +0 -60
- data/rbi/sentdm/models/sent_dm_services_common_contracts_poc_os_template_header.rbi +0 -62
- data/rbi/sentdm/resources/brands/campaigns.rbi +0 -109
- data/rbi/sentdm/resources/brands.rbi +0 -95
- data/rbi/sentdm/resources/lookup.rbi +0 -24
- data/sig/sentdm/models/api_response_brand_with_kyc.rbs +0 -39
- data/sig/sentdm/models/brand_create_params.rbs +0 -36
- data/sig/sentdm/models/brand_data.rbs +0 -164
- data/sig/sentdm/models/brand_delete_params.rbs +0 -36
- data/sig/sentdm/models/brand_list_params.rbs +0 -14
- data/sig/sentdm/models/brand_list_response.rbs +0 -39
- data/sig/sentdm/models/brand_update_params.rbs +0 -45
- data/sig/sentdm/models/brand_with_kyc.rbs +0 -237
- data/sig/sentdm/models/brands/base_dto.rbs +0 -27
- data/sig/sentdm/models/brands/campaign_create_params.rbs +0 -47
- data/sig/sentdm/models/brands/sent_dm_services_endpoints_customer_ap_iv3_contracts_requests_campaigns_campaign_use_case_data.rbs +0 -27
- data/sig/sentdm/models/mutation_request.rbs +0 -15
- data/sig/sentdm/models/profile_complete_response.rbs +0 -5
- data/sig/sentdm/models/sent_dm_services_common_contracts_poc_os_authentication_config.rbs +0 -24
- data/sig/sentdm/models/sent_dm_services_common_contracts_poc_os_template_body.rbs +0 -30
- data/sig/sentdm/models/sent_dm_services_common_contracts_poc_os_template_button.rbs +0 -38
- data/sig/sentdm/models/sent_dm_services_common_contracts_poc_os_template_button_props.rbs +0 -75
- data/sig/sentdm/models/sent_dm_services_common_contracts_poc_os_template_footer.rbs +0 -32
- data/sig/sentdm/models/sent_dm_services_common_contracts_poc_os_template_header.rbs +0 -32
- data/sig/sentdm/resources/brands/campaigns.rbs +0 -38
- data/sig/sentdm/resources/brands.rbs +0 -34
|
@@ -13,6 +13,54 @@ module Sentdm
|
|
|
13
13
|
sig { params(id: String).void }
|
|
14
14
|
attr_writer :id
|
|
15
15
|
|
|
16
|
+
# Whether contacts are shared across profiles in the organization
|
|
17
|
+
sig { returns(T.nilable(T::Boolean)) }
|
|
18
|
+
attr_reader :allow_contact_sharing
|
|
19
|
+
|
|
20
|
+
sig { params(allow_contact_sharing: T::Boolean).void }
|
|
21
|
+
attr_writer :allow_contact_sharing
|
|
22
|
+
|
|
23
|
+
# Whether number changes are allowed during onboarding
|
|
24
|
+
sig { returns(T.nilable(T::Boolean)) }
|
|
25
|
+
attr_accessor :allow_number_change_during_onboarding
|
|
26
|
+
|
|
27
|
+
# Whether templates are shared across profiles in the organization
|
|
28
|
+
sig { returns(T.nilable(T::Boolean)) }
|
|
29
|
+
attr_reader :allow_template_sharing
|
|
30
|
+
|
|
31
|
+
sig { params(allow_template_sharing: T::Boolean).void }
|
|
32
|
+
attr_writer :allow_template_sharing
|
|
33
|
+
|
|
34
|
+
# Billing contact for this profile. Present when billing_model is "profile" or
|
|
35
|
+
# "profile_and_organization".
|
|
36
|
+
sig { returns(T.nilable(Sentdm::ProfileDetail::BillingContact)) }
|
|
37
|
+
attr_reader :billing_contact
|
|
38
|
+
|
|
39
|
+
sig do
|
|
40
|
+
params(
|
|
41
|
+
billing_contact:
|
|
42
|
+
T.nilable(Sentdm::ProfileDetail::BillingContact::OrHash)
|
|
43
|
+
).void
|
|
44
|
+
end
|
|
45
|
+
attr_writer :billing_contact
|
|
46
|
+
|
|
47
|
+
# Billing model: profile, organization, or profile_and_organization
|
|
48
|
+
sig { returns(T.nilable(String)) }
|
|
49
|
+
attr_reader :billing_model
|
|
50
|
+
|
|
51
|
+
sig { params(billing_model: String).void }
|
|
52
|
+
attr_writer :billing_model
|
|
53
|
+
|
|
54
|
+
# Brand associated with this profile. Null if no brand has been configured yet.
|
|
55
|
+
# Includes KYC information and TCR registration status.
|
|
56
|
+
sig { returns(T.nilable(Sentdm::ProfileDetail::Brand)) }
|
|
57
|
+
attr_reader :brand
|
|
58
|
+
|
|
59
|
+
sig do
|
|
60
|
+
params(brand: T.nilable(Sentdm::ProfileDetail::Brand::OrHash)).void
|
|
61
|
+
end
|
|
62
|
+
attr_writer :brand
|
|
63
|
+
|
|
16
64
|
# When the profile was created
|
|
17
65
|
sig { returns(T.nilable(Time)) }
|
|
18
66
|
attr_reader :created_at
|
|
@@ -32,6 +80,34 @@ module Sentdm
|
|
|
32
80
|
sig { returns(T.nilable(String)) }
|
|
33
81
|
attr_accessor :icon
|
|
34
82
|
|
|
83
|
+
# Whether this profile inherits contacts from the organization
|
|
84
|
+
sig { returns(T.nilable(T::Boolean)) }
|
|
85
|
+
attr_reader :inherit_contacts
|
|
86
|
+
|
|
87
|
+
sig { params(inherit_contacts: T::Boolean).void }
|
|
88
|
+
attr_writer :inherit_contacts
|
|
89
|
+
|
|
90
|
+
# Whether this profile inherits TCR brand from the organization
|
|
91
|
+
sig { returns(T.nilable(T::Boolean)) }
|
|
92
|
+
attr_reader :inherit_tcr_brand
|
|
93
|
+
|
|
94
|
+
sig { params(inherit_tcr_brand: T::Boolean).void }
|
|
95
|
+
attr_writer :inherit_tcr_brand
|
|
96
|
+
|
|
97
|
+
# Whether this profile inherits TCR campaign from the organization
|
|
98
|
+
sig { returns(T.nilable(T::Boolean)) }
|
|
99
|
+
attr_reader :inherit_tcr_campaign
|
|
100
|
+
|
|
101
|
+
sig { params(inherit_tcr_campaign: T::Boolean).void }
|
|
102
|
+
attr_writer :inherit_tcr_campaign
|
|
103
|
+
|
|
104
|
+
# Whether this profile inherits templates from the organization
|
|
105
|
+
sig { returns(T.nilable(T::Boolean)) }
|
|
106
|
+
attr_reader :inherit_templates
|
|
107
|
+
|
|
108
|
+
sig { params(inherit_templates: T::Boolean).void }
|
|
109
|
+
attr_writer :inherit_templates
|
|
110
|
+
|
|
35
111
|
# Profile name
|
|
36
112
|
sig { returns(T.nilable(String)) }
|
|
37
113
|
attr_reader :name
|
|
@@ -43,14 +119,20 @@ module Sentdm
|
|
|
43
119
|
sig { returns(T.nilable(String)) }
|
|
44
120
|
attr_accessor :organization_id
|
|
45
121
|
|
|
46
|
-
#
|
|
47
|
-
sig { returns(T.nilable(
|
|
48
|
-
|
|
122
|
+
# Direct SMS phone number
|
|
123
|
+
sig { returns(T.nilable(String)) }
|
|
124
|
+
attr_accessor :sending_phone_number
|
|
49
125
|
|
|
50
|
-
|
|
51
|
-
|
|
126
|
+
# Reference to another profile for SMS/Telnyx configuration
|
|
127
|
+
sig { returns(T.nilable(String)) }
|
|
128
|
+
attr_accessor :sending_phone_number_profile_id
|
|
52
129
|
|
|
53
|
-
#
|
|
130
|
+
# Reference to another profile for WhatsApp configuration
|
|
131
|
+
sig { returns(T.nilable(String)) }
|
|
132
|
+
attr_accessor :sending_whatsapp_number_profile_id
|
|
133
|
+
|
|
134
|
+
# Profile short name/abbreviation. 3–11 characters: letters, numbers, and spaces
|
|
135
|
+
# only, with at least one letter.
|
|
54
136
|
sig { returns(T.nilable(String)) }
|
|
55
137
|
attr_accessor :short_name
|
|
56
138
|
|
|
@@ -65,25 +147,63 @@ module Sentdm
|
|
|
65
147
|
sig { returns(T.nilable(Time)) }
|
|
66
148
|
attr_accessor :updated_at
|
|
67
149
|
|
|
150
|
+
# WhatsApp Business Account ID associated with this profile. Present whether the
|
|
151
|
+
# WABA is inherited from the organization or configured directly.
|
|
152
|
+
sig { returns(T.nilable(String)) }
|
|
153
|
+
attr_accessor :waba_id
|
|
154
|
+
|
|
155
|
+
# Direct WhatsApp phone number
|
|
156
|
+
sig { returns(T.nilable(String)) }
|
|
157
|
+
attr_accessor :whatsapp_phone_number
|
|
158
|
+
|
|
68
159
|
# Detailed profile response for v3 API
|
|
69
160
|
sig do
|
|
70
161
|
params(
|
|
71
162
|
id: String,
|
|
163
|
+
allow_contact_sharing: T::Boolean,
|
|
164
|
+
allow_number_change_during_onboarding: T.nilable(T::Boolean),
|
|
165
|
+
allow_template_sharing: T::Boolean,
|
|
166
|
+
billing_contact:
|
|
167
|
+
T.nilable(Sentdm::ProfileDetail::BillingContact::OrHash),
|
|
168
|
+
billing_model: String,
|
|
169
|
+
brand: T.nilable(Sentdm::ProfileDetail::Brand::OrHash),
|
|
72
170
|
created_at: Time,
|
|
73
171
|
description: T.nilable(String),
|
|
74
172
|
email: T.nilable(String),
|
|
75
173
|
icon: T.nilable(String),
|
|
174
|
+
inherit_contacts: T::Boolean,
|
|
175
|
+
inherit_tcr_brand: T::Boolean,
|
|
176
|
+
inherit_tcr_campaign: T::Boolean,
|
|
177
|
+
inherit_templates: T::Boolean,
|
|
76
178
|
name: String,
|
|
77
179
|
organization_id: T.nilable(String),
|
|
78
|
-
|
|
180
|
+
sending_phone_number: T.nilable(String),
|
|
181
|
+
sending_phone_number_profile_id: T.nilable(String),
|
|
182
|
+
sending_whatsapp_number_profile_id: T.nilable(String),
|
|
79
183
|
short_name: T.nilable(String),
|
|
80
184
|
status: String,
|
|
81
|
-
updated_at: T.nilable(Time)
|
|
185
|
+
updated_at: T.nilable(Time),
|
|
186
|
+
waba_id: T.nilable(String),
|
|
187
|
+
whatsapp_phone_number: T.nilable(String)
|
|
82
188
|
).returns(T.attached_class)
|
|
83
189
|
end
|
|
84
190
|
def self.new(
|
|
85
191
|
# Profile unique identifier
|
|
86
192
|
id: nil,
|
|
193
|
+
# Whether contacts are shared across profiles in the organization
|
|
194
|
+
allow_contact_sharing: nil,
|
|
195
|
+
# Whether number changes are allowed during onboarding
|
|
196
|
+
allow_number_change_during_onboarding: nil,
|
|
197
|
+
# Whether templates are shared across profiles in the organization
|
|
198
|
+
allow_template_sharing: nil,
|
|
199
|
+
# Billing contact for this profile. Present when billing_model is "profile" or
|
|
200
|
+
# "profile_and_organization".
|
|
201
|
+
billing_contact: nil,
|
|
202
|
+
# Billing model: profile, organization, or profile_and_organization
|
|
203
|
+
billing_model: nil,
|
|
204
|
+
# Brand associated with this profile. Null if no brand has been configured yet.
|
|
205
|
+
# Includes KYC information and TCR registration status.
|
|
206
|
+
brand: nil,
|
|
87
207
|
# When the profile was created
|
|
88
208
|
created_at: nil,
|
|
89
209
|
# Profile description
|
|
@@ -92,18 +212,36 @@ module Sentdm
|
|
|
92
212
|
email: nil,
|
|
93
213
|
# Profile icon URL
|
|
94
214
|
icon: nil,
|
|
215
|
+
# Whether this profile inherits contacts from the organization
|
|
216
|
+
inherit_contacts: nil,
|
|
217
|
+
# Whether this profile inherits TCR brand from the organization
|
|
218
|
+
inherit_tcr_brand: nil,
|
|
219
|
+
# Whether this profile inherits TCR campaign from the organization
|
|
220
|
+
inherit_tcr_campaign: nil,
|
|
221
|
+
# Whether this profile inherits templates from the organization
|
|
222
|
+
inherit_templates: nil,
|
|
95
223
|
# Profile name
|
|
96
224
|
name: nil,
|
|
97
225
|
# Parent organization ID
|
|
98
226
|
organization_id: nil,
|
|
99
|
-
#
|
|
100
|
-
|
|
101
|
-
#
|
|
227
|
+
# Direct SMS phone number
|
|
228
|
+
sending_phone_number: nil,
|
|
229
|
+
# Reference to another profile for SMS/Telnyx configuration
|
|
230
|
+
sending_phone_number_profile_id: nil,
|
|
231
|
+
# Reference to another profile for WhatsApp configuration
|
|
232
|
+
sending_whatsapp_number_profile_id: nil,
|
|
233
|
+
# Profile short name/abbreviation. 3–11 characters: letters, numbers, and spaces
|
|
234
|
+
# only, with at least one letter.
|
|
102
235
|
short_name: nil,
|
|
103
236
|
# Profile setup status: incomplete, pending_review, approved, rejected
|
|
104
237
|
status: nil,
|
|
105
238
|
# When the profile was last updated
|
|
106
|
-
updated_at: nil
|
|
239
|
+
updated_at: nil,
|
|
240
|
+
# WhatsApp Business Account ID associated with this profile. Present whether the
|
|
241
|
+
# WABA is inherited from the organization or configured directly.
|
|
242
|
+
waba_id: nil,
|
|
243
|
+
# Direct WhatsApp phone number
|
|
244
|
+
whatsapp_phone_number: nil
|
|
107
245
|
)
|
|
108
246
|
end
|
|
109
247
|
|
|
@@ -111,162 +249,638 @@ module Sentdm
|
|
|
111
249
|
override.returns(
|
|
112
250
|
{
|
|
113
251
|
id: String,
|
|
252
|
+
allow_contact_sharing: T::Boolean,
|
|
253
|
+
allow_number_change_during_onboarding: T.nilable(T::Boolean),
|
|
254
|
+
allow_template_sharing: T::Boolean,
|
|
255
|
+
billing_contact: T.nilable(Sentdm::ProfileDetail::BillingContact),
|
|
256
|
+
billing_model: String,
|
|
257
|
+
brand: T.nilable(Sentdm::ProfileDetail::Brand),
|
|
114
258
|
created_at: Time,
|
|
115
259
|
description: T.nilable(String),
|
|
116
260
|
email: T.nilable(String),
|
|
117
261
|
icon: T.nilable(String),
|
|
262
|
+
inherit_contacts: T::Boolean,
|
|
263
|
+
inherit_tcr_brand: T::Boolean,
|
|
264
|
+
inherit_tcr_campaign: T::Boolean,
|
|
265
|
+
inherit_templates: T::Boolean,
|
|
118
266
|
name: String,
|
|
119
267
|
organization_id: T.nilable(String),
|
|
120
|
-
|
|
268
|
+
sending_phone_number: T.nilable(String),
|
|
269
|
+
sending_phone_number_profile_id: T.nilable(String),
|
|
270
|
+
sending_whatsapp_number_profile_id: T.nilable(String),
|
|
121
271
|
short_name: T.nilable(String),
|
|
122
272
|
status: String,
|
|
123
|
-
updated_at: T.nilable(Time)
|
|
273
|
+
updated_at: T.nilable(Time),
|
|
274
|
+
waba_id: T.nilable(String),
|
|
275
|
+
whatsapp_phone_number: T.nilable(String)
|
|
124
276
|
}
|
|
125
277
|
)
|
|
126
278
|
end
|
|
127
279
|
def to_hash
|
|
128
280
|
end
|
|
129
281
|
|
|
130
|
-
class
|
|
282
|
+
class BillingContact < Sentdm::Internal::Type::BaseModel
|
|
131
283
|
OrHash =
|
|
132
284
|
T.type_alias do
|
|
133
|
-
T.any(
|
|
285
|
+
T.any(
|
|
286
|
+
Sentdm::ProfileDetail::BillingContact,
|
|
287
|
+
Sentdm::Internal::AnyHash
|
|
288
|
+
)
|
|
134
289
|
end
|
|
135
290
|
|
|
136
|
-
|
|
137
|
-
|
|
138
|
-
attr_reader :allow_contact_sharing
|
|
291
|
+
sig { returns(T.nilable(String)) }
|
|
292
|
+
attr_accessor :address
|
|
139
293
|
|
|
140
|
-
sig {
|
|
141
|
-
|
|
294
|
+
sig { returns(T.nilable(String)) }
|
|
295
|
+
attr_accessor :email
|
|
142
296
|
|
|
143
|
-
|
|
144
|
-
|
|
145
|
-
attr_accessor :allow_number_change_during_onboarding
|
|
297
|
+
sig { returns(T.nilable(String)) }
|
|
298
|
+
attr_accessor :name
|
|
146
299
|
|
|
147
|
-
|
|
148
|
-
|
|
149
|
-
attr_reader :allow_template_sharing
|
|
300
|
+
sig { returns(T.nilable(String)) }
|
|
301
|
+
attr_accessor :phone
|
|
150
302
|
|
|
151
|
-
|
|
152
|
-
|
|
303
|
+
# Billing contact for this profile. Present when billing_model is "profile" or
|
|
304
|
+
# "profile_and_organization".
|
|
305
|
+
sig do
|
|
306
|
+
params(
|
|
307
|
+
address: T.nilable(String),
|
|
308
|
+
email: T.nilable(String),
|
|
309
|
+
name: T.nilable(String),
|
|
310
|
+
phone: T.nilable(String)
|
|
311
|
+
).returns(T.attached_class)
|
|
312
|
+
end
|
|
313
|
+
def self.new(address: nil, email: nil, name: nil, phone: nil)
|
|
314
|
+
end
|
|
153
315
|
|
|
154
|
-
|
|
316
|
+
sig do
|
|
317
|
+
override.returns(
|
|
318
|
+
{
|
|
319
|
+
address: T.nilable(String),
|
|
320
|
+
email: T.nilable(String),
|
|
321
|
+
name: T.nilable(String),
|
|
322
|
+
phone: T.nilable(String)
|
|
323
|
+
}
|
|
324
|
+
)
|
|
325
|
+
end
|
|
326
|
+
def to_hash
|
|
327
|
+
end
|
|
328
|
+
end
|
|
329
|
+
|
|
330
|
+
class Brand < Sentdm::Internal::Type::BaseModel
|
|
331
|
+
OrHash =
|
|
332
|
+
T.type_alias do
|
|
333
|
+
T.any(Sentdm::ProfileDetail::Brand, Sentdm::Internal::AnyHash)
|
|
334
|
+
end
|
|
335
|
+
|
|
336
|
+
# Unique identifier for the brand
|
|
155
337
|
sig { returns(T.nilable(String)) }
|
|
156
|
-
attr_reader :
|
|
338
|
+
attr_reader :id
|
|
157
339
|
|
|
158
|
-
sig { params(
|
|
159
|
-
attr_writer :
|
|
340
|
+
sig { params(id: String).void }
|
|
341
|
+
attr_writer :id
|
|
160
342
|
|
|
161
|
-
#
|
|
162
|
-
sig { returns(T.nilable(
|
|
163
|
-
attr_reader :
|
|
343
|
+
# Business details and address information
|
|
344
|
+
sig { returns(T.nilable(Sentdm::ProfileDetail::Brand::Business)) }
|
|
345
|
+
attr_reader :business
|
|
164
346
|
|
|
165
|
-
sig
|
|
166
|
-
|
|
347
|
+
sig do
|
|
348
|
+
params(
|
|
349
|
+
business: T.nilable(Sentdm::ProfileDetail::Brand::Business::OrHash)
|
|
350
|
+
).void
|
|
351
|
+
end
|
|
352
|
+
attr_writer :business
|
|
167
353
|
|
|
168
|
-
#
|
|
169
|
-
sig { returns(T.nilable(
|
|
170
|
-
attr_reader :
|
|
354
|
+
# Compliance and TCR-related information
|
|
355
|
+
sig { returns(T.nilable(Sentdm::ProfileDetail::Brand::Compliance)) }
|
|
356
|
+
attr_reader :compliance
|
|
171
357
|
|
|
172
|
-
sig
|
|
173
|
-
|
|
358
|
+
sig do
|
|
359
|
+
params(
|
|
360
|
+
compliance:
|
|
361
|
+
T.nilable(Sentdm::ProfileDetail::Brand::Compliance::OrHash)
|
|
362
|
+
).void
|
|
363
|
+
end
|
|
364
|
+
attr_writer :compliance
|
|
174
365
|
|
|
175
|
-
#
|
|
176
|
-
sig { returns(T.nilable(
|
|
177
|
-
attr_reader :
|
|
366
|
+
# Contact information for the brand
|
|
367
|
+
sig { returns(T.nilable(Sentdm::ProfileDetail::Brand::Contact)) }
|
|
368
|
+
attr_reader :contact
|
|
178
369
|
|
|
179
|
-
sig
|
|
180
|
-
|
|
370
|
+
sig do
|
|
371
|
+
params(
|
|
372
|
+
contact: T.nilable(Sentdm::ProfileDetail::Brand::Contact::OrHash)
|
|
373
|
+
).void
|
|
374
|
+
end
|
|
375
|
+
attr_writer :contact
|
|
181
376
|
|
|
182
|
-
#
|
|
183
|
-
sig { returns(T.nilable(
|
|
184
|
-
attr_reader :
|
|
377
|
+
# When the brand was created
|
|
378
|
+
sig { returns(T.nilable(Time)) }
|
|
379
|
+
attr_reader :created_at
|
|
185
380
|
|
|
186
|
-
sig { params(
|
|
187
|
-
attr_writer :
|
|
381
|
+
sig { params(created_at: Time).void }
|
|
382
|
+
attr_writer :created_at
|
|
188
383
|
|
|
189
|
-
#
|
|
384
|
+
# CSP (Campaign Service Provider) ID
|
|
190
385
|
sig { returns(T.nilable(String)) }
|
|
191
|
-
attr_accessor :
|
|
386
|
+
attr_accessor :csp_id
|
|
192
387
|
|
|
193
|
-
#
|
|
194
|
-
sig
|
|
195
|
-
|
|
388
|
+
# TCR brand identity verification status
|
|
389
|
+
sig do
|
|
390
|
+
returns(
|
|
391
|
+
T.nilable(
|
|
392
|
+
Sentdm::ProfileDetail::Brand::IdentityStatus::TaggedSymbol
|
|
393
|
+
)
|
|
394
|
+
)
|
|
395
|
+
end
|
|
396
|
+
attr_accessor :identity_status
|
|
196
397
|
|
|
197
|
-
#
|
|
398
|
+
# Whether this brand is inherited from the parent organization
|
|
399
|
+
sig { returns(T.nilable(T::Boolean)) }
|
|
400
|
+
attr_reader :is_inherited
|
|
401
|
+
|
|
402
|
+
sig { params(is_inherited: T::Boolean).void }
|
|
403
|
+
attr_writer :is_inherited
|
|
404
|
+
|
|
405
|
+
# TCR brand status
|
|
406
|
+
sig do
|
|
407
|
+
returns(T.nilable(Sentdm::ProfileDetail::Brand::Status::TaggedSymbol))
|
|
408
|
+
end
|
|
409
|
+
attr_accessor :status
|
|
410
|
+
|
|
411
|
+
# When the brand was submitted to TCR
|
|
412
|
+
sig { returns(T.nilable(Time)) }
|
|
413
|
+
attr_accessor :submitted_at
|
|
414
|
+
|
|
415
|
+
# Whether this brand has been submitted to TCR
|
|
416
|
+
sig { returns(T.nilable(T::Boolean)) }
|
|
417
|
+
attr_reader :submitted_to_tcr
|
|
418
|
+
|
|
419
|
+
sig { params(submitted_to_tcr: T::Boolean).void }
|
|
420
|
+
attr_writer :submitted_to_tcr
|
|
421
|
+
|
|
422
|
+
# TCR brand ID (populated after TCR submission)
|
|
198
423
|
sig { returns(T.nilable(String)) }
|
|
199
|
-
attr_accessor :
|
|
424
|
+
attr_accessor :tcr_brand_id
|
|
200
425
|
|
|
201
|
-
#
|
|
426
|
+
# Universal EIN from TCR
|
|
202
427
|
sig { returns(T.nilable(String)) }
|
|
203
|
-
attr_accessor :
|
|
428
|
+
attr_accessor :universal_ein
|
|
429
|
+
|
|
430
|
+
# When the brand was last updated
|
|
431
|
+
sig { returns(T.nilable(Time)) }
|
|
432
|
+
attr_accessor :updated_at
|
|
204
433
|
|
|
205
|
-
#
|
|
434
|
+
# Brand associated with this profile. Null if no brand has been configured yet.
|
|
435
|
+
# Includes KYC information and TCR registration status.
|
|
206
436
|
sig do
|
|
207
437
|
params(
|
|
208
|
-
|
|
209
|
-
|
|
210
|
-
|
|
211
|
-
|
|
212
|
-
|
|
213
|
-
|
|
214
|
-
|
|
215
|
-
|
|
216
|
-
|
|
217
|
-
|
|
218
|
-
|
|
219
|
-
|
|
438
|
+
id: String,
|
|
439
|
+
business: T.nilable(Sentdm::ProfileDetail::Brand::Business::OrHash),
|
|
440
|
+
compliance:
|
|
441
|
+
T.nilable(Sentdm::ProfileDetail::Brand::Compliance::OrHash),
|
|
442
|
+
contact: T.nilable(Sentdm::ProfileDetail::Brand::Contact::OrHash),
|
|
443
|
+
created_at: Time,
|
|
444
|
+
csp_id: T.nilable(String),
|
|
445
|
+
identity_status:
|
|
446
|
+
T.nilable(Sentdm::ProfileDetail::Brand::IdentityStatus::OrSymbol),
|
|
447
|
+
is_inherited: T::Boolean,
|
|
448
|
+
status: T.nilable(Sentdm::ProfileDetail::Brand::Status::OrSymbol),
|
|
449
|
+
submitted_at: T.nilable(Time),
|
|
450
|
+
submitted_to_tcr: T::Boolean,
|
|
451
|
+
tcr_brand_id: T.nilable(String),
|
|
452
|
+
universal_ein: T.nilable(String),
|
|
453
|
+
updated_at: T.nilable(Time)
|
|
220
454
|
).returns(T.attached_class)
|
|
221
455
|
end
|
|
222
456
|
def self.new(
|
|
223
|
-
#
|
|
224
|
-
|
|
225
|
-
#
|
|
226
|
-
|
|
227
|
-
#
|
|
228
|
-
|
|
229
|
-
#
|
|
230
|
-
|
|
231
|
-
#
|
|
232
|
-
|
|
233
|
-
#
|
|
234
|
-
|
|
235
|
-
#
|
|
236
|
-
|
|
237
|
-
# Whether this
|
|
238
|
-
|
|
239
|
-
#
|
|
240
|
-
|
|
241
|
-
#
|
|
242
|
-
|
|
243
|
-
#
|
|
244
|
-
|
|
245
|
-
#
|
|
246
|
-
|
|
457
|
+
# Unique identifier for the brand
|
|
458
|
+
id: nil,
|
|
459
|
+
# Business details and address information
|
|
460
|
+
business: nil,
|
|
461
|
+
# Compliance and TCR-related information
|
|
462
|
+
compliance: nil,
|
|
463
|
+
# Contact information for the brand
|
|
464
|
+
contact: nil,
|
|
465
|
+
# When the brand was created
|
|
466
|
+
created_at: nil,
|
|
467
|
+
# CSP (Campaign Service Provider) ID
|
|
468
|
+
csp_id: nil,
|
|
469
|
+
# TCR brand identity verification status
|
|
470
|
+
identity_status: nil,
|
|
471
|
+
# Whether this brand is inherited from the parent organization
|
|
472
|
+
is_inherited: nil,
|
|
473
|
+
# TCR brand status
|
|
474
|
+
status: nil,
|
|
475
|
+
# When the brand was submitted to TCR
|
|
476
|
+
submitted_at: nil,
|
|
477
|
+
# Whether this brand has been submitted to TCR
|
|
478
|
+
submitted_to_tcr: nil,
|
|
479
|
+
# TCR brand ID (populated after TCR submission)
|
|
480
|
+
tcr_brand_id: nil,
|
|
481
|
+
# Universal EIN from TCR
|
|
482
|
+
universal_ein: nil,
|
|
483
|
+
# When the brand was last updated
|
|
484
|
+
updated_at: nil
|
|
247
485
|
)
|
|
248
486
|
end
|
|
249
487
|
|
|
250
488
|
sig do
|
|
251
489
|
override.returns(
|
|
252
490
|
{
|
|
253
|
-
|
|
254
|
-
|
|
255
|
-
|
|
256
|
-
|
|
257
|
-
|
|
258
|
-
|
|
259
|
-
|
|
260
|
-
|
|
261
|
-
|
|
262
|
-
|
|
263
|
-
|
|
264
|
-
|
|
491
|
+
id: String,
|
|
492
|
+
business: T.nilable(Sentdm::ProfileDetail::Brand::Business),
|
|
493
|
+
compliance: T.nilable(Sentdm::ProfileDetail::Brand::Compliance),
|
|
494
|
+
contact: T.nilable(Sentdm::ProfileDetail::Brand::Contact),
|
|
495
|
+
created_at: Time,
|
|
496
|
+
csp_id: T.nilable(String),
|
|
497
|
+
identity_status:
|
|
498
|
+
T.nilable(
|
|
499
|
+
Sentdm::ProfileDetail::Brand::IdentityStatus::TaggedSymbol
|
|
500
|
+
),
|
|
501
|
+
is_inherited: T::Boolean,
|
|
502
|
+
status:
|
|
503
|
+
T.nilable(Sentdm::ProfileDetail::Brand::Status::TaggedSymbol),
|
|
504
|
+
submitted_at: T.nilable(Time),
|
|
505
|
+
submitted_to_tcr: T::Boolean,
|
|
506
|
+
tcr_brand_id: T.nilable(String),
|
|
507
|
+
universal_ein: T.nilable(String),
|
|
508
|
+
updated_at: T.nilable(Time)
|
|
265
509
|
}
|
|
266
510
|
)
|
|
267
511
|
end
|
|
268
512
|
def to_hash
|
|
269
513
|
end
|
|
514
|
+
|
|
515
|
+
class Business < Sentdm::Internal::Type::BaseModel
|
|
516
|
+
OrHash =
|
|
517
|
+
T.type_alias do
|
|
518
|
+
T.any(
|
|
519
|
+
Sentdm::ProfileDetail::Brand::Business,
|
|
520
|
+
Sentdm::Internal::AnyHash
|
|
521
|
+
)
|
|
522
|
+
end
|
|
523
|
+
|
|
524
|
+
# City
|
|
525
|
+
sig { returns(T.nilable(String)) }
|
|
526
|
+
attr_accessor :city
|
|
527
|
+
|
|
528
|
+
# Country code (e.g., US, CA)
|
|
529
|
+
sig { returns(T.nilable(String)) }
|
|
530
|
+
attr_accessor :country
|
|
531
|
+
|
|
532
|
+
# Country where the business is registered
|
|
533
|
+
sig { returns(T.nilable(String)) }
|
|
534
|
+
attr_accessor :country_of_registration
|
|
535
|
+
|
|
536
|
+
# Business entity type
|
|
537
|
+
sig { returns(T.nilable(String)) }
|
|
538
|
+
attr_accessor :entity_type
|
|
539
|
+
|
|
540
|
+
# Legal business name
|
|
541
|
+
sig { returns(T.nilable(String)) }
|
|
542
|
+
attr_accessor :legal_name
|
|
543
|
+
|
|
544
|
+
# Postal/ZIP code
|
|
545
|
+
sig { returns(T.nilable(String)) }
|
|
546
|
+
attr_accessor :postal_code
|
|
547
|
+
|
|
548
|
+
# State/province code
|
|
549
|
+
sig { returns(T.nilable(String)) }
|
|
550
|
+
attr_accessor :state
|
|
551
|
+
|
|
552
|
+
# Street address
|
|
553
|
+
sig { returns(T.nilable(String)) }
|
|
554
|
+
attr_accessor :street
|
|
555
|
+
|
|
556
|
+
# Tax ID/EIN number
|
|
557
|
+
sig { returns(T.nilable(String)) }
|
|
558
|
+
attr_accessor :tax_id
|
|
559
|
+
|
|
560
|
+
# Type of tax ID (e.g., us_ein, ca_bn)
|
|
561
|
+
sig { returns(T.nilable(String)) }
|
|
562
|
+
attr_accessor :tax_id_type
|
|
563
|
+
|
|
564
|
+
# Business website URL
|
|
565
|
+
sig { returns(T.nilable(String)) }
|
|
566
|
+
attr_accessor :url
|
|
567
|
+
|
|
568
|
+
# Business details and address information
|
|
569
|
+
sig do
|
|
570
|
+
params(
|
|
571
|
+
city: T.nilable(String),
|
|
572
|
+
country: T.nilable(String),
|
|
573
|
+
country_of_registration: T.nilable(String),
|
|
574
|
+
entity_type: T.nilable(String),
|
|
575
|
+
legal_name: T.nilable(String),
|
|
576
|
+
postal_code: T.nilable(String),
|
|
577
|
+
state: T.nilable(String),
|
|
578
|
+
street: T.nilable(String),
|
|
579
|
+
tax_id: T.nilable(String),
|
|
580
|
+
tax_id_type: T.nilable(String),
|
|
581
|
+
url: T.nilable(String)
|
|
582
|
+
).returns(T.attached_class)
|
|
583
|
+
end
|
|
584
|
+
def self.new(
|
|
585
|
+
# City
|
|
586
|
+
city: nil,
|
|
587
|
+
# Country code (e.g., US, CA)
|
|
588
|
+
country: nil,
|
|
589
|
+
# Country where the business is registered
|
|
590
|
+
country_of_registration: nil,
|
|
591
|
+
# Business entity type
|
|
592
|
+
entity_type: nil,
|
|
593
|
+
# Legal business name
|
|
594
|
+
legal_name: nil,
|
|
595
|
+
# Postal/ZIP code
|
|
596
|
+
postal_code: nil,
|
|
597
|
+
# State/province code
|
|
598
|
+
state: nil,
|
|
599
|
+
# Street address
|
|
600
|
+
street: nil,
|
|
601
|
+
# Tax ID/EIN number
|
|
602
|
+
tax_id: nil,
|
|
603
|
+
# Type of tax ID (e.g., us_ein, ca_bn)
|
|
604
|
+
tax_id_type: nil,
|
|
605
|
+
# Business website URL
|
|
606
|
+
url: nil
|
|
607
|
+
)
|
|
608
|
+
end
|
|
609
|
+
|
|
610
|
+
sig do
|
|
611
|
+
override.returns(
|
|
612
|
+
{
|
|
613
|
+
city: T.nilable(String),
|
|
614
|
+
country: T.nilable(String),
|
|
615
|
+
country_of_registration: T.nilable(String),
|
|
616
|
+
entity_type: T.nilable(String),
|
|
617
|
+
legal_name: T.nilable(String),
|
|
618
|
+
postal_code: T.nilable(String),
|
|
619
|
+
state: T.nilable(String),
|
|
620
|
+
street: T.nilable(String),
|
|
621
|
+
tax_id: T.nilable(String),
|
|
622
|
+
tax_id_type: T.nilable(String),
|
|
623
|
+
url: T.nilable(String)
|
|
624
|
+
}
|
|
625
|
+
)
|
|
626
|
+
end
|
|
627
|
+
def to_hash
|
|
628
|
+
end
|
|
629
|
+
end
|
|
630
|
+
|
|
631
|
+
class Compliance < Sentdm::Internal::Type::BaseModel
|
|
632
|
+
OrHash =
|
|
633
|
+
T.type_alias do
|
|
634
|
+
T.any(
|
|
635
|
+
Sentdm::ProfileDetail::Brand::Compliance,
|
|
636
|
+
Sentdm::Internal::AnyHash
|
|
637
|
+
)
|
|
638
|
+
end
|
|
639
|
+
|
|
640
|
+
# Brand relationship level with TCR
|
|
641
|
+
sig { returns(T.nilable(Sentdm::TcrBrandRelationship::TaggedSymbol)) }
|
|
642
|
+
attr_accessor :brand_relationship
|
|
643
|
+
|
|
644
|
+
# List of destination countries for messaging
|
|
645
|
+
sig { returns(T.nilable(T::Array[Sentdm::DestinationCountry])) }
|
|
646
|
+
attr_reader :destination_countries
|
|
647
|
+
|
|
648
|
+
sig do
|
|
649
|
+
params(
|
|
650
|
+
destination_countries:
|
|
651
|
+
T::Array[Sentdm::DestinationCountry::OrHash]
|
|
652
|
+
).void
|
|
653
|
+
end
|
|
654
|
+
attr_writer :destination_countries
|
|
655
|
+
|
|
656
|
+
# Expected daily messaging volume
|
|
657
|
+
sig { returns(T.nilable(String)) }
|
|
658
|
+
attr_accessor :expected_messaging_volume
|
|
659
|
+
|
|
660
|
+
# Whether this is a TCR (Campaign Registry) application
|
|
661
|
+
sig { returns(T.nilable(T::Boolean)) }
|
|
662
|
+
attr_reader :is_tcr_application
|
|
663
|
+
|
|
664
|
+
sig { params(is_tcr_application: T::Boolean).void }
|
|
665
|
+
attr_writer :is_tcr_application
|
|
666
|
+
|
|
667
|
+
# Additional notes about the business or use case
|
|
668
|
+
sig { returns(T.nilable(String)) }
|
|
669
|
+
attr_accessor :notes
|
|
670
|
+
|
|
671
|
+
# Phone number prefix for messaging (e.g., "+1")
|
|
672
|
+
sig { returns(T.nilable(String)) }
|
|
673
|
+
attr_accessor :phone_number_prefix
|
|
674
|
+
|
|
675
|
+
# Primary messaging use case description
|
|
676
|
+
sig { returns(T.nilable(String)) }
|
|
677
|
+
attr_accessor :primary_use_case
|
|
678
|
+
|
|
679
|
+
# Business vertical/industry category
|
|
680
|
+
sig { returns(T.nilable(Sentdm::TcrVertical::TaggedSymbol)) }
|
|
681
|
+
attr_accessor :vertical
|
|
682
|
+
|
|
683
|
+
# Compliance and TCR-related information
|
|
684
|
+
sig do
|
|
685
|
+
params(
|
|
686
|
+
brand_relationship:
|
|
687
|
+
T.nilable(Sentdm::TcrBrandRelationship::OrSymbol),
|
|
688
|
+
destination_countries:
|
|
689
|
+
T::Array[Sentdm::DestinationCountry::OrHash],
|
|
690
|
+
expected_messaging_volume: T.nilable(String),
|
|
691
|
+
is_tcr_application: T::Boolean,
|
|
692
|
+
notes: T.nilable(String),
|
|
693
|
+
phone_number_prefix: T.nilable(String),
|
|
694
|
+
primary_use_case: T.nilable(String),
|
|
695
|
+
vertical: T.nilable(Sentdm::TcrVertical::OrSymbol)
|
|
696
|
+
).returns(T.attached_class)
|
|
697
|
+
end
|
|
698
|
+
def self.new(
|
|
699
|
+
# Brand relationship level with TCR
|
|
700
|
+
brand_relationship: nil,
|
|
701
|
+
# List of destination countries for messaging
|
|
702
|
+
destination_countries: nil,
|
|
703
|
+
# Expected daily messaging volume
|
|
704
|
+
expected_messaging_volume: nil,
|
|
705
|
+
# Whether this is a TCR (Campaign Registry) application
|
|
706
|
+
is_tcr_application: nil,
|
|
707
|
+
# Additional notes about the business or use case
|
|
708
|
+
notes: nil,
|
|
709
|
+
# Phone number prefix for messaging (e.g., "+1")
|
|
710
|
+
phone_number_prefix: nil,
|
|
711
|
+
# Primary messaging use case description
|
|
712
|
+
primary_use_case: nil,
|
|
713
|
+
# Business vertical/industry category
|
|
714
|
+
vertical: nil
|
|
715
|
+
)
|
|
716
|
+
end
|
|
717
|
+
|
|
718
|
+
sig do
|
|
719
|
+
override.returns(
|
|
720
|
+
{
|
|
721
|
+
brand_relationship:
|
|
722
|
+
T.nilable(Sentdm::TcrBrandRelationship::TaggedSymbol),
|
|
723
|
+
destination_countries: T::Array[Sentdm::DestinationCountry],
|
|
724
|
+
expected_messaging_volume: T.nilable(String),
|
|
725
|
+
is_tcr_application: T::Boolean,
|
|
726
|
+
notes: T.nilable(String),
|
|
727
|
+
phone_number_prefix: T.nilable(String),
|
|
728
|
+
primary_use_case: T.nilable(String),
|
|
729
|
+
vertical: T.nilable(Sentdm::TcrVertical::TaggedSymbol)
|
|
730
|
+
}
|
|
731
|
+
)
|
|
732
|
+
end
|
|
733
|
+
def to_hash
|
|
734
|
+
end
|
|
735
|
+
end
|
|
736
|
+
|
|
737
|
+
class Contact < Sentdm::Internal::Type::BaseModel
|
|
738
|
+
OrHash =
|
|
739
|
+
T.type_alias do
|
|
740
|
+
T.any(
|
|
741
|
+
Sentdm::ProfileDetail::Brand::Contact,
|
|
742
|
+
Sentdm::Internal::AnyHash
|
|
743
|
+
)
|
|
744
|
+
end
|
|
745
|
+
|
|
746
|
+
# Business/brand name
|
|
747
|
+
sig { returns(T.nilable(String)) }
|
|
748
|
+
attr_accessor :business_name
|
|
749
|
+
|
|
750
|
+
# Contact email address
|
|
751
|
+
sig { returns(T.nilable(String)) }
|
|
752
|
+
attr_accessor :email
|
|
753
|
+
|
|
754
|
+
# Primary contact name
|
|
755
|
+
sig { returns(T.nilable(String)) }
|
|
756
|
+
attr_reader :name
|
|
757
|
+
|
|
758
|
+
sig { params(name: String).void }
|
|
759
|
+
attr_writer :name
|
|
760
|
+
|
|
761
|
+
# Contact phone number in E.164 format
|
|
762
|
+
sig { returns(T.nilable(String)) }
|
|
763
|
+
attr_accessor :phone
|
|
764
|
+
|
|
765
|
+
# Contact phone country code (e.g., "1" for US)
|
|
766
|
+
sig { returns(T.nilable(String)) }
|
|
767
|
+
attr_accessor :phone_country_code
|
|
768
|
+
|
|
769
|
+
# Contact's role in the business
|
|
770
|
+
sig { returns(T.nilable(String)) }
|
|
771
|
+
attr_accessor :role
|
|
772
|
+
|
|
773
|
+
# Contact information for the brand
|
|
774
|
+
sig do
|
|
775
|
+
params(
|
|
776
|
+
business_name: T.nilable(String),
|
|
777
|
+
email: T.nilable(String),
|
|
778
|
+
name: String,
|
|
779
|
+
phone: T.nilable(String),
|
|
780
|
+
phone_country_code: T.nilable(String),
|
|
781
|
+
role: T.nilable(String)
|
|
782
|
+
).returns(T.attached_class)
|
|
783
|
+
end
|
|
784
|
+
def self.new(
|
|
785
|
+
# Business/brand name
|
|
786
|
+
business_name: nil,
|
|
787
|
+
# Contact email address
|
|
788
|
+
email: nil,
|
|
789
|
+
# Primary contact name
|
|
790
|
+
name: nil,
|
|
791
|
+
# Contact phone number in E.164 format
|
|
792
|
+
phone: nil,
|
|
793
|
+
# Contact phone country code (e.g., "1" for US)
|
|
794
|
+
phone_country_code: nil,
|
|
795
|
+
# Contact's role in the business
|
|
796
|
+
role: nil
|
|
797
|
+
)
|
|
798
|
+
end
|
|
799
|
+
|
|
800
|
+
sig do
|
|
801
|
+
override.returns(
|
|
802
|
+
{
|
|
803
|
+
business_name: T.nilable(String),
|
|
804
|
+
email: T.nilable(String),
|
|
805
|
+
name: String,
|
|
806
|
+
phone: T.nilable(String),
|
|
807
|
+
phone_country_code: T.nilable(String),
|
|
808
|
+
role: T.nilable(String)
|
|
809
|
+
}
|
|
810
|
+
)
|
|
811
|
+
end
|
|
812
|
+
def to_hash
|
|
813
|
+
end
|
|
814
|
+
end
|
|
815
|
+
|
|
816
|
+
# TCR brand identity verification status
|
|
817
|
+
module IdentityStatus
|
|
818
|
+
extend Sentdm::Internal::Type::Enum
|
|
819
|
+
|
|
820
|
+
TaggedSymbol =
|
|
821
|
+
T.type_alias do
|
|
822
|
+
T.all(Symbol, Sentdm::ProfileDetail::Brand::IdentityStatus)
|
|
823
|
+
end
|
|
824
|
+
OrSymbol = T.type_alias { T.any(Symbol, String) }
|
|
825
|
+
|
|
826
|
+
SELF_DECLARED =
|
|
827
|
+
T.let(
|
|
828
|
+
:SELF_DECLARED,
|
|
829
|
+
Sentdm::ProfileDetail::Brand::IdentityStatus::TaggedSymbol
|
|
830
|
+
)
|
|
831
|
+
UNVERIFIED =
|
|
832
|
+
T.let(
|
|
833
|
+
:UNVERIFIED,
|
|
834
|
+
Sentdm::ProfileDetail::Brand::IdentityStatus::TaggedSymbol
|
|
835
|
+
)
|
|
836
|
+
VERIFIED =
|
|
837
|
+
T.let(
|
|
838
|
+
:VERIFIED,
|
|
839
|
+
Sentdm::ProfileDetail::Brand::IdentityStatus::TaggedSymbol
|
|
840
|
+
)
|
|
841
|
+
VETTED_VERIFIED =
|
|
842
|
+
T.let(
|
|
843
|
+
:VETTED_VERIFIED,
|
|
844
|
+
Sentdm::ProfileDetail::Brand::IdentityStatus::TaggedSymbol
|
|
845
|
+
)
|
|
846
|
+
|
|
847
|
+
sig do
|
|
848
|
+
override.returns(
|
|
849
|
+
T::Array[
|
|
850
|
+
Sentdm::ProfileDetail::Brand::IdentityStatus::TaggedSymbol
|
|
851
|
+
]
|
|
852
|
+
)
|
|
853
|
+
end
|
|
854
|
+
def self.values
|
|
855
|
+
end
|
|
856
|
+
end
|
|
857
|
+
|
|
858
|
+
# TCR brand status
|
|
859
|
+
module Status
|
|
860
|
+
extend Sentdm::Internal::Type::Enum
|
|
861
|
+
|
|
862
|
+
TaggedSymbol =
|
|
863
|
+
T.type_alias { T.all(Symbol, Sentdm::ProfileDetail::Brand::Status) }
|
|
864
|
+
OrSymbol = T.type_alias { T.any(Symbol, String) }
|
|
865
|
+
|
|
866
|
+
ACTIVE =
|
|
867
|
+
T.let(:ACTIVE, Sentdm::ProfileDetail::Brand::Status::TaggedSymbol)
|
|
868
|
+
INACTIVE =
|
|
869
|
+
T.let(:INACTIVE, Sentdm::ProfileDetail::Brand::Status::TaggedSymbol)
|
|
870
|
+
SUSPENDED =
|
|
871
|
+
T.let(
|
|
872
|
+
:SUSPENDED,
|
|
873
|
+
Sentdm::ProfileDetail::Brand::Status::TaggedSymbol
|
|
874
|
+
)
|
|
875
|
+
|
|
876
|
+
sig do
|
|
877
|
+
override.returns(
|
|
878
|
+
T::Array[Sentdm::ProfileDetail::Brand::Status::TaggedSymbol]
|
|
879
|
+
)
|
|
880
|
+
end
|
|
881
|
+
def self.values
|
|
882
|
+
end
|
|
883
|
+
end
|
|
270
884
|
end
|
|
271
885
|
end
|
|
272
886
|
end
|