telnyx 5.60.0 → 5.62.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 (171) hide show
  1. checksums.yaml +4 -4
  2. data/CHANGELOG.md +37 -0
  3. data/README.md +1 -1
  4. data/lib/telnyx/client.rb +10 -5
  5. data/lib/telnyx/errors.rb +0 -10
  6. data/lib/telnyx/lib/webhook_verification.rb +172 -0
  7. data/lib/telnyx/models/ai/assistants/{tag_delete_params.rb → tag_add_params.rb} +2 -2
  8. data/lib/telnyx/models/ai/assistants/{tag_delete_response.rb → tag_add_response.rb} +2 -2
  9. data/lib/telnyx/models/ai/assistants/{tag_create_params.rb → tag_remove_params.rb} +2 -2
  10. data/lib/telnyx/models/ai/assistants/{tag_create_response.rb → tag_remove_response.rb} +2 -2
  11. data/lib/telnyx/models/call_cost_webhook_event.rb +242 -0
  12. data/lib/telnyx/models/calls/action_start_noise_suppression_params.rb +135 -8
  13. data/lib/telnyx/models/text_to_speech_generate_params.rb +3 -3
  14. data/lib/telnyx/models/unsafe_unwrap_webhook_event.rb +3 -1
  15. data/lib/telnyx/models/unwrap_webhook_event.rb +3 -1
  16. data/lib/telnyx/models/voice_clone_create_from_design_params.rb +27 -6
  17. data/lib/telnyx/models/voice_clone_create_from_upload_params.rb +23 -2
  18. data/lib/telnyx/models/voice_clone_create_params.rb +79 -0
  19. data/lib/telnyx/models/voice_clone_create_response.rb +19 -0
  20. data/lib/telnyx/models/voice_clone_data.rb +41 -1
  21. data/lib/telnyx/models/voice_clone_list_params.rb +22 -1
  22. data/lib/telnyx/models/voice_design_create_params.rb +24 -1
  23. data/lib/telnyx/models/voice_design_data.rb +45 -1
  24. data/lib/telnyx/models/voice_design_list_response.rb +32 -1
  25. data/lib/telnyx/models/{voice_design_update_params.rb → voice_design_rename_params.rb} +2 -2
  26. data/lib/telnyx/models/{voice_design_update_response.rb → voice_design_rename_response.rb} +42 -11
  27. data/lib/telnyx/models/whatsapp/business_accounts/{phone_number_create_verification_params.rb → phone_number_initialize_verification_params.rb} +5 -5
  28. data/lib/telnyx/models/whatsapp/template_create_params.rb +530 -0
  29. data/lib/telnyx/models/whatsapp/{message_template_create_response.rb → template_create_response.rb} +2 -2
  30. data/lib/telnyx/models/whatsapp/{message_template_list_params.rb → template_list_params.rb} +5 -5
  31. data/lib/telnyx/models/whatsapp_message_template_delete_params.rb +20 -0
  32. data/lib/telnyx/models/whatsapp_message_template_retrieve_params.rb +20 -0
  33. data/lib/telnyx/models/whatsapp_message_template_retrieve_response.rb +16 -0
  34. data/lib/telnyx/models/whatsapp_message_template_update_params.rb +504 -0
  35. data/lib/telnyx/models/whatsapp_message_template_update_response.rb +16 -0
  36. data/lib/telnyx/models/whatsapp_template_data.rb +10 -3
  37. data/lib/telnyx/models/x402/{credit_account_create_payment_quote_params.rb → credit_account_create_quote_params.rb} +2 -2
  38. data/lib/telnyx/models/x402/{credit_account_create_payment_quote_response.rb → credit_account_create_quote_response.rb} +31 -32
  39. data/lib/telnyx/models/x402/{credit_account_settle_payment_params.rb → credit_account_settle_params.rb} +3 -3
  40. data/lib/telnyx/models/x402/{credit_account_settle_payment_response.rb → credit_account_settle_response.rb} +14 -15
  41. data/lib/telnyx/models.rb +12 -4
  42. data/lib/telnyx/resources/ai/assistants/tags.rb +28 -28
  43. data/lib/telnyx/resources/calls/actions.rb +1 -1
  44. data/lib/telnyx/resources/voice_clones.rb +38 -31
  45. data/lib/telnyx/resources/voice_designs.rb +27 -25
  46. data/lib/telnyx/resources/webhooks.rb +10 -183
  47. data/lib/telnyx/resources/whatsapp/business_accounts/phone_numbers.rb +5 -5
  48. data/lib/telnyx/resources/whatsapp/phone_numbers/profile.rb +0 -4
  49. data/lib/telnyx/resources/whatsapp/templates.rb +91 -0
  50. data/lib/telnyx/resources/whatsapp.rb +3 -3
  51. data/lib/telnyx/resources/whatsapp_message_templates.rb +81 -0
  52. data/lib/telnyx/resources/x402/credit_account.rb +13 -13
  53. data/lib/telnyx/version.rb +1 -1
  54. data/lib/telnyx.rb +25 -24
  55. data/rbi/telnyx/client.rbi +8 -4
  56. data/rbi/telnyx/models/ai/assistants/{tag_create_params.rbi → tag_add_params.rbi} +2 -2
  57. data/rbi/telnyx/models/ai/assistants/{tag_delete_response.rbi → tag_add_response.rbi} +2 -2
  58. data/rbi/telnyx/models/ai/assistants/{tag_delete_params.rbi → tag_remove_params.rbi} +2 -2
  59. data/rbi/telnyx/models/ai/assistants/{tag_create_response.rbi → tag_remove_response.rbi} +2 -2
  60. data/rbi/telnyx/models/call_cost_webhook_event.rbi +485 -0
  61. data/rbi/telnyx/models/calls/action_start_noise_suppression_params.rbi +338 -12
  62. data/rbi/telnyx/models/text_to_speech_generate_params.rbi +2 -1
  63. data/rbi/telnyx/models/unsafe_unwrap_webhook_event.rbi +1 -0
  64. data/rbi/telnyx/models/unwrap_webhook_event.rbi +1 -0
  65. data/rbi/telnyx/models/voice_clone_create_from_design_params.rbi +51 -0
  66. data/rbi/telnyx/models/voice_clone_create_from_upload_params.rbi +67 -2
  67. data/rbi/telnyx/models/voice_clone_create_params.rbi +142 -0
  68. data/rbi/telnyx/models/voice_clone_create_response.rbi +36 -0
  69. data/rbi/telnyx/models/voice_clone_data.rbi +57 -0
  70. data/rbi/telnyx/models/voice_clone_list_params.rbi +62 -0
  71. data/rbi/telnyx/models/voice_design_create_params.rbi +60 -0
  72. data/rbi/telnyx/models/voice_design_data.rbi +59 -0
  73. data/rbi/telnyx/models/voice_design_list_response.rbi +73 -0
  74. data/rbi/telnyx/models/{voice_design_update_params.rbi → voice_design_rename_params.rbi} +2 -2
  75. data/rbi/telnyx/models/{voice_design_update_response.rbi → voice_design_rename_response.rbi} +90 -14
  76. data/rbi/telnyx/models/whatsapp/business_accounts/{phone_number_create_verification_params.rbi → phone_number_initialize_verification_params.rbi} +10 -10
  77. data/rbi/telnyx/models/whatsapp/template_create_params.rbi +1177 -0
  78. data/rbi/telnyx/models/whatsapp/{message_template_create_response.rbi → template_create_response.rbi} +2 -2
  79. data/rbi/telnyx/models/whatsapp/{message_template_list_params.rbi → template_list_params.rbi} +11 -11
  80. data/rbi/telnyx/models/whatsapp_message_template_delete_params.rbi +38 -0
  81. data/rbi/telnyx/models/whatsapp_message_template_retrieve_params.rbi +38 -0
  82. data/rbi/telnyx/models/whatsapp_message_template_retrieve_response.rbi +33 -0
  83. data/rbi/telnyx/models/whatsapp_message_template_update_params.rbi +1178 -0
  84. data/rbi/telnyx/models/whatsapp_message_template_update_response.rbi +33 -0
  85. data/rbi/telnyx/models/whatsapp_template_data.rbi +10 -2
  86. data/rbi/telnyx/models/x402/{credit_account_create_payment_quote_params.rbi → credit_account_create_quote_params.rbi} +2 -2
  87. data/rbi/telnyx/models/x402/{credit_account_create_payment_quote_response.rbi → credit_account_create_quote_response.rbi} +41 -42
  88. data/rbi/telnyx/models/x402/{credit_account_settle_payment_params.rbi → credit_account_settle_params.rbi} +2 -2
  89. data/rbi/telnyx/models/x402/{credit_account_settle_payment_response.rbi → credit_account_settle_response.rbi} +21 -26
  90. data/rbi/telnyx/models.rbi +29 -3
  91. data/rbi/telnyx/resources/ai/assistants/tags.rbi +13 -13
  92. data/rbi/telnyx/resources/calls/actions.rbi +4 -3
  93. data/rbi/telnyx/resources/voice_clones.rbi +36 -25
  94. data/rbi/telnyx/resources/voice_designs.rbi +21 -17
  95. data/rbi/telnyx/resources/webhooks.rbi +12 -2
  96. data/rbi/telnyx/resources/whatsapp/business_accounts/phone_numbers.rbi +2 -2
  97. data/rbi/telnyx/resources/whatsapp/phone_numbers/profile.rbi +0 -5
  98. data/rbi/telnyx/resources/whatsapp/templates.rbi +85 -0
  99. data/rbi/telnyx/resources/whatsapp.rbi +2 -2
  100. data/rbi/telnyx/resources/whatsapp_message_templates.rbi +67 -0
  101. data/rbi/telnyx/resources/x402/credit_account.rbi +4 -6
  102. data/sig/telnyx/client.rbs +4 -2
  103. data/sig/telnyx/models/ai/assistants/{tag_delete_params.rbs → tag_add_params.rbs} +2 -2
  104. data/sig/telnyx/models/ai/assistants/{tag_delete_response.rbs → tag_add_response.rbs} +2 -2
  105. data/sig/telnyx/models/ai/assistants/{tag_create_params.rbs → tag_remove_params.rbs} +2 -2
  106. data/sig/telnyx/models/ai/assistants/{tag_create_response.rbs → tag_remove_response.rbs} +2 -2
  107. data/sig/telnyx/models/call_cost_webhook_event.rbs +235 -0
  108. data/sig/telnyx/models/calls/action_start_noise_suppression_params.rbs +124 -4
  109. data/sig/telnyx/models/unsafe_unwrap_webhook_event.rbs +1 -0
  110. data/sig/telnyx/models/unwrap_webhook_event.rbs +1 -0
  111. data/sig/telnyx/models/voice_clone_create_from_design_params.rbs +23 -1
  112. data/sig/telnyx/models/voice_clone_create_from_upload_params.rbs +22 -0
  113. data/sig/telnyx/models/voice_clone_create_params.rbs +75 -0
  114. data/sig/telnyx/models/voice_clone_create_response.rbs +15 -0
  115. data/sig/telnyx/models/voice_clone_data.rbs +34 -0
  116. data/sig/telnyx/models/voice_clone_list_params.rbs +22 -0
  117. data/sig/telnyx/models/voice_design_create_params.rbs +22 -0
  118. data/sig/telnyx/models/voice_design_data.rbs +30 -0
  119. data/sig/telnyx/models/voice_design_list_response.rbs +25 -0
  120. data/sig/telnyx/models/{voice_design_update_params.rbs → voice_design_rename_params.rbs} +2 -2
  121. data/sig/telnyx/models/voice_design_rename_response.rbs +104 -0
  122. data/sig/telnyx/models/whatsapp/business_accounts/{phone_number_create_verification_params.rbs → phone_number_initialize_verification_params.rbs} +9 -9
  123. data/sig/telnyx/models/whatsapp/template_create_params.rbs +479 -0
  124. data/sig/telnyx/models/whatsapp/{message_template_update_response.rbs → template_create_response.rbs} +2 -3
  125. data/sig/telnyx/models/whatsapp/{message_template_list_params.rbs → template_list_params.rbs} +9 -9
  126. data/sig/telnyx/models/whatsapp_message_template_delete_params.rbs +20 -0
  127. data/sig/telnyx/models/whatsapp_message_template_retrieve_params.rbs +20 -0
  128. data/sig/telnyx/models/whatsapp_message_template_retrieve_response.rbs +16 -0
  129. data/sig/telnyx/models/whatsapp_message_template_update_params.rbs +473 -0
  130. data/sig/telnyx/models/whatsapp_message_template_update_response.rbs +16 -0
  131. data/sig/telnyx/models/x402/{credit_account_create_payment_quote_params.rbs → credit_account_create_quote_params.rbs} +2 -2
  132. data/sig/telnyx/models/x402/{credit_account_create_payment_quote_response.rbs → credit_account_create_quote_response.rbs} +46 -48
  133. data/sig/telnyx/models/x402/{credit_account_settle_payment_params.rbs → credit_account_settle_params.rbs} +2 -2
  134. data/sig/telnyx/models/x402/{credit_account_settle_payment_response.rbs → credit_account_settle_response.rbs} +22 -22
  135. data/sig/telnyx/models.rbs +12 -4
  136. data/sig/telnyx/resources/ai/assistants/tags.rbs +8 -8
  137. data/sig/telnyx/resources/voice_clones.rbs +11 -8
  138. data/sig/telnyx/resources/voice_designs.rbs +7 -6
  139. data/sig/telnyx/resources/webhooks.rbs +5 -1
  140. data/sig/telnyx/resources/whatsapp/business_accounts/phone_numbers.rbs +2 -2
  141. data/sig/telnyx/resources/whatsapp/phone_numbers/profile.rbs +0 -2
  142. data/sig/telnyx/resources/whatsapp/templates.rbs +28 -0
  143. data/sig/telnyx/resources/whatsapp.rbs +1 -1
  144. data/sig/telnyx/resources/whatsapp_message_templates.rbs +21 -0
  145. data/sig/telnyx/resources/x402/credit_account.rbs +4 -4
  146. metadata +75 -65
  147. data/lib/telnyx/models/whatsapp/message_template_create_params.rb +0 -58
  148. data/lib/telnyx/models/whatsapp/message_template_delete_params.rb +0 -22
  149. data/lib/telnyx/models/whatsapp/message_template_retrieve_params.rb +0 -22
  150. data/lib/telnyx/models/whatsapp/message_template_retrieve_response.rb +0 -18
  151. data/lib/telnyx/models/whatsapp/message_template_update_params.rb +0 -46
  152. data/lib/telnyx/models/whatsapp/message_template_update_response.rb +0 -18
  153. data/lib/telnyx/resources/whatsapp/message_templates.rb +0 -149
  154. data/lib/telnyx/resources/whatsapp/phone_numbers/profile/models.rb +0 -20
  155. data/rbi/telnyx/models/whatsapp/message_template_create_params.rbi +0 -115
  156. data/rbi/telnyx/models/whatsapp/message_template_delete_params.rbi +0 -40
  157. data/rbi/telnyx/models/whatsapp/message_template_retrieve_params.rbi +0 -40
  158. data/rbi/telnyx/models/whatsapp/message_template_retrieve_response.rbi +0 -35
  159. data/rbi/telnyx/models/whatsapp/message_template_update_params.rbi +0 -111
  160. data/rbi/telnyx/models/whatsapp/message_template_update_response.rbi +0 -35
  161. data/rbi/telnyx/resources/whatsapp/message_templates.rbi +0 -116
  162. data/rbi/telnyx/resources/whatsapp/phone_numbers/profile/models.rbi +0 -18
  163. data/sig/telnyx/models/voice_design_update_response.rbs +0 -79
  164. data/sig/telnyx/models/whatsapp/message_template_create_params.rbs +0 -60
  165. data/sig/telnyx/models/whatsapp/message_template_create_response.rbs +0 -20
  166. data/sig/telnyx/models/whatsapp/message_template_delete_params.rbs +0 -22
  167. data/sig/telnyx/models/whatsapp/message_template_retrieve_params.rbs +0 -22
  168. data/sig/telnyx/models/whatsapp/message_template_retrieve_response.rbs +0 -20
  169. data/sig/telnyx/models/whatsapp/message_template_update_params.rbs +0 -58
  170. data/sig/telnyx/resources/whatsapp/message_templates.rbs +0 -42
  171. data/sig/telnyx/resources/whatsapp/phone_numbers/profile/models.rbs +0 -13
