revox 0.1.0 → 0.3.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 (224) hide show
  1. checksums.yaml +4 -4
  2. data/CHANGELOG.md +81 -0
  3. data/README.md +39 -14
  4. data/lib/revox/client.rb +23 -1
  5. data/lib/revox/internal/transport/base_client.rb +5 -0
  6. data/lib/revox/internal/type/base_model.rb +3 -3
  7. data/lib/revox/internal/util.rb +22 -7
  8. data/lib/revox/models/assistant_clone_params.rb +20 -0
  9. data/lib/revox/models/assistant_clone_response.rb +1594 -0
  10. data/lib/revox/models/assistant_create_params.rb +1038 -13
  11. data/lib/revox/models/assistant_create_response.rb +1071 -11
  12. data/lib/revox/models/assistant_list_response.rb +1070 -11
  13. data/lib/revox/models/assistant_retrieve_response.rb +1066 -11
  14. data/lib/revox/models/assistant_update_params.rb +1038 -13
  15. data/lib/revox/models/assistant_update_response.rb +1097 -12
  16. data/lib/revox/models/auth_status_retrieve_params.rb +14 -0
  17. data/lib/revox/models/auth_status_retrieve_response.rb +17 -0
  18. data/lib/revox/models/call_cancel_params.rb +20 -0
  19. data/lib/revox/models/call_cancel_response.rb +16 -0
  20. data/lib/revox/models/call_create_params.rb +1065 -13
  21. data/lib/revox/models/call_create_response.rb +1820 -98
  22. data/lib/revox/models/call_export_params.rb +205 -0
  23. data/lib/revox/models/call_export_response.rb +22 -0
  24. data/lib/revox/models/call_pause_params.rb +20 -0
  25. data/lib/revox/models/call_pause_response.rb +16 -0
  26. data/lib/revox/models/call_phone_history_params.rb +14 -0
  27. data/lib/revox/models/call_phone_history_response.rb +98 -0
  28. data/lib/revox/models/call_resume_params.rb +20 -0
  29. data/lib/revox/models/call_resume_response.rb +16 -0
  30. data/lib/revox/models/call_retrieve_response.rb +1822 -98
  31. data/lib/revox/models/call_search_params.rb +171 -0
  32. data/lib/revox/models/call_search_response.rb +3114 -0
  33. data/lib/revox/models/campaign_create_params.rb +67 -2
  34. data/lib/revox/models/campaign_create_response.rb +1314 -59
  35. data/lib/revox/models/campaign_get_rows_params.rb +1 -46
  36. data/lib/revox/models/campaign_get_rows_response.rb +1833 -115
  37. data/lib/revox/models/campaign_launch_params.rb +20 -0
  38. data/lib/revox/models/campaign_launch_response.rb +2030 -0
  39. data/lib/revox/models/campaign_list_response.rb +1312 -59
  40. data/lib/revox/models/campaign_pause_params.rb +20 -0
  41. data/lib/revox/models/campaign_pause_response.rb +16 -0
  42. data/lib/revox/models/campaign_resume_params.rb +20 -0
  43. data/lib/revox/models/campaign_resume_response.rb +16 -0
  44. data/lib/revox/models/campaign_retrieve_response.rb +1312 -56
  45. data/lib/revox/models/campaign_statistics_params.rb +20 -0
  46. data/lib/revox/models/campaign_statistics_response.rb +486 -0
  47. data/lib/revox/models/campaign_update_params.rb +234 -0
  48. data/lib/revox/models/campaign_update_response.rb +2030 -0
  49. data/lib/revox/models/phone_number_delete_params.rb +20 -0
  50. data/lib/revox/models/phone_number_delete_response.rb +16 -0
  51. data/lib/revox/models/phone_number_list_params.rb +14 -0
  52. data/lib/revox/models/phone_number_list_response.rb +1777 -0
  53. data/lib/revox/models/phone_number_update_params.rb +32 -0
  54. data/lib/revox/models/phone_number_update_response.rb +1777 -0
  55. data/lib/revox/models/user_retrieve_params.rb +14 -0
  56. data/lib/revox/models/user_retrieve_response.rb +99 -0
  57. data/lib/revox/models/voice_clone_params.rb +78 -0
  58. data/lib/revox/models/voice_clone_response.rb +40 -0
  59. data/lib/revox/models/voice_delete_params.rb +20 -0
  60. data/lib/revox/models/voice_delete_response.rb +16 -0
  61. data/lib/revox/models/voice_list_response.rb +55 -1
  62. data/lib/revox/models/voice_preview_params.rb +49 -1
  63. data/lib/revox/models.rb +36 -2
  64. data/lib/revox/resources/assistants.rb +137 -8
  65. data/lib/revox/resources/auth_status.rb +32 -0
  66. data/lib/revox/resources/call.rb +131 -15
  67. data/lib/revox/resources/campaigns.rb +143 -17
  68. data/lib/revox/resources/phone_numbers.rb +74 -0
  69. data/lib/revox/resources/users.rb +17 -3
  70. data/lib/revox/resources/voices.rb +66 -10
  71. data/lib/revox/version.rb +1 -1
  72. data/lib/revox.rb +40 -7
  73. data/rbi/revox/client.rbi +6 -0
  74. data/rbi/revox/internal/util.rbi +8 -0
  75. data/rbi/revox/models/assistant_clone_params.rbi +33 -0
  76. data/rbi/revox/models/assistant_clone_response.rbi +3341 -0
  77. data/rbi/revox/models/assistant_create_params.rbi +2138 -103
  78. data/rbi/revox/models/assistant_create_response.rbi +2454 -199
  79. data/rbi/revox/models/assistant_list_response.rbi +2448 -195
  80. data/rbi/revox/models/assistant_retrieve_response.rbi +2401 -210
  81. data/rbi/revox/models/assistant_update_params.rbi +2138 -103
  82. data/rbi/revox/models/assistant_update_response.rbi +2504 -198
  83. data/rbi/revox/models/auth_status_retrieve_params.rbi +27 -0
  84. data/rbi/revox/models/auth_status_retrieve_response.rbi +30 -0
  85. data/rbi/revox/models/call_cancel_params.rbi +33 -0
  86. data/rbi/revox/models/call_cancel_response.rbi +23 -0
  87. data/rbi/revox/models/call_create_params.rbi +2382 -225
  88. data/rbi/revox/models/call_create_response.rbi +4116 -384
  89. data/rbi/revox/models/call_export_params.rbi +456 -0
  90. data/rbi/revox/models/call_export_response.rbi +26 -0
  91. data/rbi/revox/models/call_pause_params.rbi +31 -0
  92. data/rbi/revox/models/call_pause_response.rbi +23 -0
  93. data/rbi/revox/models/call_phone_history_params.rbi +27 -0
  94. data/rbi/revox/models/call_phone_history_response.rbi +224 -0
  95. data/rbi/revox/models/call_resume_params.rbi +33 -0
  96. data/rbi/revox/models/call_resume_response.rbi +23 -0
  97. data/rbi/revox/models/call_retrieve_response.rbi +4133 -399
  98. data/rbi/revox/models/call_search_params.rbi +288 -0
  99. data/rbi/revox/models/call_search_response.rbi +6593 -0
  100. data/rbi/revox/models/campaign_create_params.rbi +136 -0
  101. data/rbi/revox/models/campaign_create_response.rbi +2911 -231
  102. data/rbi/revox/models/campaign_get_rows_params.rbi +2 -82
  103. data/rbi/revox/models/campaign_get_rows_response.rbi +4146 -409
  104. data/rbi/revox/models/campaign_launch_params.rbi +33 -0
  105. data/rbi/revox/models/campaign_launch_response.rbi +4170 -0
  106. data/rbi/revox/models/campaign_list_response.rbi +2904 -230
  107. data/rbi/revox/models/campaign_pause_params.rbi +33 -0
  108. data/rbi/revox/models/campaign_pause_response.rbi +23 -0
  109. data/rbi/revox/models/campaign_resume_params.rbi +33 -0
  110. data/rbi/revox/models/campaign_resume_response.rbi +23 -0
  111. data/rbi/revox/models/campaign_retrieve_response.rbi +2911 -231
  112. data/rbi/revox/models/campaign_statistics_params.rbi +33 -0
  113. data/rbi/revox/models/campaign_statistics_response.rbi +1011 -0
  114. data/rbi/revox/models/campaign_update_params.rbi +431 -0
  115. data/rbi/revox/models/campaign_update_response.rbi +4170 -0
  116. data/rbi/revox/models/phone_number_delete_params.rbi +33 -0
  117. data/rbi/revox/models/phone_number_delete_response.rbi +26 -0
  118. data/rbi/revox/models/phone_number_list_params.rbi +27 -0
  119. data/rbi/revox/models/phone_number_list_response.rbi +3680 -0
  120. data/rbi/revox/models/phone_number_update_params.rbi +53 -0
  121. data/rbi/revox/models/phone_number_update_response.rbi +3683 -0
  122. data/rbi/revox/models/user_retrieve_params.rbi +27 -0
  123. data/rbi/revox/models/user_retrieve_response.rbi +140 -0
  124. data/rbi/revox/models/voice_clone_params.rbi +141 -0
  125. data/rbi/revox/models/voice_clone_response.rbi +53 -0
  126. data/rbi/revox/models/voice_delete_params.rbi +33 -0
  127. data/rbi/revox/models/voice_delete_response.rbi +23 -0
  128. data/rbi/revox/models/voice_list_response.rbi +105 -3
  129. data/rbi/revox/models/voice_preview_params.rbi +69 -0
  130. data/rbi/revox/models.rbi +36 -2
  131. data/rbi/revox/resources/assistants.rbi +296 -8
  132. data/rbi/revox/resources/auth_status.rbi +21 -0
  133. data/rbi/revox/resources/call.rbi +92 -6
  134. data/rbi/revox/resources/campaigns.rbi +106 -19
  135. data/rbi/revox/resources/phone_numbers.rbi +43 -0
  136. data/rbi/revox/resources/users.rbi +8 -2
  137. data/rbi/revox/resources/voices.rbi +56 -9
  138. data/sig/revox/client.rbs +4 -0
  139. data/sig/revox/internal/util.rbs +4 -0
  140. data/sig/revox/models/assistant_clone_params.rbs +20 -0
  141. data/sig/revox/models/assistant_clone_response.rbs +1318 -0
  142. data/sig/revox/models/assistant_create_params.rbs +844 -11
  143. data/sig/revox/models/assistant_create_response.rbs +860 -3
  144. data/sig/revox/models/assistant_list_response.rbs +860 -3
  145. data/sig/revox/models/assistant_retrieve_response.rbs +859 -3
  146. data/sig/revox/models/assistant_update_params.rbs +844 -11
  147. data/sig/revox/models/assistant_update_response.rbs +886 -6
  148. data/sig/revox/models/auth_status_retrieve_params.rbs +15 -0
  149. data/sig/revox/models/auth_status_retrieve_response.rbs +13 -0
  150. data/sig/revox/models/call_cancel_params.rbs +20 -0
  151. data/sig/revox/models/call_cancel_response.rbs +13 -0
  152. data/sig/revox/models/call_create_params.rbs +847 -13
  153. data/sig/revox/models/call_create_response.rbs +1519 -34
  154. data/sig/revox/models/call_export_params.rbs +234 -0
  155. data/sig/revox/models/call_export_response.rbs +15 -0
  156. data/sig/revox/models/call_pause_params.rbs +20 -0
  157. data/sig/revox/models/call_pause_response.rbs +13 -0
  158. data/sig/revox/models/call_phone_history_params.rbs +15 -0
  159. data/sig/revox/models/call_phone_history_response.rbs +102 -0
  160. data/sig/revox/models/call_resume_params.rbs +20 -0
  161. data/sig/revox/models/call_resume_response.rbs +13 -0
  162. data/sig/revox/models/call_retrieve_response.rbs +1519 -34
  163. data/sig/revox/models/call_search_params.rbs +198 -0
  164. data/sig/revox/models/call_search_response.rbs +2654 -0
  165. data/sig/revox/models/campaign_create_params.rbs +54 -0
  166. data/sig/revox/models/campaign_create_response.rbs +1034 -6
  167. data/sig/revox/models/campaign_get_rows_params.rbs +2 -64
  168. data/sig/revox/models/campaign_get_rows_response.rbs +1527 -54
  169. data/sig/revox/models/campaign_launch_params.rbs +20 -0
  170. data/sig/revox/models/campaign_launch_response.rbs +1694 -0
  171. data/sig/revox/models/campaign_list_response.rbs +1034 -6
  172. data/sig/revox/models/campaign_pause_params.rbs +20 -0
  173. data/sig/revox/models/campaign_pause_response.rbs +13 -0
  174. data/sig/revox/models/campaign_resume_params.rbs +20 -0
  175. data/sig/revox/models/campaign_resume_response.rbs +13 -0
  176. data/sig/revox/models/campaign_retrieve_response.rbs +1034 -6
  177. data/sig/revox/models/campaign_statistics_params.rbs +20 -0
  178. data/sig/revox/models/campaign_statistics_response.rbs +458 -0
  179. data/sig/revox/models/campaign_update_params.rbs +203 -0
  180. data/sig/revox/models/campaign_update_response.rbs +1694 -0
  181. data/sig/revox/models/phone_number_delete_params.rbs +20 -0
  182. data/sig/revox/models/phone_number_delete_response.rbs +13 -0
  183. data/sig/revox/models/phone_number_list_params.rbs +15 -0
  184. data/sig/revox/models/phone_number_list_response.rbs +1462 -0
  185. data/sig/revox/models/phone_number_update_params.rbs +32 -0
  186. data/sig/revox/models/phone_number_update_response.rbs +1460 -0
  187. data/sig/revox/models/user_retrieve_params.rbs +14 -0
  188. data/sig/revox/models/user_retrieve_response.rbs +71 -0
  189. data/sig/revox/models/voice_clone_params.rbs +79 -0
  190. data/sig/revox/models/voice_clone_response.rbs +40 -0
  191. data/sig/revox/models/voice_delete_params.rbs +20 -0
  192. data/sig/revox/models/voice_delete_response.rbs +13 -0
  193. data/sig/revox/models/voice_list_response.rbs +45 -3
  194. data/sig/revox/models/voice_preview_params.rbs +42 -1
  195. data/sig/revox/models.rbs +36 -2
  196. data/sig/revox/resources/assistants.rbs +61 -2
  197. data/sig/revox/resources/auth_status.rbs +11 -0
  198. data/sig/revox/resources/call.rbs +41 -3
  199. data/sig/revox/resources/campaigns.rbs +35 -5
  200. data/sig/revox/resources/phone_numbers.rbs +23 -0
  201. data/sig/revox/resources/users.rbs +3 -1
  202. data/sig/revox/resources/voices.rbs +17 -0
  203. metadata +122 -23
  204. data/lib/revox/models/call_list_params.rb +0 -52
  205. data/lib/revox/models/call_list_response.rb +0 -259
  206. data/lib/revox/models/users/me_retrieve_params.rb +0 -16
  207. data/lib/revox/models/users/me_retrieve_response.rb +0 -89
  208. data/lib/revox/models/users/me_update_params.rb +0 -22
  209. data/lib/revox/models/users/me_update_response.rb +0 -89
  210. data/lib/revox/resources/users/me.rb +0 -55
  211. data/rbi/revox/models/call_list_params.rbi +0 -94
  212. data/rbi/revox/models/call_list_response.rbi +0 -563
  213. data/rbi/revox/models/users/me_retrieve_params.rbi +0 -29
  214. data/rbi/revox/models/users/me_retrieve_response.rbi +0 -139
  215. data/rbi/revox/models/users/me_update_params.rbi +0 -43
  216. data/rbi/revox/models/users/me_update_response.rbi +0 -139
  217. data/rbi/revox/resources/users/me.rbi +0 -33
  218. data/sig/revox/models/call_list_params.rbs +0 -63
  219. data/sig/revox/models/call_list_response.rbs +0 -226
  220. data/sig/revox/models/users/me_retrieve_params.rbs +0 -16
  221. data/sig/revox/models/users/me_retrieve_response.rbs +0 -70
  222. data/sig/revox/models/users/me_update_params.rbs +0 -28
  223. data/sig/revox/models/users/me_update_response.rbs +0 -70
  224. data/sig/revox/resources/users/me.rbs +0 -18
