sentdm 0.0.2
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 +7 -0
- data/.ignore +2 -0
- data/CHANGELOG.md +11 -0
- data/README.md +240 -0
- data/SECURITY.md +27 -0
- data/lib/sentdm/client.rb +115 -0
- data/lib/sentdm/errors.rb +228 -0
- data/lib/sentdm/file_part.rb +58 -0
- data/lib/sentdm/internal/transport/base_client.rb +573 -0
- data/lib/sentdm/internal/transport/pooled_net_requester.rb +210 -0
- data/lib/sentdm/internal/type/array_of.rb +168 -0
- data/lib/sentdm/internal/type/base_model.rb +531 -0
- data/lib/sentdm/internal/type/base_page.rb +55 -0
- data/lib/sentdm/internal/type/boolean.rb +77 -0
- data/lib/sentdm/internal/type/converter.rb +327 -0
- data/lib/sentdm/internal/type/enum.rb +131 -0
- data/lib/sentdm/internal/type/file_input.rb +111 -0
- data/lib/sentdm/internal/type/hash_of.rb +188 -0
- data/lib/sentdm/internal/type/request_parameters.rb +42 -0
- data/lib/sentdm/internal/type/union.rb +237 -0
- data/lib/sentdm/internal/type/unknown.rb +81 -0
- data/lib/sentdm/internal/util.rb +920 -0
- data/lib/sentdm/internal.rb +20 -0
- data/lib/sentdm/models/contact_list_item.rb +96 -0
- data/lib/sentdm/models/contact_list_params.rb +30 -0
- data/lib/sentdm/models/contact_list_response.rb +40 -0
- data/lib/sentdm/models/contact_retrieve_by_phone_params.rb +22 -0
- data/lib/sentdm/models/contact_retrieve_id_params.rb +22 -0
- data/lib/sentdm/models/message_retrieve_params.rb +14 -0
- data/lib/sentdm/models/message_retrieve_response.rb +227 -0
- data/lib/sentdm/models/message_send_quick_message_params.rb +34 -0
- data/lib/sentdm/models/message_send_to_contact_params.rb +46 -0
- data/lib/sentdm/models/message_send_to_phone_params.rb +47 -0
- data/lib/sentdm/models/number_lookup_retrieve_params.rb +20 -0
- data/lib/sentdm/models/number_lookup_retrieve_response.rb +83 -0
- data/lib/sentdm/models/organization_list_params.rb +14 -0
- data/lib/sentdm/models/organization_list_response.rb +57 -0
- data/lib/sentdm/models/organization_retrieve_profiles_params.rb +14 -0
- data/lib/sentdm/models/organization_retrieve_profiles_response.rb +22 -0
- data/lib/sentdm/models/organizations/customer_user.rb +96 -0
- data/lib/sentdm/models/organizations/user_delete_params.rb +22 -0
- data/lib/sentdm/models/organizations/user_invite_params.rb +40 -0
- data/lib/sentdm/models/organizations/user_list_params.rb +28 -0
- data/lib/sentdm/models/organizations/user_list_response.rb +36 -0
- data/lib/sentdm/models/organizations/user_retrieve_params.rb +22 -0
- data/lib/sentdm/models/organizations/user_update_role_params.rb +28 -0
- data/lib/sentdm/models/profile_summary.rb +45 -0
- data/lib/sentdm/models/template_body_content.rb +27 -0
- data/lib/sentdm/models/template_create_params.rb +53 -0
- data/lib/sentdm/models/template_definition.rb +310 -0
- data/lib/sentdm/models/template_delete_params.rb +14 -0
- data/lib/sentdm/models/template_list_params.rb +54 -0
- data/lib/sentdm/models/template_list_response.rb +40 -0
- data/lib/sentdm/models/template_response.rb +100 -0
- data/lib/sentdm/models/template_retrieve_params.rb +14 -0
- data/lib/sentdm/models/template_variable.rb +74 -0
- data/lib/sentdm/models.rb +83 -0
- data/lib/sentdm/request_options.rb +77 -0
- data/lib/sentdm/resources/contacts.rb +88 -0
- data/lib/sentdm/resources/messages.rb +130 -0
- data/lib/sentdm/resources/number_lookup.rb +37 -0
- data/lib/sentdm/resources/organizations/users.rb +150 -0
- data/lib/sentdm/resources/organizations.rb +58 -0
- data/lib/sentdm/resources/templates.rb +131 -0
- data/lib/sentdm/version.rb +5 -0
- data/lib/sentdm.rb +94 -0
- data/manifest.yaml +17 -0
- data/rbi/sentdm/client.rbi +80 -0
- data/rbi/sentdm/errors.rbi +205 -0
- data/rbi/sentdm/file_part.rbi +37 -0
- data/rbi/sentdm/internal/transport/base_client.rbi +297 -0
- data/rbi/sentdm/internal/transport/pooled_net_requester.rbi +82 -0
- data/rbi/sentdm/internal/type/array_of.rbi +104 -0
- data/rbi/sentdm/internal/type/base_model.rbi +299 -0
- data/rbi/sentdm/internal/type/base_page.rbi +42 -0
- data/rbi/sentdm/internal/type/boolean.rbi +58 -0
- data/rbi/sentdm/internal/type/converter.rbi +204 -0
- data/rbi/sentdm/internal/type/enum.rbi +82 -0
- data/rbi/sentdm/internal/type/file_input.rbi +59 -0
- data/rbi/sentdm/internal/type/hash_of.rbi +104 -0
- data/rbi/sentdm/internal/type/request_parameters.rbi +29 -0
- data/rbi/sentdm/internal/type/union.rbi +126 -0
- data/rbi/sentdm/internal/type/unknown.rbi +58 -0
- data/rbi/sentdm/internal/util.rbi +484 -0
- data/rbi/sentdm/internal.rbi +16 -0
- data/rbi/sentdm/models/contact_list_item.rbi +144 -0
- data/rbi/sentdm/models/contact_list_params.rbi +51 -0
- data/rbi/sentdm/models/contact_list_response.rbi +74 -0
- data/rbi/sentdm/models/contact_retrieve_by_phone_params.rbi +40 -0
- data/rbi/sentdm/models/contact_retrieve_id_params.rbi +40 -0
- data/rbi/sentdm/models/message_retrieve_params.rbi +27 -0
- data/rbi/sentdm/models/message_retrieve_response.rbi +376 -0
- data/rbi/sentdm/models/message_send_quick_message_params.rbi +56 -0
- data/rbi/sentdm/models/message_send_to_contact_params.rbi +63 -0
- data/rbi/sentdm/models/message_send_to_phone_params.rbi +65 -0
- data/rbi/sentdm/models/number_lookup_retrieve_params.rbi +35 -0
- data/rbi/sentdm/models/number_lookup_retrieve_response.rbi +132 -0
- data/rbi/sentdm/models/organization_list_params.rbi +27 -0
- data/rbi/sentdm/models/organization_list_response.rbi +131 -0
- data/rbi/sentdm/models/organization_retrieve_profiles_params.rbi +30 -0
- data/rbi/sentdm/models/organization_retrieve_profiles_response.rbi +47 -0
- data/rbi/sentdm/models/organizations/customer_user.rbi +129 -0
- data/rbi/sentdm/models/organizations/user_delete_params.rbi +40 -0
- data/rbi/sentdm/models/organizations/user_invite_params.rbi +73 -0
- data/rbi/sentdm/models/organizations/user_list_params.rbi +48 -0
- data/rbi/sentdm/models/organizations/user_list_response.rbi +71 -0
- data/rbi/sentdm/models/organizations/user_retrieve_params.rbi +40 -0
- data/rbi/sentdm/models/organizations/user_update_role_params.rbi +51 -0
- data/rbi/sentdm/models/profile_summary.rbi +74 -0
- data/rbi/sentdm/models/template_body_content.rbi +46 -0
- data/rbi/sentdm/models/template_create_params.rbi +81 -0
- data/rbi/sentdm/models/template_definition.rbi +497 -0
- data/rbi/sentdm/models/template_delete_params.rbi +27 -0
- data/rbi/sentdm/models/template_list_params.rbi +75 -0
- data/rbi/sentdm/models/template_list_response.rbi +74 -0
- data/rbi/sentdm/models/template_response.rbi +149 -0
- data/rbi/sentdm/models/template_retrieve_params.rbi +27 -0
- data/rbi/sentdm/models/template_variable.rbi +120 -0
- data/rbi/sentdm/models.rbi +46 -0
- data/rbi/sentdm/request_options.rbi +55 -0
- data/rbi/sentdm/resources/contacts.rbi +63 -0
- data/rbi/sentdm/resources/messages.rbi +97 -0
- data/rbi/sentdm/resources/number_lookup.rbi +24 -0
- data/rbi/sentdm/resources/organizations/users.rbi +95 -0
- data/rbi/sentdm/resources/organizations.rbi +37 -0
- data/rbi/sentdm/resources/templates.rbi +103 -0
- data/rbi/sentdm/version.rbi +5 -0
- data/sig/sentdm/client.rbs +41 -0
- data/sig/sentdm/errors.rbs +117 -0
- data/sig/sentdm/file_part.rbs +21 -0
- data/sig/sentdm/internal/transport/base_client.rbs +133 -0
- data/sig/sentdm/internal/transport/pooled_net_requester.rbs +48 -0
- data/sig/sentdm/internal/type/array_of.rbs +48 -0
- data/sig/sentdm/internal/type/base_model.rbs +102 -0
- data/sig/sentdm/internal/type/base_page.rbs +24 -0
- data/sig/sentdm/internal/type/boolean.rbs +26 -0
- data/sig/sentdm/internal/type/converter.rbs +79 -0
- data/sig/sentdm/internal/type/enum.rbs +32 -0
- data/sig/sentdm/internal/type/file_input.rbs +25 -0
- data/sig/sentdm/internal/type/hash_of.rbs +48 -0
- data/sig/sentdm/internal/type/request_parameters.rbs +17 -0
- data/sig/sentdm/internal/type/union.rbs +52 -0
- data/sig/sentdm/internal/type/unknown.rbs +26 -0
- data/sig/sentdm/internal/util.rbs +185 -0
- data/sig/sentdm/internal.rbs +9 -0
- data/sig/sentdm/models/contact_list_item.rbs +85 -0
- data/sig/sentdm/models/contact_list_params.rbs +28 -0
- data/sig/sentdm/models/contact_list_response.rbs +52 -0
- data/sig/sentdm/models/contact_retrieve_by_phone_params.rbs +23 -0
- data/sig/sentdm/models/contact_retrieve_id_params.rbs +20 -0
- data/sig/sentdm/models/message_retrieve_params.rbs +15 -0
- data/sig/sentdm/models/message_retrieve_response.rbs +188 -0
- data/sig/sentdm/models/message_send_quick_message_params.rbs +28 -0
- data/sig/sentdm/models/message_send_to_contact_params.rbs +36 -0
- data/sig/sentdm/models/message_send_to_phone_params.rbs +36 -0
- data/sig/sentdm/models/number_lookup_retrieve_params.rbs +23 -0
- data/sig/sentdm/models/number_lookup_retrieve_response.rbs +78 -0
- data/sig/sentdm/models/organization_list_params.rbs +15 -0
- data/sig/sentdm/models/organization_list_response.rbs +76 -0
- data/sig/sentdm/models/organization_retrieve_profiles_params.rbs +15 -0
- data/sig/sentdm/models/organization_retrieve_profiles_response.rbs +28 -0
- data/sig/sentdm/models/organizations/customer_user.rbs +91 -0
- data/sig/sentdm/models/organizations/user_delete_params.rbs +25 -0
- data/sig/sentdm/models/organizations/user_invite_params.rbs +44 -0
- data/sig/sentdm/models/organizations/user_list_params.rbs +30 -0
- data/sig/sentdm/models/organizations/user_list_response.rbs +47 -0
- data/sig/sentdm/models/organizations/user_retrieve_params.rbs +25 -0
- data/sig/sentdm/models/organizations/user_update_role_params.rbs +32 -0
- data/sig/sentdm/models/profile_summary.rbs +51 -0
- data/sig/sentdm/models/template_body_content.rbs +32 -0
- data/sig/sentdm/models/template_create_params.rbs +43 -0
- data/sig/sentdm/models/template_definition.rbs +258 -0
- data/sig/sentdm/models/template_delete_params.rbs +15 -0
- data/sig/sentdm/models/template_list_params.rbs +46 -0
- data/sig/sentdm/models/template_list_response.rbs +52 -0
- data/sig/sentdm/models/template_response.rbs +92 -0
- data/sig/sentdm/models/template_retrieve_params.rbs +15 -0
- data/sig/sentdm/models/template_variable.rbs +87 -0
- data/sig/sentdm/models.rbs +43 -0
- data/sig/sentdm/request_options.rbs +34 -0
- data/sig/sentdm/resources/contacts.rbs +23 -0
- data/sig/sentdm/resources/messages.rbs +32 -0
- data/sig/sentdm/resources/number_lookup.rbs +12 -0
- data/sig/sentdm/resources/organizations/users.rbs +44 -0
- data/sig/sentdm/resources/organizations.rbs +18 -0
- data/sig/sentdm/resources/templates.rbs +31 -0
- data/sig/sentdm/version.rbs +3 -0
- metadata +259 -0
|
@@ -0,0 +1,74 @@
|
|
|
1
|
+
# typed: strong
|
|
2
|
+
|
|
3
|
+
module Sentdm
|
|
4
|
+
module Models
|
|
5
|
+
class ContactListResponse < Sentdm::Internal::Type::BaseModel
|
|
6
|
+
OrHash =
|
|
7
|
+
T.type_alias do
|
|
8
|
+
T.any(Sentdm::Models::ContactListResponse, Sentdm::Internal::AnyHash)
|
|
9
|
+
end
|
|
10
|
+
|
|
11
|
+
sig { returns(T.nilable(T::Array[Sentdm::ContactListItem])) }
|
|
12
|
+
attr_reader :items
|
|
13
|
+
|
|
14
|
+
sig { params(items: T::Array[Sentdm::ContactListItem::OrHash]).void }
|
|
15
|
+
attr_writer :items
|
|
16
|
+
|
|
17
|
+
sig { returns(T.nilable(Integer)) }
|
|
18
|
+
attr_reader :page
|
|
19
|
+
|
|
20
|
+
sig { params(page: Integer).void }
|
|
21
|
+
attr_writer :page
|
|
22
|
+
|
|
23
|
+
sig { returns(T.nilable(Integer)) }
|
|
24
|
+
attr_reader :page_size
|
|
25
|
+
|
|
26
|
+
sig { params(page_size: Integer).void }
|
|
27
|
+
attr_writer :page_size
|
|
28
|
+
|
|
29
|
+
sig { returns(T.nilable(Integer)) }
|
|
30
|
+
attr_reader :total_count
|
|
31
|
+
|
|
32
|
+
sig { params(total_count: Integer).void }
|
|
33
|
+
attr_writer :total_count
|
|
34
|
+
|
|
35
|
+
sig { returns(T.nilable(Integer)) }
|
|
36
|
+
attr_reader :total_pages
|
|
37
|
+
|
|
38
|
+
sig { params(total_pages: Integer).void }
|
|
39
|
+
attr_writer :total_pages
|
|
40
|
+
|
|
41
|
+
sig do
|
|
42
|
+
params(
|
|
43
|
+
items: T::Array[Sentdm::ContactListItem::OrHash],
|
|
44
|
+
page: Integer,
|
|
45
|
+
page_size: Integer,
|
|
46
|
+
total_count: Integer,
|
|
47
|
+
total_pages: Integer
|
|
48
|
+
).returns(T.attached_class)
|
|
49
|
+
end
|
|
50
|
+
def self.new(
|
|
51
|
+
items: nil,
|
|
52
|
+
page: nil,
|
|
53
|
+
page_size: nil,
|
|
54
|
+
total_count: nil,
|
|
55
|
+
total_pages: nil
|
|
56
|
+
)
|
|
57
|
+
end
|
|
58
|
+
|
|
59
|
+
sig do
|
|
60
|
+
override.returns(
|
|
61
|
+
{
|
|
62
|
+
items: T::Array[Sentdm::ContactListItem],
|
|
63
|
+
page: Integer,
|
|
64
|
+
page_size: Integer,
|
|
65
|
+
total_count: Integer,
|
|
66
|
+
total_pages: Integer
|
|
67
|
+
}
|
|
68
|
+
)
|
|
69
|
+
end
|
|
70
|
+
def to_hash
|
|
71
|
+
end
|
|
72
|
+
end
|
|
73
|
+
end
|
|
74
|
+
end
|
|
@@ -0,0 +1,40 @@
|
|
|
1
|
+
# typed: strong
|
|
2
|
+
|
|
3
|
+
module Sentdm
|
|
4
|
+
module Models
|
|
5
|
+
class ContactRetrieveByPhoneParams < Sentdm::Internal::Type::BaseModel
|
|
6
|
+
extend Sentdm::Internal::Type::RequestParameters::Converter
|
|
7
|
+
include Sentdm::Internal::Type::RequestParameters
|
|
8
|
+
|
|
9
|
+
OrHash =
|
|
10
|
+
T.type_alias do
|
|
11
|
+
T.any(Sentdm::ContactRetrieveByPhoneParams, Sentdm::Internal::AnyHash)
|
|
12
|
+
end
|
|
13
|
+
|
|
14
|
+
# The phone number in international format (e.g., +1234567890)
|
|
15
|
+
sig { returns(String) }
|
|
16
|
+
attr_accessor :phone_number
|
|
17
|
+
|
|
18
|
+
sig do
|
|
19
|
+
params(
|
|
20
|
+
phone_number: String,
|
|
21
|
+
request_options: Sentdm::RequestOptions::OrHash
|
|
22
|
+
).returns(T.attached_class)
|
|
23
|
+
end
|
|
24
|
+
def self.new(
|
|
25
|
+
# The phone number in international format (e.g., +1234567890)
|
|
26
|
+
phone_number:,
|
|
27
|
+
request_options: {}
|
|
28
|
+
)
|
|
29
|
+
end
|
|
30
|
+
|
|
31
|
+
sig do
|
|
32
|
+
override.returns(
|
|
33
|
+
{ phone_number: String, request_options: Sentdm::RequestOptions }
|
|
34
|
+
)
|
|
35
|
+
end
|
|
36
|
+
def to_hash
|
|
37
|
+
end
|
|
38
|
+
end
|
|
39
|
+
end
|
|
40
|
+
end
|
|
@@ -0,0 +1,40 @@
|
|
|
1
|
+
# typed: strong
|
|
2
|
+
|
|
3
|
+
module Sentdm
|
|
4
|
+
module Models
|
|
5
|
+
class ContactRetrieveIDParams < Sentdm::Internal::Type::BaseModel
|
|
6
|
+
extend Sentdm::Internal::Type::RequestParameters::Converter
|
|
7
|
+
include Sentdm::Internal::Type::RequestParameters
|
|
8
|
+
|
|
9
|
+
OrHash =
|
|
10
|
+
T.type_alias do
|
|
11
|
+
T.any(Sentdm::ContactRetrieveIDParams, Sentdm::Internal::AnyHash)
|
|
12
|
+
end
|
|
13
|
+
|
|
14
|
+
# The unique identifier (GUID) of the resource to retrieve
|
|
15
|
+
sig { returns(String) }
|
|
16
|
+
attr_accessor :id
|
|
17
|
+
|
|
18
|
+
sig do
|
|
19
|
+
params(
|
|
20
|
+
id: String,
|
|
21
|
+
request_options: Sentdm::RequestOptions::OrHash
|
|
22
|
+
).returns(T.attached_class)
|
|
23
|
+
end
|
|
24
|
+
def self.new(
|
|
25
|
+
# The unique identifier (GUID) of the resource to retrieve
|
|
26
|
+
id:,
|
|
27
|
+
request_options: {}
|
|
28
|
+
)
|
|
29
|
+
end
|
|
30
|
+
|
|
31
|
+
sig do
|
|
32
|
+
override.returns(
|
|
33
|
+
{ id: String, request_options: Sentdm::RequestOptions }
|
|
34
|
+
)
|
|
35
|
+
end
|
|
36
|
+
def to_hash
|
|
37
|
+
end
|
|
38
|
+
end
|
|
39
|
+
end
|
|
40
|
+
end
|
|
@@ -0,0 +1,27 @@
|
|
|
1
|
+
# typed: strong
|
|
2
|
+
|
|
3
|
+
module Sentdm
|
|
4
|
+
module Models
|
|
5
|
+
class MessageRetrieveParams < Sentdm::Internal::Type::BaseModel
|
|
6
|
+
extend Sentdm::Internal::Type::RequestParameters::Converter
|
|
7
|
+
include Sentdm::Internal::Type::RequestParameters
|
|
8
|
+
|
|
9
|
+
OrHash =
|
|
10
|
+
T.type_alias do
|
|
11
|
+
T.any(Sentdm::MessageRetrieveParams, Sentdm::Internal::AnyHash)
|
|
12
|
+
end
|
|
13
|
+
|
|
14
|
+
sig do
|
|
15
|
+
params(request_options: Sentdm::RequestOptions::OrHash).returns(
|
|
16
|
+
T.attached_class
|
|
17
|
+
)
|
|
18
|
+
end
|
|
19
|
+
def self.new(request_options: {})
|
|
20
|
+
end
|
|
21
|
+
|
|
22
|
+
sig { override.returns({ request_options: Sentdm::RequestOptions }) }
|
|
23
|
+
def to_hash
|
|
24
|
+
end
|
|
25
|
+
end
|
|
26
|
+
end
|
|
27
|
+
end
|
|
@@ -0,0 +1,376 @@
|
|
|
1
|
+
# typed: strong
|
|
2
|
+
|
|
3
|
+
module Sentdm
|
|
4
|
+
module Models
|
|
5
|
+
class MessageRetrieveResponse < Sentdm::Internal::Type::BaseModel
|
|
6
|
+
OrHash =
|
|
7
|
+
T.type_alias do
|
|
8
|
+
T.any(
|
|
9
|
+
Sentdm::Models::MessageRetrieveResponse,
|
|
10
|
+
Sentdm::Internal::AnyHash
|
|
11
|
+
)
|
|
12
|
+
end
|
|
13
|
+
|
|
14
|
+
# The unique identifier of the message
|
|
15
|
+
sig { returns(T.nilable(String)) }
|
|
16
|
+
attr_reader :id
|
|
17
|
+
|
|
18
|
+
sig { params(id: String).void }
|
|
19
|
+
attr_writer :id
|
|
20
|
+
|
|
21
|
+
# The messaging channel used (e.g., SMS, WhatsApp)
|
|
22
|
+
sig { returns(T.nilable(String)) }
|
|
23
|
+
attr_reader :channel
|
|
24
|
+
|
|
25
|
+
sig { params(channel: String).void }
|
|
26
|
+
attr_writer :channel
|
|
27
|
+
|
|
28
|
+
# The unique identifier of the contact who received the message
|
|
29
|
+
sig { returns(T.nilable(String)) }
|
|
30
|
+
attr_reader :contact_id
|
|
31
|
+
|
|
32
|
+
sig { params(contact_id: String).void }
|
|
33
|
+
attr_writer :contact_id
|
|
34
|
+
|
|
35
|
+
# The final price charged for sending this message
|
|
36
|
+
sig { returns(T.nilable(Float)) }
|
|
37
|
+
attr_accessor :corrected_price
|
|
38
|
+
|
|
39
|
+
# The date and time when the message was created
|
|
40
|
+
sig { returns(T.nilable(Time)) }
|
|
41
|
+
attr_reader :created_at
|
|
42
|
+
|
|
43
|
+
sig { params(created_at: Time).void }
|
|
44
|
+
attr_writer :created_at
|
|
45
|
+
|
|
46
|
+
# The unique identifier of the customer who sent the message
|
|
47
|
+
sig { returns(T.nilable(String)) }
|
|
48
|
+
attr_reader :customer_id
|
|
49
|
+
|
|
50
|
+
sig { params(customer_id: String).void }
|
|
51
|
+
attr_writer :customer_id
|
|
52
|
+
|
|
53
|
+
# A chronological list of status change events for this message. Each event
|
|
54
|
+
# includes a status and timestamp, following industry standards (Twilio, SendGrid,
|
|
55
|
+
# Mailgun). Events are ordered chronologically from oldest to newest.
|
|
56
|
+
sig do
|
|
57
|
+
returns(
|
|
58
|
+
T.nilable(T::Array[Sentdm::Models::MessageRetrieveResponse::Event])
|
|
59
|
+
)
|
|
60
|
+
end
|
|
61
|
+
attr_accessor :events
|
|
62
|
+
|
|
63
|
+
# The message body content with variables substituted
|
|
64
|
+
sig do
|
|
65
|
+
returns(T.nilable(Sentdm::Models::MessageRetrieveResponse::MessageBody))
|
|
66
|
+
end
|
|
67
|
+
attr_reader :message_body
|
|
68
|
+
|
|
69
|
+
sig do
|
|
70
|
+
params(
|
|
71
|
+
message_body:
|
|
72
|
+
T.nilable(
|
|
73
|
+
Sentdm::Models::MessageRetrieveResponse::MessageBody::OrHash
|
|
74
|
+
)
|
|
75
|
+
).void
|
|
76
|
+
end
|
|
77
|
+
attr_writer :message_body
|
|
78
|
+
|
|
79
|
+
# The phone number of the recipient (E.164 format)
|
|
80
|
+
sig { returns(T.nilable(String)) }
|
|
81
|
+
attr_reader :phone_number
|
|
82
|
+
|
|
83
|
+
sig { params(phone_number: String).void }
|
|
84
|
+
attr_writer :phone_number
|
|
85
|
+
|
|
86
|
+
# The phone number in international format
|
|
87
|
+
sig { returns(T.nilable(String)) }
|
|
88
|
+
attr_reader :phone_number_international
|
|
89
|
+
|
|
90
|
+
sig { params(phone_number_international: String).void }
|
|
91
|
+
attr_writer :phone_number_international
|
|
92
|
+
|
|
93
|
+
# The region code of the phone number (e.g., US, GB, DE)
|
|
94
|
+
sig { returns(T.nilable(String)) }
|
|
95
|
+
attr_reader :region_code
|
|
96
|
+
|
|
97
|
+
sig { params(region_code: String).void }
|
|
98
|
+
attr_writer :region_code
|
|
99
|
+
|
|
100
|
+
# The delivery status of the message (e.g., sent, delivered, failed, read)
|
|
101
|
+
sig { returns(T.nilable(String)) }
|
|
102
|
+
attr_reader :status
|
|
103
|
+
|
|
104
|
+
sig { params(status: String).void }
|
|
105
|
+
attr_writer :status
|
|
106
|
+
|
|
107
|
+
# The category of the template (e.g., MARKETING, UTILITY, AUTHENTICATION)
|
|
108
|
+
sig { returns(T.nilable(String)) }
|
|
109
|
+
attr_reader :template_category
|
|
110
|
+
|
|
111
|
+
sig { params(template_category: String).void }
|
|
112
|
+
attr_writer :template_category
|
|
113
|
+
|
|
114
|
+
# The unique identifier of the template used for this message (null if no template
|
|
115
|
+
# was used)
|
|
116
|
+
sig { returns(T.nilable(String)) }
|
|
117
|
+
attr_accessor :template_id
|
|
118
|
+
|
|
119
|
+
# The display name of the template
|
|
120
|
+
sig { returns(T.nilable(String)) }
|
|
121
|
+
attr_reader :template_name
|
|
122
|
+
|
|
123
|
+
sig { params(template_name: String).void }
|
|
124
|
+
attr_writer :template_name
|
|
125
|
+
|
|
126
|
+
# Represents a sent message with comprehensive delivery and template information
|
|
127
|
+
# (v2)
|
|
128
|
+
sig do
|
|
129
|
+
params(
|
|
130
|
+
id: String,
|
|
131
|
+
channel: String,
|
|
132
|
+
contact_id: String,
|
|
133
|
+
corrected_price: T.nilable(Float),
|
|
134
|
+
created_at: Time,
|
|
135
|
+
customer_id: String,
|
|
136
|
+
events:
|
|
137
|
+
T.nilable(
|
|
138
|
+
T::Array[Sentdm::Models::MessageRetrieveResponse::Event::OrHash]
|
|
139
|
+
),
|
|
140
|
+
message_body:
|
|
141
|
+
T.nilable(
|
|
142
|
+
Sentdm::Models::MessageRetrieveResponse::MessageBody::OrHash
|
|
143
|
+
),
|
|
144
|
+
phone_number: String,
|
|
145
|
+
phone_number_international: String,
|
|
146
|
+
region_code: String,
|
|
147
|
+
status: String,
|
|
148
|
+
template_category: String,
|
|
149
|
+
template_id: T.nilable(String),
|
|
150
|
+
template_name: String
|
|
151
|
+
).returns(T.attached_class)
|
|
152
|
+
end
|
|
153
|
+
def self.new(
|
|
154
|
+
# The unique identifier of the message
|
|
155
|
+
id: nil,
|
|
156
|
+
# The messaging channel used (e.g., SMS, WhatsApp)
|
|
157
|
+
channel: nil,
|
|
158
|
+
# The unique identifier of the contact who received the message
|
|
159
|
+
contact_id: nil,
|
|
160
|
+
# The final price charged for sending this message
|
|
161
|
+
corrected_price: nil,
|
|
162
|
+
# The date and time when the message was created
|
|
163
|
+
created_at: nil,
|
|
164
|
+
# The unique identifier of the customer who sent the message
|
|
165
|
+
customer_id: nil,
|
|
166
|
+
# A chronological list of status change events for this message. Each event
|
|
167
|
+
# includes a status and timestamp, following industry standards (Twilio, SendGrid,
|
|
168
|
+
# Mailgun). Events are ordered chronologically from oldest to newest.
|
|
169
|
+
events: nil,
|
|
170
|
+
# The message body content with variables substituted
|
|
171
|
+
message_body: nil,
|
|
172
|
+
# The phone number of the recipient (E.164 format)
|
|
173
|
+
phone_number: nil,
|
|
174
|
+
# The phone number in international format
|
|
175
|
+
phone_number_international: nil,
|
|
176
|
+
# The region code of the phone number (e.g., US, GB, DE)
|
|
177
|
+
region_code: nil,
|
|
178
|
+
# The delivery status of the message (e.g., sent, delivered, failed, read)
|
|
179
|
+
status: nil,
|
|
180
|
+
# The category of the template (e.g., MARKETING, UTILITY, AUTHENTICATION)
|
|
181
|
+
template_category: nil,
|
|
182
|
+
# The unique identifier of the template used for this message (null if no template
|
|
183
|
+
# was used)
|
|
184
|
+
template_id: nil,
|
|
185
|
+
# The display name of the template
|
|
186
|
+
template_name: nil
|
|
187
|
+
)
|
|
188
|
+
end
|
|
189
|
+
|
|
190
|
+
sig do
|
|
191
|
+
override.returns(
|
|
192
|
+
{
|
|
193
|
+
id: String,
|
|
194
|
+
channel: String,
|
|
195
|
+
contact_id: String,
|
|
196
|
+
corrected_price: T.nilable(Float),
|
|
197
|
+
created_at: Time,
|
|
198
|
+
customer_id: String,
|
|
199
|
+
events:
|
|
200
|
+
T.nilable(
|
|
201
|
+
T::Array[Sentdm::Models::MessageRetrieveResponse::Event]
|
|
202
|
+
),
|
|
203
|
+
message_body:
|
|
204
|
+
T.nilable(Sentdm::Models::MessageRetrieveResponse::MessageBody),
|
|
205
|
+
phone_number: String,
|
|
206
|
+
phone_number_international: String,
|
|
207
|
+
region_code: String,
|
|
208
|
+
status: String,
|
|
209
|
+
template_category: String,
|
|
210
|
+
template_id: T.nilable(String),
|
|
211
|
+
template_name: String
|
|
212
|
+
}
|
|
213
|
+
)
|
|
214
|
+
end
|
|
215
|
+
def to_hash
|
|
216
|
+
end
|
|
217
|
+
|
|
218
|
+
class Event < Sentdm::Internal::Type::BaseModel
|
|
219
|
+
OrHash =
|
|
220
|
+
T.type_alias do
|
|
221
|
+
T.any(
|
|
222
|
+
Sentdm::Models::MessageRetrieveResponse::Event,
|
|
223
|
+
Sentdm::Internal::AnyHash
|
|
224
|
+
)
|
|
225
|
+
end
|
|
226
|
+
|
|
227
|
+
# Optional human-readable description of the event Useful for error messages or
|
|
228
|
+
# additional context
|
|
229
|
+
sig { returns(T.nilable(String)) }
|
|
230
|
+
attr_accessor :description
|
|
231
|
+
|
|
232
|
+
# The status of the message at this point in time Examples: "queued", "sent",
|
|
233
|
+
# "delivered", "read", "failed"
|
|
234
|
+
sig { returns(T.nilable(String)) }
|
|
235
|
+
attr_reader :status
|
|
236
|
+
|
|
237
|
+
sig { params(status: String).void }
|
|
238
|
+
attr_writer :status
|
|
239
|
+
|
|
240
|
+
# When this status change occurred (ISO 8601 format)
|
|
241
|
+
sig { returns(T.nilable(Time)) }
|
|
242
|
+
attr_reader :timestamp
|
|
243
|
+
|
|
244
|
+
sig { params(timestamp: Time).void }
|
|
245
|
+
attr_writer :timestamp
|
|
246
|
+
|
|
247
|
+
# Represents a status change event in a message's lifecycle Follows industry
|
|
248
|
+
# standards (Twilio, SendGrid, Mailgun pattern)
|
|
249
|
+
sig do
|
|
250
|
+
params(
|
|
251
|
+
description: T.nilable(String),
|
|
252
|
+
status: String,
|
|
253
|
+
timestamp: Time
|
|
254
|
+
).returns(T.attached_class)
|
|
255
|
+
end
|
|
256
|
+
def self.new(
|
|
257
|
+
# Optional human-readable description of the event Useful for error messages or
|
|
258
|
+
# additional context
|
|
259
|
+
description: nil,
|
|
260
|
+
# The status of the message at this point in time Examples: "queued", "sent",
|
|
261
|
+
# "delivered", "read", "failed"
|
|
262
|
+
status: nil,
|
|
263
|
+
# When this status change occurred (ISO 8601 format)
|
|
264
|
+
timestamp: nil
|
|
265
|
+
)
|
|
266
|
+
end
|
|
267
|
+
|
|
268
|
+
sig do
|
|
269
|
+
override.returns(
|
|
270
|
+
{ description: T.nilable(String), status: String, timestamp: Time }
|
|
271
|
+
)
|
|
272
|
+
end
|
|
273
|
+
def to_hash
|
|
274
|
+
end
|
|
275
|
+
end
|
|
276
|
+
|
|
277
|
+
class MessageBody < Sentdm::Internal::Type::BaseModel
|
|
278
|
+
OrHash =
|
|
279
|
+
T.type_alias do
|
|
280
|
+
T.any(
|
|
281
|
+
Sentdm::Models::MessageRetrieveResponse::MessageBody,
|
|
282
|
+
Sentdm::Internal::AnyHash
|
|
283
|
+
)
|
|
284
|
+
end
|
|
285
|
+
|
|
286
|
+
sig do
|
|
287
|
+
returns(
|
|
288
|
+
T.nilable(
|
|
289
|
+
T::Array[
|
|
290
|
+
Sentdm::Models::MessageRetrieveResponse::MessageBody::Button
|
|
291
|
+
]
|
|
292
|
+
)
|
|
293
|
+
)
|
|
294
|
+
end
|
|
295
|
+
attr_accessor :buttons
|
|
296
|
+
|
|
297
|
+
sig { returns(T.nilable(String)) }
|
|
298
|
+
attr_reader :content
|
|
299
|
+
|
|
300
|
+
sig { params(content: String).void }
|
|
301
|
+
attr_writer :content
|
|
302
|
+
|
|
303
|
+
sig { returns(T.nilable(String)) }
|
|
304
|
+
attr_accessor :footer
|
|
305
|
+
|
|
306
|
+
sig { returns(T.nilable(String)) }
|
|
307
|
+
attr_accessor :header
|
|
308
|
+
|
|
309
|
+
# The message body content with variables substituted
|
|
310
|
+
sig do
|
|
311
|
+
params(
|
|
312
|
+
buttons:
|
|
313
|
+
T.nilable(
|
|
314
|
+
T::Array[
|
|
315
|
+
Sentdm::Models::MessageRetrieveResponse::MessageBody::Button::OrHash
|
|
316
|
+
]
|
|
317
|
+
),
|
|
318
|
+
content: String,
|
|
319
|
+
footer: T.nilable(String),
|
|
320
|
+
header: T.nilable(String)
|
|
321
|
+
).returns(T.attached_class)
|
|
322
|
+
end
|
|
323
|
+
def self.new(buttons: nil, content: nil, footer: nil, header: nil)
|
|
324
|
+
end
|
|
325
|
+
|
|
326
|
+
sig do
|
|
327
|
+
override.returns(
|
|
328
|
+
{
|
|
329
|
+
buttons:
|
|
330
|
+
T.nilable(
|
|
331
|
+
T::Array[
|
|
332
|
+
Sentdm::Models::MessageRetrieveResponse::MessageBody::Button
|
|
333
|
+
]
|
|
334
|
+
),
|
|
335
|
+
content: String,
|
|
336
|
+
footer: T.nilable(String),
|
|
337
|
+
header: T.nilable(String)
|
|
338
|
+
}
|
|
339
|
+
)
|
|
340
|
+
end
|
|
341
|
+
def to_hash
|
|
342
|
+
end
|
|
343
|
+
|
|
344
|
+
class Button < Sentdm::Internal::Type::BaseModel
|
|
345
|
+
OrHash =
|
|
346
|
+
T.type_alias do
|
|
347
|
+
T.any(
|
|
348
|
+
Sentdm::Models::MessageRetrieveResponse::MessageBody::Button,
|
|
349
|
+
Sentdm::Internal::AnyHash
|
|
350
|
+
)
|
|
351
|
+
end
|
|
352
|
+
|
|
353
|
+
sig { returns(T.nilable(String)) }
|
|
354
|
+
attr_reader :type
|
|
355
|
+
|
|
356
|
+
sig { params(type: String).void }
|
|
357
|
+
attr_writer :type
|
|
358
|
+
|
|
359
|
+
sig { returns(T.nilable(String)) }
|
|
360
|
+
attr_reader :value
|
|
361
|
+
|
|
362
|
+
sig { params(value: String).void }
|
|
363
|
+
attr_writer :value
|
|
364
|
+
|
|
365
|
+
sig { params(type: String, value: String).returns(T.attached_class) }
|
|
366
|
+
def self.new(type: nil, value: nil)
|
|
367
|
+
end
|
|
368
|
+
|
|
369
|
+
sig { override.returns({ type: String, value: String }) }
|
|
370
|
+
def to_hash
|
|
371
|
+
end
|
|
372
|
+
end
|
|
373
|
+
end
|
|
374
|
+
end
|
|
375
|
+
end
|
|
376
|
+
end
|
|
@@ -0,0 +1,56 @@
|
|
|
1
|
+
# typed: strong
|
|
2
|
+
|
|
3
|
+
module Sentdm
|
|
4
|
+
module Models
|
|
5
|
+
class MessageSendQuickMessageParams < Sentdm::Internal::Type::BaseModel
|
|
6
|
+
extend Sentdm::Internal::Type::RequestParameters::Converter
|
|
7
|
+
include Sentdm::Internal::Type::RequestParameters
|
|
8
|
+
|
|
9
|
+
OrHash =
|
|
10
|
+
T.type_alias do
|
|
11
|
+
T.any(
|
|
12
|
+
Sentdm::MessageSendQuickMessageParams,
|
|
13
|
+
Sentdm::Internal::AnyHash
|
|
14
|
+
)
|
|
15
|
+
end
|
|
16
|
+
|
|
17
|
+
# The custom message content to include in the template
|
|
18
|
+
sig { returns(String) }
|
|
19
|
+
attr_accessor :custom_message
|
|
20
|
+
|
|
21
|
+
# The phone number to send the message to, in international format (e.g.,
|
|
22
|
+
# +1234567890)
|
|
23
|
+
sig { returns(String) }
|
|
24
|
+
attr_accessor :phone_number
|
|
25
|
+
|
|
26
|
+
sig do
|
|
27
|
+
params(
|
|
28
|
+
custom_message: String,
|
|
29
|
+
phone_number: String,
|
|
30
|
+
request_options: Sentdm::RequestOptions::OrHash
|
|
31
|
+
).returns(T.attached_class)
|
|
32
|
+
end
|
|
33
|
+
def self.new(
|
|
34
|
+
# The custom message content to include in the template
|
|
35
|
+
custom_message:,
|
|
36
|
+
# The phone number to send the message to, in international format (e.g.,
|
|
37
|
+
# +1234567890)
|
|
38
|
+
phone_number:,
|
|
39
|
+
request_options: {}
|
|
40
|
+
)
|
|
41
|
+
end
|
|
42
|
+
|
|
43
|
+
sig do
|
|
44
|
+
override.returns(
|
|
45
|
+
{
|
|
46
|
+
custom_message: String,
|
|
47
|
+
phone_number: String,
|
|
48
|
+
request_options: Sentdm::RequestOptions
|
|
49
|
+
}
|
|
50
|
+
)
|
|
51
|
+
end
|
|
52
|
+
def to_hash
|
|
53
|
+
end
|
|
54
|
+
end
|
|
55
|
+
end
|
|
56
|
+
end
|
|
@@ -0,0 +1,63 @@
|
|
|
1
|
+
# typed: strong
|
|
2
|
+
|
|
3
|
+
module Sentdm
|
|
4
|
+
module Models
|
|
5
|
+
class MessageSendToContactParams < Sentdm::Internal::Type::BaseModel
|
|
6
|
+
extend Sentdm::Internal::Type::RequestParameters::Converter
|
|
7
|
+
include Sentdm::Internal::Type::RequestParameters
|
|
8
|
+
|
|
9
|
+
OrHash =
|
|
10
|
+
T.type_alias do
|
|
11
|
+
T.any(Sentdm::MessageSendToContactParams, Sentdm::Internal::AnyHash)
|
|
12
|
+
end
|
|
13
|
+
|
|
14
|
+
# The unique identifier of the contact to send the message to
|
|
15
|
+
sig { returns(String) }
|
|
16
|
+
attr_accessor :contact_id
|
|
17
|
+
|
|
18
|
+
# The unique identifier of the template to use for the message
|
|
19
|
+
sig { returns(String) }
|
|
20
|
+
attr_accessor :template_id
|
|
21
|
+
|
|
22
|
+
# Optional key-value pairs of template variables to replace in the template body.
|
|
23
|
+
# For example, if your template contains "Hello {{name}}", you would provide {
|
|
24
|
+
# "name": "John Doe" }
|
|
25
|
+
sig { returns(T.nilable(T::Hash[Symbol, String])) }
|
|
26
|
+
attr_accessor :template_variables
|
|
27
|
+
|
|
28
|
+
sig do
|
|
29
|
+
params(
|
|
30
|
+
contact_id: String,
|
|
31
|
+
template_id: String,
|
|
32
|
+
template_variables: T.nilable(T::Hash[Symbol, String]),
|
|
33
|
+
request_options: Sentdm::RequestOptions::OrHash
|
|
34
|
+
).returns(T.attached_class)
|
|
35
|
+
end
|
|
36
|
+
def self.new(
|
|
37
|
+
# The unique identifier of the contact to send the message to
|
|
38
|
+
contact_id:,
|
|
39
|
+
# The unique identifier of the template to use for the message
|
|
40
|
+
template_id:,
|
|
41
|
+
# Optional key-value pairs of template variables to replace in the template body.
|
|
42
|
+
# For example, if your template contains "Hello {{name}}", you would provide {
|
|
43
|
+
# "name": "John Doe" }
|
|
44
|
+
template_variables: nil,
|
|
45
|
+
request_options: {}
|
|
46
|
+
)
|
|
47
|
+
end
|
|
48
|
+
|
|
49
|
+
sig do
|
|
50
|
+
override.returns(
|
|
51
|
+
{
|
|
52
|
+
contact_id: String,
|
|
53
|
+
template_id: String,
|
|
54
|
+
template_variables: T.nilable(T::Hash[Symbol, String]),
|
|
55
|
+
request_options: Sentdm::RequestOptions
|
|
56
|
+
}
|
|
57
|
+
)
|
|
58
|
+
end
|
|
59
|
+
def to_hash
|
|
60
|
+
end
|
|
61
|
+
end
|
|
62
|
+
end
|
|
63
|
+
end
|