@@ -0,0 +1,142 @@
1
+ # typed: strong
2
+
3
+ module Telnyx
4
+ module Models
5
+ class VoiceCloneCreateParams < Telnyx::Internal::Type::BaseModel
6
+ extend Telnyx::Internal::Type::RequestParameters::Converter
7
+ include Telnyx::Internal::Type::RequestParameters
8
+
9
+ OrHash =
10
+ T.type_alias do
11
+ T.any(Telnyx::VoiceCloneCreateParams, Telnyx::Internal::AnyHash)
12
+ end
13
+
14
+ # Gender of the voice clone.
15
+ sig { returns(Telnyx::VoiceCloneCreateParams::Gender::OrSymbol) }
16
+ attr_accessor :gender
17
+
18
+ # ISO 639-1 language code for the clone (e.g. `en`, `fr`, `de`).
19
+ sig { returns(String) }
20
+ attr_accessor :language
21
+
22
+ # Name for the voice clone.
23
+ sig { returns(String) }
24
+ attr_accessor :name
25
+
26
+ # UUID of the source voice design to clone.
27
+ sig { returns(String) }
28
+ attr_accessor :voice_design_id
29
+
30
+ # Voice synthesis provider. Case-insensitive. Defaults to `telnyx`.
31
+ sig do
32
+ returns(T.nilable(Telnyx::VoiceCloneCreateParams::Provider::OrSymbol))
33
+ end
34
+ attr_reader :provider
35
+
36
+ sig do
37
+ params(
38
+ provider: Telnyx::VoiceCloneCreateParams::Provider::OrSymbol
39
+ ).void
40
+ end
41
+ attr_writer :provider
42
+
43
+ sig do
44
+ params(
45
+ gender: Telnyx::VoiceCloneCreateParams::Gender::OrSymbol,
46
+ language: String,
47
+ name: String,
48
+ voice_design_id: String,
49
+ provider: Telnyx::VoiceCloneCreateParams::Provider::OrSymbol,
50
+ request_options: Telnyx::RequestOptions::OrHash
51
+ ).returns(T.attached_class)
52
+ end
53
+ def self.new(
54
+ # Gender of the voice clone.
55
+ gender:,
56
+ # ISO 639-1 language code for the clone (e.g. `en`, `fr`, `de`).
57
+ language:,
58
+ # Name for the voice clone.
59
+ name:,
60
+ # UUID of the source voice design to clone.
61
+ voice_design_id:,
62
+ # Voice synthesis provider. Case-insensitive. Defaults to `telnyx`.
63
+ provider: nil,
64
+ request_options: {}
65
+ )
66
+ end
67
+
68
+ sig do
69
+ override.returns(
70
+ {
71
+ gender: Telnyx::VoiceCloneCreateParams::Gender::OrSymbol,
72
+ language: String,
73
+ name: String,
74
+ voice_design_id: String,
75
+ provider: Telnyx::VoiceCloneCreateParams::Provider::OrSymbol,
76
+ request_options: Telnyx::RequestOptions
77
+ }
78
+ )
79
+ end
80
+ def to_hash
81
+ end
82
+
83
+ # Gender of the voice clone.
84
+ module Gender
85
+ extend Telnyx::Internal::Type::Enum
86
+
87
+ TaggedSymbol =
88
+ T.type_alias { T.all(Symbol, Telnyx::VoiceCloneCreateParams::Gender) }
89
+ OrSymbol = T.type_alias { T.any(Symbol, String) }
90
+
91
+ MALE =
92
+ T.let(:male, Telnyx::VoiceCloneCreateParams::Gender::TaggedSymbol)
93
+ FEMALE =
94
+ T.let(:female, Telnyx::VoiceCloneCreateParams::Gender::TaggedSymbol)
95
+ NEUTRAL =
96
+ T.let(:neutral, Telnyx::VoiceCloneCreateParams::Gender::TaggedSymbol)
97
+
98
+ sig do
99
+ override.returns(
100
+ T::Array[Telnyx::VoiceCloneCreateParams::Gender::TaggedSymbol]
101
+ )
102
+ end
103
+ def self.values
104
+ end
105
+ end
106
+
107
+ # Voice synthesis provider. Case-insensitive. Defaults to `telnyx`.
108
+ module Provider
109
+ extend Telnyx::Internal::Type::Enum
110
+
111
+ TaggedSymbol =
112
+ T.type_alias do
113
+ T.all(Symbol, Telnyx::VoiceCloneCreateParams::Provider)
114
+ end
115
+ OrSymbol = T.type_alias { T.any(Symbol, String) }
116
+
117
+ TELNYX =
118
+ T.let(:telnyx, Telnyx::VoiceCloneCreateParams::Provider::TaggedSymbol)
119
+ TELNYX_2 =
120
+ T.let(:Telnyx, Telnyx::VoiceCloneCreateParams::Provider::TaggedSymbol)
121
+ MINIMAX =
122
+ T.let(
123
+ :minimax,
124
+ Telnyx::VoiceCloneCreateParams::Provider::TaggedSymbol
125
+ )
126
+ MINIMAX_2 =
127
+ T.let(
128
+ :Minimax,
129
+ Telnyx::VoiceCloneCreateParams::Provider::TaggedSymbol
130
+ )
131
+
132
+ sig do
133
+ override.returns(
134
+ T::Array[Telnyx::VoiceCloneCreateParams::Provider::TaggedSymbol]
135
+ )
136
+ end
137
+ def self.values
138
+ end
139
+ end
140
+ end
141
+ end
142
+ end
@@ -0,0 +1,36 @@
1
+ # typed: strong
2
+
3
+ module Telnyx
4
+ module Models
5
+ class VoiceCloneCreateResponse < Telnyx::Internal::Type::BaseModel
6
+ OrHash =
7
+ T.type_alias do
8
+ T.any(
9
+ Telnyx::Models::VoiceCloneCreateResponse,
10
+ Telnyx::Internal::AnyHash
11
+ )
12
+ end
13
+
14
+ # A voice clone object.
15
+ sig { returns(T.nilable(Telnyx::VoiceCloneData)) }
16
+ attr_reader :data
17
+
18
+ sig { params(data: Telnyx::VoiceCloneData::OrHash).void }
19
+ attr_writer :data
20
+
21
+ # Response envelope for a single voice clone.
22
+ sig do
23
+ params(data: Telnyx::VoiceCloneData::OrHash).returns(T.attached_class)
24
+ end
25
+ def self.new(
26
+ # A voice clone object.
27
+ data: nil
28
+ )
29
+ end
30
+
31
+ sig { override.returns({ data: Telnyx::VoiceCloneData }) }
32
+ def to_hash
33
+ end
34
+ end
35
+ end
36
+ end
@@ -42,6 +42,25 @@ module Telnyx
42
42
  sig { params(name: String).void }
