handinger 0.5.0 → 0.7.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 (42) hide show
  1. checksums.yaml +4 -4
  2. data/CHANGELOG.md +16 -0
  3. data/README.md +1 -1
  4. data/lib/handinger/models/worker.rb +23 -83
  5. data/lib/handinger/models/workers/update_webhook.rb +22 -0
  6. data/lib/handinger/models/workers/webhook.rb +32 -0
  7. data/lib/handinger/models/workers/webhook_delete_params.rb +22 -0
  8. data/lib/handinger/models/workers/webhook_execution.rb +102 -0
  9. data/lib/handinger/models/workers/webhook_execution_list.rb +42 -0
  10. data/lib/handinger/models/workers/webhook_list_executions_params.rb +31 -0
  11. data/lib/handinger/models/workers/webhook_regenerate_token_params.rb +22 -0
  12. data/lib/handinger/models/workers/webhook_retrieve_params.rb +22 -0
  13. data/lib/handinger/models/workers/webhook_update_params.rb +22 -0
  14. data/lib/handinger/resources/workers/webhooks.rb +138 -0
  15. data/lib/handinger/resources/workers.rb +5 -0
  16. data/lib/handinger/version.rb +1 -1
  17. data/lib/handinger.rb +10 -0
  18. data/rbi/handinger/models/worker.rbi +31 -158
  19. data/rbi/handinger/models/workers/update_webhook.rbi +34 -0
  20. data/rbi/handinger/models/workers/webhook.rbi +45 -0
  21. data/rbi/handinger/models/workers/webhook_delete_params.rbi +40 -0
  22. data/rbi/handinger/models/workers/webhook_execution.rbi +146 -0
  23. data/rbi/handinger/models/workers/webhook_execution_list.rbi +64 -0
  24. data/rbi/handinger/models/workers/webhook_list_executions_params.rbi +57 -0
  25. data/rbi/handinger/models/workers/webhook_regenerate_token_params.rbi +40 -0
  26. data/rbi/handinger/models/workers/webhook_retrieve_params.rbi +40 -0
  27. data/rbi/handinger/models/workers/webhook_update_params.rbi +40 -0
  28. data/rbi/handinger/resources/workers/webhooks.rbi +101 -0
  29. data/rbi/handinger/resources/workers.rbi +4 -0
  30. data/sig/handinger/models/worker.rbs +26 -107
  31. data/sig/handinger/models/workers/update_webhook.rbs +15 -0
  32. data/sig/handinger/models/workers/webhook.rbs +17 -0
  33. data/sig/handinger/models/workers/webhook_delete_params.rbs +25 -0
  34. data/sig/handinger/models/workers/webhook_execution.rbs +78 -0
  35. data/sig/handinger/models/workers/webhook_execution_list.rbs +37 -0
  36. data/sig/handinger/models/workers/webhook_list_executions_params.rbs +32 -0
  37. data/sig/handinger/models/workers/webhook_regenerate_token_params.rbs +25 -0
  38. data/sig/handinger/models/workers/webhook_retrieve_params.rbs +25 -0
  39. data/sig/handinger/models/workers/webhook_update_params.rbs +27 -0
  40. data/sig/handinger/resources/workers/webhooks.rbs +36 -0
  41. data/sig/handinger/resources/workers.rbs +2 -0
  42. metadata +31 -1