@@ -0,0 +1,27 @@
1
+ # typed: strong
2
+
3
+ module Revox
4
+ module Models
5
+ class UserRetrieveParams < Revox::Internal::Type::BaseModel
6
+ extend Revox::Internal::Type::RequestParameters::Converter
7
+ include Revox::Internal::Type::RequestParameters
8
+
9
+ OrHash =
10
+ T.type_alias do
11
+ T.any(Revox::UserRetrieveParams, Revox::Internal::AnyHash)
12
+ end
13
+
14
+ sig do
15
+ params(request_options: Revox::RequestOptions::OrHash).returns(
16
+ T.attached_class
17
+ )
18
+ end
19
+ def self.new(request_options: {})
20
+ end
21
+
22
+ sig { override.returns({ request_options: Revox::RequestOptions }) }
23
+ def to_hash
24
+ end
25
+ end
26
+ end
27
+ end
@@ -0,0 +1,140 @@
1
+ # typed: strong
2
+
3
+ module Revox
4
+ module Models
5
+ class UserRetrieveResponse < Revox::Internal::Type::BaseModel
6
+ OrHash =
7
+ T.type_alias do
8
+ T.any(Revox::Models::UserRetrieveResponse, Revox::Internal::AnyHash)
9
+ end
10
+
11
+ # The current authenticated user.
12
+ sig { returns(Revox::Models::UserRetrieveResponse::User) }
13
+ attr_reader :user
14
+
15
+ sig do
16
+ params(user: Revox::Models::UserRetrieveResponse::User::OrHash).void
17
+ end
18
+ attr_writer :user
19
+
20
+ sig do
21
+ params(user: Revox::Models::UserRetrieveResponse::User::OrHash).returns(
22
+ T.attached_class
23
+ )
24
+ end
25
+ def self.new(
26
+ # The current authenticated user.
27
+ user:
28
+ )
29
+ end
30
+
31
+ sig do
32
+ override.returns({ user: Revox::Models::UserRetrieveResponse::User })
33
+ end
34
+ def to_hash
35
+ end
36
+
37
+ class User < Revox::Internal::Type::BaseModel
38
+ OrHash =
39
+ T.type_alias do
40
+ T.any(
41
+ Revox::Models::UserRetrieveResponse::User,
42
+ Revox::Internal::AnyHash
43
+ )
44
+ end
45
+
46
+ # The unique identifier of the user.
47
+ sig { returns(String) }
48
+ attr_accessor :id
49
+
50
+ # The time the user was created.
51
+ sig { returns(T.anything) }
52
+ attr_accessor :created_at
53
+
54
+ # The email address of the user.
55
+ sig { returns(String) }
56
+ attr_accessor :email
57
+
58
+ # The first name of the user.
59
+ sig { returns(T.nilable(String)) }
60
+ attr_accessor :first_name
61
+
62
+ # Whether the user has completed the onboarding tutorial.
63
+ sig { returns(T::Boolean) }
64
+ attr_accessor :has_completed_onboarding
65
+
66
+ # The last name of the user.
67
+ sig { returns(T.nilable(String)) }
68
+ attr_accessor :last_name
69
+
70
+ # The ID of the organization the user belongs to.
71
+ sig { returns(String) }
72
+ attr_accessor :organization_id
73
+
74
+ # The time the user was last updated.
75
+ sig { returns(T.anything) }
76
+ attr_accessor :updated_at
77
+
78
+ # ISO 3166-1 alpha-2 country code of the organization (e.g. FR). Used as the
79
+ # default region when normalizing national-format phone numbers.
80
+ sig { returns(T.nilable(String)) }
81
+ attr_accessor :organization_country
82
+
83
+ # The current authenticated user.
84
+ sig do
85
+ params(
86
+ id: String,
87
+ created_at: T.anything,
88
+ email: String,
89
+ first_name: T.nilable(String),
90
+ has_completed_onboarding: T::Boolean,
91
+ last_name: T.nilable(String),
92
+ organization_id: String,
93
+ updated_at: T.anything,
94
+ organization_country: T.nilable(String)
95
+ ).returns(T.attached_class)
96
+ end
97
+ def self.new(
98
+ # The unique identifier of the user.
99
+ id:,
100
+ # The time the user was created.
101
+ created_at:,
102
+ # The email address of the user.
103
+ email:,
104
+ # The first name of the user.
105
+ first_name:,
106
+ # Whether the user has completed the onboarding tutorial.
107
+ has_completed_onboarding:,
108
+ # The last name of the user.
109
+ last_name:,
110
+ # The ID of the organization the user belongs to.
111
+ organization_id:,
112
+ # The time the user was last updated.
113
+ updated_at:,
114
+ # ISO 3166-1 alpha-2 country code of the organization (e.g. FR). Used as the
115
+ # default region when normalizing national-format phone numbers.
116
+ organization_country: nil
117
+ )
118
+ end
119
+
120
+ sig do
121
+ override.returns(
122
+ {
123
+ id: String,
124
+ created_at: T.anything,
125
+ email: String,
126
+ first_name: T.nilable(String),
127
+ has_completed_onboarding: T::Boolean,
128
+ last_name: T.nilable(String),
129
+ organization_id: String,
130
+ updated_at: T.anything,
131
+ organization_country: T.nilable(String)
132
+ }
133
+ )
134
+ end
135
+ def to_hash
136
+ end
137
+ end
138
+ end
139
+ end
140
+ end
@@ -0,0 +1,141 @@
1
+ # typed: strong
2
+
3
+ module Revox
4
+ module Models
5
+ class VoiceCloneParams < Revox::Internal::Type::BaseModel
6
+ extend Revox::Internal::Type::RequestParameters::Converter
7
+ include Revox::Internal::Type::RequestParameters
8
+
9
+ OrHash =
10
+ T.type_alias do
11
+ T.any(Revox::VoiceCloneParams, Revox::Internal::AnyHash)
12
+ end
13
+
14
+ # Base64-encoded audio data (max ~7.5MB decoded)
15
+ sig { returns(String) }
16
+ attr_accessor :audio
17
+
18
+ # MIME type of the audio
19
+ sig { returns(Revox::VoiceCloneParams::ContentType::OrSymbol) }
20
+ attr_accessor :content_type
21
+
22
+ # Language of the voice
23
+ sig { returns(Revox::VoiceCloneParams::Language::OrSymbol) }
24
+ attr_accessor :language
25
+
26
+ # Name for the cloned voice
27
+ sig { returns(String) }
28
+ attr_accessor :name
29
+
30
+ sig do
31
+ params(
32
+ audio: String,
33
+ content_type: Revox::VoiceCloneParams::ContentType::OrSymbol,
34
+ language: Revox::VoiceCloneParams::Language::OrSymbol,
35
+ name: String,
36
+ request_options: Revox::RequestOptions::OrHash
37
+ ).returns(T.attached_class)
38
+ end
39
+ def self.new(
40
+ # Base64-encoded audio data (max ~7.5MB decoded)
41
+ audio:,
42
+ # MIME type of the audio
43
+ content_type:,
44
+ # Language of the voice
45
+ language:,
46
+ # Name for the cloned voice
47
+ name:,
48
+ request_options: {}
49
+ )
50
+ end
51
+
52
+ sig do
53
+ override.returns(
54
+ {
55
+ audio: String,
56
+ content_type: Revox::VoiceCloneParams::ContentType::OrSymbol,
57
+ language: Revox::VoiceCloneParams::Language::OrSymbol,
58
+ name: String,
59
+ request_options: Revox::RequestOptions
60
+ }
61
+ )
62
+ end
63
+ def to_hash
64
+ end
65
+
66
+ # MIME type of the audio
67
+ module ContentType
68
+ extend Revox::Internal::Type::Enum
69
+
70
+ TaggedSymbol =
71
+ T.type_alias { T.all(Symbol, Revox::VoiceCloneParams::ContentType) }
72
+ OrSymbol = T.type_alias { T.any(Symbol, String) }
73
+
74
+ AUDIO_WEBM =
75
+ T.let(
76
+ :"audio/webm",
77
+ Revox::VoiceCloneParams::ContentType::TaggedSymbol
78
+ )
79
+ AUDIO_WAV =
80
+ T.let(
81
+ :"audio/wav",
82
+ Revox::VoiceCloneParams::ContentType::TaggedSymbol
83
+ )
84
+ AUDIO_MPEG =
85
+ T.let(
86
+ :"audio/mpeg",
87
+ Revox::VoiceCloneParams::ContentType::TaggedSymbol
88
+ )
89
+ AUDIO_OGG =
90
+ T.let(
91
+ :"audio/ogg",
92
+ Revox::VoiceCloneParams::ContentType::TaggedSymbol
93
+ )
94
+ AUDIO_MP4 =
95
+ T.let(
96
+ :"audio/mp4",
97
+ Revox::VoiceCloneParams::ContentType::TaggedSymbol
98
+ )
99
+ VIDEO_WEBM =
100
+ T.let(
101
+ :"video/webm",
102
+ Revox::VoiceCloneParams::ContentType::TaggedSymbol
103
+ )
104
+
105
+ sig do
106
+ override.returns(
107
+ T::Array[Revox::VoiceCloneParams::ContentType::TaggedSymbol]
108
+ )
109
+ end
110
+ def self.values
111
+ end
112
+ end
113
+
114
+ # Language of the voice
115
+ module Language
116
+ extend Revox::Internal::Type::Enum
117
+
118
+ TaggedSymbol =
119
+ T.type_alias { T.all(Symbol, Revox::VoiceCloneParams::Language) }
120
+ OrSymbol = T.type_alias { T.any(Symbol, String) }
121
+
122
+ EN = T.let(:en, Revox::VoiceCloneParams::Language::TaggedSymbol)
123
+ FR = T.let(:fr, Revox::VoiceCloneParams::Language::TaggedSymbol)
124
+ ES = T.let(:es, Revox::VoiceCloneParams::Language::TaggedSymbol)
125
+ DE = T.let(:de, Revox::VoiceCloneParams::Language::TaggedSymbol)
126
+ IT = T.let(:it, Revox::VoiceCloneParams::Language::TaggedSymbol)
127
+ PT = T.let(:pt, Revox::VoiceCloneParams::Language::TaggedSymbol)
128
+ RU = T.let(:ru, Revox::VoiceCloneParams::Language::TaggedSymbol)
129
+ ZH = T.let(:zh, Revox::VoiceCloneParams::Language::TaggedSymbol)
130
+
131
+ sig do
132
+ override.returns(
133
+ T::Array[Revox::VoiceCloneParams::Language::TaggedSymbol]
134
+ )
135
+ end
136
+ def self.values
137
+ end
138
+ end
139
+ end
140
+ end
141
+ end
@@ -0,0 +1,53 @@
1
+ # typed: strong
2
+
3
+ module Revox
4
+ module Models
5
+ class VoiceCloneResponse < Revox::Internal::Type::BaseModel
6
+ OrHash =
7
+ T.type_alias do
8
+ T.any(Revox::Models::VoiceCloneResponse, Revox::Internal::AnyHash)
9
+ end
10
+
11
+ sig { returns(String) }
12
+ attr_accessor :id
13
+
14
+ sig { returns(String) }
15
+ attr_accessor :cartesia_voice_id
16
+
17
+ sig { returns(String) }
18
+ attr_accessor :created_at
19
+
20
+ sig { returns(String) }
21
+ attr_accessor :language
22
+
23
+ sig { returns(String) }
24
+ attr_accessor :name
25
+
26
+ sig do
27
+ params(
28
+ id: String,
29
+ cartesia_voice_id: String,
30
+ created_at: String,
31
+ language: String,
32
+ name: String
33
+ ).returns(T.attached_class)
34
+ end
35
+ def self.new(id:, cartesia_voice_id:, created_at:, language:, name:)
36
+ end
37
+
38
+ sig do
39
+ override.returns(
40
+ {
41
+ id: String,
42
+ cartesia_voice_id: String,
43
+ created_at: String,
44
+ language: String,
45
+ name: String
46
+ }
47
+ )
48
+ end
49
+ def to_hash
50
+ end
51
+ end
52
+ end
53
+ end
@@ -0,0 +1,33 @@
1
+ # typed: strong
2
+
3
+ module Revox
4
+ module Models
5
+ class VoiceDeleteParams < Revox::Internal::Type::BaseModel
6
+ extend Revox::Internal::Type::RequestParameters::Converter
7
+ include Revox::Internal::Type::RequestParameters
8
+
9
+ OrHash =
10
+ T.type_alias do
11
+ T.any(Revox::VoiceDeleteParams, Revox::Internal::AnyHash)
12
+ end
13
+
14
+ sig { returns(String) }
15
+ attr_accessor :id
16
+
17
+ sig do
18
+ params(
19
+ id: String,
20
+ request_options: Revox::RequestOptions::OrHash
21
+ ).returns(T.attached_class)
22
+ end
23
+ def self.new(id:, request_options: {})
24
+ end
25
+
26
+ sig do
27
+ override.returns({ id: String, request_options: Revox::RequestOptions })
28
+ end
29
+ def to_hash
30
+ end
31
+ end
32
+ end
33
+ end
@@ -0,0 +1,23 @@
1
+ # typed: strong
2
+
3
+ module Revox
4
+ module Models
5
+ class VoiceDeleteResponse < Revox::Internal::Type::BaseModel
6
+ OrHash =
7
+ T.type_alias do
8
+ T.any(Revox::Models::VoiceDeleteResponse, Revox::Internal::AnyHash)
9
+ end
10
+
11
+ sig { returns(T::Boolean) }
12
+ attr_accessor :success
13
+
14
+ sig { params(success: T::Boolean).returns(T.attached_class) }
15
+ def self.new(success:)
16
+ end
17
+
18
+ sig { override.returns({ success: T::Boolean }) }
19
+ def to_hash
20
+ end
21
+ end
22
+ end
23
+ end
@@ -64,6 +64,47 @@ module Revox
64
64
  end