43
43
  attr_writer :name
44
44
 
45
+ # Voice synthesis provider used for this clone.
46
+ sig { returns(T.nilable(Telnyx::VoiceCloneData::Provider::TaggedSymbol)) }
47
+ attr_reader :provider
48
+
49
+ sig { params(provider: Telnyx::VoiceCloneData::Provider::OrSymbol).void }
50
+ attr_writer :provider
51
+
52
+ # List of TTS model identifiers supported by this clone's provider.
53
+ sig { returns(T.nilable(T::Array[String])) }
54
+ attr_reader :provider_supported_models
55
+
56
+ sig { params(provider_supported_models: T::Array[String]).void }
57
+ attr_writer :provider_supported_models
58
+
59
+ # Provider-specific voice identifier used for TTS synthesis. For Telnyx clones
60
+ # this equals the clone ID; for Minimax it is the Minimax-assigned voice ID.
61
+ sig { returns(T.nilable(String)) }
62
+ attr_accessor :provider_voice_id
63
+
45
64
  # Identifies the resource type.
46
65
  sig do
47
66
  returns(T.nilable(Telnyx::VoiceCloneData::RecordType::TaggedSymbol))
@@ -77,6 +96,9 @@ module Telnyx
77
96
  label: T.nilable(String),
78
97
  language: T.nilable(String),
