handinger 0.1.0 → 0.3.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 (82) hide show
  1. checksums.yaml +4 -4
  2. data/CHANGELOG.md +35 -0
  3. data/README.md +19 -20
  4. data/SECURITY.md +4 -0
  5. data/lib/handinger/client.rb +21 -1
  6. data/lib/handinger/internal/transport/base_client.rb +1 -3
  7. data/lib/handinger/internal/type/base_model.rb +3 -3
  8. data/lib/handinger/models/create_task.rb +28 -0
  9. data/lib/handinger/models/create_worker.rb +59 -19
  10. data/lib/handinger/models/delete_task_response.rb +16 -0
  11. data/lib/handinger/models/delete_worker_response.rb +16 -0
  12. data/lib/handinger/models/task.rb +119 -0
  13. data/lib/handinger/models/task_create_params.rb +14 -0
  14. data/lib/handinger/models/task_delete_params.rb +20 -0
  15. data/lib/handinger/models/task_retrieve_params.rb +20 -0
  16. data/lib/handinger/models/task_with_turns.rb +113 -0
  17. data/lib/handinger/models/update_worker.rb +71 -0
  18. data/lib/handinger/models/worker.rb +9 -84
  19. data/lib/handinger/models/{worker_stream_updates_params.rb → worker_delete_params.rb} +2 -2
  20. data/lib/handinger/models/worker_retrieve_email_response.rb +10 -1
  21. data/lib/handinger/models/worker_retrieve_params.rb +22 -4
  22. data/lib/handinger/models/worker_template.rb +84 -0
  23. data/lib/handinger/models/{worker_continue_params.rb → worker_update_params.rb} +2 -2
  24. data/lib/handinger/models.rb +23 -5
  25. data/lib/handinger/resources/tasks.rb +98 -0
  26. data/lib/handinger/resources/workers.rb +66 -68
  27. data/lib/handinger/version.rb +1 -1
  28. data/lib/handinger.rb +13 -6
  29. data/rbi/handinger/client.rbi +5 -0
  30. data/rbi/handinger/internal/transport/base_client.rbi +2 -18
  31. data/rbi/handinger/models/create_task.rbi +40 -0
  32. data/rbi/handinger/models/create_worker.rbi +84 -26
  33. data/rbi/handinger/models/delete_task_response.rbi +23 -0
  34. data/rbi/handinger/models/delete_worker_response.rbi +23 -0
  35. data/rbi/handinger/models/task.rbi +160 -0
  36. data/rbi/handinger/models/task_create_params.rbi +27 -0
  37. data/rbi/handinger/models/task_delete_params.rbi +35 -0
  38. data/rbi/handinger/models/task_retrieve_params.rbi +35 -0
  39. data/rbi/handinger/models/task_with_turns.rbi +149 -0
  40. data/rbi/handinger/models/update_worker.rbi +112 -0
  41. data/rbi/handinger/models/worker.rbi +10 -120
  42. data/rbi/handinger/models/{worker_stream_updates_params.rbi → worker_delete_params.rbi} +2 -5
  43. data/rbi/handinger/models/worker_retrieve_email_response.rbi +20 -1
  44. data/rbi/handinger/models/worker_retrieve_params.rbi +40 -6
  45. data/rbi/handinger/models/worker_template.rbi +110 -0
  46. data/rbi/handinger/models/{worker_continue_params.rbi → worker_update_params.rbi} +2 -2
  47. data/rbi/handinger/models.rbi +23 -5
  48. data/rbi/handinger/resources/tasks.rbi +86 -0
  49. data/rbi/handinger/resources/workers.rbi +68 -43
  50. data/sig/handinger/client.rbs +2 -0
  51. data/sig/handinger/models/create_task.rbs +19 -0
  52. data/sig/handinger/models/create_worker.rbs +44 -23
  53. data/sig/handinger/models/delete_task_response.rbs +13 -0
  54. data/sig/handinger/models/delete_worker_response.rbs +13 -0
  55. data/sig/handinger/models/task.rbs +114 -0
  56. data/sig/handinger/models/task_create_params.rbs +15 -0
  57. data/sig/handinger/models/task_delete_params.rbs +23 -0
  58. data/sig/handinger/models/task_retrieve_params.rbs +23 -0
  59. data/sig/handinger/models/task_with_turns.rbs +104 -0
  60. data/sig/handinger/models/update_worker.rbs +61 -0
  61. data/sig/handinger/models/worker.rbs +7 -89
  62. data/sig/handinger/models/{worker_stream_updates_params.rbs → worker_delete_params.rbs} +2 -2
  63. data/sig/handinger/models/worker_retrieve_email_response.rbs +9 -1
  64. data/sig/handinger/models/worker_retrieve_params.rbs +21 -5
  65. data/sig/handinger/models/worker_template.rbs +76 -0
  66. data/sig/handinger/models/{worker_continue_params.rbs → worker_update_params.rbs} +2 -2
  67. data/sig/handinger/models.rbs +23 -5
  68. data/sig/handinger/resources/tasks.rbs +29 -0
  69. data/sig/handinger/resources/workers.rbs +19 -20
  70. metadata +42 -21
  71. data/lib/handinger/internal/stream.rb +0 -29
  72. data/lib/handinger/internal/type/base_stream.rb +0 -83
  73. data/lib/handinger/models/worker_retrieve_file_params.rb +0 -26
  74. data/lib/handinger/models/worker_stream_updates_response.rb +0 -7
  75. data/rbi/handinger/internal/stream.rbi +0 -20
  76. data/rbi/handinger/internal/type/base_stream.rbi +0 -75
  77. data/rbi/handinger/models/worker_retrieve_file_params.rbi +0 -46
  78. data/rbi/handinger/models/worker_stream_updates_response.rbi +0 -7
  79. data/sig/handinger/internal/stream.rbs +0 -9
  80. data/sig/handinger/internal/type/base_stream.rbs +0 -38
  81. data/sig/handinger/models/worker_retrieve_file_params.rbs +0 -28
  82. data/sig/handinger/models/worker_stream_updates_response.rbs +0 -5
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: 7dae0342381fa57c73c63b01538c6e47a68de902e4a10b8f4bdb593ef1d9a468
4
- data.tar.gz: de8803ae634451f609533050e1d0bc66d750286c1abc3c09cc34fd679926fdac
3
+ metadata.gz: a53acab611d6eb55ba8f32f3b21854f6d936ff7fc2bdc0bda9da0394040bd3af
4
+ data.tar.gz: 3f7daaeb057baa8ebf48a03e2db9a5d83706c3bdf3d46377337103be73bb569f
5
5
  SHA512:
6
- metadata.gz: '091f26caa999562c9080eb8a223fc685588a7435943d2085d4c94a9ed8c89e94f2d0f4b7be1e853fefbbd52d336ee791988d2a0c7e9f60115b3e1a4520af2817'
7
- data.tar.gz: 2c7991d7e71d0d129e2fa4b1656b058630e653d12411b91cc6268d8694f91d53f4e20c1297b8b72e554b95f6858167322d10eaaef06bc3b18395d0d56e7db2c7
6
+ metadata.gz: 22c03ed4a0641b1b16427f0928804b695cb23923534a9abb233a47a247ecd94a77f0a34553c3658de15a556979abd85e10af7ae6a7e25fe07e48234db1d63c40
7
+ data.tar.gz: 5e0bc25dc0a11ed63751c99f7d06ae807b778865bf5c96e6f141f9f5e40d512c95d9b740d4a99bd4ba50435f6889351659defb4340ad8fe8901c75f76bf452eb
data/CHANGELOG.md CHANGED
@@ -1,5 +1,40 @@
1
1
  # Changelog
2
2
 
3
+ ## 0.3.0 (2026-05-11)
4
+
5
+ Full Changelog: [v0.2.0...v0.3.0](https://github.com/Ramensoft/handinger-ruby/compare/v0.2.0...v0.3.0)
6
+
7
+ ### Features
8
+
9
+ * Add update and delete endpoints for workers and tasks ([caa25aa](https://github.com/Ramensoft/handinger-ruby/commit/caa25aa9ff32f9ea62143cf674ca13efc6e72729))
10
+
11
+ ## 0.2.0 (2026-05-09)
12
+
13
+ Full Changelog: [v0.1.0...v0.2.0](https://github.com/Ramensoft/handinger-ruby/compare/v0.1.0...v0.2.0)
14
+
15
+ ### Features
16
+
17
+ * Add JSON Schema output validation and structured display ([d2d009f](https://github.com/Ramensoft/handinger-ruby/commit/d2d009fef801e296238abb13f66980523f6fe635))
18
+ * Add worker avatars and summaries with edit UI ([9363cd1](https://github.com/Ramensoft/handinger-ruby/commit/9363cd185a2973a889324097215bff9c3f4fe59d))
19
+ * **api:** api update ([24ba9a1](https://github.com/Ramensoft/handinger-ruby/commit/24ba9a1bacb86f4f72dc6599223678c34fb40eb8))
20
+ * **api:** api update ([05d22fc](https://github.com/Ramensoft/handinger-ruby/commit/05d22fc5b3de4a8c4115ef234b362f667fc08eb7))
21
+ * **api:** api update ([edee7a7](https://github.com/Ramensoft/handinger-ruby/commit/edee7a788bda863304a5b3216abdf6d9273dc95e))
22
+ * **api:** api update ([a335064](https://github.com/Ramensoft/handinger-ruby/commit/a335064d021768f799f38c2a5d8766d42b36816c))
23
+ * File uploads ([d7fd499](https://github.com/Ramensoft/handinger-ruby/commit/d7fd499cfc7a9d0d15875b3f4e0ebc0571177f15))
24
+ * Le big refactor ([9631a55](https://github.com/Ramensoft/handinger-ruby/commit/9631a55979db401c85faf3d90ac827aea41dd19d))
25
+ * Overhaul email/permissions and ids ([e686bb8](https://github.com/Ramensoft/handinger-ruby/commit/e686bb8e9de4e492083c7ca3bf47d89662bb141b))
26
+ * support setting headers via env ([cf53d6e](https://github.com/Ramensoft/handinger-ruby/commit/cf53d6ed1323a7253e9c5ffc03047ac2b9f1aeb7))
27
+
28
+
29
+ ### Bug Fixes
30
+
31
+ * avoid gzip buffering during streaming ([7d1e1bc](https://github.com/Ramensoft/handinger-ruby/commit/7d1e1bcd465f422cc6e1b5fce68c308f25030cd5))
32
+
33
+
34
+ ### Chores
35
+
36
+ * **internal:** more robust bootstrap script ([61ba919](https://github.com/Ramensoft/handinger-ruby/commit/61ba919436fe1ccdf663b8822904623421ee773c))
37
+
3
38
  ## 0.1.0 (2026-04-23)
4
39
 
5
40
  Full Changelog: [v0.0.2...v0.1.0](https://github.com/Ramensoft/handinger-ruby/compare/v0.0.2...v0.1.0)
data/README.md CHANGED
@@ -8,6 +8,8 @@ It is generated with [Stainless](https://www.stainless.com/).
8
8
 
9
9
  Documentation for releases of this gem can be found [on RubyDoc](https://gemdocs.org/gems/handinger).
10
10
 
11
+ The REST API documentation can be found on [docs.handinger.com](https://docs.handinger.com).
12
+
11
13
  ## Installation
12
14
 
13
15
  To use this gem, install via Bundler by adding the following to your application's `Gemfile`:
@@ -15,7 +17,7 @@ To use this gem, install via Bundler by adding the following to your application
15
17
  <!-- x-release-please-start-version -->
16
18
 
17
19
  ```ruby
18
- gem "handinger", "~> 0.1.0"
20
+ gem "handinger", "~> 0.3.0"
19
21
  ```
20
22
 
21
23
  <!-- x-release-please-end -->
@@ -30,7 +32,7 @@ handinger = Handinger::Client.new(
30
32
  api_key: ENV["HANDINGER_API_KEY"] # This is the default and can be omitted
31
33
  )
32
34
 
33
- worker = handinger.workers.create(input: "What's the weather today in Barcelona?")
35
+ worker = handinger.tasks.create(worker_id: "wrk_vk81XUHKHG-qr4")
34
36
 
35
37
  puts(worker.id)
36
38
  ```
@@ -41,7 +43,7 @@ When the library is unable to connect to the API, or if the API returns a non-su
41
43
 
42
44
  ```ruby
43
45
  begin
44
- worker = handinger.workers.create(input: "What's the weather today in Barcelona?")
46
+ task = handinger.tasks.create(worker_id: "wrk_vk81XUHKHG-qr4")
45
47
  rescue Handinger::Errors::APIConnectionError => e
46
48
  puts("The server could not be reached")
47
49
  puts(e.cause) # an underlying Exception, likely raised within `net/http`
@@ -84,10 +86,7 @@ handinger = Handinger::Client.new(
84
86
  )
85
87
 
86
88
  # Or, configure per-request:
87
- handinger.workers.create(
88
- input: "What's the weather today in Barcelona?",
89
- request_options: {max_retries: 5}
90
- )
89
+ handinger.tasks.create(worker_id: "wrk_vk81XUHKHG-qr4", request_options: {max_retries: 5})
91
90
  ```
92
91
 
93
92
  ### Timeouts
@@ -101,7 +100,7 @@ handinger = Handinger::Client.new(
101
100
  )
102
101
 
103
102
  # Or, configure per-request:
104
- handinger.workers.create(input: "What's the weather today in Barcelona?", request_options: {timeout: 5})
103
+ handinger.tasks.create(worker_id: "wrk_vk81XUHKHG-qr4", request_options: {timeout: 5})
105
104
  ```
106
105
 
107
106
  On timeout, `Handinger::Errors::APITimeoutError` is raised.
@@ -132,8 +131,8 @@ Note: the `extra_` parameters of the same name overrides the documented paramete
132
131
 
133
132
  ```ruby
134
133
  worker =
135
- handinger.workers.create(
136
- input: "What's the weather today in Barcelona?",
134
+ handinger.tasks.create(
135
+ worker_id: "wrk_vk81XUHKHG-qr4",
137
136
  request_options: {
138
137
  extra_query: {my_query_parameter: value},
139
138
  extra_body: {my_body_parameter: value},
@@ -179,18 +178,18 @@ This library provides comprehensive [RBI](https://sorbet.org/docs/rbi) definitio
179
178
  You can provide typesafe request parameters like so:
180
179
 
181
180
  ```ruby
182
- handinger.workers.create(input: "What's the weather today in Barcelona?")
181
+ handinger.tasks.create(worker_id: "wrk_vk81XUHKHG-qr4")
183
182
  ```
184
183
 
185
184
  Or, equivalently:
186
185
 
187
186
  ```ruby
188
187
  # Hashes work, but are not typesafe:
189
- handinger.workers.create(input: "What's the weather today in Barcelona?")
188
+ handinger.tasks.create(worker_id: "wrk_vk81XUHKHG-qr4")
190
189
 
191
190
  # You can also splat a full Params class:
192
- params = Handinger::WorkerCreateParams.new(input: "What's the weather today in Barcelona?")
193
- handinger.workers.create(**params)
191
+ params = Handinger::TaskCreateParams.new(worker_id: "wrk_vk81XUHKHG-qr4")
192
+ handinger.tasks.create(**params)
194
193
  ```
195
194
 
196
195
  ### Enums
@@ -198,11 +197,11 @@ handinger.workers.create(**params)
198
197
  Since this library does not depend on `sorbet-runtime`, it cannot provide [`T::Enum`](https://sorbet.org/docs/tenum) instances. Instead, we provide "tagged symbols" instead, which is always a primitive at runtime:
199
198
 
200
199
  ```ruby
201
- # :low
202
- puts(Handinger::CreateWorker::Budget::LOW)
200
+ # :public
201
+ puts(Handinger::CreateWorker::Visibility::PUBLIC)
203
202
 
204
- # Revealed type: `T.all(Handinger::CreateWorker::Budget, Symbol)`
205
- T.reveal_type(Handinger::CreateWorker::Budget::LOW)
203
+ # Revealed type: `T.all(Handinger::CreateWorker::Visibility, Symbol)`
204
+ T.reveal_type(Handinger::CreateWorker::Visibility::PUBLIC)
206
205
  ```
207
206
 
208
207
  Enum parameters have a "relaxed" type, so you can either pass in enum constants or their literal value:
@@ -210,13 +209,13 @@ Enum parameters have a "relaxed" type, so you can either pass in enum constants
210
209
  ```ruby
211
210
  # Using the enum constants preserves the tagged type information:
212
211
  handinger.workers.create(
213
- budget: Handinger::CreateWorker::Budget::LOW,
212
+ visibility: Handinger::CreateWorker::Visibility::PUBLIC,
214
213
  # …
215
214
  )
216
215
 
217
216
  # Literal values are also permissible:
218
217
  handinger.workers.create(
219
- budget: :low,
218
+ visibility: :public,
220
219
  # …
221
220
  )
222
221
  ```
data/SECURITY.md CHANGED
@@ -18,6 +18,10 @@ before making any information public.
18
18
  If you encounter security issues that are not directly related to SDKs but pertain to the services
19
19
  or products provided by Handinger, please follow the respective company's security reporting guidelines.
20
20
 
21
+ ### Handinger Terms and Policies
22
+
23
+ Please contact support@handinger.com for any questions or concerns regarding the security of our services.
24
+
21
25
  ---
22
26
 
23
27
  Thank you for helping us keep the SDKs and systems they interact with secure.
@@ -18,9 +18,14 @@ module Handinger
18
18
  # @return [String]
19
19
  attr_reader :api_key
20
20
 
21
+ # Create, retrieve, and manage agent worker templates.
21
22
  # @return [Handinger::Resources::Workers]
22
23
  attr_reader :workers
23
24
 
25
+ # Run and inspect tasks against a worker.
26
+ # @return [Handinger::Resources::Tasks]
27
+ attr_reader :tasks
28
+
24
29
  # @api private
25
30
  #
26
31
  # @return [Hash{String=>String}]
@@ -58,6 +63,19 @@ module Handinger
58
63
  raise ArgumentError.new("api_key is required, and can be set via environ: \"HANDINGER_API_KEY\"")
59
64
  end
60
65
 
66
+ headers = {}
67
+ custom_headers_env = ENV["HANDINGER_CUSTOM_HEADERS"]
68
+ unless custom_headers_env.nil?
69
+ parsed = {}
70
+ custom_headers_env.split("\n").each do |line|
71
+ colon = line.index(":")
72
+ unless colon.nil?
73
+ parsed[line[0...colon].strip] = line[(colon + 1)..].strip
74
+ end
75
+ end
76
+ headers = parsed.merge(headers)
77
+ end
78
+
61
79
  @api_key = api_key.to_s
62
80
 
63
81
  super(
@@ -65,10 +83,12 @@ module Handinger
65
83
  timeout: timeout,
66
84
  max_retries: max_retries,
67
85
  initial_retry_delay: initial_retry_delay,
68
- max_retry_delay: max_retry_delay
86
+ max_retry_delay: max_retry_delay,
87
+ headers: headers
69
88
  )
70
89
 
71
90
  @workers = Handinger::Resources::Workers.new(client: self)
91
+ @tasks = Handinger::Resources::Tasks.new(client: self)
72
92
  end
73
93
  end
74
94
  end
@@ -549,9 +549,7 @@ module Handinger
549
549
  )
550
550
  ),
551
551
  page: T.nilable(T::Class[Handinger::Internal::Type::BasePage[Handinger::Internal::Type::BaseModel]]),
552
- stream: T.nilable(
553
- T::Class[Handinger::Internal::Type::BaseStream[T.anything, Handinger::Internal::Type::BaseModel]]
554
- ),
552
+ stream: T.nilable(T::Class[T.anything]),
555
553
  model: T.nilable(Handinger::Internal::Type::Converter::Input),
556
554
  options: T.nilable(Handinger::RequestOptions::OrHash)
557
555
  }
@@ -440,9 +440,9 @@ module Handinger
440
440
  # @example
441
441
  # # `create_worker` is a `Handinger::CreateWorker`
442
442
  # create_worker => {
443
- # input: input,
444
- # budget: budget,
445
- # stream: stream
443
+ # instructions: instructions,
444
+ # output_schema: output_schema,
445
+ # prompt: prompt
446
446
  # }
447
447
  def deconstruct_keys(keys)
448
448
  (keys || self.class.known_fields.keys)
@@ -0,0 +1,28 @@
1
+ # frozen_string_literal: true
2
+
3
+ module Handinger
4
+ module Models
5
+ class CreateTask < Handinger::Models::CreateWorker
6
+ # @!attribute worker_id
7
+ # Worker id the task belongs to.
8
+ #
9
+ # @return [String]
10
+ required :worker_id, String, api_name: :workerId
11
+
12
+ # @!attribute task_id
13
+ # Optional client-provided task id. Reuse this id to add turns to an existing
14
+ # task.
15
+ #
16
+ # @return [String, nil]
17
+ optional :task_id, String, api_name: :taskId
18
+
19
+ # @!method initialize(worker_id:, task_id: nil)
20
+ # Some parameter documentations has been truncated, see
21
+ # {Handinger::Models::CreateTask} for more details.
22
+ #
23
+ # @param worker_id [String] Worker id the task belongs to.
24
+ #
25
+ # @param task_id [String] Optional client-provided task id. Reuse this id to add turns to an existing task
26
+ end
27
+ end
28
+ end
@@ -3,34 +3,74 @@
3
3
  module Handinger
4
4
  module Models
5
5
  class CreateWorker < Handinger::Internal::Type::BaseModel
6
- # @!attribute input
6
+ # @!attribute instructions
7
+ # Persistent system prompt the worker uses for every task it runs.
7
8
  #
8
- # @return [String]
9
- required :input, String
9
+ # @return [String, nil]
10
+ optional :instructions, String
10
11
 
11
- # @!attribute budget
12
+ # @!attribute output_schema
13
+ # Optional JSON Schema (Draft-07) describing the structured object the worker must
14
+ # produce. When set, every task response is validated against the schema and
15
+ # exposed as `structuredOutput`.
12
16
  #
13
- # @return [Symbol, Handinger::Models::CreateWorker::Budget, nil]
14
- optional :budget, enum: -> { Handinger::CreateWorker::Budget }
17
+ # @return [Hash{Symbol=>Object}, nil]
18
+ optional :output_schema,
19
+ Handinger::Internal::Type::HashOf[Handinger::Internal::Type::Unknown],
20
+ api_name: :outputSchema
15
21
 
16
- # @!attribute stream
22
+ # @!attribute prompt
23
+ # Natural-language description of the worker to use for AI-generated instructions
24
+ # when `instructions` is omitted.
17
25
  #
18
- # @return [Boolean, nil]
19
- optional :stream, Handinger::Internal::Type::Boolean
26
+ # @return [String, nil]
27
+ optional :prompt, String
20
28
 
21
- # @!method initialize(input:, budget: nil, stream: nil)
22
- # @param input [String]
23
- # @param budget [Symbol, Handinger::Models::CreateWorker::Budget]
24
- # @param stream [Boolean]
29
+ # @!attribute summary
30
+ # Short one-line description of the worker's purpose. Auto-generated when omitted
31
+ # and a `prompt` is provided.
32
+ #
33
+ # @return [String, nil]
34
+ optional :summary, String
35
+
36
+ # @!attribute title
37
+ # Optional display name. When omitted, Handinger assigns a random dog-themed name.
38
+ #
39
+ # @return [String, nil]
40
+ optional :title, String
25
41
 
26
- # @see Handinger::Models::CreateWorker#budget
27
- module Budget
42
+ # @!attribute visibility
43
+ # `public` (default) is visible to all org members. `private` is only visible to
44
+ # invited members.
45
+ #
46
+ # @return [Symbol, Handinger::Models::CreateWorker::Visibility, nil]
47
+ optional :visibility, enum: -> { Handinger::CreateWorker::Visibility }
48
+
49
+ # @!method initialize(instructions: nil, output_schema: nil, prompt: nil, summary: nil, title: nil, visibility: nil)
50
+ # Some parameter documentations has been truncated, see
51
+ # {Handinger::Models::CreateWorker} for more details.
52
+ #
53
+ # @param instructions [String] Persistent system prompt the worker uses for every task it runs.
54
+ #
55
+ # @param output_schema [Hash{Symbol=>Object}] Optional JSON Schema (Draft-07) describing the structured object the worker must
56
+ #
57
+ # @param prompt [String] Natural-language description of the worker to use for AI-generated instructions
58
+ #
59
+ # @param summary [String] Short one-line description of the worker's purpose. Auto-generated when omitted
60
+ #
61
+ # @param title [String] Optional display name. When omitted, Handinger assigns a random dog-themed name.
62
+ #
63
+ # @param visibility [Symbol, Handinger::Models::CreateWorker::Visibility] `public` (default) is visible to all org members. `private` is only visible to i
64
+
65
+ # `public` (default) is visible to all org members. `private` is only visible to
66
+ # invited members.
67
+ #
68
+ # @see Handinger::Models::CreateWorker#visibility
69
+ module Visibility
28
70
  extend Handinger::Internal::Type::Enum
29
71
 
30
- LOW = :low
31
- STANDARD = :standard
32
- HIGH = :high
33
- UNLIMITED = :unlimited
72
+ PUBLIC = :public
73
+ PRIVATE = :private
34
74
 
35
75
  # @!method self.values
36
76
  # @return [Array<Symbol>]
@@ -0,0 +1,16 @@
1
+ # frozen_string_literal: true
2
+
3
+ module Handinger
4
+ module Models
5
+ # @see Handinger::Resources::Tasks#delete
6
+ class DeleteTaskResponse < Handinger::Internal::Type::BaseModel
7
+ # @!attribute archived
8
+ #
9
+ # @return [Boolean]
10
+ required :archived, Handinger::Internal::Type::Boolean
11
+
12
+ # @!method initialize(archived:)
13
+ # @param archived [Boolean]
14
+ end
15
+ end
16
+ end
@@ -0,0 +1,16 @@
1
+ # frozen_string_literal: true
2
+
3
+ module Handinger
4
+ module Models
5
+ # @see Handinger::Resources::Workers#delete
6
+ class DeleteWorkerResponse < Handinger::Internal::Type::BaseModel
7
+ # @!attribute deleted
8
+ #
9
+ # @return [Boolean]
10
+ required :deleted, Handinger::Internal::Type::Boolean
11
+
12
+ # @!method initialize(deleted:)
13
+ # @param deleted [Boolean]
14
+ end
15
+ end
16
+ end
@@ -0,0 +1,119 @@
1
+ # frozen_string_literal: true
2
+
3
+ module Handinger
4
+ module Models
5
+ class Task < Handinger::Internal::Type::BaseModel
6
+ # @!attribute id
7
+ #
8
+ # @return [String]
9
+ required :id, String
10
+
11
+ # @!attribute completed_at
12
+ #
13
+ # @return [String, nil]
14
+ required :completed_at, String, api_name: :completedAt, nil?: true
15
+
16
+ # @!attribute created_at
17
+ #
18
+ # @return [String]
19
+ required :created_at, String, api_name: :createdAt
20
+
21
+ # @!attribute created_by_user_id
22
+ #
23
+ # @return [String, nil]
24
+ required :created_by_user_id, String, api_name: :createdByUserId, nil?: true
25
+
26
+ # @!attribute organization_id
27
+ #
28
+ # @return [String]
29
+ required :organization_id, String, api_name: :organizationId
30
+
31
+ # @!attribute status
32
+ #
33
+ # @return [Symbol, Handinger::Models::Task::Status]
34
+ required :status, enum: -> { Handinger::Task::Status }
35
+
36
+ # @!attribute title
37
+ #
38
+ # @return [String]
39
+ required :title, String
40
+
41
+ # @!attribute totals
42
+ #
43
+ # @return [Handinger::Models::Task::Totals]
44
+ required :totals, -> { Handinger::Task::Totals }
45
+
46
+ # @!attribute triggered_by
47
+ #
48
+ # @return [Symbol, Handinger::Models::Task::TriggeredBy]
49
+ required :triggered_by, enum: -> { Handinger::Task::TriggeredBy }, api_name: :triggeredBy
50
+
51
+ # @!attribute worker_id
52
+ #
53
+ # @return [String]
54
+ required :worker_id, String, api_name: :workerId
55
+
56
+ # @!method initialize(id:, completed_at:, created_at:, created_by_user_id:, organization_id:, status:, title:, totals:, triggered_by:, worker_id:)
57
+ # @param id [String]
58
+ # @param completed_at [String, nil]
59
+ # @param created_at [String]
60
+ # @param created_by_user_id [String, nil]
61
+ # @param organization_id [String]
62
+ # @param status [Symbol, Handinger::Models::Task::Status]
63
+ # @param title [String]
64
+ # @param totals [Handinger::Models::Task::Totals]
65
+ # @param triggered_by [Symbol, Handinger::Models::Task::TriggeredBy]
66
+ # @param worker_id [String]
67
+
68
+ # @see Handinger::Models::Task#status
69
+ module Status
70
+ extend Handinger::Internal::Type::Enum
71
+
72
+ PENDING = :pending
73
+ RUNNING = :running
74
+ COMPLETED = :completed
75
+ ERROR = :error
76
+ ABORTED = :aborted
77
+
78
+ # @!method self.values
79
+ # @return [Array<Symbol>]
80
+ end
81
+
82
+ # @see Handinger::Models::Task#totals
83
+ class Totals < Handinger::Internal::Type::BaseModel
84
+ # @!attribute credits
85
+ #
86
+ # @return [Float]
87
+ required :credits, Float
88
+
89
+ # @!attribute duration_ms
90
+ #
91
+ # @return [Float]
92
+ required :duration_ms, Float, api_name: :durationMs
93
+
94
+ # @!attribute turn_count
95
+ #
96
+ # @return [Float]
97
+ required :turn_count, Float, api_name: :turnCount
98
+
99
+ # @!method initialize(credits:, duration_ms:, turn_count:)
100
+ # @param credits [Float]
101
+ # @param duration_ms [Float]
102
+ # @param turn_count [Float]
103
+ end
104
+
105
+ # @see Handinger::Models::Task#triggered_by
106
+ module TriggeredBy
107
+ extend Handinger::Internal::Type::Enum
108
+
109
+ API = :api
110
+ EMAIL = :email
111
+ SCHEDULE = :schedule
112
+ UI = :ui
113
+
114
+ # @!method self.values
115
+ # @return [Array<Symbol>]
116
+ end
117
+ end
118
+ end
119
+ end
@@ -0,0 +1,14 @@
1
+ # frozen_string_literal: true
2
+
3
+ module Handinger
4
+ module Models
5
+ # @see Handinger::Resources::Tasks#create
6
+ class TaskCreateParams < Handinger::Models::CreateTask
7
+ extend Handinger::Internal::Type::RequestParameters::Converter
8
+ include Handinger::Internal::Type::RequestParameters
9
+
10
+ # @!method initialize(request_options: {})
11
+ # @param request_options [Handinger::RequestOptions, Hash{Symbol=>Object}]
12
+ end
13
+ end
14
+ end
@@ -0,0 +1,20 @@
1
+ # frozen_string_literal: true
2
+
3
+ module Handinger
4
+ module Models
5
+ # @see Handinger::Resources::Tasks#delete
6
+ class TaskDeleteParams < Handinger::Internal::Type::BaseModel
7
+ extend Handinger::Internal::Type::RequestParameters::Converter
8
+ include Handinger::Internal::Type::RequestParameters
9
+
10
+ # @!attribute task_id
11
+ #
12
+ # @return [String]
13
+ required :task_id, String
14
+
15
+ # @!method initialize(task_id:, request_options: {})
16
+ # @param task_id [String]
17
+ # @param request_options [Handinger::RequestOptions, Hash{Symbol=>Object}]
18
+ end
19
+ end
20
+ end
@@ -0,0 +1,20 @@
1
+ # frozen_string_literal: true
2
+
3
+ module Handinger
4
+ module Models
5
+ # @see Handinger::Resources::Tasks#retrieve
6
+ class TaskRetrieveParams < Handinger::Internal::Type::BaseModel
7
+ extend Handinger::Internal::Type::RequestParameters::Converter
8
+ include Handinger::Internal::Type::RequestParameters
9
+
10
+ # @!attribute task_id
11
+ #
12
+ # @return [String]
13
+ required :task_id, String
14
+
15
+ # @!method initialize(task_id:, request_options: {})
16
+ # @param task_id [String]
17
+ # @param request_options [Handinger::RequestOptions, Hash{Symbol=>Object}]
18
+ end
19
+ end
20
+ end