sentdm 0.34.0 → 0.35.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.
Files changed (165) hide show
  1. checksums.yaml +4 -4
  2. data/CHANGELOG.md +8 -0
  3. data/README.md +11 -9
  4. data/lib/sentdm/client.rb +25 -0
  5. data/lib/sentdm/internal/calls_page.rb +115 -0
  6. data/lib/sentdm/models/api_response_of_call.rb +43 -0
  7. data/lib/sentdm/models/api_response_of_call_recordings.rb +43 -0
  8. data/lib/sentdm/models/api_response_of_calls_list.rb +42 -0
  9. data/lib/sentdm/models/call.rb +133 -0
  10. data/lib/sentdm/models/call_event.rb +72 -0
  11. data/lib/sentdm/models/call_event_payload.rb +102 -0
  12. data/lib/sentdm/models/call_hangup_params.rb +32 -0
  13. data/lib/sentdm/models/call_list_params.rb +83 -0
  14. data/lib/sentdm/models/call_list_recordings_params.rb +26 -0
  15. data/lib/sentdm/models/call_party.rb +31 -0
  16. data/lib/sentdm/models/call_record_params.rb +55 -0
  17. data/lib/sentdm/models/call_recording.rb +38 -0
  18. data/lib/sentdm/models/call_recordings.rb +24 -0
  19. data/lib/sentdm/models/call_retrieve_params.rb +26 -0
  20. data/lib/sentdm/models/call_timeline_entry.rb +26 -0
  21. data/lib/sentdm/models/calls/api_response_of_list_of_call_participant.rb +45 -0
  22. data/lib/sentdm/models/calls/call_participant.rb +60 -0
  23. data/lib/sentdm/models/calls/call_participant_target.rb +30 -0
  24. data/lib/sentdm/models/calls/participant_add_params.rb +66 -0
  25. data/lib/sentdm/models/calls/participant_list_params.rb +28 -0
  26. data/lib/sentdm/models/calls/participant_remove_all_params.rb +28 -0
  27. data/lib/sentdm/models/calls/participant_remove_params.rb +34 -0
  28. data/lib/sentdm/models/calls/participant_update_params.rb +64 -0
  29. data/lib/sentdm/models/calls_list.rb +26 -0
  30. data/lib/sentdm/models/channels/api_response_of_list_of_voice_number.rb +45 -0
  31. data/lib/sentdm/models/channels/api_response_of_voice_callback_test.rb +45 -0
  32. data/lib/sentdm/models/channels/api_response_of_voice_number.rb +45 -0
  33. data/lib/sentdm/models/channels/api_response_of_voice_number_created.rb +45 -0
  34. data/lib/sentdm/models/channels/api_response_of_voice_secret.rb +45 -0
  35. data/lib/sentdm/models/channels/api_response_of_voice_token.rb +45 -0
  36. data/lib/sentdm/models/channels/voice_callback_test.rb +65 -0
  37. data/lib/sentdm/models/channels/voice_callback_test_error_info.rb +41 -0
  38. data/lib/sentdm/models/channels/voice_callback_test_request_info.rb +40 -0
  39. data/lib/sentdm/models/channels/voice_callback_test_response_info.rb +28 -0
  40. data/lib/sentdm/models/channels/voice_create_params.rb +86 -0
  41. data/lib/sentdm/models/channels/voice_create_token_params.rb +69 -0
  42. data/lib/sentdm/models/channels/voice_list_params.rb +22 -0
  43. data/lib/sentdm/models/channels/voice_number.rb +68 -0
  44. data/lib/sentdm/models/channels/voice_number_created.rb +26 -0
  45. data/lib/sentdm/models/channels/voice_retrieve_params.rb +28 -0
  46. data/lib/sentdm/models/channels/voice_rotate_secret_params.rb +34 -0
  47. data/lib/sentdm/models/channels/voice_secret.rb +25 -0
  48. data/lib/sentdm/models/channels/voice_test_params.rb +34 -0
  49. data/lib/sentdm/models/channels/voice_token.rb +44 -0
  50. data/lib/sentdm/models/channels/voice_update_params.rb +95 -0
  51. data/lib/sentdm/models/webhook_list_events_response.rb +4 -173
  52. data/lib/sentdm/models.rb +36 -0
  53. data/lib/sentdm/resources/calls/participants.rb +231 -0
  54. data/lib/sentdm/resources/calls.rb +235 -0
  55. data/lib/sentdm/resources/channels/voice.rb +381 -0
  56. data/lib/sentdm/resources/channels.rb +45 -0
  57. data/lib/sentdm/version.rb +1 -1
  58. data/lib/sentdm.rb +50 -0
  59. data/rbi/sentdm/client.rbi +23 -0
  60. data/rbi/sentdm/internal/calls_page.rbi +71 -0
  61. data/rbi/sentdm/models/api_response_of_call.rbi +74 -0
  62. data/rbi/sentdm/models/api_response_of_call_recordings.rbi +74 -0
  63. data/rbi/sentdm/models/api_response_of_calls_list.rbi +74 -0
  64. data/rbi/sentdm/models/call.rbi +177 -0
  65. data/rbi/sentdm/models/call_event.rbi +114 -0
  66. data/rbi/sentdm/models/call_event_payload.rbi +135 -0
  67. data/rbi/sentdm/models/call_hangup_params.rbi +59 -0
  68. data/rbi/sentdm/models/call_list_params.rbi +112 -0
  69. data/rbi/sentdm/models/call_list_recordings_params.rbi +46 -0
  70. data/rbi/sentdm/models/call_party.rbi +41 -0
  71. data/rbi/sentdm/models/call_record_params.rbi +83 -0
  72. data/rbi/sentdm/models/call_recording.rbi +59 -0
  73. data/rbi/sentdm/models/call_recordings.rbi +39 -0
  74. data/rbi/sentdm/models/call_retrieve_params.rbi +46 -0
  75. data/rbi/sentdm/models/call_timeline_entry.rbi +40 -0
  76. data/rbi/sentdm/models/calls/api_response_of_list_of_call_participant.rbi +76 -0
  77. data/rbi/sentdm/models/calls/call_participant.rbi +92 -0
  78. data/rbi/sentdm/models/calls/call_participant_target.rbi +47 -0
  79. data/rbi/sentdm/models/calls/participant_add_params.rbi +98 -0
  80. data/rbi/sentdm/models/calls/participant_list_params.rbi +51 -0
  81. data/rbi/sentdm/models/calls/participant_remove_all_params.rbi +51 -0
  82. data/rbi/sentdm/models/calls/participant_remove_params.rbi +61 -0
  83. data/rbi/sentdm/models/calls/participant_update_params.rbi +94 -0
  84. data/rbi/sentdm/models/calls_list.rbi +47 -0
  85. data/rbi/sentdm/models/channels/api_response_of_list_of_voice_number.rbi +76 -0
  86. data/rbi/sentdm/models/channels/api_response_of_voice_callback_test.rbi +83 -0
  87. data/rbi/sentdm/models/channels/api_response_of_voice_number.rbi +81 -0
  88. data/rbi/sentdm/models/channels/api_response_of_voice_number_created.rbi +83 -0
  89. data/rbi/sentdm/models/channels/api_response_of_voice_secret.rbi +81 -0
  90. data/rbi/sentdm/models/channels/api_response_of_voice_token.rbi +81 -0
  91. data/rbi/sentdm/models/channels/voice_callback_test.rbi +126 -0
  92. data/rbi/sentdm/models/channels/voice_callback_test_error_info.rbi +65 -0
  93. data/rbi/sentdm/models/channels/voice_callback_test_request_info.rbi +66 -0
  94. data/rbi/sentdm/models/channels/voice_callback_test_response_info.rbi +48 -0
  95. data/rbi/sentdm/models/channels/voice_create_params.rbi +127 -0
  96. data/rbi/sentdm/models/channels/voice_create_token_params.rbi +104 -0
  97. data/rbi/sentdm/models/channels/voice_list_params.rbi +40 -0
  98. data/rbi/sentdm/models/channels/voice_number.rbi +105 -0
  99. data/rbi/sentdm/models/channels/voice_number_created.rbi +42 -0
  100. data/rbi/sentdm/models/channels/voice_retrieve_params.rbi +51 -0
  101. data/rbi/sentdm/models/channels/voice_rotate_secret_params.rbi +64 -0
  102. data/rbi/sentdm/models/channels/voice_secret.rbi +35 -0
  103. data/rbi/sentdm/models/channels/voice_test_params.rbi +61 -0
  104. data/rbi/sentdm/models/channels/voice_token.rbi +76 -0
  105. data/rbi/sentdm/models/channels/voice_update_params.rbi +158 -0
  106. data/rbi/sentdm/models/webhook_list_events_response.rbi +3 -269
  107. data/rbi/sentdm/models.rbi +36 -0
  108. data/rbi/sentdm/resources/calls/participants.rbi +199 -0
  109. data/rbi/sentdm/resources/calls.rbi +206 -0
  110. data/rbi/sentdm/resources/channels/voice.rbi +371 -0
  111. data/rbi/sentdm/resources/channels.rbi +42 -0
  112. data/sig/sentdm/client.rbs +4 -0
  113. data/sig/sentdm/internal/calls_page.rbs +41 -0
  114. data/sig/sentdm/models/api_response_of_call.rbs +39 -0
  115. data/sig/sentdm/models/api_response_of_call_recordings.rbs +39 -0
  116. data/sig/sentdm/models/api_response_of_calls_list.rbs +39 -0
  117. data/sig/sentdm/models/call.rbs +101 -0
  118. data/sig/sentdm/models/call_event.rbs +44 -0
  119. data/sig/sentdm/models/call_event_payload.rbs +68 -0
  120. data/sig/sentdm/models/call_hangup_params.rbs +38 -0
  121. data/sig/sentdm/models/call_list_params.rbs +67 -0
  122. data/sig/sentdm/models/call_list_recordings_params.rbs +30 -0
  123. data/sig/sentdm/models/call_party.rbs +17 -0
  124. data/sig/sentdm/models/call_record_params.rbs +54 -0
  125. data/sig/sentdm/models/call_recording.rbs +32 -0
  126. data/sig/sentdm/models/call_recordings.rbs +17 -0
  127. data/sig/sentdm/models/call_retrieve_params.rbs +30 -0
  128. data/sig/sentdm/models/call_timeline_entry.rbs +19 -0
  129. data/sig/sentdm/models/calls/api_response_of_list_of_call_participant.rbs +41 -0
  130. data/sig/sentdm/models/calls/call_participant.rbs +52 -0
  131. data/sig/sentdm/models/calls/call_participant_target.rbs +23 -0
  132. data/sig/sentdm/models/calls/participant_add_params.rbs +63 -0
  133. data/sig/sentdm/models/calls/participant_list_params.rbs +32 -0
  134. data/sig/sentdm/models/calls/participant_remove_all_params.rbs +34 -0
  135. data/sig/sentdm/models/calls/participant_remove_params.rbs +40 -0
  136. data/sig/sentdm/models/calls/participant_update_params.rbs +61 -0
  137. data/sig/sentdm/models/calls_list.rbs +26 -0
  138. data/sig/sentdm/models/channels/api_response_of_list_of_voice_number.rbs +41 -0
  139. data/sig/sentdm/models/channels/api_response_of_voice_callback_test.rbs +41 -0
  140. data/sig/sentdm/models/channels/api_response_of_voice_number.rbs +41 -0
  141. data/sig/sentdm/models/channels/api_response_of_voice_number_created.rbs +41 -0
  142. data/sig/sentdm/models/channels/api_response_of_voice_secret.rbs +41 -0
  143. data/sig/sentdm/models/channels/api_response_of_voice_token.rbs +41 -0
  144. data/sig/sentdm/models/channels/voice_callback_test.rbs +51 -0
  145. data/sig/sentdm/models/channels/voice_callback_test_error_info.rbs +28 -0
  146. data/sig/sentdm/models/channels/voice_callback_test_request_info.rbs +34 -0
  147. data/sig/sentdm/models/channels/voice_callback_test_response_info.rbs +20 -0
  148. data/sig/sentdm/models/channels/voice_create_params.rbs +64 -0
  149. data/sig/sentdm/models/channels/voice_create_token_params.rbs +61 -0
  150. data/sig/sentdm/models/channels/voice_list_params.rbs +27 -0
  151. data/sig/sentdm/models/channels/voice_number.rbs +57 -0
  152. data/sig/sentdm/models/channels/voice_number_created.rbs +17 -0
  153. data/sig/sentdm/models/channels/voice_retrieve_params.rbs +32 -0
  154. data/sig/sentdm/models/channels/voice_rotate_secret_params.rbs +40 -0
  155. data/sig/sentdm/models/channels/voice_secret.rbs +17 -0
  156. data/sig/sentdm/models/channels/voice_test_params.rbs +40 -0
  157. data/sig/sentdm/models/channels/voice_token.rbs +40 -0
  158. data/sig/sentdm/models/channels/voice_update_params.rbs +78 -0
  159. data/sig/sentdm/models/webhook_list_events_response.rbs +1 -107
  160. data/sig/sentdm/models.rbs +36 -0
  161. data/sig/sentdm/resources/calls/participants.rbs +50 -0
  162. data/sig/sentdm/resources/calls.rbs +50 -0
  163. data/sig/sentdm/resources/channels/voice.rbs +68 -0
  164. data/sig/sentdm/resources/channels.rbs +9 -0
  165. metadata +152 -2