65
65
  attr_accessor :provider
66
66
 
67
+ # The accent/dialect of the voice (e.g. 'american', 'british', 'australian',
68
+ # 'quebec').
69
+ sig { returns(T.nilable(String)) }
70
+ attr_reader :accent
71
+
72
+ sig { params(accent: String).void }
73
+ attr_writer :accent
74
+
75
+ # The gender of the voice (e.g. 'male', 'female', 'neutral').
76
+ sig { returns(T.nilable(String)) }
77
+ attr_reader :gender
78
+
79
+ sig { params(gender: String).void }
80
+ attr_writer :gender
81
+
82
+ # Whether this is a cloned voice.
83
+ sig { returns(T.nilable(T::Boolean)) }
84
+ attr_reader :is_cloned
85
+
86
+ sig { params(is_cloned: T::Boolean).void }
87
+ attr_writer :is_cloned
88
+
89
+ # Cartesia model compatibility. Used to filter the voice list by the selected
90
+ # model. Absent/undefined is treated as 'universal'.
91
+ sig do
92
+ returns(
93
+ T.nilable(
94
+ Revox::Models::VoiceListResponse::Voice::ModelCompat::TaggedSymbol
95
+ )
96
+ )
97
+ end
98
+ attr_reader :model_compat
99
+
100
+ sig do
101
+ params(
102
+ model_compat:
103
+ Revox::Models::VoiceListResponse::Voice::ModelCompat::OrSymbol
104
+ ).void
105
+ end
106
+ attr_writer :model_compat
107
+
67
108
  sig do
