zygo 0.1.0__tar.gz

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (63) hide show
  1. zygo-0.1.0/PKG-INFO +15 -0
  2. zygo-0.1.0/README.md +5 -0
  3. zygo-0.1.0/pyproject.toml +251 -0
  4. zygo-0.1.0/setup.cfg +4 -0
  5. zygo-0.1.0/src/zygo/__init__.py +13 -0
  6. zygo-0.1.0/src/zygo/_internal/__init__.py +0 -0
  7. zygo-0.1.0/src/zygo/_internal/grpc/__init__.py +47 -0
  8. zygo-0.1.0/src/zygo/_internal/grpc/client.py +53 -0
  9. zygo-0.1.0/src/zygo/_internal/grpc/proto/__init__.py +0 -0
  10. zygo-0.1.0/src/zygo/_internal/grpc/proto/orchestrator_pb2.py +135 -0
  11. zygo-0.1.0/src/zygo/_internal/grpc/proto/orchestrator_pb2.pyi +470 -0
  12. zygo-0.1.0/src/zygo/_internal/grpc/proto/orchestrator_pb2_grpc.py +357 -0
  13. zygo-0.1.0/src/zygo/_internal/grpc/proto/orchestrator_pb2_grpc.pyi +103 -0
  14. zygo-0.1.0/src/zygo/_internal/grpc/types.py +197 -0
  15. zygo-0.1.0/src/zygo/_internal/grpc/utils.py +89 -0
  16. zygo-0.1.0/src/zygo/_internal/meta/__init__.py +19 -0
  17. zygo-0.1.0/src/zygo/_internal/meta/container.py +99 -0
  18. zygo-0.1.0/src/zygo/_internal/meta/dependencies.py +80 -0
  19. zygo-0.1.0/src/zygo/_internal/meta/errors.py +4 -0
  20. zygo-0.1.0/src/zygo/_internal/meta/injection.py +168 -0
  21. zygo-0.1.0/src/zygo/_internal/meta/jobs.py +104 -0
  22. zygo-0.1.0/src/zygo/_internal/proto/__init__.py +0 -0
  23. zygo-0.1.0/src/zygo/_internal/proto/orchestrator_pb2.py +135 -0
  24. zygo-0.1.0/src/zygo/_internal/proto/orchestrator_pb2.pyi +493 -0
  25. zygo-0.1.0/src/zygo/_internal/proto/orchestrator_pb2_grpc.py +357 -0
  26. zygo-0.1.0/src/zygo/_internal/proto/orchestrator_pb2_grpc.pyi +103 -0
  27. zygo-0.1.0/src/zygo/_internal/python/fn_hash.py +393 -0
  28. zygo-0.1.0/src/zygo/_internal/python/fsspec.py +62 -0
  29. zygo-0.1.0/src/zygo/_internal/runtime/__init__.py +7 -0
  30. zygo-0.1.0/src/zygo/_internal/runtime/execute.py +88 -0
  31. zygo-0.1.0/src/zygo/_internal/runtime/mode.py +120 -0
  32. zygo-0.1.0/src/zygo/_internal/runtime/start.py +107 -0
  33. zygo-0.1.0/src/zygo/_internal/utils/__init__.py +0 -0
  34. zygo-0.1.0/src/zygo/_internal/utils/caller.py +14 -0
  35. zygo-0.1.0/src/zygo/_internal/utils/date.py +5 -0
  36. zygo-0.1.0/src/zygo/_internal/utils/hash.py +25 -0
  37. zygo-0.1.0/src/zygo/_internal/utils/id.py +55 -0
  38. zygo-0.1.0/src/zygo/_internal/utils/type.py +4 -0
  39. zygo-0.1.0/src/zygo/backends/__init__.py +11 -0
  40. zygo-0.1.0/src/zygo/backends/default.py +130 -0
  41. zygo-0.1.0/src/zygo/backends/docker.py +214 -0
  42. zygo-0.1.0/src/zygo/backends/exec/__init__.py +23 -0
  43. zygo-0.1.0/src/zygo/backends/exec/conda.py +27 -0
  44. zygo-0.1.0/src/zygo/backends/exec/packages.py +29 -0
  45. zygo-0.1.0/src/zygo/backends/exec/poetry.py +27 -0
  46. zygo-0.1.0/src/zygo/backends/exec/protocol.py +9 -0
  47. zygo-0.1.0/src/zygo/backends/exec/resolve.py +28 -0
  48. zygo-0.1.0/src/zygo/backends/exec/uv.py +34 -0
  49. zygo-0.1.0/src/zygo/backends/protocol.py +105 -0
  50. zygo-0.1.0/src/zygo/channel.py +10 -0
  51. zygo-0.1.0/src/zygo/jobs.py +96 -0
  52. zygo-0.1.0/src/zygo/store/__init__.py +11 -0
  53. zygo-0.1.0/src/zygo/store/_internal/impl.py +254 -0
  54. zygo-0.1.0/src/zygo/store/_internal/types.py +5 -0
  55. zygo-0.1.0/src/zygo/store/protocol.py +146 -0
  56. zygo-0.1.0/src/zygo/store/types.py +31 -0
  57. zygo-0.1.0/src/zygo/types.py +111 -0
  58. zygo-0.1.0/src/zygo/workflow.py +115 -0
  59. zygo-0.1.0/src/zygo.egg-info/PKG-INFO +15 -0
  60. zygo-0.1.0/src/zygo.egg-info/SOURCES.txt +61 -0
  61. zygo-0.1.0/src/zygo.egg-info/dependency_links.txt +1 -0
  62. zygo-0.1.0/src/zygo.egg-info/requires.txt +3 -0
  63. zygo-0.1.0/src/zygo.egg-info/top_level.txt +1 -0
