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,133 @@
1
+ # frozen_string_literal: true
2
+
3
+ module Handinger
4
+ module Models
5
+ module Workers
6
+ # @see Handinger::Resources::Workers::Schedules#create
7
+ class ScheduleCreateParams < Handinger::Internal::Type::BaseModel
8
+ extend Handinger::Internal::Type::RequestParameters::Converter
9
+ include Handinger::Internal::Type::RequestParameters
10
+
11
+ # @!attribute worker_id
12
+ #
13
+ # @return [String]
14
+ required :worker_id, String
15
+
16
+ # @!attribute input
17
+ #
18
+ # @return [String]
19
+ required :input, String
20
+
21
+ # @!attribute when_
22
+ #
23
+ # @return [Handinger::Models::Workers::ScheduleCreateParams::When::Scheduled, Handinger::Models::Workers::ScheduleCreateParams::When::Delayed, Handinger::Models::Workers::ScheduleCreateParams::When::Cron, Handinger::Models::Workers::ScheduleCreateParams::When::Interval]
24
+ required :when_, union: -> { Handinger::Workers::ScheduleCreateParams::When }, api_name: :when
25
+
26
+ # @!attribute budget
27
+ #
28
+ # @return [Symbol, Handinger::Models::Workers::ScheduleCreateParams::Budget, nil]
29
+ optional :budget, enum: -> { Handinger::Workers::ScheduleCreateParams::Budget }
30
+
31
+ # @!method initialize(worker_id:, input:, when_:, budget: nil, request_options: {})
32
+ # @param worker_id [String]
33
+ # @param input [String]
34
+ # @param when_ [Handinger::Models::Workers::ScheduleCreateParams::When::Scheduled, Handinger::Models::Workers::ScheduleCreateParams::When::Delayed, Handinger::Models::Workers::ScheduleCreateParams::When::Cron, Handinger::Models::Workers::ScheduleCreateParams::When::Interval]
35
+ # @param budget [Symbol, Handinger::Models::Workers::ScheduleCreateParams::Budget]
36
+ # @param request_options [Handinger::RequestOptions, Hash{Symbol=>Object}]
37
+
38
+ module When
39
+ extend Handinger::Internal::Type::Union
40
+
41
+ discriminator :type
42
+
43
+ variant :scheduled, -> { Handinger::Workers::ScheduleCreateParams::When::Scheduled }
44
+
45
+ variant :delayed, -> { Handinger::Workers::ScheduleCreateParams::When::Delayed }
46
+
47
+ variant :cron, -> { Handinger::Workers::ScheduleCreateParams::When::Cron }
48
+
49
+ variant :interval, -> { Handinger::Workers::ScheduleCreateParams::When::Interval }
50
+
51
+ class Scheduled < Handinger::Internal::Type::BaseModel
52
+ # @!attribute date
53
+ #
54
+ # @return [Time]
55
+ required :date, Time
56
+
57
+ # @!attribute type
58
+ #
59
+ # @return [Symbol, :scheduled]
60
+ required :type, const: :scheduled
61
+
62
+ # @!method initialize(date:, type: :scheduled)
63
+ # @param date [Time]
64
+ # @param type [Symbol, :scheduled]
65
+ end
66
+
67
+ class Delayed < Handinger::Internal::Type::BaseModel
68
+ # @!attribute delay_in_seconds
69
+ #
70
+ # @return [Integer]
71
+ required :delay_in_seconds, Integer, api_name: :delayInSeconds
72
+
73
+ # @!attribute type
74
+ #
75
+ # @return [Symbol, :delayed]
76
+ required :type, const: :delayed
77
+
78
+ # @!method initialize(delay_in_seconds:, type: :delayed)
79
+ # @param delay_in_seconds [Integer]
80
+ # @param type [Symbol, :delayed]
81
+ end
82
+
83
+ class Cron < Handinger::Internal::Type::BaseModel
84
+ # @!attribute cron
85
+ #
86
+ # @return [String]
87
+ required :cron, String
88
+
89
+ # @!attribute type
90
+ #
91
+ # @return [Symbol, :cron]
92
+ required :type, const: :cron
93
+
94
+ # @!method initialize(cron:, type: :cron)
95
+ # @param cron [String]
96
+ # @param type [Symbol, :cron]
97
+ end
98
+
99
+ class Interval < Handinger::Internal::Type::BaseModel
100
+ # @!attribute interval_seconds
101
+ #
102
+ # @return [Integer]
103
+ required :interval_seconds, Integer, api_name: :intervalSeconds
104
+
105
+ # @!attribute type
106
+ #
107
+ # @return [Symbol, :interval]
108
+ required :type, const: :interval
109
+
110
+ # @!method initialize(interval_seconds:, type: :interval)
111
+ # @param interval_seconds [Integer]
112
+ # @param type [Symbol, :interval]
113
+ end
114
+
115
+ # @!method self.variants
116
+ # @return [Array(Handinger::Models::Workers::ScheduleCreateParams::When::Scheduled, Handinger::Models::Workers::ScheduleCreateParams::When::Delayed, Handinger::Models::Workers::ScheduleCreateParams::When::Cron, Handinger::Models::Workers::ScheduleCreateParams::When::Interval)]
117
+ end
118
+
119
+ module Budget
120
+ extend Handinger::Internal::Type::Enum
121
+
122
+ LOW = :low
123
+ STANDARD = :standard
124
+ HIGH = :high
125
+ UNLIMITED = :unlimited
126
+
127
+ # @!method self.values
128
+ # @return [Array<Symbol>]
129
+ end
130
+ end
131
+ end
132
+ end
133
+ end
@@ -0,0 +1,22 @@
1
+ # frozen_string_literal: true
2
+
3
+ module Handinger
4
+ module Models
5
+ module Workers
6
+ # @see Handinger::Resources::Workers::Schedules#list
7
+ class ScheduleListParams < Handinger::Internal::Type::BaseModel
8
+ extend Handinger::Internal::Type::RequestParameters::Converter
9
+ include Handinger::Internal::Type::RequestParameters
10
+
11
+ # @!attribute worker_id
12
+ #
13
+ # @return [String]
14
+ required :worker_id, String
15
+
16
+ # @!method initialize(worker_id:, request_options: {})
17
+ # @param worker_id [String]
18
+ # @param request_options [Handinger::RequestOptions, Hash{Symbol=>Object}]
19
+ end
20
+ end
21
+ end
22
+ end
@@ -0,0 +1,24 @@
1
+ # frozen_string_literal: true
2
+
3
+ module Handinger
4
+ module Models
5
+ module Workers
6
+ # @see Handinger::Resources::Workers::Schedules#list
7
+ class ScheduleListResponse < Handinger::Internal::Type::BaseModel
8
+ # @!attribute schedules
9
+ #
10
+ # @return [Array<Handinger::Models::Workers::WorkerSchedule::Scheduled, Handinger::Models::Workers::WorkerSchedule::Delayed, Handinger::Models::Workers::WorkerSchedule::Cron, Handinger::Models::Workers::WorkerSchedule::Interval>]
11
+ required :schedules, -> { Handinger::Internal::Type::ArrayOf[union: Handinger::Workers::WorkerSchedule] }
12
+
13
+ # @!attribute worker_id
14
+ #
15
+ # @return [String]
16
+ required :worker_id, String, api_name: :workerId
17
+
18
+ # @!method initialize(schedules:, worker_id:)
19
+ # @param schedules [Array<Handinger::Models::Workers::WorkerSchedule::Scheduled, Handinger::Models::Workers::WorkerSchedule::Delayed, Handinger::Models::Workers::WorkerSchedule::Cron, Handinger::Models::Workers::WorkerSchedule::Interval>]
20
+ # @param worker_id [String]
21
+ end
22
+ end
23
+ end
24
+ end
@@ -0,0 +1,233 @@
1
+ # frozen_string_literal: true
2
+
3
+ module Handinger
4
+ module Models
5
+ module Workers
6
+ # @see Handinger::Resources::Workers::Schedules#create
7
+ module WorkerSchedule
8
+ extend Handinger::Internal::Type::Union
9
+
10
+ discriminator :type
11
+
12
+ variant :scheduled, -> { Handinger::Workers::WorkerSchedule::Scheduled }
13
+
14
+ variant :delayed, -> { Handinger::Workers::WorkerSchedule::Delayed }
15
+
16
+ variant :cron, -> { Handinger::Workers::WorkerSchedule::Cron }
17
+
18
+ variant :interval, -> { Handinger::Workers::WorkerSchedule::Interval }
19
+
20
+ class Scheduled < Handinger::Internal::Type::BaseModel
21
+ # @!attribute id
22
+ #
23
+ # @return [String]
24
+ required :id, String
25
+
26
+ # @!attribute budget
27
+ #
28
+ # @return [Symbol, Handinger::Models::Workers::WorkerSchedule::Scheduled::Budget]
29
+ required :budget, enum: -> { Handinger::Workers::WorkerSchedule::Scheduled::Budget }
30
+
31
+ # @!attribute input
32
+ #
33
+ # @return [String]
34
+ required :input, String
35
+
36
+ # @!attribute next_run_at
37
+ #
38
+ # @return [Time]
39
+ required :next_run_at, Time, api_name: :nextRunAt
40
+
41
+ # @!attribute type
42
+ #
43
+ # @return [Symbol, :scheduled]
44
+ required :type, const: :scheduled
45
+
46
+ # @!method initialize(id:, budget:, input:, next_run_at:, type: :scheduled)
47
+ # @param id [String]
48
+ # @param budget [Symbol, Handinger::Models::Workers::WorkerSchedule::Scheduled::Budget]
49
+ # @param input [String]
50
+ # @param next_run_at [Time]
51
+ # @param type [Symbol, :scheduled]
52
+
53
+ # @see Handinger::Models::Workers::WorkerSchedule::Scheduled#budget
54
+ module Budget
55
+ extend Handinger::Internal::Type::Enum
56
+
57
+ LOW = :low
58
+ STANDARD = :standard
59
+ HIGH = :high
60
+ UNLIMITED = :unlimited
61
+
62
+ # @!method self.values
63
+ # @return [Array<Symbol>]
64
+ end
65
+ end
66
+
67
+ class Delayed < Handinger::Internal::Type::BaseModel
68
+ # @!attribute id
69
+ #
70
+ # @return [String]
71
+ required :id, String
72
+
73
+ # @!attribute budget
74
+ #
75
+ # @return [Symbol, Handinger::Models::Workers::WorkerSchedule::Delayed::Budget]
76
+ required :budget, enum: -> { Handinger::Workers::WorkerSchedule::Delayed::Budget }
77
+
78
+ # @!attribute delay_in_seconds
79
+ #
80
+ # @return [Integer]
81
+ required :delay_in_seconds, Integer, api_name: :delayInSeconds
82
+
83
+ # @!attribute input
84
+ #
85
+ # @return [String]
86
+ required :input, String
87
+
88
+ # @!attribute next_run_at
89
+ #
90
+ # @return [Time]
91
+ required :next_run_at, Time, api_name: :nextRunAt
92
+
93
+ # @!attribute type
94
+ #
95
+ # @return [Symbol, :delayed]
96
+ required :type, const: :delayed
97
+
98
+ # @!method initialize(id:, budget:, delay_in_seconds:, input:, next_run_at:, type: :delayed)
99
+ # @param id [String]
100
+ # @param budget [Symbol, Handinger::Models::Workers::WorkerSchedule::Delayed::Budget]
101
+ # @param delay_in_seconds [Integer]
102
+ # @param input [String]
103
+ # @param next_run_at [Time]
104
+ # @param type [Symbol, :delayed]
105
+
106
+ # @see Handinger::Models::Workers::WorkerSchedule::Delayed#budget
107
+ module Budget
108
+ extend Handinger::Internal::Type::Enum
109
+
110
+ LOW = :low
111
+ STANDARD = :standard
112
+ HIGH = :high
113
+ UNLIMITED = :unlimited
114
+
115
+ # @!method self.values
116
+ # @return [Array<Symbol>]
117
+ end
118
+ end
119
+
120
+ class Cron < Handinger::Internal::Type::BaseModel
121
+ # @!attribute id
122
+ #
123
+ # @return [String]
124
+ required :id, String
125
+
126
+ # @!attribute budget
127
+ #
128
+ # @return [Symbol, Handinger::Models::Workers::WorkerSchedule::Cron::Budget]
129
+ required :budget, enum: -> { Handinger::Workers::WorkerSchedule::Cron::Budget }
130
+
131
+ # @!attribute cron
132
+ #
133
+ # @return [String]
134
+ required :cron, String
135
+
136
+ # @!attribute input
137
+ #
138
+ # @return [String]
139
+ required :input, String
140
+
141
+ # @!attribute next_run_at
142
+ #
143
+ # @return [Time]
144
+ required :next_run_at, Time, api_name: :nextRunAt
145
+
146
+ # @!attribute type
147
+ #
148
+ # @return [Symbol, :cron]
149
+ required :type, const: :cron
150
+
151
+ # @!method initialize(id:, budget:, cron:, input:, next_run_at:, type: :cron)
152
+ # @param id [String]
153
+ # @param budget [Symbol, Handinger::Models::Workers::WorkerSchedule::Cron::Budget]
154
+ # @param cron [String]
155
+ # @param input [String]
156
+ # @param next_run_at [Time]
157
+ # @param type [Symbol, :cron]
158
+
159
+ # @see Handinger::Models::Workers::WorkerSchedule::Cron#budget
160
+ module Budget
161
+ extend Handinger::Internal::Type::Enum
162
+
163
+ LOW = :low
164
+ STANDARD = :standard
165
+ HIGH = :high
166
+ UNLIMITED = :unlimited
167
+
168
+ # @!method self.values
169
+ # @return [Array<Symbol>]
170
+ end
171
+ end
172
+
173
+ class Interval < Handinger::Internal::Type::BaseModel
174
+ # @!attribute id
175
+ #
176
+ # @return [String]
177
+ required :id, String
178
+
179
+ # @!attribute budget
180
+ #
181
+ # @return [Symbol, Handinger::Models::Workers::WorkerSchedule::Interval::Budget]
182
+ required :budget, enum: -> { Handinger::Workers::WorkerSchedule::Interval::Budget }
183
+
184
+ # @!attribute input
185
+ #
186
+ # @return [String]
187
+ required :input, String
188
+
189
+ # @!attribute interval_seconds
190
+ #
191
+ # @return [Integer]
192
+ required :interval_seconds, Integer, api_name: :intervalSeconds
193
+
194
+ # @!attribute next_run_at
195
+ #
196
+ # @return [Time]
197
+ required :next_run_at, Time, api_name: :nextRunAt
198
+
199
+ # @!attribute type
200
+ #
201
+ # @return [Symbol, :interval]
202
+ required :type, const: :interval
203
+
204
+ # @!method initialize(id:, budget:, input:, interval_seconds:, next_run_at:, type: :interval)
205
+ # @param id [String]
206
+ # @param budget [Symbol, Handinger::Models::Workers::WorkerSchedule::Interval::Budget]
207
+ # @param input [String]
208
+ # @param interval_seconds [Integer]
209
+ # @param next_run_at [Time]
210
+ # @param type [Symbol, :interval]
211
+
212
+ # @see Handinger::Models::Workers::WorkerSchedule::Interval#budget
213
+ module Budget
214
+ extend Handinger::Internal::Type::Enum
215
+
216
+ LOW = :low
217
+ STANDARD = :standard
218
+ HIGH = :high
219
+ UNLIMITED = :unlimited
220
+
221
+ # @!method self.values
222
+ # @return [Array<Symbol>]
223
+ end
224
+ end
225
+
226
+ # @!method self.variants
227
+ # @return [Array(Handinger::Models::Workers::WorkerSchedule::Scheduled, Handinger::Models::Workers::WorkerSchedule::Delayed, Handinger::Models::Workers::WorkerSchedule::Cron, Handinger::Models::Workers::WorkerSchedule::Interval)]
228
+ end
229
+ end
230
+
231
+ WorkerSchedule = Workers::WorkerSchedule
232
+ end
233
+ end
@@ -0,0 +1,59 @@
1
+ # frozen_string_literal: true
2
+
3
+ module Handinger
4
+ [Handinger::Internal::Type::BaseModel, *Handinger::Internal::Type::BaseModel.subclasses].each do |cls|
5
+ cls.define_sorbet_constant!(:OrHash) { T.type_alias { T.any(cls, Handinger::Internal::AnyHash) } }
6
+ end
7
+
8
+ Handinger::Internal::Util.walk_namespaces(Handinger::Models).each do |mod|
9
+ case mod
10
+ in Handinger::Internal::Type::Enum | Handinger::Internal::Type::Union
11
+ mod.constants.each do |name|
12
+ case mod.const_get(name)
13
+ in true | false
14
+ mod.define_sorbet_constant!(:TaggedBoolean) { T.type_alias { T::Boolean } }
15
+ mod.define_sorbet_constant!(:OrBoolean) { T.type_alias { T::Boolean } }
16
+ in Integer
17
+ mod.define_sorbet_constant!(:TaggedInteger) { T.type_alias { Integer } }
18
+ mod.define_sorbet_constant!(:OrInteger) { T.type_alias { Integer } }
19
+ in Float
20
+ mod.define_sorbet_constant!(:TaggedFloat) { T.type_alias { Float } }
21
+ mod.define_sorbet_constant!(:OrFloat) { T.type_alias { Float } }
22
+ in Symbol
23
+ mod.define_sorbet_constant!(:TaggedSymbol) { T.type_alias { Symbol } }
24
+ mod.define_sorbet_constant!(:OrSymbol) { T.type_alias { T.any(Symbol, String) } }
25
+ else
26
+ end
27
+ end
28
+ else
29
+ end
30
+ end
31
+
32
+ Handinger::Internal::Util.walk_namespaces(Handinger::Models)
33
+ .lazy
34
+ .grep(Handinger::Internal::Type::Union)
35
+ .each do |mod|
36
+ const = :Variants
37
+ next if mod.sorbet_constant_defined?(const)
38
+
39
+ mod.define_sorbet_constant!(const) { T.type_alias { mod.to_sorbet_type } }
40
+ end
41
+
42
+ CreateWorker = Handinger::Models::CreateWorker
43
+
44
+ Worker = Handinger::Models::Worker
45
+
46
+ WorkerContinueParams = Handinger::Models::WorkerContinueParams
47
+
48
+ WorkerCreateParams = Handinger::Models::WorkerCreateParams
49
+
50
+ WorkerRetrieveEmailParams = Handinger::Models::WorkerRetrieveEmailParams
51
+
52
+ WorkerRetrieveFileParams = Handinger::Models::WorkerRetrieveFileParams
53
+
54
+ WorkerRetrieveParams = Handinger::Models::WorkerRetrieveParams
55
+
56
+ Workers = Handinger::Models::Workers
57
+
58
+ WorkerStreamUpdatesParams = Handinger::Models::WorkerStreamUpdatesParams
59
+ end
@@ -0,0 +1,77 @@
1
+ # frozen_string_literal: true
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
+ # @api private
11
+ #
12
+ # @param opts [Handinger::RequestOptions, Hash{Symbol=>Object}]
13
+ #
14
+ # @raise [ArgumentError]
15
+ def self.validate!(opts)
16
+ case opts
17
+ in Handinger::RequestOptions | Hash
18
+ opts.to_h.each_key do |k|
19
+ unless fields.include?(k)
20
+ raise ArgumentError.new("Request `opts` keys must be one of #{fields.keys}, got #{k.inspect}")
21
+ end
22
+ end
23
+ else
24
+ raise ArgumentError.new("Request `opts` must be a Hash or RequestOptions, got #{opts.inspect}")
25
+ end
26
+ end
27
+
28
+ # @!attribute idempotency_key
29
+ # Idempotency key to send with request and all associated retries. Will only be
30
+ # sent for write requests.
31
+ #
32
+ # @return [String, nil]
33
+ optional :idempotency_key, String
34
+
35
+ # @!attribute extra_query
36
+ # Extra query params to send with the request. These are `.merge`’d into any
37
+ # `query` given at the client level.
38
+ #
39
+ # @return [Hash{String=>Array<String>, String, nil}, nil]
40
+ optional :extra_query, Handinger::Internal::Type::HashOf[Handinger::Internal::Type::ArrayOf[String]]
41
+
42
+ # @!attribute extra_headers
43
+ # Extra headers to send with the request. These are `.merged`’d into any
44
+ # `extra_headers` given at the client level.
45
+ #
46
+ # @return [Hash{String=>String, nil}, nil]
47
+ optional :extra_headers, Handinger::Internal::Type::HashOf[String, nil?: true]
48
+
49
+ # @!attribute extra_body
50
+ # Extra data to send with the request. These are deep merged into any data
51
+ # generated as part of the normal request.
52
+ #
53
+ # @return [Object, nil]
54
+ optional :extra_body, Handinger::Internal::Type::HashOf[Handinger::Internal::Type::Unknown]
55
+
56
+ # @!attribute max_retries
57
+ # Maximum number of retries to attempt after a failed initial request.
58
+ #
59
+ # @return [Integer, nil]
60
+ optional :max_retries, Integer
61
+
62
+ # @!attribute timeout
63
+ # Request timeout in seconds.
64
+ #
65
+ # @return [Float, nil]
66
+ optional :timeout, Float
67
+
68
+ # @!method initialize(values = {})
69
+ # Returns a new instance of RequestOptions.
70
+ #
71
+ # @param values [Hash{Symbol=>Object}]
72
+
73
+ define_sorbet_constant!(:OrHash) do
74
+ T.type_alias { T.any(Handinger::RequestOptions, Handinger::Internal::AnyHash) }
75
+ end
76
+ end
77
+ end
@@ -0,0 +1,92 @@
1
+ # frozen_string_literal: true
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
+ #
10
+ # @overload create(worker_id, input:, when_:, budget: nil, request_options: {})
11
+ #
12
+ # @param worker_id [String] Worker id returned by the create worker endpoint.
13
+ #
14
+ # @param input [String]
15
+ #
16
+ # @param when_ [Handinger::Models::Workers::ScheduleCreateParams::When::Scheduled, Handinger::Models::Workers::ScheduleCreateParams::When::Delayed, Handinger::Models::Workers::ScheduleCreateParams::When::Cron, Handinger::Models::Workers::ScheduleCreateParams::When::Interval]
17
+ #
18
+ # @param budget [Symbol, Handinger::Models::Workers::ScheduleCreateParams::Budget]
19
+ #
20
+ # @param request_options [Handinger::RequestOptions, Hash{Symbol=>Object}, nil]
21
+ #
22
+ # @return [Handinger::Models::Workers::WorkerSchedule::Scheduled, Handinger::Models::Workers::WorkerSchedule::Delayed, Handinger::Models::Workers::WorkerSchedule::Cron, Handinger::Models::Workers::WorkerSchedule::Interval]
23
+ #
24
+ # @see Handinger::Models::Workers::ScheduleCreateParams
25
+ def create(worker_id, params)
26
+ parsed, options = Handinger::Workers::ScheduleCreateParams.dump_request(params)
27
+ @client.request(
28
+ method: :post,
29
+ path: ["api/workers/%1$s/schedules", worker_id],
30
+ body: parsed,
31
+ model: Handinger::Workers::WorkerSchedule,
32
+ options: options
33
+ )
34
+ end
35
+
36
+ # List scheduled tasks for a worker.
37
+ #
38
+ # @overload list(worker_id, request_options: {})
39
+ #
40
+ # @param worker_id [String] Worker id returned by the create worker endpoint.
41
+ #
42
+ # @param request_options [Handinger::RequestOptions, Hash{Symbol=>Object}, nil]
43
+ #
44
+ # @return [Handinger::Models::Workers::ScheduleListResponse]
45
+ #
46
+ # @see Handinger::Models::Workers::ScheduleListParams
47
+ def list(worker_id, params = {})
48
+ @client.request(
49
+ method: :get,
50
+ path: ["api/workers/%1$s/schedules", worker_id],
51
+ model: Handinger::Models::Workers::ScheduleListResponse,
52
+ options: params[:request_options]
53
+ )
54
+ end
55
+
56
+ # Cancel a scheduled task for a worker.
57
+ #
58
+ # @overload cancel(schedule_id, worker_id:, request_options: {})
59
+ #
60
+ # @param schedule_id [String] Scheduled task id returned by the create schedule endpoint.
61
+ #
62
+ # @param worker_id [String] Worker id returned by the create worker endpoint.
63
+ #
64
+ # @param request_options [Handinger::RequestOptions, Hash{Symbol=>Object}, nil]
65
+ #
66
+ # @return [Handinger::Models::Workers::ScheduleCancelResponse]
67
+ #
68
+ # @see Handinger::Models::Workers::ScheduleCancelParams
69
+ def cancel(schedule_id, params)
70
+ parsed, options = Handinger::Workers::ScheduleCancelParams.dump_request(params)
71
+ worker_id =
72
+ parsed.delete(:worker_id) do
73
+ raise ArgumentError.new("missing required path argument #{_1}")
74
+ end
75
+ @client.request(
76
+ method: :delete,
77
+ path: ["api/workers/%1$s/schedules/%2$s", worker_id, schedule_id],
78
+ model: Handinger::Models::Workers::ScheduleCancelResponse,
79
+ options: options
80
+ )
81
+ end
82
+
83
+ # @api private
84
+ #
85
+ # @param client [Handinger::Client]
86
+ def initialize(client:)
87
+ @client = client
88
+ end
89
+ end
90
+ end
91
+ end
92
+ end