@@ -0,0 +1,138 @@
1
+ # frozen_string_literal: true
2
+
3
+ module Handinger
4
+ module Resources
5
+ class Workers
6
+ # Configure outbound webhooks delivered when a worker's tasks complete.
7
+ class Webhooks
8
+ # Retrieve the webhook URL and shared token configured for a worker. Both fields
9
+ # are `null` when no webhook is configured. Only the worker creator can read the
10
+ # webhook configuration.
11
+ #
12
+ # @overload retrieve(worker_id, request_options: {})
13
+ #
14
+ # @param worker_id [String] Worker id returned by the create worker endpoint.
15
+ #
16
+ # @param request_options [Handinger::RequestOptions, Hash{Symbol=>Object}, nil]
17
+ #
18
+ # @return [Handinger::Models::Workers::Webhook]
19
+ #
20
+ # @see Handinger::Models::Workers::WebhookRetrieveParams
21
+ def retrieve(worker_id, params = {})
22
+ @client.request(
23
+ method: :get,
24
+ path: ["api/workers/%1$s/webhook", worker_id],
25
+ model: Handinger::Workers::Webhook,
26
+ options: params[:request_options]
27
+ )
28
+ end
29
+
30
+ # Some parameter documentations has been truncated, see
31
+ # {Handinger::Models::Workers::WebhookUpdateParams} for more details.
32
+ #
33
+ # Set or replace the webhook URL for a worker. A fresh token is generated the
34
+ # first time a URL is set; subsequent updates keep the existing token. Pass
35
+ # `url: null` to clear the webhook (use the dedicated DELETE for the same effect).
36
+ # Only the worker creator can update the webhook.
37
+ #
38
+ # @overload update(worker_id, url:, request_options: {})
39
+ #
40
+ # @param worker_id [String] Worker id returned by the create worker endpoint.
41
+ #
42
+ # @param url [String, nil] HTTPS endpoint Handinger should POST to when a task finishes. Pass `null` to rem
43
+ #
44
+ # @param request_options [Handinger::RequestOptions, Hash{Symbol=>Object}, nil]
45
+ #
46
+ # @return [Handinger::Models::Workers::Webhook]
47
+ #
48
+ # @see Handinger::Models::Workers::WebhookUpdateParams
49
+ def update(worker_id, params)
50
+ parsed, options = Handinger::Workers::WebhookUpdateParams.dump_request(params)
51
+ @client.request(
52
+ method: :put,
53
+ path: ["api/workers/%1$s/webhook", worker_id],
54
+ body: parsed,
55
+ model: Handinger::Workers::Webhook,
56
+ options: options
57
+ )
58
+ end
59
+
60
+ # Remove the webhook from a worker. Both `url` and `token` are cleared and no
61
+ # further deliveries are attempted. Only the worker creator can delete the
62
+ # webhook.
63
+ #
64
+ # @overload delete(worker_id, request_options: {})
65
+ #
66
+ # @param worker_id [String] Worker id returned by the create worker endpoint.
67
+ #
68
+ # @param request_options [Handinger::RequestOptions, Hash{Symbol=>Object}, nil]
69
+ #
70
+ # @return [Handinger::Models::Workers::Webhook]
71
+ #
72
+ # @see Handinger::Models::Workers::WebhookDeleteParams
73
+ def delete(worker_id, params = {})
74
+ @client.request(
75
+ method: :delete,
76
+ path: ["api/workers/%1$s/webhook", worker_id],
77
+ model: Handinger::Workers::Webhook,
78
+ options: params[:request_options]
79
+ )
80
+ end
81
+
82
+ # List recent webhook delivery attempts for a worker, newest first, paginated 50
83
+ # per page. Only the worker creator can read execution history.
84
+ #
85
+ # @overload list_executions(worker_id, page: nil, request_options: {})
86
+ #
87
+ # @param worker_id [String] Worker id returned by the create worker endpoint.
88
+ #
89
+ # @param page [Integer] Page number (1-indexed). Defaults to 1.
90
+ #
91
+ # @param request_options [Handinger::RequestOptions, Hash{Symbol=>Object}, nil]
92
+ #
93
+ # @return [Handinger::Models::Workers::WebhookExecutionList]
94
+ #
95
+ # @see Handinger::Models::Workers::WebhookListExecutionsParams
96
+ def list_executions(worker_id, params = {})
97
+ parsed, options = Handinger::Workers::WebhookListExecutionsParams.dump_request(params)
98
+ query = Handinger::Internal::Util.encode_query_params(parsed)
99
+ @client.request(
100
+ method: :get,
101
+ path: ["api/workers/%1$s/webhook/executions", worker_id],
102
+ query: query,
103
+ model: Handinger::Workers::WebhookExecutionList,
104
+ options: options
105
+ )
106
+ end
107
+
108
+ # Issue a new shared token for the webhook, invalidating the previous one. The
109
+ # webhook URL is preserved. Only the worker creator can regenerate the token.
110
+ #
111
+ # @overload regenerate_token(worker_id, request_options: {})
112
+ #
113
+ # @param worker_id [String] Worker id returned by the create worker endpoint.
114
+ #
115
+ # @param request_options [Handinger::RequestOptions, Hash{Symbol=>Object}, nil]
116
+ #
117
+ # @return [Handinger::Models::Workers::Webhook]
118
+ #
119
+ # @see Handinger::Models::Workers::WebhookRegenerateTokenParams
120
+ def regenerate_token(worker_id, params = {})
121
+ @client.request(
122
+ method: :post,
123
+ path: ["api/workers/%1$s/webhook/regenerate-token", worker_id],
124
+ model: Handinger::Workers::Webhook,
125
+ options: params[:request_options]
126
+ )
127
+ end
128
+
129
+ # @api private
130
+ #
131
+ # @param client [Handinger::Client]
132
+ def initialize(client:)
133
+ @client = client
134
+ end
135
+ end
136
+ end
137
+ end
138
+ end
@@ -8,6 +8,10 @@ module Handinger
8
8
  # @return [Handinger::Resources::Workers::Schedules]