@@ -0,0 +1,69 @@
1
+ # frozen_string_literal: true
2
+
3
+ module Sentdm
4
+ module Models
5
+ module Channels
6
+ # @see Sentdm::Resources::Channels::Voice#create_token
7
+ class VoiceCreateTokenParams < Sentdm::Internal::Type::BaseModel
8
+ extend Sentdm::Internal::Type::RequestParameters::Converter
9
+ include Sentdm::Internal::Type::RequestParameters
10
+
11
+ # @!attribute identity
12
+ # Your identifier for the app user, such as an agent or account id. Letters,
13
+ # digits, hyphens and underscores only, up to 200 characters.
14
+ #
15
+ # @return [String, nil]
16
+ optional :identity, String
17
+
18
+ # @!attribute number
19
+ # One of your voice-enabled phone numbers in E.164 format. Calls placed by this
20
+ # identity are routed through that number. Omit to use your default app-call
21
+ # number.
22
+ #
23
+ # @return [String, nil]
24
+ optional :number, String, nil?: true
25
+
26
+ # @!attribute sandbox
27
+ # Sandbox flag - when true, the operation is simulated without side effects Useful
28
+ # for testing integrations without actual execution
29
+ #
30
+ # @return [Boolean, nil]
31
+ optional :sandbox, Sentdm::Internal::Type::Boolean
32
+
33
+ # @!attribute ttl
34
+ # Token lifetime in seconds. Defaults to 600 and cannot exceed 3600.
35
+ #
36
+ # @return [Integer, nil]
37
+ optional :ttl, Integer, nil?: true
38
+
39
+ # @!attribute idempotency_key
40
+ #
41
+ # @return [String, nil]
42
+ optional :idempotency_key, String
43
+
44
+ # @!attribute x_profile_id
45
+ #
46
+ # @return [String, nil]
47
+ optional :x_profile_id, String
48
+
49
+ # @!method initialize(identity: nil, number: nil, sandbox: nil, ttl: nil, idempotency_key: nil, x_profile_id: nil, request_options: {})
50
+ # Some parameter documentations has been truncated, see
51
+ # {Sentdm::Models::Channels::VoiceCreateTokenParams} for more details.
52
+ #
53
+ # @param identity [String] Your identifier for the app user, such as an agent or account id. Letters, digit
54
+ #
55
+ # @param number [String, nil] One of your voice-enabled phone numbers in E.164 format. Calls placed by this id
56
+ #
57
+ # @param sandbox [Boolean] Sandbox flag - when true, the operation is simulated without side effects
58
+ #
59
+ # @param ttl [Integer, nil] Token lifetime in seconds. Defaults to 600 and cannot exceed 3600.
60
+ #
61
+ # @param idempotency_key [String]
62
+ #
63
+ # @param x_profile_id [String]
64
+ #
65
+ # @param request_options [Sentdm::RequestOptions, Hash{Symbol=>Object}]
66
+ end
67
+ end
68
+ end
69
+ end
@@ -0,0 +1,22 @@
1
+ # frozen_string_literal: true
2
+
3
+ module Sentdm
4
+ module Models
5
+ module Channels
6
+ # @see Sentdm::Resources::Channels::Voice#list
7
+ class VoiceListParams < Sentdm::Internal::Type::BaseModel
8
+ extend Sentdm::Internal::Type::RequestParameters::Converter
9
+ include Sentdm::Internal::Type::RequestParameters
10
+
11
+ # @!attribute x_profile_id
12
+ #
13
+ # @return [String, nil]
14
+ optional :x_profile_id, String
15
+
16
+ # @!method initialize(x_profile_id: nil, request_options: {})
17
+ # @param x_profile_id [String]
18
+ # @param request_options [Sentdm::RequestOptions, Hash{Symbol=>Object}]
19
+ end
20
+ end
21
+ end
22
+ end
@@ -0,0 +1,68 @@
1
+ # frozen_string_literal: true
2
+
3
+ module Sentdm
4
+ module Models
5
+ module Channels
6
+ class VoiceNumber < Sentdm::Internal::Type::BaseModel
7
+ # @!attribute callback_url
8
+ # Where Sent asks what to do with each call on this number: a signed question is
9
+ # POSTed here when a call arrives or a caller presses a key, and the answer
10
+ # decides the call. The signing secret is not on this read; it is shown when voice
11
+ # is turned on and by the rotate endpoint.
12
+ #
13
+ # @return [String, nil]
14
+ optional :callback_url, String, nil?: true
15
+
16
+ # @!attribute created_at
17
+ #
18
+ # @return [Time, nil]
19
+ optional :created_at, Time
20
+
21
+ # @!attribute default_for_app_calls
22
+ # Whether this is the line app-originated calls are placed from when a voice token
23
+ # names no number. Exactly one active voice number carries it while the profile
24
+ # has any.
25
+ #
26
+ # @return [Boolean, nil]
27
+ optional :default_for_app_calls, Sentdm::Internal::Type::Boolean
28
+
29
+ # @!attribute number
30
+ # The number, in E.164.
31
+ #
32
+ # @return [String, nil]
33
+ optional :number, String
34
+
35
+ # @!attribute status
36
+ # ACTIVE while the number carries calls, INACTIVE once it was turned off. Nothing
37
+ # provisions: a number the customer holds can carry calls the moment voice is
38
+ # turned on for it.
39
+ #
40
+ # @return [String, nil]
41
+ optional :status, String
42
+
43
+ # @!attribute updated_at
44
+ #
45
+ # @return [Time, nil]
46
+ optional :updated_at, Time
47
+
48
+ # @!method initialize(callback_url: nil, created_at: nil, default_for_app_calls: nil, number: nil, status: nil, updated_at: nil)
49
+ # Some parameter documentations has been truncated, see
50
+ # {Sentdm::Models::Channels::VoiceNumber} for more details.
51
+ #
52
+ # One number the profile carries phone calls on.
53
+ #
54
+ # @param callback_url [String, nil] Where Sent asks what to do with each call on this number: a signed question is P
55
+ #
56
+ # @param created_at [Time]
57
+ #
58
+ # @param default_for_app_calls [Boolean] Whether this is the line app-originated calls are placed from when a voice token
59
+ #
60
+ # @param number [String] The number, in E.164.
61
+ #
62
+ # @param status [String] ACTIVE while the number carries calls, INACTIVE once it was turned off. Nothing
63
+ #
64
+ # @param updated_at [Time]
65
+ end
66
+ end
67
+ end
68
+ end
@@ -0,0 +1,26 @@
1
+ # frozen_string_literal: true
2
+
3
+ module Sentdm
4
+ module Models
5
+ module Channels
6
+ class VoiceNumberCreated < Sentdm::Models::Channels::VoiceNumber
7
+ # @!attribute callback_secret
8
+ # The whsec\_ secret every question to callback_url is signed with. Shown here and
9
+ # by POST /v3/channels/voice/{number}/rotate-secret, nowhere else: store it now.
10
+ # Verify a question exactly as you verify a webhook, with X-Webhook-ID,
11
+ # X-Webhook-Timestamp and the body.
12
+ #
13
+ # @return [String, nil]
14
+ optional :callback_secret, String
15
+
16
+ # @!method initialize(callback_secret: nil)
17
+ # Some parameter documentations has been truncated, see
18
+ # {Sentdm::Models::Channels::VoiceNumberCreated} for more details.
19
+ #
20
+ # One number the profile carries phone calls on.
21
+ #
22
+ # @param callback_secret [String] The whsec\_ secret every question to callback_url is signed with. Shown here and
23
+ end
24
+ end
25
+ end
26
+ end
@@ -0,0 +1,28 @@
1
+ # frozen_string_literal: true
2
+
3
+ module Sentdm
4
+ module Models
5
+ module Channels
6
+ # @see Sentdm::Resources::Channels::Voice#retrieve
7
+ class VoiceRetrieveParams < Sentdm::Internal::Type::BaseModel
8
+ extend Sentdm::Internal::Type::RequestParameters::Converter
9
+ include Sentdm::Internal::Type::RequestParameters
10
+
11
+ # @!attribute number
12
+ #
13
+ # @return [String]
14
+ required :number, String
15
+
16
+ # @!attribute x_profile_id
17
+ #
18
+ # @return [String, nil]
19
+ optional :x_profile_id, String
20
+
21
+ # @!method initialize(number:, x_profile_id: nil, request_options: {})
22
+ # @param number [String]
23
+ # @param x_profile_id [String]
24
+ # @param request_options [Sentdm::RequestOptions, Hash{Symbol=>Object}]
25
+ end
26
+ end
27
+ end
28
+ end
@@ -0,0 +1,34 @@
1
+ # frozen_string_literal: true
2
+
3
+ module Sentdm
4
+ module Models
5
+ module Channels
6
+ # @see Sentdm::Resources::Channels::Voice#rotate_secret
7
+ class VoiceRotateSecretParams < Sentdm::Models::MutationRequest
8
+ extend Sentdm::Internal::Type::RequestParameters::Converter
9
+ include Sentdm::Internal::Type::RequestParameters
10
+
11
+ # @!attribute number
12
+ #
13
+ # @return [String]
14
+ required :number, String
15
+
16
+ # @!attribute idempotency_key
17
+ #
18
+ # @return [String, nil]
19
+ optional :idempotency_key, String
20
+
21
+ # @!attribute x_profile_id
22
+ #
23
+ # @return [String, nil]
24
+ optional :x_profile_id, String
25
+
26
+ # @!method initialize(number:, idempotency_key: nil, x_profile_id: nil, request_options: {})
27
+ # @param number [String]
28
+ # @param idempotency_key [String]
29
+ # @param x_profile_id [String]
30
+ # @param request_options [Sentdm::RequestOptions, Hash{Symbol=>Object}]
31
+ end
32
+ end
33
+ end
34
+ end
@@ -0,0 +1,25 @@
1
+ # frozen_string_literal: true
2
+
3
+ module Sentdm
4
+ module Models
5
+ module Channels
6
+ class VoiceSecret < Sentdm::Internal::Type::BaseModel
7
+ # @!attribute callback_secret
8
+ # The new whsec\_ secret. The previous one stopped signing the moment this was
9
+ # returned, so update your backend before the next call reaches it. Shown once.
10
+ #
11
+ # @return [String, nil]
12
+ optional :callback_secret, String
13
+
14
+ # @!method initialize(callback_secret: nil)
15
+ # Some parameter documentations has been truncated, see
16
+ # {Sentdm::Models::Channels::VoiceSecret} for more details.
17
+ #
18
+ # A freshly rotated callback signing secret
19
+ #
20
+ # @param callback_secret [String] The new whsec\_ secret. The previous one stopped signing the moment this was
21
+ # retu
22
+ end
23
+ end
24
+ end
25
+ end
@@ -0,0 +1,34 @@
1
+ # frozen_string_literal: true
2
+
3
+ module Sentdm
4
+ module Models
5
+ module Channels
6
+ # @see Sentdm::Resources::Channels::Voice#test_
7
+ class VoiceTestParams < Sentdm::Models::MutationRequest
8
+ extend Sentdm::Internal::Type::RequestParameters::Converter
9
+ include Sentdm::Internal::Type::RequestParameters
10
+
11
+ # @!attribute number
12
+ #
13
+ # @return [String]
14
+ required :number, String
15
+
16
+ # @!attribute idempotency_key
17
+ #
18
+ # @return [String, nil]
19
+ optional :idempotency_key, String
20
+
21
+ # @!attribute x_profile_id
22
+ #
23
+ # @return [String, nil]
24
+ optional :x_profile_id, String
25
+
26
+ # @!method initialize(number:, idempotency_key: nil, x_profile_id: nil, request_options: {})
27
+ # @param number [String]
28
+ # @param idempotency_key [String]
29
+ # @param x_profile_id [String]
30
+ # @param request_options [Sentdm::RequestOptions, Hash{Symbol=>Object}]
31
+ end
32
+ end
33
+ end
34
+ end
@@ -0,0 +1,44 @@
1
+ # frozen_string_literal: true
2
+
3
+ module Sentdm
4
+ module Models
5
+ module Channels
6
+ class VoiceToken < Sentdm::Internal::Type::BaseModel
7
+ # @!attribute token
8
+ # The signed token. Hand it to the client SDK unchanged.
9
+ #
10
+ # @return [String, nil]
11
+ optional :token, String
12
+
13
+ # @!attribute expires_at
14
+ # When the token expires (UTC)
15
+ #
16
+ # @return [Time, nil]
17
+ optional :expires_at, Time
18
+
19
+ # @!attribute identity
20
+ # The identity the token was minted for
21
+ #
22
+ # @return [String, nil]
23
+ optional :identity, String
24
+
25
+ # @!attribute number
26
+ # The phone number this identity is now bound to, in E.164 format
27
+ #
28
+ # @return [String, nil]
29
+ optional :number, String
30
+
31
+ # @!method initialize(token: nil, expires_at: nil, identity: nil, number: nil)
32
+ # A short-lived token your app passes to the voice client SDK to register
33
+ #
34
+ # @param token [String] The signed token. Hand it to the client SDK unchanged.
35
+ #
36
+ # @param expires_at [Time] When the token expires (UTC)
37
+ #
38
+ # @param identity [String] The identity the token was minted for
39
+ #
40
+ # @param number [String] The phone number this identity is now bound to, in E.164 format
41
+ end
42
+ end
43
+ end
44
+ end
@@ -0,0 +1,95 @@
1
+ # frozen_string_literal: true
2
+
3
+ module Sentdm
4
+ module Models
5
+ module Channels
6
+ # @see Sentdm::Resources::Channels::Voice#update
7
+ class VoiceUpdateParams < Sentdm::Internal::Type::BaseModel
8
+ extend Sentdm::Internal::Type::RequestParameters::Converter
9
+ include Sentdm::Internal::Type::RequestParameters
10
+
11
+ # @!attribute number
12
+ #
13
+ # @return [String]
14
+ required :number, String
15
+
16
+ # @!attribute callback_url
17
+ # A new callback URL for the number, active or not: an absolute HTTP or HTTPS URL
18
+ # on a public host, where Sent asks what to do with each call. The signing secret
19
+ # is kept.
20
+ #
21
+ # @return [String, nil]
22
+ optional :callback_url, String, nil?: true
23
+
24
+ # @!attribute default_for_app_calls
25
+ # true makes this the line app-originated calls are placed from when a voice token
26
+ # names no number. false is refused: an account with active voice numbers always
27
+ # has exactly one default, so the default moves by giving it to another number.
28
+ #
29
+ # @return [Boolean, nil]
30
+ optional :default_for_app_calls, Sentdm::Internal::Type::Boolean, nil?: true
31
+
32
+ # @!attribute sandbox
33
+ # Sandbox flag - when true, the operation is simulated without side effects Useful
34
+ # for testing integrations without actual execution
35
+ #
36
+ # @return [Boolean, nil]
37
+ optional :sandbox, Sentdm::Internal::Type::Boolean
38
+
39
+ # @!attribute status
40
+ # ACTIVE turns calls on for the number again, INACTIVE turns them off. Matched
41
+ # ignoring case. Turning the default line off is refused while other active voice
42
+ # numbers remain.
43
+ #
44
+ # @return [Symbol, Sentdm::Models::Channels::VoiceUpdateParams::Status, nil]
45
+ optional :status, enum: -> { Sentdm::Channels::VoiceUpdateParams::Status }, nil?: true
46
+
47
+ # @!attribute idempotency_key
48
+ #
49
+ # @return [String, nil]
50
+ optional :idempotency_key, String
51
+
52
+ # @!attribute x_profile_id
53
+ #
54
+ # @return [String, nil]
55
+ optional :x_profile_id, String
56
+
57
+ # @!method initialize(number:, callback_url: nil, default_for_app_calls: nil, sandbox: nil, status: nil, idempotency_key: nil, x_profile_id: nil, request_options: {})
58
+ # Some parameter documentations has been truncated, see
59
+ # {Sentdm::Models::Channels::VoiceUpdateParams} for more details.
60
+ #
61
+ # @param number [String]
62
+ #
63
+ # @param callback_url [String, nil] A new callback URL for the number, active or not: an absolute HTTP or HTTPS URL
64
+ #
65
+ # @param default_for_app_calls [Boolean, nil] true makes this the line app-originated calls are placed from when a voice token
66
+ #
67
+ # @param sandbox [Boolean] Sandbox flag - when true, the operation is simulated without side effects
68
+ #
69
+ # @param status [Symbol, Sentdm::Models::Channels::VoiceUpdateParams::Status, nil] ACTIVE turns calls on for the number again, INACTIVE turns them off. Matched
70
+ #
71
+ # @param idempotency_key [String]
72
+ #
73
+ # @param x_profile_id [String]
74
+ #
75
+ # @param request_options [Sentdm::RequestOptions, Hash{Symbol=>Object}]
76
+
77
+ # ACTIVE turns calls on for the number again, INACTIVE turns them off. Matched
78
+ # ignoring case. Turning the default line off is refused while other active voice
79
+ # numbers remain.
80
+ module Status
81
+ extend Sentdm::Internal::Type::Enum
82
+
83
+ # Turns calls on for the number again. The callback URL and the signing secret it had are kept; send `callback_url` in the same call to replace the URL.
84
+ ACTIVE = :ACTIVE
85
+
86
+ # Turns calls off for the number. Refused while the number is the default line for app calls and other active voice numbers remain; move the default first. The callback URL and the secret stay on the number.
87
+ INACTIVE = :INACTIVE
88
+
89
+ # @!method self.values
90
+ # @return [Array<Symbol>]
91
+ end
92
+ end
93
+ end
94
+ end
95
+ end
@@ -48,7 +48,7 @@ module Sentdm
48
48
  # handler that rejects an envelope it does not recognise will break on the next
