sentdm 0.39.0 → 0.40.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 (140) hide show
  1. checksums.yaml +4 -4
  2. data/CHANGELOG.md +9 -0
  3. data/README.md +1 -1
  4. data/lib/sentdm/internal/voice_agents_page.rb +115 -0
  5. data/lib/sentdm/models/call_event.rb +8 -6
  6. data/lib/sentdm/models/call_event_payload.rb +25 -6
  7. data/lib/sentdm/models/channels/voice_create_params.rb +23 -11
  8. data/lib/sentdm/models/channels/voice_number.rb +23 -1
  9. data/lib/sentdm/models/channels/voice_update_params.rb +12 -1
  10. data/lib/sentdm/models/voice/agent_create_params.rb +142 -0
  11. data/lib/sentdm/models/voice/agent_delete_params.rb +28 -0
  12. data/lib/sentdm/models/voice/agent_list_params.rb +38 -0
  13. data/lib/sentdm/models/voice/agent_retrieve_params.rb +28 -0
  14. data/lib/sentdm/models/voice/agent_rotate_secret_params.rb +34 -0
  15. data/lib/sentdm/models/voice/agent_update_params.rb +141 -0
  16. data/lib/sentdm/models/voice/api_response_of_voice_agent.rb +51 -0
  17. data/lib/sentdm/models/voice/api_response_of_voice_agent_secret.rb +45 -0
  18. data/lib/sentdm/models/voice/api_response_of_voice_agents_list.rb +48 -0
  19. data/lib/sentdm/models/voice/api_response_of_voice_catalogue.rb +49 -0
  20. data/lib/sentdm/models/voice/call.rb +97 -5
  21. data/lib/sentdm/models/voice/call_list_params.rb +19 -1
  22. data/lib/sentdm/models/voice/catalogue_list_params.rb +22 -0
  23. data/lib/sentdm/models/voice/voice_agent.rb +138 -0
  24. data/lib/sentdm/models/voice/voice_agent_audio.rb +19 -0
  25. data/lib/sentdm/models/voice/voice_agent_audio_spec.rb +20 -0
  26. data/lib/sentdm/models/voice/voice_agent_limits.rb +31 -0
  27. data/lib/sentdm/models/voice/voice_agent_limits_spec.rb +40 -0
  28. data/lib/sentdm/models/voice/voice_agent_party.rb +25 -0
  29. data/lib/sentdm/models/voice/voice_agent_party_spec.rb +28 -0
  30. data/lib/sentdm/models/voice/voice_agent_secret.rb +27 -0
  31. data/lib/sentdm/models/voice/voice_agent_speech.rb +31 -0
  32. data/lib/sentdm/models/voice/voice_agent_speech_spec.rb +40 -0
  33. data/lib/sentdm/models/voice/voice_agent_transcripts.rb +25 -0
  34. data/lib/sentdm/models/voice/voice_agent_transcripts_spec.rb +32 -0
  35. data/lib/sentdm/models/voice/voice_agents_list.rb +30 -0
  36. data/lib/sentdm/models/voice/voice_catalogue.rb +30 -0
  37. data/lib/sentdm/models/voice/voice_catalogue_voice.rb +43 -0
  38. data/lib/sentdm/models/webhook_create_params.rb +31 -5
  39. data/lib/sentdm/models/webhook_response.rb +66 -4
  40. data/lib/sentdm/models/webhook_update_params.rb +15 -3
  41. data/lib/sentdm/resources/channels/voice.rb +38 -15
  42. data/lib/sentdm/resources/profiles/campaigns.rb +3 -2
  43. data/lib/sentdm/resources/voice/agents.rb +319 -0
  44. data/lib/sentdm/resources/voice/calls/participants.rb +11 -0
  45. data/lib/sentdm/resources/voice/calls.rb +44 -13
  46. data/lib/sentdm/resources/voice/catalogue.rb +71 -0
  47. data/lib/sentdm/resources/voice/tokens.rb +11 -0
  48. data/lib/sentdm/resources/voice.rb +86 -0
  49. data/lib/sentdm/resources/webhooks.rb +43 -15
  50. data/lib/sentdm/version.rb +1 -1
  51. data/lib/sentdm.rb +29 -0
  52. data/rbi/sentdm/internal/voice_agents_page.rbi +71 -0
  53. data/rbi/sentdm/models/call_event.rbi +14 -10
  54. data/rbi/sentdm/models/call_event_payload.rbi +28 -5
  55. data/rbi/sentdm/models/channels/voice_create_params.rbi +33 -17
  56. data/rbi/sentdm/models/channels/voice_number.rbi +31 -0
  57. data/rbi/sentdm/models/channels/voice_update_params.rbi +14 -0
  58. data/rbi/sentdm/models/voice/agent_create_params.rbi +215 -0
  59. data/rbi/sentdm/models/voice/agent_delete_params.rbi +48 -0
  60. data/rbi/sentdm/models/voice/agent_list_params.rbi +66 -0
  61. data/rbi/sentdm/models/voice/agent_retrieve_params.rbi +48 -0
  62. data/rbi/sentdm/models/voice/agent_rotate_secret_params.rbi +64 -0
  63. data/rbi/sentdm/models/voice/agent_update_params.rbi +211 -0
  64. data/rbi/sentdm/models/voice/api_response_of_voice_agent.rbi +85 -0
  65. data/rbi/sentdm/models/voice/api_response_of_voice_agent_secret.rbi +81 -0
  66. data/rbi/sentdm/models/voice/api_response_of_voice_agents_list.rbi +83 -0
  67. data/rbi/sentdm/models/voice/api_response_of_voice_catalogue.rbi +83 -0
  68. data/rbi/sentdm/models/voice/call.rbi +141 -8
  69. data/rbi/sentdm/models/voice/call_list_params.rbi +20 -0
  70. data/rbi/sentdm/models/voice/catalogue_list_params.rbi +40 -0
  71. data/rbi/sentdm/models/voice/voice_agent.rbi +196 -0
  72. data/rbi/sentdm/models/voice/voice_agent_audio.rbi +30 -0
  73. data/rbi/sentdm/models/voice/voice_agent_audio_spec.rbi +33 -0
  74. data/rbi/sentdm/models/voice/voice_agent_limits.rbi +57 -0
  75. data/rbi/sentdm/models/voice/voice_agent_limits_spec.rbi +62 -0
  76. data/rbi/sentdm/models/voice/voice_agent_party.rbi +36 -0
  77. data/rbi/sentdm/models/voice/voice_agent_party_spec.rbi +45 -0
  78. data/rbi/sentdm/models/voice/voice_agent_secret.rbi +37 -0
  79. data/rbi/sentdm/models/voice/voice_agent_speech.rbi +48 -0
  80. data/rbi/sentdm/models/voice/voice_agent_speech_spec.rbi +62 -0
  81. data/rbi/sentdm/models/voice/voice_agent_transcripts.rbi +43 -0
  82. data/rbi/sentdm/models/voice/voice_agent_transcripts_spec.rbi +51 -0
  83. data/rbi/sentdm/models/voice/voice_agents_list.rbi +55 -0
  84. data/rbi/sentdm/models/voice/voice_catalogue.rbi +59 -0
  85. data/rbi/sentdm/models/voice/voice_catalogue_voice.rbi +75 -0
  86. data/rbi/sentdm/models/webhook_create_params.rbi +41 -3
  87. data/rbi/sentdm/models/webhook_response.rbi +112 -3
  88. data/rbi/sentdm/models/webhook_update_params.rbi +18 -3
  89. data/rbi/sentdm/resources/channels/voice.rbi +52 -19
  90. data/rbi/sentdm/resources/profiles/campaigns.rbi +3 -2
  91. data/rbi/sentdm/resources/voice/agents.rbi +316 -0
  92. data/rbi/sentdm/resources/voice/calls/participants.rbi +11 -0
  93. data/rbi/sentdm/resources/voice/calls.rbi +46 -11
  94. data/rbi/sentdm/resources/voice/catalogue.rbi +59 -0
  95. data/rbi/sentdm/resources/voice/tokens.rbi +11 -0
  96. data/rbi/sentdm/resources/voice.rbi +84 -0
  97. data/rbi/sentdm/resources/webhooks.rbi +56 -16
  98. data/sig/sentdm/internal/voice_agents_page.rbs +41 -0
  99. data/sig/sentdm/models/call_event_payload.rbs +12 -0
  100. data/sig/sentdm/models/channels/voice_create_params.rbs +9 -4
  101. data/sig/sentdm/models/channels/voice_number.rbs +12 -0
  102. data/sig/sentdm/models/channels/voice_update_params.rbs +5 -0
  103. data/sig/sentdm/models/voice/agent_create_params.rbs +99 -0
  104. data/sig/sentdm/models/voice/agent_delete_params.rbs +34 -0
  105. data/sig/sentdm/models/voice/agent_list_params.rbs +40 -0
  106. data/sig/sentdm/models/voice/agent_retrieve_params.rbs +32 -0
  107. data/sig/sentdm/models/voice/agent_rotate_secret_params.rbs +40 -0
  108. data/sig/sentdm/models/voice/agent_update_params.rbs +108 -0
  109. data/sig/sentdm/models/voice/api_response_of_voice_agent.rbs +41 -0
  110. data/sig/sentdm/models/voice/api_response_of_voice_agent_secret.rbs +41 -0
  111. data/sig/sentdm/models/voice/api_response_of_voice_agents_list.rbs +41 -0
  112. data/sig/sentdm/models/voice/api_response_of_voice_catalogue.rbs +41 -0
  113. data/sig/sentdm/models/voice/call.rbs +65 -0
  114. data/sig/sentdm/models/voice/call_list_params.rbs +10 -0
  115. data/sig/sentdm/models/voice/catalogue_list_params.rbs +27 -0
  116. data/sig/sentdm/models/voice/voice_agent.rbs +116 -0
  117. data/sig/sentdm/models/voice/voice_agent_audio.rbs +19 -0
  118. data/sig/sentdm/models/voice/voice_agent_audio_spec.rbs +17 -0
  119. data/sig/sentdm/models/voice/voice_agent_limits.rbs +38 -0
  120. data/sig/sentdm/models/voice/voice_agent_limits_spec.rbs +34 -0
  121. data/sig/sentdm/models/voice/voice_agent_party.rbs +23 -0
  122. data/sig/sentdm/models/voice/voice_agent_party_spec.rbs +19 -0
  123. data/sig/sentdm/models/voice/voice_agent_secret.rbs +19 -0
  124. data/sig/sentdm/models/voice/voice_agent_speech.rbs +32 -0
  125. data/sig/sentdm/models/voice/voice_agent_speech_spec.rbs +26 -0
  126. data/sig/sentdm/models/voice/voice_agent_transcripts.rbs +23 -0
  127. data/sig/sentdm/models/voice/voice_agent_transcripts_spec.rbs +20 -0
  128. data/sig/sentdm/models/voice/voice_agents_list.rbs +35 -0
  129. data/sig/sentdm/models/voice/voice_catalogue.rbs +35 -0
  130. data/sig/sentdm/models/voice/voice_catalogue_voice.rbs +42 -0
  131. data/sig/sentdm/models/webhook_create_params.rbs +12 -0
  132. data/sig/sentdm/models/webhook_response.rbs +46 -3
  133. data/sig/sentdm/models/webhook_update_params.rbs +5 -0
  134. data/sig/sentdm/resources/channels/voice.rbs +3 -1
  135. data/sig/sentdm/resources/voice/agents.rbs +74 -0
  136. data/sig/sentdm/resources/voice/calls.rbs +2 -0
  137. data/sig/sentdm/resources/voice/catalogue.rbs +14 -0
  138. data/sig/sentdm/resources/voice.rbs +4 -0
  139. data/sig/sentdm/resources/webhooks.rbs +3 -0
  140. metadata +89 -2