79
98
  name: String,
99
+ provider: Telnyx::VoiceCloneData::Provider::OrSymbol,
100
+ provider_supported_models: T::Array[String],
101
+ provider_voice_id: T.nilable(String),
80
102
  record_type: Telnyx::VoiceCloneData::RecordType::OrSymbol,
81
103
  source_voice_design_id: T.nilable(String),
82
104
  source_voice_design_version: T.nilable(Integer),
@@ -97,6 +119,13 @@ module Telnyx
97
119
  language: nil,
98
120
  # Name of the voice clone.
99
121
  name: nil,
122
+ # Voice synthesis provider used for this clone.
123
+ provider: nil,
124
+ # List of TTS model identifiers supported by this clone's provider.
125
+ provider_supported_models: nil,
126
+ # Provider-specific voice identifier used for TTS synthesis. For Telnyx clones
127
+ # this equals the clone ID; for Minimax it is the Minimax-assigned voice ID.
128
+ provider_voice_id: nil,
100
129
  # Identifies the resource type.
101
130
  record_type: nil,
102
131
  # UUID of the source voice design. `null` for upload-based clones.
@@ -117,6 +146,9 @@ module Telnyx
117
146
  label: T.nilable(String),
118
147
  language: T.nilable(String),
119
148
  name: String,