49
49
  # addition rather than ignore it.
50
50
  #
51
- # @return [Sentdm::Models::MessageEvent, Sentdm::Models::InboundMessageEvent, Sentdm::Models::TemplateEvent, Sentdm::Models::ChannelEvent, Sentdm::Models::ContactEvent, Sentdm::Models::WebhookListEventsResponse::EventData::SentDmServicesCommonServicesWebhooksContractsWebhookEventOfLinkWebhookPayload, Sentdm::Models::WebhookListEventsResponse::EventData::SentDmServicesCommonServicesWebhooksContractsWebhookEventOfCallWebhookPayload, nil]
51
+ # @return [Sentdm::Models::MessageEvent, Sentdm::Models::InboundMessageEvent, Sentdm::Models::TemplateEvent, Sentdm::Models::ChannelEvent, Sentdm::Models::ContactEvent, Sentdm::Models::WebhookListEventsResponse::EventData::SentDmServicesCommonServicesWebhooksContractsWebhookEventOfLinkWebhookPayload, Sentdm::Models::CallEvent, nil]
52
52
  optional :event_data, union: -> { Sentdm::Models::WebhookListEventsResponse::EventData }
53
53
 
54
54
  # @!attribute event_type
@@ -90,7 +90,7 @@ module Sentdm
90
90
  #