68
109
  params(
69
110
  id: String,
@@ -72,7 +113,12 @@ module Revox
72
113
  Revox::Models::VoiceListResponse::Voice::Language::OrSymbol,
73
114
  name: String,
74
115
  provider:
75
- Revox::Models::VoiceListResponse::Voice::Provider::OrSymbol
116
+ Revox::Models::VoiceListResponse::Voice::Provider::OrSymbol,
117
+ accent: String,
118
+ gender: String,
119
+ is_cloned: T::Boolean,
120
+ model_compat:
121
+ Revox::Models::VoiceListResponse::Voice::ModelCompat::OrSymbol
76
122
  ).returns(T.attached_class)
77
123
  end
78
124
  def self.new(
@@ -85,7 +131,17 @@ module Revox
85
131
  # The name of the voice.
86
132
  name:,
87
133
  # The provider of the voice.
88
- provider:
134
+ provider:,
135
+ # The accent/dialect of the voice (e.g. 'american', 'british', 'australian',
136
+ # 'quebec').
137
+ accent: nil,
138
+ # The gender of the voice (e.g. 'male', 'female', 'neutral').
139
+ gender: nil,
140
+ # Whether this is a cloned voice.
141
+ is_cloned: nil,
142
+ # Cartesia model compatibility. Used to filter the voice list by the selected
143
+ # model. Absent/undefined is treated as 'universal'.
144
+ model_compat: nil
89
145
  )
