sentdm 0.30.0 → 0.32.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 +20 -0
- data/README.md +29 -1
- data/lib/sentdm/internal/contacts_page.rb +115 -0
- data/lib/sentdm/internal/conversations_page.rb +115 -0
- data/lib/sentdm/internal/templates_page.rb +115 -0
- data/lib/sentdm/internal/webhook_events_page.rb +115 -0
- data/lib/sentdm/internal/webhooks_page.rb +115 -0
- data/lib/sentdm/models/api_response_of_conversation_messages_list.rb +0 -1
- data/lib/sentdm/models/channel_event.rb +78 -0
- data/lib/sentdm/models/channel_event_payload.rb +128 -0
- data/lib/sentdm/models/contact_event.rb +69 -0
- data/lib/sentdm/models/contact_event_payload.rb +111 -0
- data/lib/sentdm/models/contact_list_params.rb +13 -13
- data/lib/sentdm/models/contact_response.rb +1 -0
- data/lib/sentdm/models/conversation_list_messages_params.rb +5 -5
- data/lib/sentdm/models/conversation_list_params.rb +5 -5
- data/lib/sentdm/models/inbound_message_event.rb +16 -8
- data/lib/sentdm/models/message_event.rb +16 -8
- data/lib/sentdm/models/message_event_payload.rb +11 -1
- data/lib/sentdm/models/template.rb +37 -5
- data/lib/sentdm/models/template_body.rb +20 -11
- data/lib/sentdm/models/template_body_content.rb +35 -3
- data/lib/sentdm/models/template_button.rb +8 -2
- data/lib/sentdm/models/template_button_props.rb +12 -1
- data/lib/sentdm/models/template_definition.rb +14 -2
- data/lib/sentdm/models/template_event.rb +16 -8
- data/lib/sentdm/models/template_event_payload.rb +31 -4
- data/lib/sentdm/models/template_list_params.rb +17 -17
- data/lib/sentdm/models/template_variable.rb +20 -3
- data/lib/sentdm/models/webhook_list_events_params.rb +5 -5
- data/lib/sentdm/models/webhook_list_events_response.rb +116 -168
- data/lib/sentdm/models/webhook_list_params.rb +11 -11
- data/lib/sentdm/models/webhook_response.rb +1 -0
- data/lib/sentdm/models.rb +8 -0
- data/lib/sentdm/resources/contacts.rb +8 -7
- data/lib/sentdm/resources/conversations.rb +10 -8
- data/lib/sentdm/resources/templates.rb +38 -11
- data/lib/sentdm/resources/webhooks.rb +12 -10
- data/lib/sentdm/version.rb +1 -1
- data/lib/sentdm.rb +9 -3
- data/rbi/sentdm/internal/contacts_page.rbi +71 -0
- data/rbi/sentdm/internal/conversations_page.rbi +71 -0
- data/rbi/sentdm/internal/templates_page.rbi +71 -0
- data/rbi/sentdm/internal/webhook_events_page.rbi +71 -0
- data/rbi/sentdm/internal/webhooks_page.rbi +71 -0
- data/rbi/sentdm/models/channel_event.rbi +128 -0
- data/rbi/sentdm/models/channel_event_payload.rbi +189 -0
- data/rbi/sentdm/models/contact_event.rbi +110 -0
- data/rbi/sentdm/models/contact_event_payload.rbi +164 -0
- data/rbi/sentdm/models/contact_list_params.rbi +19 -13
- data/rbi/sentdm/models/conversation_list_messages_params.rbi +12 -6
- data/rbi/sentdm/models/conversation_list_params.rbi +16 -5
- data/rbi/sentdm/models/inbound_message_event.rbi +18 -10
- data/rbi/sentdm/models/message_event.rbi +18 -10
- data/rbi/sentdm/models/message_event_payload.rbi +12 -0
- data/rbi/sentdm/models/template.rbi +58 -4
- data/rbi/sentdm/models/template_body.rbi +22 -13
- data/rbi/sentdm/models/template_body_content.rbi +59 -1
- data/rbi/sentdm/models/template_button.rbi +14 -2
- data/rbi/sentdm/models/template_button_props.rbi +22 -0
- data/rbi/sentdm/models/template_definition.rbi +20 -2
- data/rbi/sentdm/models/template_event.rbi +18 -10
- data/rbi/sentdm/models/template_event_payload.rbi +51 -8
- data/rbi/sentdm/models/template_list_params.rbi +22 -16
- data/rbi/sentdm/models/template_variable.rbi +28 -1
- data/rbi/sentdm/models/webhook_list_events_params.rbi +12 -6
- data/rbi/sentdm/models/webhook_list_events_response.rbi +120 -263
- data/rbi/sentdm/models/webhook_list_params.rbi +16 -10
- data/rbi/sentdm/models.rbi +8 -0
- data/rbi/sentdm/resources/contacts.rbi +6 -6
- data/rbi/sentdm/resources/conversations.rbi +14 -6
- data/rbi/sentdm/resources/templates.rbi +35 -9
- data/rbi/sentdm/resources/webhooks.rbi +12 -8
- data/sig/sentdm/internal/contacts_page.rbs +41 -0
- data/sig/sentdm/internal/conversations_page.rbs +41 -0
- data/sig/sentdm/internal/templates_page.rbs +44 -0
- data/sig/sentdm/internal/webhook_events_page.rbs +41 -0
- data/sig/sentdm/internal/webhooks_page.rbs +41 -0
- data/sig/sentdm/models/channel_event.rbs +44 -0
- data/sig/sentdm/models/channel_event_payload.rbs +63 -0
- data/sig/sentdm/models/contact_event.rbs +44 -0
- data/sig/sentdm/models/contact_event_payload.rbs +63 -0
- data/sig/sentdm/models/contact_list_params.rbs +11 -7
- data/sig/sentdm/models/conversation_list_messages_params.rbs +8 -4
- data/sig/sentdm/models/conversation_list_params.rbs +8 -4
- data/sig/sentdm/models/inbound_message_event.rbs +5 -0
- data/sig/sentdm/models/message_event.rbs +5 -0
- data/sig/sentdm/models/message_event_payload.rbs +5 -0
- data/sig/sentdm/models/template.rbs +5 -0
- data/sig/sentdm/models/template_event.rbs +5 -0
- data/sig/sentdm/models/template_event_payload.rbs +9 -6
- data/sig/sentdm/models/template_list_params.rbs +14 -10
- data/sig/sentdm/models/webhook_list_events_params.rbs +8 -4
- data/sig/sentdm/models/webhook_list_events_response.rbs +65 -127
- data/sig/sentdm/models/webhook_list_params.rbs +11 -7
- data/sig/sentdm/models.rbs +8 -0
- data/sig/sentdm/resources/contacts.rbs +3 -3
- data/sig/sentdm/resources/conversations.rbs +6 -6
- data/sig/sentdm/resources/templates.rbs +3 -3
- data/sig/sentdm/resources/webhooks.rbs +6 -6
- metadata +29 -11
- data/lib/sentdm/models/contact_list_response.rb +0 -65
- data/lib/sentdm/models/template_list_response.rb +0 -65
- data/lib/sentdm/models/webhook_list_response.rb +0 -65
- data/rbi/sentdm/models/contact_list_response.rbi +0 -128
- data/rbi/sentdm/models/template_list_response.rbi +0 -128
- data/rbi/sentdm/models/webhook_list_response.rbi +0 -128
- data/sig/sentdm/models/contact_list_response.rbs +0 -67
- data/sig/sentdm/models/template_list_response.rbs +0 -65
- data/sig/sentdm/models/webhook_list_response.rbs +0 -67
data/lib/sentdm.rb
CHANGED
|
@@ -52,6 +52,11 @@ require_relative "sentdm/errors"
|
|
|
52
52
|
require_relative "sentdm/internal/transport/base_client"
|
|
53
53
|
require_relative "sentdm/internal/transport/pooled_net_requester"
|
|
54
54
|
require_relative "sentdm/client"
|
|
55
|
+
require_relative "sentdm/internal/contacts_page"
|
|
56
|
+
require_relative "sentdm/internal/conversations_page"
|
|
57
|
+
require_relative "sentdm/internal/templates_page"
|
|
58
|
+
require_relative "sentdm/internal/webhook_events_page"
|
|
59
|
+
require_relative "sentdm/internal/webhooks_page"
|
|
55
60
|
require_relative "sentdm/models/mutation_request"
|
|
56
61
|
require_relative "sentdm/models/api_meta"
|
|
57
62
|
require_relative "sentdm/models/api_response_of_contact"
|
|
@@ -67,10 +72,13 @@ require_relative "sentdm/models/brand_business_info"
|
|
|
67
72
|
require_relative "sentdm/models/brand_compliance_info"
|
|
68
73
|
require_relative "sentdm/models/brand_contact_info"
|
|
69
74
|
require_relative "sentdm/models/brands_brand_data"
|
|
75
|
+
require_relative "sentdm/models/channel_event"
|
|
76
|
+
require_relative "sentdm/models/channel_event_payload"
|
|
70
77
|
require_relative "sentdm/models/contact_create_params"
|
|
71
78
|
require_relative "sentdm/models/contact_delete_params"
|
|
79
|
+
require_relative "sentdm/models/contact_event"
|
|
80
|
+
require_relative "sentdm/models/contact_event_payload"
|
|
72
81
|
require_relative "sentdm/models/contact_list_params"
|
|
73
|
-
require_relative "sentdm/models/contact_list_response"
|
|
74
82
|
require_relative "sentdm/models/contact_message_summary"
|
|
75
83
|
require_relative "sentdm/models/contact_response"
|
|
76
84
|
require_relative "sentdm/models/contact_retrieve_message_summary_params"
|
|
@@ -133,7 +141,6 @@ require_relative "sentdm/models/template_event_payload"
|
|
|
133
141
|
require_relative "sentdm/models/template_footer"
|
|
134
142
|
require_relative "sentdm/models/template_header"
|
|
135
143
|
require_relative "sentdm/models/template_list_params"
|
|
136
|
-
require_relative "sentdm/models/template_list_response"
|
|
137
144
|
require_relative "sentdm/models/template_retrieve_params"
|
|
138
145
|
require_relative "sentdm/models/template_update_params"
|
|
139
146
|
require_relative "sentdm/models/template_variable"
|
|
@@ -152,7 +159,6 @@ require_relative "sentdm/models/webhook_list_events_response"
|
|
|
152
159
|
require_relative "sentdm/models/webhook_list_event_types_params"
|
|
153
160
|
require_relative "sentdm/models/webhook_list_event_types_response"
|
|
154
161
|
require_relative "sentdm/models/webhook_list_params"
|
|
155
|
-
require_relative "sentdm/models/webhook_list_response"
|
|
156
162
|
require_relative "sentdm/models/webhook_response"
|
|
157
163
|
require_relative "sentdm/models/webhook_retrieve_params"
|
|
158
164
|
require_relative "sentdm/models/webhook_rotate_secret_params"
|
|
@@ -0,0 +1,71 @@
|
|
|
1
|
+
# typed: strong
|
|
2
|
+
|
|
3
|
+
module Sentdm
|
|
4
|
+
module Internal
|
|
5
|
+
class ContactsPage
|
|
6
|
+
include Sentdm::Internal::Type::BasePage
|
|
7
|
+
|
|
8
|
+
Elem = type_member
|
|
9
|
+
|
|
10
|
+
sig { returns(Data) }
|
|
11
|
+
attr_accessor :data
|
|
12
|
+
|
|
13
|
+
# @api private
|
|
14
|
+
sig { returns(String) }
|
|
15
|
+
def inspect
|
|
16
|
+
end
|
|
17
|
+
|
|
18
|
+
class Data < Sentdm::Internal::Type::BaseModel
|
|
19
|
+
OrHash = T.type_alias { T.any(Data, Sentdm::Internal::AnyHash) }
|
|
20
|
+
|
|
21
|
+
sig { returns(T.nilable(T::Array[T.anything])) }
|
|
22
|
+
attr_reader :contacts
|
|
23
|
+
|
|
24
|
+
sig { params(contacts: T::Array[T.anything]).void }
|
|
25
|
+
attr_writer :contacts
|
|
26
|
+
|
|
27
|
+
sig { returns(T.nilable(Data::Pagination)) }
|
|
28
|
+
attr_reader :pagination
|
|
29
|
+
|
|
30
|
+
sig { params(pagination: Data::Pagination::OrHash).void }
|
|
31
|
+
attr_writer :pagination
|
|
32
|
+
|
|
33
|
+
sig do
|
|
34
|
+
params(
|
|
35
|
+
contacts: T::Array[T.anything],
|
|
36
|
+
pagination: Data::Pagination::OrHash
|
|
37
|
+
).returns(T.attached_class)
|
|
38
|
+
end
|
|
39
|
+
def self.new(contacts: nil, pagination: nil)
|
|
40
|
+
end
|
|
41
|
+
|
|
42
|
+
sig do
|
|
43
|
+
override.returns(
|
|
44
|
+
{ contacts: T::Array[T.anything], pagination: Data::Pagination }
|
|
45
|
+
)
|
|
46
|
+
end
|
|
47
|
+
def to_hash
|
|
48
|
+
end
|
|
49
|
+
|
|
50
|
+
class Pagination < Sentdm::Internal::Type::BaseModel
|
|
51
|
+
OrHash =
|
|
52
|
+
T.type_alias { T.any(Data::Pagination, Sentdm::Internal::AnyHash) }
|
|
53
|
+
|
|
54
|
+
sig { returns(T.nilable(T::Boolean)) }
|
|
55
|
+
attr_reader :has_more
|
|
56
|
+
|
|
57
|
+
sig { params(has_more: T::Boolean).void }
|
|
58
|
+
attr_writer :has_more
|
|
59
|
+
|
|
60
|
+
sig { params(has_more: T::Boolean).returns(T.attached_class) }
|
|
61
|
+
def self.new(has_more: nil)
|
|
62
|
+
end
|
|
63
|
+
|
|
64
|
+
sig { override.returns({ has_more: T::Boolean }) }
|
|
65
|
+
def to_hash
|
|
66
|
+
end
|
|
67
|
+
end
|
|
68
|
+
end
|
|
69
|
+
end
|
|
70
|
+
end
|
|
71
|
+
end
|
|
@@ -0,0 +1,71 @@
|
|
|
1
|
+
# typed: strong
|
|
2
|
+
|
|
3
|
+
module Sentdm
|
|
4
|
+
module Internal
|
|
5
|
+
class ConversationsPage
|
|
6
|
+
include Sentdm::Internal::Type::BasePage
|
|
7
|
+
|
|
8
|
+
Elem = type_member
|
|
9
|
+
|
|
10
|
+
sig { returns(Data) }
|
|
11
|
+
attr_accessor :data
|
|
12
|
+
|
|
13
|
+
# @api private
|
|
14
|
+
sig { returns(String) }
|
|
15
|
+
def inspect
|
|
16
|
+
end
|
|
17
|
+
|
|
18
|
+
class Data < Sentdm::Internal::Type::BaseModel
|
|
19
|
+
OrHash = T.type_alias { T.any(Data, Sentdm::Internal::AnyHash) }
|
|
20
|
+
|
|
21
|
+
sig { returns(T.nilable(T::Array[T.anything])) }
|
|
22
|
+
attr_reader :messages
|
|
23
|
+
|
|
24
|
+
sig { params(messages: T::Array[T.anything]).void }
|
|
25
|
+
attr_writer :messages
|
|
26
|
+
|
|
27
|
+
sig { returns(T.nilable(Data::Pagination)) }
|
|
28
|
+
attr_reader :pagination
|
|
29
|
+
|
|
30
|
+
sig { params(pagination: Data::Pagination::OrHash).void }
|
|
31
|
+
attr_writer :pagination
|
|
32
|
+
|
|
33
|
+
sig do
|
|
34
|
+
params(
|
|
35
|
+
messages: T::Array[T.anything],
|
|
36
|
+
pagination: Data::Pagination::OrHash
|
|
37
|
+
).returns(T.attached_class)
|
|
38
|
+
end
|
|
39
|
+
def self.new(messages: nil, pagination: nil)
|
|
40
|
+
end
|
|
41
|
+
|
|
42
|
+
sig do
|
|
43
|
+
override.returns(
|
|
44
|
+
{ messages: T::Array[T.anything], pagination: Data::Pagination }
|
|
45
|
+
)
|
|
46
|
+
end
|
|
47
|
+
def to_hash
|
|
48
|
+
end
|
|
49
|
+
|
|
50
|
+
class Pagination < Sentdm::Internal::Type::BaseModel
|
|
51
|
+
OrHash =
|
|
52
|
+
T.type_alias { T.any(Data::Pagination, Sentdm::Internal::AnyHash) }
|
|
53
|
+
|
|
54
|
+
sig { returns(T.nilable(T::Boolean)) }
|
|
55
|
+
attr_reader :has_more
|
|
56
|
+
|
|
57
|
+
sig { params(has_more: T::Boolean).void }
|
|
58
|
+
attr_writer :has_more
|
|
59
|
+
|
|
60
|
+
sig { params(has_more: T::Boolean).returns(T.attached_class) }
|
|
61
|
+
def self.new(has_more: nil)
|
|
62
|
+
end
|
|
63
|
+
|
|
64
|
+
sig { override.returns({ has_more: T::Boolean }) }
|
|
65
|
+
def to_hash
|
|
66
|
+
end
|
|
67
|
+
end
|
|
68
|
+
end
|
|
69
|
+
end
|
|
70
|
+
end
|
|
71
|
+
end
|
|
@@ -0,0 +1,71 @@
|
|
|
1
|
+
# typed: strong
|
|
2
|
+
|
|
3
|
+
module Sentdm
|
|
4
|
+
module Internal
|
|
5
|
+
class TemplatesPage
|
|
6
|
+
include Sentdm::Internal::Type::BasePage
|
|
7
|
+
|
|
8
|
+
Elem = type_member
|
|
9
|
+
|
|
10
|
+
sig { returns(Data) }
|
|
11
|
+
attr_accessor :data
|
|
12
|
+
|
|
13
|
+
# @api private
|
|
14
|
+
sig { returns(String) }
|
|
15
|
+
def inspect
|
|
16
|
+
end
|
|
17
|
+
|
|
18
|
+
class Data < Sentdm::Internal::Type::BaseModel
|
|
19
|
+
OrHash = T.type_alias { T.any(Data, Sentdm::Internal::AnyHash) }
|
|
20
|
+
|
|
21
|
+
sig { returns(T.nilable(Data::Pagination)) }
|
|
22
|
+
attr_reader :pagination
|
|
23
|
+
|
|
24
|
+
sig { params(pagination: Data::Pagination::OrHash).void }
|
|
25
|
+
attr_writer :pagination
|
|
26
|
+
|
|
27
|
+
sig { returns(T.nilable(T::Array[T.anything])) }
|
|
28
|
+
attr_reader :templates
|
|
29
|
+
|
|
30
|
+
sig { params(templates: T::Array[T.anything]).void }
|
|
31
|
+
attr_writer :templates
|
|
32
|
+
|
|
33
|
+
sig do
|
|
34
|
+
params(
|
|
35
|
+
pagination: Data::Pagination::OrHash,
|
|
36
|
+
templates: T::Array[T.anything]
|
|
37
|
+
).returns(T.attached_class)
|
|
38
|
+
end
|
|
39
|
+
def self.new(pagination: nil, templates: nil)
|
|
40
|
+
end
|
|
41
|
+
|
|
42
|
+
sig do
|
|
43
|
+
override.returns(
|
|
44
|
+
{ pagination: Data::Pagination, templates: T::Array[T.anything] }
|
|
45
|
+
)
|
|
46
|
+
end
|
|
47
|
+
def to_hash
|
|
48
|
+
end
|
|
49
|
+
|
|
50
|
+
class Pagination < Sentdm::Internal::Type::BaseModel
|
|
51
|
+
OrHash =
|
|
52
|
+
T.type_alias { T.any(Data::Pagination, Sentdm::Internal::AnyHash) }
|
|
53
|
+
|
|
54
|
+
sig { returns(T.nilable(T::Boolean)) }
|
|
55
|
+
attr_reader :has_more
|
|
56
|
+
|
|
57
|
+
sig { params(has_more: T::Boolean).void }
|
|
58
|
+
attr_writer :has_more
|
|
59
|
+
|
|
60
|
+
sig { params(has_more: T::Boolean).returns(T.attached_class) }
|
|
61
|
+
def self.new(has_more: nil)
|
|
62
|
+
end
|
|
63
|
+
|
|
64
|
+
sig { override.returns({ has_more: T::Boolean }) }
|
|
65
|
+
def to_hash
|
|
66
|
+
end
|
|
67
|
+
end
|
|
68
|
+
end
|
|
69
|
+
end
|
|
70
|
+
end
|
|
71
|
+
end
|
|
@@ -0,0 +1,71 @@
|
|
|
1
|
+
# typed: strong
|
|
2
|
+
|
|
3
|
+
module Sentdm
|
|
4
|
+
module Internal
|
|
5
|
+
class WebhookEventsPage
|
|
6
|
+
include Sentdm::Internal::Type::BasePage
|
|
7
|
+
|
|
8
|
+
Elem = type_member
|
|
9
|
+
|
|
10
|
+
sig { returns(Data) }
|
|
11
|
+
attr_accessor :data
|
|
12
|
+
|
|
13
|
+
# @api private
|
|
14
|
+
sig { returns(String) }
|
|
15
|
+
def inspect
|
|
16
|
+
end
|
|
17
|
+
|
|
18
|
+
class Data < Sentdm::Internal::Type::BaseModel
|
|
19
|
+
OrHash = T.type_alias { T.any(Data, Sentdm::Internal::AnyHash) }
|
|
20
|
+
|
|
21
|
+
sig { returns(T.nilable(T::Array[T.anything])) }
|
|
22
|
+
attr_reader :events
|
|
23
|
+
|
|
24
|
+
sig { params(events: T::Array[T.anything]).void }
|
|
25
|
+
attr_writer :events
|
|
26
|
+
|
|
27
|
+
sig { returns(T.nilable(Data::Pagination)) }
|
|
28
|
+
attr_reader :pagination
|
|
29
|
+
|
|
30
|
+
sig { params(pagination: Data::Pagination::OrHash).void }
|
|
31
|
+
attr_writer :pagination
|
|
32
|
+
|
|
33
|
+
sig do
|
|
34
|
+
params(
|
|
35
|
+
events: T::Array[T.anything],
|
|
36
|
+
pagination: Data::Pagination::OrHash
|
|
37
|
+
).returns(T.attached_class)
|
|
38
|
+
end
|
|
39
|
+
def self.new(events: nil, pagination: nil)
|
|
40
|
+
end
|
|
41
|
+
|
|
42
|
+
sig do
|
|
43
|
+
override.returns(
|
|
44
|
+
{ events: T::Array[T.anything], pagination: Data::Pagination }
|
|
45
|
+
)
|
|
46
|
+
end
|
|
47
|
+
def to_hash
|
|
48
|
+
end
|
|
49
|
+
|
|
50
|
+
class Pagination < Sentdm::Internal::Type::BaseModel
|
|
51
|
+
OrHash =
|
|
52
|
+
T.type_alias { T.any(Data::Pagination, Sentdm::Internal::AnyHash) }
|
|
53
|
+
|
|
54
|
+
sig { returns(T.nilable(T::Boolean)) }
|
|
55
|
+
attr_reader :has_more
|
|
56
|
+
|
|
57
|
+
sig { params(has_more: T::Boolean).void }
|
|
58
|
+
attr_writer :has_more
|
|
59
|
+
|
|
60
|
+
sig { params(has_more: T::Boolean).returns(T.attached_class) }
|
|
61
|
+
def self.new(has_more: nil)
|
|
62
|
+
end
|
|
63
|
+
|
|
64
|
+
sig { override.returns({ has_more: T::Boolean }) }
|
|
65
|
+
def to_hash
|
|
66
|
+
end
|
|
67
|
+
end
|
|
68
|
+
end
|
|
69
|
+
end
|
|
70
|
+
end
|
|
71
|
+
end
|
|
@@ -0,0 +1,71 @@
|
|
|
1
|
+
# typed: strong
|
|
2
|
+
|
|
3
|
+
module Sentdm
|
|
4
|
+
module Internal
|
|
5
|
+
class WebhooksPage
|
|
6
|
+
include Sentdm::Internal::Type::BasePage
|
|
7
|
+
|
|
8
|
+
Elem = type_member
|
|
9
|
+
|
|
10
|
+
sig { returns(Data) }
|
|
11
|
+
attr_accessor :data
|
|
12
|
+
|
|
13
|
+
# @api private
|
|
14
|
+
sig { returns(String) }
|
|
15
|
+
def inspect
|
|
16
|
+
end
|
|
17
|
+
|
|
18
|
+
class Data < Sentdm::Internal::Type::BaseModel
|
|
19
|
+
OrHash = T.type_alias { T.any(Data, Sentdm::Internal::AnyHash) }
|
|
20
|
+
|
|
21
|
+
sig { returns(T.nilable(Data::Pagination)) }
|
|
22
|
+
attr_reader :pagination
|
|
23
|
+
|
|
24
|
+
sig { params(pagination: Data::Pagination::OrHash).void }
|
|
25
|
+
attr_writer :pagination
|
|
26
|
+
|
|
27
|
+
sig { returns(T.nilable(T::Array[T.anything])) }
|
|
28
|
+
attr_reader :webhooks
|
|
29
|
+
|
|
30
|
+
sig { params(webhooks: T::Array[T.anything]).void }
|
|
31
|
+
attr_writer :webhooks
|
|
32
|
+
|
|
33
|
+
sig do
|
|
34
|
+
params(
|
|
35
|
+
pagination: Data::Pagination::OrHash,
|
|
36
|
+
webhooks: T::Array[T.anything]
|
|
37
|
+
).returns(T.attached_class)
|
|
38
|
+
end
|
|
39
|
+
def self.new(pagination: nil, webhooks: nil)
|
|
40
|
+
end
|
|
41
|
+
|
|
42
|
+
sig do
|
|
43
|
+
override.returns(
|
|
44
|
+
{ pagination: Data::Pagination, webhooks: T::Array[T.anything] }
|
|
45
|
+
)
|
|
46
|
+
end
|
|
47
|
+
def to_hash
|
|
48
|
+
end
|
|
49
|
+
|
|
50
|
+
class Pagination < Sentdm::Internal::Type::BaseModel
|
|
51
|
+
OrHash =
|
|
52
|
+
T.type_alias { T.any(Data::Pagination, Sentdm::Internal::AnyHash) }
|
|
53
|
+
|
|
54
|
+
sig { returns(T.nilable(T::Boolean)) }
|
|
55
|
+
attr_reader :has_more
|
|
56
|
+
|
|
57
|
+
sig { params(has_more: T::Boolean).void }
|
|
58
|
+
attr_writer :has_more
|
|
59
|
+
|
|
60
|
+
sig { params(has_more: T::Boolean).returns(T.attached_class) }
|
|
61
|
+
def self.new(has_more: nil)
|
|
62
|
+
end
|
|
63
|
+
|
|
64
|
+
sig { override.returns({ has_more: T::Boolean }) }
|
|
65
|
+
def to_hash
|
|
66
|
+
end
|
|
67
|
+
end
|
|
68
|
+
end
|
|
69
|
+
end
|
|
70
|
+
end
|
|
71
|
+
end
|
|
@@ -0,0 +1,128 @@
|
|
|
1
|
+
# typed: strong
|
|
2
|
+
|
|
3
|
+
module Sentdm
|
|
4
|
+
module Models
|
|
5
|
+
class ChannelEvent < Sentdm::Internal::Type::BaseModel
|
|
6
|
+
OrHash =
|
|
7
|
+
T.type_alias { T.any(Sentdm::ChannelEvent, Sentdm::Internal::AnyHash) }
|
|
8
|
+
|
|
9
|
+
# The specific event within the family, for example message.delivered,
|
|
10
|
+
# message.received or contact.opt_out. Absent on events that have no subtype, so
|
|
11
|
+
# treat it as optional.
|
|
12
|
+
sig { returns(T.nilable(String)) }
|
|
13
|
+
attr_accessor :event
|
|
14
|
+
|
|
15
|
+
# The event family, for example message, templates or contact. Route on this
|
|
16
|
+
# first, then on event for the specific change.
|
|
17
|
+
sig { returns(T.nilable(String)) }
|
|
18
|
+
attr_reader :field
|
|
19
|
+
|
|
20
|
+
sig { params(field: String).void }
|
|
21
|
+
attr_writer :field
|
|
22
|
+
|
|
23
|
+
# Body of a channel event: where one of the customer's channels stands in
|
|
24
|
+
# provisioning and compliance. Delivered when a milestone moves — a registration
|
|
25
|
+
# filed, a verdict returned, a resubmission asked for, a sender gone live — so a
|
|
26
|
+
# customer's own onboarding UI does not have to poll GET /v3/channels.
|
|
27
|
+
#
|
|
28
|
+
# The subject is one item, never the account. A customer's "SMS channel" has no
|
|
29
|
+
# status; a market does. Country, NumberType and SenderValue name which one, so a
|
|
30
|
+
# customer terminating only to Kosovo never receives an event about US 10DLC.
|
|
31
|
+
#
|
|
32
|
+
# Status is the stable half of the contract. It is the same four-value set GET
|
|
33
|
+
# /v3/channels publishes, computed through the same code, so an event and a read
|
|
34
|
+
# of the same market cannot disagree. A subscriber that reads nothing but the
|
|
35
|
+
# status and the subject fields is a correct subscriber. The sub-type on the
|
|
36
|
+
# envelope names the specific milestone and is additive — that vocabulary comes
|
|
37
|
+
# from registries and carriers, which are parties Sent does not control.
|
|
38
|
+
#
|
|
39
|
+
# Status means provisioning and compliance are complete, not that a send will
|
|
40
|
+
# succeed right now. An account can be suspended, or a destination blocked by a
|
|
41
|
+
# routing rule, without either showing up here. Those are separate surfaces and
|
|
42
|
+
# deliberately not modelled on this payload.
|
|
43
|
+
sig { returns(T.nilable(Sentdm::ChannelEventPayload)) }
|
|
44
|
+
attr_reader :payload
|
|
45
|
+
|
|
46
|
+
sig do
|
|
47
|
+
params(payload: T.nilable(Sentdm::ChannelEventPayload::OrHash)).void
|
|
48
|
+
end
|
|
49
|
+
attr_writer :payload
|
|
50
|
+
|
|
51
|
+
# The event-specific body.
|
|
52
|
+
sig { returns(T.nilable(String)) }
|
|
53
|
+
attr_accessor :request_id
|
|
54
|
+
|
|
55
|
+
# When Sent emitted the event, in UTC (yyyy-MM-ddTHH:mm:ssZ). This is the emission
|
|
56
|
+
# time, not the time the underlying change happened. Use the timestamp inside the
|
|
57
|
+
# payload for the latter.
|
|
58
|
+
sig { returns(T.nilable(String)) }
|
|
59
|
+
attr_reader :timestamp
|
|
60
|
+
|
|
61
|
+
sig { params(timestamp: String).void }
|
|
62
|
+
attr_writer :timestamp
|
|
63
|
+
|
|
64
|
+
# The envelope Sent POSTs to a subscribed webhook endpoint. Every event shares
|
|
65
|
+
# this shape and varies only in Payload.
|
|
66
|
+
sig do
|
|
67
|
+
params(
|
|
68
|
+
event: T.nilable(String),
|
|
69
|
+
field: String,
|
|
70
|
+
payload: T.nilable(Sentdm::ChannelEventPayload::OrHash),
|
|
71
|
+
request_id: T.nilable(String),
|
|
72
|
+
timestamp: String
|
|
73
|
+
).returns(T.attached_class)
|
|
74
|
+
end
|
|
75
|
+
def self.new(
|
|
76
|
+
# The specific event within the family, for example message.delivered,
|
|
77
|
+
# message.received or contact.opt_out. Absent on events that have no subtype, so
|
|
78
|
+
# treat it as optional.
|
|
79
|
+
event: nil,
|
|
80
|
+
# The event family, for example message, templates or contact. Route on this
|
|
81
|
+
# first, then on event for the specific change.
|
|
82
|
+
field: nil,
|
|
83
|
+
# Body of a channel event: where one of the customer's channels stands in
|
|
84
|
+
# provisioning and compliance. Delivered when a milestone moves — a registration
|
|
85
|
+
# filed, a verdict returned, a resubmission asked for, a sender gone live — so a
|
|
86
|
+
# customer's own onboarding UI does not have to poll GET /v3/channels.
|
|
87
|
+
#
|
|
88
|
+
# The subject is one item, never the account. A customer's "SMS channel" has no
|
|
89
|
+
# status; a market does. Country, NumberType and SenderValue name which one, so a
|
|
90
|
+
# customer terminating only to Kosovo never receives an event about US 10DLC.
|
|
91
|
+
#
|
|
92
|
+
# Status is the stable half of the contract. It is the same four-value set GET
|
|
93
|
+
# /v3/channels publishes, computed through the same code, so an event and a read
|
|
94
|
+
# of the same market cannot disagree. A subscriber that reads nothing but the
|
|
95
|
+
# status and the subject fields is a correct subscriber. The sub-type on the
|
|
96
|
+
# envelope names the specific milestone and is additive — that vocabulary comes
|
|
97
|
+
# from registries and carriers, which are parties Sent does not control.
|
|
98
|
+
#
|
|
99
|
+
# Status means provisioning and compliance are complete, not that a send will
|
|
100
|
+
# succeed right now. An account can be suspended, or a destination blocked by a
|
|
101
|
+
# routing rule, without either showing up here. Those are separate surfaces and
|
|
102
|
+
# deliberately not modelled on this payload.
|
|
103
|
+
payload: nil,
|
|
104
|
+
# The event-specific body.
|
|
105
|
+
request_id: nil,
|
|
106
|
+
# When Sent emitted the event, in UTC (yyyy-MM-ddTHH:mm:ssZ). This is the emission
|
|
107
|
+
# time, not the time the underlying change happened. Use the timestamp inside the
|
|
108
|
+
# payload for the latter.
|
|
109
|
+
timestamp: nil
|
|
110
|
+
)
|
|
111
|
+
end
|
|
112
|
+
|
|
113
|
+
sig do
|
|
114
|
+
override.returns(
|
|
115
|
+
{
|
|
116
|
+
event: T.nilable(String),
|
|
117
|
+
field: String,
|
|
118
|
+
payload: T.nilable(Sentdm::ChannelEventPayload),
|
|
119
|
+
request_id: T.nilable(String),
|
|
120
|
+
timestamp: String
|
|
121
|
+
}
|
|
122
|
+
)
|
|
123
|
+
end
|
|
124
|
+
def to_hash
|
|
125
|
+
end
|
|
126
|
+
end
|
|
127
|
+
end
|
|
128
|
+
end
|