@@ -0,0 +1,62 @@
1
+ # typed: strong
2
+
3
+ module Sentdm
4
+ module Models
5
+ VoiceAgentLimitsSpec = Voice::VoiceAgentLimitsSpec
6
+
7
+ module Voice
8
+ class VoiceAgentLimitsSpec < Sentdm::Internal::Type::BaseModel
9
+ OrHash =
10
+ T.type_alias do
11
+ T.any(
12
+ Sentdm::Voice::VoiceAgentLimitsSpec,
13
+ Sentdm::Internal::AnyHash
14
+ )
15
+ end
16
+
17
+ # ISO 3166-1 alpha-2 codes of the countries the agent may call or transfer to.
18
+ # Omit it to allow every country. Stored now, applied when the agent places calls.
19
+ sig { returns(T.nilable(T::Array[String])) }
20
+ attr_accessor :allowed_countries
21
+
22
+ # The longest a call may last, 60 to 14,400 seconds. Default 3,600.
23
+ sig { returns(T.nilable(Integer)) }
24
+ attr_accessor :max_call_seconds
25
+
26
+ # How many calls the agent may have going at once, from 1. Default 10.
27
+ sig { returns(T.nilable(Integer)) }
28
+ attr_accessor :max_concurrent_calls
29
+
30
+ sig do
31
+ params(
32
+ allowed_countries: T.nilable(T::Array[String]),
33
+ max_call_seconds: T.nilable(Integer),
34
+ max_concurrent_calls: T.nilable(Integer)
35
+ ).returns(T.attached_class)
36
+ end
37
+ def self.new(
38
+ # ISO 3166-1 alpha-2 codes of the countries the agent may call or transfer to.
39
+ # Omit it to allow every country. Stored now, applied when the agent places calls.
40
+ allowed_countries: nil,
41
+ # The longest a call may last, 60 to 14,400 seconds. Default 3,600.
42
+ max_call_seconds: nil,
43
+ # How many calls the agent may have going at once, from 1. Default 10.
44
+ max_concurrent_calls: nil
45
+ )
46
+ end
47
+
48
+ sig do
49
+ override.returns(
50
+ {
51
+ allowed_countries: T.nilable(T::Array[String]),
52
+ max_call_seconds: T.nilable(Integer),
53
+ max_concurrent_calls: T.nilable(Integer)
54
+ }
55
+ )
56
+ end
57
+ def to_hash
58
+ end
59
+ end
60
+ end
61
+ end
62
+ end
@@ -0,0 +1,36 @@
1
+ # typed: strong
2
+
3
+ module Sentdm
4
+ module Models
5
+ VoiceAgentParty = Voice::VoiceAgentParty
6
+
7
+ module Voice
8
+ class VoiceAgentParty < Sentdm::Internal::Type::BaseModel
9
+ OrHash =
10
+ T.type_alias do
11
+ T.any(Sentdm::Voice::VoiceAgentParty, Sentdm::Internal::AnyHash)
12
+ end
13
+
14
+ sig { returns(T.nilable(String)) }
15
+ attr_reader :kind
16
+
17
+ sig { params(kind: String).void }
18
+ attr_writer :kind
19
+
20
+ sig { returns(T.nilable(String)) }
21
+ attr_reader :value
22
+
23
+ sig { params(value: String).void }
24
+ attr_writer :value
25
+
26
+ sig { params(kind: String, value: String).returns(T.attached_class) }
27
+ def self.new(kind: nil, value: nil)
28
+ end
29
+
30
+ sig { override.returns({ kind: String, value: String }) }
31
+ def to_hash
32
+ end
33
+ end
34
+ end
35
+ end
36
+ end
@@ -0,0 +1,45 @@
1
+ # typed: strong
2
+
3
+ module Sentdm
4
+ module Models
5
+ VoiceAgentPartySpec = Voice::VoiceAgentPartySpec
6
+
7
+ module Voice
8
+ class VoiceAgentPartySpec < Sentdm::Internal::Type::BaseModel
9
+ OrHash =
10
+ T.type_alias do
11
+ T.any(Sentdm::Voice::VoiceAgentPartySpec, Sentdm::Internal::AnyHash)
12
+ end
13
+
14
+ # number, user or agent.
15
+ sig { returns(T.nilable(String)) }
16
+ attr_accessor :kind
17
+
18
+ # The E.164 number, the app user's identity, or the agent id (agent\_…).
19
+ sig { returns(T.nilable(String)) }
20
+ attr_accessor :value
21
+
22
+ sig do
23
+ params(kind: T.nilable(String), value: T.nilable(String)).returns(
24
+ T.attached_class
25
+ )
26
+ end
27
+ def self.new(
28
+ # number, user or agent.
29
+ kind: nil,
30
+ # The E.164 number, the app user's identity, or the agent id (agent\_…).
31
+ value: nil
32
+ )
33
+ end
34
+
35
+ sig do
36
+ override.returns(
37
+ { kind: T.nilable(String), value: T.nilable(String) }
38
+ )
39
+ end
40
+ def to_hash
41
+ end
42
+ end
43
+ end
44
+ end
45
+ end
@@ -0,0 +1,37 @@
1
+ # typed: strong
2
+
3
+ module Sentdm
4
+ module Models
5
+ VoiceAgentSecret = Voice::VoiceAgentSecret
6
+
7
+ module Voice
8
+ class VoiceAgentSecret < Sentdm::Internal::Type::BaseModel
9
+ OrHash =
10
+ T.type_alias do
11
+ T.any(Sentdm::Voice::VoiceAgentSecret, Sentdm::Internal::AnyHash)
12
+ end
13
+
14
+ # The new whsec\_ secret. The previous one stopped signing the moment this was
15
+ # returned. Shown once.
16
+ sig { returns(T.nilable(String)) }
17
+ attr_reader :signing_secret
18
+
19
+ sig { params(signing_secret: String).void }
20
+ attr_writer :signing_secret
21
+
22
+ # A freshly rotated signing secret.
23
+ sig { params(signing_secret: String).returns(T.attached_class) }
24
+ def self.new(
25
+ # The new whsec\_ secret. The previous one stopped signing the moment this was
26
+ # returned. Shown once.
27
+ signing_secret: nil
28
+ )
29
+ end
30
+
31
+ sig { override.returns({ signing_secret: String }) }
32
+ def to_hash
33
+ end
34
+ end
35
+ end
36
+ end
37
+ end
@@ -0,0 +1,48 @@
1
+ # typed: strong
2
+
3
+ module Sentdm
4
+ module Models
5
+ VoiceAgentSpeech = Voice::VoiceAgentSpeech
6
+
7
+ module Voice
8
+ class VoiceAgentSpeech < Sentdm::Internal::Type::BaseModel
9
+ OrHash =
10
+ T.type_alias do
11
+ T.any(Sentdm::Voice::VoiceAgentSpeech, Sentdm::Internal::AnyHash)
12
+ end
13
+
14
+ sig { returns(T.nilable(String)) }
15
+ attr_reader :language
16
+
17
+ sig { params(language: String).void }
18
+ attr_writer :language
19
+
20
+ sig { returns(T.nilable(String)) }
21
+ attr_reader :setting
22
+
23
+ sig { params(setting: String).void }
24
+ attr_writer :setting
25
+
26
+ sig { returns(T.nilable(String)) }
27
+ attr_reader :voice
28
+
29
+ sig { params(voice: String).void }
30
+ attr_writer :voice
31
+
32
+ sig do
33
+ params(language: String, setting: String, voice: String).returns(
34
+ T.attached_class
35
+ )
36
+ end
37
+ def self.new(language: nil, setting: nil, voice: nil)
38
+ end
39
+
40
+ sig do
41
+ override.returns({ language: String, setting: String, voice: String })
42
+ end
43
+ def to_hash
44
+ end
45
+ end
46
+ end
47
+ end
48
+ end
@@ -0,0 +1,62 @@
1
+ # typed: strong
2
+
3
+ module Sentdm
4
+ module Models
5
+ VoiceAgentSpeechSpec = Voice::VoiceAgentSpeechSpec
6
+
7
+ module Voice
8
+ class VoiceAgentSpeechSpec < Sentdm::Internal::Type::BaseModel
9
+ OrHash =
10
+ T.type_alias do
11
+ T.any(
12
+ Sentdm::Voice::VoiceAgentSpeechSpec,
13
+ Sentdm::Internal::AnyHash
14
+ )
15
+ end
16
+
17
+ # The language spoken and listened for, a BCP 47 tag from GET /v3/voice/voices.
18
+ # Default en-US.
19
+ sig { returns(T.nilable(String)) }
20
+ attr_accessor :language
21
+
22
+ # standard, Sent's speech. Other settings are not available yet.
23
+ sig { returns(T.nilable(String)) }
24
+ attr_accessor :setting
25
+
26
+ # A voice name from GET /v3/voice/voices. Default: the catalogue's default voice.
27
+ sig { returns(T.nilable(String)) }
28
+ attr_accessor :voice
29
+
30
+ sig do
31
+ params(
32
+ language: T.nilable(String),
33
+ setting: T.nilable(String),
34
+ voice: T.nilable(String)
35
+ ).returns(T.attached_class)
36
+ end
37
+ def self.new(
38
+ # The language spoken and listened for, a BCP 47 tag from GET /v3/voice/voices.
39
+ # Default en-US.
40
+ language: nil,
41
+ # standard, Sent's speech. Other settings are not available yet.
42
+ setting: nil,
43
+ # A voice name from GET /v3/voice/voices. Default: the catalogue's default voice.
44
+ voice: nil
45
+ )
46
+ end
47
+
48
+ sig do
49
+ override.returns(
50
+ {
51
+ language: T.nilable(String),
52
+ setting: T.nilable(String),
53
+ voice: T.nilable(String)
54
+ }
55
+ )
56
+ end
57
+ def to_hash
58
+ end
59
+ end
60
+ end
61
+ end
62
+ end
@@ -0,0 +1,43 @@
1
+ # typed: strong
2
+
3
+ module Sentdm
4
+ module Models
5
+ VoiceAgentTranscripts = Voice::VoiceAgentTranscripts
6
+
7
+ module Voice
8
+ class VoiceAgentTranscripts < Sentdm::Internal::Type::BaseModel
9
+ OrHash =
10
+ T.type_alias do
11
+ T.any(
12
+ Sentdm::Voice::VoiceAgentTranscripts,
13
+ Sentdm::Internal::AnyHash
14
+ )
15
+ end
16
+
17
+ sig { returns(T.nilable(Integer)) }
18
+ attr_reader :retention_days
19
+
20
+ sig { params(retention_days: Integer).void }
21
+ attr_writer :retention_days
22
+
23
+ sig { returns(T.nilable(T::Boolean)) }
24
+ attr_reader :store
25
+
26
+ sig { params(store: T::Boolean).void }
27
+ attr_writer :store
28
+
29
+ sig do
30
+ params(retention_days: Integer, store: T::Boolean).returns(
31
+ T.attached_class
32
+ )
33
+ end
34
+ def self.new(retention_days: nil, store: nil)
35
+ end
36
+
37
+ sig { override.returns({ retention_days: Integer, store: T::Boolean }) }
38
+ def to_hash
39
+ end
40
+ end
41
+ end
42
+ end
43
+ end
@@ -0,0 +1,51 @@
1
+ # typed: strong
2
+
3
+ module Sentdm
4
+ module Models
5
+ VoiceAgentTranscriptsSpec = Voice::VoiceAgentTranscriptsSpec
6
+
7
+ module Voice
8
+ class VoiceAgentTranscriptsSpec < Sentdm::Internal::Type::BaseModel
9
+ OrHash =
10
+ T.type_alias do
11
+ T.any(
12
+ Sentdm::Voice::VoiceAgentTranscriptsSpec,
13
+ Sentdm::Internal::AnyHash
14
+ )
15
+ end
16
+
17
+ # How long a stored transcript is kept, 1 to 365 days. Default 30.
18
+ sig { returns(T.nilable(Integer)) }
19
+ attr_accessor :retention_days
20
+
21
+ # Whether Sent keeps the call's transcript. Default false. Stored now, applied
22
+ # when transcripts land.
23
+ sig { returns(T.nilable(T::Boolean)) }
24
+ attr_accessor :store
25
+
26
+ sig do
27
+ params(
28
+ retention_days: T.nilable(Integer),
29
+ store: T.nilable(T::Boolean)
30
+ ).returns(T.attached_class)
31
+ end
32
+ def self.new(
33
+ # How long a stored transcript is kept, 1 to 365 days. Default 30.
34
+ retention_days: nil,
35
+ # Whether Sent keeps the call's transcript. Default false. Stored now, applied
36
+ # when transcripts land.
37
+ store: nil
38
+ )
39
+ end
40
+
41
+ sig do
42
+ override.returns(
43
+ { retention_days: T.nilable(Integer), store: T.nilable(T::Boolean) }
44
+ )
45
+ end
46
+ def to_hash
47
+ end
48
+ end
49
+ end
50
+ end
51
+ end
@@ -0,0 +1,55 @@
1
+ # typed: strong
2
+
3
+ module Sentdm
4
+ module Models
5
+ VoiceAgentsList = Voice::VoiceAgentsList
6
+
7
+ module Voice
8
+ class VoiceAgentsList < Sentdm::Internal::Type::BaseModel
9
+ OrHash =
10
+ T.type_alias do
11
+ T.any(Sentdm::Voice::VoiceAgentsList, Sentdm::Internal::AnyHash)
12
+ end
13
+
14
+ sig { returns(T.nilable(T::Array[Sentdm::Voice::VoiceAgent])) }
15
+ attr_reader :agents
16
+
17
+ sig { params(agents: T::Array[Sentdm::Voice::VoiceAgent::OrHash]).void }
18
+ attr_writer :agents
19
+
20
+ # Pagination metadata for list responses
21
+ sig { returns(T.nilable(Sentdm::PaginationMeta)) }
22
+ attr_reader :pagination
23
+
24
+ sig { params(pagination: Sentdm::PaginationMeta::OrHash).void }
25
+ attr_writer :pagination
26
+
27
+ # A page of the account's agents. The agent itself is VoiceAgentResponse, shared
28
+ # with the admin API.
29
+ sig do
30
+ params(
31
+ agents: T::Array[Sentdm::Voice::VoiceAgent::OrHash],
32
+ pagination: Sentdm::PaginationMeta::OrHash
33
+ ).returns(T.attached_class)
34
+ end
35
+ def self.new(
36
+ agents: nil,
37
+ # Pagination metadata for list responses
38
+ pagination: nil
39
+ )
40
+ end
41
+
42
+ sig do
43
+ override.returns(
44
+ {
45
+ agents: T::Array[Sentdm::Voice::VoiceAgent],
46
+ pagination: Sentdm::PaginationMeta
47
+ }
48
+ )
49
+ end
50
+ def to_hash
51
+ end
52
+ end
53
+ end
54
+ end
55
+ end
@@ -0,0 +1,59 @@
1
+ # typed: strong
2
+
3
+ module Sentdm
4
+ module Models
5
+ VoiceCatalogue = Voice::VoiceCatalogue
6
+
7
+ module Voice
8
+ class VoiceCatalogue < Sentdm::Internal::Type::BaseModel
9
+ OrHash =
10
+ T.type_alias do
11
+ T.any(Sentdm::Voice::VoiceCatalogue, Sentdm::Internal::AnyHash)
12
+ end
13
+
14
+ # BCP 47 tags accepted as speech.language.
15
+ sig { returns(T.nilable(T::Array[String])) }
16
+ attr_reader :languages
17
+
18
+ sig { params(languages: T::Array[String]).void }
19
+ attr_writer :languages
20
+
21
+ sig { returns(T.nilable(T::Array[Sentdm::Voice::VoiceCatalogueVoice])) }
22
+ attr_reader :voices
23
+
24
+ sig do
25
+ params(
26
+ voices: T::Array[Sentdm::Voice::VoiceCatalogueVoice::OrHash]
27
+ ).void
28
+ end
29
+ attr_writer :voices
30
+
31
+ # The voices and languages a text-session agent may name in its speech settings:
32
+ # what GET /v3/voice/voices and the admin GET /voice/voices answer, in one shape.
33
+ sig do
34
+ params(
35
+ languages: T::Array[String],
36
+ voices: T::Array[Sentdm::Voice::VoiceCatalogueVoice::OrHash]
37
+ ).returns(T.attached_class)
38
+ end
39
+ def self.new(
40
+ # BCP 47 tags accepted as speech.language.
41
+ languages: nil,
42
+ voices: nil
43
+ )
44
+ end
45
+
46
+ sig do
47
+ override.returns(
48
+ {
49
+ languages: T::Array[String],
50
+ voices: T::Array[Sentdm::Voice::VoiceCatalogueVoice]
51
+ }
52
+ )
53
+ end
54
+ def to_hash
55
+ end
56
+ end
57
+ end
58
+ end
59
+ end
@@ -0,0 +1,75 @@
1
+ # typed: strong
2
+
3
+ module Sentdm
4
+ module Models
5
+ VoiceCatalogueVoice = Voice::VoiceCatalogueVoice
6
+
7
+ module Voice
8
+ class VoiceCatalogueVoice < Sentdm::Internal::Type::BaseModel
9
+ OrHash =
10
+ T.type_alias do
11
+ T.any(Sentdm::Voice::VoiceCatalogueVoice, Sentdm::Internal::AnyHash)
12
+ end
13
+
14
+ # Whether this is the voice used when an agent names none.
15
+ sig { returns(T.nilable(T::Boolean)) }
16
+ attr_reader :default
17
+
18
+ sig { params(default: T::Boolean).void }
19
+ attr_writer :default
20
+
21
+ sig { returns(T.nilable(String)) }
22
+ attr_reader :description
23
+
24
+ sig { params(description: String).void }
25
+ attr_writer :description
26
+
27
+ # The language the voice speaks.
28
+ sig { returns(T.nilable(String)) }
29
+ attr_reader :language
30
+
31
+ sig { params(language: String).void }
32
+ attr_writer :language
33
+
34
+ # The value to send as speech.voice.
35
+ sig { returns(T.nilable(String)) }
36
+ attr_reader :name
37
+
38
+ sig { params(name: String).void }
39
+ attr_writer :name
40
+
41
+ sig do
42
+ params(
43
+ default: T::Boolean,
44
+ description: String,
45
+ language: String,
46
+ name: String
47
+ ).returns(T.attached_class)
48
+ end
49
+ def self.new(
50
+ # Whether this is the voice used when an agent names none.
51
+ default: nil,
52
+ description: nil,
53
+ # The language the voice speaks.
54
+ language: nil,
55
+ # The value to send as speech.voice.
56
+ name: nil
57
+ )
58
+ end
59
+
60
+ sig do
61
+ override.returns(
62
+ {
63
+ default: T::Boolean,
64
+ description: String,
65
+ language: String,
66
+ name: String
67
+ }
68
+ )
69
+ end
70
+ def to_hash
71
+ end
72
+ end
73
+ end
74
+ end
75
+ end
@@ -32,6 +32,18 @@ module Sentdm
32
32
  sig { params(event_types: T::Array[String]).void }
