revox 0.0.2

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 (161) hide show
  1. checksums.yaml +7 -0
  2. data/.ignore +2 -0
  3. data/CHANGELOG.md +10 -0
  4. data/README.md +234 -0
  5. data/SECURITY.md +23 -0
  6. data/lib/revox/client.rb +86 -0
  7. data/lib/revox/errors.rb +228 -0
  8. data/lib/revox/file_part.rb +58 -0
  9. data/lib/revox/internal/transport/base_client.rb +570 -0
  10. data/lib/revox/internal/transport/pooled_net_requester.rb +210 -0
  11. data/lib/revox/internal/type/array_of.rb +168 -0
  12. data/lib/revox/internal/type/base_model.rb +529 -0
  13. data/lib/revox/internal/type/base_page.rb +55 -0
  14. data/lib/revox/internal/type/boolean.rb +77 -0
  15. data/lib/revox/internal/type/converter.rb +327 -0
  16. data/lib/revox/internal/type/enum.rb +131 -0
  17. data/lib/revox/internal/type/file_input.rb +110 -0
  18. data/lib/revox/internal/type/hash_of.rb +188 -0
  19. data/lib/revox/internal/type/request_parameters.rb +42 -0
  20. data/lib/revox/internal/type/union.rb +237 -0
  21. data/lib/revox/internal/type/unknown.rb +81 -0
  22. data/lib/revox/internal/util.rb +920 -0
  23. data/lib/revox/internal.rb +20 -0
  24. data/lib/revox/models/assistant_create_params.rb +467 -0
  25. data/lib/revox/models/assistant_create_response.rb +535 -0
  26. data/lib/revox/models/assistant_delete_params.rb +14 -0
  27. data/lib/revox/models/assistant_delete_response.rb +16 -0
  28. data/lib/revox/models/assistant_list_params.rb +14 -0
  29. data/lib/revox/models/assistant_list_response.rb +533 -0
  30. data/lib/revox/models/assistant_retrieve_params.rb +14 -0
  31. data/lib/revox/models/assistant_retrieve_response.rb +518 -0
  32. data/lib/revox/models/assistant_update_params.rb +467 -0
  33. data/lib/revox/models/assistant_update_response.rb +535 -0
  34. data/lib/revox/models/call_create_params.rb +592 -0
  35. data/lib/revox/models/call_create_response.rb +684 -0
  36. data/lib/revox/models/call_list_params.rb +29 -0
  37. data/lib/revox/models/call_list_response.rb +197 -0
  38. data/lib/revox/models/call_retrieve_params.rb +14 -0
  39. data/lib/revox/models/call_retrieve_response.rb +684 -0
  40. data/lib/revox/models/users/me_retrieve_params.rb +16 -0
  41. data/lib/revox/models/users/me_retrieve_response.rb +89 -0
  42. data/lib/revox/models/users/me_update_params.rb +22 -0
  43. data/lib/revox/models/users/me_update_response.rb +89 -0
  44. data/lib/revox/models/voice_list_params.rb +14 -0
  45. data/lib/revox/models/voice_list_response.rb +91 -0
  46. data/lib/revox/models/voice_preview_params.rb +49 -0
  47. data/lib/revox/models/voice_retrieve_params.rb +30 -0
  48. data/lib/revox/models/voice_retrieve_response.rb +39 -0
  49. data/lib/revox/models.rb +65 -0
  50. data/lib/revox/request_options.rb +77 -0
  51. data/lib/revox/resources/assistants.rb +180 -0
  52. data/lib/revox/resources/call.rb +100 -0
  53. data/lib/revox/resources/users/me.rb +55 -0
  54. data/lib/revox/resources/users.rb +18 -0
  55. data/lib/revox/resources/voices.rb +83 -0
  56. data/lib/revox/version.rb +5 -0
  57. data/lib/revox.rb +85 -0
  58. data/manifest.yaml +17 -0
  59. data/rbi/revox/client.rbi +58 -0
  60. data/rbi/revox/errors.rbi +205 -0
  61. data/rbi/revox/file_part.rbi +37 -0
  62. data/rbi/revox/internal/transport/base_client.rbi +297 -0
  63. data/rbi/revox/internal/transport/pooled_net_requester.rbi +82 -0
  64. data/rbi/revox/internal/type/array_of.rbi +104 -0
  65. data/rbi/revox/internal/type/base_model.rbi +299 -0
  66. data/rbi/revox/internal/type/base_page.rbi +42 -0
  67. data/rbi/revox/internal/type/boolean.rbi +58 -0
  68. data/rbi/revox/internal/type/converter.rbi +204 -0
  69. data/rbi/revox/internal/type/enum.rbi +82 -0
  70. data/rbi/revox/internal/type/file_input.rbi +58 -0
  71. data/rbi/revox/internal/type/hash_of.rbi +104 -0
  72. data/rbi/revox/internal/type/request_parameters.rbi +29 -0
  73. data/rbi/revox/internal/type/union.rbi +126 -0
  74. data/rbi/revox/internal/type/unknown.rbi +58 -0
  75. data/rbi/revox/internal/util.rbi +478 -0
  76. data/rbi/revox/internal.rbi +16 -0
  77. data/rbi/revox/models/assistant_create_params.rbi +929 -0
  78. data/rbi/revox/models/assistant_create_response.rbi +1089 -0
  79. data/rbi/revox/models/assistant_delete_params.rbi +27 -0
  80. data/rbi/revox/models/assistant_delete_response.rbi +26 -0
  81. data/rbi/revox/models/assistant_list_params.rbi +27 -0
  82. data/rbi/revox/models/assistant_list_response.rbi +1079 -0
  83. data/rbi/revox/models/assistant_retrieve_params.rbi +27 -0
  84. data/rbi/revox/models/assistant_retrieve_response.rbi +1024 -0
  85. data/rbi/revox/models/assistant_update_params.rbi +935 -0
  86. data/rbi/revox/models/assistant_update_response.rbi +1089 -0
  87. data/rbi/revox/models/call_create_params.rbi +1147 -0
  88. data/rbi/revox/models/call_create_response.rbi +1335 -0
  89. data/rbi/revox/models/call_list_params.rbi +47 -0
  90. data/rbi/revox/models/call_list_response.rbi +401 -0
  91. data/rbi/revox/models/call_retrieve_params.rbi +27 -0
  92. data/rbi/revox/models/call_retrieve_response.rbi +1346 -0
  93. data/rbi/revox/models/users/me_retrieve_params.rbi +29 -0
  94. data/rbi/revox/models/users/me_retrieve_response.rbi +139 -0
  95. data/rbi/revox/models/users/me_update_params.rbi +43 -0
  96. data/rbi/revox/models/users/me_update_response.rbi +139 -0
  97. data/rbi/revox/models/voice_list_params.rbi +25 -0
  98. data/rbi/revox/models/voice_list_response.rbi +204 -0
  99. data/rbi/revox/models/voice_preview_params.rbi +84 -0
  100. data/rbi/revox/models/voice_retrieve_params.rbi +59 -0
  101. data/rbi/revox/models/voice_retrieve_response.rbi +70 -0
  102. data/rbi/revox/models.rbi +27 -0
  103. data/rbi/revox/request_options.rbi +55 -0
  104. data/rbi/revox/resources/assistants.rbi +206 -0
  105. data/rbi/revox/resources/call.rbi +86 -0
  106. data/rbi/revox/resources/users/me.rbi +33 -0
  107. data/rbi/revox/resources/users.rbi +15 -0
  108. data/rbi/revox/resources/voices.rbi +58 -0
  109. data/rbi/revox/version.rbi +5 -0
  110. data/sig/revox/client.rbs +32 -0
  111. data/sig/revox/errors.rbs +117 -0
  112. data/sig/revox/file_part.rbs +21 -0
  113. data/sig/revox/internal/transport/base_client.rbs +133 -0
  114. data/sig/revox/internal/transport/pooled_net_requester.rbs +48 -0
  115. data/sig/revox/internal/type/array_of.rbs +48 -0
  116. data/sig/revox/internal/type/base_model.rbs +102 -0
  117. data/sig/revox/internal/type/base_page.rbs +24 -0
  118. data/sig/revox/internal/type/boolean.rbs +26 -0
  119. data/sig/revox/internal/type/converter.rbs +79 -0
  120. data/sig/revox/internal/type/enum.rbs +32 -0
  121. data/sig/revox/internal/type/file_input.rbs +25 -0
  122. data/sig/revox/internal/type/hash_of.rbs +48 -0
  123. data/sig/revox/internal/type/request_parameters.rbs +17 -0
  124. data/sig/revox/internal/type/union.rbs +52 -0
  125. data/sig/revox/internal/type/unknown.rbs +26 -0
  126. data/sig/revox/internal/util.rbs +185 -0
  127. data/sig/revox/internal.rbs +9 -0
  128. data/sig/revox/models/assistant_create_params.rbs +413 -0
  129. data/sig/revox/models/assistant_create_response.rbs +461 -0
  130. data/sig/revox/models/assistant_delete_params.rbs +15 -0
  131. data/sig/revox/models/assistant_delete_response.rbs +13 -0
  132. data/sig/revox/models/assistant_list_params.rbs +15 -0
  133. data/sig/revox/models/assistant_list_response.rbs +461 -0
  134. data/sig/revox/models/assistant_retrieve_params.rbs +15 -0
  135. data/sig/revox/models/assistant_retrieve_response.rbs +446 -0
  136. data/sig/revox/models/assistant_update_params.rbs +417 -0
  137. data/sig/revox/models/assistant_update_response.rbs +461 -0
  138. data/sig/revox/models/call_create_params.rbs +507 -0
  139. data/sig/revox/models/call_create_response.rbs +551 -0
  140. data/sig/revox/models/call_list_params.rbs +28 -0
  141. data/sig/revox/models/call_list_response.rbs +171 -0
  142. data/sig/revox/models/call_retrieve_params.rbs +14 -0
  143. data/sig/revox/models/call_retrieve_response.rbs +551 -0
  144. data/sig/revox/models/users/me_retrieve_params.rbs +16 -0
  145. data/sig/revox/models/users/me_retrieve_response.rbs +70 -0
  146. data/sig/revox/models/users/me_update_params.rbs +28 -0
  147. data/sig/revox/models/users/me_update_response.rbs +70 -0
  148. data/sig/revox/models/voice_list_params.rbs +14 -0
  149. data/sig/revox/models/voice_list_response.rbs +83 -0
  150. data/sig/revox/models/voice_preview_params.rbs +49 -0
  151. data/sig/revox/models/voice_retrieve_params.rbs +35 -0
  152. data/sig/revox/models/voice_retrieve_response.rbs +32 -0
  153. data/sig/revox/models.rbs +25 -0
  154. data/sig/revox/request_options.rbs +34 -0
  155. data/sig/revox/resources/assistants.rbs +66 -0
  156. data/sig/revox/resources/call.rbs +31 -0
  157. data/sig/revox/resources/users/me.rbs +18 -0
  158. data/sig/revox/resources/users.rbs +9 -0
  159. data/sig/revox/resources/voices.rbs +24 -0
  160. data/sig/revox/version.rbs +3 -0
  161. metadata +232 -0
