handinger 0.0.2

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (131) hide show
  1. checksums.yaml +7 -0
  2. data/.ignore +2 -0
  3. data/CHANGELOG.md +10 -0
  4. data/README.md +236 -0
  5. data/SECURITY.md +23 -0
  6. data/lib/handinger/client.rb +74 -0
  7. data/lib/handinger/errors.rb +228 -0
  8. data/lib/handinger/file_part.rb +58 -0
  9. data/lib/handinger/internal/stream.rb +29 -0
  10. data/lib/handinger/internal/transport/base_client.rb +575 -0
  11. data/lib/handinger/internal/transport/pooled_net_requester.rb +210 -0
  12. data/lib/handinger/internal/type/array_of.rb +168 -0
  13. data/lib/handinger/internal/type/base_model.rb +531 -0
  14. data/lib/handinger/internal/type/base_page.rb +55 -0
  15. data/lib/handinger/internal/type/base_stream.rb +83 -0
  16. data/lib/handinger/internal/type/boolean.rb +77 -0
  17. data/lib/handinger/internal/type/converter.rb +327 -0
  18. data/lib/handinger/internal/type/enum.rb +131 -0
  19. data/lib/handinger/internal/type/file_input.rb +111 -0
  20. data/lib/handinger/internal/type/hash_of.rb +188 -0
  21. data/lib/handinger/internal/type/request_parameters.rb +42 -0
  22. data/lib/handinger/internal/type/union.rb +262 -0
  23. data/lib/handinger/internal/type/unknown.rb +81 -0
  24. data/lib/handinger/internal/util.rb +966 -0
  25. data/lib/handinger/internal.rb +20 -0
  26. data/lib/handinger/models/create_worker.rb +40 -0
  27. data/lib/handinger/models/worker.rb +360 -0
  28. data/lib/handinger/models/worker_continue_params.rb +20 -0
  29. data/lib/handinger/models/worker_create_params.rb +14 -0
  30. data/lib/handinger/models/worker_retrieve_email_params.rb +20 -0
  31. data/lib/handinger/models/worker_retrieve_email_response.rb +7 -0
  32. data/lib/handinger/models/worker_retrieve_file_params.rb +26 -0
  33. data/lib/handinger/models/worker_retrieve_params.rb +29 -0
  34. data/lib/handinger/models/worker_stream_updates_params.rb +20 -0
  35. data/lib/handinger/models/worker_stream_updates_response.rb +7 -0
  36. data/lib/handinger/models/workers/schedule_cancel_params.rb +28 -0
  37. data/lib/handinger/models/workers/schedule_cancel_response.rb +18 -0
  38. data/lib/handinger/models/workers/schedule_create_params.rb +133 -0
  39. data/lib/handinger/models/workers/schedule_list_params.rb +22 -0
  40. data/lib/handinger/models/workers/schedule_list_response.rb +24 -0
  41. data/lib/handinger/models/workers/worker_schedule.rb +233 -0
  42. data/lib/handinger/models.rb +59 -0
  43. data/lib/handinger/request_options.rb +77 -0
  44. data/lib/handinger/resources/workers/schedules.rb +92 -0
  45. data/lib/handinger/resources/workers.rb +167 -0
  46. data/lib/handinger/version.rb +5 -0
  47. data/lib/handinger.rb +75 -0
  48. data/manifest.yaml +17 -0
  49. data/rbi/handinger/client.rbi +49 -0
  50. data/rbi/handinger/errors.rbi +205 -0
  51. data/rbi/handinger/file_part.rbi +37 -0
  52. data/rbi/handinger/internal/stream.rbi +20 -0
  53. data/rbi/handinger/internal/transport/base_client.rbi +314 -0
  54. data/rbi/handinger/internal/transport/pooled_net_requester.rbi +83 -0
  55. data/rbi/handinger/internal/type/array_of.rbi +104 -0
  56. data/rbi/handinger/internal/type/base_model.rbi +308 -0
  57. data/rbi/handinger/internal/type/base_page.rbi +42 -0
  58. data/rbi/handinger/internal/type/base_stream.rbi +75 -0
  59. data/rbi/handinger/internal/type/boolean.rbi +58 -0
  60. data/rbi/handinger/internal/type/converter.rbi +216 -0
  61. data/rbi/handinger/internal/type/enum.rbi +82 -0
  62. data/rbi/handinger/internal/type/file_input.rbi +59 -0
  63. data/rbi/handinger/internal/type/hash_of.rbi +104 -0
  64. data/rbi/handinger/internal/type/request_parameters.rbi +29 -0
  65. data/rbi/handinger/internal/type/union.rbi +128 -0
  66. data/rbi/handinger/internal/type/unknown.rbi +58 -0
  67. data/rbi/handinger/internal/util.rbi +515 -0
  68. data/rbi/handinger/internal.rbi +18 -0
  69. data/rbi/handinger/models/create_worker.rbi +72 -0
  70. data/rbi/handinger/models/worker.rbi +546 -0
  71. data/rbi/handinger/models/worker_continue_params.rbi +35 -0
  72. data/rbi/handinger/models/worker_create_params.rbi +27 -0
  73. data/rbi/handinger/models/worker_retrieve_email_params.rbi +38 -0
  74. data/rbi/handinger/models/worker_retrieve_email_response.rbi +7 -0
  75. data/rbi/handinger/models/worker_retrieve_file_params.rbi +46 -0
  76. data/rbi/handinger/models/worker_retrieve_params.rbi +52 -0
  77. data/rbi/handinger/models/worker_stream_updates_params.rbi +38 -0
  78. data/rbi/handinger/models/worker_stream_updates_response.rbi +7 -0
  79. data/rbi/handinger/models/workers/schedule_cancel_params.rbi +48 -0
  80. data/rbi/handinger/models/workers/schedule_cancel_response.rbi +28 -0
  81. data/rbi/handinger/models/workers/schedule_create_params.rbi +270 -0
  82. data/rbi/handinger/models/workers/schedule_list_params.rbi +40 -0
  83. data/rbi/handinger/models/workers/schedule_list_response.rbi +51 -0
  84. data/rbi/handinger/models/workers/worker_schedule.rbi +461 -0
  85. data/rbi/handinger/models.rbi +21 -0
  86. data/rbi/handinger/request_options.rbi +59 -0
  87. data/rbi/handinger/resources/workers/schedules.rbi +72 -0
  88. data/rbi/handinger/resources/workers.rbi +112 -0
  89. data/rbi/handinger/version.rbi +5 -0
  90. data/sig/handinger/client.rbs +26 -0
  91. data/sig/handinger/errors.rbs +117 -0
  92. data/sig/handinger/file_part.rbs +21 -0
  93. data/sig/handinger/internal/stream.rbs +9 -0
  94. data/sig/handinger/internal/transport/base_client.rbs +133 -0
  95. data/sig/handinger/internal/transport/pooled_net_requester.rbs +48 -0
  96. data/sig/handinger/internal/type/array_of.rbs +48 -0
  97. data/sig/handinger/internal/type/base_model.rbs +102 -0
  98. data/sig/handinger/internal/type/base_page.rbs +24 -0
  99. data/sig/handinger/internal/type/base_stream.rbs +38 -0
  100. data/sig/handinger/internal/type/boolean.rbs +26 -0
  101. data/sig/handinger/internal/type/converter.rbs +79 -0
  102. data/sig/handinger/internal/type/enum.rbs +32 -0
  103. data/sig/handinger/internal/type/file_input.rbs +25 -0
  104. data/sig/handinger/internal/type/hash_of.rbs +48 -0
  105. data/sig/handinger/internal/type/request_parameters.rbs +19 -0
  106. data/sig/handinger/internal/type/union.rbs +52 -0
  107. data/sig/handinger/internal/type/unknown.rbs +26 -0
  108. data/sig/handinger/internal/util.rbs +199 -0
  109. data/sig/handinger/internal.rbs +9 -0
  110. data/sig/handinger/models/create_worker.rbs +49 -0
  111. data/sig/handinger/models/worker.rbs +364 -0
  112. data/sig/handinger/models/worker_continue_params.rbs +25 -0
  113. data/sig/handinger/models/worker_create_params.rbs +15 -0
  114. data/sig/handinger/models/worker_retrieve_email_params.rbs +23 -0
  115. data/sig/handinger/models/worker_retrieve_email_response.rbs +5 -0
  116. data/sig/handinger/models/worker_retrieve_file_params.rbs +28 -0
  117. data/sig/handinger/models/worker_retrieve_params.rbs +30 -0
  118. data/sig/handinger/models/worker_stream_updates_params.rbs +23 -0
  119. data/sig/handinger/models/worker_stream_updates_response.rbs +5 -0
  120. data/sig/handinger/models/workers/schedule_cancel_params.rbs +30 -0
  121. data/sig/handinger/models/workers/schedule_cancel_response.rbs +15 -0
  122. data/sig/handinger/models/workers/schedule_create_params.rbs +123 -0
  123. data/sig/handinger/models/workers/schedule_list_params.rbs +25 -0
  124. data/sig/handinger/models/workers/schedule_list_response.rbs +27 -0
  125. data/sig/handinger/models/workers/worker_schedule.rbs +234 -0
  126. data/sig/handinger/models.rbs +19 -0
  127. data/sig/handinger/request_options.rbs +34 -0
  128. data/sig/handinger/resources/workers/schedules.rbs +28 -0
  129. data/sig/handinger/resources/workers.rbs +46 -0
  130. data/sig/handinger/version.rbs +3 -0
  131. metadata +202 -0