33
33
  attr_writer :event_types
34
34
 
35
+ # Also delivers every sender profile's events to this webhook, at the same URL and
36
+ # with the same signing secret, and lets each profile see the webhook and read the
37
+ # events about itself. Off by default: the organization's own events only. Only an
38
+ # organization's version 2 webhook can set it.
39
+ sig { returns(T.nilable(T::Boolean)) }
40
+ attr_reader :is_inheritable
41
+
42
+ sig { params(is_inheritable: T::Boolean).void }
43
+ attr_writer :is_inheritable
44
+
45
+ # Delivery retries. Applies to version 1 only: Svix retries a version 2 webhook on
46
+ # its own schedule.
35
47
  sig { returns(T.nilable(Integer)) }
36
48
  attr_reader :retry_count
37
49
 
@@ -47,7 +59,8 @@ module Sentdm
47
59
  attr_writer :sandbox
48
60
 
49
61
  # Request-only: the events an organization webhook's sender profile clones
50
- # receive, one clone per existing and future profile. Responses never return it.
62
+ # receive, one clone per existing and future profile. A version 1 webhook's
63
+ # responses report it as WebhookSenderProfileV3Response.
51
64
  sig { returns(T.nilable(Sentdm::WebhookCreateParams::SenderProfile)) }
52
65
  attr_reader :sender_profile