91
91
  # @param error_message [String, nil]
92
92
  #
93
- # @param event_data [Sentdm::Models::MessageEvent, Sentdm::Models::InboundMessageEvent, Sentdm::Models::TemplateEvent, Sentdm::Models::ChannelEvent, Sentdm::Models::ContactEvent, Sentdm::Models::WebhookListEventsResponse::EventData::SentDmServicesCommonServicesWebhooksContractsWebhookEventOfLinkWebhookPayload, Sentdm::Models::WebhookListEventsResponse::EventData::SentDmServicesCommonServicesWebhooksContractsWebhookEventOfCallWebhookPayload] The exact event body that was delivered, or attempted, for this record. One of t
93
+ # @param event_data [Sentdm::Models::MessageEvent, Sentdm::Models::InboundMessageEvent, Sentdm::Models::TemplateEvent, Sentdm::Models::ChannelEvent, Sentdm::Models::ContactEvent, Sentdm::Models::WebhookListEventsResponse::EventData::SentDmServicesCommonServicesWebhooksContractsWebhookEventOfLinkWebhookPayload, Sentdm::Models::CallEvent] The exact event body that was delivered, or attempted, for this record. One of t
94
94
  #
95
95
  # @param event_type [String]
96
96
  #
@@ -150,7 +150,7 @@ module Sentdm
150
150
 