@@ -0,0 +1,461 @@
1
+ # typed: strong
2
+
3
+ module Handinger
4
+ module Models
5
+ WorkerSchedule = Workers::WorkerSchedule
6
+
7
+ module Workers
8
+ module WorkerSchedule
9
+ extend Handinger::Internal::Type::Union
10
+
11
+ Variants =
12
+ T.type_alias do
13
+ T.any(
14
+ Handinger::Workers::WorkerSchedule::Scheduled,
15
+ Handinger::Workers::WorkerSchedule::Delayed,
16
+ Handinger::Workers::WorkerSchedule::Cron,
17
+ Handinger::Workers::WorkerSchedule::Interval
18
+ )
19
+ end
20
+
21
+ class Scheduled < Handinger::Internal::Type::BaseModel
22
+ OrHash =
23
+ T.type_alias do
24
+ T.any(
25
+ Handinger::Workers::WorkerSchedule::Scheduled,
26
+ Handinger::Internal::AnyHash
27
+ )
28
+ end
29
+
30
+ sig { returns(String) }
31
+ attr_accessor :id
32
+
33
+ sig do
34
+ returns(
35
+ Handinger::Workers::WorkerSchedule::Scheduled::Budget::TaggedSymbol
36
+ )
37
+ end
38
+ attr_accessor :budget
39
+
40
+ sig { returns(String) }
41
+ attr_accessor :input
42
+
43
+ sig { returns(Time) }
44
+ attr_accessor :next_run_at
45
+
46
+ sig { returns(Symbol) }
47
+ attr_accessor :type
48
+
49
+ sig do
50
+ params(
51
+ id: String,
52
+ budget:
53
+ Handinger::Workers::WorkerSchedule::Scheduled::Budget::OrSymbol,
54
+ input: String,
55
+ next_run_at: Time,
56
+ type: Symbol
57
+ ).returns(T.attached_class)
58
+ end
59
+ def self.new(id:, budget:, input:, next_run_at:, type: :scheduled)
60
+ end
61
+
62
+ sig do
63
+ override.returns(
64
+ {
65
+ id: String,
66
+ budget:
67
+ Handinger::Workers::WorkerSchedule::Scheduled::Budget::TaggedSymbol,
68
+ input: String,
69
+ next_run_at: Time,
70
+ type: Symbol
71
+ }
72
+ )
73
+ end
74
+ def to_hash
75
+ end
76
+
77
+ module Budget
78
+ extend Handinger::Internal::Type::Enum
79
+
80
+ TaggedSymbol =
81
+ T.type_alias do
82
+ T.all(
83
+ Symbol,
84
+ Handinger::Workers::WorkerSchedule::Scheduled::Budget
85
+ )
86
+ end
87
+ OrSymbol = T.type_alias { T.any(Symbol, String) }
88
+
89
+ LOW =
90
+ T.let(
91
+ :low,
92
+ Handinger::Workers::WorkerSchedule::Scheduled::Budget::TaggedSymbol
93
+ )
94
+ STANDARD =
95
+ T.let(
96
+ :standard,
97
+ Handinger::Workers::WorkerSchedule::Scheduled::Budget::TaggedSymbol
98
+ )
99
+ HIGH =
100
+ T.let(
101
+ :high,
102
+ Handinger::Workers::WorkerSchedule::Scheduled::Budget::TaggedSymbol
103
+ )
104
+ UNLIMITED =
105
+ T.let(
106
+ :unlimited,
107
+ Handinger::Workers::WorkerSchedule::Scheduled::Budget::TaggedSymbol
108
+ )
109
+
110
+ sig do
111
+ override.returns(
112
+ T::Array[
113
+ Handinger::Workers::WorkerSchedule::Scheduled::Budget::TaggedSymbol
114
+ ]
115
+ )
116
+ end
117
+ def self.values
118
+ end
119
+ end
120
+ end
121
+
122
+ class Delayed < Handinger::Internal::Type::BaseModel
123
+ OrHash =
124
+ T.type_alias do
125
+ T.any(
126
+ Handinger::Workers::WorkerSchedule::Delayed,
127
+ Handinger::Internal::AnyHash
128
+ )
129
+ end
130
+
131
+ sig { returns(String) }
132
+ attr_accessor :id
133
+
134
+ sig do
135
+ returns(
136
+ Handinger::Workers::WorkerSchedule::Delayed::Budget::TaggedSymbol
137
+ )
138
+ end
139
+ attr_accessor :budget
140
+
141
+ sig { returns(Integer) }
142
+ attr_accessor :delay_in_seconds
143
+
144
+ sig { returns(String) }
145
+ attr_accessor :input
146
+
147
+ sig { returns(Time) }
148
+ attr_accessor :next_run_at
149
+
150
+ sig { returns(Symbol) }
151
+ attr_accessor :type
152
+
153
+ sig do
154
+ params(
155
+ id: String,
156
+ budget:
157
+ Handinger::Workers::WorkerSchedule::Delayed::Budget::OrSymbol,
158
+ delay_in_seconds: Integer,
159
+ input: String,
160
+ next_run_at: Time,
161
+ type: Symbol
162
+ ).returns(T.attached_class)
163
+ end
164
+ def self.new(
165
+ id:,
166
+ budget:,
167
+ delay_in_seconds:,
168
+ input:,
169
+ next_run_at:,
170
+ type: :delayed
171
+ )
172
+ end
173
+
174
+ sig do
175
+ override.returns(
176
+ {
177
+ id: String,
178
+ budget:
179
+ Handinger::Workers::WorkerSchedule::Delayed::Budget::TaggedSymbol,
180
+ delay_in_seconds: Integer,
181
+ input: String,
182
+ next_run_at: Time,
183
+ type: Symbol
184
+ }
185
+ )
186
+ end
187
+ def to_hash
188
+ end
189
+
190
+ module Budget
191
+ extend Handinger::Internal::Type::Enum
192
+
193
+ TaggedSymbol =
194
+ T.type_alias do
195
+ T.all(
196
+ Symbol,
197
+ Handinger::Workers::WorkerSchedule::Delayed::Budget
198
+ )
199
+ end
200
+ OrSymbol = T.type_alias { T.any(Symbol, String) }
201
+
202
+ LOW =
203
+ T.let(
204
+ :low,
205
+ Handinger::Workers::WorkerSchedule::Delayed::Budget::TaggedSymbol
206
+ )
207
+ STANDARD =
208
+ T.let(
209
+ :standard,
210
+ Handinger::Workers::WorkerSchedule::Delayed::Budget::TaggedSymbol
211
+ )
212
+ HIGH =
213
+ T.let(
214
+ :high,
215
+ Handinger::Workers::WorkerSchedule::Delayed::Budget::TaggedSymbol
216
+ )
217
+ UNLIMITED =
218
+ T.let(
219
+ :unlimited,
220
+ Handinger::Workers::WorkerSchedule::Delayed::Budget::TaggedSymbol
221
+ )
222
+
223
+ sig do
224
+ override.returns(
225
+ T::Array[
226
+ Handinger::Workers::WorkerSchedule::Delayed::Budget::TaggedSymbol
227
+ ]
228
+ )
229
+ end
230
+ def self.values
231
+ end
232
+ end
233
+ end
234
+
235
+ class Cron < Handinger::Internal::Type::BaseModel
236
+ OrHash =
237
+ T.type_alias do
238
+ T.any(
239
+ Handinger::Workers::WorkerSchedule::Cron,
240
+ Handinger::Internal::AnyHash
241
+ )
242
+ end
243
+
244
+ sig { returns(String) }
245
+ attr_accessor :id
246
+
247
+ sig do
248
+ returns(
249
+ Handinger::Workers::WorkerSchedule::Cron::Budget::TaggedSymbol
250
+ )
251
+ end
252
+ attr_accessor :budget
253
+
254
+ sig { returns(String) }
255
+ attr_accessor :cron
256
+
257
+ sig { returns(String) }
258
+ attr_accessor :input
259
+
260
+ sig { returns(Time) }
261
+ attr_accessor :next_run_at
262
+
263
+ sig { returns(Symbol) }
264
+ attr_accessor :type
265
+
266
+ sig do
267
+ params(
268
+ id: String,
269
+ budget:
270
+ Handinger::Workers::WorkerSchedule::Cron::Budget::OrSymbol,
271
+ cron: String,
272
+ input: String,
273
+ next_run_at: Time,
274
+ type: Symbol
275
+ ).returns(T.attached_class)
276
+ end
277
+ def self.new(id:, budget:, cron:, input:, next_run_at:, type: :cron)
278
+ end
279
+
280
+ sig do
281
+ override.returns(
282
+ {
283
+ id: String,
284
+ budget:
285
+ Handinger::Workers::WorkerSchedule::Cron::Budget::TaggedSymbol,
286
+ cron: String,
287
+ input: String,
288
+ next_run_at: Time,
289
+ type: Symbol
290
+ }
291
+ )
292
+ end
293
+ def to_hash
294
+ end
295
+
296
+ module Budget
297
+ extend Handinger::Internal::Type::Enum
298
+
299
+ TaggedSymbol =
300
+ T.type_alias do
301
+ T.all(Symbol, Handinger::Workers::WorkerSchedule::Cron::Budget)
302
+ end
303
+ OrSymbol = T.type_alias { T.any(Symbol, String) }
304
+
305
+ LOW =
306
+ T.let(
307
+ :low,
308
+ Handinger::Workers::WorkerSchedule::Cron::Budget::TaggedSymbol
309
+ )
310
+ STANDARD =
311
+ T.let(
312
+ :standard,
313
+ Handinger::Workers::WorkerSchedule::Cron::Budget::TaggedSymbol
314
+ )
315
+ HIGH =
316
+ T.let(
317
+ :high,
318
+ Handinger::Workers::WorkerSchedule::Cron::Budget::TaggedSymbol
319
+ )
320
+ UNLIMITED =
321
+ T.let(
322
+ :unlimited,
323
+ Handinger::Workers::WorkerSchedule::Cron::Budget::TaggedSymbol
324
+ )
325
+
326
+ sig do
327
+ override.returns(
328
+ T::Array[
329
+ Handinger::Workers::WorkerSchedule::Cron::Budget::TaggedSymbol
330
+ ]
331
+ )
332
+ end
333
+ def self.values
334
+ end
335
+ end
336
+ end
337
+
338
+ class Interval < Handinger::Internal::Type::BaseModel
339
+ OrHash =
340
+ T.type_alias do
341
+ T.any(
342
+ Handinger::Workers::WorkerSchedule::Interval,
343
+ Handinger::Internal::AnyHash
344
+ )
345
+ end
346
+
347
+ sig { returns(String) }
348
+ attr_accessor :id
349
+
350
+ sig do
351
+ returns(
352
+ Handinger::Workers::WorkerSchedule::Interval::Budget::TaggedSymbol
353
+ )
354
+ end
355
+ attr_accessor :budget
356
+
357
+ sig { returns(String) }
358
+ attr_accessor :input
359
+
360
+ sig { returns(Integer) }
361
+ attr_accessor :interval_seconds
362
+
363
+ sig { returns(Time) }
364
+ attr_accessor :next_run_at
365
+
366
+ sig { returns(Symbol) }
367
+ attr_accessor :type
368
+
369
+ sig do
370
+ params(
371
+ id: String,
372
+ budget:
373
+ Handinger::Workers::WorkerSchedule::Interval::Budget::OrSymbol,
374
+ input: String,
375
+ interval_seconds: Integer,
376
+ next_run_at: Time,
377
+ type: Symbol
378
+ ).returns(T.attached_class)
379
+ end
380
+ def self.new(
381
+ id:,
382
+ budget:,
383
+ input:,
384
+ interval_seconds:,
385
+ next_run_at:,
386
+ type: :interval
387
+ )
388
+ end
389
+
390
+ sig do
391
+ override.returns(
392
+ {
393
+ id: String,
394
+ budget:
395
+ Handinger::Workers::WorkerSchedule::Interval::Budget::TaggedSymbol,
396
+ input: String,
397
+ interval_seconds: Integer,
398
+ next_run_at: Time,
399
+ type: Symbol
400
+ }
401
+ )
402
+ end
403
+ def to_hash
404
+ end
405
+
406
+ module Budget
407
+ extend Handinger::Internal::Type::Enum
408
+
409
+ TaggedSymbol =
410
+ T.type_alias do
411
+ T.all(
412
+ Symbol,
413
+ Handinger::Workers::WorkerSchedule::Interval::Budget
414
+ )
415
+ end
416
+ OrSymbol = T.type_alias { T.any(Symbol, String) }
417
+
418
+ LOW =
419
+ T.let(
420
+ :low,
421
+ Handinger::Workers::WorkerSchedule::Interval::Budget::TaggedSymbol
422
+ )
423
+ STANDARD =
424
+ T.let(
425
+ :standard,
426
+ Handinger::Workers::WorkerSchedule::Interval::Budget::TaggedSymbol
427
+ )
428
+ HIGH =
429
+ T.let(
430
+ :high,
431
+ Handinger::Workers::WorkerSchedule::Interval::Budget::TaggedSymbol
432
+ )
433
+ UNLIMITED =
434
+ T.let(
435
+ :unlimited,
436
+ Handinger::Workers::WorkerSchedule::Interval::Budget::TaggedSymbol
437
+ )
438
+
439
+ sig do
440
+ override.returns(
441
+ T::Array[
442
+ Handinger::Workers::WorkerSchedule::Interval::Budget::TaggedSymbol
443
+ ]
444
+ )
445
+ end
446
+ def self.values
447
+ end
448
+ end
449
+ end
450
+
451
+ sig do
452
+ override.returns(
453
+ T::Array[Handinger::Workers::WorkerSchedule::Variants]
454
+ )
455
+ end
456
+ def self.variants
457
+ end
458
+ end
459
+ end
460
+ end
461
+ end
@@ -0,0 +1,21 @@
1
+ # typed: strong
2
+
3
+ module Handinger
4
+ CreateWorker = Handinger::Models::CreateWorker
5
+
6
+ Worker = Handinger::Models::Worker
7
+
8
+ WorkerContinueParams = Handinger::Models::WorkerContinueParams
9
+
10
+ WorkerCreateParams = Handinger::Models::WorkerCreateParams
11
+
12
+ WorkerRetrieveEmailParams = Handinger::Models::WorkerRetrieveEmailParams
13
+
14
+ WorkerRetrieveFileParams = Handinger::Models::WorkerRetrieveFileParams
15
+
16
+ WorkerRetrieveParams = Handinger::Models::WorkerRetrieveParams
17
+
18
+ Workers = Handinger::Models::Workers
19
+
20
+ WorkerStreamUpdatesParams = Handinger::Models::WorkerStreamUpdatesParams
21
+ end
@@ -0,0 +1,59 @@
1
+ # typed: strong
2
+
3
+ module Handinger
4
+ # Specify HTTP behaviour to use for a specific request. These options supplement
5
+ # or override those provided at the client level.
6
+ #
7
+ # When making a request, you can pass an actual {RequestOptions} instance, or
8
+ # simply pass a Hash with symbol keys matching the attributes on this class.
9
+ class RequestOptions < Handinger::Internal::Type::BaseModel
10
+ OrHash =
11
+ T.type_alias do
12
+ T.any(Handinger::RequestOptions, Handinger::Internal::AnyHash)
13
+ end
14
+
15
+ # @api private
16
+ sig { params(opts: Handinger::RequestOptions::OrHash).void }
17
+ def self.validate!(opts)
18
+ end
19
+
20
+ # Idempotency key to send with request and all associated retries. Will only be
21
+ # sent for write requests.
22
+ sig { returns(T.nilable(String)) }
23
+ attr_accessor :idempotency_key
24
+
25
+ # Extra query params to send with the request. These are `.merge`’d into any
26
+ # `query` given at the client level.
27
+ sig do
28
+ returns(
29
+ T.nilable(T::Hash[String, T.nilable(T.any(T::Array[String], String))])
30
+ )
31
+ end
32
+ attr_accessor :extra_query
33
+
34
+ # Extra headers to send with the request. These are `.merged`’d into any
35
+ # `extra_headers` given at the client level.
36
+ sig { returns(T.nilable(T::Hash[String, T.nilable(String)])) }
37
+ attr_accessor :extra_headers
38
+
39
+ # Extra data to send with the request. These are deep merged into any data
40
+ # generated as part of the normal request.
41
+ sig { returns(T.nilable(T.anything)) }
42
+ attr_accessor :extra_body
43
+
44
+ # Maximum number of retries to attempt after a failed initial request.
45
+ sig { returns(T.nilable(Integer)) }
46
+ attr_accessor :max_retries
47
+
48
+ # Request timeout in seconds.
49
+ sig { returns(T.nilable(Float)) }
50
+ attr_accessor :timeout
51
+
52
+ # Returns a new instance of RequestOptions.
53
+ sig do
54
+ params(values: Handinger::Internal::AnyHash).returns(T.attached_class)
55
+ end
56
+ def self.new(values = {})
57
+ end
58
+ end
59
+ end
@@ -0,0 +1,72 @@
1
+ # typed: strong
2
+
3
+ module Handinger
4
+ module Resources
5
+ class Workers
6
+ # Manage future and recurring worker tasks.
7
+ class Schedules
8
+ # Schedule a worker instruction for a future or recurring run.
9
+ sig do
10
+ params(
11
+ worker_id: String,
12
+ input: String,
13
+ when_:
14
+ T.any(
15
+ Handinger::Workers::ScheduleCreateParams::When::Scheduled::OrHash,
16
+ Handinger::Workers::ScheduleCreateParams::When::Delayed::OrHash,
17
+ Handinger::Workers::ScheduleCreateParams::When::Cron::OrHash,
18
+ Handinger::Workers::ScheduleCreateParams::When::Interval::OrHash
19
+ ),
20
+ budget: Handinger::Workers::ScheduleCreateParams::Budget::OrSymbol,
21
+ request_options: Handinger::RequestOptions::OrHash
22
+ ).returns(Handinger::Workers::WorkerSchedule::Variants)
23
+ end
24
+ def create(
25
+ # Worker id returned by the create worker endpoint.
26
+ worker_id,
27
+ input:,
28
+ when_:,
29
+ budget: nil,
30
+ request_options: {}
31
+ )
32
+ end
33
+
34
+ # List scheduled tasks for a worker.
35
+ sig do
36
+ params(
37
+ worker_id: String,
38
+ request_options: Handinger::RequestOptions::OrHash
39
+ ).returns(Handinger::Models::Workers::ScheduleListResponse)
40
+ end
41
+ def list(
42
+ # Worker id returned by the create worker endpoint.
43
+ worker_id,
44
+ request_options: {}
45
+ )
46
+ end
47
+
48
+ # Cancel a scheduled task for a worker.
49
+ sig do
50
+ params(
51
+ schedule_id: String,
52
+ worker_id: String,
53
+ request_options: Handinger::RequestOptions::OrHash
54
+ ).returns(Handinger::Models::Workers::ScheduleCancelResponse)
55
+ end
56
+ def cancel(
57
+ # Scheduled task id returned by the create schedule endpoint.
58
+ schedule_id,
59
+ # Worker id returned by the create worker endpoint.
60
+ worker_id:,
61
+ request_options: {}
62
+ )
63
+ end
64
+
65
+ # @api private
66
+ sig { params(client: Handinger::Client).returns(T.attached_class) }
67
+ def self.new(client:)
68
+ end
69
+ end
70
+ end
71
+ end
72
+ end