revox 0.2.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 (172) hide show
  1. checksums.yaml +4 -4
  2. data/CHANGELOG.md +10 -0
  3. data/README.md +1 -1
  4. data/lib/revox/client.rb +8 -0
  5. data/lib/revox/internal/type/base_model.rb +3 -3
  6. data/lib/revox/models/assistant_clone_params.rb +20 -0
  7. data/lib/revox/models/assistant_clone_response.rb +1594 -0
  8. data/lib/revox/models/auth_status_retrieve_params.rb +14 -0
  9. data/lib/revox/models/auth_status_retrieve_response.rb +17 -0
  10. data/lib/revox/models/call_cancel_params.rb +20 -0
  11. data/lib/revox/models/call_cancel_response.rb +16 -0
  12. data/lib/revox/models/call_create_response.rb +11 -1
  13. data/lib/revox/models/call_export_params.rb +205 -0
  14. data/lib/revox/models/call_export_response.rb +22 -0
  15. data/lib/revox/models/call_pause_params.rb +20 -0
  16. data/lib/revox/models/call_pause_response.rb +16 -0
  17. data/lib/revox/models/call_phone_history_params.rb +14 -0
  18. data/lib/revox/models/call_phone_history_response.rb +98 -0
  19. data/lib/revox/models/call_resume_params.rb +20 -0
  20. data/lib/revox/models/call_resume_response.rb +16 -0
  21. data/lib/revox/models/call_retrieve_response.rb +11 -1
  22. data/lib/revox/models/call_search_params.rb +171 -0
  23. data/lib/revox/models/call_search_response.rb +3114 -0
  24. data/lib/revox/models/campaign_get_rows_response.rb +11 -1
  25. data/lib/revox/models/campaign_launch_params.rb +20 -0
  26. data/lib/revox/models/campaign_launch_response.rb +2030 -0
  27. data/lib/revox/models/campaign_pause_params.rb +20 -0
  28. data/lib/revox/models/campaign_pause_response.rb +16 -0
  29. data/lib/revox/models/campaign_resume_params.rb +20 -0
  30. data/lib/revox/models/campaign_resume_response.rb +16 -0
  31. data/lib/revox/models/campaign_statistics_params.rb +20 -0
  32. data/lib/revox/models/campaign_statistics_response.rb +486 -0
  33. data/lib/revox/models/campaign_update_params.rb +234 -0
  34. data/lib/revox/models/campaign_update_response.rb +2030 -0
  35. data/lib/revox/models/phone_number_delete_params.rb +20 -0
  36. data/lib/revox/models/phone_number_delete_response.rb +16 -0
  37. data/lib/revox/models/phone_number_list_params.rb +14 -0
  38. data/lib/revox/models/phone_number_list_response.rb +1777 -0
  39. data/lib/revox/models/phone_number_update_params.rb +32 -0
  40. data/lib/revox/models/phone_number_update_response.rb +1777 -0
  41. data/lib/revox/models/user_retrieve_params.rb +14 -0
  42. data/lib/revox/models/user_retrieve_response.rb +99 -0
  43. data/lib/revox/models/voice_clone_params.rb +78 -0
  44. data/lib/revox/models/voice_clone_response.rb +40 -0
  45. data/lib/revox/models/voice_delete_params.rb +20 -0
  46. data/lib/revox/models/voice_delete_response.rb +16 -0
  47. data/lib/revox/models.rb +37 -1
  48. data/lib/revox/resources/assistants.rb +21 -0
  49. data/lib/revox/resources/auth_status.rb +32 -0
  50. data/lib/revox/resources/call.rb +145 -0
  51. data/lib/revox/resources/campaigns.rb +131 -0
  52. data/lib/revox/resources/phone_numbers.rb +74 -0
  53. data/lib/revox/resources/users.rb +17 -3
  54. data/lib/revox/resources/voices.rb +50 -0
  55. data/lib/revox/version.rb +1 -1
  56. data/lib/revox.rb +40 -5
  57. data/rbi/revox/client.rbi +6 -0
  58. data/rbi/revox/models/assistant_clone_params.rbi +33 -0
  59. data/rbi/revox/models/assistant_clone_response.rbi +3341 -0
  60. data/rbi/revox/models/auth_status_retrieve_params.rbi +27 -0
  61. data/rbi/revox/models/auth_status_retrieve_response.rbi +30 -0
  62. data/rbi/revox/models/call_cancel_params.rbi +33 -0
  63. data/rbi/revox/models/call_cancel_response.rbi +23 -0
  64. data/rbi/revox/models/call_create_response.rbi +12 -0
  65. data/rbi/revox/models/call_export_params.rbi +456 -0
  66. data/rbi/revox/models/call_export_response.rbi +26 -0
  67. data/rbi/revox/models/call_pause_params.rbi +31 -0
  68. data/rbi/revox/models/call_pause_response.rbi +23 -0
  69. data/rbi/revox/models/call_phone_history_params.rbi +27 -0
  70. data/rbi/revox/models/call_phone_history_response.rbi +224 -0
  71. data/rbi/revox/models/call_resume_params.rbi +33 -0
  72. data/rbi/revox/models/call_resume_response.rbi +23 -0
  73. data/rbi/revox/models/call_retrieve_response.rbi +12 -0
  74. data/rbi/revox/models/call_search_params.rbi +288 -0
  75. data/rbi/revox/models/call_search_response.rbi +6593 -0
  76. data/rbi/revox/models/campaign_get_rows_response.rbi +12 -0
  77. data/rbi/revox/models/campaign_launch_params.rbi +33 -0
  78. data/rbi/revox/models/campaign_launch_response.rbi +4170 -0
  79. data/rbi/revox/models/campaign_pause_params.rbi +33 -0
  80. data/rbi/revox/models/campaign_pause_response.rbi +23 -0
  81. data/rbi/revox/models/campaign_resume_params.rbi +33 -0
  82. data/rbi/revox/models/campaign_resume_response.rbi +23 -0
  83. data/rbi/revox/models/campaign_statistics_params.rbi +33 -0
  84. data/rbi/revox/models/campaign_statistics_response.rbi +1011 -0
  85. data/rbi/revox/models/campaign_update_params.rbi +431 -0
  86. data/rbi/revox/models/campaign_update_response.rbi +4170 -0
  87. data/rbi/revox/models/phone_number_delete_params.rbi +33 -0
  88. data/rbi/revox/models/phone_number_delete_response.rbi +26 -0
  89. data/rbi/revox/models/phone_number_list_params.rbi +27 -0
  90. data/rbi/revox/models/phone_number_list_response.rbi +3680 -0
  91. data/rbi/revox/models/phone_number_update_params.rbi +53 -0
  92. data/rbi/revox/models/phone_number_update_response.rbi +3683 -0
  93. data/rbi/revox/models/user_retrieve_params.rbi +27 -0
  94. data/rbi/revox/models/user_retrieve_response.rbi +140 -0
  95. data/rbi/revox/models/voice_clone_params.rbi +141 -0
  96. data/rbi/revox/models/voice_clone_response.rbi +53 -0
  97. data/rbi/revox/models/voice_delete_params.rbi +33 -0
  98. data/rbi/revox/models/voice_delete_response.rbi +23 -0
  99. data/rbi/revox/models.rbi +37 -1
  100. data/rbi/revox/resources/assistants.rbi +12 -0
  101. data/rbi/revox/resources/auth_status.rbi +21 -0
  102. data/rbi/revox/resources/call.rbi +107 -0
  103. data/rbi/revox/resources/campaigns.rbi +94 -0
  104. data/rbi/revox/resources/phone_numbers.rbi +43 -0
  105. data/rbi/revox/resources/users.rbi +8 -2
  106. data/rbi/revox/resources/voices.rbi +39 -0
  107. data/sig/revox/client.rbs +4 -0
  108. data/sig/revox/models/assistant_clone_params.rbs +20 -0
  109. data/sig/revox/models/assistant_clone_response.rbs +1318 -0
  110. data/sig/revox/models/auth_status_retrieve_params.rbs +15 -0
  111. data/sig/revox/models/auth_status_retrieve_response.rbs +13 -0
  112. data/sig/revox/models/call_cancel_params.rbs +20 -0
  113. data/sig/revox/models/call_cancel_response.rbs +13 -0
  114. data/sig/revox/models/call_create_response.rbs +5 -0
  115. data/sig/revox/models/call_export_params.rbs +234 -0
  116. data/sig/revox/models/call_export_response.rbs +15 -0
  117. data/sig/revox/models/call_pause_params.rbs +20 -0
  118. data/sig/revox/models/call_pause_response.rbs +13 -0
  119. data/sig/revox/models/call_phone_history_params.rbs +15 -0
  120. data/sig/revox/models/call_phone_history_response.rbs +102 -0
  121. data/sig/revox/models/call_resume_params.rbs +20 -0
  122. data/sig/revox/models/call_resume_response.rbs +13 -0
  123. data/sig/revox/models/call_retrieve_response.rbs +5 -0
  124. data/sig/revox/models/call_search_params.rbs +198 -0
  125. data/sig/revox/models/call_search_response.rbs +2654 -0
  126. data/sig/revox/models/campaign_get_rows_response.rbs +5 -0
  127. data/sig/revox/models/campaign_launch_params.rbs +20 -0
  128. data/sig/revox/models/campaign_launch_response.rbs +1694 -0
  129. data/sig/revox/models/campaign_pause_params.rbs +20 -0
  130. data/sig/revox/models/campaign_pause_response.rbs +13 -0
  131. data/sig/revox/models/campaign_resume_params.rbs +20 -0
  132. data/sig/revox/models/campaign_resume_response.rbs +13 -0
  133. data/sig/revox/models/campaign_statistics_params.rbs +20 -0
  134. data/sig/revox/models/campaign_statistics_response.rbs +458 -0
  135. data/sig/revox/models/campaign_update_params.rbs +203 -0
  136. data/sig/revox/models/campaign_update_response.rbs +1694 -0
  137. data/sig/revox/models/phone_number_delete_params.rbs +20 -0
  138. data/sig/revox/models/phone_number_delete_response.rbs +13 -0
  139. data/sig/revox/models/phone_number_list_params.rbs +15 -0
  140. data/sig/revox/models/phone_number_list_response.rbs +1462 -0
  141. data/sig/revox/models/phone_number_update_params.rbs +32 -0
  142. data/sig/revox/models/phone_number_update_response.rbs +1460 -0
  143. data/sig/revox/models/user_retrieve_params.rbs +14 -0
  144. data/sig/revox/models/user_retrieve_response.rbs +71 -0
  145. data/sig/revox/models/voice_clone_params.rbs +79 -0
  146. data/sig/revox/models/voice_clone_response.rbs +40 -0
  147. data/sig/revox/models/voice_delete_params.rbs +20 -0
  148. data/sig/revox/models/voice_delete_response.rbs +13 -0
  149. data/sig/revox/models.rbs +37 -1
  150. data/sig/revox/resources/assistants.rbs +5 -0
  151. data/sig/revox/resources/auth_status.rbs +11 -0
  152. data/sig/revox/resources/call.rbs +45 -0
  153. data/sig/revox/resources/campaigns.rbs +33 -0
  154. data/sig/revox/resources/phone_numbers.rbs +23 -0
  155. data/sig/revox/resources/users.rbs +3 -1
  156. data/sig/revox/resources/voices.rbs +13 -0
  157. metadata +121 -16
  158. data/lib/revox/models/users/me_retrieve_params.rb +0 -16
  159. data/lib/revox/models/users/me_retrieve_response.rb +0 -101
  160. data/lib/revox/models/users/me_update_params.rb +0 -22
  161. data/lib/revox/models/users/me_update_response.rb +0 -101
  162. data/lib/revox/resources/users/me.rb +0 -55
  163. data/rbi/revox/models/users/me_retrieve_params.rbi +0 -29
  164. data/rbi/revox/models/users/me_retrieve_response.rbi +0 -149
  165. data/rbi/revox/models/users/me_update_params.rbi +0 -43
  166. data/rbi/revox/models/users/me_update_response.rbi +0 -149
  167. data/rbi/revox/resources/users/me.rbi +0 -33
  168. data/sig/revox/models/users/me_retrieve_params.rbs +0 -16
  169. data/sig/revox/models/users/me_retrieve_response.rbs +0 -75
  170. data/sig/revox/models/users/me_update_params.rbs +0 -28
  171. data/sig/revox/models/users/me_update_response.rbs +0 -75
  172. 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