90
146
  end
91
147
 
@@ -98,7 +154,12 @@ module Revox
98
154
  Revox::Models::VoiceListResponse::Voice::Language::TaggedSymbol,
99
155
  name: String,
100
156
  provider:
101
- Revox::Models::VoiceListResponse::Voice::Provider::TaggedSymbol
157
+ Revox::Models::VoiceListResponse::Voice::Provider::TaggedSymbol,
158
+ accent: String,
159
+ gender: String,
160
+ is_cloned: T::Boolean,
161
+ model_compat:
162
+ Revox::Models::VoiceListResponse::Voice::ModelCompat::TaggedSymbol
102
163
  }
103
164
  )
104
165
  end
@@ -198,6 +259,47 @@ module Revox
198
259
  def self.values
199
260
  end
200
261
  end
262
+
263
+ # Cartesia model compatibility. Used to filter the voice list by the selected
264
+ # model. Absent/undefined is treated as 'universal'.
265
+ module ModelCompat
266
+ extend Revox::Internal::Type::Enum
267
+
268
+ TaggedSymbol =
269
+ T.type_alias do
270
+ T.all(
271
+ Symbol,
272
+ Revox::Models::VoiceListResponse::Voice::ModelCompat
273
+ )
274
+ end
275
+ OrSymbol = T.type_alias { T.any(Symbol, String) }
276
+
277
+ UNIVERSAL =
278
+ T.let(
279
+ :universal,
280
+ Revox::Models::VoiceListResponse::Voice::ModelCompat::TaggedSymbol
281
+ )
282
+ SONIC_3 =
283
+ T.let(
284
+ :"sonic-3",
285
+ Revox::Models::VoiceListResponse::Voice::ModelCompat::TaggedSymbol
286
+ )
287
+ SONIC_3_5 =
288
+ T.let(
289
+ :"sonic-3.5",
290
+ Revox::Models::VoiceListResponse::Voice::ModelCompat::TaggedSymbol
291
+ )
292
+
293
+ sig do
294
+ override.returns(
295
+ T::Array[
296
+ Revox::Models::VoiceListResponse::Voice::ModelCompat::TaggedSymbol
297
+ ]
298
+ )
299
+ end
300
+ def self.values
301
+ end
302
+ end
201
303
  end