9
9
  attr_reader :schedules
10
10
 
11
+ # Configure outbound webhooks delivered when a worker's tasks complete.
12
+ # @return [Handinger::Resources::Workers::Webhooks]
13
+ attr_reader :webhooks
14
+
11
15
  # Some parameter documentations has been truncated, see
12
16
  # {Handinger::Models::WorkerCreateParams} for more details.
13
17
  #
@@ -159,6 +163,7 @@ module Handinger
159
163
  def initialize(client:)
160
164
  @client = client
161
165
  @schedules = Handinger::Resources::Workers::Schedules.new(client: client)
166
+ @webhooks = Handinger::Resources::Workers::Webhooks.new(client: client)
162
167
  end
163
168
  end
164
169
  end
@@ -1,5 +1,5 @@
1
1
  # frozen_string_literal: true
2
2
 
3
3
  module Handinger
4
- VERSION = "0.5.0"
4
+ VERSION = "0.7.0"
5
5
  end
data/lib/handinger.rb CHANGED
@@ -54,6 +54,7 @@ require_relative "handinger/internal/transport/pooled_net_requester"
54
54
  require_relative "handinger/client"
55
55
  require_relative "handinger/models/create_task"
56
56
  require_relative "handinger/models/create_worker"
57
+ require_relative "handinger/models/workers/update_webhook"
57
58
  require_relative "handinger/models/update_worker"
58
59
  require_relative "handinger/models/delete_task_response"
59
60
  require_relative "handinger/models/delete_worker_response"
@@ -73,6 +74,14 @@ require_relative "handinger/models/workers/schedule_cancel_response"
73
74
  require_relative "handinger/models/workers/schedule_create_params"
74
75
  require_relative "handinger/models/workers/schedule_list_params"
75
76
  require_relative "handinger/models/workers/schedule_list_response"
77
+ require_relative "handinger/models/workers/webhook"
78
+ require_relative "handinger/models/workers/webhook_delete_params"
79
+ require_relative "handinger/models/workers/webhook_execution"
80
+ require_relative "handinger/models/workers/webhook_execution_list"
81
+ require_relative "handinger/models/workers/webhook_list_executions_params"
82
+ require_relative "handinger/models/workers/webhook_regenerate_token_params"
83
+ require_relative "handinger/models/workers/webhook_retrieve_params"
84
+ require_relative "handinger/models/workers/webhook_update_params"
76
85
  require_relative "handinger/models/workers/worker_schedule"
77
86
  require_relative "handinger/models/worker_template"
78
87
  require_relative "handinger/models/worker_update_params"
@@ -80,3 +89,4 @@ require_relative "handinger/models"
80
89
  require_relative "handinger/resources/tasks"
81
90
  require_relative "handinger/resources/workers"
82
91
  require_relative "handinger/resources/workers/schedules"
92
+ require_relative "handinger/resources/workers/webhooks"
@@ -27,7 +27,7 @@ module Handinger
27
27
  sig { returns(T::Hash[Symbol, T.anything]) }
28
28
  attr_accessor :metadata
29
29
 
30
- sig { returns(Handinger::Worker::Object::TaggedSymbol) }
30
+ sig { returns(Symbol) }
31
31
  attr_accessor :object
32
32
 
33
33
  sig { returns(T::Array[Handinger::Worker::Output]) }
@@ -67,7 +67,6 @@ module Handinger
67
67
  incomplete_details: NilClass,
68
68
  messages: T::Array[T.anything],
69
69
  metadata: T::Hash[Symbol, T.anything],
70
- object: Handinger::Worker::Object::OrSymbol,
71
70
  output: T::Array[Handinger::Worker::Output::OrHash],
72
71
  output_text: String,
73
72
  running: T::Boolean,
@@ -75,7 +74,8 @@ module Handinger
75
74
  status: Handinger::Worker::Status::OrSymbol,
76
75
  structured_output: T.nilable(T::Hash[Symbol, T.anything]),
77
76
  url: String,