53
66
 
@@ -59,12 +72,19 @@ module Sentdm
59
72
  end
60
73
  attr_writer :sender_profile
61
74
 
75
+ # Delivery timeout. Applies to version 1 only.
62
76
  sig { returns(T.nilable(Integer)) }
63
77
  attr_reader :timeout_seconds
64
78
 
65
79
  sig { params(timeout_seconds: Integer).void }
66
80
  attr_writer :timeout_seconds
67
81
 
82
+ # Who delivers the webhook: 2, the default, is delivered by Svix and signed with
83
+ # the webhook-id, webhook-timestamp and webhook-signature headers; 1 is the older
84
+ # delivery, signed with the X-Webhook-\* headers, which will be retired.
85
+ sig { returns(T.nilable(Integer)) }
86
+ attr_accessor :webhook_version
87
+
68
88
  sig { returns(T.nilable(String)) }
69
89
  attr_reader :idempotency_key
70
90
 
@@ -83,11 +103,13 @@ module Sentdm
83
103
  endpoint_url: String,
84
104
  event_filters: T.nilable(T::Hash[Symbol, T::Array[String]]),
85
105
  event_types: T::Array[String],
106
+ is_inheritable: T::Boolean,
86
107
  retry_count: Integer,
87
108
  sandbox: T::Boolean,
