hatchet-sdk 0.41.0__py3-none-any.whl → 0.42.1__py3-none-any.whl
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.
Potentially problematic release.
This version of hatchet-sdk might be problematic. Click here for more details.
- hatchet_sdk/clients/admin.py +10 -8
- hatchet_sdk/clients/dispatcher/action_listener.py +1 -1
- hatchet_sdk/clients/dispatcher/dispatcher.py +2 -2
- hatchet_sdk/clients/rest/tenacity_utils.py +6 -1
- hatchet_sdk/context/context.py +83 -46
- hatchet_sdk/context/worker_context.py +1 -1
- hatchet_sdk/contracts/dispatcher_pb2.py +71 -67
- hatchet_sdk/contracts/dispatcher_pb2.pyi +29 -2
- hatchet_sdk/contracts/workflows_pb2.py +42 -40
- hatchet_sdk/contracts/workflows_pb2.pyi +22 -6
- hatchet_sdk/hatchet.py +44 -32
- hatchet_sdk/utils/backoff.py +1 -1
- hatchet_sdk/utils/serialization.py +4 -1
- hatchet_sdk/utils/tracing.py +7 -4
- hatchet_sdk/utils/types.py +8 -0
- hatchet_sdk/utils/typing.py +9 -0
- hatchet_sdk/v2/callable.py +1 -0
- hatchet_sdk/worker/action_listener_process.py +7 -9
- hatchet_sdk/worker/runner/run_loop_manager.py +15 -9
- hatchet_sdk/worker/runner/runner.py +57 -36
- hatchet_sdk/worker/worker.py +96 -59
- hatchet_sdk/workflow.py +84 -26
- {hatchet_sdk-0.41.0.dist-info → hatchet_sdk-0.42.1.dist-info}/METADATA +1 -1
- {hatchet_sdk-0.41.0.dist-info → hatchet_sdk-0.42.1.dist-info}/RECORD +26 -24
- {hatchet_sdk-0.41.0.dist-info → hatchet_sdk-0.42.1.dist-info}/entry_points.txt +2 -0
- {hatchet_sdk-0.41.0.dist-info → hatchet_sdk-0.42.1.dist-info}/WHEEL +0 -0
hatchet_sdk/clients/admin.py
CHANGED
|
@@ -54,16 +54,10 @@ class ChildTriggerWorkflowOptions(TypedDict):
|
|
|
54
54
|
sticky: bool | None = None
|
|
55
55
|
|
|
56
56
|
|
|
57
|
-
class WorkflowRunDict(TypedDict):
|
|
58
|
-
workflow_name: str
|
|
59
|
-
input: Any
|
|
60
|
-
options: Optional[dict]
|
|
61
|
-
|
|
62
|
-
|
|
63
57
|
class ChildWorkflowRunDict(TypedDict):
|
|
64
58
|
workflow_name: str
|
|
65
59
|
input: Any
|
|
66
|
-
options: ChildTriggerWorkflowOptions
|
|
60
|
+
options: ChildTriggerWorkflowOptions
|
|
67
61
|
key: str | None = None
|
|
68
62
|
|
|
69
63
|
|
|
@@ -73,6 +67,12 @@ class TriggerWorkflowOptions(ScheduleTriggerWorkflowOptions, TypedDict):
|
|
|
73
67
|
namespace: str | None = None
|
|
74
68
|
|
|
75
69
|
|
|
70
|
+
class WorkflowRunDict(TypedDict):
|
|
71
|
+
workflow_name: str
|
|
72
|
+
input: Any
|
|
73
|
+
options: TriggerWorkflowOptions | None
|
|
74
|
+
|
|
75
|
+
|
|
76
76
|
class DedupeViolationErr(Exception):
|
|
77
77
|
"""Raised by the Hatchet library to indicate that a workflow has already been run with this deduplication value."""
|
|
78
78
|
|
|
@@ -260,7 +260,9 @@ class AdminClientAioImpl(AdminClientBase):
|
|
|
260
260
|
|
|
261
261
|
@tenacity_retry
|
|
262
262
|
async def run_workflows(
|
|
263
|
-
self,
|
|
263
|
+
self,
|
|
264
|
+
workflows: list[WorkflowRunDict],
|
|
265
|
+
options: TriggerWorkflowOptions | None = None,
|
|
264
266
|
) -> List[WorkflowRunRef]:
|
|
265
267
|
if len(workflows) == 0:
|
|
266
268
|
raise ValueError("No workflows to run")
|
|
@@ -137,14 +137,14 @@ class DispatcherClient:
|
|
|
137
137
|
|
|
138
138
|
return response
|
|
139
139
|
|
|
140
|
-
def release_slot(self, step_run_id: str):
|
|
140
|
+
def release_slot(self, step_run_id: str) -> None:
|
|
141
141
|
self.client.ReleaseSlot(
|
|
142
142
|
ReleaseSlotRequest(stepRunId=step_run_id),
|
|
143
143
|
timeout=DEFAULT_REGISTER_TIMEOUT,
|
|
144
144
|
metadata=get_metadata(self.token),
|
|
145
145
|
)
|
|
146
146
|
|
|
147
|
-
def refresh_timeout(self, step_run_id: str, increment_by: str):
|
|
147
|
+
def refresh_timeout(self, step_run_id: str, increment_by: str) -> None:
|
|
148
148
|
self.client.RefreshTimeout(
|
|
149
149
|
RefreshTimeoutRequest(
|
|
150
150
|
stepRunId=step_run_id,
|
|
@@ -1,10 +1,15 @@
|
|
|
1
|
+
from typing import Callable, ParamSpec, TypeVar
|
|
2
|
+
|
|
1
3
|
import grpc
|
|
2
4
|
import tenacity
|
|
3
5
|
|
|
4
6
|
from hatchet_sdk.logger import logger
|
|
5
7
|
|
|
8
|
+
P = ParamSpec("P")
|
|
9
|
+
R = TypeVar("R")
|
|
10
|
+
|
|
6
11
|
|
|
7
|
-
def tenacity_retry(func):
|
|
12
|
+
def tenacity_retry(func: Callable[P, R]) -> Callable[P, R]:
|
|
8
13
|
return tenacity.retry(
|
|
9
14
|
reraise=True,
|
|
10
15
|
wait=tenacity.wait_exponential_jitter(),
|
hatchet_sdk/context/context.py
CHANGED
|
@@ -2,7 +2,10 @@ import inspect
|
|
|
2
2
|
import json
|
|
3
3
|
import traceback
|
|
4
4
|
from concurrent.futures import Future, ThreadPoolExecutor
|
|
5
|
-
from typing import
|
|
5
|
+
from typing import Any, Generic, Type, TypeVar, cast, overload
|
|
6
|
+
from warnings import warn
|
|
7
|
+
|
|
8
|
+
from pydantic import BaseModel, StrictStr
|
|
6
9
|
|
|
7
10
|
from hatchet_sdk.clients.events import EventClient
|
|
8
11
|
from hatchet_sdk.clients.rest.tenacity_utils import tenacity_retry
|
|
@@ -10,11 +13,13 @@ from hatchet_sdk.clients.rest_client import RestApi
|
|
|
10
13
|
from hatchet_sdk.clients.run_event_listener import RunEventListenerClient
|
|
11
14
|
from hatchet_sdk.clients.workflow_listener import PooledWorkflowRunListener
|
|
12
15
|
from hatchet_sdk.context.worker_context import WorkerContext
|
|
13
|
-
from hatchet_sdk.contracts.dispatcher_pb2 import OverridesData
|
|
14
|
-
from hatchet_sdk.contracts.workflows_pb2 import (
|
|
16
|
+
from hatchet_sdk.contracts.dispatcher_pb2 import OverridesData # type: ignore
|
|
17
|
+
from hatchet_sdk.contracts.workflows_pb2 import ( # type: ignore[attr-defined]
|
|
15
18
|
BulkTriggerWorkflowRequest,
|
|
16
19
|
TriggerWorkflowRequest,
|
|
17
20
|
)
|
|
21
|
+
from hatchet_sdk.utils.types import WorkflowValidator
|
|
22
|
+
from hatchet_sdk.utils.typing import is_basemodel_subclass
|
|
18
23
|
from hatchet_sdk.workflow_run import WorkflowRunRef
|
|
19
24
|
|
|
20
25
|
from ..clients.admin import (
|
|
@@ -24,25 +29,34 @@ from ..clients.admin import (
|
|
|
24
29
|
TriggerWorkflowOptions,
|
|
25
30
|
WorkflowRunDict,
|
|
26
31
|
)
|
|
27
|
-
from ..clients.dispatcher.dispatcher import
|
|
32
|
+
from ..clients.dispatcher.dispatcher import ( # type: ignore[attr-defined]
|
|
33
|
+
Action,
|
|
34
|
+
DispatcherClient,
|
|
35
|
+
)
|
|
28
36
|
from ..logger import logger
|
|
29
37
|
|
|
30
38
|
DEFAULT_WORKFLOW_POLLING_INTERVAL = 5 # Seconds
|
|
31
39
|
|
|
40
|
+
T = TypeVar("T", bound=BaseModel)
|
|
32
41
|
|
|
33
|
-
|
|
42
|
+
|
|
43
|
+
def get_caller_file_path() -> str:
|
|
34
44
|
caller_frame = inspect.stack()[2]
|
|
35
45
|
|
|
36
46
|
return caller_frame.filename
|
|
37
47
|
|
|
38
48
|
|
|
39
49
|
class BaseContext:
|
|
50
|
+
|
|
51
|
+
action: Action
|
|
52
|
+
spawn_index: int
|
|
53
|
+
|
|
40
54
|
def _prepare_workflow_options(
|
|
41
55
|
self,
|
|
42
|
-
key: str = None,
|
|
56
|
+
key: str | None = None,
|
|
43
57
|
options: ChildTriggerWorkflowOptions | None = None,
|
|
44
|
-
worker_id: str = None,
|
|
45
|
-
):
|
|
58
|
+
worker_id: str | None = None,
|
|
59
|
+
) -> TriggerWorkflowOptions:
|
|
46
60
|
workflow_run_id = self.action.workflow_run_id
|
|
47
61
|
step_run_id = self.action.step_run_id
|
|
48
62
|
|
|
@@ -54,7 +68,8 @@ class BaseContext:
|
|
|
54
68
|
if options is not None and "additional_metadata" in options:
|
|
55
69
|
meta = options["additional_metadata"]
|
|
56
70
|
|
|
57
|
-
|
|
71
|
+
## TODO: Pydantic here to simplify this
|
|
72
|
+
trigger_options: TriggerWorkflowOptions = { # type: ignore[typeddict-item]
|
|
58
73
|
"parent_id": workflow_run_id,
|
|
59
74
|
"parent_step_run_id": step_run_id,
|
|
60
75
|
"child_key": key,
|
|
@@ -95,9 +110,9 @@ class ContextAioImpl(BaseContext):
|
|
|
95
110
|
async def spawn_workflow(
|
|
96
111
|
self,
|
|
97
112
|
workflow_name: str,
|
|
98
|
-
input: dict = {},
|
|
99
|
-
key: str = None,
|
|
100
|
-
options: ChildTriggerWorkflowOptions = None,
|
|
113
|
+
input: dict[str, Any] = {},
|
|
114
|
+
key: str | None = None,
|
|
115
|
+
options: ChildTriggerWorkflowOptions | None = None,
|
|
101
116
|
) -> WorkflowRunRef:
|
|
102
117
|
worker_id = self.worker.id()
|
|
103
118
|
# if (
|
|
@@ -118,15 +133,15 @@ class ContextAioImpl(BaseContext):
|
|
|
118
133
|
|
|
119
134
|
@tenacity_retry
|
|
120
135
|
async def spawn_workflows(
|
|
121
|
-
self, child_workflow_runs:
|
|
122
|
-
) ->
|
|
136
|
+
self, child_workflow_runs: list[ChildWorkflowRunDict]
|
|
137
|
+
) -> list[WorkflowRunRef]:
|
|
123
138
|
|
|
124
139
|
if len(child_workflow_runs) == 0:
|
|
125
140
|
raise Exception("no child workflows to spawn")
|
|
126
141
|
|
|
127
142
|
worker_id = self.worker.id()
|
|
128
143
|
|
|
129
|
-
bulk_trigger_workflow_runs: WorkflowRunDict = []
|
|
144
|
+
bulk_trigger_workflow_runs: list[WorkflowRunDict] = []
|
|
130
145
|
for child_workflow_run in child_workflow_runs:
|
|
131
146
|
workflow_name = child_workflow_run["workflow_name"]
|
|
132
147
|
input = child_workflow_run["input"]
|
|
@@ -134,7 +149,8 @@ class ContextAioImpl(BaseContext):
|
|
|
134
149
|
key = child_workflow_run.get("key")
|
|
135
150
|
options = child_workflow_run.get("options", {})
|
|
136
151
|
|
|
137
|
-
|
|
152
|
+
## TODO: figure out why this is failing
|
|
153
|
+
trigger_options = self._prepare_workflow_options(key, options, worker_id) # type: ignore[arg-type]
|
|
138
154
|
|
|
139
155
|
bulk_trigger_workflow_runs.append(
|
|
140
156
|
WorkflowRunDict(
|
|
@@ -161,8 +177,10 @@ class Context(BaseContext):
|
|
|
161
177
|
workflow_run_event_listener: RunEventListenerClient,
|
|
162
178
|
worker: WorkerContext,
|
|
163
179
|
namespace: str = "",
|
|
180
|
+
validator_registry: dict[str, WorkflowValidator] = {},
|
|
164
181
|
):
|
|
165
182
|
self.worker = worker
|
|
183
|
+
self.validator_registry = validator_registry
|
|
166
184
|
|
|
167
185
|
self.aio = ContextAioImpl(
|
|
168
186
|
action,
|
|
@@ -179,11 +197,11 @@ class Context(BaseContext):
|
|
|
179
197
|
# Check the type of action.action_payload before attempting to load it as JSON
|
|
180
198
|
if isinstance(action.action_payload, (str, bytes, bytearray)):
|
|
181
199
|
try:
|
|
182
|
-
self.data = json.loads(action.action_payload)
|
|
200
|
+
self.data = cast(dict[str, Any], json.loads(action.action_payload))
|
|
183
201
|
except Exception as e:
|
|
184
202
|
logger.error(f"Error parsing action payload: {e}")
|
|
185
203
|
# Assign an empty dictionary if parsing fails
|
|
186
|
-
self.data = {}
|
|
204
|
+
self.data: dict[str, Any] = {} # type: ignore[no-redef]
|
|
187
205
|
else:
|
|
188
206
|
# Directly assign the payload to self.data if it's already a dict
|
|
189
207
|
self.data = (
|
|
@@ -191,6 +209,7 @@ class Context(BaseContext):
|
|
|
191
209
|
)
|
|
192
210
|
|
|
193
211
|
self.action = action
|
|
212
|
+
|
|
194
213
|
# FIXME: stepRunId is a legacy field, we should remove it
|
|
195
214
|
self.stepRunId = action.step_run_id
|
|
196
215
|
|
|
@@ -218,33 +237,53 @@ class Context(BaseContext):
|
|
|
218
237
|
else:
|
|
219
238
|
self.input = self.data.get("input", {})
|
|
220
239
|
|
|
221
|
-
def step_output(self, step: str):
|
|
240
|
+
def step_output(self, step: str) -> dict[str, Any] | BaseModel:
|
|
241
|
+
validators = self.validator_registry.get(step)
|
|
242
|
+
|
|
222
243
|
try:
|
|
223
|
-
|
|
244
|
+
parent_step_data = cast(dict[str, Any], self.data["parents"][step])
|
|
224
245
|
except KeyError:
|
|
225
246
|
raise ValueError(f"Step output for '{step}' not found")
|
|
226
247
|
|
|
248
|
+
if validators and (v := validators.step_output):
|
|
249
|
+
return v.model_validate(parent_step_data)
|
|
250
|
+
|
|
251
|
+
return parent_step_data
|
|
252
|
+
|
|
227
253
|
def triggered_by_event(self) -> bool:
|
|
228
|
-
return self.data.get("triggered_by", "") == "event"
|
|
254
|
+
return cast(str, self.data.get("triggered_by", "")) == "event"
|
|
255
|
+
|
|
256
|
+
def workflow_input(self) -> dict[str, Any] | T:
|
|
257
|
+
if (r := self.validator_registry.get(self.action.action_id)) and (
|
|
258
|
+
i := r.workflow_input
|
|
259
|
+
):
|
|
260
|
+
return cast(
|
|
261
|
+
T,
|
|
262
|
+
i.model_validate(self.input),
|
|
263
|
+
)
|
|
229
264
|
|
|
230
|
-
def workflow_input(self):
|
|
231
265
|
return self.input
|
|
232
266
|
|
|
233
|
-
def workflow_run_id(self):
|
|
267
|
+
def workflow_run_id(self) -> str:
|
|
234
268
|
return self.action.workflow_run_id
|
|
235
269
|
|
|
236
|
-
def cancel(self):
|
|
270
|
+
def cancel(self) -> None:
|
|
237
271
|
logger.debug("cancelling step...")
|
|
238
272
|
self.exit_flag = True
|
|
239
273
|
|
|
240
274
|
# done returns true if the context has been cancelled
|
|
241
|
-
def done(self):
|
|
275
|
+
def done(self) -> bool:
|
|
242
276
|
return self.exit_flag
|
|
243
277
|
|
|
244
|
-
def playground(self, name: str, default: str = None):
|
|
278
|
+
def playground(self, name: str, default: str | None = None) -> str | None:
|
|
245
279
|
# if the key exists in the overrides_data field, return the value
|
|
246
280
|
if name in self.overrides_data:
|
|
247
|
-
|
|
281
|
+
warn(
|
|
282
|
+
"Use of `overrides_data` is deprecated.",
|
|
283
|
+
DeprecationWarning,
|
|
284
|
+
stacklevel=1,
|
|
285
|
+
)
|
|
286
|
+
return str(self.overrides_data[name])
|
|
248
287
|
|
|
249
288
|
caller_file = get_caller_file_path()
|
|
250
289
|
|
|
@@ -259,7 +298,7 @@ class Context(BaseContext):
|
|
|
259
298
|
|
|
260
299
|
return default
|
|
261
300
|
|
|
262
|
-
def _log(self, line: str) ->
|
|
301
|
+
def _log(self, line: str) -> tuple[bool, Exception | None]:
|
|
263
302
|
try:
|
|
264
303
|
self.event_client.log(message=line, step_run_id=self.stepRunId)
|
|
265
304
|
return True, None
|
|
@@ -267,7 +306,7 @@ class Context(BaseContext):
|
|
|
267
306
|
# we don't want to raise an exception here, as it will kill the log thread
|
|
268
307
|
return False, e
|
|
269
308
|
|
|
270
|
-
def log(self, line, raise_on_error: bool = False):
|
|
309
|
+
def log(self, line: Any, raise_on_error: bool = False) -> None:
|
|
271
310
|
if self.stepRunId == "":
|
|
272
311
|
return
|
|
273
312
|
|
|
@@ -277,9 +316,9 @@ class Context(BaseContext):
|
|
|
277
316
|
except Exception:
|
|
278
317
|
line = str(line)
|
|
279
318
|
|
|
280
|
-
future
|
|
319
|
+
future = self.logger_thread_pool.submit(self._log, line)
|
|
281
320
|
|
|
282
|
-
def handle_result(future: Future):
|
|
321
|
+
def handle_result(future: Future[tuple[bool, Exception | None]]) -> None:
|
|
283
322
|
success, exception = future.result()
|
|
284
323
|
if not success and exception:
|
|
285
324
|
if raise_on_error:
|
|
@@ -297,22 +336,22 @@ class Context(BaseContext):
|
|
|
297
336
|
|
|
298
337
|
future.add_done_callback(handle_result)
|
|
299
338
|
|
|
300
|
-
def release_slot(self):
|
|
339
|
+
def release_slot(self) -> None:
|
|
301
340
|
return self.dispatcher_client.release_slot(self.stepRunId)
|
|
302
341
|
|
|
303
|
-
def _put_stream(self, data: str | bytes):
|
|
342
|
+
def _put_stream(self, data: str | bytes) -> None:
|
|
304
343
|
try:
|
|
305
344
|
self.event_client.stream(data=data, step_run_id=self.stepRunId)
|
|
306
345
|
except Exception as e:
|
|
307
346
|
logger.error(f"Error putting stream event: {e}")
|
|
308
347
|
|
|
309
|
-
def put_stream(self, data: str | bytes):
|
|
348
|
+
def put_stream(self, data: str | bytes) -> None:
|
|
310
349
|
if self.stepRunId == "":
|
|
311
350
|
return
|
|
312
351
|
|
|
313
352
|
self.stream_event_thread_pool.submit(self._put_stream, data)
|
|
314
353
|
|
|
315
|
-
def refresh_timeout(self, increment_by: str):
|
|
354
|
+
def refresh_timeout(self, increment_by: str) -> None:
|
|
316
355
|
try:
|
|
317
356
|
return self.dispatcher_client.refresh_timeout(
|
|
318
357
|
step_run_id=self.stepRunId, increment_by=increment_by
|
|
@@ -320,28 +359,28 @@ class Context(BaseContext):
|
|
|
320
359
|
except Exception as e:
|
|
321
360
|
logger.error(f"Error refreshing timeout: {e}")
|
|
322
361
|
|
|
323
|
-
def retry_count(self):
|
|
362
|
+
def retry_count(self) -> int:
|
|
324
363
|
return self.action.retry_count
|
|
325
364
|
|
|
326
|
-
def additional_metadata(self):
|
|
365
|
+
def additional_metadata(self) -> dict[str, Any] | None:
|
|
327
366
|
return self.action.additional_metadata
|
|
328
367
|
|
|
329
|
-
def child_index(self):
|
|
368
|
+
def child_index(self) -> int | None:
|
|
330
369
|
return self.action.child_workflow_index
|
|
331
370
|
|
|
332
|
-
def child_key(self):
|
|
371
|
+
def child_key(self) -> str | None:
|
|
333
372
|
return self.action.child_workflow_key
|
|
334
373
|
|
|
335
|
-
def parent_workflow_run_id(self):
|
|
374
|
+
def parent_workflow_run_id(self) -> str | None:
|
|
336
375
|
return self.action.parent_workflow_run_id
|
|
337
376
|
|
|
338
|
-
def fetch_run_failures(self):
|
|
377
|
+
def fetch_run_failures(self) -> list[dict[str, StrictStr]]:
|
|
339
378
|
data = self.rest_client.workflow_run_get(self.action.workflow_run_id)
|
|
340
379
|
other_job_runs = [
|
|
341
|
-
run for run in data.job_runs if run.job_id != self.action.job_id
|
|
380
|
+
run for run in (data.job_runs or []) if run.job_id != self.action.job_id
|
|
342
381
|
]
|
|
343
382
|
# TODO: Parse Step Runs using a Pydantic Model rather than a hand crafted dictionary
|
|
344
|
-
|
|
383
|
+
return [
|
|
345
384
|
{
|
|
346
385
|
"step_id": step_run.step_id,
|
|
347
386
|
"step_run_action_name": step_run.step.action,
|
|
@@ -350,7 +389,5 @@ class Context(BaseContext):
|
|
|
350
389
|
for job_run in other_job_runs
|
|
351
390
|
if job_run.step_runs
|
|
352
391
|
for step_run in job_run.step_runs
|
|
353
|
-
if step_run.error
|
|
392
|
+
if step_run.error and step_run.step
|
|
354
393
|
]
|
|
355
|
-
|
|
356
|
-
return failed_step_runs
|
|
@@ -15,7 +15,7 @@ _sym_db = _symbol_database.Default()
|
|
|
15
15
|
from google.protobuf import timestamp_pb2 as google_dot_protobuf_dot_timestamp__pb2
|
|
16
16
|
|
|
17
17
|
|
|
18
|
-
DESCRIPTOR = _descriptor_pool.Default().AddSerializedFile(b'\n\x10\x64ispatcher.proto\x1a\x1fgoogle/protobuf/timestamp.proto\"V\n\x0cWorkerLabels\x12\x15\n\x08strValue\x18\x01 \x01(\tH\x00\x88\x01\x01\x12\x15\n\x08intValue\x18\x02 \x01(\x05H\x01\x88\x01\x01\x42\x0b\n\t_strValueB\x0b\n\t_intValue\"\x88\x02\n\x15WorkerRegisterRequest\x12\x12\n\nworkerName\x18\x01 \x01(\t\x12\x0f\n\x07\x61\x63tions\x18\x02 \x03(\t\x12\x10\n\x08services\x18\x03 \x03(\t\x12\x14\n\x07maxRuns\x18\x04 \x01(\x05H\x00\x88\x01\x01\x12\x32\n\x06labels\x18\x05 \x03(\x0b\x32\".WorkerRegisterRequest.LabelsEntry\x12\x16\n\twebhookId\x18\x06 \x01(\tH\x01\x88\x01\x01\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\x42\n\n\x08_maxRunsB\x0c\n\
|
|
18
|
+
DESCRIPTOR = _descriptor_pool.Default().AddSerializedFile(b'\n\x10\x64ispatcher.proto\x1a\x1fgoogle/protobuf/timestamp.proto\"V\n\x0cWorkerLabels\x12\x15\n\x08strValue\x18\x01 \x01(\tH\x00\x88\x01\x01\x12\x15\n\x08intValue\x18\x02 \x01(\x05H\x01\x88\x01\x01\x42\x0b\n\t_strValueB\x0b\n\t_intValue\"\xc8\x01\n\x0bRuntimeInfo\x12\x17\n\nsdkVersion\x18\x01 \x01(\tH\x00\x88\x01\x01\x12\x1c\n\x08language\x18\x02 \x01(\x0e\x32\x05.SDKSH\x01\x88\x01\x01\x12\x1c\n\x0flanguageVersion\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\r\n\x0b_sdkVersionB\x0b\n\t_languageB\x12\n\x10_languageVersionB\x05\n\x03_osB\x08\n\x06_extra\"\xc0\x02\n\x15WorkerRegisterRequest\x12\x12\n\nworkerName\x18\x01 \x01(\t\x12\x0f\n\x07\x61\x63tions\x18\x02 \x03(\t\x12\x10\n\x08services\x18\x03 \x03(\t\x12\x14\n\x07maxRuns\x18\x04 \x01(\x05H\x00\x88\x01\x01\x12\x32\n\x06labels\x18\x05 \x03(\x0b\x32\".WorkerRegisterRequest.LabelsEntry\x12\x16\n\twebhookId\x18\x06 \x01(\tH\x01\x88\x01\x01\x12&\n\x0bruntimeInfo\x18\x07 \x01(\x0b\x32\x0c.RuntimeInfoH\x02\x88\x01\x01\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\x42\n\n\x08_maxRunsB\x0c\n\n_webhookIdB\x0e\n\x0c_runtimeInfo\"P\n\x16WorkerRegisterResponse\x12\x10\n\x08tenantId\x18\x01 \x01(\t\x12\x10\n\x08workerId\x18\x02 \x01(\t\x12\x12\n\nworkerName\x18\x03 \x01(\t\"\xa3\x01\n\x19UpsertWorkerLabelsRequest\x12\x10\n\x08workerId\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\"@\n\x1aUpsertWorkerLabelsResponse\x12\x10\n\x08tenantId\x18\x01 \x01(\t\x12\x10\n\x08workerId\x18\x02 \x01(\t\"\x86\x04\n\x0e\x41ssignedAction\x12\x10\n\x08tenantId\x18\x01 \x01(\t\x12\x15\n\rworkflowRunId\x18\x02 \x01(\t\x12\x18\n\x10getGroupKeyRunId\x18\x03 \x01(\t\x12\r\n\x05jobId\x18\x04 \x01(\t\x12\x0f\n\x07jobName\x18\x05 \x01(\t\x12\x10\n\x08jobRunId\x18\x06 \x01(\t\x12\x0e\n\x06stepId\x18\x07 \x01(\t\x12\x11\n\tstepRunId\x18\x08 \x01(\t\x12\x10\n\x08\x61\x63tionId\x18\t \x01(\t\x12\x1f\n\nactionType\x18\n \x01(\x0e\x32\x0b.ActionType\x12\x15\n\ractionPayload\x18\x0b \x01(\t\x12\x10\n\x08stepName\x18\x0c \x01(\t\x12\x12\n\nretryCount\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\x42\x16\n\x14_additional_metadataB\x17\n\x15_child_workflow_indexB\x15\n\x13_child_workflow_keyB\x19\n\x17_parent_workflow_run_id\"\'\n\x13WorkerListenRequest\x12\x10\n\x08workerId\x18\x01 \x01(\t\",\n\x18WorkerUnsubscribeRequest\x12\x10\n\x08workerId\x18\x01 \x01(\t\"?\n\x19WorkerUnsubscribeResponse\x12\x10\n\x08tenantId\x18\x01 \x01(\t\x12\x10\n\x08workerId\x18\x02 \x01(\t\"\xe1\x01\n\x13GroupKeyActionEvent\x12\x10\n\x08workerId\x18\x01 \x01(\t\x12\x15\n\rworkflowRunId\x18\x02 \x01(\t\x12\x18\n\x10getGroupKeyRunId\x18\x03 \x01(\t\x12\x10\n\x08\x61\x63tionId\x18\x04 \x01(\t\x12\x32\n\x0e\x65ventTimestamp\x18\x05 \x01(\x0b\x32\x1a.google.protobuf.Timestamp\x12+\n\teventType\x18\x06 \x01(\x0e\x32\x18.GroupKeyActionEventType\x12\x14\n\x0c\x65ventPayload\x18\x07 \x01(\t\"\xec\x01\n\x0fStepActionEvent\x12\x10\n\x08workerId\x18\x01 \x01(\t\x12\r\n\x05jobId\x18\x02 \x01(\t\x12\x10\n\x08jobRunId\x18\x03 \x01(\t\x12\x0e\n\x06stepId\x18\x04 \x01(\t\x12\x11\n\tstepRunId\x18\x05 \x01(\t\x12\x10\n\x08\x61\x63tionId\x18\x06 \x01(\t\x12\x32\n\x0e\x65ventTimestamp\x18\x07 \x01(\x0b\x32\x1a.google.protobuf.Timestamp\x12\'\n\teventType\x18\x08 \x01(\x0e\x32\x14.StepActionEventType\x12\x14\n\x0c\x65ventPayload\x18\t \x01(\t\"9\n\x13\x41\x63tionEventResponse\x12\x10\n\x08tenantId\x18\x01 \x01(\t\x12\x10\n\x08workerId\x18\x02 \x01(\t\"\xc0\x01\n SubscribeToWorkflowEventsRequest\x12\x1a\n\rworkflowRunId\x18\x01 \x01(\tH\x00\x88\x01\x01\x12\x1e\n\x11\x61\x64\x64itionalMetaKey\x18\x02 \x01(\tH\x01\x88\x01\x01\x12 \n\x13\x61\x64\x64itionalMetaValue\x18\x03 \x01(\tH\x02\x88\x01\x01\x42\x10\n\x0e_workflowRunIdB\x14\n\x12_additionalMetaKeyB\x16\n\x14_additionalMetaValue\"7\n\x1eSubscribeToWorkflowRunsRequest\x12\x15\n\rworkflowRunId\x18\x01 \x01(\t\"\xb2\x02\n\rWorkflowEvent\x12\x15\n\rworkflowRunId\x18\x01 \x01(\t\x12#\n\x0cresourceType\x18\x02 \x01(\x0e\x32\r.ResourceType\x12%\n\teventType\x18\x03 \x01(\x0e\x32\x12.ResourceEventType\x12\x12\n\nresourceId\x18\x04 \x01(\t\x12\x32\n\x0e\x65ventTimestamp\x18\x05 \x01(\x0b\x32\x1a.google.protobuf.Timestamp\x12\x14\n\x0c\x65ventPayload\x18\x06 \x01(\t\x12\x0e\n\x06hangup\x18\x07 \x01(\x08\x12\x18\n\x0bstepRetries\x18\x08 \x01(\x05H\x00\x88\x01\x01\x12\x17\n\nretryCount\x18\t \x01(\x05H\x01\x88\x01\x01\x42\x0e\n\x0c_stepRetriesB\r\n\x0b_retryCount\"\xa8\x01\n\x10WorkflowRunEvent\x12\x15\n\rworkflowRunId\x18\x01 \x01(\t\x12(\n\teventType\x18\x02 \x01(\x0e\x32\x15.WorkflowRunEventType\x12\x32\n\x0e\x65ventTimestamp\x18\x03 \x01(\x0b\x32\x1a.google.protobuf.Timestamp\x12\x1f\n\x07results\x18\x04 \x03(\x0b\x32\x0e.StepRunResult\"\x8a\x01\n\rStepRunResult\x12\x11\n\tstepRunId\x18\x01 \x01(\t\x12\x16\n\x0estepReadableId\x18\x02 \x01(\t\x12\x10\n\x08jobRunId\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\"W\n\rOverridesData\x12\x11\n\tstepRunId\x18\x01 \x01(\t\x12\x0c\n\x04path\x18\x02 \x01(\t\x12\r\n\x05value\x18\x03 \x01(\t\x12\x16\n\x0e\x63\x61llerFilename\x18\x04 \x01(\t\"\x17\n\x15OverridesDataResponse\"U\n\x10HeartbeatRequest\x12\x10\n\x08workerId\x18\x01 \x01(\t\x12/\n\x0bheartbeatAt\x18\x02 \x01(\x0b\x32\x1a.google.protobuf.Timestamp\"\x13\n\x11HeartbeatResponse\"F\n\x15RefreshTimeoutRequest\x12\x11\n\tstepRunId\x18\x01 \x01(\t\x12\x1a\n\x12incrementTimeoutBy\x18\x02 \x01(\t\"G\n\x16RefreshTimeoutResponse\x12-\n\ttimeoutAt\x18\x01 \x01(\x0b\x32\x1a.google.protobuf.Timestamp\"\'\n\x12ReleaseSlotRequest\x12\x11\n\tstepRunId\x18\x01 \x01(\t\"\x15\n\x13ReleaseSlotResponse*7\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*N\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*\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*\xac\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*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\xf8\x06\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\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\x12UpsertWorkerLabels\x12\x1a.UpsertWorkerLabelsRequest\x1a\x1b.UpsertWorkerLabelsResponse\"\x00\x42GZEgithub.com/hatchet-dev/hatchet/internal/services/dispatcher/contractsb\x06proto3')
|
|
19
19
|
|
|
20
20
|
_globals = globals()
|
|
21
21
|
_builder.BuildMessageAndEnumDescriptors(DESCRIPTOR, _globals)
|
|
@@ -27,72 +27,76 @@ if _descriptor._USE_C_DESCRIPTORS == False:
|
|
|
27
27
|
_globals['_WORKERREGISTERREQUEST_LABELSENTRY']._serialized_options = b'8\001'
|
|
28
28
|
_globals['_UPSERTWORKERLABELSREQUEST_LABELSENTRY']._options = None
|
|
29
29
|
_globals['_UPSERTWORKERLABELSREQUEST_LABELSENTRY']._serialized_options = b'8\001'
|
|
30
|
-
_globals['
|
|
31
|
-
_globals['
|
|
32
|
-
_globals['
|
|
33
|
-
_globals['
|
|
34
|
-
_globals['
|
|
35
|
-
_globals['
|
|
36
|
-
_globals['
|
|
37
|
-
_globals['
|
|
38
|
-
_globals['
|
|
39
|
-
_globals['
|
|
40
|
-
_globals['
|
|
41
|
-
_globals['
|
|
30
|
+
_globals['_SDKS']._serialized_start=3484
|
|
31
|
+
_globals['_SDKS']._serialized_end=3539
|
|
32
|
+
_globals['_ACTIONTYPE']._serialized_start=3541
|
|
33
|
+
_globals['_ACTIONTYPE']._serialized_end=3619
|
|
34
|
+
_globals['_GROUPKEYACTIONEVENTTYPE']._serialized_start=3622
|
|
35
|
+
_globals['_GROUPKEYACTIONEVENTTYPE']._serialized_end=3784
|
|
36
|
+
_globals['_STEPACTIONEVENTTYPE']._serialized_start=3787
|
|
37
|
+
_globals['_STEPACTIONEVENTTYPE']._serialized_end=3959
|
|
38
|
+
_globals['_RESOURCETYPE']._serialized_start=3961
|
|
39
|
+
_globals['_RESOURCETYPE']._serialized_end=4062
|
|
40
|
+
_globals['_RESOURCEEVENTTYPE']._serialized_start=4065
|
|
41
|
+
_globals['_RESOURCEEVENTTYPE']._serialized_end=4319
|
|
42
|
+
_globals['_WORKFLOWRUNEVENTTYPE']._serialized_start=4321
|
|
43
|
+
_globals['_WORKFLOWRUNEVENTTYPE']._serialized_end=4381
|
|
42
44
|
_globals['_WORKERLABELS']._serialized_start=53
|
|
43
45
|
_globals['_WORKERLABELS']._serialized_end=139
|
|
44
|
-
_globals['
|
|
45
|
-
_globals['
|
|
46
|
-
_globals['
|
|
47
|
-
_globals['
|
|
48
|
-
_globals['
|
|
49
|
-
_globals['
|
|
50
|
-
_globals['
|
|
51
|
-
_globals['
|
|
52
|
-
_globals['
|
|
53
|
-
_globals['
|
|
54
|
-
_globals['
|
|
55
|
-
_globals['
|
|
56
|
-
_globals['
|
|
57
|
-
_globals['
|
|
58
|
-
_globals['
|
|
59
|
-
_globals['
|
|
60
|
-
_globals['
|
|
61
|
-
_globals['
|
|
62
|
-
_globals['
|
|
63
|
-
_globals['
|
|
64
|
-
_globals['
|
|
65
|
-
_globals['
|
|
66
|
-
_globals['
|
|
67
|
-
_globals['
|
|
68
|
-
_globals['
|
|
69
|
-
_globals['
|
|
70
|
-
_globals['
|
|
71
|
-
_globals['
|
|
72
|
-
_globals['
|
|
73
|
-
_globals['
|
|
74
|
-
_globals['
|
|
75
|
-
_globals['
|
|
76
|
-
_globals['
|
|
77
|
-
_globals['
|
|
78
|
-
_globals['
|
|
79
|
-
_globals['
|
|
80
|
-
_globals['
|
|
81
|
-
_globals['
|
|
82
|
-
_globals['
|
|
83
|
-
_globals['
|
|
84
|
-
_globals['
|
|
85
|
-
_globals['
|
|
86
|
-
_globals['
|
|
87
|
-
_globals['
|
|
88
|
-
_globals['
|
|
89
|
-
_globals['
|
|
90
|
-
_globals['
|
|
91
|
-
_globals['
|
|
92
|
-
_globals['
|
|
93
|
-
_globals['
|
|
94
|
-
_globals['
|
|
95
|
-
_globals['
|
|
96
|
-
_globals['
|
|
97
|
-
_globals['
|
|
46
|
+
_globals['_RUNTIMEINFO']._serialized_start=142
|
|
47
|
+
_globals['_RUNTIMEINFO']._serialized_end=342
|
|
48
|
+
_globals['_WORKERREGISTERREQUEST']._serialized_start=345
|
|
49
|
+
_globals['_WORKERREGISTERREQUEST']._serialized_end=665
|
|
50
|
+
_globals['_WORKERREGISTERREQUEST_LABELSENTRY']._serialized_start=563
|
|
51
|
+
_globals['_WORKERREGISTERREQUEST_LABELSENTRY']._serialized_end=623
|
|
52
|
+
_globals['_WORKERREGISTERRESPONSE']._serialized_start=667
|
|
53
|
+
_globals['_WORKERREGISTERRESPONSE']._serialized_end=747
|
|
54
|
+
_globals['_UPSERTWORKERLABELSREQUEST']._serialized_start=750
|
|
55
|
+
_globals['_UPSERTWORKERLABELSREQUEST']._serialized_end=913
|
|
56
|
+
_globals['_UPSERTWORKERLABELSREQUEST_LABELSENTRY']._serialized_start=563
|
|
57
|
+
_globals['_UPSERTWORKERLABELSREQUEST_LABELSENTRY']._serialized_end=623
|
|
58
|
+
_globals['_UPSERTWORKERLABELSRESPONSE']._serialized_start=915
|
|
59
|
+
_globals['_UPSERTWORKERLABELSRESPONSE']._serialized_end=979
|
|
60
|
+
_globals['_ASSIGNEDACTION']._serialized_start=982
|
|
61
|
+
_globals['_ASSIGNEDACTION']._serialized_end=1500
|
|
62
|
+
_globals['_WORKERLISTENREQUEST']._serialized_start=1502
|
|
63
|
+
_globals['_WORKERLISTENREQUEST']._serialized_end=1541
|
|
64
|
+
_globals['_WORKERUNSUBSCRIBEREQUEST']._serialized_start=1543
|
|
65
|
+
_globals['_WORKERUNSUBSCRIBEREQUEST']._serialized_end=1587
|
|
66
|
+
_globals['_WORKERUNSUBSCRIBERESPONSE']._serialized_start=1589
|
|
67
|
+
_globals['_WORKERUNSUBSCRIBERESPONSE']._serialized_end=1652
|
|
68
|
+
_globals['_GROUPKEYACTIONEVENT']._serialized_start=1655
|
|
69
|
+
_globals['_GROUPKEYACTIONEVENT']._serialized_end=1880
|
|
70
|
+
_globals['_STEPACTIONEVENT']._serialized_start=1883
|
|
71
|
+
_globals['_STEPACTIONEVENT']._serialized_end=2119
|
|
72
|
+
_globals['_ACTIONEVENTRESPONSE']._serialized_start=2121
|
|
73
|
+
_globals['_ACTIONEVENTRESPONSE']._serialized_end=2178
|
|
74
|
+
_globals['_SUBSCRIBETOWORKFLOWEVENTSREQUEST']._serialized_start=2181
|
|
75
|
+
_globals['_SUBSCRIBETOWORKFLOWEVENTSREQUEST']._serialized_end=2373
|
|
76
|
+
_globals['_SUBSCRIBETOWORKFLOWRUNSREQUEST']._serialized_start=2375
|
|
77
|
+
_globals['_SUBSCRIBETOWORKFLOWRUNSREQUEST']._serialized_end=2430
|
|
78
|
+
_globals['_WORKFLOWEVENT']._serialized_start=2433
|
|
79
|
+
_globals['_WORKFLOWEVENT']._serialized_end=2739
|
|
80
|
+
_globals['_WORKFLOWRUNEVENT']._serialized_start=2742
|
|
81
|
+
_globals['_WORKFLOWRUNEVENT']._serialized_end=2910
|
|
82
|
+
_globals['_STEPRUNRESULT']._serialized_start=2913
|
|
83
|
+
_globals['_STEPRUNRESULT']._serialized_end=3051
|
|
84
|
+
_globals['_OVERRIDESDATA']._serialized_start=3053
|
|
85
|
+
_globals['_OVERRIDESDATA']._serialized_end=3140
|
|
86
|
+
_globals['_OVERRIDESDATARESPONSE']._serialized_start=3142
|
|
87
|
+
_globals['_OVERRIDESDATARESPONSE']._serialized_end=3165
|
|
88
|
+
_globals['_HEARTBEATREQUEST']._serialized_start=3167
|
|
89
|
+
_globals['_HEARTBEATREQUEST']._serialized_end=3252
|
|
90
|
+
_globals['_HEARTBEATRESPONSE']._serialized_start=3254
|
|
91
|
+
_globals['_HEARTBEATRESPONSE']._serialized_end=3273
|
|
92
|
+
_globals['_REFRESHTIMEOUTREQUEST']._serialized_start=3275
|
|
93
|
+
_globals['_REFRESHTIMEOUTREQUEST']._serialized_end=3345
|
|
94
|
+
_globals['_REFRESHTIMEOUTRESPONSE']._serialized_start=3347
|
|
95
|
+
_globals['_REFRESHTIMEOUTRESPONSE']._serialized_end=3418
|
|
96
|
+
_globals['_RELEASESLOTREQUEST']._serialized_start=3420
|
|
97
|
+
_globals['_RELEASESLOTREQUEST']._serialized_end=3459
|
|
98
|
+
_globals['_RELEASESLOTRESPONSE']._serialized_start=3461
|
|
99
|
+
_globals['_RELEASESLOTRESPONSE']._serialized_end=3482
|
|
100
|
+
_globals['_DISPATCHER']._serialized_start=4384
|
|
101
|
+
_globals['_DISPATCHER']._serialized_end=5272
|
|
98
102
|
# @@protoc_insertion_point(module_scope)
|