78
- usage: Handinger::Worker::Usage::OrHash
77
+ usage: Handinger::Worker::Usage::OrHash,
78
+ object: Symbol
79
79
  ).returns(T.attached_class)
80
80
  end
81
81
  def self.new(
@@ -86,7 +86,6 @@ module Handinger
86
86
  incomplete_details:,
87
87
  messages:,
88
88
  metadata:,
89
- object:,
90
89
  output:,
91
90
  output_text:,
92
91
  running:,
@@ -95,7 +94,8 @@ module Handinger
95
94
  structured_output:,
96
95
  # Web URL of the worker in the Handinger dashboard.
97
96
  url:,
98
- usage: nil
97
+ usage: nil,
98
+ object: :worker
99
99
  )
100
100
  end
101
101
 
@@ -109,7 +109,7 @@ module Handinger
109
109
  incomplete_details: NilClass,
110
110
  messages: T::Array[T.anything],
111
111
  metadata: T::Hash[Symbol, T.anything],
112
- object: Handinger::Worker::Object::TaggedSymbol,
112
+ object: Symbol,
113
113
  output: T::Array[Handinger::Worker::Output],
114
114
  output_text: String,
115
115
  running: T::Boolean,
@@ -158,21 +158,6 @@ module Handinger
158
158
  end
159
159
  end
160
160
 
161
- module Object
162
- extend Handinger::Internal::Type::Enum
163
-
164
- TaggedSymbol = T.type_alias { T.all(Symbol, Handinger::Worker::Object) }
165
- OrSymbol = T.type_alias { T.any(Symbol, String) }
166
-
167
- WORKER = T.let(:worker, Handinger::Worker::Object::TaggedSymbol)
168
-
169
- sig do
170
- override.returns(T::Array[Handinger::Worker::Object::TaggedSymbol])
171
- end
172
- def self.values
173
- end
174
- end
175
-
176
161
  class Output < Handinger::Internal::Type::BaseModel
177
162
  OrHash =
178
163
  T.type_alias do
@@ -185,25 +170,31 @@ module Handinger
185
170
  sig { returns(T::Array[Handinger::Worker::Output::Content]) }
186
171
  attr_accessor :content
187
172
 
188
- sig { returns(Handinger::Worker::Output::Role::TaggedSymbol) }
173
+ sig { returns(Symbol) }
189
174
  attr_accessor :role
190
175
 
191
- sig { returns(Handinger::Worker::Output::Status::TaggedSymbol) }
176
+ sig { returns(Symbol) }
192
177
  attr_accessor :status
193
178
 
194
- sig { returns(Handinger::Worker::Output::Type::TaggedSymbol) }
179
+ sig { returns(Symbol) }
195
180
  attr_accessor :type
196
181
 
197
182
  sig do
198
183
  params(
199
184
  id: String,
200
185
  content: T::Array[Handinger::Worker::Output::Content::OrHash],
201
- role: Handinger::Worker::Output::Role::OrSymbol,
202
- status: Handinger::Worker::Output::Status::OrSymbol,
203
- type: Handinger::Worker::Output::Type::OrSymbol
186
+ role: Symbol,
187
+ status: Symbol,
188
+ type: Symbol
204
189
  ).returns(T.attached_class)
205
190
  end
206
- def self.new(id:, content:, role:, status:, type:)
191
+ def self.new(
192
+ id:,
193
+ content:,
194
+ role: :assistant,
195
+ status: :completed,
196
+ type: :message
197
+ )
207
198
  end
208
199
 
209
200
  sig do
@@ -211,9 +202,9 @@ module Handinger
211
202
  {
212
203
  id: String,
213
204
  content: T::Array[Handinger::Worker::Output::Content],
214
- role: Handinger::Worker::Output::Role::TaggedSymbol,
215
- status: Handinger::Worker::Output::Status::TaggedSymbol,
216
- type: Handinger::Worker::Output::Type::TaggedSymbol
205
+ role: Symbol,
206
+ status: Symbol,
207
+ type: Symbol
217
208
  }
218
209
  )
219
210
  end
@@ -232,111 +223,16 @@ module Handinger
232
223
  sig { returns(String) }
233
224
  attr_accessor :text
234
225
 
235
- sig do
236
- returns(Handinger::Worker::Output::Content::Type::TaggedSymbol)
237
- end
226
+ sig { returns(Symbol) }
238
227
  attr_accessor :type
239
228
 