zygo-0.1.0/PKG-INFO ADDED
@@ -0,0 +1,15 @@
1
+ Metadata-Version: 2.4
2
+ Name: zygo
3
+ Version: 0.1.0
4
+ Summary: A modern python workflow engine for bioinformatics
5
+ Requires-Python: >=3.12
6
+ Description-Content-Type: text/markdown
7
+ Requires-Dist: fsspec>=2026.1.0
8
+ Requires-Dist: grpcio>=1.60.0
9
+ Requires-Dist: s3fs>=2026.1.0
10
+
11
+ ## Local Development
12
+
13
+ ```bash
14
+ just setup
15
+ ```
zygo-0.1.0/README.md ADDED
@@ -0,0 +1,5 @@
1
+ ## Local Development
2
+
3
+ ```bash
4
+ just setup
5
+ ```
@@ -0,0 +1,251 @@
1
+ [project]
2
+ name = "zygo"
3
+ version = "0.1.0"
4
+ description = "A modern python workflow engine for bioinformatics"
5
+ readme = "README.md"
6
+ requires-python = ">=3.12"
7
+ dependencies = [
8
+ "fsspec>=2026.1.0",
9
+ "grpcio>=1.60.0",
10
+ "s3fs>=2026.1.0",
11
+ ]
12
+
13
+
14
+ [dependency-groups]
15
+ dev = [
16
+ "basedpyright>=1.34.0",
17
+ "grpcio-tools>=1.60.0",
18
+ "mypy-protobuf>=4.0.0",
19
+ "pytest>=9.0.2",
20
+ "python-dotenv>=1.2.1",
21
+ "ruff>=0.14.4",
22
+ "ty>=0.0.1-alpha.26",
23
+ ]
24
+
25
+ [tool.setuptools]
26
+ package-dir = {"" = "src"}
27
+
28
+ [tool.setuptools.packages.find]
29
+ where = ["src"]
30
+
31
+ # Based on: https://github.com/Ranteck/PyStrict-strict-python/blob/develop/pyproject.toml
32
+ # ============================================================
33
+ # RUFF CONFIGURATION - MAXIMUM STRICTNESS
34
+ # ============================================================
35
+ [tool.ruff]
36
+ target-version = "py312"
37
+ line-length = 88
38
+ indent-width = 4
39
+ fix = true
40
+ show-fixes = true
41
+ preview = true # Enable preview rules (PLR1702, etc.)
42
+ exclude = ["**/proto/**"]
43
+
44
+ [tool.ruff.lint]
45
+ # Comprehensive rule set for strict checking
46
+ select = [
47
+ "E", # pycodestyle errors
48
+ "F", # pyflakes
49
+ "I", # isort
50
+ "UP", # pyupgrade
51
+ "B", # flake8-bugbear
52
+ "BLE", # flake8-blind-except (no bare except:)
53
+ "C4", # flake8-comprehensions
54
+ "C90", # mccabe complexity
55
+ "T20", # flake8-print (no print statements)
56
+ "SIM", # flake8-simplify
57
+ "N", # pep8-naming
58
+ "Q", # flake8-quotes
59
+ "RUF", # Ruff-specific rules
60
+ "ASYNC", # flake8-async
61
+ "S", # flake8-bandit (security)
62
+ "PTH", # flake8-use-pathlib
63
+ "ERA", # eradicate (commented-out code)
64
+ "PL", # pylint (includes PLR1702: too-many-nested-blocks)
65
+ "PERF", # perflint (performance)
66
+ "ANN", # flake8-annotations
67
+ "ARG", # flake8-unused-arguments
68
+ "FBT", # flake8-boolean-trap (no boolean positional args)
69
+ "RET", # flake8-return
70
+ "TCH", # flake8-type-checking
71
+ ]
72
+
73
+ ignore = [
74
+ "E501", # Line too long (formatter handles this)
75
+ "S603", # subprocess without shell=True (too strict)
76
+ "S607", # Starting a process with a partial path (too strict)
77
+ "PLC2701", # We intentionally import the _internal package for internal use only
78
+ ]
79
+
80
+ [tool.ruff.lint.flake8-bugbear]
81
+ extend-immutable-calls = ["zygo.Depends", "zygo.Input", "zygo.Output",]
82
+
83
+ # Complexity limits (anti-LLM-slop)
84
+ [tool.ruff.lint.mccabe]
85
+ max-complexity = 10 # Maximum cyclomatic complexity
86
+
87
+ [tool.ruff.lint.pylint]
88
+ max-nested-blocks = 3 # Maximum nested block depth (PLR1702)
89
+
90
+ # Per-file ignores
91
+ [tool.ruff.lint.per-file-ignores]
92
+ "__init__.py" = [
93
+ "F401", # Allow unused imports in __init__.py
94
+ ]
95
+ "tests/**/*.py" = [
96
+ "S101", # Allow assert in tests
97
+ "PLR2004", # Allow magic values in tests
98
+ "ANN", # Don't require annotations in tests
99
+ "FBT", # Allow boolean args in tests
100
+ ]
101
+
102
+ [tool.ruff.lint.isort]
103
+ known-first-party = ["your_package_name"] # CHANGE THIS
104
+ combine-as-imports = true
105
+ force-sort-within-sections = true
106
+
107
+ [tool.ruff.lint.pydocstyle]
108
+ convention = "google"
109
+
110
+ [tool.ruff.lint.flake8-type-checking]
111
+ strict = true
112
+
113
+ [tool.ruff.format]
114
+ quote-style = "double"
115
+ indent-style = "space"
116
+ skip-magic-trailing-comma = false
117
+ line-ending = "auto"
118
+
119
+ # ============================================================
120
+ # Basedpyright CONFIGURATION - MAXIMUM STRICTNESS
121
+ # TypeScript strict mode equivalent
122
+ # ============================================================
123
+ [tool.basedpyright]
124
+ pythonVersion = "3.12"
125
+ typeCheckingMode = "strict"
126
+ ignore = ["**/proto/**"]
127
+
128
+ # Basedpyright configuration so the src dir is treated as a top-level package.
129
+ # This ensures that imports reflect the published package structure.
130
+ executionEnvironments = [
131
+ { root = "src" },
132
+ { root = ".", extraPaths = ["src"] }
133
+ ]
134
+
135
+ # ============================================================
136
+ # IMPORT AND MODULE CHECKS
137
+ # ============================================================
138
+ reportMissingImports = true
139
+ reportMissingTypeStubs = true # Stricter: require type stubs
140
+ reportUndefinedVariable = true
141
+ reportAssertAlwaysTrue = true
142
+ reportInvalidStringEscapeSequence = true
143
+
144
+ # ============================================================
145
+ # STRICT NULL SAFETY (like TS strictNullChecks)
146
+ # ============================================================
147
+ reportOptionalSubscript = true
148
+ reportOptionalMemberAccess = true
149
+ reportOptionalCall = true
150
+ reportOptionalIterable = true
151
+ reportOptionalContextManager = true
152
+ reportOptionalOperand = true
153
+ reportAny = true # Prohibir Any completamente
154
+ reportExplicitAny = true
155
+ reportIgnoreCommentWithoutRule = false # No permitir # type: ignore sin código
156
+ reportPrivateLocalImportUsage = true
157
+
158
+ # ============================================================
159
+ # TYPE COMPLETENESS (like TS noImplicitAny + strictFunctionTypes)
160
+ # ============================================================
161
+ reportMissingParameterType = true
162
+ reportMissingTypeArgument = true
163
+ reportUnknownParameterType = true
164
+ reportUnknownLambdaType = true
165
+ reportUnknownArgumentType = true # STRICT: Enable (can be noisy)
166
+ reportUnknownVariableType = true # STRICT: Enable (can be noisy)
167
+ reportUnknownMemberType = true # STRICT: Enable (can be noisy)
168
+ reportUntypedFunctionDecorator = true
169
+ reportUntypedClassDecorator = true
170
+ reportUntypedBaseClass = true
171
+ reportUntypedNamedTuple = true
172
+
173
+ # ============================================================
174
+ # CLASS AND INHERITANCE CHECKS
175
+ # ============================================================
176
+ reportIncompatibleMethodOverride = true
177
+ reportIncompatibleVariableOverride = true
178
+ reportInconsistentConstructor = true
179
+ reportUninitializedInstanceVariable = true
180
+ reportOverlappingOverload = true
181
+ reportMissingSuperCall = true # STRICT: Enable
182
+
183
+ # ============================================================
184
+ # CODE QUALITY (like TS noUnusedLocals + noUnusedParameters)
185
+ # ============================================================
186
+ reportPrivateUsage = true
187
+ reportConstantRedefinition = true
188
+ reportInvalidStubStatement = true
189
+ reportIncompleteStub = true
190
+ reportUnsupportedDunderAll = true
191
+ reportUnusedClass = "error" # STRICT: Error instead of warning
192
+ reportUnusedFunction = "error" # STRICT: Error instead of warning
193
+ reportUnusedVariable = "error" # STRICT: Error instead of warning
194
+ reportUnusedImport = "error" # STRICT: Error instead of warning
195
+ reportDuplicateImport = "error" # STRICT: Error instead of warning
196
+
197
+ # ============================================================
198
+ # UNNECESSARY CODE DETECTION
199
+ # ============================================================
200
+ reportUnnecessaryIsInstance = "error" # STRICT: Error
201
+ reportUnnecessaryCast = "error" # STRICT: Error
202
+ reportUnnecessaryComparison = "error" # STRICT: Error
203
+ reportUnnecessaryContains = "error" # STRICT: Error
204
+ reportUnnecessaryTypeIgnoreComment = "error" # STRICT: Error
205
+
206
+ # ============================================================
207
+ # FUNCTION/METHOD SIGNATURE STRICTNESS
208
+ # ============================================================
209
+ reportGeneralTypeIssues = true
210
+ reportPropertyTypeMismatch = true
211
+ reportFunctionMemberAccess = true
212
+ # Turned reportCallInDefaultInitializer off because we can't allowlist the Channel helpers designed to be in defaults.
213
+ # We instead, allowlist in ruff and will use ruff for other default checks.
214
+ reportCallInDefaultInitializer = false
215
+ reportImplicitStringConcatenation = true # STRICT: Enable
216
+
217
+ # ============================================================
218
+ # ADDITIONAL STRICT CHECKS (Progressive Enhancement)
219
+ # ============================================================
220
+ reportImplicitOverride = true # STRICT: Require @override decorator (Python 3.12+)
221
+ reportDeprecated = "warning" # Warn on deprecated usage
222
+
223
+ # ============================================================
224
+ # ADDITIONAL TYPE CHECKS
225
+ # ============================================================
226
+ reportImportCycles = "warning"
227
+
228
+ # ============================================================
229
+ # EXCLUSIONS
230
+ # ============================================================
231
+ exclude = [
232
+ "**/__pycache__",
233
+ "**/node_modules",
234
+ ".git",
235
+ ".mypy_cache",
236
+ ".pyright_cache",
237
+ ".ruff_cache",
238
+ ".pytest_cache",
239
+ ".venv",
240
+ "venv",
241
+ "env",
242
+ "logs",
243
+ "output",
244
+ "data",
245
+ "build",
246
+ "dist",
247
+ "*.egg-info",
248
+ ]
249
+
250
+ venvPath = "."
251
+ venv = ".venv"
zygo-0.1.0/setup.cfg ADDED
@@ -0,0 +1,4 @@
1
+ [egg_info]
2
+ tag_build =
3
+ tag_date = 0
4
+
@@ -0,0 +1,13 @@
1
+ from zygo._internal.meta import Depends, Input, Output, Publisher, Store
2
+ from zygo.store import Reference
3
+ from zygo.workflow import Workflow
4
+
5
+ __all__ = [
6
+ "Depends",
7
+ "Input",
8
+ "Output",
9
+ "Publisher",
10
+ "Reference",
11
+ "Store",
12
+ "Workflow",
13
+ ]
File without changes
@@ -0,0 +1,47 @@
1
+ """Public API for the gRPC layer.
2
+
3
+ External consumers should access types via this namespace::
4
+
5
+ from zygo import grpc
6
+
7
+ registration = grpc.WorkflowRegistration(...)
8
+ client = grpc.OrchestratorClient(channel)
9
+ """
10
+
11
+ from zygo._internal.grpc.client import OrchestratorClient
12
+ from zygo._internal.grpc.proto.orchestrator_pb2 import RegisterWorkflowResponse
13
+ from zygo._internal.grpc.types import (
14
+ ChannelItemInserted,
15
+ ChannelSchema,
16
+ DataReference,
17
+ DataReferenceInserted,
18
+ EventKind,
19
+ EventSource,
20
+ InputSource,
21
+ JobFailed,
22
+ JobRequested,
23
+ JobRunSource,
24
+ JobSchema,
25
+ JobStarted,
26
+ JobSucceeded,
27
+ WorkflowRegistration,
28
+ )
29
+
30
+ __all__ = [
31
+ "ChannelItemInserted",
32
+ "ChannelSchema",
33
+ "DataReference",
34
+ "DataReferenceInserted",
35
+ "EventKind",
36
+ "EventSource",
37
+ "InputSource",
38
+ "JobFailed",
39
+ "JobRequested",
40
+ "JobRunSource",
41
+ "JobSchema",
42
+ "JobStarted",
43
+ "JobSucceeded",
44
+ "OrchestratorClient",
45
+ "RegisterWorkflowResponse",
46
+ "WorkflowRegistration",
47
+ ]
@@ -0,0 +1,53 @@
1
+ """gRPC client for communicating with the orchestrator."""
2
+
3
+ from __future__ import annotations
4
+
5
+ from typing import TYPE_CHECKING
6
+
7
+ import grpc
8
+ from zygo._internal.grpc.proto.orchestrator_pb2 import HandleJobRunEventRequest
9
+ from zygo._internal.grpc.proto.orchestrator_pb2_grpc import OrchestratorServiceStub
10
+ from zygo._internal.grpc.utils import build_proto_event
11
+
12
+ if TYPE_CHECKING:
13
+ from zygo._internal.grpc.proto.orchestrator_pb2 import RegisterWorkflowResponse
14
+ from zygo._internal.grpc.types import EventKind, WorkflowRegistration
15
+ from zygo.types import RunEventContext
16
+
17
+
18
+ class OrchestratorClient:
19
+ """Typed client for the orchestrator gRPC service."""
20
+
21
+ def __init__(self, channel: grpc.Channel) -> None:
22
+ super().__init__()
23
+ self.stub = OrchestratorServiceStub(channel)
24
+
25
+ def register_workflow(
26
+ self,
27
+ registration: WorkflowRegistration,
28
+ ) -> RegisterWorkflowResponse:
29
+ """Register a workflow and return its version id."""
30
+ return self.stub.RegisterWorkflow(registration.to_proto())
31
+
32
+ def emit(
33
+ self,
34
+ *,
35
+ context: RunEventContext,
36
+ event: EventKind,
37
+ ) -> None:
38
+ """Emit a run event to the orchestrator.
39
+
40
+ client.emit(
41
+ context=RunEventContext(
42
+ workflow_version_id="wfv_abc",
43
+ workflow_run_id="run_123",
44
+ source=JobRunSource(job_id="j1", job_run_id="jr_42"),
45
+ ),
46
+ event=JobStarted(),
47
+ )
48
+ """
49
+ proto_event = build_proto_event(context, event)
50
+ try:
51
+ self.stub.HandleJobRunEvent(HandleJobRunEventRequest(event=proto_event))
52
+ except grpc.RpcError as e:
53
+ raise RuntimeError(f"Error emitting event: {e}") from e
File without changes
@@ -0,0 +1,135 @@
1
+ # -*- coding: utf-8 -*-
2
+ # Generated by the protocol buffer compiler. DO NOT EDIT!
3
+ # NO CHECKED-IN PROTOBUF GENCODE
4
+ # source: orchestrator.proto
5
+ # Protobuf Python Version: 6.31.1
6
+ """Generated protocol buffer code."""
7
+ from google.protobuf import descriptor as _descriptor
8
+ from google.protobuf import descriptor_pool as _descriptor_pool
9
+ from google.protobuf import runtime_version as _runtime_version
10
+ from google.protobuf import symbol_database as _symbol_database
11
+ from google.protobuf.internal import builder as _builder
12
+ _runtime_version.ValidateProtobufRuntimeVersion(
13
+ _runtime_version.Domain.PUBLIC,
14
+ 6,
15
+ 31,
16
+ 1,
17
+ '',
18
+ 'orchestrator.proto'
19
+ )
20
+ # @@protoc_insertion_point(imports)
21
+
22
+ _sym_db = _symbol_database.Default()
23
+
24
+
25
+ from google.protobuf import timestamp_pb2 as google_dot_protobuf_dot_timestamp__pb2
26
+
27
+
28
+ DESCRIPTOR = _descriptor_pool.Default().AddSerializedFile(b'\n\x12orchestrator.proto\x12\x0forchestrator.v1\x1a\x1fgoogle/protobuf/timestamp.proto\"\x99\x01\n\x17RegisterWorkflowRequest\x12\x0c\n\x04name\x18\x01 \x01(\t\x12\x14\n\x0c\x63ontent_hash\x18\x02 \x01(\t\x12\x30\n\x08\x63hannels\x18\x03 \x03(\x0b\x32\x1e.orchestrator.v1.ChannelSchema\x12(\n\x04jobs\x18\x04 \x03(\x0b\x32\x1a.orchestrator.v1.JobSchema\"\x1d\n\rChannelSchema\x12\x0c\n\x04name\x18\x01 \x01(\t\"\xf5\x01\n\tJobSchema\x12\x0c\n\x04name\x18\x01 \x01(\t\x12\x14\n\x0c\x63ontent_hash\x18\x02 \x01(\t\x12\x1a\n\x12input_channel_name\x18\x03 \x01(\t\x12\x1c\n\x14output_channel_names\x18\x04 \x03(\t\x12<\n\x10local_entrypoint\x18\n \x01(\x0b\x32 .orchestrator.v1.LocalEntrypointH\x00\x12>\n\x11remote_entrypoint\x18\x0b \x01(\x0b\x32!.orchestrator.v1.RemoteEntrypointH\x00\x42\x0c\n\nentrypoint\"\xd9\x02\n\x18RegisterWorkflowResponse\x12\x1b\n\x13workflow_version_id\x18\x01 \x01(\t\x12\\\n\x13\x63hannel_ids_by_name\x18\x02 \x03(\x0b\x32?.orchestrator.v1.RegisterWorkflowResponse.ChannelIdsByNameEntry\x12T\n\x0fjob_ids_by_name\x18\x03 \x03(\x0b\x32;.orchestrator.v1.RegisterWorkflowResponse.JobIdsByNameEntry\x1a\x37\n\x15\x43hannelIdsByNameEntry\x12\x0b\n\x03key\x18\x01 \x01(\t\x12\r\n\x05value\x18\x02 \x01(\t:\x02\x38\x01\x1a\x33\n\x11JobIdsByNameEntry\x12\x0b\n\x03key\x18\x01 \x01(\t\x12\r\n\x05value\x18\x02 \x01(\t:\x02\x38\x01\"~\n\rDataReference\x12\x0b\n\x03uri\x18\x02 \x01(\t\x12\x0c\n\x04\x65tag\x18\x03 \x01(\t\x12\x19\n\x0c\x63ontent_type\x18\x04 \x01(\tH\x00\x88\x01\x01\x12\x17\n\nsize_bytes\x18\x05 \x01(\x04H\x01\x88\x01\x01\x42\x0f\n\r_content_typeB\r\n\x0b_size_bytes\"G\n\x18HandleJobRunEventRequest\x12+\n\x05\x65vent\x18\x01 \x01(\x0b\x32\x1c.orchestrator.v1.JobRunEvent\"H\n\x19HandleJobRunEventResponse\x12+\n\x05\x65vent\x18\x01 \x01(\x0b\x32\x1c.orchestrator.v1.JobRunEvent\"\xd7\x04\n\x0bJobRunEvent\x12\n\n\x02id\x18\x01 \x01(\t\x12\x1b\n\x13workflow_version_id\x18\x02 \x01(\t\x12\x17\n\x0fworkflow_run_id\x18\x03 \x01(\t\x12\x34\n\x0cinput_source\x18\x04 \x01(\x0b\x32\x1c.orchestrator.v1.InputSourceH\x00\x12\x37\n\x0ejob_run_source\x18\x05 \x01(\x0b\x32\x1d.orchestrator.v1.JobRunSourceH\x00\x12N\n\x17\x64\x61ta_reference_inserted\x18\n \x01(\x0b\x32+.orchestrator.v1.DataReferenceInsertedEventH\x01\x12J\n\x15\x63hannel_item_inserted\x18\x0b \x01(\x0b\x32).orchestrator.v1.ChannelItemInsertedEventH\x01\x12;\n\rjob_requested\x18\x0c \x01(\x0b\x32\".orchestrator.v1.JobRequestedEventH\x01\x12\x37\n\x0bjob_started\x18\r \x01(\x0b\x32 .orchestrator.v1.JobStartedEventH\x01\x12;\n\rjob_succeeded\x18\x0e \x01(\x0b\x32\".orchestrator.v1.JobSucceededEventH\x01\x12\x35\n\njob_failed\x18\x0f \x01(\x0b\x32\x1f.orchestrator.v1.JobFailedEventH\x01\x42\x08\n\x06sourceB\x07\n\x05\x65vent\"\r\n\x0bInputSource\"2\n\x0cJobRunSource\x12\x0e\n\x06job_id\x18\x01 \x01(\t\x12\x12\n\njob_run_id\x18\x02 \x01(\t\"T\n\x1a\x44\x61taReferenceInsertedEvent\x12\x36\n\x0e\x64\x61ta_reference\x18\x01 \x01(\x0b\x32\x1e.orchestrator.v1.DataReference\"f\n\x18\x43hannelItemInsertedEvent\x12\x12\n\nchannel_id\x18\x01 \x01(\t\x12\x36\n\x0e\x64\x61ta_reference\x18\x02 \x01(\x0b\x32\x1e.orchestrator.v1.DataReference\"\x8d\x01\n\x11JobRequestedEvent\x12\x0e\n\x06job_id\x18\x01 \x01(\t\x12\x36\n\x0e\x64\x61ta_reference\x18\x02 \x01(\x0b\x32\x1e.orchestrator.v1.DataReference\x12\x30\n\x0crequested_at\x18\x03 \x01(\x0b\x32\x1a.google.protobuf.Timestamp\"A\n\x0fJobStartedEvent\x12.\n\nstarted_at\x18\x01 \x01(\x0b\x32\x1a.google.protobuf.Timestamp\"E\n\x11JobSucceededEvent\x12\x30\n\x0csucceeded_at\x18\x01 \x01(\x0b\x32\x1a.google.protobuf.Timestamp\"V\n\x0eJobFailedEvent\x12-\n\tfailed_at\x18\x01 \x01(\x0b\x32\x1a.google.protobuf.Timestamp\x12\x15\n\rerror_message\x18\x02 \x01(\t\",\n\x0fLocalEntrypoint\x12\x0b\n\x03\x63wd\x18\x01 \x01(\t\x12\x0c\n\x04\x65xec\x18\x02 \x01(\t\"\x90\x01\n\x10RemoteEntrypoint\x12\x0b\n\x03url\x18\x01 \x01(\t\x12?\n\x07headers\x18\x02 \x03(\x0b\x32..orchestrator.v1.RemoteEntrypoint.HeadersEntry\x1a.\n\x0cHeadersEntry\x12\x0b\n\x03key\x18\x01 \x01(\t\x12\r\n\x05value\x18\x02 \x01(\t:\x02\x38\x01\">\n\x1fGetWorkflowVersionSchemaRequest\x12\x1b\n\x13workflow_version_id\x18\x01 \x01(\t\"\xc4\x01\n GetWorkflowVersionSchemaResponse\x12\x1b\n\x13workflow_version_id\x18\x01 \x01(\t\x12\'\n\x04jobs\x18\x02 \x03(\x0b\x32\x19.orchestrator.v1.ProtoJob\x12/\n\x08\x63hannels\x18\x03 \x03(\x0b\x32\x1d.orchestrator.v1.ProtoChannel\x12)\n\x05\x65\x64ges\x18\x04 \x03(\x0b\x32\x1a.orchestrator.v1.ProtoEdge\"\x7f\n\x0fListRunsRequest\x12\x13\n\x0bworkflow_id\x18\x01 \x01(\t\x12\x13\n\x06run_id\x18\x02 \x01(\tH\x00\x88\x01\x01\x12(\n\x04sort\x18\x03 \x01(\x0e\x32\x1a.orchestrator.v1.SortOrder\x12\r\n\x05limit\x18\x04 \x01(\rB\t\n\x07_run_id\"\xd1\x01\n\x10ListRunsResponse\x12\'\n\x04runs\x18\x01 \x03(\x0b\x32\x19.orchestrator.v1.ProtoRun\x12\x39\n\x0bnext_cursor\x18\x02 \x01(\x0b\x32\x1f.orchestrator.v1.ListRunsCursorH\x00\x88\x01\x01\x12\x39\n\x0bprev_cursor\x18\x03 \x01(\x0b\x32\x1f.orchestrator.v1.ListRunsCursorH\x01\x88\x01\x01\x42\x0e\n\x0c_next_cursorB\x0e\n\x0c_prev_cursor\"n\n\x0eListRunsCursor\x12\x13\n\x0bworkflow_id\x18\x01 \x01(\t\x12\x0e\n\x06run_id\x18\x02 \x01(\t\x12(\n\x04sort\x18\x03 \x01(\x0e\x32\x1a.orchestrator.v1.SortOrder\x12\r\n\x05limit\x18\x04 \x01(\r\"\x91\x01\n\x14ListRunEventsRequest\x12\x0e\n\x06run_id\x18\x01 \x01(\t\x12\x1c\n\x0fsequence_number\x18\x02 \x01(\x03H\x00\x88\x01\x01\x12(\n\x04sort\x18\x03 \x01(\x0e\x32\x1a.orchestrator.v1.SortOrder\x12\r\n\x05limit\x18\x04 \x01(\rB\x12\n\x10_sequence_number\"\xe4\x01\n\x15ListRunEventsResponse\x12+\n\x06\x65vents\x18\x01 \x03(\x0b\x32\x1b.orchestrator.v1.ProtoEvent\x12>\n\x0bnext_cursor\x18\x02 \x01(\x0b\x32$.orchestrator.v1.ListRunEventsCursorH\x00\x88\x01\x01\x12>\n\x0bprev_cursor\x18\x03 \x01(\x0b\x32$.orchestrator.v1.ListRunEventsCursorH\x01\x88\x01\x01\x42\x0e\n\x0c_next_cursorB\x0e\n\x0c_prev_cursor\"w\n\x13ListRunEventsCursor\x12\x0e\n\x06run_id\x18\x01 \x01(\t\x12\x17\n\x0fsequence_number\x18\x02 \x01(\x03\x12(\n\x04sort\x18\x03 \x01(\x0e\x32\x1a.orchestrator.v1.SortOrder\x12\r\n\x05limit\x18\x04 \x01(\r\"y\n\x14ListWorkflowsRequest\x12\x18\n\x0bworkflow_id\x18\x01 \x01(\tH\x00\x88\x01\x01\x12(\n\x04sort\x18\x02 \x01(\x0e\x32\x1a.orchestrator.v1.SortOrder\x12\r\n\x05limit\x18\x03 \x01(\rB\x0e\n\x0c_workflow_id\"\xea\x01\n\x15ListWorkflowsResponse\x12\x31\n\tworkflows\x18\x01 \x03(\x0b\x32\x1e.orchestrator.v1.ProtoWorkflow\x12>\n\x0bnext_cursor\x18\x02 \x01(\x0b\x32$.orchestrator.v1.ListWorkflowsCursorH\x00\x88\x01\x01\x12>\n\x0bprev_cursor\x18\x03 \x01(\x0b\x32$.orchestrator.v1.ListWorkflowsCursorH\x01\x88\x01\x01\x42\x0e\n\x0c_next_cursorB\x0e\n\x0c_prev_cursor\"c\n\x13ListWorkflowsCursor\x12\x13\n\x0bworkflow_id\x18\x01 \x01(\t\x12(\n\x04sort\x18\x02 \x01(\x0e\x32\x1a.orchestrator.v1.SortOrder\x12\r\n\x05limit\x18\x03 \x01(\r\"V\n\x11LivestreamRequest\x12\x36\n\x06\x63ursor\x18\x01 \x01(\x0b\x32!.orchestrator.v1.LivestreamCursorH\x00\x88\x01\x01\x42\t\n\x07_cursor\"\xd5\x01\n\x12LivestreamResponse\x12\x31\n\tworkflows\x18\x01 \x03(\x0b\x32\x1e.orchestrator.v1.ProtoWorkflow\x12\'\n\x04runs\x18\x02 \x03(\x0b\x32\x19.orchestrator.v1.ProtoRun\x12+\n\x06\x65vents\x18\x03 \x03(\x0b\x32\x1b.orchestrator.v1.ProtoEvent\x12\x36\n\x0bnext_cursor\x18\x04 \x01(\x0b\x32!.orchestrator.v1.LivestreamCursor\"\xbc\x01\n\x10LivestreamCursor\x12<\n\tworkflows\x18\x01 \x01(\x0b\x32).orchestrator.v1.LivestreamWorkflowCursor\x12\x32\n\x04runs\x18\x02 \x01(\x0b\x32$.orchestrator.v1.LivestreamRunCursor\x12\x36\n\x06\x65vents\x18\x03 \x01(\x0b\x32&.orchestrator.v1.LivestreamEventCursor\"S\n\x18LivestreamWorkflowCursor\x12\x18\n\x0bworkflow_id\x18\x01 \x01(\tH\x00\x88\x01\x01\x12\r\n\x05limit\x18\x02 \x01(\rB\x0e\n\x0c_workflow_id\"D\n\x13LivestreamRunCursor\x12\x13\n\x06run_id\x18\x01 \x01(\tH\x00\x88\x01\x01\x12\r\n\x05limit\x18\x02 \x01(\rB\t\n\x07_run_id\"|\n\x15LivestreamEventCursor\x12\x15\n\x08\x65vent_id\x18\x01 \x01(\tH\x00\x88\x01\x01\x12\x1c\n\x0fsequence_number\x18\x02 \x01(\x03H\x01\x88\x01\x01\x12\r\n\x05limit\x18\x03 \x01(\rB\x0b\n\t_event_idB\x12\n\x10_sequence_number\"W\n\x08ProtoJob\x12\n\n\x02id\x18\x01 \x01(\t\x12\x1b\n\x13workflow_version_id\x18\x02 \x01(\t\x12\x0c\n\x04name\x18\x03 \x01(\t\x12\x14\n\x0c\x63ontent_hash\x18\x04 \x01(\t\"E\n\x0cProtoChannel\x12\n\n\x02id\x18\x01 \x01(\t\x12\x0c\n\x04name\x18\x02 \x01(\t\x12\x1b\n\x13workflow_version_id\x18\x03 \x01(\t\"u\n\tProtoEdge\x12\x1b\n\x13workflow_version_id\x18\x01 \x01(\t\x12\x0e\n\x06job_id\x18\x02 \x01(\t\x12\x12\n\nchannel_id\x18\x03 \x01(\t\x12\'\n\x04kind\x18\x04 \x01(\x0e\x32\x19.orchestrator.v1.EdgeKind\"c\n\x08ProtoRun\x12\n\n\x02id\x18\x01 \x01(\t\x12\x1b\n\x13workflow_version_id\x18\x02 \x01(\t\x12.\n\ncreated_at\x18\x03 \x01(\x0b\x32\x1a.google.protobuf.Timestamp\")\n\rProtoWorkflow\x12\n\n\x02id\x18\x01 \x01(\t\x12\x0c\n\x04name\x18\x02 \x01(\t\"\xc9\x05\n\nProtoEvent\x12\n\n\x02id\x18\x01 \x01(\t\x12\x1b\n\x13workflow_version_id\x18\x02 \x01(\t\x12\x11\n\tis_replay\x18\x03 \x01(\x08\x12-\n\ttimestamp\x18\x04 \x01(\x0b\x32\x1a.google.protobuf.Timestamp\x12\x17\n\x0fworkflow_run_id\x18\x05 \x01(\t\x12\x1c\n\x0fsequence_number\x18\x06 \x01(\x03H\x02\x88\x01\x01\x12\x34\n\x0cinput_source\x18\x07 \x01(\x0b\x32\x1c.orchestrator.v1.InputSourceH\x00\x12\x37\n\x0ejob_run_source\x18\x08 \x01(\x0b\x32\x1d.orchestrator.v1.JobRunSourceH\x00\x12N\n\x17\x64\x61ta_reference_inserted\x18\n \x01(\x0b\x32+.orchestrator.v1.DataReferenceInsertedEventH\x01\x12J\n\x15\x63hannel_item_inserted\x18\x0b \x01(\x0b\x32).orchestrator.v1.ChannelItemInsertedEventH\x01\x12;\n\rjob_requested\x18\x0c \x01(\x0b\x32\".orchestrator.v1.JobRequestedEventH\x01\x12\x37\n\x0bjob_started\x18\r \x01(\x0b\x32 .orchestrator.v1.JobStartedEventH\x01\x12;\n\rjob_succeeded\x18\x0e \x01(\x0b\x32\".orchestrator.v1.JobSucceededEventH\x01\x12\x35\n\njob_failed\x18\x0f \x01(\x0b\x32\x1f.orchestrator.v1.JobFailedEventH\x01\x42\x08\n\x06sourceB\x06\n\x04kindB\x12\n\x10_sequence_number*P\n\tSortOrder\x12\x1a\n\x16SORT_ORDER_UNSPECIFIED\x10\x00\x12\x12\n\x0eSORT_ORDER_ASC\x10\x01\x12\x13\n\x0fSORT_ORDER_DESC\x10\x02*P\n\x08\x45\x64geKind\x12\x19\n\x15\x45\x44GE_KIND_UNSPECIFIED\x10\x00\x12\x13\n\x0f\x45\x44GE_KIND_INPUT\x10\x01\x12\x14\n\x10\x45\x44GE_KIND_OUTPUT\x10\x02\x32\xd3\x05\n\x13OrchestratorService\x12g\n\x10RegisterWorkflow\x12(.orchestrator.v1.RegisterWorkflowRequest\x1a).orchestrator.v1.RegisterWorkflowResponse\x12j\n\x11HandleJobRunEvent\x12).orchestrator.v1.HandleJobRunEventRequest\x1a*.orchestrator.v1.HandleJobRunEventResponse\x12\x7f\n\x18GetWorkflowVersionSchema\x12\x30.orchestrator.v1.GetWorkflowVersionSchemaRequest\x1a\x31.orchestrator.v1.GetWorkflowVersionSchemaResponse\x12O\n\x08ListRuns\x12 .orchestrator.v1.ListRunsRequest\x1a!.orchestrator.v1.ListRunsResponse\x12^\n\rListRunEvents\x12%.orchestrator.v1.ListRunEventsRequest\x1a&.orchestrator.v1.ListRunEventsResponse\x12^\n\rListWorkflows\x12%.orchestrator.v1.ListWorkflowsRequest\x1a&.orchestrator.v1.ListWorkflowsResponse\x12U\n\nLivestream\x12\".orchestrator.v1.LivestreamRequest\x1a#.orchestrator.v1.LivestreamResponseb\x06proto3')
29
+
30
+ _globals = globals()
31
+ _builder.BuildMessageAndEnumDescriptors(DESCRIPTOR, _globals)
32
+ _builder.BuildTopDescriptorsAndMessages(DESCRIPTOR, 'orchestrator_pb2', _globals)
33
+ if not _descriptor._USE_C_DESCRIPTORS:
34
+ DESCRIPTOR._loaded_options = None
35
+ _globals['_REGISTERWORKFLOWRESPONSE_CHANNELIDSBYNAMEENTRY']._loaded_options = None
36
+ _globals['_REGISTERWORKFLOWRESPONSE_CHANNELIDSBYNAMEENTRY']._serialized_options = b'8\001'
37
+ _globals['_REGISTERWORKFLOWRESPONSE_JOBIDSBYNAMEENTRY']._loaded_options = None
38
+ _globals['_REGISTERWORKFLOWRESPONSE_JOBIDSBYNAMEENTRY']._serialized_options = b'8\001'
39
+ _globals['_REMOTEENTRYPOINT_HEADERSENTRY']._loaded_options = None
40
+ _globals['_REMOTEENTRYPOINT_HEADERSENTRY']._serialized_options = b'8\001'
41
+ _globals['_SORTORDER']._serialized_start=6144
42
+ _globals['_SORTORDER']._serialized_end=6224
43
+ _globals['_EDGEKIND']._serialized_start=6226
44
+ _globals['_EDGEKIND']._serialized_end=6306
45
+ _globals['_REGISTERWORKFLOWREQUEST']._serialized_start=73
46
+ _globals['_REGISTERWORKFLOWREQUEST']._serialized_end=226
47
+ _globals['_CHANNELSCHEMA']._serialized_start=228
48
+ _globals['_CHANNELSCHEMA']._serialized_end=257
49
+ _globals['_JOBSCHEMA']._serialized_start=260
50
+ _globals['_JOBSCHEMA']._serialized_end=505
51
+ _globals['_REGISTERWORKFLOWRESPONSE']._serialized_start=508
52
+ _globals['_REGISTERWORKFLOWRESPONSE']._serialized_end=853
53
+ _globals['_REGISTERWORKFLOWRESPONSE_CHANNELIDSBYNAMEENTRY']._serialized_start=745
54
+ _globals['_REGISTERWORKFLOWRESPONSE_CHANNELIDSBYNAMEENTRY']._serialized_end=800
55
+ _globals['_REGISTERWORKFLOWRESPONSE_JOBIDSBYNAMEENTRY']._serialized_start=802
56
+ _globals['_REGISTERWORKFLOWRESPONSE_JOBIDSBYNAMEENTRY']._serialized_end=853
57
+ _globals['_DATAREFERENCE']._serialized_start=855
58
+ _globals['_DATAREFERENCE']._serialized_end=981
59
+ _globals['_HANDLEJOBRUNEVENTREQUEST']._serialized_start=983
60
+ _globals['_HANDLEJOBRUNEVENTREQUEST']._serialized_end=1054
61
+ _globals['_HANDLEJOBRUNEVENTRESPONSE']._serialized_start=1056
62
+ _globals['_HANDLEJOBRUNEVENTRESPONSE']._serialized_end=1128
63
+ _globals['_JOBRUNEVENT']._serialized_start=1131
64
+ _globals['_JOBRUNEVENT']._serialized_end=1730
65
+ _globals['_INPUTSOURCE']._serialized_start=1732
66
+ _globals['_INPUTSOURCE']._serialized_end=1745
67
+ _globals['_JOBRUNSOURCE']._serialized_start=1747
68
+ _globals['_JOBRUNSOURCE']._serialized_end=1797
69
+ _globals['_DATAREFERENCEINSERTEDEVENT']._serialized_start=1799
70
+ _globals['_DATAREFERENCEINSERTEDEVENT']._serialized_end=1883
71
+ _globals['_CHANNELITEMINSERTEDEVENT']._serialized_start=1885
72
+ _globals['_CHANNELITEMINSERTEDEVENT']._serialized_end=1987
73
+ _globals['_JOBREQUESTEDEVENT']._serialized_start=1990
74
+ _globals['_JOBREQUESTEDEVENT']._serialized_end=2131
75
+ _globals['_JOBSTARTEDEVENT']._serialized_start=2133
76
+ _globals['_JOBSTARTEDEVENT']._serialized_end=2198
77
+ _globals['_JOBSUCCEEDEDEVENT']._serialized_start=2200
78
+ _globals['_JOBSUCCEEDEDEVENT']._serialized_end=2269
79
+ _globals['_JOBFAILEDEVENT']._serialized_start=2271
80
+ _globals['_JOBFAILEDEVENT']._serialized_end=2357
81
+ _globals['_LOCALENTRYPOINT']._serialized_start=2359
82
+ _globals['_LOCALENTRYPOINT']._serialized_end=2403
83
+ _globals['_REMOTEENTRYPOINT']._serialized_start=2406
84
+ _globals['_REMOTEENTRYPOINT']._serialized_end=2550
85
+ _globals['_REMOTEENTRYPOINT_HEADERSENTRY']._serialized_start=2504
86
+ _globals['_REMOTEENTRYPOINT_HEADERSENTRY']._serialized_end=2550
87
+ _globals['_GETWORKFLOWVERSIONSCHEMAREQUEST']._serialized_start=2552
88
+ _globals['_GETWORKFLOWVERSIONSCHEMAREQUEST']._serialized_end=2614
89
+ _globals['_GETWORKFLOWVERSIONSCHEMARESPONSE']._serialized_start=2617
90
+ _globals['_GETWORKFLOWVERSIONSCHEMARESPONSE']._serialized_end=2813
91
+ _globals['_LISTRUNSREQUEST']._serialized_start=2815
92
+ _globals['_LISTRUNSREQUEST']._serialized_end=2942
93
+ _globals['_LISTRUNSRESPONSE']._serialized_start=2945
94
+ _globals['_LISTRUNSRESPONSE']._serialized_end=3154
95
+ _globals['_LISTRUNSCURSOR']._serialized_start=3156
96
+ _globals['_LISTRUNSCURSOR']._serialized_end=3266
97
+ _globals['_LISTRUNEVENTSREQUEST']._serialized_start=3269
98
+ _globals['_LISTRUNEVENTSREQUEST']._serialized_end=3414
99
+ _globals['_LISTRUNEVENTSRESPONSE']._serialized_start=3417
100
+ _globals['_LISTRUNEVENTSRESPONSE']._serialized_end=3645
101
+ _globals['_LISTRUNEVENTSCURSOR']._serialized_start=3647
102
+ _globals['_LISTRUNEVENTSCURSOR']._serialized_end=3766
103
+ _globals['_LISTWORKFLOWSREQUEST']._serialized_start=3768
104
+ _globals['_LISTWORKFLOWSREQUEST']._serialized_end=3889
105
+ _globals['_LISTWORKFLOWSRESPONSE']._serialized_start=3892
106
+ _globals['_LISTWORKFLOWSRESPONSE']._serialized_end=4126
107
+ _globals['_LISTWORKFLOWSCURSOR']._serialized_start=4128
108
+ _globals['_LISTWORKFLOWSCURSOR']._serialized_end=4227
109
+ _globals['_LIVESTREAMREQUEST']._serialized_start=4229
110
+ _globals['_LIVESTREAMREQUEST']._serialized_end=4315
111
+ _globals['_LIVESTREAMRESPONSE']._serialized_start=4318
112
+ _globals['_LIVESTREAMRESPONSE']._serialized_end=4531
113
+ _globals['_LIVESTREAMCURSOR']._serialized_start=4534
114
+ _globals['_LIVESTREAMCURSOR']._serialized_end=4722
115
+ _globals['_LIVESTREAMWORKFLOWCURSOR']._serialized_start=4724
116
+ _globals['_LIVESTREAMWORKFLOWCURSOR']._serialized_end=4807
117
+ _globals['_LIVESTREAMRUNCURSOR']._serialized_start=4809
118
+ _globals['_LIVESTREAMRUNCURSOR']._serialized_end=4877
119
+ _globals['_LIVESTREAMEVENTCURSOR']._serialized_start=4879
120
+ _globals['_LIVESTREAMEVENTCURSOR']._serialized_end=5003
121
+ _globals['_PROTOJOB']._serialized_start=5005
122
+ _globals['_PROTOJOB']._serialized_end=5092
123
+ _globals['_PROTOCHANNEL']._serialized_start=5094
124
+ _globals['_PROTOCHANNEL']._serialized_end=5163
125
+ _globals['_PROTOEDGE']._serialized_start=5165
126
+ _globals['_PROTOEDGE']._serialized_end=5282
127
+ _globals['_PROTORUN']._serialized_start=5284
128
+ _globals['_PROTORUN']._serialized_end=5383
129
+ _globals['_PROTOWORKFLOW']._serialized_start=5385
130
+ _globals['_PROTOWORKFLOW']._serialized_end=5426
131
+ _globals['_PROTOEVENT']._serialized_start=5429
132
+ _globals['_PROTOEVENT']._serialized_end=6142
133
+ _globals['_ORCHESTRATORSERVICE']._serialized_start=6309
134
+ _globals['_ORCHESTRATORSERVICE']._serialized_end=7032
135
+ # @@protoc_insertion_point(module_scope)