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.
- checksums.yaml +7 -0
- data/.ignore +2 -0
- data/CHANGELOG.md +10 -0
- data/README.md +236 -0
- data/SECURITY.md +23 -0
- data/lib/handinger/client.rb +74 -0
- data/lib/handinger/errors.rb +228 -0
- data/lib/handinger/file_part.rb +58 -0
- data/lib/handinger/internal/stream.rb +29 -0
- data/lib/handinger/internal/transport/base_client.rb +575 -0
- data/lib/handinger/internal/transport/pooled_net_requester.rb +210 -0
- data/lib/handinger/internal/type/array_of.rb +168 -0
- data/lib/handinger/internal/type/base_model.rb +531 -0
- data/lib/handinger/internal/type/base_page.rb +55 -0
- data/lib/handinger/internal/type/base_stream.rb +83 -0
- data/lib/handinger/internal/type/boolean.rb +77 -0
- data/lib/handinger/internal/type/converter.rb +327 -0
- data/lib/handinger/internal/type/enum.rb +131 -0
- data/lib/handinger/internal/type/file_input.rb +111 -0
- data/lib/handinger/internal/type/hash_of.rb +188 -0
- data/lib/handinger/internal/type/request_parameters.rb +42 -0
- data/lib/handinger/internal/type/union.rb +262 -0
- data/lib/handinger/internal/type/unknown.rb +81 -0
- data/lib/handinger/internal/util.rb +966 -0
- data/lib/handinger/internal.rb +20 -0
- data/lib/handinger/models/create_worker.rb +40 -0
- data/lib/handinger/models/worker.rb +360 -0
- data/lib/handinger/models/worker_continue_params.rb +20 -0
- data/lib/handinger/models/worker_create_params.rb +14 -0
- data/lib/handinger/models/worker_retrieve_email_params.rb +20 -0
- data/lib/handinger/models/worker_retrieve_email_response.rb +7 -0
- data/lib/handinger/models/worker_retrieve_file_params.rb +26 -0
- data/lib/handinger/models/worker_retrieve_params.rb +29 -0
- data/lib/handinger/models/worker_stream_updates_params.rb +20 -0
- data/lib/handinger/models/worker_stream_updates_response.rb +7 -0
- data/lib/handinger/models/workers/schedule_cancel_params.rb +28 -0
- data/lib/handinger/models/workers/schedule_cancel_response.rb +18 -0
- data/lib/handinger/models/workers/schedule_create_params.rb +133 -0
- data/lib/handinger/models/workers/schedule_list_params.rb +22 -0
- data/lib/handinger/models/workers/schedule_list_response.rb +24 -0
- data/lib/handinger/models/workers/worker_schedule.rb +233 -0
- data/lib/handinger/models.rb +59 -0
- data/lib/handinger/request_options.rb +77 -0
- data/lib/handinger/resources/workers/schedules.rb +92 -0
- data/lib/handinger/resources/workers.rb +167 -0
- data/lib/handinger/version.rb +5 -0
- data/lib/handinger.rb +75 -0
- data/manifest.yaml +17 -0
- data/rbi/handinger/client.rbi +49 -0
- data/rbi/handinger/errors.rbi +205 -0
- data/rbi/handinger/file_part.rbi +37 -0
- data/rbi/handinger/internal/stream.rbi +20 -0
- data/rbi/handinger/internal/transport/base_client.rbi +314 -0
- data/rbi/handinger/internal/transport/pooled_net_requester.rbi +83 -0
- data/rbi/handinger/internal/type/array_of.rbi +104 -0
- data/rbi/handinger/internal/type/base_model.rbi +308 -0
- data/rbi/handinger/internal/type/base_page.rbi +42 -0
- data/rbi/handinger/internal/type/base_stream.rbi +75 -0
- data/rbi/handinger/internal/type/boolean.rbi +58 -0
- data/rbi/handinger/internal/type/converter.rbi +216 -0
- data/rbi/handinger/internal/type/enum.rbi +82 -0
- data/rbi/handinger/internal/type/file_input.rbi +59 -0
- data/rbi/handinger/internal/type/hash_of.rbi +104 -0
- data/rbi/handinger/internal/type/request_parameters.rbi +29 -0
- data/rbi/handinger/internal/type/union.rbi +128 -0
- data/rbi/handinger/internal/type/unknown.rbi +58 -0
- data/rbi/handinger/internal/util.rbi +515 -0
- data/rbi/handinger/internal.rbi +18 -0
- data/rbi/handinger/models/create_worker.rbi +72 -0
- data/rbi/handinger/models/worker.rbi +546 -0
- data/rbi/handinger/models/worker_continue_params.rbi +35 -0
- data/rbi/handinger/models/worker_create_params.rbi +27 -0
- data/rbi/handinger/models/worker_retrieve_email_params.rbi +38 -0
- data/rbi/handinger/models/worker_retrieve_email_response.rbi +7 -0
- data/rbi/handinger/models/worker_retrieve_file_params.rbi +46 -0
- data/rbi/handinger/models/worker_retrieve_params.rbi +52 -0
- data/rbi/handinger/models/worker_stream_updates_params.rbi +38 -0
- data/rbi/handinger/models/worker_stream_updates_response.rbi +7 -0
- data/rbi/handinger/models/workers/schedule_cancel_params.rbi +48 -0
- data/rbi/handinger/models/workers/schedule_cancel_response.rbi +28 -0
- data/rbi/handinger/models/workers/schedule_create_params.rbi +270 -0
- data/rbi/handinger/models/workers/schedule_list_params.rbi +40 -0
- data/rbi/handinger/models/workers/schedule_list_response.rbi +51 -0
- data/rbi/handinger/models/workers/worker_schedule.rbi +461 -0
- data/rbi/handinger/models.rbi +21 -0
- data/rbi/handinger/request_options.rbi +59 -0
- data/rbi/handinger/resources/workers/schedules.rbi +72 -0
- data/rbi/handinger/resources/workers.rbi +112 -0
- data/rbi/handinger/version.rbi +5 -0
- data/sig/handinger/client.rbs +26 -0
- data/sig/handinger/errors.rbs +117 -0
- data/sig/handinger/file_part.rbs +21 -0
- data/sig/handinger/internal/stream.rbs +9 -0
- data/sig/handinger/internal/transport/base_client.rbs +133 -0
- data/sig/handinger/internal/transport/pooled_net_requester.rbs +48 -0
- data/sig/handinger/internal/type/array_of.rbs +48 -0
- data/sig/handinger/internal/type/base_model.rbs +102 -0
- data/sig/handinger/internal/type/base_page.rbs +24 -0
- data/sig/handinger/internal/type/base_stream.rbs +38 -0
- data/sig/handinger/internal/type/boolean.rbs +26 -0
- data/sig/handinger/internal/type/converter.rbs +79 -0
- data/sig/handinger/internal/type/enum.rbs +32 -0
- data/sig/handinger/internal/type/file_input.rbs +25 -0
- data/sig/handinger/internal/type/hash_of.rbs +48 -0
- data/sig/handinger/internal/type/request_parameters.rbs +19 -0
- data/sig/handinger/internal/type/union.rbs +52 -0
- data/sig/handinger/internal/type/unknown.rbs +26 -0
- data/sig/handinger/internal/util.rbs +199 -0
- data/sig/handinger/internal.rbs +9 -0
- data/sig/handinger/models/create_worker.rbs +49 -0
- data/sig/handinger/models/worker.rbs +364 -0
- data/sig/handinger/models/worker_continue_params.rbs +25 -0
- data/sig/handinger/models/worker_create_params.rbs +15 -0
- data/sig/handinger/models/worker_retrieve_email_params.rbs +23 -0
- data/sig/handinger/models/worker_retrieve_email_response.rbs +5 -0
- data/sig/handinger/models/worker_retrieve_file_params.rbs +28 -0
- data/sig/handinger/models/worker_retrieve_params.rbs +30 -0
- data/sig/handinger/models/worker_stream_updates_params.rbs +23 -0
- data/sig/handinger/models/worker_stream_updates_response.rbs +5 -0
- data/sig/handinger/models/workers/schedule_cancel_params.rbs +30 -0
- data/sig/handinger/models/workers/schedule_cancel_response.rbs +15 -0
- data/sig/handinger/models/workers/schedule_create_params.rbs +123 -0
- data/sig/handinger/models/workers/schedule_list_params.rbs +25 -0
- data/sig/handinger/models/workers/schedule_list_response.rbs +27 -0
- data/sig/handinger/models/workers/worker_schedule.rbs +234 -0
- data/sig/handinger/models.rbs +19 -0
- data/sig/handinger/request_options.rbs +34 -0
- data/sig/handinger/resources/workers/schedules.rbs +28 -0
- data/sig/handinger/resources/workers.rbs +46 -0
- data/sig/handinger/version.rbs +3 -0
- 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
|