202
304
  end
203
305
  end
@@ -19,10 +19,43 @@ module Revox
19
19
  sig { returns(String) }
20
20
  attr_accessor :voice_id
21
21
 
22
+ # Cartesia model for the preview. Defaults to sonic-3. Ignored for other
23
+ # providers.
24
+ sig { returns(T.nilable(Revox::VoicePreviewParams::Model::OrSymbol)) }
25
+ attr_reader :model
26
+
27
+ sig { params(model: Revox::VoicePreviewParams::Model::OrSymbol).void }
28
+ attr_writer :model
29
+
30
+ # Speed for preview. Cartesia 0.6–1.5, ElevenLabs 0.7–1.2. Default 1.0.
31
+ sig { returns(T.nilable(Float)) }
32
+ attr_reader :speed
33
+
34
+ sig { params(speed: Float).void }
35
+ attr_writer :speed
36
+
37
+ # Custom text for the preview. If omitted, a short default is used.
38
+ sig { returns(T.nilable(String)) }
39
+ attr_reader :text
40
+
41
+ sig { params(text: String).void }
42
+ attr_writer :text
43
+
44
+ # Volume for Cartesia preview (0.5–2.0). Ignored for other providers.
45
+ sig { returns(T.nilable(Float)) }
46
+ attr_reader :volume
47
+
48
+ sig { params(volume: Float).void }
49
+ attr_writer :volume
50
+
22
51
  sig do