88
109
  sender_profile:
89
110
  T.nilable(Sentdm::WebhookCreateParams::SenderProfile::OrHash),
90
111
  timeout_seconds: Integer,
112
+ webhook_version: T.nilable(Integer),
91
113
  idempotency_key: String,
92
114
  x_profile_id: String,
93
115
  request_options: Sentdm::RequestOptions::OrHash
@@ -98,14 +120,27 @@ module Sentdm
98
120
  endpoint_url: nil,
99
121
  event_filters: nil,
100
122
  event_types: nil,
123
+ # Also delivers every sender profile's events to this webhook, at the same URL and
124
+ # with the same signing secret, and lets each profile see the webhook and read the
125
+ # events about itself. Off by default: the organization's own events only. Only an
126
+ # organization's version 2 webhook can set it.
127
+ is_inheritable: nil,
128
+ # Delivery retries. Applies to version 1 only: Svix retries a version 2 webhook on
129
+ # its own schedule.
101
130
  retry_count: nil,
102
131
  # Sandbox flag - when true, the operation is simulated without side effects Useful
103
132
  # for testing integrations without actual execution
104
133
  sandbox: nil,
105
134
  # Request-only: the events an organization webhook's sender profile clones
106
- # receive, one clone per existing and future profile. Responses never return it.
135
+ # receive, one clone per existing and future profile. A version 1 webhook's
136
+ # responses report it as WebhookSenderProfileV3Response.
107
137
  sender_profile: nil,