data/rbi/revox/models.rbi CHANGED
@@ -1,6 +1,8 @@
1
1
  # typed: strong
2
2
 
3
3
  module Revox
4
+ AssistantCloneParams = Revox::Models::AssistantCloneParams
5
+
4
6
  AssistantCreateParams = Revox::Models::AssistantCreateParams
5
7
 
6
8
  AssistantDeleteParams = Revox::Models::AssistantDeleteParams
@@ -11,10 +13,24 @@ module Revox
11
13
 
12
14
  AssistantUpdateParams = Revox::Models::AssistantUpdateParams
13
15
 
16
+ AuthStatusRetrieveParams = Revox::Models::AuthStatusRetrieveParams
17
+
18
+ CallCancelParams = Revox::Models::CallCancelParams
19
+
14
20
  CallCreateParams = Revox::Models::CallCreateParams
15
21
 
22
+ CallExportParams = Revox::Models::CallExportParams
23
+
24
+ CallPauseParams = Revox::Models::CallPauseParams
25
+
26
+ CallPhoneHistoryParams = Revox::Models::CallPhoneHistoryParams
27
+
28
+ CallResumeParams = Revox::Models::CallResumeParams
29
+
16
30
  CallRetrieveParams = Revox::Models::CallRetrieveParams
17
31
 