23
52
  params(
24
53
  provider: Revox::VoicePreviewParams::Provider::OrSymbol,
25
54
  voice_id: String,
55
+ model: Revox::VoicePreviewParams::Model::OrSymbol,
56
+ speed: Float,
57
+ text: String,
58
+ volume: Float,
26
59
  request_options: Revox::RequestOptions::OrHash
27
60
  ).returns(T.attached_class)
28
61
  end
@@ -31,6 +64,15 @@ module Revox
31
64
  provider:,
32
65
  # The voice ID to generate a preview for.
33
66
  voice_id:,
67
+ # Cartesia model for the preview. Defaults to sonic-3. Ignored for other
68
+ # providers.
69
+ model: nil,
70
+ # Speed for preview. Cartesia 0.6–1.5, ElevenLabs 0.7–1.2. Default 1.0.
71
+ speed: nil,
72
+ # Custom text for the preview. If omitted, a short default is used.
73
+ text: nil,
74
+ # Volume for Cartesia preview (0.5–2.0). Ignored for other providers.
75
+ volume: nil,
34
76
  request_options: {}
35
77
  )
36
78
  end
@@ -40,6 +82,10 @@ module Revox
40
82
  {
41
83
  provider: Revox::VoicePreviewParams::Provider::OrSymbol,
42
84
  voice_id: String,
85
+ model: Revox::VoicePreviewParams::Model::OrSymbol,
86
+ speed: Float,
87
+ text: String,
88
+ volume: Float,
43
89
  request_options: Revox::RequestOptions
44
90
  }
45
91
  )
@@ -68,6 +114,29 @@ module Revox
68
114
  def self.values
69
115
  end
70
116
  end
117
+
118
+ # Cartesia model for the preview. Defaults to sonic-3. Ignored for other
119
+ # providers.
120
+ module Model
121
+ extend Revox::Internal::Type::Enum
122
+
123
+ TaggedSymbol =
124
+ T.type_alias { T.all(Symbol, Revox::VoicePreviewParams::Model) }
125
+ OrSymbol = T.type_alias { T.any(Symbol, String) }
126
+
127
+ SONIC_3 =
128
+ T.let(:"sonic-3", Revox::VoicePreviewParams::Model::TaggedSymbol)
129
+ SONIC_3_5 =
130
+ T.let(:"sonic-3.5", Revox::VoicePreviewParams::Model::TaggedSymbol)
131
+
132
+ sig do
133
+ override.returns(
134
+ T::Array[Revox::VoicePreviewParams::Model::TaggedSymbol]
135
+ )
136
+ end
137
+ def self.values
138
+ end
139
+ end
71
140
  end
72
141
  end
73
142
  end