240
- sig do
241
- params(
242
- text: String,
243
- type: Handinger::Worker::Output::Content::Type::OrSymbol
244
- ).returns(T.attached_class)
245
- end
246
- def self.new(text:, type:)
229
+ sig { params(text: String, type: Symbol).returns(T.attached_class) }
230
+ def self.new(text:, type: :output_text)
247
231
  end
248
232
 
249
- sig do
250
- override.returns(
251
- {
252
- text: String,
253
- type: Handinger::Worker::Output::Content::Type::TaggedSymbol
254
- }
255
- )
256
- end
233
+ sig { override.returns({ text: String, type: Symbol }) }
257
234
  def to_hash
258
235
  end
259
-
260
- module Type
261
- extend Handinger::Internal::Type::Enum
262
-
263
- TaggedSymbol =
264
- T.type_alias do
265
- T.all(Symbol, Handinger::Worker::Output::Content::Type)
266
- end
267
- OrSymbol = T.type_alias { T.any(Symbol, String) }
268
-
269
- OUTPUT_TEXT =
270
- T.let(
271
- :output_text,
272
- Handinger::Worker::Output::Content::Type::TaggedSymbol
273
- )
274
-
275
- sig do
276
- override.returns(
277
- T::Array[Handinger::Worker::Output::Content::Type::TaggedSymbol]
278
- )
279
- end
280
- def self.values
281
- end
282
- end
283
- end
284
-
285
- module Role
286
- extend Handinger::Internal::Type::Enum
287
-
288
- TaggedSymbol =
289
- T.type_alias { T.all(Symbol, Handinger::Worker::Output::Role) }
290
- OrSymbol = T.type_alias { T.any(Symbol, String) }
291
-
292
- ASSISTANT =
293
- T.let(:assistant, Handinger::Worker::Output::Role::TaggedSymbol)
294
-
295
- sig do
296
- override.returns(
297
- T::Array[Handinger::Worker::Output::Role::TaggedSymbol]
298
- )
299
- end
300
- def self.values
301
- end
302
- end
303
-
304
- module Status
305
- extend Handinger::Internal::Type::Enum
306
-
307
- TaggedSymbol =
308
- T.type_alias { T.all(Symbol, Handinger::Worker::Output::Status) }
309
- OrSymbol = T.type_alias { T.any(Symbol, String) }
310
-
311
- COMPLETED =
312
- T.let(:completed, Handinger::Worker::Output::Status::TaggedSymbol)
313
-
314
- sig do
315
- override.returns(
316
- T::Array[Handinger::Worker::Output::Status::TaggedSymbol]
317
- )
318
- end
319
- def self.values
320
- end
321
- end
322
-
323
- module Type
324
- extend Handinger::Internal::Type::Enum
325
-
326
- TaggedSymbol =
327
- T.type_alias { T.all(Symbol, Handinger::Worker::Output::Type) }
328
- OrSymbol = T.type_alias { T.any(Symbol, String) }
329
-
330
- MESSAGE =
331
- T.let(:message, Handinger::Worker::Output::Type::TaggedSymbol)
332
-
333
- sig do
334
- override.returns(
335
- T::Array[Handinger::Worker::Output::Type::TaggedSymbol]
336
- )
337
- end
338
- def self.values
339
- end
340
236
  end
341
237
  end
342
238
 
@@ -352,7 +248,7 @@ module Handinger
352
248
  sig { returns(T.nilable(String)) }
353
249
  attr_accessor :title
354
250
 
355
- sig { returns(Handinger::Worker::Source::Type::TaggedSymbol) }
251
+ sig { returns(Symbol) }
356
252
  attr_accessor :type
357
253
 
358
254
  sig { returns(String) }
@@ -362,43 +258,20 @@ module Handinger
362
258
  params(
363
259
  id: String,
364
260
  title: T.nilable(String),
365
- type: Handinger::Worker::Source::Type::OrSymbol,
366
- url: String
261
+ url: String,
262
+ type: Symbol
367
263
  ).returns(T.attached_class)
368
264
  end
369
- def self.new(id:, title:, type:, url:)
265
+ def self.new(id:, title:, url:, type: :url)
370
266
  end
371
267
 
372
268
  sig do
373
269
  override.returns(
374
- {
375
- id: String,
376
- title: T.nilable(String),
377
- type: Handinger::Worker::Source::Type::TaggedSymbol,
378
- url: String
379
- }
270
+ { id: String, title: T.nilable(String), type: Symbol, url: String }
380
271
  )
381
272
  end
382
273
  def to_hash
383
274
  end