32
+ CallSearchParams = Revox::Models::CallSearchParams
33
+
18
34
  CampaignCancelParams = Revox::Models::CampaignCancelParams
19
35
 
20
36
  CampaignCreateParams = Revox::Models::CampaignCreateParams
@@ -25,11 +41,31 @@ module Revox
25
41
 
26
42
  CampaignGetRowsParams = Revox::Models::CampaignGetRowsParams
27
43
 
44
+ CampaignLaunchParams = Revox::Models::CampaignLaunchParams
45
+
28
46
  CampaignListParams = Revox::Models::CampaignListParams
29
47
 
48
+ CampaignPauseParams = Revox::Models::CampaignPauseParams
49
+
50
+ CampaignResumeParams = Revox::Models::CampaignResumeParams
51
+
30
52
  CampaignRetrieveParams = Revox::Models::CampaignRetrieveParams
31
53
 
32
- Users = Revox::Models::Users
54
+ CampaignStatisticsParams = Revox::Models::CampaignStatisticsParams
55
+
56
+ CampaignUpdateParams = Revox::Models::CampaignUpdateParams
57
+
58
+ PhoneNumberDeleteParams = Revox::Models::PhoneNumberDeleteParams
59
+
60
+ PhoneNumberListParams = Revox::Models::PhoneNumberListParams
61
+
62
+ PhoneNumberUpdateParams = Revox::Models::PhoneNumberUpdateParams
63
+
64
+ UserRetrieveParams = Revox::Models::UserRetrieveParams
65
+
66
+ VoiceCloneParams = Revox::Models::VoiceCloneParams
67
+
68
+ VoiceDeleteParams = Revox::Models::VoiceDeleteParams
33
69
 
