sentdm 0.34.0 → 0.36.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 +11 -9
- data/lib/sentdm/client.rb +30 -0
- data/lib/sentdm/internal/calls_page.rb +115 -0
- data/lib/sentdm/models/api_response_of_call.rb +43 -0
- data/lib/sentdm/models/api_response_of_call_recordings.rb +43 -0
- data/lib/sentdm/models/api_response_of_calls_list.rb +42 -0
- data/lib/sentdm/models/call.rb +134 -0
- data/lib/sentdm/models/call_event.rb +72 -0
- data/lib/sentdm/models/call_event_payload.rb +102 -0
- data/lib/sentdm/models/call_hangup_params.rb +32 -0
- data/lib/sentdm/models/call_list_params.rb +83 -0
- data/lib/sentdm/models/call_list_recordings_params.rb +26 -0
- data/lib/sentdm/models/call_party.rb +31 -0
- data/lib/sentdm/models/call_record_params.rb +55 -0
- data/lib/sentdm/models/call_recording.rb +38 -0
- data/lib/sentdm/models/call_recordings.rb +24 -0
- data/lib/sentdm/models/call_retrieve_params.rb +26 -0
- data/lib/sentdm/models/call_timeline_entry.rb +26 -0
- data/lib/sentdm/models/calls/api_response_of_list_of_call_participant.rb +45 -0
- data/lib/sentdm/models/calls/call_participant.rb +60 -0
- data/lib/sentdm/models/calls/call_participant_target.rb +30 -0
- data/lib/sentdm/models/calls/participant_add_params.rb +66 -0
- data/lib/sentdm/models/calls/participant_list_params.rb +28 -0
- data/lib/sentdm/models/calls/participant_remove_all_params.rb +28 -0
- data/lib/sentdm/models/calls/participant_remove_params.rb +34 -0
- data/lib/sentdm/models/calls/participant_update_params.rb +64 -0
- data/lib/sentdm/models/calls_list.rb +26 -0
- data/lib/sentdm/models/channels/api_response_of_list_of_voice_number.rb +45 -0
- data/lib/sentdm/models/channels/api_response_of_voice_callback_test.rb +45 -0
- data/lib/sentdm/models/channels/api_response_of_voice_number.rb +45 -0
- data/lib/sentdm/models/channels/api_response_of_voice_number_created.rb +45 -0
- data/lib/sentdm/models/channels/api_response_of_voice_secret.rb +45 -0
- data/lib/sentdm/models/channels/api_response_of_voice_token.rb +45 -0
- data/lib/sentdm/models/channels/voice_callback_test.rb +65 -0
- data/lib/sentdm/models/channels/voice_callback_test_error_info.rb +41 -0
- data/lib/sentdm/models/channels/voice_callback_test_request_info.rb +40 -0
- data/lib/sentdm/models/channels/voice_callback_test_response_info.rb +28 -0
- data/lib/sentdm/models/channels/voice_create_params.rb +86 -0
- data/lib/sentdm/models/channels/voice_create_token_params.rb +69 -0
- data/lib/sentdm/models/channels/voice_list_params.rb +22 -0
- data/lib/sentdm/models/channels/voice_number.rb +68 -0
- data/lib/sentdm/models/channels/voice_number_created.rb +26 -0
- data/lib/sentdm/models/channels/voice_retrieve_params.rb +28 -0
- data/lib/sentdm/models/channels/voice_rotate_secret_params.rb +34 -0
- data/lib/sentdm/models/channels/voice_secret.rb +25 -0
- data/lib/sentdm/models/channels/voice_test_params.rb +34 -0
- data/lib/sentdm/models/channels/voice_token.rb +44 -0
- data/lib/sentdm/models/channels/voice_update_params.rb +95 -0
- data/lib/sentdm/models/message_event_payload.rb +9 -4
- data/lib/sentdm/models/message_retrieve_activities_response.rb +7 -5
- data/lib/sentdm/models/webhook_list_events_response.rb +4 -173
- data/lib/sentdm/models.rb +36 -0
- data/lib/sentdm/resources/calls/participants.rb +231 -0
- data/lib/sentdm/resources/calls.rb +236 -0
- data/lib/sentdm/resources/channels/voice.rb +381 -0
- data/lib/sentdm/resources/channels.rb +45 -0
- data/lib/sentdm/resources/messages.rb +10 -4
- data/lib/sentdm/version.rb +1 -1
- data/lib/sentdm.rb +50 -0
- data/rbi/sentdm/client.rbi +28 -0
- data/rbi/sentdm/internal/calls_page.rbi +71 -0
- data/rbi/sentdm/models/api_response_of_call.rbi +74 -0
- data/rbi/sentdm/models/api_response_of_call_recordings.rbi +74 -0
- data/rbi/sentdm/models/api_response_of_calls_list.rbi +74 -0
- data/rbi/sentdm/models/call.rbi +179 -0
- data/rbi/sentdm/models/call_event.rbi +114 -0
- data/rbi/sentdm/models/call_event_payload.rbi +135 -0
- data/rbi/sentdm/models/call_hangup_params.rbi +59 -0
- data/rbi/sentdm/models/call_list_params.rbi +112 -0
- data/rbi/sentdm/models/call_list_recordings_params.rbi +46 -0
- data/rbi/sentdm/models/call_party.rbi +41 -0
- data/rbi/sentdm/models/call_record_params.rbi +83 -0
- data/rbi/sentdm/models/call_recording.rbi +59 -0
- data/rbi/sentdm/models/call_recordings.rbi +39 -0
- data/rbi/sentdm/models/call_retrieve_params.rbi +46 -0
- data/rbi/sentdm/models/call_timeline_entry.rbi +40 -0
- data/rbi/sentdm/models/calls/api_response_of_list_of_call_participant.rbi +76 -0
- data/rbi/sentdm/models/calls/call_participant.rbi +92 -0
- data/rbi/sentdm/models/calls/call_participant_target.rbi +47 -0
- data/rbi/sentdm/models/calls/participant_add_params.rbi +98 -0
- data/rbi/sentdm/models/calls/participant_list_params.rbi +51 -0
- data/rbi/sentdm/models/calls/participant_remove_all_params.rbi +51 -0
- data/rbi/sentdm/models/calls/participant_remove_params.rbi +61 -0
- data/rbi/sentdm/models/calls/participant_update_params.rbi +94 -0
- data/rbi/sentdm/models/calls_list.rbi +47 -0
- data/rbi/sentdm/models/channels/api_response_of_list_of_voice_number.rbi +76 -0
- data/rbi/sentdm/models/channels/api_response_of_voice_callback_test.rbi +83 -0
- data/rbi/sentdm/models/channels/api_response_of_voice_number.rbi +81 -0
- data/rbi/sentdm/models/channels/api_response_of_voice_number_created.rbi +83 -0
- data/rbi/sentdm/models/channels/api_response_of_voice_secret.rbi +81 -0
- data/rbi/sentdm/models/channels/api_response_of_voice_token.rbi +81 -0
- data/rbi/sentdm/models/channels/voice_callback_test.rbi +126 -0
- data/rbi/sentdm/models/channels/voice_callback_test_error_info.rbi +65 -0
- data/rbi/sentdm/models/channels/voice_callback_test_request_info.rbi +66 -0
- data/rbi/sentdm/models/channels/voice_callback_test_response_info.rbi +48 -0
- data/rbi/sentdm/models/channels/voice_create_params.rbi +127 -0
- data/rbi/sentdm/models/channels/voice_create_token_params.rbi +104 -0
- data/rbi/sentdm/models/channels/voice_list_params.rbi +40 -0
- data/rbi/sentdm/models/channels/voice_number.rbi +105 -0
- data/rbi/sentdm/models/channels/voice_number_created.rbi +42 -0
- data/rbi/sentdm/models/channels/voice_retrieve_params.rbi +51 -0
- data/rbi/sentdm/models/channels/voice_rotate_secret_params.rbi +64 -0
- data/rbi/sentdm/models/channels/voice_secret.rbi +35 -0
- data/rbi/sentdm/models/channels/voice_test_params.rbi +61 -0
- data/rbi/sentdm/models/channels/voice_token.rbi +76 -0
- data/rbi/sentdm/models/channels/voice_update_params.rbi +158 -0
- data/rbi/sentdm/models/message_event_payload.rbi +16 -6
- data/rbi/sentdm/models/message_retrieve_activities_response.rbi +12 -8
- data/rbi/sentdm/models/webhook_list_events_response.rbi +3 -269
- data/rbi/sentdm/models.rbi +36 -0
- data/rbi/sentdm/resources/calls/participants.rbi +199 -0
- data/rbi/sentdm/resources/calls.rbi +207 -0
- data/rbi/sentdm/resources/channels/voice.rbi +371 -0
- data/rbi/sentdm/resources/channels.rbi +42 -0
- data/rbi/sentdm/resources/messages.rbi +10 -4
- data/sig/sentdm/client.rbs +4 -0
- data/sig/sentdm/internal/calls_page.rbs +41 -0
- data/sig/sentdm/models/api_response_of_call.rbs +39 -0
- data/sig/sentdm/models/api_response_of_call_recordings.rbs +39 -0
- data/sig/sentdm/models/api_response_of_calls_list.rbs +39 -0
- data/sig/sentdm/models/call.rbs +101 -0
- data/sig/sentdm/models/call_event.rbs +44 -0
- data/sig/sentdm/models/call_event_payload.rbs +68 -0
- data/sig/sentdm/models/call_hangup_params.rbs +38 -0
- data/sig/sentdm/models/call_list_params.rbs +67 -0
- data/sig/sentdm/models/call_list_recordings_params.rbs +30 -0
- data/sig/sentdm/models/call_party.rbs +17 -0
- data/sig/sentdm/models/call_record_params.rbs +54 -0
- data/sig/sentdm/models/call_recording.rbs +32 -0
- data/sig/sentdm/models/call_recordings.rbs +17 -0
- data/sig/sentdm/models/call_retrieve_params.rbs +30 -0
- data/sig/sentdm/models/call_timeline_entry.rbs +19 -0
- data/sig/sentdm/models/calls/api_response_of_list_of_call_participant.rbs +41 -0
- data/sig/sentdm/models/calls/call_participant.rbs +52 -0
- data/sig/sentdm/models/calls/call_participant_target.rbs +23 -0
- data/sig/sentdm/models/calls/participant_add_params.rbs +63 -0
- data/sig/sentdm/models/calls/participant_list_params.rbs +32 -0
- data/sig/sentdm/models/calls/participant_remove_all_params.rbs +34 -0
- data/sig/sentdm/models/calls/participant_remove_params.rbs +40 -0
- data/sig/sentdm/models/calls/participant_update_params.rbs +61 -0
- data/sig/sentdm/models/calls_list.rbs +26 -0
- data/sig/sentdm/models/channels/api_response_of_list_of_voice_number.rbs +41 -0
- data/sig/sentdm/models/channels/api_response_of_voice_callback_test.rbs +41 -0
- data/sig/sentdm/models/channels/api_response_of_voice_number.rbs +41 -0
- data/sig/sentdm/models/channels/api_response_of_voice_number_created.rbs +41 -0
- data/sig/sentdm/models/channels/api_response_of_voice_secret.rbs +41 -0
- data/sig/sentdm/models/channels/api_response_of_voice_token.rbs +41 -0
- data/sig/sentdm/models/channels/voice_callback_test.rbs +51 -0
- data/sig/sentdm/models/channels/voice_callback_test_error_info.rbs +28 -0
- data/sig/sentdm/models/channels/voice_callback_test_request_info.rbs +34 -0
- data/sig/sentdm/models/channels/voice_callback_test_response_info.rbs +20 -0
- data/sig/sentdm/models/channels/voice_create_params.rbs +64 -0
- data/sig/sentdm/models/channels/voice_create_token_params.rbs +61 -0
- data/sig/sentdm/models/channels/voice_list_params.rbs +27 -0
- data/sig/sentdm/models/channels/voice_number.rbs +57 -0
- data/sig/sentdm/models/channels/voice_number_created.rbs +17 -0
- data/sig/sentdm/models/channels/voice_retrieve_params.rbs +32 -0
- data/sig/sentdm/models/channels/voice_rotate_secret_params.rbs +40 -0
- data/sig/sentdm/models/channels/voice_secret.rbs +17 -0
- data/sig/sentdm/models/channels/voice_test_params.rbs +40 -0
- data/sig/sentdm/models/channels/voice_token.rbs +40 -0
- data/sig/sentdm/models/channels/voice_update_params.rbs +78 -0
- data/sig/sentdm/models/webhook_list_events_response.rbs +1 -107
- data/sig/sentdm/models.rbs +36 -0
- data/sig/sentdm/resources/calls/participants.rbs +50 -0
- data/sig/sentdm/resources/calls.rbs +50 -0
- data/sig/sentdm/resources/channels/voice.rbs +68 -0
- data/sig/sentdm/resources/channels.rbs +9 -0
- metadata +152 -2
|
@@ -19,6 +19,11 @@ module Sentdm
|
|
|
19
19
|
# the send pipeline. It is a new attempt, not a free retry: every policy runs
|
|
20
20
|
# again, the message is billed again, and its status webhooks fire again. A
|
|
21
21
|
# FILTERED message is never resendable.
|
|
22
|
+
#
|
|
23
|
+
# **A scheduled message can be called off.** `POST /v3/messages/{id}/cancel`
|
|
24
|
+
# cancels a send you scheduled with `scheduled_at`, as long as it has not been
|
|
25
|
+
# released yet. Cancelling is free, fires `message.cancelled`, and is final — a
|
|
26
|
+
# cancelled message cannot be resent.
|
|
22
27
|
class Messages
|
|
23
28
|
# Some parameter documentations has been truncated, see
|
|
24
29
|
# {Sentdm::Models::MessageRetrieveActivitiesParams} for more details.
|
|
@@ -55,10 +60,11 @@ module Sentdm
|
|
|
55
60
|
#
|
|
56
61
|
# Retrieves the current status and details of a message by ID. Includes delivery
|
|
57
62
|
# status, timestamps, and error information if applicable. A message that is or
|
|
58
|
-
# was held for a later time (a send you scheduled with scheduled_at,
|
|
59
|
-
#
|
|
60
|
-
# plus scheduled_at, the
|
|
61
|
-
#
|
|
63
|
+
# was held for a later time (a send you scheduled with scheduled_at, a quiet-hours
|
|
64
|
+
# hold, or a message you cancelled while it was held) is returned as a
|
|
65
|
+
# ScheduledMessageResponse: the same fields plus scheduled_at, the instant it is
|
|
66
|
+
# held for in UTC — or, on a CANCELLED message, the instant that was called off. A
|
|
67
|
+
# message sent immediately has no scheduled_at key.
|
|
62
68
|
#
|
|
63
69
|
# @overload retrieve_status(id, x_profile_id: nil, request_options: {})
|
|
64
70
|
#
|
data/lib/sentdm/version.rb
CHANGED
data/lib/sentdm.rb
CHANGED
|
@@ -52,14 +52,19 @@ 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/calls_page"
|
|
55
56
|
require_relative "sentdm/internal/contacts_page"
|
|
56
57
|
require_relative "sentdm/internal/conversations_page"
|
|
57
58
|
require_relative "sentdm/internal/templates_page"
|
|
58
59
|
require_relative "sentdm/internal/webhook_events_page"
|
|
59
60
|
require_relative "sentdm/internal/webhooks_page"
|
|
60
61
|
require_relative "sentdm/models/mutation_request"
|
|
62
|
+
require_relative "sentdm/models/channels/voice_number"
|
|
61
63
|
require_relative "sentdm/models/template_body_content"
|
|
62
64
|
require_relative "sentdm/models/api_meta"
|
|
65
|
+
require_relative "sentdm/models/api_response_of_call"
|
|
66
|
+
require_relative "sentdm/models/api_response_of_call_recordings"
|
|
67
|
+
require_relative "sentdm/models/api_response_of_calls_list"
|
|
63
68
|
require_relative "sentdm/models/api_response_of_contact"
|
|
64
69
|
require_relative "sentdm/models/api_response_of_contact_message_summary"
|
|
65
70
|
require_relative "sentdm/models/api_response_of_conversation_messages_list"
|
|
@@ -73,8 +78,49 @@ require_relative "sentdm/models/brand_business_info"
|
|
|
73
78
|
require_relative "sentdm/models/brand_compliance_info"
|
|
74
79
|
require_relative "sentdm/models/brand_contact_info"
|
|
75
80
|
require_relative "sentdm/models/brands_brand_data"
|
|
81
|
+
require_relative "sentdm/models/call"
|
|
82
|
+
require_relative "sentdm/models/call_event"
|
|
83
|
+
require_relative "sentdm/models/call_event_payload"
|
|
84
|
+
require_relative "sentdm/models/call_hangup_params"
|
|
85
|
+
require_relative "sentdm/models/call_list_params"
|
|
86
|
+
require_relative "sentdm/models/call_list_recordings_params"
|
|
87
|
+
require_relative "sentdm/models/call_party"
|
|
88
|
+
require_relative "sentdm/models/call_recording"
|
|
89
|
+
require_relative "sentdm/models/call_recordings"
|
|
90
|
+
require_relative "sentdm/models/call_record_params"
|
|
91
|
+
require_relative "sentdm/models/call_retrieve_params"
|
|
92
|
+
require_relative "sentdm/models/calls/api_response_of_list_of_call_participant"
|
|
93
|
+
require_relative "sentdm/models/calls/call_participant"
|
|
94
|
+
require_relative "sentdm/models/calls/call_participant_target"
|
|
95
|
+
require_relative "sentdm/models/calls/participant_add_params"
|
|
96
|
+
require_relative "sentdm/models/calls/participant_list_params"
|
|
97
|
+
require_relative "sentdm/models/calls/participant_remove_all_params"
|
|
98
|
+
require_relative "sentdm/models/calls/participant_remove_params"
|
|
99
|
+
require_relative "sentdm/models/calls/participant_update_params"
|
|
100
|
+
require_relative "sentdm/models/calls_list"
|
|
101
|
+
require_relative "sentdm/models/call_timeline_entry"
|
|
76
102
|
require_relative "sentdm/models/channel_event"
|
|
77
103
|
require_relative "sentdm/models/channel_event_payload"
|
|
104
|
+
require_relative "sentdm/models/channels/api_response_of_list_of_voice_number"
|
|
105
|
+
require_relative "sentdm/models/channels/api_response_of_voice_callback_test"
|
|
106
|
+
require_relative "sentdm/models/channels/api_response_of_voice_number"
|
|
107
|
+
require_relative "sentdm/models/channels/api_response_of_voice_number_created"
|
|
108
|
+
require_relative "sentdm/models/channels/api_response_of_voice_secret"
|
|
109
|
+
require_relative "sentdm/models/channels/api_response_of_voice_token"
|
|
110
|
+
require_relative "sentdm/models/channels/voice_callback_test"
|
|
111
|
+
require_relative "sentdm/models/channels/voice_callback_test_error_info"
|
|
112
|
+
require_relative "sentdm/models/channels/voice_callback_test_request_info"
|
|
113
|
+
require_relative "sentdm/models/channels/voice_callback_test_response_info"
|
|
114
|
+
require_relative "sentdm/models/channels/voice_create_params"
|
|
115
|
+
require_relative "sentdm/models/channels/voice_create_token_params"
|
|
116
|
+
require_relative "sentdm/models/channels/voice_list_params"
|
|
117
|
+
require_relative "sentdm/models/channels/voice_number_created"
|
|
118
|
+
require_relative "sentdm/models/channels/voice_retrieve_params"
|
|
119
|
+
require_relative "sentdm/models/channels/voice_rotate_secret_params"
|
|
120
|
+
require_relative "sentdm/models/channels/voice_secret"
|
|
121
|
+
require_relative "sentdm/models/channels/voice_test_params"
|
|
122
|
+
require_relative "sentdm/models/channels/voice_token"
|
|
123
|
+
require_relative "sentdm/models/channels/voice_update_params"
|
|
78
124
|
require_relative "sentdm/models/contact_create_params"
|
|
79
125
|
require_relative "sentdm/models/contact_delete_params"
|
|
80
126
|
require_relative "sentdm/models/contact_event"
|
|
@@ -168,6 +214,10 @@ require_relative "sentdm/models/webhook_test_response"
|
|
|
168
214
|
require_relative "sentdm/models/webhook_toggle_status_params"
|
|
169
215
|
require_relative "sentdm/models/webhook_update_params"
|
|
170
216
|
require_relative "sentdm/models"
|
|
217
|
+
require_relative "sentdm/resources/calls"
|
|
218
|
+
require_relative "sentdm/resources/calls/participants"
|
|
219
|
+
require_relative "sentdm/resources/channels"
|
|
220
|
+
require_relative "sentdm/resources/channels/voice"
|
|
171
221
|
require_relative "sentdm/resources/contacts"
|
|
172
222
|
require_relative "sentdm/resources/conversations"
|
|
173
223
|
require_relative "sentdm/resources/me"
|
data/rbi/sentdm/client.rbi
CHANGED
|
@@ -84,6 +84,11 @@ module Sentdm
|
|
|
84
84
|
# the send pipeline. It is a new attempt, not a free retry: every policy runs
|
|
85
85
|
# again, the message is billed again, and its status webhooks fire again. A
|
|
86
86
|
# FILTERED message is never resendable.
|
|
87
|
+
#
|
|
88
|
+
# **A scheduled message can be called off.** `POST /v3/messages/{id}/cancel`
|
|
89
|
+
# cancels a send you scheduled with `scheduled_at`, as long as it has not been
|
|
90
|
+
# released yet. Cancelling is free, fires `message.cancelled`, and is final — a
|
|
91
|
+
# cancelled message cannot be resent.
|
|
87
92
|
sig { returns(Sentdm::Resources::Messages) }
|
|
88
93
|
attr_reader :messages
|
|
89
94
|
|
|
@@ -110,6 +115,29 @@ module Sentdm
|
|
|
110
115
|
sig { returns(Sentdm::Resources::Conversations) }
|
|
111
116
|
attr_reader :conversations
|
|
112
117
|
|
|
118
|
+
# Phone calls from the numbers you hold, driven by your own callback URL.
|
|
119
|
+
#
|
|
120
|
+
# `POST /v3/channels/voice` enables a number for calls, with the callback URL Sent
|
|
121
|
+
# asks what to do with each call on it, and `POST /v3/channels/voice/tokens` mints
|
|
122
|
+
# a short-lived token that lets a user of your app place and receive calls as that
|
|
123
|
+
# number. When a call arrives or a caller presses a key, a signed question is
|
|
124
|
+
# POSTed to the callback URL and the answer decides the call;
|
|
125
|
+
# `POST /v3/channels/voice/{number}/test` checks the URL answers the way we need
|
|
126
|
+
# before a real call reaches it, and
|
|
127
|
+
# `POST /v3/channels/voice/{number}/rotate-secret` replaces the signing secret.
|
|
128
|
+
# The call events themselves (`call.completed` and the rest) arrive through your
|
|
129
|
+
# webhooks.
|
|
130
|
+
#
|
|
131
|
+
# Every call is a record under `/v3/calls`: read it, list its recordings once one
|
|
132
|
+
# is ready, hang it up, start or stop recording, and add, mute or remove
|
|
133
|
+
# conference participants while it is live. A leg to a phone number runs for at
|
|
134
|
+
# most what your balance affords at the destination's rate.
|
|
135
|
+
sig { returns(Sentdm::Resources::Calls) }
|
|
136
|
+
attr_reader :calls
|
|
137
|
+
|
|
138
|
+
sig { returns(Sentdm::Resources::Channels) }
|
|
139
|
+
attr_reader :channels
|
|
140
|
+
|
|
113
141
|
# Who the current key is.
|
|
114
142
|
#
|
|
115
143
|
# `GET /v3/me` answers with the account the key authenticates as, which is the
|
|
@@ -0,0 +1,71 @@
|
|
|
1
|
+
# typed: strong
|
|
2
|
+
|
|
3
|
+
module Sentdm
|
|
4
|
+
module Internal
|
|
5
|
+
class CallsPage
|
|
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 :calls
|
|
23
|
+
|
|
24
|
+
sig { params(calls: T::Array[T.anything]).void }
|
|
25
|
+
attr_writer :calls
|
|
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
|
+
calls: T::Array[T.anything],
|
|
36
|
+
pagination: Data::Pagination::OrHash
|
|
37
|
+
).returns(T.attached_class)
|
|
38
|
+
end
|
|
39
|
+
def self.new(calls: nil, pagination: nil)
|
|
40
|
+
end
|
|
41
|
+
|
|
42
|
+
sig do
|
|
43
|
+
override.returns(
|
|
44
|
+
{ calls: 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,74 @@
|
|
|
1
|
+
# typed: strong
|
|
2
|
+
|
|
3
|
+
module Sentdm
|
|
4
|
+
module Models
|
|
5
|
+
class APIResponseOfCall < Sentdm::Internal::Type::BaseModel
|
|
6
|
+
OrHash =
|
|
7
|
+
T.type_alias do
|
|
8
|
+
T.any(Sentdm::APIResponseOfCall, Sentdm::Internal::AnyHash)
|
|
9
|
+
end
|
|
10
|
+
|
|
11
|
+
# A call record
|
|
12
|
+
sig { returns(T.nilable(Sentdm::Call)) }
|
|
13
|
+
attr_reader :data
|
|
14
|
+
|
|
15
|
+
sig { params(data: T.nilable(Sentdm::Call::OrHash)).void }
|
|
16
|
+
attr_writer :data
|
|
17
|
+
|
|
18
|
+
# Error information
|
|
19
|
+
sig { returns(T.nilable(Sentdm::ErrorDetail)) }
|
|
20
|
+
attr_reader :error
|
|
21
|
+
|
|
22
|
+
sig { params(error: T.nilable(Sentdm::ErrorDetail::OrHash)).void }
|
|
23
|
+
attr_writer :error
|
|
24
|
+
|
|
25
|
+
# Request and response metadata
|
|
26
|
+
sig { returns(T.nilable(Sentdm::APIMeta)) }
|
|
27
|
+
attr_reader :meta
|
|
28
|
+
|
|
29
|
+
sig { params(meta: Sentdm::APIMeta::OrHash).void }
|
|
30
|
+
attr_writer :meta
|
|
31
|
+
|
|
32
|
+
# Indicates whether the request was successful
|
|
33
|
+
sig { returns(T.nilable(T::Boolean)) }
|
|
34
|
+
attr_reader :success
|
|
35
|
+
|
|
36
|
+
sig { params(success: T::Boolean).void }
|
|
37
|
+
attr_writer :success
|
|
38
|
+
|
|
39
|
+
# Standard API response envelope for all v3 endpoints
|
|
40
|
+
sig do
|
|
41
|
+
params(
|
|
42
|
+
data: T.nilable(Sentdm::Call::OrHash),
|
|
43
|
+
error: T.nilable(Sentdm::ErrorDetail::OrHash),
|
|
44
|
+
meta: Sentdm::APIMeta::OrHash,
|
|
45
|
+
success: T::Boolean
|
|
46
|
+
).returns(T.attached_class)
|
|
47
|
+
end
|
|
48
|
+
def self.new(
|
|
49
|
+
# A call record
|
|
50
|
+
data: nil,
|
|
51
|
+
# Error information
|
|
52
|
+
error: nil,
|
|
53
|
+
# Request and response metadata
|
|
54
|
+
meta: nil,
|
|
55
|
+
# Indicates whether the request was successful
|
|
56
|
+
success: nil
|
|
57
|
+
)
|
|
58
|
+
end
|
|
59
|
+
|
|
60
|
+
sig do
|
|
61
|
+
override.returns(
|
|
62
|
+
{
|
|
63
|
+
data: T.nilable(Sentdm::Call),
|
|
64
|
+
error: T.nilable(Sentdm::ErrorDetail),
|
|
65
|
+
meta: Sentdm::APIMeta,
|
|
66
|
+
success: T::Boolean
|
|
67
|
+
}
|
|
68
|
+
)
|
|
69
|
+
end
|
|
70
|
+
def to_hash
|
|
71
|
+
end
|
|
72
|
+
end
|
|
73
|
+
end
|
|
74
|
+
end
|
|
@@ -0,0 +1,74 @@
|
|
|
1
|
+
# typed: strong
|
|
2
|
+
|
|
3
|
+
module Sentdm
|
|
4
|
+
module Models
|
|
5
|
+
class APIResponseOfCallRecordings < Sentdm::Internal::Type::BaseModel
|
|
6
|
+
OrHash =
|
|
7
|
+
T.type_alias do
|
|
8
|
+
T.any(Sentdm::APIResponseOfCallRecordings, Sentdm::Internal::AnyHash)
|
|
9
|
+
end
|
|
10
|
+
|
|
11
|
+
# The recordings of a call, each as a short-lived download link
|
|
12
|
+
sig { returns(T.nilable(Sentdm::CallRecordings)) }
|
|
13
|
+
attr_reader :data
|
|
14
|
+
|
|
15
|
+
sig { params(data: T.nilable(Sentdm::CallRecordings::OrHash)).void }
|
|
16
|
+
attr_writer :data
|
|
17
|
+
|
|
18
|
+
# Error information
|
|
19
|
+
sig { returns(T.nilable(Sentdm::ErrorDetail)) }
|
|
20
|
+
attr_reader :error
|
|
21
|
+
|
|
22
|
+
sig { params(error: T.nilable(Sentdm::ErrorDetail::OrHash)).void }
|
|
23
|
+
attr_writer :error
|
|
24
|
+
|
|
25
|
+
# Request and response metadata
|
|
26
|
+
sig { returns(T.nilable(Sentdm::APIMeta)) }
|
|
27
|
+
attr_reader :meta
|
|
28
|
+
|
|
29
|
+
sig { params(meta: Sentdm::APIMeta::OrHash).void }
|
|
30
|
+
attr_writer :meta
|
|
31
|
+
|
|
32
|
+
# Indicates whether the request was successful
|
|
33
|
+
sig { returns(T.nilable(T::Boolean)) }
|
|
34
|
+
attr_reader :success
|
|
35
|
+
|
|
36
|
+
sig { params(success: T::Boolean).void }
|
|
37
|
+
attr_writer :success
|
|
38
|
+
|
|
39
|
+
# Standard API response envelope for all v3 endpoints
|
|
40
|
+
sig do
|
|
41
|
+
params(
|
|
42
|
+
data: T.nilable(Sentdm::CallRecordings::OrHash),
|
|
43
|
+
error: T.nilable(Sentdm::ErrorDetail::OrHash),
|
|
44
|
+
meta: Sentdm::APIMeta::OrHash,
|
|
45
|
+
success: T::Boolean
|
|
46
|
+
).returns(T.attached_class)
|
|
47
|
+
end
|
|
48
|
+
def self.new(
|
|
49
|
+
# The recordings of a call, each as a short-lived download link
|
|
50
|
+
data: nil,
|
|
51
|
+
# Error information
|
|
52
|
+
error: nil,
|
|
53
|
+
# Request and response metadata
|
|
54
|
+
meta: nil,
|
|
55
|
+
# Indicates whether the request was successful
|
|
56
|
+
success: nil
|
|
57
|
+
)
|
|
58
|
+
end
|
|
59
|
+
|
|
60
|
+
sig do
|
|
61
|
+
override.returns(
|
|
62
|
+
{
|
|
63
|
+
data: T.nilable(Sentdm::CallRecordings),
|
|
64
|
+
error: T.nilable(Sentdm::ErrorDetail),
|
|
65
|
+
meta: Sentdm::APIMeta,
|
|
66
|
+
success: T::Boolean
|
|
67
|
+
}
|
|
68
|
+
)
|
|
69
|
+
end
|
|
70
|
+
def to_hash
|
|
71
|
+
end
|
|
72
|
+
end
|
|
73
|
+
end
|
|
74
|
+
end
|
|
@@ -0,0 +1,74 @@
|
|
|
1
|
+
# typed: strong
|
|
2
|
+
|
|
3
|
+
module Sentdm
|
|
4
|
+
module Models
|
|
5
|
+
class APIResponseOfCallsList < Sentdm::Internal::Type::BaseModel
|
|
6
|
+
OrHash =
|
|
7
|
+
T.type_alias do
|
|
8
|
+
T.any(Sentdm::APIResponseOfCallsList, Sentdm::Internal::AnyHash)
|
|
9
|
+
end
|
|
10
|
+
|
|
11
|
+
# Paginated list of calls
|
|
12
|
+
sig { returns(T.nilable(Sentdm::CallsList)) }
|
|
13
|
+
attr_reader :data
|
|
14
|
+
|
|
15
|
+
sig { params(data: T.nilable(Sentdm::CallsList::OrHash)).void }
|
|
16
|
+
attr_writer :data
|
|
17
|
+
|
|
18
|
+
# Error information
|
|
19
|
+
sig { returns(T.nilable(Sentdm::ErrorDetail)) }
|
|
20
|
+
attr_reader :error
|
|
21
|
+
|
|
22
|
+
sig { params(error: T.nilable(Sentdm::ErrorDetail::OrHash)).void }
|
|
23
|
+
attr_writer :error
|
|
24
|
+
|
|
25
|
+
# Request and response metadata
|
|
26
|
+
sig { returns(T.nilable(Sentdm::APIMeta)) }
|
|
27
|
+
attr_reader :meta
|
|
28
|
+
|
|
29
|
+
sig { params(meta: Sentdm::APIMeta::OrHash).void }
|
|
30
|
+
attr_writer :meta
|
|
31
|
+
|
|
32
|
+
# Indicates whether the request was successful
|
|
33
|
+
sig { returns(T.nilable(T::Boolean)) }
|
|
34
|
+
attr_reader :success
|
|
35
|
+
|
|
36
|
+
sig { params(success: T::Boolean).void }
|
|
37
|
+
attr_writer :success
|
|
38
|
+
|
|
39
|
+
# Standard API response envelope for all v3 endpoints
|
|
40
|
+
sig do
|
|
41
|
+
params(
|
|
42
|
+
data: T.nilable(Sentdm::CallsList::OrHash),
|
|
43
|
+
error: T.nilable(Sentdm::ErrorDetail::OrHash),
|
|
44
|
+
meta: Sentdm::APIMeta::OrHash,
|
|
45
|
+
success: T::Boolean
|
|
46
|
+
).returns(T.attached_class)
|
|
47
|
+
end
|
|
48
|
+
def self.new(
|
|
49
|
+
# Paginated list of calls
|
|
50
|
+
data: nil,
|
|
51
|
+
# Error information
|
|
52
|
+
error: nil,
|
|
53
|
+
# Request and response metadata
|
|
54
|
+
meta: nil,
|
|
55
|
+
# Indicates whether the request was successful
|
|
56
|
+
success: nil
|
|
57
|
+
)
|
|
58
|
+
end
|
|
59
|
+
|
|
60
|
+
sig do
|
|
61
|
+
override.returns(
|
|
62
|
+
{
|
|
63
|
+
data: T.nilable(Sentdm::CallsList),
|
|
64
|
+
error: T.nilable(Sentdm::ErrorDetail),
|
|
65
|
+
meta: Sentdm::APIMeta,
|
|
66
|
+
success: T::Boolean
|
|
67
|
+
}
|
|
68
|
+
)
|
|
69
|
+
end
|
|
70
|
+
def to_hash
|
|
71
|
+
end
|
|
72
|
+
end
|
|
73
|
+
end
|
|
74
|
+
end
|
|
@@ -0,0 +1,179 @@
|
|
|
1
|
+
# typed: strong
|
|
2
|
+
|
|
3
|
+
module Sentdm
|
|
4
|
+
module Models
|
|
5
|
+
class Call < Sentdm::Internal::Type::BaseModel
|
|
6
|
+
OrHash = T.type_alias { T.any(Sentdm::Call, Sentdm::Internal::AnyHash) }
|
|
7
|
+
|
|
8
|
+
# The call id, the same one carried by the call.request question and every call
|
|
9
|
+
# webhook
|
|
10
|
+
sig { returns(T.nilable(String)) }
|
|
11
|
+
attr_reader :id
|
|
12
|
+
|
|
13
|
+
sig { params(id: String).void }
|
|
14
|
+
attr_writer :id
|
|
15
|
+
|
|
16
|
+
# When the call was answered (UTC). Null until then, and always null for a call
|
|
17
|
+
# between two of your app users
|
|
18
|
+
sig { returns(T.nilable(Time)) }
|
|
19
|
+
attr_accessor :answered_at
|
|
20
|
+
|
|
21
|
+
# outbound for a call placed from your app, inbound for a call to one of your
|
|
22
|
+
# numbers
|
|
23
|
+
sig { returns(T.nilable(String)) }
|
|
24
|
+
attr_reader :direction
|
|
25
|
+
|
|
26
|
+
sig { params(direction: String).void }
|
|
27
|
+
attr_writer :direction
|
|
28
|
+
|
|
29
|
+
# Billable duration in seconds. Null while the call is live
|
|
30
|
+
sig { returns(T.nilable(Integer)) }
|
|
31
|
+
attr_accessor :duration_seconds
|
|
32
|
+
|
|
33
|
+
# When the call ended (UTC). Null while the call is live
|
|
34
|
+
sig { returns(T.nilable(Time)) }
|
|
35
|
+
attr_accessor :ended_at
|
|
36
|
+
|
|
37
|
+
# Why the call did not complete: callback_timeout, invalid_answer,
|
|
38
|
+
# insufficient_balance, destination_blocked, callback_not_configured, rejected or
|
|
39
|
+
# no_answer. Null while the call is live, when it completed, and when it failed
|
|
40
|
+
# without a recorded reason
|
|
41
|
+
sig { returns(T.nilable(String)) }
|
|
42
|
+
attr_accessor :failure_reason
|
|
43
|
+
|
|
44
|
+
# One end of a call
|
|
45
|
+
sig { returns(T.nilable(Sentdm::CallParty)) }
|
|
46
|
+
attr_reader :from
|
|
47
|
+
|
|
48
|
+
sig { params(from: Sentdm::CallParty::OrHash).void }
|
|
49
|
+
attr_writer :from
|
|
50
|
+
|
|
51
|
+
# Your number that owns the call, in E.164 format: the dialed number for an
|
|
52
|
+
# inbound call, the caller's bound number for a call placed from your app
|
|
53
|
+
sig { returns(T.nilable(String)) }
|
|
54
|
+
attr_reader :number
|
|
55
|
+
|
|
56
|
+
sig { params(number: String).void }
|
|
57
|
+
attr_writer :number
|
|
58
|
+
|
|
59
|
+
# What the call cost. Null until it has been priced
|
|
60
|
+
sig { returns(T.nilable(Float)) }
|
|
61
|
+
attr_accessor :price
|
|
62
|
+
|
|
63
|
+
# True once a recording of the call is available
|
|
64
|
+
sig { returns(T.nilable(T::Boolean)) }
|
|
65
|
+
attr_reader :recording_available
|
|
66
|
+
|
|
67
|
+
sig { params(recording_available: T::Boolean).void }
|
|
68
|
+
attr_writer :recording_available
|
|
69
|
+
|
|
70
|
+
# When the call was placed (UTC)
|
|
71
|
+
sig { returns(T.nilable(Time)) }
|
|
72
|
+
attr_reader :started_at
|
|
73
|
+
|
|
74
|
+
sig { params(started_at: Time).void }
|
|
75
|
+
attr_writer :started_at
|
|
76
|
+
|
|
77
|
+
# INITIATED, RINGING, ANSWERED, COMPLETED, FAILED, NO_ANSWER or REJECTED
|
|
78
|
+
sig { returns(T.nilable(String)) }
|
|
79
|
+
attr_reader :status
|
|
80
|
+
|
|
81
|
+
sig { params(status: String).void }
|
|
82
|
+
attr_writer :status
|
|
83
|
+
|
|
84
|
+
# When the call entered each status, oldest first. Only returned when reading one
|
|
85
|
+
# call
|
|
86
|
+
sig { returns(T.nilable(T::Array[Sentdm::CallTimelineEntry])) }
|
|
87
|
+
attr_accessor :timeline
|
|
88
|
+
|
|
89
|
+
# One end of a call
|
|
90
|
+
sig { returns(T.nilable(Sentdm::CallParty)) }
|
|
91
|
+
attr_reader :to
|
|
92
|
+
|
|
93
|
+
sig { params(to: Sentdm::CallParty::OrHash).void }
|
|
94
|
+
attr_writer :to
|
|
95
|
+
|
|
96
|
+
# A call record
|
|
97
|
+
sig do
|
|
98
|
+
params(
|
|
99
|
+
id: String,
|
|
100
|
+
answered_at: T.nilable(Time),
|
|
101
|
+
direction: String,
|
|
102
|
+
duration_seconds: T.nilable(Integer),
|
|
103
|
+
ended_at: T.nilable(Time),
|
|
104
|
+
failure_reason: T.nilable(String),
|
|
105
|
+
from: Sentdm::CallParty::OrHash,
|
|
106
|
+
number: String,
|
|
107
|
+
price: T.nilable(Float),
|
|
108
|
+
recording_available: T::Boolean,
|
|
109
|
+
started_at: Time,
|
|
110
|
+
status: String,
|
|
111
|
+
timeline: T.nilable(T::Array[Sentdm::CallTimelineEntry::OrHash]),
|
|
112
|
+
to: Sentdm::CallParty::OrHash
|
|
113
|
+
).returns(T.attached_class)
|
|
114
|
+
end
|
|
115
|
+
def self.new(
|
|
116
|
+
# The call id, the same one carried by the call.request question and every call
|
|
117
|
+
# webhook
|
|
118
|
+
id: nil,
|
|
119
|
+
# When the call was answered (UTC). Null until then, and always null for a call
|
|
120
|
+
# between two of your app users
|
|
121
|
+
answered_at: nil,
|
|
122
|
+
# outbound for a call placed from your app, inbound for a call to one of your
|
|
123
|
+
# numbers
|
|
124
|
+
direction: nil,
|
|
125
|
+
# Billable duration in seconds. Null while the call is live
|
|
126
|
+
duration_seconds: nil,
|
|
127
|
+
# When the call ended (UTC). Null while the call is live
|
|
128
|
+
ended_at: nil,
|
|
129
|
+
# Why the call did not complete: callback_timeout, invalid_answer,
|
|
130
|
+
# insufficient_balance, destination_blocked, callback_not_configured, rejected or
|
|
131
|
+
# no_answer. Null while the call is live, when it completed, and when it failed
|
|
132
|
+
# without a recorded reason
|
|
133
|
+
failure_reason: nil,
|
|
134
|
+
# One end of a call
|
|
135
|
+
from: nil,
|
|
136
|
+
# Your number that owns the call, in E.164 format: the dialed number for an
|
|
137
|
+
# inbound call, the caller's bound number for a call placed from your app
|
|
138
|
+
number: nil,
|
|
139
|
+
# What the call cost. Null until it has been priced
|
|
140
|
+
price: nil,
|
|
141
|
+
# True once a recording of the call is available
|
|
142
|
+
recording_available: nil,
|
|
143
|
+
# When the call was placed (UTC)
|
|
144
|
+
started_at: nil,
|
|
145
|
+
# INITIATED, RINGING, ANSWERED, COMPLETED, FAILED, NO_ANSWER or REJECTED
|
|
146
|
+
status: nil,
|
|
147
|
+
# When the call entered each status, oldest first. Only returned when reading one
|
|
148
|
+
# call
|
|
149
|
+
timeline: nil,
|
|
150
|
+
# One end of a call
|
|
151
|
+
to: nil
|
|
152
|
+
)
|
|
153
|
+
end
|
|
154
|
+
|
|
155
|
+
sig do
|
|
156
|
+
override.returns(
|
|
157
|
+
{
|
|
158
|
+
id: String,
|
|
159
|
+
answered_at: T.nilable(Time),
|
|
160
|
+
direction: String,
|
|
161
|
+
duration_seconds: T.nilable(Integer),
|
|
162
|
+
ended_at: T.nilable(Time),
|
|
163
|
+
failure_reason: T.nilable(String),
|
|
164
|
+
from: Sentdm::CallParty,
|
|
165
|
+
number: String,
|
|
166
|
+
price: T.nilable(Float),
|
|
167
|
+
recording_available: T::Boolean,
|
|
168
|
+
started_at: Time,
|
|
169
|
+
status: String,
|
|
170
|
+
timeline: T.nilable(T::Array[Sentdm::CallTimelineEntry]),
|
|
171
|
+
to: Sentdm::CallParty
|
|
172
|
+
}
|
|
173
|
+
)
|
|
174
|
+
end
|
|
175
|
+
def to_hash
|
|
176
|
+
end
|
|
177
|
+
end
|
|
178
|
+
end
|
|
179
|
+
end
|