149
+ provider: Telnyx::VoiceCloneData::Provider::TaggedSymbol,
150
+ provider_supported_models: T::Array[String],
151
+ provider_voice_id: T.nilable(String),
120
152
  record_type: Telnyx::VoiceCloneData::RecordType::TaggedSymbol,
121
153
  source_voice_design_id: T.nilable(String),
122
154
  source_voice_design_version: T.nilable(Integer),
@@ -148,6 +180,31 @@ module Telnyx
148
180
  end
149
181
  end
150
182
 
183
+ # Voice synthesis provider used for this clone.
184
+ module Provider
185
+ extend Telnyx::Internal::Type::Enum
186
+
187
+ TaggedSymbol =
188
+ T.type_alias { T.all(Symbol, Telnyx::VoiceCloneData::Provider) }
189
+ OrSymbol = T.type_alias { T.any(Symbol, String) }
190
+
191
+ TELNYX = T.let(:telnyx, Telnyx::VoiceCloneData::Provider::TaggedSymbol)
192
+ TELNYX_2 =
193
+ T.let(:Telnyx, Telnyx::VoiceCloneData::Provider::TaggedSymbol)
194
+ MINIMAX =
195
+ T.let(:minimax, Telnyx::VoiceCloneData::Provider::TaggedSymbol)
196
+ MINIMAX_2 =
197
+ T.let(:Minimax, Telnyx::VoiceCloneData::Provider::TaggedSymbol)
198
+
199
+ sig do
200
+ override.returns(
201
+ T::Array[Telnyx::VoiceCloneData::Provider::TaggedSymbol]
202
+ )
203
+ end
204
+ def self.values
205
+ end
206
+ end
207
+
151
208
  # Identifies the resource type.
152
209
  module RecordType
153
210
  extend Telnyx::Internal::Type::Enum
@@ -18,6 +18,22 @@ module Telnyx
18
18
  sig { params(filter_name: String).void }