@@ -0,0 +1,29 @@
1
+ # typed: strong
2
+
3
+ module Revox
4
+ module Models
5
+ module Users
6
+ class MeRetrieveParams < Revox::Internal::Type::BaseModel
7
+ extend Revox::Internal::Type::RequestParameters::Converter
8
+ include Revox::Internal::Type::RequestParameters
9
+
10
+ OrHash =
11
+ T.type_alias do
12
+ T.any(Revox::Users::MeRetrieveParams, Revox::Internal::AnyHash)
13
+ end
14
+
15
+ sig do
16
+ params(request_options: Revox::RequestOptions::OrHash).returns(
17
+ T.attached_class
18
+ )
19
+ end
20
+ def self.new(request_options: {})
21
+ end
22
+
23
+ sig { override.returns({ request_options: Revox::RequestOptions }) }
24
+ def to_hash
25
+ end
26
+ end
27
+ end
28
+ end
29
+ end
@@ -0,0 +1,139 @@
1
+ # typed: strong
2
+
3
+ module Revox
4
+ module Models
5
+ module Users
6
+ class MeRetrieveResponse < Revox::Internal::Type::BaseModel
7
+ OrHash =
8
+ T.type_alias do
9
+ T.any(
10
+ Revox::Models::Users::MeRetrieveResponse,
11
+ Revox::Internal::AnyHash
12
+ )
13
+ end
14
+
15
+ # The current authenticated user.
16
+ sig { returns(Revox::Models::Users::MeRetrieveResponse::User) }
17
+ attr_reader :user
18
+
19
+ sig do
20
+ params(
21
+ user: Revox::Models::Users::MeRetrieveResponse::User::OrHash
22
+ ).void
23
+ end
24
+ attr_writer :user
25
+
26
+ sig do
27
+ params(
28
+ user: Revox::Models::Users::MeRetrieveResponse::User::OrHash
29
+ ).returns(T.attached_class)
30
+ end
31
+ def self.new(
32
+ # The current authenticated user.
33
+ user:
34
+ )
35
+ end
36
+
37
+ sig do
38
+ override.returns(
39
+ { user: Revox::Models::Users::MeRetrieveResponse::User }
40
+ )
41
+ end
42
+ def to_hash
43
+ end
44
+
45
+ class User < Revox::Internal::Type::BaseModel
46
+ OrHash =
47
+ T.type_alias do
48
+ T.any(
49
+ Revox::Models::Users::MeRetrieveResponse::User,
50
+ Revox::Internal::AnyHash
51
+ )
52
+ end
53
+
54
+ # The unique identifier of the user.
55
+ sig { returns(String) }
56
+ attr_accessor :id
57
+
58
+ # The time the user was created.
59
+ sig { returns(T.anything) }
60
+ attr_accessor :created_at
61
+
62
+ # The email address of the user.
63
+ sig { returns(String) }
64
+ attr_accessor :email
65
+
66
+ # The first name of the user.
67
+ sig { returns(T.nilable(String)) }
68
+ attr_accessor :first_name
69
+
70
+ # Whether the user has completed the onboarding tutorial.
71
+ sig { returns(T::Boolean) }
72
+ attr_accessor :has_completed_onboarding
73
+
74
+ # The last name of the user.
75
+ sig { returns(T.nilable(String)) }
76
+ attr_accessor :last_name
77
+
78
+ # The ID of the organization the user belongs to.
79
+ sig { returns(String) }
80
+ attr_accessor :organization_id
81
+
82
+ # The time the user was last updated.
83
+ sig { returns(T.anything) }
84
+ attr_accessor :updated_at
85
+
86
+ # The current authenticated user.
87
+ sig do
88
+ params(
89
+ id: String,
90
+ created_at: T.anything,
91
+ email: String,
92
+ first_name: T.nilable(String),
93
+ has_completed_onboarding: T::Boolean,
94
+ last_name: T.nilable(String),
95
+ organization_id: String,
96
+ updated_at: T.anything
97
+ ).returns(T.attached_class)
98
+ end
99
+ def self.new(
100
+ # The unique identifier of the user.
101
+ id:,
102
+ # The time the user was created.
103
+ created_at:,
104
+ # The email address of the user.
105
+ email:,
106
+ # The first name of the user.
107
+ first_name:,
108
+ # Whether the user has completed the onboarding tutorial.
109
+ has_completed_onboarding:,
110
+ # The last name of the user.
111
+ last_name:,
112
+ # The ID of the organization the user belongs to.
113
+ organization_id:,
114
+ # The time the user was last updated.
115
+ updated_at:
116
+ )
117
+ end
118
+
119
+ sig do
120
+ override.returns(
121
+ {
122
+ id: String,
123
+ created_at: T.anything,
124
+ email: String,
125
+ first_name: T.nilable(String),
126
+ has_completed_onboarding: T::Boolean,
127
+ last_name: T.nilable(String),
128
+ organization_id: String,
129
+ updated_at: T.anything
130
+ }
131
+ )
132
+ end
133
+ def to_hash
134
+ end
135
+ end
136
+ end
137
+ end
138
+ end
139
+ end
@@ -0,0 +1,43 @@
1
+ # typed: strong
2
+
3
+ module Revox
4
+ module Models
5
+ module Users
6
+ class MeUpdateParams < Revox::Internal::Type::BaseModel
7
+ extend Revox::Internal::Type::RequestParameters::Converter
8
+ include Revox::Internal::Type::RequestParameters
9
+
10
+ OrHash =
11
+ T.type_alias do
12
+ T.any(Revox::Users::MeUpdateParams, Revox::Internal::AnyHash)
13
+ end
14
+
15
+ sig { returns(T.nilable(T::Boolean)) }
16
+ attr_reader :has_completed_onboarding
17
+
18
+ sig { params(has_completed_onboarding: T::Boolean).void }
19
+ attr_writer :has_completed_onboarding
20
+
21
+ sig do
22
+ params(
23
+ has_completed_onboarding: T::Boolean,
24
+ request_options: Revox::RequestOptions::OrHash
25
+ ).returns(T.attached_class)
26
+ end
27
+ def self.new(has_completed_onboarding: nil, request_options: {})
28
+ end
29
+
30
+ sig do
31
+ override.returns(
32
+ {
33
+ has_completed_onboarding: T::Boolean,
34
+ request_options: Revox::RequestOptions
35
+ }
36
+ )
37
+ end
38
+ def to_hash
39
+ end
40
+ end
41
+ end
42
+ end
43
+ end
@@ -0,0 +1,139 @@
1
+ # typed: strong
2
+
3
+ module Revox
4
+ module Models
5
+ module Users
6
+ class MeUpdateResponse < Revox::Internal::Type::BaseModel
7
+ OrHash =
8
+ T.type_alias do
9
+ T.any(
10
+ Revox::Models::Users::MeUpdateResponse,
11
+ Revox::Internal::AnyHash
12
+ )
13
+ end
14
+
15
+ # The current authenticated user.
16
+ sig { returns(Revox::Models::Users::MeUpdateResponse::User) }
17
+ attr_reader :user
18
+
19
+ sig do
20
+ params(
21
+ user: Revox::Models::Users::MeUpdateResponse::User::OrHash
22
+ ).void
23
+ end
24
+ attr_writer :user
25
+
26
+ sig do
27
+ params(
28
+ user: Revox::Models::Users::MeUpdateResponse::User::OrHash
29
+ ).returns(T.attached_class)
30
+ end
31
+ def self.new(
32
+ # The current authenticated user.
33
+ user:
34
+ )
35
+ end
36
+
37
+ sig do
38
+ override.returns(
39
+ { user: Revox::Models::Users::MeUpdateResponse::User }
40
+ )
41
+ end
42
+ def to_hash
43
+ end
44
+
45
+ class User < Revox::Internal::Type::BaseModel
46
+ OrHash =
47
+ T.type_alias do
48
+ T.any(
49
+ Revox::Models::Users::MeUpdateResponse::User,
50
+ Revox::Internal::AnyHash
51
+ )
52
+ end
53
+
54
+ # The unique identifier of the user.
55
+ sig { returns(String) }
56
+ attr_accessor :id
57
+
58
+ # The time the user was created.
59
+ sig { returns(T.anything) }
60
+ attr_accessor :created_at
61
+
62
+ # The email address of the user.
63
+ sig { returns(String) }
64
+ attr_accessor :email
65
+
66
+ # The first name of the user.
67
+ sig { returns(T.nilable(String)) }
68
+ attr_accessor :first_name
69
+
70
+ # Whether the user has completed the onboarding tutorial.
71
+ sig { returns(T::Boolean) }
72
+ attr_accessor :has_completed_onboarding
73
+
74
+ # The last name of the user.
75
+ sig { returns(T.nilable(String)) }
76
+ attr_accessor :last_name
77
+
78
+ # The ID of the organization the user belongs to.
79
+ sig { returns(String) }
80
+ attr_accessor :organization_id
81
+
82
+ # The time the user was last updated.
83
+ sig { returns(T.anything) }
84
+ attr_accessor :updated_at
85
+
86
+ # The current authenticated user.
87
+ sig do
88
+ params(
89
+ id: String,
90
+ created_at: T.anything,
91
+ email: String,
92
+ first_name: T.nilable(String),
93
+ has_completed_onboarding: T::Boolean,
94
+ last_name: T.nilable(String),
95
+ organization_id: String,
96
+ updated_at: T.anything
97
+ ).returns(T.attached_class)
98
+ end
99
+ def self.new(
100
+ # The unique identifier of the user.
101
+ id:,
102
+ # The time the user was created.
103
+ created_at:,
104
+ # The email address of the user.
105
+ email:,
106
+ # The first name of the user.
107
+ first_name:,
108
+ # Whether the user has completed the onboarding tutorial.
109
+ has_completed_onboarding:,
110
+ # The last name of the user.
111
+ last_name:,
112
+ # The ID of the organization the user belongs to.
113
+ organization_id:,
114
+ # The time the user was last updated.
115
+ updated_at:
116
+ )
117
+ end
118
+
119
+ sig do
120
+ override.returns(
121
+ {
122
+ id: String,
123
+ created_at: T.anything,
124
+ email: String,
125
+ first_name: T.nilable(String),
126
+ has_completed_onboarding: T::Boolean,
127
+ last_name: T.nilable(String),
128
+ organization_id: String,
129
+ updated_at: T.anything
130
+ }
131
+ )
132
+ end
133
+ def to_hash
134
+ end
135
+ end
136
+ end
137
+ end
138
+ end
139
+ end
@@ -0,0 +1,25 @@
1
+ # typed: strong
2
+
3
+ module Revox
4
+ module Models
5
+ class VoiceListParams < Revox::Internal::Type::BaseModel
6
+ extend Revox::Internal::Type::RequestParameters::Converter
7
+ include Revox::Internal::Type::RequestParameters
8
+
9
+ OrHash =
10
+ T.type_alias { T.any(Revox::VoiceListParams, Revox::Internal::AnyHash) }
11
+
12
+ sig do
13
+ params(request_options: Revox::RequestOptions::OrHash).returns(
14
+ T.attached_class
15
+ )
16
+ end
17
+ def self.new(request_options: {})
18
+ end
19
+
20
+ sig { override.returns({ request_options: Revox::RequestOptions }) }
21
+ def to_hash
22
+ end
23
+ end
24
+ end
25
+ end
@@ -0,0 +1,204 @@
1
+ # typed: strong
2
+
3
+ module Revox
4
+ module Models
5
+ class VoiceListResponse < Revox::Internal::Type::BaseModel
6
+ OrHash =
7
+ T.type_alias do
8
+ T.any(Revox::Models::VoiceListResponse, Revox::Internal::AnyHash)
9
+ end
10
+
11
+ sig { returns(T::Array[Revox::Models::VoiceListResponse::Voice]) }
12
+ attr_accessor :voices
13
+
14
+ sig do
15
+ params(
16
+ voices: T::Array[Revox::Models::VoiceListResponse::Voice::OrHash]
17
+ ).returns(T.attached_class)
18
+ end
19
+ def self.new(voices:)
20
+ end
21
+
22
+ sig do
23
+ override.returns(
24
+ { voices: T::Array[Revox::Models::VoiceListResponse::Voice] }
25
+ )
26
+ end
27
+ def to_hash
28
+ end
29
+
30
+ class Voice < Revox::Internal::Type::BaseModel
31
+ OrHash =
32
+ T.type_alias do
33
+ T.any(
34
+ Revox::Models::VoiceListResponse::Voice,
35
+ Revox::Internal::AnyHash
36
+ )
37
+ end
38
+
39
+ # The ID of the voice.
40
+ sig { returns(String) }
41
+ attr_accessor :id
42
+
43
+ # The description of the voice.
44
+ sig { returns(String) }
45
+ attr_accessor :description
46
+
47
+ # The language of the voice.
48
+ sig do
49
+ returns(
50
+ Revox::Models::VoiceListResponse::Voice::Language::TaggedSymbol
51
+ )
52
+ end
53
+ attr_accessor :language
54
+
55
+ # The name of the voice.
56
+ sig { returns(String) }
57
+ attr_accessor :name
58
+
59
+ # The provider of the voice.
60
+ sig do
61
+ returns(
62
+ Revox::Models::VoiceListResponse::Voice::Provider::TaggedSymbol
63
+ )
64
+ end
65
+ attr_accessor :provider
66
+
67
+ sig do
68
+ params(
69
+ id: String,
70
+ description: String,
71
+ language:
72
+ Revox::Models::VoiceListResponse::Voice::Language::OrSymbol,
73
+ name: String,
74
+ provider:
75
+ Revox::Models::VoiceListResponse::Voice::Provider::OrSymbol
76
+ ).returns(T.attached_class)
77
+ end
78
+ def self.new(
79
+ # The ID of the voice.
80
+ id:,
81
+ # The description of the voice.
82
+ description:,
83
+ # The language of the voice.
84
+ language:,
85
+ # The name of the voice.
86
+ name:,
87
+ # The provider of the voice.
88
+ provider:
89
+ )
90
+ end
91
+
92
+ sig do
93
+ override.returns(
94
+ {
95
+ id: String,
96
+ description: String,
97
+ language:
98
+ Revox::Models::VoiceListResponse::Voice::Language::TaggedSymbol,
99
+ name: String,
100
+ provider:
101
+ Revox::Models::VoiceListResponse::Voice::Provider::TaggedSymbol
102
+ }
103
+ )
104
+ end
105
+ def to_hash
106
+ end
107
+
108
+ # The language of the voice.
109
+ module Language
110
+ extend Revox::Internal::Type::Enum
111
+
112
+ TaggedSymbol =
113
+ T.type_alias do
114
+ T.all(Symbol, Revox::Models::VoiceListResponse::Voice::Language)
115
+ end
116
+ OrSymbol = T.type_alias { T.any(Symbol, String) }
117
+
118
+ EN =
119
+ T.let(
120
+ :en,
121
+ Revox::Models::VoiceListResponse::Voice::Language::TaggedSymbol
122
+ )
123
+ FR =
124
+ T.let(
125
+ :fr,
126
+ Revox::Models::VoiceListResponse::Voice::Language::TaggedSymbol
127
+ )
128
+ ES =
129
+ T.let(
130
+ :es,
131
+ Revox::Models::VoiceListResponse::Voice::Language::TaggedSymbol
132
+ )
133
+ DE =
134
+ T.let(
135
+ :de,
136
+ Revox::Models::VoiceListResponse::Voice::Language::TaggedSymbol
137
+ )
138
+ IT =
139
+ T.let(
140
+ :it,
141
+ Revox::Models::VoiceListResponse::Voice::Language::TaggedSymbol
142
+ )
143
+ PT =
144
+ T.let(
145
+ :pt,
146
+ Revox::Models::VoiceListResponse::Voice::Language::TaggedSymbol
147
+ )
148
+ RU =
149
+ T.let(
150
+ :ru,
151
+ Revox::Models::VoiceListResponse::Voice::Language::TaggedSymbol
152
+ )
153
+ ZH =
154
+ T.let(
155
+ :zh,
156
+ Revox::Models::VoiceListResponse::Voice::Language::TaggedSymbol
157
+ )
158
+
159
+ sig do
160
+ override.returns(
161
+ T::Array[
162
+ Revox::Models::VoiceListResponse::Voice::Language::TaggedSymbol
163
+ ]
164
+ )
165
+ end
166
+ def self.values
167
+ end
168
+ end
169
+
170
+ # The provider of the voice.
171
+ module Provider
172
+ extend Revox::Internal::Type::Enum
173
+
174
+ TaggedSymbol =
175
+ T.type_alias do
176
+ T.all(Symbol, Revox::Models::VoiceListResponse::Voice::Provider)
177
+ end
178
+ OrSymbol = T.type_alias { T.any(Symbol, String) }
179
+
180
+ CARTESIA =
181
+ T.let(
182
+ :cartesia,
183
+ Revox::Models::VoiceListResponse::Voice::Provider::TaggedSymbol
184
+ )
185
+ ELEVENLABS =
186
+ T.let(
187
+ :elevenlabs,
188
+ Revox::Models::VoiceListResponse::Voice::Provider::TaggedSymbol
189
+ )
190
+
191
+ sig do
192
+ override.returns(
193
+ T::Array[
194
+ Revox::Models::VoiceListResponse::Voice::Provider::TaggedSymbol
195
+ ]
196
+ )
197
+ end
198
+ def self.values
199
+ end
200
+ end
201
+ end
202
+ end
203
+ end
204
+ end
@@ -0,0 +1,84 @@
1
+ # typed: strong
2
+
3
+ module Revox
4
+ module Models
5
+ class VoicePreviewParams < 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::VoicePreviewParams, Revox::Internal::AnyHash)
12
+ end
13
+
14
+ # The provider to use for the preview.
15
+ sig { returns(Revox::VoicePreviewParams::Provider::OrSymbol) }
16
+ attr_accessor :provider
17
+
18
+ # The voice ID to generate a preview for.
19
+ sig { returns(String) }
20
+ attr_accessor :voice_id
21
+
22
+ # The text to generate a preview for.
23
+ sig { returns(T.nilable(String)) }
24
+ attr_reader :text
25
+
26
+ sig { params(text: String).void }
27
+ attr_writer :text
28
+
29
+ sig do
30
+ params(
31
+ provider: Revox::VoicePreviewParams::Provider::OrSymbol,
32
+ voice_id: String,
33
+ text: String,
34
+ request_options: Revox::RequestOptions::OrHash
35
+ ).returns(T.attached_class)
36
+ end
37
+ def self.new(
38
+ # The provider to use for the preview.
39
+ provider:,
40
+ # The voice ID to generate a preview for.
41
+ voice_id:,
42
+ # The text to generate a preview for.
43
+ text: nil,
44
+ request_options: {}
45
+ )
46
+ end
47
+
48
+ sig do
49
+ override.returns(
50
+ {
51
+ provider: Revox::VoicePreviewParams::Provider::OrSymbol,
52
+ voice_id: String,
53
+ text: String,
54
+ request_options: Revox::RequestOptions
55
+ }
56
+ )
57
+ end
58
+ def to_hash
59
+ end
60
+
61
+ # The provider to use for the preview.
62
+ module Provider
63
+ extend Revox::Internal::Type::Enum
64
+
65
+ TaggedSymbol =
66
+ T.type_alias { T.all(Symbol, Revox::VoicePreviewParams::Provider) }
67
+ OrSymbol = T.type_alias { T.any(Symbol, String) }
68
+
69
+ CARTESIA =
70
+ T.let(:cartesia, Revox::VoicePreviewParams::Provider::TaggedSymbol)
71
+ ELEVENLABS =
72
+ T.let(:elevenlabs, Revox::VoicePreviewParams::Provider::TaggedSymbol)
73
+
74
+ sig do
75
+ override.returns(
76
+ T::Array[Revox::VoicePreviewParams::Provider::TaggedSymbol]
77
+ )
78
+ end
79
+ def self.values
80
+ end
81
+ end
82
+ end
83
+ end
84
+ end