revox 0.4.0 → 0.5.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 CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: b1b4de98cd33754972b65ef99449f76c9078cde99b079302b8a7dab710f14d5e
4
- data.tar.gz: d2c9bd5a34e61764f65a4152373865f0f4d408eea3c27f2e7163269bf02c559a
3
+ metadata.gz: 41aac7797615fd013e839d0c86fdfa4d91e63bf84aefd38a5dba8b5b21adaadb
4
+ data.tar.gz: e1debea088c862fc5e8fb25af0e3d3922c182b0f31bf68f39764b97daecc1474
5
5
  SHA512:
6
- metadata.gz: 377e6d49e2bd561db5e07927c6bc6ac918f79c7ec04e9a420c2c2e529cd526b66336186265ec05b52d757d2bf6330676170515892e9295f67052db114485189f
7
- data.tar.gz: 57474f614ce033b82000f7cbc94555b861c9bb806c588575ca833a35b036309de28b3453b2fda6bb3e06661679ece275a6ea8aab017f146ac738c04896ff3861
6
+ metadata.gz: 9d3560afab65ac8e1156b3a82795817bad62024de8e00571a39602e874aa4415c873ce1180339606bbe8120a524c5265f36622c59ec6a9414bed3e28293f96a5
7
+ data.tar.gz: a63fa996ca7d7a93725fd9d55c3f8169b84200e659a4cd48b3d533211414eb444f90025d5dfde9dc453d5a3d7981af1ac8fe07847366f415cd31de9d533e55af
data/CHANGELOG.md CHANGED
@@ -1,5 +1,12 @@
1
1
  # Changelog
2
2
 