19
19
  attr_writer :filter_name
20
20
 
21
+ # Filter by voice synthesis provider. Case-insensitive.
22
+ sig do
23
+ returns(
24
+ T.nilable(Telnyx::VoiceCloneListParams::FilterProvider::OrSymbol)
25
+ )
26
+ end
27
+ attr_reader :filter_provider
28
+
29
+ sig do
30
+ params(
31
+ filter_provider:
32
+ Telnyx::VoiceCloneListParams::FilterProvider::OrSymbol
33
+ ).void
34
+ end
35
+ attr_writer :filter_provider
36
+
21
37
  # Page number for pagination (1-based).
22
38
  sig { returns(T.nilable(Integer)) }
23
39
  attr_reader :page_number
@@ -42,6 +58,8 @@ module Telnyx
42
58
  sig do
43
59
  params(
44
60
  filter_name: String,
61
+ filter_provider:
62
+ Telnyx::VoiceCloneListParams::FilterProvider::OrSymbol,
45
63
  page_number: Integer,
46
64
  page_size: Integer,
47
65
  sort: Telnyx::VoiceCloneListParams::Sort::OrSymbol,
@@ -51,6 +69,8 @@ module Telnyx
51
69
  def self.new(
52
70
  # Case-insensitive substring filter on the name field.
53
71
  filter_name: nil,
72
+ # Filter by voice synthesis provider. Case-insensitive.
73
+ filter_provider: nil,
54
74
  # Page number for pagination (1-based).
55
75
  page_number: nil,
56
76
  # Number of results per page.
@@ -65,6 +85,8 @@ module Telnyx
65
85
  override.returns(
66
86
  {
67
87
  filter_name: String,
88
+ filter_provider:
89
+ Telnyx::VoiceCloneListParams::FilterProvider::OrSymbol,
68
90
  page_number: Integer,
69
91
  page_size: Integer,
70
92
  sort: Telnyx::VoiceCloneListParams::Sort::OrSymbol,
@@ -75,6 +97,46 @@ module Telnyx
75
97
  def to_hash
76
98
  end
77
99
 
100
+ # Filter by voice synthesis provider. Case-insensitive.
101
+ module FilterProvider
102
+ extend Telnyx::Internal::Type::Enum
103
+
104
+ TaggedSymbol =
105
+ T.type_alias do
106
+ T.all(Symbol, Telnyx::VoiceCloneListParams::FilterProvider)
107
+ end
108
+ OrSymbol = T.type_alias { T.any(Symbol, String) }
109
+
110
+ TELNYX =
111
+ T.let(
112
+ :telnyx,
113
+ Telnyx::VoiceCloneListParams::FilterProvider::TaggedSymbol
114
+ )
115
+ TELNYX_2 =
116
+ T.let(
117
+ :Telnyx,
118
+ Telnyx::VoiceCloneListParams::FilterProvider::TaggedSymbol
119
+ )
120
+ MINIMAX =
121
+ T.let(
122
+ :minimax,
123
+ Telnyx::VoiceCloneListParams::FilterProvider::TaggedSymbol
124
+ )
125
+ MINIMAX_2 =
126
+ T.let(
127
+ :Minimax,
128
+ Telnyx::VoiceCloneListParams::FilterProvider::TaggedSymbol
129
+ )
130
+
131
+ sig do
132
+ override.returns(
133
+ T::Array[Telnyx::VoiceCloneListParams::FilterProvider::TaggedSymbol]
134
+ )
135
+ end
136
+ def self.values
137
+ end
138
+ end
139
+
78
140
  # Sort order. Prefix with `-` for descending. Defaults to `-created_at`.
79
141
  module Sort
80
142
  extend Telnyx::Internal::Type::Enum
@@ -44,6 +44,20 @@ module Telnyx
44
44
  sig { params(name: String).void }
45
45
  attr_writer :name
46
46
 
47
+ # Voice synthesis provider. `telnyx` uses the Qwen3TTS model; `minimax` uses the
48
+ # Minimax speech models. Case-insensitive. Defaults to `telnyx`.
49
+ sig do
50
+ returns(T.nilable(Telnyx::VoiceDesignCreateParams::Provider::OrSymbol))
51
+ end
52
+ attr_reader :provider
53
+
54
+ sig do
55
+ params(
56
+ provider: Telnyx::VoiceDesignCreateParams::Provider::OrSymbol
57
+ ).void
58
+ end
59
+ attr_writer :provider
60
+
47
61
  # Repetition penalty to reduce repeated patterns in generated audio. Default:
48
62
  # 1.05.
49
63
  sig { returns(T.nilable(Float)) }
@@ -91,6 +105,7 @@ module Telnyx
91
105
  language: String,
92
106
  max_new_tokens: Integer,
93
107
  name: String,
108
+ provider: Telnyx::VoiceDesignCreateParams::Provider::OrSymbol,
94
109
  repetition_penalty: Float,
95
110
  temperature: Float,
96
111
  top_k: Integer,
@@ -114,6 +129,9 @@ module Telnyx
114
129
  # (`voice_design_id` is not provided); ignored when adding a version. Cannot be a
115
130
  # UUID.
116
131
  name: nil,
132
+ # Voice synthesis provider. `telnyx` uses the Qwen3TTS model; `minimax` uses the
133
+ # Minimax speech models. Case-insensitive. Defaults to `telnyx`.
134
+ provider: nil,
117
135
  # Repetition penalty to reduce repeated patterns in generated audio. Default:
118
136
  # 1.05.
119
137
  repetition_penalty: nil,
@@ -141,6 +159,7 @@ module Telnyx
141
159
  language: String,
142
160
  max_new_tokens: Integer,
143
161
  name: String,
162
+ provider: Telnyx::VoiceDesignCreateParams::Provider::OrSymbol,
144
163
  repetition_penalty: Float,
145
164
  temperature: Float,
146
165
  top_k: Integer,
@@ -152,6 +171,47 @@ module Telnyx
152
171
  end
153
172
  def to_hash
154
173
  end
174
+
175
+ # Voice synthesis provider. `telnyx` uses the Qwen3TTS model; `minimax` uses the
176
+ # Minimax speech models. Case-insensitive. Defaults to `telnyx`.
177
+ module Provider
178
+ extend Telnyx::Internal::Type::Enum
179
+
180
+ TaggedSymbol =
181
+ T.type_alias do
182
+ T.all(Symbol, Telnyx::VoiceDesignCreateParams::Provider)
183
+ end
184
+ OrSymbol = T.type_alias { T.any(Symbol, String) }
185
+
186
+ TELNYX =
187
+ T.let(
188
+ :telnyx,
189
+ Telnyx::VoiceDesignCreateParams::Provider::TaggedSymbol
190
+ )
191
+ TELNYX_2 =
192
+ T.let(
193
+ :Telnyx,
194
+ Telnyx::VoiceDesignCreateParams::Provider::TaggedSymbol
195
+ )
196
+ MINIMAX =
197
+ T.let(
198
+ :minimax,
199
+ Telnyx::VoiceDesignCreateParams::Provider::TaggedSymbol
200
+ )
201
+ MINIMAX_2 =
202
+ T.let(
203
+ :Minimax,
204
+ Telnyx::VoiceDesignCreateParams::Provider::TaggedSymbol
205
+ )
206
+
207
+ sig do
208
+ override.returns(
209
+ T::Array[Telnyx::VoiceDesignCreateParams::Provider::TaggedSymbol]
210
+ )
211
+ end
212
+ def self.values
213
+ end
214
+ end
155
215
  end
156
216
  end
157
217
  end
@@ -36,6 +36,25 @@ module Telnyx
36
36
  sig { params(prompt: String).void }
37
37
  attr_writer :prompt
38
38
 
39
+ # Voice synthesis provider used for this design.
40
+ sig do
41
+ returns(T.nilable(Telnyx::VoiceDesignData::Provider::TaggedSymbol))
42
+ end
43
+ attr_accessor :provider
44
+
45
+ # List of TTS model identifiers supported by this design's provider (e.g.
46
+ # `Qwen3TTS`, `speech-02-turbo`).
47
+ sig { returns(T.nilable(T::Array[String])) }
48
+ attr_reader :provider_supported_models
49
+
50
+ sig { params(provider_supported_models: T::Array[String]).void }
51
+ attr_writer :provider_supported_models
52
+
53
+ # Provider-specific voice identifier. For Telnyx designs this is the design
54
+ # version ID; for Minimax it is the Minimax-assigned voice ID.
55
+ sig { returns(T.nilable(String)) }
56
+ attr_accessor :provider_voice_id
57
+
39
58
  # Identifies the resource type.
40
59
  sig do
41
60
  returns(T.nilable(Telnyx::VoiceDesignData::RecordType::TaggedSymbol))
@@ -89,6 +108,9 @@ module Telnyx
89
108
  created_at: Time,
90
109
  name: String,
91
110
  prompt: String,
111
+ provider: T.nilable(Telnyx::VoiceDesignData::Provider::OrSymbol),
112
+ provider_supported_models: T::Array[String],
113
+ provider_voice_id: T.nilable(String),
92
114
  record_type: Telnyx::VoiceDesignData::RecordType::OrSymbol,
93
115
  text: String,
94
116
  updated_at: Time,
@@ -106,6 +128,14 @@ module Telnyx
106
128
  name: nil,
107
129
  # Natural language prompt used to define the voice style for this version.
108
130
  prompt: nil,
131
+ # Voice synthesis provider used for this design.
132
+ provider: nil,
133
+ # List of TTS model identifiers supported by this design's provider (e.g.
134
+ # `Qwen3TTS`, `speech-02-turbo`).
135
+ provider_supported_models: nil,
136
+ # Provider-specific voice identifier. For Telnyx designs this is the design
137
+ # version ID; for Minimax it is the Minimax-assigned voice ID.
138
+ provider_voice_id: nil,
109
139
  # Identifies the resource type.
110
140
  record_type: nil,
111
141
  # Sample text used to synthesize this version.
@@ -128,6 +158,10 @@ module Telnyx
128
158
  created_at: Time,
129
159
  name: String,
130
160
  prompt: String,
161
+ provider:
162
+ T.nilable(Telnyx::VoiceDesignData::Provider::TaggedSymbol),
163
+ provider_supported_models: T::Array[String],
164
+ provider_voice_id: T.nilable(String),
131
165
  record_type: Telnyx::VoiceDesignData::RecordType::TaggedSymbol,
132
166
  text: String,
133
167
  updated_at: Time,
@@ -140,6 +174,31 @@ module Telnyx
140
174
  def to_hash
141
175
  end
142
176
 
177
+ # Voice synthesis provider used for this design.
178
+ module Provider
179
+ extend Telnyx::Internal::Type::Enum
180
+
181
+ TaggedSymbol =
182
+ T.type_alias { T.all(Symbol, Telnyx::VoiceDesignData::Provider) }
183
+ OrSymbol = T.type_alias { T.any(Symbol, String) }
184
+
185
+ TELNYX = T.let(:telnyx, Telnyx::VoiceDesignData::Provider::TaggedSymbol)
186
+ TELNYX_2 =
187
+ T.let(:Telnyx, Telnyx::VoiceDesignData::Provider::TaggedSymbol)
188
+ MINIMAX =
189
+ T.let(:minimax, Telnyx::VoiceDesignData::Provider::TaggedSymbol)
190
+ MINIMAX_2 =
191
+ T.let(:Minimax, Telnyx::VoiceDesignData::Provider::TaggedSymbol)
192
+
193
+ sig do
194
+ override.returns(
195
+ T::Array[Telnyx::VoiceDesignData::Provider::TaggedSymbol]
196
+ )
197
+ end
198
+ def self.values
199
+ end
200
+ end
201
+
143
202
  # Identifies the resource type.
144
203
  module RecordType
145
204
  extend Telnyx::Internal::Type::Enum
@@ -32,6 +32,23 @@ module Telnyx
32
32
  sig { params(name: String).void }
33
33
  attr_writer :name
34
34
 
35
+ # Voice synthesis provider used for this design.
36
+ sig do
37
+ returns(
38
+ T.nilable(
39
+ Telnyx::Models::VoiceDesignListResponse::Provider::TaggedSymbol
40
+ )
41
+ )
42
+ end
43
+ attr_accessor :provider
44
+
45
+ # List of TTS model identifiers supported by this design's provider.
46
+ sig { returns(T.nilable(T::Array[String])) }
47
+ attr_reader :provider_supported_models
48
+
49
+ sig { params(provider_supported_models: T::Array[String]).void }
50
+ attr_writer :provider_supported_models
51
+
35
52
  # Identifies the resource type.
36
53
  sig do
37
54
  returns(
@@ -63,6 +80,11 @@ module Telnyx
63
80
  id: String,
64
81
  created_at: Time,
65
82
  name: String,
83
+ provider:
84
+ T.nilable(
85
+ Telnyx::Models::VoiceDesignListResponse::Provider::OrSymbol
86
+ ),
87
+ provider_supported_models: T::Array[String],
66
88
  record_type:
67
89
  Telnyx::Models::VoiceDesignListResponse::RecordType::OrSymbol,
68
90
  updated_at: Time
@@ -75,6 +97,10 @@ module Telnyx
75
97
  created_at: nil,
76
98
  # Name of the voice design.
77
99
  name: nil,
100
+ # Voice synthesis provider used for this design.
101
+ provider: nil,
102
+ # List of TTS model identifiers supported by this design's provider.
103
+ provider_supported_models: nil,
78
104
  # Identifies the resource type.
79
105
  record_type: nil,
80
106
  # Timestamp when the voice design was last updated.
@@ -88,6 +114,11 @@ module Telnyx
88
114
  id: String,
89
115
  created_at: Time,
90
116
  name: String,
117
+ provider:
118
+ T.nilable(
119
+ Telnyx::Models::VoiceDesignListResponse::Provider::TaggedSymbol
120
+ ),
121
+ provider_supported_models: T::Array[String],
91
122
  record_type:
92
123
  Telnyx::Models::VoiceDesignListResponse::RecordType::TaggedSymbol,
93
124
  updated_at: Time
@@ -97,6 +128,48 @@ module Telnyx
97
128
  def to_hash
98
129
  end
99
130
 
131
+ # Voice synthesis provider used for this design.
132
+ module Provider
133
+ extend Telnyx::Internal::Type::Enum
134
+
135
+ TaggedSymbol =
136
+ T.type_alias do
137
+ T.all(Symbol, Telnyx::Models::VoiceDesignListResponse::Provider)
138
+ end
139
+ OrSymbol = T.type_alias { T.any(Symbol, String) }
140
+
141
+ TELNYX =
142
+ T.let(
143
+ :telnyx,
144
+ Telnyx::Models::VoiceDesignListResponse::Provider::TaggedSymbol
145
+ )
146
+ TELNYX_2 =
147
+ T.let(
148
+ :Telnyx,
149
+ Telnyx::Models::VoiceDesignListResponse::Provider::TaggedSymbol
150
+ )
151
+ MINIMAX =
152
+ T.let(
153
+ :minimax,
154
+ Telnyx::Models::VoiceDesignListResponse::Provider::TaggedSymbol
155
+ )
156
+ MINIMAX_2 =
157
+ T.let(
158
+ :Minimax,
159
+ Telnyx::Models::VoiceDesignListResponse::Provider::TaggedSymbol
160
+ )
161
+
162
+ sig do
163
+ override.returns(
164
+ T::Array[
165
+ Telnyx::Models::VoiceDesignListResponse::Provider::TaggedSymbol
166
+ ]
167
+ )
168
+ end
169
+ def self.values
170
+ end
171
+ end
172
+
100
173
  # Identifies the resource type.
101
174
  module RecordType
102
175
  extend Telnyx::Internal::Type::Enum
@@ -2,13 +2,13 @@
2
2
 
3
3
  module Telnyx
4
4
  module Models
5
- class VoiceDesignUpdateParams < Telnyx::Internal::Type::BaseModel
5
+ class VoiceDesignRenameParams < Telnyx::Internal::Type::BaseModel
6
6
  extend Telnyx::Internal::Type::RequestParameters::Converter
7
7
  include Telnyx::Internal::Type::RequestParameters
8
8
 
9
9
  OrHash =
10
10
  T.type_alias do
11
- T.any(Telnyx::VoiceDesignUpdateParams, Telnyx::Internal::AnyHash)
11
+ T.any(Telnyx::VoiceDesignRenameParams, Telnyx::Internal::AnyHash)
12
12
  end
13
13
 
14
14
  sig { returns(String) }