384
-
385
- module Type
386
- extend Handinger::Internal::Type::Enum
387
-
388
- TaggedSymbol =
389
- T.type_alias { T.all(Symbol, Handinger::Worker::Source::Type) }
390
- OrSymbol = T.type_alias { T.any(Symbol, String) }
391
-
392
- URL = T.let(:url, Handinger::Worker::Source::Type::TaggedSymbol)
393
-
394
- sig do
395
- override.returns(
396
- T::Array[Handinger::Worker::Source::Type::TaggedSymbol]
397
- )
398
- end
399
- def self.values
400
- end
401
- end
402
275
  end
403
276
 
404
277
  module Status
@@ -0,0 +1,34 @@
1
+ # typed: strong
2
+
3
+ module Handinger
4
+ module Models
5
+ module Workers
6
+ class UpdateWebhook < Handinger::Internal::Type::BaseModel
7
+ OrHash =
8
+ T.type_alias do
9
+ T.any(
10
+ Handinger::Workers::UpdateWebhook,
11
+ Handinger::Internal::AnyHash
12
+ )
13
+ end
14
+
15
+ # HTTPS endpoint Handinger should POST to when a task finishes. Pass `null` to
16
+ # remove the webhook and clear its token.
17
+ sig { returns(T.nilable(String)) }
18
+ attr_accessor :url
19
+
20
+ sig { params(url: T.nilable(String)).returns(T.attached_class) }
21
+ def self.new(
22
+ # HTTPS endpoint Handinger should POST to when a task finishes. Pass `null` to
23
+ # remove the webhook and clear its token.
24
+ url:
25
+ )
26
+ end
27
+
28
+ sig { override.returns({ url: T.nilable(String) }) }
29
+ def to_hash
30
+ end
31
+ end
32
+ end
33
+ end
34
+ end
@@ -0,0 +1,45 @@
1
+ # typed: strong
2
+
3
+ module Handinger
4
+ module Models
5
+ module Workers
6
+ class Webhook < Handinger::Internal::Type::BaseModel
7
+ OrHash =
8
+ T.type_alias do
9
+ T.any(Handinger::Workers::Webhook, Handinger::Internal::AnyHash)
10
+ end
11
+
12
+ # Shared secret sent in the `X-Handinger-Token` header on each delivery. `null`
13
+ # when no webhook is configured.
14
+ sig { returns(T.nilable(String)) }
15
+ attr_accessor :token
16
+
17
+ # HTTPS endpoint that receives webhook deliveries when a task completes. `null`
18
+ # when no webhook is configured.
19
+ sig { returns(T.nilable(String)) }
20
+ attr_accessor :url
21
+
22
+ sig do
23
+ params(token: T.nilable(String), url: T.nilable(String)).returns(
24
+ T.attached_class
25
+ )
26
+ end
27
+ def self.new(
28
+ # Shared secret sent in the `X-Handinger-Token` header on each delivery. `null`
29
+ # when no webhook is configured.
30
+ token:,
31
+ # HTTPS endpoint that receives webhook deliveries when a task completes. `null`
32
+ # when no webhook is configured.
33
+ url:
34
+ )
35
+ end
36
+
37
+ sig do
38
+ override.returns({ token: T.nilable(String), url: T.nilable(String) })
39
+ end
40
+ def to_hash
41
+ end
42
+ end
43
+ end
44
+ end
45
+ end
@@ -0,0 +1,40 @@
1
+ # typed: strong
2
+
3
+ module Handinger
4
+ module Models
5
+ module Workers
6
+ class WebhookDeleteParams < Handinger::Internal::Type::BaseModel
7
+ extend Handinger::Internal::Type::RequestParameters::Converter
8
+ include Handinger::Internal::Type::RequestParameters
9
+
10
+ OrHash =
11
+ T.type_alias do
12
+ T.any(
13
+ Handinger::Workers::WebhookDeleteParams,
14
+ Handinger::Internal::AnyHash
15
+ )
16
+ end
17
+
18
+ sig { returns(String) }
19
+ attr_accessor :worker_id
20
+
21
+ sig do
22
+ params(
23
+ worker_id: String,
24
+ request_options: Handinger::RequestOptions::OrHash
25
+ ).returns(T.attached_class)
26
+ end
27
+ def self.new(worker_id:, request_options: {})
28
+ end
29
+
30
+ sig do
31
+ override.returns(
32
+ { worker_id: String, request_options: Handinger::RequestOptions }
33
+ )
34
+ end
35
+ def to_hash
36
+ end
37
+ end
38
+ end
39
+ end
40
+ end