3
+ ## [0.5.0](https://github.com/revoxai/revox-ruby/compare/v0.4.0...v0.5.0) (2026-08-24)
4
+
5
+
6
+ ### Features
7
+
8
+ * add campaigns.launch for starting campaign calls ([ac41a27](https://github.com/revoxai/revox-ruby/commit/ac41a279c94ddacab86ac8e5d0c79d6909b031f5))
9
+
3
10
  ## 0.4.0 (2026-08-21)
4
11
 
5
12
  Full Changelog: [v0.3.0...v0.4.0](https://github.com/revoxai/revox-ruby/compare/v0.3.0...v0.4.0)
data/README.md CHANGED
@@ -8,8 +8,8 @@ It is generated with [Stainless](https://www.stainless.com/).
8
8
 
9
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
10
 
11
- [![Add to Cursor](https://cursor.com/deeplink/mcp-install-dark.svg)](https://cursor.com/en-US/install-mcp?name=%40revoxai%2Fsdk-mcp&config=eyJuYW1lIjoiQHJldm94YWkvc2RrLW1jcCIsInRyYW5zcG9ydCI6Imh0dHAiLCJ1cmwiOiJodHRwczovL3Jldm94LW1jcC5zdGxtY3AuY29tIiwiaGVhZGVycyI6eyJ4LXJldm94LWFwaS1rZXkiOiJNeSBBUEkgS2V5In19)
12
- [![Install in VS Code](https://img.shields.io/badge/_-Add_to_VS_Code-blue?style=for-the-badge&logo=data:image/svg%2bxml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIGZpbGw9Im5vbmUiIHZpZXdCb3g9IjAgMCA0MCA0MCI+PHBhdGggZmlsbD0iI0VFRSIgZmlsbC1ydWxlPSJldmVub2RkIiBkPSJNMzAuMjM1IDM5Ljg4NGEyLjQ5MSAyLjQ5MSAwIDAgMS0xLjc4MS0uNzNMMTIuNyAyNC43OGwtMy40NiAyLjYyNC0zLjQwNiAyLjU4MmExLjY2NSAxLjY2NSAwIDAgMS0xLjA4Mi4zMzggMS42NjQgMS42NjQgMCAwIDEtMS4wNDYtLjQzMWwtMi4yLTJhMS42NjYgMS42NjYgMCAwIDEgMC0yLjQ2M0w3LjQ1OCAyMCA0LjY3IDE3LjQ1MyAxLjUwNyAxNC41N2ExLjY2NSAxLjY2NSAwIDAgMSAwLTIuNDYzbDIuMi0yYTEuNjY1IDEuNjY1IDAgMCAxIDIuMTMtLjA5N2w2Ljg2MyA1LjIwOUwyOC40NTIuODQ0YTIuNDg4IDIuNDg4IDAgMCAxIDEuODQxLS43MjljLjM1MS4wMDkuNjk5LjA5MSAxLjAxOS4yNDVsOC4yMzYgMy45NjFhMi41IDIuNSAwIDAgMSAxLjQxNSAyLjI1M3YuMDk5LS4wNDVWMzMuMzd2LS4wNDUuMDk1YTIuNTAxIDIuNTAxIDAgMCAxLTEuNDE2IDIuMjU3bC04LjIzNSAzLjk2MWEyLjQ5MiAyLjQ5MiAwIDAgMS0xLjA3Ny4yNDZabS43MTYtMjguOTQ3LTExLjk0OCA5LjA2MiAxMS45NTIgOS4wNjUtLjAwNC0xOC4xMjdaIi8+PC9zdmc+)](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)
11
+ [![Add to Cursor](https://cursor.com/deeplink/mcp-install-dark.svg)](https://cursor.com/en-US/install-mcp?name=%40revoxai%2Fsdk-mcp&config=eyJjb21tYW5kIjoibnB4IiwiYXJncyI6WyIteSIsIkByZXZveGFpL3Nkay1tY3AiXSwiZW52Ijp7IlJFVk9YX0FQSV9LRVkiOiJNeSBBUEkgS2V5In19)
12
+ [![Install in VS Code](https://img.shields.io/badge/_-Add_to_VS_Code-blue?style=for-the-badge&logo=data:image/svg%2bxml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIGZpbGw9Im5vbmUiIHZpZXdCb3g9IjAgMCA0MCA0MCI+PHBhdGggZmlsbD0iI0VFRSIgZmlsbC1ydWxlPSJldmVub2RkIiBkPSJNMzAuMjM1IDM5Ljg4NGEyLjQ5MSAyLjQ5MSAwIDAgMS0xLjc4MS0uNzNMMTIuNyAyNC43OGwtMy40NiAyLjYyNC0zLjQwNiAyLjU4MmExLjY2NSAxLjY2NSAwIDAgMS0xLjA4Mi4zMzggMS42NjQgMS42NjQgMCAwIDEtMS4wNDYtLjQzMWwtMi4yLTJhMS42NjYgMS42NjYgMCAwIDEgMC0yLjQ2M0w3LjQ1OCAyMCA0LjY3IDE3LjQ1MyAxLjUwNyAxNC41N2ExLjY2NSAxLjY2NSAwIDAgMSAwLTIuNDYzbDIuMi0yYTEuNjY1IDEuNjY1IDAgMCAxIDIuMTMtLjA5N2w2Ljg2MyA1LjIwOUwyOC40NTIuODQ0YTIuNDg4IDIuNDg4IDAgMCAxIDEuODQxLS43MjljLjM1MS4wMDkuNjk5LjA5MSAxLjAxOS4yNDVsOC4yMzYgMy45NjFhMi41IDIuNSAwIDAgMSAxLjQxNSAyLjI1M3YuMDk5LS4wNDVWMzMuMzd2LS4wNDUuMDk1YTIuNTAxIDIuNTAxIDAgMCAxLTEuNDE2IDIuMjU3bC04LjIzNSAzLjk2MWEyLjQ5MiAyLjQ5MiAwIDAgMS0xLjA3Ny4yNDZabS43MTYtMjguOTQ3LTExLjk0OCA5LjA2MiAxMS45NTIgOS4wNjUtLjAwNC0xOC4xMjdaIi8+PC9zdmc+)](https://vscode.stainless.com/mcp/%7B%22name%22%3A%22%40revoxai%2Fsdk-mcp%22%2C%22command%22%3A%22npx%22%2C%22args%22%3A%5B%22-y%22%2C%22%40revoxai%2Fsdk-mcp%22%5D%2C%22env%22%3A%7B%22REVOX_API_KEY%22%3A%22My%20API%20Key%22%7D%7D)
13
13
 
14
14
  > Note: You may need to set environment variables in your MCP client.
15
15
 
@@ -24,7 +24,7 @@ To use this gem, install via Bundler by adding the following to your application
24
24
  <!-- x-release-please-start-version -->
25
25
 
26
26
  ```ruby
27
- gem "revox", "~> 0.4.0"
27
+ gem "revox", "~> 0.5.0"
28
28
  ```
29
29
 
30
30
  <!-- x-release-please-end -->
@@ -262,25 +262,25 @@ revox.campaigns.create(**params)
262
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:
263
263
 
264
264
  ```ruby
265
- # :generated
266
- puts(Revox::AssistantCreateParams::FirstSentenceMode::GENERATED)
265
+ # :ai_first
266
+ puts(Revox::CampaignLaunchParams::Mode::AI_FIRST)
267
267
 
268
- # Revealed type: `T.all(Revox::AssistantCreateParams::FirstSentenceMode, Symbol)`
269
- T.reveal_type(Revox::AssistantCreateParams::FirstSentenceMode::GENERATED)
268
+ # Revealed type: `T.all(Revox::CampaignLaunchParams::Mode, Symbol)`
269
+ T.reveal_type(Revox::CampaignLaunchParams::Mode::AI_FIRST)
270
270
  ```
271
271
 
272
272
  Enum parameters have a "relaxed" type, so you can either pass in enum constants or their literal value:
273
273
 
274
274
  ```ruby
275
275
  # Using the enum constants preserves the tagged type information:
276
- revox.assistants.create(
277
- first_sentence_mode: Revox::AssistantCreateParams::FirstSentenceMode::GENERATED,
276
+ revox.campaigns.launch(
277
+ mode: Revox::CampaignLaunchParams::Mode::AI_FIRST,
278
278
  # …
279
279
  )
280
280
 
281
281
  # Literal values are also permissible:
282
- revox.assistants.create(
283
- first_sentence_mode: :generated,
282
+ revox.campaigns.launch(
283
+ mode: :ai_first,
284
284
  # …
285
285
  )
286
286
  ```
@@ -0,0 +1,201 @@
1
+ # frozen_string_literal: true
2
+
3
+ module Revox
4
+ module Models
5
+ # @see Revox::Resources::Campaigns#launch
6
+ class CampaignLaunchParams < 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
+ # @!attribute mode
16
+ #
17
+ # @return [Symbol, Revox::Models::CampaignLaunchParams::Mode]
18
+ required :mode, enum: -> { Revox::CampaignLaunchParams::Mode }
19
+
20
+ # @!attribute selection
21
+ #
22
+ # @return [Revox::Models::CampaignLaunchParams::Selection]
23
+ required :selection, -> { Revox::CampaignLaunchParams::Selection }
24
+
25
+ # @!attribute scheduled_at
26
+ # When to place the calls (ISO 8601). Omit to launch now. ai_first only — a speed
27
+ # dial session cannot be scheduled.
28
+ #
29
+ # @return [Time, nil]
30
+ optional :scheduled_at, Time
31
+
32
+ # @!method initialize(id:, mode:, selection:, scheduled_at: nil, request_options: {})
33
+ # Some parameter documentations has been truncated, see
34
+ # {Revox::Models::CampaignLaunchParams} for more details.
35
+ #
36
+ # @param id [String]
37
+ #
38
+ # @param mode [Symbol, Revox::Models::CampaignLaunchParams::Mode]
39
+ #
40
+ # @param selection [Revox::Models::CampaignLaunchParams::Selection]
41
+ #
42
+ # @param scheduled_at [Time] When to place the calls (ISO 8601). Omit to launch now. ai_first only — a speed
43
+ #
44
+ # @param request_options [Revox::RequestOptions, Hash{Symbol=>Object}]
45
+
46
+ module Mode
47
+ extend Revox::Internal::Type::Enum
48
+
49
+ AI_FIRST = :ai_first
50
+ SPEED_DIAL = :speed_dial
51
+
52
+ # @!method self.values
53
+ # @return [Array<Symbol>]
54
+ end
55
+
56
+ class Selection < Revox::Internal::Type::BaseModel
57
+ # @!attribute filters
58
+ #
59
+ # @return [Revox::Models::CampaignLaunchParams::Selection::Filters]
60
+ required :filters, -> { Revox::CampaignLaunchParams::Selection::Filters }
61
+
62
+ # @!attribute rows
63
+ #
64
+ # @return [Revox::Models::CampaignLaunchParams::Selection::Rows]
65
+ required :rows, -> { Revox::CampaignLaunchParams::Selection::Rows }
66
+
67
+ # @!method initialize(filters:, rows:)
68
+ # @param filters [Revox::Models::CampaignLaunchParams::Selection::Filters]
69
+ # @param rows [Revox::Models::CampaignLaunchParams::Selection::Rows]
70
+
71
+ # @see Revox::Models::CampaignLaunchParams::Selection#filters
72
+ class Filters < Revox::Internal::Type::BaseModel
73
+ # @!attribute assignee_ids
74
+ #
75
+ # @return [Array<String>]
76
+ required :assignee_ids, Revox::Internal::Type::ArrayOf[String]
77
+
78
+ # @!attribute directions
79
+ #
80
+ # @return [Array<Symbol, Revox::Models::CampaignLaunchParams::Selection::Filters::Direction>]
81
+ required :directions,
82
+ -> { Revox::Internal::Type::ArrayOf[enum: Revox::CampaignLaunchParams::Selection::Filters::Direction] }
83
+
84
+ # @!attribute outcomes
85
+ #
86
+ # @return [Array<Symbol, Revox::Models::CampaignLaunchParams::Selection::Filters::Outcome>]
87
+ required :outcomes,
88
+ -> { Revox::Internal::Type::ArrayOf[enum: Revox::CampaignLaunchParams::Selection::Filters::Outcome] }
89
+
90
+ # @!attribute results
91
+ #
92
+ # @return [Array<Symbol, Revox::Models::CampaignLaunchParams::Selection::Filters::Result>]
93
+ required :results,
94
+ -> { Revox::Internal::Type::ArrayOf[enum: Revox::CampaignLaunchParams::Selection::Filters::Result] }
95
+
96
+ # @!attribute statuses
97
+ #
98
+ # @return [Array<Symbol, Revox::Models::CampaignLaunchParams::Selection::Filters::Status>]
99
+ required :statuses,
100
+ -> { Revox::Internal::Type::ArrayOf[enum: Revox::CampaignLaunchParams::Selection::Filters::Status] }
101
+
102
+ # @!attribute query
103
+ #
104
+ # @return [String, nil]
105
+ optional :query, String
106
+
107
+ # @!method initialize(assignee_ids:, directions:, outcomes:, results:, statuses:, query: nil)
108
+ # @param assignee_ids [Array<String>]
109
+ # @param directions [Array<Symbol, Revox::Models::CampaignLaunchParams::Selection::Filters::Direction>]
110
+ # @param outcomes [Array<Symbol, Revox::Models::CampaignLaunchParams::Selection::Filters::Outcome>]
111
+ # @param results [Array<Symbol, Revox::Models::CampaignLaunchParams::Selection::Filters::Result>]
112
+ # @param statuses [Array<Symbol, Revox::Models::CampaignLaunchParams::Selection::Filters::Status>]
113
+ # @param query [String]
114
+
115
+ module Direction
116
+ extend Revox::Internal::Type::Enum
117
+
118
+ INBOUND = :inbound
119
+ OUTBOUND = :outbound
120
+
121
+ # @!method self.values
122
+ # @return [Array<Symbol>]
123
+ end
124
+
125
+ module Outcome
126
+ extend Revox::Internal::Type::Enum
127
+
128
+ NOT_INTERESTED = :not_interested
129
+ INTERESTED = :interested
130
+ COMPLETED = :completed
131
+ REQUESTED_CALLBACK_LATER = :requested_callback_later
132
+ NONE = :none
133
+
134
+ # @!method self.values
135
+ # @return [Array<Symbol>]
136
+ end
137
+
138
+ module Result
139
+ extend Revox::Internal::Type::Enum
140
+
141
+ IVR = :IVR
142
+ VOICEMAIL = :voicemail
143
+ HUMAN = :human
144
+ UNKNOWN = :unknown
145
+ IOS_SCREENING_FILTER = :"ios-screening-filter"
146
+ NONE = :none
147
+
148
+ # @!method self.values
149
+ # @return [Array<Symbol>]
150
+ end
151
+
152
+ module Status
153
+ extend Revox::Internal::Type::Enum
154
+
155
+ INITIALIZING = :initializing
156
+ QUEUED_FOR_CALLING = :queued_for_calling
157
+ CALLING = :calling
158
+ POST_PROCESSING = :post_processing
159
+ NOT_LAUNCHED = :not_launched
160
+ SCHEDULED = :scheduled
161
+ PAUSED = :paused
162
+ COMPLETED = :completed
163
+ CANCELLED = :cancelled
164
+ ERRORED = :errored
165
+
166
+ # @!method self.values
167
+ # @return [Array<Symbol>]
168
+ end
169
+ end
170
+
171
+ # @see Revox::Models::CampaignLaunchParams::Selection#rows
172
+ class Rows < Revox::Internal::Type::BaseModel
173
+ # @!attribute call_ids
174
+ #
175
+ # @return [Array<String>]
176
+ required :call_ids, Revox::Internal::Type::ArrayOf[String]
177
+
178
+ # @!attribute mode
179
+ #
180
+ # @return [Symbol, Revox::Models::CampaignLaunchParams::Selection::Rows::Mode]
181
+ required :mode, enum: -> { Revox::CampaignLaunchParams::Selection::Rows::Mode }
182
+
183
+ # @!method initialize(call_ids:, mode:)
184
+ # @param call_ids [Array<String>]
185
+ # @param mode [Symbol, Revox::Models::CampaignLaunchParams::Selection::Rows::Mode]
186
+
187
+ # @see Revox::Models::CampaignLaunchParams::Selection::Rows#mode
188
+ module Mode
189
+ extend Revox::Internal::Type::Enum
190
+
191
+ ALL_EXCEPT = :all_except
192
+ ONLY = :only
193
+
194
+ # @!method self.values
195
+ # @return [Array<Symbol>]
196
+ end
197
+ end
198
+ end
199
+ end
200
+ end
201
+ end