151
151
  # The envelope Sent POSTs to a subscribed webhook endpoint. Every event shares this shape and
152
152
  # varies only in Payload.
153
- variant -> { Sentdm::Models::WebhookListEventsResponse::EventData::SentDmServicesCommonServicesWebhooksContractsWebhookEventOfCallWebhookPayload }
153
+ variant -> { Sentdm::CallEvent }
154
154
 
155
155
  class SentDmServicesCommonServicesWebhooksContractsWebhookEventOfLinkWebhookPayload < Sentdm::Internal::Type::BaseModel
156
156
  # @!attribute event
@@ -437,177 +437,8 @@ module Sentdm
437
437
  end
438
438
  end
439
439
 
440
- class SentDmServicesCommonServicesWebhooksContractsWebhookEventOfCallWebhookPayload < Sentdm::Internal::Type::BaseModel
441
- # @!attribute event
442
- # The specific event within the family, for example message.delivered,
443
- # message.received or contact.opt_out. Absent on events that have no subtype, so
444
- # treat it as optional.
445
- #
446
- # @return [String, nil]
447
- optional :event, String, nil?: true
448
-
449
- # @!attribute field
450
- # The event family, for example message, templates or contact. Route on this
451
- # first, then on event for the specific change.
452
- #
453
- # @return [String, nil]
454
- optional :field, String
455
-
456
- # @!attribute payload
457
- # Body of a call.initiated, call.answered, call.completed, call.failed or
458
- # call.recording_ready event. Which of them occurred is the envelope's event.
459
- #
460
- # Shaped like the message, inbound, template and channel payloads: account_id
461
- # names the account the event is about, channel names the channel, and updated_at
462
- # is when the change happened on the call, in the same yyyy-MM-ddTHH:mm:ssZ form.
463
- # duration_seconds and price are added on call.completed, reason on call.failed
464
- # and recording_id on call.recording_ready; each is omitted rather than sent as
465
- # null when it does not apply.
466
- #
467
- # Casing is snake_case because these ride the same webhook stream customers
468
- # already parse message_id from; the question/answer contract is a separate
469
- # surface and stays camelCase. Nothing here is provider-shaped: no provider call
470
- # id, no namespaced identity.
471
- #
472
- # @return [Sentdm::Models::WebhookListEventsResponse::EventData::SentDmServicesCommonServicesWebhooksContractsWebhookEventOfCallWebhookPayload::Payload, nil]
473
- optional :payload,
474
- -> { Sentdm::Models::WebhookListEventsResponse::EventData::SentDmServicesCommonServicesWebhooksContractsWebhookEventOfCallWebhookPayload::Payload },
475
- nil?: true
476
-
477
- # @!attribute request_id
478
- # The event-specific body.
479
- #
480
- # @return [String, nil]
481
- optional :request_id, String, nil?: true
482
-
483
- # @!attribute timestamp
484
- # When Sent emitted the event, in UTC (yyyy-MM-ddTHH:mm:ssZ). This is the emission
485
- # time, not the time the underlying change happened. Use the timestamp inside the
486
- # payload for the latter.
487
- #
488
- # @return [String, nil]
489
- optional :timestamp, String
490
-
491
- # @!method initialize(event: nil, field: nil, payload: nil, request_id: nil, timestamp: nil)
492
- # Some parameter documentations has been truncated, see
493
- # {Sentdm::Models::WebhookListEventsResponse::EventData::SentDmServicesCommonServicesWebhooksContractsWebhookEventOfCallWebhookPayload}
494
- # for more details.
495
- #
496
- # The envelope Sent POSTs to a subscribed webhook endpoint. Every event shares
497
- # this shape and varies only in Payload.
498
- #
499
- # @param event [String, nil] The specific event within the family, for example message.delivered,
500
- #
501
- # @param field [String] The event family, for example message, templates or contact. Route on
502
- #
503
- # @param payload [Sentdm::Models::WebhookListEventsResponse::EventData::SentDmServicesCommonServicesWebhooksContractsWebhookEventOfCallWebhookPayload::Payload, nil] Body of a call.initiated, call.answered, call.completed, call.failed
504
- #
505
- # @param request_id [String, nil] The event-specific body.
506
- #
507
- # @param timestamp [String] When Sent emitted the event, in UTC (yyyy-MM-ddTHH:mm:ssZ). This is the emission
508
-
509
- # @see Sentdm::Models::WebhookListEventsResponse::EventData::SentDmServicesCommonServicesWebhooksContractsWebhookEventOfCallWebhookPayload#payload
510
- class Payload < Sentdm::Internal::Type::BaseModel
511
- # @!attribute call_id
512
- # Sent's call id, the same one the customer saw on the first question.
513
- #
514
- # @return [String]
515
- required :call_id, String
516
-
517
- # @!attribute account_id
518
- # The account the call belongs to: the key's own customer, or the sender profile
519
- # it acted as.
520
- #
521
- # @return [String, nil]
522
- optional :account_id, String
523
-
524
- # @!attribute channel
525
- # Always voice.
526
- #
527
- # @return [String, nil]
528
- optional :channel, String
529
-
530
- # @!attribute duration_seconds
531
- # How long the call lasted. Only on call.completed.
532
- #
533
- # @return [Integer, nil]
534
- optional :duration_seconds, Integer, nil?: true
535
-
536
- # @!attribute number
537
- # The customer number that owns the call, in E.164 format.
538
- #
539
- # @return [String, nil]
540
- optional :number, String
541
-
542
- # @!attribute price
543
- # What the call was charged. Only on call.completed, and omitted there until
544
- # billing has recorded the charge.
545
- #
546
- # @return [Float, nil]
547
- optional :price, Float, nil?: true
548
-
549
- # @!attribute reason
550
- # The machine-readable reason the call did not complete. Only on call.failed, and
551
- # omitted when no reason was recorded.
552
- #
553
- # @return [String, nil]
554
- optional :reason, String, nil?: true
555
-
556
- # @!attribute recording_id
557
- # The recording that became available, the same id GET /v3/calls/{id}/recordings
558
- # lists it under. Only on call.recording_ready, which is sent once per recording.
559
- #
560
- # @return [String, nil]
561
- optional :recording_id, String, nil?: true
562
-
563
- # @!attribute updated_at
564
- # When the change happened on the call, as opposed to when the event was emitted.
565
- #
566
- # @return [String, nil]
567
- optional :updated_at, String
568
-
569
- # @!method initialize(call_id:, account_id: nil, channel: nil, duration_seconds: nil, number: nil, price: nil, reason: nil, recording_id: nil, updated_at: nil)
570
- # Some parameter documentations has been truncated, see
571
- # {Sentdm::Models::WebhookListEventsResponse::EventData::SentDmServicesCommonServicesWebhooksContractsWebhookEventOfCallWebhookPayload::Payload}
572
- # for more details.
573
- #
574
- # Body of a call.initiated, call.answered, call.completed, call.failed or
575
- # call.recording_ready event. Which of them occurred is the envelope's event.
576
- #
577
- # Shaped like the message, inbound, template and channel payloads: account_id
578
- # names the account the event is about, channel names the channel, and updated_at
579
- # is when the change happened on the call, in the same yyyy-MM-ddTHH:mm:ssZ form.
580
- # duration_seconds and price are added on call.completed, reason on call.failed
581
- # and recording_id on call.recording_ready; each is omitted rather than sent as
582
- # null when it does not apply.
583
- #
584
- # Casing is snake_case because these ride the same webhook stream customers
585
- # already parse message_id from; the question/answer contract is a separate
586
- # surface and stays camelCase. Nothing here is provider-shaped: no provider call
587
- # id, no namespaced identity.
588
- #
589
- # @param call_id [String] Sent's call id, the same one the customer saw on the first question.
590
- #
591
- # @param account_id [String] The account the call belongs to: the key's own customer, or the sender profile i
592
- #
593
- # @param channel [String] Always voice.
594
- #
595
- # @param duration_seconds [Integer, nil] How long the call lasted. Only on call.completed.
596
- #
597
- # @param number [String] The customer number that owns the call, in E.164 format.
598
- #
599
- # @param price [Float, nil] What the call was charged. Only on call.completed, and omitted there until billi
600
- #
601
- # @param reason [String, nil] The machine-readable reason the call did not complete. Only on call.failed, and
602
- #
603
- # @param recording_id [String, nil] The recording that became available, the same id GET /v3/calls/{id}/recordings l
604
- #
605
- # @param updated_at [String] When the change happened on the call, as opposed to when the event was emitted.
606
- end
607
- end
608
-
609
440
  # @!method self.variants
610
- # @return [Array(Sentdm::Models::MessageEvent, Sentdm::Models::InboundMessageEvent, Sentdm::Models::TemplateEvent, Sentdm::Models::ChannelEvent, Sentdm::Models::ContactEvent, Sentdm::Models::WebhookListEventsResponse::EventData::SentDmServicesCommonServicesWebhooksContractsWebhookEventOfLinkWebhookPayload, Sentdm::Models::WebhookListEventsResponse::EventData::SentDmServicesCommonServicesWebhooksContractsWebhookEventOfCallWebhookPayload)]
441
+ # @return [Array(Sentdm::Models::MessageEvent, Sentdm::Models::InboundMessageEvent, Sentdm::Models::TemplateEvent, Sentdm::Models::ChannelEvent, Sentdm::Models::ContactEvent, Sentdm::Models::WebhookListEventsResponse::EventData::SentDmServicesCommonServicesWebhooksContractsWebhookEventOfLinkWebhookPayload, Sentdm::Models::CallEvent)]
611
442
  end
612
443
  end
613
444
  end