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.
- checksums.yaml +4 -4
- data/CHANGELOG.md +81 -0
- data/README.md +39 -14
- data/lib/revox/client.rb +23 -1
- data/lib/revox/internal/transport/base_client.rb +5 -0
- data/lib/revox/internal/type/base_model.rb +3 -3
- data/lib/revox/internal/util.rb +22 -7
- data/lib/revox/models/assistant_clone_params.rb +20 -0
- data/lib/revox/models/assistant_clone_response.rb +1594 -0
- data/lib/revox/models/assistant_create_params.rb +1038 -13
- data/lib/revox/models/assistant_create_response.rb +1071 -11
- data/lib/revox/models/assistant_list_response.rb +1070 -11
- data/lib/revox/models/assistant_retrieve_response.rb +1066 -11
- data/lib/revox/models/assistant_update_params.rb +1038 -13
- data/lib/revox/models/assistant_update_response.rb +1097 -12
- data/lib/revox/models/auth_status_retrieve_params.rb +14 -0
- data/lib/revox/models/auth_status_retrieve_response.rb +17 -0
- data/lib/revox/models/call_cancel_params.rb +20 -0
- data/lib/revox/models/call_cancel_response.rb +16 -0
- data/lib/revox/models/call_create_params.rb +1065 -13
- data/lib/revox/models/call_create_response.rb +1820 -98
- data/lib/revox/models/call_export_params.rb +205 -0
- data/lib/revox/models/call_export_response.rb +22 -0
- data/lib/revox/models/call_pause_params.rb +20 -0
- data/lib/revox/models/call_pause_response.rb +16 -0
- data/lib/revox/models/call_phone_history_params.rb +14 -0
- data/lib/revox/models/call_phone_history_response.rb +98 -0
- data/lib/revox/models/call_resume_params.rb +20 -0
- data/lib/revox/models/call_resume_response.rb +16 -0
- data/lib/revox/models/call_retrieve_response.rb +1822 -98
- data/lib/revox/models/call_search_params.rb +171 -0
- data/lib/revox/models/call_search_response.rb +3114 -0
- data/lib/revox/models/campaign_create_params.rb +67 -2
- data/lib/revox/models/campaign_create_response.rb +1314 -59
- data/lib/revox/models/campaign_get_rows_params.rb +1 -46
- data/lib/revox/models/campaign_get_rows_response.rb +1833 -115
- data/lib/revox/models/campaign_launch_params.rb +20 -0
- data/lib/revox/models/campaign_launch_response.rb +2030 -0
- data/lib/revox/models/campaign_list_response.rb +1312 -59
- data/lib/revox/models/campaign_pause_params.rb +20 -0
- data/lib/revox/models/campaign_pause_response.rb +16 -0
- data/lib/revox/models/campaign_resume_params.rb +20 -0
- data/lib/revox/models/campaign_resume_response.rb +16 -0
- data/lib/revox/models/campaign_retrieve_response.rb +1312 -56
- data/lib/revox/models/campaign_statistics_params.rb +20 -0
- data/lib/revox/models/campaign_statistics_response.rb +486 -0
- data/lib/revox/models/campaign_update_params.rb +234 -0
- data/lib/revox/models/campaign_update_response.rb +2030 -0
- data/lib/revox/models/phone_number_delete_params.rb +20 -0
- data/lib/revox/models/phone_number_delete_response.rb +16 -0
- data/lib/revox/models/phone_number_list_params.rb +14 -0
- data/lib/revox/models/phone_number_list_response.rb +1777 -0
- data/lib/revox/models/phone_number_update_params.rb +32 -0
- data/lib/revox/models/phone_number_update_response.rb +1777 -0
- data/lib/revox/models/user_retrieve_params.rb +14 -0
- data/lib/revox/models/user_retrieve_response.rb +99 -0
- data/lib/revox/models/voice_clone_params.rb +78 -0
- data/lib/revox/models/voice_clone_response.rb +40 -0
- data/lib/revox/models/voice_delete_params.rb +20 -0
- data/lib/revox/models/voice_delete_response.rb +16 -0
- data/lib/revox/models/voice_list_response.rb +55 -1
- data/lib/revox/models/voice_preview_params.rb +49 -1
- data/lib/revox/models.rb +36 -2
- data/lib/revox/resources/assistants.rb +137 -8
- data/lib/revox/resources/auth_status.rb +32 -0
- data/lib/revox/resources/call.rb +131 -15
- data/lib/revox/resources/campaigns.rb +143 -17
- data/lib/revox/resources/phone_numbers.rb +74 -0
- data/lib/revox/resources/users.rb +17 -3
- data/lib/revox/resources/voices.rb +66 -10
- data/lib/revox/version.rb +1 -1
- data/lib/revox.rb +40 -7
- data/rbi/revox/client.rbi +6 -0
- data/rbi/revox/internal/util.rbi +8 -0
- data/rbi/revox/models/assistant_clone_params.rbi +33 -0
- data/rbi/revox/models/assistant_clone_response.rbi +3341 -0
- data/rbi/revox/models/assistant_create_params.rbi +2138 -103
- data/rbi/revox/models/assistant_create_response.rbi +2454 -199
- data/rbi/revox/models/assistant_list_response.rbi +2448 -195
- data/rbi/revox/models/assistant_retrieve_response.rbi +2401 -210
- data/rbi/revox/models/assistant_update_params.rbi +2138 -103
- data/rbi/revox/models/assistant_update_response.rbi +2504 -198
- data/rbi/revox/models/auth_status_retrieve_params.rbi +27 -0
- data/rbi/revox/models/auth_status_retrieve_response.rbi +30 -0
- data/rbi/revox/models/call_cancel_params.rbi +33 -0
- data/rbi/revox/models/call_cancel_response.rbi +23 -0
- data/rbi/revox/models/call_create_params.rbi +2382 -225
- data/rbi/revox/models/call_create_response.rbi +4116 -384
- data/rbi/revox/models/call_export_params.rbi +456 -0
- data/rbi/revox/models/call_export_response.rbi +26 -0
- data/rbi/revox/models/call_pause_params.rbi +31 -0
- data/rbi/revox/models/call_pause_response.rbi +23 -0
- data/rbi/revox/models/call_phone_history_params.rbi +27 -0
- data/rbi/revox/models/call_phone_history_response.rbi +224 -0
- data/rbi/revox/models/call_resume_params.rbi +33 -0
- data/rbi/revox/models/call_resume_response.rbi +23 -0
- data/rbi/revox/models/call_retrieve_response.rbi +4133 -399
- data/rbi/revox/models/call_search_params.rbi +288 -0
- data/rbi/revox/models/call_search_response.rbi +6593 -0
- data/rbi/revox/models/campaign_create_params.rbi +136 -0
- data/rbi/revox/models/campaign_create_response.rbi +2911 -231
- data/rbi/revox/models/campaign_get_rows_params.rbi +2 -82
- data/rbi/revox/models/campaign_get_rows_response.rbi +4146 -409
- data/rbi/revox/models/campaign_launch_params.rbi +33 -0
- data/rbi/revox/models/campaign_launch_response.rbi +4170 -0
- data/rbi/revox/models/campaign_list_response.rbi +2904 -230
- data/rbi/revox/models/campaign_pause_params.rbi +33 -0
- data/rbi/revox/models/campaign_pause_response.rbi +23 -0
- data/rbi/revox/models/campaign_resume_params.rbi +33 -0
- data/rbi/revox/models/campaign_resume_response.rbi +23 -0
- data/rbi/revox/models/campaign_retrieve_response.rbi +2911 -231
- data/rbi/revox/models/campaign_statistics_params.rbi +33 -0
- data/rbi/revox/models/campaign_statistics_response.rbi +1011 -0
- data/rbi/revox/models/campaign_update_params.rbi +431 -0
- data/rbi/revox/models/campaign_update_response.rbi +4170 -0
- data/rbi/revox/models/phone_number_delete_params.rbi +33 -0
- data/rbi/revox/models/phone_number_delete_response.rbi +26 -0
- data/rbi/revox/models/phone_number_list_params.rbi +27 -0
- data/rbi/revox/models/phone_number_list_response.rbi +3680 -0
- data/rbi/revox/models/phone_number_update_params.rbi +53 -0
- data/rbi/revox/models/phone_number_update_response.rbi +3683 -0
- data/rbi/revox/models/user_retrieve_params.rbi +27 -0
- data/rbi/revox/models/user_retrieve_response.rbi +140 -0
- data/rbi/revox/models/voice_clone_params.rbi +141 -0
- data/rbi/revox/models/voice_clone_response.rbi +53 -0
- data/rbi/revox/models/voice_delete_params.rbi +33 -0
- data/rbi/revox/models/voice_delete_response.rbi +23 -0
- data/rbi/revox/models/voice_list_response.rbi +105 -3
- data/rbi/revox/models/voice_preview_params.rbi +69 -0
- data/rbi/revox/models.rbi +36 -2
- data/rbi/revox/resources/assistants.rbi +296 -8
- data/rbi/revox/resources/auth_status.rbi +21 -0
- data/rbi/revox/resources/call.rbi +92 -6
- data/rbi/revox/resources/campaigns.rbi +106 -19
- data/rbi/revox/resources/phone_numbers.rbi +43 -0
- data/rbi/revox/resources/users.rbi +8 -2
- data/rbi/revox/resources/voices.rbi +56 -9
- data/sig/revox/client.rbs +4 -0
- data/sig/revox/internal/util.rbs +4 -0
- data/sig/revox/models/assistant_clone_params.rbs +20 -0
- data/sig/revox/models/assistant_clone_response.rbs +1318 -0
- data/sig/revox/models/assistant_create_params.rbs +844 -11
- data/sig/revox/models/assistant_create_response.rbs +860 -3
- data/sig/revox/models/assistant_list_response.rbs +860 -3
- data/sig/revox/models/assistant_retrieve_response.rbs +859 -3
- data/sig/revox/models/assistant_update_params.rbs +844 -11
- data/sig/revox/models/assistant_update_response.rbs +886 -6
- data/sig/revox/models/auth_status_retrieve_params.rbs +15 -0
- data/sig/revox/models/auth_status_retrieve_response.rbs +13 -0
- data/sig/revox/models/call_cancel_params.rbs +20 -0
- data/sig/revox/models/call_cancel_response.rbs +13 -0
- data/sig/revox/models/call_create_params.rbs +847 -13
- data/sig/revox/models/call_create_response.rbs +1519 -34
- data/sig/revox/models/call_export_params.rbs +234 -0
- data/sig/revox/models/call_export_response.rbs +15 -0
- data/sig/revox/models/call_pause_params.rbs +20 -0
- data/sig/revox/models/call_pause_response.rbs +13 -0
- data/sig/revox/models/call_phone_history_params.rbs +15 -0
- data/sig/revox/models/call_phone_history_response.rbs +102 -0
- data/sig/revox/models/call_resume_params.rbs +20 -0
- data/sig/revox/models/call_resume_response.rbs +13 -0
- data/sig/revox/models/call_retrieve_response.rbs +1519 -34
- data/sig/revox/models/call_search_params.rbs +198 -0
- data/sig/revox/models/call_search_response.rbs +2654 -0
- data/sig/revox/models/campaign_create_params.rbs +54 -0
- data/sig/revox/models/campaign_create_response.rbs +1034 -6
- data/sig/revox/models/campaign_get_rows_params.rbs +2 -64
- data/sig/revox/models/campaign_get_rows_response.rbs +1527 -54
- data/sig/revox/models/campaign_launch_params.rbs +20 -0
- data/sig/revox/models/campaign_launch_response.rbs +1694 -0
- data/sig/revox/models/campaign_list_response.rbs +1034 -6
- data/sig/revox/models/campaign_pause_params.rbs +20 -0
- data/sig/revox/models/campaign_pause_response.rbs +13 -0
- data/sig/revox/models/campaign_resume_params.rbs +20 -0
- data/sig/revox/models/campaign_resume_response.rbs +13 -0
- data/sig/revox/models/campaign_retrieve_response.rbs +1034 -6
- data/sig/revox/models/campaign_statistics_params.rbs +20 -0
- data/sig/revox/models/campaign_statistics_response.rbs +458 -0
- data/sig/revox/models/campaign_update_params.rbs +203 -0
- data/sig/revox/models/campaign_update_response.rbs +1694 -0
- data/sig/revox/models/phone_number_delete_params.rbs +20 -0
- data/sig/revox/models/phone_number_delete_response.rbs +13 -0
- data/sig/revox/models/phone_number_list_params.rbs +15 -0
- data/sig/revox/models/phone_number_list_response.rbs +1462 -0
- data/sig/revox/models/phone_number_update_params.rbs +32 -0
- data/sig/revox/models/phone_number_update_response.rbs +1460 -0
- data/sig/revox/models/user_retrieve_params.rbs +14 -0
- data/sig/revox/models/user_retrieve_response.rbs +71 -0
- data/sig/revox/models/voice_clone_params.rbs +79 -0
- data/sig/revox/models/voice_clone_response.rbs +40 -0
- data/sig/revox/models/voice_delete_params.rbs +20 -0
- data/sig/revox/models/voice_delete_response.rbs +13 -0
- data/sig/revox/models/voice_list_response.rbs +45 -3
- data/sig/revox/models/voice_preview_params.rbs +42 -1
- data/sig/revox/models.rbs +36 -2
- data/sig/revox/resources/assistants.rbs +61 -2
- data/sig/revox/resources/auth_status.rbs +11 -0
- data/sig/revox/resources/call.rbs +41 -3
- data/sig/revox/resources/campaigns.rbs +35 -5
- data/sig/revox/resources/phone_numbers.rbs +23 -0
- data/sig/revox/resources/users.rbs +3 -1
- data/sig/revox/resources/voices.rbs +17 -0
- metadata +122 -23
- data/lib/revox/models/call_list_params.rb +0 -52
- data/lib/revox/models/call_list_response.rb +0 -259
- data/lib/revox/models/users/me_retrieve_params.rb +0 -16
- data/lib/revox/models/users/me_retrieve_response.rb +0 -89
- data/lib/revox/models/users/me_update_params.rb +0 -22
- data/lib/revox/models/users/me_update_response.rb +0 -89
- data/lib/revox/resources/users/me.rb +0 -55
- data/rbi/revox/models/call_list_params.rbi +0 -94
- data/rbi/revox/models/call_list_response.rbi +0 -563
- data/rbi/revox/models/users/me_retrieve_params.rbi +0 -29
- data/rbi/revox/models/users/me_retrieve_response.rbi +0 -139
- data/rbi/revox/models/users/me_update_params.rbi +0 -43
- data/rbi/revox/models/users/me_update_response.rbi +0 -139
- data/rbi/revox/resources/users/me.rbi +0 -33
- data/sig/revox/models/call_list_params.rbs +0 -63
- data/sig/revox/models/call_list_response.rbs +0 -226
- data/sig/revox/models/users/me_retrieve_params.rbs +0 -16
- data/sig/revox/models/users/me_retrieve_response.rbs +0 -70
- data/sig/revox/models/users/me_update_params.rbs +0 -28
- data/sig/revox/models/users/me_update_response.rbs +0 -70
- data/sig/revox/resources/users/me.rbs +0 -18
checksums.yaml
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
---
|
|
2
2
|
SHA256:
|
|
3
|
-
metadata.gz:
|
|
4
|
-
data.tar.gz:
|
|
3
|
+
metadata.gz: 2c6e7c9f9f9d9c931d41e70856bbd3b638e751a812c2062b6550cb9e4f33cbf3
|
|
4
|
+
data.tar.gz: 7516f693e98600c31bd6335e25b67a16cf3fa8c67eee0134ef5fa6b3786a3a7c
|
|
5
5
|
SHA512:
|
|
6
|
-
metadata.gz:
|
|
7
|
-
data.tar.gz:
|
|
6
|
+
metadata.gz: b13be3b0dd37ba534d391076faf94c35fe335ac429b4062fe9e8cfa8452769ac4e562f09aa8a771b1636dd0cf35897b461c112056effd12665b98cccc2947020
|
|
7
|
+
data.tar.gz: 53e5b970909c78c87ff72b130b038a91ae20f0de252b4759d508d0420154f03610c26df68df93174aca5d2ec7168f5c74b908f95554c59744e8a7677a2074f0c
|
data/CHANGELOG.md
CHANGED
|
@@ -1,5 +1,86 @@
|
|
|
1
1
|
# Changelog
|
|
2
2
|
|
|
3
|
+
## 0.3.0 (2026-07-17)
|
|
4
|
+
|
|
5
|
+
Full Changelog: [v0.2.0...v0.3.0](https://github.com/revoxai/revox-ruby/compare/v0.2.0...v0.3.0)
|
|
6
|
+
|
|
7
|
+
### Features
|
|
8
|
+
|
|
9
|
+
* **api:** api update ([49535bb](https://github.com/revoxai/revox-ruby/commit/49535bb8942ced9795f69014549d814277fb15ad))
|
|
10
|
+
* **api:** manual updates ([1eca36b](https://github.com/revoxai/revox-ruby/commit/1eca36baf641a9ba79b6fa6d1344e3773975ec0f))
|
|
11
|
+
* **api:** manual updates - user ([2c14fbe](https://github.com/revoxai/revox-ruby/commit/2c14fbe560a105e2d1a7f1769e67909e2123c50a))
|
|
12
|
+
|
|
13
|
+
## 0.2.0 (2026-07-15)
|
|
14
|
+
|
|
15
|
+
Full Changelog: [v0.1.0...v0.2.0](https://github.com/revoxai/revox-ruby/compare/v0.1.0...v0.2.0)
|
|
16
|
+
|
|
17
|
+
### Features
|
|
18
|
+
|
|
19
|
+
* **api:** api update ([8d240fd](https://github.com/revoxai/revox-ruby/commit/8d240fd35dc183da20d0247a33a0c6582b5db2db))
|
|
20
|
+
* **api:** api update ([9869b36](https://github.com/revoxai/revox-ruby/commit/9869b369d43989b2995febe9b198b1b604f33d8b))
|
|
21
|
+
* **api:** api update ([bf56a5b](https://github.com/revoxai/revox-ruby/commit/bf56a5bd81e2193a2eb43da9b946cb7a9b3603b1))
|
|
22
|
+
* **api:** api update ([112fcd3](https://github.com/revoxai/revox-ruby/commit/112fcd3dcf9982385791fd1168bab051745d0dd7))
|
|
23
|
+
* **api:** api update ([f5df56d](https://github.com/revoxai/revox-ruby/commit/f5df56da8ace157558e6947038496d43dab68af1))
|
|
24
|
+
* **api:** api update ([a7c53f8](https://github.com/revoxai/revox-ruby/commit/a7c53f83552e293123cbf007fb4968bbcf3d49a9))
|
|
25
|
+
* **api:** api update ([b513a69](https://github.com/revoxai/revox-ruby/commit/b513a69717d58eaf5c58b9bc1fb9a4d2eca40ad4))
|
|
26
|
+
* **api:** api update ([dddd00e](https://github.com/revoxai/revox-ruby/commit/dddd00e1b4341c123d49ea76573ae366ebc4516c))
|
|
27
|
+
* **api:** api update ([cde9973](https://github.com/revoxai/revox-ruby/commit/cde997321aa9ff51c1974e5cad84f1318870d235))
|
|
28
|
+
* **api:** api update ([5763976](https://github.com/revoxai/revox-ruby/commit/57639762cfe583bc79138ce9b023f42bf7038287))
|
|
29
|
+
* **api:** api update ([d666984](https://github.com/revoxai/revox-ruby/commit/d66698403b95d717d22db5f3aa7f1310f123c333))
|
|
30
|
+
* **api:** api update ([ca78762](https://github.com/revoxai/revox-ruby/commit/ca78762207935c2aaf2dad44836d310f744cdb40))
|
|
31
|
+
* **api:** api update ([cca54ce](https://github.com/revoxai/revox-ruby/commit/cca54ce1442922c21bfacc4ff0b15083c3b2d299))
|
|
32
|
+
* **api:** api update ([44f5157](https://github.com/revoxai/revox-ruby/commit/44f5157ef688fedba8214ae20bc0b10d38915bb7))
|
|
33
|
+
* **api:** api update ([ce7732a](https://github.com/revoxai/revox-ruby/commit/ce7732a68adef161474be5a89d59098522569408))
|
|
34
|
+
* **api:** api update ([05f0099](https://github.com/revoxai/revox-ruby/commit/05f0099da266211d30eb80ec4a3fc156d95f39d7))
|
|
35
|
+
* **api:** api update ([479acad](https://github.com/revoxai/revox-ruby/commit/479acad28f2524d1d3704442051fab3699a799cf))
|
|
36
|
+
* **api:** api update ([c56b37b](https://github.com/revoxai/revox-ruby/commit/c56b37b31501d7c2e6011df204ecacf4101b65b6))
|
|
37
|
+
* **api:** api update ([502e3cc](https://github.com/revoxai/revox-ruby/commit/502e3cca917fbab0044e6dabbcced3e4ba855e7e))
|
|
38
|
+
* **api:** api update ([3fbceb1](https://github.com/revoxai/revox-ruby/commit/3fbceb15567d3e619e3d67dcb2a2d4590476744c))
|
|
39
|
+
* **api:** api update ([d6283f7](https://github.com/revoxai/revox-ruby/commit/d6283f75a22b6df40ff16627973e8bb48233eb7f))
|
|
40
|
+
* **api:** api update ([7d52591](https://github.com/revoxai/revox-ruby/commit/7d5259112e7bf7527f85d20538e0cd5369c5f885))
|
|
41
|
+
* **api:** api update ([91f11fe](https://github.com/revoxai/revox-ruby/commit/91f11fea2ef847f8580f8b24595d891047ac0e02))
|
|
42
|
+
* **api:** api update ([6c778a4](https://github.com/revoxai/revox-ruby/commit/6c778a48d14822330ad9c068b79ba62222eb8547))
|
|
43
|
+
* **api:** api update ([0b8dc76](https://github.com/revoxai/revox-ruby/commit/0b8dc76c64992e49d67392a993cf3e518d449c59))
|
|
44
|
+
* **api:** api update ([3881854](https://github.com/revoxai/revox-ruby/commit/3881854b74cac11c732ac8770c8fedf9977aceb5))
|
|
45
|
+
* **api:** api update ([c160447](https://github.com/revoxai/revox-ruby/commit/c16044750e3c229cd5ff5731da1b36e7f3ce0911))
|
|
46
|
+
* **api:** api update ([2dd7e29](https://github.com/revoxai/revox-ruby/commit/2dd7e29c003c94e1a8fc54150ed018dee6fed4de))
|
|
47
|
+
* **api:** api update ([bcbccec](https://github.com/revoxai/revox-ruby/commit/bcbccecae3495b6167ea7b6a65270876b51c89e9))
|
|
48
|
+
* **api:** api update ([abce6d8](https://github.com/revoxai/revox-ruby/commit/abce6d8a69e93b724c4dd20c85e478c5f7a4bfc4))
|
|
49
|
+
* **api:** api update ([15e065f](https://github.com/revoxai/revox-ruby/commit/15e065f097f616b859c791b2d7308292be644c1e))
|
|
50
|
+
* **api:** api update ([90a90e5](https://github.com/revoxai/revox-ruby/commit/90a90e51673ff39e3eaa82ff1d1f34000e47ad0a))
|
|
51
|
+
* **api:** api update ([50bed77](https://github.com/revoxai/revox-ruby/commit/50bed77d93f041ec736e1f655bccd51acea5cf28))
|
|
52
|
+
* **api:** api update ([4d644b1](https://github.com/revoxai/revox-ruby/commit/4d644b1170d8fc3eaf3c612a7466badef78bb08e))
|
|
53
|
+
* **api:** api update ([06f4b29](https://github.com/revoxai/revox-ruby/commit/06f4b296792c0b210eb7bd3306ebbc135ae92da3))
|
|
54
|
+
* **api:** api update ([4aa4421](https://github.com/revoxai/revox-ruby/commit/4aa44212415460e534dda3f198087d2ce5a95827))
|
|
55
|
+
* **api:** api update ([0613739](https://github.com/revoxai/revox-ruby/commit/0613739387759e50815d005e58abc7f00ed85ac6))
|
|
56
|
+
* **api:** api update ([9869a45](https://github.com/revoxai/revox-ruby/commit/9869a4559dce66130f9929a24fb57332a89a99e4))
|
|
57
|
+
* **api:** api update ([1380dfb](https://github.com/revoxai/revox-ruby/commit/1380dfbc958d5f9b4ff72b3362d883c6509e7aa5))
|
|
58
|
+
* **api:** api update ([53ff933](https://github.com/revoxai/revox-ruby/commit/53ff9331c97f09223c69cb2de7dab148b478f36d))
|
|
59
|
+
* **api:** api update ([31b7dfe](https://github.com/revoxai/revox-ruby/commit/31b7dfe97b9c31e2549961ad0cc963f33976fe46))
|
|
60
|
+
* **api:** api update ([446753b](https://github.com/revoxai/revox-ruby/commit/446753b7dca2c432116d5d90b2e6914ae09d6a4c))
|
|
61
|
+
* support setting headers via env ([b4924cb](https://github.com/revoxai/revox-ruby/commit/b4924cb118f746f48dd79a6aec93e38d985f8f72))
|
|
62
|
+
|
|
63
|
+
|
|
64
|
+
### Bug Fixes
|
|
65
|
+
|
|
66
|
+
* align path encoding with RFC 3986 section 3.3 ([12227d4](https://github.com/revoxai/revox-ruby/commit/12227d4d3b83941377114ff2f66ae8238a76c733))
|
|
67
|
+
* **client:** elide content type header on requests without body ([b066b04](https://github.com/revoxai/revox-ruby/commit/b066b049ed1abb7f0dad50b4655d869a93b0903f))
|
|
68
|
+
* **client:** send content-type header for requests with an omitted optional body ([d66d881](https://github.com/revoxai/revox-ruby/commit/d66d881b34056e539370711607d3cbc1a750a597))
|
|
69
|
+
* **internal:** correct multipart form field name encoding ([aad53d6](https://github.com/revoxai/revox-ruby/commit/aad53d61705ebb6f8787c539f5fea50591872394))
|
|
70
|
+
* multipart encoding for file arrays ([41edad7](https://github.com/revoxai/revox-ruby/commit/41edad7843f71bd02744d02326363a1aa766c9a7))
|
|
71
|
+
* variable name typo ([001a5e9](https://github.com/revoxai/revox-ruby/commit/001a5e9e03531812acaa8cff9544d85c5339b042))
|
|
72
|
+
|
|
73
|
+
|
|
74
|
+
### Chores
|
|
75
|
+
|
|
76
|
+
* **ci:** skip lint on metadata-only changes ([38ff917](https://github.com/revoxai/revox-ruby/commit/38ff917c34e21ea87963b6a0e0d63e71a2a327a5))
|
|
77
|
+
* **ci:** support opting out of skipping builds on metadata-only commits ([bd897b8](https://github.com/revoxai/revox-ruby/commit/bd897b816c651cbc299e8936f8f722353b9d7495))
|
|
78
|
+
* configure new SDK language ([7966f1a](https://github.com/revoxai/revox-ruby/commit/7966f1a260dc020f620a46a11b3bc72085dd4b4f))
|
|
79
|
+
* **internal:** bound formatter parallelism to CPU count ([f159e56](https://github.com/revoxai/revox-ruby/commit/f159e567d712775a9f812692efd6bd51fe6874b4))
|
|
80
|
+
* **internal:** more robust bootstrap script ([b1b49f1](https://github.com/revoxai/revox-ruby/commit/b1b49f14eeaaa9a9fc609d651ee51c408d7d1219))
|
|
81
|
+
* **internal:** tweak CI branches ([cbb8d65](https://github.com/revoxai/revox-ruby/commit/cbb8d6531f3319c56ed3bd2a7411fae875815b42))
|
|
82
|
+
* **internal:** update gitignore ([1327cee](https://github.com/revoxai/revox-ruby/commit/1327ceea6b00fb9dc9879cc242147a2ba4bd12a1))
|
|
83
|
+
|
|
3
84
|
## 0.1.0 (2026-03-11)
|
|
4
85
|
|
|
5
86
|
Full Changelog: [v0.0.2...v0.1.0](https://github.com/revoxai/revox-ruby/compare/v0.0.2...v0.1.0)
|
data/README.md
CHANGED
|
@@ -4,6 +4,15 @@ The Revox Ruby library provides convenient access to the Revox REST API from any
|
|
|
4
4
|
|
|
5
5
|
It is generated with [Stainless](https://www.stainless.com/).
|
|
6
6
|
|
|
7
|
+
## MCP Server
|
|
8
|
+
|
|
9
|
+
Use the Revox MCP Server to enable AI assistants to interact with this API, allowing them to explore endpoints, make test requests, and use documentation to help integrate this SDK into your application.
|
|
10
|
+
|
|
11
|
+
[](https://cursor.com/en-US/install-mcp?name=%40revoxai%2Fsdk-mcp&config=eyJuYW1lIjoiQHJldm94YWkvc2RrLW1jcCIsInRyYW5zcG9ydCI6Imh0dHAiLCJ1cmwiOiJodHRwczovL3Jldm94LW1jcC5zdGxtY3AuY29tIiwiaGVhZGVycyI6eyJ4LXJldm94LWFwaS1rZXkiOiJNeSBBUEkgS2V5In19)
|
|
12
|
+
[](https://vscode.stainless.com/mcp/%7B%22name%22%3A%22%40revoxai%2Fsdk-mcp%22%2C%22type%22%3A%22http%22%2C%22url%22%3A%22https%3A%2F%2Frevox-mcp.stlmcp.com%22%2C%22headers%22%3A%7B%22x-revox-api-key%22%3A%22My%20API%20Key%22%7D%7D)
|
|
13
|
+
|
|
14
|
+
> Note: You may need to set environment variables in your MCP client.
|
|
15
|
+
|
|
7
16
|
## Documentation
|
|
8
17
|
|
|
9
18
|
Documentation for releases of this gem can be found [on RubyDoc](https://gemdocs.org/gems/revox).
|
|
@@ -15,7 +24,7 @@ To use this gem, install via Bundler by adding the following to your application
|
|
|
15
24
|
<!-- x-release-please-start-version -->
|
|
16
25
|
|
|
17
26
|
```ruby
|
|
18
|
-
gem "revox", "~> 0.
|
|
27
|
+
gem "revox", "~> 0.3.0"
|
|
19
28
|
```
|
|
20
29
|
|
|
21
30
|
<!-- x-release-please-end -->
|
|
@@ -33,7 +42,9 @@ revox = Revox::Client.new(
|
|
|
33
42
|
campaign = revox.campaigns.create(
|
|
34
43
|
assistant_id: "REPLACE_ME",
|
|
35
44
|
contacts: [{prompt_variables: {foo: "string"}, to_phone_number: "to_phone_number"}],
|
|
36
|
-
|
|
45
|
+
launch: true,
|
|
46
|
+
name: "REPLACE_ME",
|
|
47
|
+
type: "regular"
|
|
37
48
|
)
|
|
38
49
|
|
|
39
50
|
puts(campaign.campaign)
|
|
@@ -48,7 +59,9 @@ begin
|
|
|
48
59
|
campaign = revox.campaigns.create(
|
|
49
60
|
assistant_id: "REPLACE_ME",
|
|
50
61
|
contacts: [{prompt_variables: {foo: "string"}, to_phone_number: "to_phone_number"}],
|
|
51
|
-
|
|
62
|
+
launch: true,
|
|
63
|
+
name: "REPLACE_ME",
|
|
64
|
+
type: "regular"
|
|
52
65
|
)
|
|
53
66
|
rescue Revox::Errors::APIConnectionError => e
|
|
54
67
|
puts("The server could not be reached")
|
|
@@ -95,7 +108,9 @@ revox = Revox::Client.new(
|
|
|
95
108
|
revox.campaigns.create(
|
|
96
109
|
assistant_id: "REPLACE_ME",
|
|
97
110
|
contacts: [{prompt_variables: {foo: "string"}, to_phone_number: "to_phone_number"}],
|
|
111
|
+
launch: true,
|
|
98
112
|
name: "REPLACE_ME",
|
|
113
|
+
type: "regular",
|
|
99
114
|
request_options: {max_retries: 5}
|
|
100
115
|
)
|
|
101
116
|
```
|
|
@@ -114,7 +129,9 @@ revox = Revox::Client.new(
|
|
|
114
129
|
revox.campaigns.create(
|
|
115
130
|
assistant_id: "REPLACE_ME",
|
|
116
131
|
contacts: [{prompt_variables: {foo: "string"}, to_phone_number: "to_phone_number"}],
|
|
132
|
+
launch: true,
|
|
117
133
|
name: "REPLACE_ME",
|
|
134
|
+
type: "regular",
|
|
118
135
|
request_options: {timeout: 5}
|
|
119
136
|
)
|
|
120
137
|
```
|
|
@@ -150,7 +167,9 @@ campaign =
|
|
|
150
167
|
revox.campaigns.create(
|
|
151
168
|
assistant_id: "REPLACE_ME",
|
|
152
169
|
contacts: [{prompt_variables: {foo: "string"}, to_phone_number: "to_phone_number"}],
|
|
170
|
+
launch: true,
|
|
153
171
|
name: "REPLACE_ME",
|
|
172
|
+
type: "regular",
|
|
154
173
|
request_options: {
|
|
155
174
|
extra_query: {my_query_parameter: value},
|
|
156
175
|
extra_body: {my_body_parameter: value},
|
|
@@ -204,7 +223,9 @@ revox.campaigns.create(
|
|
|
204
223
|
to_phone_number: "to_phone_number"
|
|
205
224
|
)
|
|
206
225
|
],
|
|
207
|
-
|
|
226
|
+
launch: true,
|
|
227
|
+
name: "REPLACE_ME",
|
|
228
|
+
type: "regular"
|
|
208
229
|
)
|
|
209
230
|
```
|
|
210
231
|
|
|
@@ -215,7 +236,9 @@ Or, equivalently:
|
|
|
215
236
|
revox.campaigns.create(
|
|
216
237
|
assistant_id: "REPLACE_ME",
|
|
217
238
|
contacts: [{prompt_variables: {foo: "string"}, to_phone_number: "to_phone_number"}],
|
|
218
|
-
|
|
239
|
+
launch: true,
|
|
240
|
+
name: "REPLACE_ME",
|
|
241
|
+
type: "regular"
|
|
219
242
|
)
|
|
220
243
|
|
|
221
244
|
# You can also splat a full Params class:
|
|
@@ -227,7 +250,9 @@ params = Revox::CampaignCreateParams.new(
|
|
|
227
250
|
to_phone_number: "to_phone_number"
|
|
228
251
|
)
|
|
229
252
|
],
|
|
230
|
-
|
|
253
|
+
launch: true,
|
|
254
|
+
name: "REPLACE_ME",
|
|
255
|
+
type: "regular"
|
|
231
256
|
)
|
|
232
257
|
revox.campaigns.create(**params)
|
|
233
258
|
```
|
|
@@ -237,25 +262,25 @@ revox.campaigns.create(**params)
|
|
|
237
262
|
Since this library does not depend on `sorbet-runtime`, it cannot provide [`T::Enum`](https://sorbet.org/docs/tenum) instances. Instead, we provide "tagged symbols" instead, which is always a primitive at runtime:
|
|
238
263
|
|
|
239
264
|
```ruby
|
|
240
|
-
# :
|
|
241
|
-
puts(Revox::
|
|
265
|
+
# :regular
|
|
266
|
+
puts(Revox::CampaignCreateParams::Type::REGULAR)
|
|
242
267
|
|
|
243
|
-
# Revealed type: `T.all(Revox::
|
|
244
|
-
T.reveal_type(Revox::
|
|
268
|
+
# Revealed type: `T.all(Revox::CampaignCreateParams::Type, Symbol)`
|
|
269
|
+
T.reveal_type(Revox::CampaignCreateParams::Type::REGULAR)
|
|
245
270
|
```
|
|
246
271
|
|
|
247
272
|
Enum parameters have a "relaxed" type, so you can either pass in enum constants or their literal value:
|
|
248
273
|
|
|
249
274
|
```ruby
|
|
250
275
|
# Using the enum constants preserves the tagged type information:
|
|
251
|
-
revox.campaigns.
|
|
252
|
-
|
|
276
|
+
revox.campaigns.create(
|
|
277
|
+
type: Revox::CampaignCreateParams::Type::REGULAR,
|
|
253
278
|
# …
|
|
254
279
|
)
|
|
255
280
|
|
|
256
281
|
# Literal values are also permissible:
|
|
257
|
-
revox.campaigns.
|
|
258
|
-
|
|
282
|
+
revox.campaigns.create(
|
|
283
|
+
type: :regular,
|
|
259
284
|
# …
|
|
260
285
|
)
|
|
261
286
|
```
|
data/lib/revox/client.rb
CHANGED
|
@@ -18,9 +18,15 @@ module Revox
|
|
|
18
18
|
# @return [String]
|
|
19
19
|
attr_reader :api_key
|
|
20
20
|
|
|
21
|
+
# @return [Revox::Resources::AuthStatus]
|
|
22
|
+
attr_reader :auth_status
|
|
23
|
+
|
|
21
24
|
# @return [Revox::Resources::Campaigns]
|
|
22
25
|
attr_reader :campaigns
|
|
23
26
|
|
|
27
|
+
# @return [Revox::Resources::PhoneNumbers]
|
|
28
|
+
attr_reader :phone_numbers
|
|
29
|
+
|
|
24
30
|
# @return [Revox::Resources::Assistants]
|
|
25
31
|
attr_reader :assistants
|
|
26
32
|
|
|
@@ -70,6 +76,19 @@ module Revox
|
|
|
70
76
|
raise ArgumentError.new("api_key is required, and can be set via environ: \"REVOX_API_KEY\"")
|
|
71
77
|
end
|
|
72
78
|
|
|
79
|
+
headers = {}
|
|
80
|
+
custom_headers_env = ENV["REVOX_CUSTOM_HEADERS"]
|
|
81
|
+
unless custom_headers_env.nil?
|
|
82
|
+
parsed = {}
|
|
83
|
+
custom_headers_env.split("\n").each do |line|
|
|
84
|
+
colon = line.index(":")
|
|
85
|
+
unless colon.nil?
|
|
86
|
+
parsed[line[0...colon].strip] = line[(colon + 1)..].strip
|
|
87
|
+
end
|
|
88
|
+
end
|
|
89
|
+
headers = parsed.merge(headers)
|
|
90
|
+
end
|
|
91
|
+
|
|
73
92
|
@api_key = api_key.to_s
|
|
74
93
|
|
|
75
94
|
super(
|
|
@@ -77,10 +96,13 @@ module Revox
|
|
|
77
96
|
timeout: timeout,
|
|
78
97
|
max_retries: max_retries,
|
|
79
98
|
initial_retry_delay: initial_retry_delay,
|
|
80
|
-
max_retry_delay: max_retry_delay
|
|
99
|
+
max_retry_delay: max_retry_delay,
|
|
100
|
+
headers: headers
|
|
81
101
|
)
|
|
82
102
|
|
|
103
|
+
@auth_status = Revox::Resources::AuthStatus.new(client: self)
|
|
83
104
|
@campaigns = Revox::Resources::Campaigns.new(client: self)
|
|
105
|
+
@phone_numbers = Revox::Resources::PhoneNumbers.new(client: self)
|
|
84
106
|
@assistants = Revox::Resources::Assistants.new(client: self)
|
|
85
107
|
@call = Revox::Resources::Call.new(client: self)
|
|
86
108
|
@voices = Revox::Resources::Voices.new(client: self)
|
|
@@ -306,6 +306,11 @@ module Revox
|
|
|
306
306
|
Revox::Internal::Util.deep_merge(*[req[:body], opts[:extra_body]].compact)
|
|
307
307
|
end
|
|
308
308
|
|
|
309
|
+
# Generated methods always pass `req[:body]` for operations that define a
|
|
310
|
+
# request body, so only elide the content-type header when the operation
|
|
311
|
+
# has no body at all, not when an optional body param was omitted.
|
|
312
|
+
headers.delete("content-type") if body.nil? && !req.key?(:body)
|
|
313
|
+
|
|
309
314
|
url = Revox::Internal::Util.join_parsed_uri(@base_url_components, {**req, path: path, query: query})
|
|
310
315
|
headers, encoded = Revox::Internal::Util.encode_content(headers, body)
|
|
311
316
|
{
|
|
@@ -438,9 +438,9 @@ module Revox
|
|
|
438
438
|
# @return [Hash{Symbol=>Object}]
|
|
439
439
|
#
|
|
440
440
|
# @example
|
|
441
|
-
# # `
|
|
442
|
-
#
|
|
443
|
-
#
|
|
441
|
+
# # `auth_status_retrieve_response` is a `Revox::Models::AuthStatusRetrieveResponse`
|
|
442
|
+
# auth_status_retrieve_response => {
|
|
443
|
+
# authenticated: authenticated
|
|
444
444
|
# }
|
|
445
445
|
def deconstruct_keys(keys)
|
|
446
446
|
(keys || self.class.known_fields.keys)
|
data/lib/revox/internal/util.rb
CHANGED
|
@@ -157,7 +157,7 @@ module Revox
|
|
|
157
157
|
in Hash | nil => coerced
|
|
158
158
|
coerced
|
|
159
159
|
else
|
|
160
|
-
message = "Expected a #{Hash} or #{Revox::Internal::Type::BaseModel}, got #{
|
|
160
|
+
message = "Expected a #{Hash} or #{Revox::Internal::Type::BaseModel}, got #{input.inspect}"
|
|
161
161
|
raise ArgumentError.new(message)
|
|
162
162
|
end
|
|
163
163
|
end
|
|
@@ -237,6 +237,11 @@ module Revox
|
|
|
237
237
|
end
|
|
238
238
|
end
|
|
239
239
|
|
|
240
|
+
# @type [Regexp]
|
|
241
|
+
#
|
|
242
|
+
# https://www.rfc-editor.org/rfc/rfc3986.html#section-3.3
|
|
243
|
+
RFC_3986_NOT_PCHARS = /[^A-Za-z0-9\-._~!$&'()*+,;=:@]+/
|
|
244
|
+
|
|
240
245
|
class << self
|
|
241
246
|
# @api private
|
|
242
247
|
#
|
|
@@ -247,6 +252,15 @@ module Revox
|
|
|
247
252
|
"#{uri.scheme}://#{uri.host}#{":#{uri.port}" unless uri.port == uri.default_port}"
|
|
248
253
|
end
|
|
249
254
|
|
|
255
|
+
# @api private
|
|
256
|
+
#
|
|
257
|
+
# @param path [String, Integer]
|
|
258
|
+
#
|
|
259
|
+
# @return [String]
|
|
260
|
+
def encode_path(path)
|
|
261
|
+
path.to_s.gsub(Revox::Internal::Util::RFC_3986_NOT_PCHARS) { ERB::Util.url_encode(_1) }
|
|
262
|
+
end
|
|
263
|
+
|
|
250
264
|
# @api private
|
|
251
265
|
#
|
|
252
266
|
# @param path [String, Array<String>]
|
|
@@ -259,7 +273,7 @@ module Revox
|
|
|
259
273
|
in []
|
|
260
274
|
""
|
|
261
275
|
in [String => p, *interpolations]
|
|
262
|
-
encoded = interpolations.map {
|
|
276
|
+
encoded = interpolations.map { encode_path(_1) }
|
|
263
277
|
format(p, *encoded)
|
|
264
278
|
end
|
|
265
279
|
end
|
|
@@ -571,16 +585,15 @@ module Revox
|
|
|
571
585
|
y << "Content-Disposition: form-data"
|
|
572
586
|
|
|
573
587
|
unless key.nil?
|
|
574
|
-
|
|
575
|
-
y << "; name=\"#{name}\""
|
|
588
|
+
y << "; name=\"#{key}\""
|
|
576
589
|
end
|
|
577
590
|
|
|
578
591
|
case val
|
|
579
592
|
in Revox::FilePart unless val.filename.nil?
|
|
580
|
-
filename =
|
|
593
|
+
filename = encode_path(val.filename)
|
|
581
594
|
y << "; filename=\"#{filename}\""
|
|
582
595
|
in Pathname | IO
|
|
583
|
-
filename =
|
|
596
|
+
filename = encode_path(::File.basename(val.to_path))
|
|
584
597
|
y << "; filename=\"#{filename}\""
|
|
585
598
|
else
|
|
586
599
|
end
|
|
@@ -597,6 +610,7 @@ module Revox
|
|
|
597
610
|
#
|
|
598
611
|
# @return [Array(String, Enumerable<String>)]
|
|
599
612
|
private def encode_multipart_streaming(body)
|
|
613
|
+
# rubocop:disable Style/CaseEquality
|
|
600
614
|
# RFC 1521 Section 7.2.1 says we should have 70 char maximum for boundary length
|
|
601
615
|
boundary = SecureRandom.urlsafe_base64(46)
|
|
602
616
|
|
|
@@ -606,7 +620,7 @@ module Revox
|
|
|
606
620
|
in Hash
|
|
607
621
|
body.each do |key, val|
|
|
608
622
|
case val
|
|
609
|
-
in Array if val.all? { primitive?(_1) }
|
|
623
|
+
in Array if val.all? { primitive?(_1) || Revox::Internal::Type::FileInput === _1 }
|
|
610
624
|
val.each do |v|
|
|
611
625
|
write_multipart_chunk(y, boundary: boundary, key: key, val: v, closing: closing)
|
|
612
626
|
end
|
|
@@ -622,6 +636,7 @@ module Revox
|
|
|
622
636
|
|
|
623
637
|
fused_io = fused_enum(strio) { closing.each(&:call) }
|
|
624
638
|
[boundary, fused_io]
|
|
639
|
+
# rubocop:enable Style/CaseEquality
|
|
625
640
|
end
|
|
626
641
|
|
|
627
642
|
# @api private
|
|
@@ -0,0 +1,20 @@
|
|
|
1
|
+
# frozen_string_literal: true
|
|
2
|
+
|
|
3
|
+
module Revox
|
|
4
|
+
module Models
|
|
5
|
+
# @see Revox::Resources::Assistants#clone_
|
|
6
|
+
class AssistantCloneParams < Revox::Internal::Type::BaseModel
|
|
7
|
+
extend Revox::Internal::Type::RequestParameters::Converter
|
|
8
|
+
include Revox::Internal::Type::RequestParameters
|
|
9
|
+
|
|
10
|
+
# @!attribute id
|
|
11
|
+
#
|
|
12
|
+
# @return [String]
|
|
13
|
+
required :id, String
|
|
14
|
+
|
|
15
|
+
# @!method initialize(id:, request_options: {})
|
|
16
|
+
# @param id [String]
|
|
17
|
+
# @param request_options [Revox::RequestOptions, Hash{Symbol=>Object}]
|
|
18
|
+
end
|
|
19
|
+
end
|
|
20
|
+
end
|