138
+ # Delivery timeout. Applies to version 1 only.
108
139
  timeout_seconds: nil,
140
+ # Who delivers the webhook: 2, the default, is delivered by Svix and signed with
141
+ # the webhook-id, webhook-timestamp and webhook-signature headers; 1 is the older
142
+ # delivery, signed with the X-Webhook-\* headers, which will be retired.
143
+ webhook_version: nil,
109
144
  idempotency_key: nil,
110
145
  x_profile_id: nil,
111
146
  request_options: {}
@@ -119,11 +154,13 @@ module Sentdm
119
154
  endpoint_url: String,
120
155
  event_filters: T.nilable(T::Hash[Symbol, T::Array[String]]),
121
156
  event_types: T::Array[String],
157
+ is_inheritable: T::Boolean,
122
158
  retry_count: Integer,
123
159
  sandbox: T::Boolean,
124
160
  sender_profile:
125
161
  T.nilable(Sentdm::WebhookCreateParams::SenderProfile),
126
162
  timeout_seconds: Integer,
163
+ webhook_version: T.nilable(Integer),
127
164
  idempotency_key: String,
128
165
  x_profile_id: String,
129
166
  request_options: Sentdm::RequestOptions
@@ -152,7 +189,8 @@ module Sentdm
152
189
  attr_writer :event_types
153
190
 
154
191
  # Request-only: the events an organization webhook's sender profile clones
155
- # receive, one clone per existing and future profile. Responses never return it.
192
+ # receive, one clone per existing and future profile. A version 1 webhook's
193
+ # responses report it as WebhookSenderProfileV3Response.
156
194
  sig do
157
195
  params(
158
196
  event_filters: T.nilable(T::Hash[Symbol, T::Array[String]]),