34
70
  VoiceListParams = Revox::Models::VoiceListParams
35
71
 
@@ -492,6 +492,18 @@ module Revox
492
492
  def delete(id, request_options: {})
493
493
  end
494
494
 
495
+ # Create a full copy of an existing assistant, including every configuration field
496
+ # and FAQ items. The new assistant has the same configuration as the source, with
497
+ # the name suffixed by "(Copy)" and a freshly generated API key.
498
+ sig do
499
+ params(
500
+ id: String,
501
+ request_options: Revox::RequestOptions::OrHash
502
+ ).returns(Revox::Models::AssistantCloneResponse)
503
+ end
504
+ def clone_(id, request_options: {})
505
+ end
506
+
495
507
  # @api private
496
508
  sig { params(client: Revox::Client).returns(T.attached_class) }
497
509
  def self.new(client:)
@@ -0,0 +1,21 @@
1
+ # typed: strong
2
+
3
+ module Revox
4
+ module Resources
5
+ class AuthStatus
6
+ # Check if your API key is still valid.
7
+ sig do
8
+ params(request_options: Revox::RequestOptions::OrHash).returns(
9
+ Revox::Models::AuthStatusRetrieveResponse
10
+ )
11
+ end
12
+ def retrieve(request_options: {})
13
+ end
14
+
15
+ # @api private
16
+ sig { params(client: Revox::Client).returns(T.attached_class) }
17
+ def self.new(client:)
18
+ end
19
+ end
20
+ end
21
+ end
@@ -68,6 +68,113 @@ module Revox
68
68
  )
