hatchet-sdk 0.7.0 → 0.8.1
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 +4 -4
- data/CHANGELOG.md +15 -0
- data/README.md +45 -0
- data/lib/hatchet/clients/rest/.openapi-generator/FILES +0 -5
- data/lib/hatchet/clients/rest/README.md +0 -9
- data/lib/hatchet/clients/rest/lib/hatchet-sdk-rest/api/worker_api.rb +3 -0
- data/lib/hatchet/clients/rest/lib/hatchet-sdk-rest/api/workflow_runs_api.rb +3 -0
- data/lib/hatchet/clients/rest/lib/hatchet-sdk-rest/models/feature_flag_id.rb +2 -1
- data/lib/hatchet/clients/rest/lib/hatchet-sdk-rest/models/tenant.rb +14 -4
- data/lib/hatchet/clients/rest/lib/hatchet-sdk-rest/models/worker.rb +24 -4
- data/lib/hatchet/clients/rest/lib/hatchet-sdk-rest.rb +0 -5
- data/lib/hatchet/concurrency.rb +82 -19
- data/lib/hatchet/contracts/dispatcher/dispatcher_pb.rb +1 -1
- data/lib/hatchet/contracts/v1/workflows_pb.rb +1 -1
- data/lib/hatchet/version.rb +1 -1
- data/lib/hatchet/worker/durable_event_listener.rb +71 -20
- data/sig/hatchet/concurrency.rbs +12 -2
- data/sig/hatchet/worker/durable_event_listener.rbs +3 -0
- metadata +2 -7
- data/lib/hatchet/clients/rest/lib/hatchet-sdk-rest/api/operator_api.rb +0 -405
- data/lib/hatchet/clients/rest/lib/hatchet-sdk-rest/models/v1_create_http_operator_request.rb +0 -346
- data/lib/hatchet/clients/rest/lib/hatchet-sdk-rest/models/v1_http_operator.rb +0 -372
- data/lib/hatchet/clients/rest/lib/hatchet-sdk-rest/models/v1_http_operator_list.rb +0 -231
- data/lib/hatchet/clients/rest/lib/hatchet-sdk-rest/models/v1_update_http_operator_request.rb +0 -252
checksums.yaml
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
---
|
|
2
2
|
SHA256:
|
|
3
|
-
metadata.gz:
|
|
4
|
-
data.tar.gz:
|
|
3
|
+
metadata.gz: be1774bd178f9f0894c60a509906ffebd7fe8f1a46e6cd115d9c7697a3dd53a6
|
|
4
|
+
data.tar.gz: 4b95d1af25208d79c676971b591a5eb48a9e303a7da8b471eef4c211c88c082d
|
|
5
5
|
SHA512:
|
|
6
|
-
metadata.gz:
|
|
7
|
-
data.tar.gz:
|
|
6
|
+
metadata.gz: afc688f0fefb4dfb586930df4fa9565fe4b19fe40ccd0420b023ed1955d0f0d324cf4f21e77d015c0890d99372ff59169514ece787b682e20859eb3595a1341b
|
|
7
|
+
data.tar.gz: dddfa86c822f506aa768fb233243a063e8f4b405f7fa6a2295474ae2e65b2d8bcf4ae59490cd8bd0f9b13d20c561e755217dda95402df91597d780b9e0dd3708
|
data/CHANGELOG.md
CHANGED
|
@@ -5,6 +5,21 @@ All notable changes to Hatchet's Ruby SDK will be documented in this changelog.
|
|
|
5
5
|
The format is based on [Keep a Changelog](https://keepachangelog.com/en/1.0.0/),
|
|
6
6
|
and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0.html).
|
|
7
7
|
|
|
8
|
+
## [0.8.1] - 2026-10-05
|
|
9
|
+
|
|
10
|
+
### Fixed
|
|
11
|
+
|
|
12
|
+
- [Durable tasks](https://docs.hatchet.run/v1/durable-tasks) with many concurrent waits no longer flood the engine with worker status requests. The durable listener sent one worker status request per wait, each listing every pending wait, which was quadratic in the number of waits; each request now lists only the waits registered since the previous one.
|
|
13
|
+
- The periodic worker status request lists only waits that have been pending for more than two seconds, is sent every five seconds instead of every second, and is split into requests of at most 10,000 entries so it stays under the gRPC message size limit.
|
|
14
|
+
|
|
15
|
+
## [0.8.0] - 2026-09-02
|
|
16
|
+
|
|
17
|
+
### Added
|
|
18
|
+
|
|
19
|
+
- Added support for tenant-scoped shared concurrency strategies: declare a `ConcurrencyExpression` with `is_tenant_scoped: true` and a `name`, and every task declaring the same name (across workflows) consumes the same concurrency limit. Re-declaring a name updates the strategy in place, and tenant-scoped entries mix freely with workflow-scoped entries in one chain.
|
|
20
|
+
- `max_runs` on `ConcurrencyExpression` now accepts an `Integer` or a `String`: a string is a CEL expression over task input computing the max runs for each concurrency group, so different groups (e.g. pricing tiers) can have different limits.
|
|
21
|
+
|
|
22
|
+
|
|
8
23
|
## [0.7.0] - 2026-08-26
|
|
9
24
|
|
|
10
25
|
### Changed
|
data/README.md
CHANGED
|
@@ -10,6 +10,51 @@
|
|
|
10
10
|
|
|
11
11
|
This is the official Ruby SDK for [Hatchet](https://hatchet.run), a distributed, fault-tolerant task queue. The SDK allows you to easily integrate Hatchet's task scheduling and workflow orchestration capabilities into your Ruby applications.
|
|
12
12
|
|
|
13
|
+
<!-- hatchet-agent-docs:start -->
|
|
14
|
+
<!-- Generated by the SDK docs pipeline from frontend/docs/reference-map.json. Do not edit by hand. -->
|
|
15
|
+
|
|
16
|
+
## Documentation for agents
|
|
17
|
+
|
|
18
|
+
The linked pages serve plain markdown for tools and agents. Full docs index: https://docs.hatchet.run/llms.txt
|
|
19
|
+
|
|
20
|
+
Setup and local development:
|
|
21
|
+
|
|
22
|
+
- Quickstart: https://docs.hatchet.run/v1/quickstart.md
|
|
23
|
+
- Running Hatchet locally: https://docs.hatchet.run/v1/running-locally.md
|
|
24
|
+
|
|
25
|
+
Core concepts:
|
|
26
|
+
|
|
27
|
+
- Tasks: https://docs.hatchet.run/v1/tasks.md
|
|
28
|
+
- Workers: https://docs.hatchet.run/v1/workers.md
|
|
29
|
+
- Running tasks: https://docs.hatchet.run/v1/running-your-task.md
|
|
30
|
+
- DAGs: https://docs.hatchet.run/v1/directed-acyclic-graphs.md
|
|
31
|
+
- Durable execution: https://docs.hatchet.run/v1/durable-execution.md
|
|
32
|
+
|
|
33
|
+
Flow control:
|
|
34
|
+
|
|
35
|
+
- Concurrency: https://docs.hatchet.run/v1/concurrency.md
|
|
36
|
+
- Rate limits: https://docs.hatchet.run/v1/rate-limits.md
|
|
37
|
+
- Retries: https://docs.hatchet.run/v1/retry-policies.md
|
|
38
|
+
- Idempotency: https://docs.hatchet.run/v1/idempotency.md
|
|
39
|
+
- CEL expressions: https://docs.hatchet.run/v1/cel-expressions.md
|
|
40
|
+
|
|
41
|
+
Ruby SDK reference (overview: https://docs.hatchet.run/reference/ruby.md):
|
|
42
|
+
|
|
43
|
+
- CEL: https://docs.hatchet.run/reference/ruby/feature-clients/cel.md (guide: https://docs.hatchet.run/v1/cel-expressions.md)
|
|
44
|
+
- Crons: https://docs.hatchet.run/reference/ruby/feature-clients/cron.md (guide: https://docs.hatchet.run/v1/cron-runs.md)
|
|
45
|
+
- Events: https://docs.hatchet.run/reference/ruby/feature-clients/events.md (guide: https://docs.hatchet.run/v1/events.md)
|
|
46
|
+
- Filters: https://docs.hatchet.run/reference/ruby/feature-clients/filters.md (guide: https://docs.hatchet.run/v1/events.md)
|
|
47
|
+
- Logs: https://docs.hatchet.run/reference/ruby/feature-clients/logs.md (guide: https://docs.hatchet.run/v1/logging.md)
|
|
48
|
+
- Metrics: https://docs.hatchet.run/reference/ruby/feature-clients/metrics.md (guide: https://docs.hatchet.run/v1/prometheus-metrics.md)
|
|
49
|
+
- Rate Limits: https://docs.hatchet.run/reference/ruby/feature-clients/rate_limits.md (guide: https://docs.hatchet.run/v1/rate-limits.md)
|
|
50
|
+
- Runs: https://docs.hatchet.run/reference/ruby/feature-clients/runs.md (guide: https://docs.hatchet.run/v1/running-your-task.md)
|
|
51
|
+
- Scheduled Runs: https://docs.hatchet.run/reference/ruby/feature-clients/scheduled.md (guide: https://docs.hatchet.run/v1/scheduled-runs.md)
|
|
52
|
+
- Tenant: https://docs.hatchet.run/reference/ruby/feature-clients/tenant.md
|
|
53
|
+
- Workers: https://docs.hatchet.run/reference/ruby/feature-clients/workers.md (guide: https://docs.hatchet.run/v1/workers.md)
|
|
54
|
+
- Workflows: https://docs.hatchet.run/reference/ruby/feature-clients/workflows.md (guide: https://docs.hatchet.run/v1/tasks.md)
|
|
55
|
+
|
|
56
|
+
<!-- hatchet-agent-docs:end -->
|
|
57
|
+
|
|
13
58
|
## Installation
|
|
14
59
|
|
|
15
60
|
Add this line to your application's Gemfile:
|
|
@@ -21,7 +21,6 @@ lib/hatchet-sdk-rest/api/healthcheck_api.rb
|
|
|
21
21
|
lib/hatchet-sdk-rest/api/log_api.rb
|
|
22
22
|
lib/hatchet-sdk-rest/api/metadata_api.rb
|
|
23
23
|
lib/hatchet-sdk-rest/api/observability_api.rb
|
|
24
|
-
lib/hatchet-sdk-rest/api/operator_api.rb
|
|
25
24
|
lib/hatchet-sdk-rest/api/rate_limits_api.rb
|
|
26
25
|
lib/hatchet-sdk-rest/api/slack_api.rb
|
|
27
26
|
lib/hatchet-sdk-rest/api/sns_api.rb
|
|
@@ -181,7 +180,6 @@ lib/hatchet-sdk-rest/models/v1_cel_debug_request.rb
|
|
|
181
180
|
lib/hatchet-sdk-rest/models/v1_cel_debug_response.rb
|
|
182
181
|
lib/hatchet-sdk-rest/models/v1_cel_debug_response_status.rb
|
|
183
182
|
lib/hatchet-sdk-rest/models/v1_create_filter_request.rb
|
|
184
|
-
lib/hatchet-sdk-rest/models/v1_create_http_operator_request.rb
|
|
185
183
|
lib/hatchet-sdk-rest/models/v1_create_webhook_request.rb
|
|
186
184
|
lib/hatchet-sdk-rest/models/v1_create_webhook_request_api_key.rb
|
|
187
185
|
lib/hatchet-sdk-rest/models/v1_create_webhook_request_base.rb
|
|
@@ -198,8 +196,6 @@ lib/hatchet-sdk-rest/models/v1_event_triggered_run.rb
|
|
|
198
196
|
lib/hatchet-sdk-rest/models/v1_event_workflow_run_summary.rb
|
|
199
197
|
lib/hatchet-sdk-rest/models/v1_filter.rb
|
|
200
198
|
lib/hatchet-sdk-rest/models/v1_filter_list.rb
|
|
201
|
-
lib/hatchet-sdk-rest/models/v1_http_operator.rb
|
|
202
|
-
lib/hatchet-sdk-rest/models/v1_http_operator_list.rb
|
|
203
199
|
lib/hatchet-sdk-rest/models/v1_log_line.rb
|
|
204
200
|
lib/hatchet-sdk-rest/models/v1_log_line_level.rb
|
|
205
201
|
lib/hatchet-sdk-rest/models/v1_log_line_list.rb
|
|
@@ -226,7 +222,6 @@ lib/hatchet-sdk-rest/models/v1_task_timing.rb
|
|
|
226
222
|
lib/hatchet-sdk-rest/models/v1_task_timing_list.rb
|
|
227
223
|
lib/hatchet-sdk-rest/models/v1_trigger_workflow_run_request.rb
|
|
228
224
|
lib/hatchet-sdk-rest/models/v1_update_filter_request.rb
|
|
229
|
-
lib/hatchet-sdk-rest/models/v1_update_http_operator_request.rb
|
|
230
225
|
lib/hatchet-sdk-rest/models/v1_update_webhook_request.rb
|
|
231
226
|
lib/hatchet-sdk-rest/models/v1_wait_item.rb
|
|
232
227
|
lib/hatchet-sdk-rest/models/v1_webhook.rb
|
|
@@ -137,11 +137,6 @@ Class | Method | HTTP request | Description
|
|
|
137
137
|
*HatchetSdkRest::MetadataApi* | [**metadata_get**](docs/MetadataApi.md#metadata_get) | **GET** /api/v1/meta | Get metadata
|
|
138
138
|
*HatchetSdkRest::MetadataApi* | [**metadata_list_integrations**](docs/MetadataApi.md#metadata_list_integrations) | **GET** /api/v1/meta/integrations | List integrations
|
|
139
139
|
*HatchetSdkRest::ObservabilityApi* | [**v1_observability_get_trace**](docs/ObservabilityApi.md#v1_observability_get_trace) | **GET** /api/v1/stable/tenants/{tenant}/traces | Get OTel trace
|
|
140
|
-
*HatchetSdkRest::OperatorApi* | [**v1_http_operator_create**](docs/OperatorApi.md#v1_http_operator_create) | **POST** /api/v1/stable/tenants/{tenant}/operators/http | Create an HTTP operator
|
|
141
|
-
*HatchetSdkRest::OperatorApi* | [**v1_http_operator_delete**](docs/OperatorApi.md#v1_http_operator_delete) | **DELETE** /api/v1/stable/operators/http/{v1-http-operator} | Delete an HTTP operator
|
|
142
|
-
*HatchetSdkRest::OperatorApi* | [**v1_http_operator_get**](docs/OperatorApi.md#v1_http_operator_get) | **GET** /api/v1/stable/operators/http/{v1-http-operator} | Get an HTTP operator
|
|
143
|
-
*HatchetSdkRest::OperatorApi* | [**v1_http_operator_list**](docs/OperatorApi.md#v1_http_operator_list) | **GET** /api/v1/stable/tenants/{tenant}/operators/http | List HTTP operators
|
|
144
|
-
*HatchetSdkRest::OperatorApi* | [**v1_http_operator_update**](docs/OperatorApi.md#v1_http_operator_update) | **PATCH** /api/v1/stable/operators/http/{v1-http-operator} | Update an HTTP operator
|
|
145
140
|
*HatchetSdkRest::RateLimitsApi* | [**rate_limit_delete**](docs/RateLimitsApi.md#rate_limit_delete) | **DELETE** /api/v1/tenants/{tenant}/rate-limits | Delete rate limit
|
|
146
141
|
*HatchetSdkRest::RateLimitsApi* | [**rate_limit_list**](docs/RateLimitsApi.md#rate_limit_list) | **GET** /api/v1/tenants/{tenant}/rate-limits | List rate limits
|
|
147
142
|
*HatchetSdkRest::SNSApi* | [**sns_create**](docs/SNSApi.md#sns_create) | **POST** /api/v1/tenants/{tenant}/sns | Create SNS integration
|
|
@@ -392,7 +387,6 @@ Class | Method | HTTP request | Description
|
|
|
392
387
|
- [HatchetSdkRest::V1CancelTaskRequest](docs/V1CancelTaskRequest.md)
|
|
393
388
|
- [HatchetSdkRest::V1CancelledTasks](docs/V1CancelledTasks.md)
|
|
394
389
|
- [HatchetSdkRest::V1CreateFilterRequest](docs/V1CreateFilterRequest.md)
|
|
395
|
-
- [HatchetSdkRest::V1CreateHTTPOperatorRequest](docs/V1CreateHTTPOperatorRequest.md)
|
|
396
390
|
- [HatchetSdkRest::V1CreateWebhookRequest](docs/V1CreateWebhookRequest.md)
|
|
397
391
|
- [HatchetSdkRest::V1CreateWebhookRequestAPIKey](docs/V1CreateWebhookRequestAPIKey.md)
|
|
398
392
|
- [HatchetSdkRest::V1CreateWebhookRequestBase](docs/V1CreateWebhookRequestBase.md)
|
|
@@ -409,8 +403,6 @@ Class | Method | HTTP request | Description
|
|
|
409
403
|
- [HatchetSdkRest::V1EventWorkflowRunSummary](docs/V1EventWorkflowRunSummary.md)
|
|
410
404
|
- [HatchetSdkRest::V1Filter](docs/V1Filter.md)
|
|
411
405
|
- [HatchetSdkRest::V1FilterList](docs/V1FilterList.md)
|
|
412
|
-
- [HatchetSdkRest::V1HTTPOperator](docs/V1HTTPOperator.md)
|
|
413
|
-
- [HatchetSdkRest::V1HTTPOperatorList](docs/V1HTTPOperatorList.md)
|
|
414
406
|
- [HatchetSdkRest::V1LogLine](docs/V1LogLine.md)
|
|
415
407
|
- [HatchetSdkRest::V1LogLineLevel](docs/V1LogLineLevel.md)
|
|
416
408
|
- [HatchetSdkRest::V1LogLineList](docs/V1LogLineList.md)
|
|
@@ -437,7 +429,6 @@ Class | Method | HTTP request | Description
|
|
|
437
429
|
- [HatchetSdkRest::V1TaskTimingList](docs/V1TaskTimingList.md)
|
|
438
430
|
- [HatchetSdkRest::V1TriggerWorkflowRunRequest](docs/V1TriggerWorkflowRunRequest.md)
|
|
439
431
|
- [HatchetSdkRest::V1UpdateFilterRequest](docs/V1UpdateFilterRequest.md)
|
|
440
|
-
- [HatchetSdkRest::V1UpdateHTTPOperatorRequest](docs/V1UpdateHTTPOperatorRequest.md)
|
|
441
432
|
- [HatchetSdkRest::V1UpdateWebhookRequest](docs/V1UpdateWebhookRequest.md)
|
|
442
433
|
- [HatchetSdkRest::V1WaitItem](docs/V1WaitItem.md)
|
|
443
434
|
- [HatchetSdkRest::V1Webhook](docs/V1Webhook.md)
|
|
@@ -98,6 +98,7 @@ module HatchetSdkRest
|
|
|
98
98
|
# @option opts [Integer] :limit The number to limit by
|
|
99
99
|
# @option opts [Array<WorkerStatus>] :statuses Filter by worker status
|
|
100
100
|
# @option opts [Array<String>] :labels Filter by worker labels
|
|
101
|
+
# @option opts [Boolean] :include_operators Whether to include engine-managed operator workers, which are hidden by default
|
|
101
102
|
# @return [WorkerList]
|
|
102
103
|
def worker_list(tenant, opts = {})
|
|
103
104
|
data, _status_code, _headers = worker_list_with_http_info(tenant, opts)
|
|
@@ -112,6 +113,7 @@ module HatchetSdkRest
|
|
|
112
113
|
# @option opts [Integer] :limit The number to limit by
|
|
113
114
|
# @option opts [Array<WorkerStatus>] :statuses Filter by worker status
|
|
114
115
|
# @option opts [Array<String>] :labels Filter by worker labels
|
|
116
|
+
# @option opts [Boolean] :include_operators Whether to include engine-managed operator workers, which are hidden by default
|
|
115
117
|
# @return [Array<(WorkerList, Integer, Hash)>] WorkerList data, response status code and response headers
|
|
116
118
|
def worker_list_with_http_info(tenant, opts = {})
|
|
117
119
|
if @api_client.config.debugging
|
|
@@ -138,6 +140,7 @@ module HatchetSdkRest
|
|
|
138
140
|
query_params[:'limit'] = opts[:'limit'] if !opts[:'limit'].nil?
|
|
139
141
|
query_params[:'statuses'] = @api_client.build_collection_param(opts[:'statuses'], :multi) if !opts[:'statuses'].nil?
|
|
140
142
|
query_params[:'labels'] = @api_client.build_collection_param(opts[:'labels'], :multi) if !opts[:'labels'].nil?
|
|
143
|
+
query_params[:'includeOperators'] = opts[:'include_operators'] if !opts[:'include_operators'].nil?
|
|
141
144
|
|
|
142
145
|
# header parameters
|
|
143
146
|
header_params = opts[:header_params] || {}
|
|
@@ -358,6 +358,7 @@ module HatchetSdkRest
|
|
|
358
358
|
# Get a workflow run and its metadata to display on the \"detail\" page
|
|
359
359
|
# @param v1_workflow_run [String] The workflow run id to get
|
|
360
360
|
# @param [Hash] opts the optional parameters
|
|
361
|
+
# @option opts [Boolean] :include_orchestrator_events Whether to include the DAG orchestrator's task events, which are hidden by default
|
|
361
362
|
# @return [V1WorkflowRunDetails]
|
|
362
363
|
def v1_workflow_run_get(v1_workflow_run, opts = {})
|
|
363
364
|
data, _status_code, _headers = v1_workflow_run_get_with_http_info(v1_workflow_run, opts)
|
|
@@ -368,6 +369,7 @@ module HatchetSdkRest
|
|
|
368
369
|
# Get a workflow run and its metadata to display on the \"detail\" page
|
|
369
370
|
# @param v1_workflow_run [String] The workflow run id to get
|
|
370
371
|
# @param [Hash] opts the optional parameters
|
|
372
|
+
# @option opts [Boolean] :include_orchestrator_events Whether to include the DAG orchestrator's task events, which are hidden by default
|
|
371
373
|
# @return [Array<(V1WorkflowRunDetails, Integer, Hash)>] V1WorkflowRunDetails data, response status code and response headers
|
|
372
374
|
def v1_workflow_run_get_with_http_info(v1_workflow_run, opts = {})
|
|
373
375
|
if @api_client.config.debugging
|
|
@@ -390,6 +392,7 @@ module HatchetSdkRest
|
|
|
390
392
|
|
|
391
393
|
# query parameters
|
|
392
394
|
query_params = opts[:query_params] || {}
|
|
395
|
+
query_params[:'includeOrchestratorEvents'] = opts[:'include_orchestrator_events'] if !opts[:'include_orchestrator_events'].nil?
|
|
393
396
|
|
|
394
397
|
# header parameters
|
|
395
398
|
header_params = opts[:header_params] || {}
|
|
@@ -18,9 +18,10 @@ module HatchetSdkRest
|
|
|
18
18
|
TENANT_LOG_WORKFLOW_FILTER_ENABLED = "tenant-log-workflow-filter-enabled".freeze
|
|
19
19
|
TRACE_MINIMAP_ENABLED = "trace-minimap-enabled".freeze
|
|
20
20
|
ORGANIZATION_SSO_ENABLED = "organization-sso-enabled".freeze
|
|
21
|
+
OPERATOR_DETAILS_ENABLED = "operator-details-enabled".freeze
|
|
21
22
|
|
|
22
23
|
def self.all_vars
|
|
23
|
-
@all_vars ||= [TENANT_LOG_WORKFLOW_FILTER_ENABLED, TRACE_MINIMAP_ENABLED, ORGANIZATION_SSO_ENABLED].freeze
|
|
24
|
+
@all_vars ||= [TENANT_LOG_WORKFLOW_FILTER_ENABLED, TRACE_MINIMAP_ENABLED, ORGANIZATION_SSO_ENABLED, OPERATOR_DETAILS_ENABLED].freeze
|
|
24
25
|
end
|
|
25
26
|
|
|
26
27
|
# Builds the enum from string
|
|
@@ -41,6 +41,9 @@ module HatchetSdkRest
|
|
|
41
41
|
# Control-plane shard region for the tenant (e.g. aws:us-west-2).
|
|
42
42
|
attr_accessor :region
|
|
43
43
|
|
|
44
|
+
# The data retention period for the tenant, e.g. 720h.
|
|
45
|
+
attr_accessor :data_retention_period
|
|
46
|
+
|
|
44
47
|
class EnumAttributeValidator
|
|
45
48
|
attr_reader :datatype
|
|
46
49
|
attr_reader :allowable_values
|
|
@@ -74,7 +77,8 @@ module HatchetSdkRest
|
|
|
74
77
|
:'alert_member_emails' => :'alertMemberEmails',
|
|
75
78
|
:'environment' => :'environment',
|
|
76
79
|
:'server_url' => :'serverUrl',
|
|
77
|
-
:'region' => :'region'
|
|
80
|
+
:'region' => :'region',
|
|
81
|
+
:'data_retention_period' => :'dataRetentionPeriod'
|
|
78
82
|
}
|
|
79
83
|
end
|
|
80
84
|
|
|
@@ -99,7 +103,8 @@ module HatchetSdkRest
|
|
|
99
103
|
:'alert_member_emails' => :'Boolean',
|
|
100
104
|
:'environment' => :'TenantEnvironment',
|
|
101
105
|
:'server_url' => :'String',
|
|
102
|
-
:'region' => :'String'
|
|
106
|
+
:'region' => :'String',
|
|
107
|
+
:'data_retention_period' => :'String'
|
|
103
108
|
}
|
|
104
109
|
end
|
|
105
110
|
|
|
@@ -168,6 +173,10 @@ module HatchetSdkRest
|
|
|
168
173
|
if attributes.key?(:'region')
|
|
169
174
|
self.region = attributes[:'region']
|
|
170
175
|
end
|
|
176
|
+
|
|
177
|
+
if attributes.key?(:'data_retention_period')
|
|
178
|
+
self.data_retention_period = attributes[:'data_retention_period']
|
|
179
|
+
end
|
|
171
180
|
end
|
|
172
181
|
|
|
173
182
|
# Show invalid properties with the reasons. Usually used together with valid?
|
|
@@ -258,7 +267,8 @@ module HatchetSdkRest
|
|
|
258
267
|
alert_member_emails == o.alert_member_emails &&
|
|
259
268
|
environment == o.environment &&
|
|
260
269
|
server_url == o.server_url &&
|
|
261
|
-
region == o.region
|
|
270
|
+
region == o.region &&
|
|
271
|
+
data_retention_period == o.data_retention_period
|
|
262
272
|
end
|
|
263
273
|
|
|
264
274
|
# @see the `==` method
|
|
@@ -270,7 +280,7 @@ module HatchetSdkRest
|
|
|
270
280
|
# Calculates hash code according to all attributes.
|
|
271
281
|
# @return [Integer] Hash code
|
|
272
282
|
def hash
|
|
273
|
-
[metadata, name, slug, version, analytics_opt_out, alert_member_emails, environment, server_url, region].hash
|
|
283
|
+
[metadata, name, slug, version, analytics_opt_out, alert_member_emails, environment, server_url, region, data_retention_period].hash
|
|
274
284
|
end
|
|
275
285
|
|
|
276
286
|
# Builds the object from hash
|
|
@@ -60,6 +60,12 @@ module HatchetSdkRest
|
|
|
60
60
|
|
|
61
61
|
attr_accessor :runtime_info
|
|
62
62
|
|
|
63
|
+
# The id of the operator that owns this worker, if it is an engine-managed operator worker.
|
|
64
|
+
attr_accessor :operator_id
|
|
65
|
+
|
|
66
|
+
# The number of durable task runs owned by this operator that are currently evicted while waiting on durable events. Evicted runs hold no slots. Only set for operator workers.
|
|
67
|
+
attr_accessor :evicted_durable_task_count
|
|
68
|
+
|
|
63
69
|
class EnumAttributeValidator
|
|
64
70
|
attr_reader :datatype
|
|
65
71
|
attr_reader :allowable_values
|
|
@@ -100,7 +106,9 @@ module HatchetSdkRest
|
|
|
100
106
|
:'labels' => :'labels',
|
|
101
107
|
:'webhook_url' => :'webhookUrl',
|
|
102
108
|
:'webhook_id' => :'webhookId',
|
|
103
|
-
:'runtime_info' => :'runtimeInfo'
|
|
109
|
+
:'runtime_info' => :'runtimeInfo',
|
|
110
|
+
:'operator_id' => :'operatorId',
|
|
111
|
+
:'evicted_durable_task_count' => :'evictedDurableTaskCount'
|
|
104
112
|
}
|
|
105
113
|
end
|
|
106
114
|
|
|
@@ -132,7 +140,9 @@ module HatchetSdkRest
|
|
|
132
140
|
:'labels' => :'Array<WorkerLabel>',
|
|
133
141
|
:'webhook_url' => :'String',
|
|
134
142
|
:'webhook_id' => :'String',
|
|
135
|
-
:'runtime_info' => :'WorkerRuntimeInfo'
|
|
143
|
+
:'runtime_info' => :'WorkerRuntimeInfo',
|
|
144
|
+
:'operator_id' => :'String',
|
|
145
|
+
:'evicted_durable_task_count' => :'Integer'
|
|
136
146
|
}
|
|
137
147
|
end
|
|
138
148
|
|
|
@@ -239,6 +249,14 @@ module HatchetSdkRest
|
|
|
239
249
|
if attributes.key?(:'runtime_info')
|
|
240
250
|
self.runtime_info = attributes[:'runtime_info']
|
|
241
251
|
end
|
|
252
|
+
|
|
253
|
+
if attributes.key?(:'operator_id')
|
|
254
|
+
self.operator_id = attributes[:'operator_id']
|
|
255
|
+
end
|
|
256
|
+
|
|
257
|
+
if attributes.key?(:'evicted_durable_task_count')
|
|
258
|
+
self.evicted_durable_task_count = attributes[:'evicted_durable_task_count']
|
|
259
|
+
end
|
|
242
260
|
end
|
|
243
261
|
|
|
244
262
|
# Show invalid properties with the reasons. Usually used together with valid?
|
|
@@ -349,7 +367,9 @@ module HatchetSdkRest
|
|
|
349
367
|
labels == o.labels &&
|
|
350
368
|
webhook_url == o.webhook_url &&
|
|
351
369
|
webhook_id == o.webhook_id &&
|
|
352
|
-
runtime_info == o.runtime_info
|
|
370
|
+
runtime_info == o.runtime_info &&
|
|
371
|
+
operator_id == o.operator_id &&
|
|
372
|
+
evicted_durable_task_count == o.evicted_durable_task_count
|
|
353
373
|
end
|
|
354
374
|
|
|
355
375
|
# @see the `==` method
|
|
@@ -361,7 +381,7 @@ module HatchetSdkRest
|
|
|
361
381
|
# Calculates hash code according to all attributes.
|
|
362
382
|
# @return [Integer] Hash code
|
|
363
383
|
def hash
|
|
364
|
-
[metadata, name, type, last_heartbeat_at, last_listener_established, actions, registered_workflows, slots, recent_step_runs, status, slot_config, dispatcher_id, labels, webhook_url, webhook_id, runtime_info].hash
|
|
384
|
+
[metadata, name, type, last_heartbeat_at, last_listener_established, actions, registered_workflows, slots, recent_step_runs, status, slot_config, dispatcher_id, labels, webhook_url, webhook_id, runtime_info, operator_id, evicted_durable_task_count].hash
|
|
365
385
|
end
|
|
366
386
|
|
|
367
387
|
# Builds the object from hash
|
|
@@ -161,7 +161,6 @@ HatchetSdkRest.autoload :V1CELDebugResponseStatus, 'hatchet-sdk-rest/models/v1_c
|
|
|
161
161
|
HatchetSdkRest.autoload :V1CancelTaskRequest, 'hatchet-sdk-rest/models/v1_cancel_task_request'
|
|
162
162
|
HatchetSdkRest.autoload :V1CancelledTasks, 'hatchet-sdk-rest/models/v1_cancelled_tasks'
|
|
163
163
|
HatchetSdkRest.autoload :V1CreateFilterRequest, 'hatchet-sdk-rest/models/v1_create_filter_request'
|
|
164
|
-
HatchetSdkRest.autoload :V1CreateHTTPOperatorRequest, 'hatchet-sdk-rest/models/v1_create_http_operator_request'
|
|
165
164
|
HatchetSdkRest.autoload :V1CreateWebhookRequest, 'hatchet-sdk-rest/models/v1_create_webhook_request'
|
|
166
165
|
HatchetSdkRest.autoload :V1CreateWebhookRequestAPIKey, 'hatchet-sdk-rest/models/v1_create_webhook_request_api_key'
|
|
167
166
|
HatchetSdkRest.autoload :V1CreateWebhookRequestBase, 'hatchet-sdk-rest/models/v1_create_webhook_request_base'
|
|
@@ -178,8 +177,6 @@ HatchetSdkRest.autoload :V1EventTriggeredRun, 'hatchet-sdk-rest/models/v1_event_
|
|
|
178
177
|
HatchetSdkRest.autoload :V1EventWorkflowRunSummary, 'hatchet-sdk-rest/models/v1_event_workflow_run_summary'
|
|
179
178
|
HatchetSdkRest.autoload :V1Filter, 'hatchet-sdk-rest/models/v1_filter'
|
|
180
179
|
HatchetSdkRest.autoload :V1FilterList, 'hatchet-sdk-rest/models/v1_filter_list'
|
|
181
|
-
HatchetSdkRest.autoload :V1HTTPOperator, 'hatchet-sdk-rest/models/v1_http_operator'
|
|
182
|
-
HatchetSdkRest.autoload :V1HTTPOperatorList, 'hatchet-sdk-rest/models/v1_http_operator_list'
|
|
183
180
|
HatchetSdkRest.autoload :V1LogLine, 'hatchet-sdk-rest/models/v1_log_line'
|
|
184
181
|
HatchetSdkRest.autoload :V1LogLineLevel, 'hatchet-sdk-rest/models/v1_log_line_level'
|
|
185
182
|
HatchetSdkRest.autoload :V1LogLineList, 'hatchet-sdk-rest/models/v1_log_line_list'
|
|
@@ -206,7 +203,6 @@ HatchetSdkRest.autoload :V1TaskTiming, 'hatchet-sdk-rest/models/v1_task_timing'
|
|
|
206
203
|
HatchetSdkRest.autoload :V1TaskTimingList, 'hatchet-sdk-rest/models/v1_task_timing_list'
|
|
207
204
|
HatchetSdkRest.autoload :V1TriggerWorkflowRunRequest, 'hatchet-sdk-rest/models/v1_trigger_workflow_run_request'
|
|
208
205
|
HatchetSdkRest.autoload :V1UpdateFilterRequest, 'hatchet-sdk-rest/models/v1_update_filter_request'
|
|
209
|
-
HatchetSdkRest.autoload :V1UpdateHTTPOperatorRequest, 'hatchet-sdk-rest/models/v1_update_http_operator_request'
|
|
210
206
|
HatchetSdkRest.autoload :V1UpdateWebhookRequest, 'hatchet-sdk-rest/models/v1_update_webhook_request'
|
|
211
207
|
HatchetSdkRest.autoload :V1WaitItem, 'hatchet-sdk-rest/models/v1_wait_item'
|
|
212
208
|
HatchetSdkRest.autoload :V1Webhook, 'hatchet-sdk-rest/models/v1_webhook'
|
|
@@ -280,7 +276,6 @@ HatchetSdkRest.autoload :HealthcheckApi, 'hatchet-sdk-rest/api/healthcheck_api'
|
|
|
280
276
|
HatchetSdkRest.autoload :LogApi, 'hatchet-sdk-rest/api/log_api'
|
|
281
277
|
HatchetSdkRest.autoload :MetadataApi, 'hatchet-sdk-rest/api/metadata_api'
|
|
282
278
|
HatchetSdkRest.autoload :ObservabilityApi, 'hatchet-sdk-rest/api/observability_api'
|
|
283
|
-
HatchetSdkRest.autoload :OperatorApi, 'hatchet-sdk-rest/api/operator_api'
|
|
284
279
|
HatchetSdkRest.autoload :RateLimitsApi, 'hatchet-sdk-rest/api/rate_limits_api'
|
|
285
280
|
HatchetSdkRest.autoload :SNSApi, 'hatchet-sdk-rest/api/sns_api'
|
|
286
281
|
HatchetSdkRest.autoload :SlackApi, 'hatchet-sdk-rest/api/slack_api'
|
data/lib/hatchet/concurrency.rb
CHANGED
|
@@ -11,6 +11,33 @@ module Hatchet
|
|
|
11
11
|
CANCEL_QUEUED_EXCEPT_OLDEST = :cancel_queued_except_oldest
|
|
12
12
|
end
|
|
13
13
|
|
|
14
|
+
# Shared serialization helpers for concurrency entries
|
|
15
|
+
# @api private
|
|
16
|
+
module ConcurrencyProto
|
|
17
|
+
# Map Ruby symbol to v1 proto enum symbol
|
|
18
|
+
LIMIT_STRATEGY_MAP = {
|
|
19
|
+
cancel_in_progress: :CANCEL_IN_PROGRESS,
|
|
20
|
+
cancel_newest: :CANCEL_NEWEST,
|
|
21
|
+
group_round_robin: :GROUP_ROUND_ROBIN,
|
|
22
|
+
queue: :QUEUE_NEWEST,
|
|
23
|
+
drop_newest: :DROP_NEWEST,
|
|
24
|
+
cancel_queued_except_newest: :CANCEL_QUEUED_EXCEPT_NEWEST,
|
|
25
|
+
cancel_queued_except_oldest: :CANCEL_QUEUED_EXCEPT_OLDEST,
|
|
26
|
+
}.freeze
|
|
27
|
+
|
|
28
|
+
# Split the max_runs union onto the proto's static/expression field pair. A String is
|
|
29
|
+
# a CEL expression over task input; the static field then carries the default of 1,
|
|
30
|
+
# which only governs slots created before the expression existed (each new task's
|
|
31
|
+
# slot carries its own evaluated value).
|
|
32
|
+
# @param max_runs [Integer, String]
|
|
33
|
+
# @return [Array(Integer, String, nil)]
|
|
34
|
+
def self.split_max_runs(max_runs)
|
|
35
|
+
return [1, max_runs] if max_runs.is_a?(String)
|
|
36
|
+
|
|
37
|
+
[max_runs, nil]
|
|
38
|
+
end
|
|
39
|
+
end
|
|
40
|
+
|
|
14
41
|
# Defines a concurrency expression for workflow or task-level concurrency control
|
|
15
42
|
#
|
|
16
43
|
# @example Workflow-level concurrency
|
|
@@ -20,6 +47,22 @@ module Hatchet
|
|
|
20
47
|
# limit_strategy: :cancel_in_progress
|
|
21
48
|
# )
|
|
22
49
|
#
|
|
50
|
+
# @example Dynamic per-group limits via a CEL expression
|
|
51
|
+
# Hatchet::ConcurrencyExpression.new(
|
|
52
|
+
# expression: "input.tier",
|
|
53
|
+
# max_runs: "input.tier == 'premium' ? 10 : 1",
|
|
54
|
+
# limit_strategy: :group_round_robin
|
|
55
|
+
# )
|
|
56
|
+
#
|
|
57
|
+
# @example Tenant-scoped, shared across workflows
|
|
58
|
+
# Hatchet::ConcurrencyExpression.new(
|
|
59
|
+
# expression: "input.group",
|
|
60
|
+
# max_runs: 1,
|
|
61
|
+
# limit_strategy: :group_round_robin,
|
|
62
|
+
# name: "tenant-wide-limit",
|
|
63
|
+
# is_tenant_scoped: true
|
|
64
|
+
# )
|
|
65
|
+
#
|
|
23
66
|
# @example Task-level concurrency with multiple keys
|
|
24
67
|
# [
|
|
25
68
|
# Hatchet::ConcurrencyExpression.new(expression: "input.digit", max_runs: 8, limit_strategy: :group_round_robin),
|
|
@@ -29,52 +72,72 @@ module Hatchet
|
|
|
29
72
|
# @return [String] CEL expression evaluated against the workflow input
|
|
30
73
|
attr_reader :expression
|
|
31
74
|
|
|
32
|
-
# @return [Integer] Maximum concurrent runs for this key
|
|
75
|
+
# @return [Integer, String] Maximum concurrent runs for this key: a fixed number, or
|
|
76
|
+
# a CEL expression over task input computing the max runs for that task's
|
|
77
|
+
# concurrency group. With an expression, a group's effective limit is the value
|
|
78
|
+
# from its most recently created task.
|
|
33
79
|
attr_reader :max_runs
|
|
34
80
|
|
|
35
81
|
# @return [Symbol] Strategy when limit is exceeded (:cancel_in_progress, :cancel_newest, :group_round_robin, :queue, :cancel_queued_except_newest, :cancel_queued_except_oldest)
|
|
36
82
|
attr_reader :limit_strategy
|
|
37
83
|
|
|
84
|
+
# @return [String, nil] Unique (per tenant) strategy name; required when tenant-scoped
|
|
85
|
+
attr_reader :name
|
|
86
|
+
|
|
87
|
+
# @return [Boolean] When true, the entry defines (or updates in place) a tenant-scoped
|
|
88
|
+
# strategy shared across workflows, keyed by name: every task declaring the same
|
|
89
|
+
# name consumes the same concurrency limit. The position in the concurrency list is
|
|
90
|
+
# the chain order, and chains sharing tenant-scoped strategies must order them
|
|
91
|
+
# consistently.
|
|
92
|
+
attr_reader :is_tenant_scoped
|
|
93
|
+
|
|
38
94
|
# @param expression [String] CEL expression evaluated against input
|
|
39
|
-
# @param max_runs [Integer] Maximum concurrent runs
|
|
95
|
+
# @param max_runs [Integer, String] Maximum concurrent runs, or a CEL expression computing them per group
|
|
40
96
|
# @param limit_strategy [Symbol] Strategy when limit is reached
|
|
41
|
-
|
|
97
|
+
# @param name [String, nil] Unique (per tenant) strategy name; required when tenant-scoped
|
|
98
|
+
# @param is_tenant_scoped [Boolean] Share this strategy across workflows, keyed by name
|
|
99
|
+
def initialize(expression:, max_runs: 1, limit_strategy: :cancel_in_progress, name: nil, is_tenant_scoped: false)
|
|
100
|
+
raise ArgumentError, "a name is required for tenant-scoped concurrency" if is_tenant_scoped && (name.nil? || name.empty?)
|
|
101
|
+
|
|
42
102
|
@expression = expression
|
|
43
103
|
@max_runs = max_runs
|
|
44
104
|
@limit_strategy = limit_strategy
|
|
105
|
+
@name = name
|
|
106
|
+
@is_tenant_scoped = is_tenant_scoped
|
|
45
107
|
end
|
|
46
108
|
|
|
109
|
+
# @deprecated kept for backwards compatibility; use {ConcurrencyProto::LIMIT_STRATEGY_MAP}
|
|
110
|
+
LIMIT_STRATEGY_MAP = ConcurrencyProto::LIMIT_STRATEGY_MAP
|
|
111
|
+
|
|
47
112
|
# Convert to a hash for API serialization
|
|
48
113
|
# @return [Hash]
|
|
49
114
|
def to_h
|
|
50
|
-
{
|
|
115
|
+
h = {
|
|
51
116
|
expression: @expression,
|
|
52
117
|
max_runs: @max_runs,
|
|
53
118
|
limit_strategy: @limit_strategy.to_s.upcase,
|
|
54
119
|
}
|
|
120
|
+
h[:name] = @name if @name
|
|
121
|
+
h[:is_tenant_scoped] = true if @is_tenant_scoped
|
|
122
|
+
h
|
|
55
123
|
end
|
|
56
124
|
|
|
57
|
-
# Map Ruby symbol to v1 proto enum symbol
|
|
58
|
-
LIMIT_STRATEGY_MAP = {
|
|
59
|
-
cancel_in_progress: :CANCEL_IN_PROGRESS,
|
|
60
|
-
cancel_newest: :CANCEL_NEWEST,
|
|
61
|
-
group_round_robin: :GROUP_ROUND_ROBIN,
|
|
62
|
-
queue: :QUEUE_NEWEST,
|
|
63
|
-
drop_newest: :DROP_NEWEST,
|
|
64
|
-
cancel_queued_except_newest: :CANCEL_QUEUED_EXCEPT_NEWEST,
|
|
65
|
-
cancel_queued_except_oldest: :CANCEL_QUEUED_EXCEPT_OLDEST,
|
|
66
|
-
}.freeze
|
|
67
|
-
|
|
68
125
|
# Convert to a V1::Concurrency protobuf message
|
|
69
126
|
# @return [V1::Concurrency]
|
|
70
127
|
def to_proto
|
|
71
|
-
proto_strategy = LIMIT_STRATEGY_MAP[@limit_strategy] || :CANCEL_IN_PROGRESS
|
|
128
|
+
proto_strategy = ConcurrencyProto::LIMIT_STRATEGY_MAP[@limit_strategy] || :CANCEL_IN_PROGRESS
|
|
129
|
+
static_max, max_runs_expression = ConcurrencyProto.split_max_runs(@max_runs)
|
|
72
130
|
|
|
73
|
-
|
|
131
|
+
args = {
|
|
74
132
|
expression: @expression,
|
|
75
|
-
max_runs:
|
|
133
|
+
max_runs: static_max,
|
|
76
134
|
limit_strategy: proto_strategy,
|
|
77
|
-
|
|
135
|
+
}
|
|
136
|
+
args[:max_runs_expression] = max_runs_expression if max_runs_expression
|
|
137
|
+
args[:name] = @name if @name
|
|
138
|
+
args[:is_tenant_scoped] = true if @is_tenant_scoped
|
|
139
|
+
|
|
140
|
+
::V1::Concurrency.new(**args)
|
|
78
141
|
end
|
|
79
142
|
end
|
|
80
143
|
end
|
|
@@ -7,7 +7,7 @@ require 'google/protobuf'
|
|
|
7
7
|
require 'google/protobuf/timestamp_pb'
|
|
8
8
|
|
|
9
9
|
|
|
10
|
-
descriptor_data = "\n\x1b\x64ispatcher/dispatcher.proto\x1a\x1fgoogle/protobuf/timestamp.proto\"Z\n\x0cWorkerLabels\x12\x16\n\tstr_value\x18\x01 \x01(\tH\x00\x88\x01\x01\x12\x16\n\tint_value\x18\x02 \x01(\x05H\x01\x88\x01\x01\x42\x0c\n\n_str_valueB\x0c\n\n_int_value\"\xcc\x01\n\x0bRuntimeInfo\x12\x18\n\x0bsdk_version\x18\x01 \x01(\tH\x00\x88\x01\x01\x12\x1c\n\x08language\x18\x02 \x01(\x0e\x32\x05.SDKSH\x01\x88\x01\x01\x12\x1d\n\x10language_version\x18\x03 \x01(\tH\x02\x88\x01\x01\x12\x0f\n\x02os\x18\x04 \x01(\tH\x03\x88\x01\x01\x12\x12\n\x05\x65xtra\x18\x05 \x01(\tH\x04\x88\x01\x01\x42\x0e\n\x0c_sdk_versionB\x0b\n\t_languageB\x13\n\x11_language_versionB\x05\n\x03_osB\x08\n\x06_extra\"\xb1\x03\n\x15WorkerRegisterRequest\x12\x13\n\x0bworker_name\x18\x01 \x01(\t\x12\x0f\n\x07\x61\x63tions\x18\x02 \x03(\t\x12\x10\n\x08services\x18\x03 \x03(\t\x12\x12\n\x05slots\x18\x04 \x01(\x05H\x00\x88\x01\x01\x12\x32\n\x06labels\x18\x05 \x03(\x0b\x32\".WorkerRegisterRequest.LabelsEntry\x12\x17\n\nwebhook_id\x18\x06 \x01(\tH\x01\x88\x01\x01\x12\'\n\x0cruntime_info\x18\x07 \x01(\x0b\x32\x0c.RuntimeInfoH\x02\x88\x01\x01\x12;\n\x0bslot_config\x18\t \x03(\x0b\x32&.WorkerRegisterRequest.SlotConfigEntry\x1a<\n\x0bLabelsEntry\x12\x0b\n\x03key\x18\x01 \x01(\t\x12\x1c\n\x05value\x18\x02 \x01(\x0b\x32\r.WorkerLabels:\x02\x38\x01\x1a\x31\n\x0fSlotConfigEntry\x12\x0b\n\x03key\x18\x01 \x01(\t\x12\r\n\x05value\x18\x02 \x01(\x05:\x02\x38\x01\x42\x08\n\x06_slotsB\r\n\x0b_webhook_idB\x0f\n\r_runtime_info\"S\n\x16WorkerRegisterResponse\x12\x11\n\ttenant_id\x18\x01 \x01(\t\x12\x11\n\tworker_id\x18\x02 \x01(\t\x12\x13\n\x0bworker_name\x18\x03 \x01(\t\"\xa4\x01\n\x19UpsertWorkerLabelsRequest\x12\x11\n\tworker_id\x18\x01 \x01(\t\x12\x36\n\x06labels\x18\x02 \x03(\x0b\x32&.UpsertWorkerLabelsRequest.LabelsEntry\x1a<\n\x0bLabelsEntry\x12\x0b\n\x03key\x18\x01 \x01(\t\x12\x1c\n\x05value\x18\x02 \x01(\x0b\x32\r.WorkerLabels:\x02\x38\x01\"B\n\x1aUpsertWorkerLabelsResponse\x12\x11\n\ttenant_id\x18\x01 \x01(\t\x12\x11\n\tworker_id\x18\x02 \x01(\t\"\xcc\x08\n\x0e\x41ssignedAction\x12\x11\n\ttenant_id\x18\x01 \x01(\t\x12\x17\n\x0fworkflow_run_id\x18\x02 \x01(\t\x12\x1c\n\x14get_group_key_run_id\x18\x03 \x01(\t\x12\x0e\n\x06job_id\x18\x04 \x01(\t\x12\x10\n\x08job_name\x18\x05 \x01(\t\x12\x12\n\njob_run_id\x18\x06 \x01(\t\x12\x0f\n\x07task_id\x18\x07 \x01(\t\x12\x1c\n\x14task_run_external_id\x18\x08 \x01(\t\x12\x11\n\taction_id\x18\t \x01(\t\x12 \n\x0b\x61\x63tion_type\x18\n \x01(\x0e\x32\x0b.ActionType\x12\x16\n\x0e\x61\x63tion_payload\x18\x0b \x01(\t\x12\x11\n\ttask_name\x18\x0c \x01(\t\x12\x13\n\x0bretry_count\x18\r \x01(\x05\x12 \n\x13\x61\x64\x64itional_metadata\x18\x0e \x01(\tH\x00\x88\x01\x01\x12!\n\x14\x63hild_workflow_index\x18\x0f \x01(\x05H\x01\x88\x01\x01\x12\x1f\n\x12\x63hild_workflow_key\x18\x10 \x01(\tH\x02\x88\x01\x01\x12#\n\x16parent_workflow_run_id\x18\x11 \x01(\tH\x03\x88\x01\x01\x12\x10\n\x08priority\x18\x12 \x01(\x05\x12\x18\n\x0bworkflow_id\x18\x13 \x01(\tH\x04\x88\x01\x01\x12 \n\x13workflow_version_id\x18\x14 \x01(\tH\x05\x88\x01\x01\x12*\n\x1d\x64urable_task_invocation_count\x18\x15 \x01(\x05H\x06\x88\x01\x01\x12)\n\x1ctriggering_event_external_id\x18\x16 \x01(\tH\x07\x88\x01\x01\x12!\n\x14triggering_event_key\x18\x17 \x01(\tH\x08\x88\x01\x01\x12\x14\n\x07\x62\x61tchId\x18\x18 \x01(\tH\t\x88\x01\x01\x12\x16\n\tbatchSize\x18\x19 \x01(\x05H\n\x88\x01\x01\x12\x17\n\nbatchIndex\x18\x1a \x01(\x05H\x0b\x88\x01\x01\x12\x32\n\x11\x62\x61tchStartPayload\x18\x1b \x01(\x0b\x32\x12.BatchStartPayloadH\x0c\x88\x01\x01\x12\x15\n\x08\x62\x61tchKey\x18\x1c \x01(\tH\r\x88\x01\x01\x42\x16\n\x14_additional_metadataB\x17\n\x15_child_workflow_indexB\x15\n\x13_child_workflow_keyB\x19\n\x17_parent_workflow_run_idB\x0e\n\x0c_workflow_idB\x16\n\x14_workflow_version_idB \n\x1e_durable_task_invocation_countB\x1f\n\x1d_triggering_event_external_idB\x17\n\x15_triggering_event_keyB\n\n\x08_batchIdB\x0c\n\n_batchSizeB\r\n\x0b_batchIndexB\x14\n\x12_batchStartPayloadB\x0b\n\t_batchKey\"q\n\x11\x42\x61tchStartPayload\x12\x15\n\rtriggerReason\x18\x01 \x01(\t\x12/\n\x0btriggerTime\x18\x02 \x01(\x0b\x32\x1a.google.protobuf.Timestamp\x12\x14\n\x0c\x65xpectedSize\x18\x03 \x01(\x05\"(\n\x13WorkerListenRequest\x12\x11\n\tworker_id\x18\x01 \x01(\t\"-\n\x18WorkerUnsubscribeRequest\x12\x11\n\tworker_id\x18\x01 \x01(\t\"A\n\x19WorkerUnsubscribeResponse\x12\x11\n\ttenant_id\x18\x01 \x01(\t\x12\x11\n\tworker_id\x18\x02 \x01(\t\"\xec\x01\n\x13GroupKeyActionEvent\x12\x11\n\tworker_id\x18\x01 \x01(\t\x12\x17\n\x0fworkflow_run_id\x18\x02 \x01(\t\x12\x1c\n\x14get_group_key_run_id\x18\x03 \x01(\t\x12\x11\n\taction_id\x18\x04 \x01(\t\x12\x33\n\x0f\x65vent_timestamp\x18\x05 \x01(\x0b\x32\x1a.google.protobuf.Timestamp\x12,\n\nevent_type\x18\x06 \x01(\x0e\x32\x18.GroupKeyActionEventType\x12\x15\n\revent_payload\x18\x07 \x01(\t\"\xde\x02\n\x0fStepActionEvent\x12\x11\n\tworker_id\x18\x01 \x01(\t\x12\x0e\n\x06job_id\x18\x02 \x01(\t\x12\x12\n\njob_run_id\x18\x03 \x01(\t\x12\x0f\n\x07task_id\x18\x04 \x01(\t\x12\x1c\n\x14task_run_external_id\x18\x05 \x01(\t\x12\x11\n\taction_id\x18\x06 \x01(\t\x12\x33\n\x0f\x65vent_timestamp\x18\x07 \x01(\x0b\x32\x1a.google.protobuf.Timestamp\x12(\n\nevent_type\x18\x08 \x01(\x0e\x32\x14.StepActionEventType\x12\x15\n\revent_payload\x18\t \x01(\t\x12\x18\n\x0bretry_count\x18\n \x01(\x05H\x00\x88\x01\x01\x12\x1d\n\x10should_not_retry\x18\x0b \x01(\x08H\x01\x88\x01\x01\x42\x0e\n\x0c_retry_countB\x13\n\x11_should_not_retry\"\xa9\x01\n\x14\x42\x61tchActionEventItem\x12\x1c\n\x14task_run_external_id\x18\x01 \x01(\t\x12\x15\n\revent_payload\x18\x02 \x01(\t\x12\x18\n\x0bretry_count\x18\x03 \x01(\x05H\x00\x88\x01\x01\x12\x1d\n\x10should_not_retry\x18\x04 \x01(\x08H\x01\x88\x01\x01\x42\x0e\n\x0c_retry_countB\x13\n\x11_should_not_retry\"\xf1\x01\n\x10\x42\x61tchActionEvent\x12\x11\n\tworker_id\x18\x01 \x01(\t\x12\x0e\n\x06job_id\x18\x02 \x01(\t\x12\x11\n\taction_id\x18\x03 \x01(\t\x12\x15\n\x08\x62\x61tch_id\x18\x04 \x01(\tH\x00\x88\x01\x01\x12\x33\n\x0f\x65vent_timestamp\x18\x05 \x01(\x0b\x32\x1a.google.protobuf.Timestamp\x12(\n\nevent_type\x18\x06 \x01(\x0e\x32\x14.StepActionEventType\x12$\n\x05items\x18\x07 \x03(\x0b\x32\x15.BatchActionEventItemB\x0b\n\t_batch_id\";\n\x13\x41\x63tionEventResponse\x12\x11\n\ttenant_id\x18\x01 \x01(\t\x12\x11\n\tworker_id\x18\x02 \x01(\t\"\xcc\x01\n SubscribeToWorkflowEventsRequest\x12\x1c\n\x0fworkflow_run_id\x18\x01 \x01(\tH\x00\x88\x01\x01\x12 \n\x13\x61\x64\x64itional_meta_key\x18\x02 \x01(\tH\x01\x88\x01\x01\x12\"\n\x15\x61\x64\x64itional_meta_value\x18\x03 \x01(\tH\x02\x88\x01\x01\x42\x12\n\x10_workflow_run_idB\x16\n\x14_additional_meta_keyB\x18\n\x16_additional_meta_value\"9\n\x1eSubscribeToWorkflowRunsRequest\x12\x17\n\x0fworkflow_run_id\x18\x01 \x01(\t\"\xe7\x02\n\rWorkflowEvent\x12\x17\n\x0fworkflow_run_id\x18\x01 \x01(\t\x12$\n\rresource_type\x18\x02 \x01(\x0e\x32\r.ResourceType\x12&\n\nevent_type\x18\x03 \x01(\x0e\x32\x12.ResourceEventType\x12\x13\n\x0bresource_id\x18\x04 \x01(\t\x12\x33\n\x0f\x65vent_timestamp\x18\x05 \x01(\x0b\x32\x1a.google.protobuf.Timestamp\x12\x15\n\revent_payload\x18\x06 \x01(\t\x12\x0e\n\x06hangup\x18\x07 \x01(\x08\x12\x19\n\x0ctask_retries\x18\x08 \x01(\x05H\x00\x88\x01\x01\x12\x18\n\x0bretry_count\x18\t \x01(\x05H\x01\x88\x01\x01\x12\x18\n\x0b\x65vent_index\x18\n \x01(\x03H\x02\x88\x01\x01\x42\x0f\n\r_task_retriesB\x0e\n\x0c_retry_countB\x0e\n\x0c_event_index\"\xac\x01\n\x10WorkflowRunEvent\x12\x17\n\x0fworkflow_run_id\x18\x01 \x01(\t\x12)\n\nevent_type\x18\x02 \x01(\x0e\x32\x15.WorkflowRunEventType\x12\x33\n\x0f\x65vent_timestamp\x18\x03 \x01(\x0b\x32\x1a.google.protobuf.Timestamp\x12\x1f\n\x07results\x18\x04 \x03(\x0b\x32\x0e.StepRunResult\"\x92\x01\n\rStepRunResult\x12\x1c\n\x14task_run_external_id\x18\x01 \x01(\t\x12\x11\n\ttask_name\x18\x02 \x01(\t\x12\x12\n\njob_run_id\x18\x03 \x01(\t\x12\x12\n\x05\x65rror\x18\x04 \x01(\tH\x00\x88\x01\x01\x12\x13\n\x06output\x18\x05 \x01(\tH\x01\x88\x01\x01\x42\x08\n\x06_errorB\t\n\x07_output\"c\n\rOverridesData\x12\x1c\n\x14task_run_external_id\x18\x01 \x01(\t\x12\x0c\n\x04path\x18\x02 \x01(\t\x12\r\n\x05value\x18\x03 \x01(\t\x12\x17\n\x0f\x63\x61ller_filename\x18\x04 \x01(\t\"\x17\n\x15OverridesDataResponse\"W\n\x10HeartbeatRequest\x12\x11\n\tworker_id\x18\x01 \x01(\t\x12\x30\n\x0cheartbeat_at\x18\x02 \x01(\x0b\x32\x1a.google.protobuf.Timestamp\"\x13\n\x11HeartbeatResponse\"S\n\x15RefreshTimeoutRequest\x12\x1c\n\x14task_run_external_id\x18\x01 \x01(\t\x12\x1c\n\x14increment_timeout_by\x18\x02 \x01(\t\"H\n\x16RefreshTimeoutResponse\x12.\n\ntimeout_at\x18\x01 \x01(\x0b\x32\x1a.google.protobuf.Timestamp\"2\n\x12ReleaseSlotRequest\x12\x1c\n\x14task_run_external_id\x18\x01 \x01(\t\"\x15\n\x13ReleaseSlotResponse\"9\n\x19RestoreEvictedTaskRequest\x12\x1c\n\x14task_run_external_id\x18\x01 \x01(\t\".\n\x1aRestoreEvictedTaskResponse\x12\x10\n\x08requeued\x18\x01 \x01(\x08\"\x13\n\x11GetVersionRequest\"%\n\x12GetVersionResponse\x12\x0f\n\x07version\x18\x01 \x01(\t*A\n\x04SDKS\x12\x0b\n\x07UNKNOWN\x10\x00\x12\x06\n\x02GO\x10\x01\x12\n\n\x06PYTHON\x10\x02\x12\x0e\n\nTYPESCRIPT\x10\x03\x12\x08\n\x04RUBY\x10\x04*_\n\nActionType\x12\x12\n\x0eSTART_STEP_RUN\x10\x00\x12\x13\n\x0f\x43\x41NCEL_STEP_RUN\x10\x01\x12\x17\n\x13START_GET_GROUP_KEY\x10\x02\x12\x0f\n\x0bSTART_BATCH\x10\x03*\xa2\x01\n\x17GroupKeyActionEventType\x12 \n\x1cGROUP_KEY_EVENT_TYPE_UNKNOWN\x10\x00\x12 \n\x1cGROUP_KEY_EVENT_TYPE_STARTED\x10\x01\x12\"\n\x1eGROUP_KEY_EVENT_TYPE_COMPLETED\x10\x02\x12\x1f\n\x1bGROUP_KEY_EVENT_TYPE_FAILED\x10\x03*\xcb\x01\n\x13StepActionEventType\x12\x1b\n\x17STEP_EVENT_TYPE_UNKNOWN\x10\x00\x12\x1b\n\x17STEP_EVENT_TYPE_STARTED\x10\x01\x12\x1d\n\x19STEP_EVENT_TYPE_COMPLETED\x10\x02\x12\x1a\n\x16STEP_EVENT_TYPE_FAILED\x10\x03\x12 \n\x1cSTEP_EVENT_TYPE_ACKNOWLEDGED\x10\x04\x12\x1d\n\x19STEP_EVENT_TYPE_CANCELLED\x10\x05*e\n\x0cResourceType\x12\x19\n\x15RESOURCE_TYPE_UNKNOWN\x10\x00\x12\x1a\n\x16RESOURCE_TYPE_STEP_RUN\x10\x01\x12\x1e\n\x1aRESOURCE_TYPE_WORKFLOW_RUN\x10\x02*\xfe\x01\n\x11ResourceEventType\x12\x1f\n\x1bRESOURCE_EVENT_TYPE_UNKNOWN\x10\x00\x12\x1f\n\x1bRESOURCE_EVENT_TYPE_STARTED\x10\x01\x12!\n\x1dRESOURCE_EVENT_TYPE_COMPLETED\x10\x02\x12\x1e\n\x1aRESOURCE_EVENT_TYPE_FAILED\x10\x03\x12!\n\x1dRESOURCE_EVENT_TYPE_CANCELLED\x10\x04\x12!\n\x1dRESOURCE_EVENT_TYPE_TIMED_OUT\x10\x05\x12\x1e\n\x1aRESOURCE_EVENT_TYPE_STREAM\x10\x06*<\n\x14WorkflowRunEventType\x12$\n WORKFLOW_RUN_EVENT_TYPE_FINISHED\x10\x00\x32\xc5\x08\n\nDispatcher\x12=\n\x08Register\x12\x16.WorkerRegisterRequest\x1a\x17.WorkerRegisterResponse\"\x00\x12\x33\n\x06Listen\x12\x14.WorkerListenRequest\x1a\x0f.AssignedAction\"\x00\x30\x01\x12\x35\n\x08ListenV2\x12\x14.WorkerListenRequest\x1a\x0f.AssignedAction\"\x00\x30\x01\x12\x34\n\tHeartbeat\x12\x11.HeartbeatRequest\x1a\x12.HeartbeatResponse\"\x00\x12R\n\x19SubscribeToWorkflowEvents\x12!.SubscribeToWorkflowEventsRequest\x1a\x0e.WorkflowEvent\"\x00\x30\x01\x12S\n\x17SubscribeToWorkflowRuns\x12\x1f.SubscribeToWorkflowRunsRequest\x1a\x11.WorkflowRunEvent\"\x00(\x01\x30\x01\x12?\n\x13SendStepActionEvent\x12\x10.StepActionEvent\x1a\x14.ActionEventResponse\"\x00\x12\x41\n\x14SendBatchActionEvent\x12\x11.BatchActionEvent\x1a\x14.ActionEventResponse\"\x00\x12G\n\x17SendGroupKeyActionEvent\x12\x14.GroupKeyActionEvent\x1a\x14.ActionEventResponse\"\x00\x12<\n\x10PutOverridesData\x12\x0e.OverridesData\x1a\x16.OverridesDataResponse\"\x00\x12\x46\n\x0bUnsubscribe\x12\x19.WorkerUnsubscribeRequest\x1a\x1a.WorkerUnsubscribeResponse\"\x00\x12\x43\n\x0eRefreshTimeout\x12\x16.RefreshTimeoutRequest\x1a\x17.RefreshTimeoutResponse\"\x00\x12:\n\x0bReleaseSlot\x12\x13.ReleaseSlotRequest\x1a\x14.ReleaseSlotResponse\"\x00\x12O\n\x12RestoreEvictedTask\x12\x1a.RestoreEvictedTaskRequest\x1a\x1b.RestoreEvictedTaskResponse\"\x00\x12O\n\x12UpsertWorkerLabels\x12\x1a.UpsertWorkerLabelsRequest\x1a\x1b.UpsertWorkerLabelsResponse\"\x00\x12\x37\n\nGetVersion\x12\x12.GetVersionRequest\x1a\x13.GetVersionResponse\"\x00\x42GZEgithub.com/hatchet-dev/hatchet/internal/services/dispatcher/contractsb\x06proto3"
|
|
10
|
+
descriptor_data = "\n\x1b\x64ispatcher/dispatcher.proto\x1a\x1fgoogle/protobuf/timestamp.proto\"Z\n\x0cWorkerLabels\x12\x16\n\tstr_value\x18\x01 \x01(\tH\x00\x88\x01\x01\x12\x16\n\tint_value\x18\x02 \x01(\x05H\x01\x88\x01\x01\x42\x0c\n\n_str_valueB\x0c\n\n_int_value\"\xcc\x01\n\x0bRuntimeInfo\x12\x18\n\x0bsdk_version\x18\x01 \x01(\tH\x00\x88\x01\x01\x12\x1c\n\x08language\x18\x02 \x01(\x0e\x32\x05.SDKSH\x01\x88\x01\x01\x12\x1d\n\x10language_version\x18\x03 \x01(\tH\x02\x88\x01\x01\x12\x0f\n\x02os\x18\x04 \x01(\tH\x03\x88\x01\x01\x12\x12\n\x05\x65xtra\x18\x05 \x01(\tH\x04\x88\x01\x01\x42\x0e\n\x0c_sdk_versionB\x0b\n\t_languageB\x13\n\x11_language_versionB\x05\n\x03_osB\x08\n\x06_extra\"\xb1\x03\n\x15WorkerRegisterRequest\x12\x13\n\x0bworker_name\x18\x01 \x01(\t\x12\x0f\n\x07\x61\x63tions\x18\x02 \x03(\t\x12\x10\n\x08services\x18\x03 \x03(\t\x12\x12\n\x05slots\x18\x04 \x01(\x05H\x00\x88\x01\x01\x12\x32\n\x06labels\x18\x05 \x03(\x0b\x32\".WorkerRegisterRequest.LabelsEntry\x12\x17\n\nwebhook_id\x18\x06 \x01(\tH\x01\x88\x01\x01\x12\'\n\x0cruntime_info\x18\x07 \x01(\x0b\x32\x0c.RuntimeInfoH\x02\x88\x01\x01\x12;\n\x0bslot_config\x18\t \x03(\x0b\x32&.WorkerRegisterRequest.SlotConfigEntry\x1a<\n\x0bLabelsEntry\x12\x0b\n\x03key\x18\x01 \x01(\t\x12\x1c\n\x05value\x18\x02 \x01(\x0b\x32\r.WorkerLabels:\x02\x38\x01\x1a\x31\n\x0fSlotConfigEntry\x12\x0b\n\x03key\x18\x01 \x01(\t\x12\r\n\x05value\x18\x02 \x01(\x05:\x02\x38\x01\x42\x08\n\x06_slotsB\r\n\x0b_webhook_idB\x0f\n\r_runtime_info\"S\n\x16WorkerRegisterResponse\x12\x11\n\ttenant_id\x18\x01 \x01(\t\x12\x11\n\tworker_id\x18\x02 \x01(\t\x12\x13\n\x0bworker_name\x18\x03 \x01(\t\"\xa4\x01\n\x19UpsertWorkerLabelsRequest\x12\x11\n\tworker_id\x18\x01 \x01(\t\x12\x36\n\x06labels\x18\x02 \x03(\x0b\x32&.UpsertWorkerLabelsRequest.LabelsEntry\x1a<\n\x0bLabelsEntry\x12\x0b\n\x03key\x18\x01 \x01(\t\x12\x1c\n\x05value\x18\x02 \x01(\x0b\x32\r.WorkerLabels:\x02\x38\x01\"B\n\x1aUpsertWorkerLabelsResponse\x12\x11\n\ttenant_id\x18\x01 \x01(\t\x12\x11\n\tworker_id\x18\x02 \x01(\t\"\x9c\t\n\x0e\x41ssignedAction\x12\x11\n\ttenant_id\x18\x01 \x01(\t\x12\x17\n\x0fworkflow_run_id\x18\x02 \x01(\t\x12\x1c\n\x14get_group_key_run_id\x18\x03 \x01(\t\x12\x0e\n\x06job_id\x18\x04 \x01(\t\x12\x10\n\x08job_name\x18\x05 \x01(\t\x12\x12\n\njob_run_id\x18\x06 \x01(\t\x12\x0f\n\x07task_id\x18\x07 \x01(\t\x12\x1c\n\x14task_run_external_id\x18\x08 \x01(\t\x12\x11\n\taction_id\x18\t \x01(\t\x12 \n\x0b\x61\x63tion_type\x18\n \x01(\x0e\x32\x0b.ActionType\x12\x16\n\x0e\x61\x63tion_payload\x18\x0b \x01(\t\x12\x11\n\ttask_name\x18\x0c \x01(\t\x12\x13\n\x0bretry_count\x18\r \x01(\x05\x12 \n\x13\x61\x64\x64itional_metadata\x18\x0e \x01(\tH\x00\x88\x01\x01\x12!\n\x14\x63hild_workflow_index\x18\x0f \x01(\x05H\x01\x88\x01\x01\x12\x1f\n\x12\x63hild_workflow_key\x18\x10 \x01(\tH\x02\x88\x01\x01\x12#\n\x16parent_workflow_run_id\x18\x11 \x01(\tH\x03\x88\x01\x01\x12\x10\n\x08priority\x18\x12 \x01(\x05\x12\x18\n\x0bworkflow_id\x18\x13 \x01(\tH\x04\x88\x01\x01\x12 \n\x13workflow_version_id\x18\x14 \x01(\tH\x05\x88\x01\x01\x12*\n\x1d\x64urable_task_invocation_count\x18\x15 \x01(\x05H\x06\x88\x01\x01\x12)\n\x1ctriggering_event_external_id\x18\x16 \x01(\tH\x07\x88\x01\x01\x12!\n\x14triggering_event_key\x18\x17 \x01(\tH\x08\x88\x01\x01\x12\x14\n\x07\x62\x61tchId\x18\x18 \x01(\tH\t\x88\x01\x01\x12\x16\n\tbatchSize\x18\x19 \x01(\x05H\n\x88\x01\x01\x12\x17\n\nbatchIndex\x18\x1a \x01(\x05H\x0b\x88\x01\x01\x12\x32\n\x11\x62\x61tchStartPayload\x18\x1b \x01(\x0b\x32\x12.BatchStartPayloadH\x0c\x88\x01\x01\x12\x15\n\x08\x62\x61tchKey\x18\x1c \x01(\tH\r\x88\x01\x01\x12\x39\n\x10task_inserted_at\x18\x1d \x01(\x0b\x32\x1a.google.protobuf.TimestampH\x0e\x88\x01\x01\x42\x16\n\x14_additional_metadataB\x17\n\x15_child_workflow_indexB\x15\n\x13_child_workflow_keyB\x19\n\x17_parent_workflow_run_idB\x0e\n\x0c_workflow_idB\x16\n\x14_workflow_version_idB \n\x1e_durable_task_invocation_countB\x1f\n\x1d_triggering_event_external_idB\x17\n\x15_triggering_event_keyB\n\n\x08_batchIdB\x0c\n\n_batchSizeB\r\n\x0b_batchIndexB\x14\n\x12_batchStartPayloadB\x0b\n\t_batchKeyB\x13\n\x11_task_inserted_at\"q\n\x11\x42\x61tchStartPayload\x12\x15\n\rtriggerReason\x18\x01 \x01(\t\x12/\n\x0btriggerTime\x18\x02 \x01(\x0b\x32\x1a.google.protobuf.Timestamp\x12\x14\n\x0c\x65xpectedSize\x18\x03 \x01(\x05\"(\n\x13WorkerListenRequest\x12\x11\n\tworker_id\x18\x01 \x01(\t\"-\n\x18WorkerUnsubscribeRequest\x12\x11\n\tworker_id\x18\x01 \x01(\t\"A\n\x19WorkerUnsubscribeResponse\x12\x11\n\ttenant_id\x18\x01 \x01(\t\x12\x11\n\tworker_id\x18\x02 \x01(\t\"\xec\x01\n\x13GroupKeyActionEvent\x12\x11\n\tworker_id\x18\x01 \x01(\t\x12\x17\n\x0fworkflow_run_id\x18\x02 \x01(\t\x12\x1c\n\x14get_group_key_run_id\x18\x03 \x01(\t\x12\x11\n\taction_id\x18\x04 \x01(\t\x12\x33\n\x0f\x65vent_timestamp\x18\x05 \x01(\x0b\x32\x1a.google.protobuf.Timestamp\x12,\n\nevent_type\x18\x06 \x01(\x0e\x32\x18.GroupKeyActionEventType\x12\x15\n\revent_payload\x18\x07 \x01(\t\"\xde\x02\n\x0fStepActionEvent\x12\x11\n\tworker_id\x18\x01 \x01(\t\x12\x0e\n\x06job_id\x18\x02 \x01(\t\x12\x12\n\njob_run_id\x18\x03 \x01(\t\x12\x0f\n\x07task_id\x18\x04 \x01(\t\x12\x1c\n\x14task_run_external_id\x18\x05 \x01(\t\x12\x11\n\taction_id\x18\x06 \x01(\t\x12\x33\n\x0f\x65vent_timestamp\x18\x07 \x01(\x0b\x32\x1a.google.protobuf.Timestamp\x12(\n\nevent_type\x18\x08 \x01(\x0e\x32\x14.StepActionEventType\x12\x15\n\revent_payload\x18\t \x01(\t\x12\x18\n\x0bretry_count\x18\n \x01(\x05H\x00\x88\x01\x01\x12\x1d\n\x10should_not_retry\x18\x0b \x01(\x08H\x01\x88\x01\x01\x42\x0e\n\x0c_retry_countB\x13\n\x11_should_not_retry\"\xa9\x01\n\x14\x42\x61tchActionEventItem\x12\x1c\n\x14task_run_external_id\x18\x01 \x01(\t\x12\x15\n\revent_payload\x18\x02 \x01(\t\x12\x18\n\x0bretry_count\x18\x03 \x01(\x05H\x00\x88\x01\x01\x12\x1d\n\x10should_not_retry\x18\x04 \x01(\x08H\x01\x88\x01\x01\x42\x0e\n\x0c_retry_countB\x13\n\x11_should_not_retry\"\xf1\x01\n\x10\x42\x61tchActionEvent\x12\x11\n\tworker_id\x18\x01 \x01(\t\x12\x0e\n\x06job_id\x18\x02 \x01(\t\x12\x11\n\taction_id\x18\x03 \x01(\t\x12\x15\n\x08\x62\x61tch_id\x18\x04 \x01(\tH\x00\x88\x01\x01\x12\x33\n\x0f\x65vent_timestamp\x18\x05 \x01(\x0b\x32\x1a.google.protobuf.Timestamp\x12(\n\nevent_type\x18\x06 \x01(\x0e\x32\x14.StepActionEventType\x12$\n\x05items\x18\x07 \x03(\x0b\x32\x15.BatchActionEventItemB\x0b\n\t_batch_id\";\n\x13\x41\x63tionEventResponse\x12\x11\n\ttenant_id\x18\x01 \x01(\t\x12\x11\n\tworker_id\x18\x02 \x01(\t\"\xcc\x01\n SubscribeToWorkflowEventsRequest\x12\x1c\n\x0fworkflow_run_id\x18\x01 \x01(\tH\x00\x88\x01\x01\x12 \n\x13\x61\x64\x64itional_meta_key\x18\x02 \x01(\tH\x01\x88\x01\x01\x12\"\n\x15\x61\x64\x64itional_meta_value\x18\x03 \x01(\tH\x02\x88\x01\x01\x42\x12\n\x10_workflow_run_idB\x16\n\x14_additional_meta_keyB\x18\n\x16_additional_meta_value\"9\n\x1eSubscribeToWorkflowRunsRequest\x12\x17\n\x0fworkflow_run_id\x18\x01 \x01(\t\"\xe7\x02\n\rWorkflowEvent\x12\x17\n\x0fworkflow_run_id\x18\x01 \x01(\t\x12$\n\rresource_type\x18\x02 \x01(\x0e\x32\r.ResourceType\x12&\n\nevent_type\x18\x03 \x01(\x0e\x32\x12.ResourceEventType\x12\x13\n\x0bresource_id\x18\x04 \x01(\t\x12\x33\n\x0f\x65vent_timestamp\x18\x05 \x01(\x0b\x32\x1a.google.protobuf.Timestamp\x12\x15\n\revent_payload\x18\x06 \x01(\t\x12\x0e\n\x06hangup\x18\x07 \x01(\x08\x12\x19\n\x0ctask_retries\x18\x08 \x01(\x05H\x00\x88\x01\x01\x12\x18\n\x0bretry_count\x18\t \x01(\x05H\x01\x88\x01\x01\x12\x18\n\x0b\x65vent_index\x18\n \x01(\x03H\x02\x88\x01\x01\x42\x0f\n\r_task_retriesB\x0e\n\x0c_retry_countB\x0e\n\x0c_event_index\"\xac\x01\n\x10WorkflowRunEvent\x12\x17\n\x0fworkflow_run_id\x18\x01 \x01(\t\x12)\n\nevent_type\x18\x02 \x01(\x0e\x32\x15.WorkflowRunEventType\x12\x33\n\x0f\x65vent_timestamp\x18\x03 \x01(\x0b\x32\x1a.google.protobuf.Timestamp\x12\x1f\n\x07results\x18\x04 \x03(\x0b\x32\x0e.StepRunResult\"\x92\x01\n\rStepRunResult\x12\x1c\n\x14task_run_external_id\x18\x01 \x01(\t\x12\x11\n\ttask_name\x18\x02 \x01(\t\x12\x12\n\njob_run_id\x18\x03 \x01(\t\x12\x12\n\x05\x65rror\x18\x04 \x01(\tH\x00\x88\x01\x01\x12\x13\n\x06output\x18\x05 \x01(\tH\x01\x88\x01\x01\x42\x08\n\x06_errorB\t\n\x07_output\"c\n\rOverridesData\x12\x1c\n\x14task_run_external_id\x18\x01 \x01(\t\x12\x0c\n\x04path\x18\x02 \x01(\t\x12\r\n\x05value\x18\x03 \x01(\t\x12\x17\n\x0f\x63\x61ller_filename\x18\x04 \x01(\t\"\x17\n\x15OverridesDataResponse\"W\n\x10HeartbeatRequest\x12\x11\n\tworker_id\x18\x01 \x01(\t\x12\x30\n\x0cheartbeat_at\x18\x02 \x01(\x0b\x32\x1a.google.protobuf.Timestamp\"\x13\n\x11HeartbeatResponse\"S\n\x15RefreshTimeoutRequest\x12\x1c\n\x14task_run_external_id\x18\x01 \x01(\t\x12\x1c\n\x14increment_timeout_by\x18\x02 \x01(\t\"H\n\x16RefreshTimeoutResponse\x12.\n\ntimeout_at\x18\x01 \x01(\x0b\x32\x1a.google.protobuf.Timestamp\"2\n\x12ReleaseSlotRequest\x12\x1c\n\x14task_run_external_id\x18\x01 \x01(\t\"\x15\n\x13ReleaseSlotResponse\"9\n\x19RestoreEvictedTaskRequest\x12\x1c\n\x14task_run_external_id\x18\x01 \x01(\t\".\n\x1aRestoreEvictedTaskResponse\x12\x10\n\x08requeued\x18\x01 \x01(\x08\"\x13\n\x11GetVersionRequest\"%\n\x12GetVersionResponse\x12\x0f\n\x07version\x18\x01 \x01(\t*A\n\x04SDKS\x12\x0b\n\x07UNKNOWN\x10\x00\x12\x06\n\x02GO\x10\x01\x12\n\n\x06PYTHON\x10\x02\x12\x0e\n\nTYPESCRIPT\x10\x03\x12\x08\n\x04RUBY\x10\x04*_\n\nActionType\x12\x12\n\x0eSTART_STEP_RUN\x10\x00\x12\x13\n\x0f\x43\x41NCEL_STEP_RUN\x10\x01\x12\x17\n\x13START_GET_GROUP_KEY\x10\x02\x12\x0f\n\x0bSTART_BATCH\x10\x03*\xa2\x01\n\x17GroupKeyActionEventType\x12 \n\x1cGROUP_KEY_EVENT_TYPE_UNKNOWN\x10\x00\x12 \n\x1cGROUP_KEY_EVENT_TYPE_STARTED\x10\x01\x12\"\n\x1eGROUP_KEY_EVENT_TYPE_COMPLETED\x10\x02\x12\x1f\n\x1bGROUP_KEY_EVENT_TYPE_FAILED\x10\x03*\xcb\x01\n\x13StepActionEventType\x12\x1b\n\x17STEP_EVENT_TYPE_UNKNOWN\x10\x00\x12\x1b\n\x17STEP_EVENT_TYPE_STARTED\x10\x01\x12\x1d\n\x19STEP_EVENT_TYPE_COMPLETED\x10\x02\x12\x1a\n\x16STEP_EVENT_TYPE_FAILED\x10\x03\x12 \n\x1cSTEP_EVENT_TYPE_ACKNOWLEDGED\x10\x04\x12\x1d\n\x19STEP_EVENT_TYPE_CANCELLED\x10\x05*e\n\x0cResourceType\x12\x19\n\x15RESOURCE_TYPE_UNKNOWN\x10\x00\x12\x1a\n\x16RESOURCE_TYPE_STEP_RUN\x10\x01\x12\x1e\n\x1aRESOURCE_TYPE_WORKFLOW_RUN\x10\x02*\xfe\x01\n\x11ResourceEventType\x12\x1f\n\x1bRESOURCE_EVENT_TYPE_UNKNOWN\x10\x00\x12\x1f\n\x1bRESOURCE_EVENT_TYPE_STARTED\x10\x01\x12!\n\x1dRESOURCE_EVENT_TYPE_COMPLETED\x10\x02\x12\x1e\n\x1aRESOURCE_EVENT_TYPE_FAILED\x10\x03\x12!\n\x1dRESOURCE_EVENT_TYPE_CANCELLED\x10\x04\x12!\n\x1dRESOURCE_EVENT_TYPE_TIMED_OUT\x10\x05\x12\x1e\n\x1aRESOURCE_EVENT_TYPE_STREAM\x10\x06*<\n\x14WorkflowRunEventType\x12$\n WORKFLOW_RUN_EVENT_TYPE_FINISHED\x10\x00\x32\xc5\x08\n\nDispatcher\x12=\n\x08Register\x12\x16.WorkerRegisterRequest\x1a\x17.WorkerRegisterResponse\"\x00\x12\x33\n\x06Listen\x12\x14.WorkerListenRequest\x1a\x0f.AssignedAction\"\x00\x30\x01\x12\x35\n\x08ListenV2\x12\x14.WorkerListenRequest\x1a\x0f.AssignedAction\"\x00\x30\x01\x12\x34\n\tHeartbeat\x12\x11.HeartbeatRequest\x1a\x12.HeartbeatResponse\"\x00\x12R\n\x19SubscribeToWorkflowEvents\x12!.SubscribeToWorkflowEventsRequest\x1a\x0e.WorkflowEvent\"\x00\x30\x01\x12S\n\x17SubscribeToWorkflowRuns\x12\x1f.SubscribeToWorkflowRunsRequest\x1a\x11.WorkflowRunEvent\"\x00(\x01\x30\x01\x12?\n\x13SendStepActionEvent\x12\x10.StepActionEvent\x1a\x14.ActionEventResponse\"\x00\x12\x41\n\x14SendBatchActionEvent\x12\x11.BatchActionEvent\x1a\x14.ActionEventResponse\"\x00\x12G\n\x17SendGroupKeyActionEvent\x12\x14.GroupKeyActionEvent\x1a\x14.ActionEventResponse\"\x00\x12<\n\x10PutOverridesData\x12\x0e.OverridesData\x1a\x16.OverridesDataResponse\"\x00\x12\x46\n\x0bUnsubscribe\x12\x19.WorkerUnsubscribeRequest\x1a\x1a.WorkerUnsubscribeResponse\"\x00\x12\x43\n\x0eRefreshTimeout\x12\x16.RefreshTimeoutRequest\x1a\x17.RefreshTimeoutResponse\"\x00\x12:\n\x0bReleaseSlot\x12\x13.ReleaseSlotRequest\x1a\x14.ReleaseSlotResponse\"\x00\x12O\n\x12RestoreEvictedTask\x12\x1a.RestoreEvictedTaskRequest\x1a\x1b.RestoreEvictedTaskResponse\"\x00\x12O\n\x12UpsertWorkerLabels\x12\x1a.UpsertWorkerLabelsRequest\x1a\x1b.UpsertWorkerLabelsResponse\"\x00\x12\x37\n\nGetVersion\x12\x12.GetVersionRequest\x1a\x13.GetVersionResponse\"\x00\x42GZEgithub.com/hatchet-dev/hatchet/internal/services/dispatcher/contractsb\x06proto3"
|
|
11
11
|
|
|
12
12
|
pool = ::Google::Protobuf::DescriptorPool.generated_pool
|
|
13
13
|
pool.add_serialized_file(descriptor_data)
|