69
69
  end
70
70
 
71
+ # Cancel a running or scheduled call.
72
+ sig do
73
+ params(
74
+ id: String,
75
+ request_options: Revox::RequestOptions::OrHash
76
+ ).returns(Revox::Models::CallCancelResponse)
77
+ end
78
+ def cancel(id, request_options: {})
79
+ end
80
+
81
+ # Export a list of call attempts as a CSV file.
82
+ sig do
83
+ params(
84
+ filters: Revox::CallExportParams::Filters::OrHash,
85
+ include_metadata: T::Boolean,
86
+ include_structured_output_fields: T::Boolean,
87
+ request_options: Revox::RequestOptions::OrHash
88
+ ).returns(Revox::Models::CallExportResponse)
89
+ end
90
+ def export(
91
+ filters:,
92
+ # Whether to include the metadata in the CSV file. These are the fields you
93
+ # (optionally) attached when placing the call.
94
+ include_metadata: nil,
95
+ # Whether to include the structured output fields in the CSV file. These are
96
+ # generated by our AI agent during call analysis phase.
97
+ include_structured_output_fields: nil,
98
+ request_options: {}
99
+ )
100
+ end
101
+
102
+ # Pause a call's retry loop. The current in-progress attempt (if any) will finish,
103
+ # but no new attempts will be started until the call is resumed.
104
+ sig do
105
+ params(
106
+ id: String,
107
+ request_options: Revox::RequestOptions::OrHash
108
+ ).returns(Revox::Models::CallPauseResponse)
109
+ end
110
+ def pause(id, request_options: {})
111
+ end
112
+
113
+ # Returns a map of phone numbers to the number of calls and associated campaigns
114
+ # across the entire organization. Useful for detecting contacts that have already
115
+ # been reached.
116
+ sig do
117
+ params(request_options: Revox::RequestOptions::OrHash).returns(
118
+ Revox::Models::CallPhoneHistoryResponse
119
+ )
120
+ end
121
+ def phone_history(request_options: {})
122
+ end
123
+
124
+ # Resume a previously paused call. The retry loop will continue from where it left
125
+ # off.
126
+ sig do
127
+ params(
128
+ id: String,
129
+ request_options: Revox::RequestOptions::OrHash
130
+ ).returns(Revox::Models::CallResumeResponse)
131
+ end
132
+ def resume(id, request_options: {})
133
+ end
134
+
135
+ # Retrieve a paginated list of call attempts. Each entry includes the call status,
136
+ # phone number, assistant used, transcript, and timestamps. Use the page and
137
+ # page_size query parameters to navigate through results.
138
+ sig do
139
+ params(
140
+ assignee_ids: T::Array[String],
141
+ assistant_ids: T::Array[String],
142
+ campaign_ids: T::Array[String],
143
+ directions: T::Array[Revox::CallSearchParams::Direction::OrSymbol],
144
+ from_phone_numbers: T::Array[String],
145
+ outcomes: T::Array[Revox::CallSearchParams::Outcome::OrSymbol],
146
+ page: Integer,
147
+ page_size: Integer,
148
+ results: T::Array[Revox::CallSearchParams::Result::OrSymbol],
149
+ statuses: T::Array[Revox::CallSearchParams::Status::OrSymbol],
150
+ call_ids: T::Array[String],
151
+ query: String,
152
+ sort_by: String,
153
+ sort_direction: Revox::CallSearchParams::SortDirection::OrSymbol,
154
+ to_phone_number: String,
155
+ request_options: Revox::RequestOptions::OrHash
156
+ ).returns(Revox::Models::CallSearchResponse)
157
+ end
158
+ def search(
159
+ assignee_ids:,
160
+ assistant_ids:,
161
+ campaign_ids:,
162
+ directions:,
163
+ from_phone_numbers:,
164
+ outcomes:,
165
+ page:,
166
+ page_size:,
167
+ results:,
168
+ statuses:,
169
+ call_ids: nil,
170
+ query: nil,
171
+ sort_by: nil,
172
+ sort_direction: nil,
173
+ to_phone_number: nil,
174
+ request_options: {}
175
+ )
176
+ end
177
+
71
178
  # @api private
72
179
  sig { params(client: Revox::Client).returns(T.attached_class) }
